aboutsummaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'runtime')
-rw-r--r--runtime/CMakeLists.txt26
-rw-r--r--runtime/autoload/ada.vim10
-rw-r--r--runtime/autoload/context.vim184
-rw-r--r--runtime/autoload/contextcomplete.vim25
-rw-r--r--runtime/autoload/gzip.vim6
-rw-r--r--runtime/autoload/health.vim41
-rw-r--r--runtime/autoload/health/nvim.vim45
-rw-r--r--runtime/autoload/health/provider.vim164
-rw-r--r--runtime/autoload/javascriptcomplete.vim4
-rw-r--r--runtime/autoload/man.vim79
-rw-r--r--runtime/autoload/netrw.vim4
-rw-r--r--runtime/autoload/paste.vim4
-rw-r--r--runtime/autoload/phpcomplete.vim102
-rw-r--r--runtime/autoload/provider.vim20
-rw-r--r--runtime/autoload/provider/clipboard.vim75
-rw-r--r--runtime/autoload/provider/node.vim80
-rw-r--r--runtime/autoload/provider/python.vim2
-rw-r--r--runtime/autoload/provider/python3.vim2
-rw-r--r--runtime/autoload/provider/pythonx.vim21
-rw-r--r--runtime/autoload/provider/ruby.vim14
-rw-r--r--runtime/autoload/provider/script_host.rb8
-rw-r--r--runtime/autoload/remote/define.vim35
-rw-r--r--runtime/autoload/remote/host.vim4
-rw-r--r--runtime/autoload/rubycomplete.vim38
-rw-r--r--runtime/autoload/rust.vim415
-rw-r--r--runtime/autoload/rustfmt.vim107
-rw-r--r--runtime/autoload/shada.vim3
-rw-r--r--runtime/autoload/spellfile.vim8
-rw-r--r--runtime/autoload/sqlcomplete.vim2
-rw-r--r--runtime/autoload/tar.vim2
-rw-r--r--runtime/autoload/tutor.vim197
-rw-r--r--runtime/autoload/zip.vim76
-rw-r--r--runtime/bugreport.vim1
-rw-r--r--runtime/colors/README.txt9
-rw-r--r--runtime/colors/evening.vim6
-rw-r--r--runtime/colors/koehler.vim3
-rw-r--r--runtime/compiler/bdf.vim6
-rw-r--r--runtime/compiler/cargo.vim35
-rw-r--r--runtime/compiler/context.vim54
-rw-r--r--runtime/compiler/csslint.vim16
-rw-r--r--runtime/compiler/cucumber.vim4
-rw-r--r--runtime/compiler/gcc.vim6
-rw-r--r--runtime/compiler/ghc.vim26
-rw-r--r--runtime/compiler/haml.vim4
-rw-r--r--runtime/compiler/pylint.vim16
-rw-r--r--runtime/compiler/rake.vim6
-rw-r--r--runtime/compiler/rspec.vim3
-rw-r--r--runtime/compiler/rst.vim25
-rw-r--r--runtime/compiler/rubyunit.vim2
-rw-r--r--runtime/compiler/rustc.vim46
-rw-r--r--runtime/compiler/sass.vim4
-rw-r--r--runtime/doc/api.txt241
-rw-r--r--runtime/doc/arabic.txt28
-rw-r--r--runtime/doc/autocmd.txt104
-rw-r--r--runtime/doc/change.txt44
-rw-r--r--runtime/doc/channel.txt168
-rw-r--r--runtime/doc/cmdline.txt53
-rw-r--r--runtime/doc/debug.txt6
-rw-r--r--runtime/doc/deprecated.txt17
-rw-r--r--runtime/doc/develop.txt106
-rw-r--r--runtime/doc/diff.txt21
-rw-r--r--runtime/doc/digraph.txt9
-rw-r--r--runtime/doc/editing.txt38
-rw-r--r--runtime/doc/eval.txt1113
-rw-r--r--runtime/doc/farsi.txt2
-rw-r--r--runtime/doc/filetype.txt32
-rw-r--r--runtime/doc/fold.txt15
-rw-r--r--runtime/doc/ft_ada.txt4
-rw-r--r--runtime/doc/ft_rust.txt237
-rw-r--r--runtime/doc/ft_sql.txt2
-rw-r--r--runtime/doc/gui.txt114
-rw-r--r--runtime/doc/hebrew.txt2
-rw-r--r--runtime/doc/help.txt16
-rw-r--r--runtime/doc/helphelp.txt28
-rw-r--r--runtime/doc/howto.txt96
-rw-r--r--runtime/doc/if_cscop.txt19
-rw-r--r--runtime/doc/if_lua.txt361
-rw-r--r--runtime/doc/if_pyth.txt31
-rw-r--r--runtime/doc/if_ruby.txt16
-rw-r--r--runtime/doc/indent.txt5
-rw-r--r--runtime/doc/index.txt69
-rw-r--r--runtime/doc/insert.txt32
-rw-r--r--runtime/doc/intro.txt82
-rw-r--r--runtime/doc/job_control.txt177
-rw-r--r--runtime/doc/map.txt157
-rw-r--r--runtime/doc/mbyte.txt96
-rw-r--r--runtime/doc/message.txt32
-rw-r--r--runtime/doc/mlang.txt9
-rw-r--r--runtime/doc/motion.txt17
-rw-r--r--runtime/doc/msgpack_rpc.txt228
-rw-r--r--runtime/doc/nvim.txt20
-rw-r--r--runtime/doc/nvim_terminal_emulator.txt92
-rw-r--r--runtime/doc/options.txt519
-rw-r--r--runtime/doc/os_win32.txt206
-rw-r--r--runtime/doc/pattern.txt37
-rw-r--r--runtime/doc/pi_gzip.txt4
-rw-r--r--runtime/doc/pi_health.txt112
-rw-r--r--runtime/doc/pi_matchit.txt7
-rw-r--r--runtime/doc/pi_msgpack.txt2
-rw-r--r--runtime/doc/pi_netrw.txt14
-rw-r--r--runtime/doc/pi_paren.txt2
-rw-r--r--runtime/doc/pi_spec.txt2
-rw-r--r--runtime/doc/pi_tar.txt2
-rw-r--r--runtime/doc/pi_zip.txt30
-rw-r--r--runtime/doc/print.txt75
-rw-r--r--runtime/doc/provider.txt86
-rw-r--r--runtime/doc/quickfix.txt50
-rw-r--r--runtime/doc/quickref.txt13
-rw-r--r--runtime/doc/recover.txt5
-rw-r--r--runtime/doc/remote.txt9
-rw-r--r--runtime/doc/remote_plugin.txt7
-rw-r--r--runtime/doc/repeat.txt22
-rw-r--r--runtime/doc/rileft.txt2
-rw-r--r--runtime/doc/russian.txt7
-rw-r--r--runtime/doc/scroll.txt14
-rw-r--r--runtime/doc/sign.txt11
-rw-r--r--runtime/doc/spell.txt13
-rw-r--r--runtime/doc/sponsor.txt2
-rw-r--r--runtime/doc/starting.txt280
-rw-r--r--runtime/doc/syntax.txt478
-rw-r--r--runtime/doc/tabpage.txt63
-rw-r--r--runtime/doc/tagsrch.txt48
-rw-r--r--runtime/doc/term.txt634
-rw-r--r--runtime/doc/tips.txt71
-rw-r--r--runtime/doc/uganda.txt2
-rw-r--r--runtime/doc/ui.txt308
-rw-r--r--runtime/doc/undo.txt9
-rw-r--r--runtime/doc/usr_01.txt2
-rw-r--r--runtime/doc/usr_02.txt14
-rw-r--r--runtime/doc/usr_03.txt8
-rw-r--r--runtime/doc/usr_04.txt2
-rw-r--r--runtime/doc/usr_05.txt18
-rw-r--r--runtime/doc/usr_06.txt9
-rw-r--r--runtime/doc/usr_07.txt10
-rw-r--r--runtime/doc/usr_08.txt4
-rw-r--r--runtime/doc/usr_09.txt20
-rw-r--r--runtime/doc/usr_10.txt2
-rw-r--r--runtime/doc/usr_11.txt2
-rw-r--r--runtime/doc/usr_12.txt4
-rw-r--r--runtime/doc/usr_20.txt2
-rw-r--r--runtime/doc/usr_21.txt2
-rw-r--r--runtime/doc/usr_22.txt4
-rw-r--r--runtime/doc/usr_23.txt2
-rw-r--r--runtime/doc/usr_24.txt2
-rw-r--r--runtime/doc/usr_25.txt2
-rw-r--r--runtime/doc/usr_26.txt2
-rw-r--r--runtime/doc/usr_27.txt2
-rw-r--r--runtime/doc/usr_28.txt2
-rw-r--r--runtime/doc/usr_29.txt2
-rw-r--r--runtime/doc/usr_30.txt2
-rw-r--r--runtime/doc/usr_31.txt2
-rw-r--r--runtime/doc/usr_32.txt2
-rw-r--r--runtime/doc/usr_40.txt2
-rw-r--r--runtime/doc/usr_41.txt15
-rw-r--r--runtime/doc/usr_42.txt2
-rw-r--r--runtime/doc/usr_43.txt2
-rw-r--r--runtime/doc/usr_44.txt4
-rw-r--r--runtime/doc/usr_45.txt2
-rw-r--r--runtime/doc/usr_toc.txt7
-rw-r--r--runtime/doc/various.txt86
-rw-r--r--runtime/doc/vi_diff.txt17
-rw-r--r--runtime/doc/vim_diff.txt180
-rw-r--r--runtime/doc/visual.txt20
-rw-r--r--runtime/doc/windows.txt60
-rw-r--r--runtime/filetype.vim103
-rw-r--r--runtime/ftplugin/a2ps.vim6
-rw-r--r--runtime/ftplugin/alsaconf.vim6
-rw-r--r--runtime/ftplugin/arch.vim6
-rw-r--r--runtime/ftplugin/automake.vim6
-rw-r--r--runtime/ftplugin/awk.vim18
-rw-r--r--runtime/ftplugin/bdf.vim6
-rw-r--r--runtime/ftplugin/c.vim6
-rw-r--r--runtime/ftplugin/calendar.vim6
-rw-r--r--runtime/ftplugin/cdrdaoconf.vim4
-rw-r--r--runtime/ftplugin/conf.vim6
-rw-r--r--runtime/ftplugin/context.vim79
-rw-r--r--runtime/ftplugin/crm.vim6
-rw-r--r--runtime/ftplugin/css.vim6
-rw-r--r--runtime/ftplugin/cucumber.vim28
-rw-r--r--runtime/ftplugin/cvsrc.vim6
-rw-r--r--runtime/ftplugin/denyhosts.vim4
-rw-r--r--runtime/ftplugin/dictconf.vim6
-rw-r--r--runtime/ftplugin/dictdconf.vim6
-rw-r--r--runtime/ftplugin/dircolors.vim6
-rw-r--r--runtime/ftplugin/dosini.vim6
-rw-r--r--runtime/ftplugin/elinks.vim6
-rw-r--r--runtime/ftplugin/eruby.vim2
-rw-r--r--runtime/ftplugin/eterm.vim6
-rw-r--r--runtime/ftplugin/fetchmail.vim6
-rw-r--r--runtime/ftplugin/framescript.vim6
-rw-r--r--runtime/ftplugin/gdb.vim12
-rw-r--r--runtime/ftplugin/git.vim4
-rw-r--r--runtime/ftplugin/gitcommit.vim17
-rw-r--r--runtime/ftplugin/gitrebase.vim5
-rw-r--r--runtime/ftplugin/gpg.vim6
-rw-r--r--runtime/ftplugin/group.vim6
-rw-r--r--runtime/ftplugin/grub.vim6
-rw-r--r--runtime/ftplugin/haml.vim2
-rw-r--r--runtime/ftplugin/hamster.vim6
-rw-r--r--runtime/ftplugin/haskell.vim6
-rw-r--r--runtime/ftplugin/help.vim83
-rw-r--r--runtime/ftplugin/hostconf.vim4
-rw-r--r--runtime/ftplugin/hostsaccess.vim6
-rw-r--r--runtime/ftplugin/indent.vim6
-rw-r--r--runtime/ftplugin/ld.vim6
-rw-r--r--runtime/ftplugin/lftp.vim6
-rw-r--r--runtime/ftplugin/libao.vim6
-rw-r--r--runtime/ftplugin/limits.vim6
-rw-r--r--runtime/ftplugin/loginaccess.vim6
-rw-r--r--runtime/ftplugin/logindefs.vim6
-rw-r--r--runtime/ftplugin/m4.vim6
-rw-r--r--runtime/ftplugin/mailaliases.vim4
-rw-r--r--runtime/ftplugin/mailcap.vim6
-rw-r--r--runtime/ftplugin/man.vim5
-rw-r--r--runtime/ftplugin/manconf.vim6
-rw-r--r--runtime/ftplugin/markdown.vim32
-rw-r--r--runtime/ftplugin/mf.vim61
-rw-r--r--runtime/ftplugin/modconf.vim6
-rw-r--r--runtime/ftplugin/mp.vim64
-rw-r--r--runtime/ftplugin/mplayerconf.vim6
-rw-r--r--runtime/ftplugin/muttrc.vim6
-rw-r--r--runtime/ftplugin/nanorc.vim6
-rw-r--r--runtime/ftplugin/neomuttrc.vim23
-rw-r--r--runtime/ftplugin/netrc.vim6
-rw-r--r--runtime/ftplugin/nsis.vim6
-rw-r--r--runtime/ftplugin/pamconf.vim6
-rw-r--r--runtime/ftplugin/passwd.vim6
-rw-r--r--runtime/ftplugin/perl.vim13
-rw-r--r--runtime/ftplugin/pinfo.vim6
-rw-r--r--runtime/ftplugin/procmail.vim6
-rw-r--r--runtime/ftplugin/prolog.vim6
-rw-r--r--runtime/ftplugin/protocols.vim6
-rw-r--r--runtime/ftplugin/python.vim67
-rw-r--r--runtime/ftplugin/qf.vim23
-rw-r--r--runtime/ftplugin/quake.vim6
-rw-r--r--runtime/ftplugin/racc.vim6
-rw-r--r--runtime/ftplugin/readline.vim6
-rw-r--r--runtime/ftplugin/rmd.vim16
-rw-r--r--runtime/ftplugin/rnc.vim6
-rw-r--r--runtime/ftplugin/rst.vim6
-rw-r--r--runtime/ftplugin/ruby.vim153
-rw-r--r--runtime/ftplugin/rust.vim197
-rw-r--r--runtime/ftplugin/sass.vim5
-rw-r--r--runtime/ftplugin/sbt.vim15
-rw-r--r--runtime/ftplugin/scala.vim35
-rw-r--r--runtime/ftplugin/screen.vim6
-rw-r--r--runtime/ftplugin/scss.vim3
-rw-r--r--runtime/ftplugin/sensors.vim6
-rw-r--r--runtime/ftplugin/services.vim6
-rw-r--r--runtime/ftplugin/setserial.vim6
-rw-r--r--runtime/ftplugin/sieve.vim6
-rw-r--r--runtime/ftplugin/slpconf.vim6
-rw-r--r--runtime/ftplugin/slpreg.vim6
-rw-r--r--runtime/ftplugin/slpspi.vim6
-rw-r--r--runtime/ftplugin/sql.vim74
-rw-r--r--runtime/ftplugin/sshconfig.vim6
-rw-r--r--runtime/ftplugin/sudoers.vim6
-rw-r--r--runtime/ftplugin/sysctl.vim6
-rw-r--r--runtime/ftplugin/terminfo.vim6
-rw-r--r--runtime/ftplugin/tmux.vim12
-rw-r--r--runtime/ftplugin/treetop.vim6
-rw-r--r--runtime/ftplugin/tutor.vim19
-rw-r--r--runtime/ftplugin/udevconf.vim6
-rw-r--r--runtime/ftplugin/udevperm.vim6
-rw-r--r--runtime/ftplugin/udevrules.vim6
-rw-r--r--runtime/ftplugin/updatedb.vim6
-rw-r--r--runtime/ftplugin/verilog.vim21
-rw-r--r--runtime/ftplugin/vim.vim5
-rw-r--r--runtime/ftplugin/xdefaults.vim6
-rw-r--r--runtime/ftplugin/xf86conf.vim6
-rw-r--r--runtime/ftplugin/xinetd.vim6
-rw-r--r--runtime/ftplugin/xmodmap.vim6
-rw-r--r--runtime/ftplugin/yaml.vim6
-rw-r--r--runtime/ftplugin/zsh.vim12
-rw-r--r--runtime/indent/ada.vim22
-rw-r--r--runtime/indent/automake.vim6
-rw-r--r--runtime/indent/awk.vim6
-rw-r--r--runtime/indent/bst.vim4
-rw-r--r--runtime/indent/bzl.vim9
-rw-r--r--runtime/indent/cdl.vim20
-rw-r--r--runtime/indent/chaiscript.vim6
-rw-r--r--runtime/indent/clojure.vim8
-rw-r--r--runtime/indent/cmake.vim18
-rw-r--r--runtime/indent/cobol.vim24
-rw-r--r--runtime/indent/config.vim8
-rw-r--r--runtime/indent/context.vim36
-rw-r--r--runtime/indent/css.vim5
-rw-r--r--runtime/indent/cucumber.vim21
-rw-r--r--runtime/indent/dictconf.vim6
-rw-r--r--runtime/indent/dictdconf.vim6
-rw-r--r--runtime/indent/docbk.vim6
-rw-r--r--runtime/indent/dtd.vim48
-rw-r--r--runtime/indent/dylan.vim12
-rw-r--r--runtime/indent/eiffel.vim21
-rw-r--r--runtime/indent/erlang.vim32
-rw-r--r--runtime/indent/eruby.vim39
-rw-r--r--runtime/indent/eterm.vim10
-rw-r--r--runtime/indent/falcon.vim16
-rw-r--r--runtime/indent/fortran.vim25
-rw-r--r--runtime/indent/framescript.vim10
-rw-r--r--runtime/indent/gitconfig.vim9
-rw-r--r--runtime/indent/gitolite.vim16
-rw-r--r--runtime/indent/go.vim22
-rw-r--r--runtime/indent/haml.vim7
-rw-r--r--runtime/indent/hamster.vim4
-rw-r--r--runtime/indent/hog.vim6
-rw-r--r--runtime/indent/html.vim82
-rw-r--r--runtime/indent/idlang.vim14
-rw-r--r--runtime/indent/ishd.vim8
-rw-r--r--runtime/indent/java.vim29
-rw-r--r--runtime/indent/javascript.vim483
-rw-r--r--runtime/indent/json.vim6
-rw-r--r--runtime/indent/ld.vim12
-rw-r--r--runtime/indent/liquid.vim11
-rw-r--r--runtime/indent/logtalk.vim12
-rw-r--r--runtime/indent/lua.vim6
-rw-r--r--runtime/indent/make.vim16
-rw-r--r--runtime/indent/matlab.vim8
-rw-r--r--runtime/indent/mf.vim6
-rw-r--r--runtime/indent/mma.vim2
-rw-r--r--runtime/indent/mp.vim483
-rw-r--r--runtime/indent/ocaml.vim12
-rw-r--r--runtime/indent/occam.vim6
-rw-r--r--runtime/indent/pascal.vim28
-rw-r--r--runtime/indent/perl.vim23
-rw-r--r--runtime/indent/perl6.vim10
-rw-r--r--runtime/indent/php.vim105
-rw-r--r--runtime/indent/postscr.vim6
-rw-r--r--runtime/indent/pov.vim6
-rw-r--r--runtime/indent/prolog.vim8
-rw-r--r--runtime/indent/r.vim28
-rw-r--r--runtime/indent/readline.vim10
-rw-r--r--runtime/indent/rhelp.vim2
-rw-r--r--runtime/indent/rnoweb.vim14
-rw-r--r--runtime/indent/rpl.vim8
-rw-r--r--runtime/indent/rst.vim6
-rw-r--r--runtime/indent/ruby.vim228
-rw-r--r--runtime/indent/rust.vim213
-rw-r--r--runtime/indent/sas.vim138
-rw-r--r--runtime/indent/sass.vim6
-rw-r--r--runtime/indent/scala.vim609
-rw-r--r--runtime/indent/sdl.vim6
-rw-r--r--runtime/indent/sh.vim23
-rw-r--r--runtime/indent/sml.vim14
-rw-r--r--runtime/indent/sqlanywhere.vim24
-rw-r--r--runtime/indent/systemverilog.vim2
-rw-r--r--runtime/indent/tcl.vim6
-rw-r--r--runtime/indent/tcsh.vim6
-rw-r--r--runtime/indent/teraterm.vim24
-rw-r--r--runtime/indent/tex.vim137
-rw-r--r--runtime/indent/tf.vim14
-rw-r--r--runtime/indent/tilde.vim4
-rw-r--r--runtime/indent/treetop.vim10
-rw-r--r--runtime/indent/vb.vim10
-rw-r--r--runtime/indent/verilog.vim38
-rw-r--r--runtime/indent/vhdl.vim51
-rw-r--r--runtime/indent/xf86conf.vim10
-rw-r--r--runtime/indent/xinetd.vim10
-rw-r--r--runtime/indent/xml.vim4
-rw-r--r--runtime/indent/yacc.vim6
-rw-r--r--runtime/indent/yaml.vim49
-rw-r--r--runtime/keymap/armenian-eastern_utf-8.vim4
-rw-r--r--runtime/keymap/armenian-western_utf-8.vim4
-rw-r--r--runtime/keymap/kazakh-jcuken.vim102
-rw-r--r--runtime/keymap/pinyin.vim2
-rw-r--r--runtime/keymap/russian-jcukenmac.vim94
-rw-r--r--runtime/macros/less.vim12
-rw-r--r--runtime/menu.vim126
-rw-r--r--runtime/optwin.vim22
-rw-r--r--runtime/pack/dist/opt/termdebug/plugin/termdebug.vim40
-rw-r--r--runtime/pack/dist/opt/vimball/autoload/vimball.vim2
-rw-r--r--runtime/plugin/gzip.vim12
-rw-r--r--runtime/plugin/man.vim2
-rw-r--r--runtime/plugin/matchit.vim46
-rw-r--r--runtime/plugin/matchparen.vim22
-rw-r--r--runtime/plugin/rplugin.vim6
-rw-r--r--runtime/plugin/tarPlugin.vim1
-rw-r--r--runtime/plugin/zipPlugin.vim8
-rw-r--r--runtime/scripts.vim18
-rw-r--r--runtime/synmenu.vim71
-rw-r--r--runtime/syntax/a2ps.vim6
-rw-r--r--runtime/syntax/a65.vim47
-rw-r--r--runtime/syntax/abap.vim67
-rw-r--r--runtime/syntax/abaqus.vim35
-rw-r--r--runtime/syntax/abc.vim39
-rw-r--r--runtime/syntax/abel.vim81
-rw-r--r--runtime/syntax/acedb.vim51
-rw-r--r--runtime/syntax/aflex.vim54
-rw-r--r--runtime/syntax/ahdl.vim43
-rw-r--r--runtime/syntax/alsaconf.vim6
-rw-r--r--runtime/syntax/amiga.vim47
-rw-r--r--runtime/syntax/aml.vim57
-rw-r--r--runtime/syntax/ampl.vim46
-rw-r--r--runtime/syntax/antlr.vim28
-rw-r--r--runtime/syntax/apache.vim61
-rw-r--r--runtime/syntax/apachestyle.vim31
-rw-r--r--runtime/syntax/aptconf.vim7
-rw-r--r--runtime/syntax/arch.vim6
-rw-r--r--runtime/syntax/arduino.vim13
-rw-r--r--runtime/syntax/asm.vim59
-rw-r--r--runtime/syntax/asm68k.vim111
-rw-r--r--runtime/syntax/asmh8300.vim35
-rw-r--r--runtime/syntax/asn.vim53
-rw-r--r--runtime/syntax/aspperl.vim18
-rw-r--r--runtime/syntax/aspvbs.vim52
-rw-r--r--runtime/syntax/asterisk.vim68
-rw-r--r--runtime/syntax/asteriskvm.vim41
-rw-r--r--runtime/syntax/atlas.vim59
-rw-r--r--runtime/syntax/autohotkey.vim196
-rw-r--r--runtime/syntax/automake.vim52
-rw-r--r--runtime/syntax/ave.vim43
-rw-r--r--runtime/syntax/avra.vim4
-rw-r--r--runtime/syntax/awk.vim12
-rw-r--r--runtime/syntax/ayacc.vim58
-rw-r--r--runtime/syntax/b.vim101
-rw-r--r--runtime/syntax/baan.vim65
-rw-r--r--runtime/syntax/basic.vim49
-rw-r--r--runtime/syntax/bc.vim39
-rw-r--r--runtime/syntax/bdf.vim6
-rw-r--r--runtime/syntax/bib.vim52
-rw-r--r--runtime/syntax/bindzone.vim65
-rw-r--r--runtime/syntax/blank.vim29
-rw-r--r--runtime/syntax/bst.vim45
-rw-r--r--runtime/syntax/btm.vim75
-rw-r--r--runtime/syntax/bzr.vim35
-rw-r--r--runtime/syntax/c.vim88
-rw-r--r--runtime/syntax/cabal.vim37
-rw-r--r--runtime/syntax/calendar.vim6
-rw-r--r--runtime/syntax/cdrdaoconf.vim6
-rw-r--r--runtime/syntax/cdrtoc.vim6
-rw-r--r--runtime/syntax/cf.vim97
-rw-r--r--runtime/syntax/cfg.vim38
-rw-r--r--runtime/syntax/ch.vim35
-rw-r--r--runtime/syntax/change.vim27
-rw-r--r--runtime/syntax/changelog.vim62
-rw-r--r--runtime/syntax/chaskell.vim6
-rw-r--r--runtime/syntax/cheetah.vim35
-rw-r--r--runtime/syntax/chill.vim119
-rw-r--r--runtime/syntax/cl.vim71
-rw-r--r--runtime/syntax/clean.vim79
-rw-r--r--runtime/syntax/clipper.vim49
-rw-r--r--runtime/syntax/clojure.vim2
-rw-r--r--runtime/syntax/cmake.vim514
-rw-r--r--runtime/syntax/cmusrc.vim4
-rw-r--r--runtime/syntax/cobol.vim93
-rw-r--r--runtime/syntax/coco.vim5
-rw-r--r--runtime/syntax/config.vim39
-rw-r--r--runtime/syntax/context.vim119
-rw-r--r--runtime/syntax/cpp.vim62
-rw-r--r--runtime/syntax/crm.vim6
-rw-r--r--runtime/syntax/crontab.vim59
-rw-r--r--runtime/syntax/csc.vim73
-rw-r--r--runtime/syntax/csh.vim99
-rw-r--r--runtime/syntax/csp.vim77
-rw-r--r--runtime/syntax/css.vim268
-rw-r--r--runtime/syntax/cterm.vim81
-rw-r--r--runtime/syntax/cuda.vim13
-rw-r--r--runtime/syntax/cupl.vim63
-rw-r--r--runtime/syntax/cuplsim.vim47
-rw-r--r--runtime/syntax/cvs.vim31
-rw-r--r--runtime/syntax/cvsrc.vim6
-rw-r--r--runtime/syntax/cweb.vim33
-rw-r--r--runtime/syntax/cynlib.vim35
-rw-r--r--runtime/syntax/cynpp.vim30
-rw-r--r--runtime/syntax/datascript.vim5
-rw-r--r--runtime/syntax/dcd.vim33
-rw-r--r--runtime/syntax/dcl.vim88
-rw-r--r--runtime/syntax/debchangelog.vim49
-rw-r--r--runtime/syntax/debcontrol.vim73
-rw-r--r--runtime/syntax/debsources.vim18
-rw-r--r--runtime/syntax/def.vim35
-rw-r--r--runtime/syntax/denyhosts.vim6
-rw-r--r--runtime/syntax/desc.vim66
-rw-r--r--runtime/syntax/desktop.vim67
-rw-r--r--runtime/syntax/dictconf.vim6
-rw-r--r--runtime/syntax/dictdconf.vim6
-rw-r--r--runtime/syntax/diva.vim38
-rw-r--r--runtime/syntax/django.vim41
-rw-r--r--runtime/syntax/dnsmasq.vim6
-rw-r--r--runtime/syntax/docbk.vim32
-rw-r--r--runtime/syntax/dosbatch.vim83
-rw-r--r--runtime/syntax/dosini.vim31
-rw-r--r--runtime/syntax/dot.vim57
-rw-r--r--runtime/syntax/doxygen.vim9
-rw-r--r--runtime/syntax/dracula.vim29
-rw-r--r--runtime/syntax/dtd.vim60
-rw-r--r--runtime/syntax/dtml.vim41
-rw-r--r--runtime/syntax/dtrace.vim13
-rw-r--r--runtime/syntax/dylan.vim71
-rw-r--r--runtime/syntax/dylanintr.vim37
-rw-r--r--runtime/syntax/dylanlid.vim27
-rw-r--r--runtime/syntax/ecd.vim36
-rw-r--r--runtime/syntax/edif.vim39
-rw-r--r--runtime/syntax/eiffel.vim95
-rw-r--r--runtime/syntax/elf.vim49
-rw-r--r--runtime/syntax/elinks.vim6
-rw-r--r--runtime/syntax/elmfilt.vim52
-rw-r--r--runtime/syntax/erlang.vim245
-rw-r--r--runtime/syntax/eruby.vim2
-rw-r--r--runtime/syntax/esmtprc.vim7
-rw-r--r--runtime/syntax/esqlc.vim35
-rw-r--r--runtime/syntax/esterel.vim36
-rw-r--r--runtime/syntax/eterm.vim6
-rw-r--r--runtime/syntax/euphoria3.vim6
-rw-r--r--runtime/syntax/euphoria4.vim6
-rw-r--r--runtime/syntax/eviews.vim61
-rw-r--r--runtime/syntax/exim.vim40
-rw-r--r--runtime/syntax/expect.vim55
-rw-r--r--runtime/syntax/exports.vim44
-rw-r--r--runtime/syntax/falcon.vim54
-rw-r--r--runtime/syntax/fasm.vim5
-rw-r--r--runtime/syntax/fdcc.vim97
-rw-r--r--runtime/syntax/fetchmail.vim6
-rw-r--r--runtime/syntax/fgl.vim37
-rw-r--r--runtime/syntax/flexwiki.vim6
-rw-r--r--runtime/syntax/focexec.vim45
-rw-r--r--runtime/syntax/form.vim91
-rw-r--r--runtime/syntax/forth.vim101
-rw-r--r--runtime/syntax/fortran.vim48
-rw-r--r--runtime/syntax/foxpro.vim55
-rw-r--r--runtime/syntax/framescript.vim6
-rw-r--r--runtime/syntax/fstab.vim112
-rw-r--r--runtime/syntax/fvwm2m4.vim21
-rw-r--r--runtime/syntax/gdb.vim39
-rw-r--r--runtime/syntax/gdmo.vim45
-rw-r--r--runtime/syntax/gedcom.vim35
-rw-r--r--runtime/syntax/gitcommit.vim9
-rw-r--r--runtime/syntax/gitolite.vim150
-rw-r--r--runtime/syntax/gitrebase.vim4
-rw-r--r--runtime/syntax/gitsendemail.vim8
-rw-r--r--runtime/syntax/gkrellmrc.vim58
-rw-r--r--runtime/syntax/gnash.vim7
-rw-r--r--runtime/syntax/gnuplot.vim91
-rw-r--r--runtime/syntax/godoc.vim4
-rw-r--r--runtime/syntax/gp.vim48
-rw-r--r--runtime/syntax/gpg.vim6
-rw-r--r--runtime/syntax/grads.vim41
-rw-r--r--runtime/syntax/gretl.vim59
-rw-r--r--runtime/syntax/groovy.vim168
-rw-r--r--runtime/syntax/group.vim6
-rw-r--r--runtime/syntax/grub.vim6
-rw-r--r--runtime/syntax/gsp.vim19
-rw-r--r--runtime/syntax/gtkrc.vim110
-rw-r--r--runtime/syntax/haml.vim4
-rw-r--r--runtime/syntax/hamster.vim28
-rw-r--r--runtime/syntax/haskell.vim120
-rw-r--r--runtime/syntax/haste.vim7
-rw-r--r--runtime/syntax/hastepreproc.vim19
-rw-r--r--runtime/syntax/hb.vim47
-rw-r--r--runtime/syntax/help.vim12
-rw-r--r--runtime/syntax/hercules.vim48
-rw-r--r--runtime/syntax/hex.vim49
-rw-r--r--runtime/syntax/hitest.vim13
-rw-r--r--runtime/syntax/hog.vim5
-rw-r--r--runtime/syntax/hostconf.vim6
-rw-r--r--runtime/syntax/hostsaccess.vim8
-rw-r--r--runtime/syntax/html.vim186
-rw-r--r--runtime/syntax/htmlcheetah.vim18
-rw-r--r--runtime/syntax/htmldjango.vim18
-rw-r--r--runtime/syntax/htmlm4.vim20
-rw-r--r--runtime/syntax/htmlos.vim77
-rw-r--r--runtime/syntax/ia64.vim71
-rw-r--r--runtime/syntax/icemenu.vim6
-rw-r--r--runtime/syntax/icon.vim97
-rw-r--r--runtime/syntax/idl.vim172
-rw-r--r--runtime/syntax/idlang.vim53
-rw-r--r--runtime/syntax/indent.vim10
-rw-r--r--runtime/syntax/inform.vim112
-rw-r--r--runtime/syntax/initex.vim8
-rw-r--r--runtime/syntax/inittab.vim44
-rw-r--r--runtime/syntax/ipfilter.vim7
-rw-r--r--runtime/syntax/ishd.vim51
-rw-r--r--runtime/syntax/iss.vim73
-rw-r--r--runtime/syntax/ist.vim45
-rw-r--r--runtime/syntax/jal.vim137
-rw-r--r--runtime/syntax/jam.vim167
-rw-r--r--runtime/syntax/jargon.vim27
-rw-r--r--runtime/syntax/java.vim186
-rw-r--r--runtime/syntax/javacc.vim35
-rw-r--r--runtime/syntax/javascript.vim92
-rw-r--r--runtime/syntax/jess.vim63
-rw-r--r--runtime/syntax/jgraph.vim31
-rw-r--r--runtime/syntax/jproperties.vim41
-rw-r--r--runtime/syntax/json.vim59
-rw-r--r--runtime/syntax/jsp.vim49
-rw-r--r--runtime/syntax/kix.vim88
-rw-r--r--runtime/syntax/kscript.vim49
-rw-r--r--runtime/syntax/kwt.vim47
-rw-r--r--runtime/syntax/lace.vim85
-rw-r--r--runtime/syntax/latte.vim41
-rw-r--r--runtime/syntax/ld.vim6
-rw-r--r--runtime/syntax/ldapconf.vim6
-rw-r--r--runtime/syntax/ldif.vim32
-rw-r--r--runtime/syntax/lex.vim47
-rw-r--r--runtime/syntax/lftp.vim6
-rw-r--r--runtime/syntax/lhaskell.vim50
-rw-r--r--runtime/syntax/libao.vim6
-rw-r--r--runtime/syntax/lifelines.vim75
-rw-r--r--runtime/syntax/lilo.vim128
-rw-r--r--runtime/syntax/limits.vim6
-rw-r--r--runtime/syntax/lisp.vim46
-rw-r--r--runtime/syntax/lite.vim61
-rw-r--r--runtime/syntax/litestep.vim6
-rw-r--r--runtime/syntax/loginaccess.vim6
-rw-r--r--runtime/syntax/logindefs.vim6
-rw-r--r--runtime/syntax/logtalk.vim71
-rw-r--r--runtime/syntax/lotos.vim33
-rw-r--r--runtime/syntax/lout.vim78
-rw-r--r--runtime/syntax/lpc.vim171
-rw-r--r--runtime/syntax/lprolog.vim67
-rw-r--r--runtime/syntax/lscript.vim53
-rw-r--r--runtime/syntax/lss.vim112
-rw-r--r--runtime/syntax/lua.vim61
-rw-r--r--runtime/syntax/m4.vim51
-rw-r--r--runtime/syntax/mailaliases.vim6
-rw-r--r--runtime/syntax/make.vim63
-rw-r--r--runtime/syntax/man.vim5
-rw-r--r--runtime/syntax/manconf.vim6
-rw-r--r--runtime/syntax/maple.vim145
-rw-r--r--runtime/syntax/markdown.vim31
-rw-r--r--runtime/syntax/mason.vim92
-rw-r--r--runtime/syntax/master.vim29
-rw-r--r--runtime/syntax/matlab.vim87
-rw-r--r--runtime/syntax/maxima.vim63
-rw-r--r--runtime/syntax/mel.vim77
-rw-r--r--runtime/syntax/mf.vim388
-rw-r--r--runtime/syntax/mgl.vim69
-rw-r--r--runtime/syntax/mgp.vim44
-rw-r--r--runtime/syntax/mma.vim78
-rw-r--r--runtime/syntax/mmix.vim71
-rw-r--r--runtime/syntax/mmp.vim10
-rw-r--r--runtime/syntax/modconf.vim6
-rw-r--r--runtime/syntax/modsim3.vim46
-rw-r--r--runtime/syntax/modula2.vim45
-rw-r--r--runtime/syntax/modula3.vim29
-rw-r--r--runtime/syntax/monk.vim55
-rw-r--r--runtime/syntax/moo.vim4
-rw-r--r--runtime/syntax/mp.vim853
-rw-r--r--runtime/syntax/msidl.vim63
-rw-r--r--runtime/syntax/msmessages.vim7
-rw-r--r--runtime/syntax/msql.vim71
-rw-r--r--runtime/syntax/mupad.vim40
-rw-r--r--runtime/syntax/murphi.vim127
-rw-r--r--runtime/syntax/mush.vim58
-rw-r--r--runtime/syntax/muttrc.vim669
-rw-r--r--runtime/syntax/mysql.vim39
-rw-r--r--runtime/syntax/n1ql.vim434
-rw-r--r--runtime/syntax/named.vim91
-rw-r--r--runtime/syntax/nanorc.vim6
-rw-r--r--runtime/syntax/nasm.vim215
-rw-r--r--runtime/syntax/nastran.vim60
-rw-r--r--runtime/syntax/natural.vim108
-rw-r--r--runtime/syntax/ncf.vim65
-rw-r--r--runtime/syntax/neomuttrc.vim1032
-rw-r--r--runtime/syntax/netrc.vim6
-rw-r--r--runtime/syntax/netrw.vim5
-rw-r--r--runtime/syntax/nqc.vim87
-rw-r--r--runtime/syntax/nroff.vim109
-rw-r--r--runtime/syntax/nsis.vim79
-rw-r--r--runtime/syntax/obj.vim45
-rw-r--r--runtime/syntax/objcpp.vim18
-rw-r--r--runtime/syntax/ocaml.vim141
-rw-r--r--runtime/syntax/occam.vim66
-rw-r--r--runtime/syntax/omnimark.vim39
-rw-r--r--runtime/syntax/openroad.vim46
-rw-r--r--runtime/syntax/opl.vim31
-rw-r--r--runtime/syntax/ora.vim52
-rw-r--r--runtime/syntax/pamconf.vim6
-rw-r--r--runtime/syntax/papp.vim29
-rw-r--r--runtime/syntax/pascal.vim87
-rw-r--r--runtime/syntax/passwd.vim6
-rw-r--r--runtime/syntax/pcap.vim31
-rw-r--r--runtime/syntax/pccts.vim59
-rw-r--r--runtime/syntax/perl.vim389
-rw-r--r--runtime/syntax/perl6.vim335
-rw-r--r--runtime/syntax/pfmain.vim48
-rw-r--r--runtime/syntax/php.vim719
-rw-r--r--runtime/syntax/pic.vim57
-rw-r--r--runtime/syntax/pike.vim87
-rw-r--r--runtime/syntax/pilrc.vim46
-rw-r--r--runtime/syntax/pine.vim31
-rw-r--r--runtime/syntax/pinfo.vim6
-rw-r--r--runtime/syntax/plaintex.vim6
-rw-r--r--runtime/syntax/pli.vim94
-rw-r--r--runtime/syntax/plm.vim71
-rw-r--r--runtime/syntax/plp.vim18
-rw-r--r--runtime/syntax/plsql.vim89
-rw-r--r--runtime/syntax/po.vim107
-rw-r--r--runtime/syntax/pod.vim42
-rw-r--r--runtime/syntax/postscr.vim123
-rw-r--r--runtime/syntax/pov.vim10
-rw-r--r--runtime/syntax/povini.vim10
-rw-r--r--runtime/syntax/ppd.vim39
-rw-r--r--runtime/syntax/ppwiz.vim47
-rw-r--r--runtime/syntax/prescribe.vim31
-rw-r--r--runtime/syntax/procmail.vim43
-rw-r--r--runtime/syntax/progress.vim75
-rw-r--r--runtime/syntax/prolog.vim78
-rw-r--r--runtime/syntax/promela.vim7
-rw-r--r--runtime/syntax/proto.vim5
-rw-r--r--runtime/syntax/protocols.vim6
-rw-r--r--runtime/syntax/psf.vim38
-rw-r--r--runtime/syntax/ptcap.vim54
-rw-r--r--runtime/syntax/purifylog.vim97
-rw-r--r--runtime/syntax/pyrex.vim42
-rw-r--r--runtime/syntax/python.vim166
-rw-r--r--runtime/syntax/quake.vim8
-rw-r--r--runtime/syntax/r.vim179
-rw-r--r--runtime/syntax/racc.vim6
-rw-r--r--runtime/syntax/radiance.vim49
-rw-r--r--runtime/syntax/ratpoison.vim47
-rw-r--r--runtime/syntax/rc.vim95
-rw-r--r--runtime/syntax/rcs.vim33
-rw-r--r--runtime/syntax/rcslog.vim25
-rw-r--r--runtime/syntax/readline.vim9
-rw-r--r--runtime/syntax/rebol.vim119
-rw-r--r--runtime/syntax/redif.vim6
-rw-r--r--runtime/syntax/registry.vim40
-rw-r--r--runtime/syntax/remind.vim50
-rw-r--r--runtime/syntax/resolv.vim60
-rw-r--r--runtime/syntax/reva.vim9
-rw-r--r--runtime/syntax/rexx.vim139
-rw-r--r--runtime/syntax/rhelp.vim3
-rw-r--r--runtime/syntax/rib.vim29
-rw-r--r--runtime/syntax/rmd.vim94
-rw-r--r--runtime/syntax/rnc.vim6
-rw-r--r--runtime/syntax/robots.vim38
-rw-r--r--runtime/syntax/rpcgen.vim49
-rw-r--r--runtime/syntax/rpl.vim139
-rw-r--r--runtime/syntax/rrst.vim4
-rw-r--r--runtime/syntax/rst.vim14
-rw-r--r--runtime/syntax/rtf.vim55
-rw-r--r--runtime/syntax/ruby.vim439
-rw-r--r--runtime/syntax/rust.vim295
-rw-r--r--runtime/syntax/samba.vim33
-rw-r--r--runtime/syntax/sas.vim521
-rw-r--r--runtime/syntax/sass.vim12
-rw-r--r--runtime/syntax/sather.vim71
-rw-r--r--runtime/syntax/sbt.vim32
-rw-r--r--runtime/syntax/scala.vim232
-rw-r--r--runtime/syntax/scheme.vim53
-rw-r--r--runtime/syntax/scilab.vim83
-rw-r--r--runtime/syntax/sd.vim38
-rw-r--r--runtime/syntax/sdl.vim60
-rw-r--r--runtime/syntax/sed.vim80
-rw-r--r--runtime/syntax/sendpr.vim7
-rw-r--r--runtime/syntax/sensors.vim6
-rw-r--r--runtime/syntax/services.vim6
-rw-r--r--runtime/syntax/setserial.vim6
-rw-r--r--runtime/syntax/sgml.vim7
-rw-r--r--runtime/syntax/sgmldecl.vim45
-rw-r--r--runtime/syntax/sgmllnx.vim45
-rw-r--r--runtime/syntax/sh.vim381
-rw-r--r--runtime/syntax/sicad.vim79
-rw-r--r--runtime/syntax/sieve.vim6
-rw-r--r--runtime/syntax/simula.vim66
-rw-r--r--runtime/syntax/sinda.vim69
-rw-r--r--runtime/syntax/sindacmp.vim31
-rw-r--r--runtime/syntax/sindaout.vim57
-rw-r--r--runtime/syntax/sisu.vim10
-rw-r--r--runtime/syntax/skill.vim55
-rw-r--r--runtime/syntax/sl.vim71
-rw-r--r--runtime/syntax/slang.vim75
-rw-r--r--runtime/syntax/slice.vim47
-rw-r--r--runtime/syntax/slpconf.vim6
-rw-r--r--runtime/syntax/slpreg.vim6
-rw-r--r--runtime/syntax/slpspi.vim6
-rw-r--r--runtime/syntax/slrnrc.vim73
-rw-r--r--runtime/syntax/slrnsc.vim55
-rw-r--r--runtime/syntax/sm.vim54
-rw-r--r--runtime/syntax/smarty.vim36
-rw-r--r--runtime/syntax/smcl.vim5
-rw-r--r--runtime/syntax/smil.vim61
-rw-r--r--runtime/syntax/smith.vim33
-rw-r--r--runtime/syntax/sml.vim109
-rw-r--r--runtime/syntax/snnsnet.vim26
-rw-r--r--runtime/syntax/snnspat.vim32
-rw-r--r--runtime/syntax/snnsres.vim30
-rw-r--r--runtime/syntax/snobol4.vim75
-rw-r--r--runtime/syntax/spec.vim137
-rw-r--r--runtime/syntax/specman.vim79
-rw-r--r--runtime/syntax/spice.vim41
-rw-r--r--runtime/syntax/splint.vim111
-rw-r--r--runtime/syntax/spup.vim125
-rw-r--r--runtime/syntax/spyce.vim17
-rw-r--r--runtime/syntax/sql.vim7
-rw-r--r--runtime/syntax/sqlanywhere.vim7
-rw-r--r--runtime/syntax/sqlforms.vim52
-rw-r--r--runtime/syntax/sqlhana.vim7
-rw-r--r--runtime/syntax/sqlinformix.vim73
-rw-r--r--runtime/syntax/sqlj.vim39
-rw-r--r--runtime/syntax/sqloracle.vim26
-rw-r--r--runtime/syntax/sqr.vim119
-rw-r--r--runtime/syntax/squid.vim41
-rw-r--r--runtime/syntax/srec.vim47
-rw-r--r--runtime/syntax/sshconfig.vim77
-rw-r--r--runtime/syntax/sshdconfig.vim86
-rw-r--r--runtime/syntax/st.vim45
-rw-r--r--runtime/syntax/stata.vim5
-rw-r--r--runtime/syntax/stp.vim57
-rw-r--r--runtime/syntax/strace.vim48
-rw-r--r--runtime/syntax/sudoers.vim6
-rw-r--r--runtime/syntax/svn.vim37
-rw-r--r--runtime/syntax/synload.vim9
-rw-r--r--runtime/syntax/sysctl.vim6
-rw-r--r--runtime/syntax/systemverilog.vim40
-rw-r--r--runtime/syntax/tads.vim95
-rw-r--r--runtime/syntax/tags.vim50
-rw-r--r--runtime/syntax/tak.vim71
-rw-r--r--runtime/syntax/takcmp.vim35
-rw-r--r--runtime/syntax/takout.vim53
-rw-r--r--runtime/syntax/tap.vim97
-rw-r--r--runtime/syntax/taskdata.vim7
-rw-r--r--runtime/syntax/taskedit.vim7
-rw-r--r--runtime/syntax/tasm.vim45
-rw-r--r--runtime/syntax/tcl.vim79
-rw-r--r--runtime/syntax/teraterm.vim6
-rw-r--r--runtime/syntax/terminfo.vim6
-rw-r--r--runtime/syntax/tex.vim270
-rw-r--r--runtime/syntax/texinfo.vim79
-rw-r--r--runtime/syntax/texmf.vim56
-rw-r--r--runtime/syntax/tf.vim73
-rw-r--r--runtime/syntax/tli.vim39
-rw-r--r--runtime/syntax/tmux.vim124
-rw-r--r--runtime/syntax/tpp.vim57
-rw-r--r--runtime/syntax/trasys.vim71
-rw-r--r--runtime/syntax/treetop.vim6
-rw-r--r--runtime/syntax/trustees.vim5
-rw-r--r--runtime/syntax/tsalt.vim77
-rw-r--r--runtime/syntax/tsscl.vim59
-rw-r--r--runtime/syntax/tssgm.vim55
-rw-r--r--runtime/syntax/tssop.vim45
-rw-r--r--runtime/syntax/tt2.vim6
-rw-r--r--runtime/syntax/tutor.vim22
-rw-r--r--runtime/syntax/uc.vim113
-rw-r--r--runtime/syntax/udevconf.vim6
-rw-r--r--runtime/syntax/udevperm.vim6
-rw-r--r--runtime/syntax/udevrules.vim6
-rw-r--r--runtime/syntax/uil.vim58
-rw-r--r--runtime/syntax/updatedb.vim6
-rw-r--r--runtime/syntax/upstart.vim5
-rw-r--r--runtime/syntax/vb.vim61
-rw-r--r--runtime/syntax/vera.vim131
-rw-r--r--runtime/syntax/verilog.vim59
-rw-r--r--runtime/syntax/verilogams.vim59
-rw-r--r--runtime/syntax/vhdl.vim53
-rw-r--r--runtime/syntax/vim.vim379
-rw-r--r--runtime/syntax/virata.vim110
-rw-r--r--runtime/syntax/vmasm.vim95
-rw-r--r--runtime/syntax/vrml.vim75
-rw-r--r--runtime/syntax/vroom.vim7
-rw-r--r--runtime/syntax/vsejcl.vim33
-rw-r--r--runtime/syntax/wdiff.vim28
-rw-r--r--runtime/syntax/web.vim15
-rw-r--r--runtime/syntax/webmacro.vim51
-rw-r--r--runtime/syntax/winbatch.vim39
-rw-r--r--runtime/syntax/wml.vim64
-rw-r--r--runtime/syntax/wsml.vim76
-rw-r--r--runtime/syntax/xdefaults.vim57
-rw-r--r--runtime/syntax/xf86conf.vim8
-rw-r--r--runtime/syntax/xinetd.vim6
-rw-r--r--runtime/syntax/xkb.vim74
-rw-r--r--runtime/syntax/xmath.vim65
-rw-r--r--runtime/syntax/xmodmap.vim6
-rw-r--r--runtime/syntax/xpm.vim40
-rw-r--r--runtime/syntax/xpm2.vim51
-rw-r--r--runtime/syntax/xs.vim3983
-rw-r--r--runtime/syntax/xxd.vim28
-rw-r--r--runtime/syntax/yacc.vim11
-rw-r--r--runtime/syntax/z8a.vim45
-rw-r--r--runtime/syntax/zsh.vim418
-rw-r--r--runtime/tutor/en/vim-01-beginner.tutor404
-rw-r--r--runtime/tutor/en/vim-01-beginner.tutor.json45
-rw-r--r--runtime/tutor/tutor.tutor118
-rw-r--r--runtime/tutor/tutor.tutor.json35
-rw-r--r--runtime/vimrc_example.vim56
876 files changed, 27978 insertions, 23669 deletions
diff --git a/runtime/CMakeLists.txt b/runtime/CMakeLists.txt
index 69498dc1a1..6dbe049232 100644
--- a/runtime/CMakeLists.txt
+++ b/runtime/CMakeLists.txt
@@ -71,6 +71,7 @@ foreach(DF ${DOCFILES})
endforeach()
add_custom_target(helptags
+ COMMAND ${CMAKE_COMMAND} -E remove_directory ${GENERATED_RUNTIME_DIR}/doc
COMMAND ${CMAKE_COMMAND} -E copy_directory
${PROJECT_SOURCE_DIR}/runtime/doc ${GENERATED_RUNTIME_DIR}/doc
COMMAND "${PROJECT_BINARY_DIR}/bin/nvim"
@@ -100,20 +101,6 @@ add_custom_target(
${GENERATED_PACKAGE_TAGS}
)
-# Optional targets for nvim.desktop file and icon.
-find_program(XDG_MENU_PRG xdg-desktop-menu)
-find_program(XDG_ICON_PRG xdg-icon-resource)
-if(XDG_MENU_PRG)
- add_custom_target(desktop-file
- COMMAND xdg-desktop-menu install --novendor ${PROJECT_SOURCE_DIR}/runtime/nvim.desktop)
- # add_dependencies(runtime desktop-file)
-endif()
-if(XDG_ICON_PRG)
- add_custom_target(desktop-icon
- COMMAND xdg-icon-resource install --novendor --size 128 ${PROJECT_SOURCE_DIR}/runtime/nvim.png)
- # add_dependencies(runtime desktop-icon)
-endif()
-
# CMake is painful here. It will create the destination using the user's
# current umask, and we don't want that. And we don't just want to install
# the target directory, as it will mess with existing permissions. So this
@@ -128,6 +115,16 @@ install_helper(
FILES ${GENERATED_SYN_VIM}
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/nvim/runtime/syntax/vim)
+if(NOT APPLE)
+ install_helper(
+ FILES ${CMAKE_CURRENT_SOURCE_DIR}/nvim.desktop
+ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications)
+
+ install_helper(
+ FILES ${CMAKE_CURRENT_SOURCE_DIR}/nvim.png
+ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/pixmaps)
+endif()
+
file(GLOB_RECURSE RUNTIME_PROGRAMS
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
*.awk *.sh *.bat)
@@ -140,6 +137,7 @@ endforeach()
file(GLOB_RECURSE RUNTIME_FILES
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ rgb.txt
*.vim *.dict *.py *.rb *.ps *.tutor)
foreach(F ${RUNTIME_FILES})
diff --git a/runtime/autoload/ada.vim b/runtime/autoload/ada.vim
index cc5191fa43..d04feb9250 100644
--- a/runtime/autoload/ada.vim
+++ b/runtime/autoload/ada.vim
@@ -2,12 +2,13 @@
" Description: Perform Ada specific completion & tagging.
" Language: Ada (2005)
" $Id: ada.vim 887 2008-07-08 14:29:01Z krischik $
-" Maintainer: Martin Krischik <krischik@users.sourceforge.net>
+" Maintainer: Mathias Brousset <mathiasb17@gmail.com>
+" Martin Krischik <krischik@users.sourceforge.net>
" Taylor Venable <taylor@metasyntax.net>
" Neil Bird <neil@fnxweb.com>
" Ned Okie <nokie@radford.edu>
" $Author: krischik $
-" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
+" $Date: 2017-01-31 20:20:05 +0200 (Mon, 01 Jan 2017) $
" Version: 4.6
" $Revision: 887 $
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/ada.vim $
@@ -23,6 +24,7 @@
" 09.05.2007 MK Session just won't work no matter how much
" tweaking is done
" 19.09.2007 NO still some mapleader problems
+" 31.01.2017 MB fix more mapleader problems
" Help Page: ft-ada-functions
"------------------------------------------------------------------------------
@@ -585,11 +587,11 @@ function ada#Map_Menu (Text, Keys, Command)
\ " :" . a:Command . "<CR>"
execute
\ "nnoremap <buffer>" .
- \ escape(l:leader . "a" . a:Keys , '\') .
+ \ " <Leader>a" . a:Keys .
\" :" . a:Command
execute
\ "inoremap <buffer>" .
- \ escape(l:leader . "a" . a:Keys , '\') .
+ \ " <Leader>a" . a:Keys .
\" <C-O>:" . a:Command
endif
return
diff --git a/runtime/autoload/context.vim b/runtime/autoload/context.vim
new file mode 100644
index 0000000000..254d710c01
--- /dev/null
+++ b/runtime/autoload/context.vim
@@ -0,0 +1,184 @@
+" Language: ConTeXt typesetting engine
+" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
+" Latest Revision: 2016 Oct 21
+
+let s:keepcpo= &cpo
+set cpo&vim
+
+" Helper functions {{{
+function! s:context_echo(message, mode)
+ redraw
+ echo "\r"
+ execute 'echohl' a:mode
+ echomsg '[ConTeXt]' a:message
+ echohl None
+endf
+
+function! s:sh()
+ return has('win32') || has('win64') || has('win16') || has('win95')
+ \ ? ['cmd.exe', '/C']
+ \ : ['/bin/sh', '-c']
+endfunction
+
+" For backward compatibility
+if exists('*win_getid')
+
+ function! s:win_getid()
+ return win_getid()
+ endf
+
+ function! s:win_id2win(winid)
+ return win_id2win(a:winid)
+ endf
+
+else
+
+ function! s:win_getid()
+ return winnr()
+ endf
+
+ function! s:win_id2win(winnr)
+ return a:winnr
+ endf
+
+endif
+" }}}
+
+" ConTeXt jobs {{{
+if has('job')
+
+ let g:context_jobs = []
+
+ " Print the status of ConTeXt jobs
+ function! context#job_status()
+ let l:jobs = filter(g:context_jobs, 'job_status(v:val) == "run"')
+ let l:n = len(l:jobs)
+ call s:context_echo(
+ \ 'There '.(l:n == 1 ? 'is' : 'are').' '.(l:n == 0 ? 'no' : l:n)
+ \ .' job'.(l:n == 1 ? '' : 's').' running'
+ \ .(l:n == 0 ? '.' : ' (' . join(l:jobs, ', ').').'),
+ \ 'ModeMsg')
+ endfunction
+
+ " Stop all ConTeXt jobs
+ function! context#stop_jobs()
+ let l:jobs = filter(g:context_jobs, 'job_status(v:val) == "run"')
+ for job in l:jobs
+ call job_stop(job)
+ endfor
+ sleep 1
+ let l:tmp = []
+ for job in l:jobs
+ if job_status(job) == "run"
+ call add(l:tmp, job)
+ endif
+ endfor
+ let g:context_jobs = l:tmp
+ if empty(g:context_jobs)
+ call s:context_echo('Done. No jobs running.', 'ModeMsg')
+ else
+ call s:context_echo('There are still some jobs running. Please try again.', 'WarningMsg')
+ endif
+ endfunction
+
+ function! context#callback(path, job, status)
+ if index(g:context_jobs, a:job) != -1 && job_status(a:job) != 'run' " just in case
+ call remove(g:context_jobs, index(g:context_jobs, a:job))
+ endif
+ call s:callback(a:path, a:job, a:status)
+ endfunction
+
+ function! context#close_cb(channel)
+ call job_status(ch_getjob(a:channel)) " Trigger exit_cb's callback for faster feedback
+ endfunction
+
+ function! s:typeset(path)
+ call add(g:context_jobs,
+ \ job_start(add(s:sh(), context#command() . ' ' . shellescape(fnamemodify(a:path, ":t"))), {
+ \ 'close_cb' : 'context#close_cb',
+ \ 'exit_cb' : function(get(b:, 'context_callback', get(g:, 'context_callback', 'context#callback')),
+ \ [a:path]),
+ \ 'in_io' : 'null'
+ \ }))
+ endfunction
+
+else " No jobs
+
+ function! context#job_status()
+ call s:context_echo('Not implemented', 'WarningMsg')
+ endfunction!
+
+ function! context#stop_jobs()
+ call s:context_echo('Not implemented', 'WarningMsg')
+ endfunction
+
+ function! context#callback(path, job, status)
+ call s:callback(a:path, a:job, a:status)
+ endfunction
+
+ function! s:typeset(path)
+ execute '!' . context#command() . ' ' . shellescape(fnamemodify(a:path, ":t"))
+ call call(get(b:, 'context_callback', get(g:, 'context_callback', 'context#callback')),
+ \ [a:path, 0, v:shell_error])
+ endfunction
+
+endif " has('job')
+
+function! s:callback(path, job, status) abort
+ if a:status < 0 " Assume the job was terminated
+ return
+ endif
+ " Get info about the current window
+ let l:winid = s:win_getid() " Save window id
+ let l:efm = &l:errorformat " Save local errorformat
+ let l:cwd = fnamemodify(getcwd(), ":p") " Save local working directory
+ " Set errorformat to parse ConTeXt errors
+ execute 'setl efm=' . escape(b:context_errorformat, ' ')
+ try " Set cwd to expand error file correctly
+ execute 'lcd' fnameescape(fnamemodify(a:path, ':h'))
+ catch /.*/
+ execute 'setl efm=' . escape(l:efm, ' ')
+ throw v:exception
+ endtry
+ try
+ execute 'cgetfile' fnameescape(fnamemodify(a:path, ':r') . '.log')
+ botright cwindow
+ finally " Restore cwd and errorformat
+ execute s:win_id2win(l:winid) . 'wincmd w'
+ execute 'lcd ' . fnameescape(l:cwd)
+ execute 'setl efm=' . escape(l:efm, ' ')
+ endtry
+ if a:status == 0
+ call s:context_echo('Success!', 'ModeMsg')
+ else
+ call s:context_echo('There are errors. ', 'ErrorMsg')
+ endif
+endfunction
+
+function! context#command()
+ return get(b:, 'context_mtxrun', get(g:, 'context_mtxrun', 'mtxrun'))
+ \ . ' --script context --autogenerate --nonstopmode'
+ \ . ' --synctex=' . (get(b:, 'context_synctex', get(g:, 'context_synctex', 0)) ? '1' : '0')
+ \ . ' ' . get(b:, 'context_extra_options', get(g:, 'context_extra_options', ''))
+endfunction
+
+" Accepts an optional path (useful for big projects, when the file you are
+" editing is not the project's root document). If no argument is given, uses
+" the path of the current buffer.
+function! context#typeset(...) abort
+ let l:path = fnamemodify(strlen(a:000[0]) > 0 ? a:1 : expand("%"), ":p")
+ let l:cwd = fnamemodify(getcwd(), ":p") " Save local working directory
+ call s:context_echo('Typesetting...', 'ModeMsg')
+ execute 'lcd' fnameescape(fnamemodify(l:path, ":h"))
+ try
+ call s:typeset(l:path)
+ finally " Restore local working directory
+ execute 'lcd ' . fnameescape(l:cwd)
+ endtry
+endfunction!
+"}}}
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
+" vim: sw=2 fdm=marker
diff --git a/runtime/autoload/contextcomplete.vim b/runtime/autoload/contextcomplete.vim
new file mode 100644
index 0000000000..5b93bb0986
--- /dev/null
+++ b/runtime/autoload/contextcomplete.vim
@@ -0,0 +1,25 @@
+" Language: ConTeXt typesetting engine
+" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
+" Latest Revision: 2016 Oct 15
+
+let s:keepcpo= &cpo
+set cpo&vim
+
+" Complete keywords in MetaPost blocks
+function! contextcomplete#Complete(findstart, base)
+ if a:findstart == 1
+ if len(synstack(line('.'), 1)) > 0 &&
+ \ synIDattr(synstack(line('.'), 1)[0], "name") ==# 'contextMPGraphic'
+ return syntaxcomplete#Complete(a:findstart, a:base)
+ else
+ return -3
+ endif
+ else
+ return syntaxcomplete#Complete(a:findstart, a:base)
+ endif
+endfunction
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
+" vim: sw=2 fdm=marker
diff --git a/runtime/autoload/gzip.vim b/runtime/autoload/gzip.vim
index a6b4605b06..e4adec0947 100644
--- a/runtime/autoload/gzip.vim
+++ b/runtime/autoload/gzip.vim
@@ -1,6 +1,6 @@
" Vim autoload file for editing compressed files.
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2014 Nov 05
+" Last Change: 2016 Sep 28
" These functions are used by the gzip plugin.
@@ -63,6 +63,9 @@ fun gzip#read(cmd)
" set 'modifiable'
let ma_save = &ma
setlocal ma
+ " set 'write'
+ let write_save = &write
+ set write
" Reset 'foldenable', otherwise line numbers get adjusted.
if has("folding")
let fen_save = &fen
@@ -127,6 +130,7 @@ fun gzip#read(cmd)
let &pm = pm_save
let &cpo = cpo_save
let &l:ma = ma_save
+ let &write = write_save
if has("folding")
let &l:fen = fen_save
endif
diff --git a/runtime/autoload/health.vim b/runtime/autoload/health.vim
index b0791eb19d..53d45afc2e 100644
--- a/runtime/autoload/health.vim
+++ b/runtime/autoload/health.vim
@@ -1,24 +1,24 @@
function! s:enhance_syntax() abort
syntax case match
- syntax keyword healthError ERROR
+ syntax keyword healthError ERROR[:]
\ containedin=markdownCodeBlock,mkdListItemLine
- highlight link healthError Error
+ highlight default link healthError Error
- syntax keyword healthWarning WARNING
+ syntax keyword healthWarning WARNING[:]
\ containedin=markdownCodeBlock,mkdListItemLine
- highlight link healthWarning WarningMsg
+ highlight default link healthWarning WarningMsg
- syntax keyword healthSuccess SUCCESS
+ syntax keyword healthSuccess OK[:]
\ containedin=markdownCodeBlock,mkdListItemLine
- highlight healthSuccess guibg=#5fff00 guifg=#080808 ctermbg=82 ctermfg=232
+ highlight default healthSuccess guibg=#5fff00 guifg=#080808 ctermbg=82 ctermfg=232
syntax match healthHelp "|.\{-}|" contains=healthBar
\ containedin=markdownCodeBlock,mkdListItemLine
syntax match healthBar "|" contained conceal
- highlight link healthHelp Identifier
+ highlight default link healthHelp Identifier
- " We do not care about markdown syntax errors in :CheckHealth output.
+ " We do not care about markdown syntax errors in :checkhealth output.
highlight! link markdownError Normal
endfunction
@@ -34,6 +34,7 @@ function! health#check(plugin_names) abort
setlocal filetype=markdown
setlocal conceallevel=2 concealcursor=nc
setlocal keywordprg=:help
+ let &l:iskeyword='!-~,^*,^|,^",192-255'
call s:enhance_syntax()
if empty(healthchecks)
@@ -66,6 +67,7 @@ function! health#check(plugin_names) abort
" needed for plasticboy/vim-markdown, because it uses fdm=expr
normal! zR
setlocal nomodified
+ setlocal bufhidden=hide
redraw|echo ''
endfunction
@@ -88,27 +90,27 @@ endfunction
" Changes ':h clipboard' to ':help |clipboard|'.
function! s:help_to_link(s) abort
- return substitute(a:s, '\v[''"]?:h%[elp] ([^''"]+)[''"]?', '":help |\1|"', 'g')
+ return substitute(a:s, '\v:h%[elp] ([^|][^"\r\n ]+)', ':help |\1|', 'g')
endfunction
" Format a message for a specific report item
function! s:format_report_message(status, msg, ...) abort " {{{
let output = ' - ' . a:status . ': ' . s:indent_after_line1(a:msg, 4)
- let suggestions = []
+ let advice = []
" Optional parameters
if a:0 > 0
- let suggestions = type(a:1) == type("") ? [a:1] : a:1
- if type(suggestions) != type([])
- echoerr "Expected String or List"
+ let advice = type(a:1) == type("") ? [a:1] : a:1
+ if type(advice) != type([])
+ throw "Expected String or List"
endif
endif
" Report each suggestion
- if len(suggestions) > 0
- let output .= "\n - SUGGESTIONS:"
+ if len(advice) > 0
+ let output .= "\n - ADVICE:"
endif
- for suggestion in suggestions
+ for suggestion in advice
let output .= "\n - " . s:indent_after_line1(suggestion, 10)
endfor
@@ -122,7 +124,7 @@ endfunction " }}}
" Reports a successful healthcheck.
function! health#report_ok(msg) abort " {{{
- echo s:format_report_message('SUCCESS', a:msg)
+ echo s:format_report_message('OK', a:msg)
endfunction " }}}
" Reports a health warning.
@@ -157,7 +159,10 @@ endfunction
" Translates a list of plugin names to healthcheck function names.
function! s:to_fn_names(plugin_names) abort
let healthchecks = []
- for p in a:plugin_names
+ let plugin_names = type('') ==# type(a:plugin_names)
+ \ ? split(a:plugin_names, '', v:false)
+ \ : a:plugin_names
+ for p in plugin_names
call add(healthchecks, 'health#'.p.'#check')
endfor
return healthchecks
diff --git a/runtime/autoload/health/nvim.vim b/runtime/autoload/health/nvim.vim
index a1bf9b21cf..58033f0405 100644
--- a/runtime/autoload/health/nvim.vim
+++ b/runtime/autoload/health/nvim.vim
@@ -1,15 +1,31 @@
-let s:suggest_faq = 'See https://github.com/neovim/neovim/wiki/FAQ'
+let s:suggest_faq = 'https://github.com/neovim/neovim/wiki/FAQ'
function! s:check_config() abort
+ let ok = v:true
call health#report_start('Configuration')
- if !get(g:, 'loaded_sensible', 0)
+
+ " If $VIM is empty we don't care. Else make sure it is valid.
+ if !empty($VIM) && !filereadable($VIM.'/runtime/doc/nvim.txt')
+ let ok = v:false
+ call health#report_error("$VIM is invalid: ".$VIM)
+ endif
+
+ if exists('$NVIM_TUI_ENABLE_CURSOR_SHAPE')
+ let ok = v:false
+ call health#report_warn("$NVIM_TUI_ENABLE_CURSOR_SHAPE is ignored in Nvim 0.2+",
+ \ [ "Use the 'guicursor' option to configure cursor shape. :help 'guicursor'",
+ \ 'https://github.com/neovim/neovim/wiki/Following-HEAD#20170402' ])
+ endif
+
+ if &paste
+ let ok = v:false
+ call health#report_error("'paste' is enabled. This option is only for pasting text.\nIt should not be set in your config.",
+ \ [ 'Remove `set paste` from your init.vim, if applicable.',
+ \ 'Check `:verbose set paste?` to see if a plugin or script set the option.', ])
+ endif
+
+ if ok
call health#report_ok('no issues found')
- else
- let sensible_pi = globpath(&runtimepath, '**/sensible.vim', 1, 1)
- call health#report_info("found sensible.vim plugin:\n".join(sensible_pi, "\n"))
- call health#report_error("sensible.vim plugin is not needed; Nvim has the same defaults built-in."
- \ ." Also, sensible.vim sets 'ttimeoutlen' to a sub-optimal value.",
- \ ["Remove sensible.vim plugin, or wrap it in a `if !has('nvim')` check."])
endif
endfunction
@@ -42,7 +58,7 @@ function! s:check_rplugin_manifest() abort
let contents = join(readfile(script))
if contents =~# '\<\%(from\|import\)\s\+neovim\>'
if script =~# '[\/]__init__\.py$'
- let script = fnamemodify(script, ':h')
+ let script = tr(fnamemodify(script, ':h'), '\', '/')
endif
if !has_key(existing_rplugins, script)
@@ -118,6 +134,12 @@ function! s:check_tmux() abort
let cmd = 'tmux show-option -qvg default-terminal'
let out = system(cmd)
let tmux_default_term = substitute(out, '\v(\s|\r|\n)', '', 'g')
+ if empty(tmux_default_term)
+ let cmd = 'tmux show-option -qvgs default-terminal'
+ let out = system(cmd)
+ let tmux_default_term = substitute(out, '\v(\s|\r|\n)', '', 'g')
+ endif
+
if v:shell_error
call health#report_error('command failed: '.cmd."\n".out)
elseif tmux_default_term !=# $TERM
@@ -151,6 +173,11 @@ function! s:check_terminal() abort
call health#report_info('key_dc (kdch1) terminfo entry: '
\ .(empty(kbs_entry) ? '? (not found)' : kdch1_entry))
endif
+ for env_var in ['XTERM_VERSION', 'VTE_VERSION', 'TERM_PROGRAM', 'COLORTERM', 'SSH_TTY']
+ if !exists('$'.env_var)
+ call health#report_info(printf("$%s='%s'", env_var, eval('$'.env_var)))
+ endif
+ endfor
endfunction
function! health#nvim#check() abort
diff --git a/runtime/autoload/health/provider.vim b/runtime/autoload/health/provider.vim
index 57dd508f96..0201ed8062 100644
--- a/runtime/autoload/health/provider.vim
+++ b/runtime/autoload/health/provider.vim
@@ -8,6 +8,11 @@ function! s:trim(s) abort
return substitute(a:s, '^\_s*\|\_s*$', '', 'g')
endfunction
+" Convert '\' to '/'. Collapse '//' and '/./'.
+function! s:normalize_path(s) abort
+ return substitute(substitute(a:s, '\', '/', 'g'), '/\./\|/\+', '/', 'g')
+endfunction
+
" Simple version comparison.
function! s:version_cmp(a, b) abort
let a = split(a:a, '\.', 0)
@@ -26,13 +31,23 @@ endfunction
" Handler for s:system() function.
function! s:system_handler(jobid, data, event) dict abort
- if a:event == 'stdout' || a:event == 'stderr'
+ if a:event ==# 'stdout' || a:event ==# 'stderr'
let self.output .= join(a:data, '')
- elseif a:event == 'exit'
+ elseif a:event ==# 'exit'
let s:shell_error = a:data
endif
endfunction
+" Attempts to construct a shell command from an args list.
+" Only for display, to help users debug a failed command.
+function! s:shellify(cmd) abort
+ if type(a:cmd) != type([])
+ return a:cmd
+ endif
+ return join(map(copy(a:cmd),
+ \'v:val =~# ''\m[\-.a-zA-Z_/]'' ? shellescape(v:val) : v:val'), ' ')
+endfunction
+
" Run a system command and timeout after 30 seconds.
function! s:system(cmd, ...) abort
let stdin = a:0 ? a:1 : ''
@@ -49,8 +64,7 @@ function! s:system(cmd, ...) abort
let jobid = jobstart(a:cmd, opts)
if jobid < 1
- call health#report_error(printf('Command error %d: %s', jobid,
- \ type(a:cmd) == type([]) ? join(a:cmd) : a:cmd)))
+ call health#report_error(printf('Command error (job=%d): %s', jobid, s:shellify(a:cmd)))
let s:shell_error = 1
return opts.output
endif
@@ -61,13 +75,11 @@ function! s:system(cmd, ...) abort
let res = jobwait([jobid], 30000)
if res[0] == -1
- call health#report_error(printf('Command timed out: %s',
- \ type(a:cmd) == type([]) ? join(a:cmd) : a:cmd))
+ call health#report_error(printf('Command timed out: %s', s:shellify(a:cmd)))
call jobstop(jobid)
elseif s:shell_error != 0 && !ignore_error
- call health#report_error(printf("Command error (%d) %s: %s", jobid,
- \ type(a:cmd) == type([]) ? join(a:cmd) : a:cmd,
- \ opts.output))
+ call health#report_error(printf("Command error (job=%d): %s\nOutput: %s", jobid,
+ \ s:shellify(a:cmd), opts.output))
endif
return opts.output
@@ -106,13 +118,17 @@ endfunction
" Check for clipboard tools.
function! s:check_clipboard() abort
- call health#report_start('Clipboard')
+ call health#report_start('Clipboard (optional)')
let clipboard_tool = provider#clipboard#Executable()
- if empty(clipboard_tool)
+ if exists('g:clipboard') && empty(clipboard_tool)
+ call health#report_error(
+ \ provider#clipboard#Error(),
+ \ ["Use the example in :help g:clipboard as a template, or don't set g:clipboard at all."])
+ elseif empty(clipboard_tool)
call health#report_warn(
- \ "No clipboard tool found. Clipboard registers will not work.",
- \ ['See ":help clipboard".'])
+ \ 'No clipboard tool found. Clipboard registers (`"+` and `"*`) will not work.',
+ \ [':help clipboard'])
else
call health#report_ok('Clipboard tool found: '. clipboard_tool)
endif
@@ -152,7 +168,7 @@ function! s:version_info(python) abort
\ ]))
if empty(python_version)
- let python_version = 'unable to parse python response'
+ let python_version = 'unable to parse '.a:python.' response'
endif
let nvim_path = s:trim(s:system([
@@ -164,14 +180,14 @@ function! s:version_info(python) abort
" Assuming that multiple versions of a package are installed, sort them
" numerically in descending order.
- function! s:compare(metapath1, metapath2)
+ function! s:compare(metapath1, metapath2) abort
let a = matchstr(fnamemodify(a:metapath1, ':p:h:t'), '[0-9.]\+')
let b = matchstr(fnamemodify(a:metapath2, ':p:h:t'), '[0-9.]\+')
return a == b ? 0 : a > b ? 1 : -1
endfunction
" Try to get neovim.VERSION (added in 0.1.11dev).
- let nvim_version = s:system(['python', '-c',
+ let nvim_version = s:system([a:python, '-c',
\ 'from neovim import VERSION as v; '.
\ 'print("{}.{}.{}{}".format(v.major, v.minor, v.patch, v.prerelease))'],
\ '', 1, 1)
@@ -208,7 +224,7 @@ endfunction
" Check the Python interpreter's usability.
function! s:check_bin(bin) abort
- if !filereadable(a:bin)
+ if !filereadable(a:bin) && (!has('win32') || !filereadable(a:bin.'.exe'))
call health#report_error(printf('"%s" was not found.', a:bin))
return 0
elseif executable(a:bin) != 1
@@ -219,11 +235,11 @@ function! s:check_bin(bin) abort
endfunction
function! s:check_python(version) abort
- call health#report_start('Python ' . a:version . ' provider')
+ call health#report_start('Python ' . a:version . ' provider (optional)')
let pyname = 'python'.(a:version == 2 ? '' : '3')
let pyenv = resolve(exepath('pyenv'))
- let pyenv_root = exists('$PYENV_ROOT') ? resolve($PYENV_ROOT) : 'n'
+ let pyenv_root = exists('$PYENV_ROOT') ? resolve($PYENV_ROOT) : ''
let venv = exists('$VIRTUAL_ENV') ? resolve($VIRTUAL_ENV) : ''
let host_prog_var = pyname.'_host_prog'
let loaded_var = 'g:loaded_'.pyname.'_provider'
@@ -235,6 +251,19 @@ function! s:check_python(version) abort
return
endif
+ if !empty(pyenv)
+ if empty(pyenv_root)
+ call health#report_warn(
+ \ 'pyenv was found, but $PYENV_ROOT is not set.',
+ \ ['Did you follow the final install instructions?',
+ \ 'If you use a shell "framework" like Prezto or Oh My Zsh, try without.',
+ \ 'Try a different shell (bash).']
+ \ )
+ else
+ call health#report_ok(printf('pyenv found: "%s"', pyenv))
+ endif
+ endif
+
if exists('g:'.host_prog_var)
call health#report_info(printf('Using: g:%s = "%s"', host_prog_var, get(g:, host_prog_var)))
endif
@@ -266,15 +295,6 @@ function! s:check_python(version) abort
endif
if !empty(pyenv)
- if empty(pyenv_root)
- call health#report_warn(
- \ 'pyenv was found, but $PYENV_ROOT is not set.',
- \ ['Did you follow the final install instructions?']
- \ )
- else
- call health#report_ok(printf('pyenv found: "%s"', pyenv))
- endif
-
let python_bin = s:trim(s:system([pyenv, 'which', pyname], '', 1))
if empty(python_bin)
@@ -287,8 +307,9 @@ function! s:check_python(version) abort
if exists('$PATH')
for path in split($PATH, has('win32') ? ';' : ':')
- let path_bin = path.'/'.pyname
- if path_bin != python_bin && index(python_multiple, path_bin) == -1
+ let path_bin = s:normalize_path(path.'/'.pyname)
+ if path_bin != s:normalize_path(python_bin)
+ \ && index(python_multiple, path_bin) == -1
\ && executable(path_bin)
call add(python_multiple, path_bin)
endif
@@ -303,9 +324,8 @@ function! s:check_python(version) abort
if python_bin =~# '\<shims\>'
call health#report_warn(printf('`%s` appears to be a pyenv shim.', python_bin), [
- \ 'The `pyenv` executable is not in $PATH,',
- \ 'Your pyenv installation is broken. You should set '
- \ . '`g:'.host_prog_var.'` to avoid surprises.',
+ \ '`pyenv` is not in $PATH, your pyenv installation is broken. '
+ \ .'Set `g:'.host_prog_var.'` to avoid surprises.',
\ ])
endif
endif
@@ -318,7 +338,7 @@ function! s:check_python(version) abort
call health#report_warn('pyenv is not set up optimally.', [
\ printf('Create a virtualenv specifically '
\ . 'for Neovim using pyenv, and set `g:%s`. This will avoid '
- \ . 'the need to install Neovim''s Python module in each '
+ \ . 'the need to install the Neovim Python module in each '
\ . 'version/virtualenv.', host_prog_var)
\ ])
elseif !empty(venv) && exists('g:'.host_prog_var)
@@ -413,7 +433,7 @@ function! s:check_python(version) abort
endfunction
function! s:check_ruby() abort
- call health#report_start('Ruby provider')
+ call health#report_start('Ruby provider (optional)')
let loaded_var = 'g:loaded_ruby_provider'
if exists(loaded_var) && !exists('*provider#ruby#Call')
@@ -423,8 +443,8 @@ function! s:check_ruby() abort
if !executable('ruby') || !executable('gem')
call health#report_warn(
- \ "`ruby` and `gem` must be in $PATH.",
- \ ["Install Ruby and verify that `ruby` and `gem` commands work."])
+ \ '`ruby` and `gem` must be in $PATH.',
+ \ ['Install Ruby and verify that `ruby` and `gem` commands work.'])
return
endif
call health#report_info('Ruby: '. s:system('ruby -v'))
@@ -439,21 +459,21 @@ function! s:check_ruby() abort
endif
call health#report_info('Host: '. host)
- let latest_gem_cmd = 'gem list -ra ^neovim$'
+ let latest_gem_cmd = has('win32') ? 'cmd /c gem list -ra ^^neovim$' : 'gem list -ra ^neovim$'
let latest_gem = s:system(split(latest_gem_cmd))
if s:shell_error || empty(latest_gem)
call health#report_error('Failed to run: '. latest_gem_cmd,
\ ["Make sure you're connected to the internet.",
- \ "Are you behind a firewall or proxy?"])
+ \ 'Are you behind a firewall or proxy?'])
return
endif
- let latest_gem = get(split(latest_gem, ' (\|, \|)$' ), 1, 'not found')
+ let latest_gem = get(split(latest_gem, 'neovim (\|, \|)$' ), 1, 'not found')
let current_gem_cmd = host .' --version'
let current_gem = s:system(current_gem_cmd)
if s:shell_error
call health#report_error('Failed to run: '. current_gem_cmd,
- \ ["Report this issue with the output of: ", current_gem_cmd])
+ \ ['Report this issue with the output of: ', current_gem_cmd])
return
endif
@@ -467,9 +487,71 @@ function! s:check_ruby() abort
endif
endfunction
+function! s:check_node() abort
+ call health#report_start('Node provider (optional)')
+
+ let loaded_var = 'g:loaded_node_provider'
+ if exists(loaded_var) && !exists('*provider#node#Call')
+ call health#report_info('Disabled. '.loaded_var.'='.eval(loaded_var))
+ return
+ endif
+
+ if !executable('node') || !executable('npm')
+ call health#report_warn(
+ \ '`node` and `npm` must be in $PATH.',
+ \ ['Install Node.js and verify that `node` and `npm` commands work.'])
+ return
+ endif
+ call health#report_info('Node: '. s:system('node -v'))
+
+ let host = provider#node#Detect()
+ if empty(host)
+ call health#report_warn('Missing "neovim" npm package.',
+ \ ['Run in shell: npm install -g neovim',
+ \ 'Is the npm bin directory in $PATH?'])
+ return
+ endif
+ call health#report_info('Host: '. host)
+
+ let latest_npm_cmd = has('win32') ? 'cmd /c npm info neovim --json' : 'npm info neovim --json'
+ let latest_npm = s:system(split(latest_npm_cmd))
+ if s:shell_error || empty(latest_npm)
+ call health#report_error('Failed to run: '. latest_npm_cmd,
+ \ ["Make sure you're connected to the internet.",
+ \ 'Are you behind a firewall or proxy?'])
+ return
+ endif
+ if !empty(latest_npm)
+ try
+ let pkg_data = json_decode(latest_npm)
+ catch /E474/
+ return 'error: '.latest_npm
+ endtry
+ let latest_npm = get(get(pkg_data, 'dist-tags', {}), 'latest', 'unable to parse')
+ endif
+
+ let current_npm_cmd = host .' --version'
+ let current_npm = s:system(current_npm_cmd)
+ if s:shell_error
+ call health#report_error('Failed to run: '. current_npm_cmd,
+ \ ['Report this issue with the output of: ', current_npm_cmd])
+ return
+ endif
+
+ if s:version_cmp(current_npm, latest_npm) == -1
+ call health#report_warn(
+ \ printf('Package "neovim" is out-of-date. Installed: %s, latest: %s',
+ \ current_npm, latest_npm),
+ \ ['Run in shell: npm update neovim'])
+ else
+ call health#report_ok('Latest "neovim" npm is installed: '. current_npm)
+ endif
+endfunction
+
function! health#provider#check() abort
call s:check_clipboard()
call s:check_python(2)
call s:check_python(3)
call s:check_ruby()
+ call s:check_node()
endfunction
diff --git a/runtime/autoload/javascriptcomplete.vim b/runtime/autoload/javascriptcomplete.vim
index 2abe41b463..14bc3d7ce3 100644
--- a/runtime/autoload/javascriptcomplete.vim
+++ b/runtime/autoload/javascriptcomplete.vim
@@ -1,7 +1,7 @@
" Vim completion script
" Language: Java Script
" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
-" Last Change: 2006 Apr 30
+" Last Change: 2017 Mar 04
function! javascriptcomplete#CompleteJS(findstart, base)
if a:findstart
@@ -563,7 +563,7 @@ function! javascriptcomplete#CompleteJS(findstart, base)
for i in arguments
let g:ia = i
let f_elements = matchlist(i, 'function\s\+\(\k\+\)\s*(\(.\{-}\))')
- if len(f_elements) == 3
+ if len(f_elements) >= 3
let b:js_menuinfo[f_elements[1].'('] = f_elements[2]
endif
endfor
diff --git a/runtime/autoload/man.vim b/runtime/autoload/man.vim
index 4352a8c782..dd71ede680 100644
--- a/runtime/autoload/man.vim
+++ b/runtime/autoload/man.vim
@@ -1,16 +1,31 @@
" Maintainer: Anmol Sethi <anmol@aubble.com>
-let s:man_find_arg = "-w"
+let s:find_arg = '-w'
+let s:localfile_arg = v:true " Always use -l if possible. #6683
+let s:section_arg = '-s'
-" TODO(nhooyr) Completion may work on SunOS; I'm not sure if `man -l` displays
-" the list of searched directories.
-try
- if !has('win32') && $OSTYPE !~? 'cygwin\|linux' && system('uname -s') =~? 'SunOS' && system('uname -r') =~# '^5'
- let s:man_find_arg = '-l'
+function! s:init_section_flag()
+ call system(['env', 'MANPAGER=cat', 'man', s:section_arg, '1', 'man'])
+ if v:shell_error
+ let s:section_arg = '-S'
endif
-catch /E145:/
- " Ignore the error in restricted mode
-endtry
+endfunction
+
+function! s:init() abort
+ call s:init_section_flag()
+ " TODO(nhooyr): Does `man -l` on SunOS list searched directories?
+ try
+ if !has('win32') && $OSTYPE !~? 'cygwin\|linux' && system('uname -s') =~? 'SunOS' && system('uname -r') =~# '^5'
+ let s:find_arg = '-l'
+ endif
+ " Check for -l support.
+ call s:get_page(s:get_path('', 'man')[0:-2])
+ catch /E145:/
+ " Ignore the error in restricted mode
+ catch /command error .*/
+ let s:localfile_arg = v:false
+ endtry
+endfunction
function! man#open_page(count, count1, mods, ...) abort
if a:0 > 2
@@ -79,7 +94,7 @@ function! man#read_page(ref) abort
let [sect, name, path] = s:verify_exists(sect, name)
let page = s:get_page(path)
catch
- " call to s:error() is unnecessary
+ call s:error(v:exception)
return
endtry
let b:man_sect = sect
@@ -88,10 +103,8 @@ endfunction
" Handler for s:system() function.
function! s:system_handler(jobid, data, event) dict abort
- if a:event == 'stdout'
- let self.stdout .= join(a:data, "\n")
- elseif a:event == 'stderr'
- let self.stderr .= join(a:data, "\n")
+ if a:event is# 'stdout' || a:event is# 'stderr'
+ let self[a:event] .= join(a:data, "\n")
else
let self.exit_code = a:data
endif
@@ -118,7 +131,7 @@ function! s:system(cmd, ...) abort
try
call jobstop(jobid)
throw printf('command timed out: %s', join(a:cmd))
- catch /^Vim\%((\a\+)\)\=:E900/
+ catch /^Vim(call):E900:/
endtry
elseif res[0] == -2
throw printf('command interrupted: %s', join(a:cmd))
@@ -135,7 +148,8 @@ function! s:get_page(path) abort
let manwidth = empty($MANWIDTH) ? winwidth(0) : $MANWIDTH
" Force MANPAGER=cat to ensure Vim is not recursively invoked (by man-db).
" http://comments.gmane.org/gmane.editors.vim.devel/29085
- return s:system(['env', 'MANPAGER=cat', 'MANWIDTH='.manwidth, 'man', a:path])
+ let cmd = ['env', 'MANPAGER=cat', 'MANWIDTH='.manwidth, 'man']
+ return s:system(cmd + (s:localfile_arg ? ['-l', a:path] : [a:path]))
endfunction
function! s:put_page(page) abort
@@ -151,6 +165,31 @@ function! s:put_page(page) abort
setlocal filetype=man
endfunction
+function! man#show_toc() abort
+ let bufname = bufname('%')
+ let info = getloclist(0, {'winid': 1})
+ if !empty(info) && getwinvar(info.winid, 'qf_toc') ==# bufname
+ lopen
+ return
+ endif
+
+ let toc = []
+ let lnum = 2
+ let last_line = line('$') - 1
+ while lnum && lnum < last_line
+ let text = getline(lnum)
+ if text =~# '^\%( \{3\}\)\=\S.*$'
+ call add(toc, {'bufnr': bufnr('%'), 'lnum': lnum, 'text': text})
+ endif
+ let lnum = nextnonblank(lnum + 1)
+ endwhile
+
+ call setloclist(0, toc, ' ')
+ call setloclist(0, [], 'a', {'title': 'Man TOC'})
+ lopen
+ let w:qf_toc = bufname
+endfunction
+
" attempt to extract the name and sect out of 'name(sect)'
" otherwise just return the largest string of valid characters in ref
function! man#extract_sect_and_name_ref(ref) abort
@@ -174,14 +213,14 @@ endfunction
function! s:get_path(sect, name) abort
if empty(a:sect)
- return s:system(['man', s:man_find_arg, a:name])
+ return s:system(['man', s:find_arg, a:name])
endif
" '-s' flag handles:
" - tokens like 'printf(echo)'
" - sections starting with '-'
" - 3pcap section (found on macOS)
" - commas between sections (for section priority)
- return s:system(['man', s:man_find_arg, '-s', a:sect, a:name])
+ return s:system(['man', s:find_arg, s:section_arg, a:sect, a:name])
endfunction
function! s:verify_exists(sect, name) abort
@@ -306,7 +345,7 @@ endfunction
function! s:complete(sect, psect, name) abort
try
- let mandirs = join(split(s:system(['man', s:man_find_arg]), ':\|\n'), ',')
+ let mandirs = join(split(s:system(['man', s:find_arg]), ':\|\n'), ',')
catch
call s:error(v:exception)
return
@@ -348,3 +387,5 @@ function! man#init_pager() abort
endtry
execute 'silent file man://'.fnameescape(ref)
endfunction
+
+call s:init()
diff --git a/runtime/autoload/netrw.vim b/runtime/autoload/netrw.vim
index de85844d5d..76485c2f38 100644
--- a/runtime/autoload/netrw.vim
+++ b/runtime/autoload/netrw.vim
@@ -22,8 +22,8 @@
if &cp || exists("g:loaded_netrw")
finish
endif
-" netrw requires vim having patch 213; netrw will benefit from vim's having patch#656, too
-if v:version < 704 || !has("patch213")
+" netrw requires vim having patch 7.4.213; netrw will benefit from vim's having patch#656, too
+if v:version < 704 || (v:version == 704 && !has("patch213"))
if !exists("s:needpatch213")
unsilent echomsg "***sorry*** this version of netrw requires vim v7.4 with patch 213"
endif
diff --git a/runtime/autoload/paste.vim b/runtime/autoload/paste.vim
index fcf06ecdf9..dd7b3ae54a 100644
--- a/runtime/autoload/paste.vim
+++ b/runtime/autoload/paste.vim
@@ -1,6 +1,6 @@
" Vim support file to help with paste mappings and menus
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2006 Jun 23
+" Last Change: 2017 Aug 30
" Define the string to use for items that are present both in Edit, Popup and
" Toolbar menu. Also used in mswin.vim and macmap.vim.
@@ -12,7 +12,7 @@
if has("virtualedit")
let paste#paste_cmd = {'n': ":call paste#Paste()<CR>"}
let paste#paste_cmd['v'] = '"-c<Esc>' . paste#paste_cmd['n']
- let paste#paste_cmd['i'] = 'x<BS><Esc>' . paste#paste_cmd['n'] . 'gi'
+ let paste#paste_cmd['i'] = "\<c-\>\<c-o>\"+gP"
func! paste#Paste()
let ove = &ve
diff --git a/runtime/autoload/phpcomplete.vim b/runtime/autoload/phpcomplete.vim
index 7f25d9df33..8e38867a77 100644
--- a/runtime/autoload/phpcomplete.vim
+++ b/runtime/autoload/phpcomplete.vim
@@ -3,7 +3,7 @@
" Maintainer: Dávid Szabó ( complex857 AT gmail DOT com )
" Previous Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
" URL: https://github.com/shawncplus/phpcomplete.vim
-" Last Change: 2015 Jul 13
+" Last Change: 2016 Oct 10
"
" OPTIONS:
"
@@ -195,6 +195,8 @@ function! phpcomplete#CompletePHP(findstart, base) " {{{
" }}}
elseif context =~? 'implements'
return phpcomplete#CompleteClassName(a:base, ['i'], current_namespace, imports)
+ elseif context =~? 'instanceof'
+ return phpcomplete#CompleteClassName(a:base, ['c', 'n'], current_namespace, imports)
elseif context =~? 'extends\s\+.\+$' && a:base == ''
return ['implements']
elseif context =~? 'extends'
@@ -787,6 +789,8 @@ function! phpcomplete#CompleteClassName(base, kinds, current_namespace, imports)
if kinds == ['c', 'i']
let filterstr = 'v:val =~? "\\(class\\|interface\\)\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*"'
+ elseif kinds == ['c', 'n']
+ let filterstr = 'v:val =~? "\\(class\\|namespace\\)\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*"'
elseif kinds == ['c']
let filterstr = 'v:val =~? "class\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*"'
elseif kinds == ['i']
@@ -931,7 +935,7 @@ function! phpcomplete#EvaluateModifiers(modifiers, required_modifiers, prohibite
endfor
for modifier in a:modifiers
- " if the modifier is prohibited its a no match
+ " if the modifier is prohibited it's a no match
if index(a:prohibited_modifiers, modifier) != -1
return 0
endif
@@ -996,7 +1000,7 @@ function! phpcomplete#CompleteUserClass(context, base, sccontent, visibility) "
let required_modifiers += ['static']
endif
let all_variable = filter(deepcopy(a:sccontent),
- \ 'v:val =~ "^\\s*\\(var\\s\\+\\|public\\s\\+\\|protected\\s\\+\\|private\\s\\+\\|final\\s\\+\\|abstract\\s\\+\\|static\\s\\+\\)\\+\\$"')
+ \ 'v:val =~ "\\(^\\s*\\(var\\s\\+\\|public\\s\\+\\|protected\\s\\+\\|private\\s\\+\\|final\\s\\+\\|abstract\\s\\+\\|static\\s\\+\\)\\+\\$\\|^\\s*\\(\\/\\|\\*\\)*\\s*@property\\s\\+\\S\\+\\s\\S\\{-}\\s*$\\)"')
let variables = []
for i in all_variable
@@ -1160,6 +1164,14 @@ function! phpcomplete#GetTaglist(pattern) " {{{
endif
let tags = taglist(a:pattern)
+ for tag in tags
+ for prop in keys(tag)
+ if prop == 'cmd' || prop == 'static' || prop == 'kind' || prop == 'builtin'
+ continue
+ endif
+ let tag[prop] = substitute(tag[prop], '\\\\', '\\', 'g')
+ endfor
+ endfor
let s:cache_tags[a:pattern] = tags
let has_key = has_key(s:cache_tags, a:pattern)
let s:cache_tags_checksum = cache_checksum
@@ -1379,7 +1391,7 @@ function! phpcomplete#GetCallChainReturnType(classname_candidate, class_candidat
" Get Structured information of all classes and subclasses including namespace and includes
" try to find the method's return type in docblock comment
for classstructure in classcontents
- let docblock_target_pattern = 'function\s\+&\?'.method.'\|\(public\|private\|protected\|var\).\+\$'.method
+ let docblock_target_pattern = 'function\s\+&\?'.method.'\>\|\(public\|private\|protected\|var\).\+\$'.method.'\>\|@property.\+\$'.method.'\>'
let doc_str = phpcomplete#GetDocBlock(split(classstructure.content, '\n'), docblock_target_pattern)
if doc_str != ''
break
@@ -1387,8 +1399,17 @@ function! phpcomplete#GetCallChainReturnType(classname_candidate, class_candidat
endfor
if doc_str != ''
let docblock = phpcomplete#ParseDocBlock(doc_str)
- if has_key(docblock.return, 'type') || has_key(docblock.var, 'type')
- let type = has_key(docblock.return, 'type') ? docblock.return.type : docblock.var.type
+ if has_key(docblock.return, 'type') || has_key(docblock.var, 'type') || len(docblock.properties) > 0
+ let type = has_key(docblock.return, 'type') ? docblock.return.type : has_key(docblock.var, 'type') ? docblock.var.type : ''
+
+ if type == ''
+ for property in docblock.properties
+ if property.description =~? method
+ let type = property.type
+ break
+ endif
+ endfor
+ endif
" there's a namespace in the type, threat the type as FQCN
if type =~ '\\'
@@ -1554,6 +1575,9 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
elseif get(methodstack, 0) =~# function_invocation_pattern
let function_name = matchstr(methodstack[0], '^\s*\zs'.function_name_pattern)
let function_file = phpcomplete#GetFunctionLocation(function_name, a:current_namespace)
+ if function_file == ''
+ let function_file = phpcomplete#GetFunctionLocation(function_name, '\')
+ endif
if function_file == 'VIMPHP_BUILTINFUNCTION'
" built in function, grab the return type from the info string
@@ -1569,7 +1593,7 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
let [class_candidate_namespace, function_imports] = phpcomplete#GetCurrentNameSpace(file_lines)
" try to expand the classname of the returned type with the context got from the function's source file
- let [classname_candidate, unused] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports)
+ let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports)
endif
endif
if classname_candidate != ''
@@ -1650,9 +1674,10 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
let sub_methodstack = phpcomplete#GetMethodStack(matchstr(line, '^\s*'.object.'\s*=&\?\s*\s\+\zs.*'))
let [classname_candidate, class_candidate_namespace] = phpcomplete#GetCallChainReturnType(
\ classname,
- \ a:current_namespace,
+ \ namespace_for_class,
\ a:imports,
\ sub_methodstack)
+
return (class_candidate_namespace == '\' || class_candidate_namespace == '') ? classname_candidate : class_candidate_namespace.'\'.classname_candidate
endif
endif
@@ -1783,6 +1808,9 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
let [function_name, function_namespace] = phpcomplete#ExpandClassName(function_name, a:current_namespace, a:imports)
let function_file = phpcomplete#GetFunctionLocation(function_name, function_namespace)
+ if function_file == ''
+ let function_file = phpcomplete#GetFunctionLocation(function_name, '\')
+ endif
if function_file == 'VIMPHP_BUILTINFUNCTION'
" built in function, grab the return type from the info string
@@ -1798,7 +1826,7 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
let classname_candidate = docblock.return.type
let [class_candidate_namespace, function_imports] = phpcomplete#GetCurrentNameSpace(file_lines)
" try to expand the classname of the returned type with the context got from the function's source file
- let [classname_candidate, unused] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports)
+ let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports)
break
endif
endif
@@ -1861,6 +1889,8 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
for tag in tags
if tag.kind ==? 'v' && tag.cmd =~? '=\s*new\s\+\zs'.class_name_pattern.'\ze'
let classname = matchstr(tag.cmd, '=\s*new\s\+\zs'.class_name_pattern.'\ze')
+ " unescape the classname, it would have "\" doubled since it is an ex command
+ let classname = substitute(classname, '\\\(\_.\)', '\1', 'g')
return classname
endif
endfor
@@ -2077,6 +2107,19 @@ function! phpcomplete#GetClassContentsStructure(file_path, file_lines, class_nam
endif
call searchpair('{', '', '}', 'W')
let class_closing_bracket_line = line('.')
+
+ " Include class docblock
+ let doc_line = cfline - 1
+ if getline(doc_line) =~? '^\s*\*/'
+ while doc_line != 0
+ if getline(doc_line) =~? '^\s*/\*\*'
+ let cfline = doc_line
+ break
+ endif
+ let doc_line -= 1
+ endwhile
+ endif
+
let classcontent = join(getline(cfline, class_closing_bracket_line), "\n")
let used_traits = []
@@ -2241,8 +2284,19 @@ function! phpcomplete#GetDocBlock(sccontent, search) " {{{
let line = a:sccontent[i]
" search for a function declaration
if line =~? a:search
- let l = i - 1
- " start backward serch for the comment block
+ if line =~? '@property'
+ let doc_line = i
+ while doc_line != sccontent_len - 1
+ if a:sccontent[doc_line] =~? '^\s*\*/'
+ let l = doc_line
+ break
+ endif
+ let doc_line += 1
+ endwhile
+ else
+ let l = i - 1
+ endif
+ " start backward search for the comment block
while l != 0
let line = a:sccontent[l]
" if it's a one line docblock like comment and we can just return it right away
@@ -2263,7 +2317,7 @@ function! phpcomplete#GetDocBlock(sccontent, search) " {{{
return ''
end
- while l != 0
+ while l >= 0
let line = a:sccontent[l]
if line =~? '^\s*/\*\*'
let comment_start = l
@@ -2297,9 +2351,10 @@ function! phpcomplete#ParseDocBlock(docblock) " {{{
\ 'return': {},
\ 'throws': [],
\ 'var': {},
+ \ 'properties': [],
\ }
- let res.description = substitute(matchstr(a:docblock, '\zs\_.\{-}\ze\(@var\|@param\|@return\|$\)'), '\(^\_s*\|\_s*$\)', '', 'g')
+ let res.description = substitute(matchstr(a:docblock, '\zs\_.\{-}\ze\(@type\|@var\|@param\|@return\|$\)'), '\(^\_s*\|\_s*$\)', '', 'g')
let docblock_lines = split(a:docblock, "\n")
let param_lines = filter(copy(docblock_lines), 'v:val =~? "^@param"')
@@ -2334,15 +2389,26 @@ function! phpcomplete#ParseDocBlock(docblock) " {{{
endif
endfor
- let var_line = filter(copy(docblock_lines), 'v:val =~? "^@var"')
+ let var_line = filter(copy(docblock_lines), 'v:val =~? "^\\(@var\\|@type\\)"')
if len(var_line) > 0
- let var_parts = matchlist(var_line[0], '@var\s\+\(\S\+\)\s*\(.*\)')
+ let var_parts = matchlist(var_line[0], '\(@var\|@type\)\s\+\(\S\+\)\s*\(.*\)')
let res['var'] = {
\ 'line': var_parts[0],
- \ 'type': phpcomplete#GetTypeFromDocBlockParam(get(var_parts, 1, '')),
- \ 'description': get(var_parts, 2, '')}
+ \ 'type': phpcomplete#GetTypeFromDocBlockParam(get(var_parts, 2, '')),
+ \ 'description': get(var_parts, 3, '')}
endif
+ let property_lines = filter(copy(docblock_lines), 'v:val =~? "^@property"')
+ for property_line in property_lines
+ let parts = matchlist(property_line, '\(@property\)\s\+\(\S\+\)\s*\(.*\)')
+ if len(parts) > 0
+ call add(res.properties, {
+ \ 'line': parts[0],
+ \ 'type': phpcomplete#GetTypeFromDocBlockParam(get(parts, 2, '')),
+ \ 'description': get(parts, 3, '')})
+ endif
+ endfor
+
return res
endfunction
" }}}
@@ -2498,6 +2564,7 @@ function! phpcomplete#GetCurrentNameSpace(file_lines) " {{{
let name = matchstr(name, '\\\zs[^\\]\+\ze$')
endif
endif
+
" leading slash is not required use imports are always absolute
let imports[name] = {'name': object, 'kind': ''}
endfor
@@ -2533,6 +2600,7 @@ function! phpcomplete#GetCurrentNameSpace(file_lines) " {{{
elseif !exists('no_namespace_candidate')
" save the first namespacless match to be used if no better
" candidate found later on
+ let tag.namespace = namespace_for_classes
let no_namespace_candidate = tag
endif
endif
diff --git a/runtime/autoload/provider.vim b/runtime/autoload/provider.vim
new file mode 100644
index 0000000000..e6514f5ba8
--- /dev/null
+++ b/runtime/autoload/provider.vim
@@ -0,0 +1,20 @@
+" Common functionality for providers
+
+let s:stderr = {}
+
+function! provider#stderr_collector(chan_id, data, event)
+ let stderr = get(s:stderr, a:chan_id, [''])
+ let stderr[-1] .= a:data[0]
+ call extend(stderr, a:data[1:])
+ let s:stderr[a:chan_id] = stderr
+endfunction
+
+function! provider#clear_stderr(chan_id)
+ if has_key(s:stderr, a:chan_id)
+ call remove(s:stderr, a:chan_id)
+ endif
+endfunction
+
+function! provider#get_stderr(chan_id)
+ return get(s:stderr, a:chan_id, [])
+endfunction
diff --git a/runtime/autoload/provider/clipboard.vim b/runtime/autoload/provider/clipboard.vim
index 1bcc1dea74..6454a01c2a 100644
--- a/runtime/autoload/provider/clipboard.vim
+++ b/runtime/autoload/provider/clipboard.vim
@@ -3,28 +3,36 @@
" available.
let s:copy = {}
let s:paste = {}
+let s:clipboard = {}
" When caching is enabled, store the jobid of the xclip/xsel process keeping
" ownership of the selection, so we know how long the cache is valid.
-let s:selection = { 'owner': 0, 'data': [] }
+let s:selection = { 'owner': 0, 'data': [], 'on_stderr': function('provider#stderr_collector') }
-function! s:selection.on_exit(jobid, data, event)
+function! s:selection.on_exit(jobid, data, event) abort
" At this point this nvim instance might already have launched
" a new provider instance. Don't drop ownership in this case.
if self.owner == a:jobid
let self.owner = 0
endif
+ if a:data != 0
+ let stderr = provider#get_stderr(a:jobid)
+ echohl WarningMsg
+ echomsg 'clipboard: error invoking '.get(self.argv, 0, '?').': '.join(stderr)
+ echohl None
+ endif
+ call provider#clear_stderr(a:jobid)
endfunction
-let s:selections = { '*': s:selection, '+': copy(s:selection)}
+let s:selections = { '*': s:selection, '+': copy(s:selection) }
-function! s:try_cmd(cmd, ...)
+function! s:try_cmd(cmd, ...) abort
let argv = split(a:cmd, " ")
let out = a:0 ? systemlist(argv, a:1, 1) : systemlist(argv, [''], 1)
if v:shell_error
if !exists('s:did_error_try_cmd')
echohl WarningMsg
- echomsg "clipboard: error: ".(len(out) ? out[0] : '')
+ echomsg "clipboard: error: ".(len(out) ? out[0] : v:shell_error)
echohl None
let s:did_error_try_cmd = 1
endif
@@ -34,7 +42,7 @@ function! s:try_cmd(cmd, ...)
endfunction
" Returns TRUE if `cmd` exits with success, else FALSE.
-function! s:cmd_ok(cmd)
+function! s:cmd_ok(cmd) abort
call system(a:cmd)
return v:shell_error == 0
endfunction
@@ -47,7 +55,18 @@ function! provider#clipboard#Error() abort
endfunction
function! provider#clipboard#Executable() abort
- if has('mac') && executable('pbcopy')
+ if exists('g:clipboard')
+ if type({}) isnot# type(g:clipboard)
+ \ || type({}) isnot# type(get(g:clipboard, 'copy', v:null))
+ \ || type({}) isnot# type(get(g:clipboard, 'paste', v:null))
+ let s:err = 'clipboard: invalid g:clipboard'
+ return ''
+ endif
+ let s:copy = get(g:clipboard, 'copy', { '+': v:null, '*': v:null })
+ let s:paste = get(g:clipboard, 'paste', { '+': v:null, '*': v:null })
+ let s:cache_enabled = get(g:clipboard, 'cache_enabled', 0)
+ return get(g:clipboard, 'name', 'g:clipboard')
+ elseif has('mac') && executable('pbcopy')
let s:copy['+'] = 'pbcopy'
let s:paste['+'] = 'pbpaste'
let s:copy['*'] = s:copy['+']
@@ -84,26 +103,33 @@ function! provider#clipboard#Executable() abort
let s:copy['*'] = s:copy['+']
let s:paste['*'] = s:paste['+']
return 'win32yank'
+ elseif exists('$TMUX') && executable('tmux')
+ let s:copy['+'] = 'tmux load-buffer -'
+ let s:paste['+'] = 'tmux save-buffer -'
+ let s:copy['*'] = s:copy['+']
+ let s:paste['*'] = s:paste['+']
+ return 'tmux'
endif
- let s:err = 'clipboard: No clipboard tool available. See :help clipboard'
+ let s:err = 'clipboard: No clipboard tool. :help clipboard'
return ''
endfunction
if empty(provider#clipboard#Executable())
+ " provider#clipboard#Call() *must not* be defined if the provider is broken.
+ " Otherwise eval_has_provider() thinks the clipboard provider is
+ " functioning, and eval_call_provider() will happily call it.
finish
endif
-let s:clipboard = {}
-
-function! s:clipboard.get(reg)
+function! s:clipboard.get(reg) abort
if s:selections[a:reg].owner > 0
return s:selections[a:reg].data
end
return s:try_cmd(s:paste[a:reg])
endfunction
-function! s:clipboard.set(lines, regtype, reg)
+function! s:clipboard.set(lines, regtype, reg) abort
if a:reg == '"'
call s:clipboard.set(a:lines,a:regtype,'+')
if s:copy['*'] != s:copy['+']
@@ -124,20 +150,31 @@ function! s:clipboard.set(lines, regtype, reg)
end
let selection.data = [a:lines, a:regtype]
let argv = split(s:copy[a:reg], " ")
+ let selection.argv = argv
let selection.detach = s:cache_enabled
let selection.cwd = "/"
let jobid = jobstart(argv, selection)
- if jobid <= 0
+ if jobid > 0
+ call jobsend(jobid, a:lines)
+ call jobclose(jobid, 'stdin')
+ let selection.owner = jobid
+ else
echohl WarningMsg
- echo "clipboard: error when invoking provider"
+ echomsg 'clipboard: failed to execute: '.(s:copy[a:reg])
echohl None
return 0
endif
- call jobsend(jobid, a:lines)
- call jobclose(jobid, 'stdin')
- let selection.owner = jobid
+ return 1
endfunction
-function! provider#clipboard#Call(method, args)
- return call(s:clipboard[a:method],a:args,s:clipboard)
+function! provider#clipboard#Call(method, args) abort
+ if get(s:, 'here', v:false) " Clipboard provider must not recurse. #7184
+ return 0
+ endif
+ let s:here = v:true
+ try
+ return call(s:clipboard[a:method],a:args,s:clipboard)
+ finally
+ let s:here = v:false
+ endtry
endfunction
diff --git a/runtime/autoload/provider/node.vim b/runtime/autoload/provider/node.vim
new file mode 100644
index 0000000000..b08ad4f316
--- /dev/null
+++ b/runtime/autoload/provider/node.vim
@@ -0,0 +1,80 @@
+if exists('g:loaded_node_provider')
+ finish
+endif
+let g:loaded_node_provider = 1
+
+let s:job_opts = {'rpc': v:true, 'on_stderr': function('provider#stderr_collector')}
+
+function! provider#node#Detect() abort
+ return has('win32') ? exepath('neovim-node-host.cmd') : exepath('neovim-node-host')
+endfunction
+
+function! provider#node#Prog()
+ return s:prog
+endfunction
+
+function! provider#node#Require(host) abort
+ if s:err != ''
+ echoerr s:err
+ return
+ endif
+
+ if has('win32')
+ let args = provider#node#Prog()
+ else
+ let args = ['node']
+
+ if !empty($NVIM_NODE_HOST_DEBUG)
+ call add(args, '--inspect-brk')
+ endif
+
+ call add(args , provider#node#Prog())
+ endif
+
+ try
+ let channel_id = jobstart(args, s:job_opts)
+ if rpcrequest(channel_id, 'poll') ==# 'ok'
+ return channel_id
+ endif
+ catch
+ echomsg v:throwpoint
+ echomsg v:exception
+ for row in provider#get_stderr(channel_id)
+ echomsg row
+ endfor
+ endtry
+ finally
+ call provider#clear_stderr(channel_id)
+ endtry
+ throw remote#host#LoadErrorForHost(a:host.orig_name, '$NVIM_NODE_LOG_FILE')
+endfunction
+
+function! provider#node#Call(method, args)
+ if s:err != ''
+ echoerr s:err
+ return
+ endif
+
+ if !exists('s:host')
+ try
+ let s:host = remote#host#Require('node')
+ catch
+ let s:err = v:exception
+ echohl WarningMsg
+ echomsg v:exception
+ echohl None
+ return
+ endtry
+ endif
+ return call('rpcrequest', insert(insert(a:args, 'node_'.a:method), s:host))
+endfunction
+
+
+let s:err = ''
+let s:prog = provider#node#Detect()
+
+if empty(s:prog)
+ let s:err = 'Cannot find the "neovim" node package. Try :CheckHealth'
+endif
+
+call remote#host#RegisterPlugin('node-provider', 'node', [])
diff --git a/runtime/autoload/provider/python.vim b/runtime/autoload/provider/python.vim
index b99a046375..81fe194cb9 100644
--- a/runtime/autoload/provider/python.vim
+++ b/runtime/autoload/provider/python.vim
@@ -1,5 +1,5 @@
" The Python provider uses a Python host to emulate an environment for running
-" python-vim plugins. See ":help provider".
+" python-vim plugins. :help provider
"
" Associating the plugin with the Python host is the first step because plugins
" will be passed as command-line arguments
diff --git a/runtime/autoload/provider/python3.vim b/runtime/autoload/provider/python3.vim
index 4f47a03a9b..0c3b75b73d 100644
--- a/runtime/autoload/provider/python3.vim
+++ b/runtime/autoload/provider/python3.vim
@@ -1,5 +1,5 @@
" The Python3 provider uses a Python3 host to emulate an environment for running
-" python3 plugins. See ":help provider".
+" python3 plugins. :help provider
"
" Associating the plugin with the Python3 host is the first step because
" plugins will be passed as command-line arguments
diff --git a/runtime/autoload/provider/pythonx.vim b/runtime/autoload/provider/pythonx.vim
index 08a0f39b01..7285ed43ea 100644
--- a/runtime/autoload/provider/pythonx.vim
+++ b/runtime/autoload/provider/pythonx.vim
@@ -5,17 +5,7 @@ endif
let s:loaded_pythonx_provider = 1
-let s:stderr = {}
-let s:job_opts = {'rpc': v:true}
-
-" TODO(bfredl): this logic is common and should be builtin
-function! s:job_opts.on_stderr(chan_id, data, event)
- let stderr = get(s:stderr, a:chan_id, [''])
- let last = remove(stderr, -1)
- let a:data[0] = last.a:data[0]
- call extend(stderr, a:data)
- let s:stderr[a:chan_id] = stderr
-endfunction
+let s:job_opts = {'rpc': v:true, 'on_stderr': function('provider#stderr_collector')}
function! provider#pythonx#Require(host) abort
let ver = (a:host.orig_name ==# 'python') ? 2 : 3
@@ -38,9 +28,11 @@ function! provider#pythonx#Require(host) abort
catch
echomsg v:throwpoint
echomsg v:exception
- for row in get(s:stderr, channel_id, [])
+ for row in provider#get_stderr(channel_id)
echomsg row
endfor
+ finally
+ call provider#clear_stderr(channel_id)
endtry
throw remote#host#LoadErrorForHost(a:host.orig_name,
\ '$NVIM_PYTHON_LOG_FILE')
@@ -112,15 +104,14 @@ function! s:check_interpreter(prog, major_ver) abort
endif
if v:shell_error == 2
- return [0, prog_path . ' does not have the neovim module installed. '
- \ . 'See ":help provider-python".']
+ return [0, prog_path.' does not have the "neovim" module. :help provider-python']
elseif v:shell_error == 127
" This can happen with pyenv's shims.
return [0, prog_path . ' does not exist: ' . prog_ver]
elseif v:shell_error
return [0, 'Checking ' . prog_path . ' caused an unknown error. '
\ . '(' . v:shell_error . ', output: ' . prog_ver . ')'
- \ . ' Please report this at github.com/neovim/neovim.']
+ \ . ' Report this at https://github.com/neovim/neovim']
endif
return [1, '']
diff --git a/runtime/autoload/provider/ruby.vim b/runtime/autoload/provider/ruby.vim
index c8ede20a75..da73a0dfc0 100644
--- a/runtime/autoload/provider/ruby.vim
+++ b/runtime/autoload/provider/ruby.vim
@@ -16,7 +16,11 @@ function! s:job_opts.on_stderr(chan_id, data, event)
endfunction
function! provider#ruby#Detect() abort
- return exepath('neovim-ruby-host')
+ if exists("g:ruby_host_prog")
+ return g:ruby_host_prog
+ else
+ return has('win32') ? exepath('neovim-ruby-host.bat') : exepath('neovim-ruby-host')
+ end
endfunction
function! provider#ruby#Prog()
@@ -24,15 +28,15 @@ function! provider#ruby#Prog()
endfunction
function! provider#ruby#Require(host) abort
- let args = [provider#ruby#Prog()]
+ let prog = provider#ruby#Prog()
let ruby_plugins = remote#host#PluginsForHost(a:host.name)
for plugin in ruby_plugins
- call add(args, plugin.path)
+ let prog .= " " . shellescape(plugin.path)
endfor
try
- let channel_id = jobstart(args, s:job_opts)
+ let channel_id = jobstart(prog, s:job_opts)
if rpcrequest(channel_id, 'poll') ==# 'ok'
return channel_id
endif
@@ -71,7 +75,7 @@ let s:prog = provider#ruby#Detect()
let s:plugin_path = expand('<sfile>:p:h') . '/script_host.rb'
if empty(s:prog)
- let s:err = 'Cannot find the neovim RubyGem. Try :CheckHealth'
+ let s:err = 'Cannot find the neovim RubyGem. Try :checkhealth'
endif
call remote#host#RegisterClone('legacy-ruby-provider', 'ruby')
diff --git a/runtime/autoload/provider/script_host.rb b/runtime/autoload/provider/script_host.rb
index 1dade766c7..a1c58bde85 100644
--- a/runtime/autoload/provider/script_host.rb
+++ b/runtime/autoload/provider/script_host.rb
@@ -1,8 +1,6 @@
begin
- require "neovim/ruby_provider"
+ require 'neovim/ruby_provider'
rescue LoadError
- warn(
- "Your neovim RubyGem is missing or out of date. " +
- "Install the latest version using `gem install neovim`."
- )
+ warn('Your neovim RubyGem is missing or out of date.',
+ 'Install the latest version using `gem install neovim`.')
end
diff --git a/runtime/autoload/remote/define.vim b/runtime/autoload/remote/define.vim
index b04a5d2280..2688a62a82 100644
--- a/runtime/autoload/remote/define.vim
+++ b/runtime/autoload/remote/define.vim
@@ -89,7 +89,8 @@ endfunction
function! remote#define#AutocmdOnHost(host, method, sync, name, opts)
let group = s:GetNextAutocmdGroup()
- let forward = '"doau '.group.' '.a:name.' ".'.'expand("<amatch>")'
+ let forward = '"doau '.group.' '.a:name.' ".'
+ \ . 'fnameescape(expand("<amatch>"))'
let a:opts.group = group
let bootstrap_def = s:GetAutocmdPrefix(a:name, a:opts)
\ .' call remote#define#AutocmdBootstrap("'.a:host.'"'
@@ -168,14 +169,40 @@ function! remote#define#FunctionOnChannel(channel, method, sync, name, opts)
exe function_def
endfunction
+let s:busy = {}
+let s:pending_notifications = {}
function! s:GetRpcFunction(sync)
- if a:sync
- return 'rpcrequest'
+ if a:sync ==# 'urgent'
+ return 'rpcnotify'
+ elseif a:sync
+ return 'remote#define#request'
endif
- return 'rpcnotify'
+ return 'remote#define#notify'
endfunction
+function! remote#define#notify(chan, ...)
+ if get(s:busy, a:chan, 0) > 0
+ let pending = get(s:pending_notifications, a:chan, [])
+ call add(pending, deepcopy(a:000))
+ let s:pending_notifications[a:chan] = pending
+ else
+ call call('rpcnotify', [a:chan] + a:000)
+ endif
+endfunction
+
+function! remote#define#request(chan, ...)
+ let s:busy[a:chan] = get(s:busy, a:chan, 0)+1
+ let val = call('rpcrequest', [a:chan]+a:000)
+ let s:busy[a:chan] -= 1
+ if s:busy[a:chan] == 0
+ for msg in get(s:pending_notifications, a:chan, [])
+ call call('rpcnotify', [a:chan] + msg)
+ endfor
+ let s:pending_notifications[a:chan] = []
+ endif
+ return val
+endfunction
function! s:GetCommandPrefix(name, opts)
return 'command!'.s:StringifyOpts(a:opts, ['nargs', 'complete', 'range',
diff --git a/runtime/autoload/remote/host.vim b/runtime/autoload/remote/host.vim
index e695fb7df7..dfaab7d246 100644
--- a/runtime/autoload/remote/host.vim
+++ b/runtime/autoload/remote/host.vim
@@ -199,3 +199,7 @@ call remote#host#Register('python3', '*',
" Ruby
call remote#host#Register('ruby', '*.rb',
\ function('provider#ruby#Require'))
+
+" nodejs
+call remote#host#Register('node', '*',
+ \ function('provider#node#Require'))
diff --git a/runtime/autoload/rubycomplete.vim b/runtime/autoload/rubycomplete.vim
index e1064c8a58..40b87f4cbe 100644
--- a/runtime/autoload/rubycomplete.vim
+++ b/runtime/autoload/rubycomplete.vim
@@ -93,7 +93,7 @@ function! s:GetBufferRubyEntity( name, type, ... )
let stopline = 1
- let crex = '^\s*\<' . a:type . '\>\s*\<' . a:name . '\>\s*\(<\s*.*\s*\)\?'
+ let crex = '^\s*\<' . a:type . '\>\s*\<' . escape(a:name, '*') . '\>\s*\(<\s*.*\s*\)\?'
let [lnum,lcol] = searchpos( crex, 'w' )
"let [lnum,lcol] = searchpairpos( crex . '\zs', '', '\(end\|}\)', 'w' )
@@ -149,7 +149,7 @@ function! s:GetRubyVarType(v)
let ctors = ctors.'\)'
let fstr = '=\s*\([^ \t]\+.' . ctors .'\>\|[\[{"''/]\|%[xwQqr][(\[{@]\|[A-Za-z0-9@:\-()\.]\+...\?\|lambda\|&\)'
- let sstr = ''.a:v.'\>\s*[+\-*/]*'.fstr
+ let sstr = ''.escape(a:v, '*').'\>\s*[+\-*/]*'.fstr
let [lnum,lcol] = searchpos(sstr,'nb',stopline)
if lnum != 0 && lcol != 0
let str = matchstr(getline(lnum),fstr,lcol)
@@ -196,7 +196,7 @@ function! rubycomplete#Complete(findstart, base)
if c =~ '\w'
continue
elseif ! c =~ '\.'
- idx = -1
+ let idx = -1
break
else
break
@@ -266,6 +266,28 @@ class VimRubyCompletion
end
end
+ def load_gems
+ fpath = VIM::evaluate("get(g:, 'rubycomplete_gemfile_path', 'Gemfile')")
+ return unless File.file?(fpath) && File.readable?(fpath)
+ want_bundler = VIM::evaluate("get(g:, 'rubycomplete_use_bundler')")
+ parse_file = !want_bundler
+ begin
+ require 'bundler'
+ Bundler.setup
+ Bundler.require
+ rescue Exception
+ parse_file = true
+ end
+ if parse_file
+ File.new(fpath).each_line do |line|
+ begin
+ require $1 if /\s*gem\s*['"]([^'"]+)/.match(line)
+ rescue Exception
+ end
+ end
+ end
+ end
+
def load_buffer_class(name)
dprint "load_buffer_class(%s) START" % name
classdef = get_buffer_entity(name, 's:GetBufferRubyClass("%s")')
@@ -588,6 +610,10 @@ class VimRubyCompletion
load_rails
end
+ want_gems = VIM::evaluate("get(g:, 'rubycomplete_load_gemfile')")
+ load_gems unless want_gems.to_i.zero?
+
+
input = VIM::Buffer.current.line
cpos = VIM::Window.current.cursor[1] - 1
input = input[0..cpos]
@@ -678,7 +704,9 @@ class VimRubyCompletion
cv = eval("self.class.constants")
vartype = get_var_type( receiver )
dprint "vartype: %s" % vartype
- if vartype != ''
+
+ invalid_vartype = ['', "gets"]
+ if !invalid_vartype.include?(vartype)
load_buffer_class( vartype )
begin
@@ -706,7 +734,7 @@ class VimRubyCompletion
methods.concat m.instance_methods(false)
}
end
- variables += add_rails_columns( "#{vartype}" ) if vartype && vartype.length > 0
+ variables += add_rails_columns( "#{vartype}" ) if vartype && !invalid_vartype.include?(vartype)
when /^\(?\s*[A-Za-z0-9:^@.%\/+*\(\)]+\.\.\.?[A-Za-z0-9:^@.%\/+*\(\)]+\s*\)?\.([^.]*)/
message = $1
diff --git a/runtime/autoload/rust.vim b/runtime/autoload/rust.vim
new file mode 100644
index 0000000000..34a3b41773
--- /dev/null
+++ b/runtime/autoload/rust.vim
@@ -0,0 +1,415 @@
+" Author: Kevin Ballard
+" Description: Helper functions for Rust commands/mappings
+" Last Modified: May 27, 2014
+" For bugs, patches and license go to https://github.com/rust-lang/rust.vim
+
+" Jump {{{1
+
+function! rust#Jump(mode, function) range
+ let cnt = v:count1
+ normal! m'
+ if a:mode ==# 'v'
+ norm! gv
+ endif
+ let foldenable = &foldenable
+ set nofoldenable
+ while cnt > 0
+ execute "call <SID>Jump_" . a:function . "()"
+ let cnt = cnt - 1
+ endwhile
+ let &foldenable = foldenable
+endfunction
+
+function! s:Jump_Back()
+ call search('{', 'b')
+ keepjumps normal! w99[{
+endfunction
+
+function! s:Jump_Forward()
+ normal! j0
+ call search('{', 'b')
+ keepjumps normal! w99[{%
+ call search('{')
+endfunction
+
+" Run {{{1
+
+function! rust#Run(bang, args)
+ let args = s:ShellTokenize(a:args)
+ if a:bang
+ let idx = index(l:args, '--')
+ if idx != -1
+ let rustc_args = idx == 0 ? [] : l:args[:idx-1]
+ let args = l:args[idx+1:]
+ else
+ let rustc_args = l:args
+ let args = []
+ endif
+ else
+ let rustc_args = []
+ endif
+
+ let b:rust_last_rustc_args = l:rustc_args
+ let b:rust_last_args = l:args
+
+ call s:WithPath(function("s:Run"), rustc_args, args)
+endfunction
+
+function! s:Run(dict, rustc_args, args)
+ let exepath = a:dict.tmpdir.'/'.fnamemodify(a:dict.path, ':t:r')
+ if has('win32')
+ let exepath .= '.exe'
+ endif
+
+ let relpath = get(a:dict, 'tmpdir_relpath', a:dict.path)
+ let rustc_args = [relpath, '-o', exepath] + a:rustc_args
+
+ let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"
+
+ let pwd = a:dict.istemp ? a:dict.tmpdir : ''
+ let output = s:system(pwd, shellescape(rustc) . " " . join(map(rustc_args, 'shellescape(v:val)')))
+ if output != ''
+ echohl WarningMsg
+ echo output
+ echohl None
+ endif
+ if !v:shell_error
+ exe '!' . shellescape(exepath) . " " . join(map(a:args, 'shellescape(v:val)'))
+ endif
+endfunction
+
+" Expand {{{1
+
+function! rust#Expand(bang, args)
+ let args = s:ShellTokenize(a:args)
+ if a:bang && !empty(l:args)
+ let pretty = remove(l:args, 0)
+ else
+ let pretty = "expanded"
+ endif
+ call s:WithPath(function("s:Expand"), pretty, args)
+endfunction
+
+function! s:Expand(dict, pretty, args)
+ try
+ let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"
+
+ if a:pretty =~? '^\%(everybody_loops$\|flowgraph=\)'
+ let flag = '--xpretty'
+ else
+ let flag = '--pretty'
+ endif
+ let relpath = get(a:dict, 'tmpdir_relpath', a:dict.path)
+ let args = [relpath, '-Z', 'unstable-options', l:flag, a:pretty] + a:args
+ let pwd = a:dict.istemp ? a:dict.tmpdir : ''
+ let output = s:system(pwd, shellescape(rustc) . " " . join(map(args, 'shellescape(v:val)')))
+ if v:shell_error
+ echohl WarningMsg
+ echo output
+ echohl None
+ else
+ new
+ silent put =output
+ 1
+ d
+ setl filetype=rust
+ setl buftype=nofile
+ setl bufhidden=hide
+ setl noswapfile
+ " give the buffer a nice name
+ let suffix = 1
+ let basename = fnamemodify(a:dict.path, ':t:r')
+ while 1
+ let bufname = basename
+ if suffix > 1 | let bufname .= ' ('.suffix.')' | endif
+ let bufname .= '.pretty.rs'
+ if bufexists(bufname)
+ let suffix += 1
+ continue
+ endif
+ exe 'silent noautocmd keepalt file' fnameescape(bufname)
+ break
+ endwhile
+ endif
+ endtry
+endfunction
+
+function! rust#CompleteExpand(lead, line, pos)
+ if a:line[: a:pos-1] =~ '^RustExpand!\s*\S*$'
+ " first argument and it has a !
+ let list = ["normal", "expanded", "typed", "expanded,identified", "flowgraph=", "everybody_loops"]
+ if !empty(a:lead)
+ call filter(list, "v:val[:len(a:lead)-1] == a:lead")
+ endif
+ return list
+ endif
+
+ return glob(escape(a:lead, "*?[") . '*', 0, 1)
+endfunction
+
+" Emit {{{1
+
+function! rust#Emit(type, args)
+ let args = s:ShellTokenize(a:args)
+ call s:WithPath(function("s:Emit"), a:type, args)
+endfunction
+
+function! s:Emit(dict, type, args)
+ try
+ let output_path = a:dict.tmpdir.'/output'
+
+ let rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"
+
+ let relpath = get(a:dict, 'tmpdir_relpath', a:dict.path)
+ let args = [relpath, '--emit', a:type, '-o', output_path] + a:args
+ let pwd = a:dict.istemp ? a:dict.tmpdir : ''
+ let output = s:system(pwd, shellescape(rustc) . " " . join(map(args, 'shellescape(v:val)')))
+ if output != ''
+ echohl WarningMsg
+ echo output
+ echohl None
+ endif
+ if !v:shell_error
+ new
+ exe 'silent keepalt read' fnameescape(output_path)
+ 1
+ d
+ if a:type == "llvm-ir"
+ setl filetype=llvm
+ let extension = 'll'
+ elseif a:type == "asm"
+ setl filetype=asm
+ let extension = 's'
+ endif
+ setl buftype=nofile
+ setl bufhidden=hide
+ setl noswapfile
+ if exists('l:extension')
+ " give the buffer a nice name
+ let suffix = 1
+ let basename = fnamemodify(a:dict.path, ':t:r')
+ while 1
+ let bufname = basename
+ if suffix > 1 | let bufname .= ' ('.suffix.')' | endif
+ let bufname .= '.'.extension
+ if bufexists(bufname)
+ let suffix += 1
+ continue
+ endif
+ exe 'silent noautocmd keepalt file' fnameescape(bufname)
+ break
+ endwhile
+ endif
+ endif
+ endtry
+endfunction
+
+" Utility functions {{{1
+
+" Invokes func(dict, ...)
+" Where {dict} is a dictionary with the following keys:
+" 'path' - The path to the file
+" 'tmpdir' - The path to a temporary directory that will be deleted when the
+" function returns.
+" 'istemp' - 1 if the path is a file inside of {dict.tmpdir} or 0 otherwise.
+" If {istemp} is 1 then an additional key is provided:
+" 'tmpdir_relpath' - The {path} relative to the {tmpdir}.
+"
+" {dict.path} may be a path to a file inside of {dict.tmpdir} or it may be the
+" existing path of the current buffer. If the path is inside of {dict.tmpdir}
+" then it is guaranteed to have a '.rs' extension.
+function! s:WithPath(func, ...)
+ let buf = bufnr('')
+ let saved = {}
+ let dict = {}
+ try
+ let saved.write = &write
+ set write
+ let dict.path = expand('%')
+ let pathisempty = empty(dict.path)
+
+ " Always create a tmpdir in case the wrapped command wants it
+ let dict.tmpdir = tempname()
+ call mkdir(dict.tmpdir)
+
+ if pathisempty || !saved.write
+ let dict.istemp = 1
+ " if we're doing this because of nowrite, preserve the filename
+ if !pathisempty
+ let filename = expand('%:t:r').".rs"
+ else
+ let filename = 'unnamed.rs'
+ endif
+ let dict.tmpdir_relpath = filename
+ let dict.path = dict.tmpdir.'/'.filename
+
+ let saved.mod = &mod
+ set nomod
+
+ silent exe 'keepalt write! ' . fnameescape(dict.path)
+ if pathisempty
+ silent keepalt 0file
+ endif
+ else
+ let dict.istemp = 0
+ update
+ endif
+
+ call call(a:func, [dict] + a:000)
+ finally
+ if bufexists(buf)
+ for [opt, value] in items(saved)
+ silent call setbufvar(buf, '&'.opt, value)
+ unlet value " avoid variable type mismatches
+ endfor
+ endif
+ if has_key(dict, 'tmpdir') | silent call s:RmDir(dict.tmpdir) | endif
+ endtry
+endfunction
+
+function! rust#AppendCmdLine(text)
+ call setcmdpos(getcmdpos())
+ let cmd = getcmdline() . a:text
+ return cmd
+endfunction
+
+" Tokenize the string according to sh parsing rules
+function! s:ShellTokenize(text)
+ " states:
+ " 0: start of word
+ " 1: unquoted
+ " 2: unquoted backslash
+ " 3: double-quote
+ " 4: double-quoted backslash
+ " 5: single-quote
+ let l:state = 0
+ let l:current = ''
+ let l:args = []
+ for c in split(a:text, '\zs')
+ if l:state == 0 || l:state == 1 " unquoted
+ if l:c ==# ' '
+ if l:state == 0 | continue | endif
+ call add(l:args, l:current)
+ let l:current = ''
+ let l:state = 0
+ elseif l:c ==# '\'
+ let l:state = 2
+ elseif l:c ==# '"'
+ let l:state = 3
+ elseif l:c ==# "'"
+ let l:state = 5
+ else
+ let l:current .= l:c
+ let l:state = 1
+ endif
+ elseif l:state == 2 " unquoted backslash
+ if l:c !=# "\n" " can it even be \n?
+ let l:current .= l:c
+ endif
+ let l:state = 1
+ elseif l:state == 3 " double-quote
+ if l:c ==# '\'
+ let l:state = 4
+ elseif l:c ==# '"'
+ let l:state = 1
+ else
+ let l:current .= l:c
+ endif
+ elseif l:state == 4 " double-quoted backslash
+ if stridx('$`"\', l:c) >= 0
+ let l:current .= l:c
+ elseif l:c ==# "\n" " is this even possible?
+ " skip it
+ else
+ let l:current .= '\'.l:c
+ endif
+ let l:state = 3
+ elseif l:state == 5 " single-quoted
+ if l:c == "'"
+ let l:state = 1
+ else
+ let l:current .= l:c
+ endif
+ endif
+ endfor
+ if l:state != 0
+ call add(l:args, l:current)
+ endif
+ return l:args
+endfunction
+
+function! s:RmDir(path)
+ " sanity check; make sure it's not empty, /, or $HOME
+ if empty(a:path)
+ echoerr 'Attempted to delete empty path'
+ return 0
+ elseif a:path == '/' || a:path == $HOME
+ echoerr 'Attempted to delete protected path: ' . a:path
+ return 0
+ endif
+ return system("rm -rf " . shellescape(a:path))
+endfunction
+
+" Executes {cmd} with the cwd set to {pwd}, without changing Vim's cwd.
+" If {pwd} is the empty string then it doesn't change the cwd.
+function! s:system(pwd, cmd)
+ let cmd = a:cmd
+ if !empty(a:pwd)
+ let cmd = 'cd ' . shellescape(a:pwd) . ' && ' . cmd
+ endif
+ return system(cmd)
+endfunction
+
+" Playpen Support {{{1
+" Parts of gist.vim by Yasuhiro Matsumoto <mattn.jp@gmail.com> reused
+" gist.vim available under the BSD license, available at
+" http://github.com/mattn/gist-vim
+function! s:has_webapi()
+ if !exists("*webapi#http#post")
+ try
+ call webapi#http#post()
+ catch
+ endtry
+ endif
+ return exists("*webapi#http#post")
+endfunction
+
+function! rust#Play(count, line1, line2, ...) abort
+ redraw
+
+ let l:rust_playpen_url = get(g:, 'rust_playpen_url', 'https://play.rust-lang.org/')
+ let l:rust_shortener_url = get(g:, 'rust_shortener_url', 'https://is.gd/')
+
+ if !s:has_webapi()
+ echohl ErrorMsg | echomsg ':RustPlay depends on webapi.vim (https://github.com/mattn/webapi-vim)' | echohl None
+ return
+ endif
+
+ let bufname = bufname('%')
+ if a:count < 1
+ let content = join(getline(a:line1, a:line2), "\n")
+ else
+ let save_regcont = @"
+ let save_regtype = getregtype('"')
+ silent! normal! gvy
+ let content = @"
+ call setreg('"', save_regcont, save_regtype)
+ endif
+
+ let body = l:rust_playpen_url."?code=".webapi#http#encodeURI(content)
+
+ if strlen(body) > 5000
+ echohl ErrorMsg | echomsg 'Buffer too large, max 5000 encoded characters ('.strlen(body).')' | echohl None
+ return
+ endif
+
+ let payload = "format=simple&url=".webapi#http#encodeURI(body)
+ let res = webapi#http#post(l:rust_shortener_url.'create.php', payload, {})
+ let url = res.content
+
+ redraw | echomsg 'Done: '.url
+endfunction
+
+" }}}1
+
+" vim: set noet sw=8 ts=8:
diff --git a/runtime/autoload/rustfmt.vim b/runtime/autoload/rustfmt.vim
new file mode 100644
index 0000000000..a689b5e00d
--- /dev/null
+++ b/runtime/autoload/rustfmt.vim
@@ -0,0 +1,107 @@
+" Author: Stephen Sugden <stephen@stephensugden.com>
+"
+" Adapted from https://github.com/fatih/vim-go
+" For bugs, patches and license go to https://github.com/rust-lang/rust.vim
+
+if !exists("g:rustfmt_autosave")
+ let g:rustfmt_autosave = 0
+endif
+
+if !exists("g:rustfmt_command")
+ let g:rustfmt_command = "rustfmt"
+endif
+
+if !exists("g:rustfmt_options")
+ let g:rustfmt_options = ""
+endif
+
+if !exists("g:rustfmt_fail_silently")
+ let g:rustfmt_fail_silently = 0
+endif
+
+let s:got_fmt_error = 0
+
+function! s:RustfmtCommandRange(filename, line1, line2)
+ let l:arg = {"file": shellescape(a:filename), "range": [a:line1, a:line2]}
+ return printf("%s %s --write-mode=overwrite --file-lines '[%s]'", g:rustfmt_command, g:rustfmt_options, json_encode(l:arg))
+endfunction
+
+function! s:RustfmtCommand(filename)
+ return g:rustfmt_command . " --write-mode=overwrite " . g:rustfmt_options . " " . shellescape(a:filename)
+endfunction
+
+function! s:RunRustfmt(command, curw, tmpname)
+ if exists("*systemlist")
+ let out = systemlist(a:command)
+ else
+ let out = split(system(a:command), '\r\?\n')
+ endif
+
+ if v:shell_error == 0 || v:shell_error == 3
+ " remove undo point caused via BufWritePre
+ try | silent undojoin | catch | endtry
+
+ " Replace current file with temp file, then reload buffer
+ call rename(a:tmpname, expand('%'))
+ silent edit!
+ let &syntax = &syntax
+
+ " only clear location list if it was previously filled to prevent
+ " clobbering other additions
+ if s:got_fmt_error
+ let s:got_fmt_error = 0
+ call setloclist(0, [])
+ lwindow
+ endif
+ elseif g:rustfmt_fail_silently == 0
+ " otherwise get the errors and put them in the location list
+ let errors = []
+
+ for line in out
+ " src/lib.rs:13:5: 13:10 error: expected `,`, or `}`, found `value`
+ let tokens = matchlist(line, '^\(.\{-}\):\(\d\+\):\(\d\+\):\s*\(\d\+:\d\+\s*\)\?\s*error: \(.*\)')
+ if !empty(tokens)
+ call add(errors, {"filename": @%,
+ \"lnum": tokens[2],
+ \"col": tokens[3],
+ \"text": tokens[5]})
+ endif
+ endfor
+
+ if empty(errors)
+ % | " Couldn't detect rustfmt error format, output errors
+ endif
+
+ if !empty(errors)
+ call setloclist(0, errors, 'r')
+ echohl Error | echomsg "rustfmt returned error" | echohl None
+ endif
+
+ let s:got_fmt_error = 1
+ lwindow
+ " We didn't use the temp file, so clean up
+ call delete(a:tmpname)
+ endif
+
+ call winrestview(a:curw)
+endfunction
+
+function! rustfmt#FormatRange(line1, line2)
+ let l:curw = winsaveview()
+ let l:tmpname = expand("%:p:h") . "/." . expand("%:p:t") . ".rustfmt"
+ call writefile(getline(1, '$'), l:tmpname)
+
+ let command = s:RustfmtCommandRange(l:tmpname, a:line1, a:line2)
+
+ call s:RunRustfmt(command, l:curw, l:tmpname)
+endfunction
+
+function! rustfmt#Format()
+ let l:curw = winsaveview()
+ let l:tmpname = expand("%:p:h") . "/." . expand("%:p:t") . ".rustfmt"
+ call writefile(getline(1, '$'), l:tmpname)
+
+ let command = s:RustfmtCommand(l:tmpname)
+
+ call s:RunRustfmt(command, l:curw, l:tmpname)
+endfunction
diff --git a/runtime/autoload/shada.vim b/runtime/autoload/shada.vim
index cf27ee608a..87acc515ee 100644
--- a/runtime/autoload/shada.vim
+++ b/runtime/autoload/shada.vim
@@ -45,7 +45,7 @@ call map(copy(s:SHADA_ENTRY_NAMES),
let s:SHADA_MAP_ENTRIES = {
\'search_pattern': ['sp', 'sh', 'ss', 'sb', 'sm', 'sc', 'sl', 'se', 'so',
\ 'su'],
- \'register': ['n', 'rc', 'rw', 'rt'],
+ \'register': ['n', 'rc', 'rw', 'rt', 'ru'],
\'global_mark': ['n', 'f', 'l', 'c'],
\'local_mark': ['f', 'n', 'l', 'c'],
\'jump': ['f', 'l', 'c'],
@@ -139,6 +139,7 @@ let s:SHADA_STANDARD_KEYS = {
\'rt': ['type', 'regtype', s:SHADA_ENUMS.regtype.CHARACTERWISE],
\'rw': ['block width', 'uint', 0],
\'rc': ['contents', 'binarray', s:SHADA_REQUIRED],
+ \'ru': ['is_unnamed', 'boolean', g:msgpack#false],
\'n': ['name', 'intchar', char2nr('"')],
\'l': ['line number', 'uint', 1],
\'c': ['column', 'uint', 0],
diff --git a/runtime/autoload/spellfile.vim b/runtime/autoload/spellfile.vim
index a5ffa514ea..84584c6e29 100644
--- a/runtime/autoload/spellfile.vim
+++ b/runtime/autoload/spellfile.vim
@@ -88,8 +88,8 @@ function! spellfile#LoadFile(lang)
endif
endif
if newbufnr == winbufnr(0)
- " We are back the old buffer, remove any (half-finished) download.
- g/^/d_
+ " We are back to the old buffer, remove any (half-finished) download.
+ keeppatterns g/^/d_
else
let newbufnr = winbufnr(0)
endif
@@ -127,7 +127,7 @@ function! spellfile#LoadFile(lang)
exe "write " . dirname . '/' . fname
" Also download the .sug file.
- g/^/d_
+ keeppatterns g/^/d_
let fname = substitute(fname, '\.spl$', '.sug', '')
echo 'Downloading ' . fname . '...'
call spellfile#Nread(fname)
@@ -197,7 +197,7 @@ function! spellfile#WritableSpellDir()
" Always use the $XDG_DATA_HOME/nvim/site directory
if exists('$XDG_DATA_HOME')
return $XDG_DATA_HOME . "/nvim/site/spell"
- else
+ elseif !(has('win32') || has('win64'))
return $HOME . "/.local/share/nvim/site/spell"
endif
for dir in split(&rtp, ',')
diff --git a/runtime/autoload/sqlcomplete.vim b/runtime/autoload/sqlcomplete.vim
index e80729add4..ea0d8c2de9 100644
--- a/runtime/autoload/sqlcomplete.vim
+++ b/runtime/autoload/sqlcomplete.vim
@@ -2,7 +2,7 @@
" Language: SQL
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
" Version: 16.0
-" Last Change: 2015 Dec 29
+" Last Change: 2017 Oct 15
" Homepage: http://www.vim.org/scripts/script.php?script_id=1572
" Usage: For detailed help
" ":help sql.txt"
diff --git a/runtime/autoload/tar.vim b/runtime/autoload/tar.vim
index 5e76870cce..9c518cb9d0 100644
--- a/runtime/autoload/tar.vim
+++ b/runtime/autoload/tar.vim
@@ -117,7 +117,7 @@ fun! tar#Browse(tarfile)
if !filereadable(a:tarfile)
" call Decho('a:tarfile<'.a:tarfile.'> not filereadable')
if a:tarfile !~# '^\a\+://'
- " if its an url, don't complain, let url-handlers such as vim do its thing
+ " if it's an url, don't complain, let url-handlers such as vim do its thing
redraw!
echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None
endif
diff --git a/runtime/autoload/tutor.vim b/runtime/autoload/tutor.vim
index 43d8a87886..56e2283465 100644
--- a/runtime/autoload/tutor.vim
+++ b/runtime/autoload/tutor.vim
@@ -15,30 +15,17 @@ function! tutor#SetupVim()
endif
endfunction
-" Mappings: {{{1
-
-function! s:CheckMaps()
- nmap
+" Loads metadata file, if available
+function! tutor#LoadMetadata()
+ let b:tutor_metadata = json_decode(join(readfile(expand('%').'.json'), "\n"))
endfunction
-function! s:MapKeyWithRedirect(key, cmd)
- if maparg(a:key) !=# ''
- redir => l:keys
- silent call s:CheckMaps()
- redir END
- let l:key_list = split(l:keys, '\n')
-
- let l:raw_map = filter(copy(l:key_list), "v:val =~# '\\* ".a:key."'")
- if len(l:raw_map) == 0
- exe "nnoremap <buffer> <expr> ".a:key." ".a:cmd
- return
- endif
- let l:map_data = split(l:raw_map[0], '\s*')
+" Mappings: {{{1
- exe "nnoremap <buffer> <expr> ".l:map_data[0]." ".a:cmd
- else
- exe "nnoremap <buffer> <expr> ".a:key." ".a:cmd
- endif
+function! tutor#SetNormalMappings()
+ nnoremap <silent> <buffer> <CR> :call tutor#FollowLink(0)<cr>
+ nnoremap <silent> <buffer> <2-LeftMouse> :call tutor#MouseDoubleClick()<cr>
+ nnoremap <buffer> >> :call tutor#InjectCommand()<cr>
endfunction
function! tutor#MouseDoubleClick()
@@ -46,7 +33,7 @@ function! tutor#MouseDoubleClick()
normal! zo
else
if match(getline('.'), '^#\{1,} ') > -1
- normal! zc
+ silent normal! zc
else
call tutor#FollowLink(0)
endif
@@ -59,114 +46,6 @@ function! tutor#InjectCommand()
redraw | echohl WarningMsg | echon "tutor: ran" | echohl None | echon " " | echohl Statement | echon l:cmd
endfunction
-function! tutor#SetNormalMappings()
- call s:MapKeyWithRedirect('l', 'tutor#ForwardSkipConceal(v:count1)')
- call s:MapKeyWithRedirect('h', 'tutor#BackwardSkipConceal(v:count1)')
- call s:MapKeyWithRedirect('<right>', 'tutor#ForwardSkipConceal(v:count1)')
- call s:MapKeyWithRedirect('<left>', 'tutor#BackwardSkipConceal(v:count1)')
-
- nnoremap <silent> <buffer> <CR> :call tutor#FollowLink(0)<cr>
- nnoremap <silent> <buffer> <2-LeftMouse> :call tutor#MouseDoubleClick()<cr>
- nnoremap <buffer> >> :call tutor#InjectCommand()<cr>
-endfunction
-
-function! tutor#SetSampleTextMappings()
- noremap <silent> <buffer> A :if match(getline('.'), '^--->') > -1 \| call search('\s{\@=', 'Wc') \| startinsert \| else \| startinsert! \| endif<cr>
- noremap <silent> <buffer> $ :if match(getline('.'), '^--->') > -1 \| call search('.\s{\@=', 'Wc') \| else \| call search('$', 'Wc') \| endif<cr>
- onoremap <silent> <buffer> $ :if match(getline('.'), '^--->') > -1 \| call search('.\s{\@=', 'Wc') \| else \| call search('$', 'Wc') \| endif<cr>
- noremap <silent> <buffer> ^ :if match(getline('.'), '^--->') > -1 \| call search('\(--->\s\)\@<=.', 'bcW') \| else \| call search('^', 'bcW') \|endif<cr>
- onoremap <silent> <buffer> ^ :if match(getline('.'), '^--->') > -1 \| call search('\(--->\s\)\@<=.', 'bcW') \| else \| call search('^', 'bcW') \|endif<cr>
- nmap <silent> <buffer> 0 ^<esc>
- nmap <silent> <buffer> <Home> ^<esc>
- nmap <silent> <buffer> <End> $
- imap <silent> <buffer> <Home> <esc>^<esc>:startinsert<cr>
- imap <silent> <buffer> <End> <esc>$:startinsert<cr>
- noremap <silent> <buffer> I :exe "normal! 0" \| startinsert<cr>
-endfunction
-
-" Navigation: {{{1
-
-" taken from http://stackoverflow.com/a/24224578
-
-function! tutor#ForwardSkipConceal(count)
- let cnt=a:count
- let mvcnt=0
- let c=col('.')
- let l=line('.')
- let lc=col('$')
- let line=getline('.')
- while cnt
- if c>=lc
- let mvcnt+=cnt
- break
- endif
- if stridx(&concealcursor, 'n')==-1
- let isconcealed=0
- else
- let [isconcealed, cchar, group] = synconcealed(l, c)
- endif
- if isconcealed
- let cnt-=strchars(cchar)
- let oldc=c
- let c+=1
- while c < lc
- let [isconcealed2, cchar2, group2] = synconcealed(l, c)
- if !isconcealed2 || cchar2 != cchar
- break
- endif
- let c+= 1
- endwhile
- let mvcnt+=strchars(line[oldc-1:c-2])
- else
- let cnt-=1
- let mvcnt+=1
- let c+=len(matchstr(line[c-1:], '.'))
- endif
- endwhile
- return mvcnt.'l'
-endfunction
-
-function! tutor#BackwardSkipConceal(count)
- let cnt=a:count
- let mvcnt=0
- let c=col('.')
- let l=line('.')
- let lc=0
- let line=getline('.')
- while cnt
- if c<=1
- let mvcnt+=cnt
- break
- endif
- if stridx(&concealcursor, 'n')==-1 || c == 0
- let isconcealed=0
- else
- let [isconcealed, cchar, group]=synconcealed(l, c-1)
- endif
- if isconcealed
- let cnt-=strchars(cchar)
- let oldc=c
- let c-=1
- while c>1
- let [isconcealed2, cchar2, group2] = synconcealed(l, c-1)
- if !isconcealed2 || cchar2 != cchar
- break
- endif
- let c-=1
- endwhile
- let c = max([c, 1])
- let mvcnt+=strchars(line[c-1:oldc-2])
- else
- let cnt-=1
- let mvcnt+=1
- let c-=len(matchstr(line[:c-2], '.$'))
- endif
- endwhile
- return mvcnt.'h'
-endfunction
-
-" Hypertext: {{{1
-
function! tutor#FollowLink(force)
let l:stack_s = join(map(synstack(line('.'), col('.')), 'synIDattr(v:val, "name")'), '')
if l:stack_s =~# 'tutorLink'
@@ -209,42 +88,40 @@ function! tutor#InfoText()
return join(l:info_parts, " ")
endfunction
-" Marks {{{1
-function! tutor#PlaceXMarks()
- call cursor(1, 1)
- let b:tutor_sign_id = 1
- while search('^--->', 'W') > 0
- call tutor#CheckText(getline('.'))
- let b:tutor_sign_id+=1
- endwhile
- call cursor(1, 1)
+
+" Marks: {{{1
+
+function! tutor#ApplyMarks()
+ hi! link tutorExpect Special
+ if exists('b:tutor_metadata') && has_key(b:tutor_metadata, 'expect')
+ let b:tutor_sign_id = 1
+ for expct in keys(b:tutor_metadata['expect'])
+ let lnum = eval(expct)
+ call matchaddpos('tutorExpect', [lnum])
+ call tutor#CheckLine(lnum)
+ endfor
+ endif
endfunction
-function! tutor#CheckText(text)
- if match(a:text, '{expect:ANYTHING}\s*$') == -1
- if match(getline('.'), '^--->\s*$') > -1
- exe "sign place ".b:tutor_sign_id." line=".line('.')." name=tutorbad buffer=".bufnr('%')
- else
- if match(getline('.'), '|expect:.\+|') == -1
- let l:cur_text = matchstr(a:text, '---> \zs.\{-}\ze {expect:')
- let l:expected_text = matchstr(a:text, '{expect:\zs.*\ze}\s*$')
- else
- let l:cur_text = matchstr(a:text, '---> \zs.\{-}\ze |expect:')
- let l:expected_text = matchstr(a:text, '|expect:\zs.*\ze|\s*$')
- endif
- if l:cur_text ==# l:expected_text
- exe "sign place ".b:tutor_sign_id." line=".line('.')." name=tutorok buffer=".bufnr('%')
- else
- exe "sign place ".b:tutor_sign_id." line=".line('.')." name=tutorbad buffer=".bufnr('%')
- endif
+function! tutor#ApplyMarksOnChanged()
+ if exists('b:tutor_metadata') && has_key(b:tutor_metadata, 'expect')
+ let lnum = line('.')
+ if index(keys(b:tutor_metadata['expect']), string(lnum)) > -1
+ call tutor#CheckLine(lnum)
endif
endif
endfunction
-function! tutor#OnTextChanged()
- let l:text = getline('.')
- if match(l:text, '^--->') > -1
- call tutor#CheckText(l:text)
+function! tutor#CheckLine(line)
+ if exists('b:tutor_metadata') && has_key(b:tutor_metadata, 'expect')
+ let bufn = bufnr('%')
+ let ctext = getline(a:line)
+ if b:tutor_metadata['expect'][string(a:line)] == -1 || ctext ==# b:tutor_metadata['expect'][string(a:line)]
+ exe "sign place ".b:tutor_sign_id." line=".a:line." name=tutorok buffer=".bufn
+ else
+ exe "sign place ".b:tutor_sign_id." line=".a:line." name=tutorbad buffer=".bufn
+ endif
+ let b:tutor_sign_id+=1
endif
endfunction
diff --git a/runtime/autoload/zip.vim b/runtime/autoload/zip.vim
index 687500ebe3..ea086e0882 100644
--- a/runtime/autoload/zip.vim
+++ b/runtime/autoload/zip.vim
@@ -1,7 +1,7 @@
" zip.vim: Handles browsing zipfiles
" AUTOLOAD PORTION
-" Date: Jul 02, 2013
-" Version: 27
+" Date: Sep 13, 2016
+" Version: 28
" Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
" License: Vim License (see vim's :help license)
" Copyright: Copyright (C) 2005-2013 Charles E. Campbell {{{1
@@ -20,10 +20,10 @@
if &cp || exists("g:loaded_zip")
finish
endif
-let g:loaded_zip= "v27"
+let g:loaded_zip= "v28"
if v:version < 702
echohl WarningMsg
- echo "***warning*** this version of zip needs vim 7.2"
+ echo "***warning*** this version of zip needs vim 7.2 or later"
echohl Normal
finish
endif
@@ -53,6 +53,9 @@ endif
if !exists("g:zip_unzipcmd")
let g:zip_unzipcmd= "unzip"
endif
+if !exists("g:zip_extractcmd")
+ let g:zip_extractcmd= g:zip_unzipcmd
+endif
" ----------------
" Functions: {{{1
@@ -62,14 +65,14 @@ endif
" zip#Browse: {{{2
fun! zip#Browse(zipfile)
" call Dfunc("zip#Browse(zipfile<".a:zipfile.">)")
- " sanity check: insure that the zipfile has "PK" as its first two letters
+ " sanity check: ensure that the zipfile has "PK" as its first two letters
" (zipped files have a leading PK as a "magic cookie")
if !filereadable(a:zipfile) || readfile(a:zipfile, "", 1)[0] !~ '^PK'
exe "noautocmd e ".fnameescape(a:zipfile)
" call Dret("zip#Browse : not a zipfile<".a:zipfile.">")
return
" else " Decho
-" call Decho("zip#Browse: a:zipfile<".a:zipfile."> passed PK test - its a zip file")
+" call Decho("zip#Browse: a:zipfile<".a:zipfile."> passed PK test - it's a zip file")
endif
let repkeep= &report
@@ -92,7 +95,7 @@ fun! zip#Browse(zipfile)
endif
if !filereadable(a:zipfile)
if a:zipfile !~# '^\a\+://'
- " if its an url, don't complain, let url-handlers such as vim do its thing
+ " if it's an url, don't complain, let url-handlers such as vim do its thing
redraw!
echohl Error | echo "***error*** (zip#Browse) File not readable<".a:zipfile.">" | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
@@ -136,8 +139,10 @@ fun! zip#Browse(zipfile)
return
endif
+ " Maps associated with zip plugin
setlocal noma nomod ro
- noremap <silent> <buffer> <cr> :call <SID>ZipBrowseSelect()<cr>
+ noremap <silent> <buffer> <cr> :call <SID>ZipBrowseSelect()<cr>
+ noremap <silent> <buffer> x :call zip#Extract()<cr>
let &report= repkeep
" call Dret("zip#Browse")
@@ -204,6 +209,15 @@ fun! zip#Read(fname,mode)
endif
" call Decho("zipfile<".zipfile.">")
" call Decho("fname <".fname.">")
+ " sanity check
+ if !executable(substitute(g:zip_unzipcmd,'\s\+.*$','',''))
+ redraw!
+ echohl Error | echo "***error*** (zip#Read) sorry, your system doesn't appear to have the ".g:zip_unzipcmd." program" | echohl None
+" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
+ let &report= repkeep
+" call Dret("zip#Write")
+ return
+ endif
" the following code does much the same thing as
" exe "keepj sil! r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fnameescape(fname),1)
@@ -236,9 +250,9 @@ fun! zip#Write(fname)
set report=10
" sanity checks
- if !executable(g:zip_zipcmd)
+ if !executable(substitute(g:zip_zipcmd,'\s\+.*$','',''))
redraw!
- echohl Error | echo "***error*** (zip#Write) sorry, your system doesn't appear to have the zip pgm" | echohl None
+ echohl Error | echo "***error*** (zip#Write) sorry, your system doesn't appear to have the ".g:zip_zipcmd." program" | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &report= repkeep
" call Dret("zip#Write")
@@ -345,6 +359,48 @@ fun! zip#Write(fname)
endfun
" ---------------------------------------------------------------------
+" zip#Extract: extract a file from a zip archive {{{2
+fun! zip#Extract()
+" call Dfunc("zip#Extract()")
+
+ let repkeep= &report
+ set report=10
+ let fname= getline(".")
+" call Decho("fname<".fname.">")
+
+ " sanity check
+ if fname =~ '^"'
+ let &report= repkeep
+" call Dret("zip#Extract")
+ return
+ endif
+ if fname =~ '/$'
+ redraw!
+ echohl Error | echo "***error*** (zip#Extract) Please specify a file, not a directory" | echohl None
+ let &report= repkeep
+" call Dret("zip#Extract")
+ return
+ endif
+
+ " extract the file mentioned under the cursor
+" call Decho("system(".g:zip_extractcmd." ".shellescape(b:zipfile)." ".shellescape(shell).")")
+ call system(g:zip_extractcmd." ".shellescape(b:zipfile)." ".shellescape(shell))
+" call Decho("zipfile<".b:zipfile.">")
+ if v:shell_error != 0
+ echohl Error | echo "***error*** ".g:zip_extractcmd." ".b:zipfile." ".fname.": failed!" | echohl NONE
+ elseif !filereadable(fname)
+ echohl Error | echo "***error*** attempted to extract ".fname." but it doesn't appear to be present!"
+ else
+ echo "***note*** successfully extracted ".fname
+ endif
+
+ " restore option
+ let &report= repkeep
+
+" call Dret("zip#Extract")
+endfun
+
+" ---------------------------------------------------------------------
" s:Escape: {{{2
fun! s:Escape(fname,isfilt)
" call Dfunc("QuoteFileDir(fname<".a:fname."> isfilt=".a:isfilt.")")
diff --git a/runtime/bugreport.vim b/runtime/bugreport.vim
index f0c045e6c3..650e37940d 100644
--- a/runtime/bugreport.vim
+++ b/runtime/bugreport.vim
@@ -53,7 +53,6 @@
: scriptnames
:endif
:set all
-:set termcap
:if has("autocmd")
: au
:endif
diff --git a/runtime/colors/README.txt b/runtime/colors/README.txt
index 3b3445cbc9..8fa6f322ab 100644
--- a/runtime/colors/README.txt
+++ b/runtime/colors/README.txt
@@ -41,9 +41,16 @@ this autocmd might be useful:
autocmd SourcePre */colors/blue_sky.vim set background=dark
Replace "blue_sky" with the name of the colorscheme.
-In case you want to tweak a colorscheme after it was loaded, check out that
+In case you want to tweak a colorscheme after it was loaded, check out the
ColorScheme autocmd event.
+To customize a colorscheme use another name, e.g. "~/.vim/colors/mine.vim",
+and use `:runtime` to load the original colorscheme:
+ " load the "evening" colorscheme
+ runtime colors/evening.vim
+ " change the color of statements
+ hi Statement ctermfg=Blue guifg=Blue
+
To see which highlight group is used where, find the help for
"highlight-groups" and "group-name".
diff --git a/runtime/colors/evening.vim b/runtime/colors/evening.vim
index 5dae08280e..5257307593 100644
--- a/runtime/colors/evening.vim
+++ b/runtime/colors/evening.vim
@@ -1,6 +1,6 @@
" Vim color file
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2006 Apr 14
+" Last Change: 2016 Oct 10
" This color scheme uses a dark grey background.
@@ -45,8 +45,8 @@ hi CursorColumn term=reverse ctermbg=Black guibg=grey40
hi CursorLine term=underline cterm=underline guibg=grey40
" Groups for syntax highlighting
-hi Constant term=underline ctermfg=Magenta guifg=#ffa0a0 guibg=grey5
-hi Special term=bold ctermfg=LightRed guifg=Orange guibg=grey5
+hi Constant term=underline ctermfg=Magenta guifg=#ffa0a0
+hi Special term=bold ctermfg=LightRed guifg=Orange
if &t_Co > 8
hi Statement term=bold cterm=bold ctermfg=Yellow guifg=#ffff60 gui=bold
endif
diff --git a/runtime/colors/koehler.vim b/runtime/colors/koehler.vim
index a36f9f6972..250472a162 100644
--- a/runtime/colors/koehler.vim
+++ b/runtime/colors/koehler.vim
@@ -2,7 +2,7 @@
" vim: tw=0 ts=4 sw=4
" Vim color file
" Maintainer: Ron Aaron <ron@ronware.org>
-" Last Change: 2013 May 23
+" Last Change: 2016 Sep 04
hi clear
set background=dark
@@ -45,6 +45,7 @@ hi TabLineFill term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white g
hi TabLineSel term=reverse ctermfg=white ctermbg=lightblue guifg=white guibg=blue
hi Underlined term=underline cterm=bold,underline ctermfg=lightblue guifg=lightblue gui=bold,underline
hi Ignore ctermfg=black ctermbg=black guifg=black guibg=black
+hi EndOfBuffer term=bold cterm=bold ctermfg=darkred guifg=#cc0000 gui=bold
hi link IncSearch Visual
hi link String Constant
hi link Character Constant
diff --git a/runtime/compiler/bdf.vim b/runtime/compiler/bdf.vim
index ca33776988..b062e847aa 100644
--- a/runtime/compiler/bdf.vim
+++ b/runtime/compiler/bdf.vim
@@ -1,7 +1,7 @@
" Vim compiler file
-" Compiler: BDF to PCF Conversion
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Compiler: BDF to PCF Conversion
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("current_compiler")
finish
diff --git a/runtime/compiler/cargo.vim b/runtime/compiler/cargo.vim
new file mode 100644
index 0000000000..bd48666bc9
--- /dev/null
+++ b/runtime/compiler/cargo.vim
@@ -0,0 +1,35 @@
+" Vim compiler file
+" Compiler: Cargo Compiler
+" Maintainer: Damien Radtke <damienradtke@gmail.com>
+" Latest Revision: 2014 Sep 24
+" For bugs, patches and license go to https://github.com/rust-lang/rust.vim
+
+if exists('current_compiler')
+ finish
+endif
+runtime compiler/rustc.vim
+let current_compiler = "cargo"
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+if exists(':CompilerSet') != 2
+ command -nargs=* CompilerSet setlocal <args>
+endif
+
+if exists('g:cargo_makeprg_params')
+ execute 'CompilerSet makeprg=cargo\ '.escape(g:cargo_makeprg_params, ' \|"').'\ $*'
+else
+ CompilerSet makeprg=cargo\ $*
+endif
+
+" Ignore general cargo progress messages
+CompilerSet errorformat+=
+ \%-G%\\s%#Downloading%.%#,
+ \%-G%\\s%#Compiling%.%#,
+ \%-G%\\s%#Finished%.%#,
+ \%-G%\\s%#error:\ Could\ not\ compile\ %.%#,
+ \%-G%\\s%#To\ learn\ more\\,%.%#
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
diff --git a/runtime/compiler/context.vim b/runtime/compiler/context.vim
new file mode 100644
index 0000000000..cb78c96df0
--- /dev/null
+++ b/runtime/compiler/context.vim
@@ -0,0 +1,54 @@
+" Vim compiler file
+" Compiler: ConTeXt typesetting engine
+" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
+" Last Change: 2016 Oct 21
+
+if exists("current_compiler")
+ finish
+endif
+let s:keepcpo= &cpo
+set cpo&vim
+
+if exists(":CompilerSet") != 2 " older Vim always used :setlocal
+ command -nargs=* CompilerSet setlocal <args>
+endif
+
+" If makefile exists and we are not asked to ignore it, we use standard make
+" (do not redefine makeprg)
+if get(b:, 'context_ignore_makefile', get(g:, 'context_ignore_makefile', 0)) ||
+ \ (!filereadable('Makefile') && !filereadable('makefile'))
+ let current_compiler = 'context'
+ " The following assumes that the current working directory is set to the
+ " directory of the file to be typeset
+ let &l:makeprg = get(b:, 'context_mtxrun', get(g:, 'context_mtxrun', 'mtxrun'))
+ \ . ' --script context --autogenerate --nonstopmode --synctex='
+ \ . (get(b:, 'context_synctex', get(g:, 'context_synctex', 0)) ? '1' : '0')
+ \ . ' ' . get(b:, 'context_extra_options', get(g:, 'context_extra_options', ''))
+ \ . ' ' . shellescape(expand('%:p:t'))
+else
+ let current_compiler = 'make'
+endif
+
+let b:context_errorformat = ''
+ \ . '%-Popen source%.%#> %f,'
+ \ . '%-Qclose source%.%#> %f,'
+ \ . "%-Popen source%.%#name '%f',"
+ \ . "%-Qclose source%.%#name '%f',"
+ \ . '%Etex %trror%.%#mp error on line %l in file %f:%.%#,'
+ \ . 'tex %trror%.%#error on line %l in file %f: %m,'
+ \ . '%Elua %trror%.%#error on line %l in file %f:,'
+ \ . '%+Emetapost %#> error: %#,'
+ \ . '! error: %#%m,'
+ \ . '%-C %#,'
+ \ . '%C! %m,'
+ \ . '%Z[ctxlua]%m,'
+ \ . '%+C<*> %.%#,'
+ \ . '%-C%.%#,'
+ \ . '%Z...%m,'
+ \ . '%-Zno-error,'
+ \ . '%-G%.%#' " Skip remaining lines
+
+execute 'CompilerSet errorformat=' . escape(b:context_errorformat, ' ')
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/compiler/csslint.vim b/runtime/compiler/csslint.vim
new file mode 100644
index 0000000000..14c4289a24
--- /dev/null
+++ b/runtime/compiler/csslint.vim
@@ -0,0 +1,16 @@
+" Vim compiler file
+" Compiler: csslint for CSS
+" Maintainer: Daniel Moch <daniel@danielmoch.com>
+" Last Change: 2016 May 21
+
+if exists("current_compiler")
+ finish
+endif
+let current_compiler = "csslint"
+
+if exists(":CompilerSet") != 2 " older Vim always used :setlocal
+ command -nargs=* CompilerSet setlocal <args>
+endif
+
+CompilerSet makeprg=csslint\ --format=compact
+CompilerSet errorformat=%-G,%-G%f:\ lint\ free!,%f:\ line\ %l\\,\ col\ %c\\,\ %trror\ -\ %m,%f:\ line\ %l\\,\ col\ %c\\,\ %tarning\ -\ %m,%f:\ line\ %l\\,\ col\ %c\\,\ %m
diff --git a/runtime/compiler/cucumber.vim b/runtime/compiler/cucumber.vim
index c020be6e3b..17ce3627c1 100644
--- a/runtime/compiler/cucumber.vim
+++ b/runtime/compiler/cucumber.vim
@@ -1,7 +1,7 @@
" Vim compiler file
" Compiler: Cucumber
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
-" Last Change: 2010 Aug 09
+" Last Change: 2016 Aug 29
if exists("current_compiler")
finish
@@ -19,7 +19,7 @@ CompilerSet makeprg=cucumber
CompilerSet errorformat=
\%W%m\ (Cucumber::Undefined),
- \%E%m\ (%.%#),
+ \%E%m\ (%\\S%#),
\%Z%f:%l,
\%Z%f:%l:%.%#
diff --git a/runtime/compiler/gcc.vim b/runtime/compiler/gcc.vim
index 19ea2edc12..1af568de57 100644
--- a/runtime/compiler/gcc.vim
+++ b/runtime/compiler/gcc.vim
@@ -1,7 +1,7 @@
" Vim compiler file
-" Compiler: GNU C Compiler
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2010-10-14
+" Compiler: GNU C Compiler
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2010-10-14
" added line suggested by Anton Lindqvist 2016 Mar 31
if exists("current_compiler")
diff --git a/runtime/compiler/ghc.vim b/runtime/compiler/ghc.vim
new file mode 100644
index 0000000000..c98ae302a8
--- /dev/null
+++ b/runtime/compiler/ghc.vim
@@ -0,0 +1,26 @@
+" Vim compiler file
+" Compiler: GHC Haskell Compiler
+" Maintainer: Daniel Campoverde <alx@sillybytes.net>
+" Latest Revision: 2016-11-29
+
+if exists("current_compiler")
+ finish
+endif
+let current_compiler = "ghc"
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+CompilerSet errorformat=
+ \%-G%.%#:\ build,
+ \%-G%.%#preprocessing\ library\ %.%#,
+ \%-G[%.%#]%.%#,
+ \%E%f:%l:%c:\ %m,
+ \%-G--%.%#
+
+if exists('g:compiler_ghc_ignore_unmatched_lines')
+ CompilerSet errorformat+=%-G%.%#
+endif
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/compiler/haml.vim b/runtime/compiler/haml.vim
index b06a672df7..9464c3dc85 100644
--- a/runtime/compiler/haml.vim
+++ b/runtime/compiler/haml.vim
@@ -1,7 +1,7 @@
" Vim compiler file
" Compiler: Haml
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
-" Last Change: 2013 May 30
+" Last Change: 2016 Aug 29
if exists("current_compiler")
finish
@@ -15,7 +15,7 @@ endif
let s:cpo_save = &cpo
set cpo-=C
-CompilerSet makeprg=haml\ -c
+CompilerSet makeprg=haml
CompilerSet errorformat=
\Haml\ %trror\ on\ line\ %l:\ %m,
diff --git a/runtime/compiler/pylint.vim b/runtime/compiler/pylint.vim
new file mode 100644
index 0000000000..93079ce61d
--- /dev/null
+++ b/runtime/compiler/pylint.vim
@@ -0,0 +1,16 @@
+" Vim compiler file
+" Compiler: Pylint for Python
+" Maintainer: Daniel Moch <daniel@danielmoch.com>
+" Last Change: 2016 May 20
+
+if exists("current_compiler")
+ finish
+endif
+let current_compiler = "pylint"
+
+if exists(":CompilerSet") != 2 " older Vim always used :setlocal
+ command -nargs=* CompilerSet setlocal <args>
+endif
+
+CompilerSet makeprg=pylint\ --output-format=text\ --msg-template=\"{path}:{line}:{column}:{C}:\ [{symbol}]\ {msg}\"\ --reports=no
+CompilerSet errorformat=%A%f:%l:%c:%t:\ %m,%A%f:%l:\ %m,%A%f:(%l):\ %m,%-Z%p^%.%#,%-G%.%#
diff --git a/runtime/compiler/rake.vim b/runtime/compiler/rake.vim
index 3bd9da0daf..8490f2a9e9 100644
--- a/runtime/compiler/rake.vim
+++ b/runtime/compiler/rake.vim
@@ -27,7 +27,11 @@ CompilerSet errorformat=
\%\\s%#[%f:%l:\ %#%m,
\%\\s%#%f:%l:\ %#%m,
\%\\s%#%f:%l:,
- \%m\ [%f:%l]:
+ \%m\ [%f:%l]:,
+ \%+Erake\ aborted!,
+ \%+EDon't\ know\ how\ to\ build\ task\ %.%#,
+ \%+Einvalid\ option:%.%#,
+ \%+Irake\ %\\S%\\+%\\s%\\+#\ %.%#
let &cpo = s:cpo_save
unlet s:cpo_save
diff --git a/runtime/compiler/rspec.vim b/runtime/compiler/rspec.vim
index 7c340bab15..c77bd70da7 100644
--- a/runtime/compiler/rspec.vim
+++ b/runtime/compiler/rspec.vim
@@ -22,9 +22,10 @@ CompilerSet errorformat=
\%f:%l:\ %tarning:\ %m,
\%E%.%#:in\ `load':\ %f:%l:%m,
\%E%f:%l:in\ `%*[^']':\ %m,
- \%-Z\ \ \ \ \ \#\ %f:%l:%.%#,
+ \%-Z\ \ \ \ \ %\\+\#\ %f:%l:%.%#,
\%E\ \ %\\d%\\+)%.%#,
\%C\ \ \ \ \ %m,
+ \%C%\\s%#,
\%-G%.%#
let &cpo = s:cpo_save
diff --git a/runtime/compiler/rst.vim b/runtime/compiler/rst.vim
index 15d2d79f64..392bea6ae0 100644
--- a/runtime/compiler/rst.vim
+++ b/runtime/compiler/rst.vim
@@ -1,7 +1,8 @@
" Vim compiler file
-" Compiler: reStructuredText Documentation Format
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Compiler: sphinx >= 1.0.8, http://www.sphinx-doc.org
+" Description: reStructuredText Documentation Format
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2017-03-31
if exists("current_compiler")
finish
@@ -11,12 +12,18 @@ let current_compiler = "rst"
let s:cpo_save = &cpo
set cpo&vim
-setlocal errorformat=
- \%f:%l:\ (%tEBUG/0)\ %m,
- \%f:%l:\ (%tNFO/1)\ %m,
- \%f:%l:\ (%tARNING/2)\ %m,
- \%f:%l:\ (%tRROR/3)\ %m,
- \%f:%l:\ (%tEVERE/3)\ %m,
+if exists(":CompilerSet") != 2
+ command -nargs=* CompilerSet setlocal <args>
+endif
+
+CompilerSet errorformat=
+ \%f\\:%l:\ %tEBUG:\ %m,
+ \%f\\:%l:\ %tNFO:\ %m,
+ \%f\\:%l:\ %tARNING:\ %m,
+ \%f\\:%l:\ %tRROR:\ %m,
+ \%f\\:%l:\ %tEVERE:\ %m,
+ \%f\\:%s:\ %tARNING:\ %m,
+ \%f\\:%s:\ %tRROR:\ %m,
\%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',
\%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f',
\%DMaking\ %*\\a\ in\ %f
diff --git a/runtime/compiler/rubyunit.vim b/runtime/compiler/rubyunit.vim
index 93a0c8e653..ed0639b581 100644
--- a/runtime/compiler/rubyunit.vim
+++ b/runtime/compiler/rubyunit.vim
@@ -17,6 +17,8 @@ let s:cpo_save = &cpo
set cpo-=C
CompilerSet makeprg=testrb
+" CompilerSet makeprg=ruby\ -Itest
+" CompilerSet makeprg=m
CompilerSet errorformat=\%W\ %\\+%\\d%\\+)\ Failure:,
\%C%m\ [%f:%l]:,
diff --git a/runtime/compiler/rustc.vim b/runtime/compiler/rustc.vim
new file mode 100644
index 0000000000..c27bdc9c0c
--- /dev/null
+++ b/runtime/compiler/rustc.vim
@@ -0,0 +1,46 @@
+" Vim compiler file
+" Compiler: Rust Compiler
+" Maintainer: Chris Morgan <me@chrismorgan.info>
+" Latest Revision: 2013 Jul 12
+" For bugs, patches and license go to https://github.com/rust-lang/rust.vim
+
+if exists("current_compiler")
+ finish
+endif
+let current_compiler = "rustc"
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+if exists(":CompilerSet") != 2
+ command -nargs=* CompilerSet setlocal <args>
+endif
+
+if exists("g:rustc_makeprg_no_percent") && g:rustc_makeprg_no_percent != 0
+ CompilerSet makeprg=rustc
+else
+ CompilerSet makeprg=rustc\ \%
+endif
+
+" Old errorformat (before nightly 2016/08/10)
+CompilerSet errorformat=
+ \%f:%l:%c:\ %t%*[^:]:\ %m,
+ \%f:%l:%c:\ %*\\d:%*\\d\ %t%*[^:]:\ %m,
+ \%-G%f:%l\ %s,
+ \%-G%*[\ ]^,
+ \%-G%*[\ ]^%*[~],
+ \%-G%*[\ ]...
+
+" New errorformat (after nightly 2016/08/10)
+CompilerSet errorformat+=
+ \%-G,
+ \%-Gerror:\ aborting\ %.%#,
+ \%-Gerror:\ Could\ not\ compile\ %.%#,
+ \%Eerror:\ %m,
+ \%Eerror[E%n]:\ %m,
+ \%Wwarning:\ %m,
+ \%Inote:\ %m,
+ \%C\ %#-->\ %f:%l:%c
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/compiler/sass.vim b/runtime/compiler/sass.vim
index 376a52b303..9c540ac443 100644
--- a/runtime/compiler/sass.vim
+++ b/runtime/compiler/sass.vim
@@ -1,7 +1,7 @@
" Vim compiler file
" Compiler: Sass
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
-" Last Change: 2013 May 30
+" Last Change: 2016 Aug 29
if exists("current_compiler")
finish
@@ -15,7 +15,7 @@ endif
let s:cpo_save = &cpo
set cpo-=C
-CompilerSet makeprg=sass\ -c
+CompilerSet makeprg=sass
CompilerSet errorformat=
\%f:%l:%m\ (Sass::Syntax%trror),
diff --git a/runtime/doc/api.txt b/runtime/doc/api.txt
index 122ab37e72..ef8b9c7d47 100644
--- a/runtime/doc/api.txt
+++ b/runtime/doc/api.txt
@@ -1,4 +1,4 @@
-*api.txt* {Nvim}
+*api.txt* Nvim
NVIM REFERENCE MANUAL by Thiago de Arruda
@@ -7,10 +7,11 @@
Nvim API *API* *api*
Nvim exposes a powerful API that can be used by plugins and external processes
-via |msgpack-rpc|, Lua and VimL (|eval-api|).
+via |RPC|, |Lua| and VimL (|eval-api|).
-Nvim can also be embedded in C applications as libnvim, so the application
-can control the embedded instance by calling the C API directly.
+Applications can also embed libnvim to work with the C API directly.
+
+ Type |gO| to see the table of contents.
==============================================================================
API Types *api-types*
@@ -47,6 +48,7 @@ version.api_compatible API is backwards-compatible with this level
version.api_prerelease Declares the current API level as unstable >
(version.api_prerelease && fn.since == version.api_level)
functions API function signatures
+ui_events UI event signatures |ui|
{fn}.since API level where function {fn} was introduced
{fn}.deprecated_since API level where function {fn} was deprecated
types Custom handle types defined by Nvim
@@ -55,6 +57,28 @@ error_types Possible error types returned by API functions
External programs ("clients") can use the metadata to discover the |rpc-api|.
==============================================================================
+API contract *api-contract*
+
+The API is made of functions and events. Clients call functions like those
+described at |api-global|, and may "attach" in order to receive rich events,
+described at |rpc-remote-ui|.
+
+As Nvim develops, its API may change only according the following "contract":
+
+- New functions and events may be added.
+ - Any such extensions are OPTIONAL: old clients may ignore them.
+- Function signatures will NOT CHANGE (after release).
+ - Functions introduced in the development (unreleased) version MAY CHANGE.
+ (Clients can dynamically check `api_prerelease`, etc. |api-metadata|)
+- Event parameters will not be removed or reordered (after release).
+- Events may be EXTENDED: new parameters may be added.
+- New items may be ADDED to map/list parameters/results of functions and
+ events.
+ - Any such new items are OPTIONAL: old clients may ignore them.
+ - Existing items will not be removed (after release).
+- Deprecated functions will not be removed until Nvim version 2.0
+
+==============================================================================
Buffer highlighting *api-highlights*
Nvim allows plugins to add position-based highlights to buffers. This is
@@ -111,6 +135,26 @@ nvim_command({command}) *nvim_command()*
Parameters:~
{command} Ex-command string
+nvim_get_hl_by_name({name}, {rgb}) *nvim_get_hl_by_name()*
+ Gets a highlight definition by name.
+
+ Parameters:~
+ {name} Highlight group name
+ {rgb} Export RGB colors
+
+ Return:~
+ Highlight definition map
+
+nvim_get_hl_by_id({hl_id}, {rgb}) *nvim_get_hl_by_id()*
+ Gets a highlight definition by id. |hlID()|
+
+ Parameters:~
+ {hl_id} Highlight id as returned by |hlID()|
+ {rgb} Export RGB colors
+
+ Return:~
+ Highlight definition map
+
nvim_feedkeys({keys}, {mode}, {escape_csi}) *nvim_feedkeys()*
Passes input keys to Nvim. On VimL error: Does not fail, but
updates v:errmsg.
@@ -127,7 +171,11 @@ nvim_input({keys}) *nvim_input()*
Unlike `nvim_feedkeys`, this uses a lower-level input buffer
and the call is not deferred. This is the most reliable way to
- emulate real user input.
+ send real user input.
+
+ Note:
+ |keycodes| like <CR> are translated, so "<" is special. To
+ input a literal "<", send <LT>.
Attributes:~
{async}
@@ -141,7 +189,16 @@ nvim_input({keys}) *nvim_input()*
*nvim_replace_termcodes()*
nvim_replace_termcodes({str}, {from_part}, {do_lt}, {special})
- Replaces any terminal codes with the internal representation
+ Replaces terminal codes and |keycodes| (<CR>, <Esc>, ...) in a
+ string with the internal representation.
+
+ Parameters:~
+ {str} String to be converted.
+ {from_part} Legacy Vim parameter. Usually true.
+ {do_lt} Also translate <lt>. Ignored if `special` is
+ false.
+ {special} Replace |keycodes|, e.g. <CR> becomes a "\n"
+ char.
nvim_command_output({str}) *nvim_command_output()*
TODO: Documentation
@@ -158,8 +215,10 @@ nvim_eval({expr}) *nvim_eval()*
Evaluation result or expanded object
nvim_call_function({fname}, {args}) *nvim_call_function()*
- Calls a VimL function with the given arguments. On VimL error:
- Returns a generic error; v:errmsg is not updated.
+ Calls a VimL function with the given arguments
+
+ On VimL error: Returns a generic error; v:errmsg is not
+ updated.
Parameters:~
{fname} Function to call
@@ -168,7 +227,21 @@ nvim_call_function({fname}, {args}) *nvim_call_function()*
Return:~
Result of the function call
-nvim_strwidth({str}) *nvim_strwidth()*
+nvim_execute_lua({code}, {args}) *nvim_execute_lua()*
+ Execute lua code. Parameters (if any) are available as `...`
+ inside the chunk. The chunk can return a value.
+
+ Only statements are executed. To evaluate an expression,
+ prefix it with `return`: return my_function(...)
+
+ Parameters:~
+ {code} lua code to execute
+ {args} Arguments to the code
+
+ Return:~
+ Return value of lua code if present or NIL.
+
+nvim_strwidth({text}) *nvim_strwidth()*
Calculates the number of display cells occupied by `text`.
<Tab> counts as one cell.
@@ -247,7 +320,7 @@ nvim_get_option({name}) *nvim_get_option()*
{name} Option name
Return:~
- Option value
+ Option value (global)
nvim_set_option({name}, {value}) *nvim_set_option()*
Sets an option value
@@ -257,20 +330,24 @@ nvim_set_option({name}, {value}) *nvim_set_option()*
{value} New option value
nvim_out_write({str}) *nvim_out_write()*
- Writes a message to vim output buffer
+ Writes a message to the Vim output buffer. Does not append
+ "\n", the message is buffered (won't display) until a linefeed
+ is written.
Parameters:~
{str} Message
nvim_err_write({str}) *nvim_err_write()*
- Writes a message to vim error buffer
+ Writes a message to the Vim error buffer. Does not append
+ "\n", the message is buffered (won't display) until a linefeed
+ is written.
Parameters:~
{str} Message
nvim_err_writeln({str}) *nvim_err_writeln()*
- Writes a message to vim error buffer. Appends a linefeed to
- ensure all contents are written.
+ Writes a message to the Vim error buffer. Appends "\n", so the
+ buffer is flushed (and displayed).
Parameters:~
{str} Message
@@ -291,7 +368,7 @@ nvim_set_current_buf({buffer}) *nvim_set_current_buf()*
Sets the current buffer
Parameters:~
- {id} Buffer handle
+ {buffer} Buffer handle
nvim_list_wins() *nvim_list_wins()*
Gets the current list of window handles
@@ -309,7 +386,7 @@ nvim_set_current_win({window}) *nvim_set_current_win()*
Sets the current window
Parameters:~
- {handle} Window handle
+ {window} Window handle
nvim_list_tabpages() *nvim_list_tabpages()*
Gets the current list of tabpage handles
@@ -327,7 +404,7 @@ nvim_set_current_tabpage({tabpage}) *nvim_set_current_tabpage()*
Sets the current tabpage
Parameters:~
- {handle} Tabpage handle
+ {tabpage} Tabpage handle
nvim_subscribe({event}) *nvim_subscribe()*
Subscribes to event broadcasts
@@ -347,6 +424,27 @@ nvim_get_color_by_name({name}) *nvim_get_color_by_name()*
nvim_get_color_map() *nvim_get_color_map()*
TODO: Documentation
+nvim_get_mode() *nvim_get_mode()*
+ Gets the current mode. |mode()| "blocking" is true if Nvim is
+ waiting for input.
+
+ Return:~
+ Dictionary { "mode": String, "blocking": Boolean }
+
+ Attributes:~
+ {async}
+
+nvim_get_keymap({mode}) *nvim_get_keymap()*
+ Gets a list of dictionaries describing global (non-buffer)
+ mappings. The "buffer" key in the returned dictionary is
+ always zero.
+
+ Parameters:~
+ {mode} Mode short-name ("n", "i", "v", ...)
+
+ Return:~
+ Array of maparg()-like dictionaries describing mappings
+
nvim_get_api_info() *nvim_get_api_info()*
TODO: Documentation
@@ -379,6 +477,54 @@ nvim_call_atomic({calls}) *nvim_call_atomic()*
error ocurred, the values from all preceding calls will
still be returned.
+nvim__id({obj}) *nvim__id()*
+ Returns object given as argument
+
+ This API function is used for testing. One should not rely on
+ its presence in plugins.
+
+ Parameters:~
+ {obj} Object to return.
+
+ Return:~
+ its argument.
+
+nvim__id_array({arr}) *nvim__id_array()*
+ Returns array given as argument
+
+ This API function is used for testing. One should not rely on
+ its presence in plugins.
+
+ Parameters:~
+ {arr} Array to return.
+
+ Return:~
+ its argument.
+
+nvim__id_dictionary({dct}) *nvim__id_dictionary()*
+ Returns dictionary given as argument
+
+ This API function is used for testing. One should not rely on
+ its presence in plugins.
+
+ Parameters:~
+ {dct} Dictionary to return.
+
+ Return:~
+ its argument.
+
+nvim__id_float({flt}) *nvim__id_float()*
+ Returns floating-point value given as argument
+
+ This API function is used for testing. One should not rely on
+ its presence in plugins.
+
+ Parameters:~
+ {flt} Value to return.
+
+ Return:~
+ its argument.
+
==============================================================================
Buffer Functions *api-buffer*
@@ -457,6 +603,18 @@ nvim_buf_get_changedtick({buffer}) *nvim_buf_get_changedtick()*
Return:~
b:changedtickvalue.
+nvim_buf_get_keymap({buffer}, {mode}) *nvim_buf_get_keymap()*
+ Gets a list of dictionaries describing buffer-local mappings.
+ The "buffer" key in the returned dictionary reflects the
+ buffer handle where the mapping is present.
+
+ Parameters:~
+ {mode} Mode short-name ("n", "i", "v", ...)
+ {buffer} Buffer handle
+
+ Return:~
+ Array of maparg()-like dictionaries describing mappings
+
nvim_buf_set_var({buffer}, {name}, {value}) *nvim_buf_set_var()*
Sets a buffer-scoped (b:) variable
@@ -491,15 +649,6 @@ nvim_buf_set_option({buffer}, {name}, {value}) *nvim_buf_set_option()*
{name} Option name
{value} Option value
-nvim_buf_get_number({buffer}) *nvim_buf_get_number()*
- Gets the buffer number
-
- Parameters:~
- {buffer} Buffer handle
-
- Return:~
- Buffer number
-
nvim_buf_get_name({buffer}) *nvim_buf_get_name()*
Gets the full file name for the buffer
@@ -541,24 +690,24 @@ nvim_buf_add_highlight({buffer}, {src_id}, {hl_group}, {line},
{col_start}, {col_end})
Adds a highlight to buffer.
- This can be used for plugins which dynamically generate
- highlights to a buffer (like a semantic highlighter or
- linter). The function adds a single highlight to a buffer.
- Unlike matchaddpos() highlights follow changes to line
- numbering (as lines are inserted/removed above the highlighted
- line), like signs and marks do.
-
- "src_id" is useful for batch deletion/updating of a set of
- highlights. When called with src_id = 0, an unique source id
- is generated and returned. Succesive calls can pass in it as
- "src_id" to add new highlights to the same source group. All
- highlights in the same group can then be cleared with
- nvim_buf_clear_highlight. If the highlight never will be
- manually deleted pass in -1 for "src_id".
-
- If "hl_group" is the empty string no highlight is added, but a
- new src_id is still returned. This is useful for an external
- plugin to synchrounously request an unique src_id at
+ Useful for plugins that dynamically generate highlights to a
+ buffer (like a semantic highlighter or linter). The function
+ adds a single highlight to a buffer. Unlike matchaddpos()
+ highlights follow changes to line numbering (as lines are
+ inserted/removed above the highlighted line), like signs and
+ marks do.
+
+ `src_id` is useful for batch deletion/updating of a set of
+ highlights. When called with `src_id = 0`, an unique source id
+ is generated and returned. Successive calls can pass that
+ `src_id` to associate new highlights with the same source
+ group. All highlights in the same group can be cleared with
+ `nvim_buf_clear_highlight`. If the highlight never will be
+ manually deleted, pass `src_id = -1`.
+
+ If `hl_group` is the empty string no highlight is added, but a
+ new `src_id` is still returned. This is useful for an external
+ plugin to synchrounously request an unique `src_id` at
initialization, and later asynchronously add and clear
highlights in response to buffer changes.
@@ -567,7 +716,7 @@ nvim_buf_add_highlight({buffer}, {src_id}, {hl_group}, {line},
{src_id} Source group to use or 0 to use a new group,
or -1 for ungrouped highlight
{hl_group} Name of the highlight group to use
- {line} Line to highlight
+ {line} Line to highlight (zero-indexed)
{col_start} Start of range of columns to highlight
{col_end} End of range of columns to highlight, or -1
to highlight to end of line
@@ -819,4 +968,4 @@ nvim_ui_try_resize({width}, {height}) *nvim_ui_try_resize()*
nvim_ui_set_option({name}, {value}) *nvim_ui_set_option()*
TODO: Documentation
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:ft=help:norl: \ No newline at end of file
diff --git a/runtime/doc/arabic.txt b/runtime/doc/arabic.txt
index 6f17b38a7a..07350083c6 100644
--- a/runtime/doc/arabic.txt
+++ b/runtime/doc/arabic.txt
@@ -1,4 +1,4 @@
-*arabic.txt* For Vim version 7.4. Last change: 2010 Nov 13
+*arabic.txt* Nvim
VIM REFERENCE MANUAL by Nadim Shaikli
@@ -36,7 +36,7 @@ the user interface remains the standard Vi interface.
Highlights
----------
-o Editing left-to-right files as in the original VIM hasn't changed.
+o Editing left-to-right files as in the original Vim hasn't changed.
o Viewing and editing files in right-to-left windows. File
orientation is per window, so it is possible to view the same
@@ -46,7 +46,7 @@ o No special terminal with right-to-left capabilities is required.
The right-to-left changes are completely hardware independent.
Only Arabic fonts are necessary.
-o Compatible with the original VIM. Almost all features work in
+o Compatible with the original Vim. Almost all features work in
right-to-left mode (there are liable to be bugs).
o Changing keyboard mapping and reverse insert modes using a single
@@ -60,14 +60,14 @@ o While in Arabic mode, numbers are entered from left to right. Upon
o Arabic keymapping on the command line in reverse insert mode.
-o Proper Bidirectional functionality is possible given VIM is
+o Proper Bidirectional functionality is possible given Vim is
started within a Bidi capable terminal emulator.
Arabic Fonts *arabicfonts*
------------
-VIM requires monospaced fonts of which there are many out there.
+Vim requires monospaced fonts of which there are many out there.
Arabic requires ISO-8859-6 as well as Presentation Form-B fonts
(without Form-B, Arabic will _NOT_ be usable). It is highly
recommended that users search for so-called 'ISO-10646-1' fonts.
@@ -90,13 +90,13 @@ o Installation of fonts for X Window systems (Unix/Linux)
Usage
-----
-Prior to the actual usage of Arabic within VIM, a number of settings
+Prior to the actual usage of Arabic within Vim, a number of settings
need to be accounted for and invoked.
o Setting the Arabic fonts
- + For VIM GUI set the 'guifont' to your_ARABIC_FONT. This is done
- by entering the following command in the VIM window.
+ + For Vim GUI set the 'guifont' to your_ARABIC_FONT. This is done
+ by entering the following command in the Vim window.
>
:set guifont=your_ARABIC_FONT
<
@@ -109,7 +109,7 @@ o Setting the Arabic fonts
you can include ':set guifont=your_ARABIC_FONT' to your vimrc
file.
- + Under the X Window environment, you can also start VIM with
+ + Under the X Window environment, you can also start Vim with
'-fn your_ARABIC_FONT' option.
o Setting the appropriate character Encoding
@@ -131,11 +131,11 @@ o Setting the appropriate character Encoding
o Enable Arabic settings [short-cut]
In order to simplify and streamline things, you can either invoke
- VIM with the command-line option,
+ Vim with the command-line option,
% vim -A my_utf8_arabic_file ...
- or enable 'arabic' via the following command within VIM
+ or enable 'arabic' via the following command within Vim
>
:set arabic
<
@@ -196,7 +196,7 @@ o Enable Arabic settings [short-cut]
+ Arabic deletion of a combined pair character
- By default VIM has the 'delcombine' option disabled. This option
+ By default Vim has the 'delcombine' option disabled. This option
allows the deletion of ALEF in a LAM_ALEF (LAA) combined character
and still retain the LAM (i.e. it reverts to treating the combined
character as its natural two characters form -- this also pertains
@@ -255,7 +255,7 @@ o Enable Arabic settings [short-cut]
Keymap/Keyboard *arabickeymap*
---------------
-The character/letter encoding used in VIM is the standard UTF-8.
+The character/letter encoding used in Vim is the standard UTF-8.
It is widely discouraged that any other encoding be used or even
attempted.
@@ -288,7 +288,7 @@ o Keyboard
Restrictions
------------
-o VIM in its GUI form does not currently support Bi-directionality
+o Vim in its GUI form does not currently support Bi-directionality
(i.e. the ability to see both Arabic and Latin intermixed within
the same line).
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index 180127cd52..740f44414a 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt* For Vim version 7.4. Last change: 2016 Jun 09
+*autocmd.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -8,17 +8,7 @@ Automatic commands *autocommand*
For a basic explanation, see section |40.3| in the user manual.
-1. Introduction |autocmd-intro|
-2. Defining autocommands |autocmd-define|
-3. Removing autocommands |autocmd-remove|
-4. Listing autocommands |autocmd-list|
-5. Events |autocmd-events|
-6. Patterns |autocmd-patterns|
-7. Buffer-local autocommands |autocmd-buflocal|
-8. Groups |autocmd-groups|
-9. Executing autocommands |autocmd-execute|
-10. Using autocommands |autocmd-use|
-11. Disabling autocommands |autocmd-disable|
+ Type |gO| to see the table of contents.
==============================================================================
1. Introduction *autocmd-intro*
@@ -30,7 +20,7 @@ files matching *.c. You can also use autocommands to implement advanced
features, such as editing compressed files (see |gzip-example|). The usual
place to put autocommands is in your vimrc file.
- *E203* *E204* *E143* *E855*
+ *E203* *E204* *E143* *E855* *E937*
WARNING: Using autocommands is very powerful, and may lead to unexpected side
effects. Be careful not to destroy your text.
- It's a good idea to do some testing on an expendable copy of a file first.
@@ -65,7 +55,14 @@ Note: The ":autocmd" command can only be followed by another command when the
'|' appears before {cmd}. This works: >
:augroup mine | au! BufRead | augroup END
But this sees "augroup" as part of the defined command: >
+ :augroup mine | au! BufRead * | augroup END
:augroup mine | au BufRead * set tw=70 | augroup END
+Instead you can put the group name into the command: >
+ :au! mine BufRead *
+ :au mine BufRead * set tw=70
+Or use `:execute`: >
+ :augroup mine | exe "au! BufRead *" | augroup END
+ :augroup mine | exe "au BufRead * set tw=70" | augroup END
Note that special characters (e.g., "%", "<cword>") in the ":autocmd"
arguments are not expanded when the autocommand is defined. These will be
@@ -76,11 +73,15 @@ exception is that "<sfile>" is expanded when the autocmd is defined. Example:
Here Vim expands <sfile> to the name of the file containing this line.
-When your vimrc file is sourced twice, the autocommands will appear twice.
-To avoid this, put this command in your vimrc file, before defining
-autocommands: >
+`:autocmd` adds to the list of autocommands regardless of whether they are
+already present. When your .vimrc file is sourced twice, the autocommands
+will appear twice. To avoid this, define your autocommands in a group, so
+that you can easily clear them: >
- :autocmd! " Remove ALL autocommands for the current group.
+ augroup vimrc
+ autocmd! " Remove all vimrc autocommands
+ au BufNewFile,BufRead *.html so <sfile>:h/html.vim
+ augroup END
If you don't want to remove all autocommands, you can instead use a variable
to ensure that Vim includes the autocommands only once: >
@@ -127,8 +128,13 @@ prompt. When one command outputs two messages this can happen anyway.
:au[tocmd]! [group] {event}
Remove ALL autocommands for {event}.
+ Warning: You should not do this without a group for
+ |BufRead| and other common events, it can break
+ plugins, syntax highlighting, etc.
:au[tocmd]! [group] Remove ALL autocommands.
+ Warning: You should normally not do this without a
+ group, it breaks plugins, syntax highlighting, etc.
When the [group] argument is not given, Vim uses the current group (as defined
with ":augroup"); otherwise, Vim uses the group defined with [group].
@@ -304,6 +310,8 @@ Name triggered by ~
|TabNew| when creating a new tab page
|TabNewEntered| after entering a new tab page
|TabClosed| after closing a tab page
+|CmdlineEnter| after entering cmdline mode
+|CmdlineLeave| before leaving cmdline mode
|CmdwinEnter| after entering the command-line window
|CmdwinLeave| before leaving the command-line window
@@ -422,8 +430,8 @@ BufUnload Before unloading a buffer. This is when the
NOTE: When this autocommand is executed, the
current buffer "%" may be different from the
buffer being unloaded "<afile>".
- Don't change to another buffer, it will cause
- problems.
+ Don't change to another buffer or window, it
+ will cause problems!
When exiting and v:dying is 2 or more this
event is not triggered.
*BufWinEnter*
@@ -486,6 +494,28 @@ CmdUndefined When a user command is used but it isn't
command is defined. An alternative is to
always define the user command and have it
invoke an autoloaded function. See |autoload|.
+ *CmdlineEnter*
+CmdlineEnter After moving the cursor to the command line,
+ where the user can type a command or search
+ string.
+ <afile> is set to a single character,
+ indicating the type of command-line.
+ |cmdline-char|
+ Sets these |v:event| keys:
+ cmdlevel
+ cmdtype
+ *CmdlineLeave*
+CmdlineLeave Before leaving the command line.
+ <afile> is set to a single character,
+ indicating the type of command-line.
+ |cmdline-char|
+ Sets these |v:event| keys:
+ abort (mutable)
+ cmdlevel
+ cmdtype
+ Note: `abort` can only be changed from false
+ to true. An autocmd cannot execute an already
+ aborted cmdline by changing it to false.
*CmdwinEnter*
CmdwinEnter After entering the command-line window.
Useful for setting options specifically for
@@ -606,7 +636,7 @@ FileChangedShell When Vim notices that the modification time of
|timestamp|
Mostly triggered after executing a shell
command, but also with a |:checktime| command
- or when Gvim regains input focus.
+ or when gvim regains input focus.
This autocommand is triggered for each changed
file. It is not used when 'autoread' is set
and the buffer was not changed. If a
@@ -617,7 +647,7 @@ FileChangedShell When Vim notices that the modification time of
to tell Vim what to do next.
NOTE: When this autocommand is executed, the
current buffer "%" may be different from the
- buffer that was changed "<afile>".
+ buffer that was changed, which is in "<afile>".
NOTE: The commands must not change the current
buffer, jump to another buffer or delete a
buffer. *E246* *E811*
@@ -644,7 +674,8 @@ FileType When the 'filetype' option has been set. The
pattern is matched against the filetype.
<afile> can be used for the name of the file
where this option was set, and <amatch> for
- the new value of 'filetype'.
+ the new value of 'filetype'. Navigating to
+ another window or buffer is not allowed.
See |filetypes|.
*FileWriteCmd*
FileWriteCmd Before writing to a file, when not writing the
@@ -794,7 +825,9 @@ QuickFixCmdPre Before a quickfix command is run (|:make|,
|:vimgrepadd|, |:lvimgrepadd|, |:cscope|,
|:cfile|, |:cgetfile|, |:caddfile|, |:lfile|,
|:lgetfile|, |:laddfile|, |:helpgrep|,
- |:lhelpgrep|).
+ |:lhelpgrep|, |:cexpr|, |:cgetexpr|,
+ |:caddexpr|, |:cbuffer|, |:cgetbuffer|,
+ |:caddbuffer|).
The pattern is matched against the command
being run. When |:grep| is used but 'grepprg'
is set to "internal" it still matches "grep".
@@ -919,7 +952,7 @@ TermClose When a terminal buffer ends.
{Nvim} *TermOpen*
TermOpen When a terminal buffer is starting. This can
be used to configure the terminal emulator by
- setting buffer variables. |terminal-emulator|
+ setting buffer variables. |terminal|
*TermResponse*
TermResponse After the response to |t_RV| is received from
the terminal. The value of |v:termresponse|
@@ -966,9 +999,9 @@ VimEnter After doing all the startup stuff, including
VimLeave Before exiting Vim, just after writing the
.shada file. Executed only once, like
VimLeavePre.
- To detect an abnormal exit use |v:dying|.
- When v:dying is 2 or more this event is not
- triggered.
+< Use |v:dying| to detect an abnormal exit.
+ Use |v:exiting| to get the exit code.
+ Not triggered if |v:dying| is 2 or more.
*VimLeavePre*
VimLeavePre Before exiting Vim, just before writing the
.shada file. This is executed only once,
@@ -976,9 +1009,9 @@ VimLeavePre Before exiting Vim, just before writing the
happens to be the current buffer when exiting.
Mostly useful with a "*" pattern. >
:autocmd VimLeavePre * call CleanupStuff()
-< To detect an abnormal exit use |v:dying|.
- When v:dying is 2 or more this event is not
- triggered.
+< Use |v:dying| to detect an abnormal exit.
+ Use |v:exiting| to get the exit code.
+ Not triggered if |v:dying| is 2 or more.
*VimResized*
VimResized After the Vim window was resized, thus 'lines'
and/or 'columns' changed. Not when starting
@@ -1002,7 +1035,7 @@ WinLeave Before leaving a window. If the window to be
*WinNew*
WinNew When a new window was created. Not done for
- the fist window, when Vim has just started.
+ the first window, when Vim has just started.
Before a WinEnter event.
==============================================================================
@@ -1086,6 +1119,9 @@ Note that for all systems the '/' character is used for path separator (even
Windows). This was done because the backslash is difficult to use in a pattern
and to make the autocommands portable across different systems.
+It is possible to use |pattern| items, but they may not work as expected,
+because of the translation done for the above.
+
*autocmd-changes*
Matching with the pattern is done when an event is triggered. Changing the
buffer name in one of the autocommands, or even deleting the buffer, does not
@@ -1184,10 +1220,12 @@ name!
different from existing {event} names, as this
most likely will not do what you intended.
- *:augroup-delete* *E367*
+ *:augroup-delete* *E367* *W19* *E936*
:aug[roup]! {name} Delete the autocmd group {name}. Don't use
this if there is still an autocommand using
- this group! This is not checked.
+ this group! You will get a warning if doing
+ it anyway. when the group is the current group
+ you will get error E936.
To enter autocommands for a specific group, use this method:
1. Select the group with ":augroup {name}".
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt
index 31a46f53bb..9610d7359f 100644
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt* For Vim version 7.4. Last change: 2016 Apr 12
+*change.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -9,20 +9,10 @@ changing text means deleting the text and replacing it with other text using
one command. You can undo all of these commands. You can repeat the non-Ex
commands with the "." command.
-1. Deleting text |deleting|
-2. Delete and insert |delete-insert|
-3. Simple changes |simple-change| *changing*
-4. Complex changes |complex-change|
- 4.1 Filter commands |filter|
- 4.2 Substitute |:substitute|
- 4.3 Search and replace |search-replace|
- 4.4 Changing tabs |change-tabs|
-5. Copying and moving text |copy-move|
-6. Formatting text |formatting|
-7. Sorting text |sorting|
-
For inserting text see |insert.txt|.
+ Type |gO| to see the table of contents.
+
==============================================================================
1. Deleting text *deleting* *E470*
@@ -259,7 +249,7 @@ Or use "caw" (see |aw|).
command is executed.
==============================================================================
-3. Simple changes *simple-change*
+3. Simple changes *simple-change* *changing*
*r*
r{char} Replace the character under the cursor with {char}.
@@ -398,11 +388,6 @@ CTRL-X Subtract [count] from the number or alphabetic
{Visual}CTRL-X Subtract [count] from the number or alphabetic
character in the highlighted text. {not in Vi}
- On MS-Windows, this is mapped to cut Visual text
- |dos-standard-mappings|. If you want to disable the
- mapping, use this: >
- silent! vunmap <C-X>
-<
*v_g_CTRL-X*
{Visual}g CTRL-X Subtract [count] from the number or alphabetic
character in the highlighted text. If several lines
@@ -601,8 +586,8 @@ all files in it are deleted. When Vim has the setuid bit set this may cause
problems, the temp file is owned by the setuid user but the filter command
probably runs as the original user.
Directory for temporary files is created in the first suitable directory of:
-For Unix: $TMPDIR, /tmp, current-dir, $HOME.
-For MS-Windows: $TMP, $TEMP, $USERPROFILE, current-dir.
+ Unix: $TMPDIR, /tmp, current-dir, $HOME.
+ Windows: $TMPDIR, $TMP, $TEMP, $USERPROFILE, current-dir.
@@ -614,12 +599,14 @@ For MS-Windows: $TMP, $TEMP, $USERPROFILE, current-dir.
For the {pattern} see |pattern|.
{string} can be a literal string, or something
special; see |sub-replace-special|.
+ *E939*
When [range] and [count] are omitted, replace in the
- current line only.
- When [count] is given, replace in [count] lines,
- starting with the last line in [range]. When [range]
- is omitted start in the current line.
- Also see |cmdline-ranges|.
+ current line only. When [count] is given, replace in
+ [count] lines, starting with the last line in [range].
+ When [range] is omitted start in the current line.
+ [count] must be a positive number. Also see
+ |cmdline-ranges|.
+
See |:s_flags| for [flags].
:[range]s[ubstitute] [flags] [count]
@@ -661,6 +648,7 @@ g& Synonym for `:%s//~/&` (repeat last substitute with
*:s_flags*
The flags that you can use for the substitute commands:
+ *:&&*
[&] Must be the first one: Keep the flags from the previous substitute
command. Examples: >
:&&
@@ -833,6 +821,7 @@ The numbering of "\1", "\2" etc. is done based on which "\(" comes first in
the pattern (going left to right). When a parentheses group matches several
times, the last one will be used for "\1", "\2", etc. Example: >
:s/\(\(a[a-d] \)*\)/\2/ modifies "aa ab x" to "ab x"
+The "\2" is for "\(a[a-d] \)". At first it matches "aa ", secondly "ab ".
When using parentheses in combination with '|', like in \([ab]\)\|\([cd]\),
either the first or second pattern in parentheses did not match, so either
@@ -873,8 +862,7 @@ Exceptions:
Substitute with an expression *sub-replace-expression*
*sub-replace-\=* *s/\=*
When the substitute string starts with "\=" the remainder is interpreted as an
-expression. This does not work recursively: a |substitute()| function inside
-the expression cannot use "\=" for the substitute string.
+expression.
The special meaning for characters as mentioned at |sub-replace-special| does
not apply except for "<CR>". A <NL> character is used as a line break, you
diff --git a/runtime/doc/channel.txt b/runtime/doc/channel.txt
new file mode 100644
index 0000000000..c94c64eb84
--- /dev/null
+++ b/runtime/doc/channel.txt
@@ -0,0 +1,168 @@
+*channel.txt* Nvim
+
+
+ NVIM REFERENCE MANUAL by Thiago de Arruda
+
+
+Nvim's facilities for async io *channel*
+
+ Type <M-]> to see the table of contents.
+
+==============================================================================
+1. Introduction *channel-intro*
+
+Channels are nvim's way of communicating with external processes.
+
+There are several ways to open a channel:
+
+ 1. Through stdin/stdout when `nvim` is started with `--headless`, and a startup
+ script or --cmd command opens the stdio channel using |stdioopen()|.
+
+ 2. Through stdin, stdout and stderr of a process spawned by |jobstart()|.
+
+ 3. Through the PTY master end of a PTY opened with
+ `jobstart(..., {'pty': v:true})` or |termopen()|.
+
+ 4. By connecting to a TCP/IP socket or named pipe with |sockconnect()|.
+
+ 5. By another process connecting to a socket listened to by nvim. This only
+ supports RPC channels, see |rpc-connecting|.
+
+Channels support multiple modes or protocols. In the most basic
+mode of operation, raw bytes are read and written to the channel.
+The |rpc| protocol, based on the msgpack-rpc standard, enables nvim and the
+process at the other end to send remote calls and events to each other.
+Additionally, the builtin |terminal-emulator|, is implemented on top of PTY
+channels.
+
+==============================================================================
+2. Reading and writing raw bytes *channel-bytes*
+
+By default, channels opened by vimscript functions will operate with raw
+bytes. Additionally, for a job channel using rpc, bytes can still be
+read over its stderr. Similarily, only bytes can be written to nvim's own stderr.
+
+ *channel-callback* *buffered*
+ *on_stdout* *on_stderr* *on_stdin* *on_data*
+A callback function `on_{stream}` will be invoked with data read from the
+channel. By default, the callback will be invoked immediately when data is
+available, to facilitate interactive communication. The same callback will
+then be invoked with empty data, to indicate that the stream reached EOF.
+Alternatively the `{stream}_buffered` option can be set to invoke the callback
+only when the underlying stream reaches EOF, and will then be passed in
+complete output. This is helpful when only the complete output is useful, and
+not partial data. Futhermore if `{stream}_buffered` is set but not a callback,
+the data is saved in the options dict, with the stream name as key.
+
+- The arguments passed to the callback function are:
+
+ 0: The channel id
+ 1: the raw data read from the channel, formatted as a |readfile()|-style
+ list. If EOF occured, a single empty string `['']` will be passed in.
+ Note that the items in this list do not directly correspond to actual
+ lines in the output. See |channel-lines|
+ 2: Stream name as a string, like `"stdout"`. This is to allow multiple
+ on_{event} handlers to be implemented by the same function. The available
+ events depend on how the channel was opened and in what mode/protocol.
+
+ *channel-lines*
+ Note:
+ stream event handlers may receive partial (incomplete) lines. For a given
+ invocation of on_stdout etc, `a:data` is not guaranteed to end
+ with a newline.
+ - `abcdefg` may arrive as `['abc']`, `['defg']`.
+ - `abc\nefg` may arrive as `['abc', '']`, `['efg']` or `['abc']`,
+ `['','efg']`, or even `['ab']`, `['c','efg']`.
+
+ If you only are interested in complete output when the process exits,
+ use buffered mode. Otherwise, an easy way to deal with this:
+ initialize a list as `['']`, then append to it as follows: >
+ let s:chunks = ['']
+ func! s:on_event(job_id, data, event) dict
+ let s:chunks[-1] .= a:data[0]
+ call extend(s:chunks, a:data[1:])
+ endf
+<
+
+Additionally, if the callbacks are Dictionary functions, |self| can be used to
+refer to the options dictionary containing the callbacks. |Partial|s can also be
+used as callbacks.
+
+Data can be sent to the channel using the |chansend()| function. Here is a
+simple example, echoing some data through a cat-process:
+>
+ function! s:OnEvent(id, data, event) dict
+ let str = join(a:data, "\n")
+ echomsg str
+ endfunction
+ let id = jobstart(['cat'], {'on_stdout': function('s:OnEvent') } )
+ call chansend(id, "hello!")
+<
+
+Here is a example of setting a buffer to the result of grep, but only after
+all data has been processed:
+>
+ function! s:OnEvent(id, data, event) dict
+ call nvim_buf_set_lines(2, 0, -1, v:true, a:data)
+ endfunction
+ let id = jobstart(['grep', '^[0-9]'], { 'on_stdout': function('s:OnEvent'),
+ \ 'stdout_buffered':v:true } )
+
+ call chansend(id, "stuff\n10 PRINT \"NVIM\"\nxx")
+ " no output is received, buffer is empty
+
+ call chansend(id, "xx\n20 GOTO 10\nzz\n")
+ call chanclose(id, 'stdin')
+ " now buffer has result
+<
+For additional examples with jobs, see |job-control|.
+
+ *channel-pty*
+A special case is PTY channels opened by `jobstart(..., {'pty': v:true})` .
+No preprocessing of ANSI escape sequences is done, these will be sent raw to
+the callback. However, change of PTY size can be signaled to the slave using
+|jobresize()|. See also |terminal-emulator|.
+
+==============================================================================
+3. Communicating using msgpack-rpc *channel-rpc*
+
+When channels are opened with the `rpc` option set to true, the channel can be
+used for remote method calls in both directions, see |msgpack-rpc|. Note that
+rpc channels are implicitly trusted and the process at the other end can
+invoke any |api| function!
+
+==============================================================================
+4. Using the stdio channel *channel-stdio*
+
+When invoked normally, nvim will use stdin and stdout to interact with the
+user over the terminal interface (TUI). However when invoked with
+`--headless`, the TUI is not started and stdin and stdout can be used as a
+channel. To open the stdio channel |stdioopen()| must be called during
+|startup|, as there later will be no way of invoking a command. As a
+convenience, the stdio channel will always have channel id 1.
+
+Here is an example:
+>
+ func! OnEvent(id, data, event)
+ if a:data == [""]
+ quit
+ end
+ call chansend(a:id, map(a:data, {i,v -> toupper(v)}))
+ endfunc
+
+ call stdioopen({'on_stdin': 'OnEvent'})
+<
+Put this in `uppercase.vim` and invoke nvim with
+>
+ nvim --headless --cmd "source uppercase.vim"
+<
+ *--embed*
+An common use case is another program embedding nvim and communicating with it
+over rpc. Therefore, the option `--embed` exists as a shorthand for
+`nvim --headless --cmd "call stdioopen({'rpc': v:true})"`
+
+Nvim's stderr is implicitly open as a write-only bytes channel. It will
+always have channel id 2, however to be explicit |v:stderr| can be used.
+
+==============================================================================
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt
index a123ea711b..00e654841c 100644
--- a/runtime/doc/cmdline.txt
+++ b/runtime/doc/cmdline.txt
@@ -1,4 +1,4 @@
-*cmdline.txt* For Vim version 7.4. Last change: 2015 Dec 17
+*cmdline.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -13,13 +13,7 @@ Command-line mode is used to enter Ex commands (":"), search patterns
Basic command line editing is explained in chapter 20 of the user manual
|usr_20.txt|.
-1. Command-line editing |cmdline-editing|
-2. Command-line completion |cmdline-completion|
-3. Ex command-lines |cmdline-lines|
-4. Ex command-line ranges |cmdline-ranges|
-5. Ex command-line flags |ex-flags|
-6. Ex special characters |cmdline-special|
-7. Command-line window |cmdline-window|
+ Type |gO| to see the table of contents.
==============================================================================
1. Command-line editing *cmdline-editing*
@@ -219,9 +213,10 @@ CTRL-Y When there is a modeless selection, copy the selection into
the clipboard. |modeless-selection|
If there is no selection CTRL-Y is inserted as a character.
-CTRL-J *c_CTRL-J* *c_<NL>* *c_<CR>* *c_CR*
+CTRL-M or CTRL-J *c_CTRL-M* *c_CTRL-J* *c_<NL>* *c_<CR>* *c_CR*
<CR> or <NL> start entered command
- *c_<Esc>* *c_Esc*
+
+CTRL-[ *c_CTRL-[* *c_<Esc>* *c_Esc*
<Esc> When typed and 'x' not present in 'cpoptions', quit
Command-line mode without executing. In macros or when 'x'
present in 'cpoptions', start entered command.
@@ -332,8 +327,11 @@ terminals)
List entries 6 to 12 from the search history: >
:history / 6,12
<
- List the recent five entries from all histories: >
- :history all -5,
+ List the penultimate entry from all histories: >
+ :history all -2
+<
+ List the most recent two entries from all histories: >
+ :history all -2,
:keepp[atterns] {command} *:keepp* *:keeppatterns*
Execute {command}, without adding anything to the search
@@ -363,7 +361,7 @@ These are the commands that can be used:
*c_CTRL-D*
CTRL-D List names that match the pattern in front of the cursor.
When showing file names, directories are highlighted (see
- 'highlight' option). Names where 'suffixes' matches are moved
+ |highlight-groups|). Names where 'suffixes' matches are moved
to the end.
The 'wildoptions' option can be set to "tagfile" to list the
file of matching tags.
@@ -394,12 +392,26 @@ CTRL-L A match is done on the pattern in front of the cursor. If
If there are multiple matches the longest common part is
inserted in place of the pattern. If the result is shorter
than the pattern, no completion is done.
+ */_CTRL-L*
When 'incsearch' is set, entering a search pattern for "/" or
"?" and the current match is displayed then CTRL-L will add
one character from the end of the current match. If
'ignorecase' and 'smartcase' are set and the command line has
no uppercase characters, the added character is converted to
lowercase.
+ *c_CTRL-G* */_CTRL-G*
+CTRL-G When 'incsearch' is set, entering a search pattern for "/" or
+ "?" and the current match is displayed then CTRL-G will move
+ to the next match (does not take |search-offset| into account)
+ Use CTRL-T to move to the previous match. Hint: on a regular
+ keyboard T is above G.
+ *c_CTRL-T* */_CTRL-T*
+CTRL-T When 'incsearch' is set, entering a search pattern for "/" or
+ "?" and the current match is displayed then CTRL-T will move
+ to the previous match (does not take |search-offset| into
+ account).
+ Use CTRL-G to move to the next match. Hint: on a regular
+ keyboard T is above G.
The 'wildchar' option defaults to <Tab> (CTRL-E when in Vi compatible mode; in
a previous version <Esc> was used). In the pattern standard wildcards '*' and
@@ -408,6 +420,9 @@ matches exactly one character.
The 'wildignorecase' option can be set to ignore case in filenames.
+The 'wildmenu' option can be set to show the matches just above the command
+line.
+
If you like tcsh's autolist completion, you can use this mapping:
:cnoremap X <C-L><C-D>
(Where X is the command key to use, <C-L> is CTRL-L and <C-D> is CTRL-D)
@@ -766,6 +781,7 @@ Also see |`=|.
*:<cword>* *:<cWORD>* *:<cfile>* *<cfile>*
*:<sfile>* *<sfile>* *:<afile>* *<afile>*
*:<abuf>* *<abuf>* *:<amatch>* *<amatch>*
+ *:<cexpr>* *<cexpr>*
*<slnum>* *E495* *E496* *E497* *E499* *E500*
Note: these are typed literally, they are not special keys!
<cword> is replaced with the word under the cursor (like |star|)
@@ -773,7 +789,8 @@ Note: these are typed literally, they are not special keys!
<cfile> is replaced with the path name under the cursor (like what
|gf| uses)
<afile> When executing autocommands, is replaced with the file name
- for a file read or write.
+ of the buffer being manipulated, or the file for a read or
+ write.
<abuf> When executing autocommands, is replaced with the currently
effective buffer number (for ":r file" and ":so file" it is
the current buffer, the file being read/sourced is not in a
@@ -999,10 +1016,10 @@ There are several ways to leave the command-line window:
Insert and in Normal mode.
CTRL-C Continue in Command-line mode. The command-line under the
cursor is used as the command-line. Works both in Insert and
- in Normal mode. ":close" also works. There is no redraw,
- thus the window will remain visible.
+ in Normal mode. There is no redraw, thus the window will
+ remain visible.
:quit Discard the command line and go back to Normal mode.
- ":exit", ":xit" and CTRL-\ CTRL-N also work.
+ ":close", ":exit", ":xit" and CTRL-\ CTRL-N also work.
:qall Quit Vim, unless there are changes in some buffer.
:qall! Quit Vim, discarding changes to any buffer.
@@ -1071,7 +1088,7 @@ Another example: >
:au CmdwinEnter [/?] startinsert
This will make Vim start in Insert mode in the command-line window.
- *cmdwin-char*
+ *cmdline-char* *cmdwin-char*
The character used for the pattern indicates the type of command-line:
: normal Ex command
> debug mode command |debug-mode|
diff --git a/runtime/doc/debug.txt b/runtime/doc/debug.txt
index f03116ffed..422255fa02 100644
--- a/runtime/doc/debug.txt
+++ b/runtime/doc/debug.txt
@@ -1,4 +1,4 @@
-*debug.txt* For Vim version 7.4. Last change: 2012 Feb 11
+*debug.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -9,9 +9,7 @@ Debugging Vim *debug-vim*
This is for debugging Vim itself, when it doesn't work properly.
For debugging Vim scripts, functions, etc. see |debug-scripts|
-1. Location of a crash, using gcc and gdb |debug-gcc|
-2. Locating memory leaks |debug-leaks|
-3. Windows Bug Reporting |debug-win32|
+ Type |gO| to see the table of contents.
==============================================================================
diff --git a/runtime/doc/deprecated.txt b/runtime/doc/deprecated.txt
index ef00143709..72dfe1230e 100644
--- a/runtime/doc/deprecated.txt
+++ b/runtime/doc/deprecated.txt
@@ -1,4 +1,4 @@
-*deprecated.txt* {Nvim}
+*deprecated.txt* Nvim
NVIM REFERENCE MANUAL
@@ -26,9 +26,6 @@ Events ~
*EncodingChanged* Never fired; 'encoding' is always "utf-8".
*FileEncoding* Never fired; equivalent to |EncodingChanged|.
-Highlight groups ~
-*hl-VisualNOS* Obsolete. |vim-differences| {Nvim}
-
Keycodes ~
*<MouseDown>* Use <ScrollWheelUp> instead.
*<MouseUp>* Use <ScrollWheelDown> instead.
@@ -40,11 +37,21 @@ Functions ~
*file_readable()* Obsolete name for |filereadable()|.
*highlight_exists()* Obsolete name for |hlexists()|.
*highlightID()* Obsolete name for |hlID()|.
+*jobclose()* Obsolete name for |chanclose()|
+*jobsend()* Obsolete name for |chansend()|
*last_buffer_nr()* Obsolete name for bufnr("$").
+Modifiers ~
+*:menu-<special>*
+*:menu-special* <> notation is always enabled. |cpo-<|
+*:map-<special>*
+*:map-special* <> notation is always enabled. |cpo-<|
+
Options ~
*'fe'* 'fenc'+'enc' before Vim 6.0; no longer used.
+*'highlight'* *'hl'* Names of builtin |highlight-groups| cannot be changed.
+*'langnoremap'* Deprecated alias to 'nolangremap'.
*'vi'*
*'viminfo'* Deprecated alias to 'shada' option.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:noet:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/develop.txt b/runtime/doc/develop.txt
index b738da9bec..36826e2479 100644
--- a/runtime/doc/develop.txt
+++ b/runtime/doc/develop.txt
@@ -1,4 +1,4 @@
-*develop.txt*
+*develop.txt* Nvim
NVIM REFERENCE MANUAL
@@ -6,22 +6,19 @@
Development of Nvim. *development*
-1. Design goals |design-goals|
-2. Design decisions |design-decisions|
-
Nvim is open source software. Everybody is encouraged to contribute.
https://github.com/neovim/neovim/blob/master/CONTRIBUTING.md
-See src/nvim/README.md for a high-level overview of the source code:
- https://github.com/neovim/neovim/blob/master/src/nvim/README.md
+See src/nvim/README.md for an overview of the source code.
+
+ Type |gO| to see the table of contents.
==============================================================================
-1. Design goals *design-goals*
+Design goals *design-goals*
Most important things come first (roughly).
-Note that quite a few items are contradicting. This is intentional. A
-balance must be found between them.
+Note that some items conflict; this is intentional. A balance must be found.
NVIM IS... IMPROVED *design-improved*
@@ -41,7 +38,7 @@ completely different editor. Extensions are done with a "Vi spirit".
- There are many first-time and inexperienced Vim users. Make it easy for
them to start using Vim and learn more over time.
- There is no limit to the features that can be added. Selecting new features
- is one based on (1) what users ask for, (2) how much effort it takes to
+ is based on (1) what users ask for, (2) how much effort it takes to
implement and (3) someone actually implementing it.
@@ -56,33 +53,21 @@ Vim tries to help as many users on as many platforms as possible.
- Support many compilers and libraries. Not everybody is able or allowed to
install another compiler or GUI library.
- People switch from one platform to another, and from GUI to terminal
- version. Features should be present in all versions, or at least in as many
- as possible with a reasonable effort. Try to avoid that users must switch
- between platforms to accomplish their work efficiently.
-- That a feature is not possible on some platforms, or only possible on one
- platform, does not mean it cannot be implemented. [This intentionally
- contradicts the previous item, these two must be balanced.]
+ version. Features should be present in all versions.
NVIM IS... WELL DOCUMENTED *design-documented*
- A feature that isn't documented is a useless feature. A patch for a new
feature must include the documentation.
-- Documentation should be comprehensive and understandable. Using examples is
- recommended.
+- Documentation should be comprehensive and understandable. Use examples.
- Don't make the text unnecessarily long. Less documentation means that an
item is easier to find.
-- Do not prefix doc-tags with "nvim-". Use |vim_diff.txt| to document
- differences from Vim. The {Nvim} annotation is also available
- to mark a specific feature. No other distinction is necessary.
-- If a feature is removed, delete its doc entry and move its tag to
- |vim_diff.txt|.
NVIM IS... HIGH SPEED AND SMALL IN SIZE *design-speed-size*
-Using Vim must not be a big attack on system resources. Keep it small and
-fast.
+Keep Nvim small and fast.
- Computers are becoming faster and bigger each year. Vim can grow too, but
no faster than computers are growing. Keep Vim usable on older systems.
- Many users start Vim from a shell very often. Startup time must be short.
@@ -118,13 +103,14 @@ NVIM IS... NOT *design-not*
Nvim is not an operating system; instead it should be composed with other
tools or hosted as a component. Marvim once said: "Unlike Emacs, Nvim does not
-include the kitchen sink... but you can use it for plumbing."
+include the kitchen sink... but it's good for plumbing."
==============================================================================
-2. Design decisions *design-decisions*
+Developer guidelines *dev*
-JARGON *dev-jargon*
+
+JARGON *dev-jargon*
API client ~
All external UIs and remote plugins (as opposed to regular Vim plugins) are
@@ -150,15 +136,16 @@ the xterm window, a window inside Vim to view a buffer.
To avoid confusion, other items that are sometimes called window have been
given another name. Here is an overview of the related items:
-screen The whole display. For the GUI it's something like 1024x768
- pixels. The Vim shell can use the whole screen or part of it.
+screen The whole display.
shell The Vim application. This can cover the whole screen (e.g.,
when running in a console) or part of it (xterm or GUI).
window View on a buffer. There can be several windows in Vim,
together with the command line, menubar, toolbar, etc. they
fit in the shell.
+frame Windows are kept in a tree of frames. Each frame contains
+ a column, row, or window ("leaf" frame).
-PROVIDERS *dev-provider*
+PROVIDERS *dev-provider*
A goal of Nvim is to allow extension of the editor without special knowledge
in the core. But some Vim components are too tightly coupled; in those cases
@@ -201,8 +188,20 @@ defined if a valid external Python host is found. That works well with the
Python host isn't installed then the plugin will "think" it is running in
a Vim compiled without the |+python| feature.
+DOCUMENTATION *dev-doc*
-API *dev-api*
+- Do not prefix help tags with "nvim-". Use |vim_diff.txt| to document
+ differences from Vim; no other distinction is necessary.
+- If a Vim feature is removed, delete its help section and move its tag to
+ |vim_diff.txt|.
+- Move deprecated features to |deprecated.txt|.
+- Use consistent language.
+ - "terminal" in a help tag always means "the embedded terminal emulator", not
+ "the user host terminal".
+ - Use "tui-" to prefix help tags related to the host terminal, and "TUI"
+ in prose if possible.
+
+API *dev-api*
Use this pattern to name new API functions:
nvim_{thing}_{action}_{arbitrary-qualifiers}
@@ -233,4 +232,47 @@ _not_ a Buffer). The common {action} "list" indicates that it lists all
bufs (plural) in the global context.
+API-CLIENT *dev-api-client*
+
+Package Naming ~
+API client packages should NOT be named something ambiguous like "neovim" or
+"python-client". Use "nvim" as a prefix/suffix to some other identifier
+following ecosystem conventions.
+
+For example, Python packages tend to have "py" in the name, so "pynvim" is
+a good name: it's idiomatic and unambiguous. If the package is named "neovim",
+it confuses users, and complicates documentation and discussions.
+
+Examples of API-client package names:
+ GOOD: nvim-racket
+ GOOD: pynvim
+ BAD: python-client
+ BAD: neovim
+
+Implementation ~
+Consider using libmpack instead of the msgpack.org C/C++ library. libmpack is
+small, efficient, and C89-compatible. It can be easily inlined in your
+C project source, too. https://github.com/libmpack/libmpack/
+
+
+EXTERNAL UI *dev-ui*
+
+Compatibility ~
+External UIs should be aware of the |api-contract|. In particular, future
+versions of Nvim may add new items to existing events. The API is strongly
+backwards-compatible, but clients must not break if new fields are added to
+existing events.
+
+Common Features ~
+External UIs are expected to implement these common features:
+- Cursor style (shape, color) should respond to the 'guicursor' properties
+ delivered with the mode_info_set UI event.
+- Send the "super" key (Windows key, Apple key) as a |<D-| chord.
+
+Implementation ~
+- Options can be monitored for changes by the |OptionSet| autocmd. E.g. if the
+ user sets the 'guifont' option, this autocmd notifies channel 42: >
+ autocmd OptionSet guifont call rpcnotify(42, 'option-changed', 'guifont', &guifont)
+
+
vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/diff.txt b/runtime/doc/diff.txt
index 6b45f8552f..b9dccc42a8 100644
--- a/runtime/doc/diff.txt
+++ b/runtime/doc/diff.txt
@@ -1,4 +1,4 @@
-*diff.txt* For Vim version 7.4. Last change: 2016 Aug 24
+*diff.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -10,14 +10,10 @@ eight versions of the same file.
The basics are explained in section |08.7| of the user manual.
-1. Starting diff mode |diff-mode|
-2. Viewing diffs |view-diffs|
-3. Jumping to diffs |jumpto-diffs|
-4. Copying diffs |copy-diffs|
-5. Diff options |diff-options|
+ Type |gO| to see the table of contents.
==============================================================================
-1. Starting diff mode
+1. Starting diff mode *start-vimdiff*
To start editing in diff mode, run "nvim -d". This starts Nvim as usual, and
additionally sets up for viewing the differences between the arguments. >
@@ -123,6 +119,8 @@ file for a moment and come back to the same file and be in diff mode again.
related options only happens in a window that has 'diff' set,
if the current window does not have 'diff' set then no options
in it are changed.
+ Hidden buffers are also removed from the list of diff'ed
+ buffers.
The `:diffoff` command resets the relevant options to the values they had when
using `:diffsplit`, `:diffpatch` , `:diffthis`. or starting Vim in diff mode.
@@ -156,7 +154,8 @@ The alignment of text will go wrong when:
All the buffers edited in a window where the 'diff' option is set will join in
the diff. This is also possible for hidden buffers. They must have been
-edited in a window first for this to be possible.
+edited in a window first for this to be possible. To get rid of the hidden
+buffers use `:diffoff!`.
*:DiffOrig* *diff-original-file*
Since 'diff' is a window-local option, it's possible to view the same buffer
@@ -215,8 +214,8 @@ The diffs are highlighted with these groups:
(searching from the end of the line). The
text in between is highlighted. This means
that parts in the middle that are still the
- same are highlighted anyway. Only "iwhite" of
- 'diffopt' is used here.
+ same are highlighted anyway. The 'diffopt'
+ flags "iwhite" and "icase" are used here.
|hl-DiffDelete| DiffDelete Deleted lines. Also called filler lines,
because they don't really exist in this
buffer.
@@ -315,7 +314,7 @@ g:diff_translations to zero: >
let g:diff_translations = 0
<
-After setting this variable, Reload the syntax script: >
+After setting this variable, reload the syntax script: >
set syntax=diff
<
diff --git a/runtime/doc/digraph.txt b/runtime/doc/digraph.txt
index 84024fd1b3..d3b03c6ef6 100644
--- a/runtime/doc/digraph.txt
+++ b/runtime/doc/digraph.txt
@@ -1,4 +1,4 @@
-*digraph.txt* For Vim version 7.4. Last change: 2014 Jun 19
+*digraph.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -14,9 +14,7 @@ with CTRL-V (see |i_CTRL-V|).
There is a brief introduction on digraphs in the user manual: |24.9|
An alternative is using the 'keymap' option.
-1. Defining digraphs |digraphs-define|
-2. Using digraphs |digraphs-use|
-3. Default digraphs |digraphs-default|
+ Type |gO| to see the table of contents.
==============================================================================
1. Defining digraphs *digraphs-define*
@@ -145,7 +143,7 @@ a standard meaning:
Two 2 Hook
Nine 9 Horn
- Equals = Cyrillic (= used as second char)
+ Equals = Cyrillic (= used as second char)
Asterisk * Greek
Percent sign % Greek/Cyrillic special
Plus + smalls: Arabic, capitals: Hebrew
@@ -924,6 +922,7 @@ char digraph hex dec official name ~
† /- 2020 8224 DAGGER
‡ /= 2021 8225 DOUBLE DAGGER
‥ .. 2025 8229 TWO DOT LEADER
+… ,. 2026 8230 HORIZONTAL ELLIPSIS
‰ %0 2030 8240 PER MILLE SIGN
′ 1' 2032 8242 PRIME
″ 2' 2033 8243 DOUBLE PRIME
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index 5bfffac1f1..1b9a1b38fb 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1,4 +1,4 @@
-*editing.txt* For Vim version 7.4. Last change: 2016 Aug 06
+*editing.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -6,17 +6,7 @@
Editing files *edit-files*
-1. Introduction |edit-intro|
-2. Editing a file |edit-a-file|
-3. The argument list |argument-list|
-4. Writing |writing|
-5. Writing and quitting |write-quit|
-6. Dialogs |edit-dialogs|
-7. The current directory |current-directory|
-8. Editing binary files |edit-binary|
-9. Encryption |encryption|
-10. Timestamps |timestamps|
-11. File Searching |file-searching|
+ Type |gO| to see the table of contents.
==============================================================================
1. Introduction *edit-intro*
@@ -160,7 +150,8 @@ start editing another file, Vim will refuse this. In order to overrule this
protection, add a '!' to the command. The changes will then be lost. For
example: ":q" will not work if the buffer was changed, but ":q!" will. To see
whether the buffer was changed use the "CTRL-G" command. The message includes
-the string "[Modified]" if the buffer has been changed.
+the string "[Modified]" if the buffer has been changed, or "+" if the 'm' flag
+is in 'shortmess'.
If you want to automatically save the changes without asking, switch on the
'autowriteall' option. 'autowrite' is the associated Vi-compatible option
@@ -245,7 +236,7 @@ If you want to keep the changed buffer without saving it, switch on the
*:vie* *:view*
:vie[w][!] [++opt] [+cmd] file
- When used in Ex mode: Leave |Ex mode|, go back to
+ When used in Ex mode: Leave |Ex-mode|, go back to
Normal mode. Otherwise same as |:edit|, but set
'readonly' option for this buffer.
@@ -910,11 +901,12 @@ WRITING WITH MULTIPLE BUFFERS *buffer-write*
*:wa* *:wall*
:wa[ll] Write all changed buffers. Buffers without a file
- name or which are readonly are not written.
+ name cause an error message. Buffers which are
+ readonly are not written.
:wa[ll]! Write all changed buffers, even the ones that are
readonly. Buffers without a file name are not
- written.
+ written and cause an error message.
Vim will warn you if you try to overwrite a file that has been changed
@@ -1040,6 +1032,7 @@ The names can be in upper- or lowercase.
window in the current tab page the current tab page is
closed |tab-page|.
Triggers the |QuitPre| autocommand event.
+ See |CTRL-W_q| for quitting another window.
:conf[irm] q[uit] Quit, but give prompt when changes have been made, or
the last file in the argument list has not been
@@ -1273,14 +1266,14 @@ Commands for changing the working directory can be suffixed with a bang "!"
*:lc* *:lcd*
:lc[d][!] {path} Like |:cd|, but only set the current directory for the
current window. The current directory for other
- windows or any tabs is not changed.
+ windows or tabs is not changed.
*:lch* *:lchdir*
:lch[dir][!] Same as |:lcd|.
*:lcd-*
:lcd[!] - Change to the previous current directory (before the
- previous ":tcd {path}" command).
+ previous ":lcd {path}" command).
*:pw* *:pwd* *E187*
:pw[d] Print the current directory name.
@@ -1372,6 +1365,13 @@ If you want to automatically reload a file when it has been changed outside of
Vim, set the 'autoread' option. This doesn't work at the moment you write the
file though, only when the file wasn't changed inside of Vim.
+If you do not want to be asked or automatically reload the file, you can use
+this: >
+ set buftype=nofile
+
+Or, when starting gvim from a shell: >
+ gvim file.log -c "set buftype=nofile"
+
Note that if a FileChangedShell autocommand is defined you will not get a
warning message or prompt. The autocommand is expected to handle this.
@@ -1542,7 +1542,7 @@ There are three different types of searching:
This searches the same directories, but in a different order.
Note that completion for ":find", ":sfind", and ":tabfind" commands do not
- currently work with 'path' items that contain a url or use the double star
+ currently work with 'path' items that contain a URL or use the double star
with depth limiter (/usr/**2) or upward search (;) notations.
vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index d94b3b7a2e..d2a3a962e6 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt* For Vim version 7.4. Last change: 2016 Aug 27
+*eval.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -12,23 +12,7 @@ Note: Expression evaluation can be disabled at compile time. If this has been
done, the features in this document are not available. See |+eval| and
|no-eval-feature|.
-1. Variables |variables|
- 1.1 Variable types
- 1.2 Function references |Funcref|
- 1.3 Lists |Lists|
- 1.4 Dictionaries |Dictionaries|
- 1.5 More about variables |more-variables|
-2. Expression syntax |expression-syntax|
-3. Internal variable |internal-variables|
-4. Builtin Functions |functions|
-5. Defining functions |user-functions|
-6. Curly braces names |curly-braces-names|
-7. Commands |expression-commands|
-8. Exception handling |exception-handling|
-9. Examples |eval-examples|
-10. No +eval feature |no-eval-feature|
-11. The sandbox |eval-sandbox|
-12. Textlock |textlock|
+ Type |gO| to see the table of contents.
==============================================================================
1. Variables *variables*
@@ -38,7 +22,9 @@ done, the features in this document are not available. See |+eval| and
There are six types of variables:
Number A 32 or 64 bit signed number. |expr-number| *Number*
- Examples: -123 0x10 0177
+ 64-bit Number is available only when compiled with the
+ |+num64| feature.
+ Examples: -123 0x10 0177 0b1011
Float A floating point number. |floating-point-format| *Float*
Examples: 123.456 1.15e-6 -1.1e3
@@ -107,10 +93,9 @@ To test for a non-empty string, use empty(): >
*non-zero-arg*
Function arguments often behave slightly different from |TRUE|: If the
argument is present and it evaluates to a non-zero Number, |v:true| or a
-non-empty String, then the value is considere to be TRUE.
-Note that " " and "0" are also non-empty strings, thus cause the mode to be
-cleared. A List, Dictionary or Float is not a Number or String, thus
-evaluates to FALSE.
+non-empty String, then the value is considered to be TRUE.
+Note that " " and "0" are also non-empty strings, thus considered to be TRUE.
+A List, Dictionary or Float is not a Number or String, thus evaluate to FALSE.
*E745* *E728* *E703* *E729* *E730* *E731*
List, Dictionary and Funcref types are not automatically converted.
@@ -247,7 +232,7 @@ it. To change a list in-place see |list-modification| below.
Sublist ~
-
+ *sublist*
A part of the List can be obtained by specifying the first and last index,
separated by a colon in square brackets: >
:let shortlist = mylist[2:-1] " get List [3, "four"]
@@ -394,10 +379,6 @@ This works like: >
: let index = index + 1
:endwhile
-Note that all items in the list should be of the same type, otherwise this
-results in error |E706|. To avoid this |:unlet| the variable at the end of
-the loop.
-
If all you want to do is modify each item in the list then the |map()|
function will be a simpler method than a for loop.
@@ -631,13 +612,17 @@ It's possible to form a variable name with curly braces, see
Expression syntax summary, from least to most significant:
-|expr1| expr2 ? expr1 : expr1 if-then-else
+|expr1| expr2
+ expr2 ? expr1 : expr1 if-then-else
-|expr2| expr3 || expr3 .. logical OR
+|expr2| expr3
+ expr3 || expr3 .. logical OR
-|expr3| expr4 && expr4 .. logical AND
+|expr3| expr4
+ expr4 && expr4 .. logical AND
-|expr4| expr5 == expr5 equal
+|expr4| expr5
+ expr5 == expr5 equal
expr5 != expr5 not equal
expr5 > expr5 greater than
expr5 >= expr5 greater than or equal
@@ -654,24 +639,28 @@ Expression syntax summary, from least to most significant:
expr5 is expr5 same |List| instance
expr5 isnot expr5 different |List| instance
-|expr5| expr6 + expr6 .. number addition or list concatenation
+|expr5| expr6
+ expr6 + expr6 .. number addition or list concatenation
expr6 - expr6 .. number subtraction
expr6 . expr6 .. string concatenation
-|expr6| expr7 * expr7 .. number multiplication
+|expr6| expr7
+ expr7 * expr7 .. number multiplication
expr7 / expr7 .. number division
expr7 % expr7 .. number modulo
-|expr7| ! expr7 logical NOT
+|expr7| expr8
+ ! expr7 logical NOT
- expr7 unary minus
+ expr7 unary plus
-|expr8| expr8[expr1] byte of a String or item of a |List|
+|expr8| expr9
+ expr8[expr1] byte of a String or item of a |List|
expr8[expr1 : expr1] substring of a String or sublist of a |List|
expr8.name entry in a |Dictionary|
expr8(expr1, ...) function call with |Funcref| variable
-|expr9| number number constant
+|expr9| number number constant
"string" string constant, backslash is special
'string' string constant, ' is doubled
[expr1, ...] |List|
@@ -792,14 +781,15 @@ Examples:
"abc" == "Abc" evaluates to 1 if 'ignorecase' is set, 0 otherwise
*E691* *E692*
-A |List| can only be compared with a |List| and only "equal", "not equal" and
-"is" can be used. This compares the values of the list, recursively.
-Ignoring case means case is ignored when comparing item values.
+A |List| can only be compared with a |List| and only "equal", "not equal",
+"is" and "isnot" can be used. This compares the values of the list,
+recursively. Ignoring case means case is ignored when comparing item values.
*E735* *E736*
A |Dictionary| can only be compared with a |Dictionary| and only "equal", "not
-equal" and "is" can be used. This compares the key/values of the |Dictionary|
-recursively. Ignoring case means case is ignored when comparing item values.
+equal", "is" and "isnot" can be used. This compares the key/values of the
+|Dictionary| recursively. Ignoring case means case is ignored when comparing
+item values.
*E694*
A |Funcref| can only be compared with a |Funcref| and only "equal", "not
@@ -899,6 +889,11 @@ When dividing a Number by zero the result depends on the value:
<0 / 0 = -0x7fffffff (like negative infinity)
(before Vim 7.2 it was always 0x7fffffff)
+When 64-bit Number support is enabled:
+ 0 / 0 = -0x8000000000000000 (like NaN for Float)
+ >0 / 0 = 0x7fffffffffffffff (like positive infinity)
+ <0 / 0 = -0x7fffffffffffffff (like negative infinity)
+
When the righthand side of '%' is zero, the result is 0.
None of these work for |Funcref|s.
@@ -931,7 +926,7 @@ expr8[expr1] item of String or |List| *expr-[]* *E111*
If expr8 is a Number or String this results in a String that contains the
expr1'th single byte from expr8. expr8 is used as a String, expr1 as a
-Number. This doesn't recognize multi-byte encodings, see |byteidx()| for
+Number. This doesn't recognize multi-byte encodings, see `byteidx()` for
an alternative, or use `split()` to turn the string into a list of characters.
Index zero gives the first byte. This is like it works in C. Careful:
@@ -975,10 +970,10 @@ Examples: >
:let s = line(".")[4:] " from the fifth byte to the end
:let s = s[:-3] " remove last two bytes
<
- *sublist* *slice*
+ *slice*
If expr8 is a |List| this results in a new |List| with the items indicated by
the indexes expr1a and expr1b. This works like with a String, as explained
-just above, except that indexes out of range cause an error. Examples: >
+just above. Also see |sublist| below. Examples: >
:let l = mylist[:3] " first four items
:let l = mylist[4:4] " List with one item
:let l = mylist[:] " shallow copy of a List
@@ -1021,10 +1016,11 @@ When expr8 is a |Funcref| type variable, invoke the function it refers to.
*expr9*
number
------
-number number constant *expr-number*
- *hex-number* *octal-number*
+number number constant *expr-number*
+ *hex-number* *octal-number* *binary-number*
-Decimal, Hexadecimal (starting with 0x or 0X), or Octal (starting with 0).
+Decimal, Hexadecimal (starting with 0x or 0X), Binary (starting with 0b or 0B)
+and Octal (starting with 0).
*floating-point-format*
Floating point numbers can be written in two forms:
@@ -1213,8 +1209,8 @@ The arguments are optional. Example: >
< error function
*closure*
Lambda expressions can access outer scope variables and arguments. This is
-often called a closure. Example where "i" a and "a:arg" are used in a lambda
-while they exists in the function scope. They remain valid even after the
+often called a closure. Example where "i" and "a:arg" are used in a lambda
+while they exist in the function scope. They remain valid even after the
function returns: >
:function Foo(arg)
: let i = 3
@@ -1232,7 +1228,7 @@ Examples for using a lambda expression with |sort()|, |map()| and |filter()|: >
:echo sort([3,7,2,1,4], {a, b -> a - b})
< [1, 2, 3, 4, 7]
-The lambda expression is also useful for Channel, Job and timer: >
+The lambda expression is also useful for jobs and timers: >
:let timer = timer_start(500,
\ {-> execute("echo 'Handler called'", "")},
\ {'repeat': 3})
@@ -1296,7 +1292,8 @@ b:changedtick The total number of changes to the current buffer. It is
: let my_changedtick = b:changedtick
: call My_Update()
:endif
-<
+< You cannot change or delete the b:changedtick variable.
+
*window-variable* *w:var* *w:*
A variable name that is preceded with "w:" is local to the current window. It
is deleted when the window is closed.
@@ -1425,8 +1422,8 @@ v:beval_winnr The number of the window, over which the mouse pointer is. Only
window gets a number).
*v:beval_winid* *beval_winid-variable*
-v:beval_winid The window ID of the window, over which the mouse pointer is.
- Otherwise like v:beval_winnr.
+v:beval_winid The |window-ID| of the window, over which the mouse pointer
+ is. Otherwise like v:beval_winnr.
*v:char* *char-variable*
v:char Argument for evaluating 'formatexpr' and used for the typed
@@ -1477,7 +1474,6 @@ v:count The count given for the last Normal mode command. Can be used
When there are two counts, as in "3d2w", they are multiplied,
just like what happens in the command, "d6w" for the example.
Also used for evaluating the 'formatexpr' option.
- "count" also works, for backwards compatibility.
*v:count1* *count1-variable*
v:count1 Just like "v:count", but defaults to one when no count is
@@ -1524,16 +1520,28 @@ v:errors Errors found by assert functions, such as |assert_true()|.
list by the assert function.
*v:event* *event-variable*
-v:event Dictionary of event data for the current |autocommand|. The
- available keys differ per event type and are specified at the
- documentation for each |event|. The possible keys are:
- operator The operation performed. Unlike
- |v:operator|, it is set also for an Ex
- mode command. For instance, |:yank| is
- translated to "|y|".
+v:event Dictionary of event data for the current |autocommand|. Valid
+ only during the event lifetime; storing or passing v:event is
+ invalid! Copy it instead: >
+ au TextYankPost * let g:foo = deepcopy(v:event)
+< Keys vary by event; see the documentation for the specific
+ event, e.g. |DirChanged| or |TextYankPost|.
+ KEY DESCRIPTION ~
+ abort Whether the event triggered during
+ an aborting condition, i e |c_Esc| or
+ |c_CTRL-c|for |CmdlineLeave|.
+ cmdlevel Level of cmdline.
+ cmdtype Type of cmdline, |cmdline-char|.
+ cwd Current working directory.
+ scope Event-specific scope name.
+ operator Current |operator|. Also set for Ex
+ commands (unlike |v:operator|). For
+ example if |TextYankPost| is triggered
+ by the |:yank| Ex command then
+ `v:event.operator` is "y".
regcontents Text stored in the register as a
|readfile()|-style list of lines.
- regname Requested register (e.g "x" for "xyy)
+ regname Requested register (e.g "x" for "xyy)
or the empty string for an unnamed
operation.
regtype Type of register as returned by
@@ -1681,7 +1689,7 @@ v:mouse_win Window number for a mouse click obtained with |getchar()|.
zero when there was no mouse button click.
*v:mouse_winid* *mouse_winid-variable*
-v:mouse_winid Window ID for a mouse click obtained with |getchar()|.
+v:mouse_winid |window-ID| for a mouse click obtained with |getchar()|.
The value is zero when there was no mouse button click.
*v:mouse_lnum* *mouse_lnum-variable*
@@ -1754,9 +1762,7 @@ v:profiling Normally zero. Set to one after using ":profile start".
See |profiling|.
*v:progname* *progname-variable*
-v:progname Contains the name (with path removed) with which Nvim was
- invoked. Allows you to do special initialisations for any
- name you might symlink to Nvim.
+v:progname The name by which Nvim was invoked (with path removed).
Read-only.
*v:progpath* *progpath-variable*
@@ -1783,11 +1789,11 @@ v:scrollstart String describing the script or function that caused the
*v:servername* *servername-variable*
*$NVIM_LISTEN_ADDRESS*
-v:servername Default {Nvim} server address. Equivalent to
+v:servername Default Nvim server address. Equivalent to
|$NVIM_LISTEN_ADDRESS| on startup. |serverstop()|
Read-only.
-
+
v:searchforward *v:searchforward* *searchforward-variable*
Search direction: 1 after a forward search, 0 after a
backward search. It is reset to forward when directly setting
@@ -1812,6 +1818,13 @@ v:shell_error Result of the last shell command. When non-zero, the last
*v:statusmsg* *statusmsg-variable*
v:statusmsg Last given status message. It's allowed to set this variable.
+ *v:stderr* *stderr-variable*
+v:stderr Channel id for stderr. Unlike stdin and stdout (see
+ |stdioopen()|), stderr is always open for writing. This channel
+ ID is always 2, but this variable can be used to be explicit.
+ Example: >
+ :call chansend(v:stderr, "something bad happened\n")
+<
*v:swapname* *swapname-variable*
v:swapname Only valid when executing |SwapExists| autocommands: Name of
the swap file found. Read-only.
@@ -1852,10 +1865,11 @@ v:t_number Value of Number type. Read-only. See: |type()|
v:t_string Value of String type. Read-only. See: |type()|
*v:termresponse* *termresponse-variable*
-v:termresponse The escape sequence returned by the terminal for the |t_RV|
- termcap entry. It is set when Vim receives an escape sequence
- that starts with ESC [ or CSI and ends in a 'c', with only
- digits, ';' and '.' in between.
+v:termresponse The escape sequence returned by the terminal for the DA
+ (request primary device attributes) control sequence. It is
+ set when Vim receives an escape sequence that starts with ESC
+ [ or CSI and ends in a 'c', with only digits, ';' and '.' in
+ between.
When this option is set, the TermResponse autocommand event is
fired, so that you can react to the response from the
terminal.
@@ -1867,6 +1881,8 @@ v:termresponse The escape sequence returned by the terminal for the |t_RV|
*v:testing* *testing-variable*
v:testing Must be set before using `test_garbagecollect_now()`.
+ Also, when set certain error messages won't be shown for 2
+ seconds. (e.g. "'dictionary' option is empty")
*v:this_session* *this_session-variable*
v:this_session Full filename of the last loaded or saved session file. See
@@ -1917,9 +1933,10 @@ v:vim_did_enter Zero until most of startup is done. It is set to one just
v:warningmsg Last given warning message. It's allowed to set this variable.
*v:windowid* *windowid-variable*
-v:windowid Application-specific window ID ("window handle" in MS-Windows)
- which may be set by any attached UI. Defaults to zero.
- Note: for windows inside Vim use |winnr()| or |win_getid()|.
+v:windowid Application-specific window "handle" which may be set by any
+ attached UI. Defaults to zero.
+ Note: For Nvim |windows| use |winnr()| or |win_getid()|, see
+ |window-ID|.
==============================================================================
4. Builtin Functions *functions*
@@ -1942,16 +1959,23 @@ argidx() Number current index in the argument list
arglistid([{winnr} [, {tabnr}]]) Number argument list id
argv({nr}) String {nr} entry of the argument list
argv() List the argument list
-assert_equal({exp}, {act} [, {msg}]) none assert {exp} is equal to {act}
-assert_exception( {error} [, {msg}]) none assert {error} is in v:exception
-assert_fails( {cmd} [, {error}]) none assert {cmd} fails
-assert_false({actual} [, {msg}]) none assert {actual} is false
+assert_equal({exp}, {act} [, {msg}])
+ none assert {exp} is equal to {act}
+assert_exception({error} [, {msg}])
+ none assert {error} is in v:exception
+assert_fails({cmd} [, {error}]) none assert {cmd} fails
+assert_false({actual} [, {msg}])
+ none assert {actual} is false
assert_inrange({lower}, {upper}, {actual} [, {msg}])
- none assert {actual} is inside the range
-assert_match( {pat}, {text} [, {msg}]) none assert {pat} matches {text}
-assert_notequal( {exp}, {act} [, {msg}]) none assert {exp} is not equal {act}
-assert_notmatch( {pat}, {text} [, {msg}]) none assert {pat} not matches {text}
-assert_true({actual} [, {msg}]) none assert {actual} is true
+ none assert {actual} is inside the range
+assert_match({pat}, {text} [, {msg}])
+ none assert {pat} matches {text}
+assert_notequal({exp}, {act} [, {msg}])
+ none assert {exp} is not equal {act}
+assert_notmatch({pat}, {text} [, {msg}])
+ none assert {pat} not matches {text}
+assert_report({msg}) none report a test failure
+assert_true({actual} [, {msg}]) none assert {actual} is true
asin({expr}) Float arc sine of {expr}
atan({expr}) Float arc tangent of {expr}
atan2({expr}, {expr}) Float arc tangent of {expr1} / {expr2}
@@ -1963,7 +1987,7 @@ buflisted({expr}) Number |TRUE| if buffer {expr} is listed
bufloaded({expr}) Number |TRUE| if buffer {expr} is loaded
bufname({expr}) String Name of the buffer {expr}
bufnr({expr} [, {create}]) Number Number of the buffer {expr}
-bufwinid({expr}) Number window ID of buffer {expr}
+bufwinid({expr}) Number |window-ID| of buffer {expr}
bufwinnr({expr}) Number window number of buffer {expr}
byte2line({byte}) Number line number at byte count {byte}
byteidx({expr}, {nr}) Number byte index of {nr}'th char in {expr}
@@ -1972,6 +1996,8 @@ call({func}, {arglist} [, {dict}])
any call {func} with arguments {arglist}
ceil({expr}) Float round {expr} up
changenr() Number current change number
+chanclose({id}[, {stream}]) Number Closes a channel or one of its streams
+chansend({id}, {data}) Number Writes {data} to channel
char2nr({expr}[, {utf8}]) Number ASCII/UTF8 value of first char in {expr}
cindent({lnum}) Number C indent for line {lnum}
clearmatches() none clear all matches
@@ -1986,7 +2012,7 @@ cos({expr}) Float cosine of {expr}
cosh({expr}) Float hyperbolic cosine of {expr}
count({list}, {expr} [, {ic} [, {start}]])
Number count how many {expr} are in {list}
-cscope_connection([{num} , {dbpath} [, {prepend}]])
+cscope_connection([{num}, {dbpath} [, {prepend}]])
Number checks existence of cscope connection
cursor({lnum}, {col} [, {off}])
Number move cursor to {lnum}, {col}, {off}
@@ -2016,11 +2042,11 @@ expand({expr} [, {nosuf} [, {list}]])
feedkeys({string} [, {mode}]) Number add key sequence to typeahead buffer
filereadable({file}) Number |TRUE| if {file} is a readable file
filewritable({file}) Number |TRUE| if {file} is a writable file
-filter({expr}, {string}) List/Dict remove items from {expr} where
- {string} is 0
-finddir({name}[, {path}[, {count}]])
+filter({expr1}, {expr2}) List/Dict remove items from {expr1} where
+ {expr2} is 0
+finddir({name} [, {path} [, {count}]])
String find directory {name} in {path}
-findfile({name}[, {path}[, {count}]])
+findfile({name} [, {path} [, {count}]])
String find file {name} in {path}
float2nr({expr}) Number convert Float {expr} to a Number
floor({expr}) Float round {expr} down
@@ -2041,7 +2067,7 @@ garbagecollect([{atexit}]) none free memory, breaking cyclic references
get({list}, {idx} [, {def}]) any get item {idx} from {list} or {def}
get({dict}, {key} [, {def}]) any get item {key} from {dict} or {def}
get({func}, {what}) any get property of funcref/partial {func}
-getbufinfo( [{expr}]) List information about buffers
+getbufinfo([{expr}]) List information about buffers
getbufline({expr}, {lnum} [, {end}])
List lines {lnum} to {end} of buffer {expr}
getbufvar({expr}, {varname} [, {def}])
@@ -2064,7 +2090,7 @@ getftime({fname}) Number last modification time of file
getftype({fname}) String description of type of file {fname}
getline({lnum}) String line {lnum} of current buffer
getline({lnum}, {end}) List lines {lnum} to {end} of current buffer
-getloclist({nr}[, {what}]) List list of location list items
+getloclist({nr} [, {what}]) List list of location list items
getmatches() List list of current matches
getpid() Number process ID of Vim
getpos({expr}) List position of cursor, mark, etc.
@@ -2106,7 +2132,8 @@ index({list}, {expr} [, {start} [, {ic}]])
Number index in {list} where {expr} appears
input({prompt} [, {text} [, {completion}]])
String get input from the user
-inputdialog({p} [, {t} [, {c}]]) String like input() but in a GUI dialog
+inputdialog({prompt} [, {text} [, {completion}]])
+ String like input() but in a GUI dialog
inputlist({textlist}) Number let the user pick from a choice list
inputrestore() Number restore typeahead
inputsave() Number save and clear typeahead
@@ -2119,13 +2146,11 @@ isdirectory({directory}) Number |TRUE| if {directory} is a directory
islocked({expr}) Number |TRUE| if {expr} is locked
id({expr}) String identifier of the container
items({dict}) List key-value pairs in {dict}
-jobclose({job}[, {stream}]) Number Closes a job stream(s)
-jobpid({job}) Number Returns pid of a job.
-jobresize({job}, {width}, {height})
- Number Resize {job}'s pseudo terminal window
-jobsend({job}, {data}) Number Writes {data} to {job}'s stdin
+jobpid({id}) Number Returns pid of a job.
+jobresize({id}, {width}, {height})
+ Number Resize pseudo terminal window of a job
jobstart({cmd}[, {opts}]) Number Spawns {cmd} as a job
-jobstop({job}) Number Stops a job
+jobstop({id}) Number Stops a job
jobwait({ids}[, {timeout}]) Number Wait for a set of jobs
join({list} [, {sep}]) String join {list} items into one String
json_decode({expr}) any Convert {expr} from JSON
@@ -2140,7 +2165,8 @@ lispindent({lnum}) Number Lisp indent for line {lnum}
localtime() Number current time
log({expr}) Float natural logarithm (base e) of {expr}
log10({expr}) Float logarithm of Float {expr} to base 10
-map({expr}, {string}) List/Dict change each item in {expr} to {expr}
+luaeval({expr}[, {expr}]) any evaluate Lua expression
+map({expr1}, {expr2}) List/Dict change each item in {expr1} to {expr}
maparg({name}[, {mode} [, {abbr} [, {dict}]]])
String or Dict
rhs of mapping {name} in mode {mode}
@@ -2162,8 +2188,8 @@ matchstr({expr}, {pat}[, {start}[, {count}]])
String {count}'th match of {pat} in {expr}
matchstrpos({expr}, {pat}[, {start}[, {count}]])
List {count}'th match of {pat} in {expr}
-max({list}) Number maximum value of items in {list}
-min({list}) Number minimum value of items in {list}
+max({expr}) Number maximum value of items in {expr}
+min({expr}) Number minimum value of items in {expr}
mkdir({name} [, {path} [, {prot}]])
Number create directory {name}
mode([expr]) String current editing mode
@@ -2187,12 +2213,13 @@ readfile({fname} [, {binary} [, {max}]])
reltime([{start} [, {end}]]) List get time value
reltimefloat({time}) Float turn the time value into a Float
reltimestr({time}) String turn time value into a String
-remote_expr({server}, {string} [, {idvar}])
+remote_expr({server}, {string} [, {idvar} [, {timeout}]])
String send expression
remote_foreground({server}) Number bring Vim server to the foreground
remote_peek({serverid} [, {retvar}])
Number check for reply string
-remote_read({serverid}) String read reply string
+remote_read({serverid} [, {timeout}])
+ String read reply string
remote_send({server}, {string} [, {idvar}])
String send key sequence
remove({list}, {idx} [, {end}]) any remove items {idx}-{end} from {list}
@@ -2206,7 +2233,6 @@ rpcnotify({channel}, {event}[, {args}...])
Sends an |RPC| notification to {channel}
rpcrequest({channel}, {method}[, {args}...])
Sends an |RPC| request to {channel}
-rpcstop({channel}) Closes an |RPC| {channel}
screenattr({row}, {col}) Number attribute at screen position
screenchar({row}, {col}) Number character at screen position
screencol() Number current cursor column
@@ -2248,6 +2274,8 @@ shiftwidth() Number effective value of 'shiftwidth'
simplify({filename}) String simplify filename as much as possible
sin({expr}) Float sine of {expr}
sinh({expr}) Float hyperbolic sine of {expr}
+sockconnect({mode}, {address} [, {opts}])
+ Number Connects to socket
sort({list} [, {func} [, {dict}]])
List sort {list}, using {func} to compare
soundfold({word}) String sound-fold {word}
@@ -2257,25 +2285,26 @@ spellsuggest({word} [, {max} [, {capital}]])
split({expr} [, {pat} [, {keepempty}]])
List make |List| from {pat} separated {expr}
sqrt({expr}) Float square root of {expr}
+stdioopen({dict}) Number open stdio in a headless instance.
str2float({expr}) Float convert String to Float
str2nr({expr} [, {base}]) Number convert String to Number
strchars({expr} [, {skipcc}]) Number character length of the String {expr}
-strcharpart({str}, {start}[, {len}])
+strcharpart({str}, {start} [, {len}])
String {len} characters of {str} at {start}
strdisplaywidth({expr} [, {col}]) Number display length of the String {expr}
-strftime({format}[, {time}]) String time in specified format
+strftime({format} [, {time}]) String time in specified format
strgetchar({str}, {index}) Number get char {index} from {str}
-stridx({haystack}, {needle}[, {start}])
+stridx({haystack}, {needle} [, {start}])
Number index of {needle} in {haystack}
string({expr}) String String representation of {expr} value
strlen({expr}) Number length of the String {expr}
-strpart({str}, {start}[, {len}])
+strpart({str}, {start} [, {len}])
String {len} characters of {str} at {start}
strridx({haystack}, {needle} [, {start}])
Number last index of {needle} in {haystack}
strtrans({expr}) String translate string to make it printable
strwidth({expr}) Number display cell length of the String {expr}
-submatch({nr}[, {list}]) String or List
+submatch({nr} [, {list}]) String or List
specific match in ":s" or substitute()
substitute({expr}, {pat}, {sub}, {flags})
String all {pat} in {expr} replaced with {sub}
@@ -2291,15 +2320,18 @@ tabpagebuflist([{arg}]) List list of buffer numbers in tab page
tabpagenr([{arg}]) Number number of current or last tab page
tabpagewinnr({tabarg}[, {arg}])
Number number of current window in tab page
-taglist({expr}) List list of tags matching {expr}
+taglist({expr}[, {filename}]) List list of tags matching {expr}
tagfiles() List tags files used
tan({expr}) Float tangent of {expr}
tanh({expr}) Float hyperbolic tangent of {expr}
tempname() String name for a temporary file
test_garbagecollect_now() none free memory right now for testing
+timer_info([{id}]) List information about timers
+timer_pause({id}, {pause}) none pause or unpause a timer
timer_start({time}, {callback} [, {options}])
Number create a timer
timer_stop({timer}) none stop a timer
+timer_stopall() none stop all timers
tolower({expr}) String the String {expr} switched to lowercase
toupper({expr}) String the String {expr} switched to uppercase
tr({src}, {fromstr}, {tostr}) String translate chars of {src} in {fromstr}
@@ -2315,10 +2347,10 @@ virtcol({expr}) Number screen column of cursor or mark
visualmode([expr]) String last visual mode used
wildmenumode() Number whether 'wildmenu' mode is active
win_findbuf({bufnr}) List find windows containing {bufnr}
-win_getid([{win} [, {tab}]]) Number get window ID for {win} in {tab}
-win_gotoid({expr}) Number go to window with ID {expr}
-win_id2tabwin({expr}) List get tab and window nr from window ID
-win_id2win({expr}) Number get window nr from window ID
+win_getid([{win} [, {tab}]]) Number get |window-ID| for {win} in {tab}
+win_gotoid({expr}) Number go to |window-ID| {expr}
+win_id2tabwin({expr}) List get tab and window nr from |window-ID|
+win_id2win({expr}) Number get window nr from |window-ID|
winbufnr({nr}) Number buffer number of window {nr}
wincol() Number window column of the cursor
winheight({nr}) Number height of window {nr}
@@ -2409,7 +2441,7 @@ arglistid([{winnr} [, {tabnr}]])
With {winnr} only use this window in the current tab page.
With {winnr} and {tabnr} use the window in the specified tab
page.
- {winnr} can be the window number or the window ID.
+ {winnr} can be the window number or the |window-ID|.
*argv()*
argv([{nr}]) The result is the {nr}th file in the argument list of the
@@ -2455,7 +2487,7 @@ assert_exception({error} [, {msg}]) *assert_exception()*
assert_fails({cmd} [, {error}]) *assert_fails()*
Run {cmd} and add an error message to |v:errors| if it does
NOT produce an error.
- When {error} is given it must match |v:errmsg|.
+ When {error} is given it must match in |v:errmsg|.
assert_false({actual} [, {msg}]) *assert_false()*
When {actual} is not false an error message is added to
@@ -2503,6 +2535,9 @@ assert_notmatch({pattern}, {actual} [, {msg}])
The opposite of `assert_match()`: add an error message to
|v:errors| when {pattern} matches {actual}.
+assert_report({msg}) *assert_report()*
+ Report a test failure directly, using {msg}.
+
assert_true({actual} [, {msg}]) *assert_true()*
When {actual} is not true an error message is added to
|v:errors|, like with |assert_equal()|.
@@ -2644,7 +2679,7 @@ bufnr({expr} [, {create}])
them. Use bufexists() to test for the existence of a buffer.
bufwinid({expr}) *bufwinid()*
- The result is a Number, which is the window ID of the first
+ The result is a Number, which is the |window-ID| of the first
window associated with buffer {expr}. For the use of {expr},
see |bufname()| above. If buffer {expr} doesn't exist or
there is no such window, -1 is returned. Example: >
@@ -2735,7 +2770,36 @@ changenr() *changenr()*
redo it is the number of the redone change. After undo it is
one less than the number of the undone change.
-char2nr({expr}[, {utf8}]) *char2nr()*
+chanclose({id}[, {stream}]) {Nvim} *chanclose()*
+ Close a channel or a specific stream associated with it.
+ For a job, {stream} can be one of "stdin", "stdout",
+ "stderr" or "rpc" (closes stdin/stdout for a job started
+ with `"rpc":v:true`) If {stream} is omitted, all streams
+ are closed. If the channel is a pty, this will then close the
+ pty master, sending SIGHUP to the job process.
+ For a socket, there is only one stream, and {stream} should be
+ ommited.
+
+chansend({id}, {data}) {Nvim} *chansend()*
+ Send data to channel {id}. For a job, it writes it to the
+ stdin of the process. For the stdio channel |channel-stdio|,
+ it writes to Nvim's stdout. Returns the number of bytes
+ written if the write succeeded, 0 otherwise.
+ See |channel-bytes| for more information.
+
+ {data} may be a string, string convertible, or a list. If
+ {data} is a list, the items will be joined by newlines; any
+ newlines in an item will be sent as NUL. To send a final
+ newline, include a final empty string. Example: >
+ :call chansend(id, ["abc", "123\n456", ""])
+< will send "abc<NL>123<NUL>456<NL>".
+
+ chansend() writes raw data, not RPC messages. If the channel
+ was created with `"rpc":v:true` then the channel expects RPC
+ messages, use |rpcnotify()| and |rpcrequest()| instead.
+
+
+char2nr({expr} [, {utf8}]) *char2nr()*
Return number value of the first char in {expr}. Examples: >
char2nr(" ") returns 32
char2nr("ABC") returns 65
@@ -2847,8 +2911,6 @@ confirm({msg} [, {choices} [, {default} [, {type}]]])
Confirm() offers the user a dialog, from which a choice can be
made. It returns the number of the choice. For the first
choice this is 1.
- Note: confirm() is only supported when compiled with dialog
- support, see |+dialog_con| and |+dialog_gui|.
{msg} is displayed in a |dialog| with {choices} as the
alternatives. When {choices} is missing or empty, "&OK" is
@@ -3034,6 +3096,8 @@ delete({fname} [, {flags}]) *delete()*
When {flags} is "rf": Deletes the directory by the name
{fname} and everything in it, recursively. BE CAREFUL!
+ Note: on MS-Windows it is not possible to delete a directory
+ that is being used.
The result is a Number, which is 0 if the delete operation was
successful and -1 when the deletion failed or partly failed.
@@ -3088,6 +3152,7 @@ did_filetype() Returns |TRUE| when autocommands are being executed and the
FileType event has been triggered at least once. Can be used
to avoid triggering the FileType event again in the scripts
that detect the file type. |FileType|
+ Returns |FALSE| when `:setf FALLBACK` was used.
When editing another file, the counter is reset, thus this
really checks if the FileType event has been triggered for the
current buffer. This allows an autocommand that starts
@@ -3179,7 +3244,7 @@ execute({command} [, {silent}]) *execute()*
"" no `:silent` used
"silent" `:silent` used
"silent!" `:silent!` used
- The default is 'silent'. Note that with "silent!", unlike
+ The default is "silent". Note that with "silent!", unlike
`:redir`, error messages are dropped.
To get a list of lines use |split()| on the result: >
@@ -3198,8 +3263,12 @@ exepath({expr}) *exepath()*
*exists()*
exists({expr}) The result is a Number, which is |TRUE| if {expr} is
- defined, zero otherwise. The {expr} argument is a string,
- which contains one of these:
+ defined, zero otherwise.
+
+ For checking for a supported feature use |has()|.
+ For checking if a file exists use |filereadable()|.
+
+ The {expr} argument is a string, which contains one of these:
&option-name Vim option (only checks if it exists,
not if it really works)
+option-name Vim option that works.
@@ -3247,7 +3316,6 @@ exists({expr}) The result is a Number, which is |TRUE| if {expr} is
event and pattern.
##event autocommand for this event is
supported.
- For checking for a supported feature use |has()|.
Examples: >
exists("&mouse")
@@ -3465,9 +3533,10 @@ filter({expr1}, {expr2}) *filter()*
is zero remove the item from the |List| or |Dictionary|.
{expr2} must be a |string| or |Funcref|.
- if {expr2} is a |string|, inside {expr2} |v:val| has the value
+ If {expr2} is a |string|, inside {expr2} |v:val| has the value
of the current item. For a |Dictionary| |v:key| has the key
- of the current item.
+ of the current item and for a |List| |v:key| has the index of
+ the current item.
For a |Dictionary| |v:key| has the key of the current item.
Examples: >
call filter(mylist, 'v:val !~ "OLD"')
@@ -3490,6 +3559,10 @@ filter({expr1}, {expr2}) *filter()*
return a:idx % 2 == 1
endfunc
call filter(mylist, function('Odd'))
+< It is shorter when using a |lambda|: >
+ call filter(myList, {idx, val -> idx * val <= 42})
+< If you do not use "val" you can leave it out: >
+ call filter(myList, {idx -> idx % 2 == 1})
<
The operation is done in-place. If you want a |List| or
|Dictionary| to remain unmodified make a copy first: >
@@ -3502,7 +3575,7 @@ filter({expr1}, {expr2}) *filter()*
defined with the "abort" flag.
-finddir({name}[, {path}[, {count}]]) *finddir()*
+finddir({name} [, {path} [, {count}]]) *finddir()*
Find directory {name} in {path}. Supports both downwards and
upwards recursive directory searches. See |file-searching|
for the syntax of {path}.
@@ -3517,7 +3590,7 @@ finddir({name}[, {path}[, {count}]]) *finddir()*
{only available when compiled with the |+file_in_path|
feature}
-findfile({name}[, {path}[, {count}]]) *findfile()*
+findfile({name} [, {path} [, {count}]]) *findfile()*
Just like |finddir()|, but find a file instead of a directory.
Uses 'suffixesadd'.
Example: >
@@ -3530,17 +3603,19 @@ float2nr({expr}) *float2nr()*
decimal point.
{expr} must evaluate to a |Float| or a Number.
When the value of {expr} is out of range for a |Number| the
- result is truncated to 0x7fffffff or -0x7fffffff. NaN results
- in -0x80000000.
+ result is truncated to 0x7fffffff or -0x7fffffff (or when
+ 64-bit Number support is enabled, 0x7fffffffffffffff or
+ -0x7fffffffffffffff. NaN results in -0x80000000 (or when
+ 64-bit Number support is enabled, -0x8000000000000000).
Examples: >
echo float2nr(3.95)
< 3 >
echo float2nr(-23.45)
< -23 >
echo float2nr(1.0e100)
-< 2147483647 >
+< 2147483647 (or 9223372036854775807) >
echo float2nr(-1.0e150)
-< -2147483647 >
+< -2147483647 (or -9223372036854775807) >
echo float2nr(1.0e-100)
< 0
@@ -3626,11 +3701,14 @@ foldtext() Returns a String, to be displayed for a closed fold. This is
|v:foldstart|, |v:foldend| and |v:folddashes| variables.
The returned string looks like this: >
+-- 45 lines: abcdef
-< The number of dashes depends on the foldlevel. The "45" is
- the number of lines in the fold. "abcdef" is the text in the
- first non-blank line of the fold. Leading white space, "//"
- or "/*" and the text from the 'foldmarker' and 'commentstring'
- options is removed.
+< The number of leading dashes depends on the foldlevel. The
+ "45" is the number of lines in the fold. "abcdef" is the text
+ in the first non-blank line of the fold. Leading white space,
+ "//" or "/*" and the text from the 'foldmarker' and
+ 'commentstring' options is removed.
+ When used to draw the actual foldtext, the rest of the line
+ will be filled with the fold char from the 'fillchars'
+ setting.
{not available when compiled without the |+folding| feature}
foldtextresult({lnum}) *foldtextresult()*
@@ -3679,7 +3757,7 @@ function({name} [, {arglist}] [, {dict}])
When {arglist} or {dict} is present this creates a partial.
That mans the argument list and/or the dictionary is stored in
the Funcref and will be used when the Funcref is called.
-
+
The arguments are passed to the function in front of other
arguments. Example: >
func Callback(arg1, arg2, name)
@@ -3744,10 +3822,10 @@ get({dict}, {key} [, {default}])
get({func}, {what})
Get item {what} from Funcref {func}. Possible values for
{what} are:
- 'name' The function name
- 'func' The function
- 'dict' The dictionary
- 'args' The list with arguments
+ "name" The function name
+ "func" The function
+ "dict" The dictionary
+ "args" The list with arguments
*getbufinfo()*
getbufinfo([{expr}])
@@ -3998,6 +4076,7 @@ getcompletion({pat}, {type} [, {filtered}]) *getcompletion()*
augroup autocmd groups
buffer buffer names
behave :behave suboptions
+ cmdline |cmdline-completion|
color color schemes
command Ex command (and arguments)
compiler compilers
@@ -4016,7 +4095,9 @@ getcompletion({pat}, {type} [, {filtered}]) *getcompletion()*
locale locale names (as output of locale -a)
mapping mapping name
menu menus
+ messages |:messages| suboptions
option options
+ packadd optional package |pack-add| names
shellcmd Shell command
sign |:sign| suboptions
syntax syntax file names |'syntax'|
@@ -4026,7 +4107,7 @@ getcompletion({pat}, {type} [, {filtered}]) *getcompletion()*
user user names
var user variables
- If {pat} is an empty string, then all the matches are returned.
+ If {pat} is an empty string then all matches are returned.
Otherwise only items matching {pat} are returned. See
|wildcards| for the use of special characters in {pat}.
@@ -4041,13 +4122,16 @@ getcompletion({pat}, {type} [, {filtered}]) *getcompletion()*
getcurpos() Get the position of the cursor. This is like getpos('.'), but
includes an extra item in the list:
[bufnum, lnum, col, off, curswant] ~
- The "curswant" number is the preferred column when moving the
- cursor vertically.
- This can be used to save and restore the cursor position: >
- let save_cursor = getcurpos()
- MoveTheCursorAround
- call setpos('.', save_cursor)
-<
+ The "curswant" number is the preferred column when moving the
+ cursor vertically. Also see |getpos()|.
+
+ This can be used to save and restore the cursor position: >
+ let save_cursor = getcurpos()
+ MoveTheCursorAround
+ call setpos('.', save_cursor)
+< Note that this only works within the window. See
+ |winrestview()| for restoring more state.
+
getcwd([{winnr}[, {tabnr}]]) *getcwd()*
With no arguments the result is a String, which is the name of
the current effective working directory. With {winnr} or
@@ -4059,7 +4143,7 @@ getcwd([{winnr}[, {tabnr}]]) *getcwd()*
getcwd(0)
getcwd(0, 0)
< If {winnr} is -1 it is ignored, only the tab is resolved.
- {winnr} can be the window number or the window ID.
+ {winnr} can be the window number or the |window-ID|.
getfsize({fname}) *getfsize()*
@@ -4154,7 +4238,7 @@ getline({lnum} [, {end}])
getloclist({nr},[, {what}]) *getloclist()*
Returns a list with all the entries in the location list for
- window {nr}. {nr} can be the window number or the window ID.
+ window {nr}. {nr} can be the window number or the |window-ID|.
When {nr} is zero the current window is used.
For a location list window, the displayed location list is
@@ -4229,7 +4313,7 @@ getqflist([{what}]) *getqflist()*
type type of the error, 'E', '1', etc.
valid |TRUE|: recognized error message
- When there is no error list or it's empty an empty list is
+ When there is no error list or it's empty, an empty list is
returned. Quickfix list entries with non-existing buffer
number are returned with "bufnr" set to zero.
@@ -4243,9 +4327,10 @@ getqflist([{what}]) *getqflist()*
If the optional {what} dictionary argument is supplied, then
returns only the items listed in {what} as a dictionary. The
following string items are supported in {what}:
- nr get information for this quickfix list
- title get list title
- winid get window id (if opened)
+ nr get information for this quickfix list; zero
+ means the current quickfix list
+ title get the list title
+ winid get the |window-ID| (if opened)
all all of the above quickfix properties
Non-string items in {what} are ignored.
If "nr" is not present then the current quickfix list is used.
@@ -4255,7 +4340,7 @@ getqflist([{what}]) *getqflist()*
The returned dictionary contains the following entries:
nr quickfix list number
title quickfix list title text
- winid quickfix window id (if opened)
+ winid quickfix |window-ID| (if opened)
Examples: >
:echo getqflist({'all': 1})
@@ -4266,7 +4351,7 @@ getreg([{regname} [, 1 [, {list}]]]) *getreg()*
The result is a String, which is the contents of register
{regname}. Example: >
:let cliptext = getreg('*')
-< When {regname} was not set the result is a empty string.
+< When {regname} was not set the result is an empty string.
getreg('=') returns the last evaluated value of the expression
register. (For use in maps.)
@@ -4302,10 +4387,10 @@ gettabinfo([{arg}]) *gettabinfo()*
empty List is returned.
Each List item is a Dictionary with the following entries:
- nr tab page number.
+ tabnr tab page number.
variables a reference to the dictionary with
tabpage-local variables
- windows List of window IDs in the tag page.
+ windows List of |window-ID|s in the tag page.
gettabvar({tabnr}, {varname} [, {def}]) *gettabvar()*
Get the value of a tab-local variable {varname} in tab page
@@ -4329,7 +4414,7 @@ gettabwinvar({tabnr}, {winnr}, {varname} [, {def}]) *gettabwinvar()*
Note that {varname} must be the name without "w:".
Tabs are numbered starting with one. For the current tabpage
use |getwinvar()|.
- {winnr} can be the window number or the window ID.
+ {winnr} can be the window number or the |window-ID|.
When {winnr} is zero the current window is used.
This also works for a global option, buffer-local option and
window-local option, but it doesn't work for a global variable
@@ -4344,11 +4429,13 @@ gettabwinvar({tabnr}, {winnr}, {varname} [, {def}]) *gettabwinvar()*
getwinposx() The result is a Number, which is the X coordinate in pixels of
the left hand side of the GUI Vim window. The result will be
-1 if the information is not available.
+ The value can be used with `:winpos`.
*getwinposy()*
getwinposy() The result is a Number, which is the Y coordinate in pixels of
the top of the GUI Vim window. The result will be -1 if the
information is not available.
+ The value can be used with `:winpos`.
getwininfo([{winid}]) *getwininfo()*
Returns information about windows as a List with Dictionaries.
@@ -4357,20 +4444,22 @@ getwininfo([{winid}]) *getwininfo()*
is returned. If the window does not exist the result is an
empty list.
- Without an information about all the windows in all the tab
- pages is returned.
+ Without {winid} information about all the windows in all the
+ tab pages is returned.
Each List item is a Dictionary with the following entries:
- bufnum number of buffer in the window
- height window height
+ bufnr number of buffer in the window
+ height window height (excluding winbar)
+ winbar 1 if the window has a toolbar, 0
+ otherwise
loclist 1 if showing a location list
- nr window number
quickfix 1 if quickfix or location list window
- tpnr tab page number
+ tabnr tab page number
variables a reference to the dictionary with
window-local variables
width window width
- winid window ID
+ winid |window-ID|
+ winnr window number
To obtain all window-local variables use: >
gettabwinvar({tabnr}, {winnr}, '&')
@@ -4474,9 +4563,8 @@ has_key({dict}, {key}) *has_key()*
an entry with key {key}. Zero otherwise.
haslocaldir([{winnr}[, {tabnr}]]) *haslocaldir()*
- The result is a Number, which is 1 when the specified tabpage
- or window has a local path set via |:lcd| or |:tcd|, and
- 0 otherwise.
+ The result is a Number, which is 1 when the tabpage or window
+ has set a local path via |:tcd| or |:lcd|, otherwise 0.
Tabs and windows are identified by their respective numbers,
0 means current tab or window. Missing argument implies 0.
@@ -4484,7 +4572,9 @@ haslocaldir([{winnr}[, {tabnr}]]) *haslocaldir()*
haslocaldir()
haslocaldir(0)
haslocaldir(0, 0)
-< {winnr} can be the window number or the window ID.
+< With {winnr} use that window in the current tabpage.
+ With {winnr} and {tabnr} use the window in that tabpage.
+ {winnr} can be the window number or the |window-ID|.
If {winnr} is -1 it is ignored, only the tab is resolved.
hasmapto({what} [, {mode} [, {abbr}]]) *hasmapto()*
@@ -4523,6 +4613,7 @@ histadd({history}, {item}) *histadd()*
"expr" or "=" typed expression history
"input" or "@" input line history
"debug" or ">" debug command history
+ empty the current or last used history
The {history} string does not need to be the whole name, one
character is sufficient.
If {item} does already exist in the history, it will be
@@ -4652,10 +4743,24 @@ index({list}, {expr} [, {start} [, {ic}]]) *index()*
input({prompt} [, {text} [, {completion}]]) *input()*
+input({opts})
The result is a String, which is whatever the user typed on
the command-line. The {prompt} argument is either a prompt
string, or a blank string (for no prompt). A '\n' can be used
in the prompt to start a new line.
+
+ In the second form it accepts a single dictionary with the
+ following keys, any of which may be omitted:
+
+ Key Default Description ~
+ prompt "" Same as {prompt} in the first form.
+ default "" Same as {text} in the first form.
+ completion nothing Same as {completion} in the first form.
+ cancelreturn "" Same as {cancelreturn} from
+ |inputdialog()|. Also works with
+ input().
+ highlight nothing Highlight handler: |Funcref|.
+
The highlighting set with |:echohl| is used for the prompt.
The input is entered just like a command-line, with the same
editing commands and mappings. There is a separate history
@@ -4677,7 +4782,60 @@ input({prompt} [, {text} [, {completion}]]) *input()*
"-complete=" argument. Refer to |:command-completion| for
more information. Example: >
let fname = input("File: ", "", "file")
+
+< *input()-highlight* *E5400* *E5402*
+ The optional `highlight` key allows specifying function which
+ will be used for highlighting user input. This function
+ receives user input as its only argument and must return
+ a list of 3-tuples [hl_start_col, hl_end_col + 1, hl_group]
+ where
+ hl_start_col is the first highlighted column,
+ hl_end_col is the last highlighted column (+ 1!),
+ hl_group is |:hl| group used for highlighting.
+ *E5403* *E5404* *E5405* *E5406*
+ Both hl_start_col and hl_end_col + 1 must point to the start
+ of the multibyte character (highlighting must not break
+ multibyte characters), hl_end_col + 1 may be equal to the
+ input length. Start column must be in range [0, len(input)),
+ end column must be in range (hl_start_col, len(input)],
+ sections must be ordered so that next hl_start_col is greater
+ then or equal to previous hl_end_col.
+
+ Example (try some input with parentheses): >
+ highlight RBP1 guibg=Red ctermbg=red
+ highlight RBP2 guibg=Yellow ctermbg=yellow
+ highlight RBP3 guibg=Green ctermbg=green
+ highlight RBP4 guibg=Blue ctermbg=blue
+ let g:rainbow_levels = 4
+ function! RainbowParens(cmdline)
+ let ret = []
+ let i = 0
+ let lvl = 0
+ while i < len(a:cmdline)
+ if a:cmdline[i] is# '('
+ call add(ret, [i, i + 1, 'RBP' . ((lvl % g:rainbow_levels) + 1)])
+ let lvl += 1
+ elseif a:cmdline[i] is# ')'
+ let lvl -= 1
+ call add(ret, [i, i + 1, 'RBP' . ((lvl % g:rainbow_levels) + 1)])
+ endif
+ let i += 1
+ endwhile
+ return ret
+ endfunction
+ call input({'prompt':'>','highlight':'RainbowParens'})
<
+ Highlight function is called at least once for each new
+ displayed input string, before command-line is redrawn. It is
+ expected that function is pure for the duration of one input()
+ call, i.e. it produces the same output for the same input, so
+ output may be memoized. Function is run like under |:silent|
+ modifier. If the function causes any errors, it will be
+ skipped for the duration of the current input() call.
+
+ Currently coloring is disabled when command-line contains
+ arabic characters.
+
NOTE: This function must not be used in a startup file, for
the versions that only run in GUI mode (e.g., the Win32 GUI).
Note: When input() is called from within a mapping it will
@@ -4697,6 +4855,7 @@ input({prompt} [, {text} [, {completion}]]) *input()*
:endfunction
inputdialog({prompt} [, {text} [, {cancelreturn}]]) *inputdialog()*
+inputdialog({opts})
Like |input()|, but when the GUI is running and text dialogs
are supported, a dialog window pops up to input the text.
Example: >
@@ -4708,7 +4867,6 @@ inputdialog({prompt} [, {text} [, {cancelreturn}]]) *inputdialog()*
omitted an empty string is returned.
Hitting <Enter> works like pressing the OK button. Hitting
<Esc> works like pressing the Cancel button.
- NOTE: Command-line completion is not supported.
inputlist({textlist}) *inputlist()*
{textlist} must be a |List| of strings. This |List| is
@@ -4811,64 +4969,58 @@ items({dict}) *items()*
entry and the value of this entry. The |List| is in arbitrary
order.
-jobclose({job}[, {stream}]) {Nvim} *jobclose()*
- Close {job}'s {stream}, which can be one of "stdin", "stdout",
- "stderr" or "rpc" (closes the rpc channel for a job started
- with the "rpc" option.) If {stream} is omitted, all streams
- are closed. If the job is a pty job, this will then close the
- pty master, sending SIGHUP to the job process.
-
-jobpid({job}) {Nvim} *jobpid()*
- Return the pid (process id) of {job}.
-
-jobresize({job}, {width}, {height}) {Nvim} *jobresize()*
- Resize {job}'s pseudo terminal window to {width} and {height}.
- This function will fail if used on jobs started without the
- "pty" option.
-jobsend({job}, {data}) {Nvim} *jobsend()*
- Send data to {job} by writing it to the stdin of the process.
- Returns 1 if the write succeeded, 0 otherwise.
- See |job-control| for more information.
-
- {data} may be a string, string convertible, or a list. If
- {data} is a list, the items will be separated by newlines and
- any newlines in an item will be sent as a NUL. A final newline
- can be sent by adding a final empty string. For example: >
- :call jobsend(j, ["abc", "123\n456", ""])
-< will send "abc<NL>123<NUL>456<NL>".
+jobpid({job}) *jobpid()*
+ Return the PID (process id) of |job-id| {job}.
- If the job was started with the rpc option this function
- cannot be used, instead use |rpcnotify()| and |rpcrequest()|
- to communicate with the job.
+jobresize({job}, {width}, {height}) *jobresize()*
+ Resize the pseudo terminal window of |job-id| {job} to {width}
+ columns and {height} rows.
+ Fails if the job was not started with `"pty":v:true`.
-jobstart({cmd}[, {opts}]) {Nvim} *jobstart()*
- Spawns {cmd} as a job. If {cmd} is a |List| it is run
- directly. If {cmd} is a |String| it is processed like this: >
+jobstart({cmd}[, {opts}]) *jobstart()*
+ Spawns {cmd} as a job.
+ If {cmd} is a List it runs directly (no 'shell').
+ If {cmd} is a String it runs in the 'shell', like this: >
:call jobstart(split(&shell) + split(&shellcmdflag) + ['{cmd}'])
-< NOTE: This only shows the idea; see |shell-unquoting| before
- constructing lists with 'shell' or 'shellcmdflag'.
-
- NOTE: On Windows if {cmd} is a List, cmd[0] must be a valid
- executable (.exe, .com). If the executable is in $PATH it can
- be called by name, with or without an extension: >
- :call jobstart(['ping', 'neovim.io'])
-< If it is a path (not a name), it must include the extension: >
- :call jobstart(['System32\ping.exe', 'neovim.io'])
-<
+< (See |shell-unquoting| for details.)
+
+ Returns |job-id| on success, 0 on invalid arguments (or job
+ table is full), -1 if {cmd}[0] or 'shell' is not executable.
+ For communication over the job's stdio, it is represented as a
+ |channel|, and a channel ID is returned on success. Use
+ |chansend()| (or |rpcnotify()| and |rpcrequest()| if "rpc" option
+ was used) to send data to stdin and |chanclose()| to close stdio
+ streams without stopping the job explicitly.
+
+ See |job-control| and |rpc|.
+
+ NOTE: on Windows if {cmd} is a List:
+ - cmd[0] must be an executable (not a "built-in"). If it is
+ in $PATH it can be called by name, without an extension: >
+ :call jobstart(['ping', 'neovim.io'])
+< If it is a full or partial path, extension is required: >
+ :call jobstart(['System32\ping.exe', 'neovim.io'])
+< - {cmd} is collapsed to a string of quoted args as expected
+ by CommandLineToArgvW https://msdn.microsoft.com/bb776391
+ unless cmd[0] is some form of "cmd.exe".
+
+ *jobstart-options*
{opts} is a dictionary with these keys:
- on_stdout: stdout event handler (function name or |Funcref|)
- on_stderr: stderr event handler (function name or |Funcref|)
- on_exit : exit event handler (function name or |Funcref|)
+ |on_stdout|: stdout event handler (function name or |Funcref|)
+ stdout_buffered : read stdout in |buffered| mode.
+ |on_stderr|: stderr event handler (function name or |Funcref|)
+ stderr_buffered : read stderr in |buffered| mode.
+ |on_exit| : exit event handler (function name or |Funcref|)
cwd : Working directory of the job; defaults to
|current-directory|.
rpc : If set, |msgpack-rpc| will be used to communicate
with the job over stdin and stdout. "on_stdout" is
then ignored, but "on_stderr" can still be used.
pty : If set, the job will be connected to a new pseudo
- terminal, and the job streams are connected to
- the master file descriptor. "on_stderr" is ignored
- as all output will be received on stdout.
+ terminal and the job streams are connected to the
+ master file descriptor. "on_stderr" is ignored,
+ "on_stdout" receives all output.
width : (pty only) Width of the terminal screen
height : (pty only) Height of the terminal screen
@@ -4876,43 +5028,36 @@ jobstart({cmd}[, {opts}]) {Nvim} *jobstart()*
detach : (non-pty only) Detach the job process from the
nvim process. The process will not get killed
when nvim exits. If the process dies before
- nvim exits, on_exit will still be invoked.
+ nvim exits, "on_exit" will still be invoked.
- {opts} is passed as |self| to the callback; the caller may
- pass arbitrary data by setting other keys.
+ {opts} is passed as |self| dictionary to the callback; the
+ caller may set other keys to pass application-specific data.
Returns:
- - The job ID on success, which is used by |jobsend()| (or
- |rpcnotify()| and |rpcrequest()| if "rpc" option was used)
- and |jobstop()|
- - 0 on invalid arguments or if the job table is full
+ - The channel ID on success
+ - 0 on invalid arguments
- -1 if {cmd}[0] is not executable.
- See |job-control| and |msgpack-rpc| for more information.
+ See |job-control|, |channels|, and |msgpack-rpc| for more information.
-jobstop({job}) {Nvim} *jobstop()*
- Stop a job created with |jobstart()| by sending a `SIGTERM`
- to the corresponding process. If the process doesn't exit
- cleanly soon, a `SIGKILL` will be sent. When the job is
- finally closed, the exit handler provided to |jobstart()| or
- |termopen()| will be run.
- See |job-control| for more information.
+jobstop({id}) *jobstop()*
+ Stop |job-id| {id} by sending SIGTERM to the job process. If
+ the process does not terminate after a timeout then SIGKILL
+ will be sent. When the job terminates its |on_exit| handler
+ (if any) will be invoked.
+ See |job-control|.
-jobwait({ids}[, {timeout}]) {Nvim} *jobwait()*
+jobwait({ids}[, {timeout}]) *jobwait()*
Wait for a set of jobs to finish. The {ids} argument is a list
- of ids for jobs that will be waited for. If passed, {timeout}
- is the maximum number of milliseconds to wait. While this
- function is executing, callbacks for jobs not in the {ids}
- list can be executed. Also, the screen wont be updated unless
- |:redraw| is invoked by one of the callbacks.
-
- Returns a list of integers with the same length as {ids}, with
- each integer representing the wait result for the
- corresponding job id. The possible values for the resulting
- integers are:
-
- * the job return code if the job exited
- * -1 if the wait timed out for the job
- * -2 if the job was interrupted
- * -3 if the job id is invalid.
+ of |job-id|s to wait for. {timeout} is the maximum number of
+ milliseconds to wait. During jobwait(), callbacks for jobs not
+ in the {ids} list may be invoked. The screen will not redraw
+ unless |:redraw| is invoked by a callback.
+
+ Returns a list of len({ids}) integers, where each integer is
+ the wait-result of the corresponding job. Each wait-result is:
+ Job exit-code, if the job exited
+ -1 if the wait timed out for the job
+ -2 if the job was interrupted
+ -3 if the |job-id| is invalid.
join({list} [, {sep}]) *join()*
Join the items in {list} together into one String.
@@ -4943,8 +5088,8 @@ json_decode({expr}) *json_decode()*
json_encode({expr}) *json_encode()*
Convert {expr} into a JSON string. Accepts
- |msgpack-special-dict| as the input. Will not convert |Funcref|s,
- mappings with non-string keys (can be created as
+ |msgpack-special-dict| as the input. Will not convert
+ |Funcref|s, mappings with non-string keys (can be created as
|msgpack-special-dict|), values with self-referencing
containers, strings which contain non-UTF-8 characters,
pseudo-UTF-8 strings which contain codepoints reserved for
@@ -5047,7 +5192,10 @@ line({expr}) The result is a Number, which is the line number of the file
< *last-position-jump*
This autocommand jumps to the last known position in a file
just after opening it, if the '" mark is set: >
- :au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g`\"" | endif
+ :au BufReadPost *
+ \ if line("'\"") > 1 && line("'\"") <= line("$") && &ft !~# 'commit'
+ \ | exe "normal! g`\""
+ \ | endif
line2byte({lnum}) *line2byte()*
Return the byte count from the start of the buffer for line
@@ -5095,6 +5243,9 @@ log10({expr}) *log10()*
:echo log10(0.01)
< -2.0
+luaeval({expr}[, {expr}])
+ Evaluate Lua expression {expr} and return its result converted
+ to Vim data structures. See |lua-luaeval| for more details.
map({expr1}, {expr2}) *map()*
{expr1} must be a |List| or a |Dictionary|.
@@ -5123,6 +5274,10 @@ map({expr1}, {expr2}) *map()*
return a:key . '-' . a:val
endfunc
call map(myDict, function('KeyValue'))
+< It is shorter when using a |lambda|: >
+ call map(myDict, {key, val -> key . '-' . val})
+< If you do not use "val" you can leave it out: >
+ call map(myDict, {key -> 'item: ' . key})
<
The operation is done in-place. If you want a |List| or
|Dictionary| to remain unmodified make a copy first: >
@@ -5135,12 +5290,12 @@ map({expr1}, {expr2}) *map()*
defined with the "abort" flag.
-maparg({name}[, {mode} [, {abbr} [, {dict}]]]) *maparg()*
+maparg({name} [, {mode} [, {abbr} [, {dict}]]]) *maparg()*
When {dict} is omitted or zero: Return the rhs of mapping
{name} in mode {mode}. The returned String has special
characters translated like in the output of the ":map" command
listing.
-
+
When there is no mapping for {name}, an empty String is
returned.
@@ -5156,6 +5311,7 @@ maparg({name}[, {mode} [, {abbr} [, {dict}]]]) *maparg()*
"s" Select
"x" Visual
"l" langmap |language-mapping|
+ "t" Terminal
"" Normal, Visual and Operator-pending
When {mode} is omitted, the modes for "" are used.
@@ -5189,7 +5345,7 @@ maparg({name}[, {mode} [, {abbr} [, {dict}]]]) *maparg()*
exe 'nnoremap <Tab> ==' . maparg('<Tab>', 'n')
-mapcheck({name}[, {mode} [, {abbr}]]) *mapcheck()*
+mapcheck({name} [, {mode} [, {abbr}]]) *mapcheck()*
Check if there is a mapping that matches with {name} in mode
{mode}. See |maparg()| for {mode} and special names in
{name}.
@@ -5221,7 +5377,7 @@ mapcheck({name}[, {mode} [, {abbr}]]) *mapcheck()*
< This avoids adding the "_vv" mapping when there already is a
mapping for "_v" or for "_vvv".
-match({expr}, {pat}[, {start}[, {count}]]) *match()*
+match({expr}, {pat} [, {start} [, {count}]]) *match()*
When {expr} is a |List| then this returns the index of the
first item where {pat} matches. Each item is used as a
String, |Lists| and |Dictionaries| are used as echoed.
@@ -5329,7 +5485,8 @@ matchadd({group}, {pattern}[, {priority}[, {id} [, {dict}]]])
available from |getmatches()|. All matches can be deleted in
one operation by |clearmatches()|.
-matchaddpos({group}, {pos}[, {priority}[, {id}[, {dict}]]]) *matchaddpos()*
+ *matchaddpos()*
+matchaddpos({group}, {pos} [, {priority} [, {id} [, {dict}]]])
Same as |matchadd()|, but requires a list of positions {pos}
instead of a pattern. This command is faster than |matchadd()|
because it does not require to handle regular expressions and
@@ -5349,7 +5506,7 @@ matchaddpos({group}, {pos}[, {priority}[, {id}[, {dict}]]]) *matchaddpos()*
be highlighted.
- A list with three numbers, e.g., [23, 11, 3]. As above, but
the third number gives the length of the highlight in bytes.
-
+
The maximum number of positions is 8.
Example: >
@@ -5382,7 +5539,7 @@ matchdelete({id}) *matchdelete()* *E802* *E803*
otherwise -1. See example for |matchadd()|. All matches can
be deleted in one operation by |clearmatches()|.
-matchend({expr}, {pat}[, {start}[, {count}]]) *matchend()*
+matchend({expr}, {pat} [, {start} [, {count}]]) *matchend()*
Same as |match()|, but return the index of first character
after the match. Example: >
:echo matchend("testing", "ing")
@@ -5401,7 +5558,7 @@ matchend({expr}, {pat}[, {start}[, {count}]]) *matchend()*
< result is "-1".
When {expr} is a |List| the result is equal to |match()|.
-matchlist({expr}, {pat}[, {start}[, {count}]]) *matchlist()*
+matchlist({expr}, {pat} [, {start} [, {count}]]) *matchlist()*
Same as |match()|, but return a |List|. The first item in the
list is the matched string, same as what matchstr() would
return. Following items are submatches, like "\1", "\2", etc.
@@ -5411,7 +5568,7 @@ matchlist({expr}, {pat}[, {start}[, {count}]]) *matchlist()*
< Results in: ['acd', 'a', '', 'c', 'd', '', '', '', '', '']
When there is no match an empty list is returned.
-matchstr({expr}, {pat}[, {start}[, {count}]]) *matchstr()*
+matchstr({expr}, {pat} [, {start} [, {count}]]) *matchstr()*
Same as |match()|, but return the matched string. Example: >
:echo matchstr("testing", "ing")
< results in "ing".
@@ -5424,7 +5581,7 @@ matchstr({expr}, {pat}[, {start}[, {count}]]) *matchstr()*
When {expr} is a |List| then the matching item is returned.
The type isn't changed, it's not necessarily a String.
-matchstrpos({expr}, {pat}[, {start}[, {count}]]) *matchstrpos()*
+matchstrpos({expr}, {pat} [, {start} [, {count}]]) *matchstrpos()*
Same as |matchstr()|, but return the matched string, the start
position and the end position of the match. Example: >
:echo matchstrpos("testing", "ing")
@@ -5443,16 +5600,65 @@ matchstrpos({expr}, {pat}[, {start}[, {count}]]) *matchstrpos()*
The type isn't changed, it's not necessarily a String.
*max()*
-max({list}) Return the maximum value of all items in {list}.
- If {list} is not a list or one of the items in {list} cannot
- be used as a Number this results in an error.
- An empty |List| results in zero.
+max({expr}) Return the maximum value of all items in {expr}.
+ {expr} can be a list or a dictionary. For a dictionary,
+ it returns the maximum of all values in the dictionary.
+ If {expr} is neither a list nor a dictionary, or one of the
+ items in {expr} cannot be used as a Number this results in
+ an error. An empty |List| or |Dictionary| results in zero.
+
+menu_get({path}, {modes}) *menu_get()*
+ Returns a |List| of |Dictionaries| describing |menus| (defined
+ by |:menu|, |:amenu|, etc.).
+ {path} limits the result to a subtree of the menu hierarchy
+ (empty string matches all menus). E.g. to get items in the
+ "File" menu subtree: >
+ :echo menu_get('File','')
+<
+ {modes} is a string of zero or more modes (see |maparg()| or
+ |creating-menus| for the list of modes). "a" means "all".
+
+ For example: >
+ nnoremenu &Test.Test inormal
+ inoremenu Test.Test insert
+ vnoremenu Test.Test x
+ echo menu_get("")
+<
+ returns something like this:
+>
+ [ {
+ "hidden": 0,
+ "name": "Test",
+ "priority": 500,
+ "shortcut": 84,
+ "submenus": [ {
+ "hidden": 0,
+ "mappings": {
+ i": {
+ "enabled": 1,
+ "noremap": 1,
+ "rhs": "insert",
+ "sid": 1,
+ "silent": 0
+ },
+ n": { ... },
+ s": { ... },
+ v": { ... }
+ },
+ "name": "Test",
+ "priority": 500,
+ "shortcut": 0
+ } ]
+ } ]
+<
*min()*
-min({list}) Return the minimum value of all items in {list}.
- If {list} is not a list or one of the items in {list} cannot
- be used as a Number this results in an error.
- An empty |List| results in zero.
+min({expr}) Return the minimum value of all items in {expr}.
+ {expr} can be a list or a dictionary. For a dictionary,
+ it returns the minimum of all values in the dictionary.
+ If {expr} is neither a list nor a dictionary, or one of the
+ items in {expr} cannot be used as a Number this results in
+ an error. An empty |List| or |Dictionary| results in zero.
*mkdir()* *E739*
mkdir({name} [, {path} [, {prot}]])
@@ -5487,16 +5693,20 @@ mode([expr]) Return a string that indicates the current mode.
S Select by line
CTRL-S Select blockwise
i Insert
+ ic Insert mode completion |compl-generic|
+ ix Insert mode |i_CTRL-X| completion
R Replace |R|
+ Rc Replace mode completion |compl-generic|
Rv Virtual Replace |gR|
- t Terminal {Nvim}
- c Command-line
+ Rx Replace mode |i_CTRL-X| completion
+ c Command-line editing
cv Vim Ex mode |gQ|
ce Normal Ex mode |Q|
r Hit-enter prompt
rm The -- more -- prompt
r? A |:confirm| query of some sort
! Shell or external command is executing
+ t Terminal mode: keys go to the job
This is useful in the 'statusline' option or when used
with |remote_expr()| In most other places it always returns
"c" or "n".
@@ -5600,7 +5810,7 @@ nextnonblank({lnum}) *nextnonblank()*
below it, zero is returned.
See also |prevnonblank()|.
-nr2char({expr}[, {utf8}]) *nr2char()*
+nr2char({expr} [, {utf8}]) *nr2char()*
Return a string with a single character, which has the number
value {expr}. Examples: >
nr2char(64) returns "@"
@@ -5638,7 +5848,7 @@ pathshorten({expr}) *pathshorten()*
components in the path are reduced to single letters. Leading
'~' and '.' characters are kept. Example: >
:echo pathshorten('~/.config/nvim/autoload/file1.vim')
-< ~/.v/a/file1.vim ~
+< ~/.c/n/a/file1.vim ~
It doesn't matter if the path exists or not.
pow({x}, {y}) *pow()*
@@ -5683,11 +5893,12 @@ printf({fmt}, {expr1} ...) *printf()*
%04x hex number padded with zeros to at least 4 characters
%X hex number using upper case letters
%o octal number
- %f floating point number in the form 123.456
- %e floating point number in the form 1.234e3
- %E floating point number in the form 1.234E3
+ %f floating point number as 12.23, inf, -inf or nan
+ %F floating point number as 12.23, INF, -INF or NAN
+ %e floating point number as 1.23e3, inf, -inf or nan
+ %E floating point number as 1.23E3, INF, -INF or NAN
%g floating point number, as %f or %e depending on value
- %G floating point number, as %f or %E depending on value
+ %G floating point number, as %F or %E depending on value
%% the % character itself
%p representation of the pointer to the container
@@ -5798,6 +6009,9 @@ printf({fmt}, {expr1} ...) *printf()*
s The text of the String argument is used. If a
precision is specified, no more bytes than the number
specified are used.
+ If the argument is not a String type, it is
+ automatically converted to text with the same format
+ as ":echo".
*printf-S*
S The text of the String argument is used. If a
precision is specified, no more display cells than the
@@ -5805,13 +6019,14 @@ printf({fmt}, {expr1} ...) *printf()*
feature works just like 's'.
*printf-f* *E807*
- f F The Float argument is converted into a string of the
+ f F The Float argument is converted into a string of the
form 123.456. The precision specifies the number of
digits after the decimal point. When the precision is
zero the decimal point is omitted. When the precision
is not specified 6 is used. A really big number
- (out of range or dividing by zero) results in "inf".
- "0.0 / 0.0" results in "nan".
+ (out of range or dividing by zero) results in "inf"
+ or "-inf" with %f (INF or -INF with %F).
+ "0.0 / 0.0" results in "nan" with %f (NAN with %F).
Example: >
echo printf("%.2f", 12.115)
< 12.12
@@ -5870,10 +6085,10 @@ py3eval({expr}) *py3eval()*
pyeval({expr}) *pyeval()*
Evaluate Python expression {expr} and return its result
converted to Vim data structures.
- Numbers and strings are returned as they are (strings are
+ Numbers and strings are returned as they are (strings are
copied though).
Lists are represented as Vim |List| type.
- Dictionaries are represented as Vim |Dictionary| type,
+ Dictionaries are represented as Vim |Dictionary| type,
non-string keys result in error.
{only available when compiled with the |+python| feature}
@@ -5899,9 +6114,9 @@ range({expr} [, {max} [, {stride}]]) *range()*
*readfile()*
readfile({fname} [, {binary} [, {max}]])
Read file {fname} and return a |List|, each line of the file
- as an item. Lines broken at NL characters. Macintosh files
- separated with CR will result in a single long line (unless a
- NL appears somewhere).
+ as an item. Lines are broken at NL characters. Macintosh
+ files separated with CR will result in a single long line
+ (unless a NL appears somewhere).
All NUL characters are replaced with a NL character.
When {binary} contains "b" binary mode is used:
- When the last line ends in a NL an extra empty list item is
@@ -5984,6 +6199,12 @@ remote_expr({server}, {string} [, {idvar}])
{only available when compiled with the |+clientserver| feature}
Note: Any errors will cause a local error message to be issued
and the result will be the empty string.
+
+ Variables will be evaluated in the global namespace,
+ independent of a function currently being active. Except
+ when in debug mode, then local function variables and
+ arguments can be evaluated.
+
Examples: >
:echo remote_expr("gvim", "2+2")
:echo remote_expr("gvim1", "b:current_syntax")
@@ -6135,20 +6356,18 @@ rpcstart({prog}[, {argv}]) {Nvim} *rpcstart()*
:let id = jobstart(['prog', 'arg1', 'arg2'], {'rpc': v:true})
rpcstop({channel}) {Nvim} *rpcstop()*
- Closes an |RPC| {channel}. If the channel is a job
- started with |jobstart()| the job is killed.
- It is better to use |jobstop()| in this case, or use
- |jobclose|(id, "rpc") to only close the channel without
- killing the job.
- Closes the socket connection if the channel was opened by
- connecting to |v:servername|.
-
-screenattr(row, col) *screenattr()*
- Like screenchar(), but return the attribute. This is a rather
+ Deprecated. This function was used to stop a job with |rpc|
+ channel, and additionally closed rpc sockets. Instead use
+ |jobstop()| to stop any job, and |chanclose|(id, "rpc") to close
+ rpc communication without stopping the job. Use |chanclose|(id)
+ to close any socket.
+
+screenattr({row}, {col}) *screenattr()*
+ Like |screenchar()|, but return the attribute. This is a rather
arbitrary number that can only be used to compare to the
attribute at other positions.
-screenchar(row, col) *screenchar()*
+screenchar({row}, {col}) *screenchar()*
The result is a Number, which is the character at position
[row, col] on the screen. This works for every possible
screen position, also status lines, window separators and the
@@ -6204,7 +6423,7 @@ search({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *search()*
flag.
'ignorecase', 'smartcase' and 'magic' are used.
-
+
When the 'z' flag is not given, searching always starts in
column zero and then matches before the cursor are skipped.
When the 'c' flag is present in 'cpo' the next search starts
@@ -6419,11 +6638,32 @@ serverlist() *serverlist()*
nvim --cmd "echo serverlist()" --cmd "q"
<
serverstart([{address}]) *serverstart()*
- Opens a named pipe or TCP socket at {address} for clients to
- connect to and returns {address}. If no address is given, it
- is equivalent to: >
+ Opens a socket or named pipe at {address} and listens for
+ |RPC| messages. Clients can send |API| commands to the address
+ to control Nvim. Returns the address string.
+
+ If {address} does not contain a colon ":" it is interpreted as
+ a named pipe or Unix domain socket path.
+
+ Example: >
+ if has('win32')
+ call serverstart('\\.\pipe\nvim-pipe-1234')
+ else
+ call serverstart('nvim.sock')
+ endif
+<
+ If {address} contains a colon ":" it is interpreted as a TCP
+ address where the last ":" separates the host and port.
+ Assigns a random port if it is empty or 0. Supports IPv4/IPv6.
+
+ Example: >
+ :call serverstart('::1:12345')
+<
+ If no address is given, it is equivalent to: >
:call serverstart(tempname())
+
< |$NVIM_LISTEN_ADDRESS| is set to {address} if not already set.
+
*--servername*
The Vim command-line option `--servername` can be imitated: >
nvim --cmd "let g:server_addr = serverstart('foo')"
@@ -6520,7 +6760,7 @@ setline({lnum}, {text}) *setline()*
setloclist({nr}, {list} [, {action}[, {what}]]) *setloclist()*
Create or replace or add to the location list for window {nr}.
- {nr} can be the window number or the window ID.
+ {nr} can be the window number or the |window-ID|.
When {nr} is zero the current window is used.
For a location list window, the displayed location list is
@@ -6651,13 +6891,13 @@ setqflist({list} [, {action}[, {what}]]) *setqflist()*
This function can be used to create a quickfix list
independent of the 'errorformat' setting. Use a command like
- ":cc 1" to jump to the first position.
+ `:cc 1` to jump to the first position.
*setreg()*
setreg({regname}, {value} [, {options}])
Set the register {regname} to {value}.
- {value} may be any value returned by |getreg()|, including
+ {value} may be any value returned by |getreg()|, including
a |List|.
If {options} contains "a" or {regname} is upper case,
then the value is appended.
@@ -6669,16 +6909,18 @@ setreg({regname}, {value} [, {options}])
used as the width of the selection - if it is not specified
then the width of the block is set to the number of characters
in the longest line (counting a <Tab> as 1 character).
+ If {options} contains "u" or '"', then the unnamed register is
+ set to point to register {regname}.
If {options} contains no register settings, then the default
- is to use character mode unless {value} ends in a <NL> for
- string {value} and linewise mode for list {value}. Blockwise
+ is to use character mode unless {value} ends in a <NL> for
+ string {value} and linewise mode for list {value}. Blockwise
mode is never selected automatically.
Returns zero for success, non-zero for failure.
*E883*
- Note: you may not use |List| containing more than one item to
- set search and expression registers. Lists containing no
+ Note: you may not use |List| containing more than one item to
+ set search and expression registers. Lists containing no
items act like empty strings.
Examples: >
@@ -6712,7 +6954,7 @@ settabwinvar({tabnr}, {winnr}, {varname}, {val}) *settabwinvar()*
{val}.
Tabs are numbered starting with one. For the current tabpage
use |setwinvar()|.
- {winnr} can be the window number or the window ID.
+ {winnr} can be the window number or the |window-ID|.
When {winnr} is zero the current window is used.
This also works for a global or local buffer option, but it
doesn't work for a global or local buffer variable.
@@ -6813,10 +7055,30 @@ sinh({expr}) *sinh()*
:echo sinh(-0.9)
< -1.026517
+sockconnect({mode}, {address}, {opts}) *sockconnect()*
+ Connect a socket to an address. If {mode} is "pipe" then
+ {address} should be the path of a named pipe. If {mode} is
+ "tcp" then {address} should be of the form "host:port" where
+ the host should be an ip adderess or host name, and port the
+ port number.
+
+ Returns a |channel| ID. Close the socket with |chanclose()|.
+ Use |chansend()| to send data over a bytes socket, and
+ |rpcrequest()| and |rpcnotify()| to communicate with a RPC
+ socket.
+
+ {opts} is a dictionary with these keys:
+ |on_data| : callback invoked when data was read from socket
+ data_buffered : read data from socket in |buffered| mode.
+ rpc : If set, |msgpack-rpc| will be used to communicate
+ over the socket.
+ Returns:
+ - The channel ID on success (greater than zero)
+ - 0 on invalid arguments or connection failure.
sort({list} [, {func} [, {dict}]]) *sort()* *E702*
Sort the items in {list} in-place. Returns {list}.
-
+
If you want a list to remain unmodified make a copy first: >
:let sortedlist = sort(copy(mylist))
@@ -6827,7 +7089,7 @@ sort({list} [, {func} [, {dict}]]) *sort()* *E702*
When {func} is given and it is '1' or 'i' then case is
ignored.
-
+
When {func} is given and it is 'n' then all items will be
sorted numerical (Implementation detail: This uses the
strtod() function to parse numbers, Strings, Lists, Dicts and
@@ -6963,6 +7225,27 @@ sqrt({expr}) *sqrt()*
"nan" may be different, it depends on system libraries.
+stdioopen({opts}) *stdioopen()*
+ In a nvim launched with the |--headless| option, this opens
+ stdin and stdout as a |channel|. This function can only be
+ invoked once per instance. See |channel-stdio| for more
+ information and examples. Note that stderr is not handled by
+ this function, see |v:stderr|.
+
+ Returns a |channel| ID. Close the stdio descriptors with |chanclose()|.
+ Use |chansend()| to send data to stdout, and
+ |rpcrequest()| and |rpcnotify()| to communicate over RPC.
+
+ {opts} is a dictionary with these keys:
+ |on_stdin| : callback invoked when stdin is written to.
+ stdin_buffered : read stdin in |buffered| mode.
+ rpc : If set, |msgpack-rpc| will be used to communicate
+ over stdio
+ Returns:
+ - The channel ID on success (this is always 1)
+ - 0 on invalid arguments
+
+
str2float({expr}) *str2float()*
Convert String {expr} to a Float. This mostly works the same
as when using a floating point number in an expression, see
@@ -6997,7 +7280,7 @@ strchars({expr} [, {skipcc}]) *strchars()*
counted separately.
When {skipcc} set to 1, Composing characters are ignored.
Also see |strlen()|, |strdisplaywidth()| and |strwidth()|.
-
+
{skipcc} is only available after 7.4.755. For backward
compatibility, you can define a wrapper function: >
if has("patch-7.4.755")
@@ -7014,15 +7297,15 @@ strchars({expr} [, {skipcc}]) *strchars()*
endfunction
endif
<
-strcharpart({src}, {start}[, {len}]) *strcharpart()*
+strcharpart({src}, {start} [, {len}]) *strcharpart()*
Like |strpart()| but using character index and length instead
of byte index and length.
When a character index is used where a character does not
- exist it is assumed to be one byte. For example: >
+ exist it is assumed to be one character. For example: >
strcharpart('abc', -1, 2)
< results in 'a'.
-strdisplaywidth({expr}[, {col}]) *strdisplaywidth()*
+strdisplaywidth({expr} [, {col}]) *strdisplaywidth()*
The result is a Number, which is the number of display cells
String {expr} occupies on the screen when it starts at {col}.
When {col} is omitted zero is used. Otherwise it is the
@@ -7111,7 +7394,7 @@ strlen({expr}) The result is a Number, which is the length of the String
|strchars()|.
Also see |len()|, |strdisplaywidth()| and |strwidth()|.
-strpart({src}, {start}[, {len}]) *strpart()*
+strpart({src}, {start} [, {len}]) *strpart()*
The result is a String, which is part of {src}, starting from
byte {start}, with the byte length {len}.
To count characters instead of bytes use |strcharpart()|.
@@ -7163,7 +7446,7 @@ strwidth({expr}) *strwidth()*
Ambiguous, this function's return value depends on 'ambiwidth'.
Also see |strlen()|, |strdisplaywidth()| and |strchars()|.
-submatch({nr}[, {list}]) *submatch()*
+submatch({nr} [, {list}]) *submatch()* *E935*
Only for an expression in a |:substitute| command or
substitute() function.
Returns the {nr}'th submatch of the matched text. When {nr}
@@ -7172,14 +7455,17 @@ submatch({nr}[, {list}]) *submatch()*
multi-line match or a NUL character in the text.
Also see |sub-replace-expression|.
- If {list} is present and non-zero then submatch() returns
- a list of strings, similar to |getline()| with two arguments.
+ If {list} is present and non-zero then submatch() returns
+ a list of strings, similar to |getline()| with two arguments.
NL characters in the text represent NUL characters in the
text.
Only returns more than one item for |:substitute|, inside
|substitute()| this list will always contain one or zero
items, since there are no real line breaks.
+ When substitute() is used recursively only the submatches in
+ the current (deepest) call can be obtained.
+
Example: >
:s/\d\+/\=submatch(0) + 1/
< This finds the first number in the line and adds one to it.
@@ -7190,7 +7476,7 @@ substitute({expr}, {pat}, {sub}, {flags}) *substitute()*
the first match of {pat} is replaced with {sub}.
When {flags} is "g", all matches of {pat} in {expr} are
replaced. Otherwise {flags} should be "".
-
+
This works like the ":substitute" command (without any flags).
But the matching with {pat} is always done like the 'magic'
option is set and 'cpoptions' is empty (to make scripts
@@ -7378,16 +7664,16 @@ systemlist({cmd} [, {input} [, {keepempty}]]) *systemlist()*
output separated by NL) with NULs transformed into NLs. Output
is the same as |readfile()| will output with {binary} argument
set to "b", except that a final newline is not preserved,
- unless {keepempty} is present and it's non-zero.
+ unless {keepempty} is non-zero.
+ Note that on MS-Windows you may get trailing CR characters.
- Returns an empty string on error, so be careful not to run
- into |E706|.
+ Returns an empty string on error.
tabpagebuflist([{arg}]) *tabpagebuflist()*
The result is a |List|, where each item is the number of the
buffer associated with each window in the current tab page.
- {arg} specifies the number of tab page to be used. When
+ {arg} specifies the number of the tab page to be used. When
omitted the current tab page is used.
When {arg} is invalid the number zero is returned.
To get a list of all buffers in all tabs use this: >
@@ -7424,8 +7710,13 @@ tagfiles() Returns a |List| with the file names used to search for tags
for the current buffer. This is the 'tags' option expanded.
-taglist({expr}) *taglist()*
+taglist({expr} [, {filename}]) *taglist()*
Returns a list of tags matching the regular expression {expr}.
+
+ If {filename} is passed it is used to prioritize the results
+ in the same way that |:tselect| does. See |tag-priority|.
+ {filename} should be the full path of the file.
+
Each list item is a dictionary with at least the following
entries:
name Name of the tag.
@@ -7448,7 +7739,7 @@ taglist({expr}) *taglist()*
may appear, they give the name of the entity the tag is
contained in.
- The ex-command 'cmd' can be either an ex search pattern, a
+ The ex-command "cmd" can be either an ex search pattern, a
line number or a line number followed by a byte number.
If there are no matching tags, then an empty list is returned.
@@ -7483,7 +7774,7 @@ termopen({cmd}[, {opts}]) {Nvim} *termopen()*
and `$TERM` is set to "xterm-256color".
Returns the same values as |jobstart()|.
- See |terminal-emulator| for more information.
+ See |terminal| for more information.
test_garbagecollect_now() *test_garbagecollect_now()*
Like garbagecollect(), but executed right away. This must
@@ -7513,7 +7804,36 @@ tanh({expr}) *tanh()*
< -0.761594
- *timer_start()*
+ *timer_info()*
+timer_info([{id}])
+ Return a list with information about timers.
+ When {id} is given only information about this timer is
+ returned. When timer {id} does not exist an empty list is
+ returned.
+ When {id} is omitted information about all timers is returned.
+
+ For each timer the information is stored in a Dictionary with
+ these items:
+ "id" the timer ID
+ "time" time the timer was started with
+ "repeat" number of times the timer will still fire;
+ -1 means forever
+ "callback" the callback
+
+timer_pause({timer}, {paused}) *timer_pause()*
+ Pause or unpause a timer. A paused timer does not invoke its
+ callback when its time expires. Unpausing a timer may cause
+ the callback to be invoked almost immediately if enough time
+ has passed.
+
+ Pausing a timer is useful to avoid the callback to be called
+ for a short time.
+
+ If {paused} evaluates to a non-zero Number or a non-empty
+ String, then the timer is paused, otherwise it is unpaused.
+ See |non-zero-arg|.
+
+ *timer_start()* *timer* *timers*
timer_start({time}, {callback} [, {options}])
Create a timer and return the timer ID.
@@ -7522,13 +7842,14 @@ timer_start({time}, {callback} [, {options}])
busy or Vim is not waiting for input the time will be longer.
{callback} is the function to call. It can be the name of a
- function or a Funcref. It is called with one argument, which
+ function or a |Funcref|. It is called with one argument, which
is the timer ID. The callback is only invoked when Vim is
waiting for input.
{options} is a dictionary. Supported entries:
"repeat" Number of times to repeat calling the
- callback. -1 means forever.
+ callback. -1 means forever. When not present
+ the callback will be called once.
Example: >
func MyHandler(timer)
@@ -7538,12 +7859,16 @@ timer_start({time}, {callback} [, {options}])
\ {'repeat': 3})
< This will invoke MyHandler() three times at 500 msec
intervals.
- {only available when compiled with the |+timers| feature}
timer_stop({timer}) *timer_stop()*
Stop a timer. The timer callback will no longer be invoked.
{timer} is an ID returned by timer_start(), thus it must be a
- Number.
+ Number. If {timer} does not exist there is no error.
+
+timer_stopall() *timer_stopall()*
+ Stop all timers. The timer callbacks will no longer be
+ invoked. Useful if some timers is misbehaving. If there are
+ no timers there is no error.
tolower({expr}) *tolower()*
The result is a copy of the String given, with all uppercase
@@ -7633,7 +7958,7 @@ undotree() *undotree()*
"save_last" Number of the last file write. Zero when no
write yet.
"save_cur" Number of the current position in the undo
- tree.
+ tree.
"synced" Non-zero when the last undo block was synced.
This happens when waiting from input from the
user. See |undo-blocks|.
@@ -7745,11 +8070,11 @@ wildmenumode() *wildmenumode()*
win_findbuf({bufnr}) *win_findbuf()*
- Returns a list with window IDs for windows that contain buffer
- {bufnr}. When there is none the list is empty.
+ Returns a list with |window-ID|s for windows that contain
+ buffer {bufnr}. When there is none the list is empty.
win_getid([{win} [, {tab}]]) *win_getid()*
- Get the window ID for the specified window.
+ Get the |window-ID| for the specified window.
When {win} is missing use the current window.
With {win} this is the window number. The top window has
number 1.
@@ -7774,7 +8099,7 @@ win_id2win({expr}) *win_id2win()*
*winbufnr()*
winbufnr({nr}) The result is a Number, which is the number of the buffer
associated with window {nr}. {nr} can be the window number or
- the window ID.
+ the |window-ID|.
When {nr} is zero, the number of the buffer in the current
window is returned.
When window {nr} doesn't exist, -1 is returned.
@@ -7788,10 +8113,11 @@ wincol() The result is a Number, which is the virtual column of the
winheight({nr}) *winheight()*
The result is a Number, which is the height of window {nr}.
- {nr} can be the window number or the window ID.
+ {nr} can be the window number or the |window-ID|.
When {nr} is zero, the height of the current window is
returned. When window {nr} doesn't exist, -1 is returned.
An existing window always has a height of zero or more.
+ This excludes any window toolbar line.
Examples: >
:echo "The current window has " . winheight(0) . " lines."
<
@@ -7814,7 +8140,7 @@ winnr([{arg}]) The result is a Number, which is the number of the current
is returned.
The number can be used with |CTRL-W_w| and ":wincmd w"
|:wincmd|.
- Also see |tabpagewinnr()|.
+ Also see |tabpagewinnr()| and |win_getid()|.
*winrestcmd()*
winrestcmd() Returns a sequence of |:resize| commands that should restore
@@ -7868,7 +8194,7 @@ winsaveview() Returns a |Dictionary| that contains information to restore
winwidth({nr}) *winwidth()*
The result is a Number, which is the width of window {nr}.
- {nr} can be the window number or the window ID.
+ {nr} can be the window number or the |window-ID|.
When {nr} is zero, the width of the current window is
returned. When window {nr} doesn't exist, -1 is returned.
An existing window always has a width of zero or more.
@@ -7877,7 +8203,10 @@ winwidth({nr}) *winwidth()*
:if winwidth(0) <= 50
: exe "normal 50\<C-W>|"
:endif
-<
+< For getting the terminal or screen size, see the 'columns'
+ option.
+
+
wordcount() *wordcount()*
The result is a dictionary of byte/chars/word statistics for
the current buffer. This is the same info as provided by
@@ -7913,6 +8242,12 @@ writefile({list}, {fname} [, {flags}])
appended to the file: >
:call writefile(["foo"], "event.log", "a")
:call writefile(["bar"], "event.log", "a")
+<
+ When {flags} contains "S" fsync() call is not used, with "s"
+ it is used, 'fsync' option applies by default. No fsync()
+ means that writefile() will finish faster, but writes may be
+ left in OS buffers and not yet written to disk. Such changes
+ will disappear if system crashes before OS does writing.
All NL characters are replaced with a NUL character.
Inserting CR characters needs to be done before passing {list}
@@ -7942,11 +8277,11 @@ There are four types of features:
:if has("cindent")
2. Features that are only supported when certain conditions have been met.
Example: >
- :if has("gui_running")
+ :if has("win32")
< *has-patch*
-3. {Nvim} version. The "nvim-1.2.3" feature means that the Nvim version is
- 1.2.3 or later. Example: >
- :if has("nvim-1.2.3")
+3. Nvim version. The "nvim-0.2.1" feature means that the Nvim version is
+ 0.2.1 or later. Example: >
+ :if has("nvim-0.2.1")
<
4. Included patches. The "patch123" feature means that patch 123 has been
included. Note that this form does not check the version of Vim, you need
@@ -7977,17 +8312,14 @@ browse Compiled with |:browse| support, and browse() will
browsefilter Compiled with support for |browsefilter|.
byte_offset Compiled with support for 'o' in 'statusline'
cindent Compiled with 'cindent' support.
-clientserver Compiled with remote invocation support |clientserver|.
clipboard Compiled with 'clipboard' support.
cmdline_compl Compiled with |cmdline-completion| support.
cmdline_hist Compiled with |cmdline-history| support.
cmdline_info Compiled with 'showcmd' and 'ruler' support.
comments Compiled with |'comments'| support.
-compatible Compiled to be very Vi compatible.
cscope Compiled with |cscope| support.
debug Compiled with "DEBUG" defined.
dialog_con Compiled with console dialog support.
-dialog_gui Compiled with GUI dialog support.
digraphs Compiled with support for digraphs.
eval Compiled with expression evaluation support. Always
true, of course!
@@ -8005,9 +8337,6 @@ fname_case Case in file names matters (for Windows this is not
present).
folding Compiled with |folding| support.
gettext Compiled with message translation |multi-lang|
-gui Compiled with GUI enabled.
-gui_running Vim is running in the GUI, or it will start soon.
-gui_win32 Compiled with MS Windows Win32 GUI.
iconv Can use iconv() for conversion.
insert_expand Compiled with support for CTRL-X expansion commands in
Insert mode.
@@ -8022,8 +8351,7 @@ lispindent Compiled with support for lisp indenting.
listcmds Compiled with commands for the buffer list |:files|
and the argument list |arglist|.
localmap Compiled with local mappings and abbr. |:map-local|
-mac Macintosh version of Vim.
-macunix Macintosh version of Vim, using Unix files (OS-X).
+mac macOS version of Nvim.
menu Compiled with support for |:menu|.
mksession Compiled with support for |:mksession|.
modify_fname Compiled with file name modifiers. |filename-modifiers|
@@ -8031,17 +8359,16 @@ mouse Compiled with support mouse.
mouseshape Compiled with support for 'mouseshape'.
multi_byte Compiled with support for 'encoding'
multi_byte_encoding 'encoding' is set to a multi-byte encoding.
-multi_byte_ime Compiled with support for IME input method.
multi_lang Compiled with support for multiple languages.
+num64 Compiled with 64-bit |Number| support.
nvim This is Nvim. |has-patch|
-ole Compiled with OLE automation support for Win32.
path_extra Compiled with up/downwards search in 'path' and 'tags'
persistent_undo Compiled with support for persistent undo history.
postscript Compiled with PostScript file printing.
printer Compiled with |:hardcopy| support.
profile Compiled with |:profile| support.
-python Compiled with Python 2.x interface. |has-python|
-python3 Compiled with Python 3.x interface. |has-python|
+python Legacy Vim Python 2.x API is available. |has-python|
+python3 Legacy Vim Python 3.x API is available. |has-python|
quickfix Compiled with |quickfix| support.
reltime Compiled with |reltime()| support.
rightleft Compiled with 'rightleft' support.
@@ -8064,15 +8391,14 @@ tag_old_static Compiled with support for old static tags
|tag-old-static|.
tag_any_white Compiled with support for any white characters in tags
files |tag-any-white|.
-terminfo Compiled with terminfo instead of termcap.
termresponse Compiled with support for |t_RV| and |v:termresponse|.
textobjects Compiled with support for |text-objects|.
-tgetent Compiled with tgetent support, able to use a termcap
- or terminfo file.
timers Compiled with |timer_start()| support.
title Compiled with window title support |'title'|.
-toolbar Compiled with support for |gui-toolbar|.
+ttyin input is a terminal (tty)
+ttyout output is a terminal (tty)
unix Unix version of Vim.
+unnamedplus Compiled with support for "unnamedplus" in 'clipboard'
user_commands User-defined commands.
vertsplit Compiled with vertically split windows |:vsplit|.
vim_starting True while initial source'ing takes place. |startup|
@@ -8085,17 +8411,9 @@ vreplace Compiled with |gR| and |gr| commands.
wildignore Compiled with 'wildignore' option.
wildmenu Compiled with 'wildmenu' option.
win32 Windows version of Vim (32 or 64 bit).
-win32unix Windows version of Vim, using Unix files (Cygwin).
-win64 Windows version of Vim (64 bit).
winaltkeys Compiled with 'winaltkeys' option.
windows Compiled with support for more than one window.
writebackup Compiled with 'writebackup' default on.
-xfontset Compiled with X fontset support |xfontset|.
-xim Compiled with X input method support |xim|.
-xpm Compiled with pixmap support.
-xpm_w32 Compiled with pixmap support for Win32. (Only for
- backward compatibility. Use "xpm" instead.)
-x11 Compiled with X11 support.
*string-match*
Matching a pattern in a String
@@ -8166,13 +8484,16 @@ See |:verbose-cmd| for more information.
*E124* *E125* *E853* *E884*
:fu[nction][!] {name}([arguments]) [range] [abort] [dict] [closure]
- Define a new function by the name {name}. The name
- must be made of alphanumeric characters and '_', and
- must start with a capital or "s:" (see above). Note
- that using "b:" or "g:" is not allowed. (since patch
- 7.4.260 E884 is given if the function name has a colon
- in the name, e.g. for "foo:bar()". Before that patch
- no error was given).
+ Define a new function by the name {name}. The body of
+ the function follows in the next lines, until the
+ matching |:endfunction|.
+
+ The name must be made of alphanumeric characters and
+ '_', and must start with a capital or "s:" (see
+ above). Note that using "b:" or "g:" is not allowed.
+ (since patch 7.4.260 E884 is given if the function
+ name has a colon in the name, e.g. for "foo:bar()".
+ Before that patch no error was given).
{name} can also be a |Dictionary| entry that is a
|Funcref|: >
@@ -8220,7 +8541,7 @@ See |:verbose-cmd| for more information.
: let x += 1
: return x
: endfunction
- : return function('Bar')
+ : return funcref('Bar')
:endfunction
:let F = Foo()
@@ -8287,9 +8608,10 @@ to the number of named arguments. When using "...", the number of arguments
may be larger.
It is also possible to define a function without any arguments. You must
-still supply the () then. The body of the function follows in the next lines,
-until the matching |:endfunction|. It is allowed to define another function
-inside a function body.
+still supply the () then.
+
+It is allowed to define another function inside a function
+body.
*local-variables*
Inside a function local variables can be used. These will disappear when the
@@ -8567,6 +8889,11 @@ This does NOT work: >
value and the global value are changed.
Example: >
:let &path = &path . ',/usr/local/include'
+< This also works for terminal codes in the form t_xx.
+ But only for alphanumerical names. Example: >
+ :let &t_k1 = "\<Esc>[234;"
+< When the code does not exist yet it will be created as
+ a terminal key code, there is no error.
:let &{option-name} .= {expr1}
For a string option: Append {expr1} to the value.
@@ -10139,7 +10466,7 @@ code can be used: >
redir => scriptnames_output
silent scriptnames
redir END
-
+
" Split the output into lines and parse each line. Add an entry to the
" "scripts" dictionary.
let scripts = {}
@@ -10176,6 +10503,22 @@ missing: >
: echo "You will _never_ see this message"
:endif
+To execute a command only when the |+eval| feature is disabled requires a trick,
+as this example shows: >
+ if 1
+ nnoremap : :"
+ endif
+ normal :set history=111<CR>
+ if 1
+ nunmap :
+ endif
+
+The "<CR>" here is a real CR character, type CTRL-V Enter to get it.
+
+When the |+eval| feature is available the ":" is remapped to add a double
+quote, which has the effect of commenting-out the command. without the
+|+eval| feature the nnoremap command is skipped and the command is executed.
+
==============================================================================
11. The sandbox *eval-sandbox* *sandbox* *E48*
diff --git a/runtime/doc/farsi.txt b/runtime/doc/farsi.txt
index b85c0a357c..a824c469b0 100644
--- a/runtime/doc/farsi.txt
+++ b/runtime/doc/farsi.txt
@@ -1,4 +1,4 @@
-*farsi.txt* For Vim version 7.4. Last change: 2010 Aug 07
+*farsi.txt* Nvim
VIM REFERENCE MANUAL by Mortaza Ghassab Shiran
diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt
index d15815191e..78402b47fe 100644
--- a/runtime/doc/filetype.txt
+++ b/runtime/doc/filetype.txt
@@ -1,4 +1,4 @@
-*filetype.txt* For Vim version 7.4. Last change: 2016 Jun 20
+*filetype.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -6,12 +6,10 @@
Filetypes *filetype* *file-type*
-1. Filetypes |filetypes|
-2. Filetype plugin |filetype-plugins|
-3. Docs for the default filetype plugins. |ftplugin-docs|
-
Also see |autocmd.txt|.
+ Type |gO| to see the table of contents.
+
==============================================================================
1. Filetypes *filetypes* *file-types*
@@ -34,7 +32,7 @@ Detail: The ":filetype on" command will load one of these files:
BufNewFile and BufRead events. If the file type is not found by the
name, the file $VIMRUNTIME/scripts.vim is used to detect it from the
contents of the file.
- When the GUI is running or will start soon, the menu.vim script is
+ When the GUI is running or will start soon, the |menu.vim| script is
also sourced. See |'go-M'| about avoiding that.
To add your own file types, see |new-filetype| below. To search for help on a
@@ -311,12 +309,12 @@ define yourself. There are a few ways to avoid this:
You need to define your own mapping before the plugin is loaded (before
editing a file of that type). The plugin will then skip installing the
default mapping.
-
+ *no_mail_maps*
3. Disable defining mappings for a specific filetype by setting a variable,
which contains the name of the filetype. For the "mail" filetype this
would be: >
:let no_mail_maps = 1
-
+< *no_plugin_maps*
4. Disable defining mappings for all filetypes by setting a variable: >
:let no_plugin_maps = 1
<
@@ -542,6 +540,7 @@ K or CTRL-] Jump to the manpage for the <cWORD> under the
cursor. Takes a count for the section.
CTRL-T Jump back to the location that the manpage was
opened from.
+gO Show the manpage outline. |gO|
q :quit if invoked as $MANPAGER, otherwise :close.
Variables:
@@ -565,6 +564,17 @@ These maps can be disabled with >
:let g:no_pdf_maps = 1
<
+PYTHON *ft-python-plugin* *PEP8*
+
+By default the following options are set, in accordance with PEP8: >
+
+ setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
+
+To disable this behaviour, set the following variable in your vimrc: >
+
+ let g:python_recommended_style = 0
+
+
RPM SPEC *ft-spec-plugin*
Since the text for this plugin is rather long it has been put in a separate
@@ -714,6 +724,12 @@ Format description:
not recognized here as well.
+RUST *ft-rust*
+
+Since the text for this plugin is rather long it has been put in a separate
+file: |ft_rust.txt|.
+
+
SQL *ft-sql*
Since the text for this plugin is rather long it has been put in a separate
diff --git a/runtime/doc/fold.txt b/runtime/doc/fold.txt
index 680e3270f2..c644d63280 100644
--- a/runtime/doc/fold.txt
+++ b/runtime/doc/fold.txt
@@ -1,4 +1,4 @@
-*fold.txt* For Vim version 7.4. Last change: 2016 Jan 02
+*fold.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -9,10 +9,7 @@ Folding *Folding* *folding* *folds*
You can find an introduction on folding in chapter 28 of the user manual.
|usr_28.txt|
-1. Fold methods |fold-methods|
-2. Fold commands |fold-commands|
-3. Fold options |fold-options|
-4. Behavior of folds |fold-behavior|
+ Type |gO| to see the table of contents.
==============================================================================
1. Fold methods *fold-methods*
@@ -61,7 +58,7 @@ whichever is lower. These are empty or white lines and lines starting
with a character in 'foldignore'. White space is skipped before checking for
characters in 'foldignore'. For C use "#" to ignore preprocessor lines.
-When you want to ignore lines in another way, use the 'expr' method. The
+When you want to ignore lines in another way, use the "expr" method. The
|indent()| function can be used in 'foldexpr' to get the indent of a line.
@@ -76,7 +73,7 @@ This will call a function to compute the fold level: >
:set foldexpr=MyFoldLevel(v:lnum)
This will make a fold out of paragraphs separated by blank lines: >
:set foldexpr=getline(v:lnum)=~'^\\s*$'&&getline(v:lnum+1)=~'\\S'?'<1':1
-this does the same: >
+This does the same: >
:set foldexpr=getline(v:lnum-1)=~'^\\s*$'&&getline(v:lnum)=~'\\S'?'>1':1
Note that backslashes must be used to escape characters that ":set" handles
@@ -136,7 +133,7 @@ fold level. But note that foldlevel() may return -1 if the level is not known
yet. And it returns the level at the start of the line, while a fold might
end in that line.
-It may happened that folds are not updated properly. You can use |zx| or |zX|
+It may happen that folds are not updated properly. You can use |zx| or |zX|
to force updating folds.
@@ -200,7 +197,7 @@ and the level given by the marker:
1. If a marker with the same fold level is encountered, the previous fold
ends and another fold with the same level starts.
2. If a marker with a higher fold level is found, a nested fold is started.
-3. if a marker with a lower fold level is found, all folds up to and including
+3. If a marker with a lower fold level is found, all folds up to and including
this level end and a fold with the specified level starts.
The number indicates the fold level. A zero cannot be used (a marker with
diff --git a/runtime/doc/ft_ada.txt b/runtime/doc/ft_ada.txt
index 1e81acff67..c1aa0904c4 100644
--- a/runtime/doc/ft_ada.txt
+++ b/runtime/doc/ft_ada.txt
@@ -1,4 +1,4 @@
-*ft_ada.txt* For Vim version 7.4. Last change: 2010 Jul 20
+*ft_ada.txt* Nvim
ADA FILE TYPE PLUG-INS REFERENCE MANUAL~
@@ -116,7 +116,7 @@ NOTE: "gnat xref -v" is very tricky to use as it has almost no diagnostic
then "gnat xref -v *.ad?"
4) Project manager support is completely broken - don't even try "gnat xref
-Padacl.gpr".
-5) VIM is faster when the tags file is sorted - use "sort --unique
+5) Vim is faster when the tags file is sorted - use "sort --unique
--ignore-case --output=tags tags" .
6) Remember to insert "!_TAG_FILE_SORTED 2 %sort ui" as first line to mark
the file assorted.
diff --git a/runtime/doc/ft_rust.txt b/runtime/doc/ft_rust.txt
new file mode 100644
index 0000000000..750ba76afc
--- /dev/null
+++ b/runtime/doc/ft_rust.txt
@@ -0,0 +1,237 @@
+*ft_rust.txt* Filetype plugin for Rust
+
+==============================================================================
+CONTENTS *rust*
+
+1. Introduction |rust-intro|
+2. Settings |rust-settings|
+3. Commands |rust-commands|
+4. Mappings |rust-mappings|
+
+==============================================================================
+INTRODUCTION *rust-intro*
+
+This plugin provides syntax and supporting functionality for the Rust
+filetype.
+
+==============================================================================
+SETTINGS *rust-settings*
+
+This plugin has a few variables you can define in your vimrc that change the
+behavior of the plugin.
+
+ *g:rustc_path*
+g:rustc_path~
+ Set this option to the path to rustc for use in the |:RustRun| and
+ |:RustExpand| commands. If unset, "rustc" will be located in $PATH: >
+ let g:rustc_path = $HOME."/bin/rustc"
+<
+
+ *g:rustc_makeprg_no_percent*
+g:rustc_makeprg_no_percent~
+ Set this option to 1 to have 'makeprg' default to "rustc" instead of
+ "rustc %": >
+ let g:rustc_makeprg_no_percent = 1
+<
+
+ *g:rust_conceal*
+g:rust_conceal~
+ Set this option to turn on the basic |conceal| support: >
+ let g:rust_conceal = 1
+<
+
+ *g:rust_conceal_mod_path*
+g:rust_conceal_mod_path~
+ Set this option to turn on |conceal| for the path connecting token
+ "::": >
+ let g:rust_conceal_mod_path = 1
+<
+
+ *g:rust_conceal_pub*
+g:rust_conceal_pub~
+ Set this option to turn on |conceal| for the "pub" token: >
+ let g:rust_conceal_pub = 1
+<
+
+ *g:rust_recommended_style*
+g:rust_recommended_style~
+ Set this option to enable vim indentation and textwidth settings to
+ conform to style conventions of the rust standard library (i.e. use 4
+ spaces for indents and sets 'textwidth' to 99). This option is enabled
+ by default. To disable it: >
+ let g:rust_recommended_style = 0
+<
+
+ *g:rust_fold*
+g:rust_fold~
+ Set this option to turn on |folding|: >
+ let g:rust_fold = 1
+<
+ Value Effect ~
+ 0 No folding
+ 1 Braced blocks are folded. All folds are open by
+ default.
+ 2 Braced blocks are folded. 'foldlevel' is left at the
+ global value (all folds are closed by default).
+
+ *g:rust_bang_comment_leader*
+g:rust_bang_comment_leader~
+ Set this option to 1 to preserve the leader on multi-line doc comments
+ using the /*! syntax: >
+ let g:rust_bang_comment_leader = 1
+<
+
+ *g:ftplugin_rust_source_path*
+g:ftplugin_rust_source_path~
+ Set this option to a path that should be prepended to 'path' for Rust
+ source files: >
+ let g:ftplugin_rust_source_path = $HOME.'/dev/rust'
+<
+
+ *g:rustfmt_command*
+g:rustfmt_command~
+ Set this option to the name of the 'rustfmt' executable in your $PATH. If
+ not specified it defaults to 'rustfmt' : >
+ let g:rustfmt_command = 'rustfmt'
+<
+ *g:rustfmt_autosave*
+g:rustfmt_autosave~
+ Set this option to 1 to run |:RustFmt| automatically when saving a
+ buffer. If not specified it defaults to 0 : >
+ let g:rustfmt_autosave = 0
+<
+ *g:rustfmt_fail_silently*
+g:rustfmt_fail_silently~
+ Set this option to 1 to prevent 'rustfmt' from populating the
+ |location-list| with errors. If not specified it defaults to 0: >
+ let g:rustfmt_fail_silently = 0
+<
+ *g:rustfmt_options*
+g:rustfmt_options~
+ Set this option to a string of options to pass to 'rustfmt'. The
+ write-mode is already set to 'overwrite'. If not specified it
+ defaults to '' : >
+ let g:rustfmt_options = ''
+<
+
+ *g:rust_playpen_url*
+g:rust_playpen_url~
+ Set this option to override the URL for the playpen to use: >
+ let g:rust_playpen_url = 'https://play.rust-lang.org/'
+<
+
+ *g:rust_shortener_url*
+g:rust_shortener_url~
+ Set this option to override the URL for the URL shortener: >
+ let g:rust_shortener_url = 'https://is.gd/'
+<
+
+
+==============================================================================
+COMMANDS *rust-commands*
+
+:RustRun [args] *:RustRun*
+:RustRun! [rustc-args] [--] [args]
+ Compiles and runs the current file. If it has unsaved changes,
+ it will be saved first using |:update|. If the current file is
+ an unnamed buffer, it will be written to a temporary file
+ first. The compiled binary is always placed in a temporary
+ directory, but is run from the current directory.
+
+ The arguments given to |:RustRun| will be passed to the
+ compiled binary.
+
+ If ! is specified, the arguments are passed to rustc instead.
+ A "--" argument will separate the rustc arguments from the
+ arguments passed to the binary.
+
+ If |g:rustc_path| is defined, it is used as the path to rustc.
+ Otherwise it is assumed rustc can be found in $PATH.
+
+:RustExpand [args] *:RustExpand*
+:RustExpand! [TYPE] [args]
+ Expands the current file using --pretty and displays the
+ results in a new split. If the current file has unsaved
+ changes, it will be saved first using |:update|. If the
+ current file is an unnamed buffer, it will be written to a
+ temporary file first.
+
+ The arguments given to |:RustExpand| will be passed to rustc.
+ This is largely intended for specifying various --cfg
+ configurations.
+
+ If ! is specified, the first argument is the expansion type to
+ pass to rustc --pretty. Otherwise it will default to
+ "expanded".
+
+ If |g:rustc_path| is defined, it is used as the path to rustc.
+ Otherwise it is assumed rustc can be found in $PATH.
+
+:RustEmitIr [args] *:RustEmitIr*
+ Compiles the current file to LLVM IR and displays the results
+ in a new split. If the current file has unsaved changes, it
+ will be saved first using |:update|. If the current file is an
+ unnamed buffer, it will be written to a temporary file first.
+
+ The arguments given to |:RustEmitIr| will be passed to rustc.
+
+ If |g:rustc_path| is defined, it is used as the path to rustc.
+ Otherwise it is assumed rustc can be found in $PATH.
+
+:RustEmitAsm [args] *:RustEmitAsm*
+ Compiles the current file to assembly and displays the results
+ in a new split. If the current file has unsaved changes, it
+ will be saved first using |:update|. If the current file is an
+ unnamed buffer, it will be written to a temporary file first.
+
+ The arguments given to |:RustEmitAsm| will be passed to rustc.
+
+ If |g:rustc_path| is defined, it is used as the path to rustc.
+ Otherwise it is assumed rustc can be found in $PATH.
+
+:RustPlay *:RustPlay*
+ This command will only work if you have web-api.vim installed
+ (available at https://github.com/mattn/webapi-vim). It sends the
+ current selection, or if nothing is selected, the entirety of the
+ current buffer to the Rust playpen, and emits a message with the
+ shortened URL to the playpen.
+
+ |g:rust_playpen_url| is the base URL to the playpen, by default
+ "https://play.rust-lang.org/".
+
+ |g:rust_shortener_url| is the base URL for the shortener, by
+ default "https://is.gd/"
+
+:RustFmt *:RustFmt*
+ Runs |g:rustfmt_command| on the current buffer. If
+ |g:rustfmt_options| is set then those will be passed to the
+ executable.
+
+ If |g:rustfmt_fail_silently| is 0 (the default) then it
+ will populate the |location-list| with the errors from
+ |g:rustfmt_command|. If |g:rustfmt_fail_silently| is set to 1
+ then it will not populate the |location-list|.
+
+:RustFmtRange *:RustFmtRange*
+ Runs |g:rustfmt_command| with selected range. See
+ |:RustFmt| for any other information.
+
+==============================================================================
+MAPPINGS *rust-mappings*
+
+This plugin defines mappings for |[[| and |]]| to support hanging indents.
+
+It also has a few other mappings:
+
+ *rust_<D-r>*
+<D-r> Executes |:RustRun| with no arguments.
+ Note: This binding is only available in MacVim.
+
+ *rust_<D-R>*
+<D-R> Populates the command line with |:RustRun|! using the
+ arguments given to the last invocation, but does not
+ execute it.
+ Note: This binding is only available in MacVim.
+
+==============================================================================
+ vim:tw=78:sw=4:noet:ts=8:ft=help:norl:
diff --git a/runtime/doc/ft_sql.txt b/runtime/doc/ft_sql.txt
index 75c55269ef..29268f5753 100644
--- a/runtime/doc/ft_sql.txt
+++ b/runtime/doc/ft_sql.txt
@@ -1,4 +1,4 @@
-*ft_sql.txt* For Vim version 7.4. Last change: 2013 May 15
+*ft_sql.txt* Nvim
by David Fishburn
diff --git a/runtime/doc/gui.txt b/runtime/doc/gui.txt
index 1e8bb408d9..904c4be19c 100644
--- a/runtime/doc/gui.txt
+++ b/runtime/doc/gui.txt
@@ -1,4 +1,4 @@
-*gui.txt* For Vim version 7.4. Last change: 2014 Mar 08
+*gui.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -6,34 +6,17 @@
Vim's Graphical User Interface *gui* *GUI*
-1. Starting the GUI |gui-start|
-2. Scrollbars |gui-scrollbars|
-3. Mouse Control |gui-mouse|
-4. Making GUI Selections |gui-selections|
-5. Menus |menus|
-6. Extras |gui-extras|
-
-Other GUI documentation:
-|gui_w32.txt| For specific items of the Win32 GUI.
+ Type |gO| to see the table of contents.
==============================================================================
1. Starting the GUI *gui-start* *E229* *E233*
-First you must make sure you actually have a version of Vim with the GUI code
-included.
-
-How to start the GUI depends on the system used. Mostly you can run the
-GUI version of Vim with:
- gvim [options] [files...]
-
*ginit.vim* *gui-init* *gvimrc* *$MYGVIMRC*
The gvimrc file is where GUI-specific startup commands should be placed. It
is always sourced after the |init.vim| file. If you have one then the
$MYGVIMRC environment variable has its name.
When the GUI starts up initializations are carried out, in this order:
-- The 'term' option is set to "builtin_gui" and terminal options are reset to
- their default value for the GUI |terminal-options|.
- If the system menu file exists, it is sourced. The name of this file is
normally "$VIMRUNTIME/menu.vim". You can check this with ":version". Also
see |$VIMRUNTIME|. To skip loading the system menu include 'M' in
@@ -63,7 +46,8 @@ When the GUI starts up initializations are carried out, in this order:
already set.
NOTE: All but the first one are not carried out if Vim was started with
-"-u NONE" and no "-U" argument was given, or when started with "-U NONE".
+"-u NONE" or "-u DEFAULTS" and no "-U" argument was given, or when started
+with "-U NONE".
All this happens AFTER the normal Vim initializations, like reading your
vimrc file. See |initialization|.
@@ -83,28 +67,6 @@ Recommended place for your personal GUI initializations:
The personal initialization files are searched in the order specified above
and only the first one that is found is read.
-There are a number of options which only have meaning in the GUI version of
-Vim. These are 'guicursor', 'guifont', and 'guioptions'. They are
-documented in |options.txt| with all the other options.
-
-Another way to set the colors for different occasions is with highlight
-groups. The "Normal" group is used to set the background and foreground
-colors. Example (which looks nice): >
-
- :highlight Normal guibg=grey90
-
-The "guibg" and "guifg" settings override the normal background and
-foreground settings. The other settings for the Normal highlight group are
-not used. Use the 'guifont' option to set the font.
-
-Also check out the 'guicursor' option, to set the colors for the cursor in
-various modes.
-
-Vim tries to make the window fit on the screen when it starts up. This avoids
-that you can't see part of it. On the X Window System this requires a bit of
-guesswork. You can change the height that is used for the window title and a
-task bar with the 'guiheadroom' option.
-
*:winp* *:winpos* *E188*
:winp[os]
Display current position of the top left corner of the GUI vim
@@ -114,8 +76,7 @@ task bar with the 'guiheadroom' option.
:winp[os] {X} {Y} *E466*
Put the GUI vim window at the given {X} and {Y} coordinates.
The coordinates should specify the position in pixels of the
- top left corner of the window. Does not work in all versions.
- Does work in an (new) xterm |xterm-color|.
+ top left corner of the window.
When the GUI window has not been opened yet, the values are
remembered until the window is opened. The position is
adjusted to make the window fit on the screen (if possible).
@@ -124,21 +85,6 @@ task bar with the 'guiheadroom' option.
:win[size] {width} {height}
Set the window height to {width} by {height} characters.
Obsolete, use ":set lines=11 columns=22".
- If you get less lines than expected, check the 'guiheadroom'
- option.
-
-If you are running the X Window System, you can get information about the
-window Vim is running in with these commands: >
- :!xwininfo -id $WINDOWID
- :!xprop -id $WINDOWID
- :execute '!xwininfo -id ' . v:windowid
- :execute '!xprop -id ' . v:windowid
-<
- *gui-IME* *iBus*
-Input methods for international characters in X that rely on the XIM
-framework, most notably iBus, have been known to produce undesirable results
-in gVim. These may include an inability to enter spaces, or long delays
-between typing a character and it being recognized by the application.
==============================================================================
2. Scrollbars *gui-scrollbars*
@@ -437,6 +383,7 @@ menus and menu items. They are most useful for things that you can't remember
what the key sequence was.
For creating menus in a different language, see |:menutrans|.
+If you don't want to use menus at all, see |'go-M'|.
*menu.vim*
The default menus are read from the file "$VIMRUNTIME/menu.vim". See
@@ -453,7 +400,11 @@ in the menu (which can take a bit of time to load). If you want to have all
filetypes already present at startup, add: >
:let do_syntax_sel_menu = 1
-<
+Note that the menu.vim is sourced when `:syntax on` or `:filetype on` is
+executed or after your .vimrc file is sourced. This means that the 'encoding'
+option and the language of messages (`:language messages`) must be set before
+that (if you want to change them).
+
*console-menus*
Although this documentation is in the GUI section, you can actually use menus
in console mode too. You will have to load |menu.vim| explicitly then, it is
@@ -545,9 +496,6 @@ expression register: >
:amenu Insert.foobar "='foobar'<CR>P
-Note that the '<' and 'k' flags in 'cpoptions' also apply here (when
-included they make the <> form and raw key codes not being recognized).
-
Note that <Esc> in Cmdline mode executes the command, like in a mapping. This
is Vi compatible. Use CTRL-C to quit Cmdline mode.
@@ -559,21 +507,13 @@ The ":set ic" will not be echoed when using this menu. Messages from the
executed command are still given though. To shut them up too, add a ":silent"
in the executed command: >
:menu <silent> Search.Header :exe ":silent normal /Header\r"<CR>
-"<silent>" may also appear just after "<special>" or "<script>".
-
- *:menu-<special>* *:menu-special*
-Define a menu with <> notation for special keys, even though the "<" flag
-may appear in 'cpoptions'. This is useful if the side effect of setting
-'cpoptions' is not desired. Example: >
- :menu <special> Search.Header /Header<CR>
-"<special>" must appear as the very first argument to the ":menu" command or
-just after "<silent>" or "<script>".
+"<silent>" may also appear just after "<script>".
*:menu-<script>* *:menu-script*
The "to" part of the menu will be inspected for mappings. If you don't want
this, use the ":noremenu" command (or the similar one for a specific mode).
If you do want to use script-local mappings, add "<script>" as the very first
-argument to the ":menu" command or just after "<silent>" or "<special>".
+argument to the ":menu" command or just after "<silent>".
*menu-priority*
You can give a priority to a menu. Menus with a higher priority go more to
@@ -714,6 +654,8 @@ nr Name Normal action ~
In the Win32 GUI, starting a menu name with ']' excludes that menu from the
main menu bar. You must then use the |:popup| command to display it.
+When splitting the window the window toolbar is not copied to the new window.
+
*popup-menu*
You can define the special menu "PopUp". This is the menu that is displayed
when the right mouse button is pressed, if 'mousemodel' is set to popup or
@@ -909,30 +851,4 @@ This section describes other features which are related to the GUI.
- In the GUI, several normal keys may have modifiers in mappings etc, these
are <Space>, <Tab>, <NL>, <CR>, <Esc>.
-- To check in a Vim script if the GUI is being used, you can use something
- like this: >
-
- if has("gui_running")
- echo "yes, we have a GUI"
- else
- echo "Boring old console"
- endif
-< *setting-guifont*
-- When you use the same vimrc file on various systems, you can use something
- like this to set options specifically for each type of GUI: >
-
- if has("gui_running")
- if has("gui_gtk2")
- :set guifont=Luxi\ Mono\ 12
- elseif has("x11")
- " Also for GTK 1
- :set guifont=*-lucidatypewriter-medium-r-normal-*-*-180-*-*-m-*-*
- elseif has("gui_win32")
- :set guifont=Luxi_Mono:h12:cANSI
- endif
- endif
-
-A recommended Japanese font is MS Mincho. You can find info here:
-http://www.lexikan.com/mincho.htm
-
vim:tw=78:sw=4:ts=8:ft=help:norl:
diff --git a/runtime/doc/hebrew.txt b/runtime/doc/hebrew.txt
index 7bc8f02e7f..642d80adc7 100644
--- a/runtime/doc/hebrew.txt
+++ b/runtime/doc/hebrew.txt
@@ -1,4 +1,4 @@
-*hebrew.txt* For Vim version 7.4. Last change: 2007 Jun 14
+*hebrew.txt* Nvim
VIM REFERENCE MANUAL by Ron Aaron (and Avner Lottem)
diff --git a/runtime/doc/help.txt b/runtime/doc/help.txt
index b33fb50c06..8a83cbc79c 100644
--- a/runtime/doc/help.txt
+++ b/runtime/doc/help.txt
@@ -1,4 +1,4 @@
-*help.txt* For Vim version 7.4. Last change: 2016 Mar 31
+*help.txt* Nvim
VIM - main help file
k
@@ -30,7 +30,7 @@ Get specific help: It is possible to go directly to whatever you want help
help entries for "word".
Or use ":helpgrep word". |:helpgrep|
-VIM stands for Vi IMproved. Most of VIM was made by Bram Moolenaar, but only
+Vim stands for Vi IMproved. Most of Vim was made by Bram Moolenaar, but only
through the help of many others. See |credits|.
------------------------------------------------------------------------------
*doc-file-list* *Q_ct*
@@ -93,10 +93,9 @@ General subjects ~
|helphelp.txt| about using the help files
|index.txt| alphabetical index of all commands
|help-tags| all the tags you can jump to (index of tags)
-|howto.txt| how to do the most common editing tasks
|tips.txt| various tips on using Vim
|message.txt| (error) messages and explanations
-|develop.txt| development of Vim
+|develop.txt| development of Nvim
|debug.txt| debugging Vim itself
|uganda.txt| Vim distribution conditions and what to do with your money
@@ -134,7 +133,6 @@ Advanced editing ~
Special issues ~
|print.txt| printing
|remote.txt| using Vim as a server or client
-|term.txt| using different terminals and mice
|digraph.txt| list of available digraphs
|mbyte.txt| multi-byte text support
|mlang.txt| non-English language support
@@ -143,33 +141,29 @@ Special issues ~
|hebrew.txt| Hebrew language support and editing
|russian.txt| Russian language support and editing
|ft_ada.txt| Ada (the programming language) support
+|ft_rust.txt| Filetype plugin for Rust
|ft_sql.txt| about the SQL filetype plugin
|rileft.txt| right-to-left editing mode
GUI ~
|gui.txt| Graphical User Interface (GUI)
-|gui_w32.txt| Win32 GUI
Interfaces ~
|if_cscop.txt| using Cscope with Vim
|if_pyth.txt| Python interface
|if_ruby.txt| Ruby interface
-|debugger.txt| Interface with a debugger
|sign.txt| debugging signs
Versions ~
|vim_diff.txt| Main differences between Nvim and Vim
|vi_diff.txt| Main differences between Vim and Vi
- *sys-file-list*
-Remarks about specific systems ~
-|os_win32.txt| MS-Windows
*standard-plugin-list*
Standard plugins ~
|pi_gzip.txt| Reading and writing compressed files
|pi_netrw.txt| Reading and writing files over a network
|pi_paren.txt| Highlight matching parens
+|pi_spec.txt| Filetype plugin to work with rpm spec files
|pi_tar.txt| Tar file explorer
-|pi_vimball.txt| Create a self-installing Vim script
|pi_zip.txt| Zip archive explorer
LOCAL ADDITIONS: *local-additions*
diff --git a/runtime/doc/helphelp.txt b/runtime/doc/helphelp.txt
index ad1611133a..adc72d1835 100644
--- a/runtime/doc/helphelp.txt
+++ b/runtime/doc/helphelp.txt
@@ -1,4 +1,4 @@
-*helphelp.txt* For Vim version 7.4. Last change: 2016 Apr 01
+*helphelp.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -6,9 +6,7 @@
Help on help files *helphelp*
-1. Help commands |online-help|
-2. Translated help files |help-translated|
-3. Writing help files |help-writing|
+ Type |gO| to see the table of contents.
==============================================================================
1. Help commands *online-help*
@@ -25,12 +23,20 @@ Help on help files *helphelp*
The 'helplang' option is used to select a language, if
the main help file is available in several languages.
+ Type |gO| to see the table of contents.
+
*{subject}* *E149* *E661*
:h[elp] {subject} Like ":help", additionally jump to the tag {subject}.
- {subject} can include wildcards like "*", "?" and
+ For example: >
+ :help options
+
+< {subject} can include wildcards such as "*", "?" and
"[a-z]":
:help z? jump to help for any "z" command
:help z. jump to the help for "z."
+ But when a tag exists it is taken literally:
+ :help :? jump to help for ":?"
+
If there is no full match for the pattern, or there
are several matches, the "best" match will be used.
A sophisticated algorithm is used to decide which
@@ -67,18 +73,19 @@ Help on help files *helphelp*
example to find help for CTRL-V in Insert mode: >
:help i^V
<
- To use a regexp |pattern|, first do ":help" and then
+ It is also possible to first do ":help" and then
use ":tag {pattern}" in the help window. The
":tnext" command can then be used to jump to other
matches, "tselect" to list matches and choose one. >
- :help index| :tse z.
+ :help index
+ :tselect /.*mode
< When there is no argument you will see matches for
"help", to avoid listing all possible matches (that
would be very slow).
The number of matches displayed is limited to 300.
- This command can be followed by '|' and another
+ The `:help` command can be followed by '|' and another
command, but you don't need to escape the '|' inside a
help command. So these both work: >
:help |
@@ -133,7 +140,8 @@ Help on help files *helphelp*
already opened, then the location list for that window
is used. Otherwise, a new help window is opened and
the location list for that window is set. The
- location list for the current window is not changed.
+ location list for the current window is not changed
+ then.
*:exu* *:exusage*
:exu[sage] Show help on Ex commands. Added to simulate the Nvi
@@ -298,7 +306,7 @@ the applicable Vim version. The last field specifies the last modification
date of the file. Each field is separated by a tab.
At the bottom of the help file, place a Vim modeline to set the 'textwidth'
-and 'tabstop' options and the 'filetype' to 'help'. Never set a global option
+and 'tabstop' options and the 'filetype' to "help". Never set a global option
in such a modeline, that can have consequences undesired by whoever reads that
help.
diff --git a/runtime/doc/howto.txt b/runtime/doc/howto.txt
deleted file mode 100644
index 03ae3dbd8d..0000000000
--- a/runtime/doc/howto.txt
+++ /dev/null
@@ -1,96 +0,0 @@
-*howto.txt* For Vim version 7.4. Last change: 2006 Apr 02
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-
-
-How to ... *howdoi* *how-do-i* *howto* *how-to*
-
-|tutor| get started
-|:quit| exit? I'm trapped, help me!
-|initialization| initialize Vim
-|vimrc-intro| write a Vim script file (vimrc)
-|suspend| suspend Vim
-|usr_11.txt| recover after a crash
-|07.4| keep a backup of my file when writing over it
-
-|usr_07.txt| edit files
-|23.4| edit binary files
-|usr_24.txt| insert text
-|deleting| delete text
-|usr_04.txt| change text
-|04.5| copy and move text
-|usr_25.txt| format text
-|30.6| format comments
-|30.2| indent C programs
-|25.3| automatically set indent
-
-|usr_26.txt| repeat commands
-|02.5| undo and redo
-
-|usr_03.txt| move around
-|word-motions| word motions
-|left-right-motions| left-right motions
-|up-down-motions| up-down motions
-|object-motions| text-object motions
-|various-motions| various motions
-|object-select| text-object selection
-|'whichwrap'| move over line breaks
-|'virtualedit'| move to where there is no text
-|usr_27.txt| specify pattern for searches
-|tags-and-searches| do tags and special searches
-|29.4| search in include'd files used to find
- variables, functions, or macros
-|K| look up manual for the keyword under cursor
-
-|03.7| scroll
-|'sidescroll'| scroll horizontally/sideways
-|'scrolloff'| set visible context lines
-
-|mode-switching| change modes
-|04.4| use Visual mode
-|'insertmode'| start Vim in Insert mode
-
-|40.1| map keys
-|24.7| create abbreviations
-
-|ins-expandtab| expand a tab to spaces in Insert mode
-|i_CTRL-R| insert contents of a register in Insert mode
-|24.3| complete words in Insert mode
-|25.1| break a line before it gets too long
-
-|20.1| do command-line editing
-|20.3| do command-line completion
-|'cmdheight'| increase the height of command-line
-|10.3| specify command-line ranges
-|40.3| specify commands to be executed automatically
- before/after reading/writing entering/leaving a
- buffer/window
-
-|'autowrite'| write automatically
-|30.1| speedup edit-compile-edit cycle or compile and fix
- errors within Vim
-
-|options| set options
-|auto-setting| set options automatically
-|term-dependent-settings| set options depending on terminal name
-|save-settings| save settings
-|:quote| comment my .vim files
-|'helpheight'| change the default help height
-|'highlight'| set various highlighting modes
-|'title'| set the window title
-|'icon'| set window icon title
-|'report'| avoid seeing the change messages on every line
-|'shortmess'| avoid |hit-enter| prompts
-
-|mouse-using| use mouse with Vim
-|usr_08.txt| manage multiple windows and buffers
-|gui.txt| use the gui
-
-|You can't! (yet)| do dishes using Vim
-
-|usr_06.txt| switch on syntax highlighting
-|2html.vim| convert a colored file to HTML
-|less| use Vim like less or more with syntax highlighting
-
- vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/if_cscop.txt b/runtime/doc/if_cscop.txt
index 7482f5eebb..ac3d7a9ed8 100644
--- a/runtime/doc/if_cscop.txt
+++ b/runtime/doc/if_cscop.txt
@@ -1,4 +1,4 @@
-*if_cscop.txt* For Vim version 7.4. Last change: 2011 Jun 12
+*if_cscop.txt* Nvim
VIM REFERENCE MANUAL by Andy Kahn
@@ -12,15 +12,7 @@ a cscope query is just like jumping to any tag; it is saved on the tag stack
so that with the right keyboard mappings, you can jump back and forth between
functions as you normally would with |tags|.
-1. Cscope introduction |cscope-intro|
-2. Cscope related commands |cscope-commands|
-3. Cscope options |cscope-options|
-4. How to use cscope in Vim |cscope-howtouse|
-5. Limitations |cscope-limitations|
-6. Suggested usage |cscope-suggestions|
-7. Availability & Information |cscope-info|
-
-This is currently for Unix and Win32 only.
+ Type |gO| to see the table of contents.
==============================================================================
1. Cscope introduction *cscope-intro*
@@ -90,9 +82,10 @@ suggested use.)
2. Cscope related commands *cscope-commands*
*:cscope* *:cs* *:scs* *:scscope* *E259* *E262* *E561* *E560*
-All cscope commands are accessed through suboptions to the main cscope
-command ":cscope". The shortest abbreviation is ":cs". The ":scscope"
-command does the same and also splits the window (short: "scs").
+All cscope commands are accessed through suboptions to the cscope commands.
+ `:cscope` or `:cs` is the main command
+ `:scscope` or `:scs` does the same and splits the window
+ `:lcscope` or `:lcs` uses the location list, see |:lcscope|
The available subcommands are:
diff --git a/runtime/doc/if_lua.txt b/runtime/doc/if_lua.txt
new file mode 100644
index 0000000000..968d882a22
--- /dev/null
+++ b/runtime/doc/if_lua.txt
@@ -0,0 +1,361 @@
+*if_lua.txt* Nvim
+
+
+ NVIM REFERENCE MANUAL
+
+
+Lua Interface to Nvim *lua* *Lua*
+
+ Type |gO| to see the table of contents.
+
+==============================================================================
+Importing modules *lua-require*
+
+Nvim automatically adjusts `package.path` and `package.cpath` according to
+effective 'runtimepath' value. Adjustment happens whenever 'runtimepath' is
+changed. `package.path` is adjusted by simply appending `/lua/?.lua` and
+`/lua/?/init.lua` to each directory from 'runtimepath' (`/` is actually the
+first character of `package.config`).
+
+Similarly to `package.path`, modified directories from 'runtimepath' are also
+added to `package.cpath`. In this case, instead of appending `/lua/?.lua` and
+`/lua/?/init.lua` to each runtimepath, all unique `?`-containing suffixes of
+the existing `package.cpath` are used. Example:
+
+1. Given that
+ - 'runtimepath' contains `/foo/bar,/xxx;yyy/baz,/abc`;
+ - initial (defined at compile-time or derived from
+ `$LUA_CPATH`/`$LUA_INIT`) `package.cpath` contains
+ `./?.so;/def/ghi/a?d/j/g.elf;/def/?.so`.
+2. It finds `?`-containing suffixes `/?.so`, `/a?d/j/g.elf` and `/?.so`, in
+ order: parts of the path starting from the first path component containing
+ question mark and preceding path separator.
+3. The suffix of `/def/?.so`, namely `/?.so` is not unique, as it’s the same
+ as the suffix of the first path from `package.path` (i.e. `./?.so`). Which
+ leaves `/?.so` and `/a?d/j/g.elf`, in this order.
+4. 'runtimepath' has three paths: `/foo/bar`, `/xxx;yyy/baz` and `/abc`. The
+ second one contains semicolon which is a paths separator so it is out,
+ leaving only `/foo/bar` and `/abc`, in order.
+5. The cartesian product of paths from 4. and suffixes from 3. is taken,
+ giving four variants. In each variant `/lua` path segment is inserted
+ between path and suffix, leaving
+
+ - `/foo/bar/lua/?.so`
+ - `/foo/bar/lua/a?d/j/g.elf`
+ - `/abc/lua/?.so`
+ - `/abc/lua/a?d/j/g.elf`
+
+6. New paths are prepended to the original `package.cpath`.
+
+The result will look like this:
+
+ `/foo/bar,/xxx;yyy/baz,/abc` ('runtimepath')
+ × `./?.so;/def/ghi/a?d/j/g.elf;/def/?.so` (`package.cpath`)
+
+ = `/foo/bar/lua/?.so;/foo/bar/lua/a?d/j/g.elf;/abc/lua/?.so;/abc/lua/a?d/j/g.elf;./?.so;/def/ghi/a?d/j/g.elf;/def/?.so`
+
+Note: to keep up with 'runtimepath' updates paths added at previous update are
+remembered and removed at the next update, while all paths derived from the
+new 'runtimepath' are prepended as described above. This allows removing
+paths when path is removed from 'runtimepath', adding paths when they are
+added and reordering `package.path`/`package.cpath` content if 'runtimepath'
+was reordered.
+
+Note 2: even though adjustments happens automatically Nvim does not track
+current values of `package.path` or `package.cpath`. If you happened to
+delete some paths from there you need to reset 'runtimepath' to make them
+readded. Just running `let &runtimepath = &runtimepath` should work.
+
+Note 3: skipping paths from 'runtimepath' which contain semicolons applies
+both to `package.path` and `package.cpath`. Given that there is a number of
+badly written plugins using shell which will not work with paths containing
+semicolons it is better to not have them in 'runtimepath' at all.
+
+------------------------------------------------------------------------------
+Example of a plugin that uses lua modules *lua-require-example*
+
+The following example plugin adds a command `:MakeCharBlob` which transforms
+current buffer into a long `unsigned char` array. Lua contains transformation
+function in a module `lua/charblob.lua` which is imported in
+`autoload/charblob.vim` (`require("charblob")`). Example plugin is supposed
+to be put into any directory from 'runtimepath', e.g. `~/.config/nvim` (in
+this case `lua/charblob.lua` means `~/.config/nvim/lua/charblob.lua`).
+
+autoload/charblob.vim: >
+
+ function charblob#encode_buffer()
+ call setline(1, luaeval(
+ \ 'require("charblob").encode(unpack(_A))',
+ \ [getline(1, '$'), &textwidth, ' ']))
+ endfunction
+
+plugin/charblob.vim: >
+
+ if exists('g:charblob_loaded')
+ finish
+ endif
+ let g:charblob_loaded = 1
+
+ command MakeCharBlob :call charblob#encode_buffer()
+
+lua/charblob.lua: >
+
+ local function charblob_bytes_iter(lines)
+ local init_s = {
+ next_line_idx = 1,
+ next_byte_idx = 1,
+ lines = lines,
+ }
+ local function next(s, _)
+ if lines[s.next_line_idx] == nil then
+ return nil
+ end
+ if s.next_byte_idx > #(lines[s.next_line_idx]) then
+ s.next_line_idx = s.next_line_idx + 1
+ s.next_byte_idx = 1
+ return ('\n'):byte()
+ end
+ local ret = lines[s.next_line_idx]:byte(s.next_byte_idx)
+ if ret == ('\n'):byte() then
+ ret = 0 -- See :h NL-used-for-NUL.
+ end
+ s.next_byte_idx = s.next_byte_idx + 1
+ return ret
+ end
+ return next, init_s, nil
+ end
+
+ local function charblob_encode(lines, textwidth, indent)
+ local ret = {
+ 'const unsigned char blob[] = {',
+ indent,
+ }
+ for byte in charblob_bytes_iter(lines) do
+ -- .- space + number (width 3) + comma
+ if #(ret[#ret]) + 5 > textwidth then
+ ret[#ret + 1] = indent
+ else
+ ret[#ret] = ret[#ret] .. ' '
+ end
+ ret[#ret] = ret[#ret] .. (('%3u,'):format(byte))
+ end
+ ret[#ret + 1] = '};'
+ return ret
+ end
+
+ return {
+ bytes_iter = charblob_bytes_iter,
+ encode = charblob_encode,
+ }
+
+==============================================================================
+Commands *lua-commands*
+
+ *:lua*
+:[range]lua {chunk}
+ Execute Lua chunk {chunk}.
+
+Examples:
+>
+ :lua vim.api.nvim_command('echo "Hello, Nvim!"')
+<
+To see the Lua version: >
+ :lua print(_VERSION)
+
+To see the LuaJIT version: >
+ :lua print(jit.version)
+<
+
+:[range]lua << {endmarker}
+{script}
+{endmarker}
+ Execute Lua script {script}.
+
+{endmarker} must NOT be preceded by any white space. If {endmarker} is
+omitted from after the "<<", a dot '.' must be used after {script}, like
+for the |:append| and |:insert| commands.
+This form of the |:lua| command is mainly useful for including Lua code
+in Vim scripts.
+
+Example:
+>
+ function! CurrentLineInfo()
+ lua << EOF
+ local linenr = vim.api.nvim_win_get_cursor(0)[1]
+ local curline = vim.api.nvim_buf_get_lines(
+ 0, linenr, linenr + 1, false)[1]
+ print(string.format("Current line [%d] has %d bytes",
+ linenr, #curline))
+ EOF
+ endfunction
+
+Note that the `local` variables will disappear when block finishes. This is
+not the case for globals.
+
+ *:luado*
+:[range]luado {body} Execute Lua function "function (line, linenr) {body}
+ end" for each line in the [range], with the function
+ argument being set to the text of each line in turn,
+ without a trailing <EOL>, and the current line number.
+ If the value returned by the function is a string it
+ becomes the text of the line in the current turn. The
+ default for [range] is the whole file: "1,$".
+
+Examples:
+>
+ :luado return string.format("%s\t%d", line:reverse(), #line)
+
+ :lua require"lpeg"
+ :lua -- balanced parenthesis grammar:
+ :lua bp = lpeg.P{ "(" * ((1 - lpeg.S"()") + lpeg.V(1))^0 * ")" }
+ :luado if bp:match(line) then return "-->\t" .. line end
+<
+
+ *:luafile*
+:[range]luafile {file}
+ Execute Lua script in {file}.
+ The whole argument is used as a single file name.
+
+Examples:
+>
+ :luafile script.lua
+ :luafile %
+<
+
+All these commands execute a Lua chunk from either the command line (:lua and
+:luado) or a file (:luafile) with the given line [range]. Similarly to the Lua
+interpreter, each chunk has its own scope and so only global variables are
+shared between command calls. All Lua default libraries are available. In
+addition, Lua "print" function has its output redirected to the Nvim message
+area, with arguments separated by a white space instead of a tab.
+
+Lua uses the "vim" module (see |lua-vim|) to issue commands to Nvim
+and manage buffers (|lua-buffer|) and windows (|lua-window|). However,
+procedures that alter buffer content, open new buffers, and change cursor
+position are restricted when the command is executed in the |sandbox|.
+
+
+==============================================================================
+The vim module *lua-vim*
+
+Lua interfaces Nvim through the "vim" module. Currently it has the `api`
+submodule and some Nvim-specific utilities.
+
+------------------------------------------------------------------------------
+vim.api.* functions
+
+`vim.api` exposes the Nvim |API| as a table of Lua functions. All functions
+are available.
+
+For example, to use the "nvim_get_current_line()" API function, call
+"vim.api.nvim_get_current_line()": >
+
+ print(tostring(vim.api.nvim_get_current_line()))
+
+------------------------------------------------------------------------------
+vim.* utility functions
+
+vim.stricmp(a, b) *lua-vim.stricmp*
+ Function used for case-insensitive string comparison. Takes two
+ string arguments and returns 0, 1 or -1 if strings are equal, a is
+ greater then b or a is lesser then b respectively.
+
+vim.type_idx *lua-vim.type_idx*
+ Type index for use in |lua-special-tables|. Specifying one of the
+ values from |lua-vim.types| allows typing the empty table (it is
+ unclear whether empty lua table represents empty list or empty array)
+ and forcing integral numbers to be |Float|. See |lua-special-tbl| for
+ more details.
+
+vim.val_idx *lua-vim.val_idx*
+ Value index for tables representing |Float|s. A table representing
+ floating-point value 1.0 looks like this: >
+ {
+ [vim.type_idx] = vim.types.float,
+ [vim.val_idx] = 1.0,
+ }
+< See also |lua-vim.type_idx| and |lua-special-tbl|.
+
+vim.types *lua-vim.types*
+ Table with possible values for |lua-vim.type_idx|. Contains two sets
+ of key-value pairs: first maps possible values for |lua-vim.type_idx|
+ to human-readable strings, second maps human-readable type names to
+ values for |lua-vim.type_idx|. Currently contains pairs for `float`,
+ `array` and `dictionary` types.
+
+ Note: one must expect that values corresponding to `vim.types.float`,
+ `vim.types.array` and `vim.types.dictionary` fall under only two
+ following assumptions:
+ 1. Value may serve both as a key and as a value in a table. Given the
+ properties of lua tables this basically means “value is not `nil`”.
+ 2. For each value in `vim.types` table `vim.types[vim.types[value]]`
+ is the same as `value`.
+ No other restrictions are put on types, and it is not guaranteed that
+ values corresponding to `vim.types.float`, `vim.types.array` and
+ `vim.types.dictionary` will not change or that `vim.types` table will
+ only contain values for these three types.
+
+==============================================================================
+The luaeval function *lua-luaeval* *lua-eval*
+ *luaeval()*
+
+The (dual) equivalent of "vim.eval" for passing Lua values to Nvim is
+"luaeval". "luaeval" takes an expression string and an optional argument used
+for _A inside expression and returns the result of the expression. It is
+semantically equivalent in Lua to:
+>
+ local chunkheader = "local _A = select(1, ...) return "
+ function luaeval (expstr, arg)
+ local chunk = assert(loadstring(chunkheader .. expstr, "luaeval"))
+ return chunk(arg) -- return typval
+ end
+
+Note that "_A" receives the argument to "luaeval". Lua nils, numbers, strings,
+tables and booleans are converted to their respective VimL types. An error is
+thrown if conversion of any of the remaining Lua types is attempted.
+
+Note 2: lua tables are used as both dictionaries and lists, thus making it
+impossible to determine whether empty table is meant to be empty list or empty
+dictionary. Additionally lua does not have integer numbers. To distinguish
+between these cases there is the following agreement:
+
+0. Empty table is empty list.
+1. Table with N incrementally growing integral numbers, starting from 1 and
+ ending with N is considered to be a list.
+2. Table with string keys, none of which contains NUL byte, is considered to
+ be a dictionary.
+3. Table with string keys, at least one of which contains NUL byte, is also
+ considered to be a dictionary, but this time it is converted to
+ a |msgpack-special-map|.
+ *lua-special-tbl*
+4. Table with `vim.type_idx` key may be a dictionary, a list or floating-point
+ value:
+ - `{[vim.type_idx]=vim.types.float, [vim.val_idx]=1}` is converted to
+ a floating-point 1.0. Note that by default integral lua numbers are
+ converted to |Number|s, non-integral are converted to |Float|s. This
+ variant allows integral |Float|s.
+ - `{[vim.type_idx]=vim.types.dictionary}` is converted to an empty
+ dictionary, `{[vim.type_idx]=vim.types.dictionary, [42]=1, a=2}` is
+ converted to a dictionary `{'a': 42}`: non-string keys are ignored.
+ Without `vim.type_idx` key tables with keys not fitting in 1., 2. or 3.
+ are errors.
+ - `{[vim.type_idx]=vim.types.list}` is converted to an empty list. As well
+ as `{[vim.type_idx]=vim.types.list, [42]=1}`: integral keys that do not
+ form a 1-step sequence from 1 to N are ignored, as well as all
+ non-integral keys.
+
+Examples: >
+
+ :echo luaeval('math.pi')
+ :function Rand(x,y) " random uniform between x and y
+ : return luaeval('(_A.y-_A.x)*math.random()+_A.x', {'x':a:x,'y':a:y})
+ : endfunction
+ :echo Rand(1,10)
+
+Note that currently second argument to `luaeval` undergoes VimL to lua
+conversion, so changing containers in lua do not affect values in VimL. Return
+value is also always converted. When converting, |msgpack-special-dict|s are
+treated specially.
+
+==============================================================================
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/if_pyth.txt b/runtime/doc/if_pyth.txt
index b6fe234de4..8940e69092 100644
--- a/runtime/doc/if_pyth.txt
+++ b/runtime/doc/if_pyth.txt
@@ -1,4 +1,4 @@
-*if_pyth.txt* For Vim version 7.4. Last change: 2014 Jul 23
+*if_pyth.txt* Nvim
VIM REFERENCE MANUAL by Paul Moore
@@ -6,18 +6,10 @@
The Python Interface to Vim *python* *Python*
-1. Commands |python-commands|
-2. The vim module |python-vim|
-3. Buffer objects |python-buffer|
-4. Range objects |python-range|
-5. Window objects |python-window|
-6. Tab page objects |python-tabpage|
-7. vim.bindeval objects |python-bindeval-objects|
-8. pyeval(), py3eval() Vim functions |python-pyeval|
-9. Python 3 |python3|
-
See |provider-python| for more information. {Nvim}
+ Type |gO| to see the table of contents.
+
==============================================================================
1. Commands *python-commands*
@@ -48,7 +40,11 @@ Example: >
print 'EAT ME'
EOF
endfunction
-<
+
+To see what version of Python you have: >
+ :python import sys
+ :python print(sys.version)
+
Note: Python is very sensitive to the indenting. Make sure the "class" line
and "EOF" do not have any indent.
@@ -181,11 +177,6 @@ vim.eval(str) *python-eval*
# string.atoi() to convert to
# a number.
- :py tagList = vim.eval('taglist("eval_expr")')
-< The latter will return a python list of python dicts, for instance:
- [{'cmd': '/^eval_expr(arg, nextcmd)$/', 'static': 0, 'name':
- 'eval_expr', 'kind': 'f', 'filename': './src/eval.c'}]
-
vim.bindeval(str) *python-bindeval*
Like |python-eval|, but returns special objects described in
|python-bindeval-objects|. These python objects let you modify (|List|
@@ -688,7 +679,7 @@ vim.Function object *python-Function*
8. pyeval() and py3eval() Vim functions *python-pyeval*
To facilitate bi-directional interface, you can use |pyeval()| and |py3eval()|
-functions to evaluate Python expressions and pass their values to VimL.
+functions to evaluate Python expressions and pass their values to Vim script.
==============================================================================
9. Python 3 *python3*
@@ -697,6 +688,10 @@ functions to evaluate Python expressions and pass their values to VimL.
The `:py3` and `:python3` commands work similar to `:python`. A simple check
if the `:py3` command is working: >
:py3 print("Hello")
+
+To see what version of Python you have: >
+ :py3 import sys
+ :py3 print(sys.version)
< *:py3file*
The `:py3file` command works similar to `:pyfile`.
*:py3do*
diff --git a/runtime/doc/if_ruby.txt b/runtime/doc/if_ruby.txt
index fdd63501ea..ace304c083 100644
--- a/runtime/doc/if_ruby.txt
+++ b/runtime/doc/if_ruby.txt
@@ -1,22 +1,17 @@
-*if_ruby.txt*
+*if_ruby.txt* Nvim
VIM REFERENCE MANUAL by Shugo Maeda
The Ruby Interface to Vim *ruby* *Ruby*
-
-1. Commands |ruby-commands|
-2. The VIM module |ruby-vim|
-3. VIM::Buffer objects |ruby-buffer|
-4. VIM::Window objects |ruby-window|
-5. Global variables |ruby-globals|
-
*E266* *E267* *E268* *E269* *E270* *E271* *E272* *E273*
The home page for ruby is http://www.ruby-lang.org/. You can find links for
downloading Ruby there.
+ Type |gO| to see the table of contents.
+
==============================================================================
1. Commands *ruby-commands*
@@ -54,6 +49,9 @@ Example Vim script: >
EOF
endfunction
<
+To see what version of Ruby you have: >
+ :ruby print RUBY_VERSION
+<
*:rubydo* *:rubyd* *E265*
:[range]rubyd[o] {cmd} Evaluate Ruby command {cmd} for each line in the
@@ -65,7 +63,7 @@ Example Vim script: >
*:rubyfile* *:rubyf*
:rubyf[ile] {file} Execute the Ruby script in {file}. This is the same as
- ":ruby load 'file'", but allows file name completion.
+ `:ruby load 'file'`, but allows file name completion.
Executing Ruby commands is not possible in the |sandbox|.
diff --git a/runtime/doc/indent.txt b/runtime/doc/indent.txt
index 496ccbc703..cf45ec4f38 100644
--- a/runtime/doc/indent.txt
+++ b/runtime/doc/indent.txt
@@ -1,4 +1,4 @@
-*indent.txt* For Vim version 7.4. Last change: 2014 Dec 06
+*indent.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -6,8 +6,7 @@
This file is about indenting C programs and other files.
-1. Indenting C style programs |C-indenting|
-2. Indenting by expression |indent-expression|
+ Type |gO| to see the table of contents.
==============================================================================
1. Indenting C style programs *C-indenting*
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index cedf0266d6..f4f43aeac2 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt* For Vim version 7.4. Last change: 2016 Jul 16
+*index.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -10,22 +10,13 @@ short description. The lists are sorted on ASCII value.
Tip: When looking for certain functionality, use a search command. E.g.,
to look for deleting something, use: "/delete".
-1. Insert mode |insert-index|
-2. Normal mode |normal-index|
- 2.1. Text objects |objects|
- 2.2. Window commands |CTRL-W|
- 2.3. Square bracket commands |[|
- 2.4. Commands starting with 'g' |g|
- 2.5. Commands starting with 'z' |z|
-3. Visual mode |visual-index|
-4. Command-line editing |ex-edit-index|
-5. EX commands |ex-cmd-index|
-
For an overview of options see help.txt |option-list|.
For an overview of built-in functions see |functions|.
For a list of Vim variables see |vim-variable|.
For a complete listing of all help items see |help-tags|.
+ Type |gO| to see the table of contents.
+
==============================================================================
1. Insert mode *insert-index*
@@ -307,10 +298,10 @@ tag char note action in Normal mode ~
|B| B 1 cursor N WORDS backward
|C| ["x]C 2 change from the cursor position to the end
of the line, and N-1 more lines [into
- buffer x]; synonym for "c$"
+ register x]; synonym for "c$"
|D| ["x]D 2 delete the characters under the cursor
until the end of the line and N-1 more
- lines [into buffer x]; synonym for "d$"
+ lines [into register x]; synonym for "d$"
|E| E 1 cursor forward to the end of WORD N
|F| F{char} 1 cursor to the Nth occurrence of {char} to
the left
@@ -327,13 +318,13 @@ tag char note action in Normal mode ~
opposite direction
|O| O 2 begin a new line above the cursor and
insert text, repeat N times
-|P| ["x]P 2 put the text [from buffer x] before the
+|P| ["x]P 2 put the text [from register x] before the
cursor N times
|Q| Q switch to "Ex" mode
|R| R 2 enter replace mode: overtype existing
characters, repeat the entered text N-1
times
-|S| ["x]S 2 delete N lines [into buffer x] and start
+|S| ["x]S 2 delete N lines [into register x] and start
insert; synonym for "cc".
|T| T{char} 1 cursor till after Nth occurrence of {char}
to the left
@@ -341,8 +332,8 @@ tag char note action in Normal mode ~
|V| V start linewise Visual mode
|W| W 1 cursor N WORDS forward
|X| ["x]X 2 delete N characters before the cursor [into
- buffer x]
-|Y| ["x]Y yank N lines [into buffer x]; synonym for
+ register x]
+|Y| ["x]Y yank N lines [into register x]; synonym for
"yy"
|ZZ| ZZ store current file if modified, and exit
|ZQ| ZQ exit current file always
@@ -365,12 +356,12 @@ tag char note action in Normal mode ~
|`}| `} 1 cursor to the end of the current paragraph
|a| a 2 append text after the cursor N times
|b| b 1 cursor N words backward
-|c| ["x]c{motion} 2 delete Nmove text [into buffer x] and start
- insert
-|cc| ["x]cc 2 delete N lines [into buffer x] and start
+|c| ["x]c{motion} 2 delete Nmove text [into register x] and
+ start insert
+|cc| ["x]cc 2 delete N lines [into register x] and start
insert
-|d| ["x]d{motion} 2 delete Nmove text [into buffer x]
-|dd| ["x]dd 2 delete N lines [into buffer x]
+|d| ["x]d{motion} 2 delete Nmove text [into register x]
+|dd| ["x]dd 2 delete N lines [into register x]
|do| do 2 same as ":diffget"
|dp| dp 2 same as ":diffput"
|e| e 1 cursor forward to the end of word N
@@ -396,16 +387,16 @@ tag char note action in Normal mode ~
|q?| q? edit ? command-line in command-line window
|r| r{char} 2 replace N chars with {char}
|s| ["x]s 2 (substitute) delete N characters [into
- buffer x] and start insert
+ register x] and start insert
|t| t{char} 1 cursor till before Nth occurrence of {char}
to the right
|u| u 2 undo changes
|v| v start characterwise Visual mode
|w| w 1 cursor N words forward
|x| ["x]x 2 delete N characters under and after the
- cursor [into buffer x]
-|y| ["x]y{motion} yank Nmove text [into buffer x]
-|yy| ["x]yy yank N lines [into buffer x]
+ cursor [into register x]
+|y| ["x]y{motion} yank Nmove text [into register x]
+|yy| ["x]yy yank N lines [into register x]
|z| z{char} commands starting with 'z', see |z| below
|{| { 1 cursor N paragraphs backward
|bar| | 1 cursor to column N
@@ -982,7 +973,7 @@ tag command action in Command-line editing mode ~
|c_CTRL-E| CTRL-E cursor to end of command-line
|'cedit'| CTRL-F default value for 'cedit': opens the
command-line window; otherwise not used
- CTRL-G not used
+|c_CTRL-G| CTRL-G next match when 'incsearch' is active
|c_<BS>| <BS> delete the character in front of the cursor
|c_digraph| {char1} <BS> {char2}
enter digraph when 'digraph' is on
@@ -1000,12 +991,14 @@ tag command action in Command-line editing mode ~
|c_CTRL-L| CTRL-L do completion on the pattern in front of the
cursor and insert the longest common part
|c_<CR>| <CR> execute entered command
-|c_<CR>| CTRL-M same as <CR>
+|c_CTRL-M| CTRL-M same as <CR>
|c_CTRL-N| CTRL-N after using 'wildchar' with multiple matches:
- go to next match, otherwise: same as <Down>
+ go to next match, otherwise: recall older
+ command-line from history.
CTRL-O not used
|c_CTRL-P| CTRL-P after using 'wildchar' with multiple matches:
- go to previous match, otherwise: same as <Up>
+ go to previous match, otherwise: recall older
+ command-line from history.
|c_CTRL-Q| CTRL-Q same as CTRL-V, unless it's used for terminal
control flow
|c_CTRL-R| CTRL-R {0-9a-z"%#*:= CTRL-F CTRL-P CTRL-W CTRL-A}
@@ -1015,7 +1008,7 @@ tag command action in Command-line editing mode ~
insert the contents of a register or object
under the cursor literally
CTRL-S (used for terminal control flow)
- CTRL-T not used
+|c_CTRL-T| CTRL-T previous match when 'incsearch' is active
|c_CTRL-U| CTRL-U remove all characters
|c_CTRL-V| CTRL-V insert next non-digit literally, insert three
digit decimal number as a single byte.
@@ -1024,7 +1017,7 @@ tag command action in Command-line editing mode ~
CTRL-Y copy (yank) modeless selection
CTRL-Z not used (reserved for suspend)
|c_<Esc>| <Esc> abandon command-line without executing it
-|c_<Esc>| CTRL-[ same as <Esc>
+|c_CTRL-[| CTRL-[ same as <Esc>
|c_CTRL-\_CTRL-N| CTRL-\ CTRL-N go to Normal mode, abandon command-line
|c_CTRL-\_CTRL-G| CTRL-\ CTRL-G go to mode specified with 'insertmode',
abandon command-line
@@ -1202,7 +1195,7 @@ tag command action ~
|:display| :di[splay] display registers
|:djump| :dj[ump] jump to #define
|:dl| :dl short for |:delete| with the 'l' flag
-|:dl| :del[ete]l short for |:delete| with the 'l' flag
+|:del| :del[ete]l short for |:delete| with the 'l' flag
|:dlist| :dli[st] list #defines
|:doautocmd| :do[autocmd] apply autocommands to current buffer
|:doautoall| :doautoa[ll] apply autocommands for all loaded buffers
@@ -1234,6 +1227,7 @@ tag command action ~
|:file| :f[ile] show or set the current file name
|:files| :files list all files in the buffer list
|:filetype| :filet[ype] switch file type detection on/off
+|:filter| :filt[er] filter output of following command
|:find| :fin[d] find file in 'path' and edit it
|:finally| :fina[lly] part of a :try command
|:finish| :fini[sh] quit sourcing a Vim script
@@ -1339,6 +1333,9 @@ tag command action ~
|:ltag| :lt[ag] jump to tag and add matching tags to the
location list
|:lunmap| :lu[nmap] like ":unmap!" but includes Lang-Arg mode
+|:lua| :lua execute Lua command
+|:luado| :luad[o] execute Lua command for each line
+|:luafile| :luaf[ile] execute Lua script file
|:lvimgrep| :lv[imgrep] search for pattern in files
|:lvimgrepadd| :lvimgrepa[dd] like :vimgrep, but append to current list
|:lwindow| :lw[indow] open or close location window
@@ -1545,13 +1542,17 @@ tag command action ~
|:tjump| :tj[ump] like ":tselect", but jump directly when there
is only one match
|:tlast| :tl[ast] jump to last matching tag
+|:tmapclear| :tmapc[lear] remove all mappings for Terminal-Job mode
+|:tmap| :tma[p] like ":map" but for Terminal-Job mode
|:tmenu| :tm[enu] define menu tooltip
|:tnext| :tn[ext] jump to next matching tag
+|:tnoremap| :tno[remap] like ":noremap" but for Terminal-Job mode
|:topleft| :to[pleft] make split window appear at top or far left
|:tprevious| :tp[revious] jump to previous matching tag
|:trewind| :tr[ewind] jump to first matching tag
|:try| :try execute commands, abort on error or exception
|:tselect| :ts[elect] list matching tags and select one
+|:tunmap| :tunma[p] like ":unmap" but for Terminal-Job mode
|:tunmenu| :tu[nmenu] remove menu tooltip
|:undo| :u[ndo] undo last change(s)
|:undojoin| :undoj[oin] join next change with previous undo block
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index 2d3eaafe63..b6cc18ab1b 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt* For Vim version 7.4. Last change: 2016 Jan 31
+*insert.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -13,20 +13,11 @@ commands for inserting text in other ways.
An overview of the most often used commands can be found in chapter 24 of the
user manual |usr_24.txt|.
-1. Special keys |ins-special-keys|
-2. Special special keys |ins-special-special|
-3. 'textwidth' and 'wrapmargin' options |ins-textwidth|
-4. 'expandtab', 'smarttab' and 'softtabstop' options |ins-expandtab|
-5. Replace mode |Replace-mode|
-6. Virtual Replace mode |Virtual-Replace-mode|
-7. Insert mode completion |ins-completion|
-8. Insert mode commands |inserting|
-9. Ex insert commands |inserting-ex|
-10. Inserting a file |inserting-file|
-
Also see 'virtualedit', for moving the cursor to positions where there is no
character. Useful for editing a table.
+ Type |gO| to see the table of contents.
+
==============================================================================
1. Special keys *ins-special-keys*
@@ -155,7 +146,8 @@ CTRL-R CTRL-R {0-9a-z"%#*+/:.-=} *i_CTRL-R_CTRL-R*
CTRL-R CTRL-O {0-9a-z"%#*+/:.-=} *i_CTRL-R_CTRL-O*
Insert the contents of a register literally and don't
auto-indent. Does the same as pasting with the mouse
- |<MiddleMouse>|.
+ |<MiddleMouse>|. When the register is linewise this will
+ insert the text above the current line, like with `P`.
Does not replace characters!
The '.' register (last inserted text) is still inserted as
typed.
@@ -616,13 +608,13 @@ Completion can be done for:
10. User defined completion |i_CTRL-X_CTRL-U|
11. omni completion |i_CTRL-X_CTRL-O|
12. Spelling suggestions |i_CTRL-X_s|
-13. keywords in 'complete' |i_CTRL-N|
+13. keywords in 'complete' |i_CTRL-N| |i_CTRL-P|
-All these (except 2) are done in CTRL-X mode. This is a sub-mode of Insert
-and Replace modes. You enter CTRL-X mode by typing CTRL-X and one of the
-CTRL-X commands. You exit CTRL-X mode by typing a key that is not a valid
-CTRL-X mode command. Valid keys are the CTRL-X command itself, CTRL-N (next),
-and CTRL-P (previous).
+All these, except CTRL-N and CTRL-P, are done in CTRL-X mode. This is a
+sub-mode of Insert and Replace modes. You enter CTRL-X mode by typing CTRL-X
+and one of the CTRL-X commands. You exit CTRL-X mode by typing a key that is
+not a valid CTRL-X mode command. Valid keys are the CTRL-X command itself,
+CTRL-N (next), and CTRL-P (previous).
Also see the 'infercase' option if you want to adjust the case of the match.
@@ -1086,7 +1078,7 @@ items:
empty when non-zero this match will be added even when it is
an empty string
-All of these except 'icase', 'dup' and 'empty' must be a string. If an item
+All of these except "icase", "dup" and "empty" must be a string. If an item
does not meet these requirements then an error message is given and further
items in the list are not used. You can mix string and Dictionary items in
the returned list.
diff --git a/runtime/doc/intro.txt b/runtime/doc/intro.txt
index 786097dd74..6c40264d86 100644
--- a/runtime/doc/intro.txt
+++ b/runtime/doc/intro.txt
@@ -1,4 +1,4 @@
-*intro.txt* For Vim version 7.4. Last change: 2015 Jan 20
+*intro.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -6,14 +6,7 @@
Introduction to Vim *ref* *reference*
-1. Introduction |intro|
-2. Vim on the internet |internet|
-3. Credits |credits|
-4. Notation |notation|
-5. Modes, introduction |vim-modes-intro|
-6. Switching from mode to mode |mode-switching|
-7. The window contents |window-contents|
-8. Definitions |definitions|
+ Type |gO| to see the table of contents.
==============================================================================
1. Introduction *intro*
@@ -34,11 +27,6 @@ It can be accessed from within Vim with the <Help> or <F1> key and with the
is not located in the default place. You can jump to subjects like with tags:
Use CTRL-] to jump to a subject under the cursor, use CTRL-T to jump back.
-This manual refers to Vim on various machines. There may be small differences
-between different computers and terminals. Besides the remarks given in this
-document, there is a separate document for each supported system, see
-|sys-file-list|.
-
*pronounce*
Vim is pronounced as one word, like Jim, not vi-ai-em. It's written with a
capital, since it's a name, again like Jim.
@@ -80,8 +68,8 @@ The Vim pages contain the most recent information about Vim. They also
contain links to the most recent version of Vim. The FAQ is a list of
Frequently Asked Questions. Read this if you have problems.
- VIM home page: http://www.vim.org/
- VIM FAQ: http://vimdoc.sf.net/
+ Vim home page: http://www.vim.org/
+ Vim FAQ: http://vimdoc.sf.net/
Downloading: ftp://ftp.vim.org/pub/vim/MIRRORS
@@ -92,21 +80,18 @@ mention that.
*mail-list* *maillist*
There are several mailing lists for Vim:
-<vim@vim.org>
+<vim@vim.org> *vim-use* *vim_use*
For discussions about using existing versions of Vim: Useful mappings,
questions, answers, where to get a specific version, etc. There are
quite a few people watching this list and answering questions, also
for beginners. Don't hesitate to ask your question here.
-<vim-dev@vim.org> *vim-dev* *vimdev*
+<vim-dev@vim.org> *vim-dev* *vim_dev* *vimdev*
For discussions about changing Vim: New features, porting, patches,
beta-test versions, etc.
-<vim-announce@vim.org> *vim-announce*
+<vim-announce@vim.org> *vim-announce* *vim_announce*
Announcements about new versions of Vim; also for beta-test versions
and ports to different systems. This is a read-only list.
-<vim-multibyte@vim.org> *vim-multibyte*
- For discussions about using and improving the multi-byte aspects of
- Vim.
-<vim-mac@vim.org> *vim-mac*
+<vim-mac@vim.org> *vim-mac* *vim_mac*
For discussions about using and improving the Macintosh version of
Vim.
@@ -131,16 +116,18 @@ http://www.vim.org/maillist.php
Bug reports: *bugs* *bug-reports* *bugreport.vim*
-Send bug reports to: Vim Developers <vim-dev@vim.org>
-This is a maillist, you need to become a member first and many people will see
-the message. If you don't want that, e.g. because it is a security issue,
-send it to <bugs@vim.org>, this only goes to the Vim maintainer (that's Bram).
+Report bugs on GitHub: https://github.com/neovim/neovim/issues
Please be brief; all the time that is spent on answering mail is subtracted
from the time that is spent on improving Vim! Always give a reproducible
-example and try to find out which settings or other things influence the
-appearance of the bug. Try different machines, if possible. Send me patches
-if you can!
+example and try to find out which settings or other things trigger the bug.
+
+Preferably start Vim with: >
+ vim --clean -u reproduce.vim
+Where reproduce.vim is a script that reproduces the problem. Try different
+machines, if relevant (is this an MS-Windows specific bug perhaps?).
+
+Send me patches if you can!
It will help to include information about the version of Vim you are using and
your setup. You can get the information with this command: >
@@ -254,6 +241,10 @@ Vim would never have become what it is now, without the help of these people!
Juergen Weigert Lattice version, AUX improvements, Unix and
MS-DOS ports, autoconf
Stefan 'Sec' Zehl Maintainer of vim.org
+ Yasuhiro Matsumoto many MS-Windows improvements
+ Ken Takata fixes and features
+ Kazunobu Kuriyama GTK 3
+ Christian Brabandt many fixes, features, user support, etc.
I wish to thank all the people that sent me bug reports and suggestions. The
list is too long to mention them all here. Vim would not be the same without
@@ -267,8 +258,7 @@ Vi "the original". Without further remarks this is the version
of Vi that appeared in Sun OS 4.x. ":version" returns
"Version 3.7, 6/7/85". Sometimes other versions are referred
to. Only runs under Unix. Source code only available with a
- license. More information on Vi can be found through:
- http://vi-editor.org [doesn't currently work...]
+ license.
*Nvi*
Nvi The "New" Vi. The version of Vi that comes with BSD 4.4 and FreeBSD.
Very good compatibility with the original Vi, with a few extensions.
@@ -392,8 +382,7 @@ CTRL-{char} {char} typed as a control character; that is, typing {char}
*key-notation* *key-codes* *keycodes*
These names for keys are used in the documentation. They can also be used
-with the ":map" command (insert the key name by pressing CTRL-K and then the
-key you want the name for).
+with the ":map" command.
notation meaning equivalent decimal value(s) ~
-----------------------------------------------------------------------
@@ -453,7 +442,6 @@ notation meaning equivalent decimal value(s) ~
<M-...> alt-key or meta-key *META* *meta* *alt* *<M-*
<A-...> same as <M-...> *<A-*
<D-...> command-key or "super" key *<D-*
-<t_xx> key with "xx" entry in termcap
-----------------------------------------------------------------------
Note: The shifted cursor keys, the help key, and the undo key are only
@@ -461,8 +449,8 @@ available on a few terminals.
Note: There are two codes for the delete key. 127 is the decimal ASCII value
for the delete key, which is always recognized. Some delete keys send another
-value, in which case this value is obtained from the termcap entry "kD". Both
-values have the same effect.
+value, in which case this value is obtained from the |terminfo| entry "key_dc".
+Both values have the same effect.
Note: The keypad keys are used in the same way as the corresponding "normal"
keys. For example, <kHome> has the same effect as <Home>. If a keypad key
@@ -488,7 +476,6 @@ the ":map" command. The rules are:
<S-F11> Shifted function key 11
<M-a> Meta- a ('a' with bit 8 set)
<M-A> Meta- A ('A' with bit 8 set)
- <t_kd> "kd" termcap entry (cursor down key)
The <> notation uses <lt> to escape the special meaning of key names. Using a
backslash also works, but only when 'cpoptions' does not include the 'B' flag.
@@ -509,7 +496,7 @@ examples and use them directly. Or type them literally, including the '<' and
==============================================================================
5. Modes, introduction *vim-modes-intro* *vim-modes*
-Vim has six BASIC modes:
+Vim has seven BASIC modes:
*Normal* *Normal-mode* *command-mode*
Normal mode In Normal mode you can enter all the normal editor
@@ -545,6 +532,13 @@ Ex mode Like Command-line mode, but after entering a command
you remain in Ex mode. Very limited editing of the
command line. |Ex-mode|
+ *Terminal-mode*
+Terminal mode In Terminal mode all input (except |c_CTRL-\_CTRL-N|)
+ is sent to the process running in the current
+ |terminal| buffer.
+ If the 'showmode' option is on "-- TERMINAL --" is shown
+ at the bottom of the window.
+
There are six ADDITIONAL modes. These are variants of the BASIC modes:
*Operator-pending* *Operator-pending-mode*
@@ -728,9 +722,9 @@ special situation. Vim will show only part of the line, around where the
cursor is. There are no special characters shown, so that you can edit all
parts of this line.
-The '@' occasion in the 'highlight' option can be used to set special
-highlighting for the '@' and '~' characters. This makes it possible to
-distinguish them from real characters in the buffer.
+The |hl-NonText| highlight group can be used to set special highlighting
+for the '@' and '~' characters. This makes it possible to distinguish them
+from real characters in the buffer.
The 'showbreak' option contains the string to put in front of wrapped lines.
@@ -797,10 +791,12 @@ by Vim.
==============================================================================
8. Definitions *definitions*
+ buffer Contains lines of text, usually read from a file.
screen The whole area that Vim uses to work in. This can be
a terminal emulator window. Also called "the Vim
window".
- window A view on a buffer.
+ window A view on a buffer. There can be multiple windows for
+ one buffer.
A screen contains one or more windows, separated by status lines and with the
command line at the bottom.
diff --git a/runtime/doc/job_control.txt b/runtime/doc/job_control.txt
index 1aa7ce06d6..e57015db22 100644
--- a/runtime/doc/job_control.txt
+++ b/runtime/doc/job_control.txt
@@ -1,46 +1,36 @@
-*job_control.txt* For Nvim. {Nvim}
+*job_control.txt* Nvim
NVIM REFERENCE MANUAL by Thiago de Arruda
-Nvim's facilities for job control *job-control*
+Nvim job control *job-control*
-1. Introduction |job-control-intro|
-2. Usage |job-control-usage|
+Job control is a way to perform multitasking in Nvim, so scripts can spawn and
+control multiple processes without blocking the current Nvim instance.
-==============================================================================
-1. Introduction *job-control-intro*
+ Type |gO| to see the table of contents.
-Job control is a simple way to perform multitasking in vimscript. Wikipedia
-contains a more generic/detailed description:
+==============================================================================
+Concepts
-"Job control in computing refers to the control of multiple tasks or Jobs on a
-computer system, ensuring that they each have access to adequate resources to
-perform correctly, that competition for limited resources does not cause a
-deadlock where two or more jobs are unable to complete, resolving such
-situations where they do occur, and terminating jobs that, for any reason, are
-not performing as expected."
+Job Id *job-id*
-In a few words: It allows a vimscript programmer to concurrently spawn and
-control multiple processes without blocking the current Nvim instance.
+When a job starts it is assigned a number, unique for the life of the current
+Nvim session. Functions like |jobstart()| return job ids. Functions like
+|jobsend()|, |jobstop()|, |rpcnotify()|, and |rpcrequest()| take job ids.
-Nvim's job control was designed to be simple and familiar to vimscript
-programmers, instead of being very powerful but complex. Unlike Vim's
-facilities for calling with external commands, job control does not depend on
-available shells, instead relying on OS functionality for process management.
+The job's stdio streams are represented as a |channel|. It is possible to send
+and recieve raw bytes, or use |msgpack-rpc|.
+==============================================================================
+Usage *job-control-usage*
-Internally, Nvim job control is powered by libuv, which has a nice
-cross-platform API for managing processes. See https://github.com/libuv/libuv
-for details.
+To control jobs, use the "job…" family of functions: |jobstart()|,
+|jobsend()|, |jobstop()|.
-==============================================================================
-2. Usage *job-control-usage*
+Example: >
-Job control is achieved by calling a combination of the |jobstart()|,
-|jobsend()| and |jobstop()| functions. Here's an example:
->
- function! s:JobHandler(job_id, data, event) dict
+ function! s:OnEvent(job_id, data, event) dict
if a:event == 'stdout'
let str = self.shell.' stdout: '.join(a:data)
elseif a:event == 'stderr'
@@ -52,41 +42,36 @@ Job control is achieved by calling a combination of the |jobstart()|,
call append(line('$'), str)
endfunction
let s:callbacks = {
- \ 'on_stdout': function('s:JobHandler'),
- \ 'on_stderr': function('s:JobHandler'),
- \ 'on_exit': function('s:JobHandler')
+ \ 'on_stdout': function('s:OnEvent'),
+ \ 'on_stderr': function('s:OnEvent'),
+ \ 'on_exit': function('s:OnEvent')
\ }
let job1 = jobstart(['bash'], extend({'shell': 'shell 1'}, s:callbacks))
let job2 = jobstart(['bash', '-c', 'for i in {1..10}; do echo hello $i!; sleep 1; done'], extend({'shell': 'shell 2'}, s:callbacks))
+To test the above script, copy it to a file ~/foo.vim and run it: >
+ nvim -u ~/foo.vim
<
-To test the above, copy it to the file ~/jobcontrol.vim and start with a clean
-nvim instance:
->
- nvim -u NONE -S ~/jobcontrol.vim
-<
-Here's what is happening:
-
-- Two bash instances are spawned by |jobstart()| with their stdin/stdout/stderr
- connected to nvim.
-- The first shell is idle, waiting to read commands from its stdin.
-- The second shell is started with the -c argument, causing it to execute a
- command then exit. In this case, the command is a for loop that will print 0
- through 9 then exit.
-- The `JobHandler()` function is a callback passed to |jobstart()| to handle
- various job events. It takes care of displaying stdout/stderr received from
- the shells.
-- The arguments passed to `JobHandler()` are:
-
- 0: The job id
- 1: If the event is "stdout" or "stderr", a list with lines read from the
- corresponding stream. For "exit", it is the status returned by the
- program.
- 2: The event type, which is "stdout", "stderr" or "exit".
+Description of what happens:
+ - Two bash shells are spawned by |jobstart()| with their stdin/stdout/stderr
+ streams connected to nvim.
+ - The first shell is idle, waiting to read commands from its stdin.
+ - The second shell is started with -c which executes the command (a for-loop
+ printing 0 through 9) and then exits.
+ - `JobHandler()` callback is passed to |jobstart()| to handle various job
+ events. It displays stdout/stderr data received from the shells.
+
+For |on_stdout| and |on_stderr| see |channel-callback|.
+ *on_exit*
+Arguments passed to on_exit callback:
+ 0: |job-id|
+ 1: Exit-code of the process.
+ 2: Event type: "exit"
+
Note: Buffered stdout/stderr data which has not been flushed by the sender
- will not trigger the "stdout" callback (but if the process ends, the
- "exit" callback will be triggered).
+ will not trigger the on_stdout/on_stderr callback (but if the process
+ ends, the on_exit callback will be invoked).
For example, "ruby -e" buffers output, so small strings will be
buffered unless "auto-flushing" ($stdout.sync=true) is enabled. >
function! Receive(job_id, data, event)
@@ -97,54 +82,64 @@ Here's what is happening:
\ {'on_stdout': 'Receive'})
< https://github.com/neovim/neovim/issues/1592
-The options dictionary is passed as the "self" variable to the callback
-function. Here's a more object-oriented version of the above:
->
- let Shell = {}
+ Note 2:
+ Job event handlers may receive partial (incomplete) lines. For a given
+ invocation of on_stdout/on_stderr, `a:data` is not guaranteed to end
+ with a newline.
+ - `abcdefg` may arrive as `['abc']`, `['defg']`.
+ - `abc\nefg` may arrive as `['abc', '']`, `['efg']` or `['abc']`,
+ `['','efg']`, or even `['ab']`, `['c','efg']`.
+ Easy way to deal with this: initialize a list as `['']`, then append
+ to it as follows: >
+ let s:chunks = ['']
+ func! s:on_stdout(job_id, data, event) dict
+ let s:chunks[-1] .= a:data[0]
+ call extend(s:chunks, a:data[1:])
+ endf
+<
- function Shell.on_stdout(job_id, data) dict
- call append(line('$'), self.get_name().' stdout: '.join(a:data))
- endfunction
+The |jobstart-options| dictionary is passed as |self| to the callback.
+The above example could be written in this "object-oriented" style: >
- function Shell.on_stderr(job_id, data) dict
- call append(line('$'), self.get_name().' stderr: '.join(a:data))
- endfunction
+ let Shell = {}
- function Shell.on_exit(job_id, data) dict
- call append(line('$'), self.get_name().' exited')
+ function Shell.on_stdout(_job_id, data, event)
+ call append(line('$'),
+ \ printf('[%s] %s: %s', a:event, self.name, join(a:data[:-2])))
endfunction
- function Shell.get_name() dict
- return 'shell '.self.name
- endfunction
+ let Shell.on_stderr = function(Shell.on_stdout)
- function Shell.new(name, ...) dict
- let instance = extend(copy(g:Shell), {'name': a:name})
- let argv = ['bash']
- if a:0 > 0
- let argv += ['-c', a:1]
- endif
- let instance.id = jobstart(argv, instance)
- return instance
+ function Shell.on_exit(job_id, _data, event)
+ let msg = printf('job %d ("%s") finished', a:job_id, self.name)
+ call append(line('$'), printf('[%s] BOOM!', a:event))
+ call append(line('$'), printf('[%s] %s!', a:event, msg))
endfunction
- let s1 = Shell.new('1')
- let s2 = Shell.new('2', 'for i in {1..10}; do echo hello $i!; sleep 1; done')
-
+ function Shell.new(name, cmd)
+ let object = extend(copy(g:Shell), {'name': a:name})
+ let object.cmd = ['sh', '-c', a:cmd]
+ let object.id = jobstart(object.cmd, object)
+ $
+ return object
+ endfunction
-To send data to the job's stdin, one can use the |jobsend()| function, like
-this:
->
- :call jobsend(job1, "ls\n")
- :call jobsend(job1, "invalid-command\n")
- :call jobsend(job1, "exit\n")
+ let instance = Shell.new('bomb',
+ \ 'for i in $(seq 9 -1 1); do echo $i 1>&$((i % 2 + 1)); sleep 1; done')
+<
+To send data to the job's stdin, use |chansend()|: >
+ :call chansend(job1, "ls\n")
+ :call chansend(job1, "invalid-command\n")
+ :call chansend(job1, "exit\n")
+<
+A job may be killed with |jobstop()|: >
+ :call jobstop(job1)
<
A job may be killed at any time with the |jobstop()| function:
>
:call jobstop(job1)
<
-When |jobstop()| is called, `SIGTERM` will be sent to the job. If a job does
-not exit after 2 seconds, `SIGKILL` will be sent.
+Individual streams can be closed without killing the job, see |chanclose()|.
==============================================================================
vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index 53b152dc06..9b61fa6527 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt* For Vim version 7.4. Last change: 2016 Jul 06
+*map.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -9,27 +9,13 @@ Key mapping, abbreviations and user-defined commands.
This subject is introduced in sections |05.3|, |24.7| and |40.1| of the user
manual.
-1. Key mapping |key-mapping|
- 1.1 MAP COMMANDS |:map-commands|
- 1.2 Special arguments |:map-arguments|
- 1.3 Mapping and modes |:map-modes|
- 1.4 Listing mappings |map-listing|
- 1.5 Mapping special keys |:map-special-keys|
- 1.6 Special characters |:map-special-chars|
- 1.7 What keys to map |map-which-keys|
- 1.8 Examples |map-examples|
- 1.9 Using mappings |map-typing|
- 1.10 Mapping alt-keys |:map-alt-keys|
- 1.11 Mapping an operator |:map-operator|
-2. Abbreviations |abbreviations|
-3. Local mappings and functions |script-local|
-4. User-defined commands |user-commands|
+ Type |gO| to see the table of contents.
==============================================================================
1. Key mapping *key-mapping* *mapping* *macro*
Key mapping is used to change the meaning of typed keys. The most common use
-is to define a sequence commands for a function key. Example: >
+is to define a sequence of commands for a function key. Example: >
:map <F2> a<C-R>=strftime("%c")<CR><Esc>
@@ -55,7 +41,7 @@ modes.
:im[ap] {lhs} {rhs} |mapmode-i| *:im* *:imap*
:lm[ap] {lhs} {rhs} |mapmode-l| *:lm* *:lmap*
:cm[ap] {lhs} {rhs} |mapmode-c| *:cm* *:cmap*
-:tm[ap] {lhs} {rhs} |mapmode-t| *:tm* *:tmap*
+:tma[p] {lhs} {rhs} |mapmode-t| *:tma* *:tmap*
Map the key sequence {lhs} to {rhs} for the modes
where the map command applies. The result, including
{rhs}, is then further scanned for mappings. This
@@ -89,7 +75,7 @@ modes.
:iu[nmap] {lhs} |mapmode-i| *:iu* *:iunmap*
:lu[nmap] {lhs} |mapmode-l| *:lu* *:lunmap*
:cu[nmap] {lhs} |mapmode-c| *:cu* *:cunmap*
-:tu[nmap] {lhs} |mapmode-t| *:tu* *:tunmap*
+:tunma[p] {lhs} |mapmode-t| *:tunma* *:tunmap*
Remove the mapping of {lhs} for the modes where the
map command applies. The mapping may remain defined
for other modes where it applies.
@@ -125,7 +111,7 @@ modes.
:im[ap] |mapmode-i|
:lm[ap] |mapmode-l|
:cm[ap] |mapmode-c|
-:tm[ap] |mapmode-t|
+:tma[p] |mapmode-t|
List all key mappings for the modes where the map
command applies. Note that ":map" and ":map!" are
used most often, because they include the other modes.
@@ -140,7 +126,7 @@ modes.
:im[ap] {lhs} |mapmode-i| *:imap_l*
:lm[ap] {lhs} |mapmode-l| *:lmap_l*
:cm[ap] {lhs} |mapmode-c| *:cmap_l*
-:tm[ap] {lhs} |mapmode-t| *:tmap_l*
+:tma[p] {lhs} |mapmode-t| *:tmap_l*
List the key mappings for the key sequences starting
with {lhs} in the modes where the map command applies.
@@ -163,7 +149,7 @@ type "a", then "bar" will get inserted.
1.2 SPECIAL ARGUMENTS *:map-arguments*
-"<buffer>", "<nowait>", "<silent>", "<special>", "<script>", "<expr>" and
+"<buffer>", "<nowait>", "<silent>", "<script>", "<expr>" and
"<unique>" can be used in any order. They must appear right after the
command, before any other arguments.
@@ -189,7 +175,7 @@ that starts with ",". Then you need to type another character for Vim to know
whether to use the "," mapping or the longer one. To avoid this add the
<nowait> argument. Then the mapping will be used when it matches, Vim does
not wait for more characters to be typed. However, if the characters were
-already type they are used.
+already typed they are used.
*:map-<silent>* *:map-silent*
To define a mapping which will not be echoed on the command line, add
@@ -203,12 +189,6 @@ Prompts will still be given, e.g., for inputdialog().
Using "<silent>" for an abbreviation is possible, but will cause redrawing of
the command line to fail.
- *:map-<special>* *:map-special*
-Define a mapping with <> notation for special keys, even though the "<" flag
-may appear in 'cpoptions'. This is useful if the side effect of setting
-'cpoptions' is not desired. Example: >
- :map <special> <F12> /Header<CR>
-<
*:map-<script>* *:map-script*
If the first argument to one of these commands is "<script>" and it is used to
define a new mapping or abbreviation, the mapping will only remap characters
@@ -437,6 +417,9 @@ with a space.
Note: When using mappings for Visual mode, you can use the "'<" mark, which
is the start of the last selected Visual area in the current buffer |'<|.
+The |:filter| command can be used to select what mappings to list. The
+pattern is matched against the {lhs} and {rhs} in the raw form.
+
*:map-verbose*
When 'verbose' is non-zero, listing a key map will also display where it was
last defined. Example: >
@@ -450,42 +433,28 @@ See |:verbose-cmd| for more information.
1.5 MAPPING SPECIAL KEYS *:map-special-keys*
-There are three ways to map a special key:
+There are two ways to map a special key:
1. The Vi-compatible method: Map the key code. Often this is a sequence that
starts with <Esc>. To enter a mapping like this you type ":map " and then
you have to type CTRL-V before hitting the function key. Note that when
- the key code for the key is in the termcap (the t_ options), it will
- automatically be translated into the internal code and become the second
- way of mapping (unless the 'k' flag is included in 'cpoptions').
+ the key code for the key is in the |terminfo| entry, it will automatically
+ be translated into the internal code and become the second way of mapping.
2. The second method is to use the internal code for the function key. To
enter such a mapping type CTRL-K and then hit the function key, or use
the form "#1", "#2", .. "#9", "#0", "<Up>", "<S-Down>", "<S-F7>", etc.
(see table of keys |key-notation|, all keys from <Up> can be used). The
first ten function keys can be defined in two ways: Just the number, like
"#2", and with "<F>", like "<F2>". Both stand for function key 2. "#0"
- refers to function key 10, defined with option 't_f10', which may be
- function key zero on some keyboards. The <> form cannot be used when
- 'cpoptions' includes the '<' flag.
-3. Use the termcap entry, with the form <t_xx>, where "xx" is the name of the
- termcap entry. Any string entry can be used. For example: >
- :map <t_F3> G
-< Maps function key 13 to "G". This does not work if 'cpoptions' includes
- the '<' flag.
-
-The advantage of the second and third method is that the mapping will work on
-different terminals without modification (the function key will be
-translated into the same internal code or the actual key code, no matter what
-terminal you are using. The termcap must be correct for this to work, and you
-must use the same mappings).
+ refers to function key 10.
DETAIL: Vim first checks if a sequence from the keyboard is mapped. If it
-isn't the terminal key codes are tried (see |terminal-options|). If a
-terminal code is found it is replaced with the internal code. Then the check
-for a mapping is done again (so you can map an internal code to something
-else). What is written into the script file depends on what is recognized.
-If the terminal key code was recognized as a mapping the key code itself is
-written to the script file. If it was recognized as a terminal code the
-internal code is written to the script file.
+isn't the terminal key codes are tried. If a terminal code is found it is
+replaced with the internal code. Then the check for a mapping is done again
+(so you can map an internal code to something else). What is written into the
+script file depends on what is recognized. If the terminal key code was
+recognized as a mapping the key code itself is written to the script file. If
+it was recognized as a terminal code the internal code is written to the
+script file.
1.6 SPECIAL CHARACTERS *:map-special-chars*
@@ -587,16 +556,17 @@ Upper and lowercase differences are ignored.
*map-comments*
It is not possible to put a comment after these commands, because the '"'
-character is considered to be part of the {lhs} or {rhs}.
+character is considered to be part of the {lhs} or {rhs}. However, one can
+use |", since this starts a new, empty command with a comment.
*map_bar* *map-bar*
Since the '|' character is used to separate a map command from the next
command, you will have to do something special to include a '|' in {rhs}.
There are three methods:
use works when example ~
- <Bar> '<' is not in 'cpoptions' :map _l :!ls <Bar> more^M
+ <Bar> always :map _l :!ls <Bar> more^M
\| 'b' is not in 'cpoptions' :map _l :!ls \| more^M
- ^V| always, in Vim and Vi :map _l :!ls ^V| more^M
+ ^V| always :map _l :!ls ^V| more^M
(here ^V stands for CTRL-V; to get one CTRL-V you have to type it twice; you
cannot use the <> notation "<C-V>" here).
@@ -651,8 +621,7 @@ out about, ^D is CTRL-D).
1.8 EXAMPLES *map-examples*
-A few examples (given as you type them, for "<CR>" you type four characters;
-the '<' flag must not be present in 'cpoptions' for this to work). >
+A few examples (as you type them: for "<CR>" you type four characters). >
:map <F3> o#include
:map <M-g> /foo<CR>cwbar<Esc>
@@ -684,7 +653,7 @@ option). After that it assumes that the 'q' is to be interpreted as such. If
you type slowly, or your system is slow, reset the 'timeout' option. Then you
might want to set the 'ttimeout' option.
- *map-precedence*
+ *map-precedence*
Buffer-local mappings (defined using |:map-<buffer>|) take precedence over
global mappings. When a buffer-local mapping is the same as a global mapping,
Vim will use the buffer-local mapping. In addition, Vim will use a complete
@@ -720,9 +689,6 @@ special key: >
Don't type a real <Esc>, Vim will recognize the key code and replace it with
<F1> anyway.
-Another problem may be that when keeping ALT or Meta pressed the terminal
-prepends ESC instead of setting the 8th bit. See |:map-alt-keys|.
-
*recursive_mapping*
If you include the {lhs} in the {rhs} you have a recursive mapping. When
{lhs} is typed, it will be replaced with {rhs}. When the {lhs} which is
@@ -762,46 +728,14 @@ in the original Vi, you would get back the text before the first undo).
1.10 MAPPING ALT-KEYS *:map-alt-keys*
-In the GUI Vim handles the Alt key itself, thus mapping keys with ALT should
-always work. But in a terminal Vim gets a sequence of bytes and has to figure
-out whether ALT was pressed or not.
-
-By default Vim assumes that pressing the ALT key sets the 8th bit of a typed
-character. Most decent terminals can work that way, such as xterm, aterm and
-rxvt. If your <A-k> mappings don't work it might be that the terminal is
-prefixing the character with an ESC character. But you can just as well type
-ESC before a character, thus Vim doesn't know what happened (except for
-checking the delay between characters, which is not reliable).
-
-As of this writing, some mainstream terminals like gnome-terminal and konsole
-use the ESC prefix. There doesn't appear a way to have them use the 8th bit
-instead. Xterm should work well by default. Aterm and rxvt should work well
-when started with the "--meta8" argument. You can also tweak resources like
-"metaSendsEscape", "eightBitInput" and "eightBitOutput".
-
-On the Linux console, this behavior can be toggled with the "setmetamode"
-command. Bear in mind that not using an ESC prefix could get you in trouble
-with other programs. You should make sure that bash has the "convert-meta"
-option set to "on" in order for your Meta keybindings to still work on it
-(it's the default readline behavior, unless changed by specific system
-configuration). For that, you can add the line: >
-
- set convert-meta on
-
-to your ~/.inputrc file. If you're creating the file, you might want to use: >
-
- $include /etc/inputrc
-
-as the first line, if that file exists on your system, to keep global options.
-This may cause a problem for entering special characters, such as the umlaut.
-Then you should use CTRL-V before that character.
-
-Bear in mind that convert-meta has been reported to have troubles when used in
-UTF-8 locales. On terminals like xterm, the "metaSendsEscape" resource can be
-toggled on the fly through the "Main Options" menu, by pressing Ctrl-LeftClick
-on the terminal; that's a good last resource in case you want to send ESC when
-using other applications but not when inside VIM.
-
+In the GUI Nvim handles the |ALT| key itself, thus mapping keys with ALT
+should always work. But in a terminal Nvim gets a sequence of bytes and has
+to figure out whether ALT was pressed. Terminals may use ESC to indicate that
+ALT was pressed. If ESC is followed by a {key} within 'ttimeoutlen'
+milliseconds, the ESC is interpreted as:
+ <ALT-{key}>
+otherwise it is interpreted as two key presses:
+ <ESC> {key}
1.11 MAPPING AN OPERATOR *:map-operator*
@@ -939,7 +873,6 @@ character is mostly ignored otherwise.
It is possible to move the cursor after an abbreviation: >
:iab if if ()<Left>
-This does not work if 'cpoptions' includes the '<' flag. |<>|
You can even do more complicated things. For example, to consume the space
typed after an abbreviation: >
@@ -1087,8 +1020,7 @@ functions used in one script use the same name as in other scripts. To avoid
this, they can be made local to the script.
*<SID>* *<SNR>* *E81*
-The string "<SID>" can be used in a mapping or menu. This requires that the
-'<' flag is not present in 'cpoptions'.
+The string "<SID>" can be used in a mapping or menu.
When executing the map command, Vim will replace "<SID>" with the special
key code <SNR>, followed by a number that's unique for the script, and an
underscore. Example: >
@@ -1171,6 +1103,10 @@ scripts.
" Command has the -register attribute
b Command is local to current buffer
(see below for details on attributes)
+ The list can be filtered on command name with
+ |:filter|, e.g., to list all commands with "Pyth" in
+ the name: >
+ filter Pyth command
:com[mand] {cmd} List the user-defined commands that start with {cmd}
@@ -1267,6 +1203,7 @@ completion can be enabled:
-complete=locale locale names (as output of locale -a)
-complete=mapping mapping name
-complete=menu menus
+ -complete=messages |:messages| suboptions
-complete=option options
-complete=packadd optional package |pack-add| names
-complete=shellcmd Shell command
@@ -1411,9 +1348,11 @@ The valid escape sequences are
<mods> The command modifiers, if specified. Otherwise, expands to
nothing. Supported modifiers are |:aboveleft|, |:belowright|,
|:botright|, |:browse|, |:confirm|, |:hide|, |:keepalt|,
- |:keepjumps|, |:keepmarks|, |:keeppatterns|, |:lockmarks|,
- |:noswapfile|, |:silent|, |:tab|, |:topleft|, |:verbose|, and
- |:vertical|.
+ |:keepjumps|, |:keepmarks|, |:keeppatterns|, |:leftabove|,
+ |:lockmarks|, |:noswapfile| |:rightbelow|, |:silent|, |:tab|,
+ |:topleft|, |:verbose|, and |:vertical|.
+ Note that these are not yet supported: |:noautocmd|,
+ |:sandbox| and |:unsilent|.
Examples: >
command! -nargs=+ -complete=file MyEdit
\ for f in expand(<q-args>, 0, 1) |
diff --git a/runtime/doc/mbyte.txt b/runtime/doc/mbyte.txt
index 355a1da423..531629fddc 100644
--- a/runtime/doc/mbyte.txt
+++ b/runtime/doc/mbyte.txt
@@ -1,4 +1,4 @@
-*mbyte.txt* For Vim version 7.4. Last change: 2016 Jul 21
+*mbyte.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar et al.
@@ -14,26 +14,10 @@ For an introduction to the most common features, see |usr_45.txt| in the user
manual.
For changing the language of messages and menus see |mlang.txt|.
-{not available when compiled without the |+multi_byte| feature}
-
-
-1. Getting started |mbyte-first|
-2. Locale |mbyte-locale|
-3. Encoding |mbyte-encoding|
-4. Using a terminal |mbyte-terminal|
-5. Fonts on X11 |mbyte-fonts-X11|
-6. Fonts on MS-Windows |mbyte-fonts-MSwin|
-7. Input on X11 |mbyte-XIM|
-8. Input on MS-Windows |mbyte-IME|
-9. Input with a keymap |mbyte-keymap|
-10. Using UTF-8 |mbyte-utf8|
-11. Overview of options |mbyte-options|
-
-NOTE: This file contains UTF-8 characters. These may show up as strange
-characters or boxes when using another encoding.
+ Type |gO| to see the table of contents.
==============================================================================
-1. Getting started *mbyte-first*
+Getting started *mbyte-first*
This is a summary of the multibyte features in Vim. If you are lucky it works
as described and you can start using Vim without much trouble. If something
@@ -89,8 +73,7 @@ be displayed and edited correctly.
For the GUI you must select fonts that work with UTF-8. This
is the difficult part. It depends on the system you are using, the locale and
-a few other things. See the chapters on fonts: |mbyte-fonts-X11| for
-X-Windows and |mbyte-fonts-MSwin| for MS-Windows.
+a few other things.
For X11 you can set the 'guifontset' option to a list of fonts that together
cover the characters that are used. Example for Korean: >
@@ -120,7 +103,7 @@ The options 'iminsert', 'imsearch' and 'imcmdline' can be used to chose
the different input methods or disable them temporarily.
==============================================================================
-2. Locale *mbyte-locale*
+Locale *mbyte-locale*
The easiest setup is when your whole system uses the locale you want to work
in. But it's also possible to set the locale for one shell you are working
@@ -209,7 +192,7 @@ Or specify $LANG when starting Vim:
You could make a small shell script for this.
==============================================================================
-3. Encoding *mbyte-encoding*
+Encoding *mbyte-encoding*
In Nvim UTF-8 is always used internally to encode characters.
This applies to all the places where text is used, including buffers (files
@@ -418,49 +401,7 @@ neither of them can be found Vim will still work but some conversions won't be
possible.
==============================================================================
-4. Using a terminal *mbyte-terminal*
-
-The GUI fully supports multi-byte characters. It is also possible in a
-terminal, if the terminal supports the same encoding that Vim uses. Thus this
-is less flexible.
-
-For example, you can run Vim in a xterm with added multi-byte support and/or
-|XIM|. Examples are kterm (Kanji term) and hanterm (for Korean), Eterm
-(Enlightened terminal) and rxvt.
-
-UTF-8 IN XFREE86 XTERM *UTF8-xterm*
-
-This is a short explanation of how to use UTF-8 character encoding in the
-xterm that comes with XFree86 by Thomas Dickey (text by Markus Kuhn).
-
-Get the latest xterm version which has now UTF-8 support:
-
- http://invisible-island.net/xterm/xterm.html
-
-Compile it with "./configure --enable-wide-chars ; make"
-
-Also get the ISO 10646-1 version of various fonts, which is available on
-
- http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts.tar.gz
-
-and install the font as described in the README file.
-
-Now start xterm with >
-
- xterm -u8 -fn -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1
-or, for bigger character: >
- xterm -u8 -fn -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso10646-1
-
-and you will have a working UTF-8 terminal emulator. Try both >
-
- cat utf-8-demo.txt
- vim utf-8-demo.txt
-
-with the demo text that comes with ucs-fonts.tar.gz in order to see
-whether there are any problems with UTF-8 in your xterm.
-
-==============================================================================
-5. Fonts on X11 *mbyte-fonts-X11*
+Fonts on X11 *mbyte-fonts-X11*
Unfortunately, using fonts in X11 is complicated. The name of a single-byte
font is a long string. For multi-byte fonts we need several of these...
@@ -596,20 +537,7 @@ Also make sure that you set 'guifontset' before setting fonts for highlight
groups.
==============================================================================
-6. Fonts on MS-Windows *mbyte-fonts-MSwin*
-
-The simplest is to use the font dialog to select fonts and try them out. You
-can find this at the "Edit/Select Font..." menu. Once you find a font name
-that works well you can use this command to see its name: >
-
- :set guifont
-
-Then add a command to your |ginit.vim| file to set 'guifont': >
-
- :set guifont=courier_new:h12
-
-==============================================================================
-7. Input on X11 *mbyte-XIM*
+Input on X11 *mbyte-XIM*
X INPUT METHOD (XIM) BACKGROUND *XIM* *xim* *x-input-method*
@@ -768,7 +696,7 @@ For example, when you are using kinput2 as |IM-server| and sh, >
<
==============================================================================
-8. Input on MS-Windows *mbyte-IME*
+Input on MS-Windows *mbyte-IME*
(Windows IME support) *multibyte-ime* *IME*
@@ -842,7 +770,7 @@ Cursor color when IME or XIM is on *CursorIM*
status is on.
==============================================================================
-9. Input with a keymap *mbyte-keymap*
+Input with a keymap *mbyte-keymap*
When the keyboard doesn't produce the characters you want to enter in your
text, you can use the 'keymap' option. This will translate one or more
@@ -1090,7 +1018,7 @@ Combining forms:
ﭏ 0xfb4f Xal alef-lamed
==============================================================================
-10. Using UTF-8 *mbyte-utf8* *UTF-8* *utf-8* *utf8*
+Using UTF-8 *mbyte-utf8* *UTF-8* *utf-8* *utf8*
*Unicode* *unicode*
The Unicode character set was designed to include all characters from other
character sets. Therefore it is possible to write text in any language using
@@ -1222,7 +1150,7 @@ not everybody is able to type a composing character.
==============================================================================
-11. Overview of options *mbyte-options*
+Overview of options *mbyte-options*
These options are relevant for editing multi-byte files. Check the help in
options.txt for detailed information.
diff --git a/runtime/doc/message.txt b/runtime/doc/message.txt
index b3a4bf9d72..96c28009c4 100644
--- a/runtime/doc/message.txt
+++ b/runtime/doc/message.txt
@@ -1,4 +1,4 @@
-*message.txt* For Vim version 7.4. Last change: 2016 Jul 16
+*message.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -8,9 +8,7 @@ This file contains an alphabetical list of messages and error messages that
Vim produces. You can use this if you don't understand what the message
means. It is not complete though.
-1. Old messages |:messages|
-2. Error messages |error-messages|
-3. Messages |messages|
+ Type |gO| to see the table of contents.
==============================================================================
1. Old messages *:messages* *:mes* *message-history*
@@ -39,10 +37,7 @@ back.
Note: If the output has been stopped with "q" at the more prompt, it will only
be displayed up to this point.
The previous command output is cleared when another command produces output.
-
-If you are using translated messages, the first printed line tells who
-maintains the messages or the translations. You can use this to contact the
-maintainer when you spot a mistake.
+The "g<" output is not redirected.
If you want to find help on a specific (error) message, use the ID at the
start of the message. For example, to get help on the message: >
@@ -127,8 +122,9 @@ closed properly. Mostly harmless.
Command too recursive
This happens when an Ex command executes an Ex command that executes an Ex
-command, etc. This is only allowed 200 times. When it's more there probably
-is an endless loop. Probably a |:execute| or |:source| command is involved.
+command, etc. The limit is 200 or the value of 'maxfuncdepth', whatever is
+larger. When it's more there probably is an endless loop. Probably a
+|:execute| or |:source| command is involved.
*E254* >
Cannot allocate color {name}
@@ -453,12 +449,6 @@ changed. To avoid the message reset the 'warn' option.
Something inside Vim went wrong and resulted in a NULL pointer. If you know
how to reproduce this problem, please report it. |bugs|
- *E172* >
- Only one file name allowed
-
-The ":edit" command only accepts one file name. When you want to specify
-several files for editing use ":next" |:next|.
-
*E41* *E82* *E83* *E342* >
Out of memory!
Out of memory! (allocating {number} bytes)
@@ -635,6 +625,9 @@ starts. It can be fixed in one of these ways:
- Just write the file again the next day. Or set your clock to the next day,
write the file twice and set the clock back.
+If you get W11 all the time, you may need to disable "Acronis Active
+Protection" or register Vim as a trusted service/application.
+
*W12* >
Warning: File "{filename}" has changed and the buffer was changed in Vim as well
@@ -754,6 +747,13 @@ a user-defined command.
You tried to set an option after startup that only allows changes during
startup.
+ *E943* >
+ Command table needs to be updated, run 'make cmdidxs'
+
+This can only happen when changing the source code, when adding a command in
+src/ex_cmds.h. The lookup table then needs to be updated, by running: >
+ make cmdidxs
+
==============================================================================
3. Messages *messages*
diff --git a/runtime/doc/mlang.txt b/runtime/doc/mlang.txt
index a2be3cfd49..8284d38fa4 100644
--- a/runtime/doc/mlang.txt
+++ b/runtime/doc/mlang.txt
@@ -1,4 +1,4 @@
-*mlang.txt* For Vim version 7.4. Last change: 2016 Jan 16
+*mlang.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -11,11 +11,7 @@ multi-byte text see |multibyte|.
The basics are explained in the user manual: |usr_45.txt|.
-1. Messages |multilang-messages|
-2. Menus |multilang-menus|
-3. Scripts |multilang-scripts|
-
-Also see |help-translated| for multi-language help.
+ Type |gO| to see the table of contents.
==============================================================================
1. Messages *multilang-messages*
@@ -176,6 +172,7 @@ Send an e-mail to the Vim maintainer <maintainer@vim.org>.
special characters like "&" and "<Tab>" need to be
included. Spaces and dots need to be escaped with a
backslash, just like in other |:menu| commands.
+ Case in {english} is ignored.
See the $VIMRUNTIME/lang directory for examples.
diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt
index be3170cf92..600eb3ab9e 100644
--- a/runtime/doc/motion.txt
+++ b/runtime/doc/motion.txt
@@ -1,4 +1,4 @@
-*motion.txt* For Vim version 7.4. Last change: 2016 Jul 12
+*motion.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -10,16 +10,6 @@ These commands move the cursor position. If the new position is off of the
screen, the screen is scrolled to show the cursor (see also 'scrolljump' and
'scrolloff' options).
-1. Motions and operators |operator|
-2. Left-right motions |left-right-motions|
-3. Up-down motions |up-down-motions|
-4. Word motions |word-motions|
-5. Text object motions |object-motions|
-6. Text object selection |object-select|
-7. Marks |mark-motions|
-8. Jumps |jump-motions|
-9. Various motions |various-motions|
-
General remarks:
If you want to know where you are in the file use the "CTRL-G" command
@@ -36,6 +26,8 @@ The 'virtualedit' option can be set to make it possible to move the cursor to
positions where there is no character or within a multi-column character (like
a tab).
+ Type |gO| to see the table of contents.
+
==============================================================================
1. Motions and operators *operator*
@@ -192,7 +184,7 @@ l or *l*
*$* *<End>* *<kEnd>*
$ or <End> To the end of the line. When a count is given also go
- [count - 1] lines downward |inclusive|.
+ [count - 1] lines downward. |inclusive| motion.
In Visual mode the cursor goes to just after the last
character in the line.
When 'virtualedit' is active, "$" may move the cursor
@@ -894,6 +886,7 @@ was made yet in the current file.
then the position can be near the end of what the
command changed. For example when inserting a word,
the position will be on the last character.
+ To jump to older changes use |g;|.
*'(* *`(*
'( `( To the start of the current sentence, like the |(|
diff --git a/runtime/doc/msgpack_rpc.txt b/runtime/doc/msgpack_rpc.txt
index c074eb43ff..2d8f5af6d2 100644
--- a/runtime/doc/msgpack_rpc.txt
+++ b/runtime/doc/msgpack_rpc.txt
@@ -1,4 +1,3 @@
-*msgpack_rpc.txt* {Nvim}
NVIM REFERENCE MANUAL by Thiago de Arruda
@@ -6,12 +5,7 @@
RPC API for Nvim *RPC* *rpc* *msgpack-rpc*
-1. Introduction |rpc-intro|
-2. API mapping |rpc-api|
-3. Connecting |rpc-connecting|
-4. Clients |rpc-api-client|
-5. Types |rpc-types|
-6. Remote UIs |rpc-remote-ui|
+ Type |gO| to see the table of contents.
==============================================================================
1. Introduction *rpc-intro*
@@ -33,7 +27,7 @@ programs can:
The RPC API is like a more powerful version of Vim's `clientserver` feature.
==============================================================================
- 2. API mapping *rpc-api*
+2. API mapping *rpc-api*
The Nvim C |API| is automatically exposed to the RPC API by the build system,
which parses headers at src/nvim/api/*. A dispatch function is generated which
@@ -66,24 +60,24 @@ To get a formatted dump of the API using python (requires the `pyyaml` and
==============================================================================
3. Connecting *rpc-connecting*
-There are several ways to open a msgpack-rpc channel to an Nvim instance:
+See |channel-intro|, for various ways to open a channel. Most of the channel
+opening functions take an `rpc` key in the options dictionary, to enable rpc.
- 1. Through stdin/stdout when `nvim` is started with `--embed`. This is how
- applications can embed Nvim.
+Additionally, rpc channels can be opened by other processes connecting to
+TCP/IP sockets or named pipes listened to by nvim.
- 2. Through stdin/stdout of some other process spawned by |jobstart()|.
- Set the "rpc" key to |v:true| in the options dict to use the job's stdin
- and stdout as a single msgpack channel that is processed directly by
- Nvim. Then it is not possible to process raw data to or from the
- process's stdin and stdout. stderr can still be used, though.
+An rpc socket is automatically created with each instance. The socket
+ location is stored in |v:servername|. By default this is a named pipe
+with an automatically generated address. See |XXX|.
- 3. Through the socket automatically created with each instance. The socket
- location is stored in |v:servername|.
-
- 4. Through a TCP/IP socket. To make Nvim listen on a TCP/IP socket, set the
- |$NVIM_LISTEN_ADDRESS| environment variable before starting Nvim: >
+To make Nvim listen on a TCP/IP socket instead, set the
+ |$NVIM_LISTEN_ADDRESS| environment variable before starting Nvim: >
NVIM_LISTEN_ADDRESS=127.0.0.1:6666 nvim
-<
+<Also, more sockets and named pipes can be listened on using |serverstart()|.
+
+Note that localhost TCP sockets are generally less secure than named pipes,
+and can lead to vunerabilities like remote code execution.
+
Connecting to the socket is the easiest way a programmer can test the API,
which can be done through any msgpack-rpc client library or full-featured
|api-client|. Here's a Ruby script that prints 'hello world!' in the current
@@ -180,7 +174,7 @@ contains information that makes this task easier (see also |rpc-types|):
even more strongly-typed APIs.
- Functions that are considered to be methods that operate on instances of
Nvim special types (msgpack EXT) will have the `"method"` attribute set to
- `true`. The reciever type is the type of the first argument. The method
+ `true`. The receiver type is the type of the first argument. The method
names are prefixed with `nvim_` plus a shortened type name, e.g.
`nvim_buf_get_lines` represents the `get_lines` method of a Buffer instance.
- Global functions have `"method"` set to `false` and are prefixed with just
@@ -197,7 +191,7 @@ prefix is stripped off.
5. Types *rpc-types*
The Nvim C API uses custom types for all functions. |api-types|
-For the purpose of mapping to msgpack, the types can be split into two groups:
+At the RPC layer, the types can be split into two groups:
- Basic types that map natively to msgpack (and probably have a default
representation in msgpack-supported programming languages)
@@ -219,15 +213,16 @@ Special types (msgpack EXT) ~
Window -> enum value kObjectTypeWindow
Tabpage -> enum value kObjectTypeTabpage
-An API method expecting one of these types may be passed an integer instead,
-although they are not interchangeable. For example, a Buffer may be passed as
-an integer, but not a Window or Tabpage.
+API functions expecting one of the special EXT types may be passed an integer
+instead, but not another EXT type. E.g. Buffer may be passed as an integer but
+not as a Window or Tabpage. The EXT object data is the object id encoded as
+a msgpack integer: For buffers this is the |bufnr()| and for windows the
+|window-ID|. For tabpages the id is an internal handle, not the tabpage
+number.
+
+To determine the type codes of the special EXT types, inspect the `types` key
+of the |api-metadata| at runtime. Example JSON representation: >
-The most reliable way of determining the type codes for the special Nvim types
-is to inspect the `types` key of metadata dictionary returned by the
-`nvim_get_api_info` method at runtime. Here's a sample JSON representation of
-the `types` object:
->
"types": {
"Buffer": {
"id": 0,
@@ -242,176 +237,9 @@ the `types` object:
"prefix": "nvim_tabpage_"
}
}
-<
+
Even for statically compiled clients it is good practice to avoid hardcoding
the type codes, because a client may be built against one Nvim version but
connect to another with different type codes.
-==============================================================================
-6. Remote UIs *rpc-remote-ui*
-
-Nvim allows Graphical user interfaces to be implemented by separate processes
-communicating with Nvim over the RPC API. Currently the ui model conists of a
-terminal-like grid with one single, monospace font size, with a few elements
-that could be drawn separately from the grid (for the momemnt only the popup
-menu)
-
-After connecting to a nvim instance (typically a spawned, embedded instance)
-use the |nvim_ui_attach|(width, height, options) API method to tell nvim that your
-program wants to draw the nvim screen on a grid with "width" times
-"height" cells. "options" should be a dictionary with the following (all
-optional) keys:
- `rgb`: Controls what color format to use.
- Set to true (default) to use 24-bit rgb
- colors.
- Set to false to use terminal color codes (at
- most 256 different colors).
- `popupmenu_external`: Instead of drawing the completion popupmenu on
- the grid, Nvim will send higher-level events to
- the ui and let it draw the popupmenu.
- Defaults to false.
-
-Nvim will then send msgpack-rpc notifications, with the method name "redraw"
-and a single argument, an array of screen updates (described below).
-These should be processed in order. Preferably the user should only be able to
-see the screen state after all updates are processed (not any intermediate
-state after processing only a part of the array).
-
-Screen updates are arrays. The first element a string describing the kind
-of update.
-
-["resize", width, height]
- The grid is resized to `width` and `height` cells.
-
-["clear"]
- Clear the screen.
-
-["eol_clear"]
- Clear from the cursor position to the end of the current line.
-
-["cursor_goto", row, col]
- Move the cursor to position (row, col). Currently, the same cursor is
- used to define the position for text insertion and the visible cursor.
- However, only the last cursor position, after processing the entire
- array in the "redraw" event, is intended to be a visible cursor
- position.
-
-["update_fg", color]
-["update_bg", color]
-["update_sp", color]
- Set the default foreground, background and special colors
- respectively.
-
-["highlight_set", attrs]
- Set the attributes that the next text put on the screen will have.
- `attrs` is a dict with the keys below. Any absent key is reset
- to its default value. Color defaults are set by the `update_fg` etc
- updates. All boolean keys default to false.
-
- `foreground`: foreground color.
- `background`: backround color.
- `special`: color to use for underline and undercurl, when present.
- `reverse`: reverse video. Foreground and background colors are
- switched.
- `italic`: italic text.
- `bold`: bold text.
- `underline`: underlined text. The line has `special` color.
- `undercurl`: undercurled text. The curl has `special` color.
-
-["put", text]
- The (utf-8 encoded) string `text` is put at the cursor position
- (and the cursor is advanced), with the highlights as set by the
- last `highlight_set` update.
-
-["set_scroll_region", top, bot, left, right]
- Define the scroll region used by `scroll` below.
-
-["scroll", count]
- Scroll the text in the scroll region. The diagrams below illustrate
- what will happen, depending on the scroll direction. "=" is used to
- represent the SR(scroll region) boundaries and "-" the moved rectangles.
- Note that dst and src share a common region.
-
- If count is bigger than 0, move a rectangle in the SR up, this can
- happen while scrolling down.
->
- +-------------------------+
- | (clipped above SR) | ^
- |=========================| dst_top |
- | dst (still in SR) | |
- +-------------------------+ src_top |
- | src (moved up) and dst | |
- |-------------------------| dst_bot |
- | src (cleared) | |
- +=========================+ src_bot
-<
- If count is less than zero, move a rectangle in the SR down, this can
- happen while scrolling up.
->
- +=========================+ src_top
- | src (cleared) | |
- |------------------------ | dst_top |
- | src (moved down) and dst| |
- +-------------------------+ src_bot |
- | dst (still in SR) | |
- |=========================| dst_bot |
- | (clipped below SR) | v
- +-------------------------+
-<
-["set_title", title]
-["set_icon", icon]
- Set the window title, and icon (minimized) window title, respectively.
- In windowing systems not distinguishing between the two, "set_icon"
- can be ignored.
-
-["mouse_on"]
-["mouse_off"]
- Tells the client whether mouse support, as determined by |'mouse'|
- option, is considered to be active in the current mode. This is mostly
- useful for a terminal frontend, or other situations where nvim mouse
- would conflict with other usages of the mouse. It is safe for a client
- to ignore this and always send mouse events.
-
-["busy_on"]
-["busy_off"]
- Nvim started or stopped being busy, and possibly not responsible to user
- input. This could be indicated to the user by hiding the cursor.
-
-["suspend"]
- |:suspend| command or |Ctrl-Z| mapping is used. A terminal client (or other
- client where it makes sense) could suspend itself. Other clients can
- safely ignore it.
-
-["bell"]
-["visual_bell"]
- Notify the user with an audible or visual bell, respectively.
-
-["update_menu"]
- The menu mappings changed.
-
-["mode_change", mode]
- The mode changed. Currently sent when "insert", "replace", "cmdline" and
- "normal" modes are entered. A client could for instance change the cursor
- shape.
-
-["popupmenu_show", items, selected, row, col]
- When `popupmenu_external` is set to true, nvim will not draw the
- popupmenu on the grid, instead when the popupmenu is to be displayed
- this update is sent. `items` is an array of the items to show, the
- items are themselves arrays of the form [word, kind, menu, info]
- as defined at |complete-items|, except that `word` is replaced by
- `abbr` if present. `selected` is the initially selected item, either a
- zero-based index into the array of items, or -1 if no item is
- selected. `row` and `col` is the anchor position, where the first
- character of the completed word will be.
-
-["popupmenu_select", selected]
- An item in the currently displayed popupmenu is selected. `selected`
- is either a zero-based index into the array of items from the last
- `popupmenu_show` event, or -1 if no item is selected.
-
-["popupmenu_hide"]
- The popupmenu is hidden.
-==============================================================================
- vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/nvim.txt b/runtime/doc/nvim.txt
index 7dfbbd0cf0..2420227f6c 100644
--- a/runtime/doc/nvim.txt
+++ b/runtime/doc/nvim.txt
@@ -1,26 +1,30 @@
-*nvim.txt* {Nvim}
+*nvim.txt* Nvim
NVIM REFERENCE MANUAL
-Nvim *nvim* *nvim-intro*
+Nvim *nvim* *nvim-intro*
-If you are new to Vim (and Nvim) see |help.txt| or type ":Tutor".
-If you already use Vim (but not Nvim) see |nvim-from-vim| for a quickstart.
+Nvim is based on Vim by Bram Moolenaar.
+
+If you are new to Vim see |help.txt|, or type ":Tutor".
+If you already use Vim see |nvim-from-vim| for a quickstart.
Nvim is emphatically a fork of Vim, not a clone: compatibility with Vim is
maintained where possible. See |vim_diff.txt| for the complete reference of
differences from Vim.
+ Type |gO| to see the table of contents.
+
==============================================================================
Transitioning from Vim *nvim-from-vim*
-To start the transition, link your previous configuration so Nvim can use it:
+To start the transition, create ~/.config/nvim/init.vim with these contents:
>
- mkdir ~/.config
- ln -s ~/.vim ~/.config/nvim
- ln -s ~/.vimrc ~/.config/nvim/init.vim
+ set runtimepath^=~/.vim runtimepath+=~/.vim/after
+ let &packpath = &runtimepath
+ source ~/.vimrc
<
Note: If your system sets `$XDG_CONFIG_HOME`, use that instead of `~/.config`
in the code above. Nvim follows the XDG |base-directories| convention.
diff --git a/runtime/doc/nvim_terminal_emulator.txt b/runtime/doc/nvim_terminal_emulator.txt
index 0954dcb5a7..94e7899b6a 100644
--- a/runtime/doc/nvim_terminal_emulator.txt
+++ b/runtime/doc/nvim_terminal_emulator.txt
@@ -1,22 +1,27 @@
-*terminal_emulator.txt* {Nvim}
+*terminal_emulator.txt* Nvim
NVIM REFERENCE MANUAL by Thiago de Arruda
-Terminal emulator *terminal-emulator*
+Terminal emulator *terminal* *terminal-emulator*
Nvim embeds a VT220/xterm terminal emulator based on libvterm. The terminal is
presented as a special buffer type, asynchronously updated from the virtual
terminal as data is received from the program connected to it.
-Terminal buffers behave mostly like normal 'nomodifiable' buffers, except:
-- Plugins can set 'modifiable' to modify text, but lines cannot be deleted.
-- 'scrollback' controls how many off-screen lines are kept.
-- Terminal output is followed if the cursor is on the last line.
+Terminal buffers behave like normal buffers, except:
+- With 'modifiable', lines can be edited but not deleted.
+- 'scrollback' controls how many lines are kept.
+- Output is followed if the cursor is on the last line.
+- 'modified' is the default. You can set 'nomodified' to avoid a warning when
+ closing the terminal buffer.
+- 'bufhidden' defaults to "hide".
+
+ Type |gO| to see the table of contents.
==============================================================================
-Spawning *terminal-emulator-spawning*
+Start *terminal-start*
There are 3 ways to create a terminal buffer:
@@ -33,37 +38,42 @@ There are 3 ways to create a terminal buffer:
autocmd VimEnter * nested split term://sh
< This is only mentioned for reference; use |:terminal| instead.
-When the terminal spawns the program, the buffer will start to mirror the
-terminal display and change its name to `term://{cwd}//{pid}:{cmd}`.
-The "term://..." scheme enables |:mksession| to "restore" a terminal buffer by
-restarting the {cmd} when the session is loaded.
+When the terminal starts, the buffer contents are updated and the buffer is
+named in the form of `term://{cwd}//{pid}:{cmd}`. This naming scheme is used
+by |:mksession| to restore a terminal buffer (by restarting the {cmd}).
==============================================================================
-Input *terminal-emulator-input*
+Input *terminal-input*
-To send input, enter terminal mode using any command that would enter "insert
+To send input, enter |Terminal-mode| using any command that would enter "insert
mode" in a normal buffer, such as |i| or |:startinsert|. In this mode all keys
except <C-\><C-N> are sent to the underlying program. Use <C-\><C-N> to return
-to normal mode. |CTRL-\_CTRL-N|
+to normal-mode. |CTRL-\_CTRL-N|
+
+Terminal-mode has its own |:tnoremap| namespace for mappings, this can be used
+to automate any terminal interaction.
-Terminal mode has its own |:tnoremap| namespace for mappings, this can be used
-to automate any terminal interaction. To map <Esc> to exit terminal mode: >
+To map <Esc> to exit terminal-mode: >
:tnoremap <Esc> <C-\><C-n>
-<
-Navigating to other windows is only possible in normal mode. For convenience,
-you could use these mappings: >
- :tnoremap <A-h> <C-\><C-n><C-w>h
- :tnoremap <A-j> <C-\><C-n><C-w>j
- :tnoremap <A-k> <C-\><C-n><C-w>k
- :tnoremap <A-l> <C-\><C-n><C-w>l
+
+To simulate |i_CTRL-R| in terminal-mode: >
+ :tnoremap <expr> <C-R> '<C-\><C-N>"'.nr2char(getchar()).'pi'
+
+To use `ALT+{h,j,k,l}` to navigate windows from any mode: >
+ :tnoremap <A-h> <C-\><C-N><C-w>h
+ :tnoremap <A-j> <C-\><C-N><C-w>j
+ :tnoremap <A-k> <C-\><C-N><C-w>k
+ :tnoremap <A-l> <C-\><C-N><C-w>l
+ :inoremap <A-h> <C-\><C-N><C-w>h
+ :inoremap <A-j> <C-\><C-N><C-w>j
+ :inoremap <A-k> <C-\><C-N><C-w>k
+ :inoremap <A-l> <C-\><C-N><C-w>l
:nnoremap <A-h> <C-w>h
:nnoremap <A-j> <C-w>j
:nnoremap <A-k> <C-w>k
:nnoremap <A-l> <C-w>l
-<
-Then you can use `Alt+{h,j,k,l}` to navigate between windows from any mode.
-Mouse input is supported, and has the following behavior:
+Mouse input has the following behavior:
- If the program has enabled mouse events, the corresponding events will be
forwarded to the program.
@@ -75,23 +85,31 @@ Mouse input is supported, and has the following behavior:
the terminal wont lose focus and the hovered window will be scrolled.
==============================================================================
-Configuration *terminal-emulator-configuration*
+Configuration *terminal-configuration*
-Options: 'scrollback'
+Options: 'modified', 'scrollback'
Events: |TermOpen|, |TermClose|
Highlight groups: |hl-TermCursor|, |hl-TermCursorNC|
-Terminal colors can be customized with these variables:
+Terminal sets local defaults for some options, which may differ from your
+global configuration.
+
+- 'list' is disabled
+- 'wrap' is disabled
+- 'relativenumber' is disabled in |Terminal-mode| (and cannot be enabled)
+
+You can change the defaults with a TermOpen autocommand: >
+ au TermOpen * setlocal list
-- `{g,b}:terminal_color_$NUM`: The terminal color palette, where `$NUM` is the
- color index, between 0 and 255 inclusive. This setting only affects UIs with
- RGB capabilities; for normal terminals the color index is simply forwarded.
+TERMINAL COLORS ~
-The `{g,b}:terminal_color_$NUM` variables are processed only when the terminal
-starts (after |TermOpen|).
+The `{g,b}:terminal_color_$NUM` variables control the terminal color palette,
+where `$NUM` is the color index between 0 and 255 inclusive. This setting only
+affects UIs with RGB capabilities; for normal terminals the color index is
+just forwarded. The variables are read only during |TermOpen|.
==============================================================================
-Status Variables *terminal-emulator-status*
+Status Variables *terminal-status*
Terminal buffers maintain some information about the terminal in buffer-local
variables:
@@ -99,8 +117,8 @@ variables:
- *b:term_title* The settable title of the terminal, typically displayed in
the window title or tab title of a graphical terminal emulator. Programs
running in the terminal can set this title via an escape sequence.
-- *b:terminal_job_id* The nvim job ID of the job running in the terminal. See
- |job-control| for more information.
+- |'channel'| The nvim channel ID for the underlying PTY.
+ |chansend()| can be used to send input to the terminal.
- *b:terminal_job_pid* The PID of the top-level process running in the
terminal.
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 23d8287a2c..4fe2e07909 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt* For Vim version 7.4. Last change: 2016 Jul 12
+*options.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -6,11 +6,7 @@
Options *options*
-1. Setting options |set-option|
-2. Automatically setting options |auto-setting|
-3. Options summary |option-summary|
-
-For an overview of options see help.txt |option-list|.
+For an overview of options see quickref.txt |option-list|.
Vim has a number of internal variables and switches which can be set to
achieve special effects. These options come in three forms:
@@ -18,18 +14,15 @@ achieve special effects. These options come in three forms:
number has a numeric value
string has a string value
+ Type |gO| to see the table of contents.
+
==============================================================================
1. Setting options *set-option* *E764*
*:se* *:set*
:se[t] Show all options that differ from their default value.
-:se[t] all Show all but terminal options.
-
-:se[t] termcap Show all terminal options. Note that in the GUI the
- key codes are not shown, because they are generated
- internally and can't be changed. Changing the terminal
- codes in the GUI is not useful either...
+:se[t] all Show all options.
*E518* *E519*
:se[t] {option}? Show value of {option}.
@@ -130,39 +123,6 @@ A few special texts:
Last set from error handler ~
Option was cleared when evaluating it resulted in an error.
-{not available when compiled without the |+eval| feature}
-
- *:set-termcap* *E522*
-For {option} the form "t_xx" may be used to set a terminal option. This will
-override the value from the termcap. You can then use it in a mapping. If
-the "xx" part contains special characters, use the <t_xx> form: >
- :set <t_#4>=^[Ot
-This can also be used to translate a special code for a normal key. For
-example, if Alt-b produces <Esc>b, use this: >
- :set <M-b>=^[b
-(the ^[ is a real <Esc> here, use CTRL-V <Esc> to enter it)
-The advantage over a mapping is that it works in all situations.
-
-You can define any key codes, e.g.: >
- :set t_xy=^[foo;
-There is no warning for using a name that isn't recognized. You can map these
-codes as you like: >
- :map <t_xy> something
-< *E846*
-When a key code is not set, it's like it does not exist. Trying to get its
-value will result in an error: >
- :set t_kb=
- :set t_kb
- E846: Key code not set: t_kb
-
-The t_xx options cannot be set from a |modeline| or in the |sandbox|, for
-security reasons.
-
-The listing from ":set" looks different from Vi. Long string options are put
-at the end of the list. The number of options is quite large. The output of
-"set all" probably does not fit on the screen, causing Vim to give the
-|more-prompt|.
-
*option-backslash*
To include white space in a string option value it has to be preceded with a
backslash. To include a backslash you have to use two. Effectively this
@@ -227,7 +187,7 @@ opt+=val" the expansion is done before the adding or removing.
Handling of local options *local-options*
Some of the options only apply to a window or buffer. Each window or buffer
-has its own copy of this option, thus can each have their own value. This
+has its own copy of this option, thus each can have its own value. This
allows you to set 'list' in one window but not in another. And set
'shiftwidth' to 3 in one buffer and 4 in another.
@@ -351,7 +311,7 @@ Note: In the future more global options can be made global-local. Using
Setting the filetype
-:setf[iletype] {filetype} *:setf* *:setfiletype*
+:setf[iletype] [FALLBACK] {filetype} *:setf* *:setfiletype*
Set the 'filetype' option to {filetype}, but only if
not done yet in a sequence of (nested) autocommands.
This is short for: >
@@ -362,6 +322,12 @@ Setting the filetype
setting the 'filetype' option twice, causing different
settings and syntax files to be loaded.
+ When the optional FALLBACK argument is present, a
+ later :setfiletype command will override the
+ 'filetype'. This is to used for filetype detections
+ that are just a guess. |did_filetype()| will return
+ false after this command.
+
*option-window* *optwin*
:bro[wse] se[t] *:set-browse* *:browse-set* *:opt* *:options*
:opt[ions] Open a window for viewing and setting all options.
@@ -388,30 +354,27 @@ On Unix systems the form "${HOME}" can be used too. The name between {} can
contain non-id characters then. Note that if you want to use this for the
"gf" command, you need to add the '{' and '}' characters to 'isfname'.
+NOTE: expanding environment variables and "~/" is only done with the ":set"
+command, not when assigning a value to an option with ":let".
+
+ *$HOME-windows*
On MS-Windows, if $HOME is not defined as an environment variable, then
at runtime Vim will set it to the expansion of $HOMEDRIVE$HOMEPATH.
+If $HOMEDRIVE is not set then $USERPROFILE is used.
-NOTE: expanding environment variables and "~/" is only done with the ":set"
-command, not when assigning a value to an option with ":let".
+This expanded value is not exported to the environment, this matters when
+running an external command: >
+ :echo system('set | findstr ^HOME=')
+and >
+ :echo luaeval('os.getenv("HOME")')
+should echo nothing (an empty string) despite exists('$HOME') being true.
+When setting $HOME to a non-empty string it will be exported to the
+subprocesses.
Note the maximum length of an expanded option is limited. How much depends on
the system, mostly it is something like 256 or 1024 characters.
- *Linux-backspace*
- Note about Linux: By default the backspace key
- produces CTRL-?, which is wrong. You can fix it by
- putting this line in your rc.local: >
- echo "keycode 14 = BackSpace" | loadkeys
-<
- *NetBSD-backspace*
- Note about NetBSD: If your backspace doesn't produce
- the right code, try this: >
- xmodmap -e "keycode 22 = BackSpace"
-< If this works, add this in your .Xmodmap file: >
- keysym 22 = BackSpace
-< You need to restart for this to take effect.
-
==============================================================================
2. Automatically setting options *auto-setting*
@@ -642,7 +605,7 @@ A jump table for the options with a short description can be found at |Q_op|.
See Unicode Standard Annex #11 (http://www.unicode.org/reports/tr11).
Vim may set this option automatically at startup time when Vim is
- compiled with the |+termresponse| feature and if |t_u7| is set to the
+ compiled with the |+termresponse| feature and if t_u7 is set to the
escape sequence to request cursor position report.
*'autochdir'* *'acd'* *'noautochdir'* *'noacd'*
@@ -765,6 +728,13 @@ A jump table for the options with a short description can be found at |Q_op|.
< Vim will guess the value. In the GUI this should work correctly,
in other cases Vim might not be able to guess the right value.
+ When the |t_RB| option is set, Vim will use it to request the background
+ color from the terminal. If the returned RGB value is dark/light and
+ 'background' is not dark/light, 'background' will be set and the
+ screen is redrawn. This may have side effects, make t_BG empty in
+ your .vimrc if you suspect this problem. The response to |t_RB| can
+ be found in |v:termrbgresp|.
+
When starting the GUI, the default value for 'background' will be
"light". When the value is not set in the gvimrc, and Vim detects
that the background is actually quite dark, 'background' is set to
@@ -1013,8 +983,8 @@ A jump table for the options with a short description can be found at |Q_op|.
wildmode More matches in |cmdline-completion| available
(depends on the 'wildmode' setting).
- This is most useful, to fine tune when in insert mode the bell should
- be rung. For normal mode and ex commands, the bell is often rung to
+ This is most useful to fine tune when in Insert mode the bell should
+ be rung. For Normal mode and Ex commands, the bell is often rung to
indicate that an error occurred. It can be silenced by adding the
"error" keyword.
@@ -1243,6 +1213,12 @@ A jump table for the options with a short description can be found at |Q_op|.
< |Nvi| also has this option, but it only uses the first character.
See |cmdwin|.
+ *'channel'*
+'channel' number (default: 0)
+ local to buffer
+ |Channel| connected to the buffer. Currently only used by
+ |terminal-emulator|. Is 0 if no terminal is open. Cannot be changed.
+
*'charconvert'* *'ccv'* *E202* *E214* *E513*
'charconvert' 'ccv' string (default "")
global
@@ -1349,27 +1325,6 @@ A jump table for the options with a short description can be found at |Q_op|.
will additionally copy the text into register
'*'. See |clipboard|.
- *clipboard-autoselect*
- autoselect Works like the 'a' flag in 'guioptions': If present,
- then whenever Visual mode is started, or the Visual
- area extended, Vim tries to become the owner of the
- windowing system's global selection or put the
- selected text on the clipboard used by the selection
- register "*. See |guioptions_a| and |quotestar| for
- details. When the GUI is active, the 'a' flag in
- 'guioptions' is used, when the GUI is not active, this
- "autoselect" flag is used.
- Also applies to the modeless selection.
-
- *clipboard-autoselectplus*
- autoselectplus Like "autoselect" but using the + register instead of
- the * register. Compare to the 'P' flag in
- 'guioptions'.
-
- *clipboard-autoselectml*
- autoselectml Like "autoselect", but for the modeless selection
- only. Compare to the 'A' flag in 'guioptions'.
-
*'cmdheight'* *'ch'*
'cmdheight' 'ch' number (default 1)
global
@@ -1620,7 +1575,6 @@ A jump table for the options with a short description can be found at |Q_op|.
results in X being mapped to:
'B' included: "\^[" (^[ is a real <Esc>)
'B' excluded: "<Esc>" (5 characters)
- ('<' excluded in both cases)
*cpo-c*
c Searching continues at the end of any match at the
cursor position, but not further than the start of the
@@ -1670,15 +1624,6 @@ A jump table for the options with a short description can be found at |Q_op|.
J A |sentence| has to be followed by two spaces after
the '.', '!' or '?'. A <Tab> is not recognized as
white space.
- *cpo-k*
- k Disable the recognition of raw key codes in
- mappings, abbreviations, and the "to" part of menu
- commands. For example, if <Key> sends ^[OA (where ^[
- is <Esc>), the command ":map X ^[OA" results in X
- being mapped to:
- 'k' included: "^[OA" (3 characters)
- 'k' excluded: "<Key>" (one key code)
- Also see the '<' flag below.
*cpo-K*
K Don't wait for a key code to complete when it is
halfway through a mapping. This breaks mapping
@@ -1812,14 +1757,6 @@ A jump table for the options with a short description can be found at |Q_op|.
+ When included, a ":write file" command will reset the
'modified' flag of the buffer, even though the buffer
itself may still be different from its file.
- *cpo-<*
- < Disable the recognition of special key codes in |<>|
- form in mappings, abbreviations, and the "to" part of
- menu commands. For example, the command
- ":map X <Tab>" results in X being mapped to:
- '<' included: "<Tab>" (5 characters)
- '<' excluded: "^I" (^I is a real <Tab>)
- Also see the 'k' flag above.
*cpo->*
> When appending to a register, put a line break before
the appended text.
@@ -2106,7 +2043,7 @@ A jump table for the options with a short description can be found at |Q_op|.
uhex Show unprintable characters hexadecimal as <xx>
instead of using ^C and ~C.
- When neither "lastline" or "truncate" is included, a last line that
+ When neither "lastline" nor "truncate" is included, a last line that
doesn't fit is replaced with "@" lines.
*'eadirection'* *'ead'*
@@ -2233,10 +2170,15 @@ A jump table for the options with a short description can be found at |Q_op|.
*'exrc'* *'ex'* *'noexrc'* *'noex'*
'exrc' 'ex' boolean (default off)
global
- Enables the reading of .nvimrc and .exrc in the current directory.
- If you switch this option on you should also consider setting the
- 'secure' option (see |initialization|). Using this option comes
- with a potential security risk, use with care!
+ Enables the reading of .vimrc and .exrc in the current directory.
+ Setting this option is a potential security leak. E.g., consider
+ unpacking a package or fetching files from github, a .vimrc in there
+ might be a trojan horse. BETTER NOT SET THIS OPTION!
+ Instead, define an autocommand in your .vimrc to set options for a
+ matching directory.
+
+ If you do switch this option on you should also consider setting the
+ 'secure' option (see |initialization|).
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
Also see |init.vim| and |gui-init|.
@@ -2731,7 +2673,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'formatprg'* *'fp'*
'formatprg' 'fp' string (default "")
- global
+ global or local to buffer |global-local|
The name of an external program that will be used to format the lines
selected with the |gq| operator. The program must take the input on
stdin and produce the output on stdout. The Unix program "fmt" is
@@ -2754,6 +2696,9 @@ A jump table for the options with a short description can be found at |Q_op|.
mode, so it may be undesirable in some situations. Be warned that
turning this off increases the chances of data loss after a crash.
+ Currently applies only to writing the buffer with e.g. |:w| and
+ |writefile()|.
+
*'gdefault'* *'gd'* *'nogdefault'* *'nogd'*
'gdefault' 'gd' boolean (default off)
global
@@ -2776,8 +2721,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'grepprg'* *'gp'*
'grepprg' 'gp' string (default "grep -n ",
- Unix: "grep -n $* /dev/null",
- Win32: "findstr /n" or "grep -n")
+ Unix: "grep -n $* /dev/null")
global or local to buffer |global-local|
Program to use for the |:grep| command. This option may contain '%'
and '#' characters, which are expanded like when used in a command-
@@ -2792,33 +2736,24 @@ A jump table for the options with a short description can be found at |Q_op|.
|:vimgrepadd| and |:lgrepadd| like |:lvimgrepadd|.
See also the section |:make_makeprg|, since most of the comments there
apply equally to 'grepprg'.
- For Win32, the default is "findstr /n" if "findstr.exe" can be found,
- otherwise it's "grep -n".
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'guicursor'* *'gcr'* *E545* *E546* *E548* *E549*
-'guicursor' 'gcr' string (default "n-v-c:block-Cursor/lCursor,
- ve:ver35-Cursor,
- o:hor50-Cursor,
- i-ci:ver25-Cursor/lCursor,
- r-cr:hor20-Cursor/lCursor,
- sm:block-Cursor
- -blinkwait175-blinkoff150-blinkon175",
- for Windows console:
- "n-v-c:block,o:hor50,i-ci:hor15,
- r-cr:hor30,sm:block")
- global
- {only available when compiled with GUI enabled, and
- for Windows console}
- This option tells Vim what the cursor should look like in different
- modes. It fully works in the GUI. In a Windows console, only
- the height of the cursor can be changed. This can be done by
- specifying a block cursor, or a percentage for a vertical or
- horizontal cursor.
- For a console the 't_SI' and 't_EI' escape sequences are used.
-
- The option is a comma separated list of parts. Each part consist of a
+'guicursor' 'gcr' string (default "n-v-c-sm:block,i-ci-ve:ver25,r-cr-o:hor20")
+ global
+ Configures the cursor style for each mode. Works in the GUI and many
+ terminals. See |tui-cursor-shape|.
+
+ To disable cursor-styling, reset the option: >
+ :set guicursor=
+
+< To enable mode shapes, "Cursor" highlight, and blinking: >
+ :set guicursor=n-v-c:block,i-ci-ve:ver25,r-cr:hor20,o:hor50
+ \,a:blinkwait700-blinkoff400-blinkon250-Cursor/lCursor
+ \,sm:block-blinkwait175-blinkoff150-blinkon175
+
+< The option is a comma separated list of parts. Each part consists of a
mode-list and an argument-list:
mode-list:argument-list,mode-list:argument-list,..
The mode-list is a dash separated list of these modes:
@@ -2846,16 +2781,9 @@ A jump table for the options with a short description can be found at |Q_op|.
the cursor starts blinking, blinkon is the time that
the cursor is shown and blinkoff is the time that the
cursor is not shown. The times are in msec. When one
- of the numbers is zero, there is no blinking. The
- default is: "blinkwait700-blinkon400-blinkoff250".
- These numbers are used for a missing entry. This
- means that blinking is enabled by default. To switch
- blinking off you can use "blinkon0". The cursor only
- blinks when Vim is waiting for input, not while
- executing a command.
- To make the cursor blink in an xterm, see
- |xterm-blink|.
- {group-name}
+ of the numbers is zero, there is no blinking. E.g.: >
+ :set guicursor=n:blinkon0
+< {group-name}
a highlight group name, that sets the color and font
for the cursor
{group-name}/{group-name}
@@ -2991,18 +2919,6 @@ A jump table for the options with a short description can be found at |Q_op|.
If set and valid, 'guifontwide' is used for IME instead of 'guifont'.
- *'guiheadroom'* *'ghr'*
-'guiheadroom' 'ghr' number (default 50)
- global
- {only for X11 GUI}
- The number of pixels subtracted from the screen height when fitting
- the GUI window on the screen. Set this before the GUI is started,
- e.g., in your |gvimrc| file. When zero, the whole screen height will
- be used by the window. When positive, the specified number of pixel
- lines will be left for window decorations and other items on the
- screen. Set it to a negative value to allow windows taller than the
- screen.
-
*'guioptions'* *'go'*
'guioptions' 'go' string (default "egmrLT" (MS-Windows))
global
@@ -3060,7 +2976,7 @@ A jump table for the options with a short description can be found at |Q_op|.
that this flag must be added in the vimrc file, before
switching on syntax or filetype recognition (when the |gvimrc|
file is sourced the system menu has already been loaded; the
- ":syntax on" and ":filetype on" commands load the menu too).
+ `:syntax on` and `:filetype on` commands load the menu too).
*'go-g'*
'g' Grey menu items: Make menu items that are not active grey. If
'g' is not included inactive menu items are not shown at all.
@@ -3110,6 +3026,8 @@ A jump table for the options with a short description can be found at |Q_op|.
The format of this option is like that of 'statusline'.
'guitabtooltip' is used for the tooltip, see below.
+ The expression will be evaluated in the |sandbox| when set from a
+ modeline, see |sandbox-option|.
Only used when the GUI tab pages line is displayed. 'e' must be
present in 'guioptions'. For the non-GUI tab pages line 'tabline' is
@@ -3185,109 +3103,6 @@ A jump table for the options with a short description can be found at |Q_op|.
WARNING: It's easy to forget that you have changes in hidden buffers.
Think twice when using ":q!" or ":qa!".
- *'highlight'* *'hl'*
-'highlight' 'hl' string (default (as a single string):
- "8:SpecialKey,~:EndOfBuffer,z:TermCursor,
- Z:TermCursorNC,@:NonText,d:Directory,
- e:ErrorMsg,i:IncSearch,l:Search,
- m:MoreMsg,M:ModeMsg,n:LineNr,
- N:CursorLineNr,r:Question,s:StatusLine,
- S:StatusLineNC,c:VertSplit,t:Title,
- v:Visual,w:WarningMsg,W:WildMenu,
- f:Folded,F:FoldColumn,A:DiffAdd,
- C:DiffChange,D:DiffDelete,T:DiffText,
- >:SignColumn,B:SpellBad,P:SpellCap,
- R:SpellRare,L:SpellLocal,-:Conceal,
- +:Pmenu,=:PmenuSel,x:PmenuSbar,
- X:PmenuThumb")
- global
- This option can be used to set highlighting mode for various
- occasions. It is a comma separated list of character pairs. The
- first character in a pair gives the occasion, the second the mode to
- use for that occasion. The occasions are:
- |hl-SpecialKey| 8 Meta and special keys listed with ":map"
- |hl-EndOfBuffer| ~ lines after the last line in the buffer
- |hl-TermCursor| z Cursor in a focused terminal
- |hl-TermCursorNC| Z Cursor in an unfocused terminal
- |hl-NonText| @ '@' at the end of the window and
- characters from 'showbreak'
- |hl-Directory| d directories in CTRL-D listing and other special
- things in listings
- |hl-ErrorMsg| e error messages
- |hl-IncSearch| i 'incsearch' highlighting
- |hl-Search| l last search pattern highlighting (see 'hlsearch')
- |hl-MoreMsg| m |more-prompt|
- |hl-ModeMsg| M Mode (e.g., "-- INSERT --")
- |hl-LineNr| n line number for ":number" and ":#" commands, and
- when 'number' or 'relativenumber' option is set.
- |hl-CursorLineNr| N like n for when 'cursorline' or 'relativenumber' is
- set.
- |hl-Question| r |hit-enter| prompt and yes/no questions
- |hl-StatusLine| s status line of current window |status-line|
- |hl-StatusLineNC| S status lines of not-current windows
- |hl-Title| t Titles for output from ":set all", ":autocmd" etc.
- |hl-VertSplit| c column used to separate vertically split windows
- |hl-Visual| v Visual mode
- |hl-WarningMsg| w warning messages
- |hl-WildMenu| W wildcard matches displayed for 'wildmenu'
- |hl-Folded| f line used for closed folds
- |hl-FoldColumn| F 'foldcolumn'
- |hl-DiffAdd| A added line in diff mode
- |hl-DiffChange| C changed line in diff mode
- |hl-DiffDelete| D deleted line in diff mode
- |hl-DiffText| T inserted text in diff mode
- |hl-SignColumn| > column used for |signs|
- |hl-SpellBad| B misspelled word |spell|
- |hl-SpellCap| P word that should start with capital |spell|
- |hl-SpellRare| R rare word |spell|
- |hl-SpellLocal| L word from other region |spell|
- |hl-Conceal| - the placeholders used for concealed characters
- (see 'conceallevel')
- |hl-Pmenu| + popup menu normal line
- |hl-PmenuSel| = popup menu normal line
- |hl-PmenuSbar| x popup menu scrollbar
- |hl-PmenuThumb| X popup menu scrollbar thumb
-
- The display modes are:
- r reverse (termcap entry "mr" and "me")
- i italic (termcap entry "ZH" and "ZR")
- b bold (termcap entry "md" and "me")
- s standout (termcap entry "so" and "se")
- u underline (termcap entry "us" and "ue")
- c undercurl (termcap entry "Cs" and "Ce")
- n no highlighting
- - no highlighting
- : use a highlight group
- The default is used for occasions that are not included.
- When using the ':' display mode, this must be followed by the name of
- a highlight group. A highlight group can be used to define any type
- of highlighting, including using color. See |:highlight| on how to
- define one. The default uses a different group for each occasion.
- See |highlight-default| for the default highlight groups.
-
- *'hlsearch'* *'hls'* *'nohlsearch'* *'nohls'*
-'hlsearch' 'hls' boolean (default on)
- global
- {not available when compiled without the
- |+extra_search| feature}
- When there is a previous search pattern, highlight all its matches.
- The type of highlighting used can be set with the 'l' occasion in the
- 'highlight' option. This uses the "Search" highlight group by
- default. Note that only the matching text is highlighted, any offsets
- are not applied.
- See also: 'incsearch' and |:match|.
- When you get bored looking at the highlighted matches, you can turn it
- off with |:nohlsearch|. This does not change the option value, as
- soon as you use a search command, the highlighting comes back.
- 'redrawtime' specifies the maximum time spent on finding matches.
- When the search pattern can match an end-of-line, Vim will try to
- highlight all of the matched text. However, this depends on where the
- search starts. This will be the first line in the window or the first
- line below a closed fold. A match in a previous line which is not
- drawn may not continue in a newly drawn line.
- You can specify whether the highlight status is restored on startup
- with the 'h' flag in 'shada' |shada-h|.
-
*'history'* *'hi'*
'history' 'hi' number (Vim default: 10000, Vi default: 0)
global
@@ -3310,6 +3125,27 @@ A jump table for the options with a short description can be found at |Q_op|.
This is useful if you have a non-Hebrew keyboard.
See |rileft.txt|.
+ *'hlsearch'* *'hls'* *'nohlsearch'* *'nohls'*
+'hlsearch' 'hls' boolean (default on)
+ global
+ {not available when compiled without the
+ |+extra_search| feature}
+ When there is a previous search pattern, highlight all its matches.
+ The |hl-Search| highlight group determines the highlighting. Note that
+ only the matching text is highlighted, any offsets are not applied.
+ See also: 'incsearch' and |:match|.
+ When you get bored looking at the highlighted matches, you can turn it
+ off with |:nohlsearch|. This does not change the option value, as
+ soon as you use a search command, the highlighting comes back.
+ 'redrawtime' specifies the maximum time spent on finding matches.
+ When the search pattern can match an end-of-line, Vim will try to
+ highlight all of the matched text. However, this depends on where the
+ search starts. This will be the first line in the window or the first
+ line below a closed fold. A match in a previous line which is not
+ drawn may not continue in a newly drawn line.
+ You can specify whether the highlight status is restored on startup
+ with the 'h' flag in 'shada' |shada-h|.
+
*'icon'* *'noicon'*
'icon' boolean (default off, on when title can be restored)
global
@@ -3459,10 +3295,12 @@ A jump table for the options with a short description can be found at |Q_op|.
original position when no match is found and when pressing <Esc>. You
still need to finish the search command with <Enter> to move the
cursor to the match.
+ You can use the CTRL-G and CTRL-T keys to move to the next and
+ previous match. |c_CTRL-G| |c_CTRL-T|
Vim only searches for about half a second. With a complicated
pattern and/or a lot of text the match may not be found. This is to
avoid that Vim hangs while you are typing the pattern.
- The highlighting can be set with the 'i' flag in 'highlight'.
+ The |hl-IncSearch| highlight group determines the highlighting.
See also: 'hlsearch'.
CTRL-L can be used to add one character from after the current match
to the command line. If 'ignorecase' and 'smartcase' are set and the
@@ -3532,7 +3370,7 @@ A jump table for the options with a short description can be found at |Q_op|.
if you want to use Vim as a modeless editor.
These Insert mode commands will be useful:
- Use the cursor keys to move around.
- - Use CTRL-O to execute one Normal mode command |i_CTRL-O|). When
+ - Use CTRL-O to execute one Normal mode command |i_CTRL-O|. When
this is a mapping, it is executed as if 'insertmode' was off.
Normal mode remains active until the mapping is finished.
- Use CTRL-L to execute a number of Normal mode commands, then use
@@ -3722,6 +3560,8 @@ A jump table for the options with a short description can be found at |Q_op|.
be able to execute Normal mode commands.
This is the opposite of the 'keymap' option, where characters are
mapped in Insert mode.
+ Also consider resetting 'langremap' to avoid 'langmap' applies to
+ characters resulting from a mapping.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@@ -3776,12 +3616,12 @@ A jump table for the options with a short description can be found at |Q_op|.
:source $VIMRUNTIME/menu.vim
< Warning: This deletes all menus that you defined yourself!
- *'langnoremap'* *'lnr'*
-'langnoremap' 'lnr' boolean (default on)
+ *'langremap'* *'lrm'* *'nolangremap'* *'nolrm'*
+'langremap' 'lrm' boolean (default off)
global
- When on, setting 'langmap' does not apply to characters resulting from
+ When off, setting 'langmap' does not apply to characters resulting from
a mapping. If setting 'langmap' disables some of your mappings, make
- sure this option is set.
+ sure this option is off.
*'laststatus'* *'ls'*
'laststatus' 'ls' number (default 2)
@@ -3830,9 +3670,6 @@ A jump table for the options with a short description can be found at |Q_op|.
use this command to get the tallest window possible: >
:set lines=999
< Minimum value is 2, maximum value is 1000.
- If you get less lines than expected, check the 'guiheadroom' option.
- When you set this option and Vim is unable to change the physical
- number of lines of the display, the display may be messed up.
*'linespace'* *'lsp'*
'linespace' 'lsp' number (default 0, 1 for Win32 GUI)
@@ -3932,9 +3769,8 @@ A jump table for the options with a short description can be found at |Q_op|.
:set lcs=tab:>-,trail:-
:set lcs=tab:>-,eol:<,nbsp:%
:set lcs=extends:>,precedes:<
-< The "NonText" highlighting will be used for "eol", "extends" and
- "precedes". "SpecialKey" for "nbsp", "space", "tab" and "trail".
- |hl-NonText| |hl-SpecialKey|
+< |hl-NonText| highlighting will be used for "eol", "extends" and
+ "precedes". |hl-Whitespace| for "nbsp", "space", "tab" and "trail".
*'lpl'* *'nolpl'* *'loadplugins'* *'noloadplugins'*
'loadplugins' 'lpl' boolean (default on)
@@ -3950,10 +3786,11 @@ A jump table for the options with a short description can be found at |Q_op|.
global
Changes the special characters that can be used in search patterns.
See |pattern|.
- NOTE: To avoid portability problems with using patterns, always keep
- this option at the default "on". Only switch it off when working with
- old Vi scripts. In any other situation write patterns that work when
- 'magic' is on. Include "\M" when you want to |/\M|.
+ WARNING: Switching this option off most likely breaks plugins! That
+ is because many patterns assume it's on and will fail when it's off.
+ Only switch it off when working with old Vi scripts. In any other
+ situation write patterns that work when 'magic' is on. Include "\M"
+ when you want to |/\M|.
*'makeef'* *'mef'*
'makeef' 'mef' string (default: "")
@@ -4008,7 +3845,7 @@ A jump table for the options with a short description can be found at |Q_op|.
:au FileType c,cpp,java set mps+==:;
< For a more advanced way of using "%", see the matchit.vim plugin in
- the $VIMRUNTIME/macros directory. |add-local-help|
+ the $VIMRUNTIME/plugin directory. |add-local-help|
*'matchtime'* *'mat'*
'matchtime' 'mat' number (default 5)
@@ -4038,6 +3875,8 @@ A jump table for the options with a short description can be found at |Q_op|.
catches endless recursion. When using a recursive function with
more depth, set 'maxfuncdepth' to a bigger number. But this will use
more memory, there is the danger of failing when memory is exhausted.
+ Increasing this limit above 200 also changes the maximum for Ex
+ command resursion, see |E169|.
See also |:function|.
*'maxmapdepth'* *'mmd'* *E223*
@@ -4149,7 +3988,7 @@ A jump table for the options with a short description can be found at |Q_op|.
local to buffer
When off the buffer contents cannot be changed. The 'fileformat' and
'fileencoding' options also can't be changed.
- Can be reset with the |-M| command line argument.
+ Can be reset on startup with the |-M| command line argument.
*'modified'* *'mod'* *'nomodified'* *'nomod'*
'modified' 'mod' boolean (default off)
@@ -4182,7 +4021,7 @@ A jump table for the options with a short description can be found at |Q_op|.
listing continues until finished.
*'mouse'* *E538*
-'mouse' string (default "a")
+'mouse' string (default "")
global
Enable the use of the mouse. Only works for certain terminals.
@@ -4442,7 +4281,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'paste'* *'nopaste'*
'paste' boolean (default off)
global
- You probably don't have to set this option: |bracketed-paste-mode|.
+ This option is obsolete; |bracketed-paste-mode| is built-in.
Put Vim in Paste mode. This is useful if you want to cut or copy
some text from one window and paste it in Vim. This will avoid
@@ -4506,7 +4345,8 @@ A jump table for the options with a short description can be found at |Q_op|.
Note that typing <F10> in paste mode inserts "<F10>", since in paste
mode everything is inserted literally, except the 'pastetoggle' key
sequence.
- When the value has several bytes 'ttimeoutlen' applies.
+ No timeout is used, this means that a multi-key 'pastetoggle' can not
+ be triggered manually.
*'pex'* *'patchexpr'*
'patchexpr' 'pex' string (default "")
@@ -4646,6 +4486,8 @@ A jump table for the options with a short description can be found at |Q_op|.
and |+postscript| features}
Expression used to print the PostScript produced with |:hardcopy|.
See |pexpr-option|.
+ This option cannot be set from a |modeline| or in the |sandbox|, for
+ security reasons.
*'printfont'* *'pfn'*
'printfont' 'pfn' string (default "courier")
@@ -4720,6 +4562,7 @@ A jump table for the options with a short description can be found at |Q_op|.
buffer, unless the 'Z' flag is in 'cpoptions'.
When using the ":view" command the 'readonly' option is
set for the newly edited buffer.
+ See 'modifiable' for disallowing changes to the buffer.
*'redrawtime'* *'rdt'*
'redrawtime' 'rdt' number (default 2000)
@@ -4919,7 +4762,9 @@ A jump table for the options with a short description can be found at |Q_op|.
ordering. This is for preferences to overrule or add to the
distributed defaults or system-wide settings (rarely needed).
- More entries are added when using |packages|.
+ More entries are added when using |packages|. If it gets very long
+ then `:set rtp` will be truncated, use `:echo &rtp` to see the full
+ string.
Note that, unlike 'path', no wildcards like "**" are allowed. Normal
wildcards are allowed, but can significantly slow down searching for
@@ -4950,12 +4795,12 @@ A jump table for the options with a short description can be found at |Q_op|.
height with ":set scroll=0".
*'scrollback'* *'scbk'*
-'scrollback' 'scbk' number (default: 1000
+'scrollback' 'scbk' number (default: 10000
in normal buffers: -1)
local to buffer
Maximum number of lines kept beyond the visible screen. Lines at the
top are deleted if new lines exceed this limit.
- Only in |terminal-emulator| buffers. 'buftype'
+ Only in |terminal| buffers.
-1 means "unlimited" for normal buffers, 100000 otherwise.
Minimum is 1.
@@ -5062,6 +4907,8 @@ A jump table for the options with a short description can be found at |Q_op|.
"inclusive" means that the last character of the selection is included
in an operation. For example, when "x" is used to delete the
selection.
+ When "old" is used and 'virtualedit' allows the cursor to move past
+ the end of line the line break still isn't included.
Note that when "exclusive" is used and selecting from the end
backwards, you cannot include the last character of a line, when
starting in Normal mode and 'virtualedit' empty.
@@ -5185,8 +5032,8 @@ A jump table for the options with a short description can be found at |Q_op|.
saved. When not included, the value of 'history' is used.
*shada-c*
c Dummy option, kept for compatibility reasons. Has no actual
- effect. Current encoding state is described in
- |shada-encoding|.
+ effect: ShaDa always uses UTF-8 and 'encoding' value is fixed
+ to UTF-8 as well.
*shada-f*
f Whether file marks need to be stored. If zero, file marks ('0
to '9, 'A to 'Z) are not stored. When not present or when
@@ -5285,9 +5132,7 @@ A jump table for the options with a short description can be found at |Q_op|.
security reasons.
*'shellcmdflag'* *'shcf'*
-'shellcmdflag' 'shcf' string (default: "-c";
- Windows, when 'shell' does not
- contain "sh" somewhere: "/c")
+'shellcmdflag' 'shcf' string (default: "-c"; Windows: "/c")
global
Flag passed to the shell to execute "!" and ":!" commands; e.g.,
"bash.exe -c ls" or "cmd.exe /c dir". For Windows
@@ -5298,15 +5143,12 @@ A jump table for the options with a short description can be found at |Q_op|.
See |option-backslash| about including spaces and backslashes.
See |shell-unquoting| which talks about separating this option into
multiple arguments.
- Also see |dos-shell| for Windows.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'shellpipe'* *'sp'*
'shellpipe' 'sp' string (default ">", "| tee", "|& tee" or "2>&1| tee")
global
- {not available when compiled without the |+quickfix|
- feature}
String to be used to put the output of the ":make" command in the
error file. See also |:make_makeprg|. See |option-backslash| about
including spaces and backslashes.
@@ -5348,7 +5190,7 @@ A jump table for the options with a short description can be found at |Q_op|.
third-party shells on Windows systems, such as the MKS Korn Shell
or bash, where it should be "\"". The default is adjusted according
the value of 'shell', to reduce the need to set this option by the
- user. See |dos-shell|.
+ user.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@@ -5380,7 +5222,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'shellslash'* *'ssl'* *'noshellslash'* *'nossl'*
'shellslash' 'ssl' boolean (default off)
global
- {only for MSDOS and MS-Windows}
+ {only for Windows}
When set, a forward slash is used when expanding file names. This is
useful when a Unix-like shell is used instead of command.com or
cmd.exe. Backward slashes can still be typed, but they are changed to
@@ -5397,10 +5239,7 @@ A jump table for the options with a short description can be found at |Q_op|.
global
When on, use temp files for shell commands. When off use a pipe.
When using a pipe is not possible temp files are used anyway.
- Currently a pipe is only supported on Unix and MS-Windows 2K and
- later. You can check it with: >
- :if has("filterpipe")
-< The advantage of using a pipe is that nobody can read the temp file
+ The advantage of using a pipe is that nobody can read the temp file
and the 'shell' command does not need to support redirection.
The advantage of using a temp file is that the file type and encoding
can be detected.
@@ -5410,19 +5249,14 @@ A jump table for the options with a short description can be found at |Q_op|.
|system()| does not respect this option, it always uses pipes.
*'shellxescape'* *'sxe'*
-'shellxescape' 'sxe' string (default: "";
- for Windows: "\"&|<>()@^")
+'shellxescape' 'sxe' string (default: "")
global
When 'shellxquote' is set to "(" then the characters listed in this
option will be escaped with a '^' character. This makes it possible
to execute most external commands with cmd.exe.
*'shellxquote'* *'sxq'*
-'shellxquote' 'sxq' string (default: "";
- for Win32, when 'shell' is cmd.exe: "("
- for Win32, when 'shell' contains "sh"
- somewhere: "\""
- for Unix, when using system(): "\"")
+'shellxquote' 'sxq' string (default: "")
global
Quoting character(s), put around the command passed to the shell, for
the "!" and ":!" commands. Includes the redirection. See
@@ -5431,12 +5265,6 @@ A jump table for the options with a short description can be found at |Q_op|.
When the value is '(' then ')' is appended. When the value is '"('
then ')"' is appended.
When the value is '(' then also see 'shellxescape'.
- This is an empty string by default on most systems, but is known to be
- useful for on Win32 version, either for cmd.exe which automatically
- strips off the first and last quote on a command, or 3rd-party shells
- such as the MKS Korn Shell or bash, where it should be "\"". The
- default is adjusted according the value of 'shell', to reduce the need
- to set this option by the user. See |dos-shell|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@@ -5520,8 +5348,7 @@ A jump table for the options with a short description can be found at |Q_op|.
< Only printable single-cell characters are allowed, excluding <Tab> and
comma (in a future version the comma might be used to separate the
part that is shown at the end and at the start of a line).
- The characters are highlighted according to the '@' flag in
- 'highlight'.
+ The |hl-NonText| highlight group determines the highlighting.
Note that tabs after the showbreak will be displayed differently.
If you want the 'showbreak' to appear in between line numbers, add the
"n" flag to 'cpoptions'.
@@ -5576,10 +5403,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'showmode' 'smd' boolean (Vim default: on, Vi default: off)
global
If in Insert, Replace or Visual mode put a message on the last line.
- Use the 'M' flag in 'highlight' to set the type of highlighting for
- this message.
- When |XIM| may be used the message will include "XIM". But this
- doesn't mean XIM is really active.
+ The |hl-ModeMsg| highlight group determines the highlighting.
*'showtabline'* *'stal'*
'showtabline' 'stal' number (default 1)
@@ -5842,7 +5666,7 @@ A jump table for the options with a short description can be found at |Q_op|.
word. The expression must evaluate to a List of
Lists, each with a suggestion and a score.
Example:
- [['the', 33], ['that', 44]]
+ [['the', 33], ['that', 44]] ~
Set 'verbose' and use |z=| to see the scores that the
internal methods use. A lower score is better.
This may invoke |spellsuggest()| if you temporarily
@@ -6423,7 +6247,7 @@ A jump table for the options with a short description can be found at |Q_op|.
for any key that can follow <c-f> in a mapping.
*'ttimeout'* *'nottimeout'*
-'ttimeout' boolean (default off)
+'ttimeout' boolean (default on)
global
This option and 'ttimeoutlen' determine the behavior when part of a
key code sequence has been received by the terminal UI. For example,
@@ -6438,20 +6262,18 @@ A jump table for the options with a short description can be found at |Q_op|.
complete.
*'ttimeoutlen'* *'ttm'*
-'ttimeoutlen' 'ttm' number (default -1)
+'ttimeoutlen' 'ttm' number (default 50)
global
The time in milliseconds that is waited for a key code
sequence to complete. Also used for CTRL-\ CTRL-N and CTRL-\ CTRL-G
when part of a command has been typed.
*'title'* *'notitle'*
-'title' boolean (default off, on when title can be restored)
+'title' boolean (default off)
global
- {not available when compiled without the |+title|
- feature}
When on, the title of the window will be set to the value of
'titlestring' (if it is not empty), or to:
- filename [+=-] (path) - VIM
+ filename [+=-] (path) - NVIM
Where:
filename the name of the file being edited
- indicates the file cannot be modified, 'ma' off
@@ -6459,17 +6281,11 @@ A jump table for the options with a short description can be found at |Q_op|.
= indicates the file is read-only
=+ indicates the file is read-only and modified
(path) is the path of the file being edited
- - VIM the server name |v:servername| or "VIM"
- Only works if the terminal supports setting window titles
- (currently Win32 console, all GUI versions and terminals with a non-
- empty 't_ts' option - this is Unix xterm by default, where 't_ts' is
- taken from the builtin termcap).
+ - NVIM the server name |v:servername| or "NVIM"
*'titlelen'*
'titlelen' number (default 85)
global
- {not available when compiled without the |+title|
- feature}
Gives the percentage of 'columns' to use for the length of the window
title. When the title is longer, only the end of the path name is
shown. A '<' character before the path name is used to indicate this.
@@ -6481,25 +6297,17 @@ A jump table for the options with a short description can be found at |Q_op|.
'titlelen' is also used for the 'titlestring' option.
*'titleold'*
-'titleold' string (default "Thanks for flying Vim")
+'titleold' string (default "")
global
- {only available when compiled with the |+title|
- feature}
- This option will be used for the window title when exiting Vim if the
- original title cannot be restored. Only happens if 'title' is on or
- 'titlestring' is not empty.
+ If not empty, this option will be used to set the window title when
+ exiting. Only if 'title' is enabled.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'titlestring'*
'titlestring' string (default "")
global
- {not available when compiled without the |+title|
- feature}
When this option is not empty, it will be used for the title of the
window. This happens only when the 'title' option is on.
- Only works if the terminal supports setting window titles (currently
- Win32 console, all GUI versions and terminals with a non-empty 't_ts'
- option).
When this option contains printf-style '%' items, they will be
expanded according to the rules used for 'statusline'.
Example: >
@@ -6578,7 +6386,7 @@ A jump table for the options with a short description can be found at |Q_op|.
Save the whole buffer for undo when reloading it. This applies to the
":e!" command and reloading for when the buffer changed outside of
Vim. |FileChangedShell|
- The save only happens when this options is negative or when the number
+ The save only happens when this option is negative or when the number
of lines is smaller than the value of this option.
Set this option to zero to disable undo for a reload.
@@ -6651,7 +6459,7 @@ A jump table for the options with a short description can be found at |Q_op|.
security reasons.
*'viewoptions'* *'vop'*
-'viewoptions' 'vop' string (default: "folds,options,cursor")
+'viewoptions' 'vop' string (default: "folds,options,cursor,curdir")
global
{not available when compiled without the |+mksession|
feature}
@@ -6659,6 +6467,7 @@ A jump table for the options with a short description can be found at |Q_op|.
list of words. Each word enables saving and restoring something:
word save and restore ~
cursor cursor position in file and in window
+ curdir local current directory, if set with |:lcd|
folds manually created folds, opened/closed folds and local
fold options
options options and mappings local to a window or buffer (not
@@ -6938,6 +6747,24 @@ A jump table for the options with a short description can be found at |Q_op|.
'winheight' applies to the current window. Use 'winminheight' to set
the minimal height for other windows.
+ *'winhighlight'* *'winhl'*
+'winhighlight' 'winhl' string (default empty)
+ local to window
+ Window-local highlights. Comma-delimited list of highlight
+ |group-name| pairs "{hl-builtin}:{hl},..." where each {hl-builtin} is
+ a built-in |highlight-groups| item to be overridden by {hl} group in
+ the window. Only built-in |highlight-groups| are supported, not
+ syntax highlighting (use |:ownsyntax| for that).
+
+ Highlights of vertical separators are determined by the window to the
+ left of the separator. The highlight of a tabpage in |tabline| is
+ determined by the last-focused window of the tabpage. Highlights of
+ the popupmenu are determined by the current window. Highlights in the
+ message area cannot be overridden.
+
+ Example: show a different color for non-current windows: >
+ set winhighlight=Normal:MyNormal,NormalNC:MyNormalNC
+<
*'winfixheight'* *'wfh'* *'nowinfixheight'* *'nowfh'*
'winfixheight' 'wfh' boolean (default off)
local to window
diff --git a/runtime/doc/os_win32.txt b/runtime/doc/os_win32.txt
deleted file mode 100644
index 5dc276c9df..0000000000
--- a/runtime/doc/os_win32.txt
+++ /dev/null
@@ -1,206 +0,0 @@
-*os_win32.txt* For Vim version 7.4. Last change: 2016 Mar 05
-
-
- VIM REFERENCE MANUAL by George Reilly
-
-
- *win32* *Win32* *MS-Windows*
-This file documents the idiosyncrasies of the Win32 version of Vim.
-
-The Win32 version of Vim works on Windows XP, Vista and Windows 7.
-There are both console and GUI versions.
-
-The 32 bit version also runs on 64 bit MS-Windows systems.
-
-1. Known problems |win32-problems|
-2. Startup |win32-startup|
-3. Using the mouse |win32-mouse|
-4. Win32 mini FAQ |win32-faq|
-
-Additionally, there are a number of common Win32 and DOS items:
-File locations |dos-locations|
-Using backslashes |dos-backslash|
-Standard mappings |dos-standard-mappings|
-Screen output and colors |dos-colors|
-File formats |dos-file-formats|
-:cd command |dos-:cd|
-Interrupting |dos-CTRL-Break|
-Temp files |dos-temp-files|
-Shell option default |dos-shell|
-
-Win32 GUI |gui-w32|
-
-Credits:
-The Win32 version was written by George V. Reilly <george@reilly.org>.
-The GUI version was made by George V. Reilly and Robert Webb.
-
-==============================================================================
-1. Known problems *win32-problems*
-
-When doing file name completion, Vim also finds matches for the short file
-name. But Vim will still find and use the corresponding long file name. For
-example, if you have the long file name "this_is_a_test" with the short file
-name "this_i~1", the command ":e *1" will start editing "this_is_a_test".
-
-==============================================================================
-2. Startup *win32-startup*
-
-Current directory *win32-curdir*
-
-If Vim is started with a single file name argument, and it has a full path
-(starts with "x:\"), Vim assumes it was started from the file explorer and
-will set the current directory to where that file is. To avoid this when
-typing a command to start Vim, use a forward slash instead of a backslash.
-Example: >
-
- vim c:\text\files\foo.txt
-
-Will change to the "C:\text\files" directory. >
-
- vim c:/text\files\foo.txt
-
-Will use the current directory.
-
-
-Term option *win32-term*
-
-The only kind of terminal type that the Win32 version of Vim understands is
-"win32", which is built-in. If you set 'term' to anything else, you will
-probably get very strange behavior from Vim. Therefore Vim does not obtain
-the default value of 'term' from the environment variable "TERM".
-
-$PATH *win32-PATH*
-
-The directory of the Vim executable is appended to $PATH. This is mostly to
-make "!xxd" work, as it is in the Tools menu. And it also means that when
-executable() returns 1 the executable can actually be executed.
-
-Quotes in file names *win32-quotes*
-
-Quotes inside a file name (or any other command line argument) can be escaped
-with a backslash. E.g. >
- vim -c "echo 'foo\"bar'"
-
-Alternatively use three quotes to get one: >
- vim -c "echo 'foo"""bar'"
-
-The quotation rules are:
-
-1. A `"` starts quotation.
-2. Another `"` or `""` ends quotation. If the quotation ends with `""`, a `"`
- is produced at the end of the quoted string.
-
-Examples, with [] around an argument:
- "foo" -> [foo]
- "foo"" -> [foo"]
- "foo"bar -> [foobar]
- "foo" bar -> [foo], [bar]
- "foo""bar -> [foo"bar]
- "foo"" bar -> [foo"], [bar]
- "foo"""bar" -> [foo"bar]
-
-
-==============================================================================
-3. Using the mouse *win32-mouse*
-
-The Win32 version of Vim supports using the mouse. If you have a two-button
-mouse, the middle button can be emulated by pressing both left and right
-buttons simultaneously - but note that in the Win32 GUI, if you have the right
-mouse button pop-up menu enabled (see 'mouse'), you should err on the side of
-pressing the left button first. |mouse-using|
-
-When the mouse doesn't work, try disabling the "Quick Edit Mode" feature of
-the console.
-
-==============================================================================
-4. Win32 mini FAQ *win32-faq*
-
-Q. How do I change the font?
-A. In the GUI version, you can use the 'guifont' option. Example: >
- :set guifont=Lucida_Console:h15:cDEFAULT
-< In the console version, you need to set the font of the console itself.
- You cannot do this from within Vim.
-
-Q. I'm using Vim to edit a symbolically linked file on a Unix NFS file server.
- When I write the file, Vim does not "write through" the symlink. Instead,
- it deletes the symbolic link and creates a new file in its place. Why?
-A. On Unix, Vim is prepared for links (symbolic or hard). A backup copy of
- the original file is made and then the original file is overwritten. This
- assures that all properties of the file remain the same. On non-Unix
- systems, the original file is renamed and a new file is written. Only the
- protection bits are set like the original file. However, this doesn't work
- properly when working on an NFS-mounted file system where links and other
- things exist. The only way to fix this in the current version is not
- making a backup file, by ":set nobackup nowritebackup" |'writebackup'|
-
-Q. I'm using Vim to edit a file on a Unix file server through Samba. When I
- write the file, the owner of the file is changed. Why?
-A. When writing a file Vim renames the original file, this is a backup (in
- case writing the file fails halfway). Then the file is written as a new
- file. Samba then gives it the default owner for the file system, which may
- differ from the original owner.
- To avoid this set the 'backupcopy' option to "yes". Vim will then make a
- copy of the file for the backup, and overwrite the original file. The
- owner isn't changed then.
-
-Q. How do I get to see the output of ":make" while it's running?
-A. Basically what you need is to put a tee program that will copy its input
- (the output from make) to both stdout and to the errorfile. You can find a
- copy of tee (and a number of other GNU tools) at
- http://gnuwin32.sourceforge.net or http://unxutils.sourceforge.net
- Alternatively, try the more recent Cygnus version of the GNU tools at
- http://www.cygwin.com Other Unix-style tools for Win32 are listed at
- http://directory.google.com/Top/Computers/Software/Operating_Systems/Unix/Win32/
- When you do get a copy of tee, you'll need to add >
- :set shellpipe=\|\ tee
-< to your _vimrc.
-
- *:!start*
-Q. How can I run an external command or program asynchronously?
-A. When using :! to run an external command, you can run it with "start": >
- :!start winfile.exe<CR>
-< Using "start" stops Vim switching to another screen, opening a new console,
- or waiting for the program to complete; it indicates that you are running a
- program that does not affect the files you are editing. Programs begun
- with :!start do not get passed Vim's open file handles, which means they do
- not have to be closed before Vim.
- To avoid this special treatment, use ":! start".
- There are two optional arguments (see the next Q):
- /min the window will be minimized
- /b no console window will be opened
- You can use only one of these flags at a time. A second one will be
- treated as the start of the command.
-
-Q. How do I avoid getting a window for programs that I run asynchronously?
-A. You have two possible solutions depending on what you want:
- 1) You may use the /min flag in order to run program in a minimized state
- with no other changes. It will work equally for console and GUI
- applications.
- 2) You can use the /b flag to run console applications without creating a
- console window for them (GUI applications are not affected). But you
- should use this flag only if the application you run doesn't require any
- input. Otherwise it will get an EOF error because its input stream
- (stdin) would be redirected to \\.\NUL (stdout and stderr too).
-
- Example for a console application, run Exuberant ctags: >
- :!start /min ctags -R .
-< When it has finished you should see file named "tags" in your current
- directory. You should notice the window title blinking on your taskbar.
- This is more noticeable for commands that take longer.
- Now delete the "tags" file and run this command: >
- :!start /b ctags -R .
-< You should have the same "tags" file, but this time there will be no
- blinking on the taskbar.
- Example for a GUI application: >
- :!start /min notepad
- :!start /b notepad
-< The first command runs notepad minimized and the second one runs it
- normally.
-
- *windows-icon*
-Q. I don't like the Vim icon, can I change it?
-A. Yes, place your favorite icon in bitmaps/vim.ico in a directory of
- 'runtimepath'. For example ~/vimfiles/bitmaps/vim.ico.
-
-
- vim:tw=78:fo=tcq2:ts=8:ft=help:norl:
diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt
index f3f5bcbd66..ab78b8b71c 100644
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -1,4 +1,4 @@
-*pattern.txt* For Vim version 7.4. Last change: 2016 Jun 08
+*pattern.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -9,16 +9,7 @@ Patterns and search commands *pattern-searches*
The very basics can be found in section |03.9| of the user manual. A few more
explanations are in chapter 27 |usr_27.txt|.
-1. Search commands |search-commands|
-2. The definition of a pattern |search-pattern|
-3. Magic |/magic|
-4. Overview of pattern items |pattern-overview|
-5. Multi items |pattern-multi-items|
-6. Ordinary atoms |pattern-atoms|
-7. Ignoring case in a pattern |/ignorecase|
-8. Composing characters |patterns-composing|
-9. Compare with Perl patterns |perl-patterns|
-10. Highlighting matches |match-highlight|
+ Type |gO| to see the table of contents.
==============================================================================
1. Search commands *search-commands*
@@ -130,8 +121,7 @@ gD Goto global Declaration. When the cursor is on a
ends before the cursor position.
*CTRL-C*
-CTRL-C Interrupt current (search) command. Use CTRL-Break on
- Windows |dos-CTRL-Break|.
+CTRL-C Interrupt current (search) command.
In Normal mode, any pending command is aborted.
*:noh* *:nohlsearch*
@@ -354,8 +344,8 @@ For starters, read chapter 27 of the user manual |usr_27.txt|.
*/\%#=* *two-engines* *NFA*
Vim includes two regexp engines:
1. An old, backtracking engine that supports everything.
-2. A new, NFA engine that works much faster on some patterns, but does not
- support everything.
+2. A new, NFA engine that works much faster on some patterns, possibly slower
+ on some patterns.
Vim will automatically select the right engine for you. However, if you run
into a problem or want to specifically select one engine or the other, you can
@@ -863,10 +853,13 @@ $ At end of pattern or in front of "\|", "\)" or "\n" ('magic' on):
\%V Match inside the Visual area. When Visual mode has already been
stopped match in the area that |gv| would reselect.
This is a |/zero-width| match. To make sure the whole pattern is
- inside the Visual area put it at the start and end of the pattern,
- e.g.: >
+ inside the Visual area put it at the start and just before the end of
+ the pattern, e.g.: >
+ /\%Vfoo.*ba\%Vr
+< This also works if only "foo bar" was Visually selected. This: >
/\%Vfoo.*bar\%V
-< Only works for the current buffer.
+< would match "foo bar" if the Visual selection continues after the "r".
+ Only works for the current buffer.
*/\%#* *cursor-position*
\%# Matches with the cursor position. Only works when matching in a
@@ -1065,12 +1058,16 @@ x A single character, with no special meaning, matches itself
":s/[/x/" searches for "[/x" and replaces it with nothing. It does
not search for "[" and replaces it with "x"!
+ *E944* *E945*
If the sequence begins with "^", it matches any single character NOT
in the collection: "[^xyz]" matches anything but 'x', 'y' and 'z'.
- If two characters in the sequence are separated by '-', this is
shorthand for the full list of ASCII characters between them. E.g.,
- "[0-9]" matches any decimal digit. Non-ASCII characters can be
- used, but the character values must not be more than 256 apart.
+ "[0-9]" matches any decimal digit. If the starting character exceeds
+ the ending character, e.g. [c-a], E944 occurs. Non-ASCII characters
+ can be used, but the character values must not be more than 256 apart
+ in the old regexp engine. For example, searching by [\u3000-\u4000]
+ after setting re=1 emits a E945 error. Prepending \%#=2 will fix it.
- A character class expression is evaluated to the set of characters
belonging to that character class. The following character classes
are supported:
diff --git a/runtime/doc/pi_gzip.txt b/runtime/doc/pi_gzip.txt
index df0ba5e52e..f024db1260 100644
--- a/runtime/doc/pi_gzip.txt
+++ b/runtime/doc/pi_gzip.txt
@@ -1,4 +1,4 @@
-*pi_gzip.txt* For Vim version 7.4. Last change: 2012 Jul 19
+*pi_gzip.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -25,6 +25,8 @@ with these extensions:
*.bz2 bzip2
*.lzma lzma
*.xz xz
+ *.lz lzip
+ *.zst zstd
That's actually the only thing you need to know. There are no options.
diff --git a/runtime/doc/pi_health.txt b/runtime/doc/pi_health.txt
index 69833103d1..bb688770fc 100644
--- a/runtime/doc/pi_health.txt
+++ b/runtime/doc/pi_health.txt
@@ -2,56 +2,45 @@
Author: TJ DeVries <devries.timothyj@gmail.com>
-==============================================================================
-1. Introduction |health.vim-intro|
-2. Commands and functions |health.vim-manual|
-3. Create a healthcheck |health.vim-dev|
+ Type |gO| to see the table of contents.
==============================================================================
-Introduction *healthcheck* *health.vim-intro*
+Introduction *health*
-Troubleshooting user configuration problems is a time-consuming task that
-developers want to minimize. health.vim provides a simple framework for plugin
-authors to hook into, and for users to invoke, to check and report the user's
-configuration and environment. Type this command to try it: >
+health.vim is a minimal framework to help with troubleshooting user
+configuration. Nvim ships with healthchecks for configuration, performance,
+python support, ruby support, clipboard support, and more.
- :CheckHealth
-<
-For example, some users have broken or unusual Python setups, which breaks the
-|:python| command. |:CheckHealth| detects several common Python configuration
-problems and reports them. If the Neovim Python module is not installed, it
-shows a warning: >
+To run the healthchecks, use this command: >
- You have not installed the Neovim Python module
- You might want to try `pip install Neovim`
-<
-Plugin authors are encouraged to add healthchecks, see |health.vim-dev|.
+ :checkhealth
+<
+Plugin authors are encouraged to write new healthchecks. |health-dev|
==============================================================================
-Commands and functions *health.vim-manual*
-
-Commands
-------------------------------------------------------------------------------
- *:CheckHealth*
-:CheckHealth Run all healthchecks and show the output in a new
- tabpage. These healthchecks are included by default:
- - python2
- - python3
- - ruby
- - remote plugin
-
-:CheckHealth {plugins}
- Run healthchecks for one or more plugins. E.g. to run
+Commands *health-commands*
+
+ *:checkhealth* *:CheckHealth*
+:checkhealth Run all healthchecks.
+ *E5009*
+ Nvim depends on |$VIMRUNTIME| and 'runtimepath' to find
+ the standard "runtime files" for syntax highlighting,
+ filetype-specific behavior, and standard plugins
+ (including :checkhealth). If the runtime files cannot
+ be found then those features will not work.
+
+:checkhealth {plugins}
+ Run healthcheck(s) for one or more plugins. E.g. to run
only the standard Nvim healthcheck: >
- :CheckHealth nvim
+ :checkhealth nvim
< To run the healthchecks for the "foo" and "bar" plugins
(assuming these plugins are on your 'runtimepath' and
they have implemented health#foo#check() and
health#bar#check(), respectively): >
- :CheckHealth foo bar
+ :checkhealth foo bar
<
-Functions
-------------------------------------------------------------------------------
+==============================================================================
+Functions *health-functions*
health.vim functions are for creating new healthchecks. They mostly just do
some layout and formatting, to give users a consistent presentation.
@@ -62,54 +51,49 @@ health#report_start({name}) *health#report_start*
per section.
health#report_info({msg}) *health#report_info*
- Displays an informational message.
+ Reports an informational message.
health#report_ok({msg}) *health#report_ok*
- Displays a "success" message.
+ Reports a "success" message.
-health#report_warn({msg}, [{suggestions}]) *health#report_warn*
- Displays a warning. {suggestions} is an optional List of suggestions.
+health#report_warn({msg}, [{advice}]) *health#report_warn*
+ Reports a warning. {advice} is an optional List of suggestions.
-health#report_error({msg}, [{suggestions}]) *health#report_error*
- Displays an error. {suggestions} is an optional List of suggestions.
+health#report_error({msg}, [{advice}]) *health#report_error*
+ Reports an error. {advice} is an optional List of suggestions.
health#{plugin}#check() *health.user_checker*
- This is the form of a healthcheck definition. Call the above functions
- from this function, then |:CheckHealth| does the rest. Example: >
+ Healthcheck function for {plugin}. Called by |:checkhealth|
+ automatically. Example: >
function! health#my_plug#check() abort
silent call s:check_environment_vars()
silent call s:check_python_configuration()
endfunction
<
- The function will be found and called automatically when the user
- invokes |:CheckHealth|.
-
All output will be captured from the healthcheck. Use the
health#report_* functions so that your healthcheck has a format
consistent with the standard healthchecks.
==============================================================================
-Create a healthcheck *health.vim-dev*
+Create a healthcheck *health-dev*
-Healthchecks are functions that check the health of the system. Neovim has
-built-in checkers, found in $VIMRUNTIME/autoload/health/.
+Healthchecks are functions that check the user environment, configuration,
+etc. Nvim has built-in healthchecks in $VIMRUNTIME/autoload/health/.
-To add a new checker for your own plugin, simply define a
+To add a new healthcheck for your own plugin, simply define a
health#{plugin}#check() function in autoload/health/{plugin}.vim.
-|:CheckHealth| automatically finds and invokes such functions.
+|:checkhealth| automatically finds and invokes such functions.
-If your plugin is named "jslint", then its healthcheck function must be >
+If your plugin is named "foo", then its healthcheck function must be >
+ health#foo#check()
- health#jslint#check()
-<
defined in this file on 'runtimepath': >
+ autoload/health/foo.vim
- autoload/health/jslint.vim
-<
-Here's a sample to get started: >
-
- function! health#jslint#check() abort
+Copy this sample code into autoload/health/foo.vim and replace "foo" with your
+plugin name: >
+ function! health#foo#check() abort
call health#report_start('sanity checks')
" perform arbitrary checks
" ...
@@ -117,11 +101,11 @@ Here's a sample to get started: >
if looks_good
call health#report_ok('found required dependencies')
else
- call health#report_error('cannot find jslint',
- \ ['npm install --save jslint'])
+ call health#report_error('cannot find foo',
+ \ ['npm install --save foo'])
endif
endfunction
-<
+
==============================================================================
vim:tw=78:ts=8:ft=help:fdm=marker
diff --git a/runtime/doc/pi_matchit.txt b/runtime/doc/pi_matchit.txt
index c711cd588f..652734f7bb 100644
--- a/runtime/doc/pi_matchit.txt
+++ b/runtime/doc/pi_matchit.txt
@@ -1,6 +1,6 @@
*pi_matchit.txt* Extended "%" matching
-For Vim version 6.3. Last change: 2015 May 21
+For Vim version 6.3. Last change: 2017 May 14
*matchit* *matchit.vim*
@@ -211,7 +211,7 @@ Examples:
In LaTeX, since "%" is used as the comment character, you can >
:let b:match_skip = 'r:%'
< Unfortunately, this will skip anything after "\%", an escaped "%". To
- allow for this, and also "\\%" (an excaped backslash followed by the
+ allow for this, and also "\\%" (an escaped backslash followed by the
comment character) you can >
:let b:match_skip = 'r:\(^\|[^\\]\)\(\\\\\)*%'
<
@@ -356,7 +356,8 @@ The back reference '\'.d refers to the same thing as '\'.b:match_table[d] in
The various |:vmap|s defined in the script (%, |g%|, |[%|, |]%|, |a%|) may
have undesired effects in Select mode |Select-mode-mapping|. At least, if you
want to replace the selection with any character in "ag%[]" there will be a
-pause of |'updatetime'| first.
+pause of |'updatetime'| first. E.g., "yV%" would normally work linewise, but
+the plugin mapping makes it characterwise.
It would be nice if "\0" were recognized as the entire pattern. That is, it
would be nice if "foo:\end\0" had the same effect as "\(foo\):\end\1".
diff --git a/runtime/doc/pi_msgpack.txt b/runtime/doc/pi_msgpack.txt
index d695ac42cb..e9f77e70b0 100644
--- a/runtime/doc/pi_msgpack.txt
+++ b/runtime/doc/pi_msgpack.txt
@@ -1,4 +1,4 @@
-*pi_msgpack.txt* For NeoVim version 0.1.
+*pi_msgpack.txt* Nvim
Author: Nikolay Pavlov <kp-pav@yandex.ru>
Copyright: (c) 2015 by Nikolay Pavlov
diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt
index f740143c61..3e19f0b4af 100644
--- a/runtime/doc/pi_netrw.txt
+++ b/runtime/doc/pi_netrw.txt
@@ -1,4 +1,4 @@
-*pi_netrw.txt* For Vim version 7.4. Last change: 2016 Apr 20
+*pi_netrw.txt* Nvim
------------------------------------------------
NETRW REFERENCE MANUAL by Charles E. Campbell
@@ -530,7 +530,7 @@ variable (ex. scp uses the variable g:netrw_scp_cmd, which is defaulted to
let g:netrw_sftp_cmd= '"c:\Program Files\PuTTY\psftp.exe"'
<
(note: it has been reported that windows 7 with putty v0.6's "-batch" option
- doesn't work, so its best to leave it off for that system)
+ doesn't work, so it's best to leave it off for that system)
See |netrw-p8| for more about putty, pscp, psftp, etc.
@@ -1204,7 +1204,7 @@ The :NetrwMB command is available outside of netrw buffers (once netrw has been
invoked in the session).
The file ".netrwbook" holds bookmarks when netrw (and vim) is not active. By
-default, its stored on the first directory on the user's |'runtimepath'|.
+default, it's stored on the first directory on the user's |'runtimepath'|.
Related Topics:
|netrw-gb| how to return (go) to a bookmark
@@ -1429,7 +1429,7 @@ be used in that count.
*.netrwhist*
See |g:netrw_dirhistmax| for how to control the quantity of history stack
slots. The file ".netrwhist" holds history when netrw (and vim) is not
-active. By default, its stored on the first directory on the user's
+active. By default, it's stored on the first directory on the user's
|'runtimepath'|.
Related Topics:
@@ -3269,7 +3269,7 @@ The user function is passed one argument; it resembles >
fun! ExampleUserMapFunc(islocal)
<
-where a:islocal is 1 if its a local-directory system call or 0 when
+where a:islocal is 1 if it's a local-directory system call or 0 when
remote-directory system call.
Use netrw#Expose("varname") to access netrw-internal (script-local)
@@ -3593,7 +3593,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
*netrw-p16*
P16. When editing remote files (ex. :e ftp://hostname/path/file),
- under Windows I get an |E303| message complaining that its unable
+ under Windows I get an |E303| message complaining that it's unable
to open a swap file.
(romainl) It looks like you are starting Vim from a protected
@@ -3647,7 +3647,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
P21. I've made a directory (or file) with an accented character, but
netrw isn't letting me enter that directory/read that file:
- Its likely that the shell or o/s is using a different encoding
+ It's likely that the shell or o/s is using a different encoding
than you have vim (netrw) using. A patch to vim supporting
"systemencoding" may address this issue in the future; for
now, just have netrw use the proper encoding. For example: >
diff --git a/runtime/doc/pi_paren.txt b/runtime/doc/pi_paren.txt
index 534b3add29..4b425c6cbb 100644
--- a/runtime/doc/pi_paren.txt
+++ b/runtime/doc/pi_paren.txt
@@ -1,4 +1,4 @@
-*pi_paren.txt* For Vim version 7.4. Last change: 2013 May 08
+*pi_paren.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/pi_spec.txt b/runtime/doc/pi_spec.txt
index 650d1d369b..f4949db2af 100644
--- a/runtime/doc/pi_spec.txt
+++ b/runtime/doc/pi_spec.txt
@@ -1,4 +1,4 @@
-*pi_spec.txt* For Vim version 7.4. Last change: 2006 Apr 24
+*pi_spec.txt* Nvim
by Gustavo Niemeyer ~
diff --git a/runtime/doc/pi_tar.txt b/runtime/doc/pi_tar.txt
index b2fab290b3..a189d006dd 100644
--- a/runtime/doc/pi_tar.txt
+++ b/runtime/doc/pi_tar.txt
@@ -1,4 +1,4 @@
-*pi_tar.txt* For Vim version 7.4. Last change: 2013 Apr 17
+*pi_tar.txt* Nvim
+====================+
| Tar File Interface |
diff --git a/runtime/doc/pi_zip.txt b/runtime/doc/pi_zip.txt
index 0a081f24d3..c20bda1fa1 100644
--- a/runtime/doc/pi_zip.txt
+++ b/runtime/doc/pi_zip.txt
@@ -1,4 +1,4 @@
-*pi_zip.txt* For Vim version 7.4. Last change: 2013 Apr 17
+*pi_zip.txt* Nvim
+====================+
| Zip File Interface |
@@ -6,7 +6,7 @@
Author: Charles E. Campbell <NdrOchip@ScampbellPfamily.AbizM>
(remove NOSPAM from Campbell's email first)
-Copyright: Copyright (C) 2005-2012 Charles E Campbell *zip-copyright*
+Copyright: Copyright (C) 2005-2015 Charles E Campbell *zip-copyright*
The VIM LICENSE (see |copyright|) applies to the files in this
package, including zipPlugin.vim, zip.vim, and pi_zip.vim. except use
"zip.vim" instead of "VIM". Like anything else that's free, zip.vim
@@ -33,6 +33,9 @@ Copyright: Copyright (C) 2005-2012 Charles E Campbell *zip-copyright*
also write to the file. Currently, one may not make a new file in
zip archives via the plugin.
+ *zip-x*
+ x : may extract a listed file when the cursor is atop it
+
OPTIONS
*g:zip_nomax*
@@ -61,6 +64,11 @@ Copyright: Copyright (C) 2005-2012 Charles E Campbell *zip-copyright*
file; by default: >
let g:zip_zipcmd= "zip"
<
+ *g:zip_extractcmd*
+ This option specifies the program (and any options needed) used to
+ extract a file from a zip archive. By default, >
+ let g:zip_extractcmd= g:zip_unzipcmd
+<
PREVENTING LOADING~
If for some reason you do not wish to use vim to examine zipped files,
@@ -83,8 +91,26 @@ Copyright: Copyright (C) 2005-2012 Charles E Campbell *zip-copyright*
One can simply extend this line to accommodate additional extensions that
should be treated as zip files.
+ Alternatively, one may change *g:zipPlugin_ext* in one's .vimrc.
+ Currently (11/30/15) it holds: >
+
+ let g:zipPlugin_ext= '*.zip,*.jar,*.xpi,*.ja,*.war,*.ear,*.celzip,
+ \ *.oxt,*.kmz,*.wsz,*.xap,*.docx,*.docm,*.dotx,*.dotm,*.potx,*.potm,
+ \ *.ppsx,*.ppsm,*.pptx,*.pptm,*.ppam,*.sldx,*.thmx,*.xlam,*.xlsx,*.xlsm,
+ \ *.xlsb,*.xltx,*.xltm,*.xlam,*.crtx,*.vdw,*.glox,*.gcsx,*.gqsx,*.epub'
+
==============================================================================
4. History *zip-history* {{{1
+ v28 Oct 08, 2014 * changed the sanity checks for executables to reflect
+ the command actually to be attempted in zip#Read()
+ and zip#Write()
+ * added the extraction of a file capability
+ Nov 30, 2015 * added *.epub to the |g:zipPlugin_ext| list
+ Sep 13, 2016 * added *.apk to the |g:zipPlugin_ext| list and
+ sorted the suffices.
+ v27 Jul 02, 2013 * sanity check: zipfile must have "PK" as its first
+ two bytes.
+ * modified to allow zipfile: entries in quickfix lists
v26 Nov 15, 2012 * (Jason Spiro) provided a lot of new extensions that
are synonyms for .zip
v25 Jun 27, 2011 * using keepj with unzip -Z
diff --git a/runtime/doc/print.txt b/runtime/doc/print.txt
index 7565d1e976..3ffb52b5ae 100644
--- a/runtime/doc/print.txt
+++ b/runtime/doc/print.txt
@@ -1,4 +1,4 @@
-*print.txt* For Vim version 7.4. Last change: 2010 Jul 20
+*print.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -6,14 +6,7 @@
Printing *printing*
-1. Introduction |print-intro|
-2. Print options |print-options|
-3. PostScript Printing |postscript-printing|
-4. PostScript Printing Encoding |postscript-print-encoding|
-5. PostScript CJK Printing |postscript-cjk-printing|
-6. PostScript Printing Troubleshooting |postscript-print-trouble|
-7. PostScript Utilities |postscript-print-util|
-8. Formfeed Characters |printing-formfeed|
+ Type |gO| to see the table of contents.
==============================================================================
1. Introduction *print-intro*
@@ -94,25 +87,25 @@ If the option is empty, then vim will use the system default printer for
Macintosh: mac-roman,
HPUX: hp-roman8)
global
-Sets the character encoding used when printing. This option tells VIM which
+Sets the character encoding used when printing. This option tells Vim which
print character encoding file from the "print" directory in 'runtimepath' to
use.
This option will accept any value from |encoding-names|. Any recognized names
-are converted to VIM standard names - see 'encoding' for more details. Names
-not recognized by VIM will just be converted to lower case and underscores
+are converted to Vim standard names - see 'encoding' for more details. Names
+not recognized by Vim will just be converted to lower case and underscores
replaced with '-' signs.
-If 'printencoding' is empty or VIM cannot find the file then it will use
-'encoding' (if VIM is compiled with |+multi_byte| and it is set an 8-bit
-encoding) to find the print character encoding file. If VIM is unable to find
+If 'printencoding' is empty or Vim cannot find the file then it will use
+'encoding' (if Vim is compiled with |+multi_byte| and it is set an 8-bit
+encoding) to find the print character encoding file. If Vim is unable to find
a character encoding file then it will use the "latin1" print character
encoding file.
-When 'encoding' is set to a multi-byte encoding, VIM will try to convert
+When 'encoding' is set to a multi-byte encoding, Vim will try to convert
characters to the printing encoding for printing (if 'printencoding' is empty
then the conversion will be to latin1). Conversion to a printing encoding
-other than latin1 will require VIM to be compiled with the |+iconv| feature.
+other than latin1 will require Vim to be compiled with the |+iconv| feature.
If no conversion is possible then printing will fail. Any characters that
cannot be converted will be replaced with upside down question marks.
@@ -193,7 +186,7 @@ header is used when this option is empty.
'printmbcharset' 'pmbcs' string (default "")
global
Sets the CJK character set to be used when generating CJK output from
-|:hardcopy|. The following predefined values are currently recognised by VIM:
+|:hardcopy|. The following predefined values are currently recognised by Vim:
Value Description ~
Chinese GB_2312-80
@@ -260,7 +253,7 @@ Japanese text you would do the following; >
If 'printmbcharset' is not one of the above values then it is assumed to
specify a custom multi-byte character set and no check will be made that it is
-compatible with the value for 'printencoding'. VIM will look for a file
+compatible with the value for 'printencoding'. Vim will look for a file
defining the character set in the "print" directory in 'runtimepath'.
*pmbfn-option*
@@ -410,10 +403,10 @@ There are currently a number of limitations with PostScript printing:
possible to get all the characters in an encoding to print by installing a
new version of the Courier font family.
-- Multi-byte support - Currently VIM will try to convert multi-byte characters
+- Multi-byte support - Currently Vim will try to convert multi-byte characters
to the 8-bit encoding specified by 'printencoding' (or latin1 if it is
empty). Any characters that are not successfully converted are shown as
- unknown characters. Printing will fail if VIM cannot convert the multi-byte
+ unknown characters. Printing will fail if Vim cannot convert the multi-byte
to the 8-bit encoding.
==============================================================================
@@ -424,11 +417,11 @@ you need to define your own PostScript font encoding vector. Details on how
to define a font encoding vector is beyond the scope of this help file, but
you can find details in the PostScript Language Reference Manual, 3rd Edition,
published by Addison-Wesley and available in PDF form at
-http://www.adobe.com/. The following describes what you need to do for VIM to
+http://www.adobe.com/. The following describes what you need to do for Vim to
locate and use your print character encoding.
i. Decide on a unique name for your encoding vector, one that does not clash
- with any of the recognized or standard encoding names that VIM uses (see
+ with any of the recognized or standard encoding names that Vim uses (see
|encoding-names| for a list), and that no one else is likely to use.
ii. Copy $VIMRUNTIME/print/latin1.ps to the print subdirectory in your
'runtimepath' and rename it with your unique name.
@@ -436,23 +429,23 @@ iii. Edit your renamed copy of latin1.ps, replacing all occurrences of latin1
with your unique name (don't forget the line starting %%Title:), and
modify the array of glyph names to define your new encoding vector. The
array must have exactly 256 entries or you will not be able to print!
-iv. Within VIM, set 'printencoding' to your unique encoding name and then
- print your file. VIM will now use your custom print character encoding.
+iv. Within Vim, set 'printencoding' to your unique encoding name and then
+ print your file. Vim will now use your custom print character encoding.
-VIM will report an error with the resource file if you change the order or
+Vim will report an error with the resource file if you change the order or
content of the first 3 lines, other than the name of the encoding on the line
starting %%Title: or the version number on the line starting %%Version:.
-[Technical explanation for those that know PostScript - VIM looks for a file
+[Technical explanation for those that know PostScript - Vim looks for a file
with the same name as the encoding it will use when printing. The file
defines a new PostScript Encoding resource called /VIM-name, where name is the
-print character encoding VIM will use.]
+print character encoding Vim will use.]
==============================================================================
5. PostScript CJK Printing *postscript-cjk-printing*
*E673* *E674* *E675*
-VIM supports printing of Chinese, Japanese, and Korean files. Setting up VIM
+Vim supports printing of Chinese, Japanese, and Korean files. Setting up Vim
to correctly print CJK files requires setting up a few more options.
Each of these countries has many standard character sets and encodings which
@@ -473,7 +466,7 @@ option allows you to specify different fonts to use when printing characters
which are syntax highlighted with the font styles normal, italic, bold and
bold-italic.
-No CJK fonts are supplied with VIM. There are some free Korean, Japanese, and
+No CJK fonts are supplied with Vim. There are some free Korean, Japanese, and
Traditional Chinese fonts available at:
http://examples.oreilly.com/cjkvinfo/adobe/samples/
@@ -488,7 +481,7 @@ CJK fonts can be large containing several thousand glyphs, and it is not
uncommon to find that they only contain a subset of a national standard. It
is not unusual to find the fonts to not include characters for codes in the
ASCII code range. If you find half-width Roman characters are not appearing
-in your printout then you should configure VIM to use the Courier font the
+in your printout then you should configure Vim to use the Courier font the
half-width ASCII characters with 'printmbfont'. If your font does not include
other characters then you will need to find another font that does.
@@ -496,7 +489,7 @@ Another issue with ASCII characters, is that the various national character
sets specify a couple of different glyphs in the ASCII code range. If you
print ASCII text using the national character set you may see some unexpected
characters. If you want true ASCII code printing then you need to configure
-VIM to output ASCII characters for the ASCII code range with 'printmbfont'.
+Vim to output ASCII characters for the ASCII code range with 'printmbfont'.
It is possible to define your own multi-byte character set although this
should not be attempted lightly. A discussion on the process if beyond the
@@ -515,13 +508,13 @@ print job completing.
There are a number of possible causes as to why the printing may have failed:
- Wrong version of the prolog resource file. The prolog resource file
- contains some PostScript that VIM needs to be able to print. Each version
- of VIM needs one particular version. Make sure you have correctly installed
+ contains some PostScript that Vim needs to be able to print. Each version
+ of Vim needs one particular version. Make sure you have correctly installed
the runtime files, and don't have any old versions of a file called prolog
in the print directory in your 'runtimepath' directory.
- Paper size. Some PostScript printers will abort printing a file if they do
- not support the requested paper size. By default VIM uses A4 paper. Find
+ not support the requested paper size. By default Vim uses A4 paper. Find
out what size paper your printer normally uses and set the appropriate paper
size with 'printoptions'. If you cannot find the name of the paper used,
measure a sheet and compare it with the table of supported paper sizes listed
@@ -652,7 +645,7 @@ complex print document creation.
N-UP PRINTING
-The psnup utility takes an existing PostScript file generated from VIM and
+The psnup utility takes an existing PostScript file generated from Vim and
convert it to an n-up version. The simplest way to create a 2-up printout is
to first create a PostScript file with: >
@@ -708,16 +701,16 @@ There are a couple of points to bear in mind:
==============================================================================
8. Formfeed Characters *printing-formfeed*
-By default VIM does not do any special processing of |formfeed| control
-characters. Setting the 'printoptions' formfeed item will make VIM recognize
+By default Vim does not do any special processing of |formfeed| control
+characters. Setting the 'printoptions' formfeed item will make Vim recognize
formfeed characters and continue printing the current line at the beginning
of the first line on a new page. The use of formfeed characters provides
rudimentary print control but there are certain things to be aware of.
-VIM will always start printing a line (including a line number if enabled)
+Vim will always start printing a line (including a line number if enabled)
containing a formfeed character, even if it is the first character on the
line. This means if a line starting with a formfeed character is the first
-line of a page then VIM will print a blank page.
+line of a page then Vim will print a blank page.
Since the line number is printed at the start of printing the line containing
the formfeed character, the remainder of the line printed on the new page
@@ -726,7 +719,7 @@ lines of a long line when wrap in 'printoptions' is enabled).
If the formfeed character is the last character on a line, then printing will
continue on the second line of the new page, not the first. This is due to
-VIM processing the end of the line after the formfeed character and moving
+Vim processing the end of the line after the formfeed character and moving
down a line to continue printing.
Due to the points made above it is recommended that when formfeed character
diff --git a/runtime/doc/provider.txt b/runtime/doc/provider.txt
index ac4d7361f4..b806b08f95 100644
--- a/runtime/doc/provider.txt
+++ b/runtime/doc/provider.txt
@@ -1,4 +1,4 @@
-*provider.txt* {Nvim}
+*provider.txt* Nvim
NVIM REFERENCE MANUAL by Thiago de Arruda
@@ -8,6 +8,8 @@ Providers *provider*
Nvim delegates some features to dynamic "providers".
+ Type |gO| to see the table of contents.
+
==============================================================================
Python integration *provider-python*
@@ -18,7 +20,7 @@ Note: Only the Vim 7.3 API is supported; bindeval (Vim 7.4) is not.
PYTHON QUICKSTART ~
If you used a package manager to install Nvim, you might already have the
-required `neovim` Python package. Run |:CheckHealth| to see if your system is
+required `neovim` Python package. Run |:checkhealth| to see if your system is
up-to-date.
Following are steps to install the package with Python's `pip` tool.
@@ -86,7 +88,7 @@ Ruby integration *provider-ruby*
Nvim supports the Vim legacy |ruby-vim| interface via external Ruby
interpreters connected via |RPC|.
-Run |:CheckHealth| to see if your system is up-to-date.
+Run |:checkhealth| to see if your system is up-to-date.
RUBY QUICKSTART ~
@@ -97,44 +99,74 @@ RUBY PROVIDER CONFIGURATION ~
*g:loaded_ruby_provider*
To disable Ruby support: >
let g:loaded_ruby_provider = 1
+<
+ *g:ruby_host_prog*
+Command to start the Ruby host. By default this is `neovim-ruby-host`. For users
+who use per-project Ruby versions with tools like RVM or rbenv, setting this can
+prevent the need to install the `neovim` gem in every project.
+
+To use an absolute path (e.g. to an rbenv installation): >
+ let g:ruby_host_prog = '~/.rbenv/versions/2.4.1/bin/neovim-ruby-host'
+<
+
+To use the RVM "system" Ruby installation: >
+ let g:ruby_host_prog = 'rvm system do neovim-ruby-host'
+<
==============================================================================
Clipboard integration *provider-clipboard* *clipboard*
-Nvim has no direct connection to the system clipboard. Instead it is
-accessible through a |provider| which transparently uses shell commands for
-communicating with the clipboard.
+Nvim has no direct connection to the system clipboard. Instead it depends on
+a |provider| which transparently uses shell commands to communicate with the
+system clipboard or any other clipboard "backend".
-Clipboard access is implicitly enabled if any of the following clipboard tools
-are found in your `$PATH`.
+To ALWAYS use the clipboard for ALL operations (instead of interacting with
+the '+' and/or '*' registers explicitly): >
- - xclip
- - xsel (newer alternative to xclip)
+ set clipboard+=unnamedplus
+<
+See 'clipboard' for details and options.
+
+ *clipboard-tool*
+The presence of a working clipboard tool implicitly enables the '+' and '*'
+registers. Nvim looks for these clipboard tools, in order of priority:
+
+ - |g:clipboard|
- pbcopy/pbpaste (macOS)
+ - xsel (if $DISPLAY is set)
+ - xclip (if $DISPLAY is set)
- lemonade (for SSH) https://github.com/pocke/lemonade
- doitclient (for SSH) http://www.chiark.greenend.org.uk/~sgtatham/doit/
-
-The presence of a suitable clipboard tool implicitly enables the '+' and '*'
-registers.
-
-If you want to ALWAYS use the clipboard for ALL operations (as opposed
-to interacting with the '+' and/or '*' registers explicitly), set the
-following option:
->
- set clipboard+=unnamedplus
-<
-See 'clipboard' for details and more options.
+ - win32yank (Windows)
+ - tmux (if $TMUX is set)
+
+ *g:clipboard*
+To configure a custom clipboard tool, set `g:clipboard` to a dictionary: >
+ let g:clipboard = {
+ \ 'name': 'myClipboard',
+ \ 'copy': {
+ \ '+': 'tmux load-buffer -',
+ \ '*': 'tmux load-buffer -',
+ \ },
+ \ 'paste': {
+ \ '+': 'tmux save-buffer -',
+ \ '*': 'tmux save-buffer -',
+ \ },
+ \ 'cache_enabled': 1,
+ \ }
+
+If `cache_enabled` is |TRUE| then when a selection is copied, Nvim will cache
+the selection until the copy command process dies. When pasting, if the copy
+process has not died, the cached selection is applied.
==============================================================================
X11 selection mechanism *clipboard-x11* *x11-selection*
-The clipboard providers for X11 store text in what is known as "selections".
-Selections are "owned" by an application, so when the application is closed,
-the selection text is lost.
-
+X11 clipboard providers store text in "selections". Selections are owned by an
+application, so when the application gets closed, the selection text is lost.
The contents of selections are held by the originating application (e.g., upon
-a copy), and only passed on to another application when that other application
-asks for them (e.g., upon a paste).
+a copy), and only passed to another application when that other application
+requests them (e.g., upon a paste).
*quoteplus* *quote+*
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index ec0b2cfef6..da167c0f5b 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -1,4 +1,4 @@
-*quickfix.txt* For Vim version 7.4. Last change: 2016 Jul 17
+*quickfix.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -6,15 +6,7 @@
This subject is introduced in section |30.1| of the user manual.
-1. Using QuickFix commands |quickfix|
-2. The error window |quickfix-window|
-3. Using more than one list of errors |quickfix-error-lists|
-4. Using :make |:make_makeprg|
-5. Using :grep |grep|
-6. Selecting a compiler |compiler-select|
-7. The error format |error-file-format|
-8. The directory stack |quickfix-directory-stack|
-9. Specific error file formats |errorformats|
+ Type |gO| to see the table of contents.
=============================================================================
1. Using QuickFix commands *quickfix* *Quickfix* *E42*
@@ -39,11 +31,21 @@ From inside Vim an easy way to run a command and handle the output is with the
The 'errorformat' option should be set to match the error messages from your
compiler (see |errorformat| below).
+ *quickfix-ID*
+Each quickfix list has a unique identifier called the quickfix ID and this
+number will not change within a Vim session. The getqflist() function can be
+used to get the identifier assigned to a list. There is also a quickfix list
+number which may change whenever more than ten lists are added to a quickfix
+stack.
+
*location-list* *E776*
-A location list is similar to a quickfix list and contains a list of positions
-in files. A location list is associated with a window and each window can
-have a separate location list. A location list can be associated with only
-one window. The location list is independent of the quickfix list.
+A location list is a window-local quickfix list. You get one after commands
+like `:lvimgrep`, `:lgrep`, `:lhelpgrep`, `:lmake`, etc., which create a
+location list instead of a quickfix list as the corresponding `:vimgrep`,
+`:grep`, `:helpgrep`, `:make` do.
+A location list is associated with a window and each window can have a
+separate location list. A location list can be associated with only one
+window. The location list is independent of the quickfix list.
When a window with a location list is split, the new window gets a copy of the
location list. When there are no longer any references to a location list,
@@ -146,11 +148,15 @@ processing a quickfix or location list command, it will be aborted.
current window is used instead of the quickfix list.
*:cq* *:cquit*
-:cq[uit][!] Quit Vim with an error code, so that the compiler
- will not compile the same file again.
- WARNING: All changes in files are lost! Also when the
- [!] is not used. It works like ":qall!" |:qall|,
- except that Vim returns a non-zero exit code.
+:[count]cq[uit] Quit Nvim with an error code, or the code specified in
+ [count]. Useful when Nvim is called from another
+ program: e.g. `git commit` will abort the comitting
+ process, `fc` (built-in for shells like bash and zsh)
+ will not execute the command.
+
+ WARNING: All changes in files are lost. It works like
+ ":qall!" |:qall|, except that Nvim exits non-zero or
+ [count].
*:cf* *:cfile*
:cf[ile][!] [errorfile] Read the error file and jump to the first error.
@@ -872,7 +878,7 @@ need to write down a "todo" list.
The Vim plugins in the "compiler" directory will set options to use the
-selected compiler. For ":compiler" local options are set, for ":compiler!"
+selected compiler. For `:compiler` local options are set, for `:compiler!`
global options.
*current_compiler*
To support older Vim versions, the plugins always use "current_compiler" and
@@ -1366,7 +1372,7 @@ prints information about entering a directory in the form "Making all in dir".
Making all in dir2 ./dir1/dir2
This can be solved by printing absolute directories in the "enter directory"
- message or by printing "leave directory" messages..
+ message or by printing "leave directory" messages.
To avoid this problem, ensure to print absolute directory names and "leave
directory" messages.
@@ -1542,4 +1548,4 @@ by Vim.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:noet:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt
index 2e2bec7637..b22d2afa7e 100644
--- a/runtime/doc/quickref.txt
+++ b/runtime/doc/quickref.txt
@@ -1,4 +1,4 @@
-*quickref.txt* For Vim version 7.4. Last change: 2016 Aug 12
+*quickref.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -571,8 +571,7 @@ In Insert or Command-line mode:
*Q_op* Options
|:set| :se[t] show all modified options
-|:set| :se[t] all show all non-termcap options
-|:set| :se[t] termcap show all termcap options
+|:set| :se[t] all show all options
|:set| :se[t] {option} set boolean option (switch it on),
show string or number option
|:set| :se[t] no{option} reset boolean option (switch it off)
@@ -715,7 +714,6 @@ Short explanation of each option: *option-list*
'guifont' 'gfn' GUI: Name(s) of font(s) to be used
'guifontset' 'gfs' GUI: Names of multi-byte fonts to be used
'guifontwide' 'gfw' list of font names for double-wide characters
-'guiheadroom' 'ghr' GUI: pixels room for window decorations
'guioptions' 'go' GUI: Which components and options are used
'guitablabel' 'gtl' GUI: custom label for a tab page
'guitabtooltip' 'gtt' GUI: custom tooltip for a tab page
@@ -723,7 +721,6 @@ Short explanation of each option: *option-list*
'helpheight' 'hh' minimum height of a new help window
'helplang' 'hlg' preferred help languages
'hidden' 'hid' don't unload buffer when it is |abandon|ed
-'highlight' 'hl' sets highlighting mode for various occasions
'hlsearch' 'hls' highlight matches with last search pattern
'history' 'hi' number of command-lines that are remembered
'hkmap' 'hk' Hebrew keyboard mapping
@@ -752,7 +749,7 @@ Short explanation of each option: *option-list*
'keywordprg' 'kp' program to use for the "K" command
'langmap' 'lmap' alphabetic characters for other language mode
'langmenu' 'lm' language to be used for the menus
-'langnoremap' 'lnr' do not apply 'langmap' to mapped characters
+'langremap' 'lrm' do apply 'langmap' to mapped characters
'laststatus' 'ls' tells when last window has status lines
'lazyredraw' 'lz' don't redraw while executing macros
'linebreak' 'lbr' wrap long lines at a blank
@@ -989,7 +986,6 @@ Short explanation of each option: *option-list*
|g_CTRL-G| g CTRL-G show cursor column, line, and character
position
|CTRL-C| CTRL-C during searches: Interrupt the search
-|dos-CTRL-Break| CTRL-Break Windows: during searches: Interrupt the search
|<Del>| <Del> while entering a count: delete last character
|:version| :ve[rsion] show version information
|:normal| :norm[al][!] {commands}
@@ -1028,6 +1024,8 @@ Short explanation of each option: *option-list*
|c_<Up>| <Up>/<Down> recall older/newer command-line that starts
with current command
|c_<S-Up>| <S-Up>/<S-Down> recall older/newer command-line from history
+|c_CTRL-G| CTRL-G next match when 'incsearch' is active
+|c_CTRL-T| CTRL-T previous match when 'incsearch' is active
|:history| :his[tory] show older command-lines
Context-sensitive completion on the command-line:
@@ -1255,6 +1253,7 @@ Context-sensitive completion on the command-line:
|:sfind| :sf[ind] {file} split window, find {file} in 'path'
and edit it
+|:terminal| :terminal {cmd} open a terminal window
|CTRL-W_]| CTRL-W ] split window and jump to tag under
cursor
|CTRL-W_f| CTRL-W f split window and edit file name under
diff --git a/runtime/doc/recover.txt b/runtime/doc/recover.txt
index e09138b2f5..0533157072 100644
--- a/runtime/doc/recover.txt
+++ b/runtime/doc/recover.txt
@@ -1,4 +1,4 @@
-*recover.txt* For Vim version 7.4. Last change: 2014 Mar 27
+*recover.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -15,8 +15,7 @@ You can recover most of your changes from the files that Vim uses to store
the contents of the file. Mostly you can recover your work with one command:
vim -r filename
-1. The swap file |swap-file|
-2. Recovery |recovery|
+ Type |gO| to see the table of contents.
==============================================================================
1. The swap file *swap-file*
diff --git a/runtime/doc/remote.txt b/runtime/doc/remote.txt
index 933ab3a444..039d8b582e 100644
--- a/runtime/doc/remote.txt
+++ b/runtime/doc/remote.txt
@@ -1,4 +1,4 @@
-*remote.txt* For Vim version 7.4. Last change: 2015 Mar 01
+*remote.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -6,9 +6,7 @@
Vim client-server communication *client-server*
-1. Common functionality |clientserver|
-2. X11 specific items |x11-clientserver|
-3. MS-Windows specific items |w32-clientserver|
+ Type |gO| to see the table of contents.
==============================================================================
1. Common functionality *clientserver*
@@ -89,7 +87,7 @@ Tell the remote server "BLA" to write all files and exit: >
vim --servername BLA --remote-send '<C-\><C-N>:wqa<CR>'
-SERVER NAME
+SERVER NAME *client-server-name*
By default Vim will try to register the name under which it was invoked (gvim,
egvim ...). This can be overridden with the --servername argument. If the
@@ -139,6 +137,7 @@ the description in |eval.txt| or use CTRL-] on the function name to jump to
the full explanation.
synopsis explanation ~
+ remote_startserver( name) run a server
remote_expr( server, string, idvar) send expression
remote_send( server, string, idvar) send key sequence
serverlist() get a list of available servers
diff --git a/runtime/doc/remote_plugin.txt b/runtime/doc/remote_plugin.txt
index dddc021d68..eeb9cf8150 100644
--- a/runtime/doc/remote_plugin.txt
+++ b/runtime/doc/remote_plugin.txt
@@ -1,4 +1,4 @@
-*remote_plugin.txt* For Nvim. {Nvim}
+*remote_plugin.txt* Nvim
NVIM REFERENCE MANUAL by Thiago de Arruda
@@ -6,10 +6,7 @@
Nvim support for remote plugins *remote-plugin*
-1. Introduction |remote-plugin-intro|
-2. Plugin hosts |remote-plugin-hosts|
-3. Example |remote-plugin-example|
-4. Plugin manifest |remote-plugin-manifest|
+ Type |gO| to see the table of contents.
==============================================================================
1. Introduction *remote-plugin-intro*
diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt
index ef98556260..421ebab100 100644
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -1,4 +1,4 @@
-*repeat.txt* For Vim version 7.4. Last change: 2016 Jul 21
+*repeat.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -8,14 +8,7 @@ Repeating commands, Vim scripts and debugging *repeating*
Chapter 26 of the user manual introduces repeating |usr_26.txt|.
-1. Single repeats |single-repeat|
-2. Multiple repeats |multi-repeat|
-3. Complex repeats |complex-repeat|
-4. Using Vim scripts |using-scripts|
-5. Using Vim packages |packages|
-6. Creating Vim packages |package-create|
-7. Debugging scripts |debug-scripts|
-8. Profiling |profiling|
+ Type |gO| to see the table of contents.
==============================================================================
1. Single repeats *single-repeat*
@@ -152,7 +145,7 @@ q Stops recording.
:[addr]@: Repeat last command-line. First set cursor at line
[addr] (default is current line).
- *:@@*
+:[addr]@ *:@@*
:[addr]@@ Repeat the previous :@{0-9a-z"}. First set cursor at
line [addr] (default is current line).
@@ -357,8 +350,7 @@ terminal-independent two character codes. This means that they can be used
in the same way on different kinds of terminals. The first character of a
key code is 0x80 or 128, shown on the screen as "~@". The second one can be
found in the list |key-notation|. Any of these codes can also be entered
-with CTRL-V followed by the three digit decimal code. This does NOT work for
-the <t_xx> termcap codes, these can only be used in mappings.
+with CTRL-V followed by the three digit decimal code.
*:source_crnl* *W15*
Windows: Files that are read with ":source" normally have <CR><NL> <EOL>s.
@@ -369,12 +361,6 @@ something like ":map <F1> :help^M", where "^M" is a <CR>. If the first line
ends in a <CR>, but following ones don't, you will get an error message,
because the <CR> from the first lines will be lost.
-Mac Classic: Files that are read with ":source" normally have <CR> <EOL>s.
-These always work. If you are using a file with <NL> <EOL>s (for example, a
-file made on Unix), this will be recognized if 'fileformats' is not empty and
-the first line does not end in a <CR>. Be careful not to use a file with <NL>
-linebreaks which has a <CR> in first line.
-
On other systems, Vim expects ":source"ed files to end in a <NL>. These
always work. If you are using a file with <CR><NL> <EOL>s (for example, a
file made on Windows), all lines will have a trailing <CR>. This may cause
diff --git a/runtime/doc/rileft.txt b/runtime/doc/rileft.txt
index e4e495bb18..ba9bb1eba7 100644
--- a/runtime/doc/rileft.txt
+++ b/runtime/doc/rileft.txt
@@ -1,4 +1,4 @@
-*rileft.txt* For Vim version 7.4. Last change: 2006 Apr 24
+*rileft.txt* Nvim
VIM REFERENCE MANUAL by Avner Lottem
diff --git a/runtime/doc/russian.txt b/runtime/doc/russian.txt
index 36f3d0b715..8c6076146c 100644
--- a/runtime/doc/russian.txt
+++ b/runtime/doc/russian.txt
@@ -1,4 +1,4 @@
-*russian.txt* For Vim version 7.4. Last change: 2006 Apr 24
+*russian.txt* Nvim
VIM REFERENCE MANUAL by Vassily Ragosin
@@ -6,10 +6,7 @@
Russian language localization and support in Vim *russian* *Russian*
-1. Introduction |russian-intro|
-2. Russian keymaps |russian-keymap|
-3. Localization |russian-l18n|
-4. Known issues |russian-issues|
+ Type |gO| to see the table of contents.
===============================================================================
1. Introduction *russian-intro*
diff --git a/runtime/doc/scroll.txt b/runtime/doc/scroll.txt
index a9492fc169..99ebd26db3 100644
--- a/runtime/doc/scroll.txt
+++ b/runtime/doc/scroll.txt
@@ -1,4 +1,4 @@
-*scroll.txt* For Vim version 7.4. Last change: 2006 Aug 27
+*scroll.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -16,12 +16,7 @@ upwards in the buffer, the text in the window moves downwards on your screen.
See section |03.7| of the user manual for an introduction.
-1. Scrolling downwards |scroll-down|
-2. Scrolling upwards |scroll-up|
-3. Scrolling relative to cursor |scroll-cursor|
-4. Scrolling horizontally |scroll-horizontal|
-5. Scrolling synchronously |scroll-binding|
-6. Scrolling with a mouse wheel |scroll-mouse-wheel|
+ Type |gO| to see the table of contents.
==============================================================================
1. Scrolling downwards *scroll-down*
@@ -108,7 +103,8 @@ z^ Without [count]: Redraw with the line just above the
3. Scrolling relative to cursor *scroll-cursor*
The following commands reposition the edit window (the part of the buffer that
-you see) while keeping the cursor on the same line:
+you see) while keeping the cursor on the same line. Note that the 'scrolloff'
+option may cause context lines to show above and below the cursor.
*z<CR>*
z<CR> Redraw, line [count] at top of window (default
@@ -215,7 +211,7 @@ past its buffer's limits.
However, if a 'scrollbind' window that has a relative offset that is past its
buffer's limits is given the cursor focus, the other 'scrollbind' windows must
jump to a location where the current window's relative offset is valid. This
-behavior can be changed by clearing the 'jump' flag from the 'scrollopt'
+behavior can be changed by clearing the "jump" flag from the 'scrollopt'
option.
*syncbind* *:syncbind* *:sync*
diff --git a/runtime/doc/sign.txt b/runtime/doc/sign.txt
index fd1fe8dce3..977d73b7b2 100644
--- a/runtime/doc/sign.txt
+++ b/runtime/doc/sign.txt
@@ -1,4 +1,4 @@
-*sign.txt* For Vim version 7.4. Last change: 2016 Aug 12
+*sign.txt* Nvim
VIM REFERENCE MANUAL by Gordon Prieur
@@ -7,8 +7,7 @@
Sign Support Features *sign-support*
-1. Introduction |sign-intro|
-2. Commands |sign-commands|
+ Type |gO| to see the table of contents.
==============================================================================
1. Introduction *sign-intro* *signs*
@@ -188,7 +187,9 @@ JUMPING TO A SIGN *:sign-jump* *E157*
If the file isn't displayed in window and the current file can
not be |abandon|ed this fails.
-:sign jump {id} buffer={nr}
- Same, but use buffer {nr}.
+:sign jump {id} buffer={nr} *E934*
+ Same, but use buffer {nr}. This fails if buffer {nr} does not
+ have a name.
+
vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/spell.txt b/runtime/doc/spell.txt
index 0902d5d10f..718b5d4c1f 100644
--- a/runtime/doc/spell.txt
+++ b/runtime/doc/spell.txt
@@ -1,4 +1,4 @@
-*spell.txt*
+*spell.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -6,10 +6,7 @@
Spell checking *spell*
-1. Quick start |spell-quickstart|
-2. Remarks on spell checking |spell-remarks|
-3. Generating a spell file |spell-mkspell|
-4. Spell file format |spell-file-format|
+ Type |gO| to see the table of contents.
==============================================================================
1. Quick start *spell-quickstart* *E756*
@@ -462,7 +459,7 @@ Vim uses a binary file format for spelling. This greatly speeds up loading
the word list and keeps it small.
*.aff* *.dic* *Myspell*
You can create a Vim spell file from the .aff and .dic files that Myspell
-uses. Myspell is used by OpenOffice.org and Mozilla. The OpenOffice .oxt
+uses. Myspell is used by OpenOffice.org and Mozilla. The OpenOffice .oxt
files are zip files which contain the .aff and .dic files. You should be able
to find them here:
http://extensions.services.openoffice.org/dictionary
@@ -707,7 +704,7 @@ Additionally the following items are recognized:
= Case must match exactly.
? Rare word.
! Bad (wrong) word.
- digit A region in which the word is valid. If no regions are
+ 1 to 9 A region in which the word is valid. If no regions are
specified the word is valid in all regions.
Example:
@@ -1597,7 +1594,7 @@ COMPOUNDSYLLABLE (Hunspell) *spell-COMPOUNDSYLLABLE*
KEY (Hunspell) *spell-KEY*
Define characters that are close together on the keyboard.
Used to give better suggestions. Not supported.
-
+
LANG (Hunspell) *spell-LANG*
This specifies language-specific behavior. This actually
moves part of the language knowledge into the program,
diff --git a/runtime/doc/sponsor.txt b/runtime/doc/sponsor.txt
index a99d66d843..cfdf21abea 100644
--- a/runtime/doc/sponsor.txt
+++ b/runtime/doc/sponsor.txt
@@ -1,4 +1,4 @@
-*sponsor.txt* For Vim version 7.4. Last change: 2008 Jun 21
+*sponsor.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt
index 2c024d3c75..9b33926d04 100644
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -1,4 +1,4 @@
-*starting.txt* For Vim version 7.4. Last change: 2016 Jul 03
+*starting.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -6,15 +6,7 @@
Starting Vim *starting*
-1. Vim arguments |vim-arguments|
-2. Initialization |initialization|
-3. $VIM and $VIMRUNTIME |$VIM|
-4. Suspending |suspend|
-5. Exiting |exiting|
-6. Saving settings |save-settings|
-7. Views and Sessions |views-sessions|
-8. The ShaDa file |shada-file|
-9. Base Directories |base-directories|
+ Type |gO| to see the table of contents.
==============================================================================
1. Vim arguments *vim-arguments*
@@ -61,7 +53,7 @@ filename One or more file names. The first one will be the current
< Starting in Ex mode: >
nvim -e -
nvim -E
-< Start editing in silent mode. See |-s-ex|.
+< Start editing in |silent-mode|.
*-t* *-tag*
-t {tag} A tag. "tag" is looked up in the tags file, the associated
@@ -181,6 +173,7 @@ argument.
the executable "view" has the same effect as the -R argument.
The 'updatecount' option will be set to 10000, meaning that
the swap file will not be updated automatically very often.
+ See |-M| for disallowing modifications.
*-m*
-m Modifications not allowed to be written. The 'write' option
@@ -207,7 +200,7 @@ argument.
*-E*
-E Start Vim in improved Ex mode |gQ|.
- *-s-ex*
+ *-s-ex* *silent-mode*
-s Silent or batch mode. Only when "-s" is preceded by the "-e"
argument. Otherwise see |-s|, which does take an argument
while this use of "-s" doesn't. To be used when Vim is used
@@ -221,14 +214,14 @@ argument.
:set to display option values.
When 'verbose' is non-zero messages are printed (for
debugging, to stderr).
- $TERM is not used.
+ |$TERM| is not used.
If Vim appears to be stuck try typing "qa!<Enter>". You don't
get a prompt thus you can't see Vim is waiting for you to type
something.
Initializations are skipped (except the ones given with the
"-u" argument).
Example: >
- vim -e -s < thefilter thefile
+ vim -es < thefilter thefile
<
*-b*
-b Binary mode. File I/O will only recognize <NL> to separate
@@ -356,13 +349,19 @@ argument.
*--api-info*
--api-info Print msgpack-encoded |api-metadata| and exit.
+ *--headless*
+--headless Do not start the built-in UI.
+ See |channel-stdio| for how to use stdio for other purposes
+ instead.
+ See also |silent-mode|, which does start a (limited) UI.
+
==============================================================================
2. Initialization *initialization* *startup*
At startup, Vim checks environment variables and files and sets values
accordingly. Vim proceeds in this order:
-1. Set the 'shell' option *SHELL* *COMSPEC* *TERM*
+1. Set the 'shell' option *SHELL* *COMSPEC*
The environment variable SHELL, if it exists, is used to set the
'shell' option. On Windows, the COMSPEC variable is used
if SHELL is not set.
@@ -425,7 +424,7 @@ accordingly. Vim proceeds in this order:
- The environment variable EXINIT.
The value of $EXINIT is used as an Ex command line.
- c. If the 'exrc' option is on (which is not the default), the current
+ c. If the 'exrc' option is on (which is NOT the default), the current
directory is searched for three files. The first that exists is used,
the others are ignored.
- The file ".nvimrc" (for Unix)
@@ -457,6 +456,8 @@ accordingly. Vim proceeds in this order:
searched for the "plugin" sub-directory and all files ending in ".vim"
will be sourced (in alphabetical order per directory), also in
subdirectories.
+ However, directories in 'runtimepath' ending in "after" are skipped
+ here and only loaded after packages, see below.
Loading plugins won't be done when:
- The 'loadplugins' option was reset in a vimrc file.
- The |--noplugin| command line argument is used.
@@ -464,13 +465,18 @@ accordingly. Vim proceeds in this order:
- When Vim was compiled without the |+eval| feature.
Note that using "-c 'set noloadplugins'" doesn't work, because the
commands from the command line have not been executed yet. You can
- use "--cmd 'set noloadplugins'" |--cmd|.
+ use "--cmd 'set noloadplugins'" or "--cmd 'set loadplugins'" |--cmd|.
Packages are loaded. These are plugins, as above, but found in the
"start" directory of each entry in 'packpath'. Every plugin directory
found is added in 'runtimepath' and then the plugins are sourced. See
|packages|.
+ The plugins scripts are loaded, as above, but now only the directories
+ ending in "after" are used. Note that 'runtimepath' will have changed
+ if packages have been found, but that should not add a directory
+ ending in "after".
+
7. Set 'shellpipe' and 'shellredir'
The 'shellpipe' and 'shellredir' options are set according to the
value of the 'shell' option, unless they have been set before.
@@ -511,7 +517,8 @@ accordingly. Vim proceeds in this order:
The |v:vim_did_enter| variable is set to 1.
The |VimEnter| autocommands are executed.
-Some hints on using initializations:
+
+Some hints on using initializations ~
Standard setup:
Create a vimrc file to set the default settings and mappings for all your edit
@@ -533,17 +540,23 @@ the ":version" command. NOTE: System vimrc file needs specific compilation
options (one needs to define SYS_VIMRC_FILE macros). If :version command does
not show anything like this, consider contacting the nvim package maintainer.
-Saving the current state of Vim to a file:
+
+Saving the current state of Vim to a file ~
+
Whenever you have changed values of options or when you have created a
mapping, then you may want to save them in a vimrc file for later use. See
|save-settings| about saving the current state of settings to a file.
-Avoiding setup problems for Vi users:
+
+Avoiding setup problems for Vi users ~
+
Vi uses the variable EXINIT and the file "~/.exrc". So if you do not want to
interfere with Vi, then use the variable VIMINIT and the file init.vim
instead.
-MS-DOS line separators:
+
+MS-DOS line separators: ~
+
On Windows systems Vim assumes that all the vimrc files have <CR> <NL> pairs
as line separators. This will give problems if you have a file with only
<NL>s and have a line like ":map xx yy^M". The trailing ^M will be ignored.
@@ -551,8 +564,10 @@ as line separators. This will give problems if you have a file with only
The $MYVIMRC or $MYGVIMRC file will be set to the first found vimrc and/or
gvimrc file.
-Avoiding trojan horses: *trojan-horse*
-While reading the vimrc or the exrc file in the current directory, some
+
+Avoiding trojan horses ~
+ *trojan-horse*
+While reading the "vimrc" or the "exrc" file in the current directory, some
commands can be disabled for security reasons by setting the 'secure' option.
This is always done when executing the command from a tags file. Otherwise it
would be possible that you accidentally use a vimrc or tags file that somebody
@@ -574,6 +589,8 @@ Be careful!
part of the line in the tags file) is always done in secure mode. This works
just like executing a command from a vimrc/exrc in the current directory.
+
+If Vim startup is slow ~
*slow-start*
If Vim takes a long time to start up, use the |--startuptime| argument to find
out what happens.
@@ -583,6 +600,8 @@ while. You can find out if this is the problem by disabling ShaDa for a
moment (use the Vim argument "-i NONE", |-i|). Try reducing the number of
lines stored in a register with ":set shada='20,<50,s10". |shada-file|.
+
+Intro message ~
*:intro*
When Vim starts without a file name, an introductory message is displayed (for
those who don't know what Vim is). It is removed as soon as the display is
@@ -616,54 +635,40 @@ though.
==============================================================================
3. $VIM and $VIMRUNTIME
*$VIM*
-The environment variable "$VIM" is used to locate various user files for Vim,
+The environment variable "$VIM" is used to locate various user files for Nvim,
such as the user startup script |init.vim|. This depends on the system, see
|startup|.
-To avoid the need for every user to set the $VIM environment variable, Vim
-will try to get the value for $VIM in this order:
-1. The value defined by the $VIM environment variable. You can use this to
- make Vim look in a specific directory for its support files. Example: >
- setenv VIM /home/paul/vim
-2. The path from 'helpfile' is used, unless it contains some environment
- variable too (the default is "$VIMRUNTIME/doc/help.txt": chicken-egg
- problem). The file name ("help.txt" or any other) is removed. Then
- trailing directory names are removed, in this order: "doc", "runtime" and
- "vim{version}" (e.g., "vim54").
-3. For MSDOS and Win32 Vim tries to use the directory name of the
- executable. If it ends in "/src", this is removed. This is useful if you
- unpacked the .zip file in some directory, and adjusted the search path to
- find the vim executable. Trailing directory names are removed, in this
- order: "runtime" and "vim{version}" (e.g., "vim54").
-4. For Unix the compile-time defined installation directory is used (see the
- output of ":version").
-
-Once Vim has done this once, it will set the $VIM environment variable. To
-change it later, use a ":let" command like this: >
- :let $VIM = "/home/paul/vim/"
-<
+Nvim will try to get the value for $VIM in this order:
+
+1. Environment variable $VIM, if it is set.
+2. Path derived from the 'helpfile' option, unless it contains some
+ environment variable too (default is "$VIMRUNTIME/doc/help.txt"). File
+ name ("help.txt", etc.) is removed. Trailing directory names are removed,
+ in this order: "doc", "runtime".
+3. Path derived from the location of the `nvim` executable.
+4. Compile-time defined installation directory (see output of ":version").
+
+After doing this once, Nvim sets the $VIM environment variable.
+
*$VIMRUNTIME*
The environment variable "$VIMRUNTIME" is used to locate various support
-files, such as the on-line documentation and files used for syntax
-highlighting. For example, the main help file is normally
-"$VIMRUNTIME/doc/help.txt".
-You don't normally set $VIMRUNTIME yourself, but let Vim figure it out. This
-is the order used to find the value of $VIMRUNTIME:
-1. If the environment variable $VIMRUNTIME is set, it is used. You can use
- this when the runtime files are in an unusual location.
-2. If "$VIM/vim{version}" exists, it is used. {version} is the version
- number of Vim, without any '-' or '.'. For example: "$VIM/vim54". This is
- the normal value for $VIMRUNTIME.
-3. If "$VIM/runtime" exists, it is used.
-4. The value of $VIM is used. This is for backwards compatibility with older
- versions.
+files, such as the documentation and syntax-highlighting files. For example,
+the main help file is normally "$VIMRUNTIME/doc/help.txt".
+
+Nvim will try to get the value for $VIMRUNTIME in this order:
+
+1. Environment variable $VIMRUNTIME, if it is set.
+2. Directory path "$VIM/vim{version}", if it exists, where {version} is the
+ Vim version number without '-' or '.'. For example: "$VIM/vim54".
+3. Directory path "$VIM/runtime", if it exists.
+4. Value of $VIM environment variable. This is for backwards compatibility
+ with older Vim versions.
5. If "../share/nvim/runtime" exists relative to |v:progpath|, it is used.
-6. When the 'helpfile' option is set and doesn't contain a '$', its value is
- used, with "doc/help.txt" removed from the end.
+6. Path derived from the 'helpfile' option (if it doesn't contain '$') with
+ "doc/help.txt" removed from the end.
-Once Vim has done this once, it will set the $VIMRUNTIME environment variable.
-To change it later, use a ":let" command like this: >
- :let $VIMRUNTIME = "/home/piet/vim/vim54"
+After doing this once, Nvim sets the $VIMRUNTIME environment variable.
In case you need the value of $VIMRUNTIME in a shell (e.g., for a script that
greps in the help files) you might be able to use this: >
@@ -714,7 +719,7 @@ There are several ways to exit Vim:
- Use `:cquit`. Also when there are changes.
When using `:cquit` or when there was an error message Vim exits with exit
-code 1. Errors can be avoided by using `:silent!`.
+code 1. Errors can be avoided by using `:silent!` or with `:catch`.
==============================================================================
6. Saving settings *save-settings*
@@ -882,7 +887,7 @@ The output of ":mkview" contains these items:
5. The scroll position and the cursor position in the file. Doesn't work very
well when there are closed folds.
6. The local current directory, if it is different from the global current
- directory.
+ directory and 'viewoptions' contains "curdir".
Note that Views and Sessions are not perfect:
- They don't restore everything. For example, defined functions, autocommands
@@ -915,7 +920,7 @@ You might want to clean up your 'viewdir' directory now and then.
To automatically save and restore views for *.c files: >
au BufWinLeave *.c mkview
- au BufWinEnter *.c silent loadview
+ au BufWinEnter *.c silent! loadview
==============================================================================
8. The ShaDa file *shada* *shada-file*
@@ -1090,23 +1095,6 @@ SHADA FILE NAME *shada-file-name*
default and the name given with 'shada' or "-i" (unless it's NONE).
-CHARACTER ENCODING *shada-encoding*
-
-The text in the ShaDa file is UTF-8-encoded. Normally you will always work
-with the same 'encoding' value, and this works just fine. However, if you
-read the ShaDa file with value for 'encoding' different from utf-8 and
-'encoding' used when writing ShaDa file, some of the text (non-ASCII
-characters) may be invalid as Neovim always attempts to convert the text in
-the ShaDa file from the UTF-8 to the current 'encoding' value. Filenames are
-never converted, affected elements are:
-
-- history strings;
-- variable values;
-- register values;
-- last used search and substitute patterns;
-- last used substitute replacement string.
-
-
MANUALLY READING AND WRITING *shada-read-write*
Two commands can be used to read and write the ShaDa file manually. This
@@ -1192,8 +1180,11 @@ running) you have additional options:
*:o* *:ol* *:oldfiles*
:o[ldfiles] List the files that have marks stored in the ShaDa
file. This list is read on startup and only changes
- afterwards with ":rshada!". Also see |v:oldfiles|.
+ afterwards with `:rshada!`. Also see |v:oldfiles|.
The number can be used with |c_#<|.
+ The output can be filtered with |:filter|, e.g.: >
+ filter /\.vim/ oldfiles
+< The filtering happens on the file name.
:bro[wse] o[ldfiles][!]
List file names as with |:oldfiles|, and then prompt
@@ -1214,8 +1205,11 @@ exactly four MessagePack objects:
3. Third goes the length of the fourth entry. Unsigned integer as well, used
for fast skipping without parsing.
4. Fourth is actual entry data. All currently used ShaDa entries use
- containers to hold data: either map or array. Exact format depends on the
- entry type:
+ containers to hold data: either map or array. All string values in those
+ containers are either binary (applies to filenames) or UTF-8, yet parser
+ needs to expect that invalid bytes may be present in a UTF-8 string.
+
+ Exact format depends on the entry type:
Entry type (name) Entry data ~
1 (Header) Map containing data that describes the generator
@@ -1279,29 +1273,32 @@ exactly four MessagePack objects:
5 (Register) Map describing one register (|registers|). If key
value is equal to default then it is normally not
present. Keys:
- Key Type Def Description ~
- rt UInteger 0 Register type:
- No Description ~
- 0 |characterwise-register|
- 1 |linewise-register|
- 2 |blockwise-register|
- rw UInteger 0 Register width. Only valid
- for |blockwise-register|s.
- rc Array of binary N/A Register contents. Each
- entry in the array
- represents its own line.
- NUL characters inside the
- line should be represented
- as NL according to
- |NL-used-for-Nul|.
- n UInteger N/A Register name: character
- code in range [1, 255].
- Example: |quote0| register
- has name 48 (ASCII code for
- zero character).
- * any none Other keys are allowed
- for compatibility reasons,
- see |shada-compatibility|.
+ Key Type Def Description ~
+ rt UInteger 0 Register type:
+ No Description ~
+ 0 |characterwise-register|
+ 1 |linewise-register|
+ 2 |blockwise-register|
+ rw UInteger 0 Register width. Only valid
+ for |blockwise-register|s.
+ rc Array of binary N/A Register contents. Each
+ entry in the array
+ represents its own line.
+ NUL characters inside the
+ line should be represented
+ as NL according to
+ |NL-used-for-Nul|.
+ ru Boolean false Unnamed register. Whether
+ the unnamed register had
+ pointed to this register.
+ n UInteger N/A Register name: character
+ code in range [1, 255].
+ Example: |quote0| register
+ has name 48 (ASCII code for
+ zero character).
+ * any none Other keys are allowed
+ for compatibility reasons,
+ see |shada-compatibility|.
6 (Variable) Array containing two items: variable name (binary) and
variable value (any object). Values are converted
using the same code |msgpackparse()| uses when reading,
@@ -1361,39 +1358,38 @@ file when reading and include:
complete MessagePack object.
==============================================================================
-9. Base Directories *base-directories* *xdg*
-
-Nvim conforms to the XDG Base Directory Specification for application
-configuration and data file locations. This just means Nvim looks for some
-optional settings and uses them if they exist, otherwise defaults are chosen.
-https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
-
-CONFIGURATION DIRECTORY *$XDG_CONFIG_HOME*
-
- Base directory default:
- Unix: ~/.config
- Windows: ~/AppData/Local
-
- Nvim directory:
- Unix: ~/.config/nvim/
- Windows: ~/AppData/Local/nvim/
+9. Standard Paths
-DATA DIRECTORY *$XDG_DATA_HOME*
+Nvim stores configuration and data in standard locations. Plugins are strongly
+encouraged to follow this pattern also.
- Base directory default:
- Unix: ~/.local/share
- Windows: ~/AppData/Local
-
- Nvim directory:
- Unix: ~/.local/share/nvim/
- Windows: ~/AppData/Local/nvim-data/
-
-Note on Windows the configuration and data directory defaults are the same
-(for lack of an alternative), but the sub-directory for data is named
-"nvim-data" to separate it from the configuration sub-directory "nvim".
-
-Throughout other sections of the user manual, the defaults are used as generic
-placeholders, e.g. where "~/.config" is mentioned it should be understood to
-mean "$XDG_CONFIG_HOME or ~/.config".
+ *base-directories* *xdg*
+The "base" (root) directories conform to the XDG Base Directory Specification.
+https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
+The $XDG_CONFIG_HOME and $XDG_DATA_HOME environment variables are used if they
+exist, otherwise default values (listed below) are used.
+
+Note: Throughout the user manual these defaults are used as placeholders, e.g.
+"~/.config" is understood to mean "$XDG_CONFIG_HOME or ~/.config".
+
+CONFIG DIRECTORY *$XDG_CONFIG_HOME*
+ Base Nvim ~
+Unix: ~/.config ~/.config/nvim
+Windows: ~/AppData/Local ~/AppData/Local/nvim
+
+DATA DIRECTORY *$XDG_DATA_HOME*
+ Base Nvim ~
+Unix: ~/.local/share ~/.local/share/nvim
+Windows: ~/AppData/Local ~/AppData/Local/nvim-data
+
+STANDARD PATHS *standard-path*
+
+ *$NVIM_LOG_FILE*
+Besides 'debug' and 'verbose', Nvim has a low-level "log of last resort" that
+is written directly to the filesystem. This log may also be used by plugins or
+RPC clients for debugging. $NVIM_LOG_FILE contains the log file path: >
+ :echo $NVIM_LOG_FILE
+Usually the file is ~/.local/share/nvim/log unless that path is inaccessible
+or if $NVIM_LOG_FILE was set before |startup|.
vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index e59f567826..85330f3dec 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt* For Vim version 7.4. Last change: 2016 Aug 10
+*syntax.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -20,24 +20,7 @@ In the User Manual:
|usr_06.txt| introduces syntax highlighting.
|usr_44.txt| introduces writing a syntax file.
-1. Quick start |:syn-qstart|
-2. Syntax files |:syn-files|
-3. Syntax loading procedure |syntax-loading|
-4. Syntax file remarks |:syn-file-remarks|
-5. Defining a syntax |:syn-define|
-6. :syntax arguments |:syn-arguments|
-7. Syntax patterns |:syn-pattern|
-8. Syntax clusters |:syn-cluster|
-9. Including syntax files |:syn-include|
-10. Synchronizing |:syn-sync|
-11. Listing syntax items |:syntax|
-12. Highlight command |:highlight|
-13. Linking groups |:highlight-link|
-14. Cleaning up |:syn-clear|
-15. Highlighting tags |tag-highlight|
-16. Window-local syntax |:ownsyntax|
-17. Color xterms |xterm-color|
-18. When syntax is slow |:syntime|
+ Type |gO| to see the table of contents.
==============================================================================
1. Quick start *:syn-qstart*
@@ -56,10 +39,12 @@ fine. If it doesn't, try setting the VIM environment variable to the
directory where the Vim stuff is located. For example, if your syntax files
are in the "/usr/vim/vim50/syntax" directory, set $VIMRUNTIME to
"/usr/vim/vim50". You must do this in the shell, before starting Vim.
+This command also sources the |menu.vim| script when the GUI is running or
+will start soon. See |'go-M'| about avoiding that.
*:syn-on* *:syntax-on*
-The ":syntax enable" command will keep your current color settings. This
-allows using ":highlight" commands to set your preferred colors before or
+The `:syntax enable` command will keep your current color settings. This
+allows using `:highlight` commands to set your preferred colors before or
after using this command. If you want Vim to overrule your settings with the
defaults, use: >
:syntax on
@@ -805,12 +790,9 @@ See |mysyntaxfile-add| for installing script languages permanently.
APACHE *apache.vim* *ft-apache-syntax*
-The apache syntax file provides syntax highlighting depending on Apache HTTP
-server version, by default for 1.3.x. Set "apache_version" to Apache version
-(as a string) to get highlighting for another version. Example: >
+The apache syntax file provides syntax highlighting for Apache HTTP server
+version 2.2.3.
- :let apache_version = "2.0"
-<
*asm.vim* *asmh8300.vim* *nasm.vim* *masm.vim* *asm68k*
ASSEMBLY *ft-asm-syntax* *ft-asmh8300-syntax* *ft-nasm-syntax*
@@ -1472,7 +1454,7 @@ algorithm should work in the vast majority of cases. In some cases, such as a
file that begins with 500 or more full-line comments, the script may
incorrectly decide that the fortran code is in fixed form. If that happens,
just add a non-comment statement beginning anywhere in the first five columns
-of the first twenty five lines, save (:w) and then reload (:e!) the file.
+of the first twenty-five lines, save (:w) and then reload (:e!) the file.
Tabs in fortran files ~
Tabs are not recognized by the Fortran standards. Tabs are not a good idea in
@@ -2125,6 +2107,16 @@ set "msql_minlines" to the value you desire. Example: >
:let msql_minlines = 200
+N1QL *n1ql.vim* *ft-n1ql-syntax*
+
+N1QL is a SQL-like declarative language for manipulating JSON documents in
+Couchbase Server databases.
+
+Vim syntax highlights N1QL statements, keywords, operators, types, comments,
+and special values. Vim ignores syntactical elements specific to SQL or its
+many dialects, like COLUMN or CHAR, that don't exist in N1QL.
+
+
NCF *ncf.vim* *ft-ncf-syntax*
There is one option for NCF syntax highlighting.
@@ -2633,9 +2625,9 @@ later, and part earlier) adds.
RESTRUCTURED TEXT *rst.vim* *ft-rst-syntax*
-You may set what syntax definitions should be used for code blocks via
+You may set what syntax definitions should be used for code blocks via >
let rst_syntax_code_list = ['vim', 'lisp', ...]
-
+<
REXX *rexx.vim* *ft-rexx-syntax*
@@ -2656,68 +2648,103 @@ your vimrc: *g:filetype_r*
RUBY *ruby.vim* *ft-ruby-syntax*
-There are a number of options to the Ruby syntax highlighting.
+ Ruby: Operator highlighting |ruby_operators|
+ Ruby: Whitespace errors |ruby_space_errors|
+ Ruby: Folding |ruby_fold| |ruby_foldable_groups|
+ Ruby: Reducing expensive operations |ruby_no_expensive| |ruby_minlines|
+ Ruby: Spellchecking strings |ruby_spellcheck_strings|
-By default, the "end" keyword is colorized according to the opening statement
-of the block it closes. While useful, this feature can be expensive; if you
-experience slow redrawing (or you are on a terminal with poor color support)
-you may want to turn it off by defining the "ruby_no_expensive" variable: >
+ *ruby_operators*
+ Ruby: Operator highlighting ~
- :let ruby_no_expensive = 1
+Operators can be highlighted by defining "ruby_operators": >
+
+ :let ruby_operators = 1
<
-In this case the same color will be used for all control keywords.
+ *ruby_space_errors*
+ Ruby: Whitespace errors ~
-If you do want this feature enabled, but notice highlighting errors while
-scrolling backwards, which are fixed when redrawing with CTRL-L, try setting
-the "ruby_minlines" variable to a value larger than 50: >
+Whitespace errors can be highlighted by defining "ruby_space_errors": >
- :let ruby_minlines = 100
+ :let ruby_space_errors = 1
<
-Ideally, this value should be a number of lines large enough to embrace your
-largest class or module.
+This will highlight trailing whitespace and tabs preceded by a space character
+as errors. This can be refined by defining "ruby_no_trail_space_error" and
+"ruby_no_tab_space_error" which will ignore trailing whitespace and tabs after
+spaces respectively.
-Highlighting of special identifiers can be disabled by removing the
-rubyIdentifier highlighting: >
+ *ruby_fold* *ruby_foldable_groups*
+ Ruby: Folding ~
+
+Folding can be enabled by defining "ruby_fold": >
- :hi link rubyIdentifier NONE
+ :let ruby_fold = 1
<
-This will prevent highlighting of special identifiers like "ConstantName",
-"$global_var", "@@class_var", "@instance_var", "| block_param |", and
-":symbol".
+This will set the value of 'foldmethod' to "syntax" locally to the current
+buffer or window, which will enable syntax-based folding when editing Ruby
+filetypes.
+
+Default folding is rather detailed, i.e., small syntax units like "if", "do",
+"%w[]" may create corresponding fold levels.
-Significant methods of Kernel, Module and Object are highlighted by default.
-This can be disabled by defining "ruby_no_special_methods": >
+You can set "ruby_foldable_groups" to restrict which groups are foldable: >
- :let ruby_no_special_methods = 1
+ :let ruby_foldable_groups = 'if case %'
<
-This will prevent highlighting of important methods such as "require", "attr",
-"private", "raise" and "proc".
+The value is a space-separated list of keywords:
+
+ keyword meaning ~
+ -------- ------------------------------------- ~
+ ALL Most block syntax (default)
+ NONE Nothing
+ if "if" or "unless" block
+ def "def" block
+ class "class" block
+ module "module" block
+ do "do" block
+ begin "begin" block
+ case "case" block
+ for "for", "while", "until" loops
+ { Curly bracket block or hash literal
+ [ Array literal
+ % Literal with "%" notation, e.g.: %w(STRING), %!STRING!
+ / Regexp
+ string String and shell command output (surrounded by ', ", `)
+ : Symbol
+ # Multiline comment
+ << Here documents
+ __END__ Source code after "__END__" directive
+
+ *ruby_no_expensive*
+ Ruby: Reducing expensive operations ~
-Ruby operators can be highlighted. This is enabled by defining
-"ruby_operators": >
+By default, the "end" keyword is colorized according to the opening statement
+of the block it closes. While useful, this feature can be expensive; if you
+experience slow redrawing (or you are on a terminal with poor color support)
+you may want to turn it off by defining the "ruby_no_expensive" variable: >
- :let ruby_operators = 1
+ :let ruby_no_expensive = 1
<
-Whitespace errors can be highlighted by defining "ruby_space_errors": >
+In this case the same color will be used for all control keywords.
- :let ruby_space_errors = 1
-<
-This will highlight trailing whitespace and tabs preceded by a space character
-as errors. This can be refined by defining "ruby_no_trail_space_error" and
-"ruby_no_tab_space_error" which will ignore trailing whitespace and tabs after
-spaces respectively.
+ *ruby_minlines*
-Folding can be enabled by defining "ruby_fold": >
+If you do want this feature enabled, but notice highlighting errors while
+scrolling backwards, which are fixed when redrawing with CTRL-L, try setting
+the "ruby_minlines" variable to a value larger than 50: >
- :let ruby_fold = 1
+ :let ruby_minlines = 100
<
-This will set the 'foldmethod' option to "syntax" and allow folding of
-classes, modules, methods, code blocks, heredocs and comments.
+Ideally, this value should be a number of lines large enough to embrace your
+largest class or module.
-Folding of multiline comments can be disabled by defining
-"ruby_no_comment_fold": >
+ *ruby_spellcheck_strings*
+ Ruby: Spellchecking strings ~
- :let ruby_no_comment_fold = 1
+Ruby syntax will perform spellchecking of strings if you define
+"ruby_spellcheck_strings": >
+
+ :let ruby_spellcheck_strings = 1
<
SCHEME *scheme.vim* *ft-scheme-syntax*
@@ -2815,9 +2842,11 @@ vimrc file: >
(Adapted from the html.vim help text by Claudio Fleiner <claudio@fleiner.com>)
-SH *sh.vim* *ft-sh-syntax* *ft-bash-syntax* *ft-ksh-syntax*
+ *ft-posix-synax* *ft-dash-syntax*
+SH *sh.vim* *ft-sh-syntax* *ft-bash-syntax* *ft-ksh-syntax*
-This covers the "normal" Unix (Bourne) sh, bash and the Korn shell.
+This covers syntax highlighting for the older Unix (Bourne) sh, and newer
+shells such as bash, dash, posix, and the Korn shells.
Vim attempts to determine which shell type is in use by specifying that
various filenames are of specific types: >
@@ -2826,28 +2855,31 @@ various filenames are of specific types: >
bash: .bashrc* bashrc bash.bashrc .bash_profile* *.bash
<
If none of these cases pertain, then the first line of the file is examined
-(ex. /bin/sh /bin/ksh /bin/bash). If the first line specifies a shelltype,
-then that shelltype is used. However some files (ex. .profile) are known to
-be shell files but the type is not apparent. Furthermore, on many systems
-sh is symbolically linked to "bash" (Linux, Windows+cygwin) or "ksh" (Posix).
+(ex. looking for /bin/sh /bin/ksh /bin/bash). If the first line specifies a
+shelltype, then that shelltype is used. However some files (ex. .profile) are
+known to be shell files but the type is not apparent. Furthermore, on many
+systems sh is symbolically linked to "bash" (Linux, Windows+cygwin) or "ksh"
+(Posix).
-One may specify a global default by instantiating one of the following three
+One may specify a global default by instantiating one of the following
variables in your vimrc:
- ksh: >
+ ksh: >
let g:is_kornshell = 1
-< posix: (using this is the same as setting is_kornshell to 1) >
+< posix: (using this is the nearly the same as setting g:is_kornshell to 1) >
let g:is_posix = 1
< bash: >
let g:is_bash = 1
< sh: (default) Bourne shell >
let g:is_sh = 1
+< (dash users should use posix)
+
If there's no "#! ..." line, and the user hasn't availed himself/herself of a
default sh.vim syntax setting as just shown, then syntax/sh.vim will assume
the Bourne shell syntax. No need to quote RFCs or market penetration
statistics in error reports, please -- just select the default version of the
-sh your system uses in your vimrc.
+sh your system uses and install the associated "let..." in your <.vimrc>.
The syntax/sh.vim file provides several levels of syntax-based folding: >
@@ -2856,7 +2888,7 @@ The syntax/sh.vim file provides several levels of syntax-based folding: >
let g:sh_fold_enabled= 2 (enable heredoc folding)
let g:sh_fold_enabled= 4 (enable if/do/for folding)
>
-then various syntax items (HereDocuments and function bodies) become
+then various syntax items (ie. HereDocuments and function bodies) become
syntax-foldable (see |:syn-fold|). You also may add these together
to get multiple types of folding: >
@@ -2880,14 +2912,14 @@ reduce this, the "sh_maxlines" internal variable can be set. Example: >
The default is to use the twice sh_minlines. Set it to a smaller number to
speed up displaying. The disadvantage is that highlight errors may appear.
- *g:sh_isk* *g:sh_noisk*
-The shell languages appear to let "." be part of words, commands, etc;
-consequently it should be in the isk for sh.vim. As of v116 of syntax/sh.vim,
-syntax/sh.vim will append the "." to |'iskeyword'| by default; you may control
-this behavior with: >
- let g:sh_isk = '..whatever characters you want as part of iskeyword'
- let g:sh_noisk= 1 " otherwise, if this exists, the isk will NOT chg
+syntax/sh.vim tries to flag certain problems as errors; usually things like
+extra ']'s, 'done's, 'fi's, etc. If you find the error handling problematic
+for your purposes, you may suppress such error highlighting by putting
+the following line in your .vimrc: >
+
+ let g:sh_no_error= 1
<
+
*sh-embed* *sh-awk*
Sh: EMBEDDING LANGUAGES~
@@ -3189,11 +3221,11 @@ syntax highlighting script handles this with the following logic:
* If g:tex_stylish exists and is 1
then the file will be treated as a "sty" file, so the "_"
will be allowed as part of keywords
- (irregardless of g:tex_isk)
+ (regardless of g:tex_isk)
* Else if the file's suffix is sty, cls, clo, dtx, or ltx,
then the file will be treated as a "sty" file, so the "_"
will be allowed as part of keywords
- (irregardless of g:tex_isk)
+ (regardless of g:tex_isk)
* If g:tex_isk exists, then it will be used for the local 'iskeyword'
* Else the local 'iskeyword' will be set to 48-57,a-z,A-Z,192-255
@@ -3247,11 +3279,10 @@ improve screen updating rates (see |:syn-sync| for more on this). >
The g:vimsyn_embed option allows users to select what, if any, types of
embedded script highlighting they wish to have. >
- g:vimsyn_embed == 0 : don't embed any scripts
- g:vimsyn_embed =~ 'P' : support embedded python
+ g:vimsyn_embed == 0 : disable (don't embed any scripts)
+ g:vimsyn_embed == 'lPr' : support embedded lua, python and ruby
<
-By default, g:vimsyn_embed is a string supporting interpreters that your vim
-itself supports.
+This option is disabled by default.
*g:vimsyn_folding*
Some folding is now supported with syntax/vim.vim: >
@@ -3262,8 +3293,8 @@ Some folding is now supported with syntax/vim.vim: >
g:vimsyn_folding =~ 'P' : fold python script
<
*g:vimsyn_noerror*
-Not all error highlighting that syntax/vim.vim does may be correct; VimL is a
-difficult language to highlight correctly. A way to suppress error
+Not all error highlighting that syntax/vim.vim does may be correct; Vim script
+is a difficult language to highlight correctly. A way to suppress error
highlighting is to put the following line in your |vimrc|: >
let g:vimsyn_noerror = 1
@@ -3421,6 +3452,8 @@ DEFINING CASE *:syn-case* *E390*
"ignore". Note that any items before this are not affected, and all
items until the next ":syntax case" command are affected.
+:sy[ntax] case
+ Show either "syntax case match" or "syntax case ignore" (translated).
SPELL CHECKING *:syn-spell*
@@ -3438,6 +3471,11 @@ SPELL CHECKING *:syn-spell*
To activate spell checking the 'spell' option must be set.
+:sy[ntax] spell
+ Show either "syntax spell toplevel", "syntax spell notoplevel" or
+ "syntax spell default" (translated).
+
+
SYNTAX ISKEYWORD SETTING *:syn-iskeyword*
:sy[ntax] iskeyword [clear | {option}]
@@ -3461,8 +3499,8 @@ SYNTAX ISKEYWORD SETTING *:syn-iskeyword*
and also determines where |:syn-keyword| will be checked for a new
match.
- It is recommended when writing syntax files, to use this command
- to the correct value for the specific syntax language and not change
+ It is recommended when writing syntax files, to use this command to
+ set the correct value for the specific syntax language and not change
the 'iskeyword' option.
DEFINING KEYWORDS *:syn-keyword*
@@ -3520,7 +3558,11 @@ DEFINING KEYWORDS *:syn-keyword*
DEFINING MATCHES *:syn-match*
-:sy[ntax] match {group-name} [{options}] [excludenl] {pattern} [{options}]
+:sy[ntax] match {group-name} [{options}]
+ [excludenl]
+ [keepend]
+ {pattern}
+ [{options}]
This defines one match.
@@ -3529,6 +3571,9 @@ DEFINING MATCHES *:syn-match*
[excludenl] Don't make a pattern with the end-of-line "$"
extend a containing match or region. Must be
given before the pattern. |:syn-excludenl|
+ keepend Don't allow contained matches to go past a
+ match with the end pattern. See
+ |:syn-keepend|.
{pattern} The search pattern that defines the match.
See |:syn-pattern| below.
Note that the pattern may match more than one
@@ -3739,7 +3784,7 @@ Whether or not it is actually concealed depends on the value of the
'conceallevel' option. The 'concealcursor' option is used to decide whether
concealable items in the current line are displayed unconcealed to be able to
edit the line.
-Another way to conceal text with with |matchadd()|.
+Another way to conceal text is with |matchadd()|.
concealends *:syn-concealends*
@@ -4024,6 +4069,9 @@ IMPLICIT CONCEAL *:syn-conceal-implicit*
off" returns to the normal state where the "conceal" flag must be
given explicitly.
+:sy[ntax] conceal
+ Show either "syntax conceal on" or "syntax conceal off" (translated).
+
==============================================================================
7. Syntax patterns *:syn-pattern* *E401* *E402*
@@ -4504,12 +4552,11 @@ is mostly used, because it looks better.
==============================================================================
12. Highlight command *:highlight* *:hi* *E28* *E411* *E415*
-There are three types of highlight groups:
+There are two types of highlight groups:
+- The built-in |highlight-groups|.
- The ones used for specific languages. For these the name starts with the
name of the language. Many of these don't have any attributes, but are
linked to a group of the second type.
-- The ones used for all syntax languages.
-- The ones used for the 'highlight' option.
*hitest.vim*
You can see all the groups currently active with this command: >
:so $VIMRUNTIME/syntax/hitest.vim
@@ -4532,7 +4579,14 @@ in their own color.
Doesn't work recursively, thus you can't use
":colorscheme" in a color scheme script.
- After the color scheme has been loaded the
+
+ To customize a colorscheme use another name, e.g.
+ "~/.vim/colors/mine.vim", and use `:runtime` to load
+ the original colorscheme: >
+ runtime colors/evening.vim
+ hi Statement ctermfg=Blue guifg=Blue
+
+< After the color scheme has been loaded the
|ColorScheme| autocommand event is triggered.
For info about writing a colorscheme file: >
:edit $VIMRUNTIME/colors/README.txt
@@ -4589,8 +4643,7 @@ mentioned for the default values. See |:verbose-cmd| for more information.
*highlight-args* *E416* *E417* *E423*
There are three types of terminals for highlighting:
term a normal terminal (vt100, xterm)
-cterm a color terminal (Windows console, color-xterm, these have the "Co"
- termcap entry)
+cterm a color terminal (Windows console, color-xterm)
gui the GUI
For each type the highlighting can be given. This makes it possible to use
@@ -4630,21 +4683,12 @@ stop={term-list} *term-list* *highlight-stop*
highlighted area. This should undo the "start" argument.
Otherwise the screen will look messed up.
- The {term-list} can have two forms:
-
- 1. A string with escape sequences.
- This is any string of characters, except that it can't start with
- "t_" and blanks are not allowed. The <> notation is recognized
- here, so you can use things like "<Esc>" and "<Space>". Example:
+ {term-list} is a a string with escape sequences. This is any string of
+ characters, except that it can't start with "t_" and blanks are not
+ allowed. The <> notation is recognized here, so you can use things
+ like "<Esc>" and "<Space>". Example:
start=<Esc>[27h;<Esc>[<Space>r;
- 2. A list of terminal codes.
- Each terminal code has the form "t_xx", where "xx" is the name of
- the termcap entry. The codes have to be separated with commas.
- White space is not allowed. Example:
- start=t_C1,t_BL
- The terminal codes must exist for this to work.
-
2. highlight arguments for color terminals
@@ -4659,7 +4703,7 @@ cterm={attr-list} *highlight-cterm*
ctermfg={color-nr} *highlight-ctermfg* *E421*
ctermbg={color-nr} *highlight-ctermbg*
The {color-nr} argument is a color number. Its range is zero to
- (not including) the number given by the termcap entry "Co".
+ (not including) the number of |tui-colors| available.
The actual color with this number depends on the type of terminal
and its settings. Sometimes the color also depends on the settings of
"cterm". For example, on some systems "cterm=bold ctermfg=3" gives
@@ -4669,7 +4713,7 @@ ctermbg={color-nr} *highlight-ctermbg*
unpredictable. See your xterm documentation for the defaults. The
colors for a color-xterm can be changed from the .Xdefaults file.
Unfortunately this means that it's not possible to get the same colors
- for each user. See |xterm-color| for info about color xterms.
+ for each user.
The MSDOS standard colors are fixed (in a console window), so these
have been used for the names. But the meaning of color names in X11
@@ -4722,18 +4766,18 @@ ctermbg={color-nr} *highlight-ctermbg*
Example: >
:highlight Normal ctermfg=grey ctermbg=darkblue
< When setting the "ctermbg" color for the Normal group, the
- 'background' option will be adjusted automatically. This causes the
- highlight groups that depend on 'background' to change! This means
- you should set the colors for Normal first, before setting other
- colors.
+ 'background' option will be adjusted automatically, under the
+ condition that the color is recognized and 'background' was not set
+ explicitly. This causes the highlight groups that depend on
+ 'background' to change! This means you should set the colors for
+ Normal first, before setting other colors.
When a colorscheme is being used, changing 'background' causes it to
be reloaded, which may reset all colors (including Normal). First
delete the "g:colors_name" variable when you don't want this.
When you have set "ctermfg" or "ctermbg" for the Normal group, Vim
- needs to reset the color when exiting. This is done with the "op"
- termcap entry |t_op|. If this doesn't work correctly, try setting the
- 't_op' option in your vimrc.
+ needs to reset the color when exiting. This is done with the
+ "orig_pair" |terminfo| entry.
*E419* *E420*
When Vim knows the normal foreground and background colors, "fg" and
"bg" can be used as color names. This only works after setting the
@@ -4803,10 +4847,7 @@ guisp={color-name} *highlight-guisp*
Black White
Orange Purple Violet
- In the Win32 GUI version, additional system colors are available. See
- |win32-colors|.
-
- You can also specify a color by its Red, Green and Blue values.
+ You can also specify a color by its RGB (red, green, blue) values.
The format is "#rrggbb", where
"rr" is the Red value
"gg" is the Green value
@@ -4815,10 +4856,9 @@ guisp={color-name} *highlight-guisp*
:highlight Comment guifg=#11f0c3 guibg=#ff00ff
<
*highlight-groups* *highlight-default*
-These are the default highlighting groups. These groups are used by the
-'highlight' option default. Note that the highlighting depends on the value
-of 'background'. You can see the current settings with the ":highlight"
-command.
+These are the builtin highlighting groups. Note that the highlighting depends
+on the value of 'background'. You can see the current settings with the
+":highlight" command.
*hl-ColorColumn*
ColorColumn used for the columns set with 'colorcolumn'
*hl-Conceal*
@@ -4888,6 +4928,8 @@ NonText '@' at the end of the window, characters from 'showbreak'
fit at the end of the line). See also |hl-EndOfBuffer|.
*hl-Normal*
Normal normal text
+ *hl-NormalNC*
+NormalNC normal text in non-current windows
*hl-Pmenu*
Pmenu Popup menu: normal item.
*hl-PmenuSel*
@@ -4899,32 +4941,28 @@ PmenuThumb Popup menu: Thumb of the scrollbar.
*hl-Question*
Question |hit-enter| prompt and yes/no questions
*hl-QuickFixLine*
-QuickFixLine The selected |quickfix| item in the quickfix window.
- |hl-CursorLine| is combined with this when the cursor is on
- the currently selected quickfix item.
+QuickFixLine Current |quickfix| item in the quickfix window. Combined with
+ |hl-CursorLine| when the cursor is there.
*hl-Search*
Search Last search pattern highlighting (see 'hlsearch').
- Also used for highlighting the current line in the quickfix
- window and similar items that need to stand out.
+ Also used for similar items that need to stand out.
*hl-SpecialKey*
-SpecialKey Meta and special keys listed with ":map", also for text used
- to show unprintable characters in the text, 'listchars'.
- Generally: text that is displayed differently from what it
- really is.
+SpecialKey Unprintable characters: text displayed differently from what
+ it really is. But not 'listchars' whitespace. |hl-Whitespace|
*hl-SpellBad*
SpellBad Word that is not recognized by the spellchecker. |spell|
- This will be combined with the highlighting used otherwise.
+ Combined with the highlighting used otherwise.
*hl-SpellCap*
SpellCap Word that should start with a capital. |spell|
- This will be combined with the highlighting used otherwise.
+ Combined with the highlighting used otherwise.
*hl-SpellLocal*
SpellLocal Word that is recognized by the spellchecker as one that is
used in another region. |spell|
- This will be combined with the highlighting used otherwise.
+ Combined with the highlighting used otherwise.
*hl-SpellRare*
SpellRare Word that is recognized by the spellchecker as one that is
hardly ever used. |spell|
- This will be combined with the highlighting used otherwise.
+ Combined with the highlighting used otherwise.
*hl-StatusLine*
StatusLine status line of current window
*hl-StatusLineNC*
@@ -4941,8 +4979,12 @@ TabLineSel tab pages line, active tab page label
Title titles for output from ":set all", ":autocmd" etc.
*hl-Visual*
Visual Visual mode selection
+ *hl-VisualNOS*
+VisualNOS Visual mode selection when vim is "Not Owning the Selection".
*hl-WarningMsg*
WarningMsg warning messages
+ *hl-Whitespace*
+Whitespace "nbsp", "space", "tab" and "trail" in 'listchars'
*hl-WildMenu*
WildMenu current match in 'wildmenu' completion
@@ -5047,8 +5089,6 @@ defaults back: >
It is a bit of a wrong name, since it does not reset any syntax items, it only
affects the highlighting.
-This doesn't change the colors for the 'highlight' option.
-
Note that the syntax colors that you set in your vimrc file will also be reset
back to their Vim default.
Note that if you are using a color scheme, the colors defined by the color
@@ -5167,146 +5207,12 @@ When splitting the window, the new window will use the original syntax.
==============================================================================
17. Color xterms *xterm-color* *color-xterm*
-Most color xterms have only eight colors. If you don't get colors with the
-default setup, it should work with these lines in your vimrc: >
- :if &term =~ "xterm"
- : if has("terminfo")
- : set t_Co=8
- : set t_Sf=<Esc>[3%p1%dm
- : set t_Sb=<Esc>[4%p1%dm
- : else
- : set t_Co=8
- : set t_Sf=<Esc>[3%dm
- : set t_Sb=<Esc>[4%dm
- : endif
- :endif
-< [<Esc> is a real escape, type CTRL-V <Esc>]
-
-You might want to change the first "if" to match the name of your terminal,
-e.g. "dtterm" instead of "xterm".
-
-Note: Do these settings BEFORE doing ":syntax on". Otherwise the colors may
-be wrong.
- *xiterm* *rxvt*
-The above settings have been mentioned to work for xiterm and rxvt too.
-But for using 16 colors in an rxvt these should work with terminfo: >
- :set t_AB=<Esc>[%?%p1%{8}%<%t25;%p1%{40}%+%e5;%p1%{32}%+%;%dm
- :set t_AF=<Esc>[%?%p1%{8}%<%t22;%p1%{30}%+%e1;%p1%{22}%+%;%dm
-<
*colortest.vim*
To test your color setup, a file has been included in the Vim distribution.
To use it, execute this command: >
:runtime syntax/colortest.vim
-Some versions of xterm (and other terminals, like the Linux console) can
-output lighter foreground colors, even though the number of colors is defined
-at 8. Therefore Vim sets the "cterm=bold" attribute for light foreground
-colors, when 't_Co' is 8.
-
- *xfree-xterm*
-To get 16 colors or more, get the newest xterm version (which should be
-included with XFree86 3.3 and later). You can also find the latest version
-at: >
- http://invisible-island.net/xterm/xterm.html
-Here is a good way to configure it. This uses 88 colors and enables the
-termcap-query feature, which allows Vim to ask the xterm how many colors it
-supports. >
- ./configure --disable-bold-color --enable-88-color --enable-tcap-query
-If you only get 8 colors, check the xterm compilation settings.
-(Also see |UTF8-xterm| for using this xterm with UTF-8 character encoding).
-
-This xterm should work with these lines in your vimrc (for 16 colors): >
- :if has("terminfo")
- : set t_Co=16
- : set t_AB=<Esc>[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{92}%+%;%dm
- : set t_AF=<Esc>[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{82}%+%;%dm
- :else
- : set t_Co=16
- : set t_Sf=<Esc>[3%dm
- : set t_Sb=<Esc>[4%dm
- :endif
-< [<Esc> is a real escape, type CTRL-V <Esc>]
-
-Without |+terminfo|, Vim will recognize these settings, and automatically
-translate cterm colors of 8 and above to "<Esc>[9%dm" and "<Esc>[10%dm".
-Colors above 16 are also translated automatically.
-
-For 256 colors this has been reported to work: >
-
- :set t_AB=<Esc>[48;5;%dm
- :set t_AF=<Esc>[38;5;%dm
-
-Or just set the TERM environment variable to "xterm-color" or "xterm-16color"
-and try if that works.
-
-You probably want to use these X resources (in your ~/.Xdefaults file):
- XTerm*color0: #000000
- XTerm*color1: #c00000
- XTerm*color2: #008000
- XTerm*color3: #808000
- XTerm*color4: #0000c0
- XTerm*color5: #c000c0
- XTerm*color6: #008080
- XTerm*color7: #c0c0c0
- XTerm*color8: #808080
- XTerm*color9: #ff6060
- XTerm*color10: #00ff00
- XTerm*color11: #ffff00
- XTerm*color12: #8080ff
- XTerm*color13: #ff40ff
- XTerm*color14: #00ffff
- XTerm*color15: #ffffff
- Xterm*cursorColor: Black
-
-[Note: The cursorColor is required to work around a bug, which changes the
-cursor color to the color of the last drawn text. This has been fixed by a
-newer version of xterm, but not everybody is using it yet.]
-
-To get these right away, reload the .Xdefaults file to the X Option database
-Manager (you only need to do this when you just changed the .Xdefaults file): >
- xrdb -merge ~/.Xdefaults
-<
- *xterm-blink* *xterm-blinking-cursor*
-To make the cursor blink in an xterm, see tools/blink.c. Or use Thomas
-Dickey's xterm above patchlevel 107 (see above for where to get it), with
-these resources:
- XTerm*cursorBlink: on
- XTerm*cursorOnTime: 400
- XTerm*cursorOffTime: 250
- XTerm*cursorColor: White
-
- *hpterm-color*
-These settings work (more or less) for an hpterm, which only supports 8
-foreground colors: >
- :if has("terminfo")
- : set t_Co=8
- : set t_Sf=<Esc>[&v%p1%dS
- : set t_Sb=<Esc>[&v7S
- :else
- : set t_Co=8
- : set t_Sf=<Esc>[&v%dS
- : set t_Sb=<Esc>[&v7S
- :endif
-< [<Esc> is a real escape, type CTRL-V <Esc>]
-
- *Eterm* *enlightened-terminal*
-These settings have been reported to work for the Enlightened terminal
-emulator, or Eterm. They might work for all xterm-like terminals that use the
-bold attribute to get bright colors. Add an ":if" like above when needed. >
- :set t_Co=16
- :set t_AF=^[[%?%p1%{8}%<%t3%p1%d%e%p1%{22}%+%d;1%;m
- :set t_AB=^[[%?%p1%{8}%<%t4%p1%d%e%p1%{32}%+%d;1%;m
-<
- *TTpro-telnet*
-These settings should work for TTpro telnet. Tera Term Pro is a freeware /
-open-source program for MS-Windows. >
- set t_Co=16
- set t_AB=^[[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{32}%+5;%;%dm
- set t_AF=^[[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{22}%+1;%;%dm
-Also make sure TTpro's Setup / Window / Full Color is enabled, and make sure
-that Setup / Font / Enable Bold is NOT enabled.
-(info provided by John Love-Jensen <eljay@Adobe.COM>)
-
+Nvim uses |256-color| and |true-color| terminal capabilities whereever possible.
==============================================================================
18. When syntax is slow *:syntime*
diff --git a/runtime/doc/tabpage.txt b/runtime/doc/tabpage.txt
index 4ab5b3c759..6be7cf9746 100644
--- a/runtime/doc/tabpage.txt
+++ b/runtime/doc/tabpage.txt
@@ -1,4 +1,4 @@
-*tabpage.txt* For Vim version 7.4. Last change: 2015 Apr 18
+*tabpage.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -10,11 +10,7 @@ The commands which have been added to use multiple tab pages are explained
here. Additionally, there are explanations for commands that work differently
when used in combination with more than one tab page.
-1. Introduction |tab-page-intro|
-2. Commands |tab-page-commands|
-3. Other items |tab-page-other|
-4. Setting 'tabline' |setting-tabline|
-5. Setting 'guitablabel' |setting-guitablabel|
+ Type |gO| to see the table of contents.
==============================================================================
1. Introduction *tab-page-intro*
@@ -54,6 +50,8 @@ right of the labels.
In the GUI tab pages line you can use the right mouse button to open menu.
|tabline-menu|.
+For the related autocommands see |tabnew-autocmd|.
+
:[count]tabe[dit] *:tabe* *:tabedit* *:tabnew*
:[count]tabnew
Open a new tab page with an empty window, after the current
@@ -129,10 +127,14 @@ something else.
:tabc[lose][!] {count}
Close tab page {count}. Fails in the same way as `:tabclose`
above. >
- :-tabclose " close the previous tab page
- :+tabclose " close the next tab page
- :1tabclose " close the first tab page
- :$tabclose " close the last tab page
+ :-tabclose " close the previous tab page
+ :+tabclose " close the next tab page
+ :1tabclose " close the first tab page
+ :$tabclose " close the last tab page
+ :tabclose -2 " close the two previous tab page
+ :tabclose + " close the next tab page
+ :tabclose 3 " close the third tab page
+ :tabclose $ " close the last tab page
<
*:tabo* *:tabonly*
:tabo[nly][!] Close all other tab pages.
@@ -145,13 +147,20 @@ something else.
never abandoned, so changes cannot get lost. >
:tabonly " close all tab pages except the current one
-:{count}tabo[nly][!]
- Close all tab pages except the {count}th one. >
- :.tabonly " as above
- :-tabonly " close all tab pages except the previous one
- :+tabonly " close all tab pages except the next one
- :1tabonly " close all tab pages except the first one
- :$tabonly " close all tab pages except the last one.
+:tabo[nly][!] {count}
+ Close all tab pages except {count} one. >
+ :.tabonly " as above
+ :-tabonly " close all tab pages except the previous
+ " one
+ :+tabonly " close all tab pages except the next one
+ :1tabonly " close all tab pages except the first one
+ :$tabonly " close all tab pages except the last one
+ :tabonly - " close all tab pages except the previous
+ " one
+ :tabonly +2 " close all tab pages except the two next
+ " one
+ :tabonly 1 " close all tab pages except the first one
+ :tabonly $ " close all tab pages except the last one
SWITCHING TO ANOTHER TAB PAGE:
@@ -166,7 +175,20 @@ gt *i_CTRL-<PageDown>* *i_<C-PageDown>*
Go to the next tab page. Wraps around from the last to the
first one.
+:{count}tabn[ext]
:tabn[ext] {count}
+ Go to tab page {count}. The first tab page has number one. >
+ :-tabnext " go to the previous tab page
+ :+tabnext " go to the next tab page
+ :+2tabnext " go to the two next tab page
+ :1tabnext " go to the first tab page
+ :$tabnext " go to the last tab page
+ :tabnext $ " as above
+ :tabnext - " go to the previous tab page
+ :tabnext -1 " as above
+ :tabnext + " go to the next tab page
+ :tabnext +1 " as above
+
{count}<C-PageDown>
{count}gt Go to tab page {count}. The first tab page has number one.
@@ -195,6 +217,12 @@ Other commands:
:tabs List the tab pages and the windows they contain.
Shows a ">" for the current window.
Shows a "+" for modified buffers.
+ For example:
+ Tab page 1 ~
+ + tabpage.txt ~
+ ex_docmd.c ~
+ Tab page 2 ~
+ > main.c ~
REORDERING TAB PAGES:
@@ -273,6 +301,7 @@ Variables local to a tab page start with "t:". |tabpage-variable|
Currently there is only one option local to a tab page: 'cmdheight'.
+ *tabnew-autocmd*
The TabLeave and TabEnter autocommand events can be used to do something when
switching from one tab page to another. The exact order depends on what you
are doing. When creating a new tab page this works as if you create a new
diff --git a/runtime/doc/tagsrch.txt b/runtime/doc/tagsrch.txt
index 047abb42cc..f0ad2cfd43 100644
--- a/runtime/doc/tagsrch.txt
+++ b/runtime/doc/tagsrch.txt
@@ -1,4 +1,4 @@
-*tagsrch.txt* For Vim version 7.4. Last change: 2013 Oct 01
+*tagsrch.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -8,12 +8,7 @@ Tags and special searches *tags-and-searches*
See section |29.1| of the user manual for an introduction.
-1. Jump to a tag |tag-commands|
-2. Tag stack |tag-stack|
-3. Tag match list |tag-matchlist|
-4. Tags details |tag-details|
-5. Tags file format |tags-file-format|
-6. Include file searches |include-search|
+ Type |gO| to see the table of contents.
==============================================================================
1. Jump to a tag *tag-commands*
@@ -90,7 +85,7 @@ The ignore-case matches are not found for a ":tag" command when:
- 'tagcase' is "followscs" and 'smartcase' option is on and the pattern
contains an upper case character.
-The gnore-case matches are found when:
+The ignore-case matches are found when:
- a pattern is used (starting with a "/")
- for ":tselect"
- when 'tagcase' is "followic" and 'ignorecase' is off
@@ -194,6 +189,7 @@ the same entry.
information in the tags file(s).
When [ident] is not given, the last tag name from the
tag stack is used.
+ See |tag-!| for [!].
With a '>' in the first column is indicated which is
the current position in the list (if there is one).
[ident] can be a regexp pattern, see |tag-regexp|.
@@ -432,9 +428,9 @@ The next file in the list is not used when:
This also depends on whether case is ignored. Case is ignored when:
- 'tagcase' is "followic" and 'ignorecase' is set
- 'tagcase' is "ignore"
-- 'tagcase' is "smart" and and the pattern only contains lower case
+- 'tagcase' is "smart" and the pattern only contains lower case
characters.
-- 'tagcase' is "followscs" and 'smartcase' is set and and the pattern only
+- 'tagcase' is "followscs" and 'smartcase' is set and the pattern only
contains lower case characters.
If case is not ignored, and the tags file only has a match without matching
case, the next tags file is searched for a match with matching case. If no
@@ -803,24 +799,24 @@ CTRL-W d Open a new window, with the cursor on the first
*:search-args*
Common arguments for the commands above:
-[!] When included, find matches in lines that are recognized as comments.
- When excluded, a match is ignored when the line is recognized as a
- comment (according to 'comments'), or the match is in a C comment (after
- "//" or inside /* */). Note that a match may be missed if a line is
- recognized as a comment, but the comment ends halfway through the line.
- And if the line is a comment, but it is not recognized (according to
- 'comments') a match may be found in it anyway. Example: >
+[!] When included, find matches in lines that are recognized as comments.
+ When excluded, a match is ignored when the line is recognized as a
+ comment (according to 'comments'), or the match is in a C comment
+ (after "//" or inside /* */). Note that a match may be missed if a
+ line is recognized as a comment, but the comment ends halfway the line.
+ And if the line is a comment, but it is not recognized (according to
+ 'comments') a match may be found in it anyway. Example: >
/* comment
foobar */
-< A match for "foobar" is found, because this line is not recognized as a
- comment (even though syntax highlighting does recognize it).
- Note: Since a macro definition mostly doesn't look like a comment, the
- [!] makes no difference for ":dlist", ":dsearch" and ":djump".
-[/] A pattern can be surrounded by '/'. Without '/' only whole words are
- matched, using the pattern "\<pattern\>". Only after the second '/' a
- next command can be appended with '|'. Example: >
+< A match for "foobar" is found, because this line is not recognized as
+ a comment (even though syntax highlighting does recognize it).
+ Note: Since a macro definition mostly doesn't look like a comment, the
+ [!] makes no difference for ":dlist", ":dsearch" and ":djump".
+[/] A pattern can be surrounded by '/'. Without '/' only whole words are
+ matched, using the pattern "\<pattern\>". Only after the second '/' a
+ next command can be appended with '|'. Example: >
:isearch /string/ | echo "the last one"
-< For a ":djump", ":dsplit", ":dlist" and ":dsearch" command the pattern
- is used as a literal string, not as a search pattern.
+< For a ":djump", ":dsplit", ":dlist" and ":dsearch" command the pattern
+ is used as a literal string, not as a search pattern.
vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/term.txt b/runtime/doc/term.txt
index 137d3a06db..a694185fc9 100644
--- a/runtime/doc/term.txt
+++ b/runtime/doc/term.txt
@@ -1,69 +1,188 @@
-*term.txt* For Vim version 7.4. Last change: 2015 Nov 24
+*term.txt* Nvim
- VIM REFERENCE MANUAL by Bram Moolenaar
+ NVIM REFERENCE MANUAL
-Terminal information *terminal-info*
+Terminal UI *tui*
-Vim uses information about the terminal you are using to fill the screen and
-recognize what keys you hit. If this information is not correct, the screen
-may be messed up or keys may not be recognized. The actions which have to be
-performed on the screen are accomplished by outputting a string of
-characters. Special keys produce a string of characters. These strings are
-stored in the terminal options, see |terminal-options|.
+Nvim (except in |--headless| mode) uses information about the terminal you are
+using to present a built-in UI. If that information is not correct, the
+screen may be messed up or keys may not be recognized.
-NOTE: Most of this is not used when running the |GUI|.
-
-1. Startup |startup-terminal|
-2. Terminal options |terminal-options|
-3. Window size |window-size|
-4. Slow and fast terminals |slow-fast-terminal|
-5. Using the mouse |mouse-using|
+ Type |gO| to see the table of contents.
==============================================================================
-1. Startup *startup-terminal*
+Startup *startup-terminal*
-When Vim is started a default terminal type is assumed. for MS-DOS this is
-the pc terminal, for Unix an ansi terminal.
+Nvim (except in |--headless| mode) guesses a terminal type when it starts.
+|$TERM| is the primary hint that determines the terminal type.
- *termcap* *terminfo* *E557* *E558* *E559*
-On Unix the terminfo database or termcap file is used. This is referred to as
-"termcap" in all the documentation. At compile time, when running configure,
-the choice whether to use terminfo or termcap is done automatically. When
-running Vim the output of ":version" will show |+terminfo| if terminfo is
-used. Also see |xterm-screens|.
+ *terminfo* *E557* *E558* *E559*
+The terminfo database is used if available.
-Settings depending on terminal *term-dependent-settings*
+The Unibilium library (used by Nvim to read terminfo) allows you to override
+the system terminfo with one in $HOME/.terminfo/ directory, in part or in
+whole.
-If you want to set options or mappings, depending on the terminal name, you
-can do this best in your vimrc. Example: >
+Building your own terminfo is usually as simple as running this as
+a non-superuser:
+>
+ curl -LO http://invisible-island.net/datafiles/current/terminfo.src.gz
+ gunzip terminfo.src.gz
+ tic terminfo.src
+<
+ *$TERM*
+The $TERM environment variable must match the terminal you are using!
+Otherwise Nvim cannot know what sequences your terminal expects, and weird
+or sub-optimal behavior will result (scrolling quirks, wrong colors, etc.).
+
+$TERM is also important because it is mirrored by SSH to the remote session,
+unlike other common client-end environment variables ($COLORTERM,
+$XTERM_VERSION, $VTE_VERSION, $KONSOLE_PROFILE_NAME, $TERM_PROGRAM, ...).
+
+ For this terminal Set $TERM to |builtin-terms|
+ -------------------------------------------------------------------------
+ iTerm (original) iterm, iTerm.app N
+ iTerm2 (new capabilities) iterm2, iTerm2.app Y
+ anything libvte-based vte, vte-256color Y
+ (e.g. GNOME Terminal) (aliases: gnome, gnome-256color)
+ tmux tmux, tmux-256color Y
+ screen screen, screen-256color Y
+ PuTTY putty, putty-256color Y
+ Terminal.app nsterm N
+ Linux virtual terminal linux, linux-256color Y
+
+ *builtin-terms* *builtin_terms*
+If a |terminfo| database is not available, or no entry for the terminal type is
+found in that database, Nvim will use a compiled-in mini-database of terminfo
+entries for "xterm", "putty", "screen", "tmux", "rxvt", "iterm", "interix",
+"linux", "st", "vte", "gnome", and "ansi".
+
+The lookup matches the initial portion of the terminal type, so (for example)
+"putty-256color" and "putty" will both be mapped to the built-in "putty"
+entry. The built-in terminfo entries describe the terminal as 256-colour
+capable if possible. See |tui-colors|.
+
+If no built-in terminfo record matches the terminal type, the built-in "ansi"
+terminfo record is used as a final fallback.
+
+The built-in mini-database is not combined with an external terminfo database,
+nor can it be used in preference to one. You can thus entirely override any
+omissions or out-of-date information in the built-in terminfo database by
+supplying an external one with entries for the terminal type.
- if &term == "xterm"
- ... xterm maps and settings ...
- elseif &term =~ "vt10."
- ... vt100, vt102 maps and settings ...
- endif
+Settings depending on terminal *term-dependent-settings*
+
+If you want to set terminal-dependent options or mappings, you can do this in
+your init.vim. Example: >
+
+ if $TERM =~ '^\(rxvt\|screen\|interix\|putty\)\(-.*\)\?$'
+ set notermguicolors
+ elseif $TERM =~ '^\(tmux\|iterm\|vte\|gnome\)\(-.*\)\?$'
+ set termguicolors
+ elseif $TERM =~ '^\(xterm\)\(-.*\)\?$'
+ if $XTERM_VERSION != ''
+ set termguicolors
+ elseif $KONSOLE_PROFILE_NAME != ''
+ set termguicolors
+ elseif $VTE_VERSION != ''
+ set termguicolors
+ else
+ set notermguicolors
+ endif
+ elseif $TERM =~ ...
+ ... and so forth ...
+ endif
<
- *raw-terminal-mode*
-For normal editing the terminal will be put into "raw" mode. The strings
-defined with 't_ti' and 't_ks' will be sent to the terminal. Normally this
-puts the terminal in a state where the termcap codes are valid and activates
-the cursor and function keys. When Vim exits the terminal will be put back
-into the mode it was before Vim started. The strings defined with 't_te' and
-'t_ke' will be sent to the terminal.
+ *scroll-region* *xterm-scroll-region*
+Where possible, Nvim will use the terminal's ability to set a scroll region in
+order to redraw faster when a window is scrolled. If the terminal's terminfo
+description describes an ability to set top and bottom scroll margins, that is
+used.
+
+This will not speed up scrolling in a window that is not the full width of the
+terminal. Xterm has an extra ability, not described by terminfo, to set left
+and right scroll margins as well. If Nvim detects that the terminal is Xterm,
+it will make use of this ability to speed up scrolling that is not the full
+width of the terminal.
+
+This ability is only present in genuine Xterm, not in the many terminal
+emulators that incorrectly describe themselves as xterm. Nvim's detection of
+genuine Xterm will not work over an SSH connection, because the environment
+variable, set by genuine Xterm, that it looks for is not automatically
+replicated over an SSH login session.
+
+ *tui-colors*
+Nvim uses 256 colours by default, ignoring |terminfo| for most terminal types,
+including "linux" (whose virtual terminals have had 256-colour support since
+4.8) and anything claiming to be "xterm". Also when $COLORTERM or $TERM
+contain the string "256".
+
+Nvim similarly assumes that any terminal emulator that sets $COLORTERM to any
+value, is capable of at least 16-colour operation.
+
+ *true-color* *xterm-true-color*
+Nvim emits true (24-bit) colours in the terminal, if 'termguicolors' is set.
+
+It uses the "setrgbf" and "setrgbb" |terminfo| extensions (proposed by Rüdiger
+Sonderfeld in 2013). If your terminfo definition is missing them, then Nvim
+will decide whether to add them to your terminfo definition, using the ISO
+8613-6:1994/ITU T.416:1993 control sequences for setting RGB colours (but
+modified to use semicolons instead of colons unless the terminal is known to
+follow the standard).
+
+Another convention, pioneered in 2016 by tmux, is the "Tc" terminfo extension.
+If terminfo has this flag, Nvim will add constructed "setrgbf" and "setrgbb"
+capabilities as if they had been in the terminfo definition.
+
+If terminfo does not (yet) have this flag, Nvim will fall back to $TERM and
+other environment variables. It will add constructed "setrgbf" and "setrgbb"
+capabilities in the case of the the "rxvt", "linux", "st", "tmux", and "iterm"
+terminal types, or when Konsole, genuine Xterm, a libvte terminal emulator
+version 0.36 or later, or a terminal emulator that sets the COLORTERM
+environment variable to "truecolor" is detected.
+ *xterm-resize*
+Nvim can resize the terminal display on some terminals that implement an
+extension pioneered by dtterm. |terminfo| does not have a flag for this
+extension. So Nvim simply assumes that (all) "dtterm", "xterm", "teraterm",
+"rxvt" terminal types, and Konsole, are capable of this.
+
+ *tui-cursor-shape*
+Nvim will adjust the shape of the cursor from a block to a line when in insert
+mode (or as specified by the 'guicursor' option), on terminals that support
+it. It uses the same |terminfo| extensions that were pioneered by tmux for
+this: "Ss" and "Se".
+
+If your terminfo definition is missing them, then Nvim will decide whether to
+add them to your terminfo definition, by looking at $TERM and other
+environment variables. For the "rxvt", "putty", "linux", "screen",
+"teraterm", and "iterm" terminal types, or when Konsole, a libvte-based
+terminal emulator, or genuine Xterm are detected, it will add constructed
+"Ss" and "Se" capabilities.
+
+Note: Sometimes it will appear that Nvim when run within tmux is not changing
+the cursor, but in fact it is tmux receiving instructions from Nvim to change
+the cursor and not knowing what to do in turn. tmux has to translate what it
+receives from Nvim into whatever control sequence is appropriate for the
+terminal that it is outputting to. It shares a common mechanism with Nvim, of
+using the "Ss" and "Se" capabilities from terminfo (for the output terminal)
+if they are present. Unlike Nvim, if they are not present in terminfo you
+must add them by setting "terminal-overrides" in ~/.tmux.conf .
+
+See the tmux(1) manual page for the details of how and what to do in the tmux
+configuration file. It will look something like: >
+ set -ga terminal-overrides '*:Ss=\E[%p1%d q:Se=\E[ q'
+<or (alas!) for Konsole specifically, something more complex like: >
+ set -ga terminal-overrides 'xterm*:\E]50;CursorShape=%?%p1%{3}%<%t%{0}%e%{1}%;%d\007'
+<
*cs7-problem*
Note: If the terminal settings are changed after running Vim, you might have
an illegal combination of settings. This has been reported on Solaris 2.5
with "stty cs8 parenb", which is restored as "stty cs7 parenb". Use
"stty cs8 -parenb -istrip" instead, this is restored correctly.
-Some termcap entries are wrong in the sense that after sending 't_ks' the
-cursor keys send codes different from the codes defined in the termcap. To
-avoid this you can set 't_ks' (and 't_ke') to empty strings. This must be
-done during initialization (see |initialization|), otherwise it's too late.
-
Many cursor key codes start with an <Esc>. Vim must find out if this is a
single hit of the <Esc> key or the start of a cursor key sequence. It waits
for a next character to arrive. If it does not arrive within one second a
@@ -92,368 +211,8 @@ them as a cursor key. When you type you normally are not that fast, so they
are recognized as individual typed commands, even though Vim receives the same
sequence of bytes.
- *vt100-function-keys* *xterm-function-keys*
-An xterm can send function keys F1 to F4 in two modes: vt100 compatible or
-not. Because Vim may not know what the xterm is sending, both types of keys
-are recognized. The same happens for the <Home> and <End> keys.
- normal vt100 ~
- <F1> t_k1 <Esc>[11~ <xF1> <Esc>OP *<xF1>-xterm*
- <F2> t_k2 <Esc>[12~ <xF2> <Esc>OQ *<xF2>-xterm*
- <F3> t_k3 <Esc>[13~ <xF3> <Esc>OR *<xF3>-xterm*
- <F4> t_k4 <Esc>[14~ <xF4> <Esc>OS *<xF4>-xterm*
- <Home> t_kh <Esc>[7~ <xHome> <Esc>OH *<xHome>-xterm*
- <End> t_@7 <Esc>[4~ <xEnd> <Esc>OF *<xEnd>-xterm*
-
-When Vim starts, <xF1> is mapped to <F1>, <xF2> to <F2> etc. This means that
-by default both codes do the same thing. If you make a mapping for <xF2>,
-because your terminal does have two keys, the default mapping is overwritten,
-thus you can use the <F2> and <xF2> keys for something different.
-
- *xterm-shifted-keys*
-Newer versions of xterm support shifted function keys and special keys. Vim
-recognizes most of them. Use ":set termcap" to check which are supported and
-what the codes are. Mostly these are not in a termcap, they are only
-supported by the builtin_xterm termcap.
-
- *xterm-modifier-keys*
-Newer versions of xterm support Alt and Ctrl for most function keys. To avoid
-having to add all combinations of Alt, Ctrl and Shift for every key a special
-sequence is recognized at the end of a termcap entry: ";*X". The "X" can be
-any character, often '~' is used. The ";*" stands for an optional modifier
-argument. ";2" is Shift, ";3" is Alt, ";5" is Ctrl and ";9" is Meta (when
-it's different from Alt). They can be combined. Examples: >
- :set <F8>=^[[19;*~
- :set <Home>=^[[1;*H
-Another speciality about these codes is that they are not overwritten by
-another code. That is to avoid that the codes obtained from xterm directly
-|t_RV| overwrite them.
- *xterm-scroll-region*
-The default termcap entry for xterm on Sun and other platforms does not
-contain the entry for scroll regions. Add ":cs=\E[%i%d;%dr:" to the xterm
-entry in /etc/termcap and everything should work.
-
- *xterm-end-home-keys*
-On some systems (at least on FreeBSD with XFree86 3.1.2) the codes that the
-<End> and <Home> keys send contain a <Nul> character. To make these keys send
-the proper key code, add these lines to your ~/.Xdefaults file:
-
-*VT100.Translations: #override \n\
- <Key>Home: string("0x1b") string("[7~") \n\
- <Key>End: string("0x1b") string("[8~")
-
- *xterm-8bit* *xterm-8-bit*
-Xterm can be run in a mode where it uses 8-bit escape sequences. The CSI code
-is used instead of <Esc>[. The advantage is that an <Esc> can quickly be
-recognized in Insert mode, because it can't be confused with the start of a
-special key.
-For the builtin termcap entries, Vim checks if the 'term' option contains
-"8bit" anywhere. It then uses 8-bit characters for the termcap entries, the
-mouse and a few other things. You would normally set $TERM in your shell to
-"xterm-8bit" and Vim picks this up and adjusts to the 8-bit setting
-automatically.
-When Vim receives a response to the |t_RV| (request version) sequence and it
-starts with CSI, it assumes that the terminal is in 8-bit mode and will
-convert all key sequences to their 8-bit variants.
-
==============================================================================
-2. Terminal options *terminal-options* *termcap-options* *E436*
-
-The terminal options can be set just like normal options. But they are not
-shown with the ":set all" command. Instead use ":set termcap".
-
-It is always possible to change individual strings by setting the
-appropriate option. For example: >
- :set t_ce=^V^[[K (CTRL-V, <Esc>, [, K)
-
-The options are listed below. The associated termcap code is always equal to
-the last two characters of the option name. Only one termcap code is
-required: Cursor motion, 't_cm'.
-
-The options 't_da', 't_db', 't_ms', 't_xs' represent flags in the termcap.
-When the termcap flag is present, the option will be set to "y". But any
-non-empty string means that the flag is set. An empty string means that the
-flag is not set. 't_CS' works like this too, but it isn't a termcap flag.
-
-OUTPUT CODES
- option meaning ~
-
- t_AB set background color (ANSI) *t_AB* *'t_AB'*
- t_AF set foreground color (ANSI) *t_AF* *'t_AF'*
- t_AL add number of blank lines *t_AL* *'t_AL'*
- t_al add new blank line *t_al* *'t_al'*
- t_bc backspace character *t_bc* *'t_bc'*
- t_cd clear to end of screen *t_cd* *'t_cd'*
- t_ce clear to end of line *t_ce* *'t_ce'*
- t_cl clear screen *t_cl* *'t_cl'*
- t_cm cursor motion (required!) *E437* *t_cm* *'t_cm'*
- t_Co number of colors *t_Co* *'t_Co'*
- t_CS if non-empty, cursor relative to scroll region *t_CS* *'t_CS'*
- t_cs define scrolling region *t_cs* *'t_cs'*
- t_CV define vertical scrolling region *t_CV* *'t_CV'*
- t_da if non-empty, lines from above scroll down *t_da* *'t_da'*
- t_db if non-empty, lines from below scroll up *t_db* *'t_db'*
- t_DL delete number of lines *t_DL* *'t_DL'*
- t_dl delete line *t_dl* *'t_dl'*
- t_fs set window title end (from status line) *t_fs* *'t_fs'*
- t_ke exit "keypad transmit" mode *t_ke* *'t_ke'*
- t_ks start "keypad transmit" mode *t_ks* *'t_ks'*
- t_le move cursor one char left *t_le* *'t_le'*
- t_mb blinking mode *t_mb* *'t_mb'*
- t_md bold mode *t_md* *'t_md'*
- t_me Normal mode (undoes t_mr, t_mb, t_md and color) *t_me* *'t_me'*
- t_mr reverse (invert) mode *t_mr* *'t_mr'*
- *t_ms* *'t_ms'*
- t_ms if non-empty, cursor can be moved in standout/inverse mode
- t_nd non destructive space character *t_nd* *'t_nd'*
- t_op reset to original color pair *t_op* *'t_op'*
- t_RI cursor number of chars right *t_RI* *'t_RI'*
- t_Sb set background color *t_Sb* *'t_Sb'*
- t_Sf set foreground color *t_Sf* *'t_Sf'*
- t_se standout end *t_se* *'t_se'*
- t_so standout mode *t_so* *'t_so'*
- t_sr scroll reverse (backward) *t_sr* *'t_sr'*
- t_te out of "termcap" mode *t_te* *'t_te'*
- t_ti put terminal in "termcap" mode *t_ti* *'t_ti'*
- t_ts set window title start (to status line) *t_ts* *'t_ts'*
- t_ue underline end *t_ue* *'t_ue'*
- t_us underline mode *t_us* *'t_us'*
- t_Ce undercurl end *t_Ce* *'t_Ce'*
- t_Cs undercurl mode *t_Cs* *'t_Cs'*
- t_ut clearing uses the current background color *t_ut* *'t_ut'*
- t_vb visual bell *t_vb* *'t_vb'*
- t_ve cursor visible *t_ve* *'t_ve'*
- t_vi cursor invisible *t_vi* *'t_vi'*
- t_vs cursor very visible *t_vs* *'t_vs'*
- *t_xs* *'t_xs'*
- t_xs if non-empty, standout not erased by overwriting (hpterm)
- t_ZH italics mode *t_ZH* *'t_ZH'*
- t_ZR italics end *t_ZR* *'t_ZR'*
-
-Added by Vim (there are no standard codes for these):
- t_IS set icon text start *t_IS* *'t_IS'*
- t_IE set icon text end *t_IE* *'t_IE'*
- t_WP set window position (Y, X) in pixels *t_WP* *'t_WP'*
- t_WS set window size (height, width) in characters *t_WS* *'t_WS'*
- t_SI start insert mode (bar cursor shape) *t_SI* *'t_SI'*
- t_EI end insert mode (block cursor shape) *t_EI* *'t_EI'*
- |termcap-cursor-shape|
- t_RV request terminal version string (for xterm) *t_RV* *'t_RV'*
- |xterm-8bit| |v:termresponse| |xterm-codes|
- t_u7 request cursor position (for xterm) *t_u7* *'t_u7'*
- see |'ambiwidth'|
-
-KEY CODES
-Note: Use the <> form if possible
-
- option name meaning ~
-
- t_ku <Up> arrow up *t_ku* *'t_ku'*
- t_kd <Down> arrow down *t_kd* *'t_kd'*
- t_kr <Right> arrow right *t_kr* *'t_kr'*
- t_kl <Left> arrow left *t_kl* *'t_kl'*
- <xUp> alternate arrow up *<xUp>*
- <xDown> alternate arrow down *<xDown>*
- <xRight> alternate arrow right *<xRight>*
- <xLeft> alternate arrow left *<xLeft>*
- <S-Up> shift arrow up
- <S-Down> shift arrow down
- t_%i <S-Right> shift arrow right *t_%i* *'t_%i'*
- t_#4 <S-Left> shift arrow left *t_#4* *'t_#4'*
- t_k1 <F1> function key 1 *t_k1* *'t_k1'*
- <xF1> alternate F1 *<xF1>*
- t_k2 <F2> function key 2 *<F2>* *t_k2* *'t_k2'*
- <xF2> alternate F2 *<xF2>*
- t_k3 <F3> function key 3 *<F3>* *t_k3* *'t_k3'*
- <xF3> alternate F3 *<xF3>*
- t_k4 <F4> function key 4 *<F4>* *t_k4* *'t_k4'*
- <xF4> alternate F4 *<xF4>*
- t_k5 <F5> function key 5 *<F5>* *t_k5* *'t_k5'*
- t_k6 <F6> function key 6 *<F6>* *t_k6* *'t_k6'*
- t_k7 <F7> function key 7 *<F7>* *t_k7* *'t_k7'*
- t_k8 <F8> function key 8 *<F8>* *t_k8* *'t_k8'*
- t_k9 <F9> function key 9 *<F9>* *t_k9* *'t_k9'*
- t_k; <F10> function key 10 *<F10>* *t_k;* *'t_k;'*
- t_F1 <F11> function key 11 *<F11>* *t_F1* *'t_F1'*
- t_F2 <F12> function key 12 *<F12>* *t_F2* *'t_F2'*
- t_F3 <F13> function key 13 *<F13>* *t_F3* *'t_F3'*
- t_F4 <F14> function key 14 *<F14>* *t_F4* *'t_F4'*
- t_F5 <F15> function key 15 *<F15>* *t_F5* *'t_F5'*
- t_F6 <F16> function key 16 *<F16>* *t_F6* *'t_F6'*
- t_F7 <F17> function key 17 *<F17>* *t_F7* *'t_F7'*
- t_F8 <F18> function key 18 *<F18>* *t_F8* *'t_F8'*
- t_F9 <F19> function key 19 *<F19>* *t_F9* *'t_F9'*
- <S-F1> shifted function key 1
- <S-xF1> alternate <S-F1> *<S-xF1>*
- <S-F2> shifted function key 2 *<S-F2>*
- <S-xF2> alternate <S-F2> *<S-xF2>*
- <S-F3> shifted function key 3 *<S-F3>*
- <S-xF3> alternate <S-F3> *<S-xF3>*
- <S-F4> shifted function key 4 *<S-F4>*
- <S-xF4> alternate <S-F4> *<S-xF4>*
- <S-F5> shifted function key 5 *<S-F5>*
- <S-F6> shifted function key 6 *<S-F6>*
- <S-F7> shifted function key 7 *<S-F7>*
- <S-F8> shifted function key 8 *<S-F8>*
- <S-F9> shifted function key 9 *<S-F9>*
- <S-F10> shifted function key 10 *<S-F10>*
- <S-F11> shifted function key 11 *<S-F11>*
- <S-F12> shifted function key 12 *<S-F12>*
- t_%1 <Help> help key *t_%1* *'t_%1'*
- t_&8 <Undo> undo key *t_&8* *'t_&8'*
- t_kI <Insert> insert key *t_kI* *'t_kI'*
- t_kD <Del> delete key *t_kD* *'t_kD'*
- t_kb <BS> backspace key *t_kb* *'t_kb'*
- t_kB <S-Tab> back-tab (shift-tab) *<S-Tab>* *t_kB* *'t_kB'*
- t_kh <Home> home key *t_kh* *'t_kh'*
- t_#2 <S-Home> shifted home key *<S-Home>* *t_#2* *'t_#2'*
- <xHome> alternate home key *<xHome>*
- t_@7 <End> end key *t_@7* *'t_@7'*
- t_*7 <S-End> shifted end key *<S-End>* *t_star7* *'t_star7'*
- <xEnd> alternate end key *<xEnd>*
- t_kP <PageUp> page-up key *t_kP* *'t_kP'*
- t_kN <PageDown> page-down key *t_kN* *'t_kN'*
- t_K1 <kHome> keypad home key *t_K1* *'t_K1'*
- t_K4 <kEnd> keypad end key *t_K4* *'t_K4'*
- t_K3 <kPageUp> keypad page-up key *t_K3* *'t_K3'*
- t_K5 <kPageDown> keypad page-down key *t_K5* *'t_K5'*
- t_K6 <kPlus> keypad plus key *<kPlus>* *t_K6* *'t_K6'*
- t_K7 <kMinus> keypad minus key *<kMinus>* *t_K7* *'t_K7'*
- t_K8 <kDivide> keypad divide *<kDivide>* *t_K8* *'t_K8'*
- t_K9 <kMultiply> keypad multiply *<kMultiply>* *t_K9* *'t_K9'*
- t_KA <kEnter> keypad enter key *<kEnter>* *t_KA* *'t_KA'*
- t_KB <kPoint> keypad decimal point *<kPoint>* *t_KB* *'t_KB'*
- t_KC <k0> keypad 0 *<k0>* *t_KC* *'t_KC'*
- t_KD <k1> keypad 1 *<k1>* *t_KD* *'t_KD'*
- t_KE <k2> keypad 2 *<k2>* *t_KE* *'t_KE'*
- t_KF <k3> keypad 3 *<k3>* *t_KF* *'t_KF'*
- t_KG <k4> keypad 4 *<k4>* *t_KG* *'t_KG'*
- t_KH <k5> keypad 5 *<k5>* *t_KH* *'t_KH'*
- t_KI <k6> keypad 6 *<k6>* *t_KI* *'t_KI'*
- t_KJ <k7> keypad 7 *<k7>* *t_KJ* *'t_KJ'*
- t_KK <k8> keypad 8 *<k8>* *t_KK* *'t_KK'*
- t_KL <k9> keypad 9 *<k9>* *t_KL* *'t_KL'*
- <Mouse> leader of mouse code *<Mouse>*
-
-Note about t_so and t_mr: When the termcap entry "so" is not present the
-entry for "mr" is used. And vice versa. The same is done for "se" and "me".
-If your terminal supports both inversion and standout mode, you can see two
-different modes. If your terminal supports only one of the modes, both will
-look the same.
-
- *keypad-comma*
-The keypad keys, when they are not mapped, behave like the equivalent normal
-key. There is one exception: if you have a comma on the keypad instead of a
-decimal point, Vim will use a dot anyway. Use these mappings to fix that: >
- :noremap <kPoint> ,
- :noremap! <kPoint> ,
-< *xterm-codes*
-There is a special trick to obtain the key codes which currently only works
-for xterm. When |t_RV| is defined and a response is received which indicates
-an xterm with patchlevel 141 or higher, Vim uses special escape sequences to
-request the key codes directly from the xterm. The responses are used to
-adjust the various t_ codes. This avoids the problem that the xterm can
-produce different codes, depending on the mode it is in (8-bit, VT102,
-VT220, etc.). The result is that codes like <xF1> are no longer needed.
-Note: This is only done on startup. If the xterm options are changed after
-Vim has started, the escape sequences may not be recognized anymore.
-
- *xterm-resize*
-Window resizing with xterm only works if the allowWindowOps resource is
-enabled. On some systems and versions of xterm it's disabled by default
-because someone thought it would be a security issue. It's not clear if this
-is actually the case.
-
-To overrule the default, put this line in your ~/.Xdefaults or
-~/.Xresources:
->
- XTerm*allowWindowOps: true
-
-And run "xrdb -merge .Xresources" to make it effective. You can check the
-value with the context menu (right mouse button while CTRL key is pressed),
-there should be a tick at allow-window-ops.
-
- *termcap-colors*
-Note about colors: The 't_Co' option tells Vim the number of colors available.
-When it is non-zero, the 't_AB' and 't_AF' options are used to set the color.
-If one of these is not available, 't_Sb' and 't_Sf' are used. 't_me' is used
-to reset to the default colors.
-
- *termcap-cursor-shape* *termcap-cursor-color*
-When Vim enters Insert mode the 't_SI' escape sequence is sent. When leaving
-Insert mode 't_EI' is used. But only if both are defined. This can be used
-to change the shape or color of the cursor in Insert mode. These are not
-standard termcap/terminfo entries, you need to set them yourself.
-Example for an xterm, this changes the color of the cursor: >
- if &term =~ "xterm"
- let &t_SI = "\<Esc>]12;purple\x7"
- let &t_EI = "\<Esc>]12;blue\x7"
- endif
-NOTE: When Vim exits the shape for Normal mode will remain. The shape from
-before Vim started will not be restored.
-
- *termcap-title*
-The 't_ts' and 't_fs' options are used to set the window title if the terminal
-allows title setting via sending strings. They are sent before and after the
-title string, respectively. Similar 't_IS' and 't_IE' are used to set the
-icon text. These are Vim-internal extensions of the Unix termcap, so they
-cannot be obtained from an external termcap. However, the builtin termcap
-contains suitable entries for xterm, so you don't need to set them here.
- *hpterm*
-If inversion or other highlighting does not work correctly, try setting the
-'t_xs' option to a non-empty string. This makes the 't_ce' code be used to
-remove highlighting from a line. This is required for "hpterm". Setting the
-'weirdinvert' option has the same effect as making 't_xs' non-empty, and vice
-versa.
-
- *scroll-region*
-Some termcaps do not include an entry for 'cs' (scroll region), although the
-terminal does support it. For example: xterm on a Sun. You can use the
-builtin_xterm or define t_cs yourself. For example: >
- :set t_cs=^V^[[%i%d;%dr
-Where ^V is CTRL-V and ^[ is <Esc>.
-
-The vertical scroll region t_CV is not a standard termcap code. Vim uses it
-internally in the GUI. But it can also be defined for a terminal, if you can
-find one that supports it. The two arguments are the left and right column of
-the region which to restrict the scrolling to. Just like t_cs defines the top
-and bottom lines. Defining t_CV will make scrolling in vertically split
-windows a lot faster. Don't set t_CV when t_da or t_db is set (text isn't
-cleared when scrolling).
-
-Unfortunately it is not possible to deduce from the termcap how cursor
-positioning should be done when using a scrolling region: Relative to the
-beginning of the screen or relative to the beginning of the scrolling region.
-Most terminals use the first method. The 't_CS' option should be set to any
-string when cursor positioning is relative to the start of the scrolling
-region. It should be set to an empty string otherwise.
-
-Note for xterm users: The shifted cursor keys normally don't work. You can
- make them work with the xmodmap command and some mappings in Vim.
-
- Give these commands in the xterm:
- xmodmap -e "keysym Up = Up F13"
- xmodmap -e "keysym Down = Down F16"
- xmodmap -e "keysym Left = Left F18"
- xmodmap -e "keysym Right = Right F19"
-
- And use these mappings in Vim:
- :map <t_F3> <S-Up>
- :map! <t_F3> <S-Up>
- :map <t_F6> <S-Down>
- :map! <t_F6> <S-Down>
- :map <t_F8> <S-Left>
- :map! <t_F8> <S-Left>
- :map <t_F9> <S-Right>
- :map! <t_F9> <S-Right>
-
-Instead of, say, <S-Up> you can use any other command that you want to use the
-shift-cursor-up key for. (Note: To help people that have a Sun keyboard with
-left side keys F14 is not used because it is confused with the undo key; F15
-is not used, because it does a window-to-front; F17 is not used, because it
-closes the window. On other systems you can probably use them.)
-
-==============================================================================
-3. Window size *window-size*
+Window size *window-size*
[This is about the size of the whole window Vim is using, not a window that is
created with the ":split" command.]
@@ -462,22 +221,15 @@ On Unix systems, three methods are tried to get the window size:
- an ioctl call (TIOCGSIZE or TIOCGWINSZ, depends on your system)
- the environment variables "LINES" and "COLUMNS"
-- from the termcap entries "li" and "co"
+- from the |terminfo| entries "lines" and "columns"
If everything fails a default size of 24 lines and 80 columns is assumed. If
a window-resize signal is received the size will be set again. If the window
size is wrong you can use the 'lines' and 'columns' options to set the
-correct values.
-
-One command can be used to set the screen size:
-
- *:mod* *:mode*
-:mod[e]
-
-Detects the screen size and redraws the screen.
+correct values. See |:mode|.
==============================================================================
-4. Slow and fast terminals *slow-fast-terminal*
+Slow and fast terminals *slow-fast-terminal*
*slow-terminal*
If you have a fast terminal you may like to set the 'ruler' option. The
@@ -485,33 +237,30 @@ cursor position is shown in the status line. If you are using horizontal
scrolling ('wrap' option off) consider setting 'sidescroll' to a small
number.
-If you have a slow terminal you may want to reset the 'showcmd' option.
-The command characters will not be shown in the status line. If the terminal
-scrolls very slowly, set the 'scrolljump' to 5 or so. If the cursor is moved
-off the screen (e.g., with "j") Vim will scroll 5 lines at a time. Another
-possibility is to reduce the number of lines that Vim uses with the command
-"z{height}<CR>".
+If you have a slow terminal you may want to reset the 'showcmd' and 'ruler'
+options. The command characters and cursor positions will not be shown in the
+status line (which involves a lot of cursor motions and attribute changes for
+every keypress or movement). If the terminal scrolls very slowly, set the
+'scrolljump' to 5 or so. If the cursor is moved off the screen (e.g., with
+"j") Vim will scroll 5 lines at a time. Another possibility is to reduce the
+number of lines that Vim uses with the command "z{height}<CR>".
If the characters from the terminal are arriving with more than 1 second
between them you might want to set the 'timeout' and/or 'ttimeout' option.
See the "Options" chapter |options|.
-If you are using a color terminal that is slow, use this command: >
+If you are using a color terminal that is slow when displaying lines beyond
+the end of a buffer, this is because Nvim is drawing the whitespace twice, in
+two sets of colours and attributes. To prevent this, use this command: >
hi NonText cterm=NONE ctermfg=NONE
-This avoids that spaces are sent when they have different attributes. On most
-terminals you can't see this anyway.
-
-If you are using Vim over a slow serial line, you might want to try running
-Vim inside the "screen" program. Screen will optimize the terminal I/O quite
-a bit.
-
-If you are testing termcap options, but you cannot see what is happening,
-you might want to set the 'writedelay' option. When non-zero, one character
-is sent to the terminal at a time (does not work for MS-DOS). This makes the
-screen updating a lot slower, making it possible to see what is happening.
+This draws the spaces with the default colours and attributes, which allows the
+second pass of drawing to be optimized away. Note: Although in theory the
+colours of whitespace are immaterial, in practice they change the colours of
+cursors and selections that cross them. This may have a visible, but minor,
+effect on some UIs.
==============================================================================
-5. Using the mouse *mouse-using*
+Using the mouse *mouse-using*
This section is about using the mouse on a terminal or a terminal window. How
to use the mouse in a GUI window is explained in |gui-mouse|. For scrolling
@@ -588,17 +337,12 @@ before using the mouse:
"g<RightMouse>" is "<C-RightMouse> ("CTRL-T")
*bracketed-paste-mode*
-Bracketed paste mode allows terminal emulators to distinguish between typed
-text and pasted text.
-
-For terminal emulators that support it, this mode is enabled by default. Thus
-you can paste text without Neovim giving any special meaning to it. Most
-notably it won't try reindenting those lines.
-
-If your terminal emulator doesn't support it yet, you can get the old Vim
-behaviour by enabling |'paste'| temporarily.
+Bracketed paste mode allows terminal applications to distinguish between typed
+text and pasted text. Thus you can paste text without Nvim trying to format or
+indent the text. See also https://cirw.in/blog/bracketed-paste
-NOTE: See https://cirw.in/blog/bracketed-paste for technical details.
+Nvim enables bracketed paste by default. If it does not work in your terminal,
+try the 'paste' option instead.
*mouse-mode-table* *mouse-overview*
A short overview of what the mouse buttons do, when 'mousemodel' is "extend":
diff --git a/runtime/doc/tips.txt b/runtime/doc/tips.txt
index 9d2eb3deba..011e0f0565 100644
--- a/runtime/doc/tips.txt
+++ b/runtime/doc/tips.txt
@@ -1,4 +1,4 @@
-*tips.txt* For Vim version 7.4. Last change: 2009 Nov 07
+*tips.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -13,22 +13,7 @@ http://www.vim.org
Don't forget to browse the user manual, it also contains lots of useful tips
|usr_toc.txt|.
-Editing C programs |C-editing|
-Finding where identifiers are used |ident-search|
-Switching screens in an xterm |xterm-screens|
-Scrolling in Insert mode |scroll-insert|
-Smooth scrolling |scroll-smooth|
-Correcting common typing mistakes |type-mistakes|
-Counting words, lines, etc. |count-items|
-Restoring the cursor position |restore-position|
-Renaming files |rename-files|
-Change a name in multiple files |change-name|
-Speeding up external commands |speed-up|
-Useful mappings |useful-mappings|
-Compressing the help files |gzip-helpfile|
-Hex editing |hex-editing|
-Using <> notation in autocommands |autocmd-<>|
-Highlighting matching parens |match-parens|
+ Type |gO| to see the table of contents.
==============================================================================
Editing C programs *C-editing*
@@ -119,48 +104,6 @@ archive file on your closest gnu-ftp-mirror).
[the idea for this comes from Andreas Kutschera]
==============================================================================
-Switching screens in an xterm *xterm-screens* *xterm-save-screen*
-
-(From comp.editors, by Juergen Weigert, in reply to a question)
-
-:> Another question is that after exiting vim, the screen is left as it
-:> was, i.e. the contents of the file I was viewing (editing) was left on
-:> the screen. The output from my previous like "ls" were lost,
-:> ie. no longer in the scrolling buffer. I know that there is a way to
-:> restore the screen after exiting vim or other vi like editors,
-:> I just don't know how. Helps are appreciated. Thanks.
-:
-:I imagine someone else can answer this. I assume though that vim and vi do
-:the same thing as each other for a given xterm setup.
-
-They not necessarily do the same thing, as this may be a termcap vs.
-terminfo problem. You should be aware that there are two databases for
-describing attributes of a particular type of terminal: termcap and
-terminfo. This can cause differences when the entries differ AND when of
-the programs in question one uses terminfo and the other uses termcap
-(also see |+terminfo|).
-
-In your particular problem, you are looking for the control sequences
-^[[?47h and ^[[?47l. These switch between xterms alternate and main screen
-buffer. As a quick workaround a command sequence like >
- echo -n "^[[?47h"; vim ... ; echo -n "^[[?47l"
-may do what you want. (My notation ^[ means the ESC character, further down
-you'll see that the databases use \E instead).
-
-On startup, vim echoes the value of the termcap variable ti (terminfo:
-smcup) to the terminal. When exiting, it echoes te (terminfo: rmcup). Thus
-these two variables are the correct place where the above mentioned control
-sequences should go.
-
-Compare your xterm termcap entry (found in /etc/termcap) with your xterm
-terminfo entry (retrieved with "infocmp -C xterm"). Both should contain
-entries similar to: >
- :te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:
-
-PS: If you find any difference, someone (your sysadmin?) should better check
- the complete termcap and terminfo database for consistency.
-
-==============================================================================
Scrolling in Insert mode *scroll-insert*
If you are in insert mode and you want to see something that is just off the
@@ -170,7 +113,6 @@ screen, you can use CTRL-X CTRL-E and CTRL-X CTRL-Y to scroll the screen.
To make this easier, you could use these mappings: >
:inoremap <C-E> <C-X><C-E>
:inoremap <C-Y> <C-X><C-Y>
-(Type this literally, make sure the '<' flag is not in 'cpoptions').
You then lose the ability to copy text from the line above/below the cursor
|i_CTRL-E|.
@@ -186,8 +128,6 @@ If you like the scrolling to go a bit smoother, you can use these mappings: >
:map <C-U> <C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y><C-Y>
:map <C-D> <C-E><C-E><C-E><C-E><C-E><C-E><C-E><C-E><C-E><C-E><C-E><C-E><C-E><C-E><C-E><C-E>
-(Type this literally, make sure the '<' flag is not in 'cpoptions').
-
==============================================================================
Correcting common typing mistakes *type-mistakes*
@@ -339,9 +279,7 @@ For Emacs-style editing on the command-line: >
:cnoremap <Esc><C-B> <S-Left>
" forward one word
:cnoremap <Esc><C-F> <S-Right>
-
-NOTE: This requires that the '<' flag is excluded from 'cpoptions'. |<>|
-
+<
*format-bullet-list*
This mapping will format any bullet list. It requires that there is an empty
line above and below each list entry. The expression commands are used to
@@ -357,8 +295,7 @@ be able to give comments to the parts of the mapping. >
:execute m |" define the mapping
(<> notation |<>|. Note that this is all typed literally. ^W is "^" "W", not
-CTRL-W. You can copy/paste this into Vim if '<' is not included in
-'cpoptions'.)
+CTRL-W.)
Note that the last comment starts with |", because the ":execute" command
doesn't accept a comment directly.
diff --git a/runtime/doc/uganda.txt b/runtime/doc/uganda.txt
index c228c65542..cdd677cbd5 100644
--- a/runtime/doc/uganda.txt
+++ b/runtime/doc/uganda.txt
@@ -1,4 +1,4 @@
-*uganda.txt* For Vim version 7.4. Last change: 2013 Jul 06
+*uganda.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/ui.txt b/runtime/doc/ui.txt
new file mode 100644
index 0000000000..685019aed7
--- /dev/null
+++ b/runtime/doc/ui.txt
@@ -0,0 +1,308 @@
+*ui.txt* Nvim
+
+
+ NVIM REFERENCE MANUAL
+
+
+Nvim UI protocol *ui*
+
+ Type |gO| to see the table of contents.
+
+==============================================================================
+Introduction *ui-intro*
+
+GUIs can be implemented as external processes communicating with Nvim over the
+RPC API. The UI model consists of a terminal-like grid with a single,
+monospace font size. Some elements (UI "widgets") can be drawn separately from
+the grid ("externalized").
+
+ *ui-options*
+After connecting to Nvim (usually a spawned, embedded instance) use the
+|nvim_ui_attach| API method to tell Nvim that your program wants to draw the
+Nvim screen grid with a size of width × height cells. `options` must be
+a dictionary with these (optional) keys:
+ `rgb` Decides the color format.
+ Set true (default) for 24-bit RGB colors.
+ Set false for terminal colors (max of 256).
+ *ui-ext-options*
+ `ext_popupmenu` Externalize the popupmenu. |ui-popupmenu|
+ `ext_tabline` Externalize the tabline. |ui-tabline|
+ `ext_cmdline` Externalize the cmdline. |ui-cmdline|
+ `ext_wildmenu` Externalize the wildmenu. |ui-ext-wildmenu|
+
+Nvim will then send msgpack-rpc notifications, with the method name "redraw"
+and a single argument, an array of screen update events.
+Update events are tuples whose first element is the event name and remaining
+elements the event parameters.
+
+Events must be handled in order. The user should only see the updated screen
+state after all events in the same "redraw" batch are processed (not any
+intermediate state after processing only part of the array).
+
+Nvim sends |ui-global| and |ui-grid| events unconditionally; these suffice to
+implement a terminal-like interface.
+
+Nvim optionally sends screen elements "semantically" as structured events
+instead of raw grid-lines. Then the UI must decide how to present those
+elements itself; Nvim will not draw those elements on the grid. This is
+controlled by the |ui-ext-options|.
+
+Future versions of Nvim may add new update kinds and may append new parameters
+to existing update kinds. Clients must be prepared to ignore such extensions
+to be forward-compatible. |api-contract|
+
+==============================================================================
+Global Events *ui-global*
+
+["set_title", title]
+["set_icon", icon]
+ Set the window title, and icon (minimized) window title, respectively.
+ In windowing systems not distinguishing between the two, "set_icon"
+ can be ignored.
+
+["mode_info_set", cursor_style_enabled, mode_info]
+ `cursor_style_enabled` is a boolean indicating if the UI should set
+ the cursor style. `mode_info` is a list of mode property maps. The
+ current mode is given by the `mode_idx` field of the `mode_change`
+ event.
+
+ Each mode property map may contain these keys:
+
+ KEY DESCRIPTION ~
+ `cursor_shape`: "block", "horizontal", "vertical"
+ `cell_percentage`: Cell % occupied by the cursor.
+ `blinkwait`, `blinkon`, `blinkoff`: See |cursor-blinking|.
+ `hl_id`: Cursor highlight group.
+ `hl_lm`: Cursor highlight group if 'langmap' is active.
+ `short_name`: Mode code name, see 'guicursor'.
+ `name`: Mode descriptive name.
+ `mouse_shape`: (To be implemented.)
+
+ Some keys are missing in some modes.
+
+["mode_change", mode, mode_idx]
+ The mode changed. The first parameter `mode` is a string representing
+ the current mode. `mode_idx` is an index into the array received in
+ the `mode_info_set` event. UIs should change the cursor style
+ according to the properties specified in the corresponding item. The
+ set of modes reported will change in new versions of Nvim, for
+ instance more submodes and temporary states might be represented as
+ separate modes.
+
+["mouse_on"]
+["mouse_off"]
+ Tells the client whether mouse support, as determined by |'mouse'|
+ option, is considered to be active in the current mode. This is mostly
+ useful for a terminal frontend, or other situations where nvim mouse
+ would conflict with other usages of the mouse. It is safe for a client
+ to ignore this and always send mouse events.
+
+["busy_on"]
+["busy_off"]
+ Nvim started or stopped being busy, and possibly not responsive to
+ user input. This could be indicated to the user by hiding the cursor.
+
+["suspend"]
+ |:suspend| command or |Ctrl-Z| mapping is used. A terminal client (or other
+ client where it makes sense) could suspend itself. Other clients can
+ safely ignore it.
+
+["update_menu"]
+ The menu mappings changed.
+
+["bell"]
+["visual_bell"]
+ Notify the user with an audible or visual bell, respectively.
+
+==============================================================================
+Grid Events *ui-grid*
+
+["resize", width, height]
+ The grid is resized to `width` and `height` cells.
+
+["clear"]
+ Clear the grid.
+
+["eol_clear"]
+ Clear from the cursor position to the end of the current line.
+
+["cursor_goto", row, col]
+ Move the cursor to position (row, col). Currently, the same cursor is
+ used to define the position for text insertion and the visible cursor.
+ However, only the last cursor position, after processing the entire
+ array in the "redraw" event, is intended to be a visible cursor
+ position.
+
+["update_fg", color]
+["update_bg", color]
+["update_sp", color]
+ Set the default foreground, background and special colors
+ respectively.
+
+ *ui-event-highlight_set*
+["highlight_set", attrs]
+ Set the attributes that the next text put on the grid will have.
+ `attrs` is a dict with the keys below. Any absent key is reset
+ to its default value. Color defaults are set by the `update_fg` etc
+ updates. All boolean keys default to false.
+
+ `foreground`: foreground color.
+ `background`: backround color.
+ `special`: color to use for underline and undercurl, when present.
+ `reverse`: reverse video. Foreground and background colors are
+ switched.
+ `italic`: italic text.
+ `bold`: bold text.
+ `underline`: underlined text. The line has `special` color.
+ `undercurl`: undercurled text. The curl has `special` color.
+
+["put", text]
+ The (utf-8 encoded) string `text` is put at the cursor position
+ (and the cursor is advanced), with the highlights as set by the
+ last `highlight_set` update.
+
+["set_scroll_region", top, bot, left, right]
+ Define the scroll region used by `scroll` below.
+
+["scroll", count]
+ Scroll the text in the scroll region. The diagrams below illustrate
+ what will happen, depending on the scroll direction. "=" is used to
+ represent the SR(scroll region) boundaries and "-" the moved rectangles.
+ Note that dst and src share a common region.
+
+ If count is bigger than 0, move a rectangle in the SR up, this can
+ happen while scrolling down.
+>
+ +-------------------------+
+ | (clipped above SR) | ^
+ |=========================| dst_top |
+ | dst (still in SR) | |
+ +-------------------------+ src_top |
+ | src (moved up) and dst | |
+ |-------------------------| dst_bot |
+ | src (cleared) | |
+ +=========================+ src_bot
+<
+ If count is less than zero, move a rectangle in the SR down, this can
+ happen while scrolling up.
+>
+ +=========================+ src_top
+ | src (cleared) | |
+ |------------------------ | dst_top |
+ | src (moved down) and dst| |
+ +-------------------------+ src_bot |
+ | dst (still in SR) | |
+ |=========================| dst_bot |
+ | (clipped below SR) | v
+ +-------------------------+
+<
+==============================================================================
+Popupmenu Events *ui-popupmenu*
+
+Only sent if `ext_popupmenu` option is set in |ui-options|
+
+["popupmenu_show", items, selected, row, col]
+ Show |popupmenu-completion|. `items` is an array of completion items
+ to show; each item is an array of the form [word, kind, menu, info] as
+ defined at |complete-items|, except that `word` is replaced by `abbr`
+ if present. `selected` is the initially-selected item, a zero-based
+ index into the array of items (-1 if no item is selected). `row` and
+ `col` give the anchor position, where the first character of the
+ completed word will be.
+
+["popupmenu_select", selected]
+ Select an item in the current popupmenu. `selected` is a zero-based
+ index into the array of items from the last popupmenu_show event, or
+ -1 if no item is selected.
+
+["popupmenu_hide"]
+ Hide the popupmenu.
+
+==============================================================================
+Tabline Events *ui-tabline*
+
+Only sent if `ext_tabline` option is set in |ui-options|
+
+["tabline_update", curtab, tabs]
+ Tabline was updated. UIs should present this data in a custom tabline
+ widget.
+ curtab: Current Tabpage
+ tabs: List of Dicts [{ "tab": Tabpage, "name": String }, ...]
+
+==============================================================================
+Cmdline Events *ui-cmdline*
+
+Only sent if `ext_cmdline` option is set in |ui-options|
+
+["cmdline_show", content, pos, firstc, prompt, indent, level]
+ content: List of [attrs, string]
+ [[{}, "t"], [attrs, "est"], ...]
+
+ Triggered when the cmdline is displayed or changed.
+ The `content` is the full content that should be displayed in the
+ cmdline, and the `pos` is the position of the cursor that in the
+ cmdline. The content is divided into chunks with different highlight
+ attributes represented as a dict (see |ui-event-highlight_set|).
+
+ `firstc` and `prompt` are text, that if non-empty should be
+ displayed in front of the command line. `firstc` always indicates
+ built-in command lines such as `:` (ex command) and `/` `?` (search),
+ while `prompt` is an |input()| prompt. `indent` tells how many spaces
+ the content should be indented.
+
+ The Nvim command line can be invoked recursively, for instance by
+ typing `<c-r>=` at the command line prompt. The `level` field is used
+ to distinguish different command lines active at the same time. The
+ first invoked command line has level 1, the next recursively-invoked
+ prompt has level 2. A command line invoked from the |cmd-line-window|
+ has a higher level than than the edited command line.
+
+["cmdline_pos", pos, level]
+ Change the cursor position in the cmdline.
+
+["cmdline_special_char", c, shift, level]
+ Display a special char in the cmdline at the cursor position. This is
+ typically used to indicate a pending state, e.g. after |c_CTRL-V|. If
+ `shift` is true the text after the cursor should be shifted, otherwise
+ it should overwrite the char at the cursor.
+
+ Should be hidden at next cmdline_show.
+
+["cmdline_hide"]
+ Hide the cmdline.
+
+["cmdline_block_show", lines]
+ Show a block of context to the current command line. For example if
+ the user defines a |:function| interactively: >
+ :function Foo()
+ : echo "foo"
+ :
+<
+ `lines` is a list of lines of highlighted chunks, in the same form as
+ the "cmdline_show" `contents` parameter.
+
+["cmdline_block_append", line]
+ Append a line at the end of the currently shown block.
+
+["cmdline_block_hide"]
+ Hide the block.
+
+==============================================================================
+Wildmenu Events *ui-wildmenu*
+
+Only sent if `ext_wildmenu` option is set in |ui-options|
+
+["wildmenu_show", items]
+ Activate the wildmenu (command-line completion). `items` is an array
+ with the completion items.
+
+["wildmenu_select", selected]
+ Select an item in the current wildmenu. `selected` is a zero-based
+ index into the array of items from the last wildmenu_show event, or -1
+ if no item is selected.
+
+["wildmenu_hide"]
+ Hide the wildmenu.
+
+==============================================================================
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/undo.txt b/runtime/doc/undo.txt
index c6c70ab6d2..f8f6049119 100644
--- a/runtime/doc/undo.txt
+++ b/runtime/doc/undo.txt
@@ -1,4 +1,4 @@
-*undo.txt* For Vim version 7.4. Last change: 2014 May 24
+*undo.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -8,12 +8,7 @@ Undo and redo *undo-redo*
The basics are explained in section |02.5| of the user manual.
-1. Undo and redo commands |undo-commands|
-2. Two ways of undo |undo-two-ways|
-3. Undo blocks |undo-blocks|
-4. Undo branches |undo-branches|
-5. Undo persistence |undo-persistence|
-6. Remarks about undo |undo-remarks|
+ Type |gO| to see the table of contents.
==============================================================================
1. Undo and redo commands *undo-commands*
diff --git a/runtime/doc/usr_01.txt b/runtime/doc/usr_01.txt
index 2fa15331df..f3a5728d72 100644
--- a/runtime/doc/usr_01.txt
+++ b/runtime/doc/usr_01.txt
@@ -1,4 +1,4 @@
-*usr_01.txt* For Vim version 7.4. Last change: 2010 Nov 03
+*usr_01.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_02.txt b/runtime/doc/usr_02.txt
index c10643940d..a1e3d606ec 100644
--- a/runtime/doc/usr_02.txt
+++ b/runtime/doc/usr_02.txt
@@ -1,4 +1,4 @@
-*usr_02.txt* For Vim version 7.4. Last change: 2016 Jan 16
+*usr_02.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
@@ -543,7 +543,7 @@ Summary: *help-summary* >
8) Ex-commands always start with ":", so to go to the :s command help: >
:help :s
-9) Commands specifically for debugging start with ">". To go to to the help
+9) Commands specifically for debugging start with ">". To go to the help
for the "cont" debug command: >
:help >cont
@@ -578,7 +578,7 @@ Summary: *help-summary* >
register: >
:help quote:
-13) Vim Script (VimL) is available at >
+13) Vim Script is available at >
:help eval.txt
< Certain aspects of the language are available at :h expr-X where "X" is a
single letter. E.g. >
@@ -588,10 +588,10 @@ Summary: *help-summary* >
Also important is >
:help function-list
< to find a short description of all functions available. Help topics for
- VimL functions always include the "()", so: >
+ Vim script functions always include the "()", so: >
:help append()
-< talks about the append VimL function rather than how to append text in the
- current buffer.
+< talks about the append Vim script function rather than how to append text
+ in the current buffer.
14) Mappings are talked about in the help page :h |map.txt|. Use >
:help mapmode-i
@@ -652,7 +652,7 @@ Summary: *help-summary* >
22) Autocommand events can be found by their name: >
:help BufWinLeave
< To see all possible events: >
- :help autocommands-events
+ :help autocommand-events
23) Command-line switches always start with "-". So for the help of the -f
command switch of Vim use: >
diff --git a/runtime/doc/usr_03.txt b/runtime/doc/usr_03.txt
index 943d7b528c..989914687f 100644
--- a/runtime/doc/usr_03.txt
+++ b/runtime/doc/usr_03.txt
@@ -1,4 +1,4 @@
-*usr_03.txt* For Vim version 7.4. Last change: 2016 Jan 05
+*usr_03.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
@@ -182,7 +182,7 @@ the following:
This tells you that you might want to fix something on line 33. So how do you
find line 33? One way is to do "9999k" to go to the top of the file and "32j"
-to go down thirty two lines. It is not a good way, but it works. A much
+to go down thirty-two lines. It is not a good way, but it works. A much
better way of doing things is to use the "G" command. With a count, this
command positions you at the given line number. For example, "33G" puts you
on line 33. (For a better way of going through a compiler's error list, see
@@ -353,7 +353,7 @@ The "?" command works like "/" but searches backwards: >
?word
The "N" command repeats the last search the opposite direction. Thus using
-"N" after a "/" command search backwards, using "N" after "?" searches
+"N" after a "/" command searches backwards, using "N" after "?" searches
forward.
@@ -508,7 +508,7 @@ only if it is at the beginning of a line.
The $ character matches the end of a line. Therefore, "was$" matches the
word was only if it is at the end of a line.
-Let's mark the places where "the" matches in this example line with "x"s:
+Let's mark the places where "/the" matches in this example line with "x"s:
the solder holding one of the chips melted and the ~
xxx xxx xxx
diff --git a/runtime/doc/usr_04.txt b/runtime/doc/usr_04.txt
index 59ba0b3e73..e02a50e494 100644
--- a/runtime/doc/usr_04.txt
+++ b/runtime/doc/usr_04.txt
@@ -1,4 +1,4 @@
-*usr_04.txt* For Vim version 7.4. Last change: 2014 Aug 29
+*usr_04.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_05.txt b/runtime/doc/usr_05.txt
index f920fd4591..cb7bf94ddc 100644
--- a/runtime/doc/usr_05.txt
+++ b/runtime/doc/usr_05.txt
@@ -1,4 +1,4 @@
-*usr_05.txt* For Vim version 7.4. Last change: 2016 Mar 28
+*usr_05.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
@@ -140,15 +140,13 @@ quite complicated things. Still, it is just a sequence of commands that are
executed like you typed them.
>
- if &t_Co > 2 || has("gui_running")
- syntax on
- set hlsearch
- endif
-
-This switches on syntax highlighting, but only if colors are available. And
-the 'hlsearch' option tells Vim to highlight matches with the last used search
-pattern. The "if" command is very useful to set options only when some
-condition is met. More about that in |usr_41.txt|.
+ syntax on
+ set hlsearch
+
+This switches on syntax highlighting. And the 'hlsearch' option tells Vim to
+highlight matches with the last used search pattern. The "if" command is very
+useful to set options only when some condition is met. More about that in
+|usr_41.txt|.
*vimrc-filetype* >
filetype plugin indent on
diff --git a/runtime/doc/usr_06.txt b/runtime/doc/usr_06.txt
index b4b495ff9f..48f672be78 100644
--- a/runtime/doc/usr_06.txt
+++ b/runtime/doc/usr_06.txt
@@ -1,4 +1,4 @@
-*usr_06.txt* For Vim version 7.4. Last change: 2009 Oct 28
+*usr_06.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
@@ -55,8 +55,7 @@ There can be a number of reasons why you don't see colors:
- Your terminal does not support colors.
Vim will use bold, italic and underlined text, but this doesn't look
very nice. You probably will want to try to get a terminal with
- colors. For Unix, I recommend the xterm from the XFree86 project:
- |xfree-xterm|.
+ colors.
- Your terminal does support colors, but Vim doesn't know this.
Make sure your $TERM setting is correct. For example, when using an
@@ -68,9 +67,7 @@ There can be a number of reasons why you don't see colors:
TERM=xterm-color; export TERM
-< The terminal name must match the terminal you are using. If it
- still doesn't work, have a look at |xterm-color|, which shows a few
- ways to make Vim display colors (not only for an xterm).
+< The terminal name must match the terminal you are using.
- The file type is not recognized.
Vim doesn't know all file types, and sometimes it's near to impossible
diff --git a/runtime/doc/usr_07.txt b/runtime/doc/usr_07.txt
index 50e4781cd7..683c9879a7 100644
--- a/runtime/doc/usr_07.txt
+++ b/runtime/doc/usr_07.txt
@@ -1,4 +1,4 @@
-*usr_07.txt* For Vim version 7.4. Last change: 2006 Apr 24
+*usr_07.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
@@ -221,7 +221,7 @@ and write the file with ":w". You edit several other files, and then use
":edit one.txt" to come back to "one.txt". If you now use `" Vim jumps to the
last line of the file. Using `. takes you to the position where you deleted
the character. Even when you move around in the file `" and `. will take you
-to the remembered position, at least until you make another change or leave
+to the remembered position. At least until you make another change or leave
the file.
@@ -233,8 +233,8 @@ another file and place marks there, these are specific for that file. Thus
each file has its own set of marks, they are local to the file.
So far we were using marks with a lowercase letter. There are also marks
with an uppercase letter. These are global, they can be used from any file.
-For example suppose that we are editing the file "foo.txt". Go to halfway of
-the file ("50%") and place the F mark there (F for foo): >
+For example suppose that we are editing the file "foo.txt". Go to halfway
+down the file ("50%") and place the F mark there (F for foo): >
50%mF
@@ -355,7 +355,7 @@ a sentence to the f register (f for First): >
"fyas
The "yas" command yanks a sentence like before. It's the "f that tells Vim
-the text should be place in the f register. This must come just before the
+the text should be placed in the f register. This must come just before the
yank command.
Now yank three whole lines to the l register (l for line): >
diff --git a/runtime/doc/usr_08.txt b/runtime/doc/usr_08.txt
index d1f3fbd49d..ef91bf9c0a 100644
--- a/runtime/doc/usr_08.txt
+++ b/runtime/doc/usr_08.txt
@@ -1,4 +1,4 @@
-*usr_08.txt* For Vim version 7.4. Last change: 2014 Jul 06
+*usr_08.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
@@ -45,7 +45,7 @@ top one:
+----------------------------------+
What you see here is two windows on the same file. The line with "====" is
-that status line. It displays information about the window above it. (In
+the status line. It displays information about the window above it. (In
practice the status line will be in reverse video.)
The two windows allow you to view two parts of the same file. For example,
you could make the top window show the variable declarations of a program, and
diff --git a/runtime/doc/usr_09.txt b/runtime/doc/usr_09.txt
index d68d734b8f..f53076a2ec 100644
--- a/runtime/doc/usr_09.txt
+++ b/runtime/doc/usr_09.txt
@@ -1,4 +1,4 @@
-*usr_09.txt* For Vim version 7.4. Last change: 2006 Apr 24
+*usr_09.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
@@ -21,7 +21,7 @@ Table of contents: |usr_toc.txt|
==============================================================================
*09.1* Parts of the GUI
-You might have an icon on your desktop that starts gVim. Otherwise, one of
+You might have an icon on your desktop that starts gvim. Otherwise, one of
these commands should do it: >
gvim file.txt
@@ -60,7 +60,7 @@ THE WINDOW TITLE
At the very top is the window title. This is drawn by your window system.
Vim will set the title to show the name of the current file. First comes the
name of the file. Then some special characters and the directory of the file
-in parens. These special character can be present:
+in parens. These special characters can be present:
- The file cannot be modified (e.g., a help file)
+ The file contains changes
@@ -180,14 +180,14 @@ currently highlighted. In Vim this is the Visual area (this assumes you are
using the default option settings). You can paste this selection in another
application without any further action.
For example, in this text select a few words with the mouse. Vim will
-switch to Visual mode and highlight the text. Now start another gVim, without
+switch to Visual mode and highlight the text. Now start another gvim, without
a file name argument, so that it displays an empty window. Click the middle
mouse button. The selected text will be inserted.
The "current selection" will only remain valid until some other text is
-selected. After doing the paste in the other gVim, now select some characters
+selected. After doing the paste in the other gvim, now select some characters
in that window. You will notice that the words that were previously selected
-in the other gVim window are displayed differently. This means that it no
+in the other gvim window are displayed differently. This means that it no
longer is the current selection.
You don't need to select text with the mouse, using the keyboard commands for
@@ -200,10 +200,10 @@ Now for the other place with which text can be exchanged. We call this the
"real clipboard", to avoid confusion. Often both the "current selection" and
the "real clipboard" are called clipboard, you'll have to get used to that.
To put text on the real clipboard, select a few different words in one of
-the gVims you have running. Then use the Edit/Copy menu entry. Now the text
+the gvims you have running. Then use the Edit/Copy menu entry. Now the text
has been copied to the real clipboard. You can't see this, unless you have
-some application that shows the clipboard contents (e.g., KDE's klipper).
- Now select the other gVim, position the cursor somewhere and use the
+some application that shows the clipboard contents (e.g., KDE's Klipper).
+ Now select the other gvim, position the cursor somewhere and use the
Edit/Paste menu. You will see the text from the real clipboard is inserted.
@@ -211,7 +211,7 @@ USING BOTH
This use of both the "current selection" and the "real clipboard" might sound
a bit confusing. But it is very useful. Let's show this with an example.
-Use one gVim with a text file and perform these actions:
+Use one gvim with a text file and perform these actions:
- Select two words in Visual mode.
- Use the Edit/Copy menu to get these words onto the clipboard.
diff --git a/runtime/doc/usr_10.txt b/runtime/doc/usr_10.txt
index bf7ba18222..044cb1582b 100644
--- a/runtime/doc/usr_10.txt
+++ b/runtime/doc/usr_10.txt
@@ -1,4 +1,4 @@
-*usr_10.txt* For Vim version 7.4. Last change: 2006 Nov 05
+*usr_10.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_11.txt b/runtime/doc/usr_11.txt
index 1a72c300d7..42009519df 100644
--- a/runtime/doc/usr_11.txt
+++ b/runtime/doc/usr_11.txt
@@ -1,4 +1,4 @@
-*usr_11.txt* For Vim version 7.4. Last change: 2010 Jul 20
+*usr_11.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_12.txt b/runtime/doc/usr_12.txt
index f64a230576..e87ed81c97 100644
--- a/runtime/doc/usr_12.txt
+++ b/runtime/doc/usr_12.txt
@@ -1,4 +1,4 @@
-*usr_12.txt* For Vim version 7.4. Last change: 2007 May 11
+*usr_12.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
@@ -278,7 +278,7 @@ command: >
The line range "%" is used, thus this works on the whole file. The pattern
that the ":substitute" command matches with is "\s\+$". This finds white
space characters (\s), 1 or more of them (\+), before the end-of-line ($).
-Later will be explained how you write patterns like this |usr_27.txt|.
+Later will be explained how you write patterns like this, see |usr_27.txt|.
The "to" part of the substitute command is empty: "//". Thus it replaces
with nothing, effectively deleting the matched white space.
diff --git a/runtime/doc/usr_20.txt b/runtime/doc/usr_20.txt
index 5f0a660187..3b8eeae175 100644
--- a/runtime/doc/usr_20.txt
+++ b/runtime/doc/usr_20.txt
@@ -1,4 +1,4 @@
-*usr_20.txt* For Vim version 7.4. Last change: 2006 Apr 24
+*usr_20.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_21.txt b/runtime/doc/usr_21.txt
index f99c3263d0..cfb8c90027 100644
--- a/runtime/doc/usr_21.txt
+++ b/runtime/doc/usr_21.txt
@@ -1,4 +1,4 @@
-*usr_21.txt* For Vim version 7.4. Last change: 2012 Nov 02
+*usr_21.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_22.txt b/runtime/doc/usr_22.txt
index cff8e9db1e..255211f668 100644
--- a/runtime/doc/usr_22.txt
+++ b/runtime/doc/usr_22.txt
@@ -1,4 +1,4 @@
-*usr_22.txt* For Vim version 7.4. Last change: 2012 Nov 15
+*usr_22.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
@@ -93,7 +93,7 @@ browser. This is what you get: >
o................Browsing with a Horizontal Split...........|netrw-o|
p................Use Preview Window.........................|netrw-p|
P................Edit in Previous Window....................|netrw-p|
- q................Listing Bookmarks and History..............|netrw-q|
+ q................Listing Bookmarks and History..............|netrw-qb|
r................Reversing Sorting Order....................|netrw-r|
< (etc)
diff --git a/runtime/doc/usr_23.txt b/runtime/doc/usr_23.txt
index 4761203512..cb776d2b5c 100644
--- a/runtime/doc/usr_23.txt
+++ b/runtime/doc/usr_23.txt
@@ -1,4 +1,4 @@
-*usr_23.txt* For Vim version 7.4. Last change: 2006 Apr 24
+*usr_23.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_24.txt b/runtime/doc/usr_24.txt
index ba9d083fe0..b74ed879e0 100644
--- a/runtime/doc/usr_24.txt
+++ b/runtime/doc/usr_24.txt
@@ -1,4 +1,4 @@
-*usr_24.txt* For Vim version 7.4. Last change: 2006 Jul 23
+*usr_24.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_25.txt b/runtime/doc/usr_25.txt
index 24420353dd..ae3d3c4422 100644
--- a/runtime/doc/usr_25.txt
+++ b/runtime/doc/usr_25.txt
@@ -1,4 +1,4 @@
-*usr_25.txt* For Vim version 7.4. Last change: 2016 Mar 28
+*usr_25.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_26.txt b/runtime/doc/usr_26.txt
index e381a1df12..7b0b940da2 100644
--- a/runtime/doc/usr_26.txt
+++ b/runtime/doc/usr_26.txt
@@ -1,4 +1,4 @@
-*usr_26.txt* For Vim version 7.4. Last change: 2006 Apr 24
+*usr_26.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_27.txt b/runtime/doc/usr_27.txt
index d837610698..afea67bd0b 100644
--- a/runtime/doc/usr_27.txt
+++ b/runtime/doc/usr_27.txt
@@ -1,4 +1,4 @@
-*usr_27.txt* For Vim version 7.4. Last change: 2010 Mar 28
+*usr_27.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_28.txt b/runtime/doc/usr_28.txt
index d29b384437..24e995d9ab 100644
--- a/runtime/doc/usr_28.txt
+++ b/runtime/doc/usr_28.txt
@@ -1,4 +1,4 @@
-*usr_28.txt* For Vim version 7.4. Last change: 2008 Jun 14
+*usr_28.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_29.txt b/runtime/doc/usr_29.txt
index 9eb66ce83c..b0cb9d7e88 100644
--- a/runtime/doc/usr_29.txt
+++ b/runtime/doc/usr_29.txt
@@ -1,4 +1,4 @@
-*usr_29.txt* For Vim version 7.4. Last change: 2016 Feb 27
+*usr_29.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_30.txt b/runtime/doc/usr_30.txt
index dbac440ecc..786f2d1800 100644
--- a/runtime/doc/usr_30.txt
+++ b/runtime/doc/usr_30.txt
@@ -1,4 +1,4 @@
-*usr_30.txt* For Vim version 7.4. Last change: 2007 Nov 10
+*usr_30.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_31.txt b/runtime/doc/usr_31.txt
index 7bcf4d428a..2354e27b42 100644
--- a/runtime/doc/usr_31.txt
+++ b/runtime/doc/usr_31.txt
@@ -1,4 +1,4 @@
-*usr_31.txt* For Vim version 7.4. Last change: 2007 May 08
+*usr_31.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_32.txt b/runtime/doc/usr_32.txt
index fd58f2d517..fca802872d 100644
--- a/runtime/doc/usr_32.txt
+++ b/runtime/doc/usr_32.txt
@@ -1,4 +1,4 @@
-*usr_32.txt* For Vim version 7.4. Last change: 2010 Jul 20
+*usr_32.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_40.txt b/runtime/doc/usr_40.txt
index d3cc792c59..4092af703e 100644
--- a/runtime/doc/usr_40.txt
+++ b/runtime/doc/usr_40.txt
@@ -1,4 +1,4 @@
-*usr_40.txt* For Vim version 7.4. Last change: 2013 Aug 05
+*usr_40.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index 191b0871f4..51d8143440 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt* For Vim version 7.4. Last change: 2016 Aug 07
+*usr_41.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
@@ -95,7 +95,7 @@ Then there is the ":let i += 1" command. This does the same thing as
to the same variable.
The example was given to explain the commands, but would you really want to
-make such a loop it can be written much more compact: >
+make such a loop, it can be written much more compact: >
:for i in range(1, 4)
: echo "count is" i
@@ -692,6 +692,7 @@ Other computation: *bitwise-function*
Variables: *var-functions*
type() type of a variable
islocked() check if a variable is locked
+ funcref() get a Funcref for a function reference
function() get a Funcref for a function name
getbufvar() get a variable value from a specific buffer
setbufvar() set a variable in a specific buffer
@@ -883,9 +884,11 @@ GUI: *gui-functions*
getfontname() get name of current font being used
getwinposx() X position of the GUI Vim window
getwinposy() Y position of the GUI Vim window
+ balloon_show() set the balloon content
Vim server: *server-functions*
serverlist() return the list of server names
+ remote_startserver() run a server
remote_send() send command characters to a Vim server
remote_expr() evaluate an expression in a Vim server
server2client() send a reply to a client of a Vim server
@@ -950,8 +953,10 @@ Various: *various-functions*
taglist() get list of matching tags
tagfiles() get a list of tags files
+ luaeval() evaluate Lua expression
py3eval() evaluate Python expression (|+python3|)
pyeval() evaluate Python expression (|+python|)
+ pyxeval() evaluate |python_x| expression
==============================================================================
*41.7* Defining a function
@@ -1539,7 +1544,7 @@ WHITE SPACE
Blank lines are allowed and ignored.
Leading whitespace characters (blanks and TABs) are always ignored. The
-whitespaces between parameters (e.g. between the 'set' and the 'cpoptions' in
+whitespaces between parameters (e.g. between the "set" and the "cpoptions" in
the example below) are reduced to one blank character and plays the role of a
separator, the whitespaces after the last (visible) character may or may not
be ignored depending on the situation, see below.
@@ -2222,8 +2227,8 @@ plugin for the mail filetype: >
endif
Two global variables are used:
-no_plugin_maps disables mappings for all filetype plugins
-no_mail_maps disables mappings for a specific filetype
+|no_plugin_maps| disables mappings for all filetype plugins
+|no_mail_maps| disables mappings for the "mail" filetype
USER COMMANDS
diff --git a/runtime/doc/usr_42.txt b/runtime/doc/usr_42.txt
index c8eac5f062..ad04555f8c 100644
--- a/runtime/doc/usr_42.txt
+++ b/runtime/doc/usr_42.txt
@@ -1,4 +1,4 @@
-*usr_42.txt* For Vim version 7.4. Last change: 2008 May 05
+*usr_42.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_43.txt b/runtime/doc/usr_43.txt
index bab446af3c..765a525692 100644
--- a/runtime/doc/usr_43.txt
+++ b/runtime/doc/usr_43.txt
@@ -1,4 +1,4 @@
-*usr_43.txt* For Vim version 7.4. Last change: 2015 Oct 23
+*usr_43.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_44.txt b/runtime/doc/usr_44.txt
index a91f92ff4e..b06557b950 100644
--- a/runtime/doc/usr_44.txt
+++ b/runtime/doc/usr_44.txt
@@ -1,4 +1,4 @@
-*usr_44.txt* For Vim version 7.4. Last change: 2008 Dec 28
+*usr_44.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
@@ -686,7 +686,7 @@ that included files do this too, you might have to reset "b:current_syntax" if
you include two files.
If you want your syntax file to work with Vim 5.x, add a check for v:version.
-See yacc.vim for an example.
+Find an syntax file in the Vim 7.2 distribution for an example.
Do not include anything that is a user preference. Don't set 'tabstop',
'expandtab', etc. These belong in a filetype plugin.
diff --git a/runtime/doc/usr_45.txt b/runtime/doc/usr_45.txt
index 34b607cbd2..9bbbe82113 100644
--- a/runtime/doc/usr_45.txt
+++ b/runtime/doc/usr_45.txt
@@ -1,4 +1,4 @@
-*usr_45.txt* For Vim version 7.4. Last change: 2008 Nov 15
+*usr_45.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
diff --git a/runtime/doc/usr_toc.txt b/runtime/doc/usr_toc.txt
index e021b806e3..ed14d78d22 100644
--- a/runtime/doc/usr_toc.txt
+++ b/runtime/doc/usr_toc.txt
@@ -1,4 +1,4 @@
-*usr_toc.txt* For Vim version 7.4. Last change: 2016 Mar 25
+*usr_toc.txt* Nvim
VIM USER MANUAL - by Bram Moolenaar
@@ -48,9 +48,8 @@ Tuning Vim
Reference manual
|reference_toc| More detailed information for all commands
-The user manual is available as a single, ready to print HTML and PDF file
-here:
- http://vimdoc.sf.net
+The user manual is online:
+ https://neovim.io/doc/user
==============================================================================
Getting Started ~
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index 0ac294ec37..baac72c106 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -1,4 +1,4 @@
-*various.txt* For Vim version 7.4. Last change: 2016 Jul 09
+*various.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -6,8 +6,7 @@
Various commands *various*
-1. Various commands |various-cmds|
-2. Using Vim like less or more |less|
+ Type |gO| to see the table of contents.
==============================================================================
1. Various commands *various-cmds*
@@ -85,6 +84,8 @@ g8 Print the hex values of the bytes used in the
on paper see |:hardcopy|. In the GUI you can use the
File.Print menu entry.
See |ex-flags| for [flags].
+ The |:filter| command can be used to only show lines
+ matching a pattern.
:[range]p[rint] {count} [flags]
Print {count} lines, starting with [range] (default
@@ -101,8 +102,7 @@ g8 Print the hex values of the bytes used in the
*:nu* *:number*
:[range]nu[mber] [count] [flags]
Same as :print, but precede each line with its line
- number. (See also 'highlight' and 'numberwidth'
- option).
+ number. (See also |hl-LineNr| and 'numberwidth').
See |ex-flags| for [flags].
*:#*
@@ -207,15 +207,19 @@ g8 Print the hex values of the bytes used in the
:sh[ell] Removed. |vim-differences| {Nvim}
*:terminal* *:te*
-:te[rminal][!] {cmd} Execute {cmd} with 'shell' in a |terminal-emulator|
- buffer. Equivalent to: >
+:te[rminal][!] [{cmd}] Execute {cmd} with 'shell' in a new |terminal| buffer.
+ Equivalent to: >
:enew
:call termopen('{cmd}')
- :startinsert
<
- See |jobstart()|.
+ See |termopen()|.
- To enter terminal mode automatically: >
+ Without {cmd}, start an interactive shell.
+
+ Creating the terminal buffer fails when changes have been
+ made to the current buffer, unless 'hidden' is set.
+
+ To enter |Terminal-mode| automatically: >
autocmd BufEnter term://* startinsert
autocmd BufLeave term://* stopinsert
<
@@ -270,6 +274,21 @@ g8 Print the hex values of the bytes used in the
< The screen is not redrawn then, thus you have to use
CTRL-L or ":redraw!" if the command did display
something.
+ *:!start*
+:!start {cmd} (Windows only). Special-case of |:!| which works
+ asynchronously, for running a program that does not
+ affect the files you are editing.
+ Optional arguments (can only use one at a time):
+ /min window will be minimized
+ /b no console window will be opened
+ Note: If the process requires input, /b will get an
+ EOF error because its input stream (stdin) would be
+ redirected to \\.\NUL (stdout and stderr too).
+
+ Programs begun with :!start do not get passed Vim's
+ open file handles, which means they do not have to be
+ closed before Vim. To avoid this special treatment,
+ use ":! start".
*:!!*
:!! Repeat last ":!{cmd}".
@@ -305,13 +324,12 @@ N *+cindent* |'cindent'|, C indenting
N *+clientserver* Unix and Win32: Remote invocation |clientserver|
*+clipboard* |clipboard| support
N *+cmdline_compl* command line completion |cmdline-completion|
-N *+cmdline_hist* command line history |cmdline-history|
+S *+cmdline_hist* command line history |cmdline-history|
N *+cmdline_info* |'showcmd'| and |'ruler'|
N *+comments* |'comments'| support
B *+conceal* "conceal" support, see |conceal| |:syn-conceal| etc.
B *+cscope* |cscope| support
m *+cursorbind* |'cursorbind'| support
-m *+cursorshape* |termcap-cursor-shape| support
m *+debug* Compiled for debugging.
N *+dialog_gui* Support for |:confirm| with GUI dialog.
N *+dialog_con* Support for |:confirm| with console dialog.
@@ -329,8 +347,9 @@ N *+gettext* message translations |multi-lang|
*+iconv* Compiled with the |iconv()| function
*+iconv/dyn* Likewise |iconv-dynamic| |/dyn|
N *+insert_expand* |insert_expand| Insert mode completion
-N *+jumplist* |jumplist|
+S *+jumplist* |jumplist|
B *+keymap* |'keymap'|
+N *+lambda* |lambda| and |closure|
B *+langmap* |'langmap'|
N *+libcall* |libcall()|
N *+linebreak* |'linebreak'|, |'breakat'| and |'showbreak'|
@@ -346,6 +365,7 @@ N *+mouseshape* |'mouseshape'|
N *+multi_byte* 16 and 32 bit characters |multibyte|
*+multi_byte_ime* Win32 input method for multibyte chars |multibyte-ime|
N *+multi_lang* non-English language support |multi-lang|
+ *+num64* 64-bit Number support |Number|
N *+path_extra* Up/downwards search in 'path' and 'tags'
N *+persistent_undo* Persistent undo |undo-persistence|
*+postscript* |:hardcopy| writes a PostScript file
@@ -366,26 +386,24 @@ N *+statusline* Options 'statusline', 'rulerformat' and special
formats of 'titlestring' and 'iconstring'
N *+syntax* Syntax highlighting |syntax|
N *+tablineat* 'tabline' option recognizing %@Func@ items.
-N *+tag_binary* binary searching in tags file |tag-binary-search|
+T *+tag_binary* binary searching in tags file |tag-binary-search|
N *+tag_old_static* old method for static tags |tag-old-static|
m *+tag_any_white* any white space allowed in tags file |tag-any-white|
B *+termguicolors* 24-bit color in xterm-compatible terminals support
- *+terminfo* uses |terminfo| instead of termcap
N *+termresponse* support for |t_RV| and |v:termresponse|
N *+textobjects* |text-objects| selection
- *+tgetent* non-Unix only: able to use external termcap
N *+timers* the |timer_start()| function
N *+title* Setting the window 'title' and 'icon'
N *+toolbar* |gui-toolbar|
N *+user_commands* User-defined commands. |user-commands|
-N *+vertsplit* Vertically split windows |:vsplit|
+ *+vertsplit* Vertically split windows |:vsplit|
N *+virtualedit* |'virtualedit'|
S *+visual* Visual mode |Visual-mode| Always enabled since 7.4.200.
N *+visualextra* extra Visual mode commands |blockwise-operators|
N *+vreplace* |gR| and |gr|
N *+wildignore* |'wildignore'|
N *+wildmenu* |'wildmenu'|
-S *+windows* more than one window
+ *+windows* more than one window
m *+writebackup* |'writebackup'| is default on
m *+xim* X input method |xim|
*+xfontset* X fontset support |xfontset|
@@ -460,6 +478,29 @@ m *+xpm_w32* Win32 GUI only: pixmap support |w32-xpm-support|
:redi[r] END End redirecting messages.
+ *:filt* *:filter*
+:filt[er][!] {pat} {command}
+:filt[er][!] /{pat}/ {command}
+ Restrict the output of {command} to lines matching
+ with {pat}. For example, to list only xml files: >
+ :filter /\.xml$/ oldfiles
+< If the [!] is given, restrict the output of {command}
+ to lines that do NOT match {pat}.
+
+ {pat} is a Vim search pattern. Instead of enclosing
+ it in / any non-ID character (see |'isident'|) can be
+ used, so long as it does not appear in {pat}. Without
+ the enclosing character the pattern cannot include the
+ bar character.
+
+ The pattern is matched against the relevant part of
+ the output, not necessarily the whole line. Only some
+ commands support filtering, try it out to check if it
+ works.
+
+ Only normal messages are filtered, error messages are
+ not.
+
*:sil* *:silent* *:silent!*
:sil[ent][!] {command} Execute {command} silently. Normal messages will not
be given or added to the message history.
@@ -566,6 +607,13 @@ which it was defined is reported.
the keyword. Only works when the highlighted text is
not more than one line.
+ *gO*
+gO Show a filetype-specific, navigable "outline" of the
+ current buffer. For example, in a |help| buffer this
+ shows the table of contents.
+
+ Currently works in |help| and |:Man| buffers.
+
[N]gs *gs* *:sl* *:sleep*
:[N]sl[eep] [N] [m] Do nothing for [N] seconds. When [m] is included,
sleep for [N] milliseconds. The count for "gs" always
@@ -604,4 +652,4 @@ LessInitFunc in your vimrc, for example: >
endfunc
<
- vim:tw=78:ts=8:ft=help:norl:
+ vim:noet:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/vi_diff.txt b/runtime/doc/vi_diff.txt
index 54ef8fecb2..917e0e6f80 100644
--- a/runtime/doc/vi_diff.txt
+++ b/runtime/doc/vi_diff.txt
@@ -1,4 +1,4 @@
-*vi_diff.txt* For Vim version 7.4. Last change: 2016 Feb 12
+*vi_diff.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -6,8 +6,7 @@
Differences between Vim and Vi *vi-differences*
-1. Limits |limits|
-2. The most interesting additions |vim-additions|
+ Type |gO| to see the table of contents.
==============================================================================
1. Limits *limits*
@@ -60,7 +59,7 @@ Support for different systems.
- Windows (XP SP 2 or greater)
- OS X
-Multi level undo. |undo|
+Multi level persistent undo. |undo|
'u' goes backward in time, 'CTRL-R' goes forward again. Set option
'undolevels' to the number of changes to be remembered (default 1000).
Set 'undolevels' to 0 for a Vi-compatible one level undo. Set it to
@@ -71,6 +70,9 @@ Multi level undo. |undo|
create a branch in the undo tree. This means you can go back to any
state of the text, there is no risk of a change causing text to be
lost forever. |undo-tree|
+ The undo information is stored in a file when the 'undofile' option is
+ set. This means you can exit Vim, start Vim on a previously edited
+ file and undo changes that were made before exiting Vim.
Graphical User Interface (GUI). |gui|
Included support for GUI: menu's, mouse, scrollbars, etc. You can
@@ -124,6 +126,13 @@ Plugins. |add-plugin|
right directory. That's an easy way to start using Vim scripts
written by others. Plugins can be for all kind of files, or
specifically for a filetype.
+ Packages make this even easier. |packages|
+
+Asynchronous communication and timers. |job-control| |timer|
+ Vim can exchange messages with other processes in the background.
+ Vim can start a job, communicate with it and stop it. |job-control|
+ Timers can fire once or repeatedly and invoke a function to do any
+ work. |timer|
Repeat a series of commands. |q|
"q{c}" starts recording typed characters into named register {c}.
diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt
index d7d31b5853..c8155f7a68 100644
--- a/runtime/doc/vim_diff.txt
+++ b/runtime/doc/vim_diff.txt
@@ -1,4 +1,4 @@
-*vim_diff.txt* For Nvim. {Nvim}
+*vim_diff.txt* Nvim
NVIM REFERENCE MANUAL
@@ -6,17 +6,10 @@
Differences between Nvim and Vim *vim-differences*
-Throughout the help files, differences between Nvim and Vim are indicated via
-the "{Nvim}" tag. This document is a complete and centralized list of all
-these differences.
-
-1. Configuration |nvim-configuration|
-2. Defaults |nvim-defaults|
-3. New features |nvim-features|
-4. Changed features |nvim-features-changed|
-5. Missing legacy features |nvim-features-missing|
-6. Removed features |nvim-features-removed|
+Nvim differs from Vim in many ways, big and small. This document is
+a complete and centralized reference of those differences.
+ Type |gO| to see the table of contents.
==============================================================================
1. Configuration *nvim-configuration*
@@ -45,7 +38,8 @@ these differences.
- 'history' defaults to 10000 (the maximum)
- 'hlsearch' is set by default
- 'incsearch' is set by default
-- 'langnoremap' is set by default
+- 'langnoremap' is enabled by default
+- 'langremap' is disabled by default
- 'laststatus' defaults to 2 (statusline is always shown)
- 'listchars' defaults to "tab:> ,trail:-,nbsp:+"
- 'nocompatible' is always set
@@ -64,42 +58,62 @@ these differences.
==============================================================================
3. New Features *nvim-features*
-
MAJOR COMPONENTS ~
-Embedded terminal emulator |terminal-emulator|
-RPC API |RPC|
-Shared data |shada|
-XDG base directories |xdg|
+API |API|
+Lua scripting |lua|
Job control |job-control|
Remote plugins |remote-plugin|
-Python plugins |provider-python|
-Clipboard integration |provider-clipboard|
-
+Providers
+ Clipboard |provider-clipboard|
+ Python plugins |provider-python|
+ Ruby plugins |provider-ruby|
+Shared data |shada|
+Embedded terminal |terminal|
+XDG base directories |xdg|
USER EXPERIENCE ~
-Working intuitively and consistently is a major goal of Nvim. Examples:
+Working intuitively and consistently is a major goal of Nvim.
-- Nvim does not have `-X`, a platform-specific option "sometimes" available in
- Vim (with potential surprises: http://stackoverflow.com/q/14635295). Nvim
- avoids features that cannot be provided on all platforms--instead that is
- delegated to external plugins/extensions.
+ *feature-compile*
+- Nvim always includes ALL features, in contrast to Vim (which ships with
+ various combinations of 100+ optional features). Think of it as a leaner
+ version of Vim's "HUGE" build. This reduces surface area for bugs, and
+ removes a common source of confusion and friction for users.
-- Test-only globals and functions such as test_autochdir(), test_settime(),
- etc., are not exposed (because they don't exist).
+- Nvim avoids features that cannot be provided on all platforms; instead that
+ is delegated to external plugins/extensions. E.g. the `-X` platform-specific
+ option is "sometimes" available in Vim (with potential surprises:
+ http://stackoverflow.com/q/14635295).
+
+- Vim's internal test functions (test_autochdir(), test_settime(), etc.) are
+ not exposed (nor implemented); instead Nvim has a robust API.
+
+- Behaviors, options, documentation are removed if they cost users more time
+ than they save.
+
+Usability details have been improved where the benefit outweighs any
+backwards-compatibility cost. Some examples:
+
+- |K| in help documents can be used like |CTRL-]|.
+- Directories for 'directory' and 'undodir' are auto-created.
+- Terminal features such as 'guicursor' are enabled where possible.
ARCHITECTURE ~
External plugins run in separate processes. |remote-plugin| This improves
-stability and allows those plugins to perform tasks without blocking the
-editor. Even "legacy" Python and Ruby plugins which use the old Vim interfaces
-(|if_py| and |if_ruby|) run out-of-process.
+stability and allows those plugins to work without blocking the editor. Even
+"legacy" Python and Ruby plugins which use the old Vim interfaces (|if_py| and
+|if_ruby|) run out-of-process.
+Platform and I/O facilities are built upon libuv. Nvim benefits from libuv
+features and bug fixes, and other projects benefit from improvements to libuv
+by Nvim developers.
FEATURES ~
-|bracketed-paste-mode| is built-in and enabled by default.
+"Outline": Type |gO| in |:Man| and |:help| pages to see a document outline.
|META| (ALT) chords are recognized, even in the terminal. Any |<M-| mapping
will work. Some examples: <M-1>, <M-2>, <M-BS>, <M-Del>, <M-Ins>, <M-/>,
@@ -112,9 +126,12 @@ Some `CTRL-SHIFT-...` key chords are distinguished from `CTRL-...` variants
Options:
'cpoptions' flags: |cpo-_|
+ 'guicursor' works in the terminal
'inccommand' shows interactive results for |:substitute|-like commands
+ 'scrollback'
'statusline' supports unlimited alignment sections
'tabline' %@Func@foo%X can call any function on mouse-click
+ 'winhighlight' window-local highlights
Variables:
|v:event|
@@ -123,14 +140,15 @@ Variables:
|v:windowid| is always available (for use by external UIs)
Commands:
- |:CheckHealth|
+ |:checkhealth|
|:drop| is available on all platforms
|:Man| is available by default, with many improvements such as completion
+ |:tchdir| tab-local |current-directory|
Functions:
|dictwatcheradd()| notifies a callback whenever a |Dict| is modified
|dictwatcherdel()|
- |execute()| works with |:redir|
+ |menu_get()|
|msgpackdump()|, |msgpackparse()| provide msgpack de/serialization
Events:
@@ -141,10 +159,20 @@ Events:
|TextYankPost|
Highlight groups:
+ |hl-NormalNC| highlights non-current windows
|hl-QuickFixLine|
|hl-Substitute|
|hl-TermCursor|
|hl-TermCursorNC|
+ |hl-Whitespace| highlights 'listchars' whitespace
+
+UI:
+ *E5408* *E5409* *g:Nvim_color_expr* *g:Nvim_color_cmdline*
+ Command-line coloring is supported. Only |input()| and |inputdialog()| may
+ be colored. For testing purposes expressions (e.g. |i_CTRL-R_=|) and regular
+ command-line (|:|) are colored by callbacks defined in `g:Nvim_color_expr`
+ and `g:Nvim_color_cmdline` respectively (these callbacks are for testing
+ only, and will be removed in a future version).
==============================================================================
4. Changed features *nvim-features-changed*
@@ -159,11 +187,22 @@ are always available and may be used simultaneously in separate plugins. The
`neovim` pip package must be installed to use Python plugins in Nvim (see
|provider-python|).
+Because of general |256-color| usage whereever possible, Nvim will even use
+256-colour capability on Linux virtual terminals. Vim uses only 8 colours
+plus bright foreground on Linux VTs.
+
+Vim combines what is in its |builtin-terms| with what it reads from termcap,
+and has a |ttybuiltin| setting to control how that combination works. Nvim
+uses either one or the other of an external |terminfo| entry or the built-in
+one. It does not attempt to mix data from the two.
+
|:!| does not support "interactive" commands. Use |:terminal| instead.
(GUI Vim has a similar limitation, see ":help gui-pty" in Vim.)
|system()| does not support writing/reading "backgrounded" commands. |E5677|
+|:redir| nested in |execute()| works.
+
Nvim may throttle (skip) messages from shell commands (|:!|, |:grep|, |:make|)
if there is too much output. No data is lost, this only affects display and
makes things faster. |:terminal| output is never throttled.
@@ -219,22 +258,15 @@ Additional differences:
- |shada-c| has no effect.
- |shada-s| now limits size of every item and not just registers.
-- When reading ShaDa files items are merged according to the timestamp.
- |shada-merging|
- 'viminfo' option got renamed to 'shada'. Old option is kept as an alias for
compatibility reasons.
- |:wviminfo| was renamed to |:wshada|, |:rviminfo| to |:rshada|. Old
commands are still kept.
-- When writing (|:wshada| without bang or at exit) it merges much more data,
- and does this according to the timestamp. Vim merges only marks.
- |shada-merging|
- ShaDa file format was designed with forward and backward compatibility in
mind. |shada-compatibility|
- Some errors make ShaDa code keep temporary file in-place for user to decide
what to do with it. Vim deletes temporary file in these cases.
|shada-error-handling|
-- Vim keeps no timestamps at all, neither in viminfo file nor in the instance
- itself.
- ShaDa file keeps search direction (|v:searchforward|), viminfo does not.
|printf()| returns something meaningful when used with `%p` argument: in Vim
@@ -245,23 +277,45 @@ coerced to strings. See |id()| for more details, currently it uses
|c_CTRL-R| pasting a non-special register into |cmdline| omits the last <CR>.
+Lua interface (|if_lua.txt|):
+
+- `:lua print("a\0b")` will print `a^@b`, like with `:echomsg "a\nb"` . In Vim
+ that prints `a` and `b` on separate lines, exactly like
+ `:lua print("a\nb")` .
+- `:lua error('TEST')` will print “TEST” as the error in Vim and “E5105: Error
+ while calling lua chunk: [string "<VimL compiled string>"]:1: TEST” in
+ Neovim.
+- Lua has direct access to Nvim |API| via `vim.api`.
+- Lua package.path and package.cpath are automatically updated according to
+ 'runtimepath': |lua-require|.
+
+|input()| and |inputdialog()| support for each other’s features (return on
+cancel and completion respectively) via dictionary argument (replaces all
+other arguments if used).
+
+|input()| and |inputdialog()| support user-defined cmdline highlighting.
+
+Highlight groups:
+ |hl-ColorColumn|, |hl-CursorColumn| are lower priority than most other
+ groups
+
+The variable name "count" is no fallback for |v:count| anymore.
+
==============================================================================
5. Missing legacy features *nvim-features-missing*
- *if_lua* *if_perl* *if_mzscheme* *if_tcl*
-These legacy Vim features may be implemented in the future, but they are not
-planned for the current milestone.
+Some legacy Vim features are not implemented:
- |if_py|: vim.bindeval() and vim.Function() are not supported
-- |if_lua|
-- |if_perl|
-- |if_mzscheme|
-- |if_tcl|
+- |if_lua|: the `vim` object is missing most legacy methods
+- *if_perl*
+- *if_mzscheme*
+- *if_tcl*
==============================================================================
6. Removed features *nvim-features-removed*
-These features are in Vim, but have been intentionally removed from Nvim.
+These Vim features were intentionally removed from Nvim.
*'cp'* *'nocompatible'* *'nocp'* *'compatible'*
Nvim is always "non-compatible" with Vi.
@@ -273,6 +327,29 @@ Ed-compatible mode:
":set noedcompatible" is ignored
":set edcompatible" is an error
+ *t_xx* *:set-termcap* *termcap-options* *t_AB* *t_Sb* *t_vb* *t_SI*
+Nvim does not have special `t_XX` options nor <t_XX> keycodes to configure
+terminal capabilities. Instead Nvim treats the terminal as any other UI. For
+example, 'guicursor' sets the terminal cursor style if possible.
+
+ *'term'* *E529* *E530* *E531*
+'term' reflects the terminal type derived from |$TERM| and other environment
+checks. For debugging only; not reliable during startup. >
+ :echo &term
+"builtin_x" means one of the |builtin-terms| was chosen, because the expected
+terminfo file was not found on the system.
+
+ *termcap*
+Nvim never uses the termcap database, only |terminfo| and |builtin-terms|.
+
+ *xterm-8bit* *xterm-8-bit*
+Xterm can be run in a mode where it uses true 8-bit CSI. Supporting this
+requires autodetection of whether the terminal is in UTF-8 mode or non-UTF-8
+mode, as the 8-bit CSI character has to be written differently in each case.
+Vim issues a "request version" sequence to the terminal at startup and looks
+at how the terminal is sending CSI. Nvim does not issue such a sequence and
+always uses 7-bit control sequences.
+
'ttyfast':
":set ttyfast" is ignored
":set nottyfast" is an error
@@ -285,9 +362,6 @@ MS-DOS support:
'bioskey'
'conskey'
-Highlight groups:
- |hl-VisualNOS|
-
Test functions:
test_alloc_fail()
test_autochdir()
@@ -303,11 +377,12 @@ Test functions:
Other options:
'antialias'
- 'cpoptions' ("g", "w", "H", "*", "-", "j", and all POSIX flags were removed)
+ 'cpoptions' (g j k H w < * - and all POSIX flags were removed)
'encoding' ("utf-8" is always used)
'esckeys'
'guioptions' "t" flag was removed
*'guipty'* (Nvim uses pipes and PTYs consistently on all platforms.)
+ 'highlight' (Names of builtin |highlight-groups| cannot be changed.)
*'imactivatefunc'* *'imaf'*
*'imactivatekey'* *'imak'*
*'imstatusfunc'* *'imsf'*
@@ -316,7 +391,6 @@ Other options:
'shelltype'
*'shortname'* *'sn'* *'noshortname'* *'nosn'*
*'swapsync'* *'sws'*
- *'term'* *E529* *E530* *E531*
*'termencoding'* *'tenc'* (Vim 7.4.852 also removed this for Windows)
'textauto'
'textmode'
diff --git a/runtime/doc/visual.txt b/runtime/doc/visual.txt
index 6810d50c11..176ce562d8 100644
--- a/runtime/doc/visual.txt
+++ b/runtime/doc/visual.txt
@@ -1,4 +1,4 @@
-*visual.txt* For Vim version 7.4. Last change: 2014 Mar 23
+*visual.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -11,14 +11,7 @@ operator. It is the only way to select a block of text.
This is introduced in section |04.4| of the user manual.
-1. Using Visual mode |visual-use|
-2. Starting and stopping Visual mode |visual-start|
-3. Changing the Visual area |visual-change|
-4. Operating on the Visual area |visual-operators|
-5. Blockwise operators |blockwise-operators|
-6. Repeating |visual-repeat|
-7. Examples |visual-examples|
-8. Select mode |Select-mode|
+ Type |gO| to see the table of contents.
==============================================================================
1. Using Visual mode *visual-use*
@@ -32,8 +25,7 @@ Using Visual mode consists of three parts:
3. Type an operator command.
The highlighted characters will be operated upon.
-The 'highlight' option can be used to set the display mode to use for
-highlighting in Visual mode.
+The |hl-Visual| group determines the highlighting of the visual selection.
The 'virtualedit' option can be used to allow positioning the cursor to
positions where there is no actual character.
@@ -278,7 +270,7 @@ mode. For example, if you would like the "/" command not to extend the Visual
area, but instead take the highlighted text and search for that: >
:vmap / y/<C-R>"<CR>
(In the <> notation |<>|, when typing it you should type it literally; you
-need to remove the 'B' and '<' flags from 'cpoptions'.)
+need to remove the 'B' flag from 'cpoptions'.)
If you want to give a register name using the """ command, do this just before
typing the operator character: "v{move-around}"xd".
@@ -382,7 +374,7 @@ Here is an example, to replace the selected text with the output of "date": >
:vmap _a <Esc>`>a<CR><Esc>`<i<CR><Esc>!!date<CR>kJJ
(In the <> notation |<>|, when typing it you should type it literally; you
-need to remove the 'B' and '<' flags from 'cpoptions')
+need to remove the 'B' flag from 'cpoptions')
What this does is:
<Esc> stop Visual mode
@@ -399,7 +391,7 @@ selected text: >
:vmap X y/<C-R>"<CR>
(In the <> notation |<>|, when typing it you should type it literally; you
-need to remove the 'B' and '<' flags from 'cpoptions')
+need to remove the 'B' flag from 'cpoptions')
Note that special characters (like '.' and '*') will cause problems.
diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt
index 5b94626e36..e83377471c 100644
--- a/runtime/doc/windows.txt
+++ b/runtime/doc/windows.txt
@@ -1,4 +1,4 @@
-*windows.txt* For Vim version 7.4. Last change: 2016 Jun 10
+*windows.txt* Nvim
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -13,18 +13,7 @@ differently when used in combination with more than one window.
The basics are explained in chapter 7 and 8 of the user manual |usr_07.txt|
|usr_08.txt|.
-1. Introduction |windows-intro|
-2. Starting Vim |windows-starting|
-3. Opening and closing a window |opening-window|
-4. Moving cursor to other windows |window-move-cursor|
-5. Moving windows around |window-moving|
-6. Window resizing |window-resize|
-7. Argument and buffer list commands |buffer-list|
-8. Do a command in all buffers or windows |list-repeat|
-9. Tag or file name under the cursor |window-tag|
-10. The preview window |preview-window|
-11. Using hidden buffers |buffer-hidden|
-12. Special kinds of buffers |special-buffers|
+ Type |gO| to see the table of contents.
==============================================================================
1. Introduction *windows-intro* *window*
@@ -69,7 +58,7 @@ places where a Normal mode command can't be used or is inconvenient.
The main Vim window can hold several split windows. There are also tab pages
|tab-page|, each of which can hold multiple windows.
-
+ *window-ID* *winid* *windowid*
Each window has a unique identifier called the window ID. This identifier
will not change within a Vim session. The |win_getid()| and |win_id2tabwin()|
functions can be used to convert between the window/tab number and the
@@ -117,18 +106,10 @@ This option can be local to the window, so that you can have a different
status line in each window.
Normally, inversion is used to display the status line. This can be changed
-with the 's' character in the 'highlight' option. For example, "sb" sets it to
-bold characters. If no highlighting is used for the status line ("sn"), the
-'^' character is used for the current window, and '=' for other windows. If
-the mouse is supported and enabled with the 'mouse' option, a status line can
-be dragged to resize windows.
-
-Note: If you expect your status line to be in reverse video and it isn't,
-check if the 'highlight' option contains "si". In version 3.0, this meant to
-invert the status line. Now it should be "sr", reverse the status line, as
-"si" now stands for italic! If italic is not available on your terminal, the
-status line is inverted anyway; you will only see this problem on terminals
-that have termcap codes for italics.
+with the |hl-StatusLine| highlight group. If no highlighting is used for the
+status line, the '^' character is used for the current window, and '=' for
+other windows. If 'mouse' is enabled, a status line can be dragged to resize
+windows.
==============================================================================
3. Opening and closing a window *opening-window* *E36*
@@ -249,7 +230,7 @@ window will appear.
far left and occupies the full height of the Vim window.
Doesn't work for |:execute| and |:normal|.
- *:botright*
+ *:bo* *:botright*
:bo[tright] {cmd}
Execute {cmd}. If it contains a command that splits a window,
it will appear at the bottom and occupy the full width of the
@@ -287,7 +268,7 @@ CTRL-W CTRL-Q *CTRL-W_CTRL-Q*
:1quit " quit the first window
:$quit " quit the last window
:9quit " quit the last window
- " if there are less than 9 windows opened
+ " if there are fewer than 9 windows opened
:-quit " quit the previous window
:+quit " quit the next window
:+2quit " quit the second next window
@@ -330,8 +311,9 @@ CTRL-W CTRL-C *CTRL-W_CTRL-C*
*:hide*
:hid[e]
:{count}hid[e]
- Quit the current window, unless it is the last window on the
- screen. For {count} see |:quit|.
+ Without {count}: Quit the current window, unless it is the
+ last window on the screen.
+ If {count} is given quit the {count} window.
The buffer becomes hidden (unless there is another window
editing it or 'bufhidden' is `unload`, `delete` or `wipe`).
@@ -534,6 +516,9 @@ CTRL-W > Increase current window width by N (default 1).
:vertical res[ize] [N] *:vertical-resize* *CTRL-W_bar*
CTRL-W | Set current window width to N (default: widest possible).
+ *:mod* *:mode*
+:mod[e] Detects the screen size and redraws the screen.
+
You can also resize a window by dragging a status line up or down with the
mouse. Or by dragging a vertical separator line left or right. This only
works if the version of Vim that is being used supports the mouse and the
@@ -602,7 +587,8 @@ The minimal height and width of a window is set with 'winminheight' and
41. :buffers list of buffers
The meaning of [N] depends on the command:
- [N] is number of buffers to go forward/backward on ?2, ?3, and ?4
+ [N] is the number of buffers to go forward/backward on 2/12/22/32,
+ 3/13/23/33, and 4/14/24/34
[N] is an argument number, defaulting to current argument, for 1 and 21
[N] is a buffer number, defaulting to current buffer, for 11 and 31
[N] is a count for 19 and 39
@@ -685,6 +671,8 @@ can also get to them with the buffer list commands, like ":bnext".
- If the file is not open in a window edit the file in the
current window. If the current buffer can't be |abandon|ed,
the window is split first.
+ - Windows that are not in the argument list or are not full
+ width will be closed if possible.
The |argument-list| is set, like with the |:next| command.
The purpose of this command is that it can be used from a
program that wants Vim to edit another file, e.g., a debugger.
@@ -1008,6 +996,9 @@ list of buffers. |unlisted-buffer|
displayed in a window |hidden-buffer|
- a buffer with 'modifiable' off
= a readonly buffer
+ R a terminal buffer with a running job
+ F a terminal buffer with a finished job
+ ? a terminal buffer without a job: `:terminal NONE`
+ a modified buffer
x a buffer with read errors
@@ -1026,6 +1017,10 @@ list of buffers. |unlisted-buffer|
h+ hidden buffers which are modified
a+ active buffers which are modified
+ When using |:filter| the pattern is matched against the
+ displayed buffer name, e.g.: >
+ filter /\.vim/ ls
+<
*:bad* *:badd*
:bad[d] [+lnum] {fname}
Add file name {fname} to the buffer list, without loading it.
@@ -1248,6 +1243,9 @@ help Contains a help file. Will only be created with the |:help|
and can't be changed. The 'buflisted' option will be reset
for a help buffer.
+terminal A terminal window buffer, see |terminal|. The contents cannot
+ be read or changed until the job ends.
+
directory Displays directory contents. Can be used by a file explorer
plugin. The buffer is created with these settings: >
:setlocal buftype=nowrite
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index f9d7f86a97..76f76af345 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2016 Jul 21
+" Last Change: 2017 Nov 02
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -284,14 +284,15 @@ au BufNewFile,BufRead *.bib setf bib
au BufNewFile,BufRead *.bst setf bst
" BIND configuration
-au BufNewFile,BufRead named.conf,rndc.conf setf named
+" sudoedit uses namedXXXX.conf
+au BufNewFile,BufRead named*.conf,rndc*.conf,rndc*.key setf named
" BIND zone
au BufNewFile,BufRead named.root setf bindzone
au BufNewFile,BufRead *.db call s:BindzoneCheck('')
func! s:BindzoneCheck(default)
- if getline(1).getline(2).getline(3).getline(4) =~ '^; <<>> DiG [0-9.]\+ <<>>\|BIND.*named\|$ORIGIN\|$TTL\|IN\s\+SOA'
+ if getline(1).getline(2).getline(3).getline(4) =~ '^; <<>> DiG [0-9.]\+.* <<>>\|$ORIGIN\|$TTL\|IN\s\+SOA'
setf bindzone
elseif a:default != ''
exe 'setf ' . a:default
@@ -305,7 +306,10 @@ au BufNewFile,BufRead *.bl setf blank
au BufNewFile,BufRead */etc/blkid.tab,*/etc/blkid.tab.old setf xml
" Bazel (http://bazel.io)
-autocmd BufRead,BufNewFile *.bzl,BUILD,WORKSPACE setfiletype bzl
+autocmd BufRead,BufNewFile *.bzl,WORKSPACE setfiletype bzl
+if has("fname_case")
+ autocmd BufRead,BufNewFile BUILD setfiletype bzl
+endif
" C or lpc
au BufNewFile,BufRead *.c call s:FTlpc()
@@ -623,7 +627,13 @@ au BufNewFile,BufRead dict.conf,.dictrc setf dictconf
au BufNewFile,BufRead dictd.conf setf dictdconf
" Diff files
-au BufNewFile,BufRead *.diff,*.rej,*.patch setf diff
+au BufNewFile,BufRead *.diff,*.rej setf diff
+au BufNewFile,BufRead *.patch
+ \ if getline(1) =~ '^From [0-9a-f]\{40\} Mon Sep 17 00:00:00 2001$' |
+ \ setf gitsendemail |
+ \ else |
+ \ setf diff |
+ \ endif
" Dircolors
au BufNewFile,BufRead .dir_colors,.dircolors,*/etc/DIR_COLORS setf dircolors
@@ -669,8 +679,17 @@ au BufNewFile,BufRead *.dtd setf dtd
" DTS/DSTI (device tree files)
au BufNewFile,BufRead *.dts,*.dtsi setf dts
-" EDIF (*.edf,*.edif,*.edn,*.edo)
-au BufNewFile,BufRead *.ed\(f\|if\|n\|o\) setf edif
+" EDIF (*.edf,*.edif,*.edn,*.edo) or edn
+au BufNewFile,BufRead *.ed\(f\|if\|o\) setf edif
+au BufNewFile,BufRead *.edn
+ \ if getline(1) =~ '^\s*(\s*edif\>' |
+ \ setf edif |
+ \ else |
+ \ setf clojure |
+ \ endif
+
+" EditorConfig (close enough to dosini)
+au BufNewFile,BufRead .editorconfig setf dosini
" Embedix Component Description
au BufNewFile,BufRead *.ecd setf ecd
@@ -688,8 +707,8 @@ func! s:FTe()
let n = 1
while n < 100 && n < line("$")
if getline(n) =~ "^\\s*\\(<'\\|'>\\)\\s*$"
- setf specman
- return
+ setf specman
+ return
endif
let n = n + 1
endwhile
@@ -775,8 +794,7 @@ au BufNewFile,BufRead *.mo,*.gdmo setf gdmo
au BufNewFile,BufRead *.ged,lltxxxxx.txt setf gedcom
" Git
-au BufNewFile,BufRead COMMIT_EDITMSG setf gitcommit
-au BufNewFile,BufRead MERGE_MSG setf gitcommit
+au BufNewFile,BufRead COMMIT_EDITMSG,MERGE_MSG,TAG_EDITMSG setf gitcommit
au BufNewFile,BufRead *.git/config,.gitconfig,.gitmodules setf gitconfig
au BufNewFile,BufRead *.git/modules/*/config setf gitconfig
au BufNewFile,BufRead */.config/git/config setf gitconfig
@@ -784,6 +802,7 @@ if !empty($XDG_CONFIG_HOME)
au BufNewFile,BufRead $XDG_CONFIG_HOME/git/config setf gitconfig
endif
au BufNewFile,BufRead git-rebase-todo setf gitrebase
+au BufRead,BufNewFile .gitsendemail.msg.?????? setf gitsendemail
au BufNewFile,BufRead .msg.[0-9]*
\ if getline(1) =~ '^From.*# This line is ignored.$' |
\ setf gitsendemail |
@@ -803,6 +822,10 @@ au BufNewFile,BufRead *.gp,.gprc setf gp
au BufNewFile,BufRead */.gnupg/options setf gpg
au BufNewFile,BufRead */.gnupg/gpg.conf setf gpg
au BufNewFile,BufRead */usr/*/gnupg/options.skel setf gpg
+if !empty($GNUPGHOME)
+ au BufNewFile,BufRead $GNUPGHOME/options setf gpg
+ au BufNewFile,BufRead $GNUPGHOME/gpg.conf setf gpg
+endif
" gnash(1) configuration files
au BufNewFile,BufRead gnashrc,.gnashrc,gnashpluginrc,.gnashpluginrc setf gnash
@@ -852,7 +875,7 @@ au BufNewFile,BufRead *.ht setf haste
au BufNewFile,BufRead *.htpp setf hastepreproc
" Hercules
-au BufNewFile,BufRead *.vc,*.ev,*.rs,*.sum,*.errsum setf hercules
+au BufNewFile,BufRead *.vc,*.ev,*.sum,*.errsum setf hercules
" HEX (Intel)
au BufNewFile,BufRead *.hex,*.h32 setf hex
@@ -960,7 +983,7 @@ au BufNewFile,BufRead */etc/initng/*/*.i,*.ii setf initng
" Innovation Data Processing
au BufRead,BufNewFile upstream.dat\c,upstream.*.dat\c,*.upstream.dat\c setf upstreamdat
-au BufRead,BufNewFile upstream.log\c,upstream.*.log\c,*.upstream.log\c setf upstreamlog
+au BufRead,BufNewFile fdrupstream.log,upstream.log\c,upstream.*.log\c,*.upstream.log\c,UPSTREAM-*.log\c setf upstreamlog
au BufRead,BufNewFile upstreaminstall.log\c,upstreaminstall.*.log\c,*.upstreaminstall.log\c setf upstreaminstalllog
au BufRead,BufNewFile usserver.log\c,usserver.*.log\c,*.usserver.log\c setf usserverlog
au BufRead,BufNewFile usw2kagt.log\c,usw2kagt.*.log\c,*.usw2kagt.log\c setf usw2kagtlog
@@ -1124,8 +1147,8 @@ au BufNewFile,BufRead *.m4
" MaGic Point
au BufNewFile,BufRead *.mgp setf mgp
-" Mail (for Elm, trn, mutt, muttng, rn, slrn)
-au BufNewFile,BufRead snd.\d\+,.letter,.letter.\d\+,.followup,.article,.article.\d\+,pico.\d\+,mutt{ng,}-*-\w\+,mutt[[:alnum:]_-]\\\{6\},ae\d\+.txt,/tmp/SLRN[0-9A-Z.]\+,*.eml setf mail
+" Mail (for Elm, trn, mutt, muttng, rn, slrn, neomutt)
+au BufNewFile,BufRead snd.\d\+,.letter,.letter.\d\+,.followup,.article,.article.\d\+,pico.\d\+,mutt{ng,}-*-\w\+,mutt[[:alnum:]_-]\\\{6\},neomutt-*-\w\+,neomutt[[:alnum:]_-]\\\{6\},ae\d\+.txt,/tmp/SLRN[0-9A-Z.]\+,*.eml setf mail
" Mail aliases
au BufNewFile,BufRead */etc/mail/aliases,*/etc/aliases setf mailaliases
@@ -1301,6 +1324,9 @@ au BufNewFile,BufRead */etc/nanorc,*.nanorc setf nanorc
" Natural
au BufNewFile,BufRead *.NS[ACGLMNPS] setf natural
+" Noemutt setup file
+au BufNewFile,BufRead Neomuttrc setf neomuttrc
+
" Netrc
au BufNewFile,BufRead .netrc setf netrc
@@ -1347,6 +1373,9 @@ endfunc
" Not Quite C
au BufNewFile,BufRead *.nqc setf nqc
+" NSE - Nmap Script Engine - uses Lua syntax
+au BufNewFile,BufRead *.nse setf lua
+
" NSIS
au BufNewFile,BufRead *.nsi,*.nsh setf nsis
@@ -1389,14 +1418,17 @@ au BufNewFile,BufRead *.dpr setf pascal
" PDF
au BufNewFile,BufRead *.pdf setf pdf
+" PCMK - HAE - crm configure edit
+au BufNewFile,BufRead *.pcmk setf pcmk
+
" Perl
if has("fname_case")
au BufNewFile,BufRead *.pl,*.PL call s:FTpl()
else
au BufNewFile,BufRead *.pl call s:FTpl()
endif
-au BufNewFile,BufRead *.plx,*.al setf perl
-au BufNewFile,BufRead *.p6,*.pm6,*.pl6 setf perl6
+au BufNewFile,BufRead *.plx,*.al,*.psgi setf perl
+au BufNewFile,BufRead *.p6,*.pm6,*.pl6 setf perl6
func! s:FTpl()
if exists("g:filetype_pl")
@@ -1750,6 +1782,9 @@ au BufNewFile,BufRead *.rb,*.rbw setf ruby
" RubyGems
au BufNewFile,BufRead *.gemspec setf ruby
+" Rust
+au BufNewFile,BufRead *.rs setf rust
+
" Rackup
au BufNewFile,BufRead *.ru setf ruby
@@ -1777,6 +1812,12 @@ au BufNewFile,BufRead *.sass setf sass
" Sather
au BufNewFile,BufRead *.sa setf sather
+" Scala
+au BufNewFile,BufRead *.scala setf scala
+
+" SBT - Scala Build Tool
+au BufNewFile,BufRead *.sbt setf sbt
+
" Scilab
au BufNewFile,BufRead *.sci,*.sce setf scilab
@@ -2049,7 +2090,7 @@ func! s:FTRules()
if line =~ s:ft_rules_udev_rules_pattern
let udev_rules = substitute(line, s:ft_rules_udev_rules_pattern, '\1', "")
if dir == udev_rules
- setf udevrules
+ setf udevrules
endif
break
endif
@@ -2103,7 +2144,10 @@ au BufNewFile,BufRead ssh_config,*/.ssh/config setf sshconfig
au BufNewFile,BufRead sshd_config setf sshdconfig
" Stata
-au BufNewFile,BufRead *.ado,*.class,*.do,*.imata,*.mata setf stata
+au BufNewFile,BufRead *.ado,*.do,*.imata,*.mata setf stata
+" Also *.class, but not when it's a Java bytecode file
+au BufNewFile,BufRead *.class
+ \ if getline(1) !~ "^\xca\xfe\xba\xbe" | setf stata | endif
" SMCL
au BufNewFile,BufRead *.hlp,*.ihlp,*.smcl setf smcl
@@ -2198,6 +2242,8 @@ func! s:FTtex()
let format = tolower(matchstr(firstline, '\a\+'))
let format = substitute(format, 'pdf', '', '')
if format == 'tex'
+ let format = 'latex'
+ elseif format == 'plaintex'
let format = 'plain'
endif
else
@@ -2241,7 +2287,7 @@ func! s:FTtex()
endfunc
" ConTeXt
-au BufNewFile,BufRead tex/context/*/*.tex,*.mkii,*.mkiv setf context
+au BufNewFile,BufRead tex/context/*/*.tex,*.mkii,*.mkiv,*.mkvi setf context
" Texinfo
au BufNewFile,BufRead *.texinfo,*.texi,*.txi setf texinfo
@@ -2255,6 +2301,9 @@ au BufNewFile,BufRead .tidyrc,tidyrc setf tidy
" TF mud client
au BufNewFile,BufRead *.tf,.tfrc,tfrc setf tf
+" tmux configuration
+au BufNewFile,BufRead {.,}tmux*.conf setf tmux
+
" TPP - Text Presentation Program
au BufNewFile,BufReadPost *.tpp setf tpp
@@ -2301,7 +2350,7 @@ au BufNewFile,BufRead */etc/updatedb.conf setf updatedb
au BufNewFile,BufRead */usr/share/upstart/*.conf setf upstart
au BufNewFile,BufRead */usr/share/upstart/*.override setf upstart
au BufNewFile,BufRead */etc/init/*.conf,*/etc/init/*.override setf upstart
-au BufNewFile,BufRead */.init/*.conf,*/.init/*.override setf upstart
+au BufNewFile,BufRead */.init/*.conf,*/.init/*.override setf upstart
au BufNewFile,BufRead */.config/upstart/*.conf setf upstart
au BufNewFile,BufRead */.config/upstart/*.override setf upstart
@@ -2365,6 +2414,9 @@ au BufNewFile,BufRead *.wbt setf winbatch
" WSML
au BufNewFile,BufRead *.wsml setf wsml
+" WPL
+au BufNewFile,BufRead *.wpl setf xml
+
" WvDial
au BufNewFile,BufRead wvdial.conf,.wvdialrc setf wvdial
@@ -2640,7 +2692,7 @@ au BufNewFile,BufRead [mM]akefile* call s:StarSetf('make')
au BufNewFile,BufRead [rR]akefile* call s:StarSetf('ruby')
" Mail (also matches muttrc.vim, so this is below the other checks)
-au BufNewFile,BufRead mutt[[:alnum:]._-]\\\{6\} setf mail
+au BufNewFile,BufRead {neo,}mutt[[:alnum:]._-]\\\{6\} setf mail
au BufNewFile,BufRead reportbug-* call s:StarSetf('mail')
@@ -2655,9 +2707,16 @@ au BufNewFile,BufRead */etc/modprobe.* call s:StarSetf('modconf')
au BufNewFile,BufRead .mutt{ng,}rc*,*/.mutt{ng,}/mutt{ng,}rc* call s:StarSetf('muttrc')
au BufNewFile,BufRead mutt{ng,}rc*,Mutt{ng,}rc* call s:StarSetf('muttrc')
+" Neomutt setup file
+au BufNewFile,BufRead .neomuttrc*,*/.neomutt/neomuttrc* call s:StarSetf('neomuttrc')
+au BufNewFile,BufRead neomuttrc*,Neomuttrc* call s:StarSetf('neomuttrc')
+
" Nroff macros
au BufNewFile,BufRead tmac.* call s:StarSetf('nroff')
+" OpenBSD hostname.if
+au BufNewFile,BufRead /etc/hostname.* call s:StarSetf('config')
+
" Pam conf
au BufNewFile,BufRead */etc/pam.d/* call s:StarSetf('pamconf')
diff --git a/runtime/ftplugin/a2ps.vim b/runtime/ftplugin/a2ps.vim
index 6653351949..0e24e3088f 100644
--- a/runtime/ftplugin/a2ps.vim
+++ b/runtime/ftplugin/a2ps.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: a2ps(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: a2ps(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/alsaconf.vim b/runtime/ftplugin/alsaconf.vim
index 5d763c8011..6d9d80a208 100644
--- a/runtime/ftplugin/alsaconf.vim
+++ b/runtime/ftplugin/alsaconf.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: alsaconf(8) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: alsaconf(8) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/arch.vim b/runtime/ftplugin/arch.vim
index 71d831e112..1c697b8ca1 100644
--- a/runtime/ftplugin/arch.vim
+++ b/runtime/ftplugin/arch.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: GNU Arch inventory file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: GNU Arch inventory file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/automake.vim b/runtime/ftplugin/automake.vim
index 20b06af362..9f981a7a83 100644
--- a/runtime/ftplugin/automake.vim
+++ b/runtime/ftplugin/automake.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: Automake
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: Automake
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/awk.vim b/runtime/ftplugin/awk.vim
new file mode 100644
index 0000000000..dcefc85ec3
--- /dev/null
+++ b/runtime/ftplugin/awk.vim
@@ -0,0 +1,18 @@
+" Vim filetype plugin
+" Language: awk, nawk, gawk, mawk
+" Maintainer: Antonio Colombo <azc100@gmail.com>
+" Last Change: 2017 Feb 17
+
+" This plugin was prepared by Mark Sikora
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Don't load another plugin for this buffer
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl commentstring<"
+
+setlocal commentstring=#\ %s
diff --git a/runtime/ftplugin/bdf.vim b/runtime/ftplugin/bdf.vim
index 120c5df968..85b7b4042a 100644
--- a/runtime/ftplugin/bdf.vim
+++ b/runtime/ftplugin/bdf.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: BDF font definition
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: BDF font definition
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/c.vim b/runtime/ftplugin/c.vim
index 3717ea92a9..6047f9f863 100644
--- a/runtime/ftplugin/c.vim
+++ b/runtime/ftplugin/c.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2016 Jun 12
+" Last Change: 2017 Sep 28
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -30,8 +30,8 @@ endif
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
" When the matchit plugin is loaded, this makes the % command skip parens and
-" braces in comments.
-let b:match_words = &matchpairs . ',^\s*#\s*if\(\|def\|ndef\)\>:^\s*#\s*elif\>:^\s*#\s*else\>:^\s*#\s*endif\>'
+" braces in comments properly.
+let b:match_words = '^\s*#\s*if\(\|def\|ndef\)\>:^\s*#\s*elif\>:^\s*#\s*else\>:^\s*#\s*endif\>'
let b:match_skip = 's:comment\|string\|character\|special'
" Win32 can filter files in the browse dialog
diff --git a/runtime/ftplugin/calendar.vim b/runtime/ftplugin/calendar.vim
index 6f117e36e5..f454ba1dc8 100644
--- a/runtime/ftplugin/calendar.vim
+++ b/runtime/ftplugin/calendar.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: calendar(1) input file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: calendar(1) input file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/cdrdaoconf.vim b/runtime/ftplugin/cdrdaoconf.vim
index 557fd82c53..563bb8f5f1 100644
--- a/runtime/ftplugin/cdrdaoconf.vim
+++ b/runtime/ftplugin/cdrdaoconf.vim
@@ -1,6 +1,6 @@
" Vim filetype plugin file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2007-12-04
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2007-12-04
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/conf.vim b/runtime/ftplugin/conf.vim
index 1b110e475b..ff2add1fa3 100644
--- a/runtime/ftplugin/conf.vim
+++ b/runtime/ftplugin/conf.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: generic configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: generic configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/context.vim b/runtime/ftplugin/context.vim
index 1c7d678375..10f1ae1648 100644
--- a/runtime/ftplugin/context.vim
+++ b/runtime/ftplugin/context.vim
@@ -1,7 +1,8 @@
" Vim filetype plugin file
-" Language: ConTeXt typesetting engine
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: ConTeXt typesetting engine
+" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
+" Former Maintainers: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2016 Oct 30
if exists("b:did_ftplugin")
finish
@@ -11,16 +12,26 @@ let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
-let b:undo_ftplugin = "setl com< cms< def< inc< sua< fo<"
+if !exists('current_compiler')
+ compiler context
+endif
+
+let b:undo_ftplugin = "setl com< cms< def< inc< sua< fo< ofu<"
+ \ . "| unlet! b:match_ignorecase b:match_words b:match_skip"
-setlocal comments=b:%D,b:%C,b:%M,:% commentstring=%\ %s formatoptions+=tcroql
+setlocal comments=b:%D,b:%C,b:%M,:% commentstring=%\ %s formatoptions+=tjcroql2
+if get(b:, 'context_metapost', get(g:, 'context_metapost', 1))
+ setlocal omnifunc=contextcomplete#Complete
+ let g:omni_syntax_group_include_context = 'mf\w\+,mp\w\+'
+ let g:omni_syntax_group_exclude_context = 'mfTodoComment'
+endif
let &l:define='\\\%([egx]\|char\|mathchar\|count\|dimen\|muskip\|skip\|toks\)\='
\ . 'def\|\\font\|\\\%(future\)\=let'
\ . '\|\\new\%(count\|dimen\|skip\|muskip\|box\|toks\|read\|write'
\ . '\|fam\|insert\|if\)'
-let &l:include = '^\s*\%(input\|component\)'
+let &l:include = '^\s*\\\%(input\|component\|product\|project\|environment\)'
setlocal suffixesadd=.tex
@@ -31,5 +42,61 @@ if exists("loaded_matchit")
\ '\\start\(\a\+\):\\stop\1'
endif
+let s:context_regex = {
+ \ 'beginsection' : '\\\%(start\)\=\%(\%(sub\)*section\|\%(sub\)*subject\|chapter\|part\|component\|product\|title\)\>',
+ \ 'endsection' : '\\\%(stop\)\=\%(\%(sub\)*section\|\%(sub\)*subject\|chapter\|part\|component\|product\|title\)\>',
+ \ 'beginblock' : '\\\%(start\|setup\|define\)',
+ \ 'endblock' : '\\\%(stop\|setup\|define\)'
+ \ }
+
+function! s:move_around(count, what, flags, visual)
+ if a:visual
+ exe "normal! gv"
+ endif
+ call search(s:context_regex[a:what], a:flags.'s') " 's' sets previous context mark
+ call map(range(2, a:count), 'search(s:context_regex[a:what], a:flags)')
+endfunction
+
+" Move around macros.
+nnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:false) <CR>
+vnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:true) <CR>
+nnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:false) <CR>
+vnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:true) <CR>
+nnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:false) <CR>
+vnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:true) <CR>
+nnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:false) <CR>
+vnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:true) <CR>
+nnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:false) <CR>
+vnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:true) <CR>
+nnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:false) <CR>
+vnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:true) <CR>
+
+" Other useful mappings
+if get(g:, 'context_mappings', 1)
+ let s:tp_regex = '?^$\|^\s*\\\(item\|start\|stop\|blank\|\%(sub\)*section\|chapter\|\%(sub\)*subject\|title\|part\)'
+
+ fun! s:tp()
+ call cursor(search(s:tp_regex, 'bcW') + 1, 1)
+ normal! V
+ call cursor(search(s:tp_regex, 'W') - 1, 1)
+ endf
+
+ " Reflow paragraphs with commands like gqtp ("gq TeX paragraph")
+ onoremap <silent><buffer> tp :<c-u>call <sid>tp()<cr>
+ " Select TeX paragraph
+ vnoremap <silent><buffer> tp <esc>:<c-u>call <sid>tp()<cr>
+
+ " $...$ text object
+ onoremap <silent><buffer> i$ :<c-u>normal! T$vt$<cr>
+ onoremap <silent><buffer> a$ :<c-u>normal! F$vf$<cr>
+ vnoremap <buffer> i$ T$ot$
+ vnoremap <buffer> a$ F$of$
+endif
+
+" Commands for asynchronous typesetting
+command! -buffer -nargs=? -complete=file ConTeXt call context#typeset(<q-args>)
+command! -nargs=0 ConTeXtJobStatus call context#job_status()
+command! -nargs=0 ConTeXtStopJobs call context#stop_jobs()
+
let &cpo = s:cpo_save
unlet s:cpo_save
diff --git a/runtime/ftplugin/crm.vim b/runtime/ftplugin/crm.vim
index e86e683068..06baee883a 100644
--- a/runtime/ftplugin/crm.vim
+++ b/runtime/ftplugin/crm.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: CRM114
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: CRM114
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/css.vim b/runtime/ftplugin/css.vim
index 43d1edfa5b..ea4424418c 100644
--- a/runtime/ftplugin/css.vim
+++ b/runtime/ftplugin/css.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: CSS
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: CSS
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/cucumber.vim b/runtime/ftplugin/cucumber.vim
index 2ec1a5976f..f4848d1c60 100644
--- a/runtime/ftplugin/cucumber.vim
+++ b/runtime/ftplugin/cucumber.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: Cucumber
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
-" Last Change: 2013 Jun 01
+" Last Change: 2016 Aug 29
" Only do this when not done yet for this buffer
if (exists("b:did_ftplugin"))
@@ -19,27 +19,23 @@ setlocal omnifunc=CucumberComplete
let b:undo_ftplugin = "setl fo< com< cms< ofu<"
let b:cucumber_root = expand('%:p:h:s?.*[\/]\%(features\|stories\)\zs[\/].*??')
+if !exists("b:cucumber_steps_glob")
+ let b:cucumber_steps_glob = b:cucumber_root.'/**/*.rb'
+endif
if !exists("g:no_plugin_maps") && !exists("g:no_cucumber_maps")
- nnoremap <silent><buffer> <C-]> :<C-U>exe <SID>jump('edit',v:count)<CR>
- nnoremap <silent><buffer> [<C-D> :<C-U>exe <SID>jump('edit',v:count)<CR>
- nnoremap <silent><buffer> ]<C-D> :<C-U>exe <SID>jump('edit',v:count)<CR>
- nnoremap <silent><buffer> <C-W>] :<C-U>exe <SID>jump('split',v:count)<CR>
- nnoremap <silent><buffer> <C-W><C-]> :<C-U>exe <SID>jump('split',v:count)<CR>
- nnoremap <silent><buffer> <C-W>d :<C-U>exe <SID>jump('split',v:count)<CR>
- nnoremap <silent><buffer> <C-W><C-D> :<C-U>exe <SID>jump('split',v:count)<CR>
- nnoremap <silent><buffer> <C-W>} :<C-U>exe <SID>jump('pedit',v:count)<CR>
- nnoremap <silent><buffer> [d :<C-U>exe <SID>jump('pedit',v:count)<CR>
- nnoremap <silent><buffer> ]d :<C-U>exe <SID>jump('pedit',v:count)<CR>
+ cnoremap <SID>foldopen <Bar>if &foldopen =~# 'tag'<Bar>exe 'norm! zv'<Bar>endif
+ nnoremap <silent> <script> <buffer> [<C-D> :<C-U>exe <SID>jump('edit',v:count)<SID>foldopen<CR>
+ nnoremap <silent> <script> <buffer> ]<C-D> :<C-U>exe <SID>jump('edit',v:count)<SID>foldopen<CR>
+ nnoremap <silent> <script> <buffer> <C-W>d :<C-U>exe <SID>jump('split',v:count)<SID>foldopen<CR>
+ nnoremap <silent> <script> <buffer> <C-W><C-D> :<C-U>exe <SID>jump('split',v:count)<SID>foldopen<CR>
+ nnoremap <silent> <script> <buffer> [d :<C-U>exe <SID>jump('pedit',v:count)<CR>
+ nnoremap <silent> <script> <buffer> ]d :<C-U>exe <SID>jump('pedit',v:count)<CR>
let b:undo_ftplugin .=
- \ "|sil! nunmap <buffer> <C-]>" .
\ "|sil! nunmap <buffer> [<C-D>" .
\ "|sil! nunmap <buffer> ]<C-D>" .
- \ "|sil! nunmap <buffer> <C-W>]" .
- \ "|sil! nunmap <buffer> <C-W><C-]>" .
\ "|sil! nunmap <buffer> <C-W>d" .
\ "|sil! nunmap <buffer> <C-W><C-D>" .
- \ "|sil! nunmap <buffer> <C-W>}" .
\ "|sil! nunmap <buffer> [d" .
\ "|sil! nunmap <buffer> ]d"
endif
@@ -59,7 +55,7 @@ endfunction
function! s:allsteps()
let step_pattern = '\C^\s*\K\k*\>\s*(\=\s*\zs\S.\{-\}\ze\s*)\=\s*\%(do\|{\)\s*\%(|[^|]*|\s*\)\=\%($\|#\)'
let steps = []
- for file in split(glob(b:cucumber_root.'/**/*.rb'),"\n")
+ for file in split(glob(b:cucumber_steps_glob),"\n")
let lines = readfile(file)
let num = 0
for line in lines
diff --git a/runtime/ftplugin/cvsrc.vim b/runtime/ftplugin/cvsrc.vim
index c410530588..34b148409e 100644
--- a/runtime/ftplugin/cvsrc.vim
+++ b/runtime/ftplugin/cvsrc.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: cvs(1) RC file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: cvs(1) RC file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/denyhosts.vim b/runtime/ftplugin/denyhosts.vim
index 557fd82c53..563bb8f5f1 100644
--- a/runtime/ftplugin/denyhosts.vim
+++ b/runtime/ftplugin/denyhosts.vim
@@ -1,6 +1,6 @@
" Vim filetype plugin file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2007-12-04
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2007-12-04
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/dictconf.vim b/runtime/ftplugin/dictconf.vim
index 659046c176..71a2b67258 100644
--- a/runtime/ftplugin/dictconf.vim
+++ b/runtime/ftplugin/dictconf.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: dict(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: dict(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/dictdconf.vim b/runtime/ftplugin/dictdconf.vim
index ee738c50ce..0ee4c9d7e0 100644
--- a/runtime/ftplugin/dictdconf.vim
+++ b/runtime/ftplugin/dictdconf.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: dictd(8) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: dictd(8) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/dircolors.vim b/runtime/ftplugin/dircolors.vim
index 3b3d046e36..d07d1e34da 100644
--- a/runtime/ftplugin/dircolors.vim
+++ b/runtime/ftplugin/dircolors.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: dircolors(1) input file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: dircolors(1) input file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/dosini.vim b/runtime/ftplugin/dosini.vim
index 461403ca95..0d0f0f8983 100644
--- a/runtime/ftplugin/dosini.vim
+++ b/runtime/ftplugin/dosini.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: Configuration File (ini file) for MSDOS/MS Windows
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: Configuration File (ini file) for MSDOS/MS Windows
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/elinks.vim b/runtime/ftplugin/elinks.vim
index 7d9257566b..921f9c276b 100644
--- a/runtime/ftplugin/elinks.vim
+++ b/runtime/ftplugin/elinks.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: elinks(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: elinks(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/eruby.vim b/runtime/ftplugin/eruby.vim
index 9bb8e86ff3..32f3fb868f 100644
--- a/runtime/ftplugin/eruby.vim
+++ b/runtime/ftplugin/eruby.vim
@@ -27,7 +27,7 @@ elseif !exists("b:eruby_subtype")
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\)\+$','',''),'\.\zs\w\+$')
+ let b:eruby_subtype = matchstr(substitute(expand("%:t"),'\c\%(\.erb\|\.eruby\|\.erubis\)\+$','',''),'\.\zs\w\+\%(\ze+\w\+\)\=$')
endif
if b:eruby_subtype == 'rhtml'
let b:eruby_subtype = 'html'
diff --git a/runtime/ftplugin/eterm.vim b/runtime/ftplugin/eterm.vim
index e072c638b1..e2f88ef8c6 100644
--- a/runtime/ftplugin/eterm.vim
+++ b/runtime/ftplugin/eterm.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: eterm(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: eterm(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/fetchmail.vim b/runtime/ftplugin/fetchmail.vim
index a0d4650c03..33bb417be4 100644
--- a/runtime/ftplugin/fetchmail.vim
+++ b/runtime/ftplugin/fetchmail.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: fetchmail(1) RC File
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: fetchmail(1) RC File
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/framescript.vim b/runtime/ftplugin/framescript.vim
index 805401a89b..48fe0ace7c 100644
--- a/runtime/ftplugin/framescript.vim
+++ b/runtime/ftplugin/framescript.vim
@@ -1,7 +1,7 @@
" Vim ftplugin file
-" Language: FrameScript
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-19
+" Language: FrameScript
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-19
let s:cpo_save = &cpo
set cpo&vim
diff --git a/runtime/ftplugin/gdb.vim b/runtime/ftplugin/gdb.vim
new file mode 100644
index 0000000000..2473b13af0
--- /dev/null
+++ b/runtime/ftplugin/gdb.vim
@@ -0,0 +1,12 @@
+" Vim filetype plugin file
+" Language: gdb
+" Maintainer: Michaël Peeters <NOSPAMm.vim@noekeon.org>
+" Last Changed: 26 Oct 2017
+
+if exists("b:did_ftplugin") | finish | endif
+let b:did_ftplugin = 1
+
+setlocal commentstring=#%s
+
+" Undo the stuff we changed.
+let b:undo_ftplugin = "setlocal cms<"
diff --git a/runtime/ftplugin/git.vim b/runtime/ftplugin/git.vim
index 5fe5b2b0c3..b3d5cff804 100644
--- a/runtime/ftplugin/git.vim
+++ b/runtime/ftplugin/git.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: generic git output
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
-" Last Change: 2013 May 30
+" Last Change: 2016 Aug 29
" Only do this when not done yet for this buffer
if (exists("b:did_ftplugin"))
@@ -12,6 +12,8 @@ let b:did_ftplugin = 1
if !exists('b:git_dir')
if expand('%:p') =~# '[\/]\.git[\/]modules[\/]'
" Stay out of the way
+ elseif expand('%:p') =~# '[\/]\.git[\/]worktrees'
+ let b:git_dir = matchstr(expand('%:p'),'.*\.git[\/]worktrees[\/][^\/]\+\>')
elseif expand('%:p') =~# '\.git\>'
let b:git_dir = matchstr(expand('%:p'),'.*\.git\>')
elseif $GIT_DIR != ''
diff --git a/runtime/ftplugin/gitcommit.vim b/runtime/ftplugin/gitcommit.vim
index e8619004bf..6767ff719e 100644
--- a/runtime/ftplugin/gitcommit.vim
+++ b/runtime/ftplugin/gitcommit.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: git commit file
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
-" Last Change: 2013 May 30
+" Last Change: 2016 Aug 29
" Only do this when not done yet for this buffer
if (exists("b:did_ftplugin"))
@@ -11,15 +11,10 @@ endif
runtime! ftplugin/git.vim
let b:did_ftplugin = 1
-setlocal nomodeline tabstop=8 formatoptions-=croq formatoptions+=tl
-
-let b:undo_ftplugin = 'setl modeline< tabstop< formatoptions<'
-
-if &textwidth == 0
- " make sure that log messages play nice with git-log on standard terminals
- setlocal textwidth=72
- let b:undo_ftplugin .= "|setl tw<"
-endif
+setlocal comments=:# commentstring=#\ %s
+setlocal nomodeline tabstop=8 formatoptions+=tl textwidth=72
+setlocal formatoptions-=c formatoptions-=r formatoptions-=o formatoptions-=q
+let b:undo_ftplugin = 'setl modeline< tabstop< formatoptions< tw< com< cms<'
if exists("g:no_gitcommit_commands") || v:version < 700
finish
@@ -31,6 +26,8 @@ endif
command! -bang -bar -buffer -complete=custom,s:diffcomplete -nargs=* DiffGitCached :call s:gitdiffcached(<bang>0,b:git_dir,<f-args>)
+let b:undo_ftplugin = b:undo_ftplugin . "|delc DiffGitCached"
+
function! s:diffcomplete(A,L,P)
let args = ""
if a:P <= match(a:L." -- "," -- ")+3
diff --git a/runtime/ftplugin/gitrebase.vim b/runtime/ftplugin/gitrebase.vim
index 0200ba1acc..6f73b5c499 100644
--- a/runtime/ftplugin/gitrebase.vim
+++ b/runtime/ftplugin/gitrebase.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: git rebase --interactive
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
-" Last Change: 2010 May 21
+" Last Change: 2016 Aug 29
" Only do this when not done yet for this buffer
if (exists("b:did_ftplugin"))
@@ -12,10 +12,11 @@ runtime! ftplugin/git.vim
let b:did_ftplugin = 1
setlocal comments=:# commentstring=#\ %s formatoptions-=t
+setlocal nomodeline
if !exists("b:undo_ftplugin")
let b:undo_ftplugin = ""
endif
-let b:undo_ftplugin = b:undo_ftplugin."|setl com< cms< fo<"
+let b:undo_ftplugin = b:undo_ftplugin."|setl com< cms< fo< ml<"
function! s:choose(word)
s/^\(\w\+\>\)\=\(\s*\)\ze\x\{4,40\}\>/\=(strlen(submatch(1)) == 1 ? a:word[0] : a:word) . substitute(submatch(2),'^$',' ','')/e
diff --git a/runtime/ftplugin/gpg.vim b/runtime/ftplugin/gpg.vim
index 5caa1f69c1..3f890e58f6 100644
--- a/runtime/ftplugin/gpg.vim
+++ b/runtime/ftplugin/gpg.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: gpg(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: gpg(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/group.vim b/runtime/ftplugin/group.vim
index eef3cd68d9..e6b76ba607 100644
--- a/runtime/ftplugin/group.vim
+++ b/runtime/ftplugin/group.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: group(5) user group file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: group(5) user group file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/grub.vim b/runtime/ftplugin/grub.vim
index 21c4e3609d..cd6e1139e5 100644
--- a/runtime/ftplugin/grub.vim
+++ b/runtime/ftplugin/grub.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: grub(8) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: grub(8) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/haml.vim b/runtime/ftplugin/haml.vim
index 654f1fca90..e74530b556 100644
--- a/runtime/ftplugin/haml.vim
+++ b/runtime/ftplugin/haml.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: Haml
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
-" Last Change: 2013 Jun 01
+" Last Change: 2016 Aug 29
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
diff --git a/runtime/ftplugin/hamster.vim b/runtime/ftplugin/hamster.vim
index c23adc4232..6c0630fe04 100644
--- a/runtime/ftplugin/hamster.vim
+++ b/runtime/ftplugin/hamster.vim
@@ -1,8 +1,8 @@
" Vim filetype plugin
" Language: Hamster Script
" Version: 2.0.6.0
-" Maintainer: David Fishburn <fishburn@ianywhere.com>
-" Last Change: Wed Nov 08 2006 12:03:09 PM
+" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
+" Last Change: 2017 Mar 18
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -13,7 +13,7 @@ endif
let b:did_ftplugin = 1
let s:cpo_save = &cpo
-set cpo-=C
+set cpo&vim
let b:undo_ftplugin = "setl fo< com< tw< commentstring<"
\ . "| unlet! b:match_ignorecase b:match_words b:match_skip"
diff --git a/runtime/ftplugin/haskell.vim b/runtime/ftplugin/haskell.vim
index 144f9f6860..de77bdfb8a 100644
--- a/runtime/ftplugin/haskell.vim
+++ b/runtime/ftplugin/haskell.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: Haskell
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: Haskell
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/help.vim b/runtime/ftplugin/help.vim
index a0a0f292eb..0f448bd306 100644
--- a/runtime/ftplugin/help.vim
+++ b/runtime/ftplugin/help.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: Vim help file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: Vim help file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
@@ -11,12 +11,87 @@ let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
-let b:undo_ftplugin = "setl fo< tw< cole< cocu<"
+let b:undo_ftplugin = "setl fo< tw< cole< cocu< keywordprg<"
setlocal formatoptions+=tcroql textwidth=78
if has("conceal")
setlocal cole=2 cocu=nc
endif
+" Prefer Vim help instead of manpages.
+setlocal keywordprg=:help
+
+if !exists('g:no_plugin_maps')
+ function! s:show_toc() abort
+ let bufname = bufname('%')
+ let info = getloclist(0, {'winid': 1})
+ if !empty(info) && getwinvar(info.winid, 'qf_toc') ==# bufname
+ lopen
+ return
+ endif
+
+ let toc = []
+ let lnum = 2
+ let last_line = line('$') - 1
+ let last_added = 0
+ let has_section = 0
+ let has_sub_section = 0
+
+ while lnum && lnum <= last_line
+ let level = 0
+ let add_text = ''
+ let text = getline(lnum)
+
+ if text =~# '^=\+$' && lnum + 1 < last_line
+ " A de-facto section heading. Other headings are inferred.
+ let has_section = 1
+ let has_sub_section = 0
+ let lnum = nextnonblank(lnum + 1)
+ let text = getline(lnum)
+ let add_text = text
+ while add_text =~# '\*[^*]\+\*\s*$'
+ let add_text = matchstr(add_text, '.*\ze\*[^*]\+\*\s*$')
+ endwhile
+ elseif text =~# '^[A-Z0-9][-A-ZA-Z0-9 .][-A-Z0-9 .():]*\%([ \t]\+\*.\+\*\)\?$'
+ " Any line that's yelling is important.
+ let has_sub_section = 1
+ let level = has_section
+ let add_text = matchstr(text, '.\{-}\ze\s*\%([ \t]\+\*.\+\*\)\?$')
+ elseif text =~# '\~$'
+ \ && matchstr(text, '^\s*\zs.\{-}\ze\s*\~$') !~# '\t\|\s\{2,}'
+ \ && getline(lnum - 1) =~# '^\s*<\?$\|^\s*\*.*\*$'
+ \ && getline(lnum + 1) =~# '^\s*>\?$\|^\s*\*.*\*$'
+ " These lines could be headers or code examples. We only want the
+ " ones that have subsequent lines at the same indent or more.
+ let l = nextnonblank(lnum + 1)
+ if getline(l) =~# '\*[^*]\+\*$'
+ " Ignore tag lines
+ let l = nextnonblank(l + 1)
+ endif
+
+ if indent(lnum) <= indent(l)
+ let level = has_section + has_sub_section
+ let add_text = matchstr(text, '\S.*')
+ endif
+ endif
+
+ let add_text = substitute(add_text, '\s\+$', '', 'g')
+ if !empty(add_text) && last_added != lnum
+ let last_added = lnum
+ call add(toc, {'bufnr': bufnr('%'), 'lnum': lnum,
+ \ 'text': repeat(' ', level) . add_text})
+ endif
+ let lnum = nextnonblank(lnum + 1)
+ endwhile
+
+ call setloclist(0, toc, ' ')
+ call setloclist(0, [], 'a', {'title': 'Help TOC'})
+ lopen
+ let w:qf_toc = bufname
+ endfunction
+
+ nnoremap <silent><buffer> gO :call <sid>show_toc()<cr>
+endif
+
let &cpo = s:cpo_save
unlet s:cpo_save
diff --git a/runtime/ftplugin/hostconf.vim b/runtime/ftplugin/hostconf.vim
index 557fd82c53..563bb8f5f1 100644
--- a/runtime/ftplugin/hostconf.vim
+++ b/runtime/ftplugin/hostconf.vim
@@ -1,6 +1,6 @@
" Vim filetype plugin file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2007-12-04
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2007-12-04
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/hostsaccess.vim b/runtime/ftplugin/hostsaccess.vim
index a2f55acb8a..d32485f162 100644
--- a/runtime/ftplugin/hostsaccess.vim
+++ b/runtime/ftplugin/hostsaccess.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: hosts_access(5) control file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: hosts_access(5) control file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/indent.vim b/runtime/ftplugin/indent.vim
index 0e195b0615..e6d928a073 100644
--- a/runtime/ftplugin/indent.vim
+++ b/runtime/ftplugin/indent.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: indent(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: indent(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/ld.vim b/runtime/ftplugin/ld.vim
index 31ce5c9ffd..1ab80d533c 100644
--- a/runtime/ftplugin/ld.vim
+++ b/runtime/ftplugin/ld.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: ld(1) script
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: ld(1) script
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/lftp.vim b/runtime/ftplugin/lftp.vim
index 9e2eeb52cb..5bc496c884 100644
--- a/runtime/ftplugin/lftp.vim
+++ b/runtime/ftplugin/lftp.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: lftp(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: lftp(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/libao.vim b/runtime/ftplugin/libao.vim
index 38bd3de92c..0ce5831b28 100644
--- a/runtime/ftplugin/libao.vim
+++ b/runtime/ftplugin/libao.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: libao.conf(5) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: libao.conf(5) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/limits.vim b/runtime/ftplugin/limits.vim
index cd5b7b5c93..90a10a6c22 100644
--- a/runtime/ftplugin/limits.vim
+++ b/runtime/ftplugin/limits.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: limits(5) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: limits(5) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/loginaccess.vim b/runtime/ftplugin/loginaccess.vim
index 7c44f972f2..d27114a7ae 100644
--- a/runtime/ftplugin/loginaccess.vim
+++ b/runtime/ftplugin/loginaccess.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: login.access(5) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: login.access(5) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/logindefs.vim b/runtime/ftplugin/logindefs.vim
index 668d08a002..7873396808 100644
--- a/runtime/ftplugin/logindefs.vim
+++ b/runtime/ftplugin/logindefs.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: login.defs(5) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: login.defs(5) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/m4.vim b/runtime/ftplugin/m4.vim
index 0ffe0ac77e..3745507321 100644
--- a/runtime/ftplugin/m4.vim
+++ b/runtime/ftplugin/m4.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: m4
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: m4
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/mailaliases.vim b/runtime/ftplugin/mailaliases.vim
index 1b10c86ae3..0ae4b452d0 100644
--- a/runtime/ftplugin/mailaliases.vim
+++ b/runtime/ftplugin/mailaliases.vim
@@ -1,6 +1,6 @@
" Vim filetype plugin file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/mailcap.vim b/runtime/ftplugin/mailcap.vim
index f4c8c232d8..ba8573c722 100644
--- a/runtime/ftplugin/mailcap.vim
+++ b/runtime/ftplugin/mailcap.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: Mailcap configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: Mailcap configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/man.vim b/runtime/ftplugin/man.vim
index 5d83886f56..e36dfc5a90 100644
--- a/runtime/ftplugin/man.vim
+++ b/runtime/ftplugin/man.vim
@@ -31,13 +31,14 @@ setlocal nolist
setlocal nofoldenable
if !exists('g:no_plugin_maps') && !exists('g:no_man_maps')
+ nnoremap <silent> <buffer> gO :call man#show_toc()<CR>
nnoremap <silent> <buffer> <C-]> :Man<CR>
nnoremap <silent> <buffer> K :Man<CR>
nnoremap <silent> <buffer> <C-T> :call man#pop_tag()<CR>
if s:pager
- nnoremap <silent> <buffer> <nowait> q :q<CR>
+ nnoremap <silent> <buffer> <nowait> q :lclose<CR>:q<CR>
else
- nnoremap <silent> <buffer> <nowait> q <C-W>c
+ nnoremap <silent> <buffer> <nowait> q :lclose<CR><C-W>c
endif
endif
diff --git a/runtime/ftplugin/manconf.vim b/runtime/ftplugin/manconf.vim
index a249a97507..aa85408cef 100644
--- a/runtime/ftplugin/manconf.vim
+++ b/runtime/ftplugin/manconf.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: man.conf(5) - man configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: man.conf(5) - man configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/markdown.vim b/runtime/ftplugin/markdown.vim
index 5d6ebecd8c..277ba94e8b 100644
--- a/runtime/ftplugin/markdown.vim
+++ b/runtime/ftplugin/markdown.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: Markdown
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
-" Last Change: 2013 May 30
+" Last Change: 2016 Aug 29
if exists("b:did_ftplugin")
finish
@@ -11,7 +11,7 @@ runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=>\ %s
setlocal formatoptions+=tcqln formatoptions-=r formatoptions-=o
-setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+
+setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+\\\|^\\[^\\ze[^\\]]\\+\\]:
if exists('b:undo_ftplugin')
let b:undo_ftplugin .= "|setl cms< com< fo< flp<"
@@ -19,4 +19,32 @@ else
let b:undo_ftplugin = "setl cms< com< fo< flp<"
endif
+function! MarkdownFold()
+ let line = getline(v:lnum)
+
+ " Regular headers
+ let depth = match(line, '\(^#\+\)\@<=\( .*$\)\@=')
+ if depth > 0
+ return ">" . depth
+ endif
+
+ " Setext style headings
+ let nextline = getline(v:lnum + 1)
+ if (line =~ '^.\+$') && (nextline =~ '^=\+$')
+ return ">1"
+ endif
+
+ if (line =~ '^.\+$') && (nextline =~ '^-\+$')
+ return ">2"
+ endif
+
+ return "="
+endfunction
+
+if has("folding") && exists("g:markdown_folding")
+ setlocal foldexpr=MarkdownFold()
+ setlocal foldmethod=expr
+ let b:undo_ftplugin .= " foldexpr< foldmethod<"
+endif
+
" vim:set sw=2:
diff --git a/runtime/ftplugin/mf.vim b/runtime/ftplugin/mf.vim
index fd1d3ce646..7c9a8a1283 100644
--- a/runtime/ftplugin/mf.vim
+++ b/runtime/ftplugin/mf.vim
@@ -1,7 +1,8 @@
" Vim filetype plugin file
-" Language: MetaFont
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: METAFONT
+" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
+" Former Maintainers: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2016 Oct 2
if exists("b:did_ftplugin")
finish
@@ -11,9 +12,59 @@ let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
-let b:undo_ftplugin = "setl com< cms< fo<"
+let b:undo_ftplugin = "setl com< cms< fo< sua< inc< def< ofu<"
+ \ . "| unlet! b:match_ignorecase b:match_words b:match_skip"
-setlocal comments=:% commentstring=%\ %s formatoptions-=t formatoptions+=croql
+setlocal comments=:% commentstring=%\ %s formatoptions-=t formatoptions+=cjroql2
+setlocal suffixesadd=.mf
+let &l:include = '\<input\>'
+let &l:define = '\<\%(let\|newinternal\|interim\|def\|vardef\)\>\|\<\%(primary\|secondary\|tertiary\)def\>\s*[^ .]\+'
+setlocal omnifunc=syntaxcomplete#Complete
+let g:omni_syntax_group_include_mf = 'mf\w\+'
+let g:omni_syntax_group_exclude_mf = 'mfTodoComment'
+
+let s:mp_regex = {
+ \ 'beginsection' : '^\s*\%(\%(\|var\|primary\|secondary\|tertiary\)def\|beginchar\|beginlogochar\)\>',
+ \ 'endsection' : '^\s*\%(enddef\|endchar\)\>',
+ \ 'beginblock' : '^\s*\%(begingroup\|if\|for\%(\|suffixes\|ever\)\)\>',
+ \ 'endblock' : '^\s*\%(endgroup\|fi\|endfor\)\>'
+ \ }
+
+function! s:move_around(count, what, flags, visual)
+ if a:visual
+ exe "normal! gv"
+ endif
+ call search(s:mp_regex[a:what], a:flags.'s') " 's' sets previous context mark
+ call map(range(2, a:count), 'search(s:mp_regex[a:what], a:flags)')
+endfunction
+
+
+" Move around macros.
+nnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:false) <CR>
+vnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:true) <CR>
+nnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:false) <CR>
+vnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:true) <CR>
+nnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:false) <CR>
+vnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:true) <CR>
+nnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:false) <CR>
+vnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:true) <CR>
+nnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:false) <CR>
+vnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:true) <CR>
+nnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:false) <CR>
+vnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:true) <CR>
+
+if exists("loaded_matchit")
+ let b:match_ignorecase = 0
+ let b:match_words =
+ \ '\<if\>:\<else\%[if]\>:\<fi\>,' .
+ \ '\<for\%(\|suffixes\|ever\)\>:\<exit\%(if\|unless\)\>:\<endfor\>,' .
+ \ '\<\%(\|var\|primary\|secondary\|tertiary\)def\>:\<enddef\>,' .
+ \ '\<begingroup\>:\<endgroup\>,' .
+ \ '\<begin\%(logo\)\?char\>:\<endchar\>'
+ " Ignore comments and strings
+ let b:match_skip = 'synIDattr(synID(line("."), col("."), 1), "name")
+ \ =~# "mf\\(Comment\\|String\\)$"'
+endif
let &cpo = s:cpo_save
unlet s:cpo_save
diff --git a/runtime/ftplugin/modconf.vim b/runtime/ftplugin/modconf.vim
index f200e9f61e..c8e76b538b 100644
--- a/runtime/ftplugin/modconf.vim
+++ b/runtime/ftplugin/modconf.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: modules.conf(5) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: modules.conf(5) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/mp.vim b/runtime/ftplugin/mp.vim
index 316fa9bb64..3a0a3d0298 100644
--- a/runtime/ftplugin/mp.vim
+++ b/runtime/ftplugin/mp.vim
@@ -1,7 +1,8 @@
" Vim filetype plugin file
-" Language: MetaPost
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: MetaPost
+" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
+" Former Maintainers: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2016 Oct 2
if exists("b:did_ftplugin")
finish
@@ -11,9 +12,16 @@ let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
-let b:undo_ftplugin = "setl com< cms< fo<"
+let b:undo_ftplugin = "setl com< cms< fo< sua< inc< def< ofu<"
+ \ . "| unlet! b:match_ignorecase b:match_words b:match_skip"
-setlocal comments=:% commentstring=%\ %s formatoptions-=t formatoptions+=croql
+setlocal comments=:% commentstring=%\ %s formatoptions-=t formatoptions+=cjroql2
+setlocal suffixesadd=.mp,.mpiv
+let &l:include = '\<\%(input\|loadmodule\)\>' " loadmodule is in MetaFun
+let &l:define = '\<\%(let\|newinternal\|interim\|def\|vardef\)\>\|\<\%(primary\|secondary\|tertiary\)def\>\s*[^ .]\+'
+setlocal omnifunc=syntaxcomplete#Complete
+let g:omni_syntax_group_include_mp = 'mf\w\+,mp\w\+'
+let g:omni_syntax_group_exclude_mp = 'mfTodoComment'
if exists(":FixBeginfigs") != 2
command -nargs=0 FixBeginfigs call s:fix_beginfigs()
@@ -24,5 +32,51 @@ if exists(":FixBeginfigs") != 2
endfunction
endif
+let s:mp_regex = {
+ \ 'beginsection' : '^\s*\%(\%(\|var\|primary\|secondary\|tertiary\)def\|begin\%(fig\|char\|logochar\|glyph\|graph\)\)\>',
+ \ 'endsection' : '^\s*\%(enddef\|end\%(fig\|char\|glyph\|graph\)\)\>',
+ \ 'beginblock' : '^\s*\%(begingroup\|if\|for\%(\|suffixes\|ever\)\)\>',
+ \ 'endblock' : '^\s*\%(endgroup\|fi\|endfor\)\>'
+ \ }
+
+function! s:move_around(count, what, flags, visual)
+ if a:visual
+ exe "normal! gv"
+ endif
+ call search(s:mp_regex[a:what], a:flags.'s') " 's' sets previous context mark
+ call map(range(2, a:count), 'search(s:mp_regex[a:what], a:flags)')
+endfunction
+
+
+" Move around macros.
+nnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:false) <CR>
+vnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:true) <CR>
+nnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:false) <CR>
+vnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:true) <CR>
+nnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:false) <CR>
+vnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:true) <CR>
+nnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:false) <CR>
+vnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:true) <CR>
+nnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:false) <CR>
+vnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:true) <CR>
+nnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:false) <CR>
+vnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:true) <CR>
+
+if exists("loaded_matchit")
+ let b:match_ignorecase = 0
+ let b:match_words =
+ \ '\<if\>:\<else\%[if]\>:\<fi\>,' .
+ \ '\<for\%(\|suffixes\|ever\)\>:\<exit\%(if\|unless\)\>:\<endfor\>,' .
+ \ '\<\%(\|var\|primary\|secondary\|tertiary\)def\>:\<enddef\>,' .
+ \ '\<beginfig\>:\<endfig\>,' .
+ \ '\<begingroup\>:\<endgroup\>,' .
+ \ '\<begin\%(logo\)\?char\>:\<endchar\>,' .
+ \ '\<beginglyph\>:\<endglyph\>,' .
+ \ '\<begingraph\>:\<endgraph\>'
+ " Ignore comments and strings
+ let b:match_skip = 'synIDattr(synID(line("."), col("."), 1), "name")
+ \ =~# "^mf\\%(Comment\\|String\\|\\)$\\|^mpTeXinsert$"'
+endif
+
let &cpo = s:cpo_save
unlet s:cpo_save
diff --git a/runtime/ftplugin/mplayerconf.vim b/runtime/ftplugin/mplayerconf.vim
index 65034a8152..86547609c3 100644
--- a/runtime/ftplugin/mplayerconf.vim
+++ b/runtime/ftplugin/mplayerconf.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: mplayer(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: mplayer(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/muttrc.vim b/runtime/ftplugin/muttrc.vim
index a109e5ddda..c8ad0f2ec5 100644
--- a/runtime/ftplugin/muttrc.vim
+++ b/runtime/ftplugin/muttrc.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: mutt RC File
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: mutt RC File
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/nanorc.vim b/runtime/ftplugin/nanorc.vim
index be20d12503..e45ebac0eb 100644
--- a/runtime/ftplugin/nanorc.vim
+++ b/runtime/ftplugin/nanorc.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: nanorc(5) - GNU nano configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: nanorc(5) - GNU nano configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/neomuttrc.vim b/runtime/ftplugin/neomuttrc.vim
new file mode 100644
index 0000000000..86f1cded63
--- /dev/null
+++ b/runtime/ftplugin/neomuttrc.vim
@@ -0,0 +1,23 @@
+" Vim filetype plugin file
+" Language: NeoMutt RC File
+" Previous Maintainer: Guillaume Brogi <gui-gui@netcourrier.com>
+" Latest Revision: 2017-09-17
+" Original version copied from ftplugin/muttrc.vim
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< inc< fo<"
+
+setlocal comments=:# commentstring=#\ %s
+setlocal formatoptions-=t formatoptions+=croql
+
+let &l:include = '^\s*source\>'
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/netrc.vim b/runtime/ftplugin/netrc.vim
index 105a1d3a8e..02ee327295 100644
--- a/runtime/ftplugin/netrc.vim
+++ b/runtime/ftplugin/netrc.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: netrc(5) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: netrc(5) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/nsis.vim b/runtime/ftplugin/nsis.vim
index acc26208c4..949691bf6e 100644
--- a/runtime/ftplugin/nsis.vim
+++ b/runtime/ftplugin/nsis.vim
@@ -1,7 +1,7 @@
" Vim ftplugin file
-" Language: NSIS script
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: NSIS script
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
let s:cpo_save = &cpo
set cpo&vim
diff --git a/runtime/ftplugin/pamconf.vim b/runtime/ftplugin/pamconf.vim
index 96d96461e2..f0a693e3a5 100644
--- a/runtime/ftplugin/pamconf.vim
+++ b/runtime/ftplugin/pamconf.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: pam(8) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: pam(8) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/passwd.vim b/runtime/ftplugin/passwd.vim
index 5088c43359..f6e0f50342 100644
--- a/runtime/ftplugin/passwd.vim
+++ b/runtime/ftplugin/passwd.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: passwd(5) password file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: passwd(5) password file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/perl.vim b/runtime/ftplugin/perl.vim
index 741cfae047..e7acf654f3 100644
--- a/runtime/ftplugin/perl.vim
+++ b/runtime/ftplugin/perl.vim
@@ -3,7 +3,7 @@
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
-" Last Change: 2013-07-21
+" Last Change: 2015-02-09
if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1
@@ -33,14 +33,14 @@ endif
setlocal include=\\<\\(use\\\|require\\)\\>
setlocal includeexpr=substitute(substitute(substitute(v:fname,'::','/','g'),'->\*','',''),'$','.pm','')
setlocal define=[^A-Za-z_]
+setlocal iskeyword+=:
" The following line changes a global variable but is necessary to make
-" gf and similar commands work. The change to iskeyword was incorrect.
-" Thanks to Andrew Pimlott for pointing out the problem. If this causes a
-" problem for you, add an after/ftplugin/perl.vim file that contains
+" gf and similar commands work. Thanks to Andrew Pimlott for pointing
+" out the problem. If this causes a problem for you, add an
+" after/ftplugin/perl.vim file that contains
" set isfname-=:
set isfname+=:
-set iskeyword+=:
" Set this once, globally.
if !exists("perlpath")
@@ -77,11 +77,12 @@ endif
"---------------------------------------------
" Undo the stuff we changed.
-let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isf< kp< path<" .
+let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isk< isf< kp< path<" .
\ " | unlet! b:browsefilter"
" proper matching for matchit plugin
let b:match_skip = 's:comment\|string\|perlQQ\|perlShellCommand\|perlHereDoc\|perlSubstitution\|perlTranslation\|perlMatch\|perlFormatField'
+let b:match_words = '\<if\>:\<elsif\>:\<else\>'
" Restore the saved compatibility options.
let &cpo = s:save_cpo
diff --git a/runtime/ftplugin/pinfo.vim b/runtime/ftplugin/pinfo.vim
index 6ec1f87b9e..50473a8114 100644
--- a/runtime/ftplugin/pinfo.vim
+++ b/runtime/ftplugin/pinfo.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: pinfo(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: pinfo(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/procmail.vim b/runtime/ftplugin/procmail.vim
index cc2ceede19..d64f19274d 100644
--- a/runtime/ftplugin/procmail.vim
+++ b/runtime/ftplugin/procmail.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: procmail(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: procmail(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/prolog.vim b/runtime/ftplugin/prolog.vim
index caeb574c5a..f4e7d135b5 100644
--- a/runtime/ftplugin/prolog.vim
+++ b/runtime/ftplugin/prolog.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: Prolog
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: Prolog
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/protocols.vim b/runtime/ftplugin/protocols.vim
index 2486ff9370..83856ce7ba 100644
--- a/runtime/ftplugin/protocols.vim
+++ b/runtime/ftplugin/protocols.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: protocols(5) - Internet protocols definition file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: protocols(5) - Internet protocols definition file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/python.vim b/runtime/ftplugin/python.vim
index df5dab8afc..d52a338b5b 100644
--- a/runtime/ftplugin/python.vim
+++ b/runtime/ftplugin/python.vim
@@ -1,9 +1,10 @@
" Vim filetype plugin file
" Language: python
-" Maintainer: James Sully <sullyj3@gmail.com>
+" Maintainer: Tom Picton <tom@tompicton.co.uk>
+" Previous Maintainer: James Sully <sullyj3@gmail.com>
" Previous Maintainer: Johannes Zellner <johannes@zellner.org>
-" Last Change: Wed, 29 June 2016
-" https://github.com/sullyj3/vim-ftplugin-python
+" Last Change: Fri, 20 October 2017
+" https://github.com/tpict/vim-ftplugin-python
if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1
@@ -22,23 +23,53 @@ setlocal omnifunc=pythoncomplete#Complete
set wildignore+=*.pyc
-nnoremap <silent> <buffer> ]] :call <SID>Python_jump('n', '\v%$\|^(class\|def)>', 'W')<cr>
-nnoremap <silent> <buffer> [[ :call <SID>Python_jump('n', '\v^(class\|def)>', 'Wb')<cr>
-nnoremap <silent> <buffer> ]m :call <SID>Python_jump('n', '\v%$\|^\s*(class\|def)>', 'W')<cr>
-nnoremap <silent> <buffer> [m :call <SID>Python_jump('n', '\v^\s*(class\|def)>', 'Wb')<cr>
+let b:next_toplevel='\v%$\|^(class\|def\|async def)>'
+let b:prev_toplevel='\v^(class\|def\|async def)>'
+let b:next_endtoplevel='\v%$\|\S.*\n+(def\|class)'
+let b:prev_endtoplevel='\v\S.*\n+(def\|class)'
+let b:next='\v%$\|^\s*(class\|def\|async def)>'
+let b:prev='\v^\s*(class\|def\|async def)>'
+let b:next_end='\v\S\n*(%$\|^\s*(class\|def\|async def)\|^\S)'
+let b:prev_end='\v\S\n*(^\s*(class\|def\|async def)\|^\S)'
-xnoremap <silent> <buffer> ]] :call <SID>Python_jump('x', '\v%$\|^(class\|def)>', 'W')<cr>
-xnoremap <silent> <buffer> [[ :call <SID>Python_jump('x', '\v^(class\|def)>', 'Wb')<cr>
-xnoremap <silent> <buffer> ]m :call <SID>Python_jump('x', '\v%$\|^\s*(class\|def)>', 'W')<cr>
-xnoremap <silent> <buffer> [m :call <SID>Python_jump('x', '\v^\s*(class\|def)>', 'Wb')<cr>
+execute "nnoremap <silent> <buffer> ]] :call <SID>Python_jump('n', '". b:next_toplevel."', 'W')<cr>"
+execute "nnoremap <silent> <buffer> [[ :call <SID>Python_jump('n', '". b:prev_toplevel."', 'Wb')<cr>"
+execute "nnoremap <silent> <buffer> ][ :call <SID>Python_jump('n', '". b:next_endtoplevel."', 'W', 0)<cr>"
+execute "nnoremap <silent> <buffer> [] :call <SID>Python_jump('n', '". b:prev_endtoplevel."', 'Wb', 0)<cr>"
+execute "nnoremap <silent> <buffer> ]m :call <SID>Python_jump('n', '". b:next."', 'W')<cr>"
+execute "nnoremap <silent> <buffer> [m :call <SID>Python_jump('n', '". b:prev."', 'Wb')<cr>"
+execute "nnoremap <silent> <buffer> ]M :call <SID>Python_jump('n', '". b:next_end."', 'W', 0)<cr>"
+execute "nnoremap <silent> <buffer> [M :call <SID>Python_jump('n', '". b:prev_end."', 'Wb', 0)<cr>"
+
+execute "onoremap <silent> <buffer> ]] :call <SID>Python_jump('o', '". b:next_toplevel."', 'W')<cr>"
+execute "onoremap <silent> <buffer> [[ :call <SID>Python_jump('o', '". b:prev_toplevel."', 'Wb')<cr>"
+execute "onoremap <silent> <buffer> ][ :call <SID>Python_jump('n', '". b:next_endtoplevel."', 'W', 0)<cr>"
+execute "onoremap <silent> <buffer> [] :call <SID>Python_jump('n', '". b:prev_endtoplevel."', 'Wb', 0)<cr>"
+execute "onoremap <silent> <buffer> ]m :call <SID>Python_jump('o', '". b:next."', 'W')<cr>"
+execute "onoremap <silent> <buffer> [m :call <SID>Python_jump('o', '". b:prev."', 'Wb')<cr>"
+execute "onoremap <silent> <buffer> ]M :call <SID>Python_jump('o', '". b:next_end."', 'W', 0)<cr>"
+execute "onoremap <silent> <buffer> [M :call <SID>Python_jump('o', '". b:prev_end."', 'Wb', 0)<cr>"
+
+execute "xnoremap <silent> <buffer> ]] :call <SID>Python_jump('x', '". b:next_toplevel."', 'W')<cr>"
+execute "xnoremap <silent> <buffer> [[ :call <SID>Python_jump('x', '". b:prev_toplevel."', 'Wb')<cr>"
+execute "xnoremap <silent> <buffer> ][ :call <SID>Python_jump('n', '". b:next_endtoplevel."', 'W', 0)<cr>"
+execute "xnoremap <silent> <buffer> [] :call <SID>Python_jump('n', '". b:prev_endtoplevel."', 'Wb', 0)<cr>"
+execute "xnoremap <silent> <buffer> ]m :call <SID>Python_jump('x', '". b:next."', 'W')<cr>"
+execute "xnoremap <silent> <buffer> [m :call <SID>Python_jump('x', '". b:prev."', 'Wb')<cr>"
+execute "xnoremap <silent> <buffer> ]M :call <SID>Python_jump('x', '". b:next_end."', 'W', 0)<cr>"
+execute "xnoremap <silent> <buffer> [M :call <SID>Python_jump('x', '". b:prev_end."', 'Wb', 0)<cr>"
if !exists('*<SID>Python_jump')
- fun! <SID>Python_jump(mode, motion, flags) range
+ fun! <SID>Python_jump(mode, motion, flags, ...) range
+ let l:startofline = (a:0 >= 1) ? a:1 : 1
+
if a:mode == 'x'
normal! gv
endif
- normal! 0
+ if l:startofline == 1
+ normal! 0
+ endif
let cnt = v:count1
mark '
@@ -47,7 +78,9 @@ if !exists('*<SID>Python_jump')
let cnt = cnt - 1
endwhile
- normal! ^
+ if l:startofline == 1
+ normal! ^
+ endif
endfun
endif
@@ -56,8 +89,10 @@ if has("browsefilter") && !exists("b:browsefilter")
\ "All Files (*.*)\t*.*\n"
endif
-" As suggested by PEP8.
-setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
+if !exists("g:python_recommended_style") || g:python_recommended_style != 0
+ " As suggested by PEP8.
+ setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
+endif
" First time: try finding "pydoc".
if !exists('g:pydoc_executable')
diff --git a/runtime/ftplugin/qf.vim b/runtime/ftplugin/qf.vim
index 98c8f932bc..80e86c4d16 100644
--- a/runtime/ftplugin/qf.vim
+++ b/runtime/ftplugin/qf.vim
@@ -14,3 +14,26 @@ let b:undo_ftplugin = "set stl<"
" Display the command that produced the list in the quickfix window:
setlocal stl=%t%{exists('w:quickfix_title')?\ '\ '.w:quickfix_title\ :\ ''}\ %=%-15(%l,%c%V%)\ %P
+
+function! s:setup_toc() abort
+ if get(w:, 'quickfix_title') !~# '\<TOC$' || &syntax != 'qf'
+ return
+ endif
+
+ let list = getloclist(0)
+ if empty(list)
+ return
+ endif
+
+ let bufnr = list[0].bufnr
+ setlocal modifiable
+ silent %delete _
+ call setline(1, map(list, 'v:val.text'))
+ setlocal nomodifiable nomodified
+ let &syntax = getbufvar(bufnr, '&syntax')
+endfunction
+
+augroup qf_toc
+ autocmd!
+ autocmd Syntax <buffer> call s:setup_toc()
+augroup END
diff --git a/runtime/ftplugin/quake.vim b/runtime/ftplugin/quake.vim
index f62693b11a..c3a2e52347 100644
--- a/runtime/ftplugin/quake.vim
+++ b/runtime/ftplugin/quake.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: Quake[1-3] configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: Quake[1-3] configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/racc.vim b/runtime/ftplugin/racc.vim
index 7ff22f8937..0cd852c365 100644
--- a/runtime/ftplugin/racc.vim
+++ b/runtime/ftplugin/racc.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: Racc input file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: Racc input file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/readline.vim b/runtime/ftplugin/readline.vim
index 0a4dbb5c03..e9ef93ec7f 100644
--- a/runtime/ftplugin/readline.vim
+++ b/runtime/ftplugin/readline.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: readline(3) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: readline(3) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/rmd.vim b/runtime/ftplugin/rmd.vim
index ec64a07675..8c092ac13f 100644
--- a/runtime/ftplugin/rmd.vim
+++ b/runtime/ftplugin/rmd.vim
@@ -1,9 +1,9 @@
" Vim filetype plugin file
-" Language: R help file
+" Language: R Markdown file
" Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com>
" Homepage: https://github.com/jalvesaq/R-Vim-runtime
-" Last Change: Tue Apr 07, 2015 04:37PM
-" Original work by Alex Zvoleff (adjusted for rmd by Michel Kuhlmann)
+" Last Change: Mon Jun 06, 2016 09:41PM
+" Original work by Alex Zvoleff (adjusted from R help for rmd by Michel Kuhlmann)
" Only do this when not yet done for this buffer
if exists("b:did_ftplugin")
@@ -12,6 +12,16 @@ endif
runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
+" Nvim-R plugin needs this
+if exists("*CompleteR")
+ if &omnifunc == "CompleteR"
+ let b:rplugin_nonr_omnifunc = ""
+ else
+ let b:rplugin_nonr_omnifunc = &omnifunc
+ endif
+ set omnifunc=CompleteR
+endif
+
setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=>\ %s
setlocal formatoptions+=tcqln
setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^\\s*[-*+]\\s\\+
diff --git a/runtime/ftplugin/rnc.vim b/runtime/ftplugin/rnc.vim
index 2b8fd50d8d..90aa111c67 100644
--- a/runtime/ftplugin/rnc.vim
+++ b/runtime/ftplugin/rnc.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: Relax NG compact syntax
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: Relax NG compact syntax
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/rst.vim b/runtime/ftplugin/rst.vim
index b871cf1486..e61213e7a5 100644
--- a/runtime/ftplugin/rst.vim
+++ b/runtime/ftplugin/rst.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: reStructuredText documentation format
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: reStructuredText documentation format
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/ruby.vim b/runtime/ftplugin/ruby.vim
index 9630a940ab..84fb9930a4 100644
--- a/runtime/ftplugin/ruby.vim
+++ b/runtime/ftplugin/ruby.vim
@@ -28,12 +28,13 @@ if exists("loaded_matchit") && !exists("b:match_words")
\ ':' .
\ '\<\%(else\|elsif\|ensure\|when\|rescue\|break\|redo\|next\|retry\)\>' .
\ ':' .
- \ '\<end\>' .
+ \ '\%(^\|[^.\:@$]\)\@<=\<end\:\@!\>' .
\ ',{:},\[:\],(:)'
let b:match_skip =
\ "synIDattr(synID(line('.'),col('.'),0),'name') =~ '" .
\ "\\<ruby\\%(String\\|StringDelimiter\\|ASCIICode\\|Escape\\|" .
+ \ "Regexp\\|RegexpDelimiter\\|" .
\ "Interpolation\\|NoInterpolation\\|Comment\\|Documentation\\|" .
\ "ConditionalModifier\\|RepeatModifier\\|OptionalDo\\|" .
\ "Function\\|BlockArgument\\|KeywordAsMethod\\|ClassVariable\\|" .
@@ -43,7 +44,7 @@ endif
setlocal formatoptions-=t formatoptions+=croql
setlocal include=^\\s*\\<\\(load\\>\\\|require\\>\\\|autoload\\s*:\\=[\"']\\=\\h\\w*[\"']\\=,\\)
-setlocal includeexpr=substitute(substitute(v:fname,'::','/','g'),'$','.rb','')
+setlocal includeexpr=substitute(substitute(v:fname,'::','/','g'),'\%(\.rb\)\=$','.rb','')
setlocal suffixesadd=.rb
if exists("&ofu") && has("ruby")
@@ -66,32 +67,32 @@ if !exists('g:ruby_version_paths')
let g:ruby_version_paths = {}
endif
-function! s:query_path(root)
+function! s:query_path(root) abort
let code = "print $:.join %q{,}"
- if &shell =~# 'sh' && $PATH !~# '\s'
- let prefix = 'env PATH='.$PATH.' '
+ if &shell =~# 'sh'
+ let prefix = 'env PATH='.shellescape($PATH).' '
else
let prefix = ''
endif
if &shellxquote == "'"
- let path_check = prefix.'ruby -e "' . code . '"'
+ let path_check = prefix.'ruby --disable-gems -e "' . code . '"'
else
- let path_check = prefix."ruby -e '" . code . "'"
+ let path_check = prefix."ruby --disable-gems -e '" . code . "'"
endif
let cd = haslocaldir() ? 'lcd' : 'cd'
- let cwd = getcwd()
+ let cwd = fnameescape(getcwd())
try
exe cd fnameescape(a:root)
let path = split(system(path_check),',')
- exe cd fnameescape(cwd)
+ exe cd cwd
return path
finally
- exe cd fnameescape(cwd)
+ exe cd cwd
endtry
endfunction
-function! s:build_path(path)
+function! s:build_path(path) abort
let path = join(map(copy(a:path), 'v:val ==# "." ? "" : v:val'), ',')
if &g:path !~# '\v^\.%(,/%(usr|emx)/include)=,,$'
let path = substitute(&g:path,',,$',',','') . ',' . path
@@ -101,7 +102,7 @@ endfunction
if !exists('b:ruby_version') && !exists('g:ruby_path') && isdirectory(expand('%:p:h'))
let s:version_file = findfile('.ruby-version', '.;')
- if !empty(s:version_file)
+ if !empty(s:version_file) && filereadable(s:version_file)
let b:ruby_version = get(readfile(s:version_file, '', 1), '')
if !has_key(g:ruby_version_paths, b:ruby_version)
let g:ruby_version_paths[b:ruby_version] = s:query_path(fnamemodify(s:version_file, ':p:h'))
@@ -135,7 +136,7 @@ if exists('s:ruby_paths') && stridx(&l:tags, join(map(copy(s:ruby_paths),'v:val.
let &l:tags = &tags . ',' . join(map(copy(s:ruby_paths),'v:val."/tags"'),',')
endif
-if has("gui_win32") && !exists("b:browsefilter")
+if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Ruby Source Files (*.rb)\t*.rb\n" .
\ "All Files (*.*)\t*.*\n"
endif
@@ -145,7 +146,22 @@ let b:undo_ftplugin = "setl fo< inc< inex< sua< def< com< cms< path< tags< kp<"
\."| if exists('&ofu') && has('ruby') | setl ofu< | endif"
\."| if has('balloon_eval') && exists('+bexpr') | setl bexpr< | endif"
+function! s:map(mode, flags, map) abort
+ let from = matchstr(a:map, '\S\+')
+ if empty(mapcheck(from, a:mode))
+ exe a:mode.'map' '<buffer>'.(a:0 ? a:1 : '') a:map
+ let b:undo_ftplugin .= '|sil! '.a:mode.'unmap <buffer> '.from
+ endif
+endfunction
+
+cmap <buffer><script><expr> <Plug><cword> substitute(RubyCursorIdentifier(),'^$',"\022\027",'')
+cmap <buffer><script><expr> <Plug><cfile> substitute(RubyCursorFile(),'^$',"\022\006",'')
+let b:undo_ftplugin .= "| sil! cunmap <buffer> <Plug><cword>| sil! cunmap <buffer> <Plug><cfile>"
+
if !exists("g:no_plugin_maps") && !exists("g:no_ruby_maps")
+ nmap <buffer><script> <SID>: :<C-U>
+ nmap <buffer><script> <SID>c: :<C-U><C-R>=v:count ? v:count : ''<CR>
+
nnoremap <silent> <buffer> [m :<C-U>call <SID>searchsyn('\<def\>','rubyDefine','b','n')<CR>
nnoremap <silent> <buffer> ]m :<C-U>call <SID>searchsyn('\<def\>','rubyDefine','','n')<CR>
nnoremap <silent> <buffer> [M :<C-U>call <SID>searchsyn('\<end\>','rubyDefine','b','n')<CR>
@@ -168,7 +184,7 @@ if !exists("g:no_plugin_maps") && !exists("g:no_ruby_maps")
\."| sil! exe 'unmap <buffer> [[' | sil! exe 'unmap <buffer> ]]' | sil! exe 'unmap <buffer> []' | sil! exe 'unmap <buffer> ]['"
\."| sil! exe 'unmap <buffer> [m' | sil! exe 'unmap <buffer> ]m' | sil! exe 'unmap <buffer> [M' | sil! exe 'unmap <buffer> ]M'"
- if maparg('im','n') == ''
+ if maparg('im','x') == '' && maparg('im','o') == '' && maparg('am','x') == '' && maparg('am','o') == ''
onoremap <silent> <buffer> im :<C-U>call <SID>wrap_i('[m',']M')<CR>
onoremap <silent> <buffer> am :<C-U>call <SID>wrap_a('[m',']M')<CR>
xnoremap <silent> <buffer> im :<C-U>call <SID>wrap_i('[m',']M')<CR>
@@ -178,7 +194,7 @@ if !exists("g:no_plugin_maps") && !exists("g:no_ruby_maps")
\."| sil! exe 'xunmap <buffer> im' | sil! exe 'xunmap <buffer> am'"
endif
- if maparg('iM','n') == ''
+ if maparg('iM','x') == '' && maparg('iM','o') == '' && maparg('aM','x') == '' && maparg('aM','o') == ''
onoremap <silent> <buffer> iM :<C-U>call <SID>wrap_i('[[','][')<CR>
onoremap <silent> <buffer> aM :<C-U>call <SID>wrap_a('[[','][')<CR>
xnoremap <silent> <buffer> iM :<C-U>call <SID>wrap_i('[[','][')<CR>
@@ -188,33 +204,24 @@ if !exists("g:no_plugin_maps") && !exists("g:no_ruby_maps")
\."| sil! exe 'xunmap <buffer> iM' | sil! exe 'xunmap <buffer> aM'"
endif
- if maparg("\<C-]>",'n') == ''
- nnoremap <silent> <buffer> <C-]> :<C-U>exe v:count1."tag <C-R>=RubyCursorIdentifier()<CR>"<CR>
- nnoremap <silent> <buffer> g<C-]> :<C-U>exe "tjump <C-R>=RubyCursorIdentifier()<CR>"<CR>
- nnoremap <silent> <buffer> g] :<C-U>exe "tselect <C-R>=RubyCursorIdentifier()<CR>"<CR>
- nnoremap <silent> <buffer> <C-W>] :<C-U>exe v:count1."stag <C-R>=RubyCursorIdentifier()<CR>"<CR>
- nnoremap <silent> <buffer> <C-W><C-]> :<C-U>exe v:count1."stag <C-R>=RubyCursorIdentifier()<CR>"<CR>
- nnoremap <silent> <buffer> <C-W>g<C-]> :<C-U>exe "stjump <C-R>=RubyCursorIdentifier()<CR>"<CR>
- nnoremap <silent> <buffer> <C-W>g] :<C-U>exe "stselect <C-R>=RubyCursorIdentifier()<CR>"<CR>
- nnoremap <silent> <buffer> <C-W>} :<C-U>exe "ptag <C-R>=RubyCursorIdentifier()<CR>"<CR>
- nnoremap <silent> <buffer> <C-W>g} :<C-U>exe "ptjump <C-R>=RubyCursorIdentifier()<CR>"<CR>
- let b:undo_ftplugin = b:undo_ftplugin
- \."| sil! exe 'nunmap <buffer> <C-]>'| sil! exe 'nunmap <buffer> g<C-]>'| sil! exe 'nunmap <buffer> g]'"
- \."| sil! exe 'nunmap <buffer> <C-W>]'| sil! exe 'nunmap <buffer> <C-W><C-]>'"
- \."| sil! exe 'nunmap <buffer> <C-W>g<C-]>'| sil! exe 'nunmap <buffer> <C-W>g]'"
- \."| sil! exe 'nunmap <buffer> <C-W>}'| sil! exe 'nunmap <buffer> <C-W>g}'"
- endif
-
- if maparg("gf",'n') == ''
- " By using findfile() rather than gf's normal behavior, we prevent
- " erroneously editing a directory.
- nnoremap <silent> <buffer> gf :<C-U>exe <SID>gf(v:count1,"gf",'edit')<CR>
- nnoremap <silent> <buffer> <C-W>f :<C-U>exe <SID>gf(v:count1,"\<Lt>C-W>f",'split')<CR>
- nnoremap <silent> <buffer> <C-W><C-F> :<C-U>exe <SID>gf(v:count1,"\<Lt>C-W>\<Lt>C-F>",'split')<CR>
- nnoremap <silent> <buffer> <C-W>gf :<C-U>exe <SID>gf(v:count1,"\<Lt>C-W>gf",'tabedit')<CR>
- let b:undo_ftplugin = b:undo_ftplugin
- \."| sil! exe 'nunmap <buffer> gf' | sil! exe 'nunmap <buffer> <C-W>f' | sil! exe 'nunmap <buffer> <C-W><C-F>' | sil! exe 'nunmap <buffer> <C-W>gf'"
- endif
+ call s:map('c', '', '<C-R><C-W> <Plug><cword>')
+ call s:map('c', '', '<C-R><C-F> <Plug><cfile>')
+
+ cmap <buffer><script><expr> <SID>tagzv &foldopen =~# 'tag' ? '<Bar>norm! zv' : ''
+ call s:map('n', '<silent>', '<C-]> <SID>:exe v:count1."tag <Plug><cword>"<SID>tagzv<CR>')
+ call s:map('n', '<silent>', 'g<C-]> <SID>:exe "tjump <Plug><cword>"<SID>tagzv<CR>')
+ call s:map('n', '<silent>', 'g] <SID>:exe "tselect <Plug><cword>"<SID>tagzv<CR>')
+ call s:map('n', '<silent>', '<C-W>] <SID>:exe v:count1."stag <Plug><cword>"<SID>tagzv<CR>')
+ call s:map('n', '<silent>', '<C-W><C-]> <SID>:exe v:count1."stag <Plug><cword>"<SID>tagzv<CR>')
+ call s:map('n', '<silent>', '<C-W>g<C-]> <SID>:exe "stjump <Plug><cword>"<SID>tagzv<CR>')
+ call s:map('n', '<silent>', '<C-W>g] <SID>:exe "stselect <Plug><cword>"<SID>tagzv<CR>')
+ call s:map('n', '<silent>', '<C-W>} <SID>:exe v:count1."ptag <Plug><cword>"<CR>')
+ call s:map('n', '<silent>', '<C-W>g} <SID>:exe "ptjump <Plug><cword>"<CR>')
+
+ call s:map('n', '<silent>', 'gf <SID>c:find <Plug><cfile><CR>')
+ call s:map('n', '<silent>', '<C-W>f <SID>c:sfind <Plug><cfile><CR>')
+ call s:map('n', '<silent>', '<C-W><C-F> <SID>c:sfind <Plug><cfile><CR>')
+ call s:map('n', '<silent>', '<C-W>gf <SID>c:tabfind <Plug><cfile><CR>')
endif
let &cpo = s:cpo_save
@@ -225,7 +232,7 @@ if exists("g:did_ruby_ftplugin_functions")
endif
let g:did_ruby_ftplugin_functions = 1
-function! RubyBalloonexpr()
+function! RubyBalloonexpr() abort
if !exists('s:ri_found')
let s:ri_found = executable('ri')
endif
@@ -274,13 +281,13 @@ function! RubyBalloonexpr()
endif
endfunction
-function! s:searchsyn(pattern,syn,flags,mode)
+function! s:searchsyn(pattern, syn, flags, mode) abort
+ let cnt = v:count1
norm! m'
if a:mode ==# 'v'
norm! gv
endif
let i = 0
- let cnt = v:count ? v:count : 1
while i < cnt
let i = i + 1
let line = line('.')
@@ -296,11 +303,11 @@ function! s:searchsyn(pattern,syn,flags,mode)
endwhile
endfunction
-function! s:synname()
+function! s:synname() abort
return synIDattr(synID(line('.'),col('.'),0),'name')
endfunction
-function! s:wrap_i(back,forward)
+function! s:wrap_i(back,forward) abort
execute 'norm k'.a:forward
let line = line('.')
execute 'norm '.a:back
@@ -310,7 +317,7 @@ function! s:wrap_i(back,forward)
execute 'norm jV'.a:forward.'k'
endfunction
-function! s:wrap_a(back,forward)
+function! s:wrap_a(back,forward) abort
execute 'norm '.a:forward
if line('.') < line('$') && getline(line('.')+1) ==# ''
let after = 1
@@ -328,37 +335,55 @@ function! s:wrap_a(back,forward)
endif
endfunction
-function! RubyCursorIdentifier()
+function! RubyCursorIdentifier() abort
let asciicode = '\%(\w\|[]})\"'."'".']\)\@<!\%(?\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\=\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)\)'
let number = '\%(\%(\w\|[]})\"'."'".']\s*\)\@<!-\)\=\%(\<[[:digit:]_]\+\%(\.[[:digit:]_]\+\)\=\%([Ee][[:digit:]_]\+\)\=\>\|\<0[xXbBoOdD][[:xdigit:]_]\+\>\)\|'.asciicode
let operator = '\%(\[\]\|<<\|<=>\|[!<>]=\=\|===\=\|[!=]\~\|>>\|\*\*\|\.\.\.\=\|=>\|[~^&|*/%+-]\)'
- let method = '\%(\<[_a-zA-Z]\w*\>\%([?!]\|\s*=>\@!\)\=\)'
+ let method = '\%(\.[_a-zA-Z]\w*\s*=>\@!\|\<[_a-zA-Z]\w*\>[?!]\=\)'
let global = '$\%([!$&"'."'".'*+,./:;<=>?@\`~]\|-\=\w\+\>\)'
let symbolizable = '\%(\%(@@\=\)\w\+\>\|'.global.'\|'.method.'\|'.operator.'\)'
let pattern = '\C\s*\%('.number.'\|\%(:\@<!:\)\='.symbolizable.'\)'
let [lnum, col] = searchpos(pattern,'bcn',line('.'))
let raw = matchstr(getline('.')[col-1 : ],pattern)
- let stripped = substitute(substitute(raw,'\s\+=$','=',''),'^\s*:\=','','')
+ let stripped = substitute(substitute(raw,'\s\+=$','=',''),'^\s*[:.]\=','','')
return stripped == '' ? expand("<cword>") : stripped
endfunction
-function! s:gf(count,map,edit) abort
- if getline('.') =~# '^\s*require_relative\s*\(["'']\).*\1\s*$'
- let target = matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1')
- return a:edit.' %:h/'.target.'.rb'
- elseif getline('.') =~# '^\s*\%(require[( ]\|load[( ]\|autoload[( ]:\w\+,\)\s*\s*\%(::\)\=File\.expand_path(\(["'']\)\.\./.*\1,\s*__FILE__)\s*$'
- let target = matchstr(getline('.'),'\(["'']\)\.\./\zs.\{-\}\ze\1')
- return a:edit.' %:h/'.target.'.rb'
+function! RubyCursorFile() abort
+ let isfname = &isfname
+ try
+ set isfname+=:
+ let cfile = expand('<cfile>')
+ finally
+ let isfname = &isfname
+ endtry
+ let pre = matchstr(strpart(getline('.'), 0, col('.')-1), '.*\f\@<!')
+ let post = matchstr(strpart(getline('.'), col('.')), '\f\@!.*')
+ let ext = getline('.') =~# '^\s*\%(require\%(_relative\)\=\|autoload\)\>' && cfile !~# '\.rb$' ? '.rb' : ''
+ if s:synname() ==# 'rubyConstant'
+ let cfile = substitute(cfile,'\.\w\+[?!=]\=$','','')
+ let cfile = substitute(cfile,'::','/','g')
+ let cfile = substitute(cfile,'\(\u\+\)\(\u\l\)','\1_\2', 'g')
+ let cfile = substitute(cfile,'\(\l\|\d\)\(\u\)','\1_\2', 'g')
+ return tolower(cfile) . '.rb'
+ elseif getline('.') =~# '^\s*require_relative\s*\(["'']\).*\1\s*$'
+ let cfile = expand('%:p:h') . '/' . matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1') . ext
+ elseif getline('.') =~# '^\s*\%(require[( ]\|load[( ]\|autoload[( ]:\w\+,\)\s*\%(::\)\=File\.expand_path(\(["'']\)\.\./.*\1,\s*__FILE__)\s*$'
+ let target = matchstr(getline('.'),'\(["'']\)\.\.\zs/.\{-\}\ze\1')
+ let cfile = expand('%:p:h') . target . ext
elseif getline('.') =~# '^\s*\%(require \|load \|autoload :\w\+,\)\s*\(["'']\).*\1\s*$'
- let target = matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1')
+ let cfile = matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1') . ext
+ elseif pre.post =~# '\<File.expand_path[( ].*[''"]\{2\}, *__FILE__\>' && cfile =~# '^\.\.'
+ let cfile = expand('%:p:h') . strpart(cfile, 2)
else
- let target = expand('<cfile>')
+ return substitute(cfile, '\C\v^(.*):(\d+)%(:in)=$', '+\2 \1', '')
endif
- let found = findfile(target, &path, a:count)
- if found ==# ''
- return 'norm! '.a:count.a:map
+ let cwdpat = '^\M' . substitute(getcwd(), '[\/]', '\\[\\/]', 'g').'\ze\[\/]'
+ let cfile = substitute(cfile, cwdpat, '.', '')
+ if fnameescape(cfile) !=# cfile
+ return '+ '.fnameescape(cfile)
else
- return a:edit.' '.fnameescape(found)
+ return cfile
endif
endfunction
diff --git a/runtime/ftplugin/rust.vim b/runtime/ftplugin/rust.vim
new file mode 100644
index 0000000000..7efca5985b
--- /dev/null
+++ b/runtime/ftplugin/rust.vim
@@ -0,0 +1,197 @@
+" Language: Rust
+" Description: Vim ftplugin for Rust
+" Maintainer: Chris Morgan <me@chrismorgan.info>
+" Maintainer: Kevin Ballard <kevin@sb.org>
+" Last Change: June 08, 2016
+" For bugs, patches and license go to https://github.com/rust-lang/rust.vim
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+augroup rust.vim
+autocmd!
+
+" Variables {{{1
+
+" The rust source code at present seems to typically omit a leader on /*!
+" comments, so we'll use that as our default, but make it easy to switch.
+" This does not affect indentation at all (I tested it with and without
+" leader), merely whether a leader is inserted by default or not.
+if exists("g:rust_bang_comment_leader") && g:rust_bang_comment_leader != 0
+ " Why is the `,s0:/*,mb:\ ,ex:*/` there, you ask? I don't understand why,
+ " but without it, */ gets indented one space even if there were no
+ " leaders. I'm fairly sure that's a Vim bug.
+ setlocal comments=s1:/*,mb:*,ex:*/,s0:/*,mb:\ ,ex:*/,:///,://!,://
+else
+ setlocal comments=s0:/*!,m:\ ,ex:*/,s1:/*,mb:*,ex:*/,:///,://!,://
+endif
+setlocal commentstring=//%s
+setlocal formatoptions-=t formatoptions+=croqnl
+" j was only added in 7.3.541, so stop complaints about its nonexistence
+silent! setlocal formatoptions+=j
+
+" smartindent will be overridden by indentexpr if filetype indent is on, but
+" otherwise it's better than nothing.
+setlocal smartindent nocindent
+
+if !exists("g:rust_recommended_style") || g:rust_recommended_style != 0
+ setlocal tabstop=4 shiftwidth=4 softtabstop=4 expandtab
+ setlocal textwidth=99
+endif
+
+" This includeexpr isn't perfect, but it's a good start
+setlocal includeexpr=substitute(v:fname,'::','/','g')
+
+setlocal suffixesadd=.rs
+
+if exists("g:ftplugin_rust_source_path")
+ let &l:path=g:ftplugin_rust_source_path . ',' . &l:path
+endif
+
+if exists("g:loaded_delimitMate")
+ if exists("b:delimitMate_excluded_regions")
+ let b:rust_original_delimitMate_excluded_regions = b:delimitMate_excluded_regions
+ endif
+
+ let s:delimitMate_extra_excluded_regions = ',rustLifetimeCandidate,rustGenericLifetimeCandidate'
+
+ " For this buffer, when delimitMate issues the `User delimitMate_map`
+ " event in the autocommand system, add the above-defined extra excluded
+ " regions to delimitMate's state, if they have not already been added.
+ autocmd User <buffer>
+ \ if expand('<afile>') ==# 'delimitMate_map' && match(
+ \ delimitMate#Get("excluded_regions"),
+ \ s:delimitMate_extra_excluded_regions) == -1
+ \| let b:delimitMate_excluded_regions =
+ \ delimitMate#Get("excluded_regions")
+ \ . s:delimitMate_extra_excluded_regions
+ \|endif
+
+ " For this buffer, when delimitMate issues the `User delimitMate_unmap`
+ " event in the autocommand system, delete the above-defined extra excluded
+ " regions from delimitMate's state (the deletion being idempotent and
+ " having no effect if the extra excluded regions are not present in the
+ " targeted part of delimitMate's state).
+ autocmd User <buffer>
+ \ if expand('<afile>') ==# 'delimitMate_unmap'
+ \| let b:delimitMate_excluded_regions = substitute(
+ \ delimitMate#Get("excluded_regions"),
+ \ '\C\V' . s:delimitMate_extra_excluded_regions,
+ \ '', 'g')
+ \|endif
+endif
+
+if has("folding") && exists('g:rust_fold') && g:rust_fold != 0
+ let b:rust_set_foldmethod=1
+ setlocal foldmethod=syntax
+ if g:rust_fold == 2
+ setlocal foldlevel<
+ else
+ setlocal foldlevel=99
+ endif
+endif
+
+if has('conceal') && exists('g:rust_conceal') && g:rust_conceal != 0
+ let b:rust_set_conceallevel=1
+ setlocal conceallevel=2
+endif
+
+" Motion Commands {{{1
+
+" Bind motion commands to support hanging indents
+nnoremap <silent> <buffer> [[ :call rust#Jump('n', 'Back')<CR>
+nnoremap <silent> <buffer> ]] :call rust#Jump('n', 'Forward')<CR>
+xnoremap <silent> <buffer> [[ :call rust#Jump('v', 'Back')<CR>
+xnoremap <silent> <buffer> ]] :call rust#Jump('v', 'Forward')<CR>
+onoremap <silent> <buffer> [[ :call rust#Jump('o', 'Back')<CR>
+onoremap <silent> <buffer> ]] :call rust#Jump('o', 'Forward')<CR>
+
+" Commands {{{1
+
+" See |:RustRun| for docs
+command! -nargs=* -complete=file -bang -buffer RustRun call rust#Run(<bang>0, <q-args>)
+
+" See |:RustExpand| for docs
+command! -nargs=* -complete=customlist,rust#CompleteExpand -bang -buffer RustExpand call rust#Expand(<bang>0, <q-args>)
+
+" See |:RustEmitIr| for docs
+command! -nargs=* -buffer RustEmitIr call rust#Emit("llvm-ir", <q-args>)
+
+" See |:RustEmitAsm| for docs
+command! -nargs=* -buffer RustEmitAsm call rust#Emit("asm", <q-args>)
+
+" See |:RustPlay| for docs
+command! -range=% RustPlay :call rust#Play(<count>, <line1>, <line2>, <f-args>)
+
+" See |:RustFmt| for docs
+command! -buffer RustFmt call rustfmt#Format()
+
+" See |:RustFmtRange| for docs
+command! -range -buffer RustFmtRange call rustfmt#FormatRange(<line1>, <line2>)
+
+" Mappings {{{1
+
+" Bind ⌘R in MacVim to :RustRun
+nnoremap <silent> <buffer> <D-r> :RustRun<CR>
+" Bind ⌘⇧R in MacVim to :RustRun! pre-filled with the last args
+nnoremap <buffer> <D-R> :RustRun! <C-r>=join(b:rust_last_rustc_args)<CR><C-\>erust#AppendCmdLine(' -- ' . join(b:rust_last_args))<CR>
+
+if !exists("b:rust_last_rustc_args") || !exists("b:rust_last_args")
+ let b:rust_last_rustc_args = []
+ let b:rust_last_args = []
+endif
+
+" Cleanup {{{1
+
+let b:undo_ftplugin = "
+ \ setlocal formatoptions< comments< commentstring< includeexpr< suffixesadd<
+ \|setlocal tabstop< shiftwidth< softtabstop< expandtab< textwidth<
+ \|if exists('b:rust_original_delimitMate_excluded_regions')
+ \|let b:delimitMate_excluded_regions = b:rust_original_delimitMate_excluded_regions
+ \|unlet b:rust_original_delimitMate_excluded_regions
+ \|else
+ \|unlet! b:delimitMate_excluded_regions
+ \|endif
+ \|if exists('b:rust_set_foldmethod')
+ \|setlocal foldmethod< foldlevel<
+ \|unlet b:rust_set_foldmethod
+ \|endif
+ \|if exists('b:rust_set_conceallevel')
+ \|setlocal conceallevel<
+ \|unlet b:rust_set_conceallevel
+ \|endif
+ \|unlet! b:rust_last_rustc_args b:rust_last_args
+ \|delcommand RustRun
+ \|delcommand RustExpand
+ \|delcommand RustEmitIr
+ \|delcommand RustEmitAsm
+ \|delcommand RustPlay
+ \|nunmap <buffer> <D-r>
+ \|nunmap <buffer> <D-R>
+ \|nunmap <buffer> [[
+ \|nunmap <buffer> ]]
+ \|xunmap <buffer> [[
+ \|xunmap <buffer> ]]
+ \|ounmap <buffer> [[
+ \|ounmap <buffer> ]]
+ \|set matchpairs-=<:>
+ \"
+
+" }}}1
+
+" Code formatting on save
+if get(g:, "rustfmt_autosave", 0)
+ autocmd BufWritePre *.rs silent! call rustfmt#Format()
+endif
+
+augroup END
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set noet sw=8 ts=8:
diff --git a/runtime/ftplugin/sass.vim b/runtime/ftplugin/sass.vim
index 64232a0894..d6909e7ad5 100644
--- a/runtime/ftplugin/sass.vim
+++ b/runtime/ftplugin/sass.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: Sass
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
-" Last Change: 2010 Jul 26
+" Last Change: 2016 Aug 29
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -9,8 +9,9 @@ if exists("b:did_ftplugin")
endif
let b:did_ftplugin = 1
-let b:undo_ftplugin = "setl cms< def< inc< inex< ofu< sua<"
+let b:undo_ftplugin = "setl com< cms< def< inc< inex< ofu< sua<"
+setlocal comments=://
setlocal commentstring=//\ %s
setlocal define=^\\s*\\%(@mixin\\\|=\\)
setlocal includeexpr=substitute(v:fname,'\\%(.*/\\\|^\\)\\zs','_','')
diff --git a/runtime/ftplugin/sbt.vim b/runtime/ftplugin/sbt.vim
new file mode 100644
index 0000000000..309d30e503
--- /dev/null
+++ b/runtime/ftplugin/sbt.vim
@@ -0,0 +1,15 @@
+" Vim filetype plugin file
+" Language: sbt
+" Maintainer: Steven Dobay <stevendobay at protonmail.com>
+" License: Same as Vim
+" Last Change: 2017.04.30
+" ----------------------------------------------------------------------------
+
+if exists('b:did_ftplugin') || &cp
+ finish
+endif
+
+let b:did_ftplugin = 1
+
+runtime! ftplugin/scala.vim
+
diff --git a/runtime/ftplugin/scala.vim b/runtime/ftplugin/scala.vim
new file mode 100644
index 0000000000..18e16f1d5b
--- /dev/null
+++ b/runtime/ftplugin/scala.vim
@@ -0,0 +1,35 @@
+" Vim filetype plugin file
+" Language: Scala
+" Maintainer: Derek Wyatt
+" URL: https://github.com/derekwyatt/vim-scala
+" License: Same as Vim
+" Last Change: 02 August 2016
+" ----------------------------------------------------------------------------
+
+if exists('b:did_ftplugin') || &cp
+ finish
+endif
+let b:did_ftplugin = 1
+
+" j is fairly new in Vim, so don't complain if it's not there
+setlocal formatoptions-=t formatoptions+=croqnl
+silent! setlocal formatoptions+=j
+
+" Just like c.vim, but additionally doesn't wrap text onto /** line when
+" formatting. Doesn't bungle bulleted lists when formatting.
+if get(g:, 'scala_scaladoc_indent', 0)
+ setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s2:/**,mb:*,ex:*/,s1:/*,mb:*,ex:*/,://
+else
+ setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/**,mb:*,ex:*/,s1:/*,mb:*,ex:*/,://
+endif
+setlocal commentstring=//\ %s
+
+setlocal shiftwidth=2 softtabstop=2 expandtab
+
+setlocal include='^\s*import'
+setlocal includeexpr='substitute(v:fname,"\\.","/","g")'
+
+setlocal path+=src/main/scala,src/test/scala
+setlocal suffixesadd=.scala
+
+" vim:set sw=2 sts=2 ts=8 et:
diff --git a/runtime/ftplugin/screen.vim b/runtime/ftplugin/screen.vim
index 95c3849556..c22089be2c 100644
--- a/runtime/ftplugin/screen.vim
+++ b/runtime/ftplugin/screen.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: screen(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: screen(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/scss.vim b/runtime/ftplugin/scss.vim
index 981fb1b881..287d298f4a 100644
--- a/runtime/ftplugin/scss.vim
+++ b/runtime/ftplugin/scss.vim
@@ -1,12 +1,13 @@
" Vim filetype plugin
" Language: SCSS
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
-" Last Change: 2010 Jul 26
+" Last Change: 2016 Aug 29
if exists("b:did_ftplugin")
finish
endif
runtime! ftplugin/sass.vim
+setlocal comments=s1:/*,mb:*,ex:*/,://
" vim:set sw=2:
diff --git a/runtime/ftplugin/sensors.vim b/runtime/ftplugin/sensors.vim
index 813d14c0e1..c02a729405 100644
--- a/runtime/ftplugin/sensors.vim
+++ b/runtime/ftplugin/sensors.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: sensors.conf(5) - libsensors configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: sensors.conf(5) - libsensors configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/services.vim b/runtime/ftplugin/services.vim
index d34349ee28..dda08ac20a 100644
--- a/runtime/ftplugin/services.vim
+++ b/runtime/ftplugin/services.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: services(5) - Internet network services list
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: services(5) - Internet network services list
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/setserial.vim b/runtime/ftplugin/setserial.vim
index f9d5945787..e5823f4432 100644
--- a/runtime/ftplugin/setserial.vim
+++ b/runtime/ftplugin/setserial.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: setserial(8) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: setserial(8) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/sieve.vim b/runtime/ftplugin/sieve.vim
index 9a8759c024..3092b5d2d3 100644
--- a/runtime/ftplugin/sieve.vim
+++ b/runtime/ftplugin/sieve.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: Sieve filtering language input file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: Sieve filtering language input file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/slpconf.vim b/runtime/ftplugin/slpconf.vim
index 0c45689672..a975a499e5 100644
--- a/runtime/ftplugin/slpconf.vim
+++ b/runtime/ftplugin/slpconf.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: RFC 2614 - An API for Service Location configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: RFC 2614 - An API for Service Location configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/slpreg.vim b/runtime/ftplugin/slpreg.vim
index e9d533e2d4..74c7285b66 100644
--- a/runtime/ftplugin/slpreg.vim
+++ b/runtime/ftplugin/slpreg.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: RFC 2614 - An API for Service Location registration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: RFC 2614 - An API for Service Location registration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/slpspi.vim b/runtime/ftplugin/slpspi.vim
index 8d64d476f1..633555e493 100644
--- a/runtime/ftplugin/slpspi.vim
+++ b/runtime/ftplugin/slpspi.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: RFC 2614 - An API for Service Location SPI file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: RFC 2614 - An API for Service Location SPI file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/sql.vim b/runtime/ftplugin/sql.vim
index c2bc857947..4d6fcd9564 100644
--- a/runtime/ftplugin/sql.vim
+++ b/runtime/ftplugin/sql.vim
@@ -1,8 +1,8 @@
" SQL filetype plugin file
" Language: SQL (Common for Oracle, Microsoft SQL Server, Sybase)
-" Version: 11.0
+" Version: 12.0
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
-" Last Change: 2013 May 13
+" Last Change: 2017 Mar 07
" Download: http://vim.sourceforge.net/script.php?script_id=454
" For more details please use:
@@ -36,6 +36,14 @@
"
" History
"
+" Version 12.0 (April 2013)
+"
+" NF: Added support for "BEGIN TRY ... END TRY ... BEGIN CATCH ... END CATCH
+" BF: This plugin is designed to be used with other plugins to enable the
+" SQL completion with Perl, Python, Java, ... The loading mechanism
+" was not checking if the SQL objects were created, which can lead to
+" the plugin not loading the SQL support.
+"
" Version 11.0 (May 2013)
"
" NF: Updated to use SyntaxComplete's new regex support for syntax groups.
@@ -80,15 +88,17 @@
" Only do this when not done yet for this buffer
-if exists("b:did_ftplugin")
- finish
+" This ftplugin can be used with other ftplugins. So ensure loading
+" happens if all elements of this plugin have not yet loaded.
+if exists("b:did_ftplugin") && exists("b:current_ftplugin") && b:current_ftplugin == 'sql'
+ finish
endif
let s:save_cpo = &cpo
set cpo&vim
" Disable autowrapping for code, but enable for comments
-" t Auto-wrap text using textwidth
+" t Auto-wrap text using textwidth
" c Auto-wrap comments using textwidth, inserting the current comment
" leader automatically.
setlocal formatoptions-=t
@@ -171,6 +181,9 @@ if !exists("*SQL_SetType")
if exists("b:current_syntax")
" echomsg 'SQLSetType - clearing syntax'
syntax clear
+ if exists("b:current_syntax")
+ unlet b:current_syntax
+ endif
endif
if exists("b:did_indent")
" echomsg 'SQLSetType - clearing indent'
@@ -187,7 +200,7 @@ if !exists("*SQL_SetType")
" Do not specify a buffer local variable if it is
" the default value
if new_sql_type == 'sql'
- let new_sql_type = 'sqloracle'
+ let new_sql_type = 'sqloracle'
endif
let b:sql_type_override = new_sql_type
@@ -234,25 +247,26 @@ if exists("b:sql_type_override")
" echo 'sourcing buffer ftplugin/'.b:sql_type_override.'.vim'
if globpath(&runtimepath, 'ftplugin/'.b:sql_type_override.'.vim') != ''
exec 'runtime ftplugin/'.b:sql_type_override.'.vim'
- " else
- " echomsg 'ftplugin/'.b:sql_type_override.' not exist, using default'
+ " else
+ " echomsg 'ftplugin/'.b:sql_type_override.' not exist, using default'
endif
elseif exists("g:sql_type_default")
" echo 'sourcing global ftplugin/'.g:sql_type_default.'.vim'
if globpath(&runtimepath, 'ftplugin/'.g:sql_type_default.'.vim') != ''
exec 'runtime ftplugin/'.g:sql_type_default.'.vim'
- " else
- " echomsg 'ftplugin/'.g:sql_type_default.'.vim not exist, using default'
+ " else
+ " echomsg 'ftplugin/'.g:sql_type_default.'.vim not exist, using default'
endif
endif
" If the above runtime command succeeded, do not load the default settings
-if exists("b:did_ftplugin")
- finish
+" as they should have already been loaded from a previous run.
+if exists("b:did_ftplugin") && exists("b:current_ftplugin") && b:current_ftplugin == 'sql'
+ finish
endif
let b:undo_ftplugin = "setl comments< formatoptions< define< omnifunc<" .
- \ " | unlet! b:browsefilter b:match_words"
+ \ " | unlet! b:browsefilter b:match_words"
" Don't load another plugin for this buffer
let b:did_ftplugin = 1
@@ -261,7 +275,7 @@ let b:current_ftplugin = 'sql'
" Win32 can filter files in the browse dialog
if has("gui_win32") && !exists("b:browsefilter")
let b:browsefilter = "SQL Files (*.sql)\t*.sql\n" .
- \ "All Files (*.*)\t*.*\n"
+ \ "All Files (*.*)\t*.*\n"
endif
" Some standard expressions for use with the matchit strings
@@ -312,14 +326,24 @@ if !exists("b:match_words")
" WHEN column_not_found THEN
" WHEN OTHERS THEN
"
+ " begin try
+ " end try
+ " begin catch
+ " end catch
+ "
" create[ or replace] procedure|function|event
- " \ '^\s*\<\%(do\|for\|while\|loop\)\>.*:'.
+ " \ '^\s*\<\%(do\|for\|while\|loop\)\>.*:'.
" For ColdFusion support
setlocal matchpairs+=<:>
let b:match_words = &matchpairs .
- \ ',\<begin\>:\<end\>\W*$,'.
- \
+ \ ',\%(\<begin\)\%(\s\+\%(try\|catch\)\>\)\@!:\<end\>\W*$,'.
+ \
+ \ '\<begin\s\+try\>:'.
+ \ '\<end\s\+try\>:'.
+ \ '\<begin\s\+catch\>:'.
+ \ '\<end\s\+catch\>,'.
+ \
\ s:notend . '\<if\>:'.
\ '\<elsif\>\|\<elseif\>\|\<else\>:'.
\ '\<end\s\+if\>,'.
@@ -339,14 +363,14 @@ if !exists("b:match_words")
\ '\%(\<create\s\+' . s:or_replace . '\)\?'.
\ '\%(function\|procedure\|event\):'.
\ '\<returns\?\>'
- " \ '\<begin\>\|\<returns\?\>:'.
- " \ '\<end\>\(;\)\?\s*$'
- " \ '\<exception\>:'.s:when_no_matched_or_others.
- " \ ':\<when\s\+others\>,'.
- "
- " \ '\%(\<exception\>\|\%('. s:notend . '\<case\>\)\):'.
- " \ '\%(\<default\>\|'.s:when_no_matched_or_others.'\):'.
- " \ '\%(\%(\<when\s\+others\>\)\|\<end\s\+case\>\),' .
+ " \ '\<begin\>\|\<returns\?\>:'.
+ " \ '\<end\>\(;\)\?\s*$'
+ " \ '\<exception\>:'.s:when_no_matched_or_others.
+ " \ ':\<when\s\+others\>,'.
+ "
+ " \ '\%(\<exception\>\|\%('. s:notend . '\<case\>\)\):'.
+ " \ '\%(\<default\>\|'.s:when_no_matched_or_others.'\):'.
+ " \ '\%(\%(\<when\s\+others\>\)\|\<end\s\+case\>\),' .
endif
" Define how to find the macro definition of a variable using the various
diff --git a/runtime/ftplugin/sshconfig.vim b/runtime/ftplugin/sshconfig.vim
index f940af972e..d933ce0527 100644
--- a/runtime/ftplugin/sshconfig.vim
+++ b/runtime/ftplugin/sshconfig.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: OpenSSH client configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: OpenSSH client configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/sudoers.vim b/runtime/ftplugin/sudoers.vim
index 5756302178..38dbf559ee 100644
--- a/runtime/ftplugin/sudoers.vim
+++ b/runtime/ftplugin/sudoers.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: sudoers(5) configuration files
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: sudoers(5) configuration files
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/sysctl.vim b/runtime/ftplugin/sysctl.vim
index fb1098dd3b..8d331cea38 100644
--- a/runtime/ftplugin/sysctl.vim
+++ b/runtime/ftplugin/sysctl.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: sysctl.conf(5) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: sysctl.conf(5) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/terminfo.vim b/runtime/ftplugin/terminfo.vim
index 7ce31d1ca1..0ffcc58f58 100644
--- a/runtime/ftplugin/terminfo.vim
+++ b/runtime/ftplugin/terminfo.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: terminfo(5) definition
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: terminfo(5) definition
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/tmux.vim b/runtime/ftplugin/tmux.vim
new file mode 100644
index 0000000000..ed9154924b
--- /dev/null
+++ b/runtime/ftplugin/tmux.vim
@@ -0,0 +1,12 @@
+" Vim filetype plugin file
+" Language: tmux(1) configuration file
+" URL: https://github.com/ericpruitt/tmux.vim/
+" Maintainer: Eric Pruitt <eric.pruitt@gmail.com>
+" Last Changed: 2017 Mar 10
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+setlocal commentstring=#\ %s
diff --git a/runtime/ftplugin/treetop.vim b/runtime/ftplugin/treetop.vim
index 2da3c405f5..f978d15303 100644
--- a/runtime/ftplugin/treetop.vim
+++ b/runtime/ftplugin/treetop.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: Treetop
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2011-03-14
+" Language: Treetop
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2011-03-14
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/tutor.vim b/runtime/ftplugin/tutor.vim
index 1579753170..ec55472b78 100644
--- a/runtime/ftplugin/tutor.vim
+++ b/runtime/ftplugin/tutor.vim
@@ -19,27 +19,30 @@ setlocal noundofile
setlocal keywordprg=:help
setlocal iskeyword=@,-,_
-setlocal foldmethod=expr
+" The user will have to enable the folds himself, but we provide the foldexpr
+" function.
+setlocal foldmethod=manual
setlocal foldexpr=tutor#TutorFolds()
-setlocal foldcolumn=1
setlocal foldlevel=4
-setlocal nowrap
setlocal statusline=%{toupper(expand('%:t:r'))}\ tutorial%=
setlocal statusline+=%{tutor#InfoText()}
+" Load metadata if it exists: {{{1
+if filereadable(expand('%').'.json')
+ call tutor#LoadMetadata()
+endif
+
" Mappings: {{{1
call tutor#SetNormalMappings()
-call tutor#SetSampleTextMappings()
" Checks: {{{1
sign define tutorok text=✓ texthl=tutorOK
sign define tutorbad text=✗ texthl=tutorX
-if !exists('g:tutor_debug') || g:tutor_debug == 0
- call tutor#PlaceXMarks()
- autocmd! TextChanged <buffer> call tutor#OnTextChanged()
- autocmd! TextChangedI <buffer> call tutor#OnTextChanged()
+if !exists('g:tutor_debug') || g:tutor_debug == 0
+ call tutor#ApplyMarks()
+ autocmd! TextChanged,TextChangedI <buffer> call tutor#ApplyMarksOnChanged()
endif
diff --git a/runtime/ftplugin/udevconf.vim b/runtime/ftplugin/udevconf.vim
index 6042e14413..0bbd86a0a4 100644
--- a/runtime/ftplugin/udevconf.vim
+++ b/runtime/ftplugin/udevconf.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: udev(8) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: udev(8) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/udevperm.vim b/runtime/ftplugin/udevperm.vim
index e7ad31d071..f8fb4d4d99 100644
--- a/runtime/ftplugin/udevperm.vim
+++ b/runtime/ftplugin/udevperm.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: udev(8) permissions file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: udev(8) permissions file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/udevrules.vim b/runtime/ftplugin/udevrules.vim
index be8d646968..6404f6c85e 100644
--- a/runtime/ftplugin/udevrules.vim
+++ b/runtime/ftplugin/udevrules.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: udev(8) rules file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: udev(8) rules file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/updatedb.vim b/runtime/ftplugin/updatedb.vim
index f4e7bcebd5..3015918d70 100644
--- a/runtime/ftplugin/updatedb.vim
+++ b/runtime/ftplugin/updatedb.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: updatedb.conf(5) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: updatedb.conf(5) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/verilog.vim b/runtime/ftplugin/verilog.vim
index 6594f2ea90..cbf30a3185 100644
--- a/runtime/ftplugin/verilog.vim
+++ b/runtime/ftplugin/verilog.vim
@@ -1,8 +1,12 @@
" Vim filetype plugin file
" Language: Verilog HDL
-" Maintainer: Chih-Tsun Huang <cthuang@larc.ee.nthu.edu.tw>
-" Last Change: Wed Sep 3 15:24:49 CST 2008
-" URL: http://larc.ee.nthu.edu.tw/~cthuang/vim/ftplugin/verilog.vim
+" Maintainer: Chih-Tsun Huang <cthuang@cs.nthu.edu.tw>
+" Last Change: 2017 Aug 25 by Chih-Tsun Huang
+" URL: http://www.cs.nthu.edu.tw/~cthuang/vim/ftplugin/verilog.vim
+"
+" Credits:
+" Suggestions for improvement, bug reports by
+" Shao <shaominghai2005@163.com>
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -45,11 +49,16 @@ if exists("loaded_matchit")
\ '\<begin\>:\<end\>,' .
\ '\<case\>\|\<casex\>\|\<casez\>:\<endcase\>,' .
\ '\<module\>:\<endmodule\>,' .
- \ '\<if\>:\<else\>,' .
+ \ '\<if\>:`\@<!\<else\>,' .
\ '\<function\>:\<endfunction\>,' .
- \ '`ifdef\>:`else\>:`endif\>,' .
+ \ '`ifn\?def\>:`elsif\>:`else\>:`endif\>,' .
\ '\<task\>:\<endtask\>,' .
- \ '\<specify\>:\<endspecify\>'
+ \ '\<specify\>:\<endspecify\>,' .
+ \ '\<config\>:\<endconfig\>,' .
+ \ '\<generate\>:\<endgenerate\>,' .
+ \ '\<fork\>:\<join\>,' .
+ \ '\<primitive\>:\<endprimitive\>,' .
+ \ '\<table\>:\<endtable\>'
endif
" Reset 'cpoptions' back to the user's setting
diff --git a/runtime/ftplugin/vim.vim b/runtime/ftplugin/vim.vim
index f355d2837d..ba9ed76169 100644
--- a/runtime/ftplugin/vim.vim
+++ b/runtime/ftplugin/vim.vim
@@ -14,7 +14,7 @@ let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo-=C
-let b:undo_ftplugin = "setl fo< isk< com< tw< commentstring<"
+let b:undo_ftplugin = "setl fo< isk< com< tw< commentstring< keywordprg<"
\ . "| unlet! b:match_ignorecase b:match_words b:match_skip"
" Set 'formatoptions' to break comment lines but not other lines,
@@ -36,6 +36,9 @@ endif
" Comments start with a double quote
setlocal commentstring=\"%s
+" Prefer Vim help instead of manpages.
+setlocal keywordprg=:help
+
" Move around functions.
nnoremap <silent><buffer> [[ m':call search('^\s*fu\%[nction]\>', "bW")<CR>
vnoremap <silent><buffer> [[ m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "bW")<CR>
diff --git a/runtime/ftplugin/xdefaults.vim b/runtime/ftplugin/xdefaults.vim
index cd851829ca..c1aff70176 100644
--- a/runtime/ftplugin/xdefaults.vim
+++ b/runtime/ftplugin/xdefaults.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: X resources files like ~/.Xdefaults (xrdb)
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: X resources files like ~/.Xdefaults (xrdb)
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/xf86conf.vim b/runtime/ftplugin/xf86conf.vim
index ab7569a100..5a21539dd5 100644
--- a/runtime/ftplugin/xf86conf.vim
+++ b/runtime/ftplugin/xf86conf.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: XFree86 Configuration File
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: XFree86 Configuration File
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/xinetd.vim b/runtime/ftplugin/xinetd.vim
index f209af18be..2b7b64e4fa 100644
--- a/runtime/ftplugin/xinetd.vim
+++ b/runtime/ftplugin/xinetd.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: xinetd.conf(5) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: xinetd.conf(5) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/xmodmap.vim b/runtime/ftplugin/xmodmap.vim
index 027ae09ff2..77fccd5b4d 100644
--- a/runtime/ftplugin/xmodmap.vim
+++ b/runtime/ftplugin/xmodmap.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: xmodmap(1) definition file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: xmodmap(1) definition file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/yaml.vim b/runtime/ftplugin/yaml.vim
index b88803ab3a..ceff36f7e4 100644
--- a/runtime/ftplugin/yaml.vim
+++ b/runtime/ftplugin/yaml.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: YAML (YAML Ain't Markup Language)
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: YAML (YAML Ain't Markup Language)
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/zsh.vim b/runtime/ftplugin/zsh.vim
index 6cbc380dc3..c03a9466a1 100644
--- a/runtime/ftplugin/zsh.vim
+++ b/runtime/ftplugin/zsh.vim
@@ -1,10 +1,10 @@
" Vim filetype plugin file
-" Language: Zsh shell script
-" Maintainer: Christian Brabandt <cb@256bit.org>
-" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2015-05-29
-" License: Vim (see :h license)
-" Repository: https://github.com/chrisbra/vim-zsh
+" Language: Zsh shell script
+" Maintainer: Christian Brabandt <cb@256bit.org>
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2015-05-29
+" License: Vim (see :h license)
+" Repository: https://github.com/chrisbra/vim-zsh
if exists("b:did_ftplugin")
finish
diff --git a/runtime/indent/ada.vim b/runtime/indent/ada.vim
index 575f326454..1ca7fbacbe 100644
--- a/runtime/indent/ada.vim
+++ b/runtime/indent/ada.vim
@@ -87,7 +87,7 @@ function s:MainBlockIndent (prev_indent, prev_lnum, blockstart, stop_at)
endwhile
endwhile
" Fallback - just move back one
- return a:prev_indent - &sw
+ return a:prev_indent - shiftwidth()
endfunction MainBlockIndent
" Section: s:EndBlockIndent {{{1
@@ -131,7 +131,7 @@ function s:EndBlockIndent( prev_indent, prev_lnum, blockstart, blockend )
endwhile
endwhile
" Fallback - just move back one
- return a:prev_indent - &sw
+ return a:prev_indent - shiftwidth()
endfunction EndBlockIndent
" Section: s:StatementIndent {{{1
@@ -213,15 +213,15 @@ function GetAdaIndent()
endif
" Move indent in
if ! false_match
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
elseif line =~ '^\s*\(case\|exception\)\>'
" Move indent in twice (next 'when' will move back)
- let ind = ind + 2 * &sw
+ let ind = ind + 2 * shiftwidth()
elseif line =~ '^\s*end\s*record\>'
- " Move indent back to tallying 'type' preceding the 'record'.
+ " Move indent back to tallying 'type' preceeding the 'record'.
" Allow indent to be equal to 'end record's.
- let ind = s:MainBlockIndent( ind+&sw, lnum, 'type\>', '' )
+ let ind = s:MainBlockIndent( ind+shiftwidth(), lnum, 'type\>', '' )
elseif line =~ '\(^\s*new\>.*\)\@<!)\s*[;,]\s*$'
" Revert to indent of line that started this parenthesis pair
exe lnum
@@ -235,10 +235,10 @@ function GetAdaIndent()
exe v:lnum
elseif line =~ '[.=(]\s*$'
" A statement continuation - move in one
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
elseif line =~ '^\s*new\>'
" Multiple line generic instantiation ('package blah is\nnew thingy')
- let ind = s:StatementIndent( ind - &sw, lnum )
+ let ind = s:StatementIndent( ind - shiftwidth(), lnum )
elseif line =~ ';\s*$'
" Statement end (but not 'end' ) - try to find current statement-start indent
let ind = s:StatementIndent( ind, lnum )
@@ -256,17 +256,17 @@ function GetAdaIndent()
elseif continuation && line =~ '^\s*('
" Don't do this if we've already indented due to the previous line
if ind == initind
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
elseif line =~ '^\s*\(begin\|is\)\>'
let ind = s:MainBlockIndent( ind, lnum, '\(procedure\|function\|declare\|package\|task\)\>', 'begin\>' )
elseif line =~ '^\s*record\>'
- let ind = s:MainBlockIndent( ind, lnum, 'type\>\|for\>.*\<use\>', '' ) + &sw
+ let ind = s:MainBlockIndent( ind, lnum, 'type\>\|for\>.*\<use\>', '' ) + shiftwidth()
elseif line =~ '^\s*\(else\|elsif\)\>'
let ind = s:MainBlockIndent( ind, lnum, 'if\>', '' )
elseif line =~ '^\s*when\>'
" Align 'when' one /in/ from matching block start
- let ind = s:MainBlockIndent( ind, lnum, '\(case\|exception\)\>', '' ) + &sw
+ let ind = s:MainBlockIndent( ind, lnum, '\(case\|exception\)\>', '' ) + shiftwidth()
elseif line =~ '^\s*end\>\s*\<if\>'
" End of if statements
let ind = s:EndBlockIndent( ind, lnum, 'if\>', 'end\>\s*\<if\>' )
diff --git a/runtime/indent/automake.vim b/runtime/indent/automake.vim
index 5fbc222bc7..7e38f92ebf 100644
--- a/runtime/indent/automake.vim
+++ b/runtime/indent/automake.vim
@@ -1,7 +1,7 @@
" Vim indent file
-" Language: automake
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: automake
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:did_indent")
finish
diff --git a/runtime/indent/awk.vim b/runtime/indent/awk.vim
index 6f6b70cc4e..aad73ee71f 100644
--- a/runtime/indent/awk.vim
+++ b/runtime/indent/awk.vim
@@ -60,7 +60,7 @@ function! GetAwkIndent()
" 'pattern { action }' (simple check match on /{/ increases the indent then)
if s:Get_brace_balance( prev_data, '{', '}' ) > 0
- return ind + &sw
+ return ind + shiftwidth()
endif
let brace_balance = s:Get_brace_balance( prev_data, '(', ')' )
@@ -99,7 +99,7 @@ function! GetAwkIndent()
return s:Safe_indent( ind, s:First_word_len(prev_data), getline(v:lnum))
else
" if/for/while without '{'
- return ind + &sw
+ return ind + shiftwidth()
endif
endif
endif
@@ -140,7 +140,7 @@ function! GetAwkIndent()
" Decrease indent if this line contains a '}'.
if getline(v:lnum) =~ '^\s*}'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
return ind
diff --git a/runtime/indent/bst.vim b/runtime/indent/bst.vim
index be1f63e8e9..47e3058810 100644
--- a/runtime/indent/bst.vim
+++ b/runtime/indent/bst.vim
@@ -69,7 +69,7 @@ function! GetBstIndent(lnum) abort
endif
let fakeline = substitute(line,'^}','','').matchstr(cline,'^}')
let ind = indent(lnum)
- let ind = ind + &sw * s:count(line,'{')
- let ind = ind - &sw * s:count(fakeline,'}')
+ let ind = ind + shiftwidth() * s:count(line,'{')
+ let ind = ind - shiftwidth() * s:count(fakeline,'}')
return ind
endfunction
diff --git a/runtime/indent/bzl.vim b/runtime/indent/bzl.vim
index 24e5b870cd..6904bfdedb 100644
--- a/runtime/indent/bzl.vim
+++ b/runtime/indent/bzl.vim
@@ -1,7 +1,7 @@
" Vim indent file
" Language: Bazel (http://bazel.io)
" Maintainer: David Barnett (https://github.com/google/vim-ft-bzl)
-" Last Change: 2015 Aug 11
+" Last Change: 2017 Jun 13
if exists('b:did_indent')
finish
@@ -41,11 +41,8 @@ function GetBzlIndent(lnum) abort
if exists('g:pyindent_open_paren')
let l:pyindent_open_paren = g:pyindent_open_paren
endif
- " Vim 7.3.693 and later defines a shiftwidth() function to get the effective
- " shiftwidth value. Fall back to &shiftwidth if the function doesn't exist.
- let l:sw_expr = exists('*shiftwidth') ? 'shiftwidth()' : '&shiftwidth'
- let g:pyindent_nested_paren = l:sw_expr . ' * 2'
- let g:pyindent_open_paren = l:sw_expr . ' * 2'
+ let g:pyindent_nested_paren = 'shiftwidth() * 2'
+ let g:pyindent_open_paren = 'shiftwidth() * 2'
endif
let l:indent = -1
diff --git a/runtime/indent/cdl.vim b/runtime/indent/cdl.vim
index db2b9052b2..5fae7b9046 100644
--- a/runtime/indent/cdl.vim
+++ b/runtime/indent/cdl.vim
@@ -16,7 +16,7 @@ if exists("*CdlGetIndent")
"finish
endif
-" find out if an "...=..." expresion its an asignment (or a conditional)
+" find out if an "...=..." expresion is an assignment (or a conditional)
" it scans 'line' first, and then the previos lines
fun! CdlAsignment(lnum, line)
let f = -1
@@ -47,7 +47,7 @@ fun! CdlGetIndent(lnum)
let thisline = getline(a:lnum)
if match(thisline, '^\s*\(\k\+\|\[[^]]*]\)\s*\(,\|;\s*$\)') >= 0
" it's an attributes line
- return &sw
+ return shiftwidth()
elseif match(thisline, '^\c\s*\([{}]\|\/[*/]\|dimension\|schedule\|group\|hierarchy\|class\)') >= 0
" it's a header or '{' or '}' or a comment
return 0
@@ -71,13 +71,13 @@ fun! CdlGetIndent(lnum)
let c = line[inicio-1]
" ')' and '=' don't change indent and are useless to set 'f'
if c == '{'
- return &sw
+ return shiftwidth()
elseif c != ')' && c != '='
let f = 1 " all but 'elseif' are followed by a formula
if c ==? 'n' || c ==? 'e' " 'then', 'else'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
elseif strpart(line, inicio-6, 6) ==? 'elseif' " elseif, set f to conditional
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
let f = 0
end
end
@@ -98,16 +98,16 @@ fun! CdlGetIndent(lnum)
let ind = 0
let f = 1
elseif c == ')' || c== ';' || strpart(line, inicio-5, 5) ==? 'endif'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
elseif c == '(' || c ==? 'f' " '(' or 'if'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
else " c == '='
" if it is an asignment increase indent
if f == -1 " we don't know yet, find out
let f = CdlAsignment(lnum, strpart(line, 0, inicio))
end
if f == 1 " formula increase it
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
end
end
endw
@@ -115,13 +115,13 @@ fun! CdlGetIndent(lnum)
" CURRENT LINE, if it starts with a closing element, decrease indent
" or if it starts with '=' (asignment), increase indent
if match(thisline, '^\c\s*\(else\|then\|endif\|[);]\)') >= 0
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
elseif match(thisline, '^\s*=') >= 0
if f == -1 " we don't know yet if is an asignment, find out
let f = CdlAsignment(lnum, "")
end
if f == 1 " formula increase it
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
end
end
diff --git a/runtime/indent/chaiscript.vim b/runtime/indent/chaiscript.vim
index 247e1a6e4c..445281cc46 100644
--- a/runtime/indent/chaiscript.vim
+++ b/runtime/indent/chaiscript.vim
@@ -31,19 +31,19 @@ function! GetChaiScriptIndent()
let flag = 0
let prevline = getline(lnum)
if prevline =~ '^.*{.*'
- let ind = ind + &shiftwidth
+ let ind = ind + shiftwidth()
let flag = 1
endif
" Subtract a 'shiftwidth' after lines containing a { followed by a }
" to keep it balanced
if flag == 1 && prevline =~ '.*{.*}.*'
- let ind = ind - &shiftwidth
+ let ind = ind - shiftwidth()
endif
" Subtract a 'shiftwidth' on lines ending with }
if getline(v:lnum) =~ '^\s*\%(}\)'
- let ind = ind - &shiftwidth
+ let ind = ind - shiftwidth()
endif
return ind
diff --git a/runtime/indent/clojure.vim b/runtime/indent/clojure.vim
index 7592b10d7d..7c4186e29b 100644
--- a/runtime/indent/clojure.vim
+++ b/runtime/indent/clojure.vim
@@ -261,7 +261,7 @@ if exists("*searchpairpos")
call cursor(paren)
if s:is_method_special_case(paren)
- return [paren[0], paren[1] + &shiftwidth - 1]
+ return [paren[0], paren[1] + shiftwidth() - 1]
endif
if s:is_reader_conditional_special_case(paren)
@@ -299,19 +299,19 @@ if exists("*searchpairpos")
let ww = s:strip_namespace_and_macro_chars(w)
if &lispwords =~# '\V\<' . ww . '\>'
- return [paren[0], paren[1] + &shiftwidth - 1]
+ return [paren[0], paren[1] + shiftwidth() - 1]
endif
if g:clojure_fuzzy_indent
\ && !s:match_one(g:clojure_fuzzy_indent_blacklist, ww)
\ && s:match_one(g:clojure_fuzzy_indent_patterns, ww)
- return [paren[0], paren[1] + &shiftwidth - 1]
+ return [paren[0], paren[1] + shiftwidth() - 1]
endif
call search('\v\_s', 'cW')
call search('\v\S', 'W')
if paren[0] < line(".")
- return [paren[0], paren[1] + (g:clojure_align_subforms ? 0 : &shiftwidth - 1)]
+ return [paren[0], paren[1] + (g:clojure_align_subforms ? 0 : shiftwidth() - 1)]
endif
call search('\v\S', 'bW')
diff --git a/runtime/indent/cmake.vim b/runtime/indent/cmake.vim
index 421afcb6d7..845bdd7655 100644
--- a/runtime/indent/cmake.vim
+++ b/runtime/indent/cmake.vim
@@ -1,14 +1,12 @@
" Vim indent file
-" Program: CMake - Cross-Platform Makefile Generator
-" Module: $RCSfile: cmake-indent.vim,v $
" Language: CMake (ft=cmake)
" Author: Andy Cedilnik <andy.cedilnik@kitware.com>
-" Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com>
-" Last Change: $Date: 2008-01-16 16:53:53 $
-" Version: $Revision: 1.9 $
+" Maintainer: Dimitri Merejkowsky <d.merej@gmail.com>
+" Former Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com>
+" Last Change: 2017 Sep 24
"
" Licence: The CMake license applies to this file. See
-" http://www.cmake.org/HTML/Copyright.html
+" https://cmake.org/licensing
" This implies that distribution with Vim is allowed
if exists("b:did_indent")
@@ -68,19 +66,19 @@ fun! CMakeGetIndent(lnum)
let ind = ind
else
if previous_line =~? cmake_indent_begin_regex
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
if previous_line =~? cmake_indent_open_regex
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
endif
" Subtract
if this_line =~? cmake_indent_end_regex
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
if previous_line =~? cmake_indent_close_regex
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
return ind
diff --git a/runtime/indent/cobol.vim b/runtime/indent/cobol.vim
index 8dce3cd014..c08444ac40 100644
--- a/runtime/indent/cobol.vim
+++ b/runtime/indent/cobol.vim
@@ -52,11 +52,11 @@ function! s:optionalblock(lnum,ind,blocks,clauses)
if getline(lastclause) =~? clauses && s:stripped(lastclause) !~? '^'.begin
let ind = indent(lastclause)
elseif lastclause > 0
- let ind = indent(lastclause) + &sw
- "let ind = ind + &sw
+ let ind = indent(lastclause) + shiftwidth()
+ "let ind = ind + shiftwidth()
endif
elseif line =~? clauses && cline !~? end
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
return ind
endfunction
@@ -98,8 +98,8 @@ function! GetCobolIndent(lnum) abort
let num = matchstr(line,'^\s*\zs\d\+\>')
if 0+cnum == num
return lindent
- elseif 0+cnum > num && default < lindent + &sw
- let default = lindent + &sw
+ elseif 0+cnum > num && default < lindent + shiftwidth()
+ let default = lindent + shiftwidth()
endif
elseif lindent < bshft && lindent >= ashft
break
@@ -135,13 +135,13 @@ function! GetCobolIndent(lnum) abort
if line =~? '^PERFORM\>'
let perfline = substitute(line, '\c^PERFORM\s*', "", "")
if perfline =~? '^\%(\k\+\s\+TIMES\)\=\s*$'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
elseif perfline =~? '^\%(WITH\s\+TEST\|VARYING\|UNTIL\)\>.*[^.]$'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
endif
if line =~? '^\%(IF\|THEN\|ELSE\|READ\|EVALUATE\|SEARCH\|SELECT\)\>'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
let ind = s:optionalblock(a:lnum,ind,'ADD\|COMPUTE\|DIVIDE\|MULTIPLY\|SUBTRACT','ON\s\+SIZE\s\+ERROR')
let ind = s:optionalblock(a:lnum,ind,'STRING\|UNSTRING\|ACCEPT\|DISPLAY\|CALL','ON\s\+OVERFLOW\|ON\s\+EXCEPTION')
@@ -157,10 +157,10 @@ function! GetCobolIndent(lnum) abort
"&& s:stripped(lastclause) !~? '^\%(SEARCH\|EVALUATE\|READ\)\>'
let ind = indent(lastclause)
elseif lastclause > 0
- let ind = indent(lastclause) + &sw
+ let ind = indent(lastclause) + shiftwidth()
endif
elseif line =~? '^WHEN\>'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
"I'm not sure why I had this
"if line =~? '^ELSE\>-\@!' && line !~? '\.$'
@@ -168,7 +168,7 @@ function! GetCobolIndent(lnum) abort
"endif
if cline =~? '^\(END\)\>-\@!'
" On lines with just END, 'guess' a simple shift left
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
elseif cline =~? '^\(END-IF\|THEN\|ELSE\)\>-\@!'
call cursor(a:lnum,indent(a:lnum))
let match = searchpair('\c-\@<!\<IF\>','\c-\@<!\%(THEN\|ELSE\)\>','\c-\@<!\<END-IF\>\zs','bnW',s:skip)
@@ -209,7 +209,7 @@ function! GetCobolIndent(lnum) abort
if match > 0
let ind = indent(match)
elseif cline =~? '^\(END-\(READ\|EVALUATE\|SEARCH\|PERFORM\)\)\>'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
endif
return ind < bshft ? bshft : ind
diff --git a/runtime/indent/config.vim b/runtime/indent/config.vim
index 7eb1657572..074f467bee 100644
--- a/runtime/indent/config.vim
+++ b/runtime/indent/config.vim
@@ -1,8 +1,8 @@
" Vim indent file
-" Language: Autoconf configure.{ac,in} file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-12-20
-" TODO: how about nested [()]'s in one line
+" Language: Autoconf configure.{ac,in} file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-12-20
+" TODO: how about nested [()]'s in one line
" what's wrong with '\\\@!'?
" Only load this indent file when no other was loaded.
diff --git a/runtime/indent/context.vim b/runtime/indent/context.vim
new file mode 100644
index 0000000000..652479f7e2
--- /dev/null
+++ b/runtime/indent/context.vim
@@ -0,0 +1,36 @@
+" ConTeXt indent file
+" Language: ConTeXt typesetting engine
+" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
+" Last Change: 2016 Oct 15
+
+if exists("b:did_indent")
+ finish
+endif
+
+if !get(b:, 'context_metapost', get(g:, 'context_metapost', 1))
+ finish
+endif
+
+" Load MetaPost indentation script
+runtime! indent/mp.vim
+
+let s:keepcpo= &cpo
+set cpo&vim
+
+setlocal indentexpr=GetConTeXtIndent()
+
+let b:undo_indent = "setl indentexpr<"
+
+function! GetConTeXtIndent()
+ " Use MetaPost rules inside MetaPost graphic environments
+ if len(synstack(v:lnum, 1)) > 0 &&
+ \ synIDattr(synstack(v:lnum, 1)[0], "name") ==# 'contextMPGraphic'
+ return GetMetaPostIndent()
+ endif
+ return -1
+endfunc
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
+" vim:sw=2
diff --git a/runtime/indent/css.vim b/runtime/indent/css.vim
index f0a272eff9..4d15b8d2dc 100644
--- a/runtime/indent/css.vim
+++ b/runtime/indent/css.vim
@@ -2,6 +2,7 @@
" Language: CSS
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2012-05-30
+" Use of shiftwidth() added by Oleg Zubchenko.
if exists("b:did_indent")
finish
@@ -75,8 +76,8 @@ function GetCSSIndent()
return 0
endif
- return indent(pnum) + s:count_braces(pnum, 1) * &sw
- \ - s:count_braces(v:lnum, 0) * &sw
+ return indent(pnum) + s:count_braces(pnum, 1) * shiftwidth()
+ \ - s:count_braces(v:lnum, 0) * shiftwidth()
endfunction
let &cpo = s:keepcpo
diff --git a/runtime/indent/cucumber.vim b/runtime/indent/cucumber.vim
index 965c7786ed..ad28a67a0d 100644
--- a/runtime/indent/cucumber.vim
+++ b/runtime/indent/cucumber.vim
@@ -1,7 +1,7 @@
" Vim indent file
" Language: Cucumber
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
-" Last Change: 2013 May 30
+" Last Change: 2017 Jun 13
if exists("b:did_indent")
finish
@@ -27,6 +27,7 @@ function! GetCucumberIndent()
let line = getline(prevnonblank(v:lnum-1))
let cline = getline(v:lnum)
let nline = getline(nextnonblank(v:lnum+1))
+ let sw = exists('*shiftwidth') ? shiftwidth() : shiftwidth()
let syn = s:syn(prevnonblank(v:lnum-1))
let csyn = s:syn(v:lnum)
let nsyn = s:syn(nextnonblank(v:lnum+1))
@@ -35,38 +36,38 @@ function! GetCucumberIndent()
return 0
elseif csyn ==# 'cucumberExamples' || cline =~# '^\s*\%(Examples\|Scenarios\):'
" examples heading
- return 2 * &sw
+ return 2 * sw
elseif csyn =~# '^cucumber\%(Background\|Scenario\|ScenarioOutline\)$' || cline =~# '^\s*\%(Background\|Scenario\|Scenario Outline\):'
" background, scenario or outline heading
- return &sw
+ return sw
elseif syn ==# 'cucumberFeature' || line =~# '^\s*Feature:'
" line after feature heading
- return &sw
+ return sw
elseif syn ==# 'cucumberExamples' || line =~# '^\s*\%(Examples\|Scenarios\):'
" line after examples heading
- return 3 * &sw
+ return 3 * sw
elseif syn =~# '^cucumber\%(Background\|Scenario\|ScenarioOutline\)$' || line =~# '^\s*\%(Background\|Scenario\|Scenario Outline\):'
" line after background, scenario or outline heading
- return 2 * &sw
+ return 2 * sw
elseif cline =~# '^\s*[@#]' && (nsyn == 'cucumberFeature' || nline =~# '^\s*Feature:' || indent(prevnonblank(v:lnum-1)) <= 0)
" tag or comment before a feature heading
return 0
elseif cline =~# '^\s*@'
" other tags
- return &sw
+ return sw
elseif cline =~# '^\s*[#|]' && line =~# '^\s*|'
" mid-table
" preserve indent
return indent(prevnonblank(v:lnum-1))
elseif cline =~# '^\s*|' && line =~# '^\s*[^|]'
" first line of a table, relative indent
- return indent(prevnonblank(v:lnum-1)) + &sw
+ return indent(prevnonblank(v:lnum-1)) + sw
elseif cline =~# '^\s*[^|]' && line =~# '^\s*|'
" line after a table, relative unindent
- return indent(prevnonblank(v:lnum-1)) - &sw
+ return indent(prevnonblank(v:lnum-1)) - sw
elseif cline =~# '^\s*#' && getline(v:lnum-1) =~ '^\s*$' && (nsyn =~# '^cucumber\%(Background\|Scenario\|ScenarioOutline\)$' || nline =~# '^\s*\%(Background\|Scenario\|Scenario Outline\):')
" comments on scenarios
- return &sw
+ return sw
endif
return indent(prevnonblank(v:lnum-1))
endfunction
diff --git a/runtime/indent/dictconf.vim b/runtime/indent/dictconf.vim
index adbc1a5242..2e15c76146 100644
--- a/runtime/indent/dictconf.vim
+++ b/runtime/indent/dictconf.vim
@@ -1,7 +1,7 @@
" Vim indent file
-" Language: dict(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-12-20
+" Language: dict(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-12-20
if exists("b:did_indent")
finish
diff --git a/runtime/indent/dictdconf.vim b/runtime/indent/dictdconf.vim
index 9427342c7e..5c4fbdafb5 100644
--- a/runtime/indent/dictdconf.vim
+++ b/runtime/indent/dictdconf.vim
@@ -1,7 +1,7 @@
" Vim indent file
-" Language: dictd(8) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-12-20
+" Language: dictd(8) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-12-20
if exists("b:did_indent")
finish
diff --git a/runtime/indent/docbk.vim b/runtime/indent/docbk.vim
index 3fde2a13b6..d8661ffbe9 100644
--- a/runtime/indent/docbk.vim
+++ b/runtime/indent/docbk.vim
@@ -1,7 +1,7 @@
" Vim indent file
-" Language: DocBook Documentation Format
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: DocBook Documentation Format
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:did_indent")
finish
diff --git a/runtime/indent/dtd.vim b/runtime/indent/dtd.vim
index 88c0c5129e..5633362367 100644
--- a/runtime/indent/dtd.vim
+++ b/runtime/indent/dtd.vim
@@ -1,7 +1,7 @@
" Vim indent file
-" Language: DTD (Document Type Definition for XML)
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2011-07-08
+" Language: DTD (Document Type Definition for XML)
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2011-07-08
let s:cpo_save = &cpo
set cpo&vim
@@ -84,7 +84,7 @@ function GetDTDIndent()
let [declaration, end] = s:lex1(line, col)
if declaration == ""
- return indent + &sw
+ return indent + shiftwidth()
elseif declaration == '--'
" We’re looking at a comment. Now, simply determine if the comment is
" terminated or not. If it isn’t, let Vim take care of that using
@@ -100,7 +100,7 @@ function GetDTDIndent()
" Check for element name. If none exists, indent one level.
let [name, end] = s:lex(line, end)
if name == ""
- return indent + &sw
+ return indent + shiftwidth()
endif
" Check for token following element name. This can be a specification of
@@ -113,7 +113,7 @@ function GetDTDIndent()
let n += 1
endwhile
if token == ""
- return indent + &sw
+ return indent + shiftwidth()
endif
" Next comes the content model. If the token we’ve found isn’t a
@@ -148,7 +148,7 @@ function GetDTDIndent()
return indent
endif
" TODO: Should use s:lex here on getline(v:lnum) and check for >.
- return getline(v:lnum) =~ '^\s*>' || count(values(seen), 0) == 0 ? indent : (indent + &sw)
+ return getline(v:lnum) =~ '^\s*>' || count(values(seen), 0) == 0 ? indent : (indent + shiftwidth())
endif
" If we’ve seen an addition or exception already and this is of the same
@@ -167,7 +167,7 @@ function GetDTDIndent()
" Check for element name. If none exists, indent one level.
let [name, end] = s:lex(line, end)
if name == ""
- return indent + &sw
+ return indent + shiftwidth()
endif
" Check for any number of attributes.
@@ -180,7 +180,7 @@ function GetDTDIndent()
let [name, end] = s:lex(line, end)
if name == ""
" TODO: Should use s:lex here on getline(v:lnum) and check for >.
- return getline(v:lnum) =~ '^\s*>' ? indent : (indent + &sw)
+ return getline(v:lnum) =~ '^\s*>' ? indent : (indent + shiftwidth())
elseif name == ">"
return indent
endif
@@ -194,14 +194,14 @@ function GetDTDIndent()
" (CDATA|NMTOKEN|NMTOKENS|ID|IDREF|IDREFS|ENTITY|ENTITIES)?
let [value, end] = s:lex(line, end, '^\%((\|[^[:space:]]\+\)')
if value == ""
- return indent + &sw * 2
+ return indent + shiftwidth() * 2
elseif value == 'NOTATION'
" If this is a enumerated value based on notations, read another token
" for the actual value. If it doesn’t exist, indent three levels.
" TODO: If validating according to above, value must be equal to '('.
let [value, end] = s:lex(line, end, '^\%((\|[^[:space:]]\+\)')
if value == ""
- return indent + &sw * 3
+ return indent + shiftwidth() * 3
endif
endif
@@ -216,13 +216,13 @@ function GetDTDIndent()
" two levels.
let [default, end] = s:lex(line, end, '^\%("\_[^"]*"\|#\(REQUIRED\|IMPLIED\|FIXED\)\)')
if default == ""
- return indent + &sw * 2
+ return indent + shiftwidth() * 2
elseif default == '#FIXED'
" We need to look for the fixed value. If non exists, indent three
" levels.
let [default, end] = s:lex(line, end, '^"\_[^"]*"')
if default == ""
- return indent + &sw * 3
+ return indent + shiftwidth() * 3
endif
endif
endwhile
@@ -233,11 +233,11 @@ function GetDTDIndent()
" again, if none exists, indent one level.
let [name, end] = s:lex(line, end)
if name == ""
- return indent + &sw
+ return indent + shiftwidth()
elseif name == '%'
let [name, end] = s:lex(line, end)
if name == ""
- return indent + &sw
+ return indent + shiftwidth()
endif
endif
@@ -256,27 +256,27 @@ function GetDTDIndent()
" we’re now done with this entity.
let [value, end] = s:lex(line, end)
if value == ""
- return indent + &sw
+ return indent + shiftwidth()
elseif value == 'SYSTEM' || value == 'PUBLIC'
let [quoted_string, end] = s:lex(line, end, '\%("[^"]\+"\|''[^'']\+''\)')
if quoted_string == ""
- return indent + &sw * 2
+ return indent + shiftwidth() * 2
endif
if value == 'PUBLIC'
let [quoted_string, end] = s:lex(line, end, '\%("[^"]\+"\|''[^'']\+''\)')
if quoted_string == ""
- return indent + &sw * 2
+ return indent + shiftwidth() * 2
endif
endif
let [ndata, end] = s:lex(line, end)
if ndata == ""
- return indent + &sw
+ return indent + shiftwidth()
endif
let [name, end] = s:lex(line, end)
- return name == "" ? (indent + &sw * 2) : indent
+ return name == "" ? (indent + shiftwidth() * 2) : indent
else
return indent
endif
@@ -284,24 +284,24 @@ function GetDTDIndent()
" Check for notation name. If none exists, indent one level.
let [name, end] = s:lex(line, end)
if name == ""
- return indent + &sw
+ return indent + shiftwidth()
endif
" Now check for the external ID. If none exists, indent one level.
let [id, end] = s:lex(line, end)
if id == ""
- return indent + &sw
+ return indent + shiftwidth()
elseif id == 'SYSTEM' || id == 'PUBLIC'
let [quoted_string, end] = s:lex(line, end, '\%("[^"]\+"\|''[^'']\+''\)')
if quoted_string == ""
- return indent + &sw * 2
+ return indent + shiftwidth() * 2
endif
if id == 'PUBLIC'
let [quoted_string, end] = s:lex(line, end, '\%("[^"]\+"\|''[^'']\+''\|>\)')
if quoted_string == ""
" TODO: Should use s:lex here on getline(v:lnum) and check for >.
- return getline(v:lnum) =~ '^\s*>' ? indent : (indent + &sw * 2)
+ return getline(v:lnum) =~ '^\s*>' ? indent : (indent + shiftwidth() * 2)
elseif quoted_string == '>'
return indent
endif
diff --git a/runtime/indent/dylan.vim b/runtime/indent/dylan.vim
index 0afcbeada7..6811ec4af5 100644
--- a/runtime/indent/dylan.vim
+++ b/runtime/indent/dylan.vim
@@ -1,7 +1,7 @@
" Vim indent file
" Language: Dylan
" Version: 0.01
-" Last Change: 2003 Feb 04
+" Last Change: 2017 Jun 13
" Maintainer: Brent A. Fulgham <bfulgham@debian.org>
" Only load this indent file when no other was loaded.
@@ -45,13 +45,13 @@ function DylanGetIndent()
" If previous line was a 'define', indent
if prevline =~? '\(^\s*\(begin\|block\|case\|define\|else\|elseif\|for\|finally\|if\|select\|unless\|while\)\|\s*\S*\s*=>$\)'
- let chg = &sw
+ let chg = shiftwidth()
" local methods indent the shift-width, plus 6 for the 'local'
elseif prevline =~? '^\s*local'
- let chg = &sw + 6
+ let chg = shiftwidth() + 6
" If previous line was a let with no closing semicolon, indent
elseif prevline =~? '^\s*let.*[^;]\s*$'
- let chg = &sw
+ let chg = shiftwidth()
" If previous line opened a parenthesis, and did not close it, indent
elseif prevline =~ '^.*(\s*[^)]*\((.*)\)*[^)]*$'
return = match( prevline, '(.*\((.*)\|[^)]\)*.*$') + 1
@@ -75,13 +75,13 @@ function DylanGetIndent()
" line doesn't start with an indentable command:
let curr_str = getline(curr_line)
if curr_str =~? '^\s*\(begin\|block\|case\|define\|else\|elseif\|for\|finally\|if\|select\|unless\|while\)'
- let chg = &sw
+ let chg = shiftwidth()
endif
endif
" If a line starts with end, un-indent (even if we just indented!)
if cline =~? '^\s*\(cleanup\|end\|else\|elseif\|exception\|finally\|otherwise\)'
- let chg = chg - &sw
+ let chg = chg - shiftwidth()
endif
return ind + chg
diff --git a/runtime/indent/eiffel.vim b/runtime/indent/eiffel.vim
index 87e82e833d..d7667a8346 100644
--- a/runtime/indent/eiffel.vim
+++ b/runtime/indent/eiffel.vim
@@ -2,9 +2,10 @@
" Language: Eiffel
" Maintainer: Jocelyn Fiat <jfiat@eiffel.com>
" Previous-Maintainer: David Clarke <gadicath@dishevelled.net>
+" Contributions from: Takuya Fujiwara
" Contributions from: Thilo Six
-" $Date: 2004/12/09 21:33:52 $
-" $Revision: 1.3 $
+" $Date: 2017/03/08 06:00:00 $
+" $Revision: 1.4 $
" URL: https://github.com/eiffelhub/vim-eiffel
" Only load this indent file when no other was loaded.
@@ -28,7 +29,7 @@ let b:undo_indent = "setl smartindent< indentkeys< indentexpr< autoindent< comme
" Define some stuff
" keywords grouped by indenting
let s:trust_user_indent = '\(+\)\(\s*\(--\).*\)\=$'
-let s:relative_indent = '^\s*\(deferred\|class\|feature\|creation\|inherit\|loop\|from\|until\|if\|else\|elseif\|ensure\|require\|check\|do\|local\|invariant\|variant\|rename\|redefine\|do\|export\)\>'
+let s:relative_indent = '^\s*\(deferred\|class\|feature\|creation\|inherit\|loop\|from\|across\|until\|if\|else\|elseif\|ensure\|require\|check\|do\|local\|invariant\|variant\|rename\|redefine\|do\|export\)\>'
let s:outdent = '^\s*\(else\|invariant\|variant\|do\|require\|until\|loop\|local\)\>'
let s:no_indent = '^\s*\(class\|feature\|creation\|inherit\)\>'
let s:single_dent = '^[^-]\+[[:alnum:]]\+ is\(\s*\(--\).*\)\=$'
@@ -63,23 +64,23 @@ function GetEiffelIndent()
" Add a 'shiftwidth' after lines that start with an indent word
let ind = indent(lnum)
if getline(lnum) =~ s:relative_indent
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
" Indent to single indent
if getline(v:lnum) =~ s:single_dent && getline(v:lnum) !~ s:relative_indent
\ && getline(v:lnum) !~ '\s*\<\(and\|or\|implies\)\>'
- let ind = &sw
+ let ind = shiftwidth()
endif
" Indent to double indent
if getline(v:lnum) =~ s:inheritance_dent
- let ind = 2 * &sw
+ let ind = 2 * shiftwidth()
endif
" Indent line after the first line of the function definition
if getline(lnum) =~ s:single_dent
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
" The following should always be at the start of a line, no indenting
@@ -91,17 +92,17 @@ function GetEiffelIndent()
" or first thing after the 'do'
if getline(v:lnum) =~ s:outdent && getline(v:lnum - 1) !~ s:single_dent
\ && getline(v:lnum - 1) !~ '^\s*do\>'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
" Subtract a shiftwidth for end statements
if getline(v:lnum) =~ '^\s*end\>'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
" set indent of zero end statements that are at an indent of 3, this should
" only ever be the class's end.
- if getline(v:lnum) =~ '^\s*end\>' && ind == &sw
+ if getline(v:lnum) =~ '^\s*end\>' && ind == shiftwidth()
let ind = 0
endif
diff --git a/runtime/indent/erlang.vim b/runtime/indent/erlang.vim
index 7569fe9106..9228f18683 100644
--- a/runtime/indent/erlang.vim
+++ b/runtime/indent/erlang.vim
@@ -669,7 +669,7 @@ function! s:BeginningOfClauseFound(stack, token, stored_vcol)
call s:Pop(a:stack)
if empty(a:stack)
call s:Log(' Stack is ["when"], so LTI is in a guard -> return')
- return [1, a:stored_vcol + &sw + 2]
+ return [1, a:stored_vcol + shiftwidth() + 2]
else
return [1, s:UnexpectedToken(a:token, a:stack)]
endif
@@ -678,7 +678,7 @@ function! s:BeginningOfClauseFound(stack, token, stored_vcol)
call s:Pop(a:stack)
if empty(a:stack)
call s:Log(' Stack is ["->"], so LTI is in function body -> return')
- return [1, a:stored_vcol + &sw]
+ return [1, a:stored_vcol + shiftwidth()]
elseif a:stack[0] ==# ';'
call s:Pop(a:stack)
if empty(a:stack)
@@ -797,7 +797,7 @@ function! s:ErlangCalcIndent2(lnum, stack)
elseif token ==# 'begin'
let [ret, res] = s:BeginElementFound(stack, token, curr_vcol,
- \stored_vcol, 'end', &sw)
+ \stored_vcol, 'end', shiftwidth())
if ret | return res | endif
" case EXPR of BRANCHES end
@@ -848,11 +848,11 @@ function! s:ErlangCalcIndent2(lnum, stack)
elseif stack == ['->']
call s:Log(' LTI is in a branch after ' .
\'"of/receive/after/if/catch" -> return')
- return stored_vcol + &sw
+ return stored_vcol + shiftwidth()
elseif stack == ['when']
call s:Log(' LTI is in a guard after ' .
\'"of/receive/after/if/catch" -> return')
- return stored_vcol + &sw
+ return stored_vcol + shiftwidth()
else
return s:UnexpectedToken(token, stack)
endif
@@ -888,7 +888,7 @@ function! s:ErlangCalcIndent2(lnum, stack)
if empty(stack)
call s:Log(' LTI is in a condition; matching ' .
\'"case/if/try/receive" found')
- let stored_vcol = curr_vcol + &sw
+ let stored_vcol = curr_vcol + shiftwidth()
elseif stack[0] ==# 'align_to_begin_element'
call s:Pop(stack)
let stored_vcol = curr_vcol
@@ -897,23 +897,23 @@ function! s:ErlangCalcIndent2(lnum, stack)
\'"case/if/try/receive" found')
call s:Pop(stack)
call s:Pop(stack)
- let stored_vcol = curr_vcol + &sw
+ let stored_vcol = curr_vcol + shiftwidth()
elseif stack[0] ==# '->'
call s:Log(' LTI is in a branch; matching ' .
\'"case/if/try/receive" found')
call s:Pop(stack)
- let stored_vcol = curr_vcol + 2 * &sw
+ let stored_vcol = curr_vcol + 2 * shiftwidth()
elseif stack[0] ==# 'when'
call s:Log(' LTI is in a guard; matching ' .
\'"case/if/try/receive" found')
call s:Pop(stack)
- let stored_vcol = curr_vcol + 2 * &sw + 2
+ let stored_vcol = curr_vcol + 2 * shiftwidth() + 2
endif
endif
let [ret, res] = s:BeginElementFound(stack, token, curr_vcol,
- \stored_vcol, 'end', &sw)
+ \stored_vcol, 'end', shiftwidth())
if ret | return res | endif
elseif token ==# 'fun'
@@ -930,7 +930,7 @@ function! s:ErlangCalcIndent2(lnum, stack)
" stack = ['when'] => LTI is in a guard
if empty(stack)
call s:Log(' LTI is in a condition; matching "fun" found')
- let stored_vcol = curr_vcol + &sw
+ let stored_vcol = curr_vcol + shiftwidth()
elseif len(stack) > 1 && stack[0] ==# '->' && stack[1] ==# ';'
call s:Log(' LTI is in a condition; matching "fun" found')
call s:Pop(stack)
@@ -938,15 +938,15 @@ function! s:ErlangCalcIndent2(lnum, stack)
elseif stack[0] ==# '->'
call s:Log(' LTI is in a branch; matching "fun" found')
call s:Pop(stack)
- let stored_vcol = curr_vcol + 2 * &sw
+ let stored_vcol = curr_vcol + 2 * shiftwidth()
elseif stack[0] ==# 'when'
call s:Log(' LTI is in a guard; matching "fun" found')
call s:Pop(stack)
- let stored_vcol = curr_vcol + 2 * &sw + 2
+ let stored_vcol = curr_vcol + 2 * shiftwidth() + 2
endif
let [ret, res] = s:BeginElementFound(stack, token, curr_vcol,
- \stored_vcol, 'end', &sw)
+ \stored_vcol, 'end', shiftwidth())
if ret | return res | endif
else
" Pass: we have a function reference (e.g. "fun f/0")
@@ -1220,7 +1220,7 @@ function! s:ErlangCalcIndent2(lnum, stack)
" when A,
" LTI
let [ret, res] = s:BeginElementFoundIfEmpty(stack, token, curr_vcol,
- \stored_vcol, &sw)
+ \stored_vcol, shiftwidth())
if ret | return res | endif
else
" Example:
@@ -1252,7 +1252,7 @@ function! s:ErlangCalcIndent2(lnum, stack)
" If LTI is between an 'after' and the corresponding
" 'end', then let's return
let [ret, res] = s:BeginElementFoundIfEmpty(stack, token, curr_vcol,
- \stored_vcol, &sw)
+ \stored_vcol, shiftwidth())
if ret | return res | endif
endif
diff --git a/runtime/indent/eruby.vim b/runtime/indent/eruby.vim
index 80cab7000e..5058325495 100644
--- a/runtime/indent/eruby.vim
+++ b/runtime/indent/eruby.vim
@@ -19,6 +19,9 @@ else
endif
unlet! b:did_indent
+" Force HTML indent to not keep state.
+let b:html_indent_usestate = 0
+
if &l:indentexpr == ''
if &l:cindent
let &l:indentexpr = 'cindent(v:lnum)'
@@ -38,7 +41,14 @@ if exists("*GetErubyIndent")
finish
endif
+" this file uses line continuations
+let s:cpo_sav = &cpo
+set cpo&vim
+
function! GetErubyIndent(...)
+ " The value of a single shift-width
+ let sw = shiftwidth()
+
if a:0 && a:1 == '.'
let v:lnum = line('.')
elseif a:0 && a:1 =~ '^\d'
@@ -52,31 +62,44 @@ function! GetErubyIndent(...)
let ind = GetRubyIndent(v:lnum)
else
exe "let ind = ".b:eruby_subtype_indentexpr
+
+ " Workaround for Andy Wokula's HTML indent. This should be removed after
+ " some time, since the newest version is fixed in a different way.
+ if b:eruby_subtype_indentexpr =~# '^HtmlIndent('
+ \ && exists('b:indent')
+ \ && type(b:indent) == type({})
+ \ && has_key(b:indent, 'lnum')
+ " Force HTML indent to not keep state
+ let b:indent.lnum = -1
+ endif
endif
let lnum = prevnonblank(v:lnum-1)
let line = getline(lnum)
let cline = getline(v:lnum)
if cline =~# '^\s*<%[-=]\=\s*\%(}\|end\|else\|\%(ensure\|rescue\|elsif\|when\).\{-\}\)\s*\%([-=]\=%>\|$\)'
- let ind = ind - &sw
+ let ind = ind - sw
endif
if line =~# '\S\s*<%[-=]\=\s*\%(}\|end\).\{-\}\s*\%([-=]\=%>\|$\)'
- let ind = ind - &sw
+ let ind = ind - sw
endif
if line =~# '\%({\|\<do\)\%(\s*|[^|]*|\)\=\s*[-=]\=%>'
- let ind = ind + &sw
+ let ind = ind + sw
elseif line =~# '<%[-=]\=\s*\%(module\|class\|def\|if\|for\|while\|until\|else\|elsif\|case\|when\|unless\|begin\|ensure\|rescue\)\>.*%>'
- let ind = ind + &sw
+ let ind = ind + sw
endif
if line =~# '^\s*<%[=#-]\=\s*$' && cline !~# '^\s*end\>'
- let ind = ind + &sw
+ let ind = ind + sw
endif
- if line !~# '^\s*<%' && line =~# '%>\s*$'
- let ind = ind - &sw
+ if line !~# '^\s*<%' && line =~# '%>\s*$' && line !~# '^\s*end\>'
+ let ind = ind - sw
endif
if cline =~# '^\s*[-=]\=%>\s*$'
- let ind = ind - &sw
+ let ind = ind - sw
endif
return ind
endfunction
+let &cpo = s:cpo_sav
+unlet! s:cpo_sav
+
" vim:set sw=2 sts=2 ts=8 noet:
diff --git a/runtime/indent/eterm.vim b/runtime/indent/eterm.vim
index f25f5f4dad..8ee342fcfa 100644
--- a/runtime/indent/eterm.vim
+++ b/runtime/indent/eterm.vim
@@ -1,7 +1,7 @@
" Vim indent file
-" Language: Eterm configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-12-20
+" Language: Eterm configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-12-20
if exists("b:did_indent")
finish
@@ -25,11 +25,11 @@ function GetEtermIndent()
let ind = indent(lnum)
if getline(lnum) =~ '^\s*begin\>'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
if getline(v:lnum) =~ '^\s*end\>'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
return ind
diff --git a/runtime/indent/falcon.vim b/runtime/indent/falcon.vim
index 84b16d55f0..b34e7cfd47 100644
--- a/runtime/indent/falcon.vim
+++ b/runtime/indent/falcon.vim
@@ -339,7 +339,7 @@ function FalconGetIndent(...)
" If the previous line ended with a block opening, add a level of indent.
if s:Match(lnum, s:block_regex)
- return indent(s:GetMSL(lnum)) + &sw
+ return indent(s:GetMSL(lnum)) + shiftwidth()
endif
" If it contained hanging closing brackets, find the rightmost one, find its
@@ -350,20 +350,20 @@ function FalconGetIndent(...)
if opening.pos != -1
if opening.type == '(' && searchpair('(', '', ')', 'bW', s:skip_expr) > 0
if col('.') + 1 == col('$')
- return ind + &sw
+ return ind + shiftwidth()
else
return virtcol('.')
endif
else
let nonspace = matchend(line, '\S', opening.pos + 1) - 1
- return nonspace > 0 ? nonspace : ind + &sw
+ return nonspace > 0 ? nonspace : ind + shiftwidth()
endif
elseif closing.pos != -1
call cursor(lnum, closing.pos + 1)
normal! %
if s:Match(line('.'), s:falcon_indent_keywords)
- return indent('.') + &sw
+ return indent('.') + shiftwidth()
else
return indent('.')
endif
@@ -392,7 +392,7 @@ function FalconGetIndent(...)
let col = s:Match(lnum, s:falcon_indent_keywords)
if col > 0
call cursor(lnum, col)
- let ind = virtcol('.') - 1 + &sw
+ let ind = virtcol('.') - 1 + shiftwidth()
" TODO: make this better (we need to count them) (or, if a searchpair
" fails, we know that something is lacking an end and thus we indent a
" level
@@ -422,9 +422,9 @@ function FalconGetIndent(...)
" TODO: this does not take into account contrived things such as
" module Foo; class Bar; end
if s:Match(lnum, s:falcon_indent_keywords)
- let ind = msl_ind + &sw
+ let ind = msl_ind + shiftwidth()
if s:Match(lnum, s:end_end_regex)
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
return ind
endif
@@ -433,7 +433,7 @@ function FalconGetIndent(...)
" closing bracket, indent one extra level.
if s:Match(lnum, s:non_bracket_continuation_regex) && !s:Match(lnum, '^\s*\([\])}]\|end\)')
if lnum == p_lnum
- let ind = msl_ind + &sw
+ let ind = msl_ind + shiftwidth()
else
let ind = msl_ind
endif
diff --git a/runtime/indent/fortran.vim b/runtime/indent/fortran.vim
index e19a19fb1f..2ba69e86df 100644
--- a/runtime/indent/fortran.vim
+++ b/runtime/indent/fortran.vim
@@ -1,11 +1,12 @@
" Vim indent file
" Language: Fortran 2008 (and older: Fortran 2003, 95, 90, and 77)
-" Version: 0.44
-" Last Change: 2016 Jan. 26
+" Version: 47
+" Last Change: 2016 Oct. 29
" Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
" Usage: For instructions, do :help fortran-indent from Vim
" Credits:
-" Useful suggestions were made by: Albert Oliver Serra and Takuya Fujiwara.
+" Useful suggestions were made, in chronological order, by:
+" Albert Oliver Serra, Takuya Fujiwara and Philipp Edelmann.
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -99,9 +100,9 @@ function FortranGetIndent(lnum)
endif
endif
- "Add a shiftwidth to statements following if, else, else if, case,
+ "Add a shiftwidth to statements following if, else, else if, case, class,
"where, else where, forall, type, interface and associate statements
- if prevstat =~? '^\s*\(case\|else\|else\s*if\|else\s*where\)\>'
+ if prevstat =~? '^\s*\(case\|class\|else\|else\s*if\|else\s*where\)\>'
\ ||prevstat=~? '^\s*\(type\|interface\|associate\|enum\)\>'
\ ||prevstat=~?'^\s*\(\d\+\s\)\=\s*\(\a\w*\s*:\)\=\s*\(forall\|where\|block\)\>'
\ ||prevstat=~? '^\s*\(\d\+\s\)\=\s*\(\a\w*\s*:\)\=\s*if\>'
@@ -121,7 +122,8 @@ function FortranGetIndent(lnum)
let prefix='\(\(pure\|impure\|elemental\|recursive\)\s\+\)\{,2}'
let type='\(\(integer\|real\|double\s\+precision\|complex\|logical'
\.'\|character\|type\|class\)\s*\S*\s\+\)\='
- if prevstat =~? '^\s*\(module\|contains\|program\)\>'
+ if prevstat =~? '^\s*\(contains\|submodule\|program\)\>'
+ \ ||prevstat =~? '^\s*'.'module\>\(\s*\procedure\)\@!'
\ ||prevstat =~? '^\s*'.prefix.'subroutine\>'
\ ||prevstat =~? '^\s*'.prefix.type.'function\>'
\ ||prevstat =~? '^\s*'.type.prefix.'function\>'
@@ -129,16 +131,16 @@ function FortranGetIndent(lnum)
endif
if getline(v:lnum) =~? '^\s*contains\>'
\ ||getline(v:lnum)=~? '^\s*end\s*'
- \ .'\(function\|subroutine\|module\|program\)\>'
+ \ .'\(function\|subroutine\|module\|submodule\|program\)\>'
let ind = ind - shiftwidth()
endif
endif
- "Subtract a shiftwidth from else, else if, elsewhere, case, end if,
+ "Subtract a shiftwidth from else, else if, elsewhere, case, class, end if,
" end where, end select, end forall, end interface, end associate,
- " end enum, and end type statements
+ " end enum, end type, end block and end type statements
if getline(v:lnum) =~? '^\s*\(\d\+\s\)\=\s*'
- \. '\(else\|else\s*if\|else\s*where\|case\|'
+ \. '\(else\|else\s*if\|else\s*where\|case\|class\|'
\. 'end\s*\(if\|where\|select\|interface\|'
\. 'type\|forall\|associate\|enum\|block\)\)\>'
let ind = ind - shiftwidth()
@@ -152,9 +154,6 @@ function FortranGetIndent(lnum)
if prevstat =~ '&\s*$' && prev2stat !~ '&\s*$'
let ind = ind + shiftwidth()
endif
- if prevstat =~ '&\s*$' && prevstat =~ '\<else\s*if\>'
- let ind = ind - shiftwidth()
- endif
"Line after last continuation line
if prevstat !~ '&\s*$' && prev2stat =~ '&\s*$' && prevstat !~? '\<then\>'
let ind = ind - shiftwidth()
diff --git a/runtime/indent/framescript.vim b/runtime/indent/framescript.vim
index 49ff92a81d..f9a274eab6 100644
--- a/runtime/indent/framescript.vim
+++ b/runtime/indent/framescript.vim
@@ -1,7 +1,7 @@
" Vim indent file
-" Language: FrameScript
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-19
+" Language: FrameScript
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-19
if exists("b:did_indent")
finish
@@ -30,11 +30,11 @@ function GetFrameScriptIndent()
let ind = indent(lnum)
if getline(lnum) =~? '^\s*\%(If\|Loop\|Sub\)'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
if getline(v:lnum) =~? '^\s*\%(Else\|End\%(If\|Loop\|Sub\)\)'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
return ind
diff --git a/runtime/indent/gitconfig.vim b/runtime/indent/gitconfig.vim
index 7d5d44b779..6a670ee271 100644
--- a/runtime/indent/gitconfig.vim
+++ b/runtime/indent/gitconfig.vim
@@ -1,7 +1,7 @@
" Vim indent file
" Language: git config file
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
-" Last Change: 2013 May 30
+" Last Change: 2017 Jun 13
if exists("b:did_indent")
finish
@@ -20,17 +20,18 @@ if exists("*GetGitconfigIndent")
endif
function! GetGitconfigIndent()
+ let sw = shiftwidth()
let line = getline(prevnonblank(v:lnum-1))
let cline = getline(v:lnum)
if line =~ '\\\@<!\%(\\\\\)*\\$'
" odd number of slashes, in a line continuation
- return 2 * &sw
+ return 2 * sw
elseif cline =~ '^\s*\['
return 0
elseif cline =~ '^\s*\a'
- return &sw
+ return sw
elseif cline == '' && line =~ '^\['
- return &sw
+ return sw
else
return -1
endif
diff --git a/runtime/indent/gitolite.vim b/runtime/indent/gitolite.vim
index 33b7c9f312..b36f30a494 100644
--- a/runtime/indent/gitolite.vim
+++ b/runtime/indent/gitolite.vim
@@ -1,8 +1,10 @@
" Vim indent file
" Language: gitolite configuration
-" URL: https://github.com/tmatilai/gitolite.vim
-" Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>
-" Last Change: 2011-12-24
+" URL: https://github.com/sitaramc/gitolite/blob/master/contrib/vim/indent/gitolite.vim
+" (https://raw.githubusercontent.com/sitaramc/gitolite/master/contrib/vim/indent/gitolite.vim)
+" Maintainer: Sitaram Chamarty <sitaramc@gmail.com>
+" (former Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>)
+" Last Change: 2017 Oct 05
if exists("b:did_indent")
finish
@@ -27,11 +29,13 @@ function! GetGitoliteIndent()
let cline = getline(v:lnum)
if cline =~ '^\s*\(C\|R\|RW\|RW+\|RWC\|RW+C\|RWD\|RW+D\|RWCD\|RW+CD\|-\)[ \t=]'
- return &sw
+ return shiftwidth()
elseif cline =~ '^\s*config\s'
- return &sw
+ return shiftwidth()
+ elseif cline =~ '^\s*option\s'
+ return shiftwidth()
elseif pline =~ '^\s*repo\s' && cline =~ '^\s*\(#.*\)\?$'
- return &sw
+ return shiftwidth()
elseif cline =~ '^\s*#'
return indent(prevln)
elseif cline =~ '^\s*$'
diff --git a/runtime/indent/go.vim b/runtime/indent/go.vim
index 412ac871c4..bf9ff75e6c 100644
--- a/runtime/indent/go.vim
+++ b/runtime/indent/go.vim
@@ -1,7 +1,7 @@
" Vim indent file
" Language: Go
" Maintainer: David Barnett (https://github.com/google/vim-ft-go)
-" Last Change: 2014 Aug 16
+" Last Change: 2017 Jun 13
"
" TODO:
" - function invocations split across lines
@@ -23,18 +23,6 @@ if exists('*GoIndent')
finish
endif
-" The shiftwidth() function is relatively new.
-" Don't require it to exist.
-if exists('*shiftwidth')
- function s:sw() abort
- return shiftwidth()
- endfunction
-else
- function s:sw() abort
- return &shiftwidth
- endfunction
-endif
-
function! GoIndent(lnum)
let l:prevlnum = prevnonblank(a:lnum-1)
if l:prevlnum == 0
@@ -51,17 +39,17 @@ function! GoIndent(lnum)
if l:prevl =~ '[({]\s*$'
" previous line opened a block
- let l:ind += s:sw()
+ let l:ind += shiftwidth()
endif
if l:prevl =~# '^\s*\(case .*\|default\):$'
" previous line is part of a switch statement
- let l:ind += s:sw()
+ let l:ind += shiftwidth()
endif
" TODO: handle if the previous line is a label.
if l:thisl =~ '^\s*[)}]'
" this line closed a block
- let l:ind -= s:sw()
+ let l:ind -= shiftwidth()
endif
" Colons are tricky.
@@ -69,7 +57,7 @@ function! GoIndent(lnum)
" We ignore trying to deal with jump labels because (a) they're rare, and
" (b) they're hard to disambiguate from a composite literal key.
if l:thisl =~# '^\s*\(case .*\|default\):$'
- let l:ind -= s:sw()
+ let l:ind -= shiftwidth()
endif
return l:ind
diff --git a/runtime/indent/haml.vim b/runtime/indent/haml.vim
index c47a8a59c7..e6416e6f53 100644
--- a/runtime/indent/haml.vim
+++ b/runtime/indent/haml.vim
@@ -1,7 +1,7 @@
" Vim indent file
" Language: Haml
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
-" Last Change: 2013 May 30
+" Last Change: 2017 Jun 13
if exists("b:did_indent")
finish
@@ -37,10 +37,11 @@ function! GetHamlIndent()
let line = substitute(line,'^\s\+','','')
let indent = indent(lnum)
let cindent = indent(v:lnum)
+ let sw = shiftwidth()
if cline =~# '\v^-\s*%(elsif|else|when)>'
- let indent = cindent < indent ? cindent : indent - &sw
+ let indent = cindent < indent ? cindent : indent - sw
endif
- let increase = indent + &sw
+ let increase = indent + sw
if indent == indent(lnum)
let indent = cindent <= indent ? -1 : increase
endif
diff --git a/runtime/indent/hamster.vim b/runtime/indent/hamster.vim
index 93e7db486e..b27a173924 100644
--- a/runtime/indent/hamster.vim
+++ b/runtime/indent/hamster.vim
@@ -27,13 +27,13 @@ function HamGetIndent(lnum)
" Add a shiftwidth to statements following if, else, elseif,
" case, select, default, do, until, while, for, start
if prevline =~? '^\s*\<\(if\|else\%(if\)\?\|for\|repeat\|do\|while\|sub\)\>'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
" Subtract a shiftwidth from else, elseif, end(if|while|for), until
let line = getline(v:lnum)
if line =~? '^\s*\(else\|elseif\|loop\|until\|end\%(if\|while\|for\|sub\)\)\>'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
return ind
diff --git a/runtime/indent/hog.vim b/runtime/indent/hog.vim
index 02ac7d4d1b..ece587d46f 100644
--- a/runtime/indent/hog.vim
+++ b/runtime/indent/hog.vim
@@ -47,7 +47,7 @@ function GetHogIndent()
" Continuation of a line that wasn't indented
let prevline = getline(prevlnum)
if prevline =~ '^\k\+.*\\\s*$'
- return &sw
+ return shiftwidth()
endif
" Continuation of a line that was indented
@@ -58,13 +58,13 @@ function GetHogIndent()
" Indent the next line if previous line contained a start of a block
" definition ('{' or '(').
if prevline =~ '^\k\+[^#]*{}\@!\s*$' " TODO || prevline =~ '^\k\+[^#]*()\@!\s*$'
- return &sw
+ return shiftwidth()
endif
" Match inside of a block
if s:IsInBlock(v:lnum)
if prevline =~ "^\k\+.*$"
- return &sw
+ return shiftwidth()
else
return indent(prevlnum)
endif
diff --git a/runtime/indent/html.vim b/runtime/indent/html.vim
index 828bc3120b..37697841fd 100644
--- a/runtime/indent/html.vim
+++ b/runtime/indent/html.vim
@@ -2,7 +2,7 @@
" Header: "{{{
" Maintainer: Bram Moolenaar
" Original Author: Andy Wokula <anwoku@yahoo.de>
-" Last Change: 2016 Mar 30
+" Last Change: 2017 Jun 13
" Version: 1.0
" Description: HTML indent script with cached state for faster indenting on a
" range of lines.
@@ -25,27 +25,22 @@
if exists("b:did_indent") "{{{
finish
endif
+
+" Load the Javascript indent script first, it defines GetJavascriptIndent().
+" Undo the rest.
+" Load base python indent.
+if !exists('*GetJavascriptIndent')
+ runtime! indent/javascript.vim
+endif
let b:did_indent = 1
setlocal indentexpr=HtmlIndent()
setlocal indentkeys=o,O,<Return>,<>>,{,},!^F
-" "j1" is included to make cindent() work better with Javascript.
-setlocal cino=j1
-" "J1" should be included, but it doen't work properly before 7.4.355.
-if has("patch-7.4.355")
- setlocal cino+=J1
-endif
-" Before patch 7.4.355 indenting after "(function() {" does not work well, add
-" )2 to limit paren search.
-if !has("patch-7.4.355")
- setlocal cino+=)2
-endif
-
" Needed for % to work when finding start/end of a tag.
setlocal matchpairs+=<:>
-let b:undo_indent = "setlocal inde< indk< cino<"
+let b:undo_indent = "setlocal inde< indk<"
" b:hi_indent keeps state to speed up indenting consecutive lines.
let b:hi_indent = {"lnum": -1}
@@ -56,15 +51,6 @@ if exists("*HtmlIndent") && !exists('g:force_reload_html')
finish
endif
-" shiftwidth() exists since patch 7.3.694
-if exists('*shiftwidth')
- let s:ShiftWidth = function('shiftwidth')
-else
- func! s:ShiftWidth()
- return &shiftwidth
- endfunc
-endif
-
" Allow for line continuation below.
let s:cpo_save = &cpo
set cpo-=C
@@ -128,7 +114,7 @@ func! HtmlIndent_CheckUserSettings()
let indone = {"zero": 0
\,"auto": "indent(prevnonblank(v:lnum-1))"
- \,"inc": "b:hi_indent.blocktagind + s:ShiftWidth()"}
+ \,"inc": "b:hi_indent.blocktagind + shiftwidth()"}
let script1 = ''
if exists("b:html_indent_script1")
@@ -363,7 +349,7 @@ func! s:CheckBlockTag(blocktag, ind)
endif
let b:hi_newstate.blocklnr = v:lnum
" save allover indent for the endtag
- let b:hi_newstate.blocktagind = b:hi_indent.baseindent + (s:nextrel + s:curind) * s:ShiftWidth()
+ let b:hi_newstate.blocktagind = b:hi_indent.baseindent + (s:nextrel + s:curind) * shiftwidth()
if a:ind == 3
return "SCRIPT" " all except this must be lowercase
" line is to be checked again for the type attribute
@@ -485,7 +471,7 @@ func! s:FreshState(lnum)
let state.blocklnr = stopline
" check preceding tags in the line:
call s:CountITags(tagline[: stopcol-2])
- let state.blocktagind = indent(stopline) + (s:curind + s:nextrel) * s:ShiftWidth()
+ let state.blocktagind = indent(stopline) + (s:curind + s:nextrel) * shiftwidth()
return state
elseif stopline == state.lnum
" handle special case: previous line (= state.lnum) contains a
@@ -495,7 +481,7 @@ func! s:FreshState(lnum)
if !swendtag
let [bline, bcol] = searchpos('<'.blocktag[1:].'\>', "bnW")
call s:CountITags(tolower(getline(bline)[: bcol-2]))
- let state.baseindent = indent(bline) + (s:curind + s:nextrel) * s:ShiftWidth()
+ let state.baseindent = indent(bline) + (s:curind + s:nextrel) * shiftwidth()
return state
endif
endif
@@ -516,7 +502,7 @@ func! s:FreshState(lnum)
if found == 2
let state.baseindent = b:hi_indent.baseindent
endif
- let state.blocktagind = indent(comlnum) + (s:curind + s:nextrel) * s:ShiftWidth()
+ let state.blocktagind = indent(comlnum) + (s:curind + s:nextrel) * shiftwidth()
return state
endif
@@ -535,7 +521,7 @@ func! s:FreshState(lnum)
let text = tolower(getline(comlnum)[: comcol-2])
endif
call s:CountITags(text)
- let state.baseindent = indent(comlnum) + (s:curind + s:nextrel) * s:ShiftWidth()
+ let state.baseindent = indent(comlnum) + (s:curind + s:nextrel) * shiftwidth()
" TODO check tags that follow "-->"
return state
endif
@@ -555,9 +541,9 @@ func! s:FreshState(lnum)
let text = getline(start_lnum)
let swendtag = match(text, '^\s*</') >= 0
call s:CountITags(text[: col('.') - 2])
- let state.baseindent += s:nextrel * s:ShiftWidth()
+ let state.baseindent += s:nextrel * shiftwidth()
if !swendtag
- let state.baseindent += s:curind * s:ShiftWidth()
+ let state.baseindent += s:curind * shiftwidth()
endif
endif
return state
@@ -570,9 +556,9 @@ func! s:FreshState(lnum)
let text = getline(state.lnum)
let swendtag = match(text, '^\s*</') >= 0
call s:CountITags(tolower(text))
- let state.baseindent = indent(state.lnum) + s:nextrel * s:ShiftWidth()
+ let state.baseindent = indent(state.lnum) + s:nextrel * shiftwidth()
if !swendtag
- let state.baseindent += s:curind * s:ShiftWidth()
+ let state.baseindent += s:curind * shiftwidth()
endif
return state
endfunc "}}}
@@ -596,7 +582,7 @@ func! s:Alien3()
return eval(b:hi_js1indent)
endif
if b:hi_indent.scripttype == "javascript"
- return cindent(v:lnum)
+ return GetJavascriptIndent()
else
return -1
endif
@@ -651,7 +637,7 @@ func! s:CSSIndent()
" add indent after {
let brace_counts = HtmlIndent_CountBraces(prev_lnum)
- let extra = brace_counts.c_open * s:ShiftWidth()
+ let extra = brace_counts.c_open * shiftwidth()
let prev_text = getline(prev_lnum)
let below_end_brace = prev_text =~ '}\s*$'
@@ -668,7 +654,7 @@ func! s:CSSIndent()
" if the current line is not a comment or starts with @ (used by template
" systems) reduce indent if previous line is a continuation line
if !prev_hasfield && !prev_special
- let extra = -s:ShiftWidth()
+ let extra = -shiftwidth()
endif
else
let cur_hasfield = curtext =~ '^\s*[a-zA-Z0-9-]\+:'
@@ -676,14 +662,14 @@ func! s:CSSIndent()
if !cur_hasfield && (prev_hasfield || prev_unfinished)
" Continuation line has extra indent if the previous line was not a
" continuation line.
- let extra = s:ShiftWidth()
+ let extra = shiftwidth()
" Align with @if
if prev_text =~ '^\s*@if '
let extra = 4
endif
elseif cur_hasfield && !prev_hasfield && !prev_special
" less indent below a continuation line
- let extra = -s:ShiftWidth()
+ let extra = -shiftwidth()
endif
endif
endif
@@ -704,10 +690,10 @@ func! s:CSSIndent()
if special
" do not reduce indent below @{ ... }
if extra < 0
- let extra += s:ShiftWidth()
+ let extra += shiftwidth()
endif
else
- let extra -= (brace_counts.c_close - (prev_text =~ '^\s*}')) * s:ShiftWidth()
+ let extra -= (brace_counts.c_close - (prev_text =~ '^\s*}')) * shiftwidth()
endif
endif
@@ -715,10 +701,10 @@ func! s:CSSIndent()
if extra == 0
if brace_counts.p_open > brace_counts.p_close
" previous line has more ( than ): add a shiftwidth
- let extra = s:ShiftWidth()
+ let extra = shiftwidth()
elseif brace_counts.p_open < brace_counts.p_close
" previous line has more ) than (: subtract a shiftwidth
- let extra = -s:ShiftWidth()
+ let extra = -shiftwidth()
endif
endif
@@ -749,7 +735,7 @@ func! s:CssPrevNonComment(lnum, stopline)
while 1
let ccol = match(getline(lnum), '\*/')
if ccol < 0
- " No comment end thus its something else.
+ " No comment end thus it's something else.
return lnum
endif
call cursor(lnum, ccol + 1)
@@ -821,7 +807,7 @@ func! s:Alien5()
let idx = match(prevtext, '^\s*\zs<!--')
if idx >= 0
" just below comment start, add a shiftwidth
- return idx + s:ShiftWidth()
+ return idx + shiftwidth()
endif
" Some files add 4 spaces just below a TODO line. It's difficult to detect
@@ -842,7 +828,7 @@ func! s:Alien6()
return indent(lnum)
endif
endif
- return b:hi_indent.baseindent + s:ShiftWidth()
+ return b:hi_indent.baseindent + shiftwidth()
endfunc "}}}
" When the "lnum" line ends in ">" find the line containing the matching "<".
@@ -952,7 +938,7 @@ func! HtmlIndent()
endif
let curtext = tolower(getline(v:lnum))
- let indentunit = s:ShiftWidth()
+ let indentunit = shiftwidth()
let b:hi_newstate = {}
let b:hi_newstate.lnum = v:lnum
@@ -1035,9 +1021,9 @@ func! HtmlIndent()
if col('.') > 2
let swendtag = match(text, '^\s*</') >= 0
call s:CountITags(text[: col('.') - 2])
- let indent += s:nextrel * s:ShiftWidth()
+ let indent += s:nextrel * shiftwidth()
if !swendtag
- let indent += s:curind * s:ShiftWidth()
+ let indent += s:curind * shiftwidth()
endif
endif
else
diff --git a/runtime/indent/idlang.vim b/runtime/indent/idlang.vim
index b4c6ae6fea..7402e8688e 100644
--- a/runtime/indent/idlang.vim
+++ b/runtime/indent/idlang.vim
@@ -1,6 +1,6 @@
" IDL (Interactive Data Language) indent file.
" Language: IDL (ft=idlang)
-" Last change: 2012 May 18
+" Last change: 2017 Jun 13
" Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com>
" Only load this indent file when no other was loaded.
@@ -34,25 +34,25 @@ function GetIdlangIndent(lnum)
" Indenting of continued lines.
if getline(pnum) =~ '\$\s*\(;.*\)\=$'
if getline(pnum2) !~ '\$\s*\(;.*\)\=$'
- let curind = curind+&sw
+ let curind = curind+shiftwidth()
endif
else
if getline(pnum2) =~ '\$\s*\(;.*\)\=$'
- let curind = curind-&sw
+ let curind = curind-shiftwidth()
endif
endif
" Indenting blocks of statements.
if getline(v:lnum) =~? '^\s*\(endif\|endelse\|endwhile\|endfor\|endrep\)\>'
if getline(pnum) =~? 'begin\>'
- elseif indent(v:lnum) > curind-&sw
- let curind = curind-&sw
+ elseif indent(v:lnum) > curind-shiftwidth()
+ let curind = curind-shiftwidth()
else
return -1
endif
elseif getline(pnum) =~? 'begin\>'
- if indent(v:lnum) < curind+&sw
- let curind = curind+&sw
+ if indent(v:lnum) < curind+shiftwidth()
+ let curind = curind+shiftwidth()
else
return -1
endif
diff --git a/runtime/indent/ishd.vim b/runtime/indent/ishd.vim
index f55f7dc79c..531244b819 100644
--- a/runtime/indent/ishd.vim
+++ b/runtime/indent/ishd.vim
@@ -50,17 +50,17 @@ fun! GetIshdIndent(lnum)
" Add
if previous_line =~ '^\s*\<\(function\|begin\|switch\|case\|default\|if.\{-}then\|else\|elseif\|while\|repeat\)\>'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
" Subtract
if this_line =~ '^\s*\<endswitch\>'
- let ind = ind - 2 * &sw
+ let ind = ind - 2 * shiftwidth()
elseif this_line =~ '^\s*\<\(begin\|end\|endif\|endwhile\|else\|elseif\|until\)\>'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
elseif this_line =~ '^\s*\<\(case\|default\)\>'
if previous_line !~ '^\s*\<switch\>'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
endif
diff --git a/runtime/indent/java.vim b/runtime/indent/java.vim
index e0aec0faef..49f8010d21 100644
--- a/runtime/indent/java.vim
+++ b/runtime/indent/java.vim
@@ -1,12 +1,14 @@
" Vim indent file
" Language: Java
" Previous Maintainer: Toby Allsopp <toby.allsopp@peace.com>
-" Current Maintainer: Hong Xu <xuhdev@gmail.com>
-" Last Change: 2012 May 18
-" Version: 1.0
+" Current Maintainer: Hong Xu <hong@topbug.net>
+" Homepage: http://www.vim.org/scripts/script.php?script_id=3899
+" https://github.com/xuhdev/indent-java.vim
+" Last Change: 2016 Mar 7
+" Version: 1.1
" License: Same as Vim.
-" Copyright (c) 2012 Hong Xu
-" Before 2012, this file is maintained by Toby Allsopp.
+" Copyright (c) 2012-2016 Hong Xu
+" Before 2012, this file was maintained by Toby Allsopp.
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -29,6 +31,7 @@ let b:undo_indent = "set cin< cino< indentkeys< indentexpr<"
if exists("*GetJavaIndent")
finish
endif
+
let s:keepcpo= &cpo
set cpo&vim
@@ -70,7 +73,7 @@ function GetJavaIndent()
" If the previous line starts with '@', we should have the same indent as
" the previous one
- if getline(lnum) =~ '^\s*@\S\+\s*$'
+ if getline(lnum) =~ '^\s*@.*$'
return indent(lnum)
endif
@@ -85,9 +88,9 @@ function GetJavaIndent()
" Try to align "throws" lines for methods and "extends" and "implements" for
" classes.
- if getline(v:lnum) =~ '^\s*\(extends\|implements\)\>'
- \ && getline(lnum) !~ '^\s*\(extends\|implements\)\>'
- let theIndent = theIndent + &sw
+ if getline(v:lnum) =~ '^\s*\(throws\|extends\|implements\)\>'
+ \ && getline(lnum) !~ '^\s*\(throws\|extends\|implements\)\>'
+ let theIndent = theIndent + shiftwidth()
endif
" correct for continuation lines of "throws", "implements" and "extends"
@@ -96,27 +99,27 @@ function GetJavaIndent()
if strlen(cont_kw) > 0
let amount = strlen(cont_kw) + 1
if getline(lnum) !~ ',\s*$'
- let theIndent = theIndent - (amount + &sw)
+ let theIndent = theIndent - (amount + shiftwidth())
if theIndent < 0
let theIndent = 0
endif
elseif prev == lnum
let theIndent = theIndent + amount
if cont_kw ==# 'throws'
- let theIndent = theIndent + &sw
+ let theIndent = theIndent + shiftwidth()
endif
endif
elseif getline(prev) =~ '^\s*\(throws\|implements\|extends\)\>'
\ && (getline(prev) =~ '{\s*$'
\ || getline(v:lnum) =~ '^\s*{\s*$')
- let theIndent = theIndent - &sw
+ let theIndent = theIndent - shiftwidth()
endif
" When the line starts with a }, try aligning it with the matching {,
" skipping over "throws", "extends" and "implements" clauses.
if getline(v:lnum) =~ '^\s*}\s*\(//.*\|/\*.*\)\=$'
call cursor(v:lnum, 1)
- silent normal %
+ silent normal! %
let lnum = line('.')
if lnum < v:lnum
while lnum > 1
diff --git a/runtime/indent/javascript.vim b/runtime/indent/javascript.vim
index 3507e305ed..2861716287 100644
--- a/runtime/indent/javascript.vim
+++ b/runtime/indent/javascript.vim
@@ -1,8 +1,8 @@
" Vim indent file
" Language: Javascript
-" Maintainer: vim-javascript community
+" Maintainer: Chris Paul ( https://github.com/bounceme )
" URL: https://github.com/pangloss/vim-javascript
-" Last Change: August 12, 2016
+" Last Change: September 18, 2017
" Only load this indent file when no other was loaded.
if exists('b:did_indent')
@@ -10,13 +10,27 @@ if exists('b:did_indent')
endif
let b:did_indent = 1
+" indent correctly if inside <script>
+" vim/vim@690afe1 for the switch from cindent
+let b:html_indent_script1 = 'inc'
+
" Now, set up our indentation expression and keys that trigger it.
setlocal indentexpr=GetJavascriptIndent()
-setlocal nolisp
-setlocal indentkeys=0{,0},0),0],:,!^F,o,O,e
-setlocal cinoptions+=j1,J1
+setlocal autoindent nolisp nosmartindent
+setlocal indentkeys+=0],0)
+" Testable with something like:
+" vim -eNs "+filetype plugin indent on" "+syntax on" "+set ft=javascript" \
+" "+norm! gg=G" '+%print' '+:q!' testfile.js \
+" | diff -uBZ testfile.js -
+
+let b:undo_indent = 'setlocal indentexpr< smartindent< autoindent< indentkeys<'
-let b:undo_indent = 'setlocal indentexpr< indentkeys< cinoptions<'
+" Regex of syntax group names that are or delimit string or are comments.
+let b:syng_strcom = get(b:,'syng_strcom','string\|comment\|regex\|special\|doc\|template\%(braces\)\@!')
+let b:syng_str = get(b:,'syng_str','string\|template\|special')
+" template strings may want to be excluded when editing graphql:
+" au! Filetype javascript let b:syng_str = '^\%(.*template\)\@!.*string\|special'
+" au! Filetype javascript let b:syng_strcom = '^\%(.*template\)\@!.*string\|comment\|regex\|special\|doc'
" Only define the function once.
if exists('*GetJavascriptIndent')
@@ -33,160 +47,403 @@ if exists('*shiftwidth')
endfunction
else
function s:sw()
- return &sw
+ return &l:shiftwidth ? &l:shiftwidth : &l:tabstop
endfunction
endif
-let s:line_pre = '^\s*\%(\/\*.\{-}\*\/\s*\)*'
-let s:expr_case = s:line_pre . '\%(\%(case\>.\+\)\|default\)\s*:'
-" Regex of syntax group names that are or delimit string or are comments.
-let s:syng_strcom = '\%(s\%(tring\|pecial\)\|comment\|regex\|doc\|template\)'
-
-" Regex of syntax group names that are strings or documentation.
-let s:syng_comment = '\%(comment\|doc\)'
+" Performance for forwards search(): start search at pos rather than masking
+" matches before pos.
+let s:z = has('patch-7.4.984') ? 'z' : ''
" Expression used to check whether we should skip a match with searchpair().
-let s:skip_expr = "line('.') < (prevnonblank(v:lnum) - 2000) ? dummy : synIDattr(synID(line('.'),col('.'),0),'name') =~? '".s:syng_strcom."'"
+let s:skip_expr = "s:SynAt(line('.'),col('.')) =~? b:syng_strcom"
+let s:in_comm = s:skip_expr[:-14] . "'comment\\|doc'"
-function s:lookForParens(start,end,flags,time)
- if has('reltime')
- return searchpair(a:start,'',a:end,a:flags,s:skip_expr,0,a:time)
- else
- return searchpair(a:start,'',a:end,a:flags,0,0)
+let s:rel = has('reltime')
+" searchpair() wrapper
+if s:rel
+ function s:GetPair(start,end,flags,skip)
+ return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,s:l1,a:skip ==# 's:SkipFunc()' ? 2000 : 200)
+ endfunction
+else
+ function s:GetPair(start,end,flags,skip)
+ return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,s:l1)
+ endfunction
+endif
+
+function s:SynAt(l,c)
+ let byte = line2byte(a:l) + a:c - 1
+ let pos = index(s:synid_cache[0], byte)
+ if pos == -1
+ let s:synid_cache[:] += [[byte], [synIDattr(synID(a:l, a:c, 0), 'name')]]
endif
+ return s:synid_cache[1][pos]
endfunction
-let s:line_term = '\%(\s*\%(\/\*.\{-}\*\/\s*\)\=\)\@>$'
+function s:ParseCino(f)
+ let [divider, n, cstr] = [0] + matchlist(&cino,
+ \ '\%(.*,\)\=\%(\%d'.char2nr(a:f).'\(-\)\=\([.s0-9]*\)\)\=')[1:2]
+ for c in split(cstr,'\zs')
+ if c == '.' && !divider
+ let divider = 1
+ elseif c ==# 's'
+ if n !~ '\d'
+ return n . s:sw() + 0
+ endif
+ let n = str2nr(n) * s:sw()
+ break
+ else
+ let [n, divider] .= [c, 0]
+ endif
+ endfor
+ return str2nr(n) / max([str2nr(divider),1])
+endfunction
-" configurable regexes that define continuation lines, not including (, {, or [.
-if !exists('g:javascript_opfirst')
- let g:javascript_opfirst = '\%([<>,:?^%]\|\([-/.+]\)\%(\1\|\*\|\/\)\@!\|\*\/\@!\|=>\@!\||\|&\|in\%(stanceof\)\=\>\)'
-endif
-let g:javascript_opfirst = s:line_pre . g:javascript_opfirst
+" Optimized {skip} expr, only callable from the search loop which
+" GetJavascriptIndent does to find the containing [[{(] (side-effects)
+function s:SkipFunc()
+ if s:top_col == 1
+ throw 'out of bounds'
+ endif
+ let s:top_col = 0
+ if s:check_in
+ if eval(s:skip_expr)
+ return 1
+ endif
+ let s:check_in = 0
+ elseif getline('.') =~ '\%<'.col('.').'c\/.\{-}\/\|\%>'.col('.').'c[''"]\|\\$'
+ if eval(s:skip_expr)
+ let s:looksyn = a:firstline
+ return 1
+ endif
+ elseif search('\m`\|\${\|\*\/','nW'.s:z,s:looksyn) && eval(s:skip_expr)
+ let s:check_in = 1
+ return 1
+ endif
+ let [s:looksyn, s:top_col] = getpos('.')[1:2]
+endfunction
-if !exists('g:javascript_continuation')
- let g:javascript_continuation = '\%([<*,.?:^%]\|+\@<!+\|-\@<!-\|=\@<!>\|\*\@<!\/\|=\||\|&\|\<in\%(stanceof\)\=\)'
-endif
-let g:javascript_continuation .= s:line_term
+function s:AlternatePair()
+ let [pat, l:for] = ['[][(){};]', 2]
+ while s:SearchLoop(pat,'bW','s:SkipFunc()')
+ if s:LookingAt() == ';'
+ if !l:for
+ if s:GetPair('{','}','bW','s:SkipFunc()')
+ return
+ endif
+ break
+ else
+ let [pat, l:for] = ['[{}();]', l:for - 1]
+ endif
+ else
+ let idx = stridx('])}',s:LookingAt())
+ if idx == -1
+ return
+ elseif !s:GetPair(['\[','(','{'][idx],'])}'[idx],'bW','s:SkipFunc()')
+ break
+ endif
+ endif
+ endwhile
+ throw 'out of bounds'
+endfunction
-function s:Onescope(lnum,text,add)
- return a:text =~# '\%(\<else\|\<do\|=>' . (a:add ? '\|\<try\|\<finally' : '' ) . '\)' . s:line_term ||
- \ ((a:add && a:text =~ s:line_pre . '$' && search('\%' . s:PrevCodeLine(a:lnum - 1) . 'l.)' . s:line_term)) ||
- \ cursor(a:lnum, match(a:text, ')' . s:line_term)) > -1) &&
- \ s:lookForParens('(', ')', 'cbW', 100) > 0 && search((a:add ?
- \ '\%(function\*\|[[:lower:][:upper:]_$][[:digit:][:lower:][:upper:]_$]*\)' :
- \ '\<\%(for\%(\s\+each\)\=\|if\|let\|w\%(hile\|ith\)\)') . '\_s*\%#\C','bW') &&
- \ (a:add || (expand('<cword>') ==# 'while' ? !s:lookForParens('\<do\>\C', '\<while\>\C','bW',100) : 1))
+function s:Nat(int)
+ return a:int * (a:int > 0)
endfunction
-" Auxiliary Functions {{{2
+function s:LookingAt()
+ return getline('.')[col('.')-1]
+endfunction
+
+function s:Token()
+ return s:LookingAt() =~ '\k' ? expand('<cword>') : s:LookingAt()
+endfunction
-" strip line of comment
-function s:StripLine(c)
- return a:c !~# s:expr_case ? substitute(a:c, '\%(:\@<!\/\/.*\)$', '','') : a:c
+function s:PreviousToken()
+ let l:col = col('.')
+ if search('\m\k\{1,}\|\S','ebW')
+ if search('\m\*\%#\/\|\/\/\%<'.a:firstline.'l','nbW',line('.')) && eval(s:in_comm)
+ if s:SearchLoop('\S\ze\_s*\/[/*]','bW',s:in_comm)
+ return s:Token()
+ endif
+ call cursor(a:firstline, l:col)
+ else
+ return s:Token()
+ endif
+ endif
+ return ''
endfunction
-" Find line above 'lnum' that isn't empty, in a comment, or in a string.
-function s:PrevCodeLine(lnum)
- let l:lnum = prevnonblank(a:lnum)
- while l:lnum > 0
- if synIDattr(synID(l:lnum,matchend(getline(l:lnum), '^\s*[^''"]'),0),'name') !~? s:syng_strcom
+function s:Pure(f,...)
+ return eval("[call(a:f,a:000),cursor(a:firstline,".col('.').")][0]")
+endfunction
+
+function s:SearchLoop(pat,flags,expr)
+ return s:GetPair(a:pat,'\_$.',a:flags,a:expr)
+endfunction
+
+function s:ExprCol()
+ let bal = 0
+ while s:SearchLoop('[{}?]\|\_[^:]\zs::\@!','bW',s:skip_expr)
+ if s:LookingAt() == ':'
+ let bal -= 1
+ elseif s:LookingAt() == '?'
+ let bal += 1
+ if bal == 1
+ break
+ endif
+ elseif s:LookingAt() == '{'
+ let bal = !s:IsBlock()
+ break
+ elseif !s:GetPair('{','}','bW',s:skip_expr)
break
endif
- let l:lnum = prevnonblank(l:lnum - 1)
endwhile
- return l:lnum
+ return s:Nat(bal)
+endfunction
+
+" configurable regexes that define continuation lines, not including (, {, or [.
+let s:opfirst = '^' . get(g:,'javascript_opfirst',
+ \ '\C\%([<>=,.?^%|/&]\|\([-:+]\)\1\@!\|\*\+\|!=\|in\%(stanceof\)\=\>\)')
+let s:continuation = get(g:,'javascript_continuation',
+ \ '\C\%([<=,.~!?/*^%|&:]\|+\@<!+\|-\@<!-\|=\@<!>\|\<\%(typeof\|new\|delete\|void\|in\|instanceof\|await\)\)') . '$'
+
+function s:Continues(ln,con)
+ let tok = matchstr(a:con[-15:],s:continuation)
+ if tok =~ '[a-z:]'
+ call cursor(a:ln, len(a:con))
+ return tok == ':' ? s:ExprCol() : s:PreviousToken() != '.'
+ elseif tok !~ '[/>]'
+ return tok isnot ''
+ endif
+ return s:SynAt(a:ln, len(a:con)) !~? (tok == '>' ? 'jsflow\|^html' : 'regex')
endfunction
" Check if line 'lnum' has a balanced amount of parentheses.
function s:Balanced(lnum)
- let open_0 = 0
- let open_2 = 0
- let open_4 = 0
- let l:line = getline(a:lnum)
- let pos = match(l:line, '[][(){}]', 0)
+ let [l:open, l:line] = [0, getline(a:lnum)]
+ let pos = match(l:line, '[][(){}]')
while pos != -1
- if synIDattr(synID(a:lnum,pos + 1,0),'name') !~? s:syng_strcom
- let idx = stridx('(){}[]', l:line[pos])
- if idx % 2 == 0
- let open_{idx} = open_{idx} + 1
- else
- let open_{idx - 1} = open_{idx - 1} - 1
+ if s:SynAt(a:lnum,pos + 1) !~? b:syng_strcom
+ let l:open += match(' ' . l:line[pos],'[[({]')
+ if l:open < 0
+ return
endif
endif
- let pos = match(l:line, '[][(){}]', pos + 1)
+ let pos = match(l:line, !l:open ? '[][(){}]' : '()' =~ l:line[pos] ?
+ \ '[()]' : '{}' =~ l:line[pos] ? '[{}]' : '[][]', pos + 1)
endwhile
- return (!open_4 + !open_2 + !open_0) - 2
+ return !l:open
endfunction
-" }}}
-function GetJavascriptIndent()
- if !exists('b:js_cache')
- let b:js_cache = [0,0,0]
+function s:OneScope()
+ if s:LookingAt() == ')' && s:GetPair('(', ')', 'bW', s:skip_expr)
+ let tok = s:PreviousToken()
+ return (count(split('for if let while with'),tok) ||
+ \ tok =~# '^await$\|^each$' && s:PreviousToken() ==# 'for') &&
+ \ s:Pure('s:PreviousToken') != '.' && !(tok == 'while' && s:DoWhile())
+ elseif s:Token() =~# '^else$\|^do$'
+ return s:Pure('s:PreviousToken') != '.'
+ endif
+ return strpart(getline('.'),col('.')-2,2) == '=>'
+endfunction
+
+function s:DoWhile()
+ let cpos = searchpos('\m\<','cbW')
+ if s:SearchLoop('\C[{}]\|\<\%(do\|while\)\>','bW',s:skip_expr)
+ if s:{s:LookingAt() == '}' && s:GetPair('{','}','bW',s:skip_expr) ?
+ \ 'Previous' : ''}Token() ==# 'do' && s:IsBlock()
+ return 1
+ endif
+ call call('cursor',cpos)
endif
- " Get the current line.
+endfunction
+
+" returns total offset from braceless contexts. 'num' is the lineNr which
+" encloses the entire context, 'cont' if whether a:firstline is a continued
+" expression, which could have started in a braceless context
+function s:IsContOne(num,cont)
+ let [l:num, b_l] = [a:num + !a:num, 0]
+ let pind = a:num ? indent(a:num) + s:sw() : 0
+ let ind = indent('.') + !a:cont
+ while line('.') > l:num && ind > pind || line('.') == l:num
+ if indent('.') < ind && s:OneScope()
+ let b_l += 1
+ elseif !a:cont || b_l || ind < indent(a:firstline)
+ break
+ else
+ call cursor(0,1)
+ endif
+ let ind = min([ind, indent('.')])
+ if s:PreviousToken() is ''
+ break
+ endif
+ endwhile
+ return b_l
+endfunction
+
+function s:Class()
+ return (s:Token() ==# 'class' || s:PreviousToken() =~# '^class$\|^extends$') &&
+ \ s:PreviousToken() != '.'
+endfunction
+
+function s:IsSwitch()
+ return s:PreviousToken() !~ '[.*]' &&
+ \ (!s:GetPair('{','}','cbW',s:skip_expr) || s:IsBlock() && !s:Class())
+endfunction
+
+" https://github.com/sweet-js/sweet.js/wiki/design#give-lookbehind-to-the-reader
+function s:IsBlock()
+ let tok = s:PreviousToken()
+ if join(s:stack) =~? 'xml\|jsx' && s:SynAt(line('.'),col('.')-1) =~? 'xml\|jsx'
+ return tok != '{'
+ elseif tok =~ '\k'
+ if tok ==# 'type'
+ return s:Pure('eval',"s:PreviousToken() !~# '^\\%(im\\|ex\\)port$' || s:PreviousToken() == '.'")
+ elseif tok ==# 'of'
+ return s:Pure('eval',"!s:GetPair('[[({]','[])}]','bW',s:skip_expr) || s:LookingAt() != '(' ||"
+ \ ."s:{s:PreviousToken() ==# 'await' ? 'Previous' : ''}Token() !=# 'for' || s:PreviousToken() == '.'")
+ endif
+ return index(split('return const let import export extends yield default delete var await void typeof throw case new in instanceof')
+ \ ,tok) < (line('.') != a:firstline) || s:Pure('s:PreviousToken') == '.'
+ elseif tok == '>'
+ return getline('.')[col('.')-2] == '=' || s:SynAt(line('.'),col('.')) =~? 'jsflow\|^html'
+ elseif tok == '*'
+ return s:Pure('s:PreviousToken') == ':'
+ elseif tok == ':'
+ return s:Pure('eval',"s:PreviousToken() =~ '^\\K\\k*$' && !s:ExprCol()")
+ elseif tok == '/'
+ return s:SynAt(line('.'),col('.')) =~? 'regex'
+ elseif tok !~ '[=~!<,.?^%|&([]'
+ return tok !~ '[-+]' || line('.') != a:firstline && getline('.')[col('.')-2] == tok
+ endif
+endfunction
+
+function GetJavascriptIndent()
+ let b:js_cache = get(b:,'js_cache',[0,0,0])
+ let s:synid_cache = [[],[]]
let l:line = getline(v:lnum)
- let syns = synIDattr(synID(v:lnum, 1, 0), 'name')
+ " use synstack as it validates syn state and works in an empty line
+ let s:stack = [''] + map(synstack(v:lnum,1),"synIDattr(v:val,'name')")
- " start with strings,comments,etc.{{{2
- if (l:line !~ '^[''"`]' && syns =~? 'string\|template') ||
- \ (l:line !~ '^\s*[/*]' && syns =~? s:syng_comment)
+ " start with strings,comments,etc.
+ if s:stack[-1] =~? 'comment\|doc'
+ if l:line =~ '^\s*\*'
+ return cindent(v:lnum)
+ elseif l:line !~ '^\s*\/[/*]'
+ return -1
+ endif
+ elseif s:stack[-1] =~? b:syng_str
+ if b:js_cache[0] == v:lnum - 1 && s:Balanced(v:lnum-1)
+ let b:js_cache[0] = v:lnum
+ endif
return -1
endif
- if l:line !~ '^\%(\/\*\|\s*\/\/\)' && syns =~? s:syng_comment
- return cindent(v:lnum)
- endif
- let l:lnum = s:PrevCodeLine(v:lnum - 1)
- if l:lnum == 0
- return 0
+
+ let s:l1 = max([0,prevnonblank(v:lnum) - (s:rel ? 2000 : 1000),
+ \ get(get(b:,'hi_indent',{}),'blocklnr')])
+ call cursor(v:lnum,1)
+ if s:PreviousToken() is ''
+ return
endif
+ let [l:lnum, pline] = [line('.'), getline('.')[:col('.')-1]]
- if (l:line =~# s:expr_case)
- let cpo_switch = &cpo
- set cpo+=%
- let ind = cindent(v:lnum)
- let &cpo = cpo_switch
- return ind
+ let l:line = substitute(l:line,'^\s*','','')
+ let l:line_raw = l:line
+ if l:line[:1] == '/*'
+ let l:line = substitute(l:line,'^\%(\/\*.\{-}\*\/\s*\)*','','')
+ endif
+ if l:line =~ '^\/[/*]'
+ let l:line = ''
endif
- "}}}
- " the containing paren, bracket, curly. Memoize, last lineNr either has the
- " same scope or starts a new one, unless if it closed a scope.
+ " the containing paren, bracket, or curly. Many hacks for performance
call cursor(v:lnum,1)
- if b:js_cache[0] >= l:lnum && b:js_cache[0] <= v:lnum && b:js_cache[0] &&
- \ (b:js_cache[0] > l:lnum || s:Balanced(l:lnum) > 0)
- let num = b:js_cache[1]
- elseif syns != '' && l:line[0] =~ '\s'
- let pattern = syns =~? 'block' ? ['{','}'] : syns =~? 'jsparen' ? ['(',')'] :
- \ syns =~? 'jsbracket'? ['\[','\]'] : ['[({[]','[])}]']
- let num = s:lookForParens(pattern[0],pattern[1],'bW',2000)
+ let idx = index([']',')','}'],l:line[0])
+ if b:js_cache[0] > l:lnum && b:js_cache[0] < v:lnum ||
+ \ b:js_cache[0] == l:lnum && s:Balanced(l:lnum)
+ call call('cursor',b:js_cache[1:])
else
- let num = s:lookForParens('[({[]','[])}]','bW',2000)
+ let [s:looksyn, s:top_col, s:check_in, s:l1] = [v:lnum - 1,0,0,
+ \ max([s:l1, &smc ? search('\m^.\{'.&smc.',}','nbW',s:l1 + 1) + 1 : 0])]
+ try
+ if idx != -1
+ call s:GetPair(['\[','(','{'][idx],'])}'[idx],'bW','s:SkipFunc()')
+ elseif getline(v:lnum) !~ '^\S' && s:stack[-1] =~? 'block\|^jsobject$'
+ call s:GetPair('{','}','bW','s:SkipFunc()')
+ else
+ call s:AlternatePair()
+ endif
+ catch /^\Cout of bounds$/
+ call cursor(v:lnum,1)
+ endtry
+ let b:js_cache[1:] = line('.') == v:lnum ? [0,0] : getpos('.')[1:2]
endif
- let b:js_cache = [v:lnum,num,line('.') == v:lnum ? b:js_cache[2] : col('.')]
- if l:line =~ s:line_pre . '[])}]'
- return indent(num)
- endif
+ let [b:js_cache[0], num] = [v:lnum, b:js_cache[1]]
- let pline = s:StripLine(getline(l:lnum))
- let inb = num == 0 ? 1 : (s:Onescope(num, s:StripLine(strpart(getline(num),0,b:js_cache[2] - 1)),1) ||
- \ (l:line !~ s:line_pre . ',' && pline !~ ',' . s:line_term)) && num < l:lnum
- let switch_offset = (!inb || num == 0) || expand("<cword>") !=# 'switch' ? 0 : &cino !~ ':' || !has('float') ? s:sw() :
- \ float2nr(str2float(matchstr(&cino,'.*:\zs[-0-9.]*')) * (&cino =~# '.*:[^,]*s' ? s:sw() : 1))
-
- " most significant, find the indent amount
- if (inb && (l:line =~# g:javascript_opfirst ||
- \ (pline =~# g:javascript_continuation && pline !~# s:expr_case && (pline !~ ':' . s:line_term || l:line !~#
- \ s:line_pre . '\%(d\%(o\|ebugger\)\|else\|f\%(or\|inally\)\|if\|let\|switch\|t\%(hrow\|ry\)\|w\%(hile\|ith\)\)\>')))) ||
- \ (num < l:lnum && s:Onescope(l:lnum,pline,0) && l:line !~ s:line_pre . '{')
- return (num > 0 ? indent(num) : -s:sw()) + (s:sw() * 2) + switch_offset
- elseif num > 0
- return indent(num) + s:sw() + switch_offset
+ let [num_ind, is_op, b_l, l:switch_offset] = [s:Nat(indent(num)),0,0,0]
+ if !num || s:LookingAt() == '{' && s:IsBlock()
+ let ilnum = line('.')
+ if num && s:LookingAt() == ')' && s:GetPair('(',')','bW',s:skip_expr)
+ if ilnum == num
+ let [num, num_ind] = [line('.'), indent('.')]
+ endif
+ if idx == -1 && s:PreviousToken() ==# 'switch' && s:IsSwitch()
+ let l:switch_offset = &cino !~ ':' ? s:sw() : s:ParseCino(':')
+ if pline[-1:] != '.' && l:line =~# '^\%(default\|case\)\>'
+ return s:Nat(num_ind + l:switch_offset)
+ elseif &cino =~ '='
+ let l:case_offset = s:ParseCino('=')
+ endif
+ endif
+ endif
+ if idx == -1 && pline[-1:] !~ '[{;]'
+ let sol = matchstr(l:line,s:opfirst)
+ if sol is '' || sol == '/' && s:SynAt(v:lnum,
+ \ 1 + len(getline(v:lnum)) - len(l:line)) =~? 'regex'
+ if s:Continues(l:lnum,pline)
+ let is_op = s:sw()
+ endif
+ elseif num && sol =~# '^\%(in\%(stanceof\)\=\|\*\)$'
+ call call('cursor',b:js_cache[1:])
+ if s:PreviousToken() =~ '\k' && s:Class()
+ return num_ind + s:sw()
+ endif
+ let is_op = s:sw()
+ else
+ let is_op = s:sw()
+ endif
+ call cursor(l:lnum, len(pline))
+ let b_l = s:Nat(s:IsContOne(b:js_cache[1],is_op) - (!is_op && l:line =~ '^{')) * s:sw()
+ endif
+ elseif idx.s:LookingAt().&cino =~ '^-1(.*(' && (search('\m\S','nbW',num) || s:ParseCino('U'))
+ let pval = s:ParseCino('(')
+ if !pval
+ let [Wval, vcol] = [s:ParseCino('W'), virtcol('.')]
+ if search('\m\S','W',num)
+ return s:ParseCino('w') ? vcol : virtcol('.')-1
+ endif
+ return Wval ? s:Nat(num_ind + Wval) : vcol
+ endif
+ return s:Nat(num_ind + pval + searchpair('\m(','','\m)','nbrmW',s:skip_expr,num) * s:sw())
endif
+ " main return
+ if l:line =~ '^[])}]\|^|}'
+ if l:line_raw[0] == ')' && getline(num)[b:js_cache[2]-1] == '('
+ if s:ParseCino('M')
+ return indent(l:lnum)
+ elseif &cino =~# 'm' && !s:ParseCino('m')
+ return virtcol('.') - 1
+ endif
+ endif
+ return num_ind
+ elseif num
+ return s:Nat(num_ind + get(l:,'case_offset',s:sw()) + l:switch_offset + b_l + is_op)
+ endif
+ return b_l + is_op
endfunction
-
let &cpo = s:cpo_save
unlet s:cpo_save
diff --git a/runtime/indent/json.vim b/runtime/indent/json.vim
index 649f2b8aa5..b66a03d81b 100644
--- a/runtime/indent/json.vim
+++ b/runtime/indent/json.vim
@@ -1,7 +1,7 @@
" Vim indent file
" Language: JSON
" Mantainer: Eli Parra <eli@elzr.com> https://github.com/elzr/vim-json
-" Last Change: 2014 Aug 29
+" Last Change: 2017 Jun 13
" https://github.com/jakar/vim-json/commit/20b650e22aa750c4ab6a66aa646bdd95d7cd548a#diff-e81fc111b2052e306d126bd9989f7b7c
" Original Author: Rogerz Zhang <rogerz.zhang at gmail.com> http://github.com/rogerz/vim-json
" Acknowledgement: Based off of vim-javascript maintained by Darrick Wiebe
@@ -141,7 +141,7 @@ function GetJSONIndent()
" If the previous line ended with a block opening, add a level of indent.
" if s:Match(lnum, s:block_regex)
- " return indent(lnum) + &sw
+ " return indent(lnum) + shiftwidth()
" endif
" If the previous line contained an opening bracket, and we are still in it,
@@ -149,7 +149,7 @@ function GetJSONIndent()
if line =~ '[[({]'
let counts = s:LineHasOpeningBrackets(lnum)
if counts[0] == '1' || counts[1] == '1' || counts[2] == '1'
- return ind + &sw
+ return ind + shiftwidth()
else
call cursor(v:lnum, vcol)
end
diff --git a/runtime/indent/ld.vim b/runtime/indent/ld.vim
index eccf42b2b4..a72a3a9548 100644
--- a/runtime/indent/ld.vim
+++ b/runtime/indent/ld.vim
@@ -1,7 +1,7 @@
" Vim indent file
-" Language: ld(1) script
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-12-20
+" Language: ld(1) script
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-12-20
if exists("b:did_indent")
finish
@@ -65,7 +65,7 @@ function GetLDIndent()
if line =~ '^\s*\*'
return cindent(v:lnum)
elseif line =~ '^\s*}'
- return indent(v:lnum) - &sw
+ return indent(v:lnum) - shiftwidth()
endif
let pnum = s:prevnonblanknoncomment(v:lnum - 1)
@@ -73,11 +73,11 @@ function GetLDIndent()
return 0
endif
- let ind = indent(pnum) + s:count_braces(pnum, 1) * &sw
+ let ind = indent(pnum) + s:count_braces(pnum, 1) * shiftwidth()
let pline = getline(pnum)
if pline =~ '}\s*$'
- let ind -= (s:count_braces(pnum, 0) - (pline =~ '^\s*}' ? 1 : 0)) * &sw
+ let ind -= (s:count_braces(pnum, 0) - (pline =~ '^\s*}' ? 1 : 0)) * shiftwidth()
endif
return ind
diff --git a/runtime/indent/liquid.vim b/runtime/indent/liquid.vim
index 01e7223696..7beb0388d1 100644
--- a/runtime/indent/liquid.vim
+++ b/runtime/indent/liquid.vim
@@ -1,7 +1,7 @@
" Vim indent file
" Language: Liquid
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
-" Last Change: 2013 May 30
+" Last Change: 2017 Jun 13
if exists('b:did_indent')
finish
@@ -54,9 +54,10 @@ function! GetLiquidIndent(...)
let line = substitute(line,'\C^\%(\s*{%\s*end\w*\s*%}\)\+','','')
let line .= matchstr(cline,'\C^\%(\s*{%\s*end\w*\s*%}\)\+')
let cline = substitute(cline,'\C^\%(\s*{%\s*end\w*\s*%}\)\+','','')
- let ind += &sw * s:count(line,'{%\s*\%(if\|elsif\|else\|unless\|ifchanged\|case\|when\|for\|empty\|tablerow\|capture\)\>')
- let ind -= &sw * s:count(line,'{%\s*end\%(if\|unless\|ifchanged\|case\|for\|tablerow\|capture\)\>')
- let ind -= &sw * s:count(cline,'{%\s*\%(elsif\|else\|when\|empty\)\>')
- let ind -= &sw * s:count(cline,'{%\s*end\w*$')
+ let sw = shiftwidth()
+ let ind += sw * s:count(line,'{%\s*\%(if\|elsif\|else\|unless\|ifchanged\|case\|when\|for\|empty\|tablerow\|capture\)\>')
+ let ind -= sw * s:count(line,'{%\s*end\%(if\|unless\|ifchanged\|case\|for\|tablerow\|capture\)\>')
+ let ind -= sw * s:count(cline,'{%\s*\%(elsif\|else\|when\|empty\)\>')
+ let ind -= sw * s:count(cline,'{%\s*end\w*$')
return ind
endfunction
diff --git a/runtime/indent/logtalk.vim b/runtime/indent/logtalk.vim
index 99e6ec896b..5b69663e1d 100644
--- a/runtime/indent/logtalk.vim
+++ b/runtime/indent/logtalk.vim
@@ -38,24 +38,24 @@ function! GetLogtalkIndent()
endif
" Check for entity opening directive on previous line
if pline =~ '^\s*:-\s\(object\|protocol\|category\)\ze(.*,$'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
" Check for clause head on previous line
elseif pline =~ ':-\s*\(%.*\)\?$'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
" Check for entity closing directive on previous line
elseif pline =~ '^\s*:-\send_\(object\|protocol\|category\)\.\(%.*\)\?$'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
" Check for end of clause on previous line
elseif pline =~ '\.\s*\(%.*\)\?$'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
" Check for opening conditional on previous line
if pline =~ '^\s*\([(;]\|->\)' && pline !~ '\.\s*\(%.*\)\?$' && pline !~ '^.*\([)][,]\s*\(%.*\)\?$\)'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
" Check for closing an unclosed paren, or middle ; or ->
if line =~ '^\s*\([);]\|->\)'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
return ind
endfunction
diff --git a/runtime/indent/lua.vim b/runtime/indent/lua.vim
index d1d2c0d600..604cd333c9 100644
--- a/runtime/indent/lua.vim
+++ b/runtime/indent/lua.vim
@@ -2,7 +2,7 @@
" Language: Lua script
" Maintainer: Marcus Aurelius Farias <marcus.cf 'at' bol.com.br>
" First Author: Max Ischenko <mfi 'at' ukr.net>
-" Last Change: 2016 Jan 10
+" Last Change: 2017 Jun 13
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -48,7 +48,7 @@ function! GetLuaIndent()
" Add 'shiftwidth' if what we found previously is not in a comment and
" an "end" or "until" is not present on the same line.
if synIDattr(synID(prevlnum, midx + 1, 1), "name") != "luaComment" && prevline !~ '\<end\>\|\<until\>'
- let ind = ind + &shiftwidth
+ let ind = ind + shiftwidth()
endif
endif
@@ -56,7 +56,7 @@ function! GetLuaIndent()
" This is the part that requires 'indentkeys'.
let midx = match(getline(v:lnum), '^\s*\%(end\>\|else\>\|elseif\>\|until\>\|}\)')
if midx != -1 && synIDattr(synID(v:lnum, midx + 1, 1), "name") != "luaComment"
- let ind = ind - &shiftwidth
+ let ind = ind - shiftwidth()
endif
return ind
diff --git a/runtime/indent/make.vim b/runtime/indent/make.vim
index 8412fbb4d1..66a8a40173 100644
--- a/runtime/indent/make.vim
+++ b/runtime/indent/make.vim
@@ -1,7 +1,7 @@
" Vim indent file
-" Language: Makefile
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2007-05-07
+" Language: Makefile
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2007-05-07
if exists("b:did_indent")
finish
@@ -48,14 +48,14 @@ function GetMakeIndent()
if prev_prev_line =~ s:continuation_rx
return indent(prev_lnum)
elseif prev_line =~ s:rule_rx
- return &sw
+ return shiftwidth()
elseif prev_line =~ s:assignment_rx
call cursor(prev_lnum, 1)
if search(s:assignment_rx, 'W') != 0
return virtcol('.') - 1
else
" TODO: ?
- return &sw
+ return shiftwidth()
endif
else
" TODO: OK, this might be a continued shell command, so perhaps indent
@@ -66,7 +66,7 @@ function GetMakeIndent()
" return indent(prev_lnum) + 2
" endif
"endif
- return indent(prev_lnum) + &sw
+ return indent(prev_lnum) + shiftwidth()
endif
elseif prev_prev_line =~ s:continuation_rx
let folded_line = s:remove_continuation(prev_prev_line) . ' ' . s:remove_continuation(prev_line)
@@ -102,13 +102,13 @@ function GetMakeIndent()
return &ts
endif
elseif prev_line =~ s:conditional_directive_rx
- return &sw
+ return shiftwidth()
else
let line = getline(v:lnum)
if line =~ s:just_inserted_rule_rx
return 0
elseif line =~ s:end_conditional_directive_rx
- return v:lnum - 1 == 0 ? 0 : indent(v:lnum - 1) - &sw
+ return v:lnum - 1 == 0 ? 0 : indent(v:lnum - 1) - shiftwidth()
else
return v:lnum - 1 == 0 ? 0 : indent(v:lnum - 1)
endif
diff --git a/runtime/indent/matlab.vim b/runtime/indent/matlab.vim
index 7bccc7c0a7..6a31624389 100644
--- a/runtime/indent/matlab.vim
+++ b/runtime/indent/matlab.vim
@@ -44,9 +44,9 @@ function GetMatlabIndent(lnum)
" See if this line does not follow the line right after an openblock
if getline(plnum) =~ '^\s*\(for\|if\|else\|elseif\|case\|while\|switch\|try\|otherwise\|catch\)\>'
" See if the user has already dedented
- elseif indent(v:lnum) > curind - &sw
+ elseif indent(v:lnum) > curind - shiftwidth()
" If not, recommend one dedent
- let curind = curind - &sw
+ let curind = curind - shiftwidth()
else
" Otherwise, trust the user
return -1
@@ -56,9 +56,9 @@ function GetMatlabIndent(lnum)
" If the previous line opened a block
elseif getline(plnum) =~ '^\s*\(for\|if\|else\|elseif\|case\|while\|switch\|try\|otherwise\|catch\)\>'
" See if the user has already indented
- if indent(v:lnum) < curind + &sw
+ if indent(v:lnum) < curind + shiftwidth()
"If not, recommend indent
- let curind = curind + &sw
+ let curind = curind + shiftwidth()
else
" Otherwise, trust the user
return -1
diff --git a/runtime/indent/mf.vim b/runtime/indent/mf.vim
new file mode 100644
index 0000000000..88737f4e9f
--- /dev/null
+++ b/runtime/indent/mf.vim
@@ -0,0 +1,6 @@
+" METAFONT indent file
+" Language: METAFONT
+" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
+" Last Change: 2016 Oct 1
+
+runtime! indent/mp.vim
diff --git a/runtime/indent/mma.vim b/runtime/indent/mma.vim
index 356b87618d..8298ad98cd 100644
--- a/runtime/indent/mma.vim
+++ b/runtime/indent/mma.vim
@@ -49,7 +49,7 @@ function GetMmaIndent()
" also, indent only if this line if this line isn't starting a new
" block... TODO - fix this with indentkeys?
if getline(v:lnum-1) =~ '\\\@<!\%(\[[^\]]*\|([^)]*\|{[^}]*\)$' && getline(v:lnum) !~ '\s\+[\[({]'
- let ind = ind+&sw
+ let ind = ind+shiftwidth()
endif
" if this line had unmatched closing block,
diff --git a/runtime/indent/mp.vim b/runtime/indent/mp.vim
index a118eb8b60..86fa2539c1 100644
--- a/runtime/indent/mp.vim
+++ b/runtime/indent/mp.vim
@@ -1,56 +1,19 @@
" MetaPost indent file
-" Language: MetaPost
-" Maintainer: Eugene Minkovskii <emin@mccme.ru>
-" Last Change: 2012 May 18
-" Version: 0.1
-" ==========================================================================
-
-" Identation Rules: {{{1
-" First of all, MetaPost language don't expect any identation rules.
-" This screept need for you only if you (not MetaPost) need to do
-" exactly code. If you don't need to use indentation, see
-" :help filetype-indent-off
-"
-" Note: Every rules of identation in MetaPost or TeX languages (and in some
-" other of course) is very subjective. I can release only my vision of this
-" promlem.
-"
-" ..........................................................................
-" Example of correct (by me) identation {{{2
-" shiftwidth=4
-" ==========================================================================
-" for i=0 upto 99:
-" z[i] = (0,1u) rotated (i*360/100);
-" endfor
-" draw z0 -- z10 -- z20
-" withpen ... % <- 2sw because breaked line
-" withcolor ...; % <- same as previous
-" draw z0 for i=1 upto 99:
-" -- z[i] % <- 1sw from left end of 'for' satement
-" endfor withpen ... % <- 0sw from left end of 'for' satement
-" withcolor ...; % <- 2sw because breaked line
-" draw if One: % <- This is internal if (like 'for' above)
-" one
-" elsif Other:
-" other
-" fi withpen ...;
-" if one: % <- This is external if
-" draw one;
-" elseif other:
-" draw other;
-" fi
-" draw z0; draw z1;
-" }}}
-" }}}
+" Language: MetaPost
+" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
+" Former Maintainers: Eugene Minkovskii <emin@mccme.ru>
+" Last Change: 2016 Oct 2, 4:13pm
+" Version: 0.2
-" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
setlocal indentexpr=GetMetaPostIndent()
-setlocal indentkeys+=;,<:>,=if,=for,=def,=end,=else,=fi
+setlocal indentkeys+==end,=else,=fi,=fill,0),0]
+
+let b:undo_indent = "setl indentkeys< indentexpr<"
" Only define the function once.
if exists("*GetMetaPostIndent")
@@ -59,151 +22,337 @@ endif
let s:keepcpo= &cpo
set cpo&vim
-" Auxiliary Definitions: {{{1
-function! MetaNextNonblankNoncomment(pos)
- " Like nextnonblank() but ignore comment lines
- let tmp = nextnonblank(a:pos)
- while tmp && getline(tmp) =~ '^\s*%'
- let tmp = nextnonblank(tmp+1)
+function GetMetaPostIndent()
+ let ignorecase_save = &ignorecase
+ try
+ let &ignorecase = 0
+ return GetMetaPostIndentIntern()
+ finally
+ let &ignorecase = ignorecase_save
+ endtry
+endfunc
+
+" Regexps {{{
+" Note: the next three variables are made global so that a user may add
+" further keywords.
+"
+" Example:
+"
+" Put these in ~/.vim/after/indent/mp.vim
+"
+" let g:mp_open_tag .= '\|\<begintest\>'
+" let g:mp_close_tag .= '\|\<endtest\>'
+
+" Expressions starting indented blocks
+let g:mp_open_tag = ''
+ \ . '\<if\>'
+ \ . '\|\<else\%[if]\>'
+ \ . '\|\<for\%(\|ever\|suffixes\)\>'
+ \ . '\|\<begingroup\>'
+ \ . '\|\<\%(\|var\|primary\|secondary\|tertiary\)def\>'
+ \ . '\|^\s*\<begin\%(fig\|graph\|glyph\|char\|logochar\)\>'
+ \ . '\|[([{]'
+
+" Expressions ending indented blocks
+let g:mp_close_tag = ''
+ \ . '\<fi\>'
+ \ . '\|\<else\%[if]\>'
+ \ . '\|\<end\%(\|for\|group\|def\|fig\|char\|glyph\|graph\)\>'
+ \ . '\|[)\]}]'
+
+" Statements that may span multiple lines and are ended by a semicolon. To
+" keep this list short, statements that are unlikely to be very long or are
+" not very common (e.g., keywords like `interim` or `showtoken`) are not
+" included.
+"
+" The regex for assignments and equations (the last branch) is tricky, because
+" it must not match things like `for i :=`, `if a=b`, `def...=`, etc... It is
+" not perfect, but it works reasonably well.
+let g:mp_statement = ''
+ \ . '\<\%(\|un\|cut\)draw\>'
+ \ . '\|\<\%(\|un\)fill\%[draw]\>'
+ \ . '\|\<draw\%(dbl\)\=arrow\>'
+ \ . '\|\<clip\>'
+ \ . '\|\<addto\>'
+ \ . '\|\<save\>'
+ \ . '\|\<setbounds\>'
+ \ . '\|\<message\>'
+ \ . '\|\<errmessage\>'
+ \ . '\|\<errhelp\>'
+ \ . '\|\<fontmapline\>'
+ \ . '\|\<pickup\>'
+ \ . '\|\<show\>'
+ \ . '\|\<special\>'
+ \ . '\|\<write\>'
+ \ . '\|\%(^\|;\)\%([^;=]*\%('.g:mp_open_tag.'\)\)\@!.\{-}:\=='
+
+" A line ends with zero or more spaces, possibly followed by a comment.
+let s:eol = '\s*\%($\|%\)'
+" }}}
+
+" Auxiliary functions {{{
+" Returns 1 if (0-based) position immediately preceding `pos` in `line` is
+" inside a string or a comment; returns 0 otherwise.
+
+" This is the function that is called more often when indenting, so it is
+" critical that it is efficient. The method we use is significantly faster
+" than using syntax attributes, and more general (it does not require
+" syntax_items). It is also faster than using a single regex matching an even
+" number of quotes. It helps that MetaPost strings cannot span more than one
+" line and cannot contain escaped quotes.
+function! s:CommentOrString(line, pos)
+ let in_string = 0
+ let q = stridx(a:line, '"')
+ let c = stridx(a:line, '%')
+ while q >= 0 && q < a:pos
+ if c >= 0 && c < q
+ if in_string " Find next percent symbol
+ let c = stridx(a:line, '%', q + 1)
+ else " Inside comment
+ return 1
+ endif
+ endif
+ let in_string = 1 - in_string
+ let q = stridx(a:line, '"', q + 1) " Find next quote
endwhile
- return tmp
+ return in_string || (c >= 0 && c <= a:pos)
endfunction
-function! MetaPrevNonblankNoncomment(pos)
- " Like prevnonblank() but ignore comment lines
- let tmp = prevnonblank(a:pos)
- while tmp && getline(tmp) =~ '^\s*%'
- let tmp = prevnonblank(tmp-1)
+" Find the first non-comment non-blank line before the current line.
+function! s:PrevNonBlankNonComment(lnum)
+ let l:lnum = prevnonblank(a:lnum - 1)
+ while getline(l:lnum) =~# '^\s*%'
+ let l:lnum = prevnonblank(l:lnum - 1)
endwhile
- return tmp
+ return l:lnum
endfunction
-function! MetaSearchNoncomment(pattern, ...)
- " Like search() but ignore commented areas
- if a:0
- let flags = a:1
- elseif &wrapscan
- let flags = "w"
- else
- let flags = "W"
- endif
- let cl = line(".")
- let cc = col(".")
- let tmp = search(a:pattern, flags)
- while tmp && synIDattr(synID(line("."), col("."), 1), "name") =~
- \ 'm[fp]\(Comment\|TeXinsert\|String\)'
- let tmp = search(a:pattern, flags)
+" Returns true if the last tag appearing in the line is an open tag; returns
+" false otherwise.
+function! s:LastTagIsOpen(line)
+ let o = s:LastValidMatchEnd(a:line, g:mp_open_tag, 0)
+ if o == - 1 | return v:false | endif
+ return s:LastValidMatchEnd(a:line, g:mp_close_tag, o) < 0
+endfunction
+
+" A simple, efficient and quite effective heuristics is used to test whether
+" a line should cause the next line to be indented: count the "opening tags"
+" (if, for, def, ...) in the line, count the "closing tags" (endif, endfor,
+" ...) in the line, and compute the difference. We call the result the
+" "weight" of the line. If the weight is positive, then the next line should
+" most likely be indented. Note that `else` and `elseif` are both opening and
+" closing tags, so they "cancel out" in almost all cases, the only exception
+" being a leading `else[if]`, which is counted as an opening tag, but not as
+" a closing tag (so that, for instance, a line containing a single `else:`
+" will have weight equal to one, not zero). We do not treat a trailing
+" `else[if]` in any special way, because lines ending with an open tag are
+" dealt with separately before this function is called (see
+" GetMetaPostIndentIntern()).
+"
+" Example:
+"
+" forsuffixes $=a,b: if x.$ = y.$ : draw else: fill fi
+" % This line will be indented because |{forsuffixes,if,else}| > |{else,fi}| (3 > 2)
+" endfor
+
+function! s:Weight(line)
+ let [o, i] = [0, s:ValidMatchEnd(a:line, g:mp_open_tag, 0)]
+ while i > 0
+ let o += 1
+ let i = s:ValidMatchEnd(a:line, g:mp_open_tag, i)
+ endwhile
+ let [c, i] = [0, matchend(a:line, '^\s*\<else\%[if]\>')] " Skip a leading else[if]
+ let i = s:ValidMatchEnd(a:line, g:mp_close_tag, i)
+ while i > 0
+ let c += 1
+ let i = s:ValidMatchEnd(a:line, g:mp_close_tag, i)
+ endwhile
+ return o - c
+endfunction
+
+" Similar to matchend(), but skips strings and comments.
+" line: a String
+function! s:ValidMatchEnd(line, pat, start)
+ let i = matchend(a:line, a:pat, a:start)
+ while i > 0 && s:CommentOrString(a:line, i)
+ let i = matchend(a:line, a:pat, i)
+ endwhile
+ return i
+endfunction
+
+" Like s:ValidMatchEnd(), but returns the end position of the last (i.e.,
+" rightmost) match.
+function! s:LastValidMatchEnd(line, pat, start)
+ let last_found = -1
+ let i = matchend(a:line, a:pat, a:start)
+ while i > 0
+ if !s:CommentOrString(a:line, i)
+ let last_found = i
+ endif
+ let i = matchend(a:line, a:pat, i)
endwhile
- if !tmp
- call cursor(cl,cc)
+ return last_found
+endfunction
+
+function! s:DecreaseIndentOnClosingTag(curr_indent)
+ let cur_text = getline(v:lnum)
+ if cur_text =~# '^\s*\%('.g:mp_close_tag.'\)'
+ return max([a:curr_indent - shiftwidth(), 0])
endif
- return tmp
+ return a:curr_indent
endfunction
" }}}
-function! GetMetaPostIndent()
- " not indent in comment ???
- if synIDattr(synID(line("."), col("."), 1), "name") =~
- \ 'm[fp]\(Comment\|TeXinsert\|String\)'
+" Main function {{{
+"
+" Note: Every rule of indentation in MetaPost is very subjective. We might get
+" creative, but things get murky very soon (there are too many corner cases).
+" So, we provide a means for the user to decide what to do when this script
+" doesn't get it. We use a simple idea: use '%>', '%<' and '%=' to explicitly
+" control indentation. The '<' and '>' symbols may be repeated many times
+" (e.g., '%>>' will cause the next line to be indented twice).
+"
+" By using '%>...', '%<...' and '%=', the indentation the user wants is
+" preserved by commands like gg=G, even if it does not follow the rules of
+" this script.
+"
+" Example:
+"
+" def foo =
+" makepen(
+" subpath(T-n,t) of r %>
+" shifted .5down %>
+" --subpath(t,T) of r shifted .5up -- cycle %<<<
+" )
+" withcolor black
+" enddef
+"
+" The default indentation of the previous example would be:
+"
+" def foo =
+" makepen(
+" subpath(T-n,t) of r
+" shifted .5down
+" --subpath(t,T) of r shifted .5up -- cycle
+" )
+" withcolor black
+" enddef
+"
+" Personally, I prefer the latter, but anyway...
+function! GetMetaPostIndentIntern()
+ " Do not touch indentation inside verbatimtex/btex.. etex blocks.
+ if synIDattr(synID(v:lnum, 1, 1), "name") =~# '^mpTeXinsert$\|^tex\|^Delimiter'
return -1
endif
- " Some RegExps: {{{1
- " end_of_item: all of end by ';'
- " + all of end by :endfor, :enddef, :endfig, :endgroup, :fi
- " + all of start by :beginfig(num), :begingroup
- " + all of start by :for, :if, :else, :elseif and end by ':'
- " + all of start by :def, :vardef and end by '='
- let end_of_item = '\(' .
- \ ';\|' .
- \ '\<\(end\(for\|def\|fig\|group\)\|fi\)\>\|' .
- \ '\<begin\(group\>\|fig\s*(\s*\d\+\s*)\)\|' .
- \ '\<\(for\|if\|else\(if\)\=\)\>.\+:\|' .
- \ '\<\(var\)\=def\>.\+=' . '\)'
- " }}}
- " Save: current position {{{1
- let cl = line (".")
- let cc = col (".")
- let cs = getline(".")
- " if it is :beginfig or :endfig use zero indent
- if cs =~ '^\s*\(begin\|end\)fig\>'
- return 0
- endif
- " }}}
- " Initialise: ind variable {{{1
- " search previous item not in current line
- let p_semicol_l = MetaSearchNoncomment(end_of_item,"bW")
- while p_semicol_l == cl
- let p_semicol_l = MetaSearchNoncomment(end_of_item,"bW")
- endwhile
- " if this is first item in program use zero indent
- if !p_semicol_l
+
+ " This is the reference line relative to which the current line is indented
+ " (but see below).
+ let lnum = s:PrevNonBlankNonComment(v:lnum)
+
+ " At the start of the file use zero indent.
+ if lnum == 0
return 0
endif
- " if this is multiline item, remember first indent
- if MetaNextNonblankNoncomment(p_semicol_l+1) < cl
- let ind = indent(MetaNextNonblankNoncomment(p_semicol_l+1))
- " else --- search pre-previous item for search first line in previous item
- else
- " search pre-previous item not in current line
- let pp_semicol_l = MetaSearchNoncomment(end_of_item,"bW")
- while pp_semicol_l == p_semicol_l
- let pp_semicol_l = MetaSearchNoncomment(end_of_item,"bW")
- endwhile
- " if we find pre-previous item, remember indent of previous item
- " else --- remember zero
- if pp_semicol_l
- let ind = indent(MetaNextNonblankNoncomment(line(".")+1))
- else
- let ind = 0
+
+ let prev_text = getline(lnum)
+
+ " User-defined overrides take precedence over anything else.
+ " See above for an example.
+ let j = match(prev_text, '%[<>=]')
+ if j > 0
+ let i = strlen(matchstr(prev_text, '%>\+', j)) - 1
+ if i > 0
+ return indent(lnum) + i * shiftwidth()
+ endif
+
+ let i = strlen(matchstr(prev_text, '%<\+', j)) - 1
+ if i > 0
+ return max([indent(lnum) - i * shiftwidth(), 0])
+ endif
+
+ if match(prev_text, '%=', j)
+ return indent(lnum)
endif
endif
- " }}}
- " Increase Indent: {{{1
- " if it is an internal/external :for or :if statements {{{2
- let pnn_s = getline(MetaPrevNonblankNoncomment(cl-1))
- if pnn_s =~ '\<\(for\|if\)\>.\+:\s*\($\|%\)'
- let ind = match(pnn_s, '\<\(for\|if\)\>.\+:\s*\($\|%\)') + &sw
- " }}}
- " if it is a :def, :vardef, :beginfig, :begingroup, :else, :elseif {{{2
- elseif pnn_s =~ '^\s*\(' .
- \ '\(var\)\=def\|' .
- \ 'begin\(group\|fig\s*(\s*\d\+\s*)\)\|' .
- \ 'else\(if\)\=' . '\)\>'
- let ind = ind + &sw
- " }}}
- " if it is a broken line {{{2
- elseif pnn_s !~ end_of_item.'\s*\($\|%\)'
- let ind = ind + (2 * &sw)
+
+ " If the reference line ends with an open tag, indent.
+ "
+ " Example:
+ "
+ " if c:
+ " 0
+ " else:
+ " 1
+ " fi if c2: % Note that this line has weight equal to zero.
+ " ... % This line will be indented
+ if s:LastTagIsOpen(prev_text)
+ return s:DecreaseIndentOnClosingTag(indent(lnum) + shiftwidth())
endif
- " }}}
- " }}}
- " Decrease Indent: {{{1
- " if this is :endfor or :enddef statements {{{2
- " this is correct because :def cannot be inside :for
- if cs =~ '\<end\(for\|def\)\=\>'
- call MetaSearchNoncomment('\<for\>.\+:\s*\($\|%\)' . '\|' .
- \ '^\s*\(var\)\=def\>',"bW")
- if col(".") > 1
- let ind = col(".") - 1
+
+ " Lines with a positive weight are unbalanced and should likely be indented.
+ "
+ " Example:
+ "
+ " def f = enddef for i = 1 upto 5: if x[i] > 0: 1 else: 2 fi
+ " ... % This line will be indented (because of the unterminated `for`)
+ if s:Weight(prev_text) > 0
+ return s:DecreaseIndentOnClosingTag(indent(lnum) + shiftwidth())
+ endif
+
+ " Unterminated statements cause indentation to kick in.
+ "
+ " Example:
+ "
+ " draw unitsquare
+ " withcolor black; % This line is indented because of `draw`.
+ " x := a + b + c
+ " + d + e; % This line is indented because of `:=`.
+ "
+ let i = s:LastValidMatchEnd(prev_text, g:mp_statement, 0)
+ if i >= 0 " Does the line contain a statement?
+ if s:ValidMatchEnd(prev_text, ';', i) < 0 " Is the statement unterminated?
+ return indent(lnum) + shiftwidth()
else
- let ind = indent(".")
+ return s:DecreaseIndentOnClosingTag(indent(lnum))
endif
- " }}}
- " if this is :fi, :else, :elseif statements {{{2
- elseif cs =~ '\<\(else\(if\)\=\|fi\)\>'
- call MetaSearchNoncomment('\<if\>.\+:\s*\($\|%\)',"bW")
- let ind = col(".") - 1
- " }}}
- " if this is :endgroup statement {{{2
- elseif cs =~ '^\s*endgroup\>'
- let ind = ind - &sw
endif
- " }}}
- " }}}
- return ind
+ " Deal with the special case of a statement spanning multiple lines. If the
+ " current reference line L ends with a semicolon, search backwards for
+ " another semicolon or a statement keyword. If the latter is found first,
+ " its line is used as the reference line for indenting the current line
+ " instead of L.
+ "
+ " Example:
+ "
+ " if cond:
+ " draw if a: z0 else: z1 fi
+ " shifted S
+ " scaled T; % L
+ "
+ " for i = 1 upto 3: % <-- Current line: this gets the same indent as `draw ...`
+ "
+ " NOTE: we get here only if L does not contain a statement (among those
+ " listed in g:mp_statement).
+ if s:ValidMatchEnd(prev_text, ';'.s:eol, 0) >= 0 " L ends with a semicolon
+ let stm_lnum = s:PrevNonBlankNonComment(lnum)
+ while stm_lnum > 0
+ let prev_text = getline(stm_lnum)
+ let sc_pos = s:LastValidMatchEnd(prev_text, ';', 0)
+ let stm_pos = s:ValidMatchEnd(prev_text, g:mp_statement, sc_pos)
+ if stm_pos > sc_pos
+ let lnum = stm_lnum
+ break
+ elseif sc_pos > stm_pos
+ break
+ endif
+ let stm_lnum = s:PrevNonBlankNonComment(stm_lnum)
+ endwhile
+ endif
+
+ return s:DecreaseIndentOnClosingTag(indent(lnum))
endfunction
-"
+" }}}
let &cpo = s:keepcpo
unlet s:keepcpo
diff --git a/runtime/indent/ocaml.vim b/runtime/indent/ocaml.vim
index 3bd65c63f0..8fe9de3d61 100644
--- a/runtime/indent/ocaml.vim
+++ b/runtime/indent/ocaml.vim
@@ -4,7 +4,7 @@
" Mike Leary <leary@nwlink.com>
" Markus Mottl <markus.mottl@gmail.com>
" URL: http://www.ocaml.info/vim/indent/ocaml.vim
-" Last Change: 2013 Jun 29
+" Last Change: 2017 Jun 13
" 2005 Jun 25 - Fixed multiple bugs due to 'else\nreturn ind' working
" 2005 May 09 - Added an option to not indent OCaml-indents specially (MM)
" 2013 June - commented textwidth (Marc Weber)
@@ -101,7 +101,7 @@ function! GetOCamlIndent()
" Return double 'shiftwidth' after lines matching:
if lline =~ '^\s*|.*->\s*$'
- return ind + &sw + &sw
+ return ind + 2 * shiftwidth()
endif
let line = getline(v:lnum)
@@ -172,7 +172,7 @@ function! GetOCamlIndent()
" Indent if current line begins with 'and':
elseif line =~ '^\s*and\>'
if lline !~ '^\s*\(and\|let\|type\)\>\|\<end\s*$'
- return ind - &sw
+ return ind - shiftwidth()
endif
" Indent if current line begins with 'with':
@@ -199,14 +199,14 @@ function! GetOCamlIndent()
" or 'method':
elseif line =~ '^\s*\(constraint\|inherit\|initializer\|method\)\>'
if lline !~ s:obj
- return indent(search('\<\(object\|object\s*(.*)\)\s*$', 'bW')) + &sw
+ return indent(search('\<\(object\|object\s*(.*)\)\s*$', 'bW')) + shiftwidth()
endif
endif
" Add a 'shiftwidth' after lines ending with:
if lline =~ '\(:\|=\|->\|<-\|(\|\[\|{\|{<\|\[|\|\[<\|\<\(begin\|do\|else\|fun\|function\|functor\|if\|initializer\|object\|parser\|private\|sig\|struct\|then\|try\)\|\<object\s*(.*)\)\s*$'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
" Back to normal indent after lines ending with ';;':
elseif lline =~ ';;\s*$' && lline !~ '^\s*;;'
@@ -263,7 +263,7 @@ function! GetOCamlIndent()
" Subtract a 'shiftwidth' after lines matching 'match ... with parser':
if lline =~ '\<match\>.*\<with\>\s*\<parser\s*$'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
return ind
diff --git a/runtime/indent/occam.vim b/runtime/indent/occam.vim
index bebb0528bb..4acd42e3c8 100644
--- a/runtime/indent/occam.vim
+++ b/runtime/indent/occam.vim
@@ -131,7 +131,7 @@ function GetOccamIndent()
if line =~ s:FirstLevelIndent || (line =~ s:FirstLevelNonColonEndIndent && line !~ s:ColonEnd)
\ || (line !~ s:ColonStart && (prevline =~ s:SecondLevelIndent
\ || (prevline =~ s:SecondLevelNonColonEndIndent && prevline !~ s:ColonEnd)))
- let curindent = curindent + &shiftwidth
+ let curindent = curindent + shiftwidth()
" Restore magic
if !save_magic|setlocal nomagic|endif
@@ -153,7 +153,7 @@ function GetOccamIndent()
while !found
- if indent(prevlinenum) == curindent - &shiftwidth
+ if indent(prevlinenum) == curindent - shiftwidth()
let found = 1
endif
@@ -171,7 +171,7 @@ function GetOccamIndent()
if prevlinenum > 0
if getline(prevlinenum) =~ s:SecondLevelIndent
- let curindent = curindent + &shiftwidth
+ let curindent = curindent + shiftwidth()
endif
endif
diff --git a/runtime/indent/pascal.vim b/runtime/indent/pascal.vim
index 6dd3030e9c..c7955d669b 100644
--- a/runtime/indent/pascal.vim
+++ b/runtime/indent/pascal.vim
@@ -2,7 +2,7 @@
" Language: Pascal
" Maintainer: Neil Carter <n.carter@swansea.ac.uk>
" Created: 2004 Jul 13
-" Last Change: 2011 Apr 01
+" Last Change: 2017 Jun 13
"
" This is version 2.0, a complete rewrite.
"
@@ -102,12 +102,12 @@ function! GetPascalIndent( line_num )
" If the PREVIOUS LINE ended in these items, always indent
if prev_codeline =~ '\<\(type\|const\|var\)$'
- return indnt + &shiftwidth
+ return indnt + shiftwidth()
endif
if prev_codeline =~ '\<repeat$'
if this_codeline !~ '^\s*until\>'
- return indnt + &shiftwidth
+ return indnt + shiftwidth()
else
return indnt
endif
@@ -115,7 +115,7 @@ function! GetPascalIndent( line_num )
if prev_codeline =~ '\<\(begin\|record\)$'
if this_codeline !~ '^\s*end\>'
- return indnt + &shiftwidth
+ return indnt + shiftwidth()
else
return indnt
endif
@@ -125,10 +125,10 @@ function! GetPascalIndent( line_num )
" followed by "begin"
if prev_codeline =~ '\<\(\|else\|then\|do\)$' || prev_codeline =~ ':$'
if this_codeline !~ '^\s*begin\>'
- return indnt + &shiftwidth
+ return indnt + shiftwidth()
else
" If it does start with "begin" then keep the same indent
- "return indnt + &shiftwidth
+ "return indnt + shiftwidth()
return indnt
endif
endif
@@ -137,7 +137,7 @@ function! GetPascalIndent( line_num )
" only the line before the current one. TODO: Get it working for
" parameter lists longer than two lines.
if prev_codeline =~ '([^)]\+$'
- return indnt + &shiftwidth
+ return indnt + shiftwidth()
endif
@@ -146,7 +146,7 @@ function! GetPascalIndent( line_num )
" Lines starting with "else", but not following line ending with
" "end".
if this_codeline =~ '^\s*else\>' && prev_codeline !~ '\<end$'
- return indnt - &shiftwidth
+ return indnt - shiftwidth()
endif
" Lines after a single-statement branch/loop.
@@ -160,16 +160,16 @@ function! GetPascalIndent( line_num )
" additional unindentation.
if this_codeline =~ '^\s*\(end;\|except\|finally\|\)$'
" Note that we don't return from here.
- return indnt - &shiftwidth - &shiftwidth
+ return indnt - 2 * shiftwidth()
endif
- return indnt - &shiftwidth
+ return indnt - shiftwidth()
endif
" Lines starting with "until" or "end". This rule must be overridden
" by the one for "end" after a single-statement branch/loop. In
" other words that rule should come before this one.
if this_codeline =~ '^\s*\(end\|until\)\>'
- return indnt - &shiftwidth
+ return indnt - shiftwidth()
endif
@@ -201,7 +201,7 @@ function! GetPascalIndent( line_num )
" If the PREVIOUS LINE ended in these items, always indent.
if prev_codeline =~ '^\s*\(unit\|uses\|try\|except\|finally\|private\|protected\|public\|published\)$'
- return indnt + &shiftwidth
+ return indnt + shiftwidth()
endif
" ???? Indent "procedure" and "functions" if they appear within an
@@ -212,11 +212,11 @@ function! GetPascalIndent( line_num )
" UNINDENT ONCE
if this_codeline =~ '^\s*\(except\|finally\)$'
- return indnt - &shiftwidth
+ return indnt - shiftwidth()
endif
if this_codeline =~ '^\s*\(private\|protected\|public\|published\)$'
- return indnt - &shiftwidth
+ return indnt - shiftwidth()
endif
diff --git a/runtime/indent/perl.vim b/runtime/indent/perl.vim
index fc4b6a30d3..094d1d37ea 100644
--- a/runtime/indent/perl.vim
+++ b/runtime/indent/perl.vim
@@ -3,7 +3,7 @@
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
-" Last Change: 2013-07-24
+" Last Change: 2017-01-04
" Suggestions and improvements by :
" Aaron J. Sherman (use syntax for hints)
@@ -48,11 +48,6 @@ function! GetPerlIndent()
return 0
endif
- " Don't reindent comments on first column
- if cline =~ '^#.'
- return 0
- endif
-
" Get current syntax item at the line's first char
let csynid = ''
if b:indent_use_syntax
@@ -134,13 +129,14 @@ function! GetPerlIndent()
\ || synid == "perlMatchStartEnd"
\ || synid == "perlHereDoc"
\ || synid == "perlBraces"
+ \ || synid == "perlStatementIndirObj"
\ || synid =~ "^perlFiledescStatement"
\ || synid =~ '^perl\(Sub\|Block\|Package\)Fold'
let brace = strpart(line, bracepos, 1)
if brace == '(' || brace == '{' || brace == '['
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
else
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
endif
let bracepos = match(line, braceclass, bracepos + 1)
@@ -151,26 +147,27 @@ function! GetPerlIndent()
if synid == ""
\ || synid == "perlMatchStartEnd"
\ || synid == "perlBraces"
+ \ || synid == "perlStatementIndirObj"
\ || synid =~ '^perl\(Sub\|Block\|Package\)Fold'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
endif
else
if line =~ '[{[(]\s*\(#[^])}]*\)\=$'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
if cline =~ '^\s*[])}]'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
endif
" Indent lines that begin with 'or' or 'and'
if cline =~ '^\s*\(or\|and\)\>'
if line !~ '^\s*\(or\|and\)\>'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
elseif line =~ '^\s*\(or\|and\)\>'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
return ind
diff --git a/runtime/indent/perl6.vim b/runtime/indent/perl6.vim
index ff2a579f0a..8561c8c58c 100644
--- a/runtime/indent/perl6.vim
+++ b/runtime/indent/perl6.vim
@@ -3,7 +3,7 @@
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
-" Last Change: 2013-07-21
+" Last Change: 2017 Jun 13
" Contributors: Andy Lester <andy@petdance.com>
" Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
"
@@ -107,19 +107,19 @@ function! GetPerl6Indent()
endif
if line =~ '[<«\[{(]\s*\(#[^)}\]»>]*\)\=$'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
if cline =~ '^\s*[)}\]»>]'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
" Indent lines that begin with 'or' or 'and'
if cline =~ '^\s*\(or\|and\)\>'
if line !~ '^\s*\(or\|and\)\>'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
elseif line =~ '^\s*\(or\|and\)\>'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
return ind
diff --git a/runtime/indent/php.vim b/runtime/indent/php.vim
index 07ecd8f141..35dddaa270 100644
--- a/runtime/indent/php.vim
+++ b/runtime/indent/php.vim
@@ -3,8 +3,8 @@
" Author: John Wellesz <John.wellesz (AT) teaser (DOT) fr>
" URL: http://www.2072productions.com/vim/indent/php.vim
" Home: https://github.com/2072/PHP-Indenting-for-VIm
-" Last Change: 2015 September 8th
-" Version: 1.60
+" Last Change: 2017 Jun 13
+" Version: 1.62
"
"
" Type :help php-indent for available options
@@ -50,25 +50,15 @@ let b:did_indent = 1
let g:php_sync_method = 0
-if exists('*shiftwidth')
- function! s:sw()
- return shiftwidth()
- endfunction
-else
- function! s:sw()
- return &shiftwidth
- endfunction
-endif
-
if exists("PHP_default_indenting")
- let b:PHP_default_indenting = PHP_default_indenting * s:sw()
+ let b:PHP_default_indenting = PHP_default_indenting * shiftwidth()
else
let b:PHP_default_indenting = 0
endif
if exists("PHP_outdentSLComments")
- let b:PHP_outdentSLComments = PHP_outdentSLComments * s:sw()
+ let b:PHP_outdentSLComments = PHP_outdentSLComments * shiftwidth()
else
let b:PHP_outdentSLComments = 0
endif
@@ -141,11 +131,13 @@ let s:PHP_validVariable = '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'
let s:notPhpHereDoc = '\%(break\|return\|continue\|exit\|die\|else\)'
let s:blockstart = '\%(\%(\%(}\s*\)\=else\%(\s\+\)\=\)\=if\>\|\%(}\s*\)\?else\>\|do\>\|while\>\|switch\>\|case\>\|default\>\|for\%(each\)\=\>\|declare\>\|class\>\|trait\>\|use\>\|interface\>\|abstract\>\|final\>\|try\>\|\%(}\s*\)\=catch\>\|\%(}\s*\)\=finally\>\)'
let s:functionDecl = '\<function\>\%(\s\+'.s:PHP_validVariable.'\)\=\s*(.*'
-let s:endline= '\s*\%(//.*\|#.*\|/\*.*\*/\s*\)\=$'
+let s:endline = '\s*\%(//.*\|#.*\|/\*.*\*/\s*\)\=$'
+let s:unstated = '\%(^\s*'.s:blockstart.'.*)\|\%(//.*\)\@<!\<e'.'lse\>\)'.s:endline
-let s:terminated = '\%(\%(;\%(\s*\%(?>\|}\)\)\=\|<<<\s*[''"]\=\a\w*[''"]\=$\|^\s*}\|^\s*'.s:PHP_validVariable.':\)'.s:endline.'\)\|^[^''"`]*[''"`]$'
+let s:terminated = '\%(\%(;\%(\s*\%(?>\|}\)\)\=\|<<<\s*[''"]\=\a\w*[''"]\=$\|^\s*}\|^\s*'.s:PHP_validVariable.':\)'.s:endline.'\)'
let s:PHP_startindenttag = '<?\%(.*?>\)\@!\|<script[^>]*>\%(.*<\/script>\)\@!'
+let s:structureHead = '^\s*\%(' . s:blockstart . '\)\|'. s:functionDecl . s:endline . '\|\<new\s\+class\>'
@@ -214,10 +206,28 @@ function! GetLastRealCodeLNum(startline) " {{{
let lnum = lnum - 1
endwhile
elseif lastline =~ '^[^''"`]*[''"`][;,]'.s:endline
- let tofind=substitute( lastline, '^.*\([''"`]\)[;,].*$', '^[^\1]\\+[\1]$', '')
- while getline(lnum) !~? tofind && lnum > 1
- let lnum = lnum - 1
+
+ let tofind=substitute( lastline, '^.*\([''"`]\)[;,].*$', '^[^\1]\\+[\1]$\\|^[^\1]\\+[=([]\\s*[\1]', '')
+ let trylnum = lnum
+ while getline(trylnum) !~? tofind && trylnum > 1
+ let trylnum = trylnum - 1
endwhile
+
+ if trylnum == 1
+ break
+ else
+ if lastline =~ ';'.s:endline
+ while getline(trylnum) !~? s:terminated && getline(trylnum) !~? '{'.s:endline && trylnum > 1
+ let trylnum = prevnonblank(trylnum - 1)
+ endwhile
+
+
+ if trylnum == 1
+ break
+ end
+ end
+ let lnum = trylnum
+ end
else
break
endif
@@ -262,7 +272,7 @@ function! FindOpenBracket(lnum, blockStarter) " {{{
while line > 1
let linec = getline(line)
- if linec =~ s:terminated || linec =~ '^\s*\%(' . s:blockstart . '\)\|'. s:functionDecl . s:endline
+ if linec =~ s:terminated || linec =~ s:structureHead
break
endif
@@ -273,6 +283,20 @@ function! FindOpenBracket(lnum, blockStarter) " {{{
return line
endfun " }}}
+let s:blockChars = {'{':1, '[': 1, '(': 1, ')':-1, ']':-1, '}':-1}
+function! BalanceDirection (str)
+
+ let balance = 0
+
+ for c in split(a:str, '\zs')
+ if has_key(s:blockChars, c)
+ let balance += s:blockChars[c]
+ endif
+ endfor
+
+ return balance
+endfun
+
function! FindTheIfOfAnElse (lnum, StopAfterFirstPrevElse) " {{{
if getline(a:lnum) =~# '^\s*}\s*else\%(if\)\=\>'
@@ -323,7 +347,7 @@ function! FindTheSwitchIndent (lnum) " {{{
let test = GetLastRealCodeLNum(a:lnum - 1)
if test <= 1
- return indent(1) - s:sw() * b:PHP_vintage_case_default_indent
+ return indent(1) - shiftwidth() * b:PHP_vintage_case_default_indent
end
while getline(test) =~ '^\s*}' && test > 1
@@ -337,7 +361,7 @@ function! FindTheSwitchIndent (lnum) " {{{
if getline(test) =~# '^\s*switch\>'
return indent(test)
elseif getline(test) =~# s:defaultORcase
- return indent(test) - s:sw() * b:PHP_vintage_case_default_indent
+ return indent(test) - shiftwidth() * b:PHP_vintage_case_default_indent
else
return FindTheSwitchIndent(test)
endif
@@ -410,7 +434,7 @@ function! GetPhpIndent()
endif
if b:PHP_default_indenting
- let b:PHP_default_indenting = g:PHP_default_indenting * s:sw()
+ let b:PHP_default_indenting = g:PHP_default_indenting * shiftwidth()
endif
let cline = getline(v:lnum)
@@ -457,7 +481,7 @@ function! GetPhpIndent()
if synname!=""
if synname == "SpecStringEntrails"
- let b:InPHPcode = -1
+ let b:InPHPcode = -1 " thumb down
let b:InPHPcode_tofind = ""
elseif synname != "phpHereDoc" && synname != "phpHereDocDelimiter"
let b:InPHPcode = 1
@@ -540,7 +564,7 @@ function! GetPhpIndent()
let b:InPHPcode_and_script = 1
endif
- elseif last_line =~ '^[^''"`]\+[''"`]$'
+ elseif last_line =~ '^[^''"`]\+[''"`]$' " a string identifier with nothing after it and no other string identifier before
let b:InPHPcode = -1
let b:InPHPcode_tofind = substitute( last_line, '^.*\([''"`]\).*$', '^[^\1]*\1[;,]$', '')
elseif last_line =~? '<<<\s*[''"]\=\a\w*[''"]\=$'
@@ -660,25 +684,26 @@ function! GetPhpIndent()
let terminated = s:terminated
- let unstated = '\%(^\s*'.s:blockstart.'.*)\|\%(//.*\)\@<!\<e'.'lse\>\)'.endline
+ let unstated = s:unstated
+
if ind != b:PHP_default_indenting && cline =~# '^\s*else\%(if\)\=\>'
let b:PHP_CurrentIndentLevel = b:PHP_default_indenting
return indent(FindTheIfOfAnElse(v:lnum, 1))
elseif cline =~# s:defaultORcase
- return FindTheSwitchIndent(v:lnum) + s:sw() * b:PHP_vintage_case_default_indent
+ return FindTheSwitchIndent(v:lnum) + shiftwidth() * b:PHP_vintage_case_default_indent
elseif cline =~ '^\s*)\=\s*{'
let previous_line = last_line
let last_line_num = lnum
while last_line_num > 1
- if previous_line =~ terminated || previous_line =~ '^\s*\%(' . s:blockstart . '\)\|'. s:functionDecl . endline
+ if previous_line =~ terminated || previous_line =~ s:structureHead
let ind = indent(last_line_num)
if b:PHP_BracesAtCodeLevel
- let ind = ind + s:sw()
+ let ind = ind + shiftwidth()
endif
return ind
@@ -689,7 +714,7 @@ function! GetPhpIndent()
endwhile
elseif last_line =~# unstated && cline !~ '^\s*);\='.endline
- let ind = ind + s:sw()
+ let ind = ind + shiftwidth() " we indent one level further when the preceding line is not stated
return ind + addSpecial
elseif (ind != b:PHP_default_indenting || last_line =~ '^[)\]]' ) && last_line =~ terminated
@@ -699,7 +724,7 @@ function! GetPhpIndent()
let isSingleLineBlock = 0
while 1
- if ! isSingleLineBlock && previous_line =~ '^\s*}\|;\s*}'.endline
+ if ! isSingleLineBlock && previous_line =~ '^\s*}\|;\s*}'.endline " XXX
call cursor(last_line_num, 1)
if previous_line !~ '^}'
@@ -780,15 +805,15 @@ function! GetPhpIndent()
if !LastLineClosed
- if last_line =~# '[{(\[]'.endline || last_line =~? '\h\w*\s*(.*,$' && AntepenultimateLine !~ '[,(\[]'.endline
+ if last_line =~# '[{(\[]'.endline || last_line =~? '\h\w*\s*(.*,$' && AntepenultimateLine !~ '[,(\[]'.endline && BalanceDirection(last_line) > 0
let dontIndent = 0
- if last_line =~ '\S\+\s*{'.endline && last_line !~ '^\s*)\s*{'.endline && last_line !~ '^\s*\%(' . s:blockstart . '\)\|'. s:functionDecl . s:endline
+ if last_line =~ '\S\+\s*{'.endline && last_line !~ '^\s*[)\]]\+\s*{'.endline && last_line !~ s:structureHead
let dontIndent = 1
endif
if !dontIndent && (!b:PHP_BracesAtCodeLevel || last_line !~# '^\s*{')
- let ind = ind + s:sw()
+ let ind = ind + shiftwidth()
endif
if b:PHP_BracesAtCodeLevel || b:PHP_vintage_case_default_indent == 1
@@ -797,26 +822,26 @@ function! GetPhpIndent()
return ind + addSpecial
endif
- elseif last_line =~ '\S\+\s*),'.endline
+ elseif last_line =~ '\S\+\s*),'.endline && BalanceDirection(last_line) < 0
call cursor(lnum, 1)
- call search('),'.endline, 'W')
+ call search('),'.endline, 'W') " line never begins with ) so no need for 'c' flag
let openedparent = searchpair('(', '', ')', 'bW', 'Skippmatch()')
if openedparent != lnum
let ind = indent(openedparent)
endif
elseif last_line =~ '^\s*'.s:blockstart
- let ind = ind + s:sw()
+ let ind = ind + shiftwidth()
- elseif AntepenultimateLine =~ '{'.endline || AntepenultimateLine =~ terminated || AntepenultimateLine =~# s:defaultORcase
- let ind = ind + s:sw()
+ elseif AntepenultimateLine =~ '{'.endline && AntepenultimateLine !~? '^\s*use\>' || AntepenultimateLine =~ terminated || AntepenultimateLine =~# s:defaultORcase
+ let ind = ind + shiftwidth()
endif
endif
if cline =~ '^\s*[)\]];\='
- let ind = ind - s:sw()
+ let ind = ind - shiftwidth()
endif
let b:PHP_CurrentIndentLevel = ind
diff --git a/runtime/indent/postscr.vim b/runtime/indent/postscr.vim
index b0ff48e682..2592bcf62f 100644
--- a/runtime/indent/postscr.vim
+++ b/runtime/indent/postscr.vim
@@ -41,16 +41,16 @@ function! PostscrIndentGet(lnum)
" Indent for dicts, arrays, and saves with possible trailing comment
if pline =~ '\(begin\|<<\|g\=save\|{\|[\)\s*\(%.*\)\=$'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
" Remove indent for popped dicts, and restores.
if pline =~ '\(end\|g\=restore\)\s*$'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
" Else handle immediate dedents of dicts, restores, and arrays.
elseif getline(a:lnum) =~ '\(end\|>>\|g\=restore\|}\|]\)'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
" Else handle DSC comments - always start of line.
elseif getline(a:lnum) =~ '^\s*%%'
diff --git a/runtime/indent/pov.vim b/runtime/indent/pov.vim
index 2b197635a1..e806756c8e 100644
--- a/runtime/indent/pov.vim
+++ b/runtime/indent/pov.vim
@@ -1,7 +1,7 @@
" Vim indent file
" Language: PoV-Ray Scene Description Language
" Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
-" Last Change: 2002-10-20
+" Last Change: 2017 Jun 13
" URI: http://trific.ath.cx/Ftp/vim/indent/pov.vim
" Only load this indent file when no other was loaded.
@@ -75,9 +75,9 @@ function GetPoVRayIndent()
" opening line.
let cur = s:MatchCount(v:lnum, '^\s*\%(#\s*\%(end\|else\)\>\|[]})]\)')
if cur > 0
- let final = plind + (chg - cur) * &sw
+ let final = plind + (chg - cur) * shiftwidth()
else
- let final = plind + chg * &sw
+ let final = plind + chg * shiftwidth()
endif
return final < 0 ? 0 : final
diff --git a/runtime/indent/prolog.vim b/runtime/indent/prolog.vim
index afe448e8f3..26a3bc3cd9 100644
--- a/runtime/indent/prolog.vim
+++ b/runtime/indent/prolog.vim
@@ -41,18 +41,18 @@ function! GetPrologIndent()
endif
" Check for clause head on previous line
if pline =~ ':-\s*\(%.*\)\?$'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
" Check for end of clause on previous line
elseif pline =~ '\.\s*\(%.*\)\?$'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
" Check for opening conditional on previous line
if pline =~ '^\s*\([(;]\|->\)'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
" Check for closing an unclosed paren, or middle ; or ->
if line =~ '^\s*\([);]\|->\)'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
return ind
endfunction
diff --git a/runtime/indent/r.vim b/runtime/indent/r.vim
index 01f3812ed2..373b0e65df 100644
--- a/runtime/indent/r.vim
+++ b/runtime/indent/r.vim
@@ -274,7 +274,7 @@ function GetRIndent()
let nlnum = s:Get_prev_line(nlnum)
let nline = SanitizeRLine(getline(nlnum)) . nline
endwhile
- if nline =~ '^\s*function\s*(' && indent(nlnum) == &sw
+ if nline =~ '^\s*function\s*(' && indent(nlnum) == shiftwidth()
return 0
endif
endif
@@ -285,7 +285,7 @@ function GetRIndent()
" line is an incomplete command:
if line =~ '\<\(if\|while\|for\|function\)\s*()$' || line =~ '\<else$' || line =~ '<-$' || line =~ '->$'
- return indent(lnum) + &sw
+ return indent(lnum) + shiftwidth()
endif
" Deal with () and []
@@ -293,14 +293,14 @@ function GetRIndent()
let pb = s:Get_paren_balance(line, '(', ')')
if line =~ '^\s*{$' || line =~ '(\s*{' || (pb == 0 && (line =~ '{$' || line =~ '(\s*{$'))
- return indent(lnum) + &sw
+ return indent(lnum) + shiftwidth()
endif
let s:curtabstop = repeat(' ', &tabstop)
if g:r_indent_align_args == 1
if pb > 0 && line =~ '{$'
- return s:Get_last_paren_idx(line, '(', ')', pb) + &sw
+ return s:Get_last_paren_idx(line, '(', ')', pb) + shiftwidth()
endif
let bb = s:Get_paren_balance(line, '[', ']')
@@ -364,11 +364,11 @@ function GetRIndent()
if oline =~ g:r_indent_op_pattern && s:Get_paren_balance(line, "(", ")") == 0
return indent(lnum)
else
- return indent(lnum) + &sw
+ return indent(lnum) + shiftwidth()
endif
else
if oline =~ g:r_indent_op_pattern && s:Get_paren_balance(line, "(", ")") == 0
- return indent(lnum) - &sw
+ return indent(lnum) - shiftwidth()
endif
endif
endif
@@ -383,7 +383,7 @@ function GetRIndent()
let line = linepiece . line
endwhile
if line =~ '{$' && post_block == 0
- return indent(lnum) + &sw
+ return indent(lnum) + shiftwidth()
endif
" Now we can do some tests again
@@ -393,19 +393,19 @@ function GetRIndent()
if post_block == 0
let newl = SanitizeRLine(line)
if newl =~ '\<\(if\|while\|for\|function\)\s*()$' || newl =~ '\<else$' || newl =~ '<-$'
- return indent(lnum) + &sw
+ return indent(lnum) + shiftwidth()
endif
endif
endif
if cline =~ '^\s*else'
if line =~ '<-\s*if\s*()'
- return indent(lnum) + &sw
+ return indent(lnum) + shiftwidth()
else
if line =~ '\<if\s*()'
return indent(lnum)
else
- return indent(lnum) - &sw
+ return indent(lnum) - shiftwidth()
endif
endif
endif
@@ -474,12 +474,12 @@ function GetRIndent()
let ind = indent(lnum)
if g:r_indent_align_args == 0 && pb != 0
- let ind += pb * &sw
+ let ind += pb * shiftwidth()
return ind
endif
if g:r_indent_align_args == 0 && bb != 0
- let ind += bb * &sw
+ let ind += bb * shiftwidth()
return ind
endif
@@ -489,7 +489,7 @@ function GetRIndent()
let pind = 0
endif
- if ind == pind || (ind == (pind + &sw) && pline =~ '{$' && ppost_else == 0)
+ if ind == pind || (ind == (pind + shiftwidth()) && pline =~ '{$' && ppost_else == 0)
return ind
endif
@@ -509,7 +509,7 @@ function GetRIndent()
let pbb = s:Get_paren_balance(pline, '[', ']')
endwhile
let pind = indent(plnum)
- if ind == (pind + &sw) && pline =~ '{$'
+ if ind == (pind + shiftwidth()) && pline =~ '{$'
return ind
endif
endwhile
diff --git a/runtime/indent/readline.vim b/runtime/indent/readline.vim
index 6ac2185bdc..e202ddfd89 100644
--- a/runtime/indent/readline.vim
+++ b/runtime/indent/readline.vim
@@ -1,7 +1,7 @@
" Vim indent file
-" Language: readline configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-12-20
+" Language: readline configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-12-20
if exists("b:did_indent")
finish
@@ -25,11 +25,11 @@ function GetReadlineIndent()
let ind = indent(lnum)
if getline(lnum) =~ '^\s*$\(if\|else\)\>'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
if getline(v:lnum) =~ '^\s*$\(else\|endif\)\>'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
return ind
diff --git a/runtime/indent/rhelp.vim b/runtime/indent/rhelp.vim
index 9dc2031cb6..cf69ae3392 100644
--- a/runtime/indent/rhelp.vim
+++ b/runtime/indent/rhelp.vim
@@ -82,7 +82,7 @@ function GetRHelpIndent()
let closeb = strlen(line2) - strlen(line3)
let bb = openb - closeb
- let ind = indent(lnum) + (bb * &sw)
+ let ind = indent(lnum) + (bb * shiftwidth())
if line =~ '^\s*}\s*$'
let ind = indent(lnum)
diff --git a/runtime/indent/rnoweb.vim b/runtime/indent/rnoweb.vim
index 29fa5bc78f..8c11e85cb3 100644
--- a/runtime/indent/rnoweb.vim
+++ b/runtime/indent/rnoweb.vim
@@ -2,7 +2,7 @@
" Language: Rnoweb
" Author: Jakson Alves de Aquino <jalvesaq@gmail.com>
" Homepage: https://github.com/jalvesaq/R-Vim-runtime
-" Last Change: Tue Apr 07, 2015 04:38PM
+" Last Change: Fri Apr 15, 2016 10:58PM
" Only load this indent file when no other was loaded.
@@ -10,7 +10,17 @@ if exists("b:did_indent")
finish
endif
runtime indent/tex.vim
-let s:TeXIndent = function(substitute(&indentexpr, "()", "", ""))
+
+function! s:NoTeXIndent()
+ return indent(line("."))
+endfunction
+
+if &indentexpr == "" || &indentexpr == "GetRnowebIndent()"
+ let s:TeXIndent = function("s:NoTeXIndent")
+else
+ let s:TeXIndent = function(substitute(&indentexpr, "()", "", ""))
+endif
+
unlet b:did_indent
runtime indent/r.vim
let s:RIndent = function(substitute(&indentexpr, "()", "", ""))
diff --git a/runtime/indent/rpl.vim b/runtime/indent/rpl.vim
index 07bfd06590..fab258ed2b 100644
--- a/runtime/indent/rpl.vim
+++ b/runtime/indent/rpl.vim
@@ -1,7 +1,7 @@
" Vim indent file
" Language: RPL/2
" Version: 0.2
-" Last Change: 2005 Mar 28
+" Last Change: 2017 Jun 13
" Maintainer: BERTRAND Jol <rpl2@free.fr>
" Only load this indent file when no other was loaded.
@@ -32,16 +32,16 @@ function RplGetIndent(lnum)
if prevstat =~? '\<\(if\|iferr\|do\|while\)\>' && prevstat =~? '\<end\>'
elseif prevstat =~? '\(^\|\s\+\)<<\($\|\s\+\)' && prevstat =~? '\s\+>>\($\|\s\+\)'
elseif prevstat =~? '\<\(if\|iferr\|then\|else\|elseif\|select\|case\|do\|until\|while\|repeat\|for\|start\|default\)\>' || prevstat =~? '\(^\|\s\+\)<<\($\|\s\+\)'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
" Subtract a shiftwidth from then, else, elseif, end, until, repeat, next,
" step
let line = getline(v:lnum)
if line =~? '^\s*\(then\|else\|elseif\|until\|repeat\|next\|step\|default\|end\)\>'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
elseif line =~? '^\s*>>\($\|\s\+\)'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
return ind
diff --git a/runtime/indent/rst.vim b/runtime/indent/rst.vim
index 80d3308fd8..c1ef8c9957 100644
--- a/runtime/indent/rst.vim
+++ b/runtime/indent/rst.vim
@@ -1,7 +1,7 @@
" Vim indent file
-" Language: reStructuredText Documentation Format
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2011-08-03
+" Language: reStructuredText Documentation Format
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2011-08-03
if exists("b:did_indent")
finish
diff --git a/runtime/indent/ruby.vim b/runtime/indent/ruby.vim
index 095b3a43c6..d8733db305 100644
--- a/runtime/indent/ruby.vim
+++ b/runtime/indent/ruby.vim
@@ -13,12 +13,23 @@ if exists("b:did_indent")
endif
let b:did_indent = 1
+if !exists('g:ruby_indent_access_modifier_style')
+ " Possible values: "normal", "indent", "outdent"
+ let g:ruby_indent_access_modifier_style = 'normal'
+endif
+
+if !exists('g:ruby_indent_block_style')
+ " Possible values: "expression", "do"
+ let g:ruby_indent_block_style = 'expression'
+endif
+
setlocal nosmartindent
" Now, set up our indentation expression and keys that trigger it.
setlocal indentexpr=GetRubyIndent(v:lnum)
-setlocal indentkeys=0{,0},0),0],!^F,o,O,e
+setlocal indentkeys=0{,0},0),0],!^F,o,O,e,:,.
setlocal indentkeys+==end,=else,=elsif,=when,=ensure,=rescue,==begin,==end
+setlocal indentkeys+==private,=protected,=public
" Only define the function once.
if exists("*GetRubyIndent")
@@ -34,7 +45,7 @@ set cpo&vim
" Regex of syntax group names that are or delimit strings/symbols or are comments.
let s:syng_strcom = '\<ruby\%(Regexp\|RegexpDelimiter\|RegexpEscape' .
\ '\|Symbol\|String\|StringDelimiter\|StringEscape\|ASCIICode' .
- \ '\|Interpolation\|NoInterpolation\|Comment\|Documentation\)\>'
+ \ '\|Interpolation\|InterpolationDelimiter\|NoInterpolation\|Comment\|Documentation\)\>'
" Regex of syntax group names that are strings.
let s:syng_string =
@@ -49,9 +60,10 @@ let s:skip_expr =
\ "synIDattr(synID(line('.'),col('.'),1),'name') =~ '".s:syng_strcom."'"
" Regex used for words that, at the start of a line, add a level of indent.
-let s:ruby_indent_keywords = '^\s*\zs\<\%(module\|class\|def\|if\|for' .
- \ '\|while\|until\|else\|elsif\|case\|when\|unless\|begin\|ensure' .
- \ '\|rescue\):\@!\>' .
+let s:ruby_indent_keywords =
+ \ '^\s*\zs\<\%(module\|class\|if\|for' .
+ \ '\|while\|until\|else\|elsif\|case\|when\|unless\|begin\|ensure\|rescue' .
+ \ '\|\%(public\|protected\|private\)\=\s*def\):\@!\>' .
\ '\|\%([=,*/%+-]\|<<\|>>\|:\s\)\s*\zs' .
\ '\<\%(if\|for\|while\|until\|case\|unless\|begin\):\@!\>'
@@ -64,7 +76,8 @@ let s:ruby_deindent_keywords =
" TODO: the do here should be restricted somewhat (only at end of line)?
let s:end_start_regex =
\ '\C\%(^\s*\|[=,*/%+\-|;{]\|<<\|>>\|:\s\)\s*\zs' .
- \ '\<\%(module\|class\|def\|if\|for\|while\|until\|case\|unless\|begin\):\@!\>' .
+ \ '\<\%(module\|class\|if\|for\|while\|until\|case\|unless\|begin' .
+ \ '\|\%(public\|protected\|private\)\=\s*def\):\@!\>' .
\ '\|\%(^\|[^.:@$]\)\@<=\<do:\@!\>'
" Regex that defines the middle-match for the 'end' keyword.
@@ -79,19 +92,39 @@ let s:end_skip_expr = s:skip_expr .
\ ' && getline(".") =~ "^\\s*\\<\\(while\\|until\\|for\\):\\@!\\>")'
" Regex that defines continuation lines, not including (, {, or [.
-let s:non_bracket_continuation_regex = '\%([\\.,:*/%+]\|\<and\|\<or\|\%(<%\)\@<![=-]\|\W[|&?]\|||\|&&\)\s*\%(#.*\)\=$'
+let s:non_bracket_continuation_regex =
+ \ '\%([\\.,:*/%+]\|\<and\|\<or\|\%(<%\)\@<![=-]\|:\@<![^[:alnum:]:][|&?]\|||\|&&\)\s*\%(#.*\)\=$'
" Regex that defines continuation lines.
-" TODO: this needs to deal with if ...: and so on
let s:continuation_regex =
- \ '\%(%\@<![({[\\.,:*/%+]\|\<and\|\<or\|\%(<%\)\@<![=-]\|\W[|&?]\|||\|&&\)\s*\%(#.*\)\=$'
+ \ '\%(%\@<![({[\\.,:*/%+]\|\<and\|\<or\|\%(<%\)\@<![=-]\|:\@<![^[:alnum:]:][|&?]\|||\|&&\)\s*\%(#.*\)\=$'
+
+" Regex that defines continuable keywords
+let s:continuable_regex =
+ \ '\C\%(^\s*\|[=,*/%+\-|;{]\|<<\|>>\|:\s\)\s*\zs' .
+ \ '\<\%(if\|for\|while\|until\|unless\):\@!\>'
" Regex that defines bracket continuations
let s:bracket_continuation_regex = '%\@<!\%([({[]\)\s*\%(#.*\)\=$'
+" Regex that defines dot continuations
+let s:dot_continuation_regex = '%\@<!\.\s*\%(#.*\)\=$'
+
+" Regex that defines backslash continuations
+let s:backslash_continuation_regex = '%\@<!\\\s*$'
+
+" Regex that defines end of bracket continuation followed by another continuation
+let s:bracket_switch_continuation_regex = '^\([^(]\+\zs).\+\)\+'.s:continuation_regex
+
" Regex that defines the first part of a splat pattern
let s:splat_regex = '[[,(]\s*\*\s*\%(#.*\)\=$'
+" Regex that describes all indent access modifiers
+let s:access_modifier_regex = '\C^\s*\%(public\|protected\|private\)\s*\%(#.*\)\=$'
+
+" Regex that describes the indent access modifiers (excludes public)
+let s:indent_access_modifier_regex = '\C^\s*\%(protected\|private\)\s*\%(#.*\)\=$'
+
" Regex that defines blocks.
"
" Note that there's a slight problem with this regex and s:continuation_regex.
@@ -102,10 +135,13 @@ let s:splat_regex = '[[,(]\s*\*\s*\%(#.*\)\=$'
" The reason is that the pipe matches a hanging "|" operator.
"
let s:block_regex =
- \ '\%(\<do:\@!\>\|%\@<!{\)\s*\%(|\s*(*\s*\%([*@&]\=\h\w*,\=\s*\)\%(,\s*(*\s*[*@&]\=\h\w*\s*)*\s*\)*|\)\=\s*\%(#.*\)\=$'
+ \ '\%(\<do:\@!\>\|%\@<!{\)\s*\%(|[^|]*|\)\=\s*\%(#.*\)\=$'
let s:block_continuation_regex = '^\s*[^])}\t ].*'.s:block_regex
+" Regex that describes a leading operator (only a method call's dot for now)
+let s:leading_operator_regex = '^\s*[.]'
+
" 2. Auxiliary Functions {{{1
" ======================
@@ -165,7 +201,21 @@ function s:GetMSL(lnum)
" Otherwise, terminate search as we have found our MSL already.
let line = getline(lnum)
- if s:Match(lnum, s:splat_regex)
+ if !s:Match(msl, s:backslash_continuation_regex) &&
+ \ s:Match(lnum, s:backslash_continuation_regex)
+ " If the current line doesn't end in a backslash, but the previous one
+ " does, look for that line's msl
+ "
+ " Example:
+ " foo = "bar" \
+ " "baz"
+ "
+ let msl = lnum
+ elseif s:Match(msl, s:leading_operator_regex)
+ " If the current line starts with a leading operator, keep its indent
+ " and keep looking for an MSL.
+ let msl = lnum
+ elseif s:Match(lnum, s:splat_regex)
" If the above line looks like the "*" of a splat, use the current one's
" indentation.
"
@@ -175,7 +225,7 @@ function s:GetMSL(lnum)
" something
"
return msl
- elseif s:Match(line, s:non_bracket_continuation_regex) &&
+ elseif s:Match(lnum, s:non_bracket_continuation_regex) &&
\ s:Match(msl, s:non_bracket_continuation_regex)
" If the current line is a non-bracket continuation and so is the
" previous one, keep its indent and continue looking for an MSL.
@@ -186,6 +236,18 @@ function s:GetMSL(lnum)
" three
"
let msl = lnum
+ elseif s:Match(lnum, s:dot_continuation_regex) &&
+ \ (s:Match(msl, s:bracket_continuation_regex) || s:Match(msl, s:block_continuation_regex))
+ " If the current line is a bracket continuation or a block-starter, but
+ " the previous is a dot, keep going to see if the previous line is the
+ " start of another continuation.
+ "
+ " Example:
+ " parent.
+ " method_call {
+ " three
+ "
+ let msl = lnum
elseif s:Match(lnum, s:non_bracket_continuation_regex) &&
\ (s:Match(msl, s:bracket_continuation_regex) || s:Match(msl, s:block_continuation_regex))
" If the current line is a bracket continuation or a block-starter, but
@@ -299,18 +361,39 @@ function s:ExtraBrackets(lnum)
endfunction
function s:Match(lnum, regex)
- let col = match(getline(a:lnum), '\C'.a:regex) + 1
- return col > 0 && !s:IsInStringOrComment(a:lnum, col) ? col : 0
+ let line = getline(a:lnum)
+ let offset = match(line, '\C'.a:regex)
+ let col = offset + 1
+
+ while offset > -1 && s:IsInStringOrComment(a:lnum, col)
+ let offset = match(line, '\C'.a:regex, offset + 1)
+ let col = offset + 1
+ endwhile
+
+ if offset > -1
+ return col
+ else
+ return 0
+ endif
endfunction
-function s:MatchLast(lnum, regex)
- let line = getline(a:lnum)
- let col = match(line, '.*\zs' . a:regex)
- while col != -1 && s:IsInStringOrComment(a:lnum, col)
- let line = strpart(line, 0, col)
- let col = match(line, '.*' . a:regex)
+" Locates the containing class/module's definition line, ignoring nested classes
+" along the way.
+"
+function! s:FindContainingClass()
+ let saved_position = getpos('.')
+
+ while searchpair(s:end_start_regex, s:end_middle_regex, s:end_end_regex, 'bW',
+ \ s:end_skip_expr) > 0
+ if expand('<cword>') =~# '\<class\|module\>'
+ let found_lnum = line('.')
+ call setpos('.', saved_position)
+ return found_lnum
+ endif
endwhile
- return col + 1
+
+ call setpos('.', saved_position)
+ return 0
endfunction
" 3. GetRubyIndent Function {{{1
@@ -320,6 +403,9 @@ function GetRubyIndent(...)
" 3.1. Setup {{{2
" ----------
+ " The value of a single shift-width
+ let sw = shiftwidth()
+
" For the current line, use the first argument if given, else v:lnum
let clnum = a:0 ? a:1 : v:lnum
@@ -333,6 +419,24 @@ function GetRubyIndent(...)
let line = getline(clnum)
let ind = -1
+ " If this line is an access modifier keyword, align according to the closest
+ " class declaration.
+ if g:ruby_indent_access_modifier_style == 'indent'
+ if s:Match(clnum, s:access_modifier_regex)
+ let class_line = s:FindContainingClass()
+ if class_line > 0
+ return indent(class_line) + sw
+ endif
+ endif
+ elseif g:ruby_indent_access_modifier_style == 'outdent'
+ if s:Match(clnum, s:access_modifier_regex)
+ let class_line = s:FindContainingClass()
+ if class_line > 0
+ return indent(class_line)
+ endif
+ endif
+ endif
+
" If we got a closing bracket on an empty line, find its match and indent
" according to it. For parentheses we indent to its column - 1, for the
" others we indent to the containing line's MSL's level. Return -1 if fail.
@@ -343,7 +447,9 @@ function GetRubyIndent(...)
if searchpair(escape(bs[0], '\['), '', bs[1], 'bW', s:skip_expr) > 0
if line[col-1]==')' && col('.') != col('$') - 1
let ind = virtcol('.') - 1
- else
+ elseif g:ruby_indent_block_style == 'do'
+ let ind = indent(line('.'))
+ else " g:ruby_indent_block_style == 'expression'
let ind = indent(s:GetMSL(line('.')))
endif
endif
@@ -366,10 +472,17 @@ function GetRubyIndent(...)
if strpart(line, 0, col('.') - 1) =~ '=\s*$' &&
\ strpart(line, col('.') - 1, 2) !~ 'do'
+ " assignment to case/begin/etc, on the same line, hanging indent
let ind = virtcol('.') - 1
+ elseif g:ruby_indent_block_style == 'do'
+ " align to line of the "do", not to the MSL
+ let ind = indent(line('.'))
elseif getline(msl) =~ '=\s*\(#.*\)\=$'
+ " in the case of assignment to the MSL, align to the starting line,
+ " not to the MSL
let ind = indent(line('.'))
else
+ " align to the MSL
let ind = indent(msl)
endif
endif
@@ -389,6 +502,11 @@ function GetRubyIndent(...)
return 0
endif
+ " If the current line starts with a leading operator, add a level of indent.
+ if s:Match(clnum, s:leading_operator_regex)
+ return indent(s:GetMSL(clnum)) + sw
+ endif
+
" 3.3. Work on the previous line. {{{2
" -------------------------------
@@ -409,14 +527,50 @@ function GetRubyIndent(...)
let line = getline(lnum)
let ind = indent(lnum)
+ if g:ruby_indent_access_modifier_style == 'indent'
+ " If the previous line was a private/protected keyword, add a
+ " level of indent.
+ if s:Match(lnum, s:indent_access_modifier_regex)
+ return indent(lnum) + sw
+ endif
+ elseif g:ruby_indent_access_modifier_style == 'outdent'
+ " If the previous line was a private/protected/public keyword, add
+ " a level of indent, since the keyword has been out-dented.
+ if s:Match(lnum, s:access_modifier_regex)
+ return indent(lnum) + sw
+ endif
+ endif
+
+ if s:Match(lnum, s:continuable_regex) && s:Match(lnum, s:continuation_regex)
+ return indent(s:GetMSL(lnum)) + sw + sw
+ endif
+
" If the previous line ended with a block opening, add a level of indent.
if s:Match(lnum, s:block_regex)
- return indent(s:GetMSL(lnum)) + &sw
+ let msl = s:GetMSL(lnum)
+
+ if g:ruby_indent_block_style == 'do'
+ " don't align to the msl, align to the "do"
+ let ind = indent(lnum) + sw
+ elseif getline(msl) =~ '=\s*\(#.*\)\=$'
+ " in the case of assignment to the msl, align to the starting line,
+ " not to the msl
+ let ind = indent(lnum) + sw
+ else
+ let ind = indent(msl) + sw
+ endif
+ return ind
+ endif
+
+ " If the previous line started with a leading operator, use its MSL's level
+ " of indent
+ if s:Match(lnum, s:leading_operator_regex)
+ return indent(s:GetMSL(lnum))
endif
" If the previous line ended with the "*" of a splat, add a level of indent
if line =~ s:splat_regex
- return indent(lnum) + &sw
+ return indent(lnum) + sw
endif
" If the previous line contained unclosed opening brackets and we are still
@@ -431,22 +585,22 @@ function GetRubyIndent(...)
if opening.pos != -1
if opening.type == '(' && searchpair('(', '', ')', 'bW', s:skip_expr) > 0
if col('.') + 1 == col('$')
- return ind + &sw
+ return ind + sw
else
return virtcol('.')
endif
else
let nonspace = matchend(line, '\S', opening.pos + 1) - 1
- return nonspace > 0 ? nonspace : ind + &sw
+ return nonspace > 0 ? nonspace : ind + sw
endif
elseif closing.pos != -1
call cursor(lnum, closing.pos + 1)
normal! %
if s:Match(line('.'), s:ruby_indent_keywords)
- return indent('.') + &sw
+ return indent('.') + sw
else
- return indent('.')
+ return indent(s:GetMSL(line('.')))
endif
else
call cursor(clnum, vcol)
@@ -473,7 +627,7 @@ function GetRubyIndent(...)
let col = s:Match(lnum, s:ruby_indent_keywords)
if col > 0
call cursor(lnum, col)
- let ind = virtcol('.') - 1 + &sw
+ let ind = virtcol('.') - 1 + sw
" TODO: make this better (we need to count them) (or, if a searchpair
" fails, we know that something is lacking an end and thus we indent a
" level
@@ -490,10 +644,14 @@ function GetRubyIndent(...)
let p_lnum = lnum
let lnum = s:GetMSL(lnum)
- " If the previous line wasn't a MSL and is continuation return its indent.
- " TODO: the || s:IsInString() thing worries me a bit.
+ " If the previous line wasn't a MSL.
if p_lnum != lnum
- if s:Match(p_lnum, s:non_bracket_continuation_regex) || s:IsInString(p_lnum,strlen(line))
+ " If previous line ends bracket and begins non-bracket continuation decrease indent by 1.
+ if s:Match(p_lnum, s:bracket_switch_continuation_regex)
+ return ind - 1
+ " If previous line is a continuation return its indent.
+ " TODO: the || s:IsInString() thing worries me a bit.
+ elseif s:Match(p_lnum, s:non_bracket_continuation_regex) || s:IsInString(p_lnum,strlen(line))
return ind
endif
endif
@@ -506,9 +664,9 @@ function GetRubyIndent(...)
" TODO: this does not take into account contrived things such as
" module Foo; class Bar; end
if s:Match(lnum, s:ruby_indent_keywords)
- let ind = msl_ind + &sw
+ let ind = msl_ind + sw
if s:Match(lnum, s:end_end_regex)
- let ind = ind - &sw
+ let ind = ind - sw
endif
return ind
endif
@@ -517,7 +675,7 @@ function GetRubyIndent(...)
" closing bracket, indent one extra level.
if s:Match(lnum, s:non_bracket_continuation_regex) && !s:Match(lnum, '^\s*\([\])}]\|end\)')
if lnum == p_lnum
- let ind = msl_ind + &sw
+ let ind = msl_ind + sw
else
let ind = msl_ind
endif
diff --git a/runtime/indent/rust.vim b/runtime/indent/rust.vim
new file mode 100644
index 0000000000..d30629b64e
--- /dev/null
+++ b/runtime/indent/rust.vim
@@ -0,0 +1,213 @@
+" Vim indent file
+" Language: Rust
+" Author: Chris Morgan <me@chrismorgan.info>
+" Last Change: 2017 Jun 13
+" For bugs, patches and license go to https://github.com/rust-lang/rust.vim
+
+" Only load this indent file when no other was loaded.
+if exists("b:did_indent")
+ finish
+endif
+let b:did_indent = 1
+
+setlocal cindent
+setlocal cinoptions=L0,(0,Ws,J1,j1
+setlocal cinkeys=0{,0},!^F,o,O,0[,0]
+" Don't think cinwords will actually do anything at all... never mind
+setlocal cinwords=for,if,else,while,loop,impl,mod,unsafe,trait,struct,enum,fn,extern
+
+" Some preliminary settings
+setlocal nolisp " Make sure lisp indenting doesn't supersede us
+setlocal autoindent " indentexpr isn't much help otherwise
+" Also do indentkeys, otherwise # gets shoved to column 0 :-/
+setlocal indentkeys=0{,0},!^F,o,O,0[,0]
+
+setlocal indentexpr=GetRustIndent(v:lnum)
+
+" Only define the function once.
+if exists("*GetRustIndent")
+ finish
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+" Come here when loading the script the first time.
+
+function! s:get_line_trimmed(lnum)
+ " Get the line and remove a trailing comment.
+ " Use syntax highlighting attributes when possible.
+ " NOTE: this is not accurate; /* */ or a line continuation could trick it
+ let line = getline(a:lnum)
+ let line_len = strlen(line)
+ if has('syntax_items')
+ " If the last character in the line is a comment, do a binary search for
+ " the start of the comment. synID() is slow, a linear search would take
+ " too long on a long line.
+ if synIDattr(synID(a:lnum, line_len, 1), "name") =~ 'Comment\|Todo'
+ let min = 1
+ let max = line_len
+ while min < max
+ let col = (min + max) / 2
+ if synIDattr(synID(a:lnum, col, 1), "name") =~ 'Comment\|Todo'
+ let max = col
+ else
+ let min = col + 1
+ endif
+ endwhile
+ let line = strpart(line, 0, min - 1)
+ endif
+ return substitute(line, "\s*$", "", "")
+ else
+ " Sorry, this is not complete, nor fully correct (e.g. string "//").
+ " Such is life.
+ return substitute(line, "\s*//.*$", "", "")
+ endif
+endfunction
+
+function! s:is_string_comment(lnum, col)
+ if has('syntax_items')
+ for id in synstack(a:lnum, a:col)
+ let synname = synIDattr(id, "name")
+ if synname == "rustString" || synname =~ "^rustComment"
+ return 1
+ endif
+ endfor
+ else
+ " without syntax, let's not even try
+ return 0
+ endif
+endfunction
+
+function GetRustIndent(lnum)
+
+ " Starting assumption: cindent (called at the end) will do it right
+ " normally. We just want to fix up a few cases.
+
+ let line = getline(a:lnum)
+
+ if has('syntax_items')
+ let synname = synIDattr(synID(a:lnum, 1, 1), "name")
+ if synname == "rustString"
+ " If the start of the line is in a string, don't change the indent
+ return -1
+ elseif synname =~ '\(Comment\|Todo\)'
+ \ && line !~ '^\s*/\*' " not /* opening line
+ if synname =~ "CommentML" " multi-line
+ if line !~ '^\s*\*' && getline(a:lnum - 1) =~ '^\s*/\*'
+ " This is (hopefully) the line after a /*, and it has no
+ " leader, so the correct indentation is that of the
+ " previous line.
+ return GetRustIndent(a:lnum - 1)
+ endif
+ endif
+ " If it's in a comment, let cindent take care of it now. This is
+ " for cases like "/*" where the next line should start " * ", not
+ " "* " as the code below would otherwise cause for module scope
+ " Fun fact: " /*\n*\n*/" takes two calls to get right!
+ return cindent(a:lnum)
+ endif
+ endif
+
+ " cindent gets second and subsequent match patterns/struct members wrong,
+ " as it treats the comma as indicating an unfinished statement::
+ "
+ " match a {
+ " b => c,
+ " d => e,
+ " f => g,
+ " };
+
+ " Search backwards for the previous non-empty line.
+ let prevlinenum = prevnonblank(a:lnum - 1)
+ let prevline = s:get_line_trimmed(prevlinenum)
+ while prevlinenum > 1 && prevline !~ '[^[:blank:]]'
+ let prevlinenum = prevnonblank(prevlinenum - 1)
+ let prevline = s:get_line_trimmed(prevlinenum)
+ endwhile
+
+ " Handle where clauses nicely: subsequent values should line up nicely.
+ if prevline[len(prevline) - 1] == ","
+ \ && prevline =~# '^\s*where\s'
+ return indent(prevlinenum) + 6
+ endif
+
+ if prevline[len(prevline) - 1] == ","
+ \ && s:get_line_trimmed(a:lnum) !~ '^\s*[\[\]{}]'
+ \ && prevline !~ '^\s*fn\s'
+ \ && prevline !~ '([^()]\+,$'
+ \ && s:get_line_trimmed(a:lnum) !~ '^\s*\S\+\s*=>'
+ " Oh ho! The previous line ended in a comma! I bet cindent will try to
+ " take this too far... For now, let's normally use the previous line's
+ " indent.
+
+ " One case where this doesn't work out is where *this* line contains
+ " square or curly brackets; then we normally *do* want to be indenting
+ " further.
+ "
+ " Another case where we don't want to is one like a function
+ " definition with arguments spread over multiple lines:
+ "
+ " fn foo(baz: Baz,
+ " baz: Baz) // <-- cindent gets this right by itself
+ "
+ " Another case is similar to the previous, except calling a function
+ " instead of defining it, or any conditional expression that leaves
+ " an open paren:
+ "
+ " foo(baz,
+ " baz);
+ "
+ " if baz && (foo ||
+ " bar) {
+ "
+ " Another case is when the current line is a new match arm.
+ "
+ " There are probably other cases where we don't want to do this as
+ " well. Add them as needed.
+ return indent(prevlinenum)
+ endif
+
+ if !has("patch-7.4.355")
+ " cindent before 7.4.355 doesn't do the module scope well at all; e.g.::
+ "
+ " static FOO : &'static [bool] = [
+ " true,
+ " false,
+ " false,
+ " true,
+ " ];
+ "
+ " uh oh, next statement is indented further!
+
+ " Note that this does *not* apply the line continuation pattern properly;
+ " that's too hard to do correctly for my liking at present, so I'll just
+ " start with these two main cases (square brackets and not returning to
+ " column zero)
+
+ call cursor(a:lnum, 1)
+ if searchpair('{\|(', '', '}\|)', 'nbW',
+ \ 's:is_string_comment(line("."), col("."))') == 0
+ if searchpair('\[', '', '\]', 'nbW',
+ \ 's:is_string_comment(line("."), col("."))') == 0
+ " Global scope, should be zero
+ return 0
+ else
+ " At the module scope, inside square brackets only
+ "if getline(a:lnum)[0] == ']' || search('\[', '', '\]', 'nW') == a:lnum
+ if line =~ "^\\s*]"
+ " It's the closing line, dedent it
+ return 0
+ else
+ return shiftwidth()
+ endif
+ endif
+ endif
+ endif
+
+ " Fall back on cindent, which does it mostly right
+ return cindent(a:lnum)
+endfunction
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
diff --git a/runtime/indent/sas.vim b/runtime/indent/sas.vim
new file mode 100644
index 0000000000..d591b2796e
--- /dev/null
+++ b/runtime/indent/sas.vim
@@ -0,0 +1,138 @@
+" Vim indent file
+" Language: SAS
+" Maintainer: Zhen-Huan Hu <wildkeny@gmail.com>
+" Version: 3.0.1
+" Last Change: Mar 13, 2017
+
+if exists("b:did_indent")
+ finish
+endif
+let b:did_indent = 1
+
+setlocal indentexpr=GetSASIndent()
+setlocal indentkeys+=;,=~data,=~proc,=~macro
+
+if exists("*GetSASIndent")
+ finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+" Regex that captures the start of a data/proc section
+let s:section_str = '\v%(^|;)\s*%(data|proc)>'
+" Regex that captures the end of a run-processing section
+let s:section_run = '\v%(^|;)\s*run\s*;'
+" Regex that captures the end of a data/proc section
+let s:section_end = '\v%(^|;)\s*%(quit|enddata)\s*;'
+
+" Regex that captures the start of a control block (anything inside a section)
+let s:block_str = '\v<%(do>%([^;]+<%(to|over)>[^;]+)=|%(define|layout|method|select)>[^;]+|begingraph)\s*;'
+" Regex that captures the end of a control block (anything inside a section)
+let s:block_end = '\v<%(end|endlayout|endgraph)\s*;'
+
+" Regex that captures the start of a macro
+let s:macro_str = '\v%(^|;)\s*\%macro>'
+" Regex that captures the end of a macro
+let s:macro_end = '\v%(^|;)\s*\%mend\s*;'
+
+" Regex that defines the end of the program
+let s:program_end = '\v%(^|;)\s*endsas\s*;'
+
+" List of procs supporting run-processing
+let s:run_processing_procs = [
+ \ 'catalog', 'chart', 'datasets', 'document', 'ds2', 'plot', 'sql',
+ \ 'gareabar', 'gbarline', 'gchart', 'gkpi', 'gmap', 'gplot', 'gradar', 'greplay', 'gslide', 'gtile',
+ \ 'anova', 'arima', 'catmod', 'factex', 'glm', 'model', 'optex', 'plan', 'reg',
+ \ 'iml',
+ \ ]
+
+" Find the line number of previous keyword defined by the regex
+function! s:PrevMatch(lnum, regex)
+ let prev_lnum = prevnonblank(a:lnum - 1)
+ while prev_lnum > 0
+ let prev_line = getline(prev_lnum)
+ if prev_line =~ a:regex
+ break
+ else
+ let prev_lnum = prevnonblank(prev_lnum - 1)
+ endif
+ endwhile
+ return prev_lnum
+endfunction
+
+" Main function
+function! GetSASIndent()
+ let prev_lnum = prevnonblank(v:lnum - 1)
+ if prev_lnum ==# 0
+ " Leave the indentation of the first line unchanged
+ return indent(1)
+ else
+ let prev_line = getline(prev_lnum)
+ " Previous non-blank line contains the start of a macro/section/block
+ " while not the end of a macro/section/block (at the same line)
+ if (prev_line =~ s:section_str && prev_line !~ s:section_run && prev_line !~ s:section_end) ||
+ \ (prev_line =~ s:block_str && prev_line !~ s:block_end) ||
+ \ (prev_line =~ s:macro_str && prev_line !~ s:macro_end)
+ let ind = indent(prev_lnum) + &sts
+ elseif prev_line =~ s:section_run && prev_line !~ s:section_end
+ let prev_section_str_lnum = s:PrevMatch(v:lnum, s:section_str)
+ let prev_section_end_lnum = max([
+ \ s:PrevMatch(v:lnum, s:section_end),
+ \ s:PrevMatch(v:lnum, s:macro_end ),
+ \ s:PrevMatch(v:lnum, s:program_end)])
+ " Check if the section supports run-processing
+ if prev_section_end_lnum < prev_section_str_lnum &&
+ \ getline(prev_section_str_lnum) =~ '\v%(^|;)\s*proc\s+%(' .
+ \ join(s:run_processing_procs, '|') . ')>'
+ let ind = indent(prev_lnum) + &sts
+ else
+ let ind = indent(prev_lnum)
+ endif
+ else
+ let ind = indent(prev_lnum)
+ endif
+ endif
+ " Re-adjustments based on the inputs of the current line
+ let curr_line = getline(v:lnum)
+ if curr_line =~ s:program_end
+ " End of the program
+ " Same indentation as the first non-blank line
+ return indent(nextnonblank(1))
+ elseif curr_line =~ s:macro_end
+ " Current line is the end of a macro
+ " Match the indentation of the start of the macro
+ return indent(s:PrevMatch(v:lnum, s:macro_str))
+ elseif curr_line =~ s:block_end && curr_line !~ s:block_str
+ " Re-adjust if current line is the end of a block
+ " while not the beginning of a block (at the same line)
+ " Returning the indent of previous block start directly
+ " would not work due to nesting
+ let ind = ind - &sts
+ elseif curr_line =~ s:section_str || curr_line =~ s:section_run || curr_line =~ s:section_end
+ " Re-adjust if current line is the start/end of a section
+ " since the end of a section could be inexplicit
+ let prev_section_str_lnum = s:PrevMatch(v:lnum, s:section_str)
+ " Check if the previous section supports run-processing
+ if getline(prev_section_str_lnum) =~ '\v%(^|;)\s*proc\s+%(' .
+ \ join(s:run_processing_procs, '|') . ')>'
+ let prev_section_end_lnum = max([
+ \ s:PrevMatch(v:lnum, s:section_end),
+ \ s:PrevMatch(v:lnum, s:macro_end ),
+ \ s:PrevMatch(v:lnum, s:program_end)])
+ else
+ let prev_section_end_lnum = max([
+ \ s:PrevMatch(v:lnum, s:section_end),
+ \ s:PrevMatch(v:lnum, s:section_run),
+ \ s:PrevMatch(v:lnum, s:macro_end ),
+ \ s:PrevMatch(v:lnum, s:program_end)])
+ endif
+ if prev_section_end_lnum < prev_section_str_lnum
+ let ind = ind - &sts
+ endif
+ endif
+ return ind
+endfunction
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/indent/sass.vim b/runtime/indent/sass.vim
index b6e2e66e8a..d6dbf3a8bb 100644
--- a/runtime/indent/sass.vim
+++ b/runtime/indent/sass.vim
@@ -1,7 +1,7 @@
" Vim indent file
" Language: Sass
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
-" Last Change: 2013 May 30
+" Last Change: 2017 Jun 13
if exists("b:did_indent")
finish
@@ -29,9 +29,7 @@ function! GetSassIndent()
let indent = indent(lnum)
let cindent = indent(v:lnum)
if line !~ s:property && line !~ s:extend && cline =~ s:property
- return indent + &sw
- "elseif line =~ s:property && cline !~ s:property
- "return indent - &sw
+ return indent + shiftwidth()
else
return -1
endif
diff --git a/runtime/indent/scala.vim b/runtime/indent/scala.vim
new file mode 100644
index 0000000000..6fd8ca9d81
--- /dev/null
+++ b/runtime/indent/scala.vim
@@ -0,0 +1,609 @@
+" Vim indent file
+" Language: Scala (http://scala-lang.org/)
+" Original Author: Stefan Matthias Aust
+" Modifications By: Derek Wyatt
+" URL: https://github.com/derekwyatt/vim-scala
+" Last Change: 2016 Aug 26
+
+if exists("b:did_indent")
+ finish
+endif
+let b:did_indent = 1
+
+setlocal autoindent
+setlocal indentexpr=GetScalaIndent()
+setlocal indentkeys=0{,0},0),!^F,<>>,o,O,e,=case,<CR>
+
+if exists("*GetScalaIndent")
+ finish
+endif
+let s:keepcpo= &cpo
+set cpo&vim
+
+let s:defMatcher = '\%(\%(private\|protected\)\%(\[[^\]]*\]\)\?\s\+\|abstract\s\+\|override\s\+\)*\<def\>'
+let s:funcNameMatcher = '\w\+'
+let s:typeSpecMatcher = '\%(\s*\[\_[^\]]*\]\)'
+let s:defArgMatcher = '\%((\_.\{-})\)'
+let s:returnTypeMatcher = '\%(:\s*\w\+' . s:typeSpecMatcher . '\?\)'
+let g:fullDefMatcher = '^\s*' . s:defMatcher . '\s\+' . s:funcNameMatcher . '\s*' . s:typeSpecMatcher . '\?\s*' . s:defArgMatcher . '\?\s*' . s:returnTypeMatcher . '\?\s*[={]'
+
+function! scala#ConditionalConfirm(msg)
+ if 0
+ call confirm(a:msg)
+ endif
+endfunction
+
+function! scala#GetLine(lnum)
+ let line = substitute(getline(a:lnum), '//.*$', '', '')
+ let line = substitute(line, '"\(.\|\\"\)\{-}"', '""', 'g')
+ return line
+endfunction
+
+function! scala#CountBrackets(line, openBracket, closedBracket)
+ let line = substitute(a:line, '"\(.\|\\"\)\{-}"', '', 'g')
+ let open = substitute(line, '[^' . a:openBracket . ']', '', 'g')
+ let close = substitute(line, '[^' . a:closedBracket . ']', '', 'g')
+ return strlen(open) - strlen(close)
+endfunction
+
+function! scala#CountParens(line)
+ return scala#CountBrackets(a:line, '(', ')')
+endfunction
+
+function! scala#CountCurlies(line)
+ return scala#CountBrackets(a:line, '{', '}')
+endfunction
+
+function! scala#LineEndsInIncomplete(line)
+ if a:line =~ '[.,]\s*$'
+ return 1
+ else
+ return 0
+ endif
+endfunction
+
+function! scala#LineIsAClosingXML(line)
+ if a:line =~ '^\s*</\w'
+ return 1
+ else
+ return 0
+ endif
+endfunction
+
+function! scala#LineCompletesXML(lnum, line)
+ let savedpos = getpos('.')
+ call setpos('.', [savedpos[0], a:lnum, 0, savedpos[3]])
+ let tag = substitute(a:line, '^.*</\([^>]*\)>.*$', '\1', '')
+ let [lineNum, colnum] = searchpairpos('<' . tag . '>', '', '</' . tag . '>', 'Wbn')
+ call setpos('.', savedpos)
+ let pline = scala#GetLine(prevnonblank(lineNum - 1))
+ if pline =~ '=\s*$'
+ return 1
+ else
+ return 0
+ endif
+endfunction
+
+function! scala#IsParentCase()
+ let savedpos = getpos('.')
+ call setpos('.', [savedpos[0], savedpos[1], 0, savedpos[3]])
+ let [l, c] = searchpos('^\s*\%(' . s:defMatcher . '\|\%(\<case\>\)\)', 'bnW')
+ let retvalue = -1
+ if l != 0 && search('\%' . l . 'l\s*\<case\>', 'bnW')
+ let retvalue = l
+ endif
+ call setpos('.', savedpos)
+ return retvalue
+endfunction
+
+function! scala#CurlyMatcher()
+ let matchline = scala#GetLineThatMatchesBracket('{', '}')
+ if scala#CountParens(scala#GetLine(matchline)) < 0
+ let savedpos = getpos('.')
+ call setpos('.', [savedpos[0], matchline, 9999, savedpos[3]])
+ call searchpos('{', 'Wbc')
+ call searchpos(')', 'Wb')
+ let [lnum, colnum] = searchpairpos('(', '', ')', 'Wbn')
+ call setpos('.', savedpos)
+ let line = scala#GetLine(lnum)
+ if line =~ '^\s*' . s:defMatcher
+ return lnum
+ else
+ return matchline
+ endif
+ else
+ return matchline
+ endif
+endfunction
+
+function! scala#GetLineAndColumnThatMatchesCurly()
+ return scala#GetLineAndColumnThatMatchesBracket('{', '}')
+endfunction
+
+function! scala#GetLineAndColumnThatMatchesParen()
+ return scala#GetLineAndColumnThatMatchesBracket('(', ')')
+endfunction
+
+function! scala#GetLineAndColumnThatMatchesBracket(openBracket, closedBracket)
+ let savedpos = getpos('.')
+ let curline = scala#GetLine(line('.'))
+ if curline =~ a:closedBracket . '.*' . a:openBracket . '.*' . a:closedBracket
+ call setpos('.', [savedpos[0], savedpos[1], 0, savedpos[3]])
+ call searchpos(a:closedBracket . '\ze[^' . a:closedBracket . a:openBracket . ']*' . a:openBracket, 'W')
+ else
+ call setpos('.', [savedpos[0], savedpos[1], 9999, savedpos[3]])
+ call searchpos(a:closedBracket, 'Wbc')
+ endif
+ let [lnum, colnum] = searchpairpos(a:openBracket, '', a:closedBracket, 'Wbn')
+ call setpos('.', savedpos)
+ return [lnum, colnum]
+endfunction
+
+function! scala#GetLineThatMatchesCurly()
+ return scala#GetLineThatMatchesBracket('{', '}')
+endfunction
+
+function! scala#GetLineThatMatchesParen()
+ return scala#GetLineThatMatchesBracket('(', ')')
+endfunction
+
+function! scala#GetLineThatMatchesBracket(openBracket, closedBracket)
+ let [lnum, colnum] = scala#GetLineAndColumnThatMatchesBracket(a:openBracket, a:closedBracket)
+ return lnum
+endfunction
+
+function! scala#NumberOfBraceGroups(line)
+ let line = substitute(a:line, '[^()]', '', 'g')
+ if strlen(line) == 0
+ return 0
+ endif
+ let line = substitute(line, '^)*', '', 'g')
+ if strlen(line) == 0
+ return 0
+ endif
+ let line = substitute(line, '^(', '', 'g')
+ if strlen(line) == 0
+ return 0
+ endif
+ let c = 1
+ let counter = 0
+ let groupCount = 0
+ while counter < strlen(line)
+ let char = strpart(line, counter, 1)
+ if char == '('
+ let c = c + 1
+ elseif char == ')'
+ let c = c - 1
+ endif
+ if c == 0
+ let groupCount = groupCount + 1
+ endif
+ let counter = counter + 1
+ endwhile
+ return groupCount
+endfunction
+
+function! scala#MatchesIncompleteDefValr(line)
+ if a:line =~ '^\s*\%(' . s:defMatcher . '\|\<va[lr]\>\).*[=({]\s*$'
+ return 1
+ else
+ return 0
+ endif
+endfunction
+
+function! scala#LineIsCompleteIf(line)
+ if scala#CountBrackets(a:line, '{', '}') == 0 &&
+ \ scala#CountBrackets(a:line, '(', ')') == 0 &&
+ \ a:line =~ '^\s*\<if\>\s*([^)]*)\s*\S.*$'
+ return 1
+ else
+ return 0
+ endif
+endfunction
+
+function! scala#LineCompletesIfElse(lnum, line)
+ if a:line =~ '^\s*\%(\<if\>\|\%(}\s*\)\?\<else\>\)'
+ return 0
+ endif
+ let result = search('^\%(\s*\<if\>\s*(.*).*\n\|\s*\<if\>\s*(.*)\s*\n.*\n\)\%(\s*\<else\>\s*\<if\>\s*(.*)\s*\n.*\n\)*\%(\s*\<else\>\s*\n\|\s*\<else\>[^{]*\n\)\?\%' . a:lnum . 'l', 'Wbn')
+ if result != 0 && scala#GetLine(prevnonblank(a:lnum - 1)) !~ '{\s*$'
+ return result
+ endif
+ return 0
+endfunction
+
+function! scala#GetPrevCodeLine(lnum)
+ " This needs to skip comment lines
+ return prevnonblank(a:lnum - 1)
+endfunction
+
+function! scala#InvertBracketType(openBracket, closedBracket)
+ if a:openBracket == '('
+ return [ '{', '}' ]
+ else
+ return [ '(', ')' ]
+ endif
+endfunction
+
+function! scala#Testhelper(lnum, line, openBracket, closedBracket, iteration)
+ let bracketCount = scala#CountBrackets(a:line, a:openBracket, a:closedBracket)
+ " There are more '}' braces than '{' on this line so it may be completing the function definition
+ if bracketCount < 0
+ let [matchedLNum, matchedColNum] = scala#GetLineAndColumnThatMatchesBracket(a:openBracket, a:closedBracket)
+ if matchedLNum == a:lnum
+ return -1
+ endif
+ let matchedLine = scala#GetLine(matchedLNum)
+ if ! scala#MatchesIncompleteDefValr(matchedLine)
+ let bracketLine = substitute(substitute(matchedLine, '\%' . matchedColNum . 'c.*$', '', ''), '[^{}()]', '', 'g')
+ if bracketLine =~ '}$'
+ return scala#Testhelper(matchedLNum, matchedLine, '{', '}', a:iteration + 1)
+ elseif bracketLine =~ ')$'
+ return scala#Testhelper(matchedLNum, matchedLine, '(', ')', a:iteration + 1)
+ else
+ let prevCodeLNum = scala#GetPrevCodeLine(matchedLNum)
+ if scala#MatchesIncompleteDefValr(scala#GetLine(prevCodeLNum))
+ return prevCodeLNum
+ else
+ return -1
+ endif
+ endif
+ else
+ " return indent value instead
+ return matchedLNum
+ endif
+ " There's an equal number of '{' and '}' on this line so it may be a single line function definition
+ elseif bracketCount == 0
+ if a:iteration == 0
+ let otherBracketType = scala#InvertBracketType(a:openBracket, a:closedBracket)
+ return scala#Testhelper(a:lnum, a:line, otherBracketType[0], otherBracketType[1], a:iteration + 1)
+ else
+ let prevCodeLNum = scala#GetPrevCodeLine(a:lnum)
+ let prevCodeLine = scala#GetLine(prevCodeLNum)
+ if scala#MatchesIncompleteDefValr(prevCodeLine) && prevCodeLine !~ '{\s*$'
+ return prevCodeLNum
+ else
+ let possibleIfElse = scala#LineCompletesIfElse(a:lnum, a:line)
+ if possibleIfElse != 0
+ let defValrLine = prevnonblank(possibleIfElse - 1)
+ let possibleDefValr = scala#GetLine(defValrLine)
+ if scala#MatchesIncompleteDefValr(possibleDefValr) && possibleDefValr =~ '^.*=\s*$'
+ return possibleDefValr
+ else
+ return -1
+ endif
+ else
+ return -1
+ endif
+ endif
+ endif
+ else
+ return -1
+ endif
+endfunction
+
+function! scala#Test(lnum, line, openBracket, closedBracket)
+ return scala#Testhelper(a:lnum, a:line, a:openBracket, a:closedBracket, 0)
+endfunction
+
+function! scala#LineCompletesDefValr(lnum, line)
+ let bracketCount = scala#CountBrackets(a:line, '{', '}')
+ if bracketCount < 0
+ let matchedBracket = scala#GetLineThatMatchesBracket('{', '}')
+ if ! scala#MatchesIncompleteDefValr(scala#GetLine(matchedBracket))
+ let possibleDefValr = scala#GetLine(prevnonblank(matchedBracket - 1))
+ if matchedBracket != -1 && scala#MatchesIncompleteDefValr(possibleDefValr)
+ return 1
+ else
+ return 0
+ endif
+ else
+ return 0
+ endif
+ elseif bracketCount == 0
+ let bracketCount = scala#CountBrackets(a:line, '(', ')')
+ if bracketCount < 0
+ let matchedBracket = scala#GetLineThatMatchesBracket('(', ')')
+ if ! scala#MatchesIncompleteDefValr(scala#GetLine(matchedBracket))
+ let possibleDefValr = scala#GetLine(prevnonblank(matchedBracket - 1))
+ if matchedBracket != -1 && scala#MatchesIncompleteDefValr(possibleDefValr)
+ return 1
+ else
+ return 0
+ endif
+ else
+ return 0
+ endif
+ elseif bracketCount == 0
+ let possibleDefValr = scala#GetLine(prevnonblank(a:lnum - 1))
+ if scala#MatchesIncompleteDefValr(possibleDefValr) && possibleDefValr =~ '^.*=\s*$'
+ return 1
+ else
+ let possibleIfElse = scala#LineCompletesIfElse(a:lnum, a:line)
+ if possibleIfElse != 0
+ let possibleDefValr = scala#GetLine(prevnonblank(possibleIfElse - 1))
+ if scala#MatchesIncompleteDefValr(possibleDefValr) && possibleDefValr =~ '^.*=\s*$'
+ return 2
+ else
+ return 0
+ endif
+ else
+ return 0
+ endif
+ endif
+ else
+ return 0
+ endif
+ endif
+endfunction
+
+function! scala#SpecificLineCompletesBrackets(lnum, openBracket, closedBracket)
+ let savedpos = getpos('.')
+ call setpos('.', [savedpos[0], a:lnum, 9999, savedpos[3]])
+ let retv = scala#LineCompletesBrackets(a:openBracket, a:closedBracket)
+ call setpos('.', savedpos)
+
+ return retv
+endfunction
+
+function! scala#LineCompletesBrackets(openBracket, closedBracket)
+ let savedpos = getpos('.')
+ let offline = 0
+ while offline == 0
+ let [lnum, colnum] = searchpos(a:closedBracket, 'Wb')
+ let [lnumA, colnumA] = searchpairpos(a:openBracket, '', a:closedBracket, 'Wbn')
+ if lnum != lnumA
+ let [lnumB, colnumB] = searchpairpos(a:openBracket, '', a:closedBracket, 'Wbnr')
+ let offline = 1
+ endif
+ endwhile
+ call setpos('.', savedpos)
+ if lnumA == lnumB && colnumA == colnumB
+ return lnumA
+ else
+ return -1
+ endif
+endfunction
+
+function! GetScalaIndent()
+ " Find a non-blank line above the current line.
+ let prevlnum = prevnonblank(v:lnum - 1)
+
+ " Hit the start of the file, use zero indent.
+ if prevlnum == 0
+ return 0
+ endif
+
+ let ind = indent(prevlnum)
+ let originalIndentValue = ind
+ let prevline = scala#GetLine(prevlnum)
+ let curlnum = v:lnum
+ let curline = scala#GetLine(curlnum)
+ if get(g:, 'scala_scaladoc_indent', 0)
+ let star_indent = 2
+ else
+ let star_indent = 1
+ end
+
+ if prevline =~ '^\s*/\*\*'
+ if prevline =~ '\*/\s*$'
+ return ind
+ else
+ return ind + star_indent
+ endif
+ endif
+
+ if curline =~ '^\s*\*'
+ return cindent(curlnum)
+ endif
+
+ " If this line starts with a { then make it indent the same as the previous line
+ if curline =~ '^\s*{'
+ call scala#ConditionalConfirm("1")
+ " Unless, of course, the previous one is a { as well
+ if prevline !~ '^\s*{'
+ call scala#ConditionalConfirm("2")
+ return indent(prevlnum)
+ endif
+ endif
+
+ " '.' continuations
+ if curline =~ '^\s*\.'
+ if prevline =~ '^\s*\.'
+ return ind
+ else
+ return ind + shiftwidth()
+ endif
+ endif
+
+ " Indent html literals
+ if prevline !~ '/>\s*$' && prevline =~ '^\s*<[a-zA-Z][^>]*>\s*$'
+ call scala#ConditionalConfirm("3")
+ return ind + shiftwidth()
+ endif
+
+ " assumes curly braces around try-block
+ if curline =~ '^\s*}\s*\<catch\>'
+ return ind - shiftwidth()
+ elseif curline =~ '^\s*\<catch\>'
+ return ind
+ endif
+
+ " Add a shiftwidth()' after lines that start a block
+ " If 'if', 'for' or 'while' end with ), this is a one-line block
+ " If 'val', 'var', 'def' end with =, this is a one-line block
+ if (prevline =~ '^\s*\<\%(\%(}\?\s*else\s\+\)\?if\|for\|while\)\>.*[)=]\s*$' && scala#NumberOfBraceGroups(prevline) <= 1)
+ \ || prevline =~ '^\s*' . s:defMatcher . '.*=\s*$'
+ \ || prevline =~ '^\s*\<va[lr]\>.*[=]\s*$'
+ \ || prevline =~ '^\s*\%(}\s*\)\?\<else\>\s*$'
+ \ || prevline =~ '=\s*$'
+ call scala#ConditionalConfirm("4")
+ let ind = ind + shiftwidth()
+ elseif prevline =~ '^\s*\<\%(}\?\s*else\s\+\)\?if\>' && curline =~ '^\s*}\?\s*\<else\>'
+ return ind
+ endif
+
+ let lineCompletedBrackets = 0
+ let bracketCount = scala#CountBrackets(prevline, '{', '}')
+ if bracketCount > 0 || prevline =~ '.*{\s*$'
+ call scala#ConditionalConfirm("5b")
+ let ind = ind + shiftwidth()
+ elseif bracketCount < 0
+ call scala#ConditionalConfirm("6b")
+ " if the closing brace actually completes the braces entirely, then we
+ " have to indent to line that started the whole thing
+ let completeLine = scala#LineCompletesBrackets('{', '}')
+ if completeLine != -1
+ call scala#ConditionalConfirm("8b")
+ let prevCompleteLine = scala#GetLine(prevnonblank(completeLine - 1))
+ " However, what actually started this part looks like it was a function
+ " definition, so we need to indent to that line instead. This is
+ " actually pretty weak at the moment.
+ if prevCompleteLine =~ '=\s*$'
+ call scala#ConditionalConfirm("9b")
+ let ind = indent(prevnonblank(completeLine - 1))
+ else
+ call scala#ConditionalConfirm("10b")
+ let ind = indent(completeLine)
+ endif
+ else
+ let lineCompletedBrackets = 1
+ endif
+ endif
+
+ if ind == originalIndentValue
+ let bracketCount = scala#CountBrackets(prevline, '(', ')')
+ if bracketCount > 0 || prevline =~ '.*(\s*$'
+ call scala#ConditionalConfirm("5a")
+ let ind = ind + shiftwidth()
+ elseif bracketCount < 0
+ call scala#ConditionalConfirm("6a")
+ " if the closing brace actually completes the braces entirely, then we
+ " have to indent to line that started the whole thing
+ let completeLine = scala#LineCompletesBrackets('(', ')')
+ if completeLine != -1 && prevline !~ '^.*{\s*$'
+ call scala#ConditionalConfirm("8a")
+ let prevCompleteLine = scala#GetLine(prevnonblank(completeLine - 1))
+ " However, what actually started this part looks like it was a function
+ " definition, so we need to indent to that line instead. This is
+ " actually pretty weak at the moment.
+ if prevCompleteLine =~ '=\s*$'
+ call scala#ConditionalConfirm("9a")
+ let ind = indent(prevnonblank(completeLine - 1))
+ else
+ call scala#ConditionalConfirm("10a")
+ let ind = indent(completeLine)
+ endif
+ else
+ " This is the only part that's different from from the '{', '}' one below
+ " Yup... some refactoring is necessary at some point.
+ let ind = ind + (bracketCount * shiftwidth())
+ let lineCompletedBrackets = 1
+ endif
+ endif
+ endif
+
+ if curline =~ '^\s*}\?\s*\<else\>\%(\s\+\<if\>\s*(.*)\)\?\s*{\?\s*$' &&
+ \ ! scala#LineIsCompleteIf(prevline) &&
+ \ prevline !~ '^.*}\s*$'
+ let ind = ind - shiftwidth()
+ endif
+
+ " Subtract a shiftwidth()' on '}' or html
+ let curCurlyCount = scala#CountCurlies(curline)
+ if curCurlyCount < 0
+ call scala#ConditionalConfirm("14a")
+ let matchline = scala#CurlyMatcher()
+ return indent(matchline)
+ elseif curline =~ '^\s*</[a-zA-Z][^>]*>'
+ call scala#ConditionalConfirm("14c")
+ return ind - shiftwidth()
+ endif
+
+ let prevParenCount = scala#CountParens(prevline)
+ if prevline =~ '^\s*\<for\>.*$' && prevParenCount > 0
+ call scala#ConditionalConfirm("15")
+ let ind = indent(prevlnum) + 5
+ endif
+
+ let prevCurlyCount = scala#CountCurlies(prevline)
+ if prevCurlyCount == 0 && prevline =~ '^.*\%(=>\|⇒\)\s*$' && prevline !~ '^\s*this\s*:.*\%(=>\|⇒\)\s*$' && curline !~ '^\s*\<case\>'
+ call scala#ConditionalConfirm("16")
+ let ind = ind + shiftwidth()
+ endif
+
+ if ind == originalIndentValue && curline =~ '^\s*\<case\>'
+ call scala#ConditionalConfirm("17")
+ let parentCase = scala#IsParentCase()
+ if parentCase != -1
+ call scala#ConditionalConfirm("17a")
+ return indent(parentCase)
+ endif
+ endif
+
+ if prevline =~ '^\s*\*/'
+ \ || prevline =~ '*/\s*$'
+ call scala#ConditionalConfirm("18")
+ let ind = ind - star_indent
+ endif
+
+ if scala#LineEndsInIncomplete(prevline)
+ call scala#ConditionalConfirm("19")
+ return ind
+ endif
+
+ if scala#LineIsAClosingXML(prevline)
+ if scala#LineCompletesXML(prevlnum, prevline)
+ call scala#ConditionalConfirm("20a")
+ return ind - shiftwidth()
+ else
+ call scala#ConditionalConfirm("20b")
+ return ind
+ endif
+ endif
+
+ if ind == originalIndentValue
+ "let indentMultiplier = scala#LineCompletesDefValr(prevlnum, prevline)
+ "if indentMultiplier != 0
+ " call scala#ConditionalConfirm("19a")
+ " let ind = ind - (indentMultiplier * shiftwidth())
+ let defValrLine = scala#Test(prevlnum, prevline, '{', '}')
+ if defValrLine != -1
+ call scala#ConditionalConfirm("21a")
+ let ind = indent(defValrLine)
+ elseif lineCompletedBrackets == 0
+ call scala#ConditionalConfirm("21b")
+ if scala#GetLine(prevnonblank(prevlnum - 1)) =~ '^.*\<else\>\s*\%(//.*\)\?$'
+ call scala#ConditionalConfirm("21c")
+ let ind = ind - shiftwidth()
+ elseif scala#LineCompletesIfElse(prevlnum, prevline)
+ call scala#ConditionalConfirm("21d")
+ let ind = ind - shiftwidth()
+ elseif scala#CountParens(curline) < 0 && curline =~ '^\s*)' && scala#GetLine(scala#GetLineThatMatchesBracket('(', ')')) =~ '.*(\s*$'
+ " Handles situations that look like this:
+ "
+ " val a = func(
+ " 10
+ " )
+ "
+ " or
+ "
+ " val a = func(
+ " 10
+ " ).somethingHere()
+ call scala#ConditionalConfirm("21e")
+ let ind = ind - shiftwidth()
+ endif
+ endif
+ endif
+
+ call scala#ConditionalConfirm("returning " . ind)
+
+ return ind
+endfunction
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
+" vim:set sw=2 sts=2 ts=8 et:
+" vim600:fdm=marker fdl=1 fdc=0:
diff --git a/runtime/indent/sdl.vim b/runtime/indent/sdl.vim
index ba03f2d3f4..6ce30b6797 100644
--- a/runtime/indent/sdl.vim
+++ b/runtime/indent/sdl.vim
@@ -46,17 +46,17 @@ function! GetSDLIndent()
if (getline(lnum) =~? '^\s*\(start\|state\|system\|package\|connection\|channel\|alternative\|macro\|operator\|newtype\|select\|substructure\|decision\|generator\|refinement\|service\|method\|exceptionhandler\|asntype\|syntype\|value\|(.*):\|\(priority\s\+\)\=input\|provided\)'
\ || getline(lnum) =~? virtuality . '\(process\|procedure\|block\|object\)')
\ && getline(lnum) !~? 'end[[:alpha:]]\+;$'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
" Subtract a 'shiftwidth' after states
if getline(lnum) =~? '^\s*\(stop\|return\>\|nextstate\)'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
" Subtract a 'shiftwidth' on on end (uncompleted line)
if getline(v:lnum) =~? '^\s*end\>'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
" Put each alternatives where the corresponding decision was
diff --git a/runtime/indent/sh.vim b/runtime/indent/sh.vim
index aca110f504..fd9a6a9c92 100644
--- a/runtime/indent/sh.vim
+++ b/runtime/indent/sh.vim
@@ -3,10 +3,13 @@
" Maintainer: Christian Brabandt <cb@256bit.org>
" Previous Maintainer: Peter Aronoff <telemachus@arpinum.org>
" Original Author: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2016-06-27
+" Latest Revision: 2017-08-08
" License: Vim (see :h license)
" Repository: https://github.com/chrisbra/vim-sh-indent
" Changelog:
+" 20170808: - better indent of line continuation
+" 20170502: - get rid of buffer-shiftwidth function
+" 20160912: - preserve indentation of here-doc blocks
" 20160627: - detect heredocs correctly
" 20160213: - detect function definition correctly
" 20160202: - use shiftwidth() function
@@ -33,15 +36,11 @@ endif
let s:cpo_save = &cpo
set cpo&vim
-function s:buffer_shiftwidth()
- return shiftwidth()
-endfunction
-
let s:sh_indent_defaults = {
- \ 'default': function('s:buffer_shiftwidth'),
- \ 'continuation-line': function('s:buffer_shiftwidth'),
- \ 'case-labels': function('s:buffer_shiftwidth'),
- \ 'case-statements': function('s:buffer_shiftwidth'),
+ \ 'default': function('shiftwidth'),
+ \ 'continuation-line': function('shiftwidth'),
+ \ 'case-labels': function('shiftwidth'),
+ \ 'case-statements': function('shiftwidth'),
\ 'case-breaks': 0 }
function! s:indent_value(option)
@@ -110,13 +109,17 @@ function! GetShIndent()
let ind -= s:indent_value('case-breaks')
elseif s:is_here_doc(line)
let ind = 0
+ " statements, executed within a here document. Keep the current indent
+ elseif match(map(synstack(v:lnum, 1), 'synIDattr(v:val, "name")'), '\c\mheredoc') > -1
+ return indent(v:lnum)
endif
return ind
endfunction
function! s:is_continuation_line(line)
- return a:line =~ '\%(\%(^\|[^\\]\)\\\|&&\|||\)$'
+ return a:line =~ '\%(\%(^\|[^\\]\)\\\|&&\|||\||\)' .
+ \ '\s*\({\s*\)\=\(#.*\)\=$'
endfunction
function! s:find_continued_lnum(lnum)
diff --git a/runtime/indent/sml.vim b/runtime/indent/sml.vim
index fbbb15ed85..e760a8e350 100644
--- a/runtime/indent/sml.vim
+++ b/runtime/indent/sml.vim
@@ -115,9 +115,9 @@ function! GetSMLIndent()
" Return double 'shiftwidth' after lines matching:
if lline =~ '^\s*|.*=>\s*$'
- return ind + &sw + &sw
+ return ind + 2 *shiftwidth()
elseif lline =~ '^\s*val\>.*=\s*$'
- return ind + &sw
+ return ind + shiftwidth()
endif
let line = getline(v:lnum)
@@ -157,7 +157,7 @@ function! GetSMLIndent()
if lastModule == -1
return 0
else
- return lastModule + &sw
+ return lastModule + shiftwidth()
endif
" Indent lines starting with '|' from matching 'case', 'handle'
@@ -172,7 +172,7 @@ function! GetSMLIndent()
if switchLine =~ '\<case\>'
return col(".") + 2
elseif switchLine =~ '\<handle\>'
- return switchLineIndent + &sw
+ return switchLineIndent + shiftwidth()
elseif switchLine =~ '\<datatype\>'
call search('=')
return col(".") - 1
@@ -184,7 +184,7 @@ function! GetSMLIndent()
" Indent if last line ends with 'sig', 'struct', 'let', 'then', 'else',
" 'in'
elseif lline =~ '\<\(sig\|struct\|let\|in\|then\|else\)\s*$'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
" Indent if last line ends with 'of', align from 'case'
elseif lline =~ '\<\(of\)\s*$'
@@ -199,14 +199,14 @@ function! GetSMLIndent()
" Indent if last line starts with 'fun', 'case', 'fn'
elseif lline =~ '^\s*\(fun\|fn\|case\)\>'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
" Don't indent 'let' if last line started with 'fun', 'fn'
if line =~ '^\s*let\>'
if lline =~ '^\s*\(fun\|fn\)'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
endif
diff --git a/runtime/indent/sqlanywhere.vim b/runtime/indent/sqlanywhere.vim
index d11c54b5af..ba35d76715 100644
--- a/runtime/indent/sqlanywhere.vim
+++ b/runtime/indent/sqlanywhere.vim
@@ -1,7 +1,7 @@
" Vim indent file
" Language: SQL
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
-" Last Change: 2012 Dec 06
+" Last Change: 2017 Jun 13
" Version: 3.0
" Download: http://vim.sourceforge.net/script.php?script_id=495
@@ -147,7 +147,7 @@ function! s:CheckToIgnoreRightParan( prev_lnum, num_levels )
endwhile
" Fallback - just move back one
- " return a:prev_indent - &sw
+ " return a:prev_indent - shiftwidth()
return ignore_paran
endfunction
@@ -166,7 +166,7 @@ function! s:GetStmtStarterIndent( keyword, curr_lnum )
let lnum = a:curr_lnum
" Default - reduce indent by 1
- let ind = indent(a:curr_lnum) - &sw
+ let ind = indent(a:curr_lnum) - shiftwidth()
if a:keyword =~? 'end'
exec 'normal! ^'
@@ -230,7 +230,7 @@ function! s:ModuloIndent(ind)
let ind = a:ind
if ind > 0
- let modulo = ind % &shiftwidth
+ let modulo = ind % shiftwidth()
if modulo > 0
let ind = ind - modulo
@@ -291,7 +291,7 @@ function! GetSQLIndent()
" where END IF, END, should decrease the indent.
if prevline =~? s:SQLBlockStart
" Move indent in
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
" echom 'prevl - SQLBlockStart - indent ' . ind . ' line: ' . prevline
elseif prevline =~ '[()]'
if prevline =~ '('
@@ -308,7 +308,7 @@ function! GetSQLIndent()
if num_unmatched_left > 0
" There is a open left paranethesis
" increase indent
- let ind = ind + ( &sw * num_unmatched_left )
+ let ind = ind + ( shiftwidth() * num_unmatched_left )
elseif num_unmatched_right > 0
" if it is an unbalanced paranethesis only unindent if
" it was part of a command (ie create table(..) )
@@ -323,7 +323,7 @@ function! GetSQLIndent()
endif
if (num_unmatched_right - ignore) > 0
- let ind = ind - ( &sw * (num_unmatched_right - ignore) )
+ let ind = ind - ( shiftwidth() * (num_unmatched_right - ignore) )
endif
endif
@@ -339,12 +339,12 @@ function! GetSQLIndent()
if line =~? '^\s*els'
" Any line when you type else will automatically back up one
" ident level (ie else, elseif, elsif)
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
" echom 'curr - else - indent ' . ind
elseif line =~? '^\s*end\>'
let ind = s:GetStmtStarterIndent('end', v:lnum)
" General case for end
- " let ind = ind - &sw
+ " let ind = ind - shiftwidth()
" echom 'curr - end - indent ' . ind
elseif line =~? '^\s*when\>'
let ind = s:GetStmtStarterIndent('when', v:lnum)
@@ -352,7 +352,7 @@ function! GetSQLIndent()
" clause, do not change the indent level, since these
" statements do not have a corresponding END statement.
" if stmt_starter =~? 'case'
- " let ind = ind - &sw
+ " let ind = ind - shiftwidth()
" endif
" elseif line =~ '^\s*)\s*;\?\s*$'
" elseif line =~ '^\s*)'
@@ -371,14 +371,14 @@ function! GetSQLIndent()
" let num_unmatched_right = s:CountUnbalancedParan( line, ')' )
" if num_unmatched_right > 0
" elseif strpart( line, strlen(line)-1, 1 ) =~ ')'
- " let ind = ind - &sw
+ " let ind = ind - shiftwidth()
if line =~ '^\s*)'
" let ignore = ignore + 1
" echom 'curr - begins ) unbalanced ignore: ' . ignore
endif
if (num_unmatched_right - ignore) > 0
- let ind = ind - ( &sw * (num_unmatched_right - ignore) )
+ let ind = ind - ( shiftwidth() * (num_unmatched_right - ignore) )
endif
" endif
endif
diff --git a/runtime/indent/systemverilog.vim b/runtime/indent/systemverilog.vim
index b017535535..91fba4c3b6 100644
--- a/runtime/indent/systemverilog.vim
+++ b/runtime/indent/systemverilog.vim
@@ -29,7 +29,7 @@ function SystemVerilogIndent()
if exists('b:systemverilog_indent_width')
let offset = b:systemverilog_indent_width
else
- let offset = &sw
+ let offset = shiftwidth()
endif
if exists('b:systemverilog_indent_modules')
let indent_modules = offset
diff --git a/runtime/indent/tcl.vim b/runtime/indent/tcl.vim
index a92f57d67d..e9d61e4366 100644
--- a/runtime/indent/tcl.vim
+++ b/runtime/indent/tcl.vim
@@ -56,7 +56,7 @@ function GetTclIndent()
if line =~ '^\s*\*'
return cindent(v:lnum)
elseif line =~ '^\s*}'
- return indent(v:lnum) - &sw
+ return indent(v:lnum) - shiftwidth()
endif
let pnum = s:prevnonblanknoncomment(v:lnum - 1)
@@ -64,11 +64,11 @@ function GetTclIndent()
return 0
endif
- let ind = indent(pnum) + s:count_braces(pnum, 1) * &sw
+ let ind = indent(pnum) + s:count_braces(pnum, 1) * shiftwidth()
let pline = getline(pnum)
if pline =~ '}\s*$'
- let ind -= (s:count_braces(pnum, 0) - (pline =~ '^\s*}' ? 1 : 0)) * &sw
+ let ind -= (s:count_braces(pnum, 0) - (pline =~ '^\s*}' ? 1 : 0)) * shiftwidth()
endif
return ind
diff --git a/runtime/indent/tcsh.vim b/runtime/indent/tcsh.vim
index 59a9d56f44..ed08e6c6e2 100644
--- a/runtime/indent/tcsh.vim
+++ b/runtime/indent/tcsh.vim
@@ -32,17 +32,17 @@ function TcshGetIndent()
let ind = indent(lnum)
let line = getline(lnum)
if line =~ '\v^\s*%(while|foreach)>|^\s*%(case\s.*:|default:|else)\s*$|%(<then|\\)$'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
if line =~ '\v^\s*breaksw>'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
" Subtract indent if current line has on end, endif, case commands
let line = getline(v:lnum)
if line =~ '\v^\s*%(else|end|endif)\s*$'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
return ind
diff --git a/runtime/indent/teraterm.vim b/runtime/indent/teraterm.vim
index ba24257b02..370283c77f 100644
--- a/runtime/indent/teraterm.vim
+++ b/runtime/indent/teraterm.vim
@@ -1,9 +1,9 @@
" Vim indent file
" Language: Tera Term Language (TTL)
-" Based on Tera Term Version 4.86
+" Based on Tera Term Version 4.92
" Maintainer: Ken Takata
" URL: https://github.com/k-takata/vim-teraterm
-" Last Change: 2015 Jun 4
+" Last Change: 2017 Jun 13
" Filenames: *.ttl
" License: VIM License
@@ -22,18 +22,6 @@ if exists("*GetTeraTermIndent")
finish
endif
-" The shiftwidth() function is relatively new.
-" Don't require it to exist.
-if exists('*shiftwidth')
- function s:sw() abort
- return shiftwidth()
- endfunction
-else
- function s:sw() abort
- return &shiftwidth
- endfunction
-endif
-
function! GetTeraTermIndent(lnum)
let l:prevlnum = prevnonblank(a:lnum-1)
if l:prevlnum == 0
@@ -48,17 +36,17 @@ function! GetTeraTermIndent(lnum)
let l:ind = l:previ
- if l:prevl =~ '^\s*if\>.*\<then\s*$'
+ if l:prevl =~ '^\s*if\>.*\<then\>'
" previous line opened a block
- let l:ind += s:sw()
+ let l:ind += shiftwidth()
endif
if l:prevl =~ '^\s*\%(elseif\|else\|do\|until\|while\|for\)\>'
" previous line opened a block
- let l:ind += s:sw()
+ let l:ind += shiftwidth()
endif
if l:thisl =~ '^\s*\%(elseif\|else\|endif\|enduntil\|endwhile\|loop\|next\)\>'
" this line closed a block
- let l:ind -= s:sw()
+ let l:ind -= shiftwidth()
endif
return l:ind
diff --git a/runtime/indent/tex.vim b/runtime/indent/tex.vim
index 0150bb9623..1a4d8b1cb6 100644
--- a/runtime/indent/tex.vim
+++ b/runtime/indent/tex.vim
@@ -1,8 +1,8 @@
" Vim indent file
" Language: LaTeX
-" Maintainer: YiChao Zhou <broken.zhou AT gmail.com>
+" Maintainer: Yichao Zhou <broken.zhou AT gmail.com>
" Created: Sat, 16 Feb 2002 16:50:19 +0100
-" Version: 0.9.2
+" Version: 0.9.4
" Please email me if you found something I can do. Comments, bug report and
" feature request are welcome.
@@ -15,49 +15,53 @@
" 2005/06/15, Moshe Kaminsky <kaminsky AT math.huji.ac.il>
" (*) New variables:
" g:tex_items, g:tex_itemize_env, g:tex_noindent_env
-" 2011/3/6, by Zhou YiChao <broken.zhou AT gmail.com>
+" 2011/3/6, by Yichao Zhou <broken.zhou AT gmail.com>
" (*) Don't change indentation of lines starting with '%'
" I don't see any code with '%' and it doesn't work properly
" so I add some code.
" (*) New features: Add smartindent-like indent for "{}" and "[]".
" (*) New variables: g:tex_indent_brace
-" 2011/9/25, by Zhou Yichao <broken.zhou AT gmail.com>
+" 2011/9/25, by Yichao Zhou <broken.zhou AT gmail.com>
" (*) Bug fix: smartindent-like indent for "[]"
" (*) New features: Align with "&".
" (*) New variable: g:tex_indent_and.
-" 2011/10/23 by Zhou Yichao <broken.zhou AT gmail.com>
+" 2011/10/23 by Yichao Zhou <broken.zhou AT gmail.com>
" (*) Bug fix: improve the smartindent-like indent for "{}" and
" "[]".
-" 2012/02/27 by Zhou Yichao <broken.zhou AT gmail.com>
+" 2012/02/27 by Yichao Zhou <broken.zhou AT gmail.com>
" (*) Bug fix: support default folding marker.
" (*) Indent with "&" is not very handy. Make it not enable by
" default.
-" 2012/03/06 by Zhou Yichao <broken.zhou AT gmail.com>
+" 2012/03/06 by Yichao Zhou <broken.zhou AT gmail.com>
" (*) Modify "&" behavior and make it default again. Now "&"
" won't align when there are more then one "&" in the previous
" line.
" (*) Add indent "\left(" and "\right)"
" (*) Trust user when in "verbatim" and "lstlisting"
-" 2012/03/11 by Zhou Yichao <broken.zhou AT gmail.com>
+" 2012/03/11 by Yichao Zhou <broken.zhou AT gmail.com>
" (*) Modify "&" so that only indent when current line start with
" "&".
-" 2012/03/12 by Zhou Yichao <broken.zhou AT gmail.com>
+" 2012/03/12 by Yichao Zhou <broken.zhou AT gmail.com>
" (*) Modify indentkeys.
-" 2012/03/18 by Zhou Yichao <broken.zhou AT gmail.com>
+" 2012/03/18 by Yichao Zhou <broken.zhou AT gmail.com>
" (*) Add &cpo
-" 2013/05/02 by Zhou Yichao <broken.zhou AT gmail.com>
+" 2013/05/02 by Yichao Zhou <broken.zhou AT gmail.com>
" (*) Fix problem about GetTeXIndent checker. Thank Albert Netymk
" for reporting this.
-" 2014/06/23 by Zhou Yichao <broken.zhou AT gmail.com>
+" 2014/06/23 by Yichao Zhou <broken.zhou AT gmail.com>
" (*) Remove the feature g:tex_indent_and because it is buggy.
" (*) If there is not any obvious indentation hints, we do not
" alert our user's current indentation.
" (*) g:tex_indent_brace now only works if the open brace is the
" last character of that line.
-" 2014/08/03 by Zhou Yichao <broken.zhou AT gmail.com>
+" 2014/08/03 by Yichao Zhou <broken.zhou AT gmail.com>
" (*) Indent current line if last line has larger indentation
-" 2014/08/09 by Zhou Yichao <broken.zhou AT gmail.com>
-" (*) Add missing return value for s:GetEndIndentation(...)
+" 2016/11/08 by Yichao Zhou <broken.zhou AT gmail.com>
+" (*) Fix problems for \[ and \]. Thanks Bruno for reporting.
+" 2017/04/30 by Yichao Zhou <broken.zhou AT gmail.com>
+" (*) Fix a bug between g:tex_noindent_env and g:tex_indent_items
+" Now g:tex_noindent_env='document\|verbatim\|itemize' (Emacs
+" style) is supported. Thanks Miles Wheeler for reporting.
"
" }}}
@@ -81,44 +85,44 @@
" % Example 2
" \tikzexternalize[
" prefix=tikz]
-"
+"
" * g:tex_indent_items
"
" If this variable is set, item-environments are indented like Emacs does
" it, i.e., continuation lines are indented with a shiftwidth.
-"
+"
" NOTE: I've already set the variable below; delete the corresponding line
" if you don't like this behaviour.
"
" Per default, it is unset.
-"
+"
" set unset
" ----------------------------------------------------------------
-" \begin{itemize} \begin{itemize}
+" \begin{itemize} \begin{itemize}
" \item blablabla \item blablabla
-" bla bla bla bla bla bla
+" bla bla bla bla bla bla
" \item blablabla \item blablabla
-" bla bla bla bla bla bla
-" \end{itemize} \end{itemize}
+" bla bla bla bla bla bla
+" \end{itemize} \end{itemize}
"
"
" * g:tex_items
"
-" A list of tokens to be considered as commands for the beginning of an item
-" command. The tokens should be separated with '\|'. The initial '\' should
+" A list of tokens to be considered as commands for the beginning of an item
+" command. The tokens should be separated with '\|'. The initial '\' should
" be escaped. The default is '\\bibitem\|\\item'.
"
" * g:tex_itemize_env
-"
-" A list of environment names, separated with '\|', where the items (item
-" commands matching g:tex_items) may appear. The default is
+"
+" A list of environment names, separated with '\|', where the items (item
+" commands matching g:tex_items) may appear. The default is
" 'itemize\|description\|enumerate\|thebibliography'.
"
" * g:tex_noindent_env
"
-" A list of environment names. separated with '\|', where no indentation is
+" A list of environment names. separated with '\|', where no indentation is
" required. The default is 'document\|verbatim'.
-" }}}
+" }}}
" Only define the function once
if exists("b:did_indent")
@@ -146,7 +150,7 @@ if g:tex_indent_items
let g:tex_itemize_env = 'itemize\|description\|enumerate\|thebibliography'
endif
if !exists('g:tex_items')
- let g:tex_items = '\\bibitem\|\\item'
+ let g:tex_items = '\\bibitem\|\\item'
endif
else
let g:tex_items = ''
@@ -177,7 +181,7 @@ function! GetTeXIndent() " {{{
" At the start of the file use zero indent.
if lnum == 0
- return 0
+ return 0
endif
let line = substitute(getline(lnum), '\s*%.*', '','g') " last line
@@ -191,9 +195,9 @@ function! GetTeXIndent() " {{{
return indent(v:lnum)
end
endif
-
+
if lnum == 0
- return 0
+ return 0
endif
let ind = indent(lnum)
@@ -206,17 +210,19 @@ function! GetTeXIndent() " {{{
" Add a 'shiftwidth' after beginning of environments.
" Don't add it for \begin{document} and \begin{verbatim}
- ""if line =~ '^\s*\\begin{\(.*\)}' && line !~ 'verbatim'
+ " if line =~ '^\s*\\begin{\(.*\)}' && line !~ 'verbatim'
" LH modification : \begin does not always start a line
" ZYC modification : \end after \begin won't cause wrong indent anymore
- if line =~ '\\begin{.*}' && line !~ g:tex_noindent_env
- let ind = ind + &sw
- let stay = 0
+ if line =~ '\\begin{.*}'
+ if line !~ g:tex_noindent_env
+ let ind = ind + shiftwidth()
+ let stay = 0
+ endif
if g:tex_indent_items
" Add another sw for item-environments
if line =~ g:tex_itemize_env
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
let stay = 0
endif
endif
@@ -235,39 +241,37 @@ function! GetTeXIndent() " {{{
if g:tex_indent_items
" Remove another sw for item-environments
if cline =~ g:tex_itemize_env
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
let stay = 0
endif
endif
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
let stay = 0
endif
if g:tex_indent_brace
- let char = line[strlen(line)-1]
- if char == '[' || char == '{'
- let ind += &sw
+ if line =~ '[[{]$'
+ let ind += shiftwidth()
let stay = 0
endif
- let cind = indent(v:lnum)
- let char = cline[cind]
- if (char == ']' || char == '}') &&
- \ s:CheckPairedIsLastCharacter(v:lnum, cind)
- let ind -= &sw
+ if cline =~ '^\s*\\\?[\]}]' && s:CheckPairedIsLastCharacter(v:lnum, indent(v:lnum))
+ let ind -= shiftwidth()
let stay = 0
endif
- for i in range(indent(lnum)+1, strlen(line)-1)
- let char = line[i]
- if char == ']' || char == '}'
- if s:CheckPairedIsLastCharacter(lnum, i)
- let ind -= &sw
- let stay = 0
+ if line !~ '^\s*\\\?[\]}]'
+ for i in range(indent(lnum)+1, strlen(line)-1)
+ let char = line[i]
+ if char == ']' || char == '}'
+ if s:CheckPairedIsLastCharacter(lnum, i)
+ let ind -= shiftwidth()
+ let stay = 0
+ endif
endif
- endif
- endfor
+ endfor
+ endif
endif
" Special treatment for 'item'
@@ -276,12 +280,12 @@ function! GetTeXIndent() " {{{
if g:tex_indent_items
" '\item' or '\bibitem' itself:
if cline =~ g:tex_items
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
let stay = 0
endif
" lines following to '\item' are intented once again:
if line =~ g:tex_items
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
let stay = 0
endif
endif
@@ -309,13 +313,13 @@ function! s:GetLastBeginIndentation(lnum) " {{{
let matchend -= 1
endif
if matchend == 0
- if line =~ g:tex_itemize_env
- return indent(lnum) + 2 * &sw
- endif
if line =~ g:tex_noindent_env
return indent(lnum)
endif
- return indent(lnum) + &sw
+ if line =~ g:tex_itemize_env
+ return indent(lnum) + 2 * shiftwidth()
+ endif
+ return indent(lnum) + shiftwidth()
endif
endfor
return -1
@@ -343,17 +347,20 @@ function! s:GetEndIndentation(lnum) " {{{
let min_indent = min([min_indent, indent(lnum)])
endif
endfor
- return min_indent - &sw
+ return min_indent - shiftwidth()
endfunction
" Most of the code is from matchparen.vim
function! s:CheckPairedIsLastCharacter(lnum, col) "{{{
- " Get the character under the cursor and check if it's in 'matchpairs'.
let c_lnum = a:lnum
let c_col = a:col+1
+ let line = getline(c_lnum)
+ if line[c_col-1] == '\'
+ let c_col = c_col + 1
+ endif
+ let c = line[c_col-1]
- let c = getline(c_lnum)[c_col-1]
let plist = split(&matchpairs, '.\zs[:,]')
let i = index(plist, c)
if i < 0
diff --git a/runtime/indent/tf.vim b/runtime/indent/tf.vim
index 17597734b8..a980538506 100644
--- a/runtime/indent/tf.vim
+++ b/runtime/indent/tf.vim
@@ -1,8 +1,8 @@
" Vim indent file
" Language: tf (TinyFugue)
" Maintainer: Christian J. Robinson <heptite@gmail.com>
-" URL: http://christianrobinson.name/vim/indent/tf.vim
-" Last Change: 2002 May 29
+" URL: http://www.vim.org/scripts/script.php?script_id=174
+" Last Change: 2017 Feb 25
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -38,14 +38,14 @@ function GetTFIndent()
endif
if line =~ '\(/def.*\\\|/for.*\(%;\s*\)\@\<!\\\)$'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
elseif line =~ '\(/if\|/else\|/then\)'
if line !~ '/endif'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
elseif line =~ '/while'
if line !~ '/done'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
endif
@@ -53,11 +53,11 @@ function GetTFIndent()
if line =~ '\(/else\|/endif\|/then\)'
if line !~ '/if'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
elseif line =~ '/done'
if line !~ '/while'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
endif
diff --git a/runtime/indent/tilde.vim b/runtime/indent/tilde.vim
index 5fdcfe0711..13082c8692 100644
--- a/runtime/indent/tilde.vim
+++ b/runtime/indent/tilde.vim
@@ -25,11 +25,11 @@ function GetTildeIndent(lnum)
endif
if getline(v:lnum) =~ '^\s*\~\(endif\|else\|elseif\|end\)\>'
- return indent(v:lnum) - &sw
+ return indent(v:lnum) - shiftwidth()
endif
if getline(plnum) =~ '^\s*\~\(if\|foreach\|foreach_row\|xml_loop\|file_loop\|file_write\|file_append\|imap_loopsections\|imap_index\|imap_list\|ldap_search\|post_loopall\|post_loop\|file_loop\|sql_loop_num\|sql_dbmsselect\|search\|sql_loop\|post\|for\|function_define\|silent\|while\|setvalbig\|mail_create\|systempipe\|mail_send\|dual\|elseif\|else\)\>'
- return indent(plnum) + &sw
+ return indent(plnum) + shiftwidth()
else
return -1
endif
diff --git a/runtime/indent/treetop.vim b/runtime/indent/treetop.vim
index a2af78b8c2..2c6eecf5c4 100644
--- a/runtime/indent/treetop.vim
+++ b/runtime/indent/treetop.vim
@@ -1,7 +1,7 @@
" Vim indent file
-" Language: Treetop
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2011-03-14
+" Language: Treetop
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2011-03-14
if exists("b:did_indent")
finish
@@ -26,12 +26,12 @@ function GetTreetopIndent()
let line = getline(pnum)
if line =~ '^\s*\%(grammar\|module\|rule\)\>'
- let ind += &sw
+ let ind += shiftwidth()
endif
let line = getline(v:lnum)
if line =~ '^\s*end\>'
- let ind -= &sw
+ let ind -= shiftwidth()
end
retur ind
diff --git a/runtime/indent/vb.vim b/runtime/indent/vb.vim
index 55a8ea302a..4d05345565 100644
--- a/runtime/indent/vb.vim
+++ b/runtime/indent/vb.vim
@@ -49,26 +49,26 @@ fun! VbGetIndent(lnum)
" Add
if previous_line =~? '^\s*\<\(begin\|\%(\%(private\|public\|friend\)\s\+\)\=\%(function\|sub\|property\)\|select\|case\|default\|if\|else\|elseif\|do\|for\|while\|enum\|with\)\>'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
" Subtract
if this_line =~? '^\s*\<end\>\s\+\<select\>'
if previous_line !~? '^\s*\<select\>'
- let ind = ind - 2 * &sw
+ let ind = ind - 2 * shiftwidth()
else
" this case is for an empty 'select' -- 'end select'
" (w/o any case statements) like:
"
" select case readwrite
" end select
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
elseif this_line =~? '^\s*\<\(end\|else\|elseif\|until\|loop\|next\|wend\)\>'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
elseif this_line =~? '^\s*\<\(case\|default\)\>'
if previous_line !~? '^\s*\<select\>'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
endif
diff --git a/runtime/indent/verilog.vim b/runtime/indent/verilog.vim
index ecca462636..ab3d0ba3e0 100644
--- a/runtime/indent/verilog.vim
+++ b/runtime/indent/verilog.vim
@@ -1,10 +1,12 @@
" Language: Verilog HDL
-" Maintainer: Chih-Tsun Huang <cthuang@larc.ee.nthu.edu.tw>
-" Last Change: 2011 Dec 10 by Thilo Six
-" URL: http://larc.ee.nthu.edu.tw/~cthuang/vim/indent/verilog.vim
+" Maintainer: Chih-Tsun Huang <cthuang@cs.nthu.edu.tw>
+" Last Change: 2017 Aug 25 by Chih-Tsun Huang
+" URL: http://www.cs.nthu.edu.tw/~cthuang/vim/indent/verilog.vim
"
" Credits:
" Suggestions for improvement, bug reports by
+" Takuya Fujiwara <tyru.exe@gmail.com>
+" Thilo Six <debian@Xk2c.de>
" Leo Butlero <lbutler@brocade.com>
"
" Buffer Variables:
@@ -23,7 +25,8 @@ let b:did_indent = 1
setlocal indentexpr=GetVerilogIndent()
setlocal indentkeys=!^F,o,O,0),=begin,=end,=join,=endcase
setlocal indentkeys+==endmodule,=endfunction,=endtask,=endspecify
-setlocal indentkeys+==`else,=`endif
+setlocal indentkeys+==endconfig,=endgenerate,=endprimitive,=endtable
+setlocal indentkeys+==`else,=`elsif,=`endif
" Only define the function once.
if exists("*GetVerilogIndent")
@@ -38,7 +41,7 @@ function GetVerilogIndent()
if exists('b:verilog_indent_width')
let offset = b:verilog_indent_width
else
- let offset = &sw
+ let offset = shiftwidth()
endif
if exists('b:verilog_indent_modules')
let indent_modules = offset
@@ -82,7 +85,9 @@ function GetVerilogIndent()
endif
" Indent after if/else/for/case/always/initial/specify/fork blocks
- elseif last_line =~ '`\@<!\<\(if\|else\)\>' ||
+ " Note: We exclude '`if' or '`else' and consider 'end else'
+ " 'end if' is redundant here
+ elseif last_line =~ '^\s*\(end\)\=\s*`\@<!\<\(if\|else\)\>' ||
\ last_line =~ '^\s*\<\(for\|case\%[[zx]]\)\>' ||
\ last_line =~ '^\s*\<\(always\|initial\)\>' ||
\ last_line =~ '^\s*\<\(specify\|fork\)\>'
@@ -91,8 +96,8 @@ function GetVerilogIndent()
let ind = ind + offset
if vverb | echo vverb_str "Indent after a block statement." | endif
endif
- " Indent after function/task blocks
- elseif last_line =~ '^\s*\<\(function\|task\)\>'
+ " Indent after function/task/config/generate/primitive/table blocks
+ elseif last_line =~ '^\s*\<\(function\|task\|config\|generate\|primitive\|table\)\>'
if last_line !~ '\<end\>\s*' . vlog_comment . '*$' ||
\ last_line =~ '\(//\|/\*\).*\(;\|\<end\>\)\s*' . vlog_comment . '*$'
let ind = ind + offset
@@ -159,11 +164,11 @@ function GetVerilogIndent()
let ind = ind - offset
if vverb | echo vverb_str "De-indent after a close statement." | endif
- " `ifdef and `else
- elseif last_line =~ '^\s*`\<\(ifdef\|else\)\>'
+ " `ifdef or `ifndef or `elsif or `else
+ elseif last_line =~ '^\s*`\<\(ifn\?def\|elsif\|else\)\>'
let ind = ind + offset
if vverb
- echo vverb_str "Indent after a `ifdef or `else statement."
+ echo vverb_str "Indent after a `ifdef or `ifndef or `elsif or `else statement."
endif
endif
@@ -173,7 +178,8 @@ function GetVerilogIndent()
" De-indent on the end of the block
" join/end/endcase/endfunction/endtask/endspecify
if curr_line =~ '^\s*\<\(join\|end\|endcase\)\>' ||
- \ curr_line =~ '^\s*\<\(endfunction\|endtask\|endspecify\)\>'
+ \ curr_line =~ '^\s*\<\(endfunction\|endtask\|endspecify\)\>' ||
+ \ curr_line =~ '^\s*\<\(endconfig\|endgenerate\|endprimitive\|endtable\)\>'
let ind = ind - offset
if vverb | echo vverb_str "De-indent the end of a block." | endif
elseif curr_line =~ '^\s*\<endmodule\>'
@@ -184,7 +190,7 @@ function GetVerilogIndent()
" De-indent on a stand-alone 'begin'
elseif curr_line =~ '^\s*\<begin\>'
- if last_line !~ '^\s*\<\(function\|task\|specify\|module\)\>' &&
+ if last_line !~ '^\s*\<\(function\|task\|specify\|module\|config\|generate\|primitive\|table\)\>' &&
\ last_line !~ '^\s*\()*\s*;\|)\+\)\s*' . vlog_comment . '*$' &&
\ ( last_line =~
\ '\<\(`\@<!if\|`\@<!else\|for\|case\%[[zx]]\|always\|initial\)\>' ||
@@ -206,10 +212,10 @@ function GetVerilogIndent()
echo vverb_str "De-indent the end of a multiple statement."
endif
- " De-indent `else and `endif
- elseif curr_line =~ '^\s*`\<\(else\|endif\)\>'
+ " De-indent `elsif or `else or `endif
+ elseif curr_line =~ '^\s*`\<\(elsif\|else\|endif\)\>'
let ind = ind - offset
- if vverb | echo vverb_str "De-indent `else and `endif statement." | endif
+ if vverb | echo vverb_str "De-indent `elsif or `else or `endif statement." | endif
endif
diff --git a/runtime/indent/vhdl.vim b/runtime/indent/vhdl.vim
index 6982859670..ad318066f4 100644
--- a/runtime/indent/vhdl.vim
+++ b/runtime/indent/vhdl.vim
@@ -1,8 +1,8 @@
" VHDL indent ('93 syntax)
" Language: VHDL
" Maintainer: Gerald Lai <laigera+vim?gmail.com>
-" Version: 1.60
-" Last Change: 2016 Feb 26
+" Version: 1.62
+" Last Change: 2017 Oct 17
" URL: http://www.vim.org/scripts/script.php?script_id=1450
" only load this indent file when no other was loaded
@@ -114,9 +114,9 @@ function GetVHDLindent()
return ind2 + m
else
if g:vhdl_indent_genportmap
- return ind2 + stridx(prevs_noi, '(') + &sw
+ return ind2 + stridx(prevs_noi, '(') + shiftwidth()
else
- return ind2 + &sw
+ return ind2 + shiftwidth()
endif
endif
endif
@@ -128,7 +128,7 @@ function GetVHDLindent()
if g:vhdl_indent_rhsassign
return ind2 + matchend(prevs_noi, '<=\s*\ze.')
else
- return ind2 + &sw
+ return ind2 + shiftwidth()
endif
endif
@@ -218,12 +218,12 @@ function GetVHDLindent()
let ps = getline(pn)
if (ps =~? s:NC.'\<begin\>')
- return indent(pn) - &sw
+ return indent(pn) - shiftwidth()
endif
endwhile
if (pn == 0)
- return ind - &sw
+ return ind - shiftwidth()
else
return indent(pn)
endif
@@ -237,7 +237,7 @@ function GetVHDLindent()
" keyword: "type"
let s3 = s:NC.s:NE.'\<type\>'
if curs !~? s3.'.*'.s:NC.'\<\%(record\|units\)\>.*'.s:ES && prevs =~? s3
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
return ind
endif
@@ -282,7 +282,7 @@ function GetVHDLindent()
" removed: "begin", "case", "elsif", "if", "loop", "record", "units", "while"
" where: anywhere in previous line
if prevs =~? s:NC.s:NE.'\<\%(block\|process\)\>'
- return ind + &sw
+ return ind + shiftwidth()
endif
" indent: +sw
@@ -290,7 +290,7 @@ function GetVHDLindent()
" removed: "component", "for", "when", "with"
" where: start of previous line
if prevs =~? '^\s*\%(architecture\|configuration\|entity\|package\)\>'
- return ind + &sw
+ return ind + shiftwidth()
endif
" indent: +sw
@@ -298,7 +298,7 @@ function GetVHDLindent()
" removed: "generate", "is", "=>"
" where: end of previous line
if prevs =~? s:NC.'\<select'.s:ES
- return ind + &sw
+ return ind + shiftwidth()
endif
" indent: +sw
@@ -310,7 +310,7 @@ function GetVHDLindent()
" where: end of previous line
" _note_: indent allowed to leave this filter
if prevs =~? s:NC.'\%(\<begin\>\|'.s:NE.'\<\%(loop\|record\|units\)\>\)' || prevs =~? '^\s*\%(component\|else\|for\)\>' || prevs =~? s:NC.'\%('.s:NE.'\<generate\|\<\%(is\|then\)\|=>\)'.s:ES
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
" ****************************************************************************************
@@ -322,7 +322,7 @@ function GetVHDLindent()
if prevs =~? s:NC.'\<is'.s:ES
return ind
elseif prevs !~? s4
- return ind - &sw
+ return ind - shiftwidth()
else
return ind2
endif
@@ -336,7 +336,7 @@ function GetVHDLindent()
if prevs =~? '^\s*\%(elsif\|'.s5.'\)'
return ind
else
- return ind - &sw
+ return ind - shiftwidth()
endif
endif
@@ -367,9 +367,9 @@ function GetVHDLindent()
"where: start of previous non-comment line
if m == 1
if ps =~? '^\s*end\s\+case\>'
- return indent(pn) - 2 * &sw
+ return indent(pn) - 2 * shiftwidth()
elseif ps =~? '^\s*when\>'
- return indent(pn) - &sw
+ return indent(pn) - shiftwidth()
elseif ps =~? '^\s*case\>'
return indent(pn)
endif
@@ -385,14 +385,14 @@ function GetVHDLindent()
let pn = prevnonblank(pn - 1)
let ps = getline(pn)
endwhile
- return ind - &sw
+ return ind - shiftwidth()
endif
" indent: -sw
" keyword: ")"
" where: start of current line
if curs =~ '^\s*)'
- return ind - &sw
+ return ind - shiftwidth()
endif
" indent: 0
@@ -407,16 +407,17 @@ function GetVHDLindent()
" where: start of current line
"if curs =~? '^\s*end\s\+\w\+\>'
if curs =~? '^\s*end\%(\s\|;'.s:ES.'\)'
- return ind - &sw
+ return ind - shiftwidth()
endif
" ****************************************************************************************
" indent: maintain indent of previous opening statement
- " keywords: without "procedure", "generic", "map", "port" + ":" but not ":=" + eventually ;$
+ " keywords: without "procedure", "generic", "map", "port" + ":" but not ":=" + "in", "out", "inout", "buffer", "linkage", variable & ":="
" where: start of current line
- if curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=].*;.*$'
+ if curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=]\@=\s*\%(\%(in\|out\|inout\|buffer\|linkage\)\>\|\w\+\s\+:=\)'
return ind2
endif
+
" ****************************************************************************************
" indent: maintain indent of previous opening statement, corner case which
" does not end in ;, but is part of a mapping
@@ -424,10 +425,10 @@ function GetVHDLindent()
" prevline without "procedure", "generic", "map", "port" + ":" but not ":=" + eventually ;$
" where: start of current line
if curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=].*[^;].*$'
- if prevs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=].*;.*$'
- return ind2
- endif
- endif
+ if prevs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=].*;.*$'
+ return ind2
+ endif
+ endif
" return leftover filtered indent
return ind
diff --git a/runtime/indent/xf86conf.vim b/runtime/indent/xf86conf.vim
index 4174a24224..5a8bc0fec1 100644
--- a/runtime/indent/xf86conf.vim
+++ b/runtime/indent/xf86conf.vim
@@ -1,7 +1,7 @@
" Vim indent file
-" Language: XFree86 Configuration File
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-12-20
+" Language: XFree86 Configuration File
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-12-20
if exists("b:did_indent")
finish
@@ -26,11 +26,11 @@ function GetXF86ConfIndent()
let ind = indent(lnum)
if getline(lnum) =~? '^\s*\(Sub\)\=Section\>'
- let ind = ind + &sw
+ let ind = ind + shiftwidth()
endif
if getline(v:lnum) =~? '^\s*End\(Sub\)\=Section\>'
- let ind = ind - &sw
+ let ind = ind - shiftwidth()
endif
return ind
diff --git a/runtime/indent/xinetd.vim b/runtime/indent/xinetd.vim
index c8127237e8..977ee3d33b 100644
--- a/runtime/indent/xinetd.vim
+++ b/runtime/indent/xinetd.vim
@@ -1,7 +1,7 @@
" Vim indent file
-" Language: xinetd.conf(5) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-12-20
+" Language: xinetd.conf(5) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-12-20
if exists("b:did_indent")
finish
@@ -47,8 +47,8 @@ function GetXinetdIndent()
return 0
endif
- return indent(pnum) + s:count_braces(pnum, 1) * &sw
- \ - s:count_braces(v:lnum, 0) * &sw
+ return indent(pnum) + s:count_braces(pnum, 1) * shiftwidth()
+ \ - s:count_braces(v:lnum, 0) * shiftwidth()
endfunction
let &cpo = s:keepcpo
diff --git a/runtime/indent/xml.vim b/runtime/indent/xml.vim
index dbe5be5f25..87ffb329b5 100644
--- a/runtime/indent/xml.vim
+++ b/runtime/indent/xml.vim
@@ -1,6 +1,6 @@
" Language: xml
" Maintainer: Johannes Zellner <johannes@zellner.org>
-" Last Change: 2012 Jul 25
+" Last Change: 2017 Jun 13
" Notes: 1) does not indent pure non-xml code (e.g. embedded scripts)
" 2) will be confused by unbalanced tags in comments
" or CDATA sections.
@@ -67,7 +67,7 @@ endfun
fun! <SID>XmlIndentSum(lnum, style, add)
let line = getline(a:lnum)
if a:style == match(line, '^\s*</')
- return (&sw *
+ return (shiftwidth() *
\ (<SID>XmlIndentWithPattern(line, b:xml_indent_open)
\ - <SID>XmlIndentWithPattern(line, b:xml_indent_close)
\ - <SID>XmlIndentWithPattern(line, '.\{-}/>'))) + a:add
diff --git a/runtime/indent/yacc.vim b/runtime/indent/yacc.vim
index 2ab7d7b38c..01ad4fc56d 100644
--- a/runtime/indent/yacc.vim
+++ b/runtime/indent/yacc.vim
@@ -1,7 +1,7 @@
" Vim indent file
-" Language: YACC input file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-12-20
+" Language: YACC input file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-12-20
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
diff --git a/runtime/indent/yaml.vim b/runtime/indent/yaml.vim
index aa4906ce0a..3eb16f845d 100644
--- a/runtime/indent/yaml.vim
+++ b/runtime/indent/yaml.vim
@@ -1,7 +1,7 @@
" Vim indent file
" Language: YAML
" Maintainer: Nikolai Pavlov <zyx.vim@gmail.com>
-" Last Change: 2015 Nov 01
+" Last Change: 2017 Jun 13
" Only load this indent file when no other was loaded.
if exists('b:did_indent')
@@ -24,20 +24,12 @@ if exists('*GetYAMLIndent')
finish
endif
-if exists('*shiftwidth')
- let s:shiftwidth = function('shiftwidth')
-else
- function s:shiftwidth()
- return &shiftwidth
- endfunction
-endif
-
function s:FindPrevLessIndentedLine(lnum, ...)
let prevlnum = prevnonblank(a:lnum-1)
let curindent = a:0 ? a:1 : indent(a:lnum)
while prevlnum
\&& indent(prevlnum) >= curindent
- \&& getline(prevlnum) !~# '^\s*#'
+ \&& getline(prevlnum) =~# '^\s*#'
let prevlnum = prevnonblank(prevlnum-1)
endwhile
return prevlnum
@@ -51,11 +43,33 @@ function s:FindPrevLEIndentedLineMatchingRegex(lnum, regex)
return plilnum
endfunction
-let s:mapkeyregex='\v^\s*%(\''%([^'']|'''')*\'''.
- \ '|\"%([^"\\]|\\.)*\"'.
- \ '|%(%(\:\ )@!.)*)\:%(\ |$)'
+let s:mapkeyregex='\v^\s*\#@!\S@=%(\''%([^'']|\''\'')*\'''.
+ \ '|\"%([^"\\]|\\.)*\"'.
+ \ '|%(%(\:\ )@!.)*)\:%(\ |$)'
let s:liststartregex='\v^\s*%(\-%(\ |$))'
+let s:c_ns_anchor_char = '\v%([\n\r\uFEFF \t,[\]{}]@!\p)'
+let s:c_ns_anchor_name = s:c_ns_anchor_char.'+'
+let s:c_ns_anchor_property = '\v\&'.s:c_ns_anchor_name
+
+let s:ns_word_char = '\v[[:alnum:]_\-]'
+let s:ns_tag_char = '\v%(%\x\x|'.s:ns_word_char.'|[#/;?:@&=+$.~*''()])'
+let s:c_named_tag_handle = '\v\!'.s:ns_word_char.'+\!'
+let s:c_secondary_tag_handle = '\v\!\!'
+let s:c_primary_tag_handle = '\v\!'
+let s:c_tag_handle = '\v%('.s:c_named_tag_handle.
+ \ '|'.s:c_secondary_tag_handle.
+ \ '|'.s:c_primary_tag_handle.')'
+let s:c_ns_shorthand_tag = '\v'.s:c_tag_handle . s:ns_tag_char.'+'
+let s:c_non_specific_tag = '\v\!'
+let s:ns_uri_char = '\v%(%\x\x|'.s:ns_word_char.'\v|[#/;?:@&=+$,.!~*''()[\]])'
+let s:c_verbatim_tag = '\v\!\<'.s:ns_uri_char.'+\>'
+let s:c_ns_tag_property = '\v'.s:c_verbatim_tag.
+ \ '\v|'.s:c_ns_shorthand_tag.
+ \ '\v|'.s:c_non_specific_tag
+
+let s:block_scalar_header = '\v[|>]%([+-]?[1-9]|[1-9]?[+-])?'
+
function GetYAMLIndent(lnum)
if a:lnum == 1 || !prevnonblank(a:lnum-1)
return 0
@@ -97,7 +111,7 @@ function GetYAMLIndent(lnum)
"
" - |-
" Block scalar without indentation indicator
- return previndent+s:shiftwidth()
+ return previndent+shiftwidth()
elseif prevline =~# '\v[:-]\ [|>]%(\d+[+\-]?|[+\-]?\d+)%(\#.*|\s*)$'
" - |+2
" block scalar with indentation indicator
@@ -127,10 +141,13 @@ function GetYAMLIndent(lnum)
" - List with
" multiline scalar
return previndent+2
- elseif prevline =~# s:mapkeyregex
+ elseif prevline =~# s:mapkeyregex . '\v\s*%(%('.s:c_ns_tag_property.
+ \ '\v|'.s:c_ns_anchor_property.
+ \ '\v|'.s:block_scalar_header.
+ \ '\v)%(\s+|\s*%(\#.*)?$))*'
" Mapping with: value
" that is multiline scalar
- return previndent+s:shiftwidth()
+ return previndent+shiftwidth()
endif
return previndent
endfunction
diff --git a/runtime/keymap/armenian-eastern_utf-8.vim b/runtime/keymap/armenian-eastern_utf-8.vim
index 7b03c5ac73..eaa60a77f8 100644
--- a/runtime/keymap/armenian-eastern_utf-8.vim
+++ b/runtime/keymap/armenian-eastern_utf-8.vim
@@ -1,5 +1,5 @@
" Maintainer: Benjamin Linskey <vim@benlinskey.com>
-" Last Changed: 2016 July 20
+" Last Changed: 2016 December 5
" URL: https://github.com/blinskey/vim-armenian-keymaps
let b:keymap_name = "hy"
@@ -98,6 +98,8 @@ f ֆ
7 .
8 «
9 »
+* (
+( )
\\ '
| ՞
diff --git a/runtime/keymap/armenian-western_utf-8.vim b/runtime/keymap/armenian-western_utf-8.vim
index e02485ed8c..cf3efdc00f 100644
--- a/runtime/keymap/armenian-western_utf-8.vim
+++ b/runtime/keymap/armenian-western_utf-8.vim
@@ -1,5 +1,5 @@
" Maintainer: Benjamin Linskey <vim@benlinskey.com>
-" Last Changed: 2016 July 20
+" Last Changed: 2016 December 5
" URL: https://github.com/blinskey/vim-armenian-keymaps
let b:keymap_name = "hy"
@@ -98,6 +98,8 @@ f ֆ
7 .
8 «
9 »
+* (
+( )
\\ '
| ՞
diff --git a/runtime/keymap/kazakh-jcuken.vim b/runtime/keymap/kazakh-jcuken.vim
new file mode 100644
index 0000000000..63d122d112
--- /dev/null
+++ b/runtime/keymap/kazakh-jcuken.vim
@@ -0,0 +1,102 @@
+" Vim Keymap file for kazakh characters, layout 'jcuken', classical variant
+
+" Derived from russian-jcuken.vim by Artem Chuprina <ran@ran.pp.ru>
+" Maintainer: Darkhan Kubigenov <darkhanu@gmail.com>
+" Last Changed: 2016 Oct 25
+
+" All characters are given literally, conversion to another encoding (e.g.,
+" UTF-8) should work.
+scriptencoding utf-8
+
+let b:keymap_name = "kk"
+
+loadkeymap
+~ ) CYRILLIC CAPITAL LETTER IO
+` ( CYRILLIC SMALL LETTER IO
+F А CYRILLIC CAPITAL LETTER A
+< Б CYRILLIC CAPITAL LETTER BE
+D В CYRILLIC CAPITAL LETTER VE
+U Г CYRILLIC CAPITAL LETTER GHE
+L Д CYRILLIC CAPITAL LETTER DE
+T Е CYRILLIC CAPITAL LETTER IE
+: Ж CYRILLIC CAPITAL LETTER ZHE
+P З CYRILLIC CAPITAL LETTER ZE
+B И CYRILLIC CAPITAL LETTER I
+Q Й CYRILLIC CAPITAL LETTER SHORT I
+R К CYRILLIC CAPITAL LETTER KA
+K Л CYRILLIC CAPITAL LETTER EL
+V М CYRILLIC CAPITAL LETTER EM
+Y Н CYRILLIC CAPITAL LETTER EN
+J О CYRILLIC CAPITAL LETTER O
+G П CYRILLIC CAPITAL LETTER PE
+H Р CYRILLIC CAPITAL LETTER ER
+C С CYRILLIC CAPITAL LETTER ES
+N Т CYRILLIC CAPITAL LETTER TE
+E У CYRILLIC CAPITAL LETTER U
+A Ф CYRILLIC CAPITAL LETTER EF
+{ Х CYRILLIC CAPITAL LETTER HA
+W Ц CYRILLIC CAPITAL LETTER TSE
+X Ч CYRILLIC CAPITAL LETTER CHE
+I Ш CYRILLIC CAPITAL LETTER SHA
+O Щ CYRILLIC CAPITAL LETTER SHCHA
+} Ъ CYRILLIC CAPITAL LETTER HARD SIGN
+S Ы CYRILLIC CAPITAL LETTER YERU
+M Ь CYRILLIC CAPITAL LETTER SOFT SIGN
+\" Э CYRILLIC CAPITAL LETTER E
+> Ю CYRILLIC CAPITAL LETTER YU
+Z Я CYRILLIC CAPITAL LETTER YA
+f а CYRILLIC SMALL LETTER A
+, б CYRILLIC SMALL LETTER BE
+d в CYRILLIC SMALL LETTER VE
+u г CYRILLIC SMALL LETTER GHE
+l д CYRILLIC SMALL LETTER DE
+t е CYRILLIC SMALL LETTER IE
+; ж CYRILLIC SMALL LETTER ZHE
+p з CYRILLIC SMALL LETTER ZE
+b и CYRILLIC SMALL LETTER I
+q й CYRILLIC SMALL LETTER SHORT I
+r к CYRILLIC SMALL LETTER KA
+k л CYRILLIC SMALL LETTER EL
+v м CYRILLIC SMALL LETTER EM
+y н CYRILLIC SMALL LETTER EN
+j о CYRILLIC SMALL LETTER O
+g п CYRILLIC SMALL LETTER PE
+h р CYRILLIC SMALL LETTER ER
+c с CYRILLIC SMALL LETTER ES
+n т CYRILLIC SMALL LETTER TE
+e у CYRILLIC SMALL LETTER U
+a ф CYRILLIC SMALL LETTER EF
+[ х CYRILLIC SMALL LETTER HA
+w ц CYRILLIC SMALL LETTER TSE
+x ч CYRILLIC SMALL LETTER CHE
+i ш CYRILLIC SMALL LETTER SHA
+o щ CYRILLIC SMALL LETTER SHCHA
+] ъ CYRILLIC SMALL LETTER HARD SIGN
+s ы CYRILLIC SMALL LETTER YERU
+m ь CYRILLIC SMALL LETTER SOFT SIGN
+' э CYRILLIC SMALL LETTER E
+. ю CYRILLIC SMALL LETTER YU
+z я CYRILLIC SMALL LETTER YA
+@ Ә CYRILLIC CAPITAL LETTER SCHWA
+# І CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+$ Ң CYRILLIC CAPITAL LETTER EN WITH DESCENDER
+% Ғ CYRILLIC CAPITAL LETTER GHE WITH STROKE
+^ ;
+& :
+* Ү CYRILLIC CAPITAL LETTER STRAIGHT U
+( Ұ CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
+) Қ CYRILLIC CAPITAL LETTER KA WITH DESCENDER
+_ Ө CYRILLIC CAPITAL LETTER BARRED O
++ Һ CYRILLIC CAPITAL LETTER SHHA
+1 "
+2 ә CYRILLIC SMALL LETTER SCHWA
+3 і CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+4 ң CYRILLIC SMALL LETTER EN WITH DESCENDER
+5 ғ CYRILLIC SMALL LETTER GHE WITH STROKE
+6 ,
+7 .
+8 ү CYRILLIC SMALL LETTER STRAIGHT U
+9 ұ CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
+0 қ CYRILLIC SMALL LETTER KA WITH DESCENDER
+- ө CYRILLIC SMALL LETTER BARRED O
+= һ CYRILLIC SMALL LETTER SHHA
diff --git a/runtime/keymap/pinyin.vim b/runtime/keymap/pinyin.vim
index 757850b83f..253814c753 100644
--- a/runtime/keymap/pinyin.vim
+++ b/runtime/keymap/pinyin.vim
@@ -1,5 +1,5 @@
" Vim Keymap file for Hanyu Pinyin tone marks through numbers.
-" Maintainer: Fredrik Roubert <roubert@df.lth.se>
+" Maintainer: Fredrik Roubert <fredrik@roubert.name>
" Last Changed: February 15, 2004
" All characters are given literally.
diff --git a/runtime/keymap/russian-jcukenmac.vim b/runtime/keymap/russian-jcukenmac.vim
new file mode 100644
index 0000000000..e2120ca1d4
--- /dev/null
+++ b/runtime/keymap/russian-jcukenmac.vim
@@ -0,0 +1,94 @@
+" Vim Keymap file for russian characters, layout 'jcuken', Mac variant
+
+" Derived from russian-jcuken.vim by Artem Chuprina <ran@ran.pp.ru>
+" Maintainer: Anton Fonarev <avfonarev@gmail.com>
+" Last Changed: 2016 August 17
+
+" All characters are given literally, conversion to another encoding (e.g.,
+" UTF-8) should work.
+
+scriptencoding utf-8
+
+let b:keymap_name = "ru"
+
+loadkeymap
+
+\| Ё CYRILLIC CAPITAL LETTER IO
+\\ ё CYRILLIC SMALL LETTER IO
+
+F А CYRILLIC CAPITAL LETTER A
+< Б CYRILLIC CAPITAL LETTER BE
+D В CYRILLIC CAPITAL LETTER VE
+U Г CYRILLIC CAPITAL LETTER GHE
+L Д CYRILLIC CAPITAL LETTER DE
+T Е CYRILLIC CAPITAL LETTER IE
+: Ж CYRILLIC CAPITAL LETTER ZHE
+P З CYRILLIC CAPITAL LETTER ZE
+B И CYRILLIC CAPITAL LETTER I
+Q Й CYRILLIC CAPITAL LETTER SHORT I
+R К CYRILLIC CAPITAL LETTER KA
+K Л CYRILLIC CAPITAL LETTER EL
+V М CYRILLIC CAPITAL LETTER EM
+Y Н CYRILLIC CAPITAL LETTER EN
+J О CYRILLIC CAPITAL LETTER O
+G П CYRILLIC CAPITAL LETTER PE
+H Р CYRILLIC CAPITAL LETTER ER
+C С CYRILLIC CAPITAL LETTER ES
+N Т CYRILLIC CAPITAL LETTER TE
+E У CYRILLIC CAPITAL LETTER U
+A Ф CYRILLIC CAPITAL LETTER EF
+{ Х CYRILLIC CAPITAL LETTER HA
+W Ц CYRILLIC CAPITAL LETTER TSE
+X Ч CYRILLIC CAPITAL LETTER CHE
+I Ш CYRILLIC CAPITAL LETTER SHA
+O Щ CYRILLIC CAPITAL LETTER SHCHA
+} Ъ CYRILLIC CAPITAL LETTER HARD SIGN
+S Ы CYRILLIC CAPITAL LETTER YERU
+M Ь CYRILLIC CAPITAL LETTER SOFT SIGN
+\" Э CYRILLIC CAPITAL LETTER E
+> Ю CYRILLIC CAPITAL LETTER YU
+Z Я CYRILLIC CAPITAL LETTER YA
+f а CYRILLIC SMALL LETTER A
+, б CYRILLIC SMALL LETTER BE
+d в CYRILLIC SMALL LETTER VE
+u г CYRILLIC SMALL LETTER GHE
+l д CYRILLIC SMALL LETTER DE
+t е CYRILLIC SMALL LETTER IE
+; ж CYRILLIC SMALL LETTER ZHE
+p з CYRILLIC SMALL LETTER ZE
+b и CYRILLIC SMALL LETTER I
+q й CYRILLIC SMALL LETTER SHORT I
+r к CYRILLIC SMALL LETTER KA
+k л CYRILLIC SMALL LETTER EL
+v м CYRILLIC SMALL LETTER EM
+y н CYRILLIC SMALL LETTER EN
+j о CYRILLIC SMALL LETTER O
+g п CYRILLIC SMALL LETTER PE
+h р CYRILLIC SMALL LETTER ER
+c с CYRILLIC SMALL LETTER ES
+n т CYRILLIC SMALL LETTER TE
+e у CYRILLIC SMALL LETTER U
+a ф CYRILLIC SMALL LETTER EF
+[ х CYRILLIC SMALL LETTER HA
+w ц CYRILLIC SMALL LETTER TSE
+x ч CYRILLIC SMALL LETTER CHE
+i ш CYRILLIC SMALL LETTER SHA
+o щ CYRILLIC SMALL LETTER SHCHA
+] ъ CYRILLIC SMALL LETTER HARD SIGN
+s ы CYRILLIC SMALL LETTER YERU
+m ь CYRILLIC SMALL LETTER SOFT SIGN
+' э CYRILLIC SMALL LETTER E
+. ю CYRILLIC SMALL LETTER YU
+z я CYRILLIC SMALL LETTER YA
+
+§ >
+± <
+@ "
+# №
+$ %
+% :
+^ ,
+& .
+* ;
+` ]
+~ [
diff --git a/runtime/macros/less.vim b/runtime/macros/less.vim
index 7ccbeb32ea..aad122d70a 100644
--- a/runtime/macros/less.vim
+++ b/runtime/macros/less.vim
@@ -1,6 +1,6 @@
" Vim script to work like "less"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2015 Nov 15
+" Last Change: 2017 Mar 31
" Avoid loading this file twice, allow the user to define his own script.
if exists("loaded_less")
@@ -81,6 +81,10 @@ fun! s:Help()
echo "\n"
echo "/pattern Search for pattern ?pattern Search backward for pattern"
echo "n next pattern match N Previous pattern match"
+ if &foldmethod != "manual"
+ echo "\n"
+ echo "zR open all folds zm increase fold level"
+ endif
echo "\n"
echo ":n<Enter> Next file :p<Enter> Previous file"
echo "\n"
@@ -96,7 +100,11 @@ map <C-F> <Space>
map <PageDown> <Space>
map <kPageDown> <Space>
map <S-Down> <Space>
-map z <Space>
+" If 'foldmethod' was changed keep the "z" commands, e.g. "zR" to open all
+" folds.
+if &foldmethod == "manual"
+ map z <Space>
+endif
map <Esc><Space> <Space>
fun! s:NextPage()
if line(".") == line("$")
diff --git a/runtime/menu.vim b/runtime/menu.vim
index 7cb530a331..6e1b22c921 100644
--- a/runtime/menu.vim
+++ b/runtime/menu.vim
@@ -2,7 +2,7 @@
" You can also use this as a start for your own set of menus.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2016 Jul 27
+" Last Change: 2017 Mar 04
" Note that ":an" (short for ":anoremenu") is often used to make a menu work
" in all modes and avoid side effects from mappings defined by the user.
@@ -70,7 +70,7 @@ endif
" Help menu
an 9999.10 &Help.&Overview<Tab><F1> :help<CR>
an 9999.20 &Help.&User\ Manual :help usr_toc<CR>
-an 9999.30 &Help.&How-to\ links :help how-to<CR>
+an 9999.30 &Help.&How-To\ Links :help how-to<CR>
an <silent> 9999.40 &Help.&Find\.\.\. :call <SID>Helpfind()<CR>
an 9999.45 &Help.-sep1- <Nop>
an 9999.50 &Help.&Credits :help credits<CR>
@@ -112,7 +112,7 @@ an 10.350 &File.Save\ &As\.\.\.<Tab>:sav :browse confirm saveas<CR>
if has("diff")
an 10.400 &File.-SEP2- <Nop>
- an 10.410 &File.Split\ &Diff\ with\.\.\. :browse vert diffsplit<CR>
+ an 10.410 &File.Split\ &Diff\ With\.\.\. :browse vert diffsplit<CR>
an 10.420 &File.Split\ Patched\ &By\.\.\. :browse vert diffpatch<CR>
endif
@@ -212,25 +212,25 @@ endfun
" Edit/Global Settings
an 20.440.100 &Edit.&Global\ Settings.Toggle\ Pattern\ &Highlight<Tab>:set\ hls! :set hls! hls?<CR>
-an 20.440.110 &Edit.&Global\ Settings.Toggle\ &Ignore-case<Tab>:set\ ic! :set ic! ic?<CR>
-an 20.440.110 &Edit.&Global\ Settings.Toggle\ &Showmatch<Tab>:set\ sm! :set sm! sm?<CR>
-
-an 20.440.120 &Edit.&Global\ Settings.&Context\ lines.\ 1\ :set so=1<CR>
-an 20.440.120 &Edit.&Global\ Settings.&Context\ lines.\ 2\ :set so=2<CR>
-an 20.440.120 &Edit.&Global\ Settings.&Context\ lines.\ 3\ :set so=3<CR>
-an 20.440.120 &Edit.&Global\ Settings.&Context\ lines.\ 4\ :set so=4<CR>
-an 20.440.120 &Edit.&Global\ Settings.&Context\ lines.\ 5\ :set so=5<CR>
-an 20.440.120 &Edit.&Global\ Settings.&Context\ lines.\ 7\ :set so=7<CR>
-an 20.440.120 &Edit.&Global\ Settings.&Context\ lines.\ 10\ :set so=10<CR>
-an 20.440.120 &Edit.&Global\ Settings.&Context\ lines.\ 100\ :set so=100<CR>
+an 20.440.110 &Edit.&Global\ Settings.Toggle\ &Ignoring\ Case<Tab>:set\ ic! :set ic! ic?<CR>
+an 20.440.110 &Edit.&Global\ Settings.Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm! :set sm! sm?<CR>
+
+an 20.440.120 &Edit.&Global\ Settings.&Context\ Lines.\ 1\ :set so=1<CR>
+an 20.440.120 &Edit.&Global\ Settings.&Context\ Lines.\ 2\ :set so=2<CR>
+an 20.440.120 &Edit.&Global\ Settings.&Context\ Lines.\ 3\ :set so=3<CR>
+an 20.440.120 &Edit.&Global\ Settings.&Context\ Lines.\ 4\ :set so=4<CR>
+an 20.440.120 &Edit.&Global\ Settings.&Context\ Lines.\ 5\ :set so=5<CR>
+an 20.440.120 &Edit.&Global\ Settings.&Context\ Lines.\ 7\ :set so=7<CR>
+an 20.440.120 &Edit.&Global\ Settings.&Context\ Lines.\ 10\ :set so=10<CR>
+an 20.440.120 &Edit.&Global\ Settings.&Context\ Lines.\ 100\ :set so=100<CR>
an 20.440.130.40 &Edit.&Global\ Settings.&Virtual\ Edit.Never :set ve=<CR>
an 20.440.130.50 &Edit.&Global\ Settings.&Virtual\ Edit.Block\ Selection :set ve=block<CR>
-an 20.440.130.60 &Edit.&Global\ Settings.&Virtual\ Edit.Insert\ mode :set ve=insert<CR>
+an 20.440.130.60 &Edit.&Global\ Settings.&Virtual\ Edit.Insert\ Mode :set ve=insert<CR>
an 20.440.130.70 &Edit.&Global\ Settings.&Virtual\ Edit.Block\ and\ Insert :set ve=block,insert<CR>
an 20.440.130.80 &Edit.&Global\ Settings.&Virtual\ Edit.Always :set ve=all<CR>
an 20.440.140 &Edit.&Global\ Settings.Toggle\ Insert\ &Mode<Tab>:set\ im! :set im!<CR>
-an 20.440.145 &Edit.&Global\ Settings.Toggle\ Vi\ C&ompatible<Tab>:set\ cp! :set cp!<CR>
+an 20.440.145 &Edit.&Global\ Settings.Toggle\ Vi\ C&ompatibility<Tab>:set\ cp! :set cp!<CR>
an <silent> 20.440.150 &Edit.&Global\ Settings.Search\ &Path\.\.\. :call <SID>SearchP()<CR>
an <silent> 20.440.160 &Edit.&Global\ Settings.Ta&g\ Files\.\.\. :call <SID>TagFiles()<CR>
"
@@ -274,13 +274,13 @@ endfun
" Boolean options
an 20.440.100 &Edit.F&ile\ Settings.Toggle\ Line\ &Numbering<Tab>:set\ nu! :set nu! nu?<CR>
-an 20.440.105 &Edit.F&ile\ Settings.Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu! :set rnu! rnu?<CR>
+an 20.440.105 &Edit.F&ile\ Settings.Toggle\ Relati&ve\ Line\ Numbering<Tab>:set\ rnu! :set rnu! rnu?<CR>
an 20.440.110 &Edit.F&ile\ Settings.Toggle\ &List\ Mode<Tab>:set\ list! :set list! list?<CR>
-an 20.440.120 &Edit.F&ile\ Settings.Toggle\ Line\ &Wrap<Tab>:set\ wrap! :set wrap! wrap?<CR>
-an 20.440.130 &Edit.F&ile\ Settings.Toggle\ W&rap\ at\ word<Tab>:set\ lbr! :set lbr! lbr?<CR>
-an 20.440.160 &Edit.F&ile\ Settings.Toggle\ &expand-tab<Tab>:set\ et! :set et! et?<CR>
-an 20.440.170 &Edit.F&ile\ Settings.Toggle\ &auto-indent<Tab>:set\ ai! :set ai! ai?<CR>
-an 20.440.180 &Edit.F&ile\ Settings.Toggle\ &C-indenting<Tab>:set\ cin! :set cin! cin?<CR>
+an 20.440.120 &Edit.F&ile\ Settings.Toggle\ Line\ &Wrapping<Tab>:set\ wrap! :set wrap! wrap?<CR>
+an 20.440.130 &Edit.F&ile\ Settings.Toggle\ W&rapping\ at\ Word<Tab>:set\ lbr! :set lbr! lbr?<CR>
+an 20.440.160 &Edit.F&ile\ Settings.Toggle\ Tab\ &Expanding<Tab>:set\ et! :set et! et?<CR>
+an 20.440.170 &Edit.F&ile\ Settings.Toggle\ &Auto\ Indenting<Tab>:set\ ai! :set ai! ai?<CR>
+an 20.440.180 &Edit.F&ile\ Settings.Toggle\ &C-Style\ Indenting<Tab>:set\ cin! :set cin! cin?<CR>
" other options
an 20.440.600 &Edit.F&ile\ Settings.-SEP2- <Nop>
@@ -309,7 +309,7 @@ fun! s:TextWidth()
" Remove leading zeros to avoid it being used as an octal number.
" But keep a zero by itself.
let tw = substitute(n, "^0*", "", "")
- let &tw = tw == '' ? 0 : tw
+ let &tw = tw == '' ? 0 : tw
endif
endfun
@@ -390,10 +390,10 @@ if !exists("g:ctags_command")
let g:ctags_command = "ctags -R ."
endif
-an 40.300 &Tools.&Jump\ to\ this\ tag<Tab>g^] g<C-]>
-vunmenu &Tools.&Jump\ to\ this\ tag<Tab>g^]
-vnoremenu &Tools.&Jump\ to\ this\ tag<Tab>g^] g<C-]>
-an 40.310 &Tools.Jump\ &back<Tab>^T <C-T>
+an 40.300 &Tools.&Jump\ to\ This\ Tag<Tab>g^] g<C-]>
+vunmenu &Tools.&Jump\ to\ This\ Tag<Tab>g^]
+vnoremenu &Tools.&Jump\ to\ This\ Tag<Tab>g^] g<C-]>
+an 40.310 &Tools.Jump\ &Back<Tab>^T <C-T>
an 40.320 &Tools.Build\ &Tags\ File :exe "!" . g:ctags_command<CR>
if has("folding") || has("spell")
@@ -404,17 +404,17 @@ endif
if has("spell")
an 40.335.110 &Tools.&Spelling.&Spell\ Check\ On :set spell<CR>
an 40.335.120 &Tools.&Spelling.Spell\ Check\ &Off :set nospell<CR>
- an 40.335.130 &Tools.&Spelling.To\ &Next\ error<Tab>]s ]s
- an 40.335.130 &Tools.&Spelling.To\ &Previous\ error<Tab>[s [s
+ an 40.335.130 &Tools.&Spelling.To\ &Next\ Error<Tab>]s ]s
+ an 40.335.130 &Tools.&Spelling.To\ &Previous\ Error<Tab>[s [s
an 40.335.140 &Tools.&Spelling.Suggest\ &Corrections<Tab>z= z=
- an 40.335.150 &Tools.&Spelling.&Repeat\ correction<Tab>:spellrepall :spellrepall<CR>
+ an 40.335.150 &Tools.&Spelling.&Repeat\ Correction<Tab>:spellrepall :spellrepall<CR>
an 40.335.200 &Tools.&Spelling.-SEP1- <Nop>
- an 40.335.210 &Tools.&Spelling.Set\ language\ to\ "en" :set spl=en spell<CR>
- an 40.335.220 &Tools.&Spelling.Set\ language\ to\ "en_au" :set spl=en_au spell<CR>
- an 40.335.230 &Tools.&Spelling.Set\ language\ to\ "en_ca" :set spl=en_ca spell<CR>
- an 40.335.240 &Tools.&Spelling.Set\ language\ to\ "en_gb" :set spl=en_gb spell<CR>
- an 40.335.250 &Tools.&Spelling.Set\ language\ to\ "en_nz" :set spl=en_nz spell<CR>
- an 40.335.260 &Tools.&Spelling.Set\ language\ to\ "en_us" :set spl=en_us spell<CR>
+ an 40.335.210 &Tools.&Spelling.Set\ Language\ to\ "en" :set spl=en spell<CR>
+ an 40.335.220 &Tools.&Spelling.Set\ Language\ to\ "en_au" :set spl=en_au spell<CR>
+ an 40.335.230 &Tools.&Spelling.Set\ Language\ to\ "en_ca" :set spl=en_ca spell<CR>
+ an 40.335.240 &Tools.&Spelling.Set\ Language\ to\ "en_gb" :set spl=en_gb spell<CR>
+ an 40.335.250 &Tools.&Spelling.Set\ Language\ to\ "en_nz" :set spl=en_nz spell<CR>
+ an 40.335.260 &Tools.&Spelling.Set\ Language\ to\ "en_us" :set spl=en_us spell<CR>
an <silent> 40.335.270 &Tools.&Spelling.&Find\ More\ Languages :call <SID>SpellLang()<CR>
let s:undo_spellang = ['aun &Tools.&Spelling.&Find\ More\ Languages']
@@ -431,7 +431,7 @@ if has("spell")
endif
if !exists("g:menutrans_set_lang_to")
- let g:menutrans_set_lang_to = 'Set language to'
+ let g:menutrans_set_lang_to = 'Set Language to'
endif
let found = 0
@@ -468,14 +468,14 @@ endif
" Tools.Fold Menu
if has("folding")
" open close folds
- an 40.340.110 &Tools.&Folding.&Enable/Disable\ folds<Tab>zi zi
+ an 40.340.110 &Tools.&Folding.&Enable/Disable\ Folds<Tab>zi zi
an 40.340.120 &Tools.&Folding.&View\ Cursor\ Line<Tab>zv zv
- an 40.340.120 &Tools.&Folding.Vie&w\ Cursor\ Line\ only<Tab>zMzx zMzx
- inoremenu 40.340.120 &Tools.&Folding.Vie&w\ Cursor\ Line\ only<Tab>zMzx <C-O>zM<C-O>zx
- an 40.340.130 &Tools.&Folding.C&lose\ more\ folds<Tab>zm zm
- an 40.340.140 &Tools.&Folding.&Close\ all\ folds<Tab>zM zM
- an 40.340.150 &Tools.&Folding.O&pen\ more\ folds<Tab>zr zr
- an 40.340.160 &Tools.&Folding.&Open\ all\ folds<Tab>zR zR
+ an 40.340.120 &Tools.&Folding.Vie&w\ Cursor\ Line\ Only<Tab>zMzx zMzx
+ inoremenu 40.340.120 &Tools.&Folding.Vie&w\ Cursor\ Line\ Only<Tab>zMzx <C-O>zM<C-O>zx
+ an 40.340.130 &Tools.&Folding.C&lose\ More\ Folds<Tab>zm zm
+ an 40.340.140 &Tools.&Folding.&Close\ All\ Folds<Tab>zM zM
+ an 40.340.150 &Tools.&Folding.O&pen\ More\ Folds<Tab>zr zr
+ an 40.340.160 &Tools.&Folding.&Open\ All\ Folds<Tab>zR zR
" fold method
an 40.340.200 &Tools.&Folding.-SEP1- <Nop>
an 40.340.210 &Tools.&Folding.Fold\ Met&hod.M&anual :set fdm=manual<CR>
@@ -490,14 +490,14 @@ if has("folding")
an 40.340.240 &Tools.&Folding.Delete\ &All\ Folds<Tab>zD zD
" moving around in folds
an 40.340.300 &Tools.&Folding.-SEP2- <Nop>
- an 40.340.310.10 &Tools.&Folding.Fold\ col&umn\ width.\ &0\ :set fdc=0<CR>
- an 40.340.310.20 &Tools.&Folding.Fold\ col&umn\ width.\ &2\ :set fdc=2<CR>
- an 40.340.310.30 &Tools.&Folding.Fold\ col&umn\ width.\ &3\ :set fdc=3<CR>
- an 40.340.310.40 &Tools.&Folding.Fold\ col&umn\ width.\ &4\ :set fdc=4<CR>
- an 40.340.310.50 &Tools.&Folding.Fold\ col&umn\ width.\ &5\ :set fdc=5<CR>
- an 40.340.310.60 &Tools.&Folding.Fold\ col&umn\ width.\ &6\ :set fdc=6<CR>
- an 40.340.310.70 &Tools.&Folding.Fold\ col&umn\ width.\ &7\ :set fdc=7<CR>
- an 40.340.310.80 &Tools.&Folding.Fold\ col&umn\ width.\ &8\ :set fdc=8<CR>
+ an 40.340.310.10 &Tools.&Folding.Fold\ Col&umn\ Width.\ &0\ :set fdc=0<CR>
+ an 40.340.310.20 &Tools.&Folding.Fold\ Col&umn\ Width.\ &2\ :set fdc=2<CR>
+ an 40.340.310.30 &Tools.&Folding.Fold\ Col&umn\ Width.\ &3\ :set fdc=3<CR>
+ an 40.340.310.40 &Tools.&Folding.Fold\ Col&umn\ Width.\ &4\ :set fdc=4<CR>
+ an 40.340.310.50 &Tools.&Folding.Fold\ Col&umn\ Width.\ &5\ :set fdc=5<CR>
+ an 40.340.310.60 &Tools.&Folding.Fold\ Col&umn\ Width.\ &6\ :set fdc=6<CR>
+ an 40.340.310.70 &Tools.&Folding.Fold\ Col&umn\ Width.\ &7\ :set fdc=7<CR>
+ an 40.340.310.80 &Tools.&Folding.Fold\ Col&umn\ Width.\ &8\ :set fdc=8<CR>
endif " has folding
if has("diff")
@@ -525,7 +525,7 @@ an 40.430.70 &Tools.Error\ &Window.&Close<Tab>:cclose :cclose<CR>
an 40.520 &Tools.-SEP3- <Nop>
an <silent> 40.530 &Tools.&Convert\ to\ HEX<Tab>:%!xxd
\ :call <SID>XxdConv()<CR>
-an <silent> 40.540 &Tools.Conve&rt\ back<Tab>:%!xxd\ -r
+an <silent> 40.540 &Tools.Conve&rt\ Back<Tab>:%!xxd\ -r
\ :call <SID>XxdBack()<CR>
" Use a function to do the conversion, so that it also works with 'insertmode'
@@ -574,7 +574,7 @@ while strlen(s:n) > 0
endif
" Ignore case for Windows
let s:name = substitute(s:name, '\c.*[/\\:\]]\([^/\\:]*\)\.vim', '\1', '')
- exe "an 30.440." . s:idx . ' &Tools.Se&T\ Compiler.' . s:name . " :compiler " . s:name . "<CR>"
+ exe "an 30.440." . s:idx . ' &Tools.Se&t\ Compiler.' . s:name . " :compiler " . s:name . "<CR>"
unlet s:name
unlet s:i
let s:idx = s:idx + 10
@@ -807,8 +807,8 @@ an 70.345 &Window.Close\ &Other(s)<Tab>^Wo :confirm only<CR>
an 70.350 &Window.-SEP2- <Nop>
an 70.355 &Window.Move\ &To.&Top<Tab>^WK <C-W>K
an 70.355 &Window.Move\ &To.&Bottom<Tab>^WJ <C-W>J
-an 70.355 &Window.Move\ &To.&Left\ side<Tab>^WH <C-W>H
-an 70.355 &Window.Move\ &To.&Right\ side<Tab>^WL <C-W>L
+an 70.355 &Window.Move\ &To.&Left\ Side<Tab>^WH <C-W>H
+an 70.355 &Window.Move\ &To.&Right\ Side<Tab>^WL <C-W>L
an 70.360 &Window.Rotate\ &Up<Tab>^WR <C-W>R
an 70.362 &Window.Rotate\ &Down<Tab>^Wr <C-W>r
an 70.365 &Window.-SEP3- <Nop>
@@ -891,7 +891,7 @@ if has("spell")
let s:suglist = spellsuggest(w, 10)
endif
if len(s:suglist) > 0
- let s:changeitem = 'change\ "' . escape(w, ' .'). '"\ to'
+ let s:changeitem = 'Change\ "' . escape(w, ' .'). '"\ to'
let s:fromword = w
let pri = 1
" set 'cpo' to include the <CR>
@@ -903,10 +903,10 @@ if has("spell")
let pri += 1
endfor
- let s:additem = 'add\ "' . escape(w, ' .') . '"\ to\ word\ list'
+ let s:additem = 'Add\ "' . escape(w, ' .') . '"\ to\ Word\ List'
exe 'anoremenu 1.6 PopUp.' . s:additem . ' :spellgood ' . w . '<CR>'
- let s:ignoreitem = 'ignore\ "' . escape(w, ' .') . '"'
+ let s:ignoreitem = 'Ignore\ "' . escape(w, ' .') . '"'
exe 'anoremenu 1.7 PopUp.' . s:ignoreitem . ' :spellgood! ' . w . '<CR>'
anoremenu 1.8 PopUp.-SpellSep- :
@@ -1045,7 +1045,7 @@ endif " !exists("did_install_default_menus")
if !exists("did_install_syntax_menu")
an 50.212 &Syntax.&Manual :syn manual<CR>
an 50.214 &Syntax.A&utomatic :syn on<CR>
- an <silent> 50.216 &Syntax.on/off\ for\ &This\ file :call <SID>SynOnOff()<CR>
+ an <silent> 50.216 &Syntax.On/Off\ for\ &This\ File :call <SID>SynOnOff()<CR>
if !exists("*s:SynOnOff")
fun s:SynOnOff()
if has("syntax_items")
@@ -1073,14 +1073,14 @@ if (exists("did_load_filetypes") || exists("syntax_on"))
if exists("do_syntax_sel_menu")
runtime! synmenu.vim
else
- an 50.10 &Syntax.&Show\ filetypes\ in\ menu :let do_syntax_sel_menu = 1<Bar>runtime! synmenu.vim<Bar>aunmenu &Syntax.&Show\ filetypes\ in\ menu<CR>
+ an 50.10 &Syntax.&Show\ File\ Types\ in\ Menu :let do_syntax_sel_menu = 1<Bar>runtime! synmenu.vim<Bar>aunmenu &Syntax.&Show\ File\ Types\ in\ Menu<CR>
an 50.195 &Syntax.-SEP1- <Nop>
endif
an 50.210 &Syntax.&Off :syn off<CR>
an 50.700 &Syntax.-SEP3- <Nop>
-an 50.710 &Syntax.Co&lor\ test :sp $VIMRUNTIME/syntax/colortest.vim<Bar>so %<CR>
-an 50.720 &Syntax.&Highlight\ test :runtime syntax/hitest.vim<CR>
+an 50.710 &Syntax.Co&lor\ Test :sp $VIMRUNTIME/syntax/colortest.vim<Bar>so %<CR>
+an 50.720 &Syntax.&Highlight\ Test :runtime syntax/hitest.vim<CR>
an 50.730 &Syntax.&Convert\ to\ HTML :runtime syntax/2html.vim<CR>
endif " !exists("did_install_syntax_menu")
diff --git a/runtime/optwin.vim b/runtime/optwin.vim
index 64726937a0..8f04e495e5 100644
--- a/runtime/optwin.vim
+++ b/runtime/optwin.vim
@@ -1,7 +1,7 @@
" These commands create the option window.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2016 Aug 12
+" Last Change: 2017 Oct 19
" If there already is an option window, jump to that one.
if bufwinnr("option-window") > 0
@@ -506,6 +506,14 @@ if has("cursorbind")
call append("$", "\t(local to window)")
call <SID>BinOptionL("crb")
endif
+if has("terminal")
+ call append("$", "termsize\tsize of a terminal window")
+ call append("$", "\t(local to window)")
+ call <SID>OptionL("tms")
+ call append("$", "termkey\tkey that precedes Vim commands in a terminal window")
+ call append("$", "\t(local to window)")
+ call <SID>OptionL("tk")
+endif
call <SID>Header("multiple tab pages")
@@ -589,8 +597,6 @@ if has("gui")
call append("$", "toolbariconsize\tsize of toolbar icons")
call <SID>OptionG("tbis", &tbis)
endif
- call append("$", "guiheadroom\troom (in pixels) left above/below the window")
- call append("$", " \tset ghr=" . &ghr)
endif
if has("browse")
call append("$", "browsedir\t\"last\", \"buffer\" or \"current\": which directory used for the file browser")
@@ -1148,8 +1154,8 @@ endif
if has("langmap")
call append("$", "langmap\tlist of characters that are translated in Normal mode")
call <SID>OptionG("lmap", &lmap)
- call append("$", "langnoremap\tdon't apply 'langmap' to mapped characters")
- call <SID>BinOptionG("lnr", &lnr)
+ call append("$", "langremap\tapply 'langmap' to mapped characters")
+ call <SID>BinOptionG("lrm", &lrm)
endif
if has("xim")
call append("$", "imdisable\twhen set never use IM; overrules following IM options")
@@ -1274,6 +1280,12 @@ if has("syntax")
hi link optwinComment Comment
endif
endif
+if exists("&mzschemedll")
+ call append("$", "mzschemedll\tname of the Tcl dynamic library")
+ call <SID>OptionG("mzschemedll", &mzschemedll)
+ call append("$", "mzschemegcdll\tname of the Tcl GC dynamic library")
+ call <SID>OptionG("mzschemegcdll", &mzschemegcdll)
+endif
" Install autocommands to enable mappings in option-window
noremap <silent> <buffer> <CR> <C-\><C-N>:call <SID>CR()<CR>
diff --git a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
new file mode 100644
index 0000000000..b002cad4c6
--- /dev/null
+++ b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
@@ -0,0 +1,40 @@
+" Debugger commands.
+"
+" WORK IN PROGRESS - much doesn't work yet
+"
+" Open two terminal windows:
+" 1. run a pty, as with ":term NONE"
+" 2. run gdb, passing the pty
+" The current window is used to edit source code and follows gdb.
+"
+" Author: Bram Moolenaar
+" Copyright: Vim license applies
+
+" In case this gets loaded twice.
+if exists(':Termdebug')
+ finish
+endif
+
+command -nargs=* -complete=file Termdebug call s:StartDebug(<q-args>)
+
+if !exists('debugger')
+ let debugger = 'gdb'
+endif
+
+func s:StartDebug(cmd)
+ " Open a terminal window without a job, to run the debugged program
+ let s:ptybuf = term_start('NONE', {})
+ let pty = job_info(term_getjob(s:ptybuf))['tty']
+
+ " Open a terminal window to run the debugger.
+ let cmd = [g:debugger, '-tty', pty, a:cmd]
+ echomsg 'executing "' . join(cmd) . '"'
+ let gdbbuf = term_start(cmd, {
+ \ 'exit_cb': function('s:EndDebug'),
+ \ 'term_finish': 'close'
+ \ })
+endfunc
+
+func s:EndDebug(job, status)
+ exe 'bwipe! ' . s:ptybuf
+endfunc
diff --git a/runtime/pack/dist/opt/vimball/autoload/vimball.vim b/runtime/pack/dist/opt/vimball/autoload/vimball.vim
index 1af6b19c88..9c7dcbda0f 100644
--- a/runtime/pack/dist/opt/vimball/autoload/vimball.vim
+++ b/runtime/pack/dist/opt/vimball/autoload/vimball.vim
@@ -347,7 +347,7 @@ fun! vimball#Vimball(really,...)
" call Decho("exe tabn ".curtabnr)
exe "tabn ".curtabnr
- " set up help if its a doc/*.txt file
+ " set up help if it's a doc/*.txt file
" call Decho("didhelp<".didhelp."> fname<".fname.">")
if a:really && didhelp == "" && fname =~ 'doc/[^/]\+\.\(txt\|..x\)$'
let didhelp= substitute(fname,'^\(.*\<doc\)[/\\][^.]*\.\(txt\|..x\)$','\1','')
diff --git a/runtime/plugin/gzip.vim b/runtime/plugin/gzip.vim
index edef149537..5e13b92d1e 100644
--- a/runtime/plugin/gzip.vim
+++ b/runtime/plugin/gzip.vim
@@ -1,6 +1,6 @@
" Vim plugin for editing compressed files.
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2010 Mar 10
+" Last Change: 2016 Oct 30
" Exit quickly when:
" - this plugin was already loaded
@@ -20,25 +20,33 @@ augroup gzip
"
" Set binary mode before reading the file.
" Use "gzip -d", gunzip isn't always available.
- autocmd BufReadPre,FileReadPre *.gz,*.bz2,*.Z,*.lzma,*.xz setlocal bin
+ autocmd BufReadPre,FileReadPre *.gz,*.bz2,*.Z,*.lzma,*.xz,*.lz,*.zst setlocal bin
autocmd BufReadPost,FileReadPost *.gz call gzip#read("gzip -dn")
autocmd BufReadPost,FileReadPost *.bz2 call gzip#read("bzip2 -d")
autocmd BufReadPost,FileReadPost *.Z call gzip#read("uncompress")
autocmd BufReadPost,FileReadPost *.lzma call gzip#read("lzma -d")
autocmd BufReadPost,FileReadPost *.xz call gzip#read("xz -d")
+ autocmd BufReadPost,FileReadPost *.lz call gzip#read("lzip -d")
+ autocmd BufReadPost,FileReadPost *.zst call gzip#read("zstd -d --rm")
autocmd BufWritePost,FileWritePost *.gz call gzip#write("gzip")
autocmd BufWritePost,FileWritePost *.bz2 call gzip#write("bzip2")
autocmd BufWritePost,FileWritePost *.Z call gzip#write("compress -f")
autocmd BufWritePost,FileWritePost *.lzma call gzip#write("lzma -z")
autocmd BufWritePost,FileWritePost *.xz call gzip#write("xz -z")
+ autocmd BufWritePost,FileWritePost *.lz call gzip#write("lzip")
+ autocmd BufWritePost,FileWritePost *.zst call gzip#write("zstd --rm")
autocmd FileAppendPre *.gz call gzip#appre("gzip -dn")
autocmd FileAppendPre *.bz2 call gzip#appre("bzip2 -d")
autocmd FileAppendPre *.Z call gzip#appre("uncompress")
autocmd FileAppendPre *.lzma call gzip#appre("lzma -d")
autocmd FileAppendPre *.xz call gzip#appre("xz -d")
+ autocmd FileAppendPre *.lz call gzip#appre("lzip -d")
+ autocmd FileAppendPre *.zst call gzip#appre("zstd -d --rm")
autocmd FileAppendPost *.gz call gzip#write("gzip")
autocmd FileAppendPost *.bz2 call gzip#write("bzip2")
autocmd FileAppendPost *.Z call gzip#write("compress -f")
autocmd FileAppendPost *.lzma call gzip#write("lzma -z")
autocmd FileAppendPost *.xz call gzip#write("xz -z")
+ autocmd FileAppendPost *.lz call gzip#write("lzip")
+ autocmd FileAppendPost *.zst call gzip#write("zstd --rm")
augroup END
diff --git a/runtime/plugin/man.vim b/runtime/plugin/man.vim
index 63faa15213..7bccd4a3b9 100644
--- a/runtime/plugin/man.vim
+++ b/runtime/plugin/man.vim
@@ -5,7 +5,7 @@ if exists('g:loaded_man')
endif
let g:loaded_man = 1
-command! -range=0 -complete=customlist,man#complete -nargs=* Man call man#open_page(v:count, v:count1, <q-mods>, <f-args>)
+command! -bar -range=0 -complete=customlist,man#complete -nargs=* Man call man#open_page(v:count, v:count1, <q-mods>, <f-args>)
augroup man
autocmd!
diff --git a/runtime/plugin/matchit.vim b/runtime/plugin/matchit.vim
index c0f1f08027..e3171e5cbb 100644
--- a/runtime/plugin/matchit.vim
+++ b/runtime/plugin/matchit.vim
@@ -1,8 +1,10 @@
" matchit.vim: (global plugin) Extended "%" matching
-" Last Change: Fri Jul 29 01:20 AM 2016 EST
+" Last Change: 2017 Sep 15
" Maintainer: Benji Fisher PhD <benji@member.AMS.org>
-" Version: 1.13.2, for Vim 6.3+
+" Version: 1.13.3, for Vim 6.3+
" Fix from Tommy Allen included.
+" Fix from Fernando Torres included.
+" Improvement from Ken Takata included.
" URL: http://www.vim.org/script.php?script_id=39
" Documentation:
@@ -44,6 +46,7 @@ endif
let loaded_matchit = 1
let s:last_mps = ""
let s:last_words = ":"
+let s:patBR = ""
let s:save_cpo = &cpo
set cpo&vim
@@ -87,12 +90,15 @@ let s:notslash = '\\\@<!\%(\\\\\)*'
function! s:Match_wrapper(word, forward, mode) range
" In s:CleanUp(), :execute "set" restore_options .
- let restore_options = (&ic ? " " : " no") . "ignorecase"
- if exists("b:match_ignorecase")
+ let restore_options = ""
+ if exists("b:match_ignorecase") && b:match_ignorecase != &ic
+ let restore_options .= (&ic ? " " : " no") . "ignorecase"
let &ignorecase = b:match_ignorecase
endif
- let restore_options = " ve=" . &ve . restore_options
- set ve=
+ if &ve != ''
+ let restore_options = " ve=" . &ve . restore_options
+ set ve=
+ endif
" If this function was called from Visual mode, make sure that the cursor
" is at the correct end of the Visual range:
if a:mode == "v"
@@ -121,8 +127,8 @@ function! s:Match_wrapper(word, forward, mode) range
execute "let match_words =" b:match_words
endif
" Thanks to Preben "Peppe" Guldberg and Bram Moolenaar for this suggestion!
- if (match_words != s:last_words) || (&mps != s:last_mps) ||
- \ exists("b:match_debug")
+ if (match_words != s:last_words) || (&mps != s:last_mps)
+ \ || exists("b:match_debug")
let s:last_mps = &mps
" The next several lines were here before
" BF started messing with this script.
@@ -148,6 +154,10 @@ function! s:Match_wrapper(word, forward, mode) range
if exists("b:match_debug")
let b:match_pat = s:pat
endif
+ " Reconstruct the version with unresolved backrefs.
+ let s:patBR = substitute(match_words.',',
+ \ s:notslash.'\zs[,:]*,[,:]*', ',', 'g')
+ let s:patBR = substitute(s:patBR, s:notslash.'\zs:\{2,}', ':', 'g')
endif
" Second step: set the following local variables:
@@ -192,14 +202,10 @@ function! s:Match_wrapper(word, forward, mode) range
" group = colon-separated list of patterns, one of which matches
" = ini:mid:fin or ini:fin
"
- " Reconstruct the version with unresolved backrefs.
- let patBR = substitute(match_words.',',
- \ s:notslash.'\zs[,:]*,[,:]*', ',', 'g')
- let patBR = substitute(patBR, s:notslash.'\zs:\{2,}', ':', 'g')
" Now, set group and groupBR to the matching group: 'if:endif' or
" 'while:endwhile' or whatever. A bit of a kluge: s:Choose() returns
" group . "," . groupBR, and we pick it apart.
- let group = s:Choose(s:pat, matchline, ",", ":", prefix, suffix, patBR)
+ let group = s:Choose(s:pat, matchline, ",", ":", prefix, suffix, s:patBR)
let i = matchend(group, s:notslash . ",")
let groupBR = strpart(group, i)
let group = strpart(group, 0, i-1)
@@ -280,7 +286,9 @@ endfun
" Restore options and do some special handling for Operator-pending mode.
" The optional argument is the tail of the matching group.
fun! s:CleanUp(options, mode, startline, startcol, ...)
- execute "set" a:options
+ if strlen(a:options)
+ execute "set" a:options
+ endif
" Open folds, if appropriate.
if a:mode != "o"
if &foldopen =~ "percent"
@@ -632,8 +640,9 @@ fun! s:MultiMatch(spflag, mode)
if !exists("b:match_words") || b:match_words == ""
return {}
end
- let restore_options = (&ic ? "" : "no") . "ignorecase"
- if exists("b:match_ignorecase")
+ let restore_options = ""
+ if exists("b:match_ignorecase") && b:match_ignorecase != &ic
+ let restore_options .= (&ic ? " " : " no") . "ignorecase"
let &ignorecase = b:match_ignorecase
endif
let startline = line(".")
@@ -656,6 +665,7 @@ fun! s:MultiMatch(spflag, mode)
\ exists("b:match_debug")
let s:last_words = match_words
let s:last_mps = &mps
+ let match_words = match_words . (strlen(match_words) ? "," : "") . default
if match_words !~ s:notslash . '\\\d'
let s:do_BR = 0
let s:pat = match_words
@@ -663,8 +673,8 @@ fun! s:MultiMatch(spflag, mode)
let s:do_BR = 1
let s:pat = s:ParseWords(match_words)
endif
- let s:all = '\%(' . substitute(s:pat . (strlen(s:pat)?",":"") . default,
- \ '[,:]\+','\\|','g') . '\)'
+ let s:all = '\%(' . substitute(s:pat . (strlen(s:pat) ? "," : "") . default,
+ \ '[,:]\+', '\\|', 'g') . '\)'
if exists("b:match_debug")
let b:match_pat = s:pat
endif
diff --git a/runtime/plugin/matchparen.vim b/runtime/plugin/matchparen.vim
index 5db1f64c78..4f68fd87bc 100644
--- a/runtime/plugin/matchparen.vim
+++ b/runtime/plugin/matchparen.vim
@@ -1,6 +1,6 @@
" Vim plugin for showing matching parens
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2016 Feb 16
+" Last Change: 2017 Sep 30
" Exit quickly when:
" - this plugin was already loaded (or disabled)
@@ -186,9 +186,23 @@ function! s:Highlight_Matching_Pair()
endfunction
" Define commands that will disable and enable the plugin.
-command! NoMatchParen windo silent! call matchdelete(3) | unlet! g:loaded_matchparen |
- \ au! matchparen
-command! DoMatchParen runtime plugin/matchparen.vim | windo doau CursorMoved
+command! DoMatchParen call s:DoMatchParen()
+command! NoMatchParen call s:NoMatchParen()
+
+func! s:NoMatchParen()
+ let w = winnr()
+ noau windo silent! call matchdelete(3)
+ unlet! g:loaded_matchparen
+ exe "noau ". w . "wincmd w"
+ au! matchparen
+endfunc
+
+func! s:DoMatchParen()
+ runtime plugin/matchparen.vim
+ let w = winnr()
+ silent windo doau CursorMoved
+ exe "noau ". w . "wincmd w"
+endfunc
let &cpo = s:cpo_save
unlet s:cpo_save
diff --git a/runtime/plugin/rplugin.vim b/runtime/plugin/rplugin.vim
index 7d83668a30..ca15ec82d1 100644
--- a/runtime/plugin/rplugin.vim
+++ b/runtime/plugin/rplugin.vim
@@ -17,9 +17,11 @@ function! s:GetManifestPath() abort
endif
let dest = fnamemodify(expand(dest), ':p')
- if !empty(dest) && !filereadable(dest)
+ if !empty(dest)
let dest .= ('/' ==# dest[-1:] ? '' : '/') . 'nvim'
- call mkdir(dest, 'p', 0700)
+ if !isdirectory(dest)
+ call mkdir(dest, 'p', 0700)
+ endif
let manifest_base = dest
endif
diff --git a/runtime/plugin/tarPlugin.vim b/runtime/plugin/tarPlugin.vim
index 034cbe225a..6d9e6bd540 100644
--- a/runtime/plugin/tarPlugin.vim
+++ b/runtime/plugin/tarPlugin.vim
@@ -40,6 +40,7 @@ augroup tar
au BufReadCmd *.tar.bz2 call tar#Browse(expand("<amatch>"))
au BufReadCmd *.tar.Z call tar#Browse(expand("<amatch>"))
au BufReadCmd *.tgz call tar#Browse(expand("<amatch>"))
+ au BufReadCmd *.tbz call tar#Browse(expand("<amatch>"))
au BufReadCmd *.tar.lzma call tar#Browse(expand("<amatch>"))
au BufReadCmd *.tar.xz call tar#Browse(expand("<amatch>"))
au BufReadCmd *.txz call tar#Browse(expand("<amatch>"))
diff --git a/runtime/plugin/zipPlugin.vim b/runtime/plugin/zipPlugin.vim
index e9bd0dc4bd..c04d5344b1 100644
--- a/runtime/plugin/zipPlugin.vim
+++ b/runtime/plugin/zipPlugin.vim
@@ -1,9 +1,9 @@
" zipPlugin.vim: Handles browsing zipfiles
" PLUGIN PORTION
-" Date: Jun 07, 2013
+" Date: Sep 13, 2016
" Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
" License: Vim License (see vim's :help license)
-" Copyright: Copyright (C) 2005-2013 Charles E. Campbell {{{1
+" Copyright: Copyright (C) 2005-2016 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free,
@@ -20,14 +20,14 @@
if &cp || exists("g:loaded_zipPlugin")
finish
endif
-let g:loaded_zipPlugin = "v27"
+let g:loaded_zipPlugin = "v28"
let s:keepcpo = &cpo
set cpo&vim
" ---------------------------------------------------------------------
" Options: {{{1
if !exists("g:zipPlugin_ext")
- let g:zipPlugin_ext= '*.zip,*.jar,*.xpi,*.ja,*.war,*.ear,*.celzip,*.oxt,*.kmz,*.wsz,*.xap,*.docx,*.docm,*.dotx,*.dotm,*.potx,*.potm,*.ppsx,*.ppsm,*.pptx,*.pptm,*.ppam,*.sldx,*.thmx,*.xlam,*.xlsx,*.xlsm,*.xlsb,*.xltx,*.xltm,*.xlam,*.crtx,*.vdw,*.glox,*.gcsx,*.gqsx'
+ let g:zipPlugin_ext='*.apk,*.celzip,*.crtx,*.docm,*.docx,*.dotm,*.dotx,*.ear,*.epub,*.gcsx,*.glox,*.gqsx,*.ja,*.jar,*.kmz,*.oxt,*.potm,*.potx,*.ppam,*.ppsm,*.ppsx,*.pptm,*.pptx,*.sldx,*.thmx,*.vdw,*.war,*.wsz,*.xap,*.xlam,*.xlam,*.xlsb,*.xlsm,*.xlsx,*.xltm,*.xltx,*.xpi,*.zip'
endif
" ---------------------------------------------------------------------
diff --git a/runtime/scripts.vim b/runtime/scripts.vim
index c2f6d5cff1..63bf9efcf9 100644
--- a/runtime/scripts.vim
+++ b/runtime/scripts.vim
@@ -1,7 +1,7 @@
" Vim support file to detect file types in scripts
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last change: 2016 May 21
+" Last change: 2017 Aug 27
" This file is called by an autocommand for every file that has just been
" loaded into a buffer. It checks if the type of file can be recognized by
@@ -124,6 +124,10 @@ if s:line1 =~ "^#!"
elseif s:name =~ 'ruby'
set ft=ruby
+ " JavaScript
+ elseif s:name =~ 'node\(js\)\=\>' || s:name =~ 'rhino\>'
+ set ft=javascript
+
" BC calculator
elseif s:name =~ '^bc\>'
set ft=bc
@@ -156,6 +160,14 @@ if s:line1 =~ "^#!"
elseif s:name =~ 'escript'
set ft=erlang
+ " Haskell
+ elseif s:name =~ 'haskell'
+ set ft=haskell
+
+ " Scala
+ elseif s:name =~ 'scala\>'
+ set ft=scala
+
endif
unlet s:name
@@ -285,7 +297,7 @@ else
set ft=virata
" Strace
- elseif s:line1 =~ '^\(\[pid \d\+\] \)\=[0-9:.]* *execve(' || s:line1 =~ '^__libc_start_main'
+ elseif s:line1 =~# '[0-9:.]* *execve(' || s:line1 =~# '^__libc_start_main'
set ft=strace
" VSE JCL
@@ -303,7 +315,7 @@ else
set ft=sindacmp
" DNS zone files
- elseif s:line1.s:line2.s:line3.s:line4 =~ '^; <<>> DiG [0-9.]\+ <<>>\|BIND.*named\|$ORIGIN\|$TTL\|IN\s\+SOA'
+ elseif s:line1.s:line2.s:line3.s:line4 =~# '^; <<>> DiG [0-9.]\+.* <<>>\|$ORIGIN\|$TTL\|IN\s\+SOA'
set ft=bindzone
" BAAN
diff --git a/runtime/synmenu.vim b/runtime/synmenu.vim
index 01dad3c7f2..6814c60e88 100644
--- a/runtime/synmenu.vim
+++ b/runtime/synmenu.vim
@@ -2,7 +2,7 @@
" This file is normally sourced from menu.vim.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2014 Aug 13
+" Last Change: 2017 Oct 28
" Define the SetSyn function, used for the Syntax menu entries.
" Set 'filetype' and also 'syntax' if it is manually selected.
@@ -61,7 +61,6 @@ an 50.10.320 &Syntax.AB.Ascii\ Doc :cal SetSyn("asciidoc")<CR>
an 50.10.330 &Syntax.AB.ASP\ with\ VBScript :cal SetSyn("aspvbs")<CR>
an 50.10.340 &Syntax.AB.ASP\ with\ Perl :cal SetSyn("aspperl")<CR>
an 50.10.350 &Syntax.AB.Assembly.680x0 :cal SetSyn("asm68k")<CR>
-an 50.10.355 &Syntax.AB.Assembly.AVR :cal SetSyn("avra")<CR>
an 50.10.360 &Syntax.AB.Assembly.Flat :cal SetSyn("fasm")<CR>
an 50.10.370 &Syntax.AB.Assembly.GNU :cal SetSyn("asm")<CR>
an 50.10.380 &Syntax.AB.Assembly.GNU\ H-8300 :cal SetSyn("asmh8300")<CR>
@@ -162,31 +161,31 @@ an 50.30.290 &Syntax.DE.Doxygen.C\ with\ doxygen :cal SetSyn("c.doxygen")<CR>
an 50.30.300 &Syntax.DE.Doxygen.C++\ with\ doxygen :cal SetSyn("cpp.doxygen")<CR>
an 50.30.310 &Syntax.DE.Doxygen.IDL\ with\ doxygen :cal SetSyn("idl.doxygen")<CR>
an 50.30.320 &Syntax.DE.Doxygen.Java\ with\ doxygen :cal SetSyn("java.doxygen")<CR>
-an 50.30.320 &Syntax.DE.Doxygen.DataScript\ with\ doxygen :cal SetSyn("datascript.doxygen")<CR>
-an 50.30.330 &Syntax.DE.Dracula :cal SetSyn("dracula")<CR>
-an 50.30.340 &Syntax.DE.DSSSL :cal SetSyn("dsl")<CR>
-an 50.30.350 &Syntax.DE.DTD :cal SetSyn("dtd")<CR>
-an 50.30.360 &Syntax.DE.DTML\ (Zope) :cal SetSyn("dtml")<CR>
-an 50.30.370 &Syntax.DE.DTrace :cal SetSyn("dtrace")<CR>
-an 50.30.380 &Syntax.DE.Dts/dtsi :cal SetSyn("dts")<CR>
-an 50.30.390 &Syntax.DE.Dylan.Dylan :cal SetSyn("dylan")<CR>
-an 50.30.400 &Syntax.DE.Dylan.Dylan\ interface :cal SetSyn("dylanintr")<CR>
-an 50.30.410 &Syntax.DE.Dylan.Dylan\ lid :cal SetSyn("dylanlid")<CR>
-an 50.30.430 &Syntax.DE.EDIF :cal SetSyn("edif")<CR>
-an 50.30.440 &Syntax.DE.Eiffel :cal SetSyn("eiffel")<CR>
-an 50.30.450 &Syntax.DE.Elinks\ config :cal SetSyn("elinks")<CR>
-an 50.30.460 &Syntax.DE.Elm\ filter\ rules :cal SetSyn("elmfilt")<CR>
-an 50.30.470 &Syntax.DE.Embedix\ Component\ Description :cal SetSyn("ecd")<CR>
-an 50.30.480 &Syntax.DE.ERicsson\ LANGuage :cal SetSyn("erlang")<CR>
-an 50.30.490 &Syntax.DE.ESMTP\ rc :cal SetSyn("esmtprc")<CR>
-an 50.30.500 &Syntax.DE.ESQL-C :cal SetSyn("esqlc")<CR>
-an 50.30.510 &Syntax.DE.Essbase\ script :cal SetSyn("csc")<CR>
-an 50.30.520 &Syntax.DE.Esterel :cal SetSyn("esterel")<CR>
-an 50.30.530 &Syntax.DE.Eterm\ config :cal SetSyn("eterm")<CR>
-an 50.30.540 &Syntax.DE.Eviews :cal SetSyn("eviews")<CR>
-an 50.30.550 &Syntax.DE.Exim\ conf :cal SetSyn("exim")<CR>
-an 50.30.560 &Syntax.DE.Expect :cal SetSyn("expect")<CR>
-an 50.30.570 &Syntax.DE.Exports :cal SetSyn("exports")<CR>
+an 50.30.330 &Syntax.DE.Doxygen.DataScript\ with\ doxygen :cal SetSyn("datascript.doxygen")<CR>
+an 50.30.340 &Syntax.DE.Dracula :cal SetSyn("dracula")<CR>
+an 50.30.350 &Syntax.DE.DSSSL :cal SetSyn("dsl")<CR>
+an 50.30.360 &Syntax.DE.DTD :cal SetSyn("dtd")<CR>
+an 50.30.370 &Syntax.DE.DTML\ (Zope) :cal SetSyn("dtml")<CR>
+an 50.30.380 &Syntax.DE.DTrace :cal SetSyn("dtrace")<CR>
+an 50.30.390 &Syntax.DE.Dts/dtsi :cal SetSyn("dts")<CR>
+an 50.30.400 &Syntax.DE.Dylan.Dylan :cal SetSyn("dylan")<CR>
+an 50.30.410 &Syntax.DE.Dylan.Dylan\ interface :cal SetSyn("dylanintr")<CR>
+an 50.30.420 &Syntax.DE.Dylan.Dylan\ lid :cal SetSyn("dylanlid")<CR>
+an 50.30.440 &Syntax.DE.EDIF :cal SetSyn("edif")<CR>
+an 50.30.450 &Syntax.DE.Eiffel :cal SetSyn("eiffel")<CR>
+an 50.30.460 &Syntax.DE.Elinks\ config :cal SetSyn("elinks")<CR>
+an 50.30.470 &Syntax.DE.Elm\ filter\ rules :cal SetSyn("elmfilt")<CR>
+an 50.30.480 &Syntax.DE.Embedix\ Component\ Description :cal SetSyn("ecd")<CR>
+an 50.30.490 &Syntax.DE.ERicsson\ LANGuage :cal SetSyn("erlang")<CR>
+an 50.30.500 &Syntax.DE.ESMTP\ rc :cal SetSyn("esmtprc")<CR>
+an 50.30.510 &Syntax.DE.ESQL-C :cal SetSyn("esqlc")<CR>
+an 50.30.520 &Syntax.DE.Essbase\ script :cal SetSyn("csc")<CR>
+an 50.30.530 &Syntax.DE.Esterel :cal SetSyn("esterel")<CR>
+an 50.30.540 &Syntax.DE.Eterm\ config :cal SetSyn("eterm")<CR>
+an 50.30.550 &Syntax.DE.Eviews :cal SetSyn("eviews")<CR>
+an 50.30.560 &Syntax.DE.Exim\ conf :cal SetSyn("exim")<CR>
+an 50.30.570 &Syntax.DE.Expect :cal SetSyn("expect")<CR>
+an 50.30.580 &Syntax.DE.Exports :cal SetSyn("exports")<CR>
an 50.40.100 &Syntax.FG.Falcon :cal SetSyn("falcon")<CR>
an 50.40.110 &Syntax.FG.Fantom :cal SetSyn("fan")<CR>
an 50.40.120 &Syntax.FG.Fetchmail :cal SetSyn("fetchmail")<CR>
@@ -328,7 +327,6 @@ an 50.70.270 &Syntax.M.Messages\ (/var/log) :cal SetSyn("messages")<CR>
an 50.70.280 &Syntax.M.Metafont :cal SetSyn("mf")<CR>
an 50.70.290 &Syntax.M.MetaPost :cal SetSyn("mp")<CR>
an 50.70.300 &Syntax.M.MGL :cal SetSyn("mgl")<CR>
-an 50.70.305 &Syntax.M.MIX :cal SetSyn("mix")<CR>
an 50.70.310 &Syntax.M.MMIX :cal SetSyn("mmix")<CR>
an 50.70.320 &Syntax.M.Modconf :cal SetSyn("modconf")<CR>
an 50.70.330 &Syntax.M.Model :cal SetSyn("model")<CR>
@@ -353,12 +351,13 @@ an 50.70.510 &Syntax.M.Muttrc :cal SetSyn("muttrc")<CR>
an 50.80.100 &Syntax.NO.Nanorc :cal SetSyn("nanorc")<CR>
an 50.80.110 &Syntax.NO.Nastran\ input/DMAP :cal SetSyn("nastran")<CR>
an 50.80.120 &Syntax.NO.Natural :cal SetSyn("natural")<CR>
-an 50.80.130 &Syntax.NO.Netrc :cal SetSyn("netrc")<CR>
-an 50.80.140 &Syntax.NO.Ninja :cal SetSyn("ninja")<CR>
-an 50.80.150 &Syntax.NO.Novell\ NCF\ batch :cal SetSyn("ncf")<CR>
-an 50.80.160 &Syntax.NO.Not\ Quite\ C\ (LEGO) :cal SetSyn("nqc")<CR>
-an 50.80.170 &Syntax.NO.Nroff :cal SetSyn("nroff")<CR>
-an 50.80.180 &Syntax.NO.NSIS\ script :cal SetSyn("nsis")<CR>
+an 50.80.130 &Syntax.NO.Neomuttrc :cal SetSyn("neomuttrc")<CR>
+an 50.80.140 &Syntax.NO.Netrc :cal SetSyn("netrc")<CR>
+an 50.80.150 &Syntax.NO.Ninja :cal SetSyn("ninja")<CR>
+an 50.80.160 &Syntax.NO.Novell\ NCF\ batch :cal SetSyn("ncf")<CR>
+an 50.80.170 &Syntax.NO.Not\ Quite\ C\ (LEGO) :cal SetSyn("nqc")<CR>
+an 50.80.180 &Syntax.NO.Nroff :cal SetSyn("nroff")<CR>
+an 50.80.190 &Syntax.NO.NSIS\ script :cal SetSyn("nsis")<CR>
an 50.80.200 &Syntax.NO.Obj\ 3D\ wavefront :cal SetSyn("obj")<CR>
an 50.80.210 &Syntax.NO.Objective\ C :cal SetSyn("objc")<CR>
an 50.80.220 &Syntax.NO.Objective\ C++ :cal SetSyn("objcpp")<CR>
@@ -606,11 +605,11 @@ an 50.150.430 &Syntax.WXYZ.Zimbu :cal SetSyn("zimbu")<CR>
an 50.195 &Syntax.-SEP1- <Nop>
-an <silent> 50.200 &Syntax.Set\ '&syntax'\ only :call <SID>Setsynonly()<CR>
+an <silent> 50.200 &Syntax.Set\ '&syntax'\ Only :call <SID>Setsynonly()<CR>
fun! s:Setsynonly()
let s:syntax_menu_synonly = 1
endfun
-an <silent> 50.202 &Syntax.Set\ '&filetype'\ too :call <SID>Nosynonly()<CR>
+an <silent> 50.202 &Syntax.Set\ '&filetype'\ Too :call <SID>Nosynonly()<CR>
fun! s:Nosynonly()
if exists("s:syntax_menu_synonly")
unlet s:syntax_menu_synonly
diff --git a/runtime/syntax/a2ps.vim b/runtime/syntax/a2ps.vim
index 2a87d62f90..afe3af1eed 100644
--- a/runtime/syntax/a2ps.vim
+++ b/runtime/syntax/a2ps.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: a2ps(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: a2ps(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/a65.vim b/runtime/syntax/a65.vim
index 94198e6a42..b232e826cd 100644
--- a/runtime/syntax/a65.vim
+++ b/runtime/syntax/a65.vim
@@ -1,13 +1,10 @@
" Vim syntax file
" Language: xa 6502 cross assembler
" Maintainer: Clemens Kirchgatterer <clemens@1541.org>
-" Last Change: 2014 Jan 05
+" Last Change: 2016 Aug 31
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -138,29 +135,19 @@ syn match a65End excludenl /end$/ contained
syn match a65Continue "\\$" contained
" 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_a65_syntax_inits")
- if version < 508
- let did_a65_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink a65Section Special
- HiLink a65Address Special
- HiLink a65Comment Comment
- HiLink a65PreProc PreProc
- HiLink a65Number Number
- HiLink a65String String
- HiLink a65Type Statement
- HiLink a65Opcode Type
- HiLink a65PC Error
- HiLink a65Todo Todo
- HiLink a65HiLo Number
-
- delcommand HiLink
-endif
+" 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/abap.vim b/runtime/syntax/abap.vim
index 1d1f6afd0d..c2857a5f30 100644
--- a/runtime/syntax/abap.vim
+++ b/runtime/syntax/abap.vim
@@ -5,11 +5,8 @@
" Last Change: 2013 Jun 13
" Comment: Thanks to EPI-USE Labs for all your assistance. :)
-" For version < 6.0: Clear all syntax items
-" For version >= 6.0: Quit when a syntax file was already loaded
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -43,11 +40,7 @@ syn match abapStringEscape contained "``"
syn match abapNumber "\-\=\<\d\+\>"
syn region abapHex matchgroup=abapHex start="X'" end="'"
-if version >= 600
- setlocal iskeyword=48-57,_,A-Z,a-z,/
-else
- set iskeyword=48-57,_,A-Z,a-z,/
-endif
+setlocal iskeyword=48-57,_,A-Z,a-z,/
syn match abapNamespace "\</\w\+/"
@@ -175,38 +168,28 @@ syn keyword abapTodo contained TODO NOTE
syn match abapTodo "\#EC\W\+\w\+"
" 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_abap_syntax_inits")
- if version < 508
- let did_abap_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink abapError Error
- HiLink abapComment Comment
- HiLink abapInclude Include
- HiLink abapStatement Statement
- HiLink abapComplexStatement Statement
- HiLink abapSpecial Special
- HiLink abapNamespace Special
- HiLink abapSpecialTables Special
- HiLink abapSymbolOperator abapOperator
- HiLink abapOperator Operator
- HiLink abapCharString String
- HiLink abapString String
- HiLink abapFloat Float
- HiLink abapTypes Type
- HiLink abapSymbol Structure
- HiLink abapStructure Structure
- HiLink abapField Variable
- HiLink abapNumber Number
- HiLink abapHex Number
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/abaqus.vim b/runtime/syntax/abaqus.vim
index cf4b0828fa..db2717f818 100644
--- a/runtime/syntax/abaqus.vim
+++ b/runtime/syntax/abaqus.vim
@@ -4,11 +4,8 @@
" Last Change: 2002 Feb 24
" Remark: Huge improvement in folding performance--see filetype plugin
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -25,24 +22,14 @@ syn match abaqusValue "=\s*[^,]*"lc=1 contained display
syn match abaqusBadLine "^\s\+\*.*" display
" 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_abaqus_syn_inits")
- if version < 508
- let did_abaqus_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " The default methods for highlighting. Can be overridden later
- HiLink abaqusComment Comment
- HiLink abaqusKeyword Statement
- HiLink abaqusParameter Identifier
- HiLink abaqusValue Constant
- HiLink abaqusBadLine Error
-
- delcommand HiLink
-endif
+" 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
index 3dc098e730..1a7b3bf4be 100644
--- a/runtime/syntax/abc.vim
+++ b/runtime/syntax/abc.vim
@@ -4,11 +4,8 @@
" URL: http://perun.hscs.wmin.ac.uk/~jra/vim/syntax/abc.vim
" Last Change: 27th April 2001
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -36,28 +33,18 @@ syn match abcComment "%.*$"
" 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_abc_syn_inits")
- if version < 508
- let did_abc_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" 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
- HiLink abcComment Comment
- HiLink abcHeadField Type
- HiLink abcBodyField Special
- HiLink abcBar Statement
- HiLink abcTuple Statement
- HiLink abcBroken Statement
- HiLink abcTie Statement
- HiLink abcGuitarChord Identifier
- HiLink abcNote Constant
-
- delcommand HiLink
-endif
let b:current_syntax = "abc"
diff --git a/runtime/syntax/abel.vim b/runtime/syntax/abel.vim
index 05e8dac913..67d7e4f786 100644
--- a/runtime/syntax/abel.vim
+++ b/runtime/syntax/abel.vim
@@ -3,11 +3,8 @@
" Maintainer: John Cook <johncook3@gmail.com>
" Last Change: 2011 Dec 27
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -123,48 +120,38 @@ endif
syn sync minlines=1
" 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_abel_syn_inits")
- if version < 508
- let did_abel_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " The default highlighting.
- HiLink abelHeader abelStatement
- HiLink abelSection abelStatement
- HiLink abelDeclaration abelStatement
- HiLink abelLogicalOperator abelOperator
- HiLink abelRangeOperator abelOperator
- HiLink abelAlternateOperator abelOperator
- HiLink abelArithmeticOperator abelOperator
- HiLink abelRelationalOperator abelOperator
- HiLink abelAssignmentOperator abelOperator
- HiLink abelTruthTableOperator abelOperator
- HiLink abelSpecifier abelStatement
- HiLink abelOperator abelStatement
- HiLink abelStatement Statement
- HiLink abelIdentifier Identifier
- HiLink abelTypeId abelType
- HiLink abelTypeIdChar abelType
- HiLink abelType Type
- HiLink abelNumber abelString
- HiLink abelString String
- HiLink abelConstant Constant
- HiLink abelComment Comment
- HiLink abelExtension abelSpecial
- HiLink abelSpecialChar abelSpecial
- HiLink abelTypeIdEnd abelSpecial
- HiLink abelSpecial Special
- HiLink abelDirective PreProc
- HiLink abelTodo Todo
- HiLink abelError Error
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/acedb.vim b/runtime/syntax/acedb.vim
index 114e4aba9e..2c2cd701b7 100644
--- a/runtime/syntax/acedb.vim
+++ b/runtime/syntax/acedb.vim
@@ -7,11 +7,8 @@
" Syntax file to handle all $ACEDB/wspec/*.wrm files, primarily models.wrm
" AceDB software is available from http://www.acedb.org
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -86,35 +83,25 @@ syn region acedbString start=/"/ end=/"/ skip=/\\"/ oneline
" Rest of syntax highlighting rules start here
" 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_acedb_syn_inits")
- if version < 508
- let did_acedb_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink acedbMagic Special
- HiLink acedbHyb Special
- HiLink acedbType Type
- HiLink acedbOption Type
- HiLink acedbSubclass Type
- HiLink acedbSubtag Include
- HiLink acedbFlag Include
- HiLink acedbTag Include
- HiLink acedbClass Todo
- HiLink acedbHelp Todo
- HiLink acedbXref Identifier
- HiLink acedbModifier Label
- HiLink acedbComment Comment
- HiLink acedbBlock ModeMsg
- HiLink acedbNumber Number
- HiLink acedbString String
+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
- delcommand HiLink
-endif
let b:current_syntax = "acedb"
diff --git a/runtime/syntax/aflex.vim b/runtime/syntax/aflex.vim
index 592c98e4f3..aa8b5f84fe 100644
--- a/runtime/syntax/aflex.vim
+++ b/runtime/syntax/aflex.vim
@@ -7,21 +7,14 @@
" Comment: Replaced sourcing c.vim file by ada.vim and rename lex*
" in aflex*
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
" Read the Ada syntax to start with
-if version < 600
- so <sfile>:p:h/ada.vim
-else
- runtime! syntax/ada.vim
- unlet b:current_syntax
-endif
+runtime! syntax/ada.vim
+unlet b:current_syntax
" --- AfLex stuff ---
@@ -69,31 +62,20 @@ syn sync match aflexSyncPat groupthere aflexPatBlock "^<$"
syn sync match aflexSyncPat groupthere aflexPatBlock "^%%$"
" 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_aflex_syntax_inits")
- if version < 508
- let did_aflex_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink aflexSlashQuote aflexPat
- HiLink aflexBrace aflexPat
- HiLink aflexAbbrvComment aflexPatComment
-
- HiLink aflexAbbrv SpecialChar
- HiLink aflexAbbrvRegExp Macro
- HiLink aflexCFunctions Function
- HiLink aflexMorePat SpecialChar
- HiLink aflexPat Function
- HiLink aflexPatComment Comment
- HiLink aflexPatString Function
- HiLink aflexPatTag Special
- HiLink aflexSep Delimiter
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/ahdl.vim b/runtime/syntax/ahdl.vim
index b1417c374d..664bd3837d 100644
--- a/runtime/syntax/ahdl.vim
+++ b/runtime/syntax/ahdl.vim
@@ -3,11 +3,8 @@
" Maintainer: John Cook <john.cook@kla-tencor.com>
" Last Change: 2001 Apr 25
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -66,29 +63,19 @@ syn match ahdlSpecialChar "[\[\]().,;]"
syn sync minlines=1
" 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_ahdl_syn_inits")
- if version < 508
- let did_ahdl_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " The default highlighting.
- HiLink ahdlNumber ahdlString
- HiLink ahdlMegafunction ahdlIdentifier
- HiLink ahdlSpecialChar SpecialChar
- HiLink ahdlKeyword Statement
- HiLink ahdlString String
- HiLink ahdlComment Comment
- HiLink ahdlIdentifier Identifier
- HiLink ahdlOperator Operator
- HiLink ahdlTodo Todo
-
- delcommand HiLink
-endif
+" 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/alsaconf.vim b/runtime/syntax/alsaconf.vim
index 8fd51f0ac4..143fcc0a2e 100644
--- a/runtime/syntax/alsaconf.vim
+++ b/runtime/syntax/alsaconf.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: alsaconf(8) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: alsaconf(8) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/amiga.vim b/runtime/syntax/amiga.vim
index 4ccab1950f..eab9f66169 100644
--- a/runtime/syntax/amiga.vim
+++ b/runtime/syntax/amiga.vim
@@ -1,15 +1,12 @@
" Vim syntax file
" Language: AmigaDos
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change: Oct 23, 2014
-" Version: 7
+" Last Change: Aug 31, 2016
+" Version: 9
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_AMIGA
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -72,30 +69,20 @@ syn match amiComment ";.*$" contains=amiCommentGroup
syn sync lines=50
" 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_amiga_syn_inits")
- if version < 508
- let did_amiga_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink amiAlias Type
- HiLink amiComment Comment
- HiLink amiDev Type
- HiLink amiEcho String
- HiLink amiElse Statement
- HiLink amiError Error
- HiLink amiKey Statement
- HiLink amiNumber Number
- HiLink amiString String
- HiLink amiTest Special
-
- delcommand HiLink
-endif
+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
index 7cb16f1c1f..46621edbe9 100644
--- a/runtime/syntax/aml.vim
+++ b/runtime/syntax/aml.vim
@@ -9,11 +9,8 @@
" of [], in order to avoid -read highlighted,
" or [quote] strings highlighted
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -123,35 +120,25 @@ syn region amlSkip matchgroup=amlOutput start="&typ" end="$" contains=amlVar
syn region amlSkip matchgroup=amlOutput start="&type" end="$" contains=amlVar
" 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_aml_syntax_inits")
- if version < 508
- let did_aml_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink amlComment Comment
- HiLink amlNumber Number
- HiLink amlQuote String
- HiLink amlVar Identifier
- HiLink amlVar2 Identifier
- HiLink amlFunction PreProc
- HiLink amlDir Statement
- HiLink amlDir2 Statement
- HiLink amlDirSym Statement
- HiLink amlOutput Statement
- HiLink amlArcCmd ModeMsg
- HiLink amlFormedCmd amlArcCmd
- HiLink amlTabCmd amlArcCmd
- HiLink amlInfoCmd amlArcCmd
- HiLink amlVtrCmd amlArcCmd
- HiLink amlFormed amlArcCmd
- HiLink amlTab amlArcCmd
-
- delcommand HiLink
-endif
+" 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
index 7f4dfa9942..ad78f7d729 100644
--- a/runtime/syntax/ampl.vim
+++ b/runtime/syntax/ampl.vim
@@ -3,9 +3,8 @@
" Last Change: 2003 May 11
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -115,33 +114,24 @@ syn keyword amplTodo contained TODO FIXME XXX
-if version >= 508 || !exists("did_ampl_syntax_inits")
- if version < 508
- let did_ampl_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- " The default methods for highlighting. Can be overridden later.
- HiLink amplEntityKeyword Keyword
- HiLink amplType Type
- HiLink amplStatement Statement
- HiLink amplOperators Operator
- HiLink amplBasicOperators Operator
- HiLink amplConditional Conditional
- HiLink amplRepeat Repeat
- HiLink amplStrings String
- HiLink amplNumerics Number
- HiLink amplSetFunction Function
- HiLink amplBuiltInFunction Function
- HiLink amplRandomGenerator Function
- HiLink amplComment Comment
- HiLink amplDotSuffix Special
- HiLink amplPiecewise Special
+" 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
- delcommand HiLink
-endif
let b:current_syntax = "ampl"
diff --git a/runtime/syntax/antlr.vim b/runtime/syntax/antlr.vim
index 19000293fb..9b0b061ae1 100644
--- a/runtime/syntax/antlr.vim
+++ b/runtime/syntax/antlr.vim
@@ -4,11 +4,8 @@
" LastChange: 02 May 2001
" Original: Comes from JavaCC.vim
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -18,12 +15,8 @@ endif
" Those files usually have the extension *.jj
" source the java.vim file
-if version < 600
- so <sfile>:p:h/java.vim
-else
- runtime! syntax/java.vim
- unlet b:current_syntax
-endif
+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)
@@ -53,17 +46,8 @@ syn match antlrSep "[|:]\|\.\."
syn keyword antlrActionToken TOKEN SKIP MORE SPECIAL_TOKEN
syn keyword antlrError DEBUG IGNORE_IN_BNF
-if version >= 508 || !exists("did_antlr_syntax_inits")
- if version < 508
- let did_antlr_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink antlrSep Statement
- HiLink antlrPackages Statement
- delcommand HiLink
-endif
+hi def link antlrSep Statement
+hi def link antlrPackages Statement
let b:current_syntax = "antlr"
diff --git a/runtime/syntax/apache.vim b/runtime/syntax/apache.vim
index 85cda4095a..e2315db0d7 100644
--- a/runtime/syntax/apache.vim
+++ b/runtime/syntax/apache.vim
@@ -9,13 +9,9 @@
" make it really linewise?
" + add `display' where appropriate
-" Setup
-if version >= 600
- if exists("b:current_syntax")
- finish
- endif
-else
- syntax clear
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
+ finish
endif
syn case ignore
@@ -178,37 +174,28 @@ syn match apacheSection "<\/\=\(<IfVersion\)[^>]*>" contains=apacheAnything
syn keyword apacheDeclaration VirtualDocumentRoot VirtualDocumentRootIP VirtualScriptAlias VirtualScriptAliasIP
" Define the default highlighting
-if version >= 508 || !exists("did_apache_syntax_inits")
- if version < 508
- let did_apache_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink apacheAllowOverride apacheDeclaration
- HiLink apacheAllowOverrideValue apacheOption
- HiLink apacheAuthType apacheDeclaration
- HiLink apacheAuthTypeValue apacheOption
- HiLink apacheOptionOption apacheOption
- HiLink apacheDeclaration Function
- HiLink apacheAnything apacheOption
- HiLink apacheOption Number
- HiLink apacheComment Comment
- HiLink apacheFixme Todo
- HiLink apacheLimitSectionKeyword apacheLimitSection
- HiLink apacheLimitSection apacheSection
- HiLink apacheSection Label
- HiLink apacheMethodOption Type
- HiLink apacheAllowDeny Include
- HiLink apacheAllowDenyValue Identifier
- HiLink apacheOrder Special
- HiLink apacheOrderValue String
- HiLink apacheString String
- HiLink apacheError Error
- HiLink apacheUserID Number
+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
- delcommand HiLink
-endif
let b:current_syntax = "apache"
diff --git a/runtime/syntax/apachestyle.vim b/runtime/syntax/apachestyle.vim
index 375fc70a9c..3695a11421 100644
--- a/runtime/syntax/apachestyle.vim
+++ b/runtime/syntax/apachestyle.vim
@@ -20,11 +20,8 @@
" </SubSection>
" </Section>
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -41,25 +38,15 @@ syn match apTagOption contained / [-\/_\.:*a-zA-Z0-9]\+/ms=s+1
syn match apTagError contained /[^>]</ms=s+1
" 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_apachestyle_syn_inits")
- if version < 508
- let did_apachestyle_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink apComment Comment
- HiLink apOption Keyword
- "HiLink apLastValue Identifier ugly?
- HiLink apTag Special
- HiLink apTagOption Identifier
- HiLink apTagError Error
+hi def link apComment Comment
+hi def link apOption Keyword
+"hi def link apLastValue Identifier ugly?
+hi def link apTag Special
+hi def link apTagOption Identifier
+hi def link apTagError Error
- delcommand HiLink
-endif
let b:current_syntax = "apachestyle"
" vim: ts=8
diff --git a/runtime/syntax/aptconf.vim b/runtime/syntax/aptconf.vim
index 7a31b2d15e..8cb14321e2 100644
--- a/runtime/syntax/aptconf.vim
+++ b/runtime/syntax/aptconf.vim
@@ -3,12 +3,9 @@
" Maintainer: Yann Amar <quidame@poivron.org>
" Last Change: 2015 Dec 22
-" For version 5.x: Clear all syntax items
-" For version 6.x and 7.x: Quit when a syntax file was already loaded
+" quit when a syntax file was already loaded
if !exists("main_syntax")
- if version < 600
- syntax clear
- elseif exists("b:current_syntax")
+ if exists("b:current_syntax")
finish
endif
let main_syntax = 'aptconf'
diff --git a/runtime/syntax/arch.vim b/runtime/syntax/arch.vim
index fa9c3f02c3..f9d095e443 100644
--- a/runtime/syntax/arch.vim
+++ b/runtime/syntax/arch.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: GNU Arch inventory file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2007-06-17
+" Language: GNU Arch inventory file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2007-06-17
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/arduino.vim b/runtime/syntax/arduino.vim
index 14299a441a..4a4ef82072 100644
--- a/runtime/syntax/arduino.vim
+++ b/runtime/syntax/arduino.vim
@@ -10,20 +10,13 @@
" Thanks to Rik, Erik Nomitch, Adam Obeng and Graeme Cross 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
" Read the C syntax to start with
-if version < 600
- so <sfile>:p:h/cpp.vim
-else
- runtime! syntax/cpp.vim
-endif
+runtime! syntax/cpp.vim
syn keyword arduinoConstant HIGH LOW INPUT OUTPUT
syn keyword arduinoConstant DEC BIN HEX OCT BYTE
diff --git a/runtime/syntax/asm.vim b/runtime/syntax/asm.vim
index e5f16c5bdc..492e3e8e92 100644
--- a/runtime/syntax/asm.vim
+++ b/runtime/syntax/asm.vim
@@ -7,11 +7,8 @@
" Thanks to Ori Avtalion for feedback on the comment markers!
-" For version 5.x: Clear all syntax items
-" For version 6.0 and later: Quit when a syntax file was already loaded
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -103,37 +100,27 @@ syn match asmDirective "\.[A-Za-z][0-9A-Za-z-_]*"
syn case match
" 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_asm_syntax_inits")
- if version < 508
- let did_asm_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " The default methods for highlighting. Can be overridden later
- HiLink asmSection Special
- HiLink asmLabel Label
- HiLink asmComment Comment
- HiLink asmTodo Todo
- HiLink asmDirective Statement
-
- HiLink asmInclude Include
- HiLink asmCond PreCondit
- HiLink asmMacro Macro
-
- HiLink hexNumber Number
- HiLink decNumber Number
- HiLink octNumber Number
- HiLink binNumber Number
-
- HiLink asmIdentifier Identifier
- HiLink asmType Type
-
- delcommand HiLink
-endif
+" 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
+
+hi def link hexNumber Number
+hi def link decNumber Number
+hi def link octNumber Number
+hi def link binNumber Number
+
+hi def link asmIdentifier Identifier
+hi def link asmType Type
+
let b:current_syntax = "asm"
diff --git a/runtime/syntax/asm68k.vim b/runtime/syntax/asm68k.vim
index cd23517cad..1607507909 100644
--- a/runtime/syntax/asm68k.vim
+++ b/runtime/syntax/asm68k.vim
@@ -8,11 +8,8 @@
" Feel free to contribute...
"
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -328,63 +325,53 @@ syn match asm68kDirective "\<XREF\(\.S\)\=\s"
syn case match
" 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_asm68k_syntax_inits")
- if version < 508
- let did_asm68k_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " The default methods for highlighting. Can be overridden later
- " Comment Constant Error Identifier PreProc Special Statement Todo Type
- "
- " Constant Boolean Character Number String
- " Identifier Function
- " PreProc Define Include Macro PreCondit
- " Special Debug Delimiter SpecialChar SpecialComment Tag
- " Statement Conditional Exception Keyword Label Operator Repeat
- " Type StorageClass Structure Typedef
-
- HiLink asm68kComment Comment
- HiLink asm68kTodo Todo
-
- HiLink hexNumber Number " Constant
- HiLink octNumber Number " Constant
- HiLink binNumber Number " Constant
- HiLink decNumber Number " Constant
- HiLink floatNumber Number " Constant
- HiLink floatExponent Number " Constant
- HiLink floatE SpecialChar " Statement
- "HiLink floatE Number " Constant
-
- HiLink asm68kImmediate SpecialChar " Statement
- "HiLink asm68kSymbol Constant
-
- HiLink asm68kString String " Constant
- HiLink asm68kCharError Error
- HiLink asm68kStringError Error
-
- HiLink asm68kReg Identifier
- HiLink asm68kOperator Identifier
-
- HiLink asm68kInclude Include " PreProc
- HiLink asm68kMacro Macro " PreProc
- HiLink asm68kMacroParam Keyword " Statement
-
- HiLink asm68kDirective Special
- HiLink asm68kPreCond Special
-
-
- HiLink asm68kOpcode Statement
- HiLink asm68kCond Conditional " Statement
- HiLink asm68kRepeat Repeat " Statement
-
- HiLink asm68kLabel Type
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+" The default methods for highlighting. Can be overridden later
+" Comment Constant Error Identifier PreProc Special Statement Todo Type
+"
+" Constant Boolean Character Number String
+" Identifier Function
+" PreProc Define Include Macro PreCondit
+" Special Debug Delimiter SpecialChar SpecialComment Tag
+" Statement Conditional Exception Keyword Label Operator Repeat
+" Type StorageClass Structure Typedef
+
+hi def link asm68kComment Comment
+hi def link asm68kTodo Todo
+
+hi def link hexNumber Number " Constant
+hi def link octNumber Number " Constant
+hi def link binNumber Number " Constant
+hi def link decNumber Number " Constant
+hi def link floatNumber Number " Constant
+hi def link floatExponent Number " Constant
+hi def link floatE SpecialChar " Statement
+"hi def link floatE Number " Constant
+
+hi def link asm68kImmediate SpecialChar " Statement
+"hi def link asm68kSymbol Constant
+
+hi def link asm68kString String " Constant
+hi def link asm68kCharError Error
+hi def link asm68kStringError Error
+
+hi def link asm68kReg Identifier
+hi def link asm68kOperator Identifier
+
+hi def link asm68kInclude Include " PreProc
+hi def link asm68kMacro Macro " PreProc
+hi def link asm68kMacroParam Keyword " Statement
+
+hi def link asm68kDirective Special
+hi def link asm68kPreCond Special
+
+
+hi def link asm68kOpcode Statement
+hi def link asm68kCond Conditional " Statement
+hi def link asm68kRepeat Repeat " Statement
+
+hi def link asm68kLabel Type
let b:current_syntax = "asm68k"
diff --git a/runtime/syntax/asmh8300.vim b/runtime/syntax/asmh8300.vim
index 48699d89c5..8560fb7ae4 100644
--- a/runtime/syntax/asmh8300.vim
+++ b/runtime/syntax/asmh8300.vim
@@ -3,11 +3,8 @@
" Maintainer: Kevin Dahlhausen <kdahlhaus@yahoo.com>
" Last Change: 2002 Sep 19
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -52,33 +49,19 @@ syn case match
" Read the general asm syntax
-if version < 600
- source <sfile>:p:h/asm.vim
-else
- runtime! syntax/asm.vim
-endif
+runtime! syntax/asm.vim
" 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_hitachi_syntax_inits")
- if version < 508
- let did_hitachi_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink asmOpcode Statement
- HiLink asmRegister Identifier
+hi def link asmOpcode Statement
+hi def link asmRegister Identifier
- " My default-color overrides:
- "hi asmOpcode ctermfg=yellow
- "hi asmReg ctermfg=lightmagenta
+" My default-color overrides:
+"hi asmOpcode ctermfg=yellow
+"hi asmReg ctermfg=lightmagenta
- delcommand HiLink
-endif
let b:current_syntax = "asmh8300"
diff --git a/runtime/syntax/asn.vim b/runtime/syntax/asn.vim
index 28c8efba95..e90c7e079c 100644
--- a/runtime/syntax/asn.vim
+++ b/runtime/syntax/asn.vim
@@ -4,11 +4,8 @@
" URL: http://www.fleiner.com/vim/syntax/asn.vim
" Last Change: 2012 Oct 05
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -50,34 +47,24 @@ syn match asnBraces "[{}]"
syn sync ccomment asnComment
" 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_asn_syn_inits")
- if version < 508
- let did_asn_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink asnDefinition Function
- HiLink asnBraces Function
- HiLink asnStructure Statement
- HiLink asnBoolValue Boolean
- HiLink asnSpecial Special
- HiLink asnString String
- HiLink asnCharacter Character
- HiLink asnSpecialCharacter asnSpecial
- HiLink asnNumber asnValue
- HiLink asnComment Comment
- HiLink asnLineComment asnComment
- HiLink asnType Type
- HiLink asnTypeInfo PreProc
- HiLink asnValue Number
- HiLink asnExternal Include
- HiLink asnTagModifier Function
- HiLink asnFieldOption Type
- delcommand HiLink
-endif
+" 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
diff --git a/runtime/syntax/aspperl.vim b/runtime/syntax/aspperl.vim
index 0f7ef46872..5a9abedb19 100644
--- a/runtime/syntax/aspperl.vim
+++ b/runtime/syntax/aspperl.vim
@@ -4,11 +4,8 @@
" URL: http://nim.dhs.org/~edh/aspperl.vim
" Last Change: 2001 May 09
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -16,14 +13,9 @@ if !exists("main_syntax")
let main_syntax = 'perlscript'
endif
-if version < 600
- so <sfile>:p:h/html.vim
- syn include @AspPerlScript <sfile>:p:h/perl.vim
-else
- runtime! syntax/html.vim
- unlet b:current_syntax
- syn include @AspPerlScript syntax/perl.vim
-endif
+runtime! syntax/html.vim
+unlet b:current_syntax
+syn include @AspPerlScript syntax/perl.vim
syn cluster htmlPreproc add=AspPerlScriptInsideHtmlTags
diff --git a/runtime/syntax/aspvbs.vim b/runtime/syntax/aspvbs.vim
index f1435cb04b..f0861d8b5a 100644
--- a/runtime/syntax/aspvbs.vim
+++ b/runtime/syntax/aspvbs.vim
@@ -11,10 +11,8 @@
" Thanks to Dean Hall <hall@apt7.com> 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 version < 600
- syn clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -22,11 +20,7 @@ if !exists("main_syntax")
let main_syntax = 'aspvbs'
endif
-if version < 600
- source <sfile>:p:h/html.vim
-else
- runtime! syntax/html.vim
-endif
+runtime! syntax/html.vim
unlet b:current_syntax
syn cluster htmlPreProc add=AspVBScriptInsideHtmlTags
@@ -163,31 +157,21 @@ syn sync match htmlHighlight grouphere htmlTag "%>"
" 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_aspvbs_syn_inits")
- if version < 508
- let did_aspvbs_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- "HiLink AspVBScript Special
- HiLink AspVBSLineNumber Comment
- HiLink AspVBSNumber Number
- HiLink AspVBSError Error
- HiLink AspVBSStatement Statement
- HiLink AspVBSString String
- HiLink AspVBSComment Comment
- HiLink AspVBSTodo Todo
- HiLink AspVBSFunction Identifier
- HiLink AspVBSMethods PreProc
- HiLink AspVBSEvents Special
- HiLink AspVBSTypeSpecifier Type
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/asterisk.vim b/runtime/syntax/asterisk.vim
index fd4ec39c91..4a922d3f11 100644
--- a/runtime/syntax/asterisk.vim
+++ b/runtime/syntax/asterisk.vim
@@ -5,10 +5,9 @@
" Updated for 1.2 by Tilghman Lesher (Corydon76)
" Last Change: 2015 Feb 27
" version 0.4
-"
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -57,42 +56,33 @@ syn match asteriskSetting "^port\s*=\s*\d\{1,5}\s*$" contains=aste
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.
-" 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_conf_syntax_inits")
- if version < 508
- let did_conf_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" 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
- HiLink asteriskComment Comment
- HiLink asteriskExten String
- HiLink asteriskContext Preproc
- HiLink asteriskPattern Type
- HiLink asteriskApp Statement
- HiLink asteriskInclude Preproc
- HiLink asteriskIncludeBad Error
- HiLink asteriskPriority Preproc
- HiLink asteriskLabel Type
- HiLink asteriskVar String
- HiLink asteriskVarLen Function
- HiLink asteriskExp Type
- HiLink asteriskCodecsPermit Preproc
- HiLink asteriskCodecs String
- HiLink asteriskType Statement
- HiLink asteriskTypeType Type
- HiLink asteriskAuth String
- HiLink asteriskAuthType Type
- HiLink asteriskIPRange Identifier
- HiLink asteriskIP Identifier
- HiLink asteriskPort Identifier
- HiLink asteriskHostname Identifier
- HiLink asteriskSetting Statement
- HiLink asteriskError Error
- delcommand HiLink
-endif
let b:current_syntax = "asterisk"
" vim: ts=8 sw=2
diff --git a/runtime/syntax/asteriskvm.vim b/runtime/syntax/asteriskvm.vim
index a6c9dba418..fa55af5451 100644
--- a/runtime/syntax/asteriskvm.vim
+++ b/runtime/syntax/asteriskvm.vim
@@ -3,10 +3,9 @@
" Maintainer: Tilghman Lesher (Corydon76)
" Last Change: 2006 Mar 21
" version 0.2
-"
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -33,28 +32,18 @@ syn match mailboxEmail ",\zs[^@=,]*@[[:alnum:]\-\.]\+\.[[:alpha
syn match comma "[,|]" contained
" 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_conf_syntax_inits")
- if version < 508
- let did_conf_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink asteriskvmComment Comment
- HiLink asteriskvmContext Identifier
- HiLink asteriskvmZone Type
- HiLink zoneName String
- HiLink zoneDef String
- HiLink asteriskvmSetting Type
- HiLink asteriskvmSettingBool Type
-
- HiLink asteriskvmMailbox Statement
- HiLink mailboxEmail String
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/atlas.vim b/runtime/syntax/atlas.vim
index b8fe4356b5..1cdceab4ce 100644
--- a/runtime/syntax/atlas.vim
+++ b/runtime/syntax/atlas.vim
@@ -3,11 +3,8 @@
" Maintainer: Inaki Saez <jisaez@sfe.indra.es>
" Last Change: 2001 May 09
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -61,37 +58,27 @@ syn sync maxlines=100
" 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_atlas_syntax_inits")
- if version < 508
- let did_atlas_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink atlasConditional Conditional
- HiLink atlasRepeat Repeat
- HiLink atlasStatement Statement
- HiLink atlasNumber Number
- HiLink atlasHexNumber Number
- HiLink atlasOctalNumber Number
- HiLink atlasBinNumber Number
- HiLink atlasDecimalNumber Float
- HiLink atlasFormatString String
- HiLink atlasString String
- HiLink atlasComment Comment
- HiLink atlasComment2 Comment
- HiLink atlasInclude Include
- HiLink atlasDefine Macro
- HiLink atlasReserved PreCondit
- HiLink atlasStorageClass StorageClass
- HiLink atlasIdentifier NONE
- HiLink atlasSpecial Special
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link atlasConditional Conditional
+hi def link atlasRepeat Repeat
+hi def link atlasStatement Statement
+hi def link atlasNumber Number
+hi def link atlasHexNumber Number
+hi def link atlasOctalNumber Number
+hi def link atlasBinNumber Number
+hi def link atlasDecimalNumber Float
+hi def link atlasFormatString String
+hi def link atlasString String
+hi def link atlasComment Comment
+hi def link atlasComment2 Comment
+hi def link atlasInclude Include
+hi def link atlasDefine Macro
+hi def link atlasReserved PreCondit
+hi def link atlasStorageClass StorageClass
+hi def link atlasIdentifier NONE
+hi def link atlasSpecial Special
+
let b:current_syntax = "atlas"
diff --git a/runtime/syntax/autohotkey.vim b/runtime/syntax/autohotkey.vim
index 764f94b11a..c6a68f7a21 100644
--- a/runtime/syntax/autohotkey.vim
+++ b/runtime/syntax/autohotkey.vim
@@ -1,8 +1,10 @@
" Vim syntax file
" Language: AutoHotkey script file
-" Maintainer: SungHyun Nam <goweol@gmail.com>
-" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2015-10-29
+" Maintainer: Michael Wong
+" https://github.com/mmikeww/autohotkey.vim
+" Latest Revision: 2017-04-03
+" Previous Maintainers: SungHyun Nam <goweol@gmail.com>
+" Nikolai Weibull <now@bitwi.se>
if exists("b:current_syntax")
finish
@@ -17,68 +19,11 @@ syn keyword autohotkeyTodo
\ contained
\ TODO FIXME XXX NOTE
-syn cluster autohotkeyCommentGroup
- \ contains=
- \ autohotkeyTodo,
- \ @Spell
-
-syn match autohotkeyComment
- \ display
- \ contains=@autohotkeyCommentGroup
- \ '`\@<!;.*$'
-
-syn region autohotkeyComment
- \ contains=@autohotkeyCommentGroup
- \ matchgroup=autohotkeyCommentStart
- \ start='/\*'
- \ end='\*/'
-
+" only these chars are valid as escape sequences: ,%`;nrbtvaf
+" https://autohotkey.com/docs/commands/_EscapeChar.htm
syn match autohotkeyEscape
\ display
- \ '`.'
-
-syn match autohotkeyHotkey
- \ contains=autohotkeyKey,
- \ autohotkeyHotkeyDelimiter
- \ display
- \ '^.\{-}::'
-
-syn match autohotkeyKey
- \ contained
- \ display
- \ '^.\{-}'
-
-syn match autohotkeyDelimiter
- \ contained
- \ display
- \ '::'
-
-syn match autohotkeyHotstringDefinition
- \ contains=autohotkeyHotstring,
- \ autohotkeyHotstringDelimiter
- \ display
- \ '^:\%(B0\|C1\|K\d\+\|P\d\+\|S[IPE]\|Z\d\=\|[*?COR]\)*:.\{-}::'
-
-syn match autohotkeyHotstring
- \ contained
- \ display
- \ '.\{-}'
-
-syn match autohotkeyHotstringDelimiter
- \ contained
- \ display
- \ '::'
-
-syn match autohotkeyHotstringDelimiter
- \ contains=autohotkeyHotstringOptions
- \ contained
- \ display
- \ ':\%(B0\|C1\|K\d\+\|P\d\+\|S[IPE]\|Z\d\=\|[*?COR]\):'
-
-syn match autohotkeyHotstringOptions
- \ contained
- \ display
- \ '\%(B0\|C1\|K\d\+\|P\d\+\|S[IPE]\|Z\d\=\|[*?COR]\)'
+ \ '`[,%`;nrbtvaf]'
syn region autohotkeyString
\ display
@@ -88,39 +33,46 @@ syn region autohotkeyString
\ end=+"+
\ contains=autohotkeyEscape
-syn region autohotkeyVariable
+syn match autohotkeyVariable
\ display
\ oneline
\ contains=autohotkeyBuiltinVariable
- \ matchgroup=autohotkeyVariableDelimiter
- \ start="%"
- \ end="%"
\ keepend
+ \ '%\S\{-}%'
syn keyword autohotkeyBuiltinVariable
\ A_Space A_Tab
- \ A_WorkingDir A_ScriptDir A_ScriptName A_ScriptFullPath A_LineNumber
- \ A_LineFile A_AhkVersion A_AhkPAth A_IsCompiled A_ExitReason
- \ A_YYYY A_MM A_DD A_MMMM A_MMM A_DDDD A_DDD A_WDay A_YWeek A_Hour A_Min
+ \ 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_BatchLines A_TitleMatchMode A_TitleMatchModeSpeed
- \ A_DetectHiddenWindows A_DetectHiddenText A_AutoTrim A_STringCaseSense
- \ A_FormatInteger A_FormatFloat A_KeyDelay A_WinDelay A_ControlDelay
- \ A_MouseDelay A_DefaultMouseSpeed A_IconHidden A_IconTip A_IconFile
+ \ 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_KeyDelay A_WinDelay A_ControlDelay
+ \ A_SendMode A_SendLevel A_StoreCapsLockMode A_KeyDelay A_KeyDelayDuration
+ \ A_KeyDelayPlay A_KeyDelayPlayDuration 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_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_TimeSinceThisHotkey A_TimeSincePriorHotkey A_EndChar
+ \ 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_IPAddress1 A_IPAddress2 A_IPAddress3
+ \ 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
syn match autohotkeyBuiltinVariable
\ contained
@@ -130,7 +82,7 @@ syn match autohotkeyBuiltinVariable
syn keyword autohotkeyCommand
\ ClipWait EnvGet EnvSet EnvUpdate
\ Drive DriveGet DriveSpaceFree FileAppend FileCopy FileCopyDir
- \ FileCreateDir FileCreateShortcut FileDelete FileGetAttrib
+ \ FileCreateDir FileCreateShortcut FileDelete FileGetAttrib FileEncoding
\ FileGetShortcut FileGetSize FileGetTime FileGetVersion FileInstall
\ FileMove FileMoveDir FileReadLine FileRead FileRecycle FileRecycleEmpty
\ FileRemoveDir FileSelectFolder FileSelectFile FileSetAttrib FileSetTime
@@ -153,7 +105,8 @@ syn keyword autohotkeyCommand
\ SoundSetWaveVolume
\ FormatTime IfInString IfNotInString Sort StringCaseSense StringGetPos
\ StringLeft StringRight StringLower StringUpper StringMid StringReplace
- \ StringSplit StringTrimLeft StringTrimRight
+ \ StringSplit StringTrimLeft StringTrimRight StringLen
+ \ StrSplit StrReplace Throw
\ Control ControlClick ControlFocus ControlGet ControlGetFocus
\ ControlGetPos ControlGetText ControlMove ControlSend ControlSendRaw
\ ControlSetText Menu PostMessage SendMessage SetControlDelay
@@ -164,23 +117,30 @@ syn keyword autohotkeyCommand
\ WinGetText WinGetTitle WinHide WinKill WinMaximize WinMinimize
\ WinMinimizeAll WinMinimizeAllUndo WinMove WinRestore WinSet
\ WinSetTitle WinShow WinWait WinWaitActive WinWaitNotActive WinWaitClose
+ \ SetCapsLockState SetNumLockState SetScrollLockState
syn keyword autohotkeyFunction
- \ InStr RegExMatch RegExReplace StrLen SubStr Asc Chr
+ \ 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
+ \ 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
syn keyword autohotkeyStatement
\ Break Continue Exit ExitApp Gosub Goto OnExit Pause Return
- \ Suspend Reload
+ \ Suspend Reload new class extends
syn keyword autohotkeyRepeat
\ Loop
syn keyword autohotkeyConditional
\ IfExist IfNotExist If IfEqual IfLess IfGreater Else
- \ IfWinExist IfWinNotExist
+ \ IfWinExist IfWinNotExist IfWinActive IfWinNotActive
+ \ IfNotEqual IfLessOrEqual IfGreaterOrEqual
+ \ while until for in try catch finally
syn match autohotkeyPreProcStart
\ nextgroup=
@@ -200,6 +160,7 @@ syn keyword autohotkeyPreProc
\ HotkeyInterval HotKeyModifierTimeout
\ Hotstring
\ IfWinActive IfWinNotActive IfWinExist IfWinNotExist
+ \ If IfTimeout
\ MaxHotkeysPerInterval MaxThreads MaxThreadsBuffer MaxThreadsPerHotkey
\ UseHook InstallKeybdHook InstallMouseHook
\ KeyHistory
@@ -213,9 +174,13 @@ syn keyword autohotkeyPreProc
\ MaxMem
\ NoEnv
\ Persistent
+ \ LTrim
+ \ InputLevel
+ \ MenuMaskKey
+ \ Warn
syn keyword autohotkeyMatchClass
- \ ahk_group ahk_class ahk_id ahk_pid
+ \ ahk_group ahk_class ahk_id ahk_pid ahk_exe
syn match autohotkeyNumbers
\ display
@@ -243,11 +208,74 @@ syn match autohotkeyFloat
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")
diff --git a/runtime/syntax/automake.vim b/runtime/syntax/automake.vim
index eea2a9f38c..2a215a9e04 100644
--- a/runtime/syntax/automake.vim
+++ b/runtime/syntax/automake.vim
@@ -18,18 +18,12 @@
" EXTRA_SOURCES.
" Standard syntax initialization
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+if exists("b:current_syntax")
finish
endif
" Read the Makefile syntax to start with
-if version < 600
- source <sfile>:p:h/make.vim
-else
- runtime! syntax/make.vim
-endif
+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
@@ -59,34 +53,24 @@ syn region automakeMakeSString start=+'+ skip=+\\'+ end=+'+ contains=makeIde
syn region automakeMakeBString start=+`+ skip=+\\`+ end=+`+ contains=makeIdent,makeSString,makeDString,makeNextLine,automakeSubstitution
" 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_automake_syntax_inits")
- if version < 508
- let did_automake_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink automakePrimary Statement
- HiLink automakeSecondary Type
- HiLink automakeExtra Special
- HiLink automakeOptions Special
- HiLink automakeClean Special
- HiLink automakeSubdirs Statement
- HiLink automakeConditional PreProc
- HiLink automakeSubst PreProc
- HiLink automakeComment1 makeComment
- HiLink automakeComment2 makeComment
- HiLink automakeMakeError makeError
- HiLink automakeBadSubst makeError
- HiLink automakeMakeDString makeDString
- HiLink automakeMakeSString makeSString
- HiLink automakeMakeBString makeBString
+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
- delcommand HiLink
-endif
let b:current_syntax = "automake"
diff --git a/runtime/syntax/ave.vim b/runtime/syntax/ave.vim
index 2a0a9d85af..e63e7d2c30 100644
--- a/runtime/syntax/ave.vim
+++ b/runtime/syntax/ave.vim
@@ -11,11 +11,8 @@
" I use some technologies to automatically load avenue scripts
" into ArcView.
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -37,7 +34,7 @@ syn match aveNumber "[+-]\=\<[0-9]\+\>"
" Operator
syn keyword aveOperator or and max min xor mod by
-" 'not' is a kind of a problem: Its an Operator as well as a method
+" '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]"
@@ -59,34 +56,24 @@ syn match aveTypos "=="
syn match aveTypos "!="
" 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_ave_syn_inits")
- if version < 508
- let did_ave_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting+yet
- HiLink aveStatement Statement
+hi def link aveStatement Statement
- HiLink aveString String
- HiLink aveNumber Number
+hi def link aveString String
+hi def link aveNumber Number
- HiLink aveFixVariables Special
- HiLink aveVariables Identifier
- HiLink globalVariables Special
- HiLink aveConst Special
+hi def link aveFixVariables Special
+hi def link aveVariables Identifier
+hi def link globalVariables Special
+hi def link aveConst Special
- HiLink aveClassMethods Function
+hi def link aveClassMethods Function
- HiLink aveOperator Operator
- HiLink aveComment Comment
+hi def link aveOperator Operator
+hi def link aveComment Comment
- HiLink aveTypos Error
+hi def link aveTypos Error
- delcommand HiLink
-endif
let b:current_syntax = "ave"
diff --git a/runtime/syntax/avra.vim b/runtime/syntax/avra.vim
index ebf0aaff11..0e02bd8397 100644
--- a/runtime/syntax/avra.vim
+++ b/runtime/syntax/avra.vim
@@ -2,14 +2,12 @@
" 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 <mhitza@gmail.com>
let s:cpo_save = &cpo
set cpo&vim
-setlocal iskeyword=a-z,A-Z,48-57,.,_
-" 'isident' is a global option, better not set it
-" setlocal isident=a-z,A-Z,48-57,.,_
syn case ignore
syn keyword avraRegister r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14
diff --git a/runtime/syntax/awk.vim b/runtime/syntax/awk.vim
index ae0f217580..7c0682ce9f 100644
--- a/runtime/syntax/awk.vim
+++ b/runtime/syntax/awk.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: awk, nawk, gawk, mawk
" Maintainer: Antonio Colombo <azc100@gmail.com>
-" Last Change: 2016 Jul 15
+" Last Change: 2016 Sep 05
" AWK ref. is: Alfred V. Aho, Brian W. Kernighan, Peter J. Weinberger
" The AWK Programming Language, Addison-Wesley, 1988
@@ -71,6 +71,10 @@ 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\}"
@@ -124,11 +128,6 @@ syn case match
"syn match awkIdentifier "\<[a-zA-Z_][a-zA-Z0-9_]*\>"
-" Arithmetic operators: +, and - take care of ++, and --
-syn match awkOperator "+\|-\|\*\|/\|%\|="
-syn match awkOperator "+=\|-=\|\*=\|/=\|%="
-syn match awkOperator "^\|^="
-
" Comparison expressions.
syn match awkExpression "==\|>=\|=>\|<=\|=<\|\!="
syn match awkExpression "\~\|\!\~"
@@ -167,7 +166,6 @@ syn region awkArray transparent start="\[" end="\]" contains=awkArray,awkArrayE
syn sync ccomment awkArray maxlines=10
" Define the default highlighting.
-" Only used when an item doesn't have highlighting yet
hi def link awkConditional Conditional
hi def link awkFunction Function
hi def link awkRepeat Repeat
diff --git a/runtime/syntax/ayacc.vim b/runtime/syntax/ayacc.vim
index fedd0e80a0..6fb6aec85d 100644
--- a/runtime/syntax/ayacc.vim
+++ b/runtime/syntax/ayacc.vim
@@ -6,21 +6,14 @@
" Comment: Replaced sourcing c.vim file by ada.vim and rename yacc*
" in ayacc*
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
" Read the Ada syntax to start with
-if version < 600
- so <sfile>:p:h/ada.vim
-else
- runtime! syntax/ada.vim
- unlet b:current_syntax
-endif
+runtime! syntax/ada.vim
+unlet b:current_syntax
let s:cpo_save = &cpo
set cpo&vim
@@ -54,35 +47,26 @@ syn match ayaccSep "^[ \t]*%}"
syn match ayaccCurlyError "[{}]"
syn region ayaccAction matchgroup=ayaccCurly start="{" end="}" contains=ALLBUT,@ayaccActionGroup
-if version >= 508 || !exists("did_ayacc_syntax_inits")
- if version < 508
- let did_ayacc_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- " Internal ayacc highlighting links
- HiLink ayaccBrkt ayaccStmt
- HiLink ayaccKey ayaccStmt
- HiLink ayaccOper ayaccStmt
- HiLink ayaccUnionStart ayaccKey
+" 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
- HiLink ayaccCurly Delimiter
- HiLink ayaccCurlyError Error
- HiLink ayaccDefinition Function
- HiLink ayaccDelim Function
- HiLink ayaccKeyActn Special
- HiLink ayaccSectionSep Todo
- HiLink ayaccSep Delimiter
- HiLink ayaccStmt Statement
- HiLink ayaccType Type
+" 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 :|
- HiLink Delimiter Type
- delcommand HiLink
-endif
+" since Bram doesn't like my Delimiter :|
+hi def link Delimiter Type
let b:current_syntax = "ayacc"
diff --git a/runtime/syntax/b.vim b/runtime/syntax/b.vim
index b470ab9ef3..01532be75d 100644
--- a/runtime/syntax/b.vim
+++ b/runtime/syntax/b.vim
@@ -5,11 +5,8 @@
" LastChange: 8 Dec 2007
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -69,58 +66,48 @@ syn region bPreProc start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error
syn sync ccomment bComment minlines=10
" 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_b_syntax_inits")
- if version < 508
- let did_b_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " The default methods for highlighting. Can be overridden later
- HiLink bLabel Label
- HiLink bUserLabel Label
- HiLink bConditional Conditional
- HiLink bRepeat Repeat
- HiLink bLogic Special
- HiLink bCharacter Character
- HiLink bSpecialCharacter bSpecial
- HiLink bNumber Number
- HiLink bFloat Float
- HiLink bOctalError bError
- HiLink bParenError bError
-" HiLink bInParen bError
- HiLink bCommentError bError
- HiLink bBoolean Identifier
- HiLink bConstant Identifier
- HiLink bGuard Identifier
- HiLink bOperator Operator
- HiLink bKeywords Operator
- HiLink bOps Identifier
- HiLink bStructure Structure
- HiLink bStorageClass StorageClass
- HiLink bInclude Include
- HiLink bPreProc PreProc
- HiLink bDefine Macro
- HiLink bIncluded bString
- HiLink bError Error
- HiLink bStatement Statement
- HiLink bPreCondit PreCondit
- HiLink bType Type
- HiLink bCommentError bError
- HiLink bCommentString bString
- HiLink bComment2String bString
- HiLink bCommentSkip bComment
- HiLink bString String
- HiLink bComment Comment
- HiLink bSpecial SpecialChar
- HiLink bTodo Todo
- "hi link bIdentifier Identifier
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/baan.vim b/runtime/syntax/baan.vim
index 5009218b60..9a42a43918 100644
--- a/runtime/syntax/baan.vim
+++ b/runtime/syntax/baan.vim
@@ -4,15 +4,8 @@
" Originally owned by: Erwin Smit / Her van de Vliert
" Last change: v1.17 2006/04/26 10:40:18
-" 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
- if exists("baan_fold")
- unlet baan_fold
- endif
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -1894,40 +1887,30 @@ syn keyword baanBshell bclm.productidlicensed
syn keyword baanBshell bclm.set.desktop
" 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_baan_syn_inits")
- if version < 508
- let did_baan_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink baanConditional Conditional
- HiLink baan3gl Statement
- HiLink baan3glpre PreProc
- HiLink baan4gl Statement
- HiLink baan4glh Statement
- HiLink baansql Statement
- HiLink baansqlh Statement
- HiLink baanDalHook Statement
- HiLink baanNumber Number
- HiLink baanString String
- HiLink baanOpenStringError Error
- HiLink baanConstant Constant
- HiLink baanComment Comment
- HiLink baanCommenth Comment
- HiLink baanUncommented Comment
- HiLink baanDLLUsage Comment
- HiLink baanFunUsage Comment
- HiLink baanIdentifier Normal
- HiLink baanBshell Function
- HiLink baanType Type
- HiLink baanStorageClass StorageClass
+hi def link baanConditional Conditional
+hi def link baan3gl Statement
+hi def link baan3glpre PreProc
+hi def link baan4gl Statement
+hi def link baan4glh Statement
+hi def link baansql Statement
+hi def link baansqlh Statement
+hi def link baanDalHook Statement
+hi def link baanNumber Number
+hi def link baanString String
+hi def link baanOpenStringError Error
+hi def link baanConstant Constant
+hi def link baanComment Comment
+hi def link baanCommenth Comment
+hi def link baanUncommented Comment
+hi def link baanDLLUsage Comment
+hi def link baanFunUsage Comment
+hi def link baanIdentifier Normal
+hi def link baanBshell Function
+hi def link baanType Type
+hi def link baanStorageClass StorageClass
- delcommand HiLink
-endif
let b:current_syntax = "baan"
diff --git a/runtime/syntax/basic.vim b/runtime/syntax/basic.vim
index c72032da27..488ddc0ec4 100644
--- a/runtime/syntax/basic.vim
+++ b/runtime/syntax/basic.vim
@@ -8,11 +8,8 @@
" This syntax file not a complete implementation yet. Send suggestions to the
" maintainer.
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -143,34 +140,24 @@ syn match basicFilenumber "#\d\+"
syn match basicMathsOperator "-\|=\|[:<>+\*^/\\]\|AND\|OR"
" 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_basic_syntax_inits")
- if version < 508
- let did_basic_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink basicLabel Label
- HiLink basicConditional Conditional
- HiLink basicRepeat Repeat
- HiLink basicLineNumber Comment
- HiLink basicNumber Number
- HiLink basicError Error
- HiLink basicStatement Statement
- HiLink basicString String
- HiLink basicComment Comment
- HiLink basicSpecial Special
- HiLink basicTodo Todo
- HiLink basicFunction Identifier
- HiLink basicTypeSpecifier Type
- HiLink basicFilenumber basicTypeSpecifier
- "hi basicMathsOperator term=bold cterm=bold gui=bold
+hi def link basicLabel Label
+hi def link basicConditional Conditional
+hi def link basicRepeat Repeat
+hi def link basicLineNumber Comment
+hi def link basicNumber Number
+hi def link basicError Error
+hi def link basicStatement Statement
+hi def link basicString String
+hi def link basicComment Comment
+hi def link basicSpecial Special
+hi def link basicTodo Todo
+hi def link basicFunction Identifier
+hi def link basicTypeSpecifier Type
+hi def link basicFilenumber basicTypeSpecifier
+"hi basicMathsOperator term=bold cterm=bold gui=bold
- delcommand HiLink
-endif
let b:current_syntax = "basic"
diff --git a/runtime/syntax/bc.vim b/runtime/syntax/bc.vim
index 965afc35b1..4cd9d6388a 100644
--- a/runtime/syntax/bc.vim
+++ b/runtime/syntax/bc.vim
@@ -5,11 +5,8 @@
" (Dominique Pelle added @Spell)
" Available on: www.gjh.sk/~vlado/bc.vim
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -53,27 +50,17 @@ syn match bcParenError ")"
syn case match
" 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_bc_syntax_inits")
- if version < 508
- let did_bc_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink bcKeyword Statement
- HiLink bcType Type
- HiLink bcConstant Constant
- HiLink bcNumber Number
- HiLink bcComment Comment
- HiLink bcString String
- HiLink bcSpecialChar SpecialChar
- HiLink bcParenError Error
-
- delcommand HiLink
-endif
+" 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
index d0c73eb601..cc1a337569 100644
--- a/runtime/syntax/bdf.vim
+++ b/runtime/syntax/bdf.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: BDF font definition
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: BDF font definition
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/bib.vim b/runtime/syntax/bib.vim
index 8bd0528e1e..ac8dcda678 100644
--- a/runtime/syntax/bib.vim
+++ b/runtime/syntax/bib.vim
@@ -2,17 +2,14 @@
" Language: BibTeX (bibliographic database format for (La)TeX)
" Maintainer: Bernd Feige <Bernd.Feige@gmx.net>
" Filenames: *.bib
-" Last Change: 2016 May 31
+" Last Change: 2017 Sep 29
" Thanks to those who pointed out problems with this file or supplied fixes!
" Initialization
" ==============
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -74,7 +71,7 @@ syn keyword bibNSEntryKw contained mrclass mrnumber mrreviewer fjournal coden
" Clusters
" ========
-syn cluster bibVarContents contains=bibUnescapedSpecial,bibBrace,bibParen
+syn cluster bibVarContents contains=bibUnescapedSpecial,bibBrace,bibParen,bibMath
" This cluster is empty but things can be added externally:
"syn cluster bibCommentContents
@@ -84,19 +81,18 @@ 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=/\(\\\)\@<!\$/ end=/\$/ skip=/\(\\\$\)/
syn region bibQuote contained start=/"/ end=/"/ skip=/\(\\"\)/ contains=@bibVarContents
syn region bibBrace contained start=/{/ end=/}/ skip=/\(\\[{}]\)/ contains=@bibVarContents
syn region bibParen contained start=/(/ end=/)/ skip=/\(\\[()]\)/ contains=@bibVarContents
syn region bibField contained start="\S\+\s*=\s*" end=/[}),]/me=e-1 contains=bibEntryKw,bibNSEntryKw,bibBrace,bibParen,bibQuote,bibVariable
-syn region bibEntryData contained start=/[{(]/ms=e+1 end=/[})]/me=e-1 contains=bibKey,bibField
+syn region bibEntryData contained start=/[{(]/ms=e+1 end=/[})]/me=e-1 contains=bibKey,bibField,bibComment3
" Actually, 5.8 <= Vim < 6.0 would ignore the `fold' keyword anyway, but Vim<5.8 would produce
" an error, so we explicitly distinguish versions with and without folding functionality:
-if version < 600
- syn region bibEntry start=/@\S\+\s*[{(]/ end=/^\s*[})]/ transparent contains=bibType,bibEntryData nextgroup=bibComment
-else
- syn region bibEntry start=/@\S\+\s*[{(]/ end=/^\s*[})]/ transparent fold contains=bibType,bibEntryData nextgroup=bibComment
-endif
+syn region bibEntry start=/@\S\+\s*[{(]/ end=/^\s*[})]/ transparent fold contains=bibType,bibEntryData nextgroup=bibComment
syn region bibComment2 start=/@Comment\s*[{(]/ end=/^\s*[})]/me=e-1 contains=@bibCommentContents nextgroup=bibEntry
+" biblatex style comments inside a bibEntry
+syn match bibComment3 "%.*"
" Synchronization
" ===============
@@ -107,25 +103,17 @@ syn sync minlines=50
" Highlighting defaults
" =====================
" 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_bib_syn_inits")
- if version < 508
- let did_bib_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink bibType Identifier
- HiLink bibEntryKw Statement
- HiLink bibNSEntryKw PreProc
- HiLink bibKey Special
- HiLink bibVariable Constant
- HiLink bibUnescapedSpecial Error
- HiLink bibComment Comment
- HiLink bibComment2 Comment
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link bibType Identifier
+hi def link bibEntryKw Statement
+hi def link bibNSEntryKw PreProc
+hi def link bibKey Special
+hi def link bibVariable Constant
+hi def link bibUnescapedSpecial Error
+hi def link bibComment Comment
+hi def link bibComment2 Comment
+hi def link bibComment3 Comment
let b:current_syntax = "bib"
diff --git a/runtime/syntax/bindzone.vim b/runtime/syntax/bindzone.vim
index d599a85db2..df3c789d98 100644
--- a/runtime/syntax/bindzone.vim
+++ b/runtime/syntax/bindzone.vim
@@ -9,11 +9,8 @@
"
" $Id: bindzone.vim 12 2011-07-16 21:09:57Z julian $
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -70,40 +67,30 @@ syn region zoneParen contained start="(" end=")" contains=zoneSerial,
syn match zoneComment /;.*/
" 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_bind_zone_syn_inits")
- if version < 508
- let did_bind_zone_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink zoneDirective Macro
-
- HiLink zoneUnknown Error
-
- HiLink zoneOrigin Statement
- HiLink zoneOwnerName Statement
- HiLink zoneDomain Identifier
-
- HiLink zoneSpecial Special
- HiLink zoneTTL Constant
- HiLink zoneClass Include
- HiLink zoneRRType Type
-
- HiLink zoneIPAddr Number
- HiLink zoneIP6Addr Number
- HiLink zoneText String
- HiLink zoneNumber Number
- HiLink zoneSerial Special
-
- HiLink zoneErrParen Error
- HiLink zoneComment Comment
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/blank.vim b/runtime/syntax/blank.vim
index 60251c966c..6d2e3fd7bd 100644
--- a/runtime/syntax/blank.vim
+++ b/runtime/syntax/blank.vim
@@ -3,11 +3,8 @@
" Maintainer: Rafal M. Sulejman <unefunge@friko2.onet.pl>
" Last change: 2011 Dec 28 by Thilo Six
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -28,22 +25,12 @@ syn match blankNumber "\[[0-9]\+\]"
syn case match
" 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_blank_syntax_inits")
- if version < 508
- let did_blank_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink blankInstruction Statement
- HiLink blankNumber Number
- HiLink blankString String
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/bst.vim b/runtime/syntax/bst.vim
index e7836d7811..5ebef16460 100644
--- a/runtime/syntax/bst.vim
+++ b/runtime/syntax/bst.vim
@@ -4,21 +4,12 @@
" Filenames: *.bst
" $Id: bst.vim,v 1.2 2007/05/05 18:24:42 vimboss Exp $
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
-if version < 600
- command -nargs=1 SetIsk set iskeyword=<args>
-else
- command -nargs=1 SetIsk setlocal iskeyword=<args>
-endif
-SetIsk 48-57,#,$,',.,A-Z,a-z
-delcommand SetIsk
+setlocal iskeyword=48-57,#,$,',.,A-Z,a-z
syn case ignore
@@ -62,27 +53,17 @@ syn keyword bstField title type
syn keyword bstField volume year
" 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_bst_syn_inits")
- if version < 508
- let did_bst_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink bstComment Comment
- HiLink bstString String
- HiLink bstCommand PreProc
- HiLink bstBuiltIn Statement
- HiLink bstField Special
- HiLink bstNumber Number
- HiLink bstType Type
- HiLink bstIdentifier Identifier
- HiLink bstError Error
- delcommand HiLink
-endif
+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"
diff --git a/runtime/syntax/btm.vim b/runtime/syntax/btm.vim
index 4fd5b2db99..4f9253ff9f 100644
--- a/runtime/syntax/btm.vim
+++ b/runtime/syntax/btm.vim
@@ -11,11 +11,8 @@
"//- After unary operators like "defined" can assume token type.
"// Should there be more of these?
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -184,45 +181,35 @@ syn keyword btmCommand unlock unset ver verify vol
syn keyword btmCommand vscrput y
" 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_btm_syntax_inits")
- if version < 508
- let did_btm_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink btmLabel Special
- HiLink btmLabelMark Special
- HiLink btmCmdDivider Special
- HiLink btmConditional btmStatement
- HiLink btmDotBoolOp btmStatement
- HiLink btmRepeat btmStatement
- HiLink btmEchoCommand btmStatement
- HiLink btmEchoParam btmStatement
- HiLink btmStatement Statement
- HiLink btmTodo Todo
- HiLink btmString String
- HiLink btmNumber Number
- HiLink btmComment Comment
- HiLink btmArgument Identifier
- HiLink btmVariable Identifier
- HiLink btmEcho String
- HiLink btmBIFMatch btmStatement
- HiLink btmBuiltInFunc btmStatement
- HiLink btmBuiltInVar btmStatement
- HiLink btmSpecialVar btmStatement
- HiLink btmCommand btmStatement
-
- "optional highlighting
- "HiLink btmShowTab Error
- "HiLink btmShowTabc Error
- "hiLink btmIdentifier Identifier
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/bzr.vim b/runtime/syntax/bzr.vim
index ef5445bf45..43178b8a1a 100644
--- a/runtime/syntax/bzr.vim
+++ b/runtime/syntax/bzr.vim
@@ -11,11 +11,8 @@
" Gioele Barabucci
" for idea of diff highlighting
-" 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")
+" quit when a syntax file was already loaded.
+if exists("b:current_syntax")
finish
endif
@@ -40,24 +37,14 @@ 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.
-" 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_bzr_syn_inits")
- if version <= 508
- let did_bzr_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink bzrRemoved Constant
- HiLink bzrAdded Identifier
- HiLink bzrModified Special
- HiLink bzrRenamed Special
- HiLink bzrUnchanged Special
- HiLink bzrUnknown Special
-
- delcommand HiLink
-endif
+" 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
index 57d99ab1e9..f659a87b71 100644
--- a/runtime/syntax/c.vim
+++ b/runtime/syntax/c.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2016 Jul 07
+" Last Change: 2017 Apr 30
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
@@ -311,44 +311,32 @@ if !exists("c_no_ansi") || exists("c_ansi_constants") || exists("c_gnu")
syn keyword cConstant PTRDIFF_MIN PTRDIFF_MAX SIG_ATOMIC_MIN SIG_ATOMIC_MAX
syn keyword cConstant SIZE_MAX WCHAR_MIN WCHAR_MAX WINT_MIN WINT_MAX
endif
- syn keyword cConstant FLT_RADIX FLT_ROUNDS
- syn keyword cConstant FLT_DIG FLT_MANT_DIG FLT_EPSILON
- syn keyword cConstant DBL_DIG DBL_MANT_DIG DBL_EPSILON
- syn keyword cConstant LDBL_DIG LDBL_MANT_DIG LDBL_EPSILON
- syn keyword cConstant FLT_MIN FLT_MAX FLT_MIN_EXP FLT_MAX_EXP
- syn keyword cConstant FLT_MIN_10_EXP FLT_MAX_10_EXP
- syn keyword cConstant DBL_MIN DBL_MAX DBL_MIN_EXP DBL_MAX_EXP
- syn keyword cConstant DBL_MIN_10_EXP DBL_MAX_10_EXP
- syn keyword cConstant LDBL_MIN LDBL_MAX LDBL_MIN_EXP LDBL_MAX_EXP
- syn keyword cConstant LDBL_MIN_10_EXP LDBL_MAX_10_EXP
- syn keyword cConstant HUGE_VAL CLOCKS_PER_SEC NULL
- syn keyword cConstant LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY
- syn keyword cConstant LC_NUMERIC LC_TIME
- syn keyword cConstant SIG_DFL SIG_ERR SIG_IGN
- syn keyword cConstant SIGABRT SIGFPE SIGILL SIGHUP SIGINT SIGSEGV SIGTERM
+ syn keyword cConstant FLT_RADIX FLT_ROUNDS FLT_DIG FLT_MANT_DIG FLT_EPSILON DBL_DIG DBL_MANT_DIG DBL_EPSILON
+ syn keyword cConstant LDBL_DIG LDBL_MANT_DIG LDBL_EPSILON FLT_MIN FLT_MAX FLT_MIN_EXP FLT_MAX_EXP FLT_MIN_10_EXP FLT_MAX_10_EXP
+ syn keyword cConstant DBL_MIN DBL_MAX DBL_MIN_EXP DBL_MAX_EXP DBL_MIN_10_EXP DBL_MAX_10_EXP LDBL_MIN LDBL_MAX LDBL_MIN_EXP LDBL_MAX_EXP
+ syn keyword cConstant LDBL_MIN_10_EXP LDBL_MAX_10_EXP HUGE_VAL CLOCKS_PER_SEC NULL LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY
+ syn keyword cConstant LC_NUMERIC LC_TIME SIG_DFL SIG_ERR SIG_IGN SIGABRT SIGFPE SIGILL SIGHUP SIGINT SIGSEGV SIGTERM
" Add POSIX signals as well...
- syn keyword cConstant SIGABRT SIGALRM SIGCHLD SIGCONT SIGFPE SIGHUP
- syn keyword cConstant SIGILL SIGINT SIGKILL SIGPIPE SIGQUIT SIGSEGV
- syn keyword cConstant SIGSTOP SIGTERM SIGTRAP SIGTSTP SIGTTIN SIGTTOU
- syn keyword cConstant SIGUSR1 SIGUSR2
- syn keyword cConstant _IOFBF _IOLBF _IONBF BUFSIZ EOF WEOF
- syn keyword cConstant FOPEN_MAX FILENAME_MAX L_tmpnam
- syn keyword cConstant SEEK_CUR SEEK_END SEEK_SET
- syn keyword cConstant TMP_MAX stderr stdin stdout
- syn keyword cConstant EXIT_FAILURE EXIT_SUCCESS RAND_MAX
+ syn keyword cConstant SIGABRT SIGALRM SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT SIGKILL SIGPIPE SIGQUIT SIGSEGV
+ syn keyword cConstant SIGSTOP SIGTERM SIGTRAP SIGTSTP SIGTTIN SIGTTOU SIGUSR1 SIGUSR2
+ syn keyword cConstant _IOFBF _IOLBF _IONBF BUFSIZ EOF WEOF FOPEN_MAX FILENAME_MAX L_tmpnam
+ syn keyword cConstant SEEK_CUR SEEK_END SEEK_SET TMP_MAX stderr stdin stdout EXIT_FAILURE EXIT_SUCCESS RAND_MAX
" POSIX 2001
- syn keyword cConstant SIGBUS SIGPOLL SIGPROF SIGSYS SIGURG
- syn keyword cConstant SIGVTALRM SIGXCPU SIGXFSZ
+ syn keyword cConstant SIGBUS SIGPOLL SIGPROF SIGSYS SIGURG SIGVTALRM SIGXCPU SIGXFSZ
" non-POSIX signals
syn keyword cConstant SIGWINCH SIGINFO
- " Add POSIX errors as well
- syn keyword cConstant E2BIG EACCES EAGAIN EBADF EBADMSG EBUSY
- syn keyword cConstant ECANCELED ECHILD EDEADLK EDOM EEXIST EFAULT
- syn keyword cConstant EFBIG EILSEQ EINPROGRESS EINTR EINVAL EIO EISDIR
- syn keyword cConstant EMFILE EMLINK EMSGSIZE ENAMETOOLONG ENFILE ENODEV
- syn keyword cConstant ENOENT ENOEXEC ENOLCK ENOMEM ENOSPC ENOSYS
- syn keyword cConstant ENOTDIR ENOTEMPTY ENOTSUP ENOTTY ENXIO EPERM
- syn keyword cConstant EPIPE ERANGE EROFS ESPIPE ESRCH ETIMEDOUT EXDEV
+ " Add POSIX errors as well. List comes from:
+ " http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/errno.h.html
+ syn keyword cConstant E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT EAGAIN EALREADY EBADF
+ syn keyword cConstant EBADMSG EBUSY ECANCELED ECHILD ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK
+ syn keyword cConstant EDESTADDRREQ EDOM EDQUOT EEXIST EFAULT EFBIG EHOSTUNREACH EIDRM EILSEQ
+ syn keyword cConstant EINPROGRESS EINTR EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE
+ syn keyword cConstant EMULTIHOP ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS ENODATA
+ syn keyword cConstant ENODEV ENOENT ENOEXEC ENOLCK ENOLINK ENOMEM ENOMSG ENOPROTOOPT ENOSPC ENOSR
+ syn keyword cConstant ENOSTR ENOSYS ENOTCONN ENOTDIR ENOTEMPTY ENOTRECOVERABLE ENOTSOCK ENOTSUP
+ syn keyword cConstant ENOTTY ENXIO EOPNOTSUPP EOVERFLOW EOWNERDEAD EPERM EPIPE EPROTO
+ syn keyword cConstant EPROTONOSUPPORT EPROTOTYPE ERANGE EROFS ESPIPE ESRCH ESTALE ETIME ETIMEDOUT
+ syn keyword cConstant ETXTBSY EWOULDBLOCK EXDEV
" math.h
syn keyword cConstant M_E M_LOG2E M_LOG10E M_LN2 M_LN10 M_PI M_PI_2 M_PI_4
syn keyword cConstant M_1_PI M_2_PI M_2_SQRTPI M_SQRT2 M_SQRT1_2
@@ -358,11 +346,11 @@ if !exists("c_no_c99") " ISO C99
endif
" Accept %: for # (C99)
-syn region cPreCondit start="^\s*\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" keepend contains=cComment,cCommentL,cCppString,cCharacter,cCppParen,cParenError,cNumbers,cCommentError,cSpaceError
-syn match cPreConditMatch display "^\s*\(%:\|#\)\s*\(else\|endif\)\>"
+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*\(%:\|#\)\s*if\s\+0\+\s*\($\|//\|/\*\|&\)" end=".\@=\|$" contains=cCppOutIf,cCppOutElse,@NoSpell fold
+ 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
@@ -370,7 +358,7 @@ if !exists("c_no_if0")
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*\(%:\|#\)\s*if\s\+0*[1-9]\d*\s*\($\|//\|/\*\||\)" end=".\@=\|$" contains=cCppInIf,cCppInElse fold
+ 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
@@ -383,11 +371,11 @@ if !exists("c_no_if0")
endif
syn region cIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
syn match cIncluded display contained "<[^>]*>"
-syn match cInclude display "^\s*\(%:\|#\)\s*include\>\s*["<]" contains=cIncluded
+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*\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
-syn region cPreProc start="^\s*\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
+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
" 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
@@ -396,21 +384,21 @@ if s:ft ==# 'c' || exists("cpp_no_cpp11")
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*\I\i*\s*:$" contains=@cLabelGroup
-syn match cUserCont display ";\s*\I\i*\s*:$" contains=@cLabelGroup
+syn match cUserCont display "^\s*\zs\I\i*\s*:$" contains=@cLabelGroup
+syn match cUserCont display ";\s*\zs\I\i*\s*:$" contains=@cLabelGroup
if s:ft ==# 'cpp'
- syn match cUserCont display "^\s*\%(class\|struct\|enum\)\@!\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
- syn match cUserCont display ";\s*\%(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
+ syn match cUserCont display ";\s*\zs\%(class\|struct\|enum\)\@!\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
else
- syn match cUserCont display "^\s*\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
- syn match cUserCont display ";\s*\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
+ 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*\I\i*\s*:\s*[1-9]"me=e-1 contains=cType
-syn match cBitField display ";\s*\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
+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
diff --git a/runtime/syntax/cabal.vim b/runtime/syntax/cabal.vim
index 4130bac894..6641294a31 100644
--- a/runtime/syntax/cabal.vim
+++ b/runtime/syntax/cabal.vim
@@ -18,11 +18,8 @@
" v1.0: Cabal syntax in vimball format
" (thanks to Magnus Therning)
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -105,27 +102,17 @@ syn match cabalStatement "\ctype"
syn match cabalStatement "\cversion"
" 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_cabal_syn_inits")
- if version < 508
- let did_cabal_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink cabalVersion Number
- HiLink cabalTruth Boolean
- HiLink cabalComment Comment
- HiLink cabalStatement Statement
- HiLink cabalCategory Type
- HiLink cabalFunction Function
- HiLink cabalConditional Conditional
- HiLink cabalOperator Operator
- HiLink cabalCompiler Constant
- delcommand HiLink
-endif
+hi def link cabalVersion Number
+hi def link cabalTruth Boolean
+hi def link cabalComment Comment
+hi def link cabalStatement Statement
+hi def link cabalCategory Type
+hi def link cabalFunction Function
+hi def link cabalConditional Conditional
+hi def link cabalOperator Operator
+hi def link cabalCompiler Constant
let b:current_syntax = "cabal"
diff --git a/runtime/syntax/calendar.vim b/runtime/syntax/calendar.vim
index 588b41a4b8..4250109019 100644
--- a/runtime/syntax/calendar.vim
+++ b/runtime/syntax/calendar.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: calendar(1) input file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: calendar(1) input file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/cdrdaoconf.vim b/runtime/syntax/cdrdaoconf.vim
index 5058c23a24..0fa65103fb 100644
--- a/runtime/syntax/cdrdaoconf.vim
+++ b/runtime/syntax/cdrdaoconf.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: cdrdao(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2007-09-02
+" Language: cdrdao(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2007-09-02
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/cdrtoc.vim b/runtime/syntax/cdrtoc.vim
index fa752dbfb8..866784d7c2 100644
--- a/runtime/syntax/cdrtoc.vim
+++ b/runtime/syntax/cdrtoc.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: cdrdao(1) TOC file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2007-05-10
+" Language: cdrdao(1) TOC file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2007-05-10
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/cf.vim b/runtime/syntax/cf.vim
index 63d976d9ce..6310bc3bde 100644
--- a/runtime/syntax/cf.vim
+++ b/runtime/syntax/cf.vim
@@ -379,61 +379,58 @@ syn region cfqueryTag contained start=+<cfquery+ end=+>+ keepend contains=cfTagN
syn region cfSqlregion start=+<cfquery\_[^>]*>+ keepend end=+</cfquery>+me=s-1 matchgroup=NONE contains=@cfSql,cfComment,@htmlTagNameCluster,cfqueryTag,cfHashRegion
" Define the highlighting.
-command -nargs=+ CfHiLink hi def link <args>
if exists("d_noinclude_html")
" The default html-style highlighting copied from html.vim.
- CfHiLink htmlTag Function
- CfHiLink htmlEndTag Identifier
- CfHiLink htmlArg Type
- CfHiLink htmlTagName htmlStatement
- CfHiLink htmlValue String
- CfHiLink htmlPreProc PreProc
- CfHiLink htmlString String
- CfHiLink htmlStatement Statement
- CfHiLink htmlValue String
- CfHiLink htmlTagError htmlError
- CfHiLink htmlError Error
+ hi def link htmlTag Function
+ hi def link htmlEndTag Identifier
+ hi def link htmlArg Type
+ hi def link htmlTagName htmlStatement
+ hi def link htmlValue String
+ hi def link htmlPreProc PreProc
+ hi def link htmlString String
+ hi def link htmlStatement Statement
+ hi def link htmlValue String
+ hi def link htmlTagError htmlError
+ hi def link htmlError Error
endif
-CfHiLink cfTagName Statement
-CfHiLink cfCustomTagName Statement
-CfHiLink cfArg Type
-CfHiLink cfFunctionName Function
-CfHiLink cfHashRegion PreProc
-CfHiLink cfComment Comment
-CfHiLink cfCommentTodo Todo
-CfHiLink cfOperator Operator
-CfHiLink cfOperatorMatch Operator
-CfHiLink cfScope Title
-CfHiLink cfBool Constant
-
-CfHiLink cfscriptBlock Special
-CfHiLink cfscriptTag htmlTag
-CfHiLink cfSetRegion PreProc
-CfHiLink cfSetLHSRegion htmlTag
-CfHiLink cfSetTagEnd htmlTag
-
-CfHiLink cfScriptLineComment Comment
-CfHiLink cfScriptComment Comment
-CfHiLink cfScriptStringS String
-CfHiLink cfScriptStringD String
-CfHiLink cfScriptNumber cfScriptValue
-CfHiLink cfScriptConditional Conditional
-CfHiLink cfScriptRepeat Repeat
-CfHiLink cfScriptBranch Conditional
-CfHiLink cfScriptSpecial Type
-CfHiLink cfScriptStatement Statement
-CfHiLink cfScriptBraces Function
-CfHiLink cfScriptKeyword Function
-CfHiLink cfScriptError Error
-CfHiLink cfDeprecatedTag Error
-CfHiLink cfDeprecatedFunction Error
-CfHiLink cfScrParenError cfScriptError
-
-CfHiLink cfqueryTag htmlTag
-
-delcommand CfHiLink
+hi def link cfTagName Statement
+hi def link cfCustomTagName Statement
+hi def link cfArg Type
+hi def link cfFunctionName Function
+hi def link cfHashRegion PreProc
+hi def link cfComment Comment
+hi def link cfCommentTodo Todo
+hi def link cfOperator Operator
+hi def link cfOperatorMatch Operator
+hi def link cfScope Title
+hi def link cfBool Constant
+
+hi def link cfscriptBlock Special
+hi def link cfscriptTag htmlTag
+hi def link cfSetRegion PreProc
+hi def link cfSetLHSRegion htmlTag
+hi def link cfSetTagEnd htmlTag
+
+hi def link cfScriptLineComment Comment
+hi def link cfScriptComment Comment
+hi def link cfScriptStringS String
+hi def link cfScriptStringD String
+hi def link cfScriptNumber cfScriptValue
+hi def link cfScriptConditional Conditional
+hi def link cfScriptRepeat Repeat
+hi def link cfScriptBranch Conditional
+hi def link cfScriptSpecial Type
+hi def link cfScriptStatement Statement
+hi def link cfScriptBraces Function
+hi def link cfScriptKeyword Function
+hi def link cfScriptError Error
+hi def link cfDeprecatedTag Error
+hi def link cfDeprecatedFunction Error
+hi def link cfScrParenError cfScriptError
+
+hi def link cfqueryTag htmlTag
let b:current_syntax = "cf"
diff --git a/runtime/syntax/cfg.vim b/runtime/syntax/cfg.vim
index b82fb26fc0..a50297d418 100644
--- a/runtime/syntax/cfg.vim
+++ b/runtime/syntax/cfg.vim
@@ -3,11 +3,8 @@
" Maintainer: Igor N. Prischepoff (igor@tyumbit.ru, pri_igor@mail.ru)
" Last change: 2012 Aug 11
-" 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")
+" quit when a syntax file was already loaded
+if exists ("b:current_syntax")
finish
endif
@@ -36,25 +33,16 @@ syn match CfgComment ";.*"
syn match CfgComment "\/\/.*"
" Define the default hightlighting.
-" 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_cfg_syn_inits")
- if version < 508
- let did_cfg_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink CfgOnOff Label
- HiLink CfgComment Comment
- HiLink CfgSection Type
- HiLink CfgString String
- HiLink CfgParams Keyword
- HiLink CfgValues Constant
- HiLink CfgDirectory Directory
- HiLink UncPath Directory
-
- delcommand HiLink
-endif
+" 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
index add7395093..61f475bc99 100644
--- a/runtime/syntax/ch.vim
+++ b/runtime/syntax/ch.vim
@@ -8,21 +8,14 @@
" Ch is a C/C++ interpreter with many high level extensions
"
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
" Read the C syntax to start with
-if version < 600
- so <sfile>:p:h/c.vim
-else
- runtime! syntax/c.vim
- unlet b:current_syntax
-endif
+runtime! syntax/c.vim
+unlet b:current_syntax
" Ch extentions
@@ -33,20 +26,12 @@ syn keyword chStructure class
syn keyword chType string_t array
" Default highlighting
-if version >= 508 || !exists("did_ch_syntax_inits")
- if version < 508
- let did_ch_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink chAccess chStatement
- HiLink chExceptions Exception
- HiLink chStatement Statement
- HiLink chType Type
- HiLink chStructure Structure
- delcommand HiLink
-endif
+
+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"
diff --git a/runtime/syntax/change.vim b/runtime/syntax/change.vim
index e9bf88b9d6..a92767e903 100644
--- a/runtime/syntax/change.vim
+++ b/runtime/syntax/change.vim
@@ -7,11 +7,8 @@
" in the articles by Donald E. Knuth and Silvio Levy cited in "web.vim" and
" "cweb.vim" respectively.
-" For version 5.x: Clear all syntax items
-" For version 6.x: Quit when a syntax file was already loaded
-if version < 600
- syn clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -21,21 +18,11 @@ 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.
-" 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_change_syntax_inits")
- if version < 508
- let did_change_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink changeFromMaterial String
- HiLink changeToMaterial Statement
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link changeFromMaterial String
+hi def link changeToMaterial Statement
+
let b:current_syntax = "change"
diff --git a/runtime/syntax/changelog.vim b/runtime/syntax/changelog.vim
index 33d31ba466..cf9021ef05 100644
--- a/runtime/syntax/changelog.vim
+++ b/runtime/syntax/changelog.vim
@@ -4,11 +4,8 @@
" Maintainer: Corinna Vinschen <vinschen@redhat.com>
" Last Change: June 1, 2003
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -28,17 +25,12 @@ endif
syn match changelogText "^\s.*$" contains=changelogMail,changelogNumber,changelogMonth,changelogDay,changelogError
syn match changelogHeader "^\S.*$" contains=changelogNumber,changelogMonth,changelogDay,changelogMail
-if version < 600
- syn region changelogFiles start="^\s\+[+*]\s" end=":\s" end="^$" contains=changelogBullet,changelogColon,changelogError keepend
- syn region changelogFiles start="^\s\+[([]" end=":\s" end="^$" contains=changelogBullet,changelogColon,changelogError keepend
- syn match changelogColon contained ":\s"
-else
- 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 ":"
-endif
+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
@@ -46,32 +38,20 @@ syn keyword changelogDay contained mon tue wed thu fri sat sun
syn match changelogNumber contained "[.-]*[0-9]\+"
" 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_changelog_syntax_inits")
- if version < 508
- let did_changelog_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" 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
- HiLink changelogText Normal
- HiLink changelogBullet Type
- HiLink changelogColon Type
- HiLink changelogFiles Comment
- if version >= 600
- HiLink changelogFuncs Comment
- endif
- HiLink changelogHeader Statement
- HiLink changelogMail Special
- HiLink changelogNumber Number
- HiLink changelogMonth Number
- HiLink changelogDay Number
- HiLink changelogError Folded
-
- delcommand HiLink
-endif
let b:current_syntax = "changelog"
diff --git a/runtime/syntax/chaskell.vim b/runtime/syntax/chaskell.vim
index 3f764d0e8a..4b1e8c53be 100644
--- a/runtime/syntax/chaskell.vim
+++ b/runtime/syntax/chaskell.vim
@@ -9,10 +9,6 @@
let b:hs_chs=1
" Include standard Haskell highlighting
-if version < 600
- source <sfile>:p:h/haskell.vim
-else
- runtime! syntax/haskell.vim
-endif
+runtime! syntax/haskell.vim
" vim: ts=8
diff --git a/runtime/syntax/cheetah.vim b/runtime/syntax/cheetah.vim
index 7eb17567cf..9567ecbbca 100644
--- a/runtime/syntax/cheetah.vim
+++ b/runtime/syntax/cheetah.vim
@@ -8,11 +8,8 @@
" PSP-style tags: <% .. %> (obsoleted feature)
" doc-strings and header comments (rarely used feature)
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -36,25 +33,15 @@ syn match cheetahComment "##.*$" display
syn region cheetahMultiLineComment start="#\*" end="\*#"
" 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_cheetah_syn_inits")
- if version < 508
- let did_cheetah_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink cheetahPlaceHolder Identifier
- HiLink cheetahDirective PreCondit
- HiLink cheetahKeyword Define
- HiLink cheetahContinuation Special
- HiLink cheetahComment Comment
- HiLink cheetahMultiLineComment Comment
-
- delcommand HiLink
-endif
+" 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/chill.vim b/runtime/syntax/chill.vim
index e5200fe722..b95df68bc8 100644
--- a/runtime/syntax/chill.vim
+++ b/runtime/syntax/chill.vim
@@ -11,11 +11,8 @@
" & Communications LTd.)
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -124,67 +121,57 @@ endif
exec "syn sync ccomment chillComment minlines=" . chill_minlines
" 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_ch_syntax_inits")
- if version < 508
- let did_ch_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink chillLabel Label
- HiLink chillUserLabel Label
- HiLink chillConditional Conditional
- " hi chillConditional term=bold ctermfg=red guifg=red gui=bold
-
- HiLink chillRepeat Repeat
- HiLink chillProcess Repeat
- HiLink chillSignal Repeat
- HiLink chillCharacter Character
- HiLink chillSpecialCharacter chillSpecial
- HiLink chillNumber Number
- HiLink chillFloat Float
- HiLink chillOctalError chillError
- HiLink chillParenError chillError
- HiLink chillInParen chillError
- HiLink chillCommentError chillError
- HiLink chillSpaceError chillError
- HiLink chillOperator Operator
- HiLink chillStructure Structure
- HiLink chillBlock Operator
- HiLink chillScope Operator
- "hi chillEDML term=underline ctermfg=DarkRed guifg=Red
- HiLink chillEDML PreProc
- "hi chillBoolConst term=bold ctermfg=brown guifg=brown
- HiLink chillBoolConst Constant
- "hi chillLogical term=bold ctermfg=brown guifg=brown
- HiLink chillLogical Constant
- HiLink chillStorageClass StorageClass
- HiLink chillInclude Include
- HiLink chillPreProc PreProc
- HiLink chillDefine Macro
- HiLink chillIncluded chillString
- HiLink chillError Error
- HiLink chillStatement Statement
- HiLink chillPreCondit PreCondit
- HiLink chillType Type
- HiLink chillCommentError chillError
- HiLink chillCommentString chillString
- HiLink chillComment2String chillString
- HiLink chillCommentSkip chillComment
- HiLink chillString String
- HiLink chillComment Comment
- " hi chillComment term=None ctermfg=lightblue guifg=lightblue
- HiLink chillSpecial SpecialChar
- HiLink chillTodo Todo
- HiLink chillBlock Statement
- "HiLink chillIdentifier Identifier
- HiLink chillBracket Delimiter
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/cl.vim b/runtime/syntax/cl.vim
index 41c045fb09..b765682547 100644
--- a/runtime/syntax/cl.vim
+++ b/runtime/syntax/cl.vim
@@ -10,19 +10,12 @@
" Version: 6
" Last Change: Mar 06 2013
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
-if version >= 600
- setlocal iskeyword=@,48-57,_,-
-else
- set iskeyword=@,48-57,_,-
-endif
+setlocal iskeyword=@,48-57,_,-
syn case ignore
@@ -75,40 +68,30 @@ syn keyword clFunction asc asize chr name random slen srandom day getarg getcgi
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.
-" 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_cl_syntax_inits")
- if version < 508
- let did_cl_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink clifError Error
- HiLink clSpaceError Error
- HiLink clWhile Repeat
- HiLink clConditional Conditional
- HiLink clDebug Debug
- HiLink clNeedsWork Todo
- HiLink clTodo Todo
- HiLink clComment Comment
- HiLink clProcedure Procedure
- HiLink clBreak Procedure
- HiLink clInclude Include
- HiLink clSetOption Statement
- HiLink clSet Identifier
- HiLink clPreProc PreProc
- HiLink clOperator Operator
- HiLink clNumber Number
- HiLink clString String
- HiLink clQuote Delimiter
- HiLink clReserved Identifier
- HiLink clFunction Function
- HiLink clStatement Statement
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/clean.vim b/runtime/syntax/clean.vim
index ea95aa209e..70bf654fb7 100644
--- a/runtime/syntax/clean.vim
+++ b/runtime/syntax/clean.vim
@@ -4,11 +4,8 @@
" Co-Author: Arthur van Leeuwen <arthurvl@sci.kun.nl>
" Last Change: 2013 Oct 15 by Jurriën Stutterheim
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -52,49 +49,39 @@ syn match cleanFuncTypeDef "\([a-zA-Z].*\|(\=[-~@#$%^?!+*<>\/|&=:]\+)\=\)\s*\(in
" 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_clean_syntax_init")
- if version < 508
- let did_clean_syntax_init = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- " Comments
- HiLink cleanComment Comment
- " Constants and denotations
- HiLink cleanStringDenot String
- HiLink cleanCharDenot Character
- HiLink cleanIntegerDenot Number
- HiLink cleanBoolDenot Boolean
- HiLink cleanRealDenot Float
- " Identifiers
- " Statements
- HiLink cleanTypeClass Keyword
- HiLink cleanConditional Conditional
- HiLink cleanLabel Label
- HiLink cleanKeyword Keyword
- " Generic Preprocessing
- HiLink cleanIncludeKeyword Include
- HiLink cleanModuleSystem PreProc
- " Type
- HiLink cleanBasicType Type
- HiLink cleanSpecialType Type
- HiLink cleanFuncTypeDef Typedef
- " Special
- HiLink cleanSpecial Special
- HiLink cleanList Special
- HiLink cleanArray Special
- HiLink cleanRecord Special
- HiLink cleanTuple Special
- " Error
- " Todo
- HiLink cleanTodo Todo
+ " 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
- delcommand HiLink
-endif
let b:current_syntax = "clean"
diff --git a/runtime/syntax/clipper.vim b/runtime/syntax/clipper.vim
index 6ee3892845..38ba9a4fe9 100644
--- a/runtime/syntax/clipper.vim
+++ b/runtime/syntax/clipper.vim
@@ -4,11 +4,8 @@
" Some things based on c.vim by Bram Moolenaar and pascal.vim by Mario Eusebio
" Last Change: 2011 Dec 29 by Thilo Six
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -114,32 +111,22 @@ syntax match clipperComment "^\*.*"
" 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_clipper_syntax_inits")
- if version < 508
- let did_clipper_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink clipperConditional Conditional
- HiLink clipperRepeat Repeat
- HiLink clipperNumber Number
- HiLink clipperInclude Include
- HiLink clipperComment Comment
- HiLink clipperOperator Operator
- HiLink clipperStorageClass StorageClass
- HiLink clipperStatement Statement
- HiLink clipperString String
- HiLink clipperFunction Function
- HiLink clipperLineContinuation Special
- HiLink clipperDelimiters Delimiter
- HiLink clipperUserVariable Identifier
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/clojure.vim b/runtime/syntax/clojure.vim
index 2b48146b5a..ffdd5c2ab0 100644
--- a/runtime/syntax/clojure.vim
+++ b/runtime/syntax/clojure.vim
@@ -136,7 +136,7 @@ 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\<[a-zA-z]+\>)" contained display
+syntax match clojureRegexpBackRef "\v\\%([1-9]\d*|k\<[a-zA-Z]+\>)" contained display
" Mode modifiers, mode-modified spans, lookaround, regular and atomic
" grouping, and named-capturing.
diff --git a/runtime/syntax/cmake.vim b/runtime/syntax/cmake.vim
index 4586940c5e..f7616e4c6d 100644
--- a/runtime/syntax/cmake.vim
+++ b/runtime/syntax/cmake.vim
@@ -1,87 +1,477 @@
" Vim syntax file
" Program: CMake - Cross-Platform Makefile Generator
-" Module: $RCSfile: cmake-syntax.vim,v $
+" Version: cmake version 3.9.20170830-ge0713
" Language: CMake
-" Maintainer: Dimitri Merejkowsky <d.merej@gmail.com>
-" Former Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com>
-" Author: Andy Cedilnik <andy.cedilnik@kitware.com>
-" Last Change: 2015 Dec 17
-" Version: $Revision: 1.10 $
+" Author: Andy Cedilnik <andy.cedilnik@kitware.com>,
+" Nicholas Hutchinson <nshutchinson@gmail.com>,
+" Patrick Boettcher <patrick.boettcher@posteo.de>
+" Maintainer: Dimitri Merejkowsky <d.merej@gmail.com>
+" Former Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com>
+" Last Change: 2017 Aug 30
"
" Licence: The CMake license applies to this file. See
-" http://www.cmake.org/HTML/Copyright.html
+" https://cmake.org/licensing
" This implies that distribution with Vim is allowed
-" 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")
+if exists("b:current_syntax")
finish
endif
let s:keepcpo= &cpo
set cpo&vim
-syn case ignore
+syn region cmakeComment start="#" end="$" contains=cmakeTodo,cmakeLuaComment,@Spell
+syn region cmakeLuaComment start="\[\z(=*\)\[" end="\]\z1\]" contains=cmakeTodo,@Spell
+
syn match cmakeEscaped /\(\\\\\|\\"\|\\n\|\\t\)/ contained
-syn region cmakeComment start="#" end="$" contains=@Spell,cmakeTodo
-syn region cmakeRegistry start=/\[/ end=/]/
- \ contained oneline contains=CONTAINED,cmakeTodo,cmakeEscaped
-syn region cmakeVariableValue start=/\${/ end=/}/
- \ contained oneline contains=CONTAINED,cmakeTodo
-syn region cmakeEnvironment start=/\$ENV{/ end=/}/
- \ contained oneline contains=CONTAINED,cmakeTodo
-syn region cmakeString start=/"/ end=/"/
- \ contains=CONTAINED,cmakeTodo,cmakeOperators
-syn region cmakeArguments start=/(/ end=/)/
- \ contains=ALLBUT,cmakeArguments,cmakeTodo
-syn keyword cmakeSystemVariables
- \ WIN32 UNIX APPLE CYGWIN BORLAND MINGW MSVC MSVC_IDE MSVC60 MSVC70 MSVC71 MSVC80 MSVC90
-syn keyword cmakeOperators
- \ ABSOLUTE AND BOOL CACHE COMMAND DEFINED DOC EQUAL EXISTS EXT FALSE GREATER INTERNAL LESS MATCHES NAME NAMES NAME_WE NOT OFF ON OR PATH PATHS PROGRAM STREQUAL STRGREATER STRING STRLESS TRUE
- \ contained
-syn keyword cmakeDeprecated ABSTRACT_FILES BUILD_NAME SOURCE_FILES SOURCE_FILES_REMOVE VTK_MAKE_INSTANTIATOR VTK_WRAP_JAVA VTK_WRAP_PYTHON VTK_WRAP_TCL WRAP_EXCLUDE_FILES
- \ nextgroup=cmakeArguments
+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
+
+syn region cmakeVariableValue start="${" end="}" contained oneline contains=cmakeVariable,cmakeTodo
+
+syn region cmakeEnvironment start="$ENV{" end="}" contained oneline contains=cmakeTodo
+
+syn region cmakeArguments start="(" end=")" contains=ALLBUT,cmakeCommand,cmakeCommandConditional,cmakeCommandRepeat,cmakeCommandDeprecated,cmakeArguments,cmakeTodo
+
+syn case match
+
+syn keyword cmakeProperty contained
+ \ ABSTRACT ADDITIONAL_MAKE_CLEAN_FILES ADVANCED ALIASED_TARGET 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_SOURCE_GROUP AUTOGEN_TARGETS_FOLDER AUTOGEN_TARGET_DEPENDS AUTOMOC AUTOMOC_DEPEND_FILTERS AUTOMOC_MACRO_NAMES AUTOMOC_MOC_OPTIONS AUTOMOC_SOURCE_GROUP AUTOMOC_TARGETS_FOLDER AUTORCC AUTORCC_OPTIONS AUTORCC_SOURCE_GROUP AUTOUIC AUTOUIC_OPTIONS AUTOUIC_SEARCH_PATHS BINARY_DIR BUILDSYSTEM_TARGETS BUILD_RPATH BUILD_WITH_INSTALL_NAME_DIR BUILD_WITH_INSTALL_RPATH BUNDLE BUNDLE_EXTENSION CACHE_VARIABLES CLEAN_NO_CUSTOM CMAKE_CONFIGURE_DEPENDS CMAKE_CXX_KNOWN_FEATURES CMAKE_C_KNOWN_FEATURES 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 COST CPACK_DESKTOP_SHORTCUTS CPACK_NEVER_OVERWRITE CPACK_PERMANENT CPACK_STARTUP_SHORTCUTS CPACK_START_MENU_SHORTCUTS CPACK_WIX_ACL CROSSCOMPILING_EMULATOR CUDA_EXTENSIONS CUDA_PTX_COMPILATION CUDA_RESOLVE_DEVICE_SYMBOLS CUDA_SEPARABLE_COMPILATION CUDA_STANDARD CUDA_STANDARD_REQUIRED CXX_EXTENSIONS CXX_STANDARD CXX_STANDARD_REQUIRED C_EXTENSIONS C_STANDARD C_STANDARD_REQUIRED DEBUG_CONFIGURATIONS DEBUG_POSTFIX DEFINE_SYMBOL DEFINITIONS DEPENDS DEPLOYMENT_REMOTE_DIRECTORY DISABLED DISABLED_FEATURES ECLIPSE_EXTRA_NATURES ENABLED_FEATURES ENABLED_LANGUAGES ENABLE_EXPORTS ENVIRONMENT EXCLUDE_FROM_ALL EXCLUDE_FROM_DEFAULT_BUILD EXPORT_NAME 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_FORMAT Fortran_MODULE_DIRECTORY GENERATED GENERATOR_FILE_NAME GENERATOR_IS_MULTI_CONFIG GLOBAL_DEPENDS_DEBUG_MODE GLOBAL_DEPENDS_NO_CYCLES GNUtoMS HAS_CXX HEADER_FILE_ONLY HELPSTRING IMPLICIT_DEPENDS_INCLUDE_TRANSFORM IMPORTED IMPORTED_CONFIGURATIONS 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_OBJECTS IMPORTED_SONAME IMPORT_PREFIX IMPORT_SUFFIX INCLUDE_DIRECTORIES INCLUDE_REGULAR_EXPRESSION INSTALL_NAME_DIR INSTALL_RPATH INSTALL_RPATH_USE_LINK_PATH INTERFACE_AUTOUIC_OPTIONS INTERFACE_COMPILE_DEFINITIONS INTERFACE_COMPILE_FEATURES INTERFACE_COMPILE_OPTIONS INTERFACE_INCLUDE_DIRECTORIES INTERFACE_LINK_LIBRARIES INTERFACE_POSITION_INDEPENDENT_CODE INTERFACE_SOURCES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES INTERPROCEDURAL_OPTIMIZATION IN_TRY_COMPILE IOS_INSTALL_COMBINED JOB_POOLS JOB_POOL_COMPILE JOB_POOL_LINK 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_SEARCH_END_STATIC LINK_SEARCH_START_STATIC LINK_WHAT_YOU_USE LISTFILE_STACK LOCATION MACOSX_BUNDLE MACOSX_BUNDLE_INFO_PLIST MACOSX_FRAMEWORK_INFO_PLIST MACOSX_PACKAGE_LOCATION MACOSX_RPATH MACROS MANUALLY_ADDED_DEPENDENCIES MEASUREMENT MODIFIED NAME NO_SONAME NO_SYSTEM_FROM_IMPORTED OBJECT_DEPENDS OBJECT_OUTPUTS OSX_ARCHITECTURES OUTPUT_NAME PACKAGES_FOUND PACKAGES_NOT_FOUND PARENT_DIRECTORY PASS_REGULAR_EXPRESSION PDB_NAME PDB_OUTPUT_DIRECTORY POSITION_INDEPENDENT_CODE POST_INSTALL_SCRIPT PREDEFINED_TARGETS_FOLDER PREFIX PRE_INSTALL_SCRIPT PRIVATE_HEADER PROCESSORS PROJECT_LABEL PUBLIC_HEADER REPORT_UNDEFINED_PROPERTIES REQUIRED_FILES RESOURCE 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_RETURN_CODE SOURCES SOURCE_DIR SOVERSION STATIC_LIBRARY_FLAGS STRINGS SUBDIRECTORIES SUFFIX SYMBOLIC TARGET_ARCHIVES_MAY_BE_SHARED_LIBS TARGET_MESSAGES TARGET_SUPPORTS_SHARED_LIBS TEST_INCLUDE_FILE TEST_INCLUDE_FILES TIMEOUT TIMEOUT_AFTER_MATCH TYPE USE_FOLDERS VALUE VARIABLES VERSION VISIBILITY_INLINES_HIDDEN VS_CONFIGURATION_TYPE VS_COPY_TO_OUT_DIR VS_DEBUGGER_WORKING_DIRECTORY VS_DEPLOYMENT_CONTENT VS_DEPLOYMENT_LOCATION VS_DESKTOP_EXTENSIONS_VERSION VS_DOTNET_REFERENCES VS_DOTNET_REFERENCES_COPY_LOCAL VS_DOTNET_TARGET_FRAMEWORK_VERSION VS_GLOBAL_KEYWORD VS_GLOBAL_PROJECT_TYPES VS_GLOBAL_ROOTNAMESPACE VS_INCLUDE_IN_VSIX VS_IOT_EXTENSIONS_VERSION VS_IOT_STARTUP_TASK VS_KEYWORD VS_MOBILE_EXTENSIONS_VERSION VS_RESOURCE_GENERATOR VS_SCC_AUXPATH VS_SCC_LOCALPATH VS_SCC_PROJECTNAME VS_SCC_PROVIDER VS_SDK_REFERENCES VS_SHADER_ENTRYPOINT VS_SHADER_FLAGS VS_SHADER_MODEL VS_SHADER_TYPE 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 WILL_FAIL WIN32_EXECUTABLE WINDOWS_EXPORT_ALL_SYMBOLS WORKING_DIRECTORY WRAP_EXCLUDE XCODE_EMIT_EFFECTIVE_PLATFORM_NAME XCODE_EXPLICIT_FILE_TYPE XCODE_FILE_ATTRIBUTES XCODE_LAST_KNOWN_FILE_TYPE XCODE_PRODUCT_TYPE XCTEST
+
+syn keyword cmakeVariable contained
+ \ ANDROID APPLE BORLAND BUILD_SHARED_LIBS CMAKE_ABSOLUTE_DESTINATION_FILES 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_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_PROCESS_MAX CMAKE_ANDROID_PROGUARD CMAKE_ANDROID_PROGUARD_CONFIG_PATH CMAKE_ANDROID_SECURE_PROPS_PATH CMAKE_ANDROID_SKIP_ANT_STEP CMAKE_ANDROID_STANDALONE_TOOLCHAIN CMAKE_ANDROID_STL_TYPE CMAKE_APPBUNDLE_PATH CMAKE_AR CMAKE_ARCHIVE_OUTPUT_DIRECTORY CMAKE_ARGC CMAKE_ARGV0 CMAKE_AUTOMOC CMAKE_AUTOMOC_DEPEND_FILTERS CMAKE_AUTOMOC_MACRO_NAMES CMAKE_AUTOMOC_MOC_OPTIONS CMAKE_AUTOMOC_RELAXED_MODE CMAKE_AUTORCC CMAKE_AUTORCC_OPTIONS CMAKE_AUTOUIC CMAKE_AUTOUIC_OPTIONS CMAKE_AUTOUIC_SEARCH_PATHS CMAKE_BACKWARDS_COMPATIBILITY CMAKE_BINARY_DIR CMAKE_BUILD_RPATH CMAKE_BUILD_TOOL CMAKE_BUILD_TYPE CMAKE_BUILD_WITH_INSTALL_NAME_DIR CMAKE_BUILD_WITH_INSTALL_RPATH CMAKE_CACHEFILE_DIR CMAKE_CACHE_MAJOR_VERSION CMAKE_CACHE_MINOR_VERSION CMAKE_CACHE_PATCH_VERSION CMAKE_CFG_INTDIR CMAKE_CL_64 CMAKE_CODELITE_USE_TARGETS 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_CONFIGURATION_TYPES CMAKE_CROSSCOMPILING CMAKE_CROSSCOMPILING_EMULATOR CMAKE_CTEST_COMMAND CMAKE_CUDA_EXTENSIONS CMAKE_CUDA_STANDARD CMAKE_CUDA_STANDARD_REQUIRED CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES CMAKE_CURRENT_BINARY_DIR CMAKE_CURRENT_LIST_DIR CMAKE_CURRENT_LIST_FILE CMAKE_CURRENT_LIST_LINE CMAKE_CURRENT_SOURCE_DIR CMAKE_CXX_COMPILE_FEATURES CMAKE_CXX_EXTENSIONS CMAKE_CXX_STANDARD CMAKE_CXX_STANDARD_REQUIRED CMAKE_C_COMPILE_FEATURES CMAKE_C_EXTENSIONS CMAKE_C_STANDARD CMAKE_C_STANDARD_REQUIRED CMAKE_DEBUG_POSTFIX CMAKE_DEBUG_TARGET_PROPERTIES CMAKE_DEPENDS_IN_PROJECT_ONLY CMAKE_DIRECTORY_LABELS CMAKE_DL_LIBS CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT CMAKE_ECLIPSE_MAKE_ARGUMENTS CMAKE_ECLIPSE_VERSION CMAKE_EDIT_COMMAND CMAKE_ENABLE_EXPORTS CMAKE_ERROR_DEPRECATED CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION CMAKE_EXECUTABLE_SUFFIX CMAKE_EXE_LINKER_FLAGS CMAKE_EXE_LINKER_FLAGS_INIT CMAKE_EXPORT_COMPILE_COMMANDS CMAKE_EXPORT_NO_PACKAGE_REGISTRY CMAKE_EXTRA_GENERATOR CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES CMAKE_FIND_APPBUNDLE 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_SORT_DIRECTION CMAKE_FIND_PACKAGE_SORT_ORDER 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_FRAMEWORK_PATH CMAKE_Fortran_FORMAT CMAKE_Fortran_MODDIR_DEFAULT CMAKE_Fortran_MODDIR_FLAG CMAKE_Fortran_MODOUT_FLAG CMAKE_Fortran_MODULE_DIRECTORY CMAKE_GENERATOR CMAKE_GENERATOR_PLATFORM CMAKE_GENERATOR_TOOLSET CMAKE_GNUtoMS CMAKE_HOME_DIRECTORY CMAKE_HOST_APPLE 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_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_MESSAGE CMAKE_INSTALL_NAME_DIR CMAKE_INSTALL_PREFIX CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT CMAKE_INSTALL_RPATH CMAKE_INSTALL_RPATH_USE_LINK_PATH CMAKE_INTERNAL_PLATFORM_ABI CMAKE_INTERPROCEDURAL_OPTIMIZATION CMAKE_IOS_INSTALL_COMBINED CMAKE_JOB_POOL_COMPILE CMAKE_JOB_POOL_LINK 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_INTERFACE_LIBRARIES 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_MACOSX_BUNDLE CMAKE_MACOSX_RPATH CMAKE_MAJOR_VERSION CMAKE_MAKE_PROGRAM CMAKE_MATCH_COUNT 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_NINJA_OUTPUT_PATH_PREFIX CMAKE_NOT_USING_CONFIG_FLAGS CMAKE_NO_BUILTIN_CHRPATH CMAKE_NO_SYSTEM_FROM_IMPORTED CMAKE_OBJECT_PATH_MAX CMAKE_OSX_ARCHITECTURES CMAKE_OSX_DEPLOYMENT_TARGET CMAKE_OSX_SYSROOT CMAKE_PARENT_LIST_FILE CMAKE_PATCH_VERSION CMAKE_PDB_OUTPUT_DIRECTORY CMAKE_POSITION_INDEPENDENT_CODE CMAKE_PREFIX_PATH CMAKE_PROGRAM_PATH CMAKE_PROJECT_DESCRIPTION CMAKE_PROJECT_NAME CMAKE_RANLIB CMAKE_ROOT CMAKE_RUNTIME_OUTPUT_DIRECTORY CMAKE_SCRIPT_MODE_FILE 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_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_SYSROOT CMAKE_SYSROOT_COMPILE CMAKE_SYSROOT_LINK CMAKE_SYSTEM CMAKE_SYSTEM_APPBUNDLE_PATH CMAKE_SYSTEM_FRAMEWORK_PATH CMAKE_SYSTEM_IGNORE_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_LANGUAGE_VERSION CMAKE_TOOLCHAIN_FILE CMAKE_TRY_COMPILE_CONFIGURATION CMAKE_TRY_COMPILE_PLATFORM_VARIABLES CMAKE_TRY_COMPILE_TARGET_TYPE CMAKE_TWEAK_VERSION CMAKE_USER_MAKE_RULES_OVERRIDE CMAKE_USE_RELATIVE_PATHS CMAKE_VERBOSE_MAKEFILE CMAKE_VERSION CMAKE_VISIBILITY_INLINES_HIDDEN CMAKE_VS_DEVENV_COMMAND CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD CMAKE_VS_INTEL_Fortran_PROJECT_VERSION CMAKE_VS_MSBUILD_COMMAND CMAKE_VS_NsightTegra_VERSION CMAKE_VS_PLATFORM_NAME CMAKE_VS_PLATFORM_TOOLSET CMAKE_VS_PLATFORM_TOOLSET_CUDA CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION CMAKE_WARN_DEPRECATED CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION CMAKE_WIN32_EXECUTABLE CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS CMAKE_XCODE_GENERATE_SCHEME CMAKE_XCODE_PLATFORM_TOOLSET CPACK_ABSOLUTE_DESTINATION_FILES CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION CPACK_INCLUDE_TOPLEVEL_DIRECTORY CPACK_INSTALL_SCRIPT 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_MEMCHECK_IGNORE CTEST_CUSTOM_POST_MEMCHECK CTEST_CUSTOM_POST_TEST CTEST_CUSTOM_PRE_MEMCHECK CTEST_CUSTOM_PRE_TEST CTEST_CUSTOM_TEST_IGNORE 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_SCP_COMMAND CTEST_SITE CTEST_SOURCE_DIRECTORY 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_USE_LAUNCHERS CYGWIN ENV EXECUTABLE_OUTPUT_PATH GHS-MULTI LIBRARY_OUTPUT_PATH MINGW MSVC MSVC10 MSVC11 MSVC12 MSVC14 MSVC60 MSVC70 MSVC71 MSVC80 MSVC90 MSVC_IDE MSVC_VERSION PROJECT_BINARY_DIR PROJECT_DESCRIPTION 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
+
+syn keyword cmakeKWExternalProject contained
+ \ ALGO AWS BINARY_DIR BUILD_ALWAYS BUILD_BYPRODUCTS BUILD_COMMAND BUILD_IN_SOURCE CMAKE_ARGS CMAKE_CACHE_ARGS CMAKE_CACHE_DEFAULT_ARGS CMAKE_TLS_CAINFO CMAKE_TLS_VERIFY COMMENT CONFIGURE_COMMAND CVS CVSROOT CVS_MODULE CVS_REPOSITORY CVS_TAG DEPENDEES DEPENDERS DEPENDS DOWNLOADED_FILE DOWNLOAD_COMMAND DOWNLOAD_DIR 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 FORCE GIT_CONFIG GIT_PROGRESS GIT_REMOTE_NAME GIT_REPOSITORY GIT_SHALLOW GIT_SUBMODULES GIT_TAG HG_REPOSITORY HG_TAG HTTP_HEADER HTTP_PASSWORD HTTP_USERNAME INDEPENDENT_STEP_TARGETS INSTALL_COMMAND INSTALL_DIR JOB_POOLS LIST_SEPARATOR LOG_ LOG_BUILD LOG_CONFIGURE LOG_DOWNLOAD LOG_INSTALL LOG_TEST LOG_UPDATE MAKE_EXE NAMES NOTE NO_DEPENDS PATCH_COMMAND PREFIX PROPERTY 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 USES_TERMINAL_BUILD USES_TERMINAL_CONFIGURE USES_TERMINAL_DOWNLOAD USES_TERMINAL_INSTALL USES_TERMINAL_TEST USES_TERMINAL_UPDATE WORKING_DIRECTORY
+
+syn keyword cmakeKWadd_compile_options contained
+ \ COMPILE_OPTIONS
+
+syn keyword cmakeKWadd_custom_command contained
+ \ APPEND ARGS BYPRODUCTS CC COMMAND COMMAND_EXPAND_LISTS COMMENT CROSSCOMPILING_EMULATOR DEPENDS DEPFILE GENERATED IMPLICIT_DEPENDS INCLUDE_DIRECTORIES JOIN MAIN_DEPENDENCY NOT OUTPUT POST_BUILD PRE_BUILD PRE_LINK SYMBOLIC TARGET_FILE TARGET_PROPERTY 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 JOIN SOURCES TARGET_PROPERTY 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 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 ARCHIVE_OUTPUT_DIRECTORY CLI CONFIG DLL EXCLUDE_FROM_ALL FRAMEWORK GLOBAL HEADER_FILE_ONLY IMPORTED IMPORTED_ IMPORTED_LOCATION IMPORTED_LOCATION_ INTERFACE_ LIBRARY_OUTPUT_DIRECTORY MODULE OBJECT ON OUTPUT_NAME POSITION_INDEPENDENT_CODE POST_BUILD PRE_BUILD PRE_LINK RUNTIME_OUTPUT_DIRECTORY SHARED STATIC TARGET_OBJECTS UNKNOWN
+
+syn keyword cmakeKWadd_subdirectory contained
+ \ EXCLUDE_FROM_ALL
+
+syn keyword cmakeKWadd_test contained
+ \ BUILD_TESTING COMMAND CONFIGURATIONS FAIL_REGULAR_EXPRESSION NAME PASS_REGULAR_EXPRESSION TARGET_FILE WILL_FAIL WORKING_DIRECTORY
+
+syn keyword cmakeKWbuild_command contained
+ \ CONFIGURATION TARGET
+
+syn keyword cmakeKWbuild_name contained
+ \ CMAKE_CXX_COMPILER
+
+syn keyword cmakeKWcmake_host_system_information contained
+ \ AVAILABLE_PHYSICAL_MEMORY AVAILABLE_VIRTUAL_MEMORY FQDN HAS_FPU HAS_MMX HAS_MMX_PLUS HAS_SERIAL_NUMBER HAS_SSE HAS_SSE_FP HAS_SSE_MMX HOSTNAME ID NUMBER_OF_LOGICAL_CORES NUMBER_OF_PHYSICAL_CORES OS_NAME OS_PLATFORM OS_RELEASE OS_VERSION PROCESSOR_DESCRIPTION PROCESSOR_NAME PROCESSOR_SERIAL_NUMBER QUERY RESULT TOTAL_PHYSICAL_MEMORY TOTAL_VIRTUAL_MEMORY
+
+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_OPTIONAL MY_INSTALL_RENAME MY_INSTALL_TARGETS MY_INSTALL_UNPARSED_ARGUMENTS OPTIONAL PARSE_ARGV RENAME TARGETS TRUE _UNPARSED_ARGUMENTS
+
+syn keyword cmakeKWcmake_policy contained
+ \ CMAKE_POLICY_DEFAULT_CMP CMP GET NNNN NO_POLICY_SCOPE OLD POP PUSH SET VERSION
+
+syn keyword cmakeKWconfigure_file contained
+ \ COPYONLY CRLF DOS ESCAPE_QUOTES FOO_ENABLE FOO_STRING LF NEWLINE_STYLE 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 CONFIGURATION CTEST_BUILD_CONFIGURATION CTEST_BUILD_FLAGS CTEST_BUILD_TARGET CTEST_PROJECT_NAME FLAGS NUMBER_ERRORS NUMBER_WARNINGS 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 DEFECT_COUNT EXCLUDE EXCLUDE_FIXTURE EXCLUDE_FIXTURE_CLEANUP EXCLUDE_FIXTURE_SETUP EXCLUDE_LABEL INCLUDE INCLUDE_LABEL OFF ON PARALLEL_LEVEL QUIET RETURN_VALUE SCHEDULE_RANDOM START STOP_TIME STRIDE TEST_LOAD
+
+syn keyword cmakeKWctest_run_script contained
+ \ NEW_PROCESS RETURN_VALUE
+
+syn keyword cmakeKWctest_start contained
+ \ APPEND QUIET TAG TRACK
+
+syn keyword cmakeKWctest_submit contained
+ \ API CDASH_UPLOAD CDASH_UPLOAD_TYPE CTEST_EXTRA_SUBMIT_FILES CTEST_NOTES_FILES FILES HTTPHEADER PARTS QUIET RETRY_COUNT RETRY_DELAY RETURN_VALUE
+
+syn keyword cmakeKWctest_test contained
+ \ APPEND BUILD CAPTURE_CMAKE_ERROR CPU EXCLUDE EXCLUDE_FIXTURE EXCLUDE_FIXTURE_CLEANUP EXCLUDE_FIXTURE_SETUP EXCLUDE_LABEL INCLUDE INCLUDE_LABEL OFF ON PARALLEL_LEVEL QUIET RETURN_VALUE SCHEDULE_RANDOM START STOP_TIME STRIDE TEST_LOAD
+
+syn keyword cmakeKWctest_update contained
+ \ QUIET RETURN_VALUE SOURCE
+
+syn keyword cmakeKWctest_upload contained
+ \ CAPTURE_CMAKE_ERROR FILES QUIET
+
+syn keyword cmakeKWdefine_property contained
+ \ BRIEF_DOCS CACHED_VARIABLE DIRECTORY FULL_DOCS GLOBAL INHERITED PROPERTY SOURCE TARGET TEST VARIABLE
+
+syn keyword cmakeKWenable_language contained
+ \ OPTIONAL
+
+syn keyword cmakeKWexec_program contained
+ \ ARGS OUTPUT_VARIABLE RETURN_VALUE
+
+syn keyword cmakeKWexecute_process contained
+ \ ANSI AUTO COMMAND ENCODING ERROR_FILE ERROR_QUIET ERROR_STRIP_TRAILING_WHITESPACE ERROR_VARIABLE INPUT_FILE NONE OEM OUTPUT_FILE OUTPUT_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE RESULTS_VARIABLE RESULT_VARIABLE TIMEOUT UTF VERBATIM WORKING_DIRECTORY
+
+syn keyword cmakeKWexport contained
+ \ ANDROID_MK APPEND CONFIG EXPORT EXPORT_LINK_INTERFACE_LIBRARIES FILE IMPORTED IMPORTED_ NAMESPACE NDK OLD PACKAGE TARGETS
+
+syn keyword cmakeKWexport_library_dependencies contained
+ \ APPEND EXPORT INCLUDE LINK_INTERFACE_LIBRARIES SET
+
+syn keyword cmakeKWfile contained
+ \ ALGO APPEND ASCII CMAKE_TLS_CAINFO CMAKE_TLS_VERIFY CONDITION CONFIG CONTENT COPY CR DESTINATION DIRECTORY_PERMISSIONS DOWNLOAD ENCODING EXCLUDE EXPECTED_HASH FILES_MATCHING FILE_PERMISSIONS FOLLOW_SYMLINKS FUNCTION GENERATE GLOB GLOB_RECURSE GUARD HASH HEX HTTPHEADER INACTIVITY_TIMEOUT INSTALL LENGTH_MAXIMUM LENGTH_MINIMUM LF LIMIT LIMIT_COUNT LIMIT_INPUT LIMIT_OUTPUT LIST_DIRECTORIES LOCK LOG MAKE_DIRECTORY NEWLINE_CONSUME NO_HEX_CONVERSION NO_SOURCE_PERMISSIONS OFFSET OLD PATTERN PROCESS READ REGEX RELATIVE RELATIVE_PATH RELEASE REMOVE REMOVE_RECURSE RENAME RESULT_VARIABLE SHOW_PROGRESS SSL STATUS STRINGS TIMESTAMP TLS_CAINFO TLS_VERIFY TO_CMAKE_PATH TO_NATIVE_PATH UPLOAD USERPWD USE_SOURCE_PERMISSIONS UTC UTF WRITE
+
+syn keyword cmakeKWfind_file contained
+ \ CMAKE_FIND_ROOT_PATH_BOTH DOC DVAR HINTS INCLUDE NAMES NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OS PATHS PATH_SUFFIXES VAR
+
+syn keyword cmakeKWfind_library contained
+ \ CMAKE_FIND_ROOT_PATH_BOTH DOC DVAR HINTS LIB NAMES NAMES_PER_DIR NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OS PATHS PATH_SUFFIXES VAR
+
+syn keyword cmakeKWfind_package contained
+ \ CMAKE_DISABLE_FIND_PACKAGE_ CMAKE_FIND_ROOT_PATH_BOTH COMPONENTS CONFIG CONFIGS DEC DVAR EXACT HINTS MODULE NAMES NATURAL NO_CMAKE_BUILDS_PATH NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PACKAGE_REGISTRY NO_CMAKE_PATH NO_CMAKE_SYSTEM_PACKAGE_REGISTRY NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_MODULE NO_POLICY_SCOPE NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OPTIONAL_COMPONENTS OS PACKAGE_FIND_NAME PACKAGE_FIND_VERSION PACKAGE_FIND_VERSION_COUNT PACKAGE_FIND_VERSION_MAJOR PACKAGE_FIND_VERSION_MINOR PACKAGE_FIND_VERSION_PATCH PACKAGE_FIND_VERSION_TWEAK PACKAGE_VERSION PACKAGE_VERSION_COMPATIBLE PACKAGE_VERSION_EXACT PACKAGE_VERSION_UNSUITABLE PATHS PATH_SUFFIXES QUIET REQUIRED SET TRUE _CONFIG _CONSIDERED_CONFIGS _CONSIDERED_VERSIONS _DIR _FIND_COMPONENTS _FIND_QUIETLY _FIND_REQUIRED _FIND_REQUIRED_ _FIND_VERSION_EXACT _FOUND
+
+syn keyword cmakeKWfind_path contained
+ \ CMAKE_FIND_ROOT_PATH_BOTH DOC DVAR HINTS INCLUDE NAMES NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OS PATHS PATH_SUFFIXES VAR
+
+syn keyword cmakeKWfind_program contained
+ \ CMAKE_FIND_ROOT_PATH_BOTH DOC DVAR HINTS NAMES NAMES_PER_DIR NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OS PATHS PATH_SUFFIXES VAR
+
+syn keyword cmakeKWfltk_wrap_ui contained
+ \ FLTK
+
+syn keyword cmakeKWforeach contained
+ \ ARGS IN ITEMS LISTS RANGE
+
+syn keyword cmakeKWfunction contained
+ \ ARGC ARGN ARGS ARGV PARENT_SCOPE
+
+syn keyword cmakeKWget_cmake_property contained
+ \ COMPONENTS GLOBAL MACROS VAR VARIABLES
+
+syn keyword cmakeKWget_directory_property contained
+ \ DEFINITION DIRECTORY
+
+syn keyword cmakeKWget_filename_component contained
+ \ ABSOLUTE ARG_VAR BASE_DIR CACHE COMP DIRECTORY EXT NAME NAME_WE PATH PROGRAM PROGRAM_ARGS REALPATH VAR
+
+syn keyword cmakeKWget_property contained
+ \ BRIEF_DOCS CACHE DEFINED DIRECTORY FULL_DOCS GLOBAL INSTALL PROPERTY SET SOURCE TARGET TEST VARIABLE
+
+syn keyword cmakeKWget_source_file_property contained
+ \ LOCATION VAR
-" The keywords are generated as: cmake --help-command-list | tr "\n" " "
-syn keyword cmakeStatement
- \ ADD_CUSTOM_COMMAND ADD_CUSTOM_TARGET ADD_DEFINITIONS ADD_DEPENDENCIES ADD_EXECUTABLE ADD_LIBRARY ADD_SUBDIRECTORY ADD_TEST AUX_SOURCE_DIRECTORY BUILD_COMMAND BUILD_NAME CMAKE_MINIMUM_REQUIRED CONFIGURE_FILE CREATE_TEST_SOURCELIST ELSE ELSEIF ENABLE_LANGUAGE ENABLE_TESTING ENDFOREACH ENDFUNCTION ENDIF ENDMACRO ENDWHILE EXEC_PROGRAM EXECUTE_PROCESS EXPORT_LIBRARY_DEPENDENCIES FILE FIND_FILE FIND_LIBRARY FIND_PACKAGE FIND_PATH FIND_PROGRAM FLTK_WRAP_UI FOREACH FUNCTION GET_CMAKE_PROPERTY GET_DIRECTORY_PROPERTY GET_FILENAME_COMPONENT GET_SOURCE_FILE_PROPERTY GET_TARGET_PROPERTY GET_TEST_PROPERTY IF INCLUDE INCLUDE_DIRECTORIES INCLUDE_EXTERNAL_MSPROJECT INCLUDE_REGULAR_EXPRESSION INSTALL INSTALL_FILES INSTALL_PROGRAMS INSTALL_TARGETS LINK_DIRECTORIES LINK_LIBRARIES LIST LOAD_CACHE LOAD_COMMAND MACRO MAKE_DIRECTORY MARK_AS_ADVANCED MATH MESSAGE OPTION OUTPUT_REQUIRED_FILES PROJECT QT_WRAP_CPP QT_WRAP_UI REMOVE REMOVE_DEFINITIONS SEPARATE_ARGUMENTS SET SET_DIRECTORY_PROPERTIES SET_SOURCE_FILES_PROPERTIES SET_TARGET_PROPERTIES SET_TESTS_PROPERTIES SITE_NAME SOURCE_GROUP STRING SUBDIR_DEPENDS SUBDIRS TARGET_LINK_LIBRARIES TRY_COMPILE TRY_RUN UNSET USE_MANGLED_MESA UTILITY_SOURCE VARIABLE_REQUIRES VTK_MAKE_INSTANTIATOR VTK_WRAP_JAVA VTK_WRAP_PYTHON VTK_WRAP_TCL WHILE WRITE_FILE
+syn keyword cmakeKWget_target_property contained
+ \ VAR
+
+syn keyword cmakeKWget_test_property contained
+ \ VAR
+
+syn keyword cmakeKWif contained
+ \ ARGS CMAKE_MATCH_ CMP COMMAND 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 POLICY STREQUAL STRGREATER STRGREATER_EQUAL STRLESS STRLESS_EQUAL TARGET TEST THEN 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
+ \ ARCHIVE BUNDLE CODE COMPONENT CONFIGURATIONS CVS DESTDIR DESTINATION DIRECTORY DIRECTORY_PERMISSIONS DLL EXCLUDE_FROM_ALL EXPORT EXPORT_ANDROID_MK EXPORT_LINK_INTERFACE_LIBRARIES FILES FILES_MATCHING FILE_PERMISSIONS FRAMEWORK GROUP_EXECUTE GROUP_READ GROUP_WRITE IMPORTED_ INCLUDES INSTALL_PREFIX INTERFACE_INCLUDE_DIRECTORIES LIBRARY MACOSX_BUNDLE MESSAGE_NEVER NAMELINK_ONLY NAMELINK_SKIP NAMESPACE NDK OBJECTS OPTIONAL OWNER_EXECUTE OWNER_READ OWNER_WRITE PATTERN PERMISSIONS POST_INSTALL_SCRIPT PRE_INSTALL_SCRIPT PRIVATE_HEADER PROGRAMS PUBLIC_HEADER REGEX RENAME RESOURCE RUNTIME SCRIPT SETGID SETUID SOVERSION TARGETS TRUE 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 TARGETS
+
+syn keyword cmakeKWlist contained
+ \ APPEND CACHE EXCLUDE FILTER FIND GET INCLUDE INSERT INTERNAL LENGTH LIST NOTES PARENT_SCOPE REGEX REMOVE_AT REMOVE_DUPLICATES REMOVE_ITEM REVERSE SORT
+
+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 ARGS ARGV DEFINED GREATER LISTS NOT _BAR _FOO
+
+syn keyword cmakeKWmake_directory contained
+ \ MAKE_DIRECTORY
+
+syn keyword cmakeKWmark_as_advanced contained
+ \ CLEAR FORCE VAR
+
+syn keyword cmakeKWmath contained
+ \ EXPR
+
+syn keyword cmakeKWmessage contained
+ \ AUTHOR_WARNING DEPRECATION FATAL_ERROR GUI SEND_ERROR STATUS WARNING
+
+syn keyword cmakeKWoption contained
+ \ OFF ON
+
+syn keyword cmakeKWproject contained
+ \ CMAKE_PROJECT_ DESCRIPTION LANGUAGES NAME NONE PROJECT VERSION _BINARY_DIR _INCLUDE _SOURCE_DIR _VERSION _VERSION_MAJOR _VERSION_MINOR _VERSION_PATCH _VERSION_TWEAK
+
+syn keyword cmakeKWremove contained
+ \ REMOVE_ITEM VALUE VAR
+
+syn keyword cmakeKWseparate_arguments contained
+ \ MSDN NATIVE NATIVE_COMMAND UNIX_COMMAND WINDOWS WINDOWS_COMMAND _COMMAND
+
+syn keyword cmakeKWset contained
+ \ BOOL CACHE FILEPATH FORCE INTERNAL OFF ON PARENT_SCOPE STRING STRINGS
+
+syn keyword cmakeKWset_directory_properties contained
+ \ PROPERTIES
+
+syn keyword cmakeKWset_property contained
+ \ APPEND APPEND_STRING CACHE DIRECTORY GLOBAL INSTALL PROPERTY SOURCE TARGET TEST WIX
+
+syn keyword cmakeKWset_source_files_properties contained
+ \ PROPERTIES
+
+syn keyword cmakeKWset_target_properties contained
+ \ PROPERTIES
+
+syn keyword cmakeKWset_tests_properties contained
+ \ PROPERTIES
+
+syn keyword cmakeKWsource_group contained
+ \ FILES PREFIX REGULAR_EXPRESSION TREE
+
+syn keyword cmakeKWstring contained
+ \ ALPHABET APPEND ASCII CMAKE_MATCH_ COMPARE CONCAT CONFIGURE EQUAL ESCAPE_QUOTES FIND GENEX_STRIP GREATER GREATER_EQUAL GUID HASH LENGTH LESS LESS_EQUAL MAKE_C_IDENTIFIER MATCH MATCHALL MATCHES NAMESPACE NOTEQUAL ONLY PREPEND RANDOM RANDOM_SEED REGEX REPLACE REVERSE RFC 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
+ \ COMPILE_DEFINITIONS INTERFACE INTERFACE_COMPILE_DEFINITIONS PRIVATE PUBLIC
+
+syn keyword cmakeKWtarget_compile_features contained
+ \ COMPILE_FEATURES IMPORTED INTERFACE INTERFACE_COMPILE_FEATURES PRIVATE PUBLIC
+
+syn keyword cmakeKWtarget_compile_options contained
+ \ BEFORE COMPILE_OPTIONS IMPORTED INTERFACE INTERFACE_COMPILE_OPTIONS PRIVATE PUBLIC
+
+syn keyword cmakeKWtarget_include_directories contained
+ \ 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_libraries contained
+ \ ALIAS DAG DEBUG_CONFIGURATIONS IMPORTED IMPORTED_NO_SONAME INTERFACE INTERFACE_LINK_LIBRARIES LINK_FLAGS LINK_INTERFACE_LIBRARIES LINK_INTERFACE_LIBRARIES_DEBUG LINK_INTERFACE_MULTIPLICITY LINK_PRIVATE LINK_PUBLIC OLD OSX PRIVATE PUBLIC STATIC
+
+syn keyword cmakeKWtarget_sources contained
+ \ IMPORTED INTERFACE INTERFACE_SOURCES PRIVATE PUBLIC SOURCES
+
+syn keyword cmakeKWtry_compile contained
+ \ ALL_BUILD 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 FALSE INCLUDE_DIRECTORIES LANG LINK_DIRECTORIES LINK_LIBRARIES NOT OUTPUT_VARIABLE RESULT_VAR SOURCES TRUE TYPE VALUE _EXTENSIONS _STANDARD _STANDARD_REQUIRED
+
+syn keyword cmakeKWtry_run contained
+ \ ARGS CMAKE_FLAGS COMPILE_DEFINITIONS COMPILE_OUTPUT_VARIABLE COMPILE_RESULT_VAR DLINK_LIBRARIES DVAR FAILED_TO_RUN FALSE INCLUDE_DIRECTORIES LINK_DIRECTORIES LINK_LIBRARIES RUN_OUTPUT_VARIABLE RUN_RESULT_VAR TRUE TYPE VALUE __TRYRUN_OUTPUT
+
+syn keyword cmakeKWunset contained
+ \ CACHE LD_LIBRARY_PATH PARENT_SCOPE
+
+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
+ \ COMMAND
+
+syn keyword cmakeKWwhile contained
+ \ ARGS
+
+syn keyword cmakeKWwrite_file contained
+ \ APPEND CONFIGURE_FILE NOTE WRITE
+
+
+syn keyword cmakeGeneratorExpressions contained
+ \ LINK_LIBRARIES INCLUDE_DIRECTORIES COMPILE_DEFINITIONS CONFIG DEBUG_MODE BOOL AND NOT IF STREQUAL MAP_IMPORTED_CONFIG_ PLATFORM_ID C_COMPILER_ID CXX_COMPILER_ID VERSION_LESS VERSION_GREATER VERSION_EQUAL VERSION_LESS_EQUAL VERSION_GREATER_EQUAL C_COMPILER_VERSION CXX_COMPILER_VERSION TARGET_POLICY COMPILE_FEATURES C_STANDARD CXX_STANDARD COMPILE_LANGUAGE PRIVATE PUBLIC COMPILING_CXX GNU OLD_COMPILER CMAKE_CXX_COMPILER_VERSION CONFIGURATION TARGET_FILE TARGET_FILE_NAME TARGET_FILE_DIR TARGET_LINKER_FILE TARGET_LINKER_FILE_NAME TARGET_LINKER_FILE_DIR TARGET_SONAME_FILE TARGET_SONAME_FILE_NAME TARGET_SONAME_FILE_DIR TARGET_PDB_FILE PDB_NAME PDB_OUTPUT_DIRECTORY PDB_NAME_ PDB_OUTPUT_DIRECTORY_ TARGET_PDB_FILE_NAME TARGET_PDB_FILE_DIR TARGET_BUNDLE_DIR TARGET_BUNDLE_CONTENT_DIR SDK TARGET_PROPERTY INSTALL_PREFIX EXPORT JOIN ANGLE COMMA SEMICOLON TARGET_NAME LINK_ONLY INTERFACE_LINK_LIBRARIES INSTALL_INTERFACE BUILD_INTERFACE LOWER_CASE UPPER_CASE MAKE_C_IDENTIFIER TARGET_OBJECTS OBJECT_LIBRARY SHELL_PATH MSYS
+
+syn case ignore
+
+syn keyword cmakeCommand
+ \ add_compile_options add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_subdirectory add_test aux_source_directory break build_command cmake_host_system_information cmake_minimum_required cmake_parse_arguments 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 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_libraries 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
-" 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_cmake_syntax_inits")
- if version < 508
- let did_cmake_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink cmakeStatement Statement
- HiLink cmakeComment Comment
- HiLink cmakeString String
- HiLink cmakeVariableValue Type
- HiLink cmakeRegistry Underlined
- HiLink cmakeArguments Identifier
- HiLink cmakeArgument Constant
- HiLink cmakeEnvironment Special
- HiLink cmakeOperators Operator
- HiLink cmakeMacro PreProc
- HiLink cmakeError Error
- HiLink cmakeTodo TODO
- HiLink cmakeEscaped Special
-
- delcommand HiLink
-endif
+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 cmakeLuaComment Comment
+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 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_subdirectory ModeMsg
+hi def link cmakeKWadd_test ModeMsg
+hi def link cmakeKWbuild_command ModeMsg
+hi def link cmakeKWbuild_name ModeMsg
+hi def link cmakeKWcmake_host_system_information ModeMsg
+hi def link cmakeKWcmake_minimum_required ModeMsg
+hi def link cmakeKWcmake_parse_arguments 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 cmakeKWenable_language 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 cmakeKWlist ModeMsg
+hi def link cmakeKWload_cache ModeMsg
+hi def link cmakeKWload_command ModeMsg
+hi def link cmakeKWmacro ModeMsg
+hi def link cmakeKWmake_directory 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 cmakeKWremove 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 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_libraries 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 cmakeKWwhile ModeMsg
+hi def link cmakeKWwrite_file ModeMsg
let b:current_syntax = "cmake"
let &cpo = s:keepcpo
unlet s:keepcpo
-"EOF"
+" vim: set nowrap:
diff --git a/runtime/syntax/cmusrc.vim b/runtime/syntax/cmusrc.vim
index e36a69c698..b821affd57 100644
--- a/runtime/syntax/cmusrc.vim
+++ b/runtime/syntax/cmusrc.vim
@@ -1,6 +1,6 @@
" Vim syntax file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2007-06-17
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2007-06-17
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/cobol.vim b/runtime/syntax/cobol.vim
index 51ca3d8773..2d481bba0b 100644
--- a/runtime/syntax/cobol.vim
+++ b/runtime/syntax/cobol.vim
@@ -6,20 +6,13 @@
" James Mitchell <james_mitchell@acm.org>)
" Last Change: 2015 Feb 13
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
" MOST important - else most of the keywords wont work!
-if version < 600
- set isk=@,48-57,-
-else
- setlocal isk=@,48-57,-
-endif
+setlocal isk=@,48-57,-
syn case ignore
@@ -157,52 +150,42 @@ else
endif
" 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_cobol_syntax_inits")
- if version < 508
- let did_cobol_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink cobolBAD Error
- HiLink cobolBadID Error
- HiLink cobolBadLine Error
- if exists("g:cobol_legacy_code")
- HiLink cobolMarker Comment
- else
- HiLink cobolMarker Error
- endif
- HiLink cobolCALLs Function
- HiLink cobolComment Comment
- HiLink cobolKeys Comment
- HiLink cobolAreaB Special
- HiLink cobolCompiler PreProc
- HiLink cobolCondFlow Special
- HiLink cobolCopy PreProc
- HiLink cobolDeclA cobolDecl
- HiLink cobolDecl Type
- HiLink cobolExtras Special
- HiLink cobolGoTo Special
- HiLink cobolConstant Constant
- HiLink cobolNumber Constant
- HiLink cobolPic Constant
- HiLink cobolReserved Statement
- HiLink cobolDivision Label
- HiLink cobolSection Label
- HiLink cobolParagraph Label
- HiLink cobolDivisionName Keyword
- HiLink cobolSectionName Keyword
- HiLink cobolParagraphName Keyword
- HiLink cobolString Constant
- HiLink cobolTodo Todo
- HiLink cobolWatch Special
- HiLink cobolIndicator Special
-
- delcommand HiLink
+" Only when an item doesn't have highlighting yet
+
+hi def link cobolBAD Error
+hi def link cobolBadID Error
+hi def link cobolBadLine Error
+if exists("g:cobol_legacy_code")
+ hi def link cobolMarker Comment
+else
+ hi def link cobolMarker Error
endif
+hi def link cobolCALLs Function
+hi def link cobolComment Comment
+hi def link cobolKeys Comment
+hi def link cobolAreaB Special
+hi def link cobolCompiler PreProc
+hi def link cobolCondFlow Special
+hi def link cobolCopy PreProc
+hi def link cobolDeclA cobolDecl
+hi def link cobolDecl Type
+hi def link cobolExtras Special
+hi def link cobolGoTo Special
+hi def link cobolConstant Constant
+hi def link cobolNumber Constant
+hi def link cobolPic Constant
+hi def link cobolReserved Statement
+hi def link cobolDivision Label
+hi def link cobolSection Label
+hi def link cobolParagraph Label
+hi def link cobolDivisionName Keyword
+hi def link cobolSectionName Keyword
+hi def link cobolParagraphName Keyword
+hi def link cobolString Constant
+hi def link cobolTodo Todo
+hi def link cobolWatch Special
+hi def link cobolIndicator Special
+
let b:current_syntax = "cobol"
diff --git a/runtime/syntax/coco.vim b/runtime/syntax/coco.vim
index 4094a55303..ae32348bcb 100644
--- a/runtime/syntax/coco.vim
+++ b/runtime/syntax/coco.vim
@@ -5,9 +5,8 @@
" Remark: Coco/R syntax partially implemented.
" License: Vim license
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
diff --git a/runtime/syntax/config.vim b/runtime/syntax/config.vim
index cd83b24352..c6d4e6b363 100644
--- a/runtime/syntax/config.vim
+++ b/runtime/syntax/config.vim
@@ -11,11 +11,8 @@
" script, so I wrote this quick and dirty patch.
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -37,28 +34,18 @@ syn region configstring matchgroup=configfunction start="AC_MSG_[A-Z]*\ze(\[" m
syn region configstring matchgroup=configfunction start="AC_MSG_[A-Z]*\ze([^[]" matchgroup=configdelimiter end=")" contains=configdelimiter,@Spell
" 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_config_syntax_inits")
- if version < 508
- let did_config_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" 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
- HiLink configdelimiter Delimiter
- HiLink configoperator Operator
- HiLink configcomment Comment
- HiLink configDnl Comment
- HiLink configfunction Function
- HiLink confignumber Number
- HiLink configkeyword Keyword
- HiLink configspecial Special
- HiLink configstring String
-
- delcommand HiLink
-endif
let b:current_syntax = "config"
diff --git a/runtime/syntax/context.vim b/runtime/syntax/context.vim
index 225cc6efc2..b29f256baa 100644
--- a/runtime/syntax/context.vim
+++ b/runtime/syntax/context.vim
@@ -1,7 +1,8 @@
" Vim syntax file
-" Language: ConTeXt typesetting engine
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-08-10
+" Language: ConTeXt typesetting engine
+" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
+" Former Maintainers: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2016 Oct 16
if exists("b:current_syntax")
finish
@@ -13,65 +14,93 @@ unlet b:current_syntax
let s:cpo_save = &cpo
set cpo&vim
-if !exists('g:context_include')
- let g:context_include = ['mp', 'javascript', 'xml']
+" Dictionary of (filetype, group) pairs to highlight between \startGROUP \stopGROUP.
+let s:context_include = get(b:, 'context_include', get(g:, 'context_include', {'xml': 'XML'}))
+
+" For backward compatibility (g:context_include used to be a List)
+if type(s:context_include) ==# type([])
+ let g:context_metapost = (index(s:context_include, 'mp') != -1)
+ let s:context_include = filter(
+ \ {'c': 'C', 'javascript': 'JS', 'ruby': 'Ruby', 'xml': 'XML'},
+ \ { k,_ -> index(s:context_include, k) != -1 }
+ \ )
endif
+syn iskeyword @,48-57,a-z,A-Z,192-255
+
syn spell toplevel
-syn match contextBlockDelim display '\\\%(start\|stop\)\a\+'
- \ contains=@NoSpell
+" ConTeXt options, i.e., [...] blocks
+syn region contextOptions matchgroup=contextDelimiter start='\[' end=']\|\ze\\stop' skip='\\\[\|\\\]' contains=ALLBUT,contextBeginEndLua,@Spell
+
+" Highlight braces
+syn match contextDelimiter '[{}]'
-syn region contextEscaped display matchgroup=contextPreProc
- \ start='\\type\z(\A\)' end='\z1'
-syn region contextEscaped display matchgroup=contextPreProc
- \ start='\\type\={' end='}'
-syn region contextEscaped display matchgroup=contextPreProc
- \ start='\\type\=<<' end='>>'
+" Comments
+syn match contextComment '\\\@<!\%(\\\\\)*\zs%.*$' display contains=initexTodo
+syn match contextComment '^\s*%[CDM].*$' display contains=initexTodo
+
+syn match contextBlockDelim '\\\%(start\|stop\)\a\+' 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=plaintexComment keepend
-syn region contextEscaped display matchgroup=contextPreProc
- \ start='\\\h\+Type{' end='}'
-syn region contextEscaped display matchgroup=contextPreProc
- \ start='\\Typed\h\+{' end='}'
+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 display contains=@NoSpell
- \ '\\\%(unprotect\|protect\|unexpanded\)'
+ \ '\\\%(unprotect\|protect\|unexpanded\)\>'
-syn match contextPreProc '^\s*\\\%(start\|stop\)\=\%(component\|environment\|project\|product\).*$'
+syn match contextPreProc '^\s*\\\%(start\|stop\)\=\%(component\|environment\|project\|product\)\>'
\ contains=@NoSpell
-if index(g:context_include, 'mp') != -1
+if get(b:, 'context_metapost', get(g:, 'context_metapost', 1))
+ let b:mp_metafun_macros = 1 " Highlight MetaFun keywords
syn include @mpTop syntax/mp.vim
unlet b:current_syntax
- syn region contextMPGraphic transparent matchgroup=contextBlockDelim
- \ start='\\start\z(\a*MPgraphic\|MP\%(page\|inclusions\|run\)\).*'
+ 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
+ \ contains=@mpTop,@NoSpell
endif
-" TODO: also need to implement this for \\typeC or something along those
-" lines.
-function! s:include_syntax(name, group)
- if index(g:context_include, a:name) != -1
- execute 'syn include @' . a:name . 'Top' 'syntax/' . a:name . '.vim'
- unlet b:current_syntax
- execute 'syn region context' . a:group . 'Code'
- \ 'transparent matchgroup=contextBlockDelim'
- \ 'start=+\\start' . a:group . '+ end=+\\stop' . a:group . '+'
- \ 'contains=@' . a:name . 'Top'
- endif
-endfunction
-
-call s:include_syntax('c', 'C')
-call s:include_syntax('ruby', 'Ruby')
-call s:include_syntax('javascript', 'JS')
-call s:include_syntax('xml', 'XML')
-
-syn match contextSectioning '\\chapter\>' contains=@NoSpell
-syn match contextSectioning '\\\%(sub\)*section\>' contains=@NoSpell
+if get(b:, 'context_lua', get(g:, 'context_lua', 1))
+ 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=initexComment
+ syn region contextBeginEndLua matchgroup=contextSpecial
+ \ start="{" end="}" skip="\\[{}]"
+ \ contained contains=@luaTop,@NoSpell
+endif
+
+for synname in keys(s:context_include)
+ execute 'syn include @' . synname . 'Top' 'syntax/' . synname . '.vim'
+ unlet b:current_syntax
+ execute 'syn region context' . s:context_include[synname] . 'Code'
+ \ 'matchgroup=contextBlockDelim'
+ \ 'start=+\\start' . s:context_include[synname] . '+'
+ \ 'end=+\\stop' . s:context_include[synname] . '+'
+ \ 'contains=@' . synname . 'Top,@NoSpell'
+endfor
+
+syn match contextSectioning '\\\%(start\|stop\)\=\%(\%(sub\)*section\|\%(sub\)*subject\|chapter\|part\|component\|product\|title\)\>'
+ \ contains=@NoSpell
syn match contextSpecial '\\crlf\>\|\\par\>\|-\{2,3}\||[<>/]\=|'
\ contains=@NoSpell
@@ -92,15 +121,19 @@ syn match contextFont '\\\%(vi\{1,3}\|ix\|xi\{0,2}\)\>'
syn match contextFont '\\\%(tf\|b[si]\|s[cl]\|os\)\%(xx\|[xabcd]\)\=\>'
\ contains=@NoSpell
+hi def link contextOptions Typedef
+hi def link contextComment Comment
hi def link contextBlockDelim Keyword
hi def link contextBuiltin Keyword
hi def link contextDelimiter Delimiter
+hi def link contextEscaped String
hi def link contextPreProc PreProc
hi def link contextSectioning PreProc
hi def link contextSpecial Special
hi def link contextType Type
hi def link contextStyle contextType
hi def link contextFont contextType
+hi def link contextDirectLua Keyword
let b:current_syntax = "context"
diff --git a/runtime/syntax/cpp.vim b/runtime/syntax/cpp.vim
index fefd0ff7b0..9cb0860e84 100644
--- a/runtime/syntax/cpp.vim
+++ b/runtime/syntax/cpp.vim
@@ -2,23 +2,16 @@
" Language: C++
" Current Maintainer: vim-jp (https://github.com/vim-jp/vim-cpp)
" Previous Maintainer: Ken Shan <ccshan@post.harvard.edu>
-" Last Change: 2016 Jul 07
+" Last Change: 2017 Jun 05
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
" Read the C syntax to start with
-if version < 600
- so <sfile>:p:h/c.vim
-else
- runtime! syntax/c.vim
- unlet b:current_syntax
-endif
+runtime! syntax/c.vim
+unlet b:current_syntax
" C++ extensions
syn keyword cppStatement new delete this friend using
@@ -38,7 +31,7 @@ syn keyword cppConstant __cplusplus
" C++ 11 extensions
if !exists("cpp_no_cpp11")
syn keyword cppModifier override final
- syn keyword cppType nullptr_t
+ syn keyword cppType nullptr_t auto
syn keyword cppExceptions noexcept
syn keyword cppStorageClass constexpr decltype thread_local
syn keyword cppConstant nullptr
@@ -53,36 +46,31 @@ endif
" C++ 14 extensions
if !exists("cpp_no_cpp14")
- syn match cppNumber display "\<0b[01]\+\(u\=l\{0,2}\|ll\=u\)\>"
+ syn case ignore
+ syn match cppNumber display "\<0b[01]\('\=[01]\+\)*\(u\=l\{0,2}\|ll\=u\)\>"
+ syn match cppNumber display "\<[1-9]\('\=\d\+\)*\(u\=l\{0,2}\|ll\=u\)\>" contains=cFloat
+ syn match cppNumber display "\<0x\x\('\=\x\+\)*\(u\=l\{0,2}\|ll\=u\)\>"
+ syn case match
endif
" The minimum and maximum operators in GNU C++
syn match cppMinMax "[<>]?"
" Default highlighting
-if version >= 508 || !exists("did_cpp_syntax_inits")
- if version < 508
- let did_cpp_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink cppAccess cppStatement
- HiLink cppCast cppStatement
- HiLink cppExceptions Exception
- HiLink cppOperator Operator
- HiLink cppStatement Statement
- HiLink cppModifier Type
- HiLink cppType Type
- HiLink cppStorageClass StorageClass
- HiLink cppStructure Structure
- HiLink cppBoolean Boolean
- HiLink cppConstant Constant
- HiLink cppRawStringDelimiter Delimiter
- HiLink cppRawString String
- HiLink cppNumber Number
- delcommand HiLink
-endif
+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 cppConstant Constant
+hi def link cppRawStringDelimiter Delimiter
+hi def link cppRawString String
+hi def link cppNumber Number
let b:current_syntax = "cpp"
diff --git a/runtime/syntax/crm.vim b/runtime/syntax/crm.vim
index 17b67d44f0..5285de3e23 100644
--- a/runtime/syntax/crm.vim
+++ b/runtime/syntax/crm.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: CRM114
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: CRM114
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/crontab.vim b/runtime/syntax/crontab.vim
index fd1c30023f..5e38ffaafe 100644
--- a/runtime/syntax/crontab.vim
+++ b/runtime/syntax/crontab.vim
@@ -10,11 +10,8 @@
" crontab line format:
" Minutes Hours Days Months Days_of_Week Commands # comments
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -39,41 +36,31 @@ syntax match crontabCmnt "^\s*#.*" contains=@Spell
syntax match crontabPercent "[^\\]%.*"lc=1 contained
" 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_crontab_syn_inits")
- if version < 508
- let did_crontab_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink crontabMin Number
- HiLink crontabHr PreProc
- HiLink crontabDay Type
-
- HiLink crontabMnth Number
- HiLink crontabMnth12 Number
- HiLink crontabMnthS Number
- HiLink crontabMnthN Number
-
- HiLink crontabDow PreProc
- HiLink crontabDow7 PreProc
- HiLink crontabDowS PreProc
- HiLink crontabDowN PreProc
-
- HiLink crontabNick Special
- HiLink crontabVar Identifier
- HiLink crontabPercent Special
+" 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.
- HiLink crontabCmd Statement
+hi def link crontabCmd Statement
- HiLink crontabCmnt Comment
+hi def link crontabCmnt Comment
- delcommand HiLink
-endif
let b:current_syntax = "crontab"
diff --git a/runtime/syntax/csc.vim b/runtime/syntax/csc.vim
index 5493b17f5f..6e5d8b9f37 100644
--- a/runtime/syntax/csc.vim
+++ b/runtime/syntax/csc.vim
@@ -3,11 +3,8 @@
" Maintainer: Raul Segura Acevedo <raulseguraaceved@netscape.net>
" Last change: 2011 Dec 25 by Thilo Six
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -145,7 +142,7 @@ sy match cscBPMacro contained "!"
sy match cscBPW "!\s*\a*" contains=cscBPmacro
" when wanted, highlighting lhs members or erros in asignments (may lag the editing)
-if version >= 600 && exists("csc_asignment")
+if exists("csc_asignment")
sy match cscEqError '\("[^"]*"\s*\|[^][\t !%()*+,--/:;<=>{}~]\+\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
@@ -158,44 +155,34 @@ endif
exec "sy sync ccomment cscComment minlines=" . csc_minlines
" 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_csc_syntax_inits")
- if version < 508
- let did_csc_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" 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
- hi cscVarName term=bold ctermfg=9 gui=bold guifg=blue
-
- HiLink cscNumber Number
- HiLink cscOctal Number
- HiLink cscFloat Float
- HiLink cscParenE Error
- HiLink cscCommentE Error
- HiLink cscSpaceE Error
- HiLink cscError Error
- HiLink cscString String
- HiLink cscComment Comment
- HiLink cscTodo Todo
- HiLink cscStatement Statement
- HiLink cscIfError Error
- HiLink cscEqError Error
- HiLink cscFunction Statement
- HiLink cscCondition Statement
- HiLink cscWarn WarningMsg
-
- HiLink cscComE Error
- HiLink cscCom Statement
- HiLink cscComW WarningMsg
-
- HiLink cscBPMacro Identifier
- HiLink cscBPW WarningMsg
-
- delcommand HiLink
-endif
let b:current_syntax = "csc"
diff --git a/runtime/syntax/csh.vim b/runtime/syntax/csh.vim
index 9dc2c4ef56..c134aa7ef3 100644
--- a/runtime/syntax/csh.vim
+++ b/runtime/syntax/csh.vim
@@ -1,15 +1,12 @@
" Vim syntax file
" Language: C-shell (csh)
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change: Oct 23, 2014
-" Version: 11
+" Last Change: Aug 31, 2016
+" Version: 13
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_CSH
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -100,59 +97,45 @@ syn match cshNumber "-\=\<\d\+\>"
"syn match cshIdentifier "\<[a-zA-Z._][a-zA-Z0-9._]*\>"
" Shell Input Redirection (Here Documents)
-if version < 600
- syn region cshHereDoc matchgroup=cshRedir start="<<-\=\s*\**END[a-zA-Z_0-9]*\**" matchgroup=cshRedir end="^END[a-zA-Z_0-9]*$"
- syn region cshHereDoc matchgroup=cshRedir start="<<-\=\s*\**EOF\**" matchgroup=cshRedir end="^EOF$"
-else
- syn region cshHereDoc matchgroup=cshRedir start="<<-\=\s*\**\z(\h\w*\)\**" matchgroup=cshRedir end="^\z1$"
-endif
+syn region cshHereDoc matchgroup=cshRedir start="<<-\=\s*\**\z(\h\w*\)\**" matchgroup=cshRedir end="^\z1$"
" 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_csh_syntax_inits")
- if version < 508
- let did_csh_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink cshArgv cshVariables
- HiLink cshBckQuote cshCommand
- HiLink cshDblQuote cshString
- HiLink cshExtVar cshVariables
- HiLink cshHereDoc cshString
- HiLink cshNoEndlineBQ cshNoEndline
- HiLink cshNoEndlineDQ cshNoEndline
- HiLink cshNoEndlineSQ cshNoEndline
- HiLink cshQtyWord cshVariables
- HiLink cshRedir cshOperator
- HiLink cshSelector cshVariables
- HiLink cshSetStmt cshStatement
- HiLink cshSetVariables cshVariables
- HiLink cshSnglQuote cshString
- HiLink cshSubst cshVariables
-
- HiLink cshCommand Statement
- HiLink cshComment Comment
- HiLink cshConditional Conditional
- HiLink cshIdentifier Error
- HiLink cshModifier Special
- HiLink cshNoEndline Error
- HiLink cshNumber Number
- HiLink cshOperator Operator
- HiLink cshRedir Statement
- HiLink cshRepeat Repeat
- HiLink cshShellVariables Special
- HiLink cshSpecial Special
- HiLink cshStatement Statement
- HiLink cshString String
- HiLink cshSubstError Error
- HiLink cshTodo Todo
- HiLink cshVariables Type
-
- delcommand HiLink
+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"
diff --git a/runtime/syntax/csp.vim b/runtime/syntax/csp.vim
index bd6213efd9..8001b1fe7e 100644
--- a/runtime/syntax/csp.vim
+++ b/runtime/syntax/csp.vim
@@ -15,11 +15,8 @@
" - The additional syntax for the RT-Tester (pseudo-comments)
" should be optional.
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -149,46 +146,36 @@ syn match cspSdlRttComment "pragma\s\+SDL_MATCH\s\+" nextgroup=cspRttPragmaSdlAr
syn sync lines=250
" 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_csp_syn_inits")
- if version < 508
- let did_csp_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " The default methods for highlighting. Can be overridden later
- " (For vim version <=5.7, the command groups are defined in
- " $VIMRUNTIME/syntax/synload.vim )
- HiLink cspComment Comment
- HiLink cspNumber Number
- HiLink cspConditional Conditional
- HiLink cspOperator Delimiter
- HiLink cspKeyword Keyword
- HiLink cspReserved SpecialChar
- HiLink cspInclude Error
- HiLink cspIncludeKeyword Include
- HiLink cspIncludeArg Include
- HiLink cspAssert PreCondit
- HiLink cspType Type
- HiLink cspProcess Function
- HiLink cspTodo Todo
- HiLink cspOldRttComment Define
- HiLink cspRttPragmaKeyword Define
- HiLink cspSdlRttComment Define
- HiLink cspRttPragmaArg Define
- HiLink cspRttPragmaSdlArg Define
- HiLink cspRttPragmaSdlName Default
- HiLink cspRttPragmaSdlTailArg Define
- HiLink cspRttPragmaSdlTransName Default
- HiLink cspRttPragmaSdlTransTailArg Define
- HiLink cspReservedIdentifier Error
- " (Currently unused vim method: Debug)
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/css.vim b/runtime/syntax/css.vim
index 51758ca98f..23db7b10e8 100644
--- a/runtime/syntax/css.vim
+++ b/runtime/syntax/css.vim
@@ -6,14 +6,12 @@
" Nikolai Weibull (Add CSS2 support)
" Maintainer: Jules Wang <w.jq0722@gmail.com>
" URL: https://github.com/JulesWang/css.vim
-" Last Change: 2015 Apr.17
+" Last Change: 2017 Jan 14
+" cssClassName updated by Ryuichi Hayashida Jan 2016
-" For version 5.x: Clear all syntax items
-" For version 6.x: Quit when a syntax file was already loaded
+" quit when a syntax file was already loaded
if !exists("main_syntax")
- if version < 600
- syntax clear
- elseif exists("b:current_syntax")
+ if exists("b:current_syntax")
finish
endif
let main_syntax = 'css'
@@ -59,7 +57,7 @@ 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 cssClassName "\.-\=[A-Za-z_][A-Za-z0-9_-]*" contains=cssClassNameDot
syn match cssClassNameDot contained '\.'
try
@@ -516,139 +514,129 @@ if main_syntax == "css"
endif
" 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_css_syn_inits")
- if version < 508
- let did_css_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink cssComment Comment
- HiLink cssVendor Comment
- HiLink cssHacks Comment
- HiLink cssTagName Statement
- HiLink cssDeprecated Error
- HiLink cssSelectorOp Special
- HiLink cssSelectorOp2 Special
- HiLink cssAttrComma Special
-
- HiLink cssAnimationProp cssProp
- HiLink cssBackgroundProp cssProp
- HiLink cssBorderProp cssProp
- HiLink cssBoxProp cssProp
- HiLink cssColorProp cssProp
- HiLink cssContentForPagedMediaProp cssProp
- HiLink cssDimensionProp cssProp
- HiLink cssFlexibleBoxProp cssProp
- HiLink cssFontProp cssProp
- HiLink cssGeneratedContentProp cssProp
- HiLink cssGridProp cssProp
- HiLink cssHyerlinkProp cssProp
- HiLink cssLineboxProp cssProp
- HiLink cssListProp cssProp
- HiLink cssMarqueeProp cssProp
- HiLink cssMultiColumnProp cssProp
- HiLink cssPagedMediaProp cssProp
- HiLink cssPositioningProp cssProp
- HiLink cssPrintProp cssProp
- HiLink cssRubyProp cssProp
- HiLink cssSpeechProp cssProp
- HiLink cssTableProp cssProp
- HiLink cssTextProp cssProp
- HiLink cssTransformProp cssProp
- HiLink cssTransitionProp cssProp
- HiLink cssUIProp cssProp
- HiLink cssIEUIProp cssProp
- HiLink cssAuralProp cssProp
- HiLink cssRenderProp cssProp
- HiLink cssMobileTextProp cssProp
-
- HiLink cssAnimationAttr cssAttr
- HiLink cssBackgroundAttr cssAttr
- HiLink cssBorderAttr cssAttr
- HiLink cssBoxAttr cssAttr
- HiLink cssContentForPagedMediaAttr cssAttr
- HiLink cssDimensionAttr cssAttr
- HiLink cssFlexibleBoxAttr cssAttr
- HiLink cssFontAttr cssAttr
- HiLink cssGeneratedContentAttr cssAttr
- HiLink cssGridAttr cssAttr
- HiLink cssHyerlinkAttr cssAttr
- HiLink cssLineboxAttr cssAttr
- HiLink cssListAttr cssAttr
- HiLink cssMarginAttr cssAttr
- HiLink cssMarqueeAttr cssAttr
- HiLink cssMultiColumnAttr cssAttr
- HiLink cssPaddingAttr cssAttr
- HiLink cssPagedMediaAttr cssAttr
- HiLink cssPositioningAttr cssAttr
- HiLink cssGradientAttr cssAttr
- HiLink cssPrintAttr cssAttr
- HiLink cssRubyAttr cssAttr
- HiLink cssSpeechAttr cssAttr
- HiLink cssTableAttr cssAttr
- HiLink cssTextAttr cssAttr
- HiLink cssTransformAttr cssAttr
- HiLink cssTransitionAttr cssAttr
- HiLink cssUIAttr cssAttr
- HiLink cssIEUIAttr cssAttr
- HiLink cssAuralAttr cssAttr
- HiLink cssRenderAttr cssAttr
- HiLink cssCommonAttr cssAttr
-
- HiLink cssPseudoClassId PreProc
- HiLink cssPseudoClassLang Constant
- HiLink cssValueLength Number
- HiLink cssValueInteger Number
- HiLink cssValueNumber Number
- HiLink cssValueAngle Number
- HiLink cssValueTime Number
- HiLink cssValueFrequency Number
- HiLink cssFunction Constant
- HiLink cssURL String
- HiLink cssFunctionName Function
- HiLink cssFunctionComma Function
- HiLink cssColor Constant
- HiLink cssIdentifier Function
- HiLink cssInclude Include
- HiLink cssIncludeKeyword atKeyword
- HiLink cssImportant Special
- HiLink cssBraces Function
- HiLink cssBraceError Error
- HiLink cssError Error
- HiLink cssUnicodeEscape Special
- HiLink cssStringQQ String
- HiLink cssStringQ String
- HiLink cssAttributeSelector String
- HiLink cssMedia atKeyword
- HiLink cssMediaType Special
- HiLink cssMediaComma Normal
- HiLink cssMediaKeyword Statement
- HiLink cssMediaProp cssProp
- HiLink cssMediaAttr cssAttr
- HiLink cssPage atKeyword
- HiLink cssPagePseudo PreProc
- HiLink cssPageMargin atKeyword
- HiLink cssPageProp cssProp
- HiLink cssKeyFrame atKeyword
- HiLink cssKeyFrameSelector Constant
- HiLink cssFontDescriptor Special
- HiLink cssFontDescriptorFunction Constant
- HiLink cssFontDescriptorProp cssProp
- HiLink cssFontDescriptorAttr cssAttr
- HiLink cssUnicodeRange Constant
- HiLink cssClassName Function
- HiLink cssClassNameDot Function
- HiLink cssProp StorageClass
- HiLink cssAttr Constant
- HiLink cssUnitDecorators Number
- HiLink cssNoise Noise
- HiLink atKeyword PreProc
- delcommand HiLink
-endif
+" 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 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 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 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 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 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 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 cssInclude Include
+hi def link cssIncludeKeyword atKeyword
+hi def link cssImportant 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 cssMedia atKeyword
+hi def link cssMediaType Special
+hi def link cssMediaComma Normal
+hi def link cssMediaKeyword Statement
+hi def link cssMediaProp cssProp
+hi def link cssMediaAttr cssAttr
+hi def link cssPage atKeyword
+hi def link cssPagePseudo PreProc
+hi def link cssPageMargin atKeyword
+hi def link cssPageProp cssProp
+hi def link cssKeyFrame atKeyword
+hi def link cssKeyFrameSelector Constant
+hi def link cssFontDescriptor Special
+hi def link cssFontDescriptorFunction Constant
+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
+hi def link atKeyword PreProc
let b:current_syntax = "css"
diff --git a/runtime/syntax/cterm.vim b/runtime/syntax/cterm.vim
index 139a0d5e17..1b6cb2893f 100644
--- a/runtime/syntax/cterm.vim
+++ b/runtime/syntax/cterm.vim
@@ -4,11 +4,8 @@
" Last Change: 2002 Apr 13
" Version Info: @(#)cterm.vim 1.7 97/12/15 09:23:14
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -142,48 +139,38 @@ syn match ctermCharacter "'[^\\]'"
syn match ctermSpecialCharacter "'\\.'"
" 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_cterm_syntax_inits")
- if version < 508
- let did_cterm_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink ctermStatement Statement
- HiLink ctermFunction Statement
- HiLink ctermStrFunction Statement
- HiLink ctermIntFunction Statement
- HiLink ctermLabel Statement
- HiLink ctermConditional Statement
- HiLink ctermRepeat Statement
- HiLink ctermLibFunc UserDefFunc
- HiLink ctermType Type
- HiLink ctermFuncArg PreCondit
-
- HiLink ctermPreVarRO PreCondit
- HiLink ctermPreVarRW PreConditBold
- HiLink ctermVar Type
-
- HiLink ctermComment Comment
-
- HiLink ctermCharacter SpecialChar
- HiLink ctermSpecial Special
- HiLink ctermSpecialCharacter SpecialChar
- HiLink ctermSymbols Special
- HiLink ctermString String
- HiLink ctermTodo Todo
- HiLink ctermOperator Statement
- HiLink 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
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/cuda.vim b/runtime/syntax/cuda.vim
index 77930e3fd4..cfc70b9ea8 100644
--- a/runtime/syntax/cuda.vim
+++ b/runtime/syntax/cuda.vim
@@ -3,20 +3,13 @@
" Maintainer: Timothy B. Terriberry <tterribe@users.sourceforge.net>
" Last Change: 2007 Oct 13
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
" Read the C syntax to start with
-if version < 600
- source <sfile>:p:h/c.vim
-else
- runtime! syntax/c.vim
-endif
+runtime! syntax/c.vim
" CUDA extentions
syn keyword cudaStorageClass __device__ __global__ __host__
diff --git a/runtime/syntax/cupl.vim b/runtime/syntax/cupl.vim
index 545d873af2..5b93b0db93 100644
--- a/runtime/syntax/cupl.vim
+++ b/runtime/syntax/cupl.vim
@@ -3,11 +3,8 @@
" Maintainer: John Cook <johncook3@gmail.com>
" Last Change: 2011 Dec 27
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -95,39 +92,29 @@ syn region cuplComment start=+/\*+ end=+\*/+ contains=cuplNumber,cuplTodo
syn sync minlines=1
" 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_cupl_syn_inits")
- if version < 508
- let did_cupl_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " The default highlighting.
- HiLink cuplHeader cuplStatement
- HiLink cuplLogicalOperator cuplOperator
- HiLink cuplRangeOperator cuplOperator
- HiLink cuplArithmeticOperator cuplOperator
- HiLink cuplAssignmentOperator cuplOperator
- HiLink cuplEqualityOperator cuplOperator
- HiLink cuplTruthTableOperator cuplOperator
- HiLink cuplOperator cuplStatement
- HiLink cuplFunction cuplStatement
- HiLink cuplStatement Statement
- HiLink cuplNumberRange cuplNumber
- HiLink cuplNumber cuplString
- HiLink cuplString String
- HiLink cuplComment Comment
- HiLink cuplExtension cuplSpecial
- HiLink cuplSpecialChar cuplSpecial
- HiLink cuplSpecial Special
- HiLink cuplDirective PreProc
- HiLink cuplTodo Todo
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/cuplsim.vim b/runtime/syntax/cuplsim.vim
index 18a30ce256..36eb4c3555 100644
--- a/runtime/syntax/cuplsim.vim
+++ b/runtime/syntax/cuplsim.vim
@@ -3,21 +3,14 @@
" Maintainer: John Cook <john.cook@kla-tencor.com>
" Last Change: 2001 Apr 25
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
" Read the CUPL syntax to start with
-if version < 600
- source <sfile>:p:h/cupl.vim
-else
- runtime! syntax/cupl.vim
- unlet b:current_syntax
-endif
+runtime! syntax/cupl.vim
+unlet b:current_syntax
" omit definition-specific stuff
syn clear cuplStatement
@@ -53,28 +46,18 @@ syn match cuplsimOutput +"\x\+"+
syn sync minlines=1
" 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_cuplsim_syn_inits")
- if version < 508
- let did_cuplsim_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " append to the highlighting links in cupl.vim
- " The default highlighting.
- HiLink cuplsimOrder cuplStatement
- HiLink cuplsimBase cuplStatement
- HiLink cuplsimBaseType cuplStatement
- HiLink cuplsimVectors cuplStatement
- HiLink cuplsimStimulus cuplNumber
- HiLink cuplsimOutput cuplNumber
- HiLink cuplsimOrderFormat cuplNumber
+" 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
- delcommand HiLink
-endif
let b:current_syntax = "cuplsim"
" vim:ts=8
diff --git a/runtime/syntax/cvs.vim b/runtime/syntax/cvs.vim
index 94b2a809eb..3eac191637 100644
--- a/runtime/syntax/cvs.vim
+++ b/runtime/syntax/cvs.vim
@@ -4,11 +4,8 @@
" URL: http://www.zotikos.com/downloads/cvs.vim
" Last Change: Sat Nov 24 23:25:11 CET 2001
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -20,24 +17,14 @@ syn region cvsCom start="Committing in" end="$" contains=cvsDir contained extend
syn match cvsDir contained "\S\+$"
" 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_cvs_syn_inits")
- if version < 508
- let did_cvs_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink cvsLine Comment
- HiLink cvsDir cvsFile
- HiLink cvsFile Constant
- HiLink cvsFiles cvsCom
- HiLink cvsTag cvsCom
- HiLink cvsCom Statement
+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
- delcommand HiLink
-endif
let b:current_syntax = "cvs"
diff --git a/runtime/syntax/cvsrc.vim b/runtime/syntax/cvsrc.vim
index 6c2c4eea04..9522de6436 100644
--- a/runtime/syntax/cvsrc.vim
+++ b/runtime/syntax/cvsrc.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: cvs(1) RC file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: cvs(1) RC file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/cweb.vim b/runtime/syntax/cweb.vim
index 39b593d2be..4e06b3646d 100644
--- a/runtime/syntax/cweb.vim
+++ b/runtime/syntax/cweb.vim
@@ -13,11 +13,8 @@
" 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.)
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -25,12 +22,8 @@ endif
" 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.
-if version < 600
- source <sfile>:p:h/tex.vim
-else
- runtime! syntax/tex.vim
- unlet b:current_syntax
-endif
+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.
@@ -63,20 +56,10 @@ syntax region webRestrictedTeX start="@[\^\.:t=q]" end="@>" oneline
syntax match webIgnoredStuff "@@"
" 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_cweb_syntax_inits")
- if version < 508
- let did_cweb_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink webRestrictedTeX String
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link webRestrictedTeX String
+
let b:current_syntax = "cweb"
diff --git a/runtime/syntax/cynlib.vim b/runtime/syntax/cynlib.vim
index a9985074d6..24ad2a2e31 100644
--- a/runtime/syntax/cynlib.vim
+++ b/runtime/syntax/cynlib.vim
@@ -15,22 +15,15 @@
" Remove any old syntax stuff hanging around
-" 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")
+" 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
-if version < 600
- source <sfile>:p:h/cpp.vim
-else
- runtime! syntax/cpp.vim
-endif
+runtime! syntax/cpp.vim
unlet b:current_syntax
" Cynlib extensions
@@ -69,23 +62,13 @@ syn match cynlibOperator "<<="
syn keyword cynlibType In Out InST OutST Int Uint Const Cynclock
" 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_cynlib_syntax_inits")
- if version < 508
- let did_cynlib_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink cynlibOperator Operator
- HiLink cynlibMacro Statement
- HiLink cynlibFunction Statement
- HiLink cynlibppMacro Statement
- HiLink cynlibType Type
+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
- delcommand HiLink
-endif
let b:current_syntax = "cynlib"
diff --git a/runtime/syntax/cynpp.vim b/runtime/syntax/cynpp.vim
index b984bace35..3064b11a63 100644
--- a/runtime/syntax/cynpp.vim
+++ b/runtime/syntax/cynpp.vim
@@ -19,21 +19,13 @@
-" Remove any old syntax stuff hanging around
-" 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")
+" 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
-if version < 600
- source <sfile>:p:h/cynlib.vim
-else
- runtime! syntax/cynlib.vim
-endif
+runtime! syntax/cynlib.vim
unlet b:current_syntax
@@ -49,20 +41,10 @@ syn keyword cynppMacro Thread EndThread
syn keyword cynppMacro Instantiate
" 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_cynpp_syntax_inits")
- if version < 508
- let did_cynpp_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink cLabel Label
- HiLink cynppMacro Statement
+hi def link cLabel Label
+hi def link cynppMacro Statement
- delcommand HiLink
-endif
let b:current_syntax = "cynpp"
diff --git a/runtime/syntax/datascript.vim b/runtime/syntax/datascript.vim
index a983b8e34c..7b686a144e 100644
--- a/runtime/syntax/datascript.vim
+++ b/runtime/syntax/datascript.vim
@@ -8,9 +8,8 @@
"
" http://dstools.sourceforge.net/DataScriptLanguageOverview.html
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
let s:keepcpo= &cpo
diff --git a/runtime/syntax/dcd.vim b/runtime/syntax/dcd.vim
index a566745fbe..058d272375 100644
--- a/runtime/syntax/dcd.vim
+++ b/runtime/syntax/dcd.vim
@@ -3,11 +3,8 @@
" Maintainer: Christopher Shinn <christopher@lucent.com>
" Last Change: 2003 Apr 25
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -40,25 +37,15 @@ syn keyword dcdSpecial PRV1 PRV2 PRV3 PRV4 PRV5 PRV6 PRV7 PRV8
syn region dcdComment start="\*" end="\;"
" 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_dcd_syntax_inits")
- if version < 508
- let did_dcd_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink dcdFunction Identifier
- HiLink dcdLabel Constant
- HiLink dcdConditional Conditional
- HiLink dcdDisplay Type
- HiLink dcdStatement Statement
- HiLink dcdSpecial Special
- HiLink dcdComment Comment
+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
- delcommand HiLink
-endif
let b:current_syntax = "dcd"
diff --git a/runtime/syntax/dcl.vim b/runtime/syntax/dcl.vim
index 73bf577e3e..b973db3434 100644
--- a/runtime/syntax/dcl.vim
+++ b/runtime/syntax/dcl.vim
@@ -1,15 +1,12 @@
" Vim syntax file
" Language: DCL (Digital Command Language - vms)
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change: May 02, 2016
-" Version: 9
+" Last Change: Aug 31, 2016
+" Version: 11
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_DCL
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -111,49 +108,40 @@ syn region dclFuncList matchgroup=Delimiter start="(" matchgroup=Delimiter end=
syn match dclError ")"
" 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_dcl_syntax_inits")
- if version < 508
- let did_dcl_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink dclLogOper dclError
- HiLink dclLogical dclOper
- HiLink dclLogSep dclSep
-
- HiLink dclAssign Operator
- HiLink dclCmdProc Special
- HiLink dclCmdProcStart Operator
- HiLink dclComment Comment
- HiLink dclContinue Statement
- HiLink dclDevice Identifier
- HiLink dclDirPath Identifier
- HiLink dclDirPath Identifier
- HiLink dclDirSep Delimiter
- HiLink dclError Error
- HiLink dclExe Statement
- HiLink dclFilename NONE
- HiLink dclGotoLabel Label
- HiLink dclInstr Statement
- HiLink dclLexical Function
- HiLink dclMdfy Type
- HiLink dclMdfyBrkt Delimiter
- HiLink dclMdfySep Delimiter
- HiLink dclMdfySet Type
- HiLink dclMdfySetString String
- HiLink dclNumber Number
- HiLink dclOper Operator
- HiLink dclParam Special
- HiLink dclSep Delimiter
- HiLink dclStart Delimiter
- HiLink dclString String
- HiLink dclTodo Todo
-
- delcommand HiLink
+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"
diff --git a/runtime/syntax/debchangelog.vim b/runtime/syntax/debchangelog.vim
index d0c658c75e..6e6ed1951a 100644
--- a/runtime/syntax/debchangelog.vim
+++ b/runtime/syntax/debchangelog.vim
@@ -3,27 +3,25 @@
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
" Wichert Akkerman <wakkerma@debian.org>
-" Last Change: 2016 Apr 24
+" Last Change: 2017 Apr 23
" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debchangelog.vim
" Standard syntax initialization
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+if exists("b:current_syntax")
finish
endif
" Case doesn't matter for us
syn case ignore
-let urgency='urgency=\(low\|medium\|high\|critical\)\( [^[:space:],][^,]*\)\='
-let binNMU='binary-only=yes'
+let s:urgency='urgency=\(low\|medium\|high\|critical\)\( [^[:space:],][^,]*\)\='
+let s:binNMU='binary-only=yes'
" Define some common expressions we can use later on
syn match debchangelogName contained "^[[:alnum:]][[:alnum:].+-]\+ "
-exe 'syn match debchangelogFirstKV contained "; \('.urgency.'\|'.binNMU.'\)"'
-exe 'syn match debchangelogOtherKV contained ", \('.urgency.'\|'.binNMU.'\)"'
-syn match debchangelogTarget contained "\v %(frozen|unstable|sid|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile|lts|security)|wheezy-%(backports%(-sloppy)=|security)|jessie%(-backports|-security)=|stretch|%(devel|precise|trusty|vivid|wily|xenial|yakkety)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
+exe 'syn match debchangelogFirstKV contained "; \('.s:urgency.'\|'.s:binNMU.'\)"'
+exe 'syn match debchangelogOtherKV contained ", \('.s:urgency.'\|'.s:binNMU.'\)"'
+syn match debchangelogTarget contained "\v %(frozen|unstable|sid|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile|lts|security)|%(wheezy|jessie)%(-backports%(-sloppy)=|-security)=|stretch%(-backports|-security)=|%(devel|precise|trusty|vivid|wily|xenial|yakkety|zesty|artful)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
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\+\)*"
@@ -36,28 +34,17 @@ syn region debchangelogFooter start="^ [^ ]" end="$" contains=debchangelogEmail
syn region debchangelogEntry start="^ " end="$" contains=debchangelogCloses,debchangelogLP oneline
" Associate our matches and regions with pretty colours
-if version >= 508 || !exists("did_debchangelog_syn_inits")
- if version < 508
- let did_debchangelog_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink debchangelogHeader Error
- HiLink debchangelogFooter Identifier
- HiLink debchangelogEntry Normal
- HiLink debchangelogCloses Statement
- HiLink debchangelogLP Statement
- HiLink debchangelogFirstKV Identifier
- HiLink debchangelogOtherKV Identifier
- HiLink debchangelogName Comment
- HiLink debchangelogVersion Identifier
- HiLink debchangelogTarget Identifier
- HiLink debchangelogEmail Special
-
- delcommand HiLink
-endif
+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 debchangelogTarget Identifier
+hi def link debchangelogEmail Special
let b:current_syntax = "debchangelog"
diff --git a/runtime/syntax/debcontrol.vim b/runtime/syntax/debcontrol.vim
index 4fb53a55ca..1131c9e12f 100644
--- a/runtime/syntax/debcontrol.vim
+++ b/runtime/syntax/debcontrol.vim
@@ -3,13 +3,11 @@
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
" Wichert Akkerman <wakkerma@debian.org>
-" Last Change: 2015 Oct 24
+" Last Change: 2017 Aug 18
" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debcontrol.vim
" Standard syntax initialization
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+if exists("b:current_syntax")
finish
endif
@@ -23,12 +21,12 @@ syn case match
syn match debcontrolElse "^.*$"
" Common seperators
-syn match debControlComma ", *"
-syn match debControlSpace " "
+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\|lpia\|m32r\|m68k\|mipsel\|mips\|powerpcspe\|powerpc\|ppc64el'
+ \ . '\|ia64\|lpia\|m32r\|m68k\|mipsel\|mips64el\|mips\|powerpcspe\|powerpc\|ppc64el'
\ . '\|ppc64\|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'
@@ -40,7 +38,7 @@ unlet s:kernels s:archs s:pairs
syn match debcontrolMultiArch contained "\%(no\|foreign\|allowed\|same\)"
syn match debcontrolName contained "[a-z0-9][a-z0-9+.-]\+"
syn match debcontrolPriority contained "\(extra\|important\|optional\|required\|standard\)"
-syn match debcontrolSection contained "\v((contrib|non-free|non-US/main|non-US/contrib|non-US/non-free|restricted|universe|multiverse)/)?(admin|cli-mono|comm|database|debian-installer|debug|devel|doc|editors|education|electronics|embedded|fonts|games|gnome|gnustep|gnu-r|graphics|hamradio|haskell|httpd|interpreters|introspection|java|kde|kernel|libs|libdevel|lisp|localization|mail|math|metapackages|misc|net|news|ocaml|oldlibs|otherosfs|perl|php|python|ruby|science|shells|sound|text|tex|utils|vcs|video|web|x11|xfce|zope)"
+syn match debcontrolSection contained "\v((contrib|non-free|non-US/main|non-US/contrib|non-US/non-free|restricted|universe|multiverse)/)?(admin|cli-mono|comm|database|debian-installer|debug|devel|doc|editors|education|electronics|embedded|fonts|games|gnome|gnustep|gnu-r|graphics|hamradio|haskell|httpd|interpreters|introspection|java%(script)=|kde|kernel|libs|libdevel|lisp|localization|mail|math|metapackages|misc|net|news|ocaml|oldlibs|otherosfs|perl|php|python|ruby|rust|science|shells|sound|text|tex|utils|vcs|video|web|x11|xfce|zope)"
syn match debcontrolPackageType contained "u\?deb"
syn match debcontrolVariable contained "\${.\{-}}"
syn match debcontrolDmUpload contained "\cyes"
@@ -62,7 +60,7 @@ syn match debcontrolComment "^#.*$" contains=@Spell
syn case ignore
" List of all legal keys
-syn match debcontrolKey contained "^\%(Source\|Package\|Section\|Priority\|\%(XSBC-Original-\)\=Maintainer\|Uploaders\|Build-\%(Conflicts\|Depends\)\%(-Indep\)\=\|Standards-Version\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Breaks\|Essential\|Architecture\|Multi-Arch\|Description\|Bugs\|Origin\|X[SB]-Python-Version\|Homepage\|\(XS-\)\=Vcs-\(Browser\|Arch\|Bzr\|Cvs\|Darcs\|Git\|Hg\|Mtn\|Svn\)\|\%(XC-\)\=Package-Type\): *"
+syn match debcontrolKey contained "^\%(Source\|Package\|Section\|Priority\|\%(XSBC-Original-\)\=Maintainer\|Uploaders\|Build-\%(Conflicts\|Depends\)\%(-Arch\|-Indep\)\=\|Standards-Version\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Breaks\|Essential\|Architecture\|Multi-Arch\|Description\|Bugs\|Origin\|X[SB]-Python-Version\|Homepage\|\(XS-\)\=Vcs-\(Browser\|Arch\|Bzr\|Cvs\|Darcs\|Git\|Hg\|Mtn\|Svn\)\|\%(XC-\)\=Package-Type\|\%(XS-\)\=Testsuite\): *"
syn match debcontrolDeprecatedKey contained "^\%(\%(XS-\)\=DM-Upload-Allowed\): *"
@@ -81,42 +79,31 @@ syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Git" end="$" contains=deb
syn region debcontrolStrictField start="^\%(XS-\)\=DM-Upload-Allowed" end="$" contains=debcontrolDeprecatedKey,debcontrolDmUpload oneline
" Catch-all for the other legal fields
-syn region debcontrolField start="^\%(\%(XSBC-Original-\)\=Maintainer\|Standards-Version\|Essential\|Bugs\|Origin\|X[SB]-Python-Version\|\%(XS-\)\=Vcs-Mtn\):" end="$" contains=debcontrolKey,debcontrolVariable,debcontrolEmail oneline
-syn region debcontrolMultiField start="^\%(Build-\%(Conflicts\|Depends\)\%(-Indep\)\=\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Breaks\|Uploaders\|Description\):" skip="^ " end="^$"me=s-1 end="^[^ #]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment
-syn region debcontrolMultiFieldSpell start="^\%(Description\):" skip="^ " end="^$"me=s-1 end="^[^ #]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment,@Spell
+syn region debcontrolField start="^\%(\%(XSBC-Original-\)\=Maintainer\|Standards-Version\|Essential\|Bugs\|Origin\|X[SB]-Python-Version\|\%(XS-\)\=Vcs-Mtn\|\%(XS-\)\=Testsuite\):" end="$" contains=debcontrolKey,debcontrolVariable,debcontrolEmail oneline
+syn region debcontrolMultiField start="^\%(Build-\%(Conflicts\|Depends\)\%(-Arch\|-Indep\)\=\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Breaks\|Uploaders\|Description\):" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment
+syn region debcontrolMultiFieldSpell start="^\%(Description\):" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment,@Spell
" Associate our matches and regions with pretty colours
-if version >= 508 || !exists("did_debcontrol_syn_inits")
- if version < 508
- let did_debcontrol_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink debcontrolKey Keyword
- HiLink debcontrolField Normal
- HiLink debcontrolStrictField Error
- HiLink debcontrolDeprecatedKey Error
- HiLink debcontrolMultiField Normal
- HiLink debcontrolArchitecture Normal
- HiLink debcontrolMultiArch Normal
- HiLink debcontrolName Normal
- HiLink debcontrolPriority Normal
- HiLink debcontrolSection Normal
- HiLink debcontrolPackageType Normal
- HiLink debcontrolVariable Identifier
- HiLink debcontrolEmail Identifier
- HiLink debcontrolVcsSvn Identifier
- HiLink debcontrolVcsCvs Identifier
- HiLink debcontrolVcsGit Identifier
- HiLink debcontrolHTTPUrl Identifier
- HiLink debcontrolDmUpload Identifier
- HiLink debcontrolComment Comment
- HiLink debcontrolElse Special
-
- delcommand HiLink
-endif
+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 debcontrolComment Comment
+hi def link debcontrolElse Special
let b:current_syntax = "debcontrol"
diff --git a/runtime/syntax/debsources.vim b/runtime/syntax/debsources.vim
index d35e24729d..4fa80debec 100644
--- a/runtime/syntax/debsources.vim
+++ b/runtime/syntax/debsources.vim
@@ -2,13 +2,11 @@
" Language: Debian sources.list
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
-" Last Change: 2016 Apr 24
+" Last Change: 2017 Apr 22
" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debsources.vim
" Standard syntax initialization
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+if exists("b:current_syntax")
finish
endif
@@ -27,7 +25,7 @@ let s:supported = [
\ 'oldstable', 'stable', 'testing', 'unstable', 'experimental',
\ 'squeeze', 'wheezy', 'jessie', 'stretch', 'sid', 'rc-buggy',
\
- \ 'precise', 'trusty', 'wily', 'xenial', 'yakkety', 'devel'
+ \ 'trusty', 'xenial', 'yakkety', 'zesty', 'artful', 'devel'
\ ]
let s:unsupported = [
\ 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato',
@@ -35,15 +33,15 @@ let s:unsupported = [
\
\ 'warty', 'hoary', 'breezy', 'dapper', 'edgy', 'feisty',
\ 'gutsy', 'hardy', 'intrepid', 'jaunty', 'karmic', 'lucid',
- \ 'maverick', 'natty', 'oneiric', 'quantal', 'raring', 'saucy',
- \ 'utopic', 'vivid'
+ \ 'maverick', 'natty', 'oneiric', 'precise', 'quantal', 'raring', 'saucy',
+ \ 'utopic', 'vivid', 'wily'
\ ]
let &cpo=s:cpo
" Match uri's
-syn match debsourcesUri +\(http://\|ftp://\|[rs]sh://\|debtorrent://\|\(cdrom\|copy\|file\):\)[^' <>"]\++
-exe 'syn match debsourcesDistrKeyword +\([[:alnum:]_./]*\)\('. join(s:supported, '\|'). '\)\([-[:alnum:]_./]*\)+'
-exe 'syn match debsourcesUnsupportedDistrKeyword +\([[:alnum:]_./]*\)\('. join(s:unsupported, '\|') .'\)\([-[:alnum:]_./]*\)+'
+syn match debsourcesUri +\(https\?://\|ftp://\|[rs]sh://\|debtorrent://\|\(cdrom\|copy\|file\):\)[^' <>"]\++
+exe 'syn match debsourcesDistrKeyword +\([[:alnum:]_./]*\)\<\('. join(s:supported, '\|'). '\)\>\([-[:alnum:]_./]*\)+'
+exe 'syn match debsourcesUnsupportedDistrKeyword +\([[:alnum:]_./]*\)\<\('. join(s:unsupported, '\|') .'\)\>\([-[:alnum:]_./]*\)+'
" Associate our matches and regions with pretty colours
hi def link debsourcesLine Error
diff --git a/runtime/syntax/def.vim b/runtime/syntax/def.vim
index 5efb41bc43..a17714c41e 100644
--- a/runtime/syntax/def.vim
+++ b/runtime/syntax/def.vim
@@ -5,11 +5,8 @@
" Last Change: $Date: 2007/10/02 13:51:24 $
" $Revision: 1.2 $
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -32,25 +29,15 @@ syn match defNumber "0x\x\+"
" 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_def_syntax_inits")
- if version < 508
- let did_def_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink defComment Comment
- HiLink defKeyword Keyword
- HiLink defStorage StorageClass
- HiLink defString String
- HiLink defNumber Number
- HiLink defOrdinal Operator
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/denyhosts.vim b/runtime/syntax/denyhosts.vim
index 0ec09ba13e..f32faab168 100644
--- a/runtime/syntax/denyhosts.vim
+++ b/runtime/syntax/denyhosts.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: denyhosts configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2007-06-25
+" Language: denyhosts configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2007-06-25
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/desc.vim b/runtime/syntax/desc.vim
index ca47176ff7..84b9cd0f34 100644
--- a/runtime/syntax/desc.vim
+++ b/runtime/syntax/desc.vim
@@ -3,11 +3,8 @@
" Maintainer: René Rebe <rene@exactcode.de>, Piotr Esden-Tempski <esden@rocklinux.org>
" Last Change: 2006 Aug 14
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -63,40 +60,29 @@ syn region descTagRegion start=/^\[\(F\|FLAG\)\]/ end=/$/ contains=descTag,descF
syn region descTagRegion start=/^\[\(L\|LICENSE\)\]/ end=/$/ contains=descTag,descLicense
-" For version 5.7 and earlier: only when not done already
-" Define the default highlighting.
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_desc_syntax_inits")
- if version < 508
- let did_desc_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink descFlag Identifier
- HiLink descLicense Identifier
- HiLink descCategory Identifier
-
- HiLink descTag Type
- HiLink descUrl Underlined
- HiLink descEmail Underlined
-
- " priority tag colors
- HiLink descInstallX Boolean
- HiLink descInstallO Type
- HiLink descDash Operator
- HiLink descDigit Number
- HiLink descCompilePriority Number
-
- " download tag colors
- HiLink descSum Number
- HiLink descTarball Underlined
-
- " tag region colors
- HiLink descText Comment
-
- delcommand HiLink
-endif
+" 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
index 27dac5c8ee..915107887a 100644
--- a/runtime/syntax/desktop.vim
+++ b/runtime/syntax/desktop.vim
@@ -7,11 +7,8 @@
" (added "Keywords")
" Version Info: desktop.vim 0.9.4-1.2
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -79,41 +76,31 @@ syn match dtALocale /\[.\{-}\]\s*=\@=/ containedin=ALL
" 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_desktop_syntax_inits")
- if version < 508
- let did_dosini_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink dtGroup Special
- HiLink dtComment Comment
- HiLink dtDelim String
-
- HiLink dtLocaleKey Type
- HiLink dtLocaleName Identifier
- HiLink dtXLocale Identifier
- HiLink dtALocale Identifier
-
- HiLink dtNumericKey Type
-
- HiLink dtBooleanKey Type
- HiLink dtBooleanValue Constant
-
- HiLink dtStringKey Type
-
- HiLink dtExecKey Type
- HiLink dtExecParam Special
- HiLink dtTypeKey Type
- HiLink dtTypeValue Constant
- HiLink dtNotStLabel Type
- HiLink dtXAddKey Type
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link dtGroup Special
+hi def link dtComment Comment
+hi def link dtDelim String
+
+hi def link dtLocaleKey Type
+hi def link dtLocaleName Identifier
+hi def link dtXLocale Identifier
+hi def link dtALocale Identifier
+
+hi def link dtNumericKey Type
+
+hi def link dtBooleanKey Type
+hi def link dtBooleanValue Constant
+
+hi def link dtStringKey Type
+
+hi def link dtExecKey Type
+hi def link dtExecParam Special
+hi def link dtTypeKey Type
+hi def link dtTypeValue Constant
+hi def link dtNotStLabel Type
+hi def link dtXAddKey Type
+
let b:current_syntax = "desktop"
diff --git a/runtime/syntax/dictconf.vim b/runtime/syntax/dictconf.vim
index e7fa476975..c762808c89 100644
--- a/runtime/syntax/dictconf.vim
+++ b/runtime/syntax/dictconf.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: dict(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: dict(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/dictdconf.vim b/runtime/syntax/dictdconf.vim
index 44bf6f8bad..ecf5fd346f 100644
--- a/runtime/syntax/dictdconf.vim
+++ b/runtime/syntax/dictdconf.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: dictd(8) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: dictd(8) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/diva.vim b/runtime/syntax/diva.vim
index 78668fd85a..127a0b4663 100644
--- a/runtime/syntax/diva.vim
+++ b/runtime/syntax/diva.vim
@@ -11,11 +11,7 @@
" Don't remove any old syntax stuff hanging around! We need stuff
" from skill.vim.
if !exists("did_skill_syntax_inits")
- if version < 600
- so <sfile>:p:h/skill.vim
- else
- runtime! syntax/skill.vim
- endif
+ runtime! syntax/skill.vim
endif
syn keyword divaDRCKeywords area enc notch ovlp sep width
@@ -81,29 +77,19 @@ syn match divaGeomFunctions "(geom\u\a\+\(45\|90\)\=\>"hs=s+1
syn match divaGeomFunctions "\<geom\u\a\+\(45\|90\)\=("he=e-1
" 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_diva_syntax_inits")
- if version < 508
- let did_diva_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink divaDRCKeywords Statement
- HiLink divaMeasKeywords Statement
- HiLink divaCtrlFunctions Conditional
- HiLink divaExtFunctions Function
- HiLink divaDRCFunctions Function
- HiLink divaFunctions Function
- HiLink divaLayerFunctions Function
- HiLink divaChkFunctions Function
- HiLink divaLVSFunctions Function
- HiLink divaGeomFunctions Function
+hi def link divaDRCKeywords Statement
+hi def link divaMeasKeywords Statement
+hi def link divaCtrlFunctions Conditional
+hi def link divaExtFunctions Function
+hi def link divaDRCFunctions Function
+hi def link divaFunctions Function
+hi def link divaLayerFunctions Function
+hi def link divaChkFunctions Function
+hi def link divaLVSFunctions Function
+hi def link divaGeomFunctions Function
- delcommand HiLink
-endif
let b:current_syntax = "diva"
diff --git a/runtime/syntax/django.vim b/runtime/syntax/django.vim
index da315ac302..d3ca4de0e2 100644
--- a/runtime/syntax/django.vim
+++ b/runtime/syntax/django.vim
@@ -3,11 +3,8 @@
" Maintainer: Dave Hodder <dmh@dmh.org.uk>
" Last Change: 2014 Jul 13
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -68,29 +65,19 @@ syn region djangoComment start="{%\s*comment\(\s\+.\{-}\)\?%}" end="{%\s*endcomm
syn region djangoComBlock start="{#" end="#}" contains=djangoTodo
" 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_django_syn_inits")
- if version < 508
- let did_django_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink djangoTagBlock PreProc
- HiLink djangoVarBlock PreProc
- HiLink djangoStatement Statement
- HiLink djangoFilter Identifier
- HiLink djangoArgument Constant
- HiLink djangoTagError Error
- HiLink djangoVarError Error
- HiLink djangoError Error
- HiLink djangoComment Comment
- HiLink djangoComBlock Comment
- HiLink djangoTodo Todo
+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
- delcommand HiLink
-endif
let b:current_syntax = "django"
diff --git a/runtime/syntax/dnsmasq.vim b/runtime/syntax/dnsmasq.vim
index 9fa32077b6..a4cc8b577b 100644
--- a/runtime/syntax/dnsmasq.vim
+++ b/runtime/syntax/dnsmasq.vim
@@ -20,10 +20,8 @@
" endif
"
-" For version 5.x: Clear all syntax items
-if v:version < 600
- syntax clear
-elseif exists("b:current_syntax") || &compatible
+" quit when a syntax file was already loaded
+if exists("b:current_syntax") || &compatible
finish
endif
diff --git a/runtime/syntax/docbk.vim b/runtime/syntax/docbk.vim
index fc679eecaf..809f2894e6 100644
--- a/runtime/syntax/docbk.vim
+++ b/runtime/syntax/docbk.vim
@@ -13,11 +13,8 @@
" http://www.open-oasis.org/docbook/
"
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -174,26 +171,15 @@ syn region docbkRemark start="<comment>"lc=9 end="</comment>"me=e-10 contains=x
syn region docbkCite start="<citation>"lc=10 end="</citation>"me=e-11 contains=xmlRegion,xmlEntity,sgmlRegion,sgmlEntity keepend
" 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_docbk_syn_inits")
- if version < 508
- let did_docbk_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- hi DocbkBold term=bold cterm=bold gui=bold
- else
- command -nargs=+ HiLink hi def link <args>
- hi def DocbkBold term=bold cterm=bold gui=bold
- endif
+" Only when an item doesn't have highlighting yet
+hi def DocbkBold term=bold cterm=bold gui=bold
- HiLink docbkKeyword Statement
- HiLink docbkRegion DocbkBold
- HiLink docbkTitle Title
- HiLink docbkRemark Comment
- HiLink docbkCite Constant
+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
- delcommand HiLink
-endif
let b:current_syntax = "docbk"
diff --git a/runtime/syntax/dosbatch.vim b/runtime/syntax/dosbatch.vim
index d9b1aa6703..249e6f7c46 100644
--- a/runtime/syntax/dosbatch.vim
+++ b/runtime/syntax/dosbatch.vim
@@ -9,11 +9,8 @@
" dosbatch_cmdextversion - 1 = Windows NT, 2 = Windows 2000 [default]
"
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -111,49 +108,39 @@ syn keyword dosbatchImplicit sort start subst time title tree type ver verify
syn keyword dosbatchImplicit vol xcopy
" 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_dosbatch_syntax_inits")
- if version < 508
- let did_dosbatch_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink dosbatchTodo Todo
-
- HiLink dosbatchStatement Statement
- HiLink dosbatchCommands dosbatchStatement
- HiLink dosbatchLabel Label
- HiLink dosbatchConditional Conditional
- HiLink dosbatchRepeat Repeat
-
- HiLink dosbatchOperator Operator
- HiLink dosbatchEchoOperator dosbatchOperator
- HiLink dosbatchIfOperator dosbatchOperator
-
- HiLink dosbatchArgument Identifier
- HiLink dosbatchIdentifier Identifier
- HiLink dosbatchVariable dosbatchIdentifier
-
- HiLink dosbatchSpecialChar SpecialChar
- HiLink dosbatchString String
- HiLink dosbatchNumber Number
- HiLink dosbatchInteger dosbatchNumber
- HiLink dosbatchHex dosbatchNumber
- HiLink dosbatchBinary dosbatchNumber
- HiLink dosbatchOctal dosbatchNumber
-
- HiLink dosbatchComment Comment
- HiLink dosbatchImplicit Function
-
- HiLink dosbatchSwitch Special
-
- HiLink dosbatchCmd PreProc
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link dosbatchTodo Todo
+
+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"
diff --git a/runtime/syntax/dosini.vim b/runtime/syntax/dosini.vim
index e474f21116..ccc5e86f1b 100644
--- a/runtime/syntax/dosini.vim
+++ b/runtime/syntax/dosini.vim
@@ -9,11 +9,8 @@
" Last Change: 2011 Nov 8
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -28,23 +25,13 @@ syn region dosiniHeader start="^\s*\[" end="\]"
syn match dosiniComment "^[#;].*$"
" 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_dosini_syntax_inits")
- if version < 508
- let did_dosini_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink dosiniNumber Number
- HiLink dosiniHeader Special
- HiLink dosiniComment Comment
- HiLink dosiniLabel Type
-
- delcommand HiLink
-endif
+" 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
+
let b:current_syntax = "dosini"
diff --git a/runtime/syntax/dot.vim b/runtime/syntax/dot.vim
index 4cc6f4f21d..0fdd6ea080 100644
--- a/runtime/syntax/dot.vim
+++ b/runtime/syntax/dot.vim
@@ -6,11 +6,8 @@
" Last Change: 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -74,36 +71,26 @@ 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 <args>
- else
- command -nargs=+ HiLink hi def link <args>
- 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 dotIdentifier Identifier
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link dotParErr Error
+hi def link dotBraceErr Error
+hi def link dotBrackErr Error
+
+hi def link dotComment Comment
+hi def link dotTodo Todo
+
+hi def link dotParEncl Keyword
+hi def link dotBrackEncl Keyword
+hi def link dotBraceEncl Keyword
+
+hi def link dotKeyword Keyword
+hi def link dotType Type
+hi def link dotKeyChar Keyword
+
+hi def link dotString String
+hi def link dotIdentifier Identifier
+
let b:current_syntax = "dot"
diff --git a/runtime/syntax/doxygen.vim b/runtime/syntax/doxygen.vim
index cadbf54dc5..6bd3726279 100644
--- a/runtime/syntax/doxygen.vim
+++ b/runtime/syntax/doxygen.vim
@@ -2,7 +2,8 @@
" Language: doxygen on top of c, cpp, idl, java, php
" Maintainer: Michael Geddes <vimmer@frog.wheelycreek.net>
" Author: Michael Geddes
-" Last Change: Jan 2009 (\tparam by Domnique Pelle, Aug 2013)
+" Last Changes: Jan 2009 (\tparam by Domnique Pelle, Aug 2013)
+" Nov 2017 (@throws by Domnique Pelle)
" Version: 1.23
"
" Copyright 2004-2008 Michael Geddes
@@ -181,13 +182,13 @@ endif
syn match doxygenParamDirection contained "\v\[(\s*in>((]\s*\[|\s*,\s*)out>)=|out>((]\s*\[|\s*,\s*)in>)=)\]" nextgroup=doxygenParamName skipwhite
syn keyword doxygenParam contained param tparam nextgroup=doxygenParamName,doxygenParamDirection skipwhite
syn match doxygenParamName contained +[A-Za-z0-9_:]\++ nextgroup=doxygenSpecialMultilineDesc skipwhite
- syn keyword doxygenRetval contained retval throw exception nextgroup=doxygenParamName skipwhite
+ syn keyword doxygenRetval contained retval throw throws exception nextgroup=doxygenParamName skipwhite
" Match one line identifiers.
syn keyword doxygenOther contained addindex anchor
\ dontinclude endhtmlonly endlatexonly showinitializer hideinitializer
\ example htmlonly image include ingroup internal latexonly line
- \ overload relates relatesalso sa skip skipline
+ \ overload related relates relatedalso relatesalso sa skip skipline
\ until verbinclude version addtogroup htmlinclude copydoc dotfile
\ xmlonly endxmlonly
\ nextgroup=doxygenSpecialOnelineDesc
@@ -223,7 +224,7 @@ endif
syn keyword doxygenOther contained par nextgroup=doxygenHeaderLine
syn region doxygenHeaderLine start=+.+ end=+^+ contained skipwhite nextgroup=doxygenSpecialMultilineDesc
- syn keyword doxygenOther contained arg author date deprecated li return returns see invariant note post pre remarks since test nextgroup=doxygenSpecialMultilineDesc
+ syn keyword doxygenOther contained arg author authors date deprecated li result return returns see invariant note post pre remark remarks since test nextgroup=doxygenSpecialMultilineDesc
syn keyword doxygenOtherTODO contained todo attention nextgroup=doxygenSpecialMultilineDesc
syn keyword doxygenOtherWARN contained warning nextgroup=doxygenSpecialMultilineDesc
syn keyword doxygenOtherBUG contained bug nextgroup=doxygenSpecialMultilineDesc
diff --git a/runtime/syntax/dracula.vim b/runtime/syntax/dracula.vim
index 6a3806028e..a373dc200c 100644
--- a/runtime/syntax/dracula.vim
+++ b/runtime/syntax/dracula.vim
@@ -8,11 +8,8 @@
" the purposes of Design Rule Checking, Layout vs. Schematic
" verification, and Layout Parameter Extraction.
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -61,24 +58,14 @@ syn match draculaPreProc "^#.*"
syn sync lines=50
" 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_dracula_syn_inits")
- if version < 508
- let did_dracula_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink draculaIdentifier Identifier
- HiLink draculaStatement Statement
- HiLink draculaType Type
- HiLink draculaComment Comment
- HiLink draculaPreProc PreProc
+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
- delcommand HiLink
-endif
let b:current_syntax = "dracula"
diff --git a/runtime/syntax/dtd.vim b/runtime/syntax/dtd.vim
index 001dbbddd3..ae0bd1288e 100644
--- a/runtime/syntax/dtd.vim
+++ b/runtime/syntax/dtd.vim
@@ -126,41 +126,31 @@ syn keyword dtdTodo contained TODO FIXME XXX
syn sync lines=250
" 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_dtd_syn_inits")
- if version < 508
- let did_dtd_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " The default highlighting.
- HiLink dtdFunction Function
- HiLink dtdTag Normal
- HiLink dtdType Type
- HiLink dtdAttrType dtdType
- HiLink dtdAttrDef dtdType
- HiLink dtdConstant Constant
- HiLink dtdString dtdConstant
- HiLink dtdEnum dtdConstant
- HiLink dtdCard dtdFunction
-
- HiLink dtdEntity Statement
- HiLink dtdEntityPunct dtdType
- HiLink dtdParamEntityInst dtdConstant
- HiLink dtdParamEntityPunct dtdType
- HiLink dtdParamEntityDecl dtdType
- HiLink dtdParamEntityDPunct dtdComment
-
- HiLink dtdComment Comment
- HiLink dtdTagName Statement
- HiLink dtdError Error
- HiLink dtdTodo Todo
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+" The default highlighting.
+hi def link dtdFunction Function
+hi def link dtdTag Normal
+hi def link dtdType Type
+hi def link dtdAttrType dtdType
+hi def link dtdAttrDef dtdType
+hi def link dtdConstant Constant
+hi def link dtdString dtdConstant
+hi def link dtdEnum dtdConstant
+hi def link dtdCard dtdFunction
+
+hi def link dtdEntity Statement
+hi def link dtdEntityPunct dtdType
+hi def link dtdParamEntityInst dtdConstant
+hi def link dtdParamEntityPunct dtdType
+hi def link dtdParamEntityDecl dtdType
+hi def link dtdParamEntityDPunct dtdComment
+
+hi def link dtdComment Comment
+hi def link dtdTagName Statement
+hi def link dtdError Error
+hi def link dtdTodo Todo
+
let &cpo = s:dtd_cpo_save
unlet s:dtd_cpo_save
diff --git a/runtime/syntax/dtml.vim b/runtime/syntax/dtml.vim
index 7de722aabd..cb09de8091 100644
--- a/runtime/syntax/dtml.vim
+++ b/runtime/syntax/dtml.vim
@@ -9,20 +9,13 @@
" hacked out of the Zope Quick Reference in case someone finds something
" sensible to do with them. I certainly haven't.
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
" First load the HTML syntax
-if version < 600
- source <sfile>:p:h/html.vim
-else
- runtime! syntax/html.vim
-endif
+runtime! syntax/html.vim
syn case match
@@ -196,25 +189,15 @@ syn match htmlTagN contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagNa
syn match htmlTagN contained +</\s*[-a-zA-Z0-9]\++hs=s+2 contains=htmlTagName,htmlSpecialTagName,dtmlIsTag,dtmlAttribute,dtmlMethod,@htmlTagNameCluster
" 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_dtml_syntax_inits")
- if version < 508
- let did_dtml_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink dtmlIsTag PreProc
- HiLink dtmlAttribute Identifier
- HiLink dtmlMethod Function
- HiLink dtmlComment Comment
- HiLink dtmlTODO Todo
- HiLink dtmlSpecialChar Special
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link dtmlIsTag PreProc
+hi def link dtmlAttribute Identifier
+hi def link dtmlMethod Function
+hi def link dtmlComment Comment
+hi def link dtmlTODO Todo
+hi def link dtmlSpecialChar Special
+
let b:current_syntax = "dtml"
diff --git a/runtime/syntax/dtrace.vim b/runtime/syntax/dtrace.vim
index 493de1ed0f..7ed9766e77 100644
--- a/runtime/syntax/dtrace.vim
+++ b/runtime/syntax/dtrace.vim
@@ -10,19 +10,14 @@
" 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
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
" Read the C syntax to start with
-if version < 600
- so <sfile>:p:h/c.vim
-else
- runtime! syntax/c.vim
- unlet b:current_syntax
-endif
+runtime! syntax/c.vim
+unlet b:current_syntax
syn clear cCommentL " dtrace doesn't support // style comments
diff --git a/runtime/syntax/dylan.vim b/runtime/syntax/dylan.vim
index 14262d53d6..345e932e60 100644
--- a/runtime/syntax/dylan.vim
+++ b/runtime/syntax/dylan.vim
@@ -8,21 +8,14 @@
" syntax files.
" Part 1: Syntax definition
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
syn case ignore
-if version < 600
- set lisp
-else
- setlocal lisp
-endif
+setlocal lisp
" Highlight special characters (those that have backslashes) differently
syn match dylanSpecial display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)"
@@ -67,42 +60,32 @@ syn region dylanPrecondit start="^\s*#\s*\(if\>\|else\>\|endif\>\)" skip="\\$"
syn region dylanHeader start="^[Mm]odule:" end="^$"
" 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_dylan_syntax_inits")
- if version < 508
- let did_dylan_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink dylanBlock PreProc
- HiLink dylanBoolean Boolean
- HiLink dylanCharacter Character
- HiLink dylanClass Structure
- HiLink dylanClassMods StorageClass
- HiLink dylanComment Comment
- HiLink dylanConditional Conditional
- HiLink dylanConstant Constant
- HiLink dylanException Exception
- HiLink dylanHeader Macro
- HiLink dylanImport Include
- HiLink dylanLabel Label
- HiLink dylanMiscMods StorageClass
- HiLink dylanNumber Number
- HiLink dylanOther Keyword
- HiLink dylanOperator Operator
- HiLink dylanParamDefs Keyword
- HiLink dylanPrecondit PreCondit
- HiLink dylanRepeat Repeat
- HiLink dylanSimpleDefs Keyword
- HiLink dylanStatement Macro
- HiLink dylanString String
- HiLink dylanVariable Identifier
+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
- delcommand HiLink
-endif
let b:current_syntax = "dylan"
diff --git a/runtime/syntax/dylanintr.vim b/runtime/syntax/dylanintr.vim
index 11ef816681..692db34985 100644
--- a/runtime/syntax/dylanintr.vim
+++ b/runtime/syntax/dylanintr.vim
@@ -4,11 +4,8 @@
" Last Change: Fri Sep 29 13:53:27 PDT 2000
"
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -26,26 +23,16 @@ syn match dylanintrInclude "^\s*#\s*include\>\s*["<]" contains=intrIncluded
"syn keyword intrMods pointer struct
" 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_dylan_intr_syntax_inits")
- if version < 508
- let did_dylan_intr_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink dylanintrInfo Special
- HiLink dylanintrInterface Operator
- HiLink dylanintrMods Type
- HiLink dylanintrClass StorageClass
- HiLink dylanintrType Type
- HiLink dylanintrIncluded String
- HiLink dylanintrInclude Include
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/dylanlid.vim b/runtime/syntax/dylanlid.vim
index ec7b40114c..dae0bf94b1 100644
--- a/runtime/syntax/dylanlid.vim
+++ b/runtime/syntax/dylanlid.vim
@@ -5,11 +5,8 @@
" Last Change: Fri Sep 29 13:50:20 PDT 2000
"
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -21,21 +18,11 @@ syn region dylanlidEntry matchgroup=Statement start=":%" end="$" oneline
syn sync lines=50
" 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_dylan_lid_syntax_inits")
- if version < 508
- let did_dylan_lid_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink dylanlidInfo Type
- HiLink dylanlidEntry String
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link dylanlidInfo Type
+hi def link dylanlidEntry String
+
let b:current_syntax = "dylanlid"
diff --git a/runtime/syntax/ecd.vim b/runtime/syntax/ecd.vim
index fff7a4b883..1276f2bd9d 100644
--- a/runtime/syntax/ecd.vim
+++ b/runtime/syntax/ecd.vim
@@ -8,10 +8,8 @@
" This syntax file was derived from apachestyle.vim
" by Christian Hammers <ch@westend.com>
-" Quit when a syntax file was already loaded
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -31,26 +29,16 @@ syn match ecdTagN contained +<[/\s]*[-a-zA-Z0-9_]\++ms=s+1
syn match ecdTagError contained "[^>]<"ms=s+1
" 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_ecd_syn_inits")
- if version < 508
- let did_ecd_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink ecdComment Comment
- HiLink ecdAttr Type
- HiLink ecdAttrN Statement
- HiLink ecdAttrV Value
- HiLink ecdTag Function
- HiLink ecdTagN Statement
- HiLink ecdTagError Error
-
- delcommand HiLink
-endif
+" 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
index 0c17834947..002c9f89e1 100644
--- a/runtime/syntax/edif.vim
+++ b/runtime/syntax/edif.vim
@@ -8,18 +8,12 @@
" 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 version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
-if version >= 600
- setlocal iskeyword=48-57,-,+,A-Z,a-z,_,&
-else
- set iskeyword=A-Z,a-z,_,&
-endif
+setlocal iskeyword=48-57,-,+,A-Z,a-z,_,&
syn region edifList matchgroup=Delimiter start="(" end=")" contains=edifList,edifKeyword,edifString,edifNumber
@@ -37,28 +31,15 @@ syn match edifKeyword "(\@<=\s*[a-zA-Z&][a-zA-Z_0-9]*\>" contained
syn match edifError ")"
" synchronization
-if version < 600
- syntax sync maxlines=250
-else
- syntax sync fromstart
-endif
+syntax sync fromstart
" Define the default highlighting.
-if version >= 508 || !exists("did_edif_syntax_inits")
- if version < 508
- let did_edif_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink edifInString SpecialChar
- HiLink edifKeyword Keyword
- HiLink edifNumber Number
- HiLink edifInStringError edifError
- HiLink edifError Error
- HiLink edifString String
- delcommand HiLink
-endif
+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/eiffel.vim b/runtime/syntax/eiffel.vim
index a91f85d03e..c6634871cc 100644
--- a/runtime/syntax/eiffel.vim
+++ b/runtime/syntax/eiffel.vim
@@ -5,11 +5,8 @@
" Contributions from: Thilo Six
"
" URL: https://github.com/eiffelhub/vim-eiffel
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -141,68 +138,58 @@ endif
syn sync lines=40
" 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_eiffel_syntax_inits")
- if version < 508
- let did_eiffel_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink eiffelKeyword Statement
- HiLink eiffelProperty Statement
- HiLink eiffelInheritClause Statement
- HiLink eiffelStatement Statement
- HiLink eiffelDeclaration Statement
- HiLink eiffelAssertion Statement
- HiLink eiffelDebug Statement
- HiLink eiffelException Statement
- HiLink eiffelGenericCreate Statement
+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
- HiLink eiffelAgent Statement
- HiLink eiffelConvert Statement
+hi def link eiffelAgent Statement
+hi def link eiffelConvert Statement
- HiLink eiffelTopStruct PreProc
+hi def link eiffelTopStruct PreProc
- HiLink eiffelAll Special
- HiLink eiffelAnchored Special
- HiLink eiffelBitType Special
+hi def link eiffelAll Special
+hi def link eiffelAnchored Special
+hi def link eiffelBitType Special
- HiLink eiffelBool Boolean
- HiLink eiffelString String
- HiLink eiffelCharacter Character
- HiLink eiffelClassName Type
- HiLink eiffelNumber Number
+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
- HiLink eiffelStringEscape Special
+hi def link eiffelStringEscape Special
- HiLink eiffelOperator Special
- HiLink eiffelArray Special
- HiLink eiffelExport Special
- HiLink eiffelCreation Special
- HiLink eiffelBrackets Special
- HiLink eiffelGeneric Special
- HiLink eiffelGenericDecl Special
- HiLink eiffelConstraint Special
- HiLink eiffelCreate 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
- HiLink eiffelPredefined Constant
+hi def link eiffelPredefined Constant
- HiLink eiffelComment Comment
+hi def link eiffelComment Comment
- HiLink eiffelError Error
- HiLink eiffelBadConstant Error
- HiLink eiffelStringError Error
- HiLink eiffelParenError Error
- HiLink eiffelBracketError Error
+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
- HiLink eiffelTodo Todo
+hi def link eiffelTodo Todo
- delcommand HiLink
-endif
let b:current_syntax = "eiffel"
diff --git a/runtime/syntax/elf.vim b/runtime/syntax/elf.vim
index 621e063ff8..e695dbc79a 100644
--- a/runtime/syntax/elf.vim
+++ b/runtime/syntax/elf.vim
@@ -10,11 +10,8 @@
" This is the Applix Inc., Macro and Builder programming language.
" It has nothing in common with the binary format called ELF.
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -63,32 +60,22 @@ syn match elfParens "[\[\]()]"
syn match elfPunct "[,;]"
" 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_elf_syn_inits")
- if version < 508
- let did_elf_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " The default methods for highlighting. Can be overridden later.
- HiLink elfComment Comment
- HiLink elfPPCom Include
- HiLink elfKeyword Keyword
- HiLink elfSpecial Special
- HiLink elfEnvironment Special
- HiLink elfBraceError Error
- HiLink elfConditional Conditional
- HiLink elfMacro Function
- HiLink elfNumber Number
- HiLink elfString String
- HiLink elfParens Delimiter
- HiLink elfPunct Delimiter
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/elinks.vim b/runtime/syntax/elinks.vim
index b4d9e02ef6..98252a24d3 100644
--- a/runtime/syntax/elinks.vim
+++ b/runtime/syntax/elinks.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: elinks(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2007-06-17
+" Language: elinks(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2007-06-17
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/elmfilt.vim b/runtime/syntax/elmfilt.vim
index e7d5df22aa..ec97af038d 100644
--- a/runtime/syntax/elmfilt.vim
+++ b/runtime/syntax/elmfilt.vim
@@ -1,15 +1,12 @@
" Vim syntax file
" Language: Elm Filter rules
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change: Oct 23, 2014
-" Version: 6
+" Last Change: Aug 31, 2016
+" Version: 8
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_ELMFILT
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -38,32 +35,23 @@ syn region elmfiltString contained start="'" skip="'\(\\\\\)*\\['%]" end="'" con
syn match elmfiltSpaceError contained "\s.*$"
" 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_elmfilt_syntax_inits")
- if version < 508
- let did_elmfilt_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+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
- HiLink elmfiltAction Statement
- HiLink elmfiltArg Special
- HiLink elmfiltComment Comment
- HiLink elmfiltCond Statement
- HiLink elmfiltIf Statement
- HiLink elmfiltMatch Special
- HiLink elmfiltMatchError Error
- HiLink elmfiltNumber Number
- HiLink elmfiltOper Operator
- HiLink elmfiltOperKey Type
- HiLink elmfiltParenError Error
- HiLink elmfiltSpaceError Error
- HiLink elmfiltString String
- HiLink elmfiltThenError Error
-
- delcommand HiLink
endif
let b:current_syntax = "elmfilt"
diff --git a/runtime/syntax/erlang.vim b/runtime/syntax/erlang.vim
index 02597e75f3..870fcca106 100644
--- a/runtime/syntax/erlang.vim
+++ b/runtime/syntax/erlang.vim
@@ -1,9 +1,10 @@
" Vim syntax file
" Language: Erlang (http://www.erlang.org)
" Maintainer: Csaba Hoch <csaba.hoch@gmail.com>
-" Last Update: 2013-Jul-25
+" Contributor: Adam Rutkowski <hq@mtod.org>
+" Last Update: 2017-Mar-05
" License: Vim license
-" URL: https://github.com/hcs42/vim-erlang
+" 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
@@ -28,11 +29,8 @@
"
" syn keyword erlangAttribute myattr1 myattr2 contained
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -42,16 +40,13 @@ set cpo&vim
" Case sensitive
syn case match
-if version >= 600
- setlocal iskeyword+=$,@-@
-endif
+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\|private\|equiv\|spec\|throws\)' contained
syn match erlangCommentAnnotation /`[^']*'/ contained
syn keyword erlangTodo TODO FIXME XXX contained
-syn match erlangShebang '^#!.*'
" Numbers (minimum base is 2, maximum is 36.)
syn match erlangNumberInteger '\<\d\+\>'
@@ -61,12 +56,12 @@ 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 '\~\a\|\\\%(\o\{1,3}\|x\x\x\|x{\x\+}\|\^.\|.\)' contained
-syn match erlangQuotedAtomModifier '\~\a\|\\\%(\o\{1,3}\|x\x\x\|x{\x\+}\|\^.\|.\)' contained
+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 erlangOperator '==\|=:=\|/=\|=/=\|<\|=<\|>\|>=\|=>\|:=\|++\|--\|=\|!\|<-\|+\|-\|\*\|\/'
syn keyword erlangOperator div rem or xor bor bxor bsl bsr and band not bnot andalso orelse
syn match erlangBracket '{\|}\|\[\|]\||\|||'
syn match erlangPipe '|'
@@ -77,14 +72,19 @@ 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
-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
+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
+" Variables, macros, records, maps
syn match erlangVariable '\<[A-Z_][[:alnum:]_@]*'
syn match erlangMacro '??\=[[:alnum:]_@]\+'
syn match erlangMacro '\%(-define(\)\@<=[[:alnum:]_@]\+'
+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
@@ -99,7 +99,7 @@ syn match erlangPreCondit '^\s*-\%(\s\|\n\|%.*\n\)*\%(ifdef\|ifndef\|else\|endif
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 query
+syn keyword erlangKeyword after begin case catch cond end fun if let of
syn keyword erlangKeyword receive when try
" Build-in-functions (BIFs)
@@ -147,116 +147,109 @@ let b:erlang_syntax_synced = 1
let s:old_style = (exists("g:erlang_old_style_highlight") &&
\g:erlang_old_style_highlight == 1)
-" 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_erlang_inits")
- if version < 508
- let did_erlang_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " Comments
- HiLink erlangComment Comment
- HiLink erlangCommentAnnotation Special
- HiLink erlangTodo Todo
- HiLink erlangShebang Comment
-
- " Numbers
- HiLink erlangNumberInteger Number
- HiLink erlangNumberFloat Float
-
- " Strings, atoms, characters
- HiLink erlangString String
-
- if s:old_style
- HiLink erlangQuotedAtom Type
- else
- HiLink erlangQuotedAtom String
- endif
-
- HiLink erlangStringModifier Special
- HiLink erlangQuotedAtomModifier Special
- HiLink erlangModifier Special
-
- " Operators, separators
- HiLink erlangOperator Operator
- HiLink erlangRightArrow Operator
- if s:old_style
- HiLink erlangBracket Normal
- HiLink erlangPipe Normal
- else
- HiLink erlangBracket Delimiter
- HiLink erlangPipe Delimiter
- endif
-
- " Atoms, functions, variables, macros
- if s:old_style
- HiLink erlangAtom Normal
- HiLink erlangLocalFuncCall Normal
- HiLink erlangLocalFuncRef Normal
- HiLink erlangGlobalFuncCall Function
- HiLink erlangGlobalFuncRef Function
- HiLink erlangVariable Normal
- HiLink erlangMacro Normal
- HiLink erlangRecord Normal
- else
- HiLink erlangAtom String
- HiLink erlangLocalFuncCall Normal
- HiLink erlangLocalFuncRef Normal
- HiLink erlangGlobalFuncCall Normal
- HiLink erlangGlobalFuncRef Normal
- HiLink erlangVariable Identifier
- HiLink erlangMacro Macro
- HiLink erlangRecord Structure
- endif
-
- " Bitstrings
- if !s:old_style
- HiLink erlangBitType Type
- endif
-
- " Constants and Directives
- if s:old_style
- HiLink erlangAttribute Type
- HiLink erlangMacroDef Type
- HiLink erlangUnknownAttribute Normal
- HiLink erlangInclude Type
- HiLink erlangRecordDef Type
- HiLink erlangDefine Type
- HiLink erlangPreCondit Type
- HiLink erlangType Type
- else
- HiLink erlangAttribute Keyword
- HiLink erlangMacroDef Macro
- HiLink erlangUnknownAttribute Normal
- HiLink erlangInclude Include
- HiLink erlangRecordDef Keyword
- HiLink erlangDefine Define
- HiLink erlangPreCondit PreCondit
- HiLink erlangType Type
- endif
-
- " Keywords
- HiLink erlangKeyword Keyword
-
- " Build-in-functions (BIFs)
- HiLink erlangBIF Function
-
- if s:old_style
- HiLink erlangBoolean Statement
- HiLink erlangExtra Statement
- HiLink erlangSignal Statement
- else
- HiLink erlangBoolean Boolean
- HiLink erlangExtra Statement
- HiLink erlangSignal Statement
- endif
-
- delcommand HiLink
+
+" 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 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 erlangMacro 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 erlangMacro 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
diff --git a/runtime/syntax/eruby.vim b/runtime/syntax/eruby.vim
index c20b086ba5..4e175bcc25 100644
--- a/runtime/syntax/eruby.vim
+++ b/runtime/syntax/eruby.vim
@@ -22,7 +22,7 @@ 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\)\+$','',''),'\.\zs\w\+$')
+ let b:eruby_subtype = matchstr(substitute(expand("%:t"),'\c\%(\.erb\|\.eruby\|\.erubis\)\+$','',''),'\.\zs\w\+\%(\ze+\w\+\)\=$')
endif
if b:eruby_subtype == 'rhtml'
let b:eruby_subtype = 'html'
diff --git a/runtime/syntax/esmtprc.vim b/runtime/syntax/esmtprc.vim
index b22b1a1416..81f074b59c 100644
--- a/runtime/syntax/esmtprc.vim
+++ b/runtime/syntax/esmtprc.vim
@@ -3,11 +3,8 @@
" Maintainer: Kornel Kielczewski <kornel@gazeta.pl>
" Last Change: 16 Feb 2005
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
diff --git a/runtime/syntax/esqlc.vim b/runtime/syntax/esqlc.vim
index 6ad167a7e6..792e5d37f3 100644
--- a/runtime/syntax/esqlc.vim
+++ b/runtime/syntax/esqlc.vim
@@ -3,20 +3,13 @@
" Maintainer: Jonathan A. George <jageorge@tel.gte.com>
" Last Change: 2001 May 09
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
" Read the C++ syntax to start with
-if version < 600
- source <sfile>:p:h/cpp.vim
-else
- runtime! syntax/cpp.vim
-endif
+runtime! syntax/cpp.vim
" ESQL-C extentions
@@ -52,24 +45,14 @@ syntax keyword esqlcStatement rename revoke rollback savepoint select set
syntax keyword esqlcStatement truncate update
" 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_esqlc_syntax_inits")
- if version < 508
- let did_esqlc_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink esqlcOperator Operator
- HiLink esqlcStatement Statement
- HiLink esqlcKeyword esqlcSpecial
- HiLink esqlcSpecial Special
- HiLink esqlcPreProc PreProc
+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
- delcommand HiLink
-endif
let b:current_syntax = "esqlc"
diff --git a/runtime/syntax/esterel.vim b/runtime/syntax/esterel.vim
index d853e75208..b0105216d7 100644
--- a/runtime/syntax/esterel.vim
+++ b/runtime/syntax/esterel.vim
@@ -6,11 +6,8 @@
" Last Change: Tue May 6 13:29:56 CEST 2008
" Version: 0.8
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -65,26 +62,17 @@ syn match esterelNone "\<else\s\+if\>$"
syn match esterelNone "\<else\s\+if\>\s"
" Class Linking
-if version >= 508 || !exists("did_esterel_syntax_inits")
- if version < 508
- let did_esterel_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink esterelStatement Statement
- HiLink esterelType Type
- HiLink esterelComment Comment
- HiLink esterelBoolean Number
- HiLink esterelExpressions Number
- HiLink esterelIO String
- HiLink esterelOperator Type
- HiLink esterelSysCall Type
- HiLink esterelFunctions Type
- HiLink esterelSpecial Special
+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
- delcommand HiLink
-endif
let b:current_syntax = "esterel"
diff --git a/runtime/syntax/eterm.vim b/runtime/syntax/eterm.vim
index f6c50a20cb..9b43cb255f 100644
--- a/runtime/syntax/eterm.vim
+++ b/runtime/syntax/eterm.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: eterm(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-21
+" Language: eterm(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-21
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/euphoria3.vim b/runtime/syntax/euphoria3.vim
index 1254b96247..ece14027ba 100644
--- a/runtime/syntax/euphoria3.vim
+++ b/runtime/syntax/euphoria3.vim
@@ -5,10 +5,8 @@
" Remark: Euphoria has two syntax files, euphoria3.vim and euphoria4.vim;
" For details see :help ft-euphoria-syntax
-" Quit if a (custom) syntax file was already loaded (compatible with Vim 5.8):
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
diff --git a/runtime/syntax/euphoria4.vim b/runtime/syntax/euphoria4.vim
index 53f5cea917..5e668a7d67 100644
--- a/runtime/syntax/euphoria4.vim
+++ b/runtime/syntax/euphoria4.vim
@@ -5,10 +5,8 @@
" Remark: Euphoria has two syntax files, euphoria3.vim and euphoria4.vim;
" For details see :help ft-euphoria-syntax
-" Quit if a (custom) syntax file was already loaded (compatible with Vim 5.8):
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
diff --git a/runtime/syntax/eviews.vim b/runtime/syntax/eviews.vim
index aa65fda3ff..03cfb25e60 100644
--- a/runtime/syntax/eviews.vim
+++ b/runtime/syntax/eviews.vim
@@ -4,19 +4,12 @@
" Last Change: 2006 Apr 30
" Filenames: *.prg
" URL: http://uosis.mif.vu.lt/~zemlys/vim-syntax/eviews.vim
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
-if version >= 600
- setlocal iskeyword=@,48-57,_,.
-else
- set iskeyword=@,48-57,_,.
-endif
+setlocal iskeyword=@,48-57,_,.
syn case match
@@ -69,35 +62,25 @@ syn match eCurlyError /[)\]]/ contained
syn match eParenError /[\]}]/ contained
" 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_r_syn_inits")
- if version < 508
- let did_r_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink eComment Comment
- HiLink eConstant Identifier
- HiLink eStringId Identifier
- HiLink eCommand Type
- HiLink eString String
- HiLink eNumber Number
- HiLink eBoolean Boolean
- HiLink eFloat Float
- HiLink eConditional Conditional
- HiLink eProgLang Statement
- HiLink eOVP Statement
- HiLink eStdCmd Statement
- HiLink eIdentifier Normal
- HiLink eDelimiter Delimiter
- HiLink eError Error
- HiLink eBraceError Error
- HiLink eCurlyError Error
- HiLink eParenError Error
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/exim.vim b/runtime/syntax/exim.vim
index ff8066f8af..4edc0d7948 100644
--- a/runtime/syntax/exim.vim
+++ b/runtime/syntax/exim.vim
@@ -6,12 +6,9 @@
" URL: http://trific.ath.cx/Ftp/vim/syntax/exim.vim
" Setup
-if version >= 600
- if exists("b:current_syntax")
- finish
- endif
-else
- syntax clear
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
+ finish
endif
syn case match
@@ -91,27 +88,18 @@ syn keyword eximKeyword server_prompts server_condition client_send
syn keyword eximKeyword server_secret client_name client_secret
" Define the default highlighting
-if version >= 508 || !exists("did_exim_syntax_inits")
- if version < 508
- let did_exim_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink eximComment Comment
- HiLink eximFixme Todo
- HiLink eximEnd Keyword
- HiLink eximNumber Number
- HiLink eximDriverName Constant
- HiLink eximConstant Constant
- HiLink eximTime Constant
- HiLink eximKeyword Type
- HiLink eximSpecialChar Special
- HiLink eximMacroName Preproc
- HiLink eximTransport Identifier
+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
- delcommand HiLink
-endif
let b:current_syntax = "exim"
diff --git a/runtime/syntax/expect.vim b/runtime/syntax/expect.vim
index 6ff7d4142c..75cbd3eddf 100644
--- a/runtime/syntax/expect.vim
+++ b/runtime/syntax/expect.vim
@@ -4,11 +4,8 @@
" Last Change: 2012 Jun 01
" (Dominique Pelle added @Spell)
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -81,35 +78,25 @@ syn match expectComment "#.*$" contains=@Spell,expectTodo
syn match expectSharpBang "\%^#!.*"
" 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_expect_syntax_inits")
- if version < 508
- let did_expect_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink expectSharpBang PreProc
- HiLink expectVariables Special
- HiLink expectCommand Function
- HiLink expectStatement Statement
- HiLink expectConditional Conditional
- HiLink expectRepeat Repeat
- HiLink expectExpectOpts Keyword
- HiLink expectOutVar Special
- HiLink expectSpecial Special
- HiLink expectNumber Number
-
- HiLink expectString String
-
- HiLink expectComment Comment
- HiLink expectTodo Todo
- "HiLink expectIdentifier Identifier
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/exports.vim b/runtime/syntax/exports.vim
index f695dc8d21..55efbb1e50 100644
--- a/runtime/syntax/exports.vim
+++ b/runtime/syntax/exports.vim
@@ -1,16 +1,13 @@
" Vim syntax file
" Language: exports
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change: Oct 23, 2014
-" Version: 5
+" Last Change: Aug 31, 2016
+" Version: 7
" Notes: This file includes both SysV and BSD 'isms
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_EXPORTS
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -39,31 +36,22 @@ syn match exportsSeparator "[,:]"
syn match exportsComment "^\s*#.*$" contains=@Spell
" 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_exports_syntax_inits")
- if version < 508
- let did_exports_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+if !exists("skip_exports_syntax_inits")
- HiLink exportsKeyOptSet exportsKeySettings
- HiLink exportsOptSet exportsSettings
+ hi def link exportsKeyOptSet exportsKeySettings
+ hi def link exportsOptSet exportsSettings
- HiLink exportsComment Comment
- HiLink exportsKeyOptions Type
- HiLink exportsKeySettings Keyword
- HiLink exportsOptions Constant
- HiLink exportsSeparator Constant
- HiLink exportsSettings Constant
+ 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
- HiLink exportsOptError Error
- HiLink exportsOptSetError Error
- HiLink exportsSetError Error
+ hi def link exportsOptError Error
+ hi def link exportsOptSetError Error
+ hi def link exportsSetError Error
- delcommand HiLink
endif
let b:current_syntax = "exports"
diff --git a/runtime/syntax/falcon.vim b/runtime/syntax/falcon.vim
index 1f6fefa9ff..e022c7a54a 100644
--- a/runtime/syntax/falcon.vim
+++ b/runtime/syntax/falcon.vim
@@ -163,34 +163,32 @@ syn sync minlines=10 maxlines=100
" Define the default highlighting
if !exists("did_falcon_syn_inits")
- command -nargs=+ HiLink hi def link <args>
-
- HiLink falconKeyword Keyword
- HiLink falconCommentString String
- HiLink falconTodo Todo
- HiLink falconConditional Keyword
- HiLink falconRepeat Repeat
- HiLink falconcommentSkip Comment
- HiLink falconComment Comment
- HiLink falconCommentL Comment
- HiLink falconConst Constant
- HiLink falconConstants Constant
- HiLink falconOperator Operator
- HiLink falconSymbol Normal
- HiLink falconSpaceError Error
- HiLink falconHexadecimal Number
- HiLink falconOctal Number
- HiLink falconIntLiteral Number
- HiLink falconFloatLiteral Float
- HiLink falconStringEscape Special
- HiLink falconStringDelimiter Delimiter
- HiLink falconString String
- HiLink falconBool Constant
- HiLink falconSharpBang PreProc
- HiLink falconInclude Include
- HiLink falconSymbol Constant
- HiLink falconSymbolOther Delimiter
- delcommand HiLink
+
+ hi def link falconKeyword Keyword
+ hi def link falconCommentString String
+ hi def link falconTodo Todo
+ hi def link falconConditional Keyword
+ hi def link falconRepeat Repeat
+ hi def link falconcommentSkip Comment
+ hi def link falconComment Comment
+ hi def link falconCommentL Comment
+ hi def link falconConst Constant
+ hi def link falconConstants Constant
+ hi def link falconOperator Operator
+ hi def link falconSymbol Normal
+ hi def link falconSpaceError Error
+ hi def link falconHexadecimal Number
+ hi def link falconOctal Number
+ hi def link falconIntLiteral Number
+ hi def link falconFloatLiteral Float
+ hi def link falconStringEscape Special
+ hi def link falconStringDelimiter Delimiter
+ hi def link falconString String
+ hi def link falconBool Constant
+ hi def link falconSharpBang PreProc
+ hi def link falconInclude Include
+ hi def link falconSymbol Constant
+ hi def link falconSymbolOther Delimiter
endif
let b:current_syntax = "falcon"
diff --git a/runtime/syntax/fasm.vim b/runtime/syntax/fasm.vim
index 696e05b4ca..172ba7c9b6 100644
--- a/runtime/syntax/fasm.vim
+++ b/runtime/syntax/fasm.vim
@@ -6,9 +6,8 @@
" FASM Home: http://flatassembler.net/
" FASM Version: 1.56
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
diff --git a/runtime/syntax/fdcc.vim b/runtime/syntax/fdcc.vim
index 38717ebfb8..f7b296b9c6 100644
--- a/runtime/syntax/fdcc.vim
+++ b/runtime/syntax/fdcc.vim
@@ -4,11 +4,8 @@
" Last Change: 2004 May 16
" Remarks: FDCC (Formal Definitions of Cultural Conventions) see ISO TR 14652
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -58,56 +55,46 @@ syn region fdccBlank matchgroup=fdccLCName start=/^LC_NAME$/ end=/^END LC_NAME$/
syn region fdccBlank matchgroup=fdccLCAddress start=/^LC_ADDRESS$/ end=/^END LC_ADDRESS$/ contains=fdccKeywordAddress,fdccString,fdccComment,fdccNumber
-" 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_fdcc_syn_inits")
- if version < 508
- let did_fdcc_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink fdccBlank Blank
-
- HiLink fdccTodo Todo
- HiLink fdccComment Comment
- HiLink fdccVariable Type
-
- HiLink fdccLCIdentification Statement
- HiLink fdccLCCtype Statement
- HiLink fdccLCCollate Statement
- HiLink fdccLCMonetary Statement
- HiLink fdccLCNumeric Statement
- HiLink fdccLCTime Statement
- HiLink fdccLCMessages Statement
- HiLink fdccLCPaper Statement
- HiLink fdccLCTelephone Statement
- HiLink fdccLCMeasurement Statement
- HiLink fdccLCName Statement
- HiLink fdccLCAddress Statement
-
- HiLink fdccUnicodeInValid Error
- HiLink fdccUnicodeValid String
- HiLink fdccString String
- HiLink fdccNumber Blank
-
- HiLink fdccKeywordIdentification fdccKeyword
- HiLink fdccKeywordCtype fdccKeyword
- HiLink fdccKeywordCollate fdccKeyword
- HiLink fdccKeywordMonetary fdccKeyword
- HiLink fdccKeywordNumeric fdccKeyword
- HiLink fdccKeywordTime fdccKeyword
- HiLink fdccKeywordMessages fdccKeyword
- HiLink fdccKeywordPaper fdccKeyword
- HiLink fdccKeywordTelephone fdccKeyword
- HiLink fdccKeywordMeasurement fdccKeyword
- HiLink fdccKeywordName fdccKeyword
- HiLink fdccKeywordAddress fdccKeyword
- HiLink fdccKeyword Identifier
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/fetchmail.vim b/runtime/syntax/fetchmail.vim
index 89de1ff80d..7a421050d0 100644
--- a/runtime/syntax/fetchmail.vim
+++ b/runtime/syntax/fetchmail.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: fetchmail(1) RC File
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: fetchmail(1) RC File
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/fgl.vim b/runtime/syntax/fgl.vim
index 1b2fe19a88..1b75d137b6 100644
--- a/runtime/syntax/fgl.vim
+++ b/runtime/syntax/fgl.vim
@@ -7,11 +7,8 @@
" - Conditionally allow case insensitive keywords (Julian Bridle)
"
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -119,28 +116,18 @@ syn match fglSpecial "--@"
syn sync ccomment fglComment
" 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_fgl_syntax_inits")
- if version < 508
- let did_fgl_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink fglComment Comment
- "HiLink fglKeyword fglSpecial
- HiLink fglKeyword fglStatement
- HiLink fglNumber Number
- HiLink fglOperator fglStatement
- HiLink fglSpecial Special
- HiLink fglStatement Statement
- HiLink fglString String
- HiLink fglType Type
+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
- delcommand HiLink
-endif
let b:current_syntax = "fgl"
diff --git a/runtime/syntax/flexwiki.vim b/runtime/syntax/flexwiki.vim
index 34f893d927..6b15ab2d90 100644
--- a/runtime/syntax/flexwiki.vim
+++ b/runtime/syntax/flexwiki.vim
@@ -14,10 +14,8 @@
" regexes, which use a different syntax than Vim (fewer \s).
" The primary test case is FlexWiki\FormattingRules.wiki
-" Quit if syntax file is already loaded
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
diff --git a/runtime/syntax/focexec.vim b/runtime/syntax/focexec.vim
index 8be1b65cc4..a75aed47cb 100644
--- a/runtime/syntax/focexec.vim
+++ b/runtime/syntax/focexec.vim
@@ -11,11 +11,8 @@
" I think some of these things should get different hilights -
" should MODIFY commands look different than TABLE?
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -69,32 +66,22 @@ syn match focexecNumber "\<\d\+\.\d*\>"
syn match focexecComment "-\*.*"
" 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_focexec_syntax_inits")
- if version < 508
- let did_focexec_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink focexecString1 String
- HiLink focexecString2 String
- HiLink focexecNumber Number
- HiLink focexecComment Comment
- HiLink focexecTable Keyword
- HiLink focexecModify Keyword
- HiLink focexecNormal Keyword
- HiLink focexecSet Keyword
- HiLink focexecDash Keyword
- HiLink focexecFileDef Keyword
- HiLink focexecJoin Keyword
- HiLink focexecAmperVar Identifier
- HiLink focexecFuse Function
+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
- delcommand HiLink
-endif
let b:current_syntax = "focexec"
diff --git a/runtime/syntax/form.vim b/runtime/syntax/form.vim
index 19a47ed6b9..9718480da3 100644
--- a/runtime/syntax/form.vim
+++ b/runtime/syntax/form.vim
@@ -11,11 +11,8 @@
" This syntax file is still in development. Please send suggestions
" to the maintainer.
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -88,7 +85,7 @@ syn match formComment "\;\ *\*.*$" contains=formTodo
syn region formString start=+"+ end=+"+ contains=formSpecial
syn region formString start=+'+ end=+'+
syn region formNestedString start=+`+ end=+'+ contains=formNestedString
-syn match formPreProc "^\=\#[a-zA-z][a-zA-Z0-9]*\>"
+syn match formPreProc "^\=\#[a-zA-Z][a-zA-Z0-9]*\>"
syn match formNumber "\<\d\+\>"
syn match formNumber "\<\d\+\.\d*\>"
syn match formNumber "\.\d\+\>"
@@ -97,61 +94,51 @@ syn match formNumber "-\.\d" contains=Number
syn match formNumber "i_\+\>"
syn match formNumber "fac_\+\>"
" pattern matching wildcards
-syn match formNumber "?[A-z0-9]*"
+syn match formNumber "?[a-zA-Z0-9]*"
" dollar-variables (new in 3.x)
-syn match formNumber "\\$[A-z0-9]*"
+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 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]*\>"
+syn match formDirective "^\=\.[a-zA-Z][a-zA-Z0-9]*\>"
" hi User Labels
syn sync ccomment formComment minlines=10
" 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_form_syn_inits")
- if version < 508
- let did_form_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink formConditional Conditional
- HiLink formNumber Number
- HiLink formStatement Statement
- HiLink formComment Comment
- HiLink formPreProc PreProc
- HiLink formDirective PreProc
- HiLink formType Type
- HiLink formString String
- HiLink formNestedString String
- HiLink formReserved Error
- HiLink formTodo Todo
- HiLink formSpecial SpecialChar
-
- if !exists("form_enhanced_color")
- HiLink formHeaderStatement Statement
- else
- " enhanced color mode
- HiLink 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
-
- delcommand HiLink
+" 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"
diff --git a/runtime/syntax/forth.vim b/runtime/syntax/forth.vim
index 99e9400b95..35fafd4349 100644
--- a/runtime/syntax/forth.vim
+++ b/runtime/syntax/forth.vim
@@ -80,11 +80,8 @@
"
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -104,11 +101,7 @@ syn match forthTodo contained 'Copyright\(\s([Cc])\)\=\(\s[0-9]\{2,4}\)\='
" Characters allowed in keywords
" I don't know if 128-255 are allowed in ANS-FORTH
-if version >= 600
- setlocal iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255
-else
- set iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255
-endif
+setlocal iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255
" when wanted, highlight trailing white space
if exists("forth_space_errors")
@@ -289,56 +282,46 @@ syn match forthLocals '{ }' " otherwise, at least two spaces between
syn region forthDeprecated start='locals|' end='|'
" 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_forth_syn_inits")
- if version < 508
- let did_forth_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
+
+" The default methods for highlighting. Can be overridden later.
+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 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 forthDeprecated Error " if you must, change to Type
+hi def link forthFileMode Function
+hi def link forthFileWords Statement
+hi def link forthBlocks Statement
+hi def link forthSpaceError Error
- " The default methods for highlighting. Can be overridden later.
- HiLink forthTodo Todo
- HiLink forthOperators Operator
- HiLink forthMath Number
- HiLink forthInteger Number
- HiLink forthFloat Float
- HiLink forthStack Special
- HiLink forthRstack Special
- HiLink forthFStack Special
- HiLink forthSP Special
- HiLink forthMemory Function
- HiLink forthAdrArith Function
- HiLink forthMemBlks Function
- HiLink forthCond Conditional
- HiLink forthLoop Repeat
- HiLink forthColonDef Define
- HiLink forthEndOfColonDef Define
- HiLink forthDefine Define
- HiLink forthDebug Debug
- HiLink forthAssembler Include
- HiLink forthCharOps Character
- HiLink forthConversion String
- HiLink forthForth Statement
- HiLink forthVocs Statement
- HiLink forthString String
- HiLink forthComment Comment
- HiLink forthClassDef Define
- HiLink forthEndOfClassDef Define
- HiLink forthObjectDef Define
- HiLink forthEndOfObjectDef Define
- HiLink forthInclude Include
- HiLink forthLocals Type " nothing else uses type and locals must stand out
- HiLink forthDeprecated Error " if you must, change to Type
- HiLink forthFileMode Function
- HiLink forthFileWords Statement
- HiLink forthBlocks Statement
- HiLink forthSpaceError Error
-
- delcommand HiLink
-endif
let b:current_syntax = "forth"
diff --git a/runtime/syntax/fortran.vim b/runtime/syntax/fortran.vim
index b470e56f60..4c26e78f16 100644
--- a/runtime/syntax/fortran.vim
+++ b/runtime/syntax/fortran.vim
@@ -1,16 +1,17 @@
" Vim syntax file
" Language: Fortran 2008 (and older: Fortran 2003, 95, 90, and 77)
-" Version: 0.97
-" Last Change: 2016 Feb. 26
+" Version: 100
+" Last Change: 2016 Oct. 29
" Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
" Usage: For instructions, do :help fortran-syntax from Vim
" Credits:
-" Version 0.1 (April 2000) was based on the fortran 77 syntax file by Mario Eusebio and
-" Preben Guldberg. Since then, useful suggestions and contributions have been made,
-" in chronological order, by:
+" Version 0.1 (April 2000) for Fortran 95 was based on the Fortran 77 syntax file by
+" Mario Eusebio and Preben Guldberg. Since then, useful suggestions and contributions
+" have been made, in chronological order, by:
" Andrej Panjkov, Bram Moolenaar, Thomas Olsen, Michael Sternberg, Christian Reile,
" Walter Dieudonn, Alexander Wagner, Roman Bertle, Charles Rendleman,
-" Andrew Griffiths, Joe Krahn, Hendrik Merx, Matt Thompson, and Jan Hermann.
+" Andrew Griffiths, Joe Krahn, Hendrik Merx, Matt Thompson, Jan Hermann,
+" Stefano Zaghi, Vishnu V. Krishnan and Judical Grasset
if exists("b:current_syntax")
finish
@@ -108,6 +109,7 @@ syn match fortranUnitHeader "\<subroutine\>"
syn keyword fortranCall call
syn match fortranUnitHeader "\<function\>"
syn match fortranUnitHeader "\<program\>"
+syn match fortranUnitHeader "\<block\>"
syn keyword fortranKeyword return stop
syn keyword fortranConditional else then
syn match fortranConditional "\<if\>"
@@ -208,6 +210,7 @@ syn match fortranStorageClass "\<kind\s*="me=s+4
syn match fortranStorageClass "\<len\s*="me=s+3
syn match fortranUnitHeader "\<module\>"
+syn match fortranUnitHeader "\<submodule\>"
syn keyword fortranUnitHeader use only contains
syn keyword fortranUnitHeader result operator assignment
syn match fortranUnitHeader "\<interface\>"
@@ -231,8 +234,10 @@ syn match fortranIntrinsic "\<kind\>\s*[(,]"me=s+4
syn match fortranUnitHeader "\<end\s*function"
syn match fortranUnitHeader "\<end\s*interface"
syn match fortranUnitHeader "\<end\s*module"
+syn match fortranUnitHeader "\<end\s*submodule"
syn match fortranUnitHeader "\<end\s*program"
syn match fortranUnitHeader "\<end\s*subroutine"
+syn match fortranUnitHeader "\<end\s*block"
syn match fortranRepeat "\<end\s*do"
syn match fortranConditional "\<end\s*where"
syn match fortranConditional "\<select\s*case"
@@ -267,6 +272,7 @@ syn match fortranRepeat "\<end\s*forall"
syn keyword fortranIntrinsic null cpu_time
syn match fortranType "\<elemental\>"
syn match fortranType "\<pure\>"
+syn match fortranType "\<impure\>"
if exists("fortran_more_precise")
syn match fortranConstructName "\(\<end\s*forall\s\+\)\@<=\a\w*\>"
endif
@@ -286,8 +292,9 @@ if b:fortran_dialect == "f08"
syn keyword fortranReadWrite flush wait
syn keyword fortranIO decimal round iomsg
- syn keyword fortranType asynchronous nopass non_overridable pass protected volatile abstract extends import
+ syn keyword fortranType asynchronous nopass non_overridable pass protected volatile extends import
syn keyword fortranType non_intrinsic value bind deferred generic final enumerator
+ syn match fortranType "\<abstract\>"
syn match fortranType "\<class\>"
syn match fortranType "\<associate\>"
syn match fortranType "\<end\s*associate"
@@ -305,6 +312,7 @@ if b:fortran_dialect == "f08"
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 fortranIO newunit
syn keyword fortranType contiguous
+ syn keyword fortranRepeat concurrent
" CUDA fortran
syn match fortranTypeCUDA "\<attributes\>"
@@ -360,6 +368,7 @@ else
endif
syn match fortranComment excludenl "!.*$" contains=@fortranCommentGroup,@spell
+syn match fortranOpenMP excludenl "^\s*!\$\(OMP\)\=&\=\s.*$"
"cpp is often used with Fortran
syn match cPreProc "^\s*#\s*\(define\|ifdef\)\>.*"
@@ -383,20 +392,24 @@ if exists("fortran_fold")
if (b:fortran_fixed_source == 1)
syn region fortranProgram transparent fold keepend start="^\s*program\s\+\z(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\(program\(\s\+\z1\>\)\=\|$\)" 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="\<end\s*\(submodule\(\s\+\z1\>\)\=\|$\)" contains=ALLBUT,fortranProgram,fortranModule
syn region fortranModule transparent fold keepend start="^\s*module\s\+\(procedure\)\@!\z(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\(module\(\s\+\z1\>\)\=\|$\)" contains=ALLBUT,fortranProgram
- syn region fortranFunction transparent fold keepend extend start="^\s*\(elemental \|pure \|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="\<end\s*\($\|function\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
- syn region fortranSubroutine transparent fold keepend extend start="^\s*\(elemental \|pure \|recursive \)\=\s*subroutine\s\+\z(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\($\|subroutine\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
+ 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="\<end\s*\($\|function\(\s\+\z1\>\)\=\)" 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="\<end\s*\($\|subroutine\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
syn region fortranBlockData transparent fold keepend start="\<block\s*data\(\s\+\z(\a\w*\)\)\=" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\($\|block\s*data\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
- syn region fortranInterface transparent fold keepend extend start="^\s*interface\>" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*interface\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
- syn region fortranTypeDef transparent fold keepend extend start="^\s*type\s*\(,\s*\(public\|private\)\)\=\s*::" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*type\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
+ syn region fortranAssociate transparent fold keepend start="^\s*\<associate\s\+" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*associate" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction
+ syn region fortranInterface transparent fold keepend extend start="^\s*\(abstract \)\=\s*interface\>" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*interface\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
+ syn region fortranTypeDef transparent fold keepend extend start="^\s*type\s*\(,\s*\(public\|private\|abstract\)\)\=\s*::" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*type\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock,fortranInterface
else
syn region fortranProgram transparent fold keepend start="^\s*program\s\+\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\(program\(\s\+\z1\>\)\=\|$\)" contains=ALLBUT,fortranModule
+ syn region fortranModule transparent fold keepend start="^\s*submodule\s\+(\a\w*\s*\(:\a\w*\s*\)*)\s*\z\(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\(submodule\(\s\+\z1\>\)\=\|$\)" contains=ALLBUT,fortranProgram,fortranModule
syn region fortranModule transparent fold keepend start="^\s*module\s\+\(procedure\)\@!\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\(module\(\s\+\z1\>\)\=\|$\)" contains=ALLBUT,fortranProgram
- syn region fortranFunction transparent fold keepend extend start="^\s*\(elemental \|pure \|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="^\s*[!#].*$" excludenl end="\<end\s*\($\|function\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
- syn region fortranSubroutine transparent fold keepend extend start="^\s*\(elemental \|pure \|recursive \)\=\s*subroutine\s\+\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\($\|subroutine\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
+ 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="^\s*[!#].*$" excludenl end="\<end\s*\($\|function\(\s\+\z1\>\)\=\)" 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="^\s*[!#].*$" excludenl end="\<end\s*\($\|subroutine\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
syn region fortranBlockData transparent fold keepend start="\<block\s*data\(\s\+\z(\a\w*\)\)\=" skip="^\s*[!#].*$" excludenl end="\<end\s*\($\|block\s*data\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
- syn region fortranInterface transparent fold keepend extend start="^\s*interface\>" skip="^\s*[!#].*$" excludenl end="\<end\s*interface\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
- syn region fortranTypeDef transparent fold keepend extend start="^\s*type\s*\(,\s*\(public\|private\)\)\=\s*::" skip="^\s*[!#].*$" excludenl end="\<end\s*type\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
+ syn region fortranAssociate transparent fold keepend start="^\s*\<associate\s\+" skip="^\s*[!#].*$" excludenl end="\<end\s*associate" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction
+ syn region fortranInterface transparent fold keepend extend start="^\s*\(abstract \)\=\s*interface\>" skip="^\s*[!#].*$" excludenl end="\<end\s*interface\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
+ syn region fortranTypeDef transparent fold keepend extend start="^\s*type\s*\(,\s*\(public\|private\|abstract\)\)\=\s*::" skip="^\s*[!#].*$" excludenl end="\<end\s*type\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock,fortranInterface
endif
if exists("fortran_fold_conditionals")
@@ -404,12 +417,12 @@ if exists("fortran_fold")
syn region fortran77Loop transparent fold keepend start="\<do\s\+\z(\d\+\)" end="^\s*\z1\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
syn region fortran90Loop transparent fold keepend extend start="\(\<end\s\+\)\@<!\<do\(\s\+\a\|\s*$\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*do\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
syn region fortranIfBlock transparent fold keepend extend start="\(\<e\(nd\|lse\)\s\+\)\@<!\<if\s*(.\+)\s*then\>" skip="^\([!c*]\|\s*#\).*$" end="\<end\s*if\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
- syn region fortranCase transparent fold keepend extend start="\<select\s*case\>" skip="^\([!c*]\|\s*#\).*$" end="\<end\s*select\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
+ syn region fortranCase transparent fold keepend extend start="\<select\s*\(case\|type\)\>" skip="^\([!c*]\|\s*#\).*$" end="\<end\s*select\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
else
syn region fortran77Loop transparent fold keepend start="\<do\s\+\z(\d\+\)" end="^\s*\z1\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
syn region fortran90Loop transparent fold keepend extend start="\(\<end\s\+\)\@<!\<do\(\s\+\a\|\s*$\)" skip="^\s*[!#].*$" excludenl end="\<end\s*do\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
syn region fortranIfBlock transparent fold keepend extend start="\(\<e\(nd\|lse\)\s\+\)\@<!\<if\s*(\(.\|&\s*\n\)\+)\(\s\|&\s*\n\)*then\>" skip="^\s*[!#].*$" end="\<end\s*if\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
- syn region fortranCase transparent fold keepend extend start="\<select\s*case\>" skip="^\s*[!#].*$" end="\<end\s*select\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
+ syn region fortranCase transparent fold keepend extend start="\<select\s*\(case\|type\)\>" skip="^\s*[!#].*$" end="\<end\s*select\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
endif
endif
@@ -507,6 +520,7 @@ hi def link cIncluded fortranString
hi def link cInclude Include
hi def link cPreProc PreProc
hi def link cPreCondit PreCondit
+hi def link fortranOpenMP PreProc
hi def link fortranParenError Error
hi def link fortranComment Comment
hi def link fortranSerialNumber Todo
diff --git a/runtime/syntax/foxpro.vim b/runtime/syntax/foxpro.vim
index ca5d7e2f9d..795859eac9 100644
--- a/runtime/syntax/foxpro.vim
+++ b/runtime/syntax/foxpro.vim
@@ -13,9 +13,8 @@
" corrected highlighting of comments at end of line (&&)
"
"
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -691,37 +690,27 @@ syn match foxproParenErr ")"
syn sync minlines=1 maxlines=3
" 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_foxpro_syn_inits")
- if version < 508
- let did_foxpro_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink foxproSpecial Special
- HiLink foxproAtSymbol Special
- HiLink foxproAtCmd Statement
- HiLink foxproPreProc PreProc
- HiLink foxproFunc Identifier
- HiLink foxproCmd Statement
- HiLink foxproEnBlk Type
- HiLink foxproSysVar String
- HiLink foxproString String
- HiLink foxproConst Constant
- HiLink foxproNumber Number
- HiLink foxproFloat Float
- HiLink foxproComment Comment
- HiLink foxproParenErr Error
- HiLink foxproCBConst PreProc
- HiLink foxproCBField Special
- HiLink foxproCBVar Identifier
- HiLink foxproCBWin Special
- HiLink foxproCBObject Identifier
+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
- delcommand HiLink
-endif
let b:current_syntax = "foxpro"
diff --git a/runtime/syntax/framescript.vim b/runtime/syntax/framescript.vim
index 39d75e8826..8b16d048a0 100644
--- a/runtime/syntax/framescript.vim
+++ b/runtime/syntax/framescript.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: FrameScript v4.0
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2007-02-22
+" Language: FrameScript v4.0
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2007-02-22
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/fstab.vim b/runtime/syntax/fstab.vim
index 3006d21fea..39c1a00b39 100644
--- a/runtime/syntax/fstab.vim
+++ b/runtime/syntax/fstab.vim
@@ -19,9 +19,8 @@
" let fstab_unknown_device_errors = 0
" do not highlight unknown devices as errors
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -229,66 +228,57 @@ syn match fsFreqPass /\s\+.\{-}$/ contains=@fsFreqPassCluster,@fsGeneralCluster
" Whole line comments
syn match fsCommentLine /^#.*$/ contains=@Spell
-if version >= 508 || !exists("did_config_syntax_inits")
- if version < 508
- let did_config_syntax_inits = 1
- command! -nargs=+ HiLink hi link <args>
- else
- command! -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink fsOperator Operator
- HiLink fsComment Comment
- HiLink fsCommentLine Comment
-
- HiLink fsTypeKeyword Type
- HiLink fsDeviceKeyword Identifier
- HiLink fsDeviceLabel String
- HiLink fsDeviceUUID String
- HiLink fsDeviceSshfs String
- HiLink fsFreqPassNumber Number
-
- if exists('fstab_unknown_fs_errors') && fstab_unknown_fs_errors == 1
- HiLink fsTypeUnknown Error
- endif
-
- if !exists('fstab_unknown_device_errors') || fstab_unknown_device_errors == 1
- HiLink fsDeviceError Error
- endif
-
- HiLink fsMountPointError Error
- HiLink fsMountPointKeyword Keyword
- HiLink fsFreqPassError Error
-
- HiLink fsOptionsGeneral Type
- HiLink fsOptionsKeywords Keyword
- HiLink fsOptionsNumber Number
- HiLink fsOptionsNumberOctal Number
- HiLink fsOptionsString String
- HiLink fsOptionsSize Number
- HiLink fsOptionsExt2Check String
- HiLink fsOptionsExt2Errors String
- HiLink fsOptionsExt3Journal String
- HiLink fsOptionsExt3Data String
- HiLink fsOptionsExt4Journal String
- HiLink fsOptionsExt4Data String
- HiLink fsOptionsExt4Barrier Number
- HiLink fsOptionsFatCheck String
- HiLink fsOptionsConv String
- HiLink fsOptionsFatType Number
- HiLink fsOptionsYesNo String
- HiLink fsOptionsHpfsCase String
- HiLink fsOptionsIsoMap String
- HiLink fsOptionsReiserHash String
- HiLink fsOptionsSshYesNoAsk String
- HiLink fsOptionsUfsType String
- HiLink fsOptionsUfsError String
-
- HiLink fsOptionsVfatShortname String
-
- delcommand HiLink
+
+hi def link fsOperator Operator
+hi def link fsComment Comment
+hi def link fsCommentLine Comment
+
+hi def link fsTypeKeyword Type
+hi def link fsDeviceKeyword Identifier
+hi def link fsDeviceLabel String
+hi def link fsDeviceUUID String
+hi def link fsDeviceSshfs String
+hi def link fsFreqPassNumber Number
+
+if exists('fstab_unknown_fs_errors') && fstab_unknown_fs_errors == 1
+hi def link fsTypeUnknown Error
endif
+if !exists('fstab_unknown_device_errors') || fstab_unknown_device_errors == 1
+hi def link fsDeviceError Error
+endif
+
+hi def link fsMountPointError Error
+hi def link fsMountPointKeyword Keyword
+hi def link fsFreqPassError Error
+
+hi def link fsOptionsGeneral Type
+hi def link fsOptionsKeywords Keyword
+hi def link fsOptionsNumber Number
+hi def link fsOptionsNumberOctal Number
+hi def link fsOptionsString String
+hi def link fsOptionsSize Number
+hi def link fsOptionsExt2Check String
+hi def link fsOptionsExt2Errors String
+hi def link fsOptionsExt3Journal String
+hi def link fsOptionsExt3Data String
+hi def link fsOptionsExt4Journal String
+hi def link fsOptionsExt4Data String
+hi def link fsOptionsExt4Barrier Number
+hi def link fsOptionsFatCheck String
+hi def link fsOptionsConv String
+hi def link fsOptionsFatType Number
+hi def link fsOptionsYesNo String
+hi def link fsOptionsHpfsCase String
+hi def link fsOptionsIsoMap String
+hi def link fsOptionsReiserHash String
+hi def link fsOptionsSshYesNoAsk String
+hi def link fsOptionsUfsType String
+hi def link fsOptionsUfsError String
+
+hi def link fsOptionsVfatShortname String
+
+
let b:current_syntax = "fstab"
let &cpo = s:cpo_save
diff --git a/runtime/syntax/fvwm2m4.vim b/runtime/syntax/fvwm2m4.vim
index 243da18fa7..e296273e31 100644
--- a/runtime/syntax/fvwm2m4.vim
+++ b/runtime/syntax/fvwm2m4.vim
@@ -5,12 +5,9 @@
" URI: http://physics.muni.cz/~yeti/download/syntax/fvwmm4.vim
" Setup
-if version >= 600
- if exists('b:current_syntax')
- finish
- endif
-else
- syntax clear
+" quit when a syntax file was already loaded
+if exists('b:current_syntax')
+ finish
endif
" Let included files know they are included
@@ -19,19 +16,11 @@ if !exists('main_syntax')
endif
" Include M4 syntax
-if version >= 600
- runtime! syntax/m4.vim
-else
- so <sfile>:p:h/m4.vim
-endif
+runtime! syntax/m4.vim
unlet b:current_syntax
" Include Fvwm2 syntax (Fvwm1 doesn't have M4 preprocessor)
-if version >= 600
- runtime! syntax/fvwm.vim
-else
- so <sfile>:p:h/fvwm.vim
-endif
+runtime! syntax/fvwm.vim
unlet b:current_syntax
" That's all!
diff --git a/runtime/syntax/gdb.vim b/runtime/syntax/gdb.vim
index 64e89cce7f..25a21d184e 100644
--- a/runtime/syntax/gdb.vim
+++ b/runtime/syntax/gdb.vim
@@ -4,11 +4,8 @@
" URL: http://www.fleiner.com/vim/syntax/gdb.vim
" Last Change: 2012 Oct 05
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -87,27 +84,17 @@ endif
exec "syn sync ccomment gdbComment minlines=" . gdb_minlines
" 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_gdb_syn_inits")
- if version < 508
- let did_gdb_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink gdbFuncDef Function
- HiLink gdbComment Comment
- HiLink gdbStatement Statement
- HiLink gdbString String
- HiLink gdbCharacter Character
- HiLink gdbVariable Identifier
- HiLink gdbSet Constant
- HiLink gdbInfo Type
- HiLink gdbDocument Special
- HiLink gdbNumber Number
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/gdmo.vim b/runtime/syntax/gdmo.vim
index 86c6d5c76c..009f402ffa 100644
--- a/runtime/syntax/gdmo.vim
+++ b/runtime/syntax/gdmo.vim
@@ -5,11 +5,8 @@
" URL: http://classicalprogrammer.wikidot.com/local--files/vim-syntax-file-for-gdmo/gdmo.vim
" Last change: 8th June, 2011
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -64,32 +61,22 @@ syn match gdmoBraces "[{}]"
syn sync ccomment gdmoComment
" 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_gdmo_syntax_inits")
- if version < 508
- let did_gdmo_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink gdmoCategory Structure
- HiLink gdmoRelationship Macro
- HiLink gdmoDefinition Statement
- HiLink gdmoReference Type
- HiLink gdmoExtension Operator
- HiLink gdmoBraces Function
- HiLink gdmoSpecial Special
- HiLink gdmoString String
- HiLink gdmoCharacter Character
- HiLink gdmoSpecialCharacter gdmoSpecial
- HiLink gdmoComment Comment
- HiLink gdmoLineComment gdmoComment
- HiLink gdmoType Type
+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
- delcommand HiLink
-endif
let b:current_syntax = "gdmo"
diff --git a/runtime/syntax/gedcom.vim b/runtime/syntax/gedcom.vim
index 98851cc942..cd09e0fa22 100644
--- a/runtime/syntax/gedcom.vim
+++ b/runtime/syntax/gedcom.vim
@@ -3,11 +3,8 @@
" Maintainer: Paul Johnson (pjcj@transeda.com)
" Version 1.059 - 23rd December 1999
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -41,26 +38,16 @@ syntax match gedcom_date "\d\{1,2}\s\+\(jan\|feb\|mar\|apr\|may\|jun\|jul\|aug\|
syntax match gedcom_date ".*" contained
" 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_gedcom_syntax_inits")
- if version < 508
- let did_gedcom_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink gedcom_record Statement
- HiLink gedcom_id Comment
- HiLink gedcom_ii PreProc
- HiLink gedcom_in Type
- HiLink gedcom_name PreProc
- HiLink gedcom_cname Type
- HiLink gedcom_surname Identifier
- HiLink gedcom_date Constant
+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
- delcommand HiLink
-endif
let b:current_syntax = "gedcom"
diff --git a/runtime/syntax/gitcommit.vim b/runtime/syntax/gitcommit.vim
index b0315a9465..5e0642fbcc 100644
--- a/runtime/syntax/gitcommit.vim
+++ b/runtime/syntax/gitcommit.vim
@@ -2,7 +2,7 @@
" Language: git commit file
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Filenames: *.git/COMMIT_EDITMSG
-" Last Change: 2013 May 30
+" Last Change: 2016 Aug 29
if exists("b:current_syntax")
finish
@@ -39,9 +39,10 @@ syn region gitcommitDiscarded start=/^# Change\%(s not staged for commit\|d but
syn region gitcommitSelected start=/^# Changes to be committed:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitSelectedType fold
syn region gitcommitUnmerged start=/^# Unmerged paths:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitUnmergedType fold
-syn match gitcommitDiscardedType "\t\@<=[a-z][a-z ]*[a-z]: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitDiscardedFile skipwhite
-syn match gitcommitSelectedType "\t\@<=[a-z][a-z ]*[a-z]: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitSelectedFile skipwhite
-syn match gitcommitUnmergedType "\t\@<=[a-z][a-z ]*[a-z]: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitUnmergedFile skipwhite
+
+syn match gitcommitDiscardedType "\t\@<=[[:lower:]][^:]*[[:lower:]]: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitDiscardedFile skipwhite
+syn match gitcommitSelectedType "\t\@<=[[:lower:]][^:]*[[:lower:]]: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitSelectedFile skipwhite
+syn match gitcommitUnmergedType "\t\@<=[[:lower:]][^:]*[[:lower:]]: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitUnmergedFile skipwhite
syn match gitcommitDiscardedFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitDiscardedArrow
syn match gitcommitSelectedFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow
syn match gitcommitUnmergedFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow
diff --git a/runtime/syntax/gitolite.vim b/runtime/syntax/gitolite.vim
index 718aad0de9..3a6da26cc6 100644
--- a/runtime/syntax/gitolite.vim
+++ b/runtime/syntax/gitolite.vim
@@ -1,8 +1,10 @@
" Vim syntax file
" Language: gitolite configuration
-" URL: https://github.com/tmatilai/gitolite.vim
-" Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>
-" Last Change: 2011-12-25
+" URL: https://github.com/sitaramc/gitolite/blob/master/contrib/vim/syntax/gitolite.vim
+" (https://raw.githubusercontent.com/sitaramc/gitolite/master/contrib/vim/syntax/gitolite.vim)
+" Maintainer: Sitaram Chamarty <sitaramc@gmail.com>
+" (former Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>)
+" Last Change: 2017 Oct 05
if exists("b:current_syntax")
finish
@@ -11,74 +13,80 @@ endif
let s:cpo_save = &cpo
set cpo&vim
-" Comment
-syn match gitoliteComment "\(^\|\s\)#.*" contains=gitoliteTodo
-syn keyword gitoliteTodo TODO FIXME XXX NOT contained
-
-" Groups, users and repos
-syn match gitoliteGroupDef "\(^\s*\)\@<=@[^=]\{-1,}\(\s*=\)\@=" contains=gitoliteSpaceError,gitoliteUserError nextgroup=gitoliteGroupDefSep
-syn match gitoliteGroupDefSep "\s*=" contained nextgroup=gitoliteRepoLine
-syn match gitoliteRepoDef "^\s*repo\s" nextgroup=gitoliteRepoLine
-
-syn match gitoliteRepoLine ".*" contained transparent contains=gitoliteGroup,gitoliteWildRepo,gitoliteCreator,gitoliteExtCmdHelper,gitoliteRepoError,gitoliteComment
-syn match gitoliteUserLine ".*" contained transparent contains=gitoliteGroup,gitolitePreProc,gitoliteUserError,gitoliteComment
-
-syn match gitoliteWildRepo "[ \t=]\@<=[^ \t]*[\\^$|()[\]*?{},][^ \t]*" contained contains=gitoliteCreator,gitoliteRepoError
-syn match gitoliteGroup "[ \t=]\@<=@[^ \t]\+" contained contains=gitoliteUserError
-
-syn keyword gitoliteCreator CREATER CREATOR contained
-syn keyword gitolitePreProc CREATER CREATOR READERS WRITERS contained
-
-syn match gitoliteExtCmdHelper "[ \t=]\@<=EXTCMD/" contained nextgroup=gitoliteExtCmd
-syn match gitoliteExtCmd "rsync\(\s\|$\)" contained
-
-" Illegal characters
-syn match gitoliteRepoError "[^ \t0-9a-zA-Z._@+/\\^$|()[\]*?{},-]\+" contained
-syn match gitoliteUserError "[^ \t0-9a-zA-Z._@+-]\+" contained
-syn match gitoliteSpaceError "\s\+" contained
-
-" Permission
-syn match gitoliteKeyword "^\s*\(C\|R\|RW\|RW+\|RWC\|RW+C\|RWD\|RW+D\|RWCD\|RW+CD\)[ \t=]\@=" nextgroup=gitoliteRefex
-syn match gitoliteKeyword "^\s*-[ \t=]\@=" nextgroup=gitoliteDenyRefex
-syn match gitoliteRefex "[^=]*="he=e-1 contained contains=gitoliteSpecialRefex,gitoliteGroup nextgroup=gitoliteUserLine
-syn match gitoliteDenyRefex "[^=]*="he=e-1 contained contains=gitoliteSpecialRefex,gitoliteGroup nextgroup=gitoliteDenyUsers
-syn match gitoliteSpecialRefex "\sNAME/"he=e-1 contained
-syn match gitoliteSpecialRefex "/USER/"hs=s+1,he=e-1 contained
-syn match gitoliteDenyUsers ".*" contained contains=gitoliteUserError,gitoliteComment
-
-" Configuration
-syn match gitoliteKeyword "^\s*config\s\+" nextgroup=gitoliteConfVariable
-syn match gitoliteConfVariable "[^=]*" contained
-
-" Include
-syn match gitoliteInclude "^\s*\(include\|subconf\)\s"
-
-" String
-syn region gitoliteString start=+"+ end=+"+ oneline
-
-" Define the default highlighting
-hi def link gitoliteComment Comment
-hi def link gitoliteTodo Todo
-hi def link gitoliteGroupDef gitoliteGroup
-hi def link gitoliteGroup Identifier
-hi def link gitoliteWildRepo Special
-hi def link gitoliteRepoError gitoliteError
-hi def link gitoliteUserError gitoliteError
-hi def link gitoliteSpaceError gitoliteError
-hi def link gitoliteError Error
-hi def link gitoliteCreator gitolitePreProc
-hi def link gitolitePreProc PreProc
-hi def link gitoliteExtCmdHelper PreProc
-hi def link gitoliteExtCmd Special
-hi def link gitoliteRepoDef Type
-hi def link gitoliteKeyword Keyword
-hi def link gitoliteRefex String
-hi def link gitoliteDenyRefex gitoliteRefex
-hi def link gitoliteSpecialRefex PreProc
-hi def link gitoliteDenyUsers WarningMsg
-hi def link gitoliteConfVariable Identifier
-hi def link gitoliteInclude Include
-hi def link gitoliteString String
+" 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"
diff --git a/runtime/syntax/gitrebase.vim b/runtime/syntax/gitrebase.vim
index a7460280d3..a944c14dd7 100644
--- a/runtime/syntax/gitrebase.vim
+++ b/runtime/syntax/gitrebase.vim
@@ -2,7 +2,7 @@
" Language: git rebase --interactive
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Filenames: git-rebase-todo
-" Last Change: 2013 May 30
+" Last Change: 2016 Aug 29
if exists("b:current_syntax")
finish
@@ -18,6 +18,7 @@ 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 gitrebaseDrop "\v^d%(rop)=>" nextgroup=gitrebaseCommit skipwhite
syn match gitrebaseSummary ".*" contains=gitrebaseHash contained
syn match gitrebaseCommand ".*" contained
syn match gitrebaseComment "^#.*" contains=gitrebaseHash
@@ -31,6 +32,7 @@ hi def link gitrebaseEdit PreProc
hi def link gitrebaseSquash Type
hi def link gitrebaseFixup Special
hi def link gitrebaseExec Function
+hi def link gitrebaseDrop Comment
hi def link gitrebaseSummary String
hi def link gitrebaseComment Comment
hi def link gitrebaseSquashError Error
diff --git a/runtime/syntax/gitsendemail.vim b/runtime/syntax/gitsendemail.vim
index 8b938116fa..8fdf6839c8 100644
--- a/runtime/syntax/gitsendemail.vim
+++ b/runtime/syntax/gitsendemail.vim
@@ -1,14 +1,18 @@
" Vim syntax file
" Language: git send-email message
" Maintainer: Tim Pope
-" Filenames: *.msg.[0-9]* (first line is "From ... # This line is ignored.")
-" Last Change: 2010 May 21
+" 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.*#.*"
diff --git a/runtime/syntax/gkrellmrc.vim b/runtime/syntax/gkrellmrc.vim
index 6ce1238416..f005ca2dc8 100644
--- a/runtime/syntax/gkrellmrc.vim
+++ b/runtime/syntax/gkrellmrc.vim
@@ -6,19 +6,12 @@
" URL: http://trific.ath.cx/Ftp/vim/syntax/gkrellmrc.vim
" Setup
-if version >= 600
- if exists("b:current_syntax")
- finish
- endif
-else
- syntax clear
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
+ finish
endif
-if version >= 600
- setlocal iskeyword=_,-,a-z,A-Z,48-57
-else
- set iskeyword=_,-,a-z,A-Z,48-57
-endif
+setlocal iskeyword=_,-,a-z,A-Z,48-57
syn case match
@@ -55,37 +48,28 @@ 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
-if version >= 508 || !exists("did_gtkrc_syntax_inits")
- if version < 508
- let did_gtkrc_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink gkrellmrcComment Comment
- HiLink gkrellmrcFixme Todo
+hi def link gkrellmrcComment Comment
+hi def link gkrellmrcFixme Todo
- HiLink gkrellmrcString gkrellmrcConstant
- HiLink gkrellmrcNumber gkrellmrcConstant
- HiLink gkrellmrcRGBColor gkrellmrcConstant
- HiLink gkrellmrcExpandMode gkrellmrcConstant
- HiLink gkrellmrcConstant Constant
+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
- HiLink gkrellmrcMeterName gkrellmrcClass
- HiLink gkrellmrcChartName gkrellmrcClass
- HiLink gkrellmrcSpecialClassName gkrellmrcClass
- HiLink gkrellmrcClass Type
+hi def link gkrellmrcMeterName gkrellmrcClass
+hi def link gkrellmrcChartName gkrellmrcClass
+hi def link gkrellmrcSpecialClassName gkrellmrcClass
+hi def link gkrellmrcClass Type
- HiLink gkrellmrcGlobal gkrellmrcItem
- HiLink gkrellmrcBuiltinExt gkrellmrcItem
- HiLink gkrellmrcStyleItem gkrellmrcItem
- HiLink gkrellmrcItem Function
+hi def link gkrellmrcGlobal gkrellmrcItem
+hi def link gkrellmrcBuiltinExt gkrellmrcItem
+hi def link gkrellmrcStyleItem gkrellmrcItem
+hi def link gkrellmrcItem Function
- HiLink gkrellmrcSetCmd Special
- HiLink gkrellmrcStyleCmd Statement
+hi def link gkrellmrcSetCmd Special
+hi def link gkrellmrcStyleCmd Statement
- delcommand HiLink
-endif
let b:current_syntax = "gkrellmrc"
diff --git a/runtime/syntax/gnash.vim b/runtime/syntax/gnash.vim
index f9e2b519a5..cce522dd86 100644
--- a/runtime/syntax/gnash.vim
+++ b/runtime/syntax/gnash.vim
@@ -15,11 +15,8 @@
" Vim is Charityware, see ":help Uganda"
"
-" 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") || &compatible
+" quit when a syntax file was already loaded
+if exists("b:current_syntax") || &compatible
finish
endif
diff --git a/runtime/syntax/gnuplot.vim b/runtime/syntax/gnuplot.vim
index d85932d401..7777cc9e46 100644
--- a/runtime/syntax/gnuplot.vim
+++ b/runtime/syntax/gnuplot.vim
@@ -20,9 +20,8 @@
" For vim version 5.x: Clear all syntax items
" For vim version 6.x: Quit when a syntax file was already loaded
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -501,54 +500,44 @@ syn keyword gnuplotStatement shell splot spstats stats system test undefine
syn keyword gnuplotStatement unset update
" ---- 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_gnuplot_syntax_inits")
- if version < 508
- let did_gnuplot_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " ---- Comments ---- "
- HiLink gnuplotComment Comment
-
- " ---- Constants ---- "
- HiLink gnuplotString String
- HiLink gnuplotNumber Number
- HiLink gnuplotFloat Float
-
- " ---- Identifiers ---- "
- HiLink gnuplotIdentifier Identifier
-
- " ---- Statements ---- "
- HiLink gnuplotConditional Conditional
- HiLink gnuplotRepeat Repeat
- HiLink gnuplotKeyword Keyword
- HiLink gnuplotOperator Operator
-
- " ---- PreProcs ---- "
- HiLink gnuplotMacro Macro
-
- " ---- Types ---- "
- HiLink gnuplotStatement Type
- HiLink gnuplotFunc Identifier
-
- " ---- Specials ---- "
- HiLink gnuplotSpecial Special
- HiLink gnuplotUnit Special
- HiLink gnuplotExternal Special
-
- " ---- Errors ---- "
- HiLink gnuplotError Error
- HiLink gnuplotOctalError Error
-
- " ---- Todos ---- "
- HiLink gnuplotTodo Todo
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/godoc.vim b/runtime/syntax/godoc.vim
index 3a07903a77..0603f51c83 100644
--- a/runtime/syntax/godoc.vim
+++ b/runtime/syntax/godoc.vim
@@ -10,11 +10,9 @@ endif
syn case match
syn match godocTitle "^\([A-Z][A-Z ]*\)$"
-command -nargs=+ HiLink hi def link <args>
-HiLink godocTitle Title
+hi def link godocTitle Title
-delcommand HiLink
let b:current_syntax = 'godoc'
diff --git a/runtime/syntax/gp.vim b/runtime/syntax/gp.vim
index f46a465215..aecf7df48b 100644
--- a/runtime/syntax/gp.vim
+++ b/runtime/syntax/gp.vim
@@ -4,9 +4,8 @@
" Last change: 2012 Jan 08
" URL: http://pari.math.u-bordeaux.fr
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -59,33 +58,24 @@ syntax region gpParen transparent start='(' end=')' contains=ALLBUT,gpParenErro
syntax match gpParenError ")"
syntax match gpInParen contained "[{}]"
-if version >= 508 || !exists("did_gp_syn_inits")
- if version < 508
- let did_gp_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink gpConditional Conditional
- HiLink gpRepeat Repeat
- HiLink gpError Error
- HiLink gpParenError gpError
- HiLink gpInParen gpError
- HiLink gpStatement Statement
- HiLink gpString String
- HiLink gpComment Comment
- HiLink gpInterface Type
- HiLink gpInput Type
- HiLink gpInterfaceKey Statement
- HiLink gpFunction Function
- HiLink gpScope Type
- " contained ones
- HiLink gpSpecial Special
- HiLink gpTodo Todo
- HiLink gpArgs Type
- delcommand HiLink
-endif
+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
diff --git a/runtime/syntax/gpg.vim b/runtime/syntax/gpg.vim
index cde21ee563..46e2099994 100644
--- a/runtime/syntax/gpg.vim
+++ b/runtime/syntax/gpg.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: gpg(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2010-10-14
+" Language: gpg(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2010-10-14
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/grads.vim b/runtime/syntax/grads.vim
index 0b88549d40..50be14bb22 100644
--- a/runtime/syntax/grads.vim
+++ b/runtime/syntax/grads.vim
@@ -7,11 +7,8 @@
" This syntax file defines highlighting for only very few features of
" the GrADS scripting language.
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -53,34 +50,24 @@ syn match gradsComment "\*.*"
" syn match gradsTypos "!="
" 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 hgs highlighting+yet
-if version >= 508 || !exists("did_gs_syn_inits")
- if version < 508
- let did_gs_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't hgs highlighting+yet
- HiLink gradsStatement Statement
+hi def link gradsStatement Statement
- HiLink gradsString String
- HiLink gradsNumber Number
+hi def link gradsString String
+hi def link gradsNumber Number
- HiLink gradsFixVariables Special
- HiLink gradsVariables Identifier
- HiLink gradsglobalVariables Special
- HiLink gradsConst Special
+hi def link gradsFixVariables Special
+hi def link gradsVariables Identifier
+hi def link gradsglobalVariables Special
+hi def link gradsConst Special
- HiLink gradsClassMethods Function
+hi def link gradsClassMethods Function
- HiLink gradsOperator Operator
- HiLink gradsComment Comment
+hi def link gradsOperator Operator
+hi def link gradsComment Comment
- HiLink gradsTypos Error
+hi def link gradsTypos Error
- delcommand HiLink
-endif
let b:current_syntax = "grads"
diff --git a/runtime/syntax/gretl.vim b/runtime/syntax/gretl.vim
index 37299b894a..671142a9ea 100644
--- a/runtime/syntax/gretl.vim
+++ b/runtime/syntax/gretl.vim
@@ -4,20 +4,13 @@
" Last Change: 2006 Apr 30
" Filenames: *.inp *.gretl
" URL: http://uosis.mif.vu.lt/~zemlys/vim-syntax/gretl.vim
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
-if version >= 600
- setlocal iskeyword=@,48-57,_,.
-else
- set iskeyword=@,48-57,_,.
-endif
+setlocal iskeyword=@,48-57,_,.
syn case match
@@ -68,34 +61,24 @@ syn match gBCend /\*)/
syn region gBlockComment matchgroup=gCommentStart start="(\*" end="\*)"
" 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_r_syn_inits")
- if version < 508
- let did_r_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink gComment Comment
- HiLink gCommentStart Comment
- HiLink gBlockComment Comment
- HiLink gString String
- HiLink gNumber Number
- HiLink gBoolean Boolean
- HiLink gFloat Float
- HiLink gCommands Repeat
- HiLink gGenrFunc Type
- HiLink gDelimiter Delimiter
- HiLink gError Error
- HiLink gBraceError Error
- HiLink gCurlyError Error
- HiLink gParenError Error
- HiLink gIdentifier Normal
- HiLink gVariable Identifier
- HiLink gArrow Repeat
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/groovy.vim b/runtime/syntax/groovy.vim
index dc39677724..2245b79d04 100644
--- a/runtime/syntax/groovy.vim
+++ b/runtime/syntax/groovy.vim
@@ -44,11 +44,9 @@
" 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
+" quit when a syntax file was already loaded
if !exists("main_syntax")
- if version < 600
- syntax clear
- elseif exists("b:current_syntax")
+ if exists("b:current_syntax")
finish
endif
" we define it here so that included files can test for it
@@ -58,13 +56,6 @@ endif
let s:cpo_save = &cpo
set cpo&vim
-" don't use standard HiLink, it will not work with included syntax files
-if version < 508
- command! -nargs=+ GroovyHiLink hi link <args>
-else
- command! -nargs=+ GroovyHiLink hi def link <args>
-endif
-
" ##########################
" Java stuff taken from java.vim
" some characters that cannot be in a groovy program (outside a string)
@@ -144,9 +135,9 @@ if exists("groovy_highlight_groovy_lang_ids") || exists("groovy_highlight_groovy
syn keyword groovyJavaLangObject clone equals finalize getClass hashCode
syn keyword groovyJavaLangObject notify notifyAll toString wait
- GroovyHiLink groovyLangClass groovyConstant
- GroovyHiLink groovyJavaLangClass groovyExternal
- GroovyHiLink groovyJavaLangObject groovyConstant
+ 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
@@ -220,9 +211,9 @@ syn region groovyComment start="/\*" end="\*/" contains=@groovyCommen
syn match groovyCommentStar contained "^\s*\*[^/]"me=e-1
syn match groovyCommentStar contained "^\s*\*$"
syn match groovyLineComment "//.*" contains=@groovyCommentSpecial2,groovyTodo,@Spell
-GroovyHiLink groovyCommentString groovyString
-GroovyHiLink groovyComment2String groovyString
-GroovyHiLink groovyCommentCharacter groovyCharacter
+hi def link groovyCommentString groovyString
+hi def link groovyComment2String groovyString
+hi def link groovyCommentCharacter groovyCharacter
syn cluster groovyTop add=groovyComment,groovyLineComment
@@ -263,12 +254,12 @@ endif
" syn region groovyELExpr start=+${+ end=+}+ keepend contained
syn match groovyELExpr /\${.\{-}}/ contained
syn match groovyELExpr /\$[a-zA-Z_][a-zA-Z0-9_.]*/ contained
-GroovyHiLink groovyELExpr Identifier
+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
-" GroovyHiLink groovyClosureParams Identifier
+" hi def link groovyClosureParams Identifier
" next line disabled, it can cause a crash for a long line
"syn match groovyStringError +"\([^"\\]\|\\.\)*$+
@@ -329,23 +320,21 @@ if exists("groovy_highlight_debug")
syn cluster groovyTop add=groovyDebug
- if version >= 508 || !exists("did_c_syn_inits")
- GroovyHiLink groovyDebug Debug
- GroovyHiLink groovyDebugString DebugString
- GroovyHiLink groovyDebugStringError groovyError
- GroovyHiLink groovyDebugType DebugType
- GroovyHiLink groovyDebugBoolean DebugBoolean
- GroovyHiLink groovyDebugNumber Debug
- GroovyHiLink groovyDebugSpecial DebugSpecial
- GroovyHiLink groovyDebugSpecialCharacter DebugSpecial
- GroovyHiLink groovyDebugCharacter DebugString
- GroovyHiLink groovyDebugParen Debug
-
- GroovyHiLink DebugString String
- GroovyHiLink DebugSpecial Special
- GroovyHiLink DebugBoolean Boolean
- GroovyHiLink DebugType Type
- endif
+ hi def link groovyDebug Debug
+ hi def link groovyDebugString DebugString
+ hi def link groovyDebugStringError groovyError
+ hi def link groovyDebugType DebugType
+ hi def link groovyDebugBoolean DebugBoolean
+ hi def link groovyDebugNumber Debug
+ hi def link groovyDebugSpecial DebugSpecial
+ hi def link groovyDebugSpecialCharacter DebugSpecial
+ hi def link groovyDebugCharacter DebugString
+ hi def link groovyDebugParen Debug
+
+ hi def link DebugString String
+ hi def link DebugSpecial Special
+ hi def link DebugBoolean Boolean
+ hi def link DebugType Type
endif
" Match all Exception classes
@@ -379,7 +368,7 @@ exec "syn sync ccomment groovyComment minlines=" . groovy_minlines
if exists("groovy_mark_braces_in_parens_as_errors")
syn match groovyInParen contained "[{}]"
- GroovyHiLink groovyInParen groovyError
+ hi def link groovyInParen groovyError
syn cluster groovyTop add=groovyInParen
endif
@@ -388,7 +377,7 @@ syn region groovyParenT transparent matchgroup=groovyParen start="(" end=")"
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 ")"
-GroovyHiLink groovyParenError groovyError
+hi def link groovyParenError groovyError
" catch errors caused by wrong square parenthesis
syn region groovyParenT transparent matchgroup=groovyParen start="\[" end="\]" contains=@groovyTop,groovyParenT1
@@ -398,61 +387,54 @@ syn match groovyParenError "\]"
" ###############################
" java.vim default highlighting
-if version >= 508 || !exists("did_groovy_syn_inits")
- if version < 508
- let did_groovy_syn_inits = 1
- endif
- GroovyHiLink groovyFuncDef Function
- GroovyHiLink groovyBraces Function
- GroovyHiLink groovyBranch Conditional
- GroovyHiLink groovyUserLabelRef groovyUserLabel
- GroovyHiLink groovyLabel Label
- GroovyHiLink groovyUserLabel Label
- GroovyHiLink groovyConditional Conditional
- GroovyHiLink groovyRepeat Repeat
- GroovyHiLink groovyExceptions Exception
- GroovyHiLink groovyAssert Statement
- GroovyHiLink groovyStorageClass StorageClass
- GroovyHiLink groovyMethodDecl groovyStorageClass
- GroovyHiLink groovyClassDecl groovyStorageClass
- GroovyHiLink groovyScopeDecl groovyStorageClass
- GroovyHiLink groovyBoolean Boolean
- GroovyHiLink groovySpecial Special
- GroovyHiLink groovySpecialError Error
- GroovyHiLink groovySpecialCharError Error
- GroovyHiLink groovyString String
- GroovyHiLink groovyRegexChar String
- GroovyHiLink groovyCharacter Character
- GroovyHiLink groovySpecialChar SpecialChar
- GroovyHiLink groovyNumber Number
- GroovyHiLink groovyError Error
- GroovyHiLink groovyStringError Error
- GroovyHiLink groovyStatement Statement
- GroovyHiLink groovyOperator Operator
- GroovyHiLink groovyComment Comment
- GroovyHiLink groovyDocComment Comment
- GroovyHiLink groovyLineComment Comment
- GroovyHiLink groovyConstant Constant
- GroovyHiLink groovyTypedef Typedef
- GroovyHiLink groovyTodo Todo
-
- GroovyHiLink groovyCommentTitle SpecialComment
- GroovyHiLink groovyDocTags Special
- GroovyHiLink groovyDocParam Function
- GroovyHiLink groovyCommentStar groovyComment
-
- GroovyHiLink groovyType Type
- GroovyHiLink groovyExternal Include
-
- GroovyHiLink htmlComment Special
- GroovyHiLink htmlCommentPart Special
- GroovyHiLink groovySpaceError Error
- GroovyHiLink groovyJDKBuiltin Special
- GroovyHiLink groovyJDKOperOverl Operator
- GroovyHiLink groovyJDKMethods Function
-endif
-
-delcommand GroovyHiLink
+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"
diff --git a/runtime/syntax/group.vim b/runtime/syntax/group.vim
index ab2d56d6a5..f62a4a1d69 100644
--- a/runtime/syntax/group.vim
+++ b/runtime/syntax/group.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: group(5) user group file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2012-08-05
+" Language: group(5) user group file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2012-08-05
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/grub.vim b/runtime/syntax/grub.vim
index f63449db0e..3743ae3643 100644
--- a/runtime/syntax/grub.vim
+++ b/runtime/syntax/grub.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: grub(8) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: grub(8) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/gsp.vim b/runtime/syntax/gsp.vim
index e7b1b1632f..6270b2af64 100644
--- a/runtime/syntax/gsp.vim
+++ b/runtime/syntax/gsp.vim
@@ -5,11 +5,8 @@
" Filenames: *.gsp
" URL: http://www.constructicon.com/~nharward/vim/syntax/gsp.vim
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -18,21 +15,13 @@ if !exists("main_syntax")
endif
" Source HTML syntax
-if version < 600
- source <sfile>:p:h/html.vim
-else
- runtime! syntax/html.vim
-endif
+runtime! syntax/html.vim
unlet b:current_syntax
syn case match
" Include Java syntax
-if version < 600
- syn include @gspJava <sfile>:p:h/java.vim
-else
- syn include @gspJava syntax/java.vim
-endif
+syn include @gspJava syntax/java.vim
let s:cpo_save = &cpo
set cpo&vim
diff --git a/runtime/syntax/gtkrc.vim b/runtime/syntax/gtkrc.vim
index 57054a21d3..9c1bc2abb8 100644
--- a/runtime/syntax/gtkrc.vim
+++ b/runtime/syntax/gtkrc.vim
@@ -6,19 +6,12 @@
" URL: http://trific.ath.cx/Ftp/vim/syntax/gtkrc.vim
" Setup
-if version >= 600
- if exists("b:current_syntax")
- finish
- endif
-else
- syntax clear
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
+ finish
endif
-if version >= 600
- setlocal iskeyword=_,-,a-z,A-Z,48-57
-else
- set iskeyword=_,-,a-z,A-Z,48-57
-endif
+setlocal iskeyword=_,-,a-z,A-Z,48-57
syn case match
@@ -86,57 +79,48 @@ syn sync minlines=50
syn sync match gtkrcSyncClass groupthere NONE "^\s*class\>"
" Define the default highlighting
-if version >= 508 || !exists("did_gtkrc_syntax_inits")
- if version < 508
- let did_gtkrc_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink gtkrcComment Comment
- HiLink gtkrcFixme Todo
-
- HiLink gtkrcInclude Preproc
-
- HiLink gtkrcACString gtkrcString
- HiLink gtkrcBString gtkrcString
- HiLink gtkrcString String
- HiLink gtkrcNumber Number
- HiLink gtkrcStateName gtkrcConstant
- HiLink gtkrcPriorityName gtkrcConstant
- HiLink gtkrcTextDirName gtkrcConstant
- HiLink gtkrcSettingsName Function
- HiLink gtkrcStockName Function
- HiLink gtkrcConstant Constant
-
- HiLink gtkrcPathSpecial gtkrcSpecial
- HiLink gtkrcWPathSpecial gtkrcSpecial
- HiLink gtkrcRGBColor gtkrcSpecial
- HiLink gtkrcKeyMod gtkrcSpecial
- HiLink gtkrcSpecial Special
-
- HiLink gtkrcTop gtkrcKeyword
- HiLink gtkrcPathSet gtkrcKeyword
- HiLink gtkrcStyleKeyword gtkrcKeyword
- HiLink gtkrcFunction gtkrcKeyword
- HiLink gtkrcBind gtkrcKeyword
- HiLink gtkrcKeyword Keyword
-
- HiLink gtkrcClassNameGnome gtkrcGtkClass
- HiLink gtkrcClassName gtkrcGtkClass
- HiLink gtkrcFunctionName gtkrcGtkClass
- HiLink gtkrcGtkClass Type
-
- HiLink gtkrcImage gtkrcOtherword
- HiLink gtkrcOtherword Function
-
- HiLink gtkrcParenError gtkrcError
- HiLink gtkrcBraceError gtkrcError
- HiLink gtkrcBracketError gtkrcError
- HiLink gtkrcError Error
-
- delcommand HiLink
-endif
+
+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/haml.vim b/runtime/syntax/haml.vim
index bf7a073633..5369695c22 100644
--- a/runtime/syntax/haml.vim
+++ b/runtime/syntax/haml.vim
@@ -2,7 +2,7 @@
" Language: Haml
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Filenames: *.haml
-" Last Change: 2010 Aug 09
+" Last Change: 2016 Aug 29
if exists("b:current_syntax")
finish
@@ -67,7 +67,7 @@ syn region hamlJavascriptFilter matchgroup=hamlFilter start="^\z(\s*\):javascri
syn region hamlCSSFilter matchgroup=hamlFilter start="^\z(\s*\):css\s*$" end="^\%(\z1 \| *$\)\@!" contains=@htmlCss,hamlInterpolation keepend
syn region hamlSassFilter matchgroup=hamlFilter start="^\z(\s*\):sass\s*$" end="^\%(\z1 \| *$\)\@!" contains=@hamlSassTop
-syn region hamlJavascriptBlock start="^\z(\s*\)%script" nextgroup=@hamlComponent,hamlError end="^\%(\z1 \| *$\)\@!" contains=@hamlTop,@htmlJavaScript keepend
+syn region hamlJavascriptBlock start="^\z(\s*\)%script\%((type=[\"']text/javascript[\"'])\)\=\s*$" nextgroup=@hamlComponent,hamlError end="^\%(\z1 \| *$\)\@!" contains=@hamlTop,@htmlJavaScript keepend
syn region hamlCssBlock start="^\z(\s*\)%style" nextgroup=@hamlComponent,hamlError end="^\%(\z1 \| *$\)\@!" contains=@hamlTop,@htmlCss keepend
syn match hamlError "\$" contained
diff --git a/runtime/syntax/hamster.vim b/runtime/syntax/hamster.vim
index bd52300ca0..64d9598a71 100644
--- a/runtime/syntax/hamster.vim
+++ b/runtime/syntax/hamster.vim
@@ -12,10 +12,8 @@
" for news and mail, a build-in script language, the GUI allows translation to
" other languages, it can be used in a network and that's not all features...
"
-" For version 6.x: Quit when a syntax file was already loaded
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -358,24 +356,14 @@ syn cluster hamsterComment contains=hamsterHashComment
syn sync ccomment hamsterHashComment
" 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_hamster_syn_inits")
- if version < 508
- let did_hamster_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink hamsterHashComment Comment
- HiLink hamsterSpecial Special
- HiLink hamsterStatement Statement
- HiLink hamsterString String
- HiLink hamsterFunction Function
+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
- delcommand HiLink
-endif
let b:current_syntax = "hamster"
diff --git a/runtime/syntax/haskell.vim b/runtime/syntax/haskell.vim
index 8afca048cc..e398085ba8 100644
--- a/runtime/syntax/haskell.vim
+++ b/runtime/syntax/haskell.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Haskell
" Maintainer: Haskell Cafe mailinglist <haskell-cafe@haskell.org>
-" Last Change: 2008 Dec 15
+" Last Change: 2017 Jun 04
" Original Author: John Williams <jrw@pobox.com>
"
" Thanks to Ryan Crumley for suggestions and John Meacham for
@@ -32,10 +32,8 @@
" to attribution of work.
" 2008 Dec 15: Added comments as contained element in import statements
-" Remove any old syntax stuff hanging around
-if version < 600
- syn clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -64,7 +62,7 @@ syn match hsCharacter "^'\([^\\]\|\\[^']\+\|\\'\)'" contains=hsSpecialChar,hs
syn match hsNumber "\<[0-9]\+\>\|\<0[xX][0-9a-fA-F]\+\>\|\<0[oO][0-7]\+\>"
syn match hsFloat "\<[0-9]\+\.[0-9]\+\([eE][-+]\=[0-9]\+\)\=\>"
-" Keyword definitions. These must be patters instead of keywords
+" Keyword definitions. These must be patterns instead of keywords
" because otherwise they would match as keywords at the start of a
" "literate" comment (see lhs.vim).
syn match hsModule "\<module\>"
@@ -127,67 +125,57 @@ syntax match cCommentStartError display "/\*"me=e-1 contained
syn region cCppString start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial contained
" 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_hs_syntax_inits")
- if version < 508
- let did_hs_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink hsModule hsStructure
- HiLink hsImport Include
- HiLink hsImportMod hsImport
- HiLink hsInfix PreProc
- HiLink hsStructure Structure
- HiLink hsStatement Statement
- HiLink hsConditional Conditional
- HiLink hsSpecialChar SpecialChar
- HiLink hsTypedef Typedef
- HiLink hsVarSym hsOperator
- HiLink hsConSym hsOperator
- HiLink hsOperator Operator
- if exists("hs_highlight_delimiters")
- " Some people find this highlighting distracting.
- HiLink hsDelimiter Delimiter
- endif
- HiLink hsSpecialCharError Error
- HiLink hsString String
- HiLink hsCharacter Character
- HiLink hsNumber Number
- HiLink hsFloat Float
- HiLink hsConditional Conditional
- HiLink hsLiterateComment hsComment
- HiLink hsBlockComment hsComment
- HiLink hsLineComment hsComment
- HiLink hsComment Comment
- HiLink hsPragma SpecialComment
- HiLink hsBoolean Boolean
- HiLink hsType Type
- HiLink hsMaybe hsEnumConst
- HiLink hsOrdering hsEnumConst
- HiLink hsEnumConst Constant
- HiLink hsDebug Debug
-
- HiLink cCppString hsString
- HiLink cCommentStart hsComment
- HiLink cCommentError hsError
- HiLink cCommentStartError hsError
- HiLink cInclude Include
- HiLink cPreProc PreProc
- HiLink cDefine Macro
- HiLink cIncluded hsString
- HiLink cError Error
- HiLink cPreCondit PreCondit
- HiLink cComment Comment
- HiLink cCppSkip cCppOut
- HiLink cCppOut2 cCppOut
- HiLink cCppOut Comment
-
- delcommand HiLink
+" 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 hsVarSym hsOperator
+hi def link hsConSym hsOperator
+hi def link hsOperator Operator
+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 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"
diff --git a/runtime/syntax/haste.vim b/runtime/syntax/haste.vim
index b889c5c594..79e9f5ec56 100644
--- a/runtime/syntax/haste.vim
+++ b/runtime/syntax/haste.vim
@@ -12,11 +12,8 @@
if exists("b:current_syntax")
finish
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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
diff --git a/runtime/syntax/hastepreproc.vim b/runtime/syntax/hastepreproc.vim
index 3fcb8ddd31..f08bf3fbf3 100644
--- a/runtime/syntax/hastepreproc.vim
+++ b/runtime/syntax/hastepreproc.vim
@@ -5,24 +5,13 @@
" files
" Version: 0.5
-" HASTE
+" quit when a syntax file was already loaded
if exists("b:current_syntax")
- finish
-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
-" Read the C syntax to start with
-if version < 600
- so <sfile>:p:h/haste.vim
-else
- runtime! syntax/haste.vim
- unlet b:current_syntax
-endif
+" Read the haste syntax to start with
+runtime! syntax/haste.vim
+unlet b:current_syntax
" case is significant
syn case match
diff --git a/runtime/syntax/hb.vim b/runtime/syntax/hb.vim
index d4de3ff1e1..7bff1df9fb 100644
--- a/runtime/syntax/hb.vim
+++ b/runtime/syntax/hb.vim
@@ -4,11 +4,8 @@
" URL: http://bachue.com/hb/vim/syntax/hb.vim
" Last Change: 2012 Jan 08 by Thilo Six
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -63,31 +60,21 @@ syn region HBText matchgroup=HBDirectiveKeyword start=/^:\(set\|out\)\s*\S\+.*$/
syn match HBComment "^#.*$"
" 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_hb_syntax_inits")
- if version < 508
- let did_hb_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink HBhtmlString String
- HiLink HBhtmlTagN Function
- HiLink htmlSpecialChar String
-
- HiLink HBInvalidLine Error
- HiLink HBFoobar Comment
- hi HBFileName guibg=lightgray guifg=black
- HiLink HBDirectiveError Error
- HiLink HBDirectiveBlockEnd HBDirectiveKeyword
- hi HBDirectiveKeyword guibg=lightgray guifg=darkgreen
- HiLink HBComment Comment
- HiLink HBhtmlTagSk Statement
-
- delcommand HiLink
-endif
+" 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]\+$"
diff --git a/runtime/syntax/help.vim b/runtime/syntax/help.vim
index 41bb0b1938..972970f619 100644
--- a/runtime/syntax/help.vim
+++ b/runtime/syntax/help.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Vim help file
" Maintainer: Bram Moolenaar (Bram@vim.org)
-" Last Change: 2016 Apr 01
+" Last Change: 2017 Oct 19
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
@@ -50,10 +50,13 @@ else
syn match helpIgnore "." contained
endif
syn keyword helpNote note Note NOTE note: Note: NOTE: Notes Notes:
+syn keyword helpWarning WARNING WARNING: Warning:
+syn keyword helpDeprecated DEPRECATED DEPRECATED: Deprecated:
syn match helpSpecial "\<N\>"
syn match helpSpecial "\<N\.$"me=e-1
syn match helpSpecial "\<N\.\s"me=e-2
syn match helpSpecial "(N\>"ms=s+1
+
syn match helpSpecial "\[N]"
" avoid highlighting N N in help.txt
syn match helpSpecial "N N"he=s+1
@@ -79,6 +82,9 @@ 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-Break"
syn match helpSpecial "CTRL-PageUp"
@@ -86,6 +92,8 @@ syn match helpSpecial "CTRL-PageDown"
syn match helpSpecial "CTRL-Insert"
syn match helpSpecial "CTRL-Del"
syn match helpSpecial "CTRL-{char}"
+syn match helpSpecial "META-."
+syn match helpSpecial "ALT-."
" Highlight group items in their own color.
syn match helpComment "\t[* ]Comment\t\+[a-z].*"
@@ -161,6 +169,8 @@ hi def link helpExample Comment
hi def link helpOption Type
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
diff --git a/runtime/syntax/hercules.vim b/runtime/syntax/hercules.vim
index 02d8e9bb78..d305707662 100644
--- a/runtime/syntax/hercules.vim
+++ b/runtime/syntax/hercules.vim
@@ -7,11 +7,8 @@
" that an IC's physical design matches its logical design and
" satisfies manufacturing rules.
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -101,32 +98,21 @@ syn match herculesOutput "error\s*=\s*(.*)"
syn sync lines=100
" 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_hercules_syntax_inits")
- if version < 508
- let did_hercules_syntax_inits = 1
- " Default methods for highlighting.
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink herculesStatement Statement
- HiLink herculesType Type
- HiLink herculesComment Comment
- HiLink herculesPreProc PreProc
- HiLink herculesTodo Todo
- HiLink herculesOutput Include
- HiLink herculesCmdCmnt Identifier
- HiLink herculesNumber Number
- HiLink herculesBraceError herculesError
- HiLink herculesCurlyError herculesError
- HiLink herculesParenError herculesError
- HiLink herculesError Error
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/hex.vim b/runtime/syntax/hex.vim
index 40f7f0dd10..35edf08e9f 100644
--- a/runtime/syntax/hex.vim
+++ b/runtime/syntax/hex.vim
@@ -25,11 +25,8 @@
" States in parentheses in the upper format description indicate that they
" should not appear in a valid file.
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -68,34 +65,24 @@ syn match hexChecksum "[0-9a-fA-F]\{2}$" contained
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.
-" 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_hex_syntax_inits")
- if version < 508
- let did_hex_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- " The default methods for highlighting. Can be overridden later
- HiLink hexRecStart hexRecType
- HiLink hexDataByteCount Constant
- hi def hexAddressFieldUnknown term=italic cterm=italic gui=italic
- HiLink hexDataAddress Comment
- HiLink hexNoAddress DiffAdd
- HiLink hexRecTypeUnknown hexRecType
- HiLink 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
- HiLink hexDataUnexpected Error
- HiLink hexExtendedAddress hexDataAddress
- HiLink hexStartAddress hexDataAddress
- HiLink hexChecksum DiffChange
+" 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
- delcommand HiLink
-endif
let b:current_syntax = "hex"
diff --git a/runtime/syntax/hitest.vim b/runtime/syntax/hitest.vim
index 7489101060..1e39451dcd 100644
--- a/runtime/syntax/hitest.vim
+++ b/runtime/syntax/hitest.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: none; used to see highlighting
" Maintainer: Ronald Schild <rs@scutum.de>
-" Last Change: 2001 Sep 02
+" Last Change: 2017 Jul 28
" Version: 5.4n.1
" To see your current highlight settings, do
@@ -111,17 +111,6 @@ endif
nohlsearch
normal 0
-" add autocommands to remove temporary file from buffer list
-aug highlighttest
- au!
- au BufUnload Highlight\ test if expand("<afile>") == "Highlight test"
- au BufUnload Highlight\ test bdelete! Highlight\ test
- au BufUnload Highlight\ test endif
- au VimLeavePre * if bufexists("Highlight test")
- au VimLeavePre * bdelete! Highlight\ test
- au VimLeavePre * endif
-aug END
-
" we don't want to save this temporary file
set nomodified
diff --git a/runtime/syntax/hog.vim b/runtime/syntax/hog.vim
index f37f7ae899..7206815202 100644
--- a/runtime/syntax/hog.vim
+++ b/runtime/syntax/hog.vim
@@ -4,9 +4,8 @@
" Last Change: 2015 Oct 24 -> Rename syntax items from Snort -> Hog
" 2012 Oct 24 -> Originalish release
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
diff --git a/runtime/syntax/hostconf.vim b/runtime/syntax/hostconf.vim
index 4fc8af0ba3..593ed72eed 100644
--- a/runtime/syntax/hostconf.vim
+++ b/runtime/syntax/hostconf.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: host.conf(5) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2007-06-25
+" Language: host.conf(5) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2007-06-25
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/hostsaccess.vim b/runtime/syntax/hostsaccess.vim
index 8a9f02eff5..7201816f48 100644
--- a/runtime/syntax/hostsaccess.vim
+++ b/runtime/syntax/hostsaccess.vim
@@ -15,12 +15,8 @@ if exists("b:current_syntax")
endif
" For a starter we just use conf.vim for highlighting
-if version < 600
- so <sfile>:p:h/conf.vim
-else
- runtime! syntax/conf.vim
- unlet b:current_syntax
-endif
+runtime! syntax/conf.vim
+unlet b:current_syntax
let b:current_syntax = "hostsaccess"
diff --git a/runtime/syntax/html.vim b/runtime/syntax/html.vim
index ab1f9b3c13..5f943a9496 100644
--- a/runtime/syntax/html.vim
+++ b/runtime/syntax/html.vim
@@ -1,18 +1,17 @@
" Vim syntax file
-" Language: HTML
-" Maintainer: Claudio Fleiner <claudio@fleiner.com>
-" URL: http://www.fleiner.com/vim/syntax/html.vim
-" Last Change: 2015 Jan 07
-" included patch from David Felix
+" Language: HTML
+" Maintainer: Jorge Maldonado Ventura <jorgesumle@freakspot.net>
+" Previous Maintainer: Claudio Fleiner <claudio@fleiner.com>
+" Repository: https://notabug.org/jorgesumle/vim-html-syntax
+" Last Change: 2017 Sep 30
+" included patch from Christian Brabandt to make use of the strikethrough attributes
+"
" Please check :help html.vim for some comments and a description of the options
-" For version 5.x: Clear all syntax items
-" For version 6.x: Quit when a syntax file was already loaded
+" quit when a syntax file was already loaded
if !exists("main_syntax")
- if version < 600
- syntax clear
- elseif exists("b:current_syntax")
+ if exists("b:current_syntax")
finish
endif
let main_syntax = 'html'
@@ -21,13 +20,6 @@ endif
let s:cpo_save = &cpo
set cpo&vim
-" don't use standard HiLink, it will not work with included syntax files
-if version < 508
- command! -nargs=+ HtmlHiLink hi link <args>
-else
- command! -nargs=+ HtmlHiLink hi def link <args>
-endif
-
syntax spell toplevel
syn case ignore
@@ -54,15 +46,23 @@ 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 select small 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 label
-syn keyword htmlTagName contained colgroup del fieldset iframe ins legend
+syn keyword htmlTagName contained colgroup fieldset iframe ins 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 embed figcaption figure
+syn keyword htmlTagName contained footer header hgroup keygen main mark
+syn keyword htmlTagName contained menuitem meter nav output picture
+syn keyword htmlTagName contained progress rb rp rt rtc ruby section
+syn keyword htmlTagName contained slot source template time track video wbr
+
" legal arg names
syn keyword htmlArg contained action
syn keyword htmlArg contained align alink alt archive background bgcolor
@@ -97,6 +97,19 @@ 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 allowfullscreen async autocomplete autofocus
+syn keyword htmlArg contained autoplay challenge contenteditable contextmenu
+syn keyword htmlArg contained controls crossorigin default dirname download
+syn keyword htmlArg contained draggable dropzone form formaction formenctype
+syn keyword htmlArg contained formmethod formnovalidate formtarget hidden
+syn keyword htmlArg contained high icon inputmode keytype kind list loop low
+syn keyword htmlArg contained max min minlength muted nonce novalidate open
+syn keyword htmlArg contained optimum pattern placeholder poster preload
+syn keyword htmlArg contained radiogroup required reversed sandbox spellcheck
+syn keyword htmlArg contained sizes srcset srcdoc srclang step title translate
+syn keyword htmlArg contained typemustmatch
+
" special characters
syn match htmlSpecialChar "&#\=[0-9A-Za-z]\{1,8};"
@@ -123,6 +136,9 @@ if !exists("html_no_rendering")
" rendering
syn cluster htmlTop contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,@htmlPreproc
+ syn region htmlStrike start="<del\>" end="</del>"me=e-6 contains=@htmlTop
+ syn region htmlStrike start="<strike\>" end="</strike>"me=e-9 contains=@htmlTop
+
syn region htmlBold start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
syn region htmlBold start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
syn region htmlBoldUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlBoldUnderlineItalic
@@ -171,7 +187,7 @@ if main_syntax != 'java' || exists("java_javascript")
unlet b:current_syntax
syn region javaScript start=+<script\_[^>]*>+ keepend end=+</script\_[^>]*>+me=s-1 contains=@htmlJavaScript,htmlCssStyleComment,htmlScriptTag,@htmlPreproc
syn region htmlScriptTag contained start=+<script+ end=+>+ fold contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent
- HtmlHiLink htmlScriptTag htmlTag
+ hi def link htmlScriptTag htmlTag
" html events (i.e. arguments that include javascript commands)
if exists("html_extended_events")
@@ -183,8 +199,8 @@ if main_syntax != 'java' || exists("java_javascript")
endif
syn region htmlEventSQ contained start=+'+ms=s+1 end=+'+me=s-1 contains=@htmlJavaScript
syn region htmlEventDQ contained start=+"+ms=s+1 end=+"+me=s-1 contains=@htmlJavaScript
- HtmlHiLink htmlEventSQ htmlEvent
- HtmlHiLink htmlEventDQ htmlEvent
+ hi def link htmlEventSQ htmlEvent
+ hi def link htmlEventDQ htmlEvent
" a javascript expression is used as an arg value
syn region javaScriptExpression contained start=+&{+ keepend end=+};+ contains=@htmlJavaScript,@htmlPreproc
@@ -207,7 +223,7 @@ if main_syntax != 'java' || exists("java_css")
syn region cssStyle start=+<style+ keepend end=+</style>+ contains=@htmlCss,htmlTag,htmlEndTag,htmlCssStyleComment,@htmlPreproc
syn match htmlCssStyleComment 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
- HtmlHiLink htmlStyleArg htmlString
+ hi def link htmlStyleArg htmlString
endif
if main_syntax == "html"
@@ -221,73 +237,71 @@ if main_syntax == "html"
endif
" The default highlighting.
-if version >= 508 || !exists("did_html_syn_inits")
- if version < 508
- let did_html_syn_inits = 1
- endif
- HtmlHiLink htmlTag Function
- HtmlHiLink htmlEndTag Identifier
- HtmlHiLink htmlArg Type
- HtmlHiLink htmlTagName htmlStatement
- HtmlHiLink htmlSpecialTagName Exception
- HtmlHiLink htmlValue String
- HtmlHiLink htmlSpecialChar Special
-
- if !exists("html_no_rendering")
- HtmlHiLink htmlH1 Title
- HtmlHiLink htmlH2 htmlH1
- HtmlHiLink htmlH3 htmlH2
- HtmlHiLink htmlH4 htmlH3
- HtmlHiLink htmlH5 htmlH4
- HtmlHiLink htmlH6 htmlH5
- HtmlHiLink htmlHead PreProc
- HtmlHiLink htmlTitle Title
- HtmlHiLink htmlBoldItalicUnderline htmlBoldUnderlineItalic
- HtmlHiLink htmlUnderlineBold htmlBoldUnderline
- HtmlHiLink htmlUnderlineItalicBold htmlBoldUnderlineItalic
- HtmlHiLink htmlUnderlineBoldItalic htmlBoldUnderlineItalic
- HtmlHiLink htmlItalicUnderline htmlUnderlineItalic
- HtmlHiLink htmlItalicBold htmlBoldItalic
- HtmlHiLink htmlItalicBoldUnderline htmlBoldUnderlineItalic
- HtmlHiLink htmlItalicUnderlineBold htmlBoldUnderlineItalic
- HtmlHiLink htmlLink Underlined
- HtmlHiLink htmlLeadingSpace None
- if !exists("html_my_rendering")
- hi def htmlBold term=bold cterm=bold gui=bold
- hi def htmlBoldUnderline term=bold,underline cterm=bold,underline gui=bold,underline
- hi def htmlBoldItalic term=bold,italic cterm=bold,italic gui=bold,italic
- hi def htmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,italic,underline gui=bold,italic,underline
- hi def htmlUnderline term=underline cterm=underline gui=underline
- hi def htmlUnderlineItalic term=italic,underline cterm=italic,underline gui=italic,underline
- hi def htmlItalic term=italic cterm=italic gui=italic
+hi def link htmlTag Function
+hi def link htmlEndTag Identifier
+hi def link htmlArg Type
+hi def link htmlTagName htmlStatement
+hi def link htmlSpecialTagName Exception
+hi def link htmlValue String
+hi def link htmlSpecialChar Special
+
+if !exists("html_no_rendering")
+ hi def link htmlH1 Title
+ hi def link htmlH2 htmlH1
+ hi def link htmlH3 htmlH2
+ hi def link htmlH4 htmlH3
+ hi def link htmlH5 htmlH4
+ hi def link htmlH6 htmlH5
+ hi def link htmlHead PreProc
+ hi def link htmlTitle Title
+ hi def link htmlBoldItalicUnderline htmlBoldUnderlineItalic
+ hi def link htmlUnderlineBold htmlBoldUnderline
+ hi def link htmlUnderlineItalicBold htmlBoldUnderlineItalic
+ hi def link htmlUnderlineBoldItalic htmlBoldUnderlineItalic
+ hi def link htmlItalicUnderline htmlUnderlineItalic
+ hi def link htmlItalicBold htmlBoldItalic
+ hi def link htmlItalicBoldUnderline htmlBoldUnderlineItalic
+ hi def link htmlItalicUnderlineBold htmlBoldUnderlineItalic
+ hi def link htmlLink Underlined
+ hi def link htmlLeadingSpace None
+ if !exists("html_my_rendering")
+ hi def htmlBold term=bold cterm=bold gui=bold
+ hi def htmlBoldUnderline term=bold,underline cterm=bold,underline gui=bold,underline
+ hi def htmlBoldItalic term=bold,italic cterm=bold,italic gui=bold,italic
+ hi def htmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,italic,underline gui=bold,italic,underline
+ hi def htmlUnderline term=underline cterm=underline gui=underline
+ hi def htmlUnderlineItalic term=italic,underline cterm=italic,underline gui=italic,underline
+ hi def htmlItalic term=italic cterm=italic gui=italic
+ if v:version > 800 || v:version == 800 && has("patch1038")
+ hi def htmlStrike term=strikethrough cterm=strikethrough gui=strikethrough
+ else
+ hi def htmlStrike term=underline cterm=underline gui=underline
endif
endif
-
- HtmlHiLink htmlPreStmt PreProc
- HtmlHiLink htmlPreError Error
- HtmlHiLink htmlPreProc PreProc
- HtmlHiLink htmlPreAttr String
- HtmlHiLink htmlPreProcAttrName PreProc
- HtmlHiLink htmlPreProcAttrError Error
- HtmlHiLink htmlSpecial Special
- HtmlHiLink htmlSpecialChar Special
- HtmlHiLink htmlString String
- HtmlHiLink htmlStatement Statement
- HtmlHiLink htmlComment Comment
- HtmlHiLink htmlCommentPart Comment
- HtmlHiLink htmlValue String
- HtmlHiLink htmlCommentError htmlError
- HtmlHiLink htmlTagError htmlError
- HtmlHiLink htmlEvent javaScript
- HtmlHiLink htmlError Error
-
- HtmlHiLink javaScript Special
- HtmlHiLink javaScriptExpression javaScript
- HtmlHiLink htmlCssStyleComment Comment
- HtmlHiLink htmlCssDefinition Special
endif
-delcommand HtmlHiLink
+hi def link htmlPreStmt PreProc
+hi def link htmlPreError Error
+hi def link htmlPreProc PreProc
+hi def link htmlPreAttr String
+hi def link htmlPreProcAttrName PreProc
+hi def link htmlPreProcAttrError Error
+hi def link htmlSpecial Special
+hi def link htmlSpecialChar Special
+hi def link htmlString String
+hi def link htmlStatement Statement
+hi def link htmlComment Comment
+hi def link htmlCommentPart Comment
+hi def link htmlValue String
+hi def link htmlCommentError htmlError
+hi def link htmlTagError htmlError
+hi def link htmlEvent javaScript
+hi def link htmlError Error
+
+hi def link javaScript Special
+hi def link javaScriptExpression javaScript
+hi def link htmlCssStyleComment Comment
+hi def link htmlCssDefinition Special
let b:current_syntax = "html"
diff --git a/runtime/syntax/htmlcheetah.vim b/runtime/syntax/htmlcheetah.vim
index f57df90dea..0721c76b44 100644
--- a/runtime/syntax/htmlcheetah.vim
+++ b/runtime/syntax/htmlcheetah.vim
@@ -3,11 +3,8 @@
" Maintainer: Max Ischenko <mfi@ukr.net>
" Last Change: 2003-05-11
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -15,14 +12,9 @@ if !exists("main_syntax")
let main_syntax = 'html'
endif
-if version < 600
- so <sfile>:p:h/cheetah.vim
- so <sfile>:p:h/html.vim
-else
- runtime! syntax/cheetah.vim
- runtime! syntax/html.vim
- unlet b:current_syntax
-endif
+runtime! syntax/cheetah.vim
+runtime! syntax/html.vim
+unlet b:current_syntax
syntax cluster htmlPreproc add=cheetahPlaceHolder
syntax cluster htmlString add=cheetahPlaceHolder
diff --git a/runtime/syntax/htmldjango.vim b/runtime/syntax/htmldjango.vim
index 58afd1b62d..07b1c375e8 100644
--- a/runtime/syntax/htmldjango.vim
+++ b/runtime/syntax/htmldjango.vim
@@ -3,11 +3,8 @@
" Maintainer: Dave Hodder <dmh@dmh.org.uk>
" Last Change: 2014 Jul 13
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -15,14 +12,9 @@ if !exists("main_syntax")
let main_syntax = 'html'
endif
-if version < 600
- so <sfile>:p:h/django.vim
- so <sfile>:p:h/html.vim
-else
- runtime! syntax/django.vim
- runtime! syntax/html.vim
- unlet b:current_syntax
-endif
+runtime! syntax/django.vim
+runtime! syntax/html.vim
+unlet b:current_syntax
syn cluster djangoBlocks add=djangoTagBlock,djangoVarBlock,djangoComment,djangoComBlock
diff --git a/runtime/syntax/htmlm4.vim b/runtime/syntax/htmlm4.vim
index 3119d2d1ad..ee1f06e5f4 100644
--- a/runtime/syntax/htmlm4.vim
+++ b/runtime/syntax/htmlm4.vim
@@ -4,11 +4,8 @@
" URL: http://www.fleiner.com/vim/syntax/htmlm4.vim
" Last Change: 2001 Apr 30
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -17,19 +14,12 @@ if !exists("main_syntax")
let main_syntax='htmlm4'
endif
-if version < 600
- so <sfile>:p:h/html.vim
-else
- runtime! syntax/html.vim
-endif
+runtime! syntax/html.vim
unlet b:current_syntax
syn case match
-if version < 600
- so <sfile>:p:h/m4.vim
-else
- runtime! syntax/m4.vim
-endif
+runtime! syntax/m4.vim
+
unlet b:current_syntax
syn cluster htmlPreproc add=@m4Top
syn cluster m4StringContents add=htmlTag,htmlEndTag
diff --git a/runtime/syntax/htmlos.vim b/runtime/syntax/htmlos.vim
index f31b9f6543..b54ca7a921 100644
--- a/runtime/syntax/htmlos.vim
+++ b/runtime/syntax/htmlos.vim
@@ -6,11 +6,8 @@
" Last Change: 2003 May 11
"
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -18,12 +15,8 @@ if !exists("main_syntax")
let main_syntax = 'htmlos'
endif
-if version < 600
- so <sfile>:p:h/html.vim
-else
- runtime! syntax/html.vim
- unlet b:current_syntax
-endif
+runtime! syntax/html.vim
+unlet b:current_syntax
syn cluster htmlPreproc add=htmlosRegion
@@ -121,42 +114,32 @@ else
endif
" 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_htmlos_syn_inits")
- if version < 508
- let did_htmlos_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " The default methods for highlighting. Can be overridden later
- HiLink htmlosSpecialIdentifier Operator
- HiLink htmlosIdentifier Identifier
- HiLink htmlosStorageClass StorageClass
- HiLink htmlosComment Comment
- HiLink htmlosBoolean Boolean
- HiLink htmlosStringSingle String
- HiLink htmlosStringDouble String
- HiLink htmlosNumber Number
- HiLink htmlosFloat Float
- HiLink htmlosFunctions Function
- HiLink htmlosRepeat Repeat
- HiLink htmlosConditional Conditional
- HiLink htmlosLabel Label
- HiLink htmlosStatement Statement
- HiLink htmlosKeyword Statement
- HiLink htmlosType Type
- HiLink htmlosDefine Define
- HiLink htmlosParent Delimiter
- HiLink htmlosError Error
- HiLink htmlosTodo Todo
- HiLink htmlosOperator Operator
- HiLink htmlosRelation Operator
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+" The default methods for highlighting. Can be overridden later
+hi def link htmlosSpecialIdentifier Operator
+hi def link htmlosIdentifier Identifier
+hi def link htmlosStorageClass StorageClass
+hi def link htmlosComment Comment
+hi def link htmlosBoolean Boolean
+hi def link htmlosStringSingle String
+hi def link htmlosStringDouble String
+hi def link htmlosNumber Number
+hi def link htmlosFloat Float
+hi def link htmlosFunctions Function
+hi def link htmlosRepeat Repeat
+hi def link htmlosConditional Conditional
+hi def link htmlosLabel Label
+hi def link htmlosStatement Statement
+hi def link htmlosKeyword Statement
+hi def link htmlosType Type
+hi def link htmlosDefine Define
+hi def link htmlosParent Delimiter
+hi def link htmlosError Error
+hi def link htmlosTodo Todo
+hi def link htmlosOperator Operator
+hi def link htmlosRelation Operator
+
let b:current_syntax = "htmlos"
if main_syntax == 'htmlos'
diff --git a/runtime/syntax/ia64.vim b/runtime/syntax/ia64.vim
index ebfdc95bae..544fcd402c 100644
--- a/runtime/syntax/ia64.vim
+++ b/runtime/syntax/ia64.vim
@@ -6,11 +6,8 @@
" File Version: 0.7
" Last Change: 2006 Sep 08
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -19,11 +16,7 @@ endif
syn case ignore
" Identifier Keyword characters (defines \k)
-if version >= 600
- setlocal iskeyword=@,48-57,#,$,.,:,?,@-@,_,~
-else
- set iskeyword=@,48-57,#,$,.,:,?,@-@,_,~
-endif
+setlocal iskeyword=@,48-57,#,$,.,:,?,@-@,_,~
syn sync minlines=5
@@ -268,43 +261,33 @@ syn match ia64data "real\([48]\|1[06]\)\(\(\(\.ua\)\=\(\.msb\|\.lsb\)\=\)\|\(\(\
syn match ia64data "stringz\=\(\(\(\.ua\)\=\(\.msb\|\.lsb\)\=\)\|\(\(\.msb\|\.lsb\)\=\(\.ua\)\=\)\)\=\>"
" 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_ia64_syn_inits")
- if version < 508
- let did_ia64_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- "put masm groups with our groups
- HiLink masmOperator ia64operator
- HiLink masmDirective ia64Directive
- HiLink masmOpcode ia64Opcode
- HiLink masmIdentifier ia64Identifier
- HiLink masmFloat ia64Float
+"put masm groups with our groups
+hi def link masmOperator ia64operator
+hi def link masmDirective ia64Directive
+hi def link masmOpcode ia64Opcode
+hi def link masmIdentifier ia64Identifier
+hi def link masmFloat ia64Float
- "ia64 specific stuff
- HiLink ia64Label Define
- HiLink ia64Comment Comment
- HiLink ia64Directive Type
- HiLink ia64opcode Statement
- HiLink ia64registers Operator
- HiLink ia64string String
- HiLink ia64Hex Number
- HiLink ia64Binary Number
- HiLink ia64Octal Number
- HiLink ia64Float Float
- HiLink ia64Decimal Number
- HiLink ia64Identifier Identifier
- HiLink ia64data Type
- HiLink ia64delimiter Delimiter
- HiLink ia64operator Operator
- HiLink ia64Todo Todo
+"ia64 specific stuff
+hi def link ia64Label Define
+hi def link ia64Comment Comment
+hi def link ia64Directive Type
+hi def link ia64opcode Statement
+hi def link ia64registers Operator
+hi def link ia64string String
+hi def link ia64Hex Number
+hi def link ia64Binary Number
+hi def link ia64Octal Number
+hi def link ia64Float Float
+hi def link ia64Decimal Number
+hi def link ia64Identifier Identifier
+hi def link ia64data Type
+hi def link ia64delimiter Delimiter
+hi def link ia64operator Operator
+hi def link ia64Todo Todo
- delcommand HiLink
-endif
let b:current_syntax = "ia64"
diff --git a/runtime/syntax/icemenu.vim b/runtime/syntax/icemenu.vim
index d3a733d579..6513287dfc 100644
--- a/runtime/syntax/icemenu.vim
+++ b/runtime/syntax/icemenu.vim
@@ -6,10 +6,8 @@
" Comment: Icewm is a lightweight window manager. This adds syntax
" highlighting when editing your user's menu file (~/.icewm/menu).
-" clear existing syntax
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
diff --git a/runtime/syntax/icon.vim b/runtime/syntax/icon.vim
index 1a73c43d8f..179d75cd28 100644
--- a/runtime/syntax/icon.vim
+++ b/runtime/syntax/icon.vim
@@ -4,11 +4,8 @@
" URL: ftp://ftp.halcyon.com/pub/users/wturner/icon.vim
" Last Change: 2003 May 11
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -157,56 +154,46 @@ exec "syn sync ccomment iconComment minlines=" . icon_minlines
" 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
-if version >= 508 || !exists("did_icon_syn_inits")
- if version < 508
- let did_icon_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " The default methods for highlighting. Can be overridden later
-
- " HiLink iconSpecialCharacter iconSpecial
-
- HiLink iconOctalError iconError
- HiLink iconParenError iconError
- HiLink iconInParen iconError
- HiLink iconCommentError iconError
- HiLink iconSpaceError iconError
- HiLink iconCommentError iconError
- HiLink iconIncluded iconString
- HiLink iconCommentString iconString
- HiLink iconComment2String iconString
- HiLink iconCommentSkip iconComment
-
- HiLink iconUserLabel Label
- HiLink iconCharacter Character
- HiLink iconNumber Number
- HiLink iconRadix Number
- HiLink iconFloat Float
- HiLink iconInclude Include
- HiLink iconPreProc PreProc
- HiLink iconDefine Macro
- HiLink iconError Error
- HiLink iconStatement Statement
- HiLink iconPreCondit PreCondit
- HiLink iconString String
- HiLink iconCset String
- HiLink iconComment Comment
- HiLink iconSpecial SpecialChar
- HiLink iconTodo Todo
- HiLink iconStorageClass StorageClass
- HiLink iconFunction Statement
- HiLink iconReserved Label
- HiLink iconKeyword Operator
-
- "HiLink iconIdentifier Identifier
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting
+
+" The default methods for highlighting. Can be overridden later
+
+" hi def link iconSpecialCharacter iconSpecial
+
+hi def link iconOctalError iconError
+hi def link iconParenError iconError
+hi def link iconInParen iconError
+hi def link iconCommentError iconError
+hi def link iconSpaceError iconError
+hi def link iconCommentError iconError
+hi def link iconIncluded iconString
+hi def link iconCommentString iconString
+hi def link iconComment2String iconString
+hi def link iconCommentSkip iconComment
+
+hi def link iconUserLabel Label
+hi def link iconCharacter Character
+hi def link iconNumber Number
+hi def link iconRadix Number
+hi def link iconFloat Float
+hi def link iconInclude Include
+hi def link iconPreProc PreProc
+hi def link iconDefine Macro
+hi def link iconError Error
+hi def link iconStatement Statement
+hi def link iconPreCondit PreCondit
+hi def link iconString String
+hi def link iconCset String
+hi def link iconComment Comment
+hi def link iconSpecial SpecialChar
+hi def link iconTodo Todo
+hi def link iconStorageClass StorageClass
+hi def link iconFunction Statement
+hi def link iconReserved Label
+hi def link iconKeyword Operator
+
+"hi def link iconIdentifier Identifier
+
let b:current_syntax = "icon"
diff --git a/runtime/syntax/idl.vim b/runtime/syntax/idl.vim
index c51850b13a..6a4ce7e087 100644
--- a/runtime/syntax/idl.vim
+++ b/runtime/syntax/idl.vim
@@ -222,100 +222,98 @@ try
if !exists("did_idl_syntax_inits")
let did_idl_syntax_inits = 1
" The default methods for highlighting. Can be overridden later
- command -nargs=+ HiLink hi def link <args>
-
- HiLink idlInclude Include
- HiLink idlPreProc PreProc
- HiLink idlPreCondit PreCondit
- HiLink idlDefine Macro
- HiLink idlIncluded String
- HiLink idlString String
- HiLink idlComment Comment
- HiLink idlTodo Todo
- HiLink idlLiteral Number
- HiLink idlUuid Number
- HiLink idlType Type
- HiLink idlVariantType idlType
-
- HiLink idlModule Keyword
- HiLink idlInterface Keyword
- HiLink idlEnum Keyword
- HiLink idlStruct Keyword
- HiLink idlUnion Keyword
- HiLink idlTypedef Keyword
- HiLink idlException Keyword
- HiLink idlTypedefOtherTypeQualifier keyword
-
- HiLink idlModuleName Typedef
- HiLink idlInterfaceName Typedef
- HiLink idlEnumName Typedef
- HiLink idlStructName Typedef
- HiLink idlUnionName Typedef
-
- HiLink idlBaseTypeInt idlType
- HiLink idlBaseType idlType
- HiLink idlSeqType idlType
- HiLink idlD1 Paren
- HiLink idlD2 Paren
- HiLink idlD3 Paren
- HiLink idlD4 Paren
- "HiLink idlArraySize Paren
- "HiLink idlArraySize1 Paren
- HiLink idlModuleContent Paren
- HiLink idlUnionContent Paren
- HiLink idlStructContent Paren
- HiLink idlEnumContents Paren
- HiLink idlInterfaceContent Paren
-
- HiLink idlSimpDecl Identifier
- HiLink idlROAttr StorageClass
- HiLink idlAttr Keyword
- HiLink idlConst StorageClass
-
- HiLink idlOneWayOp StorageClass
- HiLink idlOp idlType
- HiLink idlParmType idlType
- HiLink idlOpName Function
- HiLink idlOpParms SpecialComment
- HiLink idlParmName Identifier
- HiLink idlInheritFrom Identifier
- HiLink idlAttribute SpecialComment
-
- HiLink idlId Constant
- "HiLink idlCase Keyword
- HiLink idlCaseLabel Constant
-
- HiLink idlErrorBracket Error
- HiLink idlErrorBrace Error
- HiLink idlErrorSquareBracket Error
-
- HiLink idlImport Keyword
- HiLink idlImportString idlString
- HiLink idlCoclassAttribute StorageClass
- HiLink idlLibrary Keyword
- HiLink idlImportlib Keyword
- HiLink idlCoclass Keyword
- HiLink idlLibraryName Typedef
- HiLink idlCoclassName Typedef
- " hi idlLibraryContent guifg=red
- HiLink idlTypedefDecl Typedef
- HiLink idlDefEnum Keyword
- HiLink idlDefv1Enum Keyword
- HiLink idlDefEnumName Typedef
- HiLink idlDefEnumContents Paren
- HiLink idlDefBaseTypeInt idlType
- HiLink idlDefBaseType idlType
- HiLink idlDefSeqType idlType
- HiLink idlInterfaceSections Label
+
+ hi def link idlInclude Include
+ hi def link idlPreProc PreProc
+ hi def link idlPreCondit PreCondit
+ hi def link idlDefine Macro
+ hi def link idlIncluded String
+ hi def link idlString String
+ hi def link idlComment Comment
+ hi def link idlTodo Todo
+ hi def link idlLiteral Number
+ hi def link idlUuid Number
+ hi def link idlType Type
+ hi def link idlVariantType idlType
+
+ hi def link idlModule Keyword
+ hi def link idlInterface Keyword
+ hi def link idlEnum Keyword
+ hi def link idlStruct Keyword
+ hi def link idlUnion Keyword
+ hi def link idlTypedef Keyword
+ hi def link idlException Keyword
+ hi def link idlTypedefOtherTypeQualifier keyword
+
+ hi def link idlModuleName Typedef
+ hi def link idlInterfaceName Typedef
+ hi def link idlEnumName Typedef
+ hi def link idlStructName Typedef
+ hi def link idlUnionName Typedef
+
+ hi def link idlBaseTypeInt idlType
+ hi def link idlBaseType idlType
+ hi def link idlSeqType idlType
+ hi def link idlD1 Paren
+ hi def link idlD2 Paren
+ hi def link idlD3 Paren
+ hi def link idlD4 Paren
+ "hi def link idlArraySize Paren
+ "hi def link idlArraySize1 Paren
+ hi def link idlModuleContent Paren
+ hi def link idlUnionContent Paren
+ hi def link idlStructContent Paren
+ hi def link idlEnumContents Paren
+ hi def link idlInterfaceContent Paren
+
+ hi def link idlSimpDecl Identifier
+ hi def link idlROAttr StorageClass
+ hi def link idlAttr Keyword
+ hi def link idlConst StorageClass
+
+ hi def link idlOneWayOp StorageClass
+ hi def link idlOp idlType
+ hi def link idlParmType idlType
+ hi def link idlOpName Function
+ hi def link idlOpParms SpecialComment
+ hi def link idlParmName Identifier
+ hi def link idlInheritFrom Identifier
+ hi def link idlAttribute SpecialComment
+
+ hi def link idlId Constant
+ "hi def link idlCase Keyword
+ hi def link idlCaseLabel Constant
+
+ hi def link idlErrorBracket Error
+ hi def link idlErrorBrace Error
+ hi def link idlErrorSquareBracket Error
+
+ hi def link idlImport Keyword
+ hi def link idlImportString idlString
+ hi def link idlCoclassAttribute StorageClass
+ hi def link idlLibrary Keyword
+ hi def link idlImportlib Keyword
+ hi def link idlCoclass Keyword
+ hi def link idlLibraryName Typedef
+ hi def link idlCoclassName Typedef
+ " hi def link idlLibraryContent guifg=red
+ hi def link idlTypedefDecl Typedef
+ hi def link idlDefEnum Keyword
+ hi def link idlDefv1Enum Keyword
+ hi def link idlDefEnumName Typedef
+ hi def link idlDefEnumContents Paren
+ hi def link idlDefBaseTypeInt idlType
+ hi def link idlDefBaseType idlType
+ hi def link idlDefSeqType idlType
+ hi def link idlInterfaceSections Label
if exists("idlsyntax_showerror")
if exists("idlsyntax_showerror_soft")
hi default idlError guibg=#d0ffd0
else
- HiLink idlError Error
+ hi def link idlError Error
endif
endif
- delcommand HiLink
endif
let b:current_syntax = "idl"
diff --git a/runtime/syntax/idlang.vim b/runtime/syntax/idlang.vim
index 670d080a7d..14e976ce05 100644
--- a/runtime/syntax/idlang.vim
+++ b/runtime/syntax/idlang.vim
@@ -4,11 +4,8 @@
" Created by: Hermann Rochholz <Hermann.Rochholz AT gmx.de>
" Remove any old syntax stuff hanging around
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -219,35 +216,25 @@ syn keyword idlangRoutine XSQ_TEST XSURFACE XVAREDIT XVOLUME XVOLUME_ROTATE
syn keyword idlangRoutine XVOLUME_WRITE_IMAGE XYOUTS ZOOM ZOOM_24
" 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_idlang_syn_inits")
- if version < 508
- let did_idlang_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
-else
- command -nargs=+ HiLink hi def link <args>
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link idlangConditional Conditional
+hi def link idlangRoutine Type
+hi def link idlangStatement Statement
+hi def link idlangContinueLine Todo
+hi def link idlangRealNumber Float
+hi def link idlangNumber Number
+hi def link idlangString String
+hi def link idlangOperator Operator
+hi def link idlangComment Comment
+hi def link idlangTodo Todo
+hi def link idlangPreCondit Identifier
+hi def link idlangDblCommaError Error
+hi def link idlangStop Error
+hi def link idlangStrucvar PreProc
+hi def link idlangSystem Identifier
+hi def link idlangKeyword Special
- HiLink idlangConditional Conditional
- HiLink idlangRoutine Type
- HiLink idlangStatement Statement
- HiLink idlangContinueLine Todo
- HiLink idlangRealNumber Float
- HiLink idlangNumber Number
- HiLink idlangString String
- HiLink idlangOperator Operator
- HiLink idlangComment Comment
- HiLink idlangTodo Todo
- HiLink idlangPreCondit Identifier
- HiLink idlangDblCommaError Error
- HiLink idlangStop Error
- HiLink idlangStrucvar PreProc
- HiLink idlangSystem Identifier
- HiLink idlangKeyword Special
-
- delcommand HiLink
-endif
let b:current_syntax = "idlang"
" vim: ts=18
diff --git a/runtime/syntax/indent.vim b/runtime/syntax/indent.vim
index 389101a522..ddeae67e0d 100644
--- a/runtime/syntax/indent.vim
+++ b/runtime/syntax/indent.vim
@@ -1,10 +1,10 @@
" Vim syntax file
-" Language: indent(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2010-01-23
-" indent_is_bsd: If exists, will change somewhat to match BSD implementation
+" Language: indent(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2010-01-23
+" indent_is_bsd: If exists, will change somewhat to match BSD implementation
"
-" TODO: is the deny-all (a la lilo.vim nice or no?)...
+" TODO: is the deny-all (a la lilo.vim nice or no?)...
" irritating to be wrong to the last char...
" would be sweet if right until one char fails
diff --git a/runtime/syntax/inform.vim b/runtime/syntax/inform.vim
index d8ba43dcee..e3e1b3e1f0 100644
--- a/runtime/syntax/inform.vim
+++ b/runtime/syntax/inform.vim
@@ -4,10 +4,8 @@
" URL: http://www.gowarthomas.com/informvim
" Last Change: 2006 April 20
-" Quit when a syntax file was already loaded
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -294,13 +292,8 @@ endif
" Handling for different versions of VIM.
-if version >= 600
- setlocal iskeyword+=$
- command -nargs=+ SynDisplay syntax <args> display
-else
- set iskeyword+=$
- command -nargs=+ SynDisplay syntax <args>
-endif
+setlocal iskeyword+=$
+command -nargs=+ SynDisplay syntax <args> display
" Grammar sections.
@@ -347,61 +340,52 @@ syn sync maxlines=500
delcommand SynDisplay
" The default highlighting.
-if version >= 508 || !exists("did_inform_syn_inits")
- if version < 508
- let did_inform_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink informDefine Define
- HiLink informType Type
- HiLink informInclude Include
- HiLink informPreCondit PreCondit
- HiLink informPreProc PreProc
- HiLink informGramPreProc PreProc
- HiLink informAsm Special
- if !exists("inform_suppress_obsolete")
- HiLink informAsmObsolete informError
- HiLink informKeywordObsolete informError
- else
- HiLink informAsmObsolete Special
- HiLink informKeywordObsolete Keyword
- endif
- HiLink informPredicate Operator
- HiLink informSysFunc Identifier
- HiLink informSysConst Identifier
- HiLink informConditional Conditional
- HiLink informRepeat Repeat
- HiLink informStatement Statement
- HiLink informOperator Operator
- HiLink informKeyword Keyword
- HiLink informGrammar Keyword
- HiLink informDictString String
- HiLink informNumber Number
- HiLink informError Error
- HiLink informString String
- HiLink informComment Comment
- HiLink informAccent Special
- HiLink informStringUnicode Special
- HiLink informStringCode Special
- HiLink informTodo Todo
- if !exists("inform_highlight_simple")
- HiLink informLibAttrib Identifier
- HiLink informLibProp Identifier
- HiLink informLibObj Identifier
- HiLink informLibRoutine Identifier
- HiLink informLibVariable Identifier
- HiLink informLibConst Identifier
- HiLink informLibAction Identifier
- endif
- HiLink informBadDictString informError
- HiLink informBadAccent informError
- HiLink informBadStrUnicode informError
- delcommand HiLink
+hi def link informDefine Define
+hi def link informType Type
+hi def link informInclude Include
+hi def link informPreCondit PreCondit
+hi def link informPreProc PreProc
+hi def link informGramPreProc PreProc
+hi def link informAsm Special
+if !exists("inform_suppress_obsolete")
+hi def link informAsmObsolete informError
+hi def link informKeywordObsolete informError
+else
+hi def link informAsmObsolete Special
+hi def link informKeywordObsolete Keyword
endif
+hi def link informPredicate Operator
+hi def link informSysFunc Identifier
+hi def link informSysConst Identifier
+hi def link informConditional Conditional
+hi def link informRepeat Repeat
+hi def link informStatement Statement
+hi def link informOperator Operator
+hi def link informKeyword Keyword
+hi def link informGrammar Keyword
+hi def link informDictString String
+hi def link informNumber Number
+hi def link informError Error
+hi def link informString String
+hi def link informComment Comment
+hi def link informAccent Special
+hi def link informStringUnicode Special
+hi def link informStringCode Special
+hi def link informTodo Todo
+if !exists("inform_highlight_simple")
+hi def link informLibAttrib Identifier
+hi def link informLibProp Identifier
+hi def link informLibObj Identifier
+hi def link informLibRoutine Identifier
+hi def link informLibVariable Identifier
+hi def link informLibConst Identifier
+hi def link informLibAction Identifier
+endif
+hi def link informBadDictString informError
+hi def link informBadAccent informError
+hi def link informBadStrUnicode informError
+
let b:current_syntax = "inform"
diff --git a/runtime/syntax/initex.vim b/runtime/syntax/initex.vim
index 8f3462f5cf..564a6e0cca 100644
--- a/runtime/syntax/initex.vim
+++ b/runtime/syntax/initex.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: TeX (core definition)
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: TeX (core definition)
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
@@ -11,7 +11,7 @@ let s:cpo_save = &cpo
set cpo&vim
" This follows the grouping (sort of) found at
-" http://www.tug.org/utilities/plain/cseq.html#top-fam
+" http: //www.tug.org/utilities/plain/cseq.html#top-fam
syn keyword initexTodo TODO FIXME XXX NOTE
diff --git a/runtime/syntax/inittab.vim b/runtime/syntax/inittab.vim
index b7472f9e0f..82bf660105 100644
--- a/runtime/syntax/inittab.vim
+++ b/runtime/syntax/inittab.vim
@@ -6,12 +6,9 @@
" URL: http://physics.muni.cz/~yeti/download/syntax/inittab.vim
" Setup
-if version >= 600
- if exists("b:current_syntax")
- finish
- endif
-else
- syntax clear
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
+ finish
endif
syn case match
@@ -45,31 +42,22 @@ syn match inittabProcessPlus "+" contained nextgroup=inittabProcess,inittabError
syn region inittabProcess start="/" end="$" transparent oneline contained contains=@inittabSh,inittabComment
" Define the default highlighting
-if version >= 508 || !exists("did_inittab_syntax_inits")
- if version < 508
- let did_inittab_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink inittabComment Comment
- HiLink inittabFixme Todo
- HiLink inittabActionName Type
- HiLink inittabError Error
- HiLink inittabId Identifier
- HiLink inittabRunLevels Special
+hi def link inittabComment Comment
+hi def link inittabFixme Todo
+hi def link inittabActionName Type
+hi def link inittabError Error
+hi def link inittabId Identifier
+hi def link inittabRunLevels Special
- HiLink inittabColonProcess inittabColon
- HiLink inittabColonAction inittabColon
- HiLink inittabColonRunLevels inittabColon
- HiLink inittabColon PreProc
+hi def link inittabColonProcess inittabColon
+hi def link inittabColonAction inittabColon
+hi def link inittabColonRunLevels inittabColon
+hi def link inittabColon PreProc
- HiLink inittabShString String
- HiLink inittabShOption Special
- HiLink inittabShCommand Statement
+hi def link inittabShString String
+hi def link inittabShOption Special
+hi def link inittabShCommand Statement
- delcommand HiLink
-endif
let b:current_syntax = "inittab"
diff --git a/runtime/syntax/ipfilter.vim b/runtime/syntax/ipfilter.vim
index db99812852..a7b7df2bac 100644
--- a/runtime/syntax/ipfilter.vim
+++ b/runtime/syntax/ipfilter.vim
@@ -9,11 +9,8 @@
" not correctly identified.
" Please send comments to hendrik@scholz.net
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
diff --git a/runtime/syntax/ishd.vim b/runtime/syntax/ishd.vim
index 1c011f1b92..3c468e361f 100644
--- a/runtime/syntax/ishd.vim
+++ b/runtime/syntax/ishd.vim
@@ -3,11 +3,8 @@
" Maintainer: Robert M. Cortopassi <cortopar@mindspring.com>
" Last Change: 2001 May 09
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -387,35 +384,25 @@ syn cluster ishdPreProcGroup contains=ishdPreCondit,ishdIncluded,ishdInclude,ish
syn region ishdDefine start="^\s*#\s*\(define\|undef\)\>" end="$" contains=ALLBUT,@ishdPreProcGroup
" 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_is_syntax_inits")
- if version < 508
- let did_is_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink ishdNumber Number
- HiLink ishdError Error
- HiLink ishdStatement Statement
- HiLink ishdString String
- HiLink ishdComment Comment
- HiLink ishdTodo Todo
- HiLink ishdFunction Identifier
- HiLink ishdConstant PreProc
- HiLink ishdType Type
- HiLink ishdInclude Include
- HiLink ishdDefine Macro
- HiLink ishdIncluded String
- HiLink ishdPreCondit PreCondit
- HiLink ishdHashIf0Skip ishdHashIf0
- HiLink ishdHashIf0End ishdHashIf0
- HiLink ishdHashIf0 Comment
+hi def link ishdNumber Number
+hi def link ishdError Error
+hi def link ishdStatement Statement
+hi def link ishdString String
+hi def link ishdComment Comment
+hi def link ishdTodo Todo
+hi def link ishdFunction Identifier
+hi def link ishdConstant PreProc
+hi def link ishdType Type
+hi def link ishdInclude Include
+hi def link ishdDefine Macro
+hi def link ishdIncluded String
+hi def link ishdPreCondit PreCondit
+hi def link ishdHashIf0Skip ishdHashIf0
+hi def link ishdHashIf0End ishdHashIf0
+hi def link ishdHashIf0 Comment
- delcommand HiLink
-endif
let b:current_syntax = "ishd"
diff --git a/runtime/syntax/iss.vim b/runtime/syntax/iss.vim
index 26d9150b5a..e58c618b7f 100644
--- a/runtime/syntax/iss.vim
+++ b/runtime/syntax/iss.vim
@@ -9,11 +9,8 @@
" - Pascal scripting syntax is not recognized.
" - Embedded double quotes confuse string matches. e.g. "asfd""asfa"
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -105,44 +102,34 @@ syn keyword issTasksFlags checkedonce dontinheritcheck exclusive restart uncheck
" 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_iss_syntax_inits")
- if version < 508
- let did_iss_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " The default methods for highlighting. Can be overridden later
- HiLink issSection Special
- HiLink issComment Comment
- HiLink issDirective Type
- HiLink issParam Type
- HiLink issFolder Special
- HiLink issString String
- HiLink issURL Include
- HiLink issPreProc PreProc
-
- HiLink issDirsFlags Keyword
- HiLink issFilesCopyMode Keyword
- HiLink issFilesAttribs Keyword
- HiLink issFilesPermissions Keyword
- HiLink issFilesFlags Keyword
- HiLink issIconsFlags Keyword
- HiLink issINIFlags Keyword
- HiLink issRegRootKey Keyword
- HiLink issRegValueType Keyword
- HiLink issRegFlags Keyword
- HiLink issRunFlags Keyword
- HiLink issTypesFlags Keyword
- HiLink issComponentsFlags Keyword
- HiLink issInstallDeleteType Keyword
- HiLink issTasksFlags Keyword
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+" The default methods for highlighting. Can be overridden later
+hi def link issSection Special
+hi def link issComment Comment
+hi def link issDirective Type
+hi def link issParam Type
+hi def link issFolder Special
+hi def link issString String
+hi def link issURL Include
+hi def link issPreProc PreProc
+
+hi def link issDirsFlags Keyword
+hi def link issFilesCopyMode Keyword
+hi def link issFilesAttribs Keyword
+hi def link issFilesPermissions Keyword
+hi def link issFilesFlags Keyword
+hi def link issIconsFlags Keyword
+hi def link issINIFlags Keyword
+hi def link issRegRootKey Keyword
+hi def link issRegValueType Keyword
+hi def link issRegFlags Keyword
+hi def link issRunFlags Keyword
+hi def link issTypesFlags Keyword
+hi def link issComponentsFlags Keyword
+hi def link issInstallDeleteType Keyword
+hi def link issTasksFlags Keyword
+
let b:current_syntax = "iss"
diff --git a/runtime/syntax/ist.vim b/runtime/syntax/ist.vim
index 131d833cbc..e34edac272 100644
--- a/runtime/syntax/ist.vim
+++ b/runtime/syntax/ist.vim
@@ -3,22 +3,15 @@
" Maintainer: Peter Meszaros <pmeszaros@effice.hu>
" Last Change: 2012 Jan 08 by Thilo Six
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
-if version >= 600
- setlocal iskeyword=$,@,48-57,_
-else
- set iskeyword=$,@,48-57,_
-endif
+setlocal iskeyword=$,@,48-57,_
syn case ignore
syn keyword IstInpSpec actual arg_close arg_open encap escape
@@ -45,28 +38,18 @@ syn match IstSpecial "\\\\\|{\|}\|#\|\\n" contained
syn match IstTodo "DEBUG\|TODO" contained
" 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_dummy_syn_inits")
- if version < 508
- let did_dummy_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink IstInpSpec Type
- HiLink IstOutSpec Identifier
- HiLink IstString String
- HiLink IstNumber Number
- HiLink IstComment Comment
- HiLink IstTodo Todo
- HiLink IstSpecial Special
- HiLink IstDoubleQuote Label
- HiLink IstCharacter Label
+" Only when an item doesn't have highlighting yet
+
+hi def link IstInpSpec Type
+hi def link IstOutSpec Identifier
+hi def link IstString String
+hi def link IstNumber Number
+hi def link IstComment Comment
+hi def link IstTodo Todo
+hi def link IstSpecial Special
+hi def link IstDoubleQuote Label
+hi def link IstCharacter Label
- delcommand HiLink
-endif
let b:current_syntax = "ist"
diff --git a/runtime/syntax/jal.vim b/runtime/syntax/jal.vim
index d0ba672851..460bc01752 100644
--- a/runtime/syntax/jal.vim
+++ b/runtime/syntax/jal.vim
@@ -9,11 +9,8 @@
"
" TODO test.
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -171,77 +168,67 @@ endif
" 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_jal_syn_inits")
-if version < 508
- let did_jal_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
-else
- command -nargs=+ HiLink hi def link <args>
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link jalAcces jalStatement
+hi def link jalBoolean Boolean
+hi def link jalBit Boolean
+hi def link jalComment Comment
+hi def link jalConditional Conditional
+hi def link jalConstant Constant
+hi def link jalDelimiter Identifier
+hi def link jalDirective PreProc
+hi def link jalException Exception
+hi def link jalFloat Float
+hi def link jalFunction Function
+hi def link jalPsudoVarsKey Function
+hi def link jalLabel Label
+hi def link jalMatrixDelimiter Identifier
+hi def link jalModifier Type
+hi def link jalNumber Number
+hi def link jalBinNumber Number
+hi def link jalHexNumber Number
+hi def link jalOperator Operator
+hi def link jalPredefined Constant
+hi def link jalPreProc PreProc
+hi def link jalRepeat Repeat
+hi def link jalStatement Statement
+hi def link jalString String
+hi def link jalStringEscape Special
+hi def link jalStringEscapeGPC Special
+hi def link jalStringError Error
+hi def link jalStruct jalStatement
+hi def link jalSymbolOperator jalOperator
+hi def link jalTodo Todo
+hi def link jalType Type
+hi def link jalUnclassified Statement
+hi def link jalAsm Assembler
+hi def link jalError Error
+hi def link jalAsmKey Statement
+hi def link jalPIC Statement
+
+hi def link jalShowTab Error
+
+hi def link picTodo Todo
+hi def link picComment Comment
+hi def link picDirective Statement
+hi def link picLabel Label
+hi def link picString String
+
+hi def link picOpcode Keyword
+hi def link picRegister Structure
+hi def link picRegisterPart Special
+hi def link picPinDir SPecial
+hi def link picPortDir SPecial
+
+hi def link picASCII String
+hi def link picBinary Number
+hi def link picDecimal Number
+hi def link picHexadecimal Number
+hi def link picOctal Number
+
+hi def link picIdentifier Identifier
- HiLink jalAcces jalStatement
- HiLink jalBoolean Boolean
- HiLink jalBit Boolean
- HiLink jalComment Comment
- HiLink jalConditional Conditional
- HiLink jalConstant Constant
- HiLink jalDelimiter Identifier
- HiLink jalDirective PreProc
- HiLink jalException Exception
- HiLink jalFloat Float
- HiLink jalFunction Function
- HiLink jalPsudoVarsKey Function
- HiLink jalLabel Label
- HiLink jalMatrixDelimiter Identifier
- HiLink jalModifier Type
- HiLink jalNumber Number
- HiLink jalBinNumber Number
- HiLink jalHexNumber Number
- HiLink jalOperator Operator
- HiLink jalPredefined Constant
- HiLink jalPreProc PreProc
- HiLink jalRepeat Repeat
- HiLink jalStatement Statement
- HiLink jalString String
- HiLink jalStringEscape Special
- HiLink jalStringEscapeGPC Special
- HiLink jalStringError Error
- HiLink jalStruct jalStatement
- HiLink jalSymbolOperator jalOperator
- HiLink jalTodo Todo
- HiLink jalType Type
- HiLink jalUnclassified Statement
- HiLink jalAsm Assembler
- HiLink jalError Error
- HiLink jalAsmKey Statement
- HiLink jalPIC Statement
-
- HiLink jalShowTab Error
-
- HiLink picTodo Todo
- HiLink picComment Comment
- HiLink picDirective Statement
- HiLink picLabel Label
- HiLink picString String
-
- HiLink picOpcode Keyword
- HiLink picRegister Structure
- HiLink picRegisterPart Special
- HiLink picPinDir SPecial
- HiLink picPortDir SPecial
-
- HiLink picASCII String
- HiLink picBinary Number
- HiLink picDecimal Number
- HiLink picHexadecimal Number
- HiLink picOctal Number
-
- HiLink picIdentifier Identifier
-
- delcommand HiLink
-endif
let b:current_syntax = "jal"
diff --git a/runtime/syntax/jam.vim b/runtime/syntax/jam.vim
index cbd99bb9ce..fc7f49d1f0 100644
--- a/runtime/syntax/jam.vim
+++ b/runtime/syntax/jam.vim
@@ -3,22 +3,15 @@
" Maintainer: Ralf Lemke (ralflemk@t-online.de)
" Last change: 2012 Jan 08 by Thilo Six
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
-if version >= 600
- setlocal iskeyword=@,48-57,_,-
-else
- set iskeyword=@,48-57,_,-
-endif
+setlocal iskeyword=@,48-57,_,-
" A bunch of useful jam keywords
syn keyword jamStatement break call dbms flush global include msg parms proc public receive return send unload vars
@@ -167,88 +160,78 @@ syntax match jamCommentError "\*/"
syntax match jamOperator3Error "*/"
" 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_jam_syn_inits")
- if version < 508
- let did_jam_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink jamCommentL jamComment
- HiLink jamCommentL2 jamComment
- HiLink jamOperator3Error jamError
- HiLink jamConditional Conditional
- HiLink jamRepeat Repeat
- HiLink jamCharacter Character
- HiLink jamSpecialCharacter jamSpecial
- HiLink jamNumber Number
- HiLink jamParenError jamError
- HiLink jamErrInParen jamError
- HiLink jamErrInBracket jamError
- HiLink jamCommentError jamError
- HiLink jamSpaceError jamError
- HiLink jamSpecialError jamError
- HiLink jamOperator1 jamOperator
- HiLink jamOperator2 jamOperator
- HiLink jamOperator3 jamOperator
- HiLink jamOperator4 jamOperator
- HiLink jamOperator5 jamOperator
- HiLink jamOperator6 jamOperator
- HiLink jamOperator7 jamOperator
- HiLink jamOperator8 jamOperator
- HiLink jamOperator9 jamOperator
- HiLink jamOperator10 jamOperator
- HiLink jamOperator11 jamOperator
- HiLink jamOperator12 jamOperator
- HiLink jamOperator13 jamOperator
- HiLink jamOperator14 jamOperator
- HiLink jamError Error
- HiLink jamStatement Statement
- HiLink jamPreCondit PreCondit
- HiLink jamCommentError jamError
- HiLink jamCommentString jamString
- HiLink jamComment2String jamString
- HiLink jamCommentSkip jamComment
- HiLink jamString String
- HiLink jamComment Comment
- HiLink jamSpecial SpecialChar
- HiLink jamTodo Todo
- HiLink jamCppSkip jamCppOut
- HiLink jamCppOut2 jamCppOut
- HiLink jamCppOut Comment
- HiLink jamDBState1 Identifier
- HiLink jamDBState2 Identifier
- HiLink jamSQLState1 jamSQL
- HiLink jamSQLState2 jamSQL
- HiLink jamLibFunc1 jamLibFunc
- HiLink jamLibFunc2 jamLibFunc
- HiLink jamLibFunc3 jamLibFunc
- HiLink jamLibFunc4 jamLibFunc
- HiLink jamLibFunc5 jamLibFunc
- HiLink jamLibFunc6 jamLibFunc
- HiLink jamLibFunc7 jamLibFunc
- HiLink jamLibFunc8 jamLibFunc
- HiLink jamLibFunc9 jamLibFunc
- HiLink jamVariable1 jamVariablen
- HiLink jamVariable2 jamVariablen
- HiLink jamVariable3 jamVariablen
- HiLink jamVariable4 jamVariablen
- HiLink jamVariable5 jamVariablen
- HiLink jamVariable6 jamVariablen
- HiLink jamVariable7 jamVariablen
- HiLink jamVariable8 jamVariablen
- HiLink jamVariable9 jamVariablen
- HiLink jamVariable10 jamVariablen
- HiLink jamVariablen Constant
- HiLink jamSQL Type
- HiLink jamLibFunc PreProc
- HiLink jamOperator Special
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link jamCommentL jamComment
+hi def link jamCommentL2 jamComment
+hi def link jamOperator3Error jamError
+hi def link jamConditional Conditional
+hi def link jamRepeat Repeat
+hi def link jamCharacter Character
+hi def link jamSpecialCharacter jamSpecial
+hi def link jamNumber Number
+hi def link jamParenError jamError
+hi def link jamErrInParen jamError
+hi def link jamErrInBracket jamError
+hi def link jamCommentError jamError
+hi def link jamSpaceError jamError
+hi def link jamSpecialError jamError
+hi def link jamOperator1 jamOperator
+hi def link jamOperator2 jamOperator
+hi def link jamOperator3 jamOperator
+hi def link jamOperator4 jamOperator
+hi def link jamOperator5 jamOperator
+hi def link jamOperator6 jamOperator
+hi def link jamOperator7 jamOperator
+hi def link jamOperator8 jamOperator
+hi def link jamOperator9 jamOperator
+hi def link jamOperator10 jamOperator
+hi def link jamOperator11 jamOperator
+hi def link jamOperator12 jamOperator
+hi def link jamOperator13 jamOperator
+hi def link jamOperator14 jamOperator
+hi def link jamError Error
+hi def link jamStatement Statement
+hi def link jamPreCondit PreCondit
+hi def link jamCommentError jamError
+hi def link jamCommentString jamString
+hi def link jamComment2String jamString
+hi def link jamCommentSkip jamComment
+hi def link jamString String
+hi def link jamComment Comment
+hi def link jamSpecial SpecialChar
+hi def link jamTodo Todo
+hi def link jamCppSkip jamCppOut
+hi def link jamCppOut2 jamCppOut
+hi def link jamCppOut Comment
+hi def link jamDBState1 Identifier
+hi def link jamDBState2 Identifier
+hi def link jamSQLState1 jamSQL
+hi def link jamSQLState2 jamSQL
+hi def link jamLibFunc1 jamLibFunc
+hi def link jamLibFunc2 jamLibFunc
+hi def link jamLibFunc3 jamLibFunc
+hi def link jamLibFunc4 jamLibFunc
+hi def link jamLibFunc5 jamLibFunc
+hi def link jamLibFunc6 jamLibFunc
+hi def link jamLibFunc7 jamLibFunc
+hi def link jamLibFunc8 jamLibFunc
+hi def link jamLibFunc9 jamLibFunc
+hi def link jamVariable1 jamVariablen
+hi def link jamVariable2 jamVariablen
+hi def link jamVariable3 jamVariablen
+hi def link jamVariable4 jamVariablen
+hi def link jamVariable5 jamVariablen
+hi def link jamVariable6 jamVariablen
+hi def link jamVariable7 jamVariablen
+hi def link jamVariable8 jamVariablen
+hi def link jamVariable9 jamVariablen
+hi def link jamVariable10 jamVariablen
+hi def link jamVariablen Constant
+hi def link jamSQL Type
+hi def link jamLibFunc PreProc
+hi def link jamOperator Special
+
let b:current_syntax = "jam"
diff --git a/runtime/syntax/jargon.vim b/runtime/syntax/jargon.vim
index 25a88bc981..415f2bc972 100644
--- a/runtime/syntax/jargon.vim
+++ b/runtime/syntax/jargon.vim
@@ -3,11 +3,8 @@
" Maintainer: <rms@poczta.onet.pl>
" Last Change: 2001 May 26
"
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -17,20 +14,10 @@ syn match jargonUrl +\(http\|ftp\)://[^\t )"]*+
syn match jargonMark /{[^}]*}/
" 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_jargon_syntax_inits")
- if version < 508
- let did_jargon_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink jargonChaptTitle Title
- HiLink jargonEmailAddr Comment
- HiLink jargonUrl Comment
- HiLink jargonMark Label
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+hi def link jargonChaptTitle Title
+hi def link jargonEmailAddr Comment
+hi def link jargonUrl Comment
+hi def link jargonMark Label
let b:current_syntax = "jargon"
diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim
index e113a904c3..89320597f1 100644
--- a/runtime/syntax/java.vim
+++ b/runtime/syntax/java.vim
@@ -6,11 +6,9 @@
" Please check :help java.vim for comments on some of the options available.
-" Quit when a syntax file was already loaded
+" quit when a syntax file was already loaded
if !exists("main_syntax")
- if version < 600
- syntax clear
- elseif exists("b:current_syntax")
+ if exists("b:current_syntax")
finish
endif
" we define it here so that included files can test for it
@@ -21,13 +19,6 @@ endif
let s:cpo_save = &cpo
set cpo&vim
-" don't use standard HiLink, it will not work with included syntax files
-if version < 508
- command! -nargs=+ JavaHiLink hi link <args>
-else
- command! -nargs=+ JavaHiLink hi def link <args>
-endif
-
" some characters that cannot be in a java program (outside a string)
syn match javaError "[\\@`]"
syn match javaError "<<<\|\.\.\|=>\|||=\|&&=\|\*\/"
@@ -36,7 +27,7 @@ syn match javaOK "\.\.\."
" use separate name so that it can be deleted in javacc.vim
syn match javaError2 "#\|=<"
-JavaHiLink javaError2 javaError
+hi def link javaError2 javaError
@@ -79,32 +70,32 @@ if exists("java_highlight_all") || exists("java_highlight_java") || exists("ja
syn keyword javaR_JavaLang NegativeArraySizeException ArrayStoreException IllegalStateException RuntimeException IndexOutOfBoundsException UnsupportedOperationException ArrayIndexOutOfBoundsException ArithmeticException ClassCastException EnumConstantNotPresentException StringIndexOutOfBoundsException IllegalArgumentException IllegalMonitorStateException IllegalThreadStateException NumberFormatException NullPointerException TypeNotPresentException SecurityException
syn cluster javaTop add=javaR_JavaLang
syn cluster javaClasses add=javaR_JavaLang
- JavaHiLink javaR_JavaLang javaR_Java
+ hi def link javaR_JavaLang javaR_Java
syn keyword javaC_JavaLang Process RuntimePermission StringKeySet CharacterData01 Class ThreadLocal ThreadLocalMap CharacterData0E Package Character StringCoding Long ProcessImpl ProcessEnvironment Short AssertionStatusDirectives 1PackageInfoProxy UnicodeBlock InheritableThreadLocal AbstractStringBuilder StringEnvironment ClassLoader ConditionalSpecialCasing CharacterDataPrivateUse StringBuffer StringDecoder Entry StringEntry WrappedHook StringBuilder StrictMath State ThreadGroup Runtime CharacterData02 MethodArray Object CharacterDataUndefined Integer Gate Boolean Enum Variable Subset StringEncoder Void Terminator CharsetSD IntegerCache CharacterCache Byte CharsetSE Thread SystemClassLoaderAction CharacterDataLatin1 StringValues StackTraceElement Shutdown ShortCache String ConverterSD ByteCache Lock EnclosingMethodInfo Math Float Value Double SecurityManager LongCache ProcessBuilder StringEntrySet Compiler Number UNIXProcess ConverterSE ExternalData CaseInsensitiveComparator CharacterData00 NativeLibrary
syn cluster javaTop add=javaC_JavaLang
syn cluster javaClasses add=javaC_JavaLang
- JavaHiLink javaC_JavaLang javaC_Java
+ hi def link javaC_JavaLang javaC_Java
syn keyword javaE_JavaLang IncompatibleClassChangeError InternalError UnknownError ClassCircularityError AssertionError ThreadDeath IllegalAccessError NoClassDefFoundError ClassFormatError UnsupportedClassVersionError NoSuchFieldError VerifyError ExceptionInInitializerError InstantiationError LinkageError NoSuchMethodError Error UnsatisfiedLinkError StackOverflowError AbstractMethodError VirtualMachineError OutOfMemoryError
syn cluster javaTop add=javaE_JavaLang
syn cluster javaClasses add=javaE_JavaLang
- JavaHiLink javaE_JavaLang javaE_Java
+ hi def link javaE_JavaLang javaE_Java
syn keyword javaX_JavaLang CloneNotSupportedException Exception NoSuchMethodException IllegalAccessException NoSuchFieldException Throwable InterruptedException ClassNotFoundException InstantiationException
syn cluster javaTop add=javaX_JavaLang
syn cluster javaClasses add=javaX_JavaLang
- JavaHiLink javaX_JavaLang javaX_Java
+ hi def link javaX_JavaLang javaX_Java
- JavaHiLink javaR_Java javaR_
- JavaHiLink javaC_Java javaC_
- JavaHiLink javaE_Java javaE_
- JavaHiLink javaX_Java javaX_
- JavaHiLink javaX_ javaExceptions
- JavaHiLink javaR_ javaExceptions
- JavaHiLink javaE_ javaExceptions
- JavaHiLink javaC_ javaConstant
+ hi def link javaR_Java javaR_
+ hi def link javaC_Java javaC_
+ hi def link javaE_Java javaE_
+ hi def link javaX_Java javaX_
+ hi def link javaX_ javaExceptions
+ hi def link javaR_ javaExceptions
+ hi def link javaE_ javaExceptions
+ hi def link javaC_ javaConstant
syn keyword javaLangObject clone equals finalize getClass hashCode
syn keyword javaLangObject notify notifyAll toString wait
- JavaHiLink javaLangObject javaConstant
+ hi def link javaLangObject javaConstant
syn cluster javaTop add=javaLangObject
endif
@@ -147,9 +138,9 @@ syn region javaComment start="/\*" end="\*/" contains=@javaCommentSpecial,ja
syn match javaCommentStar contained "^\s*\*[^/]"me=e-1
syn match javaCommentStar contained "^\s*\*$"
syn match javaLineComment "//.*" contains=@javaCommentSpecial2,javaTodo,@Spell
-JavaHiLink javaCommentString javaString
-JavaHiLink javaComment2String javaString
-JavaHiLink javaCommentCharacter javaCharacter
+hi def link javaCommentString javaString
+hi def link javaComment2String javaString
+hi def link javaCommentCharacter javaCharacter
syn cluster javaTop add=javaComment,javaLineComment
@@ -242,28 +233,26 @@ if exists("java_highlight_debug")
syn cluster javaTop add=javaDebug
- if version >= 508 || !exists("did_c_syn_inits")
- JavaHiLink javaDebug Debug
- JavaHiLink javaDebugString DebugString
- JavaHiLink javaDebugStringError javaError
- JavaHiLink javaDebugType DebugType
- JavaHiLink javaDebugBoolean DebugBoolean
- JavaHiLink javaDebugNumber Debug
- JavaHiLink javaDebugSpecial DebugSpecial
- JavaHiLink javaDebugSpecialCharacter DebugSpecial
- JavaHiLink javaDebugCharacter DebugString
- JavaHiLink javaDebugParen Debug
-
- JavaHiLink DebugString String
- JavaHiLink DebugSpecial Special
- JavaHiLink DebugBoolean Boolean
- JavaHiLink DebugType Type
- endif
+ hi def link javaDebug Debug
+ hi def link javaDebugString DebugString
+ hi def link javaDebugStringError javaError
+ hi def link javaDebugType DebugType
+ hi def link javaDebugBoolean DebugBoolean
+ hi def link javaDebugNumber Debug
+ hi def link javaDebugSpecial DebugSpecial
+ hi def link javaDebugSpecialCharacter DebugSpecial
+ hi def link javaDebugCharacter DebugString
+ hi def link javaDebugParen Debug
+
+ hi def link DebugString String
+ hi def link DebugSpecial Special
+ hi def link DebugBoolean Boolean
+ hi def link DebugType Type
endif
if exists("java_mark_braces_in_parens_as_errors")
syn match javaInParen contained "[{}]"
- JavaHiLink javaInParen javaError
+ hi def link javaInParen javaError
syn cluster javaTop add=javaInParen
endif
@@ -278,7 +267,7 @@ syn region javaParenT1 transparent matchgroup=javaParen1 start="\[" end="\]" co
syn region javaParenT2 transparent matchgroup=javaParen2 start="\[" end="\]" contains=@javaTop,javaParenT contained
syn match javaParenError "\]"
-JavaHiLink javaParenError javaError
+hi def link javaParenError javaError
if exists("java_highlight_functions")
syn match javaLambdaDef "([a-zA-Z0-9_<>\[\], \t]*)\s*->"
@@ -291,61 +280,54 @@ endif
exec "syn sync ccomment javaComment minlines=" . java_minlines
" The default highlighting.
-if version >= 508 || !exists("did_java_syn_inits")
- if version < 508
- let did_java_syn_inits = 1
- endif
- JavaHiLink javaLambdaDef Function
- JavaHiLink javaFuncDef Function
- JavaHiLink javaVarArg Function
- JavaHiLink javaBraces Function
- JavaHiLink javaBranch Conditional
- JavaHiLink javaUserLabelRef javaUserLabel
- JavaHiLink javaLabel Label
- JavaHiLink javaUserLabel Label
- JavaHiLink javaConditional Conditional
- JavaHiLink javaRepeat Repeat
- JavaHiLink javaExceptions Exception
- JavaHiLink javaAssert Statement
- JavaHiLink javaStorageClass StorageClass
- JavaHiLink javaMethodDecl javaStorageClass
- JavaHiLink javaClassDecl javaStorageClass
- JavaHiLink javaScopeDecl javaStorageClass
- JavaHiLink javaBoolean Boolean
- JavaHiLink javaSpecial Special
- JavaHiLink javaSpecialError Error
- JavaHiLink javaSpecialCharError Error
- JavaHiLink javaString String
- JavaHiLink javaCharacter Character
- JavaHiLink javaSpecialChar SpecialChar
- JavaHiLink javaNumber Number
- JavaHiLink javaError Error
- JavaHiLink javaStringError Error
- JavaHiLink javaStatement Statement
- JavaHiLink javaOperator Operator
- JavaHiLink javaComment Comment
- JavaHiLink javaDocComment Comment
- JavaHiLink javaLineComment Comment
- JavaHiLink javaConstant Constant
- JavaHiLink javaTypedef Typedef
- JavaHiLink javaTodo Todo
- JavaHiLink javaAnnotation PreProc
-
- JavaHiLink javaCommentTitle SpecialComment
- JavaHiLink javaDocTags Special
- JavaHiLink javaDocParam Function
- JavaHiLink javaDocSeeTagParam Function
- JavaHiLink javaCommentStar javaComment
-
- JavaHiLink javaType Type
- JavaHiLink javaExternal Include
-
- JavaHiLink htmlComment Special
- JavaHiLink htmlCommentPart Special
- JavaHiLink javaSpaceError Error
-endif
-
-delcommand JavaHiLink
+hi def link javaLambdaDef Function
+hi def link javaFuncDef Function
+hi def link javaVarArg Function
+hi def link javaBraces Function
+hi def link javaBranch Conditional
+hi def link javaUserLabelRef javaUserLabel
+hi def link javaLabel Label
+hi def link javaUserLabel Label
+hi def link javaConditional Conditional
+hi def link javaRepeat Repeat
+hi def link javaExceptions Exception
+hi def link javaAssert Statement
+hi def link javaStorageClass StorageClass
+hi def link javaMethodDecl javaStorageClass
+hi def link javaClassDecl javaStorageClass
+hi def link javaScopeDecl javaStorageClass
+hi def link javaBoolean Boolean
+hi def link javaSpecial Special
+hi def link javaSpecialError Error
+hi def link javaSpecialCharError Error
+hi def link javaString String
+hi def link javaCharacter Character
+hi def link javaSpecialChar SpecialChar
+hi def link javaNumber Number
+hi def link javaError Error
+hi def link javaStringError Error
+hi def link javaStatement Statement
+hi def link javaOperator Operator
+hi def link javaComment Comment
+hi def link javaDocComment Comment
+hi def link javaLineComment Comment
+hi def link javaConstant Constant
+hi def link javaTypedef Typedef
+hi def link javaTodo Todo
+hi def link javaAnnotation PreProc
+
+hi def link javaCommentTitle SpecialComment
+hi def link javaDocTags Special
+hi def link javaDocParam Function
+hi def link javaDocSeeTagParam Function
+hi def link javaCommentStar javaComment
+
+hi def link javaType Type
+hi def link javaExternal Include
+
+hi def link htmlComment Special
+hi def link htmlCommentPart Special
+hi def link javaSpaceError Error
let b:current_syntax = "java"
diff --git a/runtime/syntax/javacc.vim b/runtime/syntax/javacc.vim
index 5458de754e..a80572d510 100644
--- a/runtime/syntax/javacc.vim
+++ b/runtime/syntax/javacc.vim
@@ -7,11 +7,8 @@
" Uses java.vim, and adds a few special things for JavaCC Parser files.
" Those files usually have the extension *.jj
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -19,11 +16,7 @@ let s:cpo_save = &cpo
set cpo&vim
" source the java.vim file
-if version < 600
- source <sfile>:p:h/java.vim
-else
- runtime! syntax/java.vim
-endif
+runtime! syntax/java.vim
unlet b:current_syntax
"remove catching errors caused by wrong parenthesis (does not work in javacc
@@ -58,22 +51,12 @@ syn keyword javaccActionToken TOKEN SKIP MORE SPECIAL_TOKEN
syn keyword javaccError DEBUG IGNORE_IN_BNF
" 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_css_syn_inits")
- if version < 508
- let did_css_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink javaccSpecToken Statement
- HiLink javaccActionToken Type
- HiLink javaccPackages javaScopeDecl
- HiLink javaccToken String
- HiLink javaccError Error
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+hi def link javaccSpecToken Statement
+hi def link javaccActionToken Type
+hi def link javaccPackages javaScopeDecl
+hi def link javaccToken String
+hi def link javaccError Error
let b:current_syntax = "javacc"
let &cpo = s:cpo_save
diff --git a/runtime/syntax/javascript.vim b/runtime/syntax/javascript.vim
index 1b20f987d9..9589b1938f 100644
--- a/runtime/syntax/javascript.vim
+++ b/runtime/syntax/javascript.vim
@@ -10,15 +10,12 @@
" Last Change: 2012 Oct 05
" 2013 Jun 12: adjusted javaScriptRegexpString (Kevin Locke)
-" For version 5.x: Clear all syntax items
-" For version 6.x: Quit when a syntax file was already loaded
" tuning parameters:
" unlet javaScript_fold
if !exists("main_syntax")
- if version < 600
- syntax clear
- elseif exists("b:current_syntax")
+ " quit when a syntax file was already loaded
+ if exists("b:current_syntax")
finish
endif
let main_syntax = 'javascript'
@@ -29,11 +26,6 @@ endif
let s:cpo_save = &cpo
set cpo&vim
-" Drop fold if it set but vim doesn't support it.
-if version < 600 && exists("javaScript_fold")
- unlet javaScript_fold
-endif
-
syn keyword javaScriptCommentTodo TODO FIXME XXX TBD contained
syn match javaScriptLineComment "\/\/.*" contains=@Spell,javaScriptCommentTodo
@@ -87,51 +79,41 @@ if main_syntax == "javascript"
endif
" 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_javascript_syn_inits")
- if version < 508
- let did_javascript_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink javaScriptComment Comment
- HiLink javaScriptLineComment Comment
- HiLink javaScriptCommentTodo Todo
- HiLink javaScriptSpecial Special
- HiLink javaScriptStringS String
- HiLink javaScriptStringD String
- HiLink javaScriptCharacter Character
- HiLink javaScriptSpecialCharacter javaScriptSpecial
- HiLink javaScriptNumber javaScriptValue
- HiLink javaScriptConditional Conditional
- HiLink javaScriptRepeat Repeat
- HiLink javaScriptBranch Conditional
- HiLink javaScriptOperator Operator
- HiLink javaScriptType Type
- HiLink javaScriptStatement Statement
- HiLink javaScriptFunction Function
- HiLink javaScriptBraces Function
- HiLink javaScriptError Error
- HiLink javaScrParenError javaScriptError
- HiLink javaScriptNull Keyword
- HiLink javaScriptBoolean Boolean
- HiLink javaScriptRegexpString String
-
- HiLink javaScriptIdentifier Identifier
- HiLink javaScriptLabel Label
- HiLink javaScriptException Exception
- HiLink javaScriptMessage Keyword
- HiLink javaScriptGlobal Keyword
- HiLink javaScriptMember Keyword
- HiLink javaScriptDeprecated Exception
- HiLink javaScriptReserved Keyword
- HiLink javaScriptDebug Debug
- HiLink javaScriptConstant Label
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+hi def link javaScriptComment Comment
+hi def link javaScriptLineComment Comment
+hi def link javaScriptCommentTodo Todo
+hi def link javaScriptSpecial Special
+hi def link javaScriptStringS String
+hi def link javaScriptStringD String
+hi def link javaScriptCharacter Character
+hi def link javaScriptSpecialCharacter javaScriptSpecial
+hi def link javaScriptNumber javaScriptValue
+hi def link javaScriptConditional Conditional
+hi def link javaScriptRepeat Repeat
+hi def link javaScriptBranch Conditional
+hi def link javaScriptOperator Operator
+hi def link javaScriptType Type
+hi def link javaScriptStatement Statement
+hi def link javaScriptFunction Function
+hi def link javaScriptBraces Function
+hi def link javaScriptError Error
+hi def link javaScrParenError javaScriptError
+hi def link javaScriptNull Keyword
+hi def link javaScriptBoolean Boolean
+hi def link javaScriptRegexpString String
+
+hi def link javaScriptIdentifier Identifier
+hi def link javaScriptLabel Label
+hi def link javaScriptException Exception
+hi def link javaScriptMessage Keyword
+hi def link javaScriptGlobal Keyword
+hi def link javaScriptMember Keyword
+hi def link javaScriptDeprecated Exception
+hi def link javaScriptReserved Keyword
+hi def link javaScriptDebug Debug
+hi def link javaScriptConstant Label
+
let b:current_syntax = "javascript"
if main_syntax == 'javascript'
diff --git a/runtime/syntax/jess.vim b/runtime/syntax/jess.vim
index 243bab351e..67d3715a30 100644
--- a/runtime/syntax/jess.vim
+++ b/runtime/syntax/jess.vim
@@ -4,19 +4,12 @@
" Last change: September 14, 2000
" Based on lisp.vim by : Dr. Charles E. Campbell, Jr.
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
-if version < 600
- set iskeyword=42,43,45,47-58,60-62,64-90,97-122,_
-else
- setlocal iskeyword=42,43,45,47-58,60-62,64-90,97-122,_
-endif
+setlocal iskeyword=42,43,45,47-58,60-62,64-90,97-122,_
" Lists
syn match jessSymbol ![^()'`,"; \t]\+! contained
@@ -125,36 +118,26 @@ syn match jessComment ";.*$"
syn sync lines=100
" 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_jess_syntax_inits")
- if version < 508
- let did_jess_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink jessAtomNmbr jessNumber
- HiLink jessAtomMark jessMark
-
- HiLink jessAtom Identifier
- HiLink jessAtomBarSymbol Special
- HiLink jessBarSymbol Special
- HiLink jessComment Comment
- HiLink jessConcat Statement
- HiLink jessDeclaration Statement
- HiLink jessFunc Statement
- HiLink jessKey Type
- HiLink jessMark Delimiter
- HiLink jessNumber Number
- HiLink jessParenError Error
- HiLink jessSpecial Type
- HiLink jessString String
- HiLink jessVar Identifier
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link jessAtomNmbr jessNumber
+hi def link jessAtomMark jessMark
+
+hi def link jessAtom Identifier
+hi def link jessAtomBarSymbol Special
+hi def link jessBarSymbol Special
+hi def link jessComment Comment
+hi def link jessConcat Statement
+hi def link jessDeclaration Statement
+hi def link jessFunc Statement
+hi def link jessKey Type
+hi def link jessMark Delimiter
+hi def link jessNumber Number
+hi def link jessParenError Error
+hi def link jessSpecial Type
+hi def link jessString String
+hi def link jessVar Identifier
+
let b:current_syntax = "jess"
diff --git a/runtime/syntax/jgraph.vim b/runtime/syntax/jgraph.vim
index 7ecd5afaec..a29a21a73b 100644
--- a/runtime/syntax/jgraph.vim
+++ b/runtime/syntax/jgraph.vim
@@ -5,11 +5,8 @@
" this syntax file is not yet complete
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -36,23 +33,13 @@ syn match jgraphNumber "\-\=\.\d\+\>"
" 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_jgraph_syn_inits")
- if version < 508
- let did_jgraph_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink jgraphComment Comment
- HiLink jgraphCmd Identifier
- HiLink jgraphType Type
- HiLink jgraphNumber Number
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link jgraphComment Comment
+hi def link jgraphCmd Identifier
+hi def link jgraphType Type
+hi def link jgraphNumber Number
+
let b:current_syntax = "jgraph"
diff --git a/runtime/syntax/jproperties.vim b/runtime/syntax/jproperties.vim
index 9343bd292b..628c03097f 100644
--- a/runtime/syntax/jproperties.vim
+++ b/runtime/syntax/jproperties.vim
@@ -43,11 +43,8 @@ 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -120,28 +117,18 @@ syn match jpropertiesComment "^\s*[#!].*$" contains=jpropertiesTODO
syn keyword jpropertiesTodo TODO FIXME XXX contained
" 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_jproperties_syntax_inits")
- if version < 508
- let did_jproperties_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink jpropertiesComment Comment
- HiLink jpropertiesTodo Todo
- HiLink jpropertiesIdentifier Identifier
- HiLink jpropertiesString String
- HiLink jpropertiesExtendString String
- HiLink jpropertiesCharacter Character
- HiLink jpropertiesSpecial Special
- HiLink jpropertiesSpecialChar SpecialChar
- HiLink jpropertiesError Error
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link jpropertiesComment Comment
+hi def link jpropertiesTodo Todo
+hi def link jpropertiesIdentifier Identifier
+hi def link jpropertiesString String
+hi def link jpropertiesExtendString String
+hi def link jpropertiesCharacter Character
+hi def link jpropertiesSpecial Special
+hi def link jpropertiesSpecialChar SpecialChar
+hi def link jpropertiesError Error
+
let b:current_syntax = "jproperties"
diff --git a/runtime/syntax/json.vim b/runtime/syntax/json.vim
index 1fdfea2d09..d80af84312 100644
--- a/runtime/syntax/json.vim
+++ b/runtime/syntax/json.vim
@@ -5,9 +5,8 @@
" Version: 0.12
if !exists("main_syntax")
- if version < 600
- syntax clear
- elseif exists("b:current_syntax")
+ " quit when a syntax file was already loaded
+ if exists("b:current_syntax")
finish
endif
let main_syntax = 'json'
@@ -93,39 +92,29 @@ syn region jsonFold matchgroup=jsonBraces start="{" end=/}\(\_s\+\ze\("\|{\)\)\
syn region jsonFold matchgroup=jsonBraces start="\[" end=/]\(\_s\+\ze"\)\@!/ transparent fold
" 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_json_syn_inits")
- if version < 508
- let did_json_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink jsonPadding Operator
- HiLink jsonString String
- HiLink jsonTest Label
- HiLink jsonEscape Special
- HiLink jsonNumber Number
- HiLink jsonBraces Delimiter
- HiLink jsonNull Function
- HiLink jsonBoolean Boolean
- HiLink jsonKeyword Label
-
- if (!exists("g:vim_json_warnings") || g:vim_json_warnings==1)
- HiLink jsonNumError Error
- HiLink jsonCommentError Error
- HiLink jsonSemicolonError Error
- HiLink jsonTrailingCommaError Error
- HiLink jsonMissingCommaError Error
- HiLink jsonStringSQError Error
- HiLink jsonNoQuotesError Error
- HiLink jsonTripleQuotesError Error
- endif
- HiLink jsonQuote Quote
- HiLink jsonNoise Noise
- delcommand HiLink
+" Only when an item doesn't have highlighting yet
+hi def link jsonPadding Operator
+hi def link jsonString String
+hi def link jsonTest Label
+hi def link jsonEscape Special
+hi def link jsonNumber Number
+hi def link jsonBraces Delimiter
+hi def link jsonNull Function
+hi def link jsonBoolean Boolean
+hi def link jsonKeyword Label
+
+if (!exists("g:vim_json_warnings") || g:vim_json_warnings==1)
+hi def link jsonNumError Error
+hi def link jsonCommentError Error
+hi def link jsonSemicolonError Error
+hi def link jsonTrailingCommaError Error
+hi def link jsonMissingCommaError Error
+hi def link jsonStringSQError Error
+hi def link jsonNoQuotesError Error
+hi def link jsonTripleQuotesError Error
endif
+hi def link jsonQuote Quote
+hi def link jsonNoise Noise
let b:current_syntax = "json"
if main_syntax == 'json'
diff --git a/runtime/syntax/jsp.vim b/runtime/syntax/jsp.vim
index 9766657596..1c3cc35a31 100644
--- a/runtime/syntax/jsp.vim
+++ b/runtime/syntax/jsp.vim
@@ -6,11 +6,8 @@
" Credits : Patch by Darren Greaves (recognizes <jsp:...> tags)
" Patch by Thomas Kimpton (recognizes jspExpr inside HTML tags)
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -19,11 +16,7 @@ if !exists("main_syntax")
endif
" Source HTML syntax
-if version < 600
- source <sfile>:p:h/html.vim
-else
- runtime! syntax/html.vim
-endif
+runtime! syntax/html.vim
unlet b:current_syntax
" Next syntax items are case-sensitive
@@ -52,29 +45,19 @@ syn clear htmlTag
syn region htmlTag start=+<[^/%]+ end=+>+ contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition,@htmlPreproc,@htmlArgCluster,jspExpr,javaScript
" 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_jsp_syn_inits")
- if version < 508
- let did_jsp_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- " java.vim has redefined htmlComment highlighting
- HiLink htmlComment Comment
- HiLink htmlCommentPart Comment
- " Be consistent with html highlight settings
- HiLink jspComment htmlComment
- HiLink jspTag htmlTag
- HiLink jspDirective jspTag
- HiLink jspDirName htmlTagName
- HiLink jspDirArg htmlArg
- HiLink jspCommand jspTag
- HiLink jspCommandName htmlTagName
- HiLink jspCommandArg htmlArg
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+" java.vim has redefined htmlComment highlighting
+hi def link htmlComment Comment
+hi def link htmlCommentPart Comment
+" Be consistent with html highlight settings
+hi def link jspComment htmlComment
+hi def link jspTag htmlTag
+hi def link jspDirective jspTag
+hi def link jspDirName htmlTagName
+hi def link jspDirArg htmlArg
+hi def link jspCommand jspTag
+hi def link jspCommandName htmlTagName
+hi def link jspCommandArg htmlArg
if main_syntax == 'jsp'
unlet main_syntax
diff --git a/runtime/syntax/kix.vim b/runtime/syntax/kix.vim
index 800e286042..8efe02baee 100644
--- a/runtime/syntax/kix.vim
+++ b/runtime/syntax/kix.vim
@@ -19,10 +19,8 @@
" Work out how to error too many "(", i.e. (() should be an error.
" Similarly, "if" without "endif" and similar constructs should error.
-" Clear legacy syntax rules for version 5.x, exit if already processed for version 6+
-if version < 600
- syn clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -130,52 +128,42 @@ syn match kixExpression "<\|>\|<=\|>=\|<>"
" Default highlighting.
-" Version < 5.8 set default highlight if file not already processed.
-" Version >= 5.8 set default highlight only if it doesn't already have a value.
-if version > 508 || !exists("did_kix_syn_inits")
- if version < 508
- let did_kix_syn_inits=1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink kixDoubleString String
- HiLink kixSingleString String
- HiLink kixStatement Statement
- HiLink kixRepeat Repeat
- HiLink kixComment Comment
- HiLink kixBuiltin Function
- HiLink kixLocalVar Special
- HiLink kixMacro Special
- HiLink kixEnvVar Special
- HiLink kixLabel Type
- HiLink kixFunction Function
- HiLink kixInteger Number
- HiLink kixHex Number
- HiLink kixFloat Number
- HiLink kixOperator Operator
- HiLink kixExpression Operator
-
- HiLink kixParenCloseError Error
- HiLink kixBrackCloseError Error
- HiLink kixStringError Error
-
- HiLink kixWhileError Error
- HiLink kixWhileOK Conditional
- HiLink kixDoError Error
- HiLink kixDoOK Conditional
- HiLink kixIfError Error
- HiLink kixIfOK Conditional
- HiLink kixSelectError Error
- HiLink kixSelectOK Conditional
- HiLink kixForNextError Error
- HiLink kixForNextOK Conditional
- HiLink kixForEachError Error
- HiLink kixForEachOK Conditional
-
- delcommand HiLink
-endif
+" Set default highlight only if it doesn't already have a value.
+
+hi def link kixDoubleString String
+hi def link kixSingleString String
+hi def link kixStatement Statement
+hi def link kixRepeat Repeat
+hi def link kixComment Comment
+hi def link kixBuiltin Function
+hi def link kixLocalVar Special
+hi def link kixMacro Special
+hi def link kixEnvVar Special
+hi def link kixLabel Type
+hi def link kixFunction Function
+hi def link kixInteger Number
+hi def link kixHex Number
+hi def link kixFloat Number
+hi def link kixOperator Operator
+hi def link kixExpression Operator
+
+hi def link kixParenCloseError Error
+hi def link kixBrackCloseError Error
+hi def link kixStringError Error
+
+hi def link kixWhileError Error
+hi def link kixWhileOK Conditional
+hi def link kixDoError Error
+hi def link kixDoOK Conditional
+hi def link kixIfError Error
+hi def link kixIfOK Conditional
+hi def link kixSelectError Error
+hi def link kixSelectOK Conditional
+hi def link kixForNextError Error
+hi def link kixForNextOK Conditional
+hi def link kixForEachError Error
+hi def link kixForEachOK Conditional
+
let b:current_syntax = "kix"
diff --git a/runtime/syntax/kscript.vim b/runtime/syntax/kscript.vim
index cefbe39a29..e6776208d4 100644
--- a/runtime/syntax/kscript.vim
+++ b/runtime/syntax/kscript.vim
@@ -4,11 +4,8 @@
" URL: http://aquila.rezel.enst.fr/thomas/vim/kscript.vim
" CVS: $Id: kscript.vim,v 1.1 2004/06/13 17:40:02 vimboss Exp $
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -37,33 +34,23 @@ syn region kscriptString start=+"""+ end=+"""+
syn region kscriptString start=+'''+ end=+'''+
" 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_kscript_syntax_inits")
- if version < 508
- let did_kscript_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
+
+hi def link kscriptConditional Conditional
+hi def link kscriptRepeat Repeat
+hi def link kscriptExceptions Statement
+hi def link kscriptFunction Function
+hi def link kscriptConst Constant
+hi def link kscriptStatement Statement
+hi def link kscriptLabel Label
+hi def link kscriptStorageClass StorageClass
+hi def link kscriptType Type
+hi def link kscriptTodo Todo
+hi def link kscriptComment Comment
+hi def link kscriptString String
+hi def link kscriptPreCondit PreCondit
+hi def link kscriptHardCoded Statement
- HiLink kscriptConditional Conditional
- HiLink kscriptRepeat Repeat
- HiLink kscriptExceptions Statement
- HiLink kscriptFunction Function
- HiLink kscriptConst Constant
- HiLink kscriptStatement Statement
- HiLink kscriptLabel Label
- HiLink kscriptStorageClass StorageClass
- HiLink kscriptType Type
- HiLink kscriptTodo Todo
- HiLink kscriptComment Comment
- HiLink kscriptString String
- HiLink kscriptPreCondit PreCondit
- HiLink kscriptHardCoded Statement
-
- delcommand HiLink
-endif
let b:current_syntax = "kscript"
diff --git a/runtime/syntax/kwt.vim b/runtime/syntax/kwt.vim
index 4c2c9d9dc0..ecda5bb985 100644
--- a/runtime/syntax/kwt.vim
+++ b/runtime/syntax/kwt.vim
@@ -3,21 +3,14 @@
" Maintainer: Michael Piefel <entwurf@piefel.de>
" Last Change: 2 May 2001
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
" Read the C++ syntax to start with
-if version < 600
- source <sfile>:p:h/cpp.vim
-else
- runtime! syntax/cpp.vim
- unlet b:current_syntax
-endif
+runtime! syntax/cpp.vim
+unlet b:current_syntax
" kimwitu++ extentions
@@ -58,27 +51,17 @@ syn region kwtUnpBody transparent keepend extend fold start="->\s*\[" start="^\
syn region kwtRewBody transparent keepend extend fold start="->\s*<" start="^\s*<" end="\s>\s\=;\=$" end="^>\s\=;\=$"
" 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_kwt_syn_inits")
- if version < 508
- let did_kwt_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink kwtStatement cppStatement
- HiLink kwtDecl cppStatement
- HiLink kwtCast cppStatement
- HiLink kwtSep Delimiter
- HiLink kwtViews Label
- HiLink kwtPhylum Type
- HiLink kwtOption PreProc
- "HiLink cText Comment
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link kwtStatement cppStatement
+hi def link kwtDecl cppStatement
+hi def link kwtCast cppStatement
+hi def link kwtSep Delimiter
+hi def link kwtViews Label
+hi def link kwtPhylum Type
+hi def link kwtOption PreProc
+"hi def link cText Comment
+
syn sync lines=300
diff --git a/runtime/syntax/lace.vim b/runtime/syntax/lace.vim
index 9e64eea7d1..9a83851f2b 100644
--- a/runtime/syntax/lace.vim
+++ b/runtime/syntax/lace.vim
@@ -9,11 +9,8 @@
" it to the maintainer at <utilities@eiffel.com>
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -85,50 +82,40 @@ syn region laceParen transparent start="(" end=")" contains=ALLBUT,laceParenErr
syn sync lines=40
" 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_lace_syntax_inits")
- if version < 508
- let did_lace_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink laceTopStruct PreProc
-
- HiLink laceOptionClause Statement
- HiLink laceOptionMark Constant
- HiLink laceClusterProp Label
- HiLink laceAdaptClassName Label
- HiLink laceExternal Statement
- HiLink laceCluster ModeMsg
-
- HiLink laceEscape Special
-
- HiLink laceBool Boolean
- HiLink laceString String
- HiLink laceCharacter Character
- HiLink laceClassName Type
- HiLink laceNumber Number
-
- HiLink laceOperator Special
- HiLink laceArray Special
- HiLink laceExport Special
- HiLink laceCreation Special
- HiLink laceBrackets Special
- HiLink laceConstraint Special
-
- HiLink laceComment Comment
-
- HiLink laceError Error
- HiLink laceStringError Error
- HiLink laceParenError Error
- HiLink laceBracketError Error
- HiLink laceTodo Todo
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link laceTopStruct PreProc
+
+hi def link laceOptionClause Statement
+hi def link laceOptionMark Constant
+hi def link laceClusterProp Label
+hi def link laceAdaptClassName Label
+hi def link laceExternal Statement
+hi def link laceCluster ModeMsg
+
+hi def link laceEscape Special
+
+hi def link laceBool Boolean
+hi def link laceString String
+hi def link laceCharacter Character
+hi def link laceClassName Type
+hi def link laceNumber Number
+
+hi def link laceOperator Special
+hi def link laceArray Special
+hi def link laceExport Special
+hi def link laceCreation Special
+hi def link laceBrackets Special
+hi def link laceConstraint Special
+
+hi def link laceComment Comment
+
+hi def link laceError Error
+hi def link laceStringError Error
+hi def link laceParenError Error
+hi def link laceBracketError Error
+hi def link laceTodo Todo
+
let b:current_syntax = "lace"
diff --git a/runtime/syntax/latte.vim b/runtime/syntax/latte.vim
index e2a8729f3f..e30ae42e38 100644
--- a/runtime/syntax/latte.vim
+++ b/runtime/syntax/latte.vim
@@ -7,11 +7,8 @@
" I based this on the TeX and Scheme syntax files (but mostly scheme).
" See http://www.latte.org for info on the language.
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -20,11 +17,7 @@ syn match latteOther "\\{"
syn match latteOther "\\}"
syn match latteOther "\\\\"
-if version < 600
- set iskeyword=33,43,45,48-57,63,65-90,95,97-122,_
-else
- setlocal iskeyword=33,43,45,48-57,63,65-90,95,97-122,_
-endif
+setlocal iskeyword=33,43,45,48-57,63,65-90,95,97-122,_
syn region latteVar matchgroup=SpecialChar start=!\\[A-Za-z_]!rs=s+1 end=![^A-Za-z0-9?!+_-]!me=e-1 contains=ALLBUT,latteNumber,latteOther
syn region latteVar matchgroup=SpecialChar start=!\\[=\&][A-Za-z_]!rs=s+2 end=![^A-Za-z0-9?!+_-]!me=e-1 contains=ALLBUT,latteNumber,latteOther
@@ -70,29 +63,19 @@ syn sync match matchPlace grouphere NONE "^[^ \t]"
" ... i.e. synchronize on a line that starts at the left margin
" 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_latte_syntax_inits")
- if version < 508
- let did_latte_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink latteSyntax Statement
- HiLink latteVar Function
+hi def link latteSyntax Statement
+hi def link latteVar Function
- HiLink latteString String
- HiLink latteQuote String
+hi def link latteString String
+hi def link latteQuote String
- HiLink latteDelimiter Delimiter
- HiLink latteOperator Operator
+hi def link latteDelimiter Delimiter
+hi def link latteOperator Operator
- HiLink latteComment Comment
- HiLink latteError Error
+hi def link latteComment Comment
+hi def link latteError Error
- delcommand HiLink
-endif
let b:current_syntax = "latte"
diff --git a/runtime/syntax/ld.vim b/runtime/syntax/ld.vim
index fc12919c50..22949d9759 100644
--- a/runtime/syntax/ld.vim
+++ b/runtime/syntax/ld.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: ld(1) script
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: ld(1) script
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/ldapconf.vim b/runtime/syntax/ldapconf.vim
index 70ddaab57a..662ea203be 100644
--- a/runtime/syntax/ldapconf.vim
+++ b/runtime/syntax/ldapconf.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: ldap.conf(5) configuration file.
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-12-11
+" Language: ldap.conf(5) configuration file.
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-12-11
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/ldif.vim b/runtime/syntax/ldif.vim
index 9f67b57f51..576e4c023d 100644
--- a/runtime/syntax/ldif.vim
+++ b/runtime/syntax/ldif.vim
@@ -3,9 +3,8 @@
" Maintainer: Zak Johnson <zakj@nox.cx>
" Last Change: 2003-12-30
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -21,23 +20,14 @@ syn region ldifFileValue matchgroup=ldifPunctuation start=/:< / end=/\_$/ skip
syn region ldifComment start=/^#/ end=/\_$/ skip=/\n /
-if version >= 508 || !exists("did_ldif_syn_inits")
- if version < 508
- let did_ldif_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink ldifAttribute Type
- HiLink ldifOption Identifier
- HiLink ldifPunctuation Normal
- HiLink ldifStringValue String
- HiLink ldifBase64Value Special
- HiLink ldifFileValue Special
- HiLink ldifComment Comment
-
- delcommand HiLink
-endif
+
+hi def link ldifAttribute Type
+hi def link ldifOption Identifier
+hi def link ldifPunctuation Normal
+hi def link ldifStringValue String
+hi def link ldifBase64Value Special
+hi def link ldifFileValue Special
+hi def link ldifComment Comment
+
let b:current_syntax = "ldif"
diff --git a/runtime/syntax/lex.vim b/runtime/syntax/lex.vim
index b7aff34d6b..560aa44be3 100644
--- a/runtime/syntax/lex.vim
+++ b/runtime/syntax/lex.vim
@@ -1,18 +1,15 @@
" Vim syntax file
" Language: Lex
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change: Nov 14, 2012
-" Version: 14
-" URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
+" Last Change: Aug 31, 2016
+" Version: 16
+" URL: http://mysite.verizon.net/astronaut/vim/index.html#SYNTAX_LEX
"
" Option:
" lex_uses_cpp : if this variable exists, then C++ is loaded rather than C
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -122,22 +119,24 @@ syn sync match lexSyncPat groupthere lexPatBlock "^<$"
syn sync match lexSyncPat groupthere lexPatBlock "^%%$"
" The default highlighting.
-hi def link lexAbbrvComment lexPatComment
-hi def link lexAbbrvRegExp Macro
-hi def link lexAbbrv SpecialChar
-hi def link lexBrace lexPat
-hi def link lexCFunctions Function
-hi def link lexCstruct cStructure
-hi def link lexMorePat SpecialChar
-hi def link lexOptions PreProc
-hi def link lexPatComment Comment
-hi def link lexPat Function
-hi def link lexPatString Function
-hi def link lexPatTag Special
-hi def link lexPatTagZone lexPatTag
-hi def link lexSep Delimiter
-hi def link lexSlashQuote lexPat
-hi def link lexStartState Statement
+if !exists("skip_lex_syntax_inits")
+ hi def link lexAbbrvComment lexPatComment
+ hi def link lexAbbrvRegExp Macro
+ hi def link lexAbbrv SpecialChar
+ hi def link lexBrace lexPat
+ hi def link lexCFunctions Function
+ hi def link lexCstruct cStructure
+ hi def link lexMorePat SpecialChar
+ hi def link lexOptions PreProc
+ hi def link lexPatComment Comment
+ hi def link lexPat Function
+ hi def link lexPatString Function
+ hi def link lexPatTag Special
+ hi def link lexPatTagZone lexPatTag
+ hi def link lexSep Delimiter
+ hi def link lexSlashQuote lexPat
+ hi def link lexStartState Statement
+endif
let b:current_syntax = "lex"
diff --git a/runtime/syntax/lftp.vim b/runtime/syntax/lftp.vim
index 6a8e4f9e19..20ddee5bcb 100644
--- a/runtime/syntax/lftp.vim
+++ b/runtime/syntax/lftp.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: lftp(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2007-06-17
+" Language: lftp(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2007-06-17
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/lhaskell.vim b/runtime/syntax/lhaskell.vim
index 077549a0c8..0a8a076ff4 100644
--- a/runtime/syntax/lhaskell.vim
+++ b/runtime/syntax/lhaskell.vim
@@ -36,11 +36,8 @@
"
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -84,15 +81,10 @@ endif
" If user wants us to highlight TeX syntax or guess thinks it's TeX, read it.
if b:lhs_markup == "tex"
- if version < 600
- source <sfile>:p:h/tex.vim
- set isk+=_
- else
- runtime! syntax/tex.vim
- unlet b:current_syntax
- " Tex.vim removes "_" from 'iskeyword', but we need it for Haskell.
- setlocal isk+=_
- endif
+ runtime! syntax/tex.vim
+ unlet b:current_syntax
+ " Tex.vim removes "_" from 'iskeyword', but we need it for Haskell.
+ setlocal isk+=_
syntax cluster lhsTeXContainer contains=tex.*Zone,texAbstract
else
syntax cluster lhsTeXContainer contains=.*
@@ -100,11 +92,7 @@ endif
" Literate Haskell is Haskell in between text, so at least read Haskell
" highlighting
-if version < 600
- syntax include @haskellTop <sfile>:p:h/haskell.vim
-else
- syntax include @haskellTop syntax/haskell.vim
-endif
+syntax include @haskellTop syntax/haskell.vim
syntax region lhsHaskellBirdTrack start="^>" end="\%(^[^>]\)\@=" contains=@haskellTop,lhsBirdTrack containedin=@lhsTeXContainer
syntax region lhsHaskellBeginEndBlock start="^\\begin{code}\s*$" matchgroup=NONE end="\%(^\\end{code}.*$\)\@=" contains=@haskellTop,beginCodeBegin containedin=@lhsTeXContainer
@@ -115,23 +103,13 @@ syntax match beginCodeBegin "^\\begin" nextgroup=beginCodeCode contained
syntax region beginCodeCode matchgroup=texDelimiter start="{" end="}"
" 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_tex_syntax_inits")
- if version < 508
- let did_tex_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink lhsBirdTrack Comment
-
- HiLink beginCodeBegin texCmdName
- HiLink beginCodeCode texSection
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link lhsBirdTrack Comment
+
+hi def link beginCodeBegin texCmdName
+hi def link beginCodeCode texSection
+
" Restore cursor to original position, as it may have been disturbed
" by the searches in our guessing code
diff --git a/runtime/syntax/libao.vim b/runtime/syntax/libao.vim
index 25b6e8284e..1a3bd90cc5 100644
--- a/runtime/syntax/libao.vim
+++ b/runtime/syntax/libao.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: libao.conf(5) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: libao.conf(5) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/lifelines.vim b/runtime/syntax/lifelines.vim
index f8bea015bd..ff4692888e 100644
--- a/runtime/syntax/lifelines.vim
+++ b/runtime/syntax/lifelines.vim
@@ -11,9 +11,8 @@
" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -110,9 +109,7 @@ syn match lifelinesNumber "-\=\<\d\+\.\d*\>"
syn match lifelinesNumber "-\=\.\d\+\>"
" folding using {}
-if version >= 600
- syn region lifelinesFoldBlock start="{" end="}" transparent fold
-endif
+syn region lifelinesFoldBlock start="{" end="}" transparent fold
"catch errors caused by wrong parenthesis
"adapted from original c.vim written by Bram Moolenaar
@@ -123,44 +120,34 @@ syn match lifelinesParenError ")"
syn match lifelinesErrInParen contained "[{}]"
" 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_lifelines_syn_inits")
- if version < 508
- let did_lifelines_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink lifelinesConditional Conditional
- HiLink lifelinesArithm Operator
- HiLink lifelinesLogical Conditional
- HiLink lifelinesInclude Include
- HiLink lifelinesComment Comment
- HiLink lifelinesStatement Statement
- HiLink lifelinesUser Statement
- HiLink lifelinesFunct Statement
- HiLink lifelinesTable Statement
- HiLink lifelinesGedcom Statement
- HiLink lifelinesList Statement
- HiLink lifelinesRepeat Repeat
- HiLink lifelinesFam Statement
- HiLink lifelinesIndi Statement
- HiLink lifelinesProc Statement
- HiLink lifelinesDef Statement
- HiLink lifelinesString String
- HiLink lifelinesSpecial Special
- HiLink lifelinesNumber Number
- HiLink lifelinesParenError Error
- HiLink lifelinesErrInParen Error
- HiLink lifelinesError Error
- HiLink lifelinesTodo Todo
- HiLink lifelinesDecl PreProc
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+
+hi def link lifelinesConditional Conditional
+hi def link lifelinesArithm Operator
+hi def link lifelinesLogical Conditional
+hi def link lifelinesInclude Include
+hi def link lifelinesComment Comment
+hi def link lifelinesStatement Statement
+hi def link lifelinesUser Statement
+hi def link lifelinesFunct Statement
+hi def link lifelinesTable Statement
+hi def link lifelinesGedcom Statement
+hi def link lifelinesList Statement
+hi def link lifelinesRepeat Repeat
+hi def link lifelinesFam Statement
+hi def link lifelinesIndi Statement
+hi def link lifelinesProc Statement
+hi def link lifelinesDef Statement
+hi def link lifelinesString String
+hi def link lifelinesSpecial Special
+hi def link lifelinesNumber Number
+hi def link lifelinesParenError Error
+hi def link lifelinesErrInParen Error
+hi def link lifelinesError Error
+hi def link lifelinesTodo Todo
+hi def link lifelinesDecl PreProc
+
let b:current_syntax = "lifelines"
diff --git a/runtime/syntax/lilo.vim b/runtime/syntax/lilo.vim
index 3e9459267b..a87dafb734 100644
--- a/runtime/syntax/lilo.vim
+++ b/runtime/syntax/lilo.vim
@@ -5,21 +5,12 @@
" Last Change: 2010-02-03
" Setup
-if version >= 600
- if exists("b:current_syntax")
- finish
- endif
-else
- syntax clear
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
+ finish
endif
-if version >= 600
- command -nargs=1 SetIsk setlocal iskeyword=<args>
-else
- command -nargs=1 SetIsk set iskeyword=<args>
-endif
-SetIsk @,48-57,.,-,_
-delcommand SetIsk
+setlocal iskeyword=@,48-57,.,-,_
syn case ignore
@@ -128,65 +119,56 @@ syn match liloDecNumberPListComment "#.*$" contained nextgroup=liloDecNumberPLis
syn match liloAnythingComment "#.*$" contained nextgroup=liloAnything,liloAnythingComment,liloError skipwhite skipempty
" Define the default highlighting
-if version >= 508 || !exists("did_lilo_syntax_inits")
- if version < 508
- let did_lilo_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink liloEqPath liloEquals
- HiLink liloEqWord liloEquals
- HiLink liloEqVga liloEquals
- HiLink liloEqDecNumber liloEquals
- HiLink liloEqHexNumber liloEquals
- HiLink liloEqNumber liloEquals
- HiLink liloEqString liloEquals
- HiLink liloEqAnything liloEquals
- HiLink liloEquals Special
-
- HiLink liloError Error
-
- HiLink liloEqPathComment liloComment
- HiLink liloEqVgaComment liloComment
- HiLink liloEqDecNumberComment liloComment
- HiLink liloEqHexNumberComment liloComment
- HiLink liloEqStringComment liloComment
- HiLink liloEqAnythingComment liloComment
- HiLink liloPathComment liloComment
- HiLink liloVgaComment liloComment
- HiLink liloDecNumberComment liloComment
- HiLink liloHexNumberComment liloComment
- HiLink liloNumberComment liloComment
- HiLink liloStringComment liloComment
- HiLink liloAnythingComment liloComment
- HiLink liloComment Comment
-
- HiLink liloDiskOpt liloOption
- HiLink liloKernelOpt liloOption
- HiLink liloImageOpt liloOption
- HiLink liloOption Keyword
-
- HiLink liloDecNumber liloNumber
- HiLink liloHexNumber liloNumber
- HiLink liloDecNumberP liloNumber
- HiLink liloNumber Number
- HiLink liloString String
- HiLink liloPath Constant
-
- HiLink liloSpecial Special
- HiLink liloLabel Title
- HiLink liloDecNumberList Special
- HiLink liloDecNumberPList Special
- HiLink liloAnything Normal
- HiLink liloEnviron Identifier
- HiLink liloVgaKeyword Identifier
- HiLink liloImage Type
- HiLink liloChRules Preproc
- HiLink liloDisk Preproc
-
- delcommand HiLink
-endif
+
+hi def link liloEqPath liloEquals
+hi def link liloEqWord liloEquals
+hi def link liloEqVga liloEquals
+hi def link liloEqDecNumber liloEquals
+hi def link liloEqHexNumber liloEquals
+hi def link liloEqNumber liloEquals
+hi def link liloEqString liloEquals
+hi def link liloEqAnything liloEquals
+hi def link liloEquals Special
+
+hi def link liloError Error
+
+hi def link liloEqPathComment liloComment
+hi def link liloEqVgaComment liloComment
+hi def link liloEqDecNumberComment liloComment
+hi def link liloEqHexNumberComment liloComment
+hi def link liloEqStringComment liloComment
+hi def link liloEqAnythingComment liloComment
+hi def link liloPathComment liloComment
+hi def link liloVgaComment liloComment
+hi def link liloDecNumberComment liloComment
+hi def link liloHexNumberComment liloComment
+hi def link liloNumberComment liloComment
+hi def link liloStringComment liloComment
+hi def link liloAnythingComment liloComment
+hi def link liloComment Comment
+
+hi def link liloDiskOpt liloOption
+hi def link liloKernelOpt liloOption
+hi def link liloImageOpt liloOption
+hi def link liloOption Keyword
+
+hi def link liloDecNumber liloNumber
+hi def link liloHexNumber liloNumber
+hi def link liloDecNumberP liloNumber
+hi def link liloNumber Number
+hi def link liloString String
+hi def link liloPath Constant
+
+hi def link liloSpecial Special
+hi def link liloLabel Title
+hi def link liloDecNumberList Special
+hi def link liloDecNumberPList Special
+hi def link liloAnything Normal
+hi def link liloEnviron Identifier
+hi def link liloVgaKeyword Identifier
+hi def link liloImage Type
+hi def link liloChRules Preproc
+hi def link liloDisk Preproc
+
let b:current_syntax = "lilo"
diff --git a/runtime/syntax/limits.vim b/runtime/syntax/limits.vim
index a6d245ae11..96bd423869 100644
--- a/runtime/syntax/limits.vim
+++ b/runtime/syntax/limits.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: limits(5) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: limits(5) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/lisp.vim b/runtime/syntax/lisp.vim
index a402452389..b02eb09d0a 100644
--- a/runtime/syntax/lisp.vim
+++ b/runtime/syntax/lisp.vim
@@ -2,7 +2,7 @@
" Language: Lisp
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: May 02, 2016
-" Version: 25
+" Version: 26
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_LISP
"
" Thanks to F Xavier Noria for a list of 978 Common Lisp symbols taken from HyperSpec
@@ -561,31 +561,28 @@ syn sync lines=100
" ---------------------------------------------------------------------
" Define Highlighting: {{{1
-" 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
- command -nargs=+ HiLink hi def link <args>
+if !exists("skip_lisp_syntax_inits")
- HiLink lispCommentRegion lispComment
- HiLink lispAtomNmbr lispNumber
- HiLink lispAtomMark lispMark
- HiLink lispInStringString lispString
+ hi def link lispCommentRegion lispComment
+ hi def link lispAtomNmbr lispNumber
+ hi def link lispAtomMark lispMark
+ hi def link lispInStringString lispString
- HiLink lispAtom Identifier
- HiLink lispAtomBarSymbol Special
- HiLink lispBarSymbol Special
- HiLink lispComment Comment
- HiLink lispConcat Statement
- HiLink lispDecl Statement
- HiLink lispFunc Statement
- HiLink lispKey Type
- HiLink lispMark Delimiter
- HiLink lispNumber Number
- HiLink lispParenError Error
- HiLink lispEscapeSpecial Type
- HiLink lispString String
- HiLink lispTodo Todo
- HiLink lispVar Statement
+ hi def link lispAtom Identifier
+ hi def link lispAtomBarSymbol Special
+ hi def link lispBarSymbol Special
+ hi def link lispComment Comment
+ hi def link lispConcat Statement
+ hi def link lispDecl Statement
+ hi def link lispFunc Statement
+ hi def link lispKey Type
+ hi def link lispMark Delimiter
+ hi def link lispNumber Number
+ hi def link lispParenError Error
+ hi def link lispEscapeSpecial Type
+ hi def link lispString String
+ hi def link lispTodo Todo
+ hi def link lispVar Statement
if exists("g:lisp_rainbow") && g:lisp_rainbow != 0
if &bg == "dark"
@@ -613,7 +610,6 @@ if version >= 508
endif
endif
- delcommand HiLink
endif
let b:current_syntax = "lisp"
diff --git a/runtime/syntax/lite.vim b/runtime/syntax/lite.vim
index 8abc51dea1..a8d26892d4 100644
--- a/runtime/syntax/lite.vim
+++ b/runtime/syntax/lite.vim
@@ -8,11 +8,8 @@
" Options lite_sql_query = 1 for SQL syntax highligthing inside strings
" lite_minlines = x to sync at least x lines backwards
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -138,39 +135,29 @@ if main_syntax == 'lite'
endif
" 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_lite_syn_inits")
- if version < 508
- let did_lite_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
+
+hi def link liteComment Comment
+hi def link liteString String
+hi def link liteNumber Number
+hi def link liteFloat Float
+hi def link liteIdentifier Identifier
+hi def link liteGlobalIdentifier Identifier
+hi def link liteIntVar Identifier
+hi def link liteFunctions Function
+hi def link liteRepeat Repeat
+hi def link liteConditional Conditional
+hi def link liteStatement Statement
+hi def link liteType Type
+hi def link liteInclude Include
+hi def link liteDefine Define
+hi def link liteSpecialChar SpecialChar
+hi def link liteParentError liteError
+hi def link liteError Error
+hi def link liteTodo Todo
+hi def link liteOperator Operator
+hi def link liteRelation Operator
- HiLink liteComment Comment
- HiLink liteString String
- HiLink liteNumber Number
- HiLink liteFloat Float
- HiLink liteIdentifier Identifier
- HiLink liteGlobalIdentifier Identifier
- HiLink liteIntVar Identifier
- HiLink liteFunctions Function
- HiLink liteRepeat Repeat
- HiLink liteConditional Conditional
- HiLink liteStatement Statement
- HiLink liteType Type
- HiLink liteInclude Include
- HiLink liteDefine Define
- HiLink liteSpecialChar SpecialChar
- HiLink liteParentError liteError
- HiLink liteError Error
- HiLink liteTodo Todo
- HiLink liteOperator Operator
- HiLink liteRelation Operator
-
- delcommand HiLink
-endif
let b:current_syntax = "lite"
diff --git a/runtime/syntax/litestep.vim b/runtime/syntax/litestep.vim
index b4c15faf65..e3d967f010 100644
--- a/runtime/syntax/litestep.vim
+++ b/runtime/syntax/litestep.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: LiteStep RC file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2007-02-22
+" Language: LiteStep RC file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2007-02-22
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/loginaccess.vim b/runtime/syntax/loginaccess.vim
index 07d60eeca0..650e067d18 100644
--- a/runtime/syntax/loginaccess.vim
+++ b/runtime/syntax/loginaccess.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: login.access(5) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: login.access(5) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/logindefs.vim b/runtime/syntax/logindefs.vim
index 59d18e7ef4..8cb4295eda 100644
--- a/runtime/syntax/logindefs.vim
+++ b/runtime/syntax/logindefs.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: login.defs(5) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2010-11-29
+" Language: login.defs(5) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2010-11-29
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/logtalk.vim b/runtime/syntax/logtalk.vim
index be34c7ed74..532f83d3bf 100644
--- a/runtime/syntax/logtalk.vim
+++ b/runtime/syntax/logtalk.vim
@@ -5,11 +5,8 @@
" Last Change: February 4, 2012
-" Quit when a syntax file was already loaded:
-
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -389,59 +386,47 @@ syn sync ccomment logtalkBlockComment maxlines=50
" 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_logtalk_syn_inits")
- if version < 508
- let did_logtalk_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink logtalkBlockComment Comment
- HiLink logtalkLineComment Comment
+hi def link logtalkBlockComment Comment
+hi def link logtalkLineComment Comment
- HiLink logtalkOpenEntityDir Normal
- HiLink logtalkOpenEntityDirTag PreProc
+hi def link logtalkOpenEntityDir Normal
+hi def link logtalkOpenEntityDirTag PreProc
- HiLink logtalkIfContainer PreProc
- HiLink logtalkIf PreProc
- HiLink logtalkElseIf PreProc
- HiLink logtalkElse PreProc
+hi def link logtalkIfContainer PreProc
+hi def link logtalkIf PreProc
+hi def link logtalkElseIf PreProc
+hi def link logtalkElse PreProc
- HiLink logtalkEntity Normal
+hi def link logtalkEntity Normal
- HiLink logtalkEntityRel Normal
- HiLink logtalkEntityRelTag PreProc
+hi def link logtalkEntityRel Normal
+hi def link logtalkEntityRelTag PreProc
- HiLink logtalkCloseEntityDir PreProc
+hi def link logtalkCloseEntityDir PreProc
- HiLink logtalkDir Normal
- HiLink logtalkDirTag PreProc
+hi def link logtalkDir Normal
+hi def link logtalkDirTag PreProc
- HiLink logtalkAtom String
- HiLink logtalkString String
- HiLink logtalkEscapeSequence SpecialChar
+hi def link logtalkAtom String
+hi def link logtalkString String
+hi def link logtalkEscapeSequence SpecialChar
- HiLink logtalkNumber Number
+hi def link logtalkNumber Number
- HiLink logtalkKeyword Keyword
+hi def link logtalkKeyword Keyword
- HiLink logtalkBuiltIn Keyword
- HiLink logtalkBuiltInMethod Keyword
+hi def link logtalkBuiltIn Keyword
+hi def link logtalkBuiltInMethod Keyword
- HiLink logtalkOperator Operator
+hi def link logtalkOperator Operator
- HiLink logtalkExtCall Normal
- HiLink logtalkExtCallTag Operator
+hi def link logtalkExtCall Normal
+hi def link logtalkExtCallTag Operator
- HiLink logtalkVariable Identifier
+hi def link logtalkVariable Identifier
- delcommand HiLink
-
-endif
let b:current_syntax = "logtalk"
diff --git a/runtime/syntax/lotos.vim b/runtime/syntax/lotos.vim
index 3cd83c4d86..8262e1d9ef 100644
--- a/runtime/syntax/lotos.vim
+++ b/runtime/syntax/lotos.vim
@@ -7,11 +7,8 @@
" I'm not sure I understand all of the syntax highlight language,
" but this file seems to do the job for standard LOTOS.
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -56,26 +53,16 @@ syn keyword lotosType using
syn sync lines=250
" 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_lotos_syntax_inits")
- if version < 508
- let did_lotos_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink lotosStatement Statement
- HiLink lotosProcess Label
- HiLink lotosOperator Operator
- HiLink lotosSort Function
- HiLink lotosType Type
- HiLink lotosComment Comment
- HiLink lotosDelimiter String
+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
- delcommand HiLink
-endif
let b:current_syntax = "lotos"
diff --git a/runtime/syntax/lout.vim b/runtime/syntax/lout.vim
index 9a34328ac3..30c87fce51 100644
--- a/runtime/syntax/lout.vim
+++ b/runtime/syntax/lout.vim
@@ -16,11 +16,8 @@
" See the discussion at http://thread.gmane.org/gmane.editors.vim.devel/32151
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -36,11 +33,7 @@ syn sync lines=1000
" Characters allowed in keywords
" I don't know if 128-255 are allowed in ANS-FORHT
-if version >= 600
- setlocal iskeyword=@,48-57,.,@-@,_,192-255
-else
- set iskeyword=@,48-57,.,@-@,_,192-255
-endif
+setlocal iskeyword=@,48-57,.,@-@,_,192-255
" Some special keywords
syn keyword loutTodo contained TODO lout Lout LOUT
@@ -106,44 +99,33 @@ syn region loutBoldItalic matchgroup=loutBIBraces start='@BI\s*{' matchgroup=lou
syn region loutHeadings matchgroup=loutHeads start='@\(\(Title\)\|\(Caption\)\)\s*{' matchgroup=loutHeads end='}' contains=ALLBUT,loutBraceError
" 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_lout_syn_inits")
- if version < 508
- let did_lout_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " The default methods for highlighting. Can be overrriden later.
- HiLink loutTodo Todo
- HiLink loutDefine Define
- HiLink loutEOmlDef Define
- HiLink loutFunction Function
- HiLink loutBraceError Error
- HiLink loutNULL Special
- HiLink loutComment Comment
- HiLink loutSpecial Special
- HiLink loutSymbols Character
- HiLink loutInclude Include
- HiLink loutKeyword Keyword
- HiLink loutTag Tag
- HiLink loutMath Number
-
- " HiLink Not really needed here, but I think it is more consistent.
- HiLink loutMBraces loutMath
- hi loutItalic term=italic cterm=italic gui=italic
- HiLink loutIBraces loutItalic
- hi loutBold term=bold cterm=bold gui=bold
- HiLink loutBBraces loutBold
- hi loutBoldItalic term=bold,italic cterm=bold,italic gui=bold,italic
- HiLink loutBIBraces loutBoldItalic
- hi loutHeadings term=bold cterm=bold guifg=indianred
- HiLink loutHeads loutHeadings
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/lpc.vim b/runtime/syntax/lpc.vim
index e948f3d70c..7d85fce8e2 100644
--- a/runtime/syntax/lpc.vim
+++ b/runtime/syntax/lpc.vim
@@ -2,18 +2,15 @@
" Language: LPC
" Maintainer: Shizhu Pan <poet@mudbuilder.net>
" URL: http://poet.tomud.com/pub/lpc.vim.bz2
-" Last Change: 2011 Dec 10 by Thilo Six
+" 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
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -360,94 +357,84 @@ endif
" Nodule: Highlight links {{{1
" 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_lpc_syn_inits")
- if version < 508
- let did_lpc_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" 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
- HiLink lpcModifier lpcStorageClass
-
- HiLink lpcQuotedFmt lpcFormat
- HiLink lpcFormat lpcSpecial
- HiLink lpcCppString lpcString " Cpp means
- " C Pre-Processor
- HiLink lpcCommentL lpcComment
- HiLink lpcCommentStart lpcComment
- HiLink lpcUserLabel lpcLabel
- HiLink lpcSpecialCharacter lpcSpecial
- HiLink lpcOctal lpcPreProc
- HiLink lpcOctalZero lpcSpecial " LPC will treat octal numbers
- " as decimals, programmers should
- " be aware of that.
- HiLink lpcEfunError lpcError
- HiLink lpcKeywdError lpcError
- HiLink lpcOctalError lpcError
- HiLink lpcParenError lpcError
- HiLink lpcErrInParen lpcError
- HiLink lpcErrInBracket lpcError
- HiLink lpcCommentError lpcError
- HiLink lpcCommentStartError lpcError
- HiLink lpcSpaceError lpcError
- HiLink lpcSpecialError lpcError
- HiLink lpcErrFunc lpcError
-
- if exists("lpc_pre_v22")
- HiLink lpcOldEfuns lpc_efuns
- HiLink lpcNewEfuns lpcError
- else
- HiLink lpcOldEfuns lpcReserved
- HiLink lpcNewEfuns lpc_efuns
- endif
- HiLink lpc_efuns lpcFunction
-
- HiLink lpcReserved lpcPreProc
- HiLink lpcTextString lpcString " This should be preprocessors, but
- HiLink lpcArrayString lpcPreProc " let's make some difference
- " between text and array
-
- HiLink lpcIncluded lpcString
- HiLink lpcCommentString lpcString
- HiLink lpcComment2String lpcString
- HiLink lpcCommentSkip lpcComment
- HiLink lpcCommentFunc lpcComment
-
- HiLink lpcCppSkip lpcCppOut
- HiLink lpcCppOut2 lpcCppOut
- HiLink lpcCppOut lpcComment
-
- " Standard type below
- HiLink lpcApplies Special
- HiLink lpcCharacter Character
- HiLink lpcComment Comment
- HiLink lpcConditional Conditional
- HiLink lpcConstant Constant
- HiLink lpcDefine Macro
- HiLink lpcError Error
- HiLink lpcFloat Float
- HiLink lpcFunction Function
- HiLink lpcIdentifier Identifier
- HiLink lpcInclude Include
- HiLink lpcLabel Label
- HiLink lpcNumber Number
- HiLink lpcOperator Operator
- HiLink lpcPreCondit PreCondit
- HiLink lpcPreProc PreProc
- HiLink lpcRepeat Repeat
- HiLink lpcStatement Statement
- HiLink lpcStorageClass StorageClass
- HiLink lpcString String
- HiLink lpcStructure Structure
- HiLink lpcSpecial LineNr
- HiLink lpcTodo Todo
- HiLink lpcType Type
-
- delcommand HiLink
+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
diff --git a/runtime/syntax/lprolog.vim b/runtime/syntax/lprolog.vim
index 086c00fd5d..85c3537fed 100644
--- a/runtime/syntax/lprolog.vim
+++ b/runtime/syntax/lprolog.vim
@@ -7,11 +7,8 @@
" 2001 Apr 26 - Upgraded for new Vim version
" 2000 Jun 5 - Initial release
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -96,41 +93,31 @@ 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_lprolog_syntax_inits")
- if version < 508
- let did_lprolog_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink lprologComment Comment
- HiLink lprologTodo Todo
-
- HiLink lprologKeyword Keyword
- HiLink lprologSpecial Special
- HiLink lprologOperator Operator
- HiLink lprologIdentifier Normal
-
- HiLink lprologInteger Number
- HiLink lprologReal Number
- HiLink lprologString String
-
- HiLink lprologCommentErr Error
- HiLink lprologBrackErr Error
- HiLink lprologParenErr Error
-
- HiLink lprologModuleName Special
- HiLink lprologTypeName Identifier
-
- HiLink lprologVariable Keyword
- HiLink lprologAtom Normal
- HiLink lprologClause Type
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/lscript.vim b/runtime/syntax/lscript.vim
index 648a0ebeab..3c4a0fffda 100644
--- a/runtime/syntax/lscript.vim
+++ b/runtime/syntax/lscript.vim
@@ -9,11 +9,8 @@
" and b) I'm not so crash hot at LotusScript either. If you see any problems
" feel free to email me with them.
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -179,34 +176,24 @@ syn region lscriptLineNumber start="^\d" end="\s"
syn match lscriptTypeSpecifier "[a-zA-Z0-9][\$%&!#]"ms=s+1
" 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_lscript_syntax_inits")
- if version < 508
- let did_lscript_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- hi lscriptNotesType term=underline ctermfg=DarkGreen guifg=SeaGreen gui=bold
-
- HiLink lscriptNotesConst lscriptNotesType
- HiLink lscriptLineNumber Comment
- HiLink lscriptDatatype Type
- HiLink lscriptNumber Number
- HiLink lscriptError Error
- HiLink lscriptStatement Statement
- HiLink lscriptString String
- HiLink lscriptComment Comment
- HiLink lscriptTodo Todo
- HiLink lscriptFunction Identifier
- HiLink lscriptMethods PreProc
- HiLink lscriptEvents Special
- HiLink lscriptTypeSpecifier Type
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/lss.vim b/runtime/syntax/lss.vim
index 6620707f92..6ee717bcb4 100644
--- a/runtime/syntax/lss.vim
+++ b/runtime/syntax/lss.vim
@@ -3,11 +3,8 @@
" Maintainer: Scott Bigham <dsb@killerbunnies.org>
" Last Change: 2004 Oct 06
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -70,64 +67,57 @@ syn case match
syn match lssComment "#.*$"
" 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_lss_syntax_inits")
- if version < 508
- let did_lss_syntax_inits = 1
- endif
-
- 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
+" 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
index 3ff80b1ebe..f313c14e7a 100644
--- a/runtime/syntax/lua.vim
+++ b/runtime/syntax/lua.vim
@@ -7,11 +7,8 @@
" lua_subversion = 0 (4.0, 5.0) or 1 (5.1) or 2 (5.2)
" default 5.2
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -325,40 +322,30 @@ elseif lua_version == 5
endif
" 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_lua_syntax_inits")
- if version < 508
- let did_lua_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink luaStatement Statement
- HiLink luaRepeat Repeat
- HiLink luaFor Repeat
- HiLink luaString String
- HiLink luaString2 String
- HiLink luaNumber Number
- HiLink luaOperator Operator
- HiLink luaIn Operator
- HiLink luaConstant Constant
- HiLink luaCond Conditional
- HiLink luaElse Conditional
- HiLink luaFunction Function
- HiLink luaComment Comment
- HiLink luaTodo Todo
- HiLink luaTable Structure
- HiLink luaError Error
- HiLink luaParenError Error
- HiLink luaBraceError Error
- HiLink luaSpecial SpecialChar
- HiLink luaFunc Identifier
- HiLink luaLabel Label
+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 luaNumber Number
+hi def link luaOperator Operator
+hi def link luaIn Operator
+hi def link luaConstant Constant
+hi def link luaCond Conditional
+hi def link luaElse Conditional
+hi def link luaFunction Function
+hi def link luaComment Comment
+hi def link luaTodo Todo
+hi def link luaTable Structure
+hi def link luaError Error
+hi def link luaParenError Error
+hi def link luaBraceError Error
+hi def link luaSpecial SpecialChar
+hi def link luaFunc Identifier
+hi def link luaLabel Label
- delcommand HiLink
-endif
let b:current_syntax = "lua"
diff --git a/runtime/syntax/m4.vim b/runtime/syntax/m4.vim
index ba7a294d14..6f229ea1ab 100644
--- a/runtime/syntax/m4.vim
+++ b/runtime/syntax/m4.vim
@@ -8,15 +8,12 @@
" capital letters and have at least one argument (i.e. the '('
" must be there). Let me know if this is a problem.
-" For version 5.x: Clear all syntax items
-" For version 6.x: Quit when a syntax file was already loaded
+" quit when a syntax file was already loaded
if !exists("main_syntax")
- if version < 600
- syntax clear
- elseif exists("b:current_syntax")
- finish
-endif
-" we define it here so that included files can test for it
+ if exists("b:current_syntax")
+ finish
+ endif
+ " we define it here so that included files can test for it
let main_syntax='m4'
endif
@@ -39,30 +36,20 @@ syn region m4String start="`" end="'" contained contains=@m4Top,@m4StringConte
syn cluster m4Top contains=m4Comment,m4Constants,m4Special,m4Variable,m4String,m4Paren,m4Command,m4Statement,m4Function
" 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_m4_syn_inits")
- if version < 508
- let did_m4_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink m4Delimiter Delimiter
- HiLink m4Comment Comment
- HiLink m4Function Function
- HiLink m4Keyword Keyword
- HiLink m4Special Special
- HiLink m4String String
- HiLink m4Statement Statement
- HiLink m4Preproc PreProc
- HiLink m4Type Type
- HiLink m4Special Special
- HiLink m4Variable Special
- HiLink m4Constants Constant
- HiLink m4Builtin Statement
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/mailaliases.vim b/runtime/syntax/mailaliases.vim
index 743068f66f..a5282aa074 100644
--- a/runtime/syntax/mailaliases.vim
+++ b/runtime/syntax/mailaliases.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: aliases(5) local alias database file
-" Maintainer: Nikolai Weibull <nikolai@bitwi.se>
-" Latest Revision: 2008-04-14
+" Language: aliases(5) local alias database file
+" Previous Maintainer: Nikolai Weibull <nikolai@bitwi.se>
+" Latest Revision: 2008-04-14
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/make.vim b/runtime/syntax/make.vim
index 35b09341a6..7072bab988 100644
--- a/runtime/syntax/make.vim
+++ b/runtime/syntax/make.vim
@@ -4,11 +4,8 @@
" URL: http://www.fleiner.com/vim/syntax/make.vim
" Last Change: 2015 Feb 28
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -101,40 +98,30 @@ syn sync match makeCommandSync groupthere makeCommands "^[A-Za-z0-9_./$()%-][A-Z
syn sync match makeCommandSync groupthere makeCommands "^[A-Za-z0-9_./$()%-][A-Za-z0-9_./\t $()%-]*:\{1,2}\s*$"
" 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_make_syn_inits")
- if version < 508
- let did_make_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink makeNextLine makeSpecial
- HiLink makeCmdNextLine makeSpecial
- HiLink makeSpecTarget Statement
- if !exists("make_no_commands")
- HiLink makeCommands Number
- endif
- HiLink makeImplicit Function
- HiLink makeTarget Function
- HiLink makeInclude Include
- HiLink makePreCondit PreCondit
- HiLink makeStatement Statement
- HiLink makeIdent Identifier
- HiLink makeSpecial Special
- HiLink makeComment Comment
- HiLink makeDString String
- HiLink makeSString String
- HiLink makeBString Function
- HiLink makeError Error
- HiLink makeTodo Todo
- HiLink makeDefine Define
- HiLink makeCommandError Error
- HiLink makeConfig PreCondit
- delcommand HiLink
+" Only when an item doesn't have highlighting yet
+
+hi def link makeNextLine makeSpecial
+hi def link makeCmdNextLine makeSpecial
+hi def link makeSpecTarget Statement
+if !exists("make_no_commands")
+hi def link makeCommands Number
endif
+hi def link makeImplicit Function
+hi def link makeTarget Function
+hi def link makeInclude Include
+hi def link makePreCondit PreCondit
+hi def link makeStatement Statement
+hi def link makeIdent Identifier
+hi def link makeSpecial Special
+hi def link makeComment Comment
+hi def link makeDString String
+hi def link makeSString String
+hi def link makeBString Function
+hi def link makeError Error
+hi def link makeTodo Todo
+hi def link makeDefine Define
+hi def link makeCommandError Error
+hi def link makeConfig PreCondit
let b:current_syntax = "make"
diff --git a/runtime/syntax/man.vim b/runtime/syntax/man.vim
index 819b2adc31..0975b160ae 100644
--- a/runtime/syntax/man.vim
+++ b/runtime/syntax/man.vim
@@ -18,6 +18,11 @@ highlight default link manOptionDesc Constant
highlight default link manReference PreProc
highlight default link manSubHeading Function
+if &filetype != 'man'
+ " May have been included by some other filetype.
+ finish
+endif
+
if !exists('b:man_sect')
call man#init_pager()
endif
diff --git a/runtime/syntax/manconf.vim b/runtime/syntax/manconf.vim
index 90ecc8ec17..2c17568d87 100644
--- a/runtime/syntax/manconf.vim
+++ b/runtime/syntax/manconf.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: man.conf(5) - man configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: man.conf(5) - man configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/maple.vim b/runtime/syntax/maple.vim
index 77b1507b36..1261ff5a47 100644
--- a/runtime/syntax/maple.vim
+++ b/runtime/syntax/maple.vim
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: Maple V (based on release 4)
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change: May 02, 2016
-" Version: 13
+" Last Change: Aug 31, 2016
+" Version: 15
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_MAPLE
"
" Package Function Selection: {{{1
@@ -21,11 +21,8 @@
" but only the contents of packages of Maple V Release 4, and the top-level
" routines of Release 4. <Jacques Carette - carette@mcmaster.ca>
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -551,81 +548,73 @@ endif
" =====================================================================
" Highlighting: Define the default highlighting. {{{1
-" 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_maplev_syntax_inits")
- if version < 508
- let did_maplev_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
+if !exists("skip_maplev_syntax_inits")
" Maple->Maple Links {{{2
- HiLink mvBraceError mvError
- HiLink mvCurlyError mvError
- HiLink mvDebug mvTodo
- HiLink mvParenError mvError
- HiLink mvPkg_DEtools mvPkgFunc
- HiLink mvPkg_Galois mvPkgFunc
- HiLink mvPkg_GaussInt mvPkgFunc
- HiLink mvPkg_LREtools mvPkgFunc
- HiLink mvPkg_combinat mvPkgFunc
- HiLink mvPkg_combstruct mvPkgFunc
- HiLink mvPkg_difforms mvPkgFunc
- HiLink mvPkg_finance mvPkgFunc
- HiLink mvPkg_genfunc mvPkgFunc
- HiLink mvPkg_geometry mvPkgFunc
- HiLink mvPkg_grobner mvPkgFunc
- HiLink mvPkg_group mvPkgFunc
- HiLink mvPkg_inttrans mvPkgFunc
- HiLink mvPkg_liesymm mvPkgFunc
- HiLink mvPkg_linalg mvPkgFunc
- HiLink mvPkg_logic mvPkgFunc
- HiLink mvPkg_networks mvPkgFunc
- HiLink mvPkg_numapprox mvPkgFunc
- HiLink mvPkg_numtheory mvPkgFunc
- HiLink mvPkg_orthopoly mvPkgFunc
- HiLink mvPkg_padic mvPkgFunc
- HiLink mvPkg_plots mvPkgFunc
- HiLink mvPkg_plottools mvPkgFunc
- HiLink mvPkg_powseries mvPkgFunc
- HiLink mvPkg_process mvPkgFunc
- HiLink mvPkg_simplex mvPkgFunc
- HiLink mvPkg_stats mvPkgFunc
- HiLink mvPkg_student mvPkgFunc
- HiLink mvPkg_sumtools mvPkgFunc
- HiLink mvPkg_tensor mvPkgFunc
- HiLink mvPkg_totorder mvPkgFunc
- HiLink mvRange mvOper
- HiLink mvSemiError mvError
- HiLink mvDelim Delimiter
+ 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
- HiLink mvAssign Delimiter
- HiLink mvBool Boolean
- HiLink mvComma Delimiter
- HiLink mvComment Comment
- HiLink mvCond Conditional
- HiLink mvConstant Number
- HiLink mvDelayEval Label
- HiLink mvDcolon Delimiter
- HiLink mvError Error
- HiLink mvLibrary Statement
- HiLink mvNumber Number
- HiLink mvOper Operator
- HiLink mvAssign Delimiter
- HiLink mvPackage Type
- HiLink mvPkgFunc Function
- HiLink mvPktOption Special
- HiLink mvRepeat Repeat
- HiLink mvSpecial Special
- HiLink mvStatement Statement
- HiLink mvName String
- HiLink mvString String
- HiLink mvTodo Todo
-
- delcommand HiLink
+ 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
diff --git a/runtime/syntax/markdown.vim b/runtime/syntax/markdown.vim
index 068115e92d..1955a7443e 100644
--- a/runtime/syntax/markdown.vim
+++ b/runtime/syntax/markdown.vim
@@ -2,7 +2,7 @@
" Language: Markdown
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Filenames: *.markdown
-" Last Change: 2013 May 30
+" Last Change: 2016 Aug 29
if exists("b:current_syntax")
finish
@@ -70,29 +70,34 @@ syn region markdownUrlTitle matchgroup=markdownUrlTitleDelimiter start=+"+ end=+
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="\]\%( \=[[(]\)\@=" keepend nextgroup=markdownLink,markdownId skipwhite contains=@markdownInline,markdownLineStart
+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
-syn region markdownItalic start="\S\@<=\*\|\*\S\@=" end="\S\@<=\*\|\*\S\@=" keepend contains=markdownLineStart
-syn region markdownItalic start="\S\@<=_\|_\S\@=" end="\S\@<=_\|_\S\@=" keepend contains=markdownLineStart
-syn region markdownBold start="\S\@<=\*\*\|\*\*\S\@=" end="\S\@<=\*\*\|\*\*\S\@=" keepend contains=markdownLineStart,markdownItalic
-syn region markdownBold start="\S\@<=__\|__\S\@=" end="\S\@<=__\|__\S\@=" keepend contains=markdownLineStart,markdownItalic
-syn region markdownBoldItalic start="\S\@<=\*\*\*\|\*\*\*\S\@=" end="\S\@<=\*\*\*\|\*\*\*\S\@=" keepend contains=markdownLineStart
-syn region markdownBoldItalic start="\S\@<=___\|___\S\@=" end="\S\@<=___\|___\S\@=" keepend contains=markdownLineStart
+let s:concealends = has('conceal') ? ' concealends' : ''
+exe 'syn region markdownItalic matchgroup=markdownItalicDelimiter start="\S\@<=\*\|\*\S\@=" end="\S\@<=\*\|\*\S\@=" keepend contains=markdownLineStart' . s:concealends
+exe 'syn region markdownItalic matchgroup=markdownItalicDelimiter start="\S\@<=_\|_\S\@=" end="\S\@<=_\|_\S\@=" keepend contains=markdownLineStart' . s:concealends
+exe 'syn region markdownBold matchgroup=markdownBoldDelimiter start="\S\@<=\*\*\|\*\*\S\@=" end="\S\@<=\*\*\|\*\*\S\@=" keepend contains=markdownLineStart,markdownItalic' . s:concealends
+exe 'syn region markdownBold matchgroup=markdownBoldDelimiter start="\S\@<=__\|__\S\@=" end="\S\@<=__\|__\S\@=" keepend contains=markdownLineStart,markdownItalic' . s:concealends
+exe 'syn region markdownBoldItalic matchgroup=markdownBoldItalicDelimiter start="\S\@<=\*\*\*\|\*\*\*\S\@=" end="\S\@<=\*\*\*\|\*\*\*\S\@=" keepend contains=markdownLineStart' . s:concealends
+exe 'syn region markdownBoldItalic matchgroup=markdownBoldItalicDelimiter start="\S\@<=___\|___\S\@=" end="\S\@<=___\|___\S\@=" keepend contains=markdownLineStart' . s:concealends
+
syn region markdownCode matchgroup=markdownCodeDelimiter start="`" end="`" keepend contains=markdownLineStart
syn region markdownCode matchgroup=markdownCodeDelimiter start="`` \=" end=" \=``" keepend contains=markdownLineStart
syn region markdownCode matchgroup=markdownCodeDelimiter start="^\s*```.*$" end="^\s*```\ze\s*$" keepend
+syn match markdownFootnote "\[^[^\]]\+\]"
+syn match markdownFootnoteDefinition "^\[^[^\]]\+\]:"
+
if main_syntax ==# 'markdown'
for s:type in g:markdown_fenced_languages
- exe 'syn region markdownHighlight'.substitute(matchstr(s:type,'[^=]*$'),'\..*','','').' matchgroup=markdownCodeDelimiter start="^\s*```'.matchstr(s:type,'[^=]*').'\>.*$" end="^\s*```\ze\s*$" keepend contains=@markdownHighlight'.substitute(matchstr(s:type,'[^=]*$'),'\.','','g')
+ exe 'syn region markdownHighlight'.substitute(matchstr(s:type,'[^=]*$'),'\..*','','').' matchgroup=markdownCodeDelimiter start="^\s*```\s*'.matchstr(s:type,'[^=]*').'\>.*$" end="^\s*```\ze\s*$" keepend contains=@markdownHighlight'.substitute(matchstr(s:type,'[^=]*$'),'\.','','g')
endfor
unlet! s:type
endif
-syn match markdownEscape "\\[][\\`*_{}()#+.!-]"
+syn match markdownEscape "\\[][\\`*_{}()<>#+.!-]"
syn match markdownError "\w\@<=_\w\@="
hi def link markdownH1 htmlH1
@@ -108,6 +113,9 @@ 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
@@ -119,8 +127,11 @@ 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 markdownCodeDelimiter Delimiter
hi def link markdownEscape Special
diff --git a/runtime/syntax/mason.vim b/runtime/syntax/mason.vim
index 40bdb0eaa4..f087def794 100644
--- a/runtime/syntax/mason.vim
+++ b/runtime/syntax/mason.vim
@@ -1,24 +1,18 @@
" Vim syntax file
-" Language: Mason (Perl embedded in HTML)
-" Maintainer: Andrew Smith <andrewdsmith@yahoo.com>
-" Last change: 2003 May 11
-" URL: http://www.masonhq.com/editors/mason.vim
+" Language: Mason (Perl embedded in HTML)
+" Maintainer: vim-perl <vim-perl@googlegroups.com>
+" Homepage: http://github.com/vim-perl/vim-perl/tree/master
+" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
+" Last Change: 2017-09-12
+" Contributors: Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
+" Andrew Smith <andrewdsmith@yahoo.com>
"
-" This seems to work satisfactorily with html.vim and perl.vim for version 5.5.
-" Please mail any fixes or improvements to the above address. Things that need
-" doing include:
-"
-" - Add match for component names in <& &> blocks.
-" - Add match for component names in <%def> and <%method> block delimiters.
+" TODO:
" - Fix <%text> blocks to show HTML tags but ignore Mason tags.
"
-" Clear previous syntax settings unless this is v6 or above, in which case just
-" exit without doing anything.
-"
-if version < 600
- syn clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -30,46 +24,46 @@ endif
" First pull in the HTML syntax.
"
-if version < 600
- so <sfile>:p:h/html.vim
-else
- runtime! syntax/html.vim
- unlet b:current_syntax
-endif
+runtime! syntax/html.vim
+unlet b:current_syntax
syn cluster htmlPreproc add=@masonTop
" Now pull in the Perl syntax.
"
-if version < 600
- syn include @perlTop <sfile>:p:h/perl.vim
-else
- syn include @perlTop syntax/perl.vim
-endif
+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 masonLine matchgroup=Delimiter start="^%" end="$" contains=@perlTop
-syn region masonExpr matchgroup=Delimiter start="<%" end="%>" contains=@perlTop
-syn region masonPerl matchgroup=Delimiter start="<%perl>" end="</%perl>" contains=@perlTop
-syn region masonComp keepend matchgroup=Delimiter start="<&" end="&>" contains=@perlTop
+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="</%perl>" 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="</%args>" contains=@perlTop
+syn region masonArgs matchgroup=Delimiter start="<%args>" end="</%args>" contains=masonPod,@perlTop
-syn region masonInit matchgroup=Delimiter start="<%init>" end="</%init>" contains=@perlTop
-syn region masonCleanup matchgroup=Delimiter start="<%cleanup>" end="</%cleanup>" contains=@perlTop
-syn region masonOnce matchgroup=Delimiter start="<%once>" end="</%once>" contains=@perlTop
-syn region masonShared matchgroup=Delimiter start="<%shared>" end="</%shared>" contains=@perlTop
+syn region masonInit matchgroup=Delimiter start="<%init>" end="</%init>" contains=masonPod,@perlTop
+syn region masonCleanup matchgroup=Delimiter start="<%cleanup>" end="</%cleanup>" contains=masonPod,@perlTop
+syn region masonOnce matchgroup=Delimiter start="<%once>" end="</%once>" contains=masonPod,@perlTop
+syn region masonClass matchgroup=Delimiter start="<%class>" end="</%class>" contains=masonPod,@perlTop
+syn region masonShared matchgroup=Delimiter start="<%shared>" end="</%shared>" contains=masonPod,@perlTop
-syn region masonDef matchgroup=Delimiter start="<%def[^>]*>" end="</%def>" contains=@htmlTop
-syn region masonMethod matchgroup=Delimiter start="<%method[^>]*>" end="</%method>" contains=@htmlTop
+syn region masonDef matchgroup=Delimiter start="<%def\s*[-._/[:alnum:]]\+\s*>" end="</%def>" contains=@htmlTop
+syn region masonMethod matchgroup=Delimiter start="<%method\s*[-._/[:alnum:]]\+\s*>" end="</%method>" contains=@htmlTop
-syn region masonFlags matchgroup=Delimiter start="<%flags>" end="</%flags>" contains=@perlTop
-syn region masonAttr matchgroup=Delimiter start="<%attr>" end="</%attr>" contains=@perlTop
+syn region masonFlags matchgroup=Delimiter start="<%flags>" end="</%flags>" contains=masonPod,@perlTop
+syn region masonAttr matchgroup=Delimiter start="<%attr>" end="</%attr>" contains=masonPod,@perlTop
-syn region masonFilter matchgroup=Delimiter start="<%filter>" end="</%filter>" contains=@perlTop
+syn region masonFilter matchgroup=Delimiter start="<%filter>" end="</%filter>" contains=masonPod,@perlTop
syn region masonDoc matchgroup=Delimiter start="<%doc>" end="</%doc>"
syn region masonText matchgroup=Delimiter start="<%text>" end="</%text>"
@@ -78,19 +72,9 @@ syn cluster masonTop contains=masonLine,masonExpr,masonPerl,masonComp,masonArgs,
" Set up default highlighting. Almost all of this is done in the included
" syntax files.
-"
-if version >= 508 || !exists("did_mason_syn_inits")
- if version < 508
- let did_mason_syn_inits = 1
- com -nargs=+ HiLink hi link <args>
- else
- com -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink masonDoc Comment
-
- delc HiLink
-endif
+hi def link masonDoc Comment
+hi def link masonPod Comment
+hi def link masonPerlComment perlComment
let b:current_syntax = "mason"
diff --git a/runtime/syntax/master.vim b/runtime/syntax/master.vim
index 40d644eef9..f89c5b2f1c 100644
--- a/runtime/syntax/master.vim
+++ b/runtime/syntax/master.vim
@@ -8,11 +8,8 @@
" this is a very simple syntax file - I will be improving it
" add entire DEFINE syntax
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -28,22 +25,12 @@ syn region masterString start=+'+ end=+'+
syn match masterComment "\$.*"
" 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_master_syntax_inits")
- if version < 508
- let did_master_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink masterKeyword Keyword
- HiLink masterComment Comment
- HiLink masterString String
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/matlab.vim b/runtime/syntax/matlab.vim
index 3828f3e8a8..5228bb5c43 100644
--- a/runtime/syntax/matlab.vim
+++ b/runtime/syntax/matlab.vim
@@ -1,18 +1,17 @@
" Vim syntax file
" Language: Matlab
-" Maintainer: Maurizio Tranchero - maurizio(.)tranchero(@)gmail(.)com
+" Maintainer: Alex Burka <vim@alexburka.com>
" Credits: Preben 'Peppe' Guldberg <peppe-vim@wielders.org>
+" Maurizio Tranchero - maurizio(.)tranchero(@)gmail(.)com
" Original author: Mario Eusebio
-" Last Change: Wed Jan 13 11:12:34 CET 2010
-" sinh added to matlab implicit commands
+" Last Change: Mon Jan 23 2017
+" added support for cell mode
" Change History:
+" - now highlights cell-mode separator comments
" - 'global' and 'persistent' keyword are now recognized
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -63,6 +62,7 @@ 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
@@ -76,49 +76,40 @@ syn match matlabError "-\=\<\d\+\.\d\+\.[^*/\\^]"
syn match matlabError "-\=\<\d\+\.\d\+[eEdD][-+]\=\d\+\.\([^*/\\^]\)"
" 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_matlab_syntax_inits")
- if version < 508
- let did_matlab_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink matlabTransposeOperator matlabOperator
- HiLink matlabOperator Operator
- HiLink matlabLineContinuation Special
- HiLink matlabLabel Label
- HiLink matlabConditional Conditional
- HiLink matlabExceptions Conditional
- HiLink matlabRepeat Repeat
- HiLink matlabTodo Todo
- HiLink matlabString String
- HiLink matlabDelimiter Identifier
- HiLink matlabTransposeOther Identifier
- HiLink matlabNumber Number
- HiLink matlabFloat Float
- HiLink matlabFunction Function
- HiLink matlabError Error
- HiLink matlabImplicit matlabStatement
- HiLink matlabStatement Statement
- HiLink matlabOO Statement
- HiLink matlabSemicolon SpecialChar
- HiLink matlabComment Comment
- HiLink matlabMultilineComment Comment
- HiLink matlabScope Type
-
- HiLink matlabArithmeticOperator matlabOperator
- HiLink matlabRelationalOperator matlabOperator
- HiLink matlabLogicalOperator matlabOperator
+" 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 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
- "HiLink matlabIdentifier Identifier
- "HiLink matlabTab Error
+"hi def link matlabIdentifier Identifier
+"hi def link matlabTab Error
- delcommand HiLink
-endif
let b:current_syntax = "matlab"
diff --git a/runtime/syntax/maxima.vim b/runtime/syntax/maxima.vim
index 27dcc18842..46e1e4ff84 100644
--- a/runtime/syntax/maxima.vim
+++ b/runtime/syntax/maxima.vim
@@ -6,11 +6,8 @@
" Adapted mostly from xmath.vim
" Number formats adapted from r.vim
"
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -234,41 +231,31 @@ syn sync match maximaSyncComment grouphere maximaCommentBlock "/*"
syn sync match maximaSyncComment groupthere NONE "*/"
" 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_maxima_syntax_inits")
- if version < 508
- let did_maxima_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink maximaBraceError maximaError
- HiLink maximaCmd maximaStatement
- HiLink maximaCurlyError maximaError
- HiLink maximaFuncCmd maximaStatement
- HiLink maximaParenError maximaError
+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
- HiLink maximaCharacter Character
- HiLink maximaComma Function
- HiLink maximaCommentBlock Comment
- HiLink maximaConditional Conditional
- HiLink maximaError Error
- HiLink maximaFunc Delimiter
- HiLink maximaOp Delimiter
- HiLink maximaLabel PreProc
- HiLink maximaNumber Number
- HiLink maximaFloat Float
- HiLink maximaRepeat Repeat
- HiLink maximaSpecial Type
- HiLink maximaSpecialChar SpecialChar
- HiLink maximaStatement Statement
- HiLink maximaString String
- HiLink maximaTodo Todo
+" 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
- delcommand HiLink
-endif
let b:current_syntax = "maxima"
diff --git a/runtime/syntax/mel.vim b/runtime/syntax/mel.vim
index a668e70378..ea6e75fa22 100644
--- a/runtime/syntax/mel.vim
+++ b/runtime/syntax/mel.vim
@@ -4,11 +4,8 @@
" Last Change: May 27 1999
" Based on: Bram Moolenaar <Bram@vim.org> C syntax file
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -77,45 +74,35 @@ endif
exec "sy sync ccomment melComment minlines=" . mel_minlines
" 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_mel_syntax_inits")
- if version < 508
- let did_mel_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink melBoolean Boolean
- HiLink melFunction Function
- HiLink melIdentifier Identifier
- HiLink melStatement Statement
- HiLink melConditional Conditional
- HiLink melRepeat Repeat
- HiLink melLabel Label
- HiLink melOperator Operator
- HiLink melKeyword Keyword
- HiLink melException Exception
- HiLink melInclude Include
- HiLink melType Type
- HiLink melStorageClass StorageClass
- HiLink melDebug Debug
- HiLink melTodo Todo
- HiLink melCharSpecial SpecialChar
- HiLink melString String
- HiLink melInteger Number
- HiLink melFloat Float
- HiLink melMatrixVector Float
- HiLink melComment Comment
- HiLink melError Error
- HiLink melSpaceError melError
- HiLink melCharError melError
- HiLink melParenError melError
- HiLink melInParen melError
- HiLink melCommentError melError
-
- delcommand HiLink
-endif
+" 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/mf.vim b/runtime/syntax/mf.vim
index 8bc48fee46..3589e4db3c 100644
--- a/runtime/syntax/mf.vim
+++ b/runtime/syntax/mf.vim
@@ -1,197 +1,295 @@
" Vim syntax file
-" Language: Metafont
-" Maintainer: Andreas Scherer <andreas.scherer@pobox.com>
-" Last Change: April 25, 2001
-
-" For version 5.x: Clear all syntax items
-" For version 6.x: Quit when a syntax file was already loaded
-if version < 600
- syn clear
-elseif exists("b:current_syntax")
+" Language: METAFONT
+" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
+" Former Maintainers: Andreas Scherer <andreas.scherer@pobox.com>
+" Last Change: 2016 Oct 1
+
+if exists("b:current_syntax")
finish
endif
-" Metafont 'primitives' as defined in chapter 25 of 'The METAFONTbook'
+syn iskeyword @,_
+
+" METAFONT 'primitives' as defined in chapter 25 of 'The METAFONTbook'
" Page 210: 'boolean expressions'
-syn keyword mfBoolExp true false known unknown odd charexists not and or
+syn keyword mfBoolExp and charexists false known not odd or true unknown
" Page 210: 'numeric expression'
-syn keyword mfNumExp normaldeviate length ASCII oct hex angle turningnumber
-syn keyword mfNumExp totalweight directiontime xpart ypart xxpart xypart
-syn keyword mfNumExp yxpart yypart sqrt sind cosd mlog mexp floor
-syn keyword mfNumExp uniformdeviate
+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 tracingtitles tracingequations tracingcapsules
-syn keyword mfInternal tracingchoices tracingspecs tracingpens
-syn keyword mfInternal tracingcommands tracingrestores tracingmacros
-syn keyword mfInternal tracingedges tracingoutput tracingonline tracingstats
-syn keyword mfInternal pausing showstopping fontmaking proofing
-syn keyword mfInternal turningcheck warningcheck smoothing autorounding
-syn keyword mfInternal granularity fillin year month day time
-syn keyword mfInternal charcode charext charwd charht chardp charic
-syn keyword mfInternal chardx chardy designsize hppp vppp xoffset yoffset
-syn keyword mfInternal boundarychar
+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 point of precontrol postcontrol penoffset rotated
-syn keyword mfPairExp scaled shifted slanted transformed xscaled yscaled
-syn keyword mfPairExp zscaled
+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 makepath reverse subpath curl tension atleast
-syn keyword mfPathExp controls cycle
+syn keyword mfPathExp atleast controls curl cycle makepath reverse
+syn keyword mfPathExp subpath tension
" Page 214: 'pen expressions'
-syn keyword mfPenExp nullpen pencircle makepen
+syn keyword mfPenExp makepen nullpen pencircle
-" Page 214: 'picutre expressions'
-syn keyword mfPicExp nullpicture
+" Page 214: 'picture expressions'
+syn keyword mfPicExp nullpicture
" Page 214: 'string expressions'
-syn keyword mfStringExp jobname readstring str char decimal substring
+syn keyword mfStringExp char decimal readstring str substring
" Page 217: 'commands and statements'
-syn keyword mfCommand end dump save interim newinternal randomseed let
-syn keyword mfCommand delimiters outer everyjob show showvariable showtoken
-syn keyword mfCommand showdependencies showstats message errmessage errhelp
-syn keyword mfCommand batchmode nonstopmode scrollmode errorstopmode
-syn keyword mfCommand addto also contour doublepath withpen withweight cull
-syn keyword mfCommand keeping dropping display inwindow openwindow at from to
-syn keyword mfCommand shipout special numspecial
+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 transform
+syn keyword mfType boolean numeric pair path pen picture string
+syn keyword mfType transform
" Page 155: 'grouping'
-syn keyword mfStatement begingroup endgroup
+syn keyword mfStatement begingroup endgroup
" Page 165: 'definitions'
-syn keyword mfDefinition enddef def expr suffix text primary secondary
-syn keyword mfDefinition tertiary vardef primarydef secondarydef tertiarydef
+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 if fi else elseif endfor for forsuffixes forever
-syn keyword mfCondition step until exitif
+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
-syn keyword mfPrimitive fontdimen headerbyte inner input intersectiontimes
-syn keyword mfPrimitive kern ligtable quote scantokens skipto
+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 !exists("plain_mf_macros")
- let plain_mf_macros = 1 " Set this to '0' if your source gets too colourful
- " metapost.vim does so to turn off Metafont macros
+if 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 "\<good\.\%(x\|y\|lft\|rt\|top\|bot\)\>"
+ 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
-if plain_mf_macros
- syn keyword mfMacro abs addto_currentpicture aspect_ratio base_name
- syn keyword mfMacro base_version beginchar blacker blankpicture bot bye byte
- syn keyword mfMacro capsule_def ceiling change_width clear_pen_memory clearit
- syn keyword mfMacro clearpen clearxy counterclockwise culldraw cullit
- syn keyword mfMacro currentpen currentpen_path currentpicture
- syn keyword mfMacro currenttransform currentwindow cutdraw cutoff d decr
- syn keyword mfMacro define_blacker_pixels define_corrected_pixels
- syn keyword mfMacro define_good_x_pixels define_good_y_pixels
- syn keyword mfMacro define_horizontal_corrected_pixels define_pixels
- syn keyword mfMacro define_whole_blacker_pixels define_whole_pixels
- syn keyword mfMacro define_whole_vertical_blacker_pixels
- syn keyword mfMacro define_whole_vertical_pixels dir direction directionpoint
- syn keyword mfMacro displaying ditto div dotprod down downto draw drawdot
- syn keyword mfMacro endchar eps epsilon extra_beginchar extra_endchar
- syn keyword mfMacro extra_setup erase exitunless fill filldraw fix_units flex
- syn keyword mfMacro font_coding_scheme font_extra_space font_identifier
- syn keyword mfMacro font_normal_shrink font_normal_space font_normal_stretch
- syn keyword mfMacro font_quad font_setup font_size font_slant font_x_height
- syn keyword mfMacro fullcircle generate gfcorners gobble gobbled grayfont h
- syn keyword mfMacro halfcircle hide hround identity image_rules incr infinity
- syn keyword mfMacro interact interpath intersectionpoint inverse italcorr
- syn keyword mfMacro join_radius killtext labelfont labels left lft localfont
- syn keyword mfMacro loggingall lowres lowres_fix mag magstep makebox makegrid
- syn keyword mfMacro makelabel maketicks max min mod mode mode_def mode_name
- syn keyword mfMacro mode_setup nodisplays notransforms number_of_modes numtok
- syn keyword mfMacro o_correction openit origin pen_bot pen_lft pen_rt pen_top
- syn keyword mfMacro penlabels penpos penrazor penspeck pensquare penstroke
- syn keyword mfMacro pickup pixels_per_inch proof proofoffset proofrule
- syn keyword mfMacro proofrulethickness quartercircle range reflectedabout
- syn keyword mfMacro relax right rotatedabout rotatedaround round rt rulepen
- syn keyword mfMacro savepen screenchars screen_rows screen_cols screenrule
- syn keyword mfMacro screenstrokes shipit showit slantfont smode smoke softjoin
- syn keyword mfMacro solve stop superellipse takepower tensepath titlefont
- syn keyword mfMacro tolerance top tracingall tracingnone undraw undrawdot
- syn keyword mfMacro unfill unfilldraw unitpixel unitsquare unitvector up upto
- syn keyword mfMacro vround w whatever
+
+" By default, METAFONT loads modes.mf, too
+if get(g:, "plain_mf_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 !exists("other_mf_macros")
- let other_mf_macros = 1 " Set this to '0' if your code gets too colourful
- " metapost.vim does so to turn off Metafont macros
-endif
-if other_mf_macros
- syn keyword mfMacro beginlogochar
+if 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\+"
+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\)\#\=\>"
-
-" Metafont coordinates and points
-syn match mfCoord "\<[xy]\d\+\>"
-syn match mfPoint "\<z\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 region mfString start=+"+ end=+"+
+syn match mfOpenString /"[^"]*/
+syn region mfString oneline keepend start=+"+ end=+"+
" Comments:
-syn match mfComment "%.*$"
+syn keyword mfTodoComment contained TODO FIXME XXX DEBUG NOTE
+syn match mfComment "%.*$" contains=mfTodoComment,@Spell
" synchronizing
syn sync maxlines=50
" 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_mf_syntax_inits")
- if version < 508
- let did_mf_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink mfBoolExp Statement
- HiLink mfNumExp Statement
- HiLink mfInternal Identifier
- HiLink mfPairExp Statement
- HiLink mfPathExp Statement
- HiLink mfPenExp Statement
- HiLink mfPicExp Statement
- HiLink mfStringExp Statement
- HiLink mfCommand Statement
- HiLink mfType Type
- HiLink mfStatement Statement
- HiLink mfDefinition Statement
- HiLink mfCondition Conditional
- HiLink mfPrimitive Statement
- HiLink mfMacro Macro
- HiLink mfCoord Identifier
- HiLink mfPoint Identifier
- HiLink mfNumeric Number
- HiLink mfLength Number
- HiLink mfComment Comment
- HiLink mfString String
-
- delcommand HiLink
-endif
+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
let b:current_syntax = "mf"
-" vim: ts=8
+" vim:sw=2
diff --git a/runtime/syntax/mgl.vim b/runtime/syntax/mgl.vim
index 55ae137f2f..f7bc617f5a 100644
--- a/runtime/syntax/mgl.vim
+++ b/runtime/syntax/mgl.vim
@@ -6,9 +6,8 @@
"
" $Id: mgl.vim,v 1.1 2006/02/21 22:08:20 vimboss Exp $
"
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -84,43 +83,33 @@ syn keyword mglPredefined exception
" 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_mgl_syn_inits")
- if version < 508
- let did_mgl_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink mglBoolean Boolean
- HiLink mglComment Comment
- HiLink mglConditional Conditional
- HiLink mglConstant Constant
- HiLink mglException Exception
- HiLink mglFunction Function
- HiLink mglLabel Label
- HiLink mglMatrixDelimiter Identifier
- HiLink mglNumber Number
- HiLink mglHexNumber Number
- HiLink mglCharacter Number
- HiLink mglIpAddr Number
- HiLink mglOperator Operator
- HiLink mglPredefined mglFunction
- HiLink mglPreProc PreProc
- HiLink mglRepeat Repeat
- HiLink mglStatement Statement
- HiLink mglString String
- HiLink mglStringEscape Special
- HiLink mglStringEscapeGPC Special
- HiLink mglStringError Error
- HiLink mglStruct mglStatement
- HiLink mglSymbolOperator mglOperator
- HiLink mglType Type
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/mgp.vim b/runtime/syntax/mgp.vim
index 76b96612e2..7227804550 100644
--- a/runtime/syntax/mgp.vim
+++ b/runtime/syntax/mgp.vim
@@ -10,11 +10,8 @@
" SPAM is _NOT_ welcome - be ready to be reported!
-" For version 5.x: Clear all syntax items
-" For version 6.x: Quit when a syntax file was already loaded
-if version < 600
- syn clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -48,36 +45,25 @@ syn match mgpNoDefault +^%nodefault$+
" 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_mgp_syn_inits")
- let did_mgp_syn_inits = 1
- if version < 508
- let did_mgp_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink mgpLineSkip Special
+hi def link mgpLineSkip Special
- HiLink mgpHash mgpComment
- HiLink mgpPercent mgpComment
- HiLink mgpComment Comment
+hi def link mgpHash mgpComment
+hi def link mgpPercent mgpComment
+hi def link mgpComment Comment
- HiLink mgpCommand Identifier
+hi def link mgpCommand Identifier
- HiLink mgpLine Type
+hi def link mgpLine Type
- HiLink mgpFile String
- HiLink mgpSize Number
- HiLink mgpValue Number
+hi def link mgpFile String
+hi def link mgpSize Number
+hi def link mgpValue Number
- HiLink mgpPage mgpDefine
- HiLink mgpNoDefault mgpDefine
- HiLink mgpDefine Define
+hi def link mgpPage mgpDefine
+hi def link mgpNoDefault mgpDefine
+hi def link mgpDefine Define
- delcommand HiLink
-endif
let b:current_syntax = "mgp"
diff --git a/runtime/syntax/mma.vim b/runtime/syntax/mma.vim
index c63beb1195..0683adc573 100644
--- a/runtime/syntax/mma.vim
+++ b/runtime/syntax/mma.vim
@@ -35,9 +35,8 @@
" fix nesting
" finish populating popular symbols
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -283,47 +282,38 @@ syntax sync fromstart
"set foldnestmax=1
"set foldminlines=15
-if version >= 508 || !exists("did_mma_syn_inits")
- if version < 508
- let did_mma_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " 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
-
-
- HiLink mmaComment Comment
- HiLink mmaCommentStar Comment
- HiLink mmaFunctionComment Comment
- HiLink mmaLooseQuote Comment
- HiLink mmaGenericFunction Function
- HiLink mmaVariable Identifier
-" HiLink mmaSymbol Identifier
- HiLink mmaOperator Operator
- HiLink mmaPatternOp Operator
- HiLink mmaPureFunction Operator
- HiLink mmaString String
- HiLink mmaCommentString String
- HiLink mmaUnicode String
- HiLink mmaMessage Type
- HiLink mmaNumber Type
- HiLink mmaPattern Type
- HiLink mmaError Error
- HiLink mmaFixme Error
- HiLink mmaPatternError Error
- HiLink mmaTodo Todo
- HiLink mmaemPHAsis Special
- HiLink mmaFunctionTitle Special
- HiLink mmaMessageType Special
- HiLink mmaItem Preproc
-
- delcommand HiLink
-endif
+
+" 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"
diff --git a/runtime/syntax/mmix.vim b/runtime/syntax/mmix.vim
index 79ca781402..39e209336e 100644
--- a/runtime/syntax/mmix.vim
+++ b/runtime/syntax/mmix.vim
@@ -9,9 +9,8 @@
" Limitations: Comments must start with either % or //
" (preferably %, Knuth-Style)
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -119,44 +118,34 @@ syn match mmixRegister "r[A-Z]"
syn keyword mmixRegister rBB rTT rWW rXX rYY rZZ
" 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_mmix_syntax_inits")
- if version < 508
- let did_mmix_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " The default methods for highlighting. Can be overridden later
- HiLink mmixAt Type
- HiLink mmixPseudo Type
- HiLink mmixRegister Special
- HiLink mmixSegments Type
-
- HiLink mmixLabel Special
- HiLink mmixComment Comment
- HiLink mmixOpcode Keyword
-
- HiLink hexNumber Number
- HiLink decNumber Number
- HiLink octNumber Number
-
- HiLink mmixString String
- HiLink mmixChar String
-
- HiLink mmixType Type
- HiLink mmixIdentifier Normal
- HiLink mmixSpecialComment Comment
-
- " My default color overrides:
- " hi mmixSpecialComment ctermfg=red
- "hi mmixLabel ctermfg=lightcyan
- " hi mmixType ctermbg=black ctermfg=brown
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/mmp.vim b/runtime/syntax/mmp.vim
index 0117e77925..d0b9f7cfb5 100644
--- a/runtime/syntax/mmp.vim
+++ b/runtime/syntax/mmp.vim
@@ -5,11 +5,8 @@
" URL: http://ronware.org/wiki/vim/mmp
" Filetypes: *.mmp
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -34,8 +31,7 @@ syn match mmpNumber "0x\x\+"
" 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
+" Only when an item doesn't have highlighting yet
if !exists("did_mmp_syntax_inits")
let did_mmp_syntax_inits=1
diff --git a/runtime/syntax/modconf.vim b/runtime/syntax/modconf.vim
index 54b6593b66..76b36edcf0 100644
--- a/runtime/syntax/modconf.vim
+++ b/runtime/syntax/modconf.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: modules.conf(5) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2007-10-25
+" Language: modules.conf(5) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2007-10-25
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/modsim3.vim b/runtime/syntax/modsim3.vim
index 04e9ab9ab6..ce35033402 100644
--- a/runtime/syntax/modsim3.vim
+++ b/runtime/syntax/modsim3.vim
@@ -12,10 +12,8 @@
"
" very basic things only (based on the modula2 and c files).
-if version < 600
- " Remove any old syntax stuff hanging around
- syn clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -77,31 +75,21 @@ syn region modsim3String start=+"+ end=+"+
syn match modsim3Literal "'[^']'\|''''"
" 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_modsim3_syntax_inits")
- if version < 508
- let did_modsim3_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " The default methods for highlighting. Can be overridden later
- HiLink modsim3Keyword Statement
- HiLink modsim3Block Statement
- HiLink modsim3Comment1 Comment
- HiLink modsim3Comment2 Comment
- HiLink modsim3String String
- HiLink modsim3Literal Character
- HiLink modsim3Include Statement
- HiLink modsim3Type Type
- HiLink modsim3ParenError Error
- HiLink modsim3Builtin Function
- HiLink modsim3BuiltinNoParen Function
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/modula2.vim b/runtime/syntax/modula2.vim
index 3018900e80..4a14cf1f6f 100644
--- a/runtime/syntax/modula2.vim
+++ b/runtime/syntax/modula2.vim
@@ -4,11 +4,8 @@
" based on original work of Bram Moolenaar <Bram@vim.org>
" Last Change: 2001 May 09
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -54,32 +51,22 @@ syn region modula2String start="'" end="'"
syn region modula2Set start="{" end="}"
" 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_modula2_syntax_inits")
- if version < 508
- let did_modula2_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink modula2Ident Identifier
- HiLink modula2StdConst Boolean
- HiLink modula2Type Identifier
- HiLink modula2StdFunc Identifier
- HiLink modula2Header Type
- HiLink modula2Keyword Statement
- HiLink modula2AttKeyword PreProc
- HiLink modula2Comment Comment
- " The following is just a matter of taste (you want to try this instead):
- " hi modula2Comment term=bold ctermfg=DarkBlue guifg=Blue gui=bold
- HiLink modula2Todo Todo
- HiLink modula2String String
- HiLink modula2Set String
+hi def link modula2Ident Identifier
+hi def link modula2StdConst Boolean
+hi def link modula2Type Identifier
+hi def link modula2StdFunc Identifier
+hi def link modula2Header Type
+hi def link modula2Keyword Statement
+hi def link modula2AttKeyword PreProc
+hi def link modula2Comment Comment
+" The following is just a matter of taste (you want to try this instead):
+" hi modula2Comment term=bold ctermfg=DarkBlue guifg=Blue gui=bold
+hi def link modula2Todo Todo
+hi def link modula2String String
+hi def link modula2Set String
- delcommand HiLink
-endif
let b:current_syntax = "modula2"
diff --git a/runtime/syntax/modula3.vim b/runtime/syntax/modula3.vim
index d6f72afbca..d9b89ca7ce 100644
--- a/runtime/syntax/modula3.vim
+++ b/runtime/syntax/modula3.vim
@@ -6,11 +6,8 @@
" Basic things only...
" Based on the modula 2 syntax file
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -46,24 +43,14 @@ syn region modula3String start=+"+ end=+"+
syn region modula3String start=+'+ end=+'+
" 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_modula3_syntax_inits")
- if version < 508
- let did_modula3_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- " The default methods for highlighting. Can be overridden later
- HiLink modula3Keyword Statement
- HiLink modula3Block PreProc
- HiLink modula3Comment Comment
- HiLink modula3String String
+" The default methods for highlighting. Can be overridden later
+hi def link modula3Keyword Statement
+hi def link modula3Block PreProc
+hi def link modula3Comment Comment
+hi def link modula3String String
- delcommand HiLink
-endif
let b:current_syntax = "modula3"
diff --git a/runtime/syntax/monk.vim b/runtime/syntax/monk.vim
index afe2b56190..3af810173a 100644
--- a/runtime/syntax/monk.vim
+++ b/runtime/syntax/monk.vim
@@ -21,11 +21,8 @@
" Initializing:
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -60,11 +57,7 @@ syn region monkUnquote matchgroup=Delimiter start=",@#(" end=")" contains=ALLBUT
" R5RS Scheme Functions and Syntax:
-if version < 600
- set iskeyword=33,35-39,42-58,60-90,94,95,97-122,126,_
-else
- setlocal iskeyword=33,35-39,42-58,60-90,94,95,97-122,126,_
-endif
+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 =>
@@ -201,32 +194,22 @@ syn sync match matchPlace grouphere NONE "^[^ \t]"
" ... i.e. synchronize on a line that starts at the left margin
" 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_monk_syntax_inits")
- if version < 508
- let did_monk_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink monkSyntax Statement
- HiLink monkFunc Function
-
- HiLink monkString String
- HiLink monkChar Character
- HiLink monkNumber Number
- HiLink monkBoolean Boolean
-
- HiLink monkDelimiter Delimiter
- HiLink monkConstant Constant
-
- HiLink monkComment Comment
- HiLink monkError Error
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/moo.vim b/runtime/syntax/moo.vim
index 10c5d3b4bc..617058f8e3 100644
--- a/runtime/syntax/moo.vim
+++ b/runtime/syntax/moo.vim
@@ -4,8 +4,8 @@
" Last Change: 2001 Oct 06
" Note: Requires Vim 6.0 or above
-" Quit when a syntax file was already loaded
-if version < 600 || exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
diff --git a/runtime/syntax/mp.vim b/runtime/syntax/mp.vim
index c0fd60b3da..a8fa36fe0a 100644
--- a/runtime/syntax/mp.vim
+++ b/runtime/syntax/mp.vim
@@ -1,132 +1,769 @@
" Vim syntax file
-" Language: MetaPost
-" Maintainer: Andreas Scherer <andreas.scherer@pobox.com>
-" Last Change: April 30, 2001
-
-" For version 5.x: Clear all syntax items
-" For version 6.x: Quit when a syntax file was already loaded
-if version < 600
- syn clear
-elseif exists("b:current_syntax")
+" Language: MetaPost
+" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
+" Former Maintainers: Andreas Scherer <andreas.scherer@pobox.com>
+" Last Change: 2016 Oct 14
+
+if exists("b:current_syntax")
finish
endif
-let plain_mf_macros = 0 " plain.mf has no special meaning for MetaPost
-let other_mf_macros = 0 " cmbase.mf, logo.mf, ... neither
+let s:cpo_sav = &cpo
+set cpo&vim
+
+if exists("g:plain_mf_macros")
+ let s:plain_mf_macros = g:plain_mf_macros
+endif
+if exists("g:plain_mf_modes")
+ let s:plain_mf_modes = g:plain_mf_modes
+endif
+if exists("g:other_mf_macros")
+ let s:other_mf_macros = g:other_mf_macros
+endif
+
+let g:plain_mf_macros = 0 " plain.mf has no special meaning for MetaPost
+let g:plain_mf_modes = 0 " No METAFONT modes
+let g:other_mf_macros = 0 " cmbase.mf, logo.mf, ... neither
-" Read the Metafont syntax to start with
-if version < 600
- source <sfile>:p:h/mf.vim
+" 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 exists("s:plain_mf_macros")
+ let g:plain_mf_macros = s:plain_mf_macros
+else
+ unlet g:plain_mf_macros
+endif
+if exists("s:plain_mf_modes")
+ let g:plain_mf_modes = s:plain_mf_modes
+else
+ unlet g:plain_mf_modes
+endif
+if exists("s:other_mf_macros")
+ let g:other_mf_macros = s:other_mf_macros
else
- runtime! syntax/mf.vim
+ unlet g:other_mf_macros
endif
-" MetaPost has TeX inserts for typeset labels
-" verbatimtex, btex, and etex will be treated as keywords
-syn match mpTeXbegin "\(verbatimtex\|btex\)"
-syn match mpTeXend "etex"
-syn region mpTeXinsert start="\(verbatimtex\|btex\)"hs=e+1 end="etex"he=s-1 contains=mpTeXbegin,mpTeXend keepend
+" 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
+ \ start=/\<verbatimtex\>\|\<btex\>/rs=e+1
+ \ end=/\<etex\>/re=s-1 keepend
+ \ contains=@MPTeX,mpTeXdelim
-" MetaPost primitives not found in Metafont
-syn keyword mpInternal bluepart clip color dashed fontsize greenpart infont
-syn keyword mpInternal linecap linejoin llcorner lrcorner miterlimit mpxbreak
-syn keyword mpInternal prologues redpart setbounds tracinglostchars
-syn keyword mpInternal truecorners ulcorner urcorner withcolor
+" 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 @,_
-" Metafont primitives not found in MetaPost
-syn keyword notDefined autorounding chardx chardy fillin granularity hppp
-syn keyword notDefined proofing smoothing tracingedges tracingpens
-syn keyword notDefined turningcheck vppp xoffset yoffset
+" 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
+" envelope is seemingly undocumented, but it exists since mpost 1.003.
+" The syntax is: envelope <polygonal pen> of <path primary>. For example,
+" path p;
+" p := envelope pensquare of (up--left);
+" (Thanks to Daniel H. Luecking for the example!)
+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 !exists("plain_mp_macros")
- let plain_mp_macros = 1 " Set this to '0' if your source gets too colourful
-endif
-if plain_mp_macros
- syn keyword mpMacro ahangle ahlength background bbox bboxmargin beginfig
- syn keyword mpMacro beveled black blue buildcycle butt center cutafter
- syn keyword mpMacro cutbefore cuttings dashpattern defaultfont defaultpen
- syn keyword mpMacro defaultscale dotlabel dotlabels drawarrow drawdblarrow
- syn keyword mpMacro drawoptions endfig evenly extra_beginfig extra_endfig
- syn keyword mpMacro green label labeloffset mitered red rounded squared
- syn keyword mpMacro thelabel white base_name base_version
- syn keyword mpMacro upto downto exitunless relax gobble gobbled
- syn keyword mpMacro interact loggingall tracingall tracingnone
- syn keyword mpMacro eps epsilon infinity right left up down origin
- syn keyword mpMacro quartercircle halfcircle fullcircle unitsquare identity
- syn keyword mpMacro blankpicture withdots ditto EOF pensquare penrazor
- syn keyword mpMacro penspeck whatever abs round ceiling byte dir unitvector
- syn keyword mpMacro inverse counterclockwise tensepath mod div dotprod
- syn keyword mpMacro takepower direction directionpoint intersectionpoint
- syn keyword mpMacro softjoin incr decr reflectedabout rotatedaround
- syn keyword mpMacro rotatedabout min max flex superellipse interpath
- syn keyword mpMacro magstep currentpen currentpen_path currentpicture
- syn keyword mpMacro fill draw filldraw drawdot unfill undraw unfilldraw
- syn keyword mpMacro undrawdot erase cutdraw image pickup numeric_pickup
- syn keyword mpMacro pen_lft pen_rt pen_top pen_bot savepen clearpen
- syn keyword mpMacro clear_pen_memory lft rt top bot ulft urt llft lrt
- syn keyword mpMacro penpos penstroke arrowhead makelabel labels penlabel
- syn keyword mpMacro range numtok thru clearxy clearit clearpen pickup
- syn keyword mpMacro shipit bye hide stop solve
+if get(g:, "plain_mp_macros", 1) || get(g:, "mp_metafun_macros", 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 match mpVariable /\<\%(laboff\|labxf\|labyf\)\>/
+ syn match mpVariable /\<\%(laboff\|labxf\|labyf\)\.\%(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 !exists("mfplain_mp_macros")
- let mfplain_mp_macros = 0 " Set this to '1' to include these macro names
-endif
-if mfplain_mp_macros
- syn keyword mpMacro beginchar blacker capsule_def change_width
- syn keyword mpMacro define_blacker_pixels define_corrected_pixels
- syn keyword mpMacro define_good_x_pixels define_good_y_pixels
- syn keyword mpMacro define_horizontal_corrected_pixels
- syn keyword mpMacro define_pixels define_whole_blacker_pixels
- syn keyword mpMacro define_whole_vertical_blacker_pixels
- syn keyword mpMacro define_whole_vertical_pixels endchar
- syn keyword mpMacro extra_beginchar extra_endchar extra_setup
- syn keyword mpMacro font_coding_scheme font_extra_space font_identifier
- syn keyword mpMacro font_normal_shrink font_normal_space
- syn keyword mpMacro font_normal_stretch font_quad font_size
- syn keyword mpMacro font_slant font_x_height italcorr labelfont
- syn keyword mpMacro makebox makegrid maketicks mode_def mode_setup
- syn keyword mpMacro o_correction proofrule proofrulethickness rulepen smode
-
+if 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 mpMacro cullit currenttransform gfcorners grayfont hround
- syn keyword mpMacro imagerules lowres_fix nodisplays notransforms openit
- syn keyword mpMacro proofoffset screenchars screenrule screenstrokes
- syn keyword mpMacro showit slantfont titlefont unitpixel vround
+ 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 "\<good\.\%(x\|y\|lft\|rt\|top\|bot\)\>"
+ 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 other macro packages, e.g., boxes.mp
-if !exists("other_mp_macros")
- let other_mp_macros = 1 " Set this to '0' if your source gets too colourful
-endif
-if other_mp_macros
- syn keyword mpMacro circmargin defaultdx defaultdy
- syn keyword mpMacro boxit boxjoin bpath circleit drawboxed drawboxes
- syn keyword mpMacro drawunboxed fixpos fixsize pic
+" 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:, "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
+" Up to date as of 23-Sep-2016.
+if get(b:, 'mp_metafun_macros', get(g:, 'mp_metafun_macros', 0))
+ " Highlight TeX keywords (for use in ConTeXt documents)
+ syn match mpTeXKeyword '\\[a-zA-Z@]\+'
+
+ " These keywords have been added manually.
+ syn keyword mpPrimitive runscript
+
+ " The following MetaFun keywords have been extracted automatically from
+ " ConTeXt source code. They include all "public" macros (where a macro is
+ " considered public if and only if it does not start with _, mfun_, mlib_, or
+ " do_, and it does not end with _), all "public" unsaved variables, and all
+ " `let` statements.
+
+ " mp-abck.mpiv
+ syn keyword mpDef abck_grid_line anchor_box box_found boxfilloptions
+ syn keyword mpDef boxgridoptions boxlineoptions draw_multi_pars
+ syn keyword mpDef draw_multi_side draw_multi_side_path freeze_box
+ syn keyword mpDef initialize_box initialize_box_pos
+ syn keyword mpDef multi_side_draw_options show_multi_kind
+ syn keyword mpDef show_multi_pars
+ syn keyword mpVardef abck_baseline_grid abck_draw_path abck_graphic_grid
+ syn keyword mpVariable boxdashtype boxfilloffset boxfilltype
+ syn keyword mpVariable boxgriddirection boxgriddistance boxgridshift
+ syn keyword mpVariable boxgridtype boxgridwidth boxlineoffset
+ syn keyword mpVariable boxlineradius boxlinetype boxlinewidth multikind
+ syn keyword mpConstant context_abck
+ " mp-apos.mpiv
+ syn keyword mpDef anch_sidebars_draw boxfilloptions boxlineoptions
+ syn keyword mpDef connect_positions
+ syn keyword mpConstant context_apos
+ " mp-asnc.mpiv
+ syn keyword mpDef FlushSyncTasks ProcessSyncTask ResetSyncTasks
+ syn keyword mpDef SetSyncColor SetSyncThreshold SyncTask
+ syn keyword mpVardef PrepareSyncTasks SyncBox TheSyncColor
+ syn keyword mpVardef TheSyncThreshold
+ syn keyword mpVariable CurrentSyncClass NOfSyncPaths SyncColor
+ syn keyword mpVariable SyncLeftOffset SyncPaths SyncTasks SyncThreshold
+ syn keyword mpVariable SyncThresholdMethod SyncWidth
+ syn keyword mpConstant context_asnc
+ " mp-back.mpiv
+ syn keyword mpDef some_double_back some_hash
+ syn keyword mpVariable back_nillcolor
+ syn keyword mpConstant context_back
+ " mp-bare.mpiv
+ syn keyword mpVardef colordecimals rawtextext
+ syn keyword mpPrimaryDef infont
+ syn keyword mpConstant context_bare
+ " mp-base.mpiv
+ " This is essentially plain.mp with only a few keywords added
+ syn keyword mpNumExp graypart
+ syn keyword mpType graycolor greycolor
+ syn keyword mpConstant cyan magenta yellow
+ " mp-butt.mpiv
+ syn keyword mpDef predefinedbutton some_button
+ syn keyword mpConstant context_butt
+ " mp-char.mpiv
+ syn keyword mpDef flow_begin_chart flow_begin_sub_chart
+ syn keyword mpDef flow_chart_draw_comment flow_chart_draw_exit
+ syn keyword mpDef flow_chart_draw_label flow_chart_draw_text
+ syn keyword mpDef flow_clip_chart flow_collapse_points
+ syn keyword mpDef flow_connect_bottom_bottom flow_connect_bottom_left
+ syn keyword mpDef flow_connect_bottom_right flow_connect_bottom_top
+ syn keyword mpDef flow_connect_left_bottom flow_connect_left_left
+ syn keyword mpDef flow_connect_left_right flow_connect_left_top
+ syn keyword mpDef flow_connect_right_bottom flow_connect_right_left
+ syn keyword mpDef flow_connect_right_right flow_connect_right_top
+ syn keyword mpDef flow_connect_top_bottom flow_connect_top_left
+ syn keyword mpDef flow_connect_top_right flow_connect_top_top
+ syn keyword mpDef flow_draw_connection flow_draw_connection_point
+ syn keyword mpDef flow_draw_midpoint flow_draw_shape
+ syn keyword mpDef flow_draw_test_area flow_draw_test_shape
+ syn keyword mpDef flow_draw_test_shapes flow_end_chart
+ syn keyword mpDef flow_end_sub_chart flow_flush_connections
+ syn keyword mpDef flow_flush_picture flow_flush_pictures
+ syn keyword mpDef flow_flush_shape flow_flush_shapes
+ syn keyword mpDef flow_initialize_grid flow_new_chart flow_new_shape
+ syn keyword mpDef flow_scaled_to_grid flow_show_connection
+ syn keyword mpDef flow_show_connections flow_show_shapes
+ syn keyword mpDef flow_xy_offset flow_y_pos
+ syn keyword mpVardef flow_connection_path flow_down_on_grid
+ syn keyword mpVardef flow_down_to_grid flow_i_point flow_left_on_grid
+ syn keyword mpVardef flow_left_to_grid flow_offset
+ syn keyword mpVardef flow_points_initialized flow_right_on_grid
+ syn keyword mpVardef flow_right_to_grid flow_smooth_connection
+ syn keyword mpVardef flow_trim_points flow_trimmed flow_up_on_grid
+ syn keyword mpVardef flow_up_to_grid flow_valid_connection
+ syn keyword mpVardef flow_x_on_grid flow_xy_bottom flow_xy_left
+ syn keyword mpVardef flow_xy_on_grid flow_xy_right flow_xy_top
+ syn keyword mpVardef flow_y_on_grid
+ syn keyword mpVariable flow_arrowtip flow_chart_background_color
+ syn keyword mpVariable flow_chart_offset flow_comment_offset
+ syn keyword mpVariable flow_connection_arrow_size
+ syn keyword mpVariable flow_connection_dash_size
+ syn keyword mpVariable flow_connection_line_color
+ syn keyword mpVariable flow_connection_line_width
+ syn keyword mpVariable flow_connection_smooth_size flow_connections
+ syn keyword mpVariable flow_cpath flow_dash_pattern flow_dashline
+ syn keyword mpVariable flow_exit_offset flow_forcevalid flow_grid_height
+ syn keyword mpVariable flow_grid_width flow_label_offset flow_max_x
+ syn keyword mpVariable flow_max_y flow_peepshape flow_reverse_connection
+ syn keyword mpVariable flow_reverse_y flow_shape_action flow_shape_archive
+ syn keyword mpVariable flow_shape_decision flow_shape_down
+ syn keyword mpVariable flow_shape_fill_color flow_shape_height
+ syn keyword mpVariable flow_shape_left flow_shape_line_color
+ syn keyword mpVariable flow_shape_line_width flow_shape_loop
+ syn keyword mpVariable flow_shape_multidocument flow_shape_node
+ syn keyword mpVariable flow_shape_procedure flow_shape_product
+ syn keyword mpVariable flow_shape_right flow_shape_singledocument
+ syn keyword mpVariable flow_shape_subprocedure flow_shape_up
+ syn keyword mpVariable flow_shape_wait flow_shape_width
+ syn keyword mpVariable flow_show_all_points flow_show_con_points
+ syn keyword mpVariable flow_show_mid_points flow_showcrossing flow_smooth
+ syn keyword mpVariable flow_touchshape flow_xypoint flow_zfactor
+ syn keyword mpConstant context_flow
+ " mp-chem.mpiv
+ syn keyword mpDef chem_init_all chem_reset chem_start_structure
+ syn keyword mpDef chem_transformed
+ syn keyword mpVardef chem_ad chem_adj chem_align chem_arrow chem_au
+ syn keyword mpVardef chem_b chem_bb chem_bd chem_bw chem_c chem_cc
+ syn keyword mpVardef chem_ccd chem_cd chem_crz chem_cz chem_dash chem_db
+ syn keyword mpVardef chem_diff chem_dir chem_do chem_dr chem_draw
+ syn keyword mpVardef chem_drawarrow chem_eb chem_ed chem_ep chem_er
+ syn keyword mpVardef chem_es chem_et chem_fill chem_hb chem_init_some
+ syn keyword mpVardef chem_label chem_ldb chem_ldd chem_line chem_lr
+ syn keyword mpVardef chem_lrb chem_lrbd chem_lrd chem_lrh chem_lrn
+ syn keyword mpVardef chem_lrt chem_lrz chem_lsr chem_lsub chem_mark
+ syn keyword mpVardef chem_marked chem_mid chem_mids chem_midz chem_mir
+ syn keyword mpVardef chem_mov chem_move chem_number chem_oe chem_off
+ syn keyword mpVardef chem_pb chem_pe chem_r chem_r_fragment chem_rb
+ syn keyword mpVardef chem_rbd chem_rd chem_rdb chem_rdd chem_restore
+ syn keyword mpVardef chem_rh chem_rm chem_rn chem_rot chem_rr chem_rrb
+ syn keyword mpVardef chem_rrbd chem_rrd chem_rrh chem_rrn chem_rrt
+ syn keyword mpVardef chem_rrz chem_rsr chem_rsub chem_rt chem_rz chem_s
+ syn keyword mpVardef chem_save chem_sb chem_sd chem_set chem_sr chem_ss
+ syn keyword mpVardef chem_start_component chem_stop_component
+ syn keyword mpVardef chem_stop_structure chem_sub chem_symbol chem_tb
+ syn keyword mpVardef chem_text chem_z chem_zln chem_zlt chem_zn chem_zrn
+ syn keyword mpVardef chem_zrt chem_zt
+ syn keyword mpVariable chem_mark_pair chem_stack_mirror chem_stack_origin
+ syn keyword mpVariable chem_stack_p chem_stack_previous
+ syn keyword mpVariable chem_stack_rotation chem_trace_boundingbox
+ syn keyword mpVariable chem_trace_nesting chem_trace_text
+ syn keyword mpConstant context_chem
+ " mp-core.mpiv
+ syn keyword mpDef FlushSyncTasks ProcessSyncTask
+ syn keyword mpDef RegisterLocalTextArea RegisterPlainTextArea
+ syn keyword mpDef RegisterRegionTextArea RegisterTextArea
+ syn keyword mpDef ResetLocalTextArea ResetSyncTasks ResetTextAreas
+ syn keyword mpDef SaveTextAreas SetSyncColor SetSyncThreshold
+ syn keyword mpDef SyncTask anchor_box box_found boxfilloptions
+ syn keyword mpDef boxgridoptions boxlineoptions collapse_multi_pars
+ syn keyword mpDef draw_box draw_multi_pars draw_par freeze_box
+ syn keyword mpDef initialize_area initialize_area_par initialize_box
+ syn keyword mpDef initialize_box_pos initialize_par
+ syn keyword mpDef prepare_multi_pars relocate_multipars save_multipar
+ syn keyword mpDef set_par_line_height show_multi_pars show_par
+ syn keyword mpDef simplify_multi_pars sort_multi_pars
+ syn keyword mpVardef InsideSavedTextArea InsideSomeSavedTextArea
+ syn keyword mpVardef InsideSomeTextArea InsideTextArea PrepareSyncTasks
+ syn keyword mpVardef SyncBox TextAreaH TextAreaW TextAreaWH TextAreaX
+ syn keyword mpVardef TextAreaXY TextAreaY TheSyncColor TheSyncThreshold
+ syn keyword mpVardef baseline_grid graphic_grid multi_par_at_top
+ syn keyword mpVariable CurrentSyncClass NOfSavedTextAreas
+ syn keyword mpVariable NOfSavedTextColumns NOfSyncPaths NOfTextAreas
+ syn keyword mpVariable NOfTextColumns PlainTextArea RegionTextArea
+ syn keyword mpVariable SavedTextColumns SyncColor SyncLeftOffset SyncPaths
+ syn keyword mpVariable SyncTasks SyncThreshold SyncThresholdMethod
+ syn keyword mpVariable SyncWidth TextAreas TextColumns
+ syn keyword mpVariable auto_multi_par_hsize boxdashtype boxfilloffset
+ syn keyword mpVariable boxfilltype boxgriddirection boxgriddistance
+ syn keyword mpVariable boxgridshift boxgridtype boxgridwidth boxlineradius
+ syn keyword mpVariable boxlinetype boxlinewidth check_multi_par_chain
+ syn keyword mpVariable compensate_multi_par_topskip
+ syn keyword mpVariable enable_multi_par_fallback force_multi_par_chain
+ syn keyword mpVariable ignore_multi_par_page last_multi_par_shift lefthang
+ syn keyword mpVariable local_multi_par_area multi_column_first_page_hack
+ syn keyword mpVariable multi_par_pages multiloc multilocs multipar
+ syn keyword mpVariable multipars multiref multirefs nofmultipars
+ syn keyword mpVariable obey_multi_par_hang obey_multi_par_more
+ syn keyword mpVariable one_piece_multi_par par_hang_after par_hang_indent
+ syn keyword mpVariable par_indent par_left_skip par_line_height
+ syn keyword mpVariable par_right_skip par_start_pos par_stop_pos
+ syn keyword mpVariable par_strut_depth par_strut_height ppos righthang
+ syn keyword mpVariable snap_multi_par_tops somehang span_multi_column_pars
+ syn keyword mpVariable use_multi_par_region
+ syn keyword mpConstant context_core
+ syn keyword LET anchor_area anchor_par draw_area
+ " mp-cows.mpiv
+ syn keyword mpConstant context_cows cow
+ " mp-crop.mpiv
+ syn keyword mpDef page_marks_add_color page_marks_add_lines
+ syn keyword mpDef page_marks_add_marking page_marks_add_number
+ syn keyword mpVardef crop_color crop_gray crop_marks_cmyk
+ syn keyword mpVardef crop_marks_cmykrgb crop_marks_gray crop_marks_lines
+ syn keyword mpVariable crop_colors more page
+ syn keyword mpConstant context_crop
+ " mp-figs.mpiv
+ syn keyword mpDef naturalfigure registerfigure
+ syn keyword mpVardef figuredimensions figureheight figuresize
+ syn keyword mpVardef figurewidth
+ syn keyword mpConstant context_figs
+ " mp-fobg.mpiv
+ syn keyword mpDef DrawFoFrame
+ syn keyword mpVardef equalpaths
+ syn keyword mpPrimaryDef inset outset
+ syn keyword mpVariable FoBackground FoBackgroundColor FoFrame FoLineColor
+ syn keyword mpVariable FoLineStyle FoLineWidth FoSplit
+ syn keyword mpConstant FoAll FoBottom FoDash FoDotted FoDouble FoGroove
+ syn keyword mpConstant FoHidden FoInset FoLeft FoMedium FoNoColor FoNone
+ syn keyword mpConstant FoOutset FoRidge FoRight FoSolid FoThick FoThin
+ syn keyword mpConstant FoTop context_fobg
+ " mp-form.mpiv
+ syn keyword mpConstant context_form
+ " mp-func.mpiv
+ syn keyword mpDef constructedfunction constructedpairs
+ syn keyword mpDef constructedpath curvedfunction curvedpairs
+ syn keyword mpDef curvedpath function pathconnectors straightfunction
+ syn keyword mpDef straightpairs straightpath
+ syn keyword mpConstant context_func
+ " mp-grap.mpiv
+ syn keyword mpDef Gfor OUT auto begingraph circles crosses diamonds
+ syn keyword mpDef downtriangles endgraph gdata gdraw gdrawarrow
+ syn keyword mpDef gdrawdblarrow gfill graph_addto
+ syn keyword mpDef graph_addto_currentpicture graph_comma
+ syn keyword mpDef graph_coordinate_multiplication graph_draw
+ syn keyword mpDef graph_draw_label graph_errorbar_text graph_fill
+ syn keyword mpDef graph_generate_exponents
+ syn keyword mpDef graph_generate_label_position
+ syn keyword mpDef graph_generate_numbers graph_label_location
+ syn keyword mpDef graph_scan_mark graph_scan_marks graph_setbounds
+ syn keyword mpDef graph_suffix graph_tick_label
+ syn keyword mpDef graph_with_pen_and_color graph_withlist
+ syn keyword mpDef graph_xyscale lefttriangles makefunctionpath plot
+ syn keyword mpDef plotsymbol points rainbow righttriangles smoothpath
+ syn keyword mpDef squares stars uptriangles witherrorbars
+ syn keyword mpVardef addtopath augment autogrid constant_fit
+ syn keyword mpVardef constant_function det escaped_format exp
+ syn keyword mpVardef exponential_fit exponential_function format
+ syn keyword mpVardef formatted frame functionpath gaussian_fit
+ syn keyword mpVardef gaussian_function gdotlabel glabel graph_Feform
+ syn keyword mpVardef graph_Meform graph_arrowhead_extent graph_bounds
+ syn keyword mpVardef graph_clear_bounds
+ syn keyword mpVardef graph_convert_user_path_to_internal graph_cspan
+ syn keyword mpVardef graph_draw_arrowhead graph_error graph_errorbars
+ syn keyword mpVardef graph_exp graph_factor_and_exponent_to_string
+ syn keyword mpVardef graph_gridline_picture graph_is_null
+ syn keyword mpVardef graph_label_convert_user_to_internal graph_loptok
+ syn keyword mpVardef graph_match_exponents graph_mlog
+ syn keyword mpVardef graph_modified_exponent_ypart graph_pair_adjust
+ syn keyword mpVardef graph_picture_conversion graph_post_draw
+ syn keyword mpVardef graph_read_line graph_readpath graph_remap
+ syn keyword mpVardef graph_scan_path graph_select_exponent_mark
+ syn keyword mpVardef graph_select_mark graph_set_bounds
+ syn keyword mpVardef graph_set_default_bounds graph_shapesize
+ syn keyword mpVardef graph_stash_label graph_tick_mark_spacing
+ syn keyword mpVardef graph_unknown_pair_bbox grid isdigit itick
+ syn keyword mpVardef linear_fit linear_function ln logten lorentzian_fit
+ syn keyword mpVardef lorentzian_function otick polynomial_fit
+ syn keyword mpVardef polynomial_function power_law_fit
+ syn keyword mpVardef power_law_function powten setcoords setrange
+ syn keyword mpVardef sortpath strfmt tick varfmt
+ syn keyword mpNewInternal Mzero doubleinfinity graph_log_minimum
+ syn keyword mpNewInternal graph_minimum_number_of_marks largestmantissa
+ syn keyword mpNewInternal linear lntwo log mlogten singleinfinity
+ syn keyword mpVariable Autoform determinant fit_chi_squared
+ syn keyword mpVariable graph_errorbar_picture graph_exp_marks
+ syn keyword mpVariable graph_frame_pair_a graph_frame_pair_b
+ syn keyword mpVariable graph_lin_marks graph_log_marks graph_modified_bias
+ syn keyword mpVariable graph_modified_higher graph_modified_lower
+ syn keyword mpVariable graph_shape r_s resistance_color resistance_name
+ syn keyword mpConstant context_grap
+ " mp-grid.mpiv
+ syn keyword mpDef hlingrid hloggrid vlingrid vloggrid
+ syn keyword mpVardef hlinlabel hlintext hlogtext linlin linlinpath
+ syn keyword mpVardef linlog linlogpath loglin loglinpath loglog
+ syn keyword mpVardef loglogpath processpath vlinlabel vlintext vlogtext
+ syn keyword mpVariable fmt_initialize fmt_pictures fmt_precision
+ syn keyword mpVariable fmt_separator fmt_zerocheck grid_eps
+ syn keyword mpConstant context_grid
+ " mp-grph.mpiv
+ syn keyword mpDef beginfig begingraphictextfig data_mpo_file
+ syn keyword mpDef data_mpy_file doloadfigure draw endfig
+ syn keyword mpDef endgraphictextfig fill fixedplace graphictext
+ syn keyword mpDef loadfigure new_graphictext normalwithshade number
+ syn keyword mpDef old_graphictext outlinefill protectgraphicmacros
+ syn keyword mpDef resetfig reversefill withdrawcolor withfillcolor
+ syn keyword mpDef withshade
+ syn keyword mpVariable currentgraphictext figureshift
+ syn keyword mpConstant context_grph
+ " mp-idea.mpiv
+ syn keyword mpVardef bcomponent ccomponent gcomponent mcomponent
+ syn keyword mpVardef rcomponent somecolor ycomponent
+ " mp-luas.mpiv
+ syn keyword mpDef luacall message
+ syn keyword mpVardef MP lua lualist
+ syn keyword mpConstant context_luas
+ " mp-mlib.mpiv
+ syn keyword mpDef autoalign bitmapimage circular_shade cmyk comment
+ syn keyword mpDef defineshade eofill eofillup externalfigure figure
+ syn keyword mpDef fillup label linear_shade multitonecolor namedcolor
+ syn keyword mpDef nofill onlayer passarrayvariable passvariable
+ syn keyword mpDef plain_label register resolvedcolor scantokens
+ syn keyword mpDef set_circular_vector set_linear_vector shaded
+ syn keyword mpDef spotcolor startpassingvariable stoppassingvariable
+ syn keyword mpDef thelabel transparent[] usemetafunlabels
+ syn keyword mpDef useplainlabels withcircularshade withlinearshade
+ syn keyword mpDef withmask withproperties withshadecenter
+ syn keyword mpDef withshadecolors withshadedirection withshadedomain
+ syn keyword mpDef withshadefactor withshadefraction withshadeorigin
+ syn keyword mpDef withshaderadius withshadestep withshadetransform
+ syn keyword mpDef withshadevector withtransparency
+ syn keyword mpVardef anchored checkbounds checkedbounds
+ syn keyword mpVardef define_circular_shade define_linear_shade dotlabel
+ syn keyword mpVardef escaped_format fmttext fontsize format formatted
+ syn keyword mpVardef installlabel onetimefmttext onetimetextext
+ syn keyword mpVardef outlinetext plain_thelabel properties rawfmttext
+ syn keyword mpVardef rawtexbox rawtextext rule strfmt strut texbox
+ syn keyword mpVardef textext thefmttext thelabel thetexbox thetextext
+ syn keyword mpVardef tostring transparency_alternative_to_number
+ syn keyword mpVardef validtexbox varfmt verbatim
+ syn keyword mpPrimaryDef asgroup infont normalinfont shadedinto
+ syn keyword mpPrimaryDef shownshadecenter shownshadedirection
+ syn keyword mpPrimaryDef shownshadeorigin shownshadevector withshade
+ syn keyword mpPrimaryDef withshademethod
+ syn keyword mpNewInternal colorburntransparent colordodgetransparent
+ syn keyword mpNewInternal colortransparent darkentransparent
+ syn keyword mpNewInternal differencetransparent exclusiontransparent
+ syn keyword mpNewInternal hardlighttransparent huetransparent
+ syn keyword mpNewInternal lightentransparent luminositytransparent
+ syn keyword mpNewInternal multiplytransparent normaltransparent
+ syn keyword mpNewInternal overlaytransparent saturationtransparent
+ syn keyword mpNewInternal screentransparent shadefactor softlighttransparent
+ syn keyword mpNewInternal textextoffset
+ syn keyword mpType property transparency
+ syn keyword mpVariable currentoutlinetext shadeddown shadedleft
+ syn keyword mpVariable shadedright shadedup shadeoffset trace_shades
+ syn keyword mpConstant context_mlib
+ " mp-page.mpiv
+ syn keyword mpDef BoundCoverAreas BoundPageAreas Enlarged FakeRule
+ syn keyword mpDef FakeWord LoadPageState OverlayBox RuleColor
+ syn keyword mpDef SetAreaVariables SetPageArea SetPageBackPage
+ syn keyword mpDef SetPageCoverPage SetPageField SetPageFrontPage
+ syn keyword mpDef SetPageHsize SetPageHstep SetPageLocation
+ syn keyword mpDef SetPagePage SetPageSpine SetPageVariables
+ syn keyword mpDef SetPageVsize SetPageVstep StartCover StartPage
+ syn keyword mpDef StopCover StopPage SwapPageState innerenlarged
+ syn keyword mpDef llEnlarged lrEnlarged outerenlarged ulEnlarged
+ syn keyword mpDef urEnlarged
+ syn keyword mpVardef BackPageHeight BackPageWidth BackSpace BaseLineSkip
+ syn keyword mpVardef BodyFontSize BottomDistance BottomHeight
+ syn keyword mpVardef BottomSpace CoverHeight CoverWidth CurrentColumn
+ syn keyword mpVardef CurrentHeight CurrentWidth CutSpace EmWidth
+ syn keyword mpVardef ExHeight FooterDistance FooterHeight
+ syn keyword mpVardef FrontPageHeight FrontPageWidth HSize HeaderDistance
+ syn keyword mpVardef HeaderHeight InPageBody InnerEdgeDistance
+ syn keyword mpVardef InnerEdgeWidth InnerMarginDistance InnerMarginWidth
+ syn keyword mpVardef InnerSpaceWidth LastPageNumber LayoutColumnDistance
+ syn keyword mpVardef LayoutColumnWidth LayoutColumns LeftEdgeDistance
+ syn keyword mpVardef LeftEdgeWidth LeftMarginDistance LeftMarginWidth
+ syn keyword mpVardef LineHeight MakeupHeight MakeupWidth NOfColumns
+ syn keyword mpVardef NOfPages OnOddPage OnRightPage OuterEdgeDistance
+ syn keyword mpVardef OuterEdgeWidth OuterMarginDistance OuterMarginWidth
+ syn keyword mpVardef OuterSpaceWidth OverlayDepth OverlayHeight
+ syn keyword mpVardef OverlayLineWidth OverlayOffset OverlayWidth
+ syn keyword mpVardef PageDepth PageFraction PageNumber PageOffset
+ syn keyword mpVardef PaperBleed PaperHeight PaperWidth PrintPaperHeight
+ syn keyword mpVardef PrintPaperWidth RealPageNumber RightEdgeDistance
+ syn keyword mpVardef RightEdgeWidth RightMarginDistance RightMarginWidth
+ syn keyword mpVardef SpineHeight SpineWidth StrutDepth StrutHeight
+ syn keyword mpVardef TextHeight TextWidth TopDistance TopHeight TopSkip
+ syn keyword mpVardef TopSpace VSize defaultcolormodel
+ syn keyword mpVariable Area BackPage CoverPage CurrentLayout Field
+ syn keyword mpVariable FrontPage HorPos Hsize Hstep Location Page
+ syn keyword mpVariable PageStateAvailable RuleDepth RuleDirection
+ syn keyword mpVariable RuleFactor RuleH RuleHeight RuleOffset RuleOption
+ syn keyword mpVariable RuleThickness RuleV RuleWidth Spine VerPos Vsize
+ syn keyword mpVariable Vstep
+ syn keyword mpConstant context_page
+ " mp-shap.mpiv
+ syn keyword mpDef drawline drawshape some_shape
+ syn keyword mpDef start_predefined_shape_definition
+ syn keyword mpDef stop_predefined_shape_definition
+ syn keyword mpVardef drawpredefinedline drawpredefinedshape
+ syn keyword mpVardef some_shape_path
+ syn keyword mpVariable predefined_shapes predefined_shapes_xradius
+ syn keyword mpVariable predefined_shapes_xxradius
+ syn keyword mpVariable predefined_shapes_yradius
+ syn keyword mpVariable predefined_shapes_yyradius
+ syn keyword mpConstant context_shap
+ " mp-step.mpiv
+ syn keyword mpDef initialize_step_variables midbottomboundary
+ syn keyword mpDef midtopboundary step_begin_cell step_begin_chart
+ syn keyword mpDef step_cell_ali step_cell_bot step_cell_top
+ syn keyword mpDef step_cells step_end_cell step_end_chart
+ syn keyword mpDef step_text_bot step_text_mid step_text_top
+ syn keyword mpDef step_texts
+ syn keyword mpVariable cell_distance_x cell_distance_y cell_fill_color
+ syn keyword mpVariable cell_line_color cell_line_width cell_offset
+ syn keyword mpVariable chart_align chart_category chart_vertical
+ syn keyword mpVariable line_distance line_height line_line_color
+ syn keyword mpVariable line_line_width line_offset nofcells
+ syn keyword mpVariable text_distance_set text_fill_color text_line_color
+ syn keyword mpVariable text_line_width text_offset
+ syn keyword mpConstant context_cell
+ " mp-symb.mpiv
+ syn keyword mpDef finishglyph prepareglyph
+ syn keyword mpConstant lefttriangle midbar onebar righttriangle sidebar
+ syn keyword mpConstant sublefttriangle subrighttriangle twobar
+ " mp-text.mpiv
+ syn keyword mpDef build_parshape
+ syn keyword mpVardef found_point
+ syn keyword mpVariable trace_parshape
+ syn keyword mpConstant context_text
+ " mp-tool.mpiv
+ syn keyword mpCommand dump
+ syn keyword mpDef addbackground b_color beginglyph break centerarrow
+ syn keyword mpDef clearxy condition data_mpd_file detaileddraw
+ syn keyword mpDef detailpaths dowithpath draw drawboundary
+ syn keyword mpDef drawboundingbox drawcontrollines drawcontrolpoints
+ syn keyword mpDef drawfill draworigin drawpath drawpathonly
+ syn keyword mpDef drawpathwithpoints drawpoint drawpointlabels
+ syn keyword mpDef drawpoints drawticks drawwholepath drawxticks
+ syn keyword mpDef drawyticks endglyph fill finishsavingdata g_color
+ syn keyword mpDef inner_boundingbox job_name leftarrow loadmodule
+ syn keyword mpDef midarrowhead naturalizepaths newboolean newcolor
+ syn keyword mpDef newnumeric newpair newpath newpicture newstring
+ syn keyword mpDef newtransform normalcolors normaldraw normalfill
+ syn keyword mpDef normalwithcolor outer_boundingbox pop_boundingbox
+ syn keyword mpDef popboundingbox popcurrentpicture push_boundingbox
+ syn keyword mpDef pushboundingbox pushcurrentpicture r_color readfile
+ syn keyword mpDef recolor redraw refill register_dirty_chars
+ syn keyword mpDef remapcolor remapcolors remappedcolor reprocess
+ syn keyword mpDef resetarrows resetcolormap resetdrawoptions
+ syn keyword mpDef resolvedcolor restroke retext rightarrow savedata
+ syn keyword mpDef saveoptions scale_currentpicture set_ahlength
+ syn keyword mpDef set_grid showgrid startplaincompatibility
+ syn keyword mpDef startsavingdata stopplaincompatibility
+ syn keyword mpDef stopsavingdata stripe_path_a stripe_path_n undashed
+ syn keyword mpDef undrawfill untext visualizeddraw visualizedfill
+ syn keyword mpDef visualizepaths withcolor withgray
+ syn keyword mpDef xscale_currentpicture xshifted
+ syn keyword mpDef xyscale_currentpicture yscale_currentpicture
+ syn keyword mpDef yshifted
+ syn keyword mpVardef acos acosh anglebetween area arrowhead
+ syn keyword mpVardef arrowheadonpath arrowpath asciistring asin asinh
+ syn keyword mpVardef atan basiccolors bbheight bbwidth bcomponent
+ syn keyword mpVardef blackcolor bottomboundary boundingbox c_phantom
+ syn keyword mpVardef ccomponent center cleanstring colorcircle
+ syn keyword mpVardef colordecimals colordecimalslist colorlike colorpart
+ syn keyword mpVardef colortype complementary complemented copylist cos
+ syn keyword mpVardef cosh cot cotd curved ddddecimal dddecimal ddecimal
+ syn keyword mpVardef decorated drawarrowpath epsed exp freedotlabel
+ syn keyword mpVardef freelabel gcomponent getunstringed grayed greyed
+ syn keyword mpVardef hsvtorgb infinite innerboundingbox interpolated inv
+ syn keyword mpVardef invcos inverted invsin invtan laddered leftboundary
+ syn keyword mpVardef leftpath leftrightpath listsize listtocurves
+ syn keyword mpVardef listtolines ln log mcomponent new_on_grid
+ syn keyword mpVardef outerboundingbox paired pen_size penpoint phantom
+ syn keyword mpVardef pointarrow pow punked rangepath rcomponent
+ syn keyword mpVardef redecorated repathed rightboundary rightpath
+ syn keyword mpVardef rotation roundedsquare set_inner_boundingbox
+ syn keyword mpVardef set_outer_boundingbox setunstringed shapedlist
+ syn keyword mpVardef simplified sin sinh sortlist sqr straightpath tan
+ syn keyword mpVardef tand tanh tensecircle thefreelabel topboundary
+ syn keyword mpVardef tripled undecorated unitvector unspiked unstringed
+ syn keyword mpVardef whitecolor ycomponent
+ syn keyword mpPrimaryDef along blownup bottomenlarged cornered crossed
+ syn keyword mpPrimaryDef enlarged enlonged leftenlarged llenlarged llmoved
+ syn keyword mpPrimaryDef lrenlarged lrmoved on paralleled randomized
+ syn keyword mpPrimaryDef randomizedcontrols randomshifted rightenlarged
+ syn keyword mpPrimaryDef shortened sized smoothed snapped softened squeezed
+ syn keyword mpPrimaryDef stretched superellipsed topenlarged ulenlarged
+ syn keyword mpPrimaryDef ulmoved uncolored urenlarged urmoved xsized
+ syn keyword mpPrimaryDef xstretched xyscaled xysized ysized ystretched zmod
+ syn keyword mpSecondaryDef anglestriped intersection_point numberstriped
+ syn keyword mpSecondaryDef peepholed
+ syn keyword mpTertiaryDef cutends
+ syn keyword mpNewInternal ahdimple ahvariant anglelength anglemethod
+ syn keyword mpNewInternal angleoffset charscale cmykcolormodel graycolormodel
+ syn keyword mpNewInternal greycolormodel maxdimensions metapostversion
+ syn keyword mpNewInternal nocolormodel rgbcolormodel striped_normal_inner
+ syn keyword mpNewInternal striped_normal_outer striped_reverse_inner
+ syn keyword mpNewInternal striped_reverse_outer
+ syn keyword mpType grayscale greyscale quadruplet triplet
+ syn keyword mpVariable ahfactor collapse_data color_map drawoptionsfactor
+ syn keyword mpVariable freedotlabelsize freelabeloffset grid grid_full
+ syn keyword mpVariable grid_h grid_left grid_nx grid_ny grid_w grid_x
+ syn keyword mpVariable grid_y intersection_found originlength
+ syn keyword mpVariable plain_compatibility_data pointlabelfont
+ syn keyword mpVariable pointlabelscale refillbackground savingdata
+ syn keyword mpVariable savingdatadone swappointlabels ticklength tickstep
+ syn keyword mpConstant CRLF DQUOTE PERCENT SPACE bcircle context_tool crlf
+ syn keyword mpConstant darkblue darkcyan darkgray darkgreen darkmagenta
+ syn keyword mpConstant darkred darkyellow downtriangle dquote freesquare
+ syn keyword mpConstant fulldiamond fullsquare fulltriangle lcircle
+ syn keyword mpConstant lefttriangle lightgray llcircle lltriangle lrcircle
+ syn keyword mpConstant lrtriangle mpversion nocolor noline oddly
+ syn keyword mpConstant originpath percent rcircle righttriangle space
+ syn keyword mpConstant tcircle triangle ulcircle ultriangle unitcircle
+ syn keyword mpConstant unitdiamond unittriangle uptriangle urcircle
+ syn keyword mpConstant urtriangle
+endif " MetaFun macros
+
" 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_mp_syntax_inits")
- if version < 508
- let did_mp_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink mpTeXinsert String
- HiLink mpTeXbegin Statement
- HiLink mpTeXend Statement
- HiLink mpInternal mfInternal
- HiLink mpMacro Macro
-
- delcommand HiLink
-endif
+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
let b:current_syntax = "mp"
-" vim: ts=8
+let &cpo = s:cpo_sav
+unlet! s:cpo_sav
+
+" vim:sw=2
diff --git a/runtime/syntax/msidl.vim b/runtime/syntax/msidl.vim
index 79585bebc6..57eaecaa4f 100644
--- a/runtime/syntax/msidl.vim
+++ b/runtime/syntax/msidl.vim
@@ -3,11 +3,8 @@
" Maintainer: Vadim Zeitlin <vadim@wxwindows.org>
" Last Change: 2012 Feb 12 by Thilo Six
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -56,39 +53,29 @@ syn region msidlSafeArray start="SAFEARRAY(" end=")" contains=msidlStandar
syn sync lines=50
" 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_msidl_syntax_inits")
- if version < 508
- let did_msidl_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink msidlInclude Include
- HiLink msidlPreProc PreProc
- HiLink msidlPreCondit PreCondit
- HiLink msidlDefine Macro
- HiLink msidlIncluded String
- HiLink msidlString String
- HiLink msidlComment Comment
- HiLink msidlTodo Todo
- HiLink msidlSpecial SpecialChar
- HiLink msidlLiteral Number
- HiLink msidlUUID Number
-
- HiLink msidlImport Include
- HiLink msidlEnum StorageClass
- HiLink msidlStruct Structure
- HiLink msidlTypedef Typedef
- HiLink msidlAttribute StorageClass
-
- HiLink msidlStandardType Type
- HiLink msidlSafeArray Type
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/msmessages.vim b/runtime/syntax/msmessages.vim
index 60588571c9..5faee978b4 100644
--- a/runtime/syntax/msmessages.vim
+++ b/runtime/syntax/msmessages.vim
@@ -7,11 +7,8 @@
" See format description at <http://msdn2.microsoft.com/en-us/library/aa385646.aspx>
" This file is based on the rc.vim and c.vim
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
diff --git a/runtime/syntax/msql.vim b/runtime/syntax/msql.vim
index 0716fbb1f6..60e75a7ef6 100644
--- a/runtime/syntax/msql.vim
+++ b/runtime/syntax/msql.vim
@@ -8,11 +8,8 @@
" Options msql_sql_query = 1 for SQL syntax highligthing inside strings
" msql_minlines = x to sync at least x lines backwards
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -20,12 +17,8 @@ if !exists("main_syntax")
let main_syntax = 'msql'
endif
-if version < 600
- so <sfile>:p:h/html.vim
-else
- runtime! syntax/html.vim
- unlet b:current_syntax
-endif
+runtime! syntax/html.vim
+unlet b:current_syntax
syn cluster htmlPreproc add=msqlRegion
@@ -57,39 +50,29 @@ else
endif
" 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_msql_syn_inits")
- if version < 508
- let did_msql_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink msqlComment Comment
- HiLink msqlString String
- HiLink msqlNumber Number
- HiLink msqlFloat Float
- HiLink msqlIdentifier Identifier
- HiLink msqlGlobalIdentifier Identifier
- HiLink msqlIntVar Identifier
- HiLink msqlEnvVar Identifier
- HiLink msqlFunctions Function
- HiLink msqlRepeat Repeat
- HiLink msqlConditional Conditional
- HiLink msqlStatement Statement
- HiLink msqlType Type
- HiLink msqlInclude Include
- HiLink msqlDefine Define
- HiLink msqlSpecialChar SpecialChar
- HiLink msqlParentError Error
- HiLink msqlTodo Todo
- HiLink msqlOperator Operator
- HiLink msqlRelation Operator
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/mupad.vim b/runtime/syntax/mupad.vim
index 109f880ee1..55ea9c4e43 100644
--- a/runtime/syntax/mupad.vim
+++ b/runtime/syntax/mupad.vim
@@ -5,11 +5,8 @@
" Date: 6/30/2004
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -268,28 +265,19 @@ syn keyword mupadIdentifier Tubular
" graphics meta-documentation Attributes
syn keyword mupadIdentifier objectGroupsListed
-if version >= 508 || !exists("did_mupad_syntax_inits")
- if version < 508
- let did_mupad_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink mupadComment Comment
- HiLink mupadString String
- HiLink mupadOperator Operator
- HiLink mupadSpecial Special
- HiLink mupadStatement Statement
- HiLink mupadUnderlined Underlined
- HiLink mupadConditional Conditional
- HiLink mupadRepeat Repeat
- HiLink mupadFunction Function
- HiLink mupadType Type
- HiLink mupadDefine Define
- HiLink mupadIdentifier Identifier
+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
- delcommand HiLink
-endif
" TODO More comprehensive listing.
diff --git a/runtime/syntax/murphi.vim b/runtime/syntax/murphi.vim
new file mode 100644
index 0000000000..b2faa8c119
--- /dev/null
+++ b/runtime/syntax/murphi.vim
@@ -0,0 +1,127 @@
+" Vim syntax file
+" Language: Murphi model checking language
+" Maintainer: Matthew Fernandez <matthew.fernandez@gmail.com>
+" Last Change: 2017 Aug 27
+" Version: 2
+" Remark: Originally authored by Diego Ongaro <ongaro@cs.stanford.edu>
+
+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 process
+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
index 0645f33565..efaae50ae3 100644
--- a/runtime/syntax/mush.vim
+++ b/runtime/syntax/mush.vim
@@ -3,11 +3,8 @@
" Based on vim Syntax file by: Bek Oberin <gossamer@tertius.net.au>
" Last Updated: Fri Nov 04 20:28:15 2005
"
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -185,42 +182,33 @@ 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
-if version >= 508 || !exists("did_mush_syntax_inits")
- if version < 508
- let did_mush_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " The default methods for highlighting. Can be overridden later
- HiLink mushAttribute Constant
- HiLink mushCommand Function
- HiLink mushNumber Number
- HiLink mushSetting PreProc
- HiLink mushFunction Statement
- HiLink mushVariable Identifier
- HiLink mushSpecial Special
- HiLink mushTodo Todo
- HiLink mushFlag Special
- HiLink mushIdentifier Identifier
- HiLink mushDefine Macro
- HiLink mushPreProc PreProc
- HiLink mushPreProcGroup PreProc
- HiLink mushPreCondit PreCondit
- HiLink mushIncluded cString
- HiLink mushInclude Include
+
+" 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
- HiLink mushCommentStart mushComment
- HiLink mushComment Comment
- HiLink mushCommentString mushString
+hi def link mushCommentStart mushComment
+hi def link mushComment Comment
+hi def link mushCommentString mushString
- delcommand HiLink
-endif
let b:current_syntax = "mush"
diff --git a/runtime/syntax/muttrc.vim b/runtime/syntax/muttrc.vim
index abe9bfd76b..e4395fdf59 100644
--- a/runtime/syntax/muttrc.vim
+++ b/runtime/syntax/muttrc.vim
@@ -2,16 +2,12 @@
" Language: Mutt setup files
" Original: Preben 'Peppe' Guldberg <peppe-vim@wielders.org>
" Maintainer: Kyle Wheeler <kyle-muttrc.vim@memoryhole.net>
-" Last Change: 2 Feb 2012
+" Last Change: 18 August 2016
-" This file covers mutt version 1.5.21 (and most of the mercurial tip)
-" Included are also a few features from 1.4.2.1
+" This file covers mutt version 1.7.0
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -19,11 +15,7 @@ let s:cpo_save = &cpo
set cpo&vim
" Set the keyword characters
-if version < 600
- set isk=@,48-57,_,-
-else
- setlocal isk=@,48-57,_,-
-endif
+setlocal isk=@,48-57,_,-
" handling optional variables
if !exists("use_mutt_sidebar")
@@ -98,7 +90,7 @@ syn match muttrcSetNumAssignment contained skipwhite /=\s*'\d\+'/hs=s+1 nextgrou
" 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 "\<\%(From\|To\|C[Cc]\|B[Cc][Cc]\|Reply-To\|Subject\|Return-Path\|Received\|Date\|Replied\|Attach\)\>:\="
+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
@@ -109,143 +101,146 @@ 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 "<F[0-9]\+>"
-syn keyword muttrcVarBool skipwhite contained allow_8bit allow_ansi arrow_cursor ascii_chars askbcc askcc attach_split auto_tag autoedit beep beep_new nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained bounce_delivered braille_friendly check_new check_mbox_size nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained collapse_unread confirmappend confirmcreate crypt_autoencrypt nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained crypt_autopgp crypt_autosign crypt_autosmime crypt_replyencrypt nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained crypt_replysign crypt_replysignencrypted crypt_timestamp nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained crypt_use_gpgme crypt_use_pka delete_untag digest_collapse duplicate_threads nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained edit_hdrs edit_headers encode_from envelope_from fast_reply nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained fcc_clear followup_to force_name forw_decode nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained forw_decrypt forw_quote forward_decode forward_decrypt nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained forward_quote hdrs header help hidden_host hide_limited nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained hide_missing hide_thread_subject hide_top_limited nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained hide_top_missing honor_disposition ignore_linear_white_space ignore_list_reply_to imap_check_subscribed nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained imap_list_subscribed imap_passive imap_peek imap_servernoise nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained implicit_autoview include_onlyfirst keep_flagged nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained mailcap_sanitize maildir_header_cache_verify maildir_trash nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained mark_old markers menu_move_off menu_scroll message_cache_clean meta_key nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained metoo mh_purge mime_forward_decode narrow_tree pager_stop nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained pgp_auto_decode pgp_auto_traditional pgp_autoencrypt nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained pgp_autoinline pgp_autosign pgp_check_exit nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained pgp_create_traditional pgp_ignore_subkeys pgp_long_ids nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained pgp_replyencrypt pgp_replyinline pgp_replysign nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained pgp_replysignencrypted pgp_retainable_sigs pgp_show_unusable nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained pgp_strict_enc pgp_use_gpg_agent pipe_decode pipe_split nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained pop_auth_try_all pop_last print_decode print_split nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained prompt_after read_only reply_self resolve reverse_alias nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained reverse_name reverse_realname rfc2047_parameters save_address nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained save_empty save_name score sig_dashes sig_on_top nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained smart_wrap smime_ask_cert_label smime_decrypt_use_default_key nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained smime_is_default sort_re ssl_force_tls ssl_use_sslv2 nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained ssl_use_sslv3 ssl_use_tlsv1 ssl_usesystemcerts ssl_verify_dates ssl_verify_host status_on_top nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained strict_mime strict_threads suspend text_flowed thorough_search nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained thread_received tilde uncollapse_jump use_8bitmime nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained use_domain use_envelope_from use_from use_idn use_ipv6 nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained 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 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained noaskcc noattach_split noauto_tag noautoedit nobeep nobeep_new nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained nobounce_delivered nobraille_friendly nocheck_new nocollapse_unread nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained noconfirmappend noconfirmcreate nocrypt_autoencrypt nocrypt_autopgp nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained nocrypt_autosign nocrypt_autosmime nocrypt_replyencrypt nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained nocrypt_replysign nocrypt_replysignencrypted nocrypt_timestamp nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained nocrypt_use_gpgme nodelete_untag nodigest_collapse noduplicate_threads nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained noedit_hdrs noedit_headers noencode_from noenvelope_from nofast_reply nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained nofcc_clear nofollowup_to noforce_name noforw_decode nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained noforw_decrypt noforw_quote noforward_decode noforward_decrypt nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained noforward_quote nohdrs noheader nohelp nohidden_host nohide_limited nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained nohide_missing nohide_thread_subject nohide_top_limited nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained nohide_top_missing nohonor_disposition noignore_list_reply_to noimap_check_subscribed nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained noimap_list_subscribed noimap_passive noimap_peek noimap_servernoise nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained noimplicit_autoview noinclude_onlyfirst nokeep_flagged nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained nomailcap_sanitize nomaildir_header_cache_verify nomaildir_trash nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained nomark_old nomarkers nomenu_move_off nomenu_scroll nometa_key nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained nometoo nomh_purge nomime_forward_decode nonarrow_tree nopager_stop nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained nopgp_auto_decode nopgp_auto_traditional nopgp_autoencrypt nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained nopgp_autoinline nopgp_autosign nopgp_check_exit nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained nopgp_create_traditional nopgp_ignore_subkeys nopgp_long_ids nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained nopgp_replyencrypt nopgp_replyinline nopgp_replysign nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained nopgp_replysignencrypted nopgp_retainable_sigs nopgp_show_unusable nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained nopgp_strict_enc nopgp_use_gpg_agent nopipe_decode nopipe_split nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained nopop_auth_try_all nopop_last noprint_decode noprint_split nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained noprompt_after noread_only noreply_self noresolve noreverse_alias nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained noreverse_name noreverse_realname norfc2047_parameters nosave_address nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained nosave_empty nosave_name noscore nosig_dashes nosig_on_top nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained nosmart_wrap nosmime_ask_cert_label nosmime_decrypt_use_default_key nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained nosmime_is_default nosort_re nossl_force_tls nossl_use_sslv2 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained nossl_use_sslv3 nossl_use_tlsv1 nossl_usesystemcerts nostatus_on_top nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained nostrict_threads nosuspend notext_flowed nothorough_search nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained nothread_received notilde nouncollapse_jump nouse_8bitmime nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained nouse_domain nouse_envelope_from nouse_from nouse_idn nouse_ipv6 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained 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 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invaskcc invattach_split invauto_tag invautoedit invbeep invbeep_new nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invbounce_delivered invbraille_friendly invcheck_new invcollapse_unread nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invconfirmappend invconfirmcreate invcrypt_autoencrypt invcrypt_autopgp nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invcrypt_autosign invcrypt_autosmime invcrypt_replyencrypt nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invcrypt_replysign invcrypt_replysignencrypted invcrypt_timestamp nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invcrypt_use_gpgme invdelete_untag invdigest_collapse invduplicate_threads nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invedit_hdrs invedit_headers invencode_from invenvelope_from invfast_reply nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invfcc_clear invfollowup_to invforce_name invforw_decode nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invforw_decrypt invforw_quote invforward_decode invforward_decrypt nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invforward_quote invhdrs invheader invhelp invhidden_host invhide_limited nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invhide_missing invhide_thread_subject invhide_top_limited nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invhide_top_missing invhonor_disposition invignore_list_reply_to invimap_check_subscribed nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invimap_list_subscribed invimap_passive invimap_peek invimap_servernoise nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invimplicit_autoview invinclude_onlyfirst invkeep_flagged nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invmailcap_sanitize invmaildir_header_cache_verify invmaildir_trash nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invmark_old invmarkers invmenu_move_off invmenu_scroll invmeta_key nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invmetoo invmh_purge invmime_forward_decode invnarrow_tree invpager_stop nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invpgp_auto_decode invpgp_auto_traditional invpgp_autoencrypt nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invpgp_autoinline invpgp_autosign invpgp_check_exit nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invpgp_create_traditional invpgp_ignore_subkeys invpgp_long_ids nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invpgp_replyencrypt invpgp_replyinline invpgp_replysign nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invpgp_replysignencrypted invpgp_retainable_sigs invpgp_show_unusable nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invpgp_strict_enc invpgp_use_gpg_agent invpipe_decode invpipe_split nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invpop_auth_try_all invpop_last invprint_decode invprint_split nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invprompt_after invread_only invreply_self invresolve invreverse_alias nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invreverse_name invreverse_realname invrfc2047_parameters invsave_address nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invsave_empty invsave_name invscore invsig_dashes invsig_on_top nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invsmart_wrap invsmime_ask_cert_label invsmime_decrypt_use_default_key nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invsmime_is_default invsort_re invssl_force_tls invssl_use_sslv2 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invssl_use_sslv3 invssl_use_tlsv1 invssl_usesystemcerts invstatus_on_top nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invstrict_threads invsuspend invtext_flowed invthorough_search nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invthread_received invtilde invuncollapse_jump invuse_8bitmime nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invuse_domain invuse_envelope_from invuse_from invuse_idn invuse_ipv6 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarBool skipwhite contained invuser_agent invwait_key invweed invwrap_search invwrite_bcc nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-if use_mutt_sidebar == 1
- syn keyword muttrcVarBool skipwhite contained sidebar_visible sidebar_sort nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-endif
-
-syn keyword muttrcVarQuad skipwhite contained abort_nosubject abort_unmodified bounce copy nextgroup=muttrcSetQuadAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarQuad skipwhite contained crypt_verify_sig delete fcc_attach forward_edit honor_followup_to nextgroup=muttrcSetQuadAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarQuad skipwhite contained include mime_forward mime_forward_rest mime_fwd move nextgroup=muttrcSetQuadAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarQuad skipwhite contained pgp_mime_auto pgp_verify_sig pop_delete pop_reconnect nextgroup=muttrcSetQuadAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarQuad skipwhite contained postpone print quit recall reply_to ssl_starttls nextgroup=muttrcSetQuadAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-
-syn keyword muttrcVarQuad skipwhite contained noabort_nosubject noabort_unmodified nobounce nocopy nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarQuad skipwhite contained nocrypt_verify_sig nodelete nofcc_attach noforward_edit nohonor_followup_to nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarQuad skipwhite contained noinclude nomime_forward nomime_forward_rest nomime_fwd nomove nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarQuad skipwhite contained nopgp_mime_auto nopgp_verify_sig nopop_delete nopop_reconnect nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarQuad skipwhite contained nopostpone noprint noquit norecall noreply_to nossl_starttls nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-
-syn keyword muttrcVarQuad skipwhite contained invabort_nosubject invabort_unmodified invbounce invcopy nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarQuad skipwhite contained invcrypt_verify_sig invdelete invfcc_attach invforward_edit invhonor_followup_to nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarQuad skipwhite contained invinclude invmime_forward invmime_forward_rest invmime_fwd invmove nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarQuad skipwhite contained invpgp_mime_auto invpgp_verify_sig invpop_delete invpop_reconnect nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarQuad skipwhite contained invpostpone invprint invquit invrecall invreply_to invssl_starttls nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-
-syn keyword muttrcVarNum skipwhite contained connect_timeout history imap_keepalive imap_pipeline_depth mail_check nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarNum skipwhite contained menu_context net_inc pager_context pager_index_lines pgp_timeout nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarNum skipwhite contained pop_checkinterval read_inc save_history score_threshold_delete nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarNum skipwhite contained score_threshold_flag score_threshold_read search_context sendmail_wait sleep_time nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarNum skipwhite contained smime_timeout ssl_min_dh_prime_bits timeout time_inc wrap wrapmargin nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarNum skipwhite contained write_inc nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-if use_mutt_sidebar == 1
- syn keyword muttrcVarNum skipwhite contained sidebar_width nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-endif
+syn keyword muttrcVarBool skipwhite contained
+ \ allow_8bit allow_ansi arrow_cursor ascii_chars askbcc askcc attach_split
+ \ auto_tag autoedit beep beep_new bounce_delivered braille_friendly
+ \ check_mbox_size check_new collapse_unread confirmappend confirmcreate
+ \ crypt_autoencrypt crypt_autopgp crypt_autosign crypt_autosmime
+ \ crypt_confirmhook crypt_opportunistic_encrypt crypt_replyencrypt
+ \ crypt_replysign crypt_replysignencrypted crypt_timestamp crypt_use_gpgme
+ \ crypt_use_pka delete_untag digest_collapse duplicate_threads edit_hdrs
+ \ edit_headers encode_from envelope_from fast_reply fcc_clear followup_to
+ \ force_name forw_decode forw_decrypt forw_quote forward_decode forward_decrypt
+ \ forward_quote hdrs header help hidden_host hide_limited hide_missing
+ \ hide_thread_subject hide_top_limited hide_top_missing honor_disposition
+ \ idn_decode idn_encode ignore_linear_white_space ignore_list_reply_to
+ \ imap_check_subscribed imap_list_subscribed imap_passive imap_peek
+ \ imap_servernoise implicit_autoview include_onlyfirst keep_flagged
+ \ 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
+ \ narrow_tree pager_stop pgp_auto_decode pgp_auto_traditional pgp_autoencrypt
+ \ pgp_autoinline pgp_autosign pgp_check_exit pgp_create_traditional
+ \ pgp_ignore_subkeys pgp_long_ids pgp_replyencrypt pgp_replyinline pgp_replysign
+ \ pgp_replysignencrypted pgp_retainable_sigs pgp_show_unusable pgp_strict_enc
+ \ pgp_use_gpg_agent pipe_decode pipe_split pop_auth_try_all pop_last
+ \ postpone_encrypt postpone_encrypt_as print_decode 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_short_path sidebar_sort sidebar_visible sig_dashes sig_on_top
+ \ smart_wrap smime_ask_cert_label smime_decrypt_use_default_key smime_is_default
+ \ sort_re ssl_force_tls ssl_use_sslv2 ssl_use_sslv3 ssl_use_tlsv1
+ \ ssl_usesystemcerts ssl_verify_dates ssl_verify_host status_on_top strict_mime
+ \ strict_threads suspend text_flowed thorough_search thread_received tilde
+ \ ts_enabled uncollapse_jump use_8bitmime use_domain use_envelope_from use_from
+ \ use_idn use_ipv6 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 nobeep nobeep_new nobounce_delivered nobraille_friendly
+ \ nocheck_mbox_size nocheck_new nocollapse_unread noconfirmappend noconfirmcreate
+ \ nocrypt_autoencrypt nocrypt_autopgp nocrypt_autosign nocrypt_autosmime
+ \ nocrypt_confirmhook nocrypt_opportunistic_encrypt nocrypt_replyencrypt
+ \ nocrypt_replysign nocrypt_replysignencrypted nocrypt_timestamp nocrypt_use_gpgme
+ \ nocrypt_use_pka nodelete_untag nodigest_collapse noduplicate_threads noedit_hdrs
+ \ noedit_headers noencode_from noenvelope_from nofast_reply nofcc_clear nofollowup_to
+ \ noforce_name noforw_decode noforw_decrypt noforw_quote noforward_decode noforward_decrypt
+ \ noforward_quote nohdrs noheader nohelp nohidden_host nohide_limited nohide_missing
+ \ nohide_thread_subject nohide_top_limited nohide_top_missing nohonor_disposition
+ \ noidn_decode noidn_encode noignore_linear_white_space noignore_list_reply_to
+ \ noimap_check_subscribed noimap_list_subscribed noimap_passive noimap_peek
+ \ noimap_servernoise noimplicit_autoview noinclude_onlyfirst nokeep_flagged
+ \ 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
+ \ nonarrow_tree nopager_stop nopgp_auto_decode nopgp_auto_traditional nopgp_autoencrypt
+ \ nopgp_autoinline nopgp_autosign nopgp_check_exit nopgp_create_traditional
+ \ nopgp_ignore_subkeys nopgp_long_ids nopgp_replyencrypt nopgp_replyinline nopgp_replysign
+ \ nopgp_replysignencrypted nopgp_retainable_sigs nopgp_show_unusable nopgp_strict_enc
+ \ nopgp_use_gpg_agent nopipe_decode nopipe_split nopop_auth_try_all nopop_last
+ \ nopostpone_encrypt nopostpone_encrypt_as noprint_decode 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_short_path nosidebar_sort nosidebar_visible nosig_dashes nosig_on_top
+ \ nosmart_wrap nosmime_ask_cert_label nosmime_decrypt_use_default_key nosmime_is_default
+ \ nosort_re nossl_force_tls nossl_use_sslv2 nossl_use_sslv3 nossl_use_tlsv1
+ \ nossl_usesystemcerts nossl_verify_dates nossl_verify_host nostatus_on_top nostrict_mime
+ \ nostrict_threads nosuspend notext_flowed nothorough_search nothread_received notilde
+ \ nots_enabled nouncollapse_jump nouse_8bitmime nouse_domain nouse_envelope_from nouse_from
+ \ nouse_idn nouse_ipv6 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 invbeep invbeep_new invbounce_delivered invbraille_friendly
+ \ invcheck_mbox_size invcheck_new invcollapse_unread invconfirmappend invconfirmcreate
+ \ invcrypt_autoencrypt invcrypt_autopgp invcrypt_autosign invcrypt_autosmime
+ \ invcrypt_confirmhook invcrypt_opportunistic_encrypt invcrypt_replyencrypt
+ \ invcrypt_replysign invcrypt_replysignencrypted invcrypt_timestamp invcrypt_use_gpgme
+ \ invcrypt_use_pka invdelete_untag invdigest_collapse invduplicate_threads invedit_hdrs
+ \ invedit_headers invencode_from invenvelope_from invfast_reply invfcc_clear invfollowup_to
+ \ invforce_name invforw_decode invforw_decrypt invforw_quote invforward_decode invforward_decrypt
+ \ invforward_quote invhdrs invheader invhelp invhidden_host invhide_limited invhide_missing
+ \ invhide_thread_subject invhide_top_limited invhide_top_missing invhonor_disposition
+ \ invidn_decode invidn_encode invignore_linear_white_space invignore_list_reply_to
+ \ invimap_check_subscribed invimap_list_subscribed invimap_passive invimap_peek
+ \ invimap_servernoise invimplicit_autoview invinclude_onlyfirst invkeep_flagged
+ \ 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
+ \ invnarrow_tree invpager_stop invpgp_auto_decode invpgp_auto_traditional invpgp_autoencrypt
+ \ invpgp_autoinline invpgp_autosign invpgp_check_exit invpgp_create_traditional
+ \ invpgp_ignore_subkeys invpgp_long_ids invpgp_replyencrypt invpgp_replyinline invpgp_replysign
+ \ invpgp_replysignencrypted invpgp_retainable_sigs invpgp_show_unusable invpgp_strict_enc
+ \ invpgp_use_gpg_agent invpipe_decode invpipe_split invpop_auth_try_all invpop_last
+ \ invpostpone_encrypt invpostpone_encrypt_as invprint_decode invprint_split invprompt_after
+ \ invread_only invreflow_space_quotes invreflow_text invreflow_wrap invreply_self invresolve
+ \ invresume_draft_files invresume_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_short_path invsidebar_sort invsidebar_visible invsig_dashes invsig_on_top
+ \ invsmart_wrap invsmime_ask_cert_label invsmime_decrypt_use_default_key invsmime_is_default
+ \ invsort_re invssl_force_tls invssl_use_sslv2 invssl_use_sslv3 invssl_use_tlsv1
+ \ invssl_usesystemcerts invssl_verify_dates invssl_verify_host invstatus_on_top invstrict_mime
+ \ invstrict_threads invsuspend invtext_flowed invthorough_search invthread_received invtilde
+ \ invts_enabled invuncollapse_jump invuse_8bitmime invuse_domain invuse_envelope_from invuse_from
+ \ invuse_idn invuse_ipv6 invuser_agent invwait_key invweed invwrap_search invwrite_bcc
+ \ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
+
+syn keyword muttrcVarQuad skipwhite contained
+ \ abort_nosubject abort_unmodified bounce copy crypt_verify_sig delete
+ \ fcc_attach 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 ssl_starttls
+ \ nextgroup=muttrcSetQuadAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
+
+syn keyword muttrcVarQuad skipwhite contained
+ \ noabort_nosubject noabort_unmodified nobounce nocopy nocrypt_verify_sig nodelete
+ \ nofcc_attach 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 nossl_starttls
+ \ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
+
+syn keyword muttrcVarQuad skipwhite contained
+ \ invabort_nosubject invabort_unmodified invbounce invcopy invcrypt_verify_sig invdelete
+ \ invfcc_attach 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 invssl_starttls
+ \ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
+
+syn keyword muttrcVarNum skipwhite contained
+ \ connect_timeout history imap_keepalive imap_pipeline_depth mail_check
+ \ mail_check_stats_interval menu_context net_inc pager_context pager_index_lines
+ \ 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 /%./
@@ -349,7 +344,7 @@ syn keyword muttrcVarStr contained skipwhite query_format nextgroup=muttrcVarEqu
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 status_format nextgroup=muttrcVarEqualsStatusFmt
+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
@@ -361,34 +356,29 @@ syn match muttrcVarEqualsStrftimeFmt contained skipwhite "=" nextgroup=muttrcStr
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 alias_file assumed_charset attach_charset attach_sep nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarStr contained skipwhite certificate_file charset config_charset content_type nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarStr contained skipwhite default_hook display_filter dotlock_program dsn_notify nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarStr contained skipwhite dsn_return editor entropy_file envelope_from_address escape folder nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarStr contained skipwhite forw_format forward_format from gecos_mask hdr_format nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarStr contained skipwhite header_cache header_cache_compress header_cache_pagesize nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarStr contained skipwhite history_file hostname imap_authenticators nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarStr contained skipwhite imap_delim_chars imap_headers imap_idle imap_login imap_pass nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarStr contained skipwhite imap_user indent_str indent_string ispell locale mailcap_path nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarStr contained skipwhite mask mbox mbox_type message_cachedir mh_seq_flagged mh_seq_replied nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarStr contained skipwhite mh_seq_unseen mixmaster msg_format pager nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarStr contained skipwhite pgp_good_sign nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarStr contained skipwhite pgp_mime_signature_filename nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarStr contained skipwhite pgp_mime_signature_description pgp_sign_as nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarStr contained skipwhite pgp_sort_keys nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarStr contained skipwhite pipe_sep pop_authenticators pop_host pop_pass pop_user post_indent_str nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarStr contained skipwhite post_indent_string postponed preconnect print_cmd print_command nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarStr contained skipwhite query_command quote_regexp realname record reply_regexp send_charset nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarStr contained skipwhite sendmail shell signature simple_search smileys smime_ca_location nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarStr contained skipwhite smime_certificates smime_default_key nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarStr contained skipwhite smime_encrypt_with nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarStr contained skipwhite smime_keys smime_sign_as nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarStr contained skipwhite smtp_url smtp_authenticators smtp_pass sort sort_alias sort_aux nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarStr contained skipwhite sort_browser spam_separator spoolfile ssl_ca_certificates_file ssl_client_cert nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syn keyword muttrcVarStr contained skipwhite status_chars tmpdir to_chars tunnel visual nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-if use_mutt_sidebar == 1
- syn keyword muttrcVarStr skipwhite contained sidebar_delim nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-endif
+syn keyword muttrcVarStr contained skipwhite
+ \ alias_file assumed_charset attach_charset attach_sep certificate_file charset
+ \ config_charset content_type default_hook display_filter dotlock_program
+ \ dsn_notify dsn_return editor entropy_file envelope_from_address escape folder
+ \ forw_format 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_pass imap_user indent_str indent_string ispell locale mailcap_path mask
+ \ mbox mbox_type message_cachedir mh_seq_flagged mh_seq_replied mh_seq_unseen
+ \ mixmaster msg_format pager 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_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 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_pass smtp_url sort sort_alias
+ \ sort_aux sort_browser spam_separator spoolfile ssl_ca_certificates_file
+ \ ssl_ciphers ssl_client_cert 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
@@ -401,12 +391,11 @@ syn match muttrcMenuCommas /,/ contained
syn keyword muttrcHooks contained skipwhite account-hook charset-hook iconv-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 auto_view alternative_order exec unalternative_order
-syn keyword muttrcCommand hdr_order iconv-hook ignore mailboxes my_hdr unmailboxes
-syn keyword muttrcCommand pgp-hook push score source unauto_view unhdr_order
-syn keyword muttrcCommand unignore unmono unmy_hdr unscore
-syn keyword muttrcCommand mime_lookup unmime_lookup ungroup
-syn keyword muttrcCommand unalternative_order
+syn keyword muttrcCommand skipwhite
+ \ alternative_order auto_view exec hdr_order iconv-hook ignore mailboxes
+ \ mailto_allow mime_lookup my_hdr pgp-hook push score sidebar_whitelist source
+ \ unalternative_order unalternative_order unauto_view ungroup unhdr_order
+ \ unignore unmailboxes unmailto_allow unmime_lookup unmono unmy_hdr unscore
syn keyword muttrcCommand skipwhite charset-hook nextgroup=muttrcRXString
syn keyword muttrcCommand skipwhite unhook nextgroup=muttrcHooks
@@ -441,7 +430,7 @@ syn match muttrcVariableInner contained "\$[a-zA-Z_-]\+"
syn match muttrcEscapedVariable contained "\\\$[a-zA-Z_-]\+"
syn match muttrcBadAction contained "[^<>]\+" contains=muttrcEmail
-syn match muttrcFunction contained "\<\%(attach\|bounce\|copy\|delete\|display\|flag\|forward\|parent\|pipe\|postpone\|print\|recall\|resend\|save\|send\|tag\|undelete\)-message\>"
+syn match muttrcFunction contained "\<\%(attach\|bounce\|copy\|delete\|display\|flag\|forward\|parent\|pipe\|postpone\|print\|purge\|recall\|resend\|save\|send\|tag\|undelete\)-message\>"
syn match muttrcFunction contained "\<\%(delete\|next\|previous\|read\|tag\|break\|undelete\)-thread\>"
syn match muttrcFunction contained "\<link-threads\>"
syn match muttrcFunction contained "\<\%(backward\|capitalize\|downcase\|forward\|kill\|upcase\)-word\>"
@@ -465,11 +454,13 @@ syn match muttrcFunction contained "\<show-\%(limit\|version\)\>"
syn match muttrcFunction contained "\<sort-\%(mailbox\|reverse\)\>"
syn match muttrcFunction contained "\<tag-\%(pattern\|\%(sub\)\?thread\|prefix\%(-cond\)\?\)\>"
syn match muttrcFunction contained "\<end-cond\>"
+syn match muttrcFunction contained "\<sidebar-\%(next\|next-new\|open\|page-down\|page-up\|prev\|prev-new\|toggle-visible\)\>"
syn match muttrcFunction contained "\<toggle-\%(mailboxes\|new\|quoted\|subscribed\|unlink\|write\)\>"
syn match muttrcFunction contained "\<undelete-\%(pattern\|subthread\)\>"
syn match muttrcFunction contained "\<collapse-\%(parts\|thread\|all\)\>"
syn match muttrcFunction contained "\<view-\%(attach\|attachments\|file\|mailcap\|name\|text\)\>"
syn match muttrcFunction contained "\<\%(backspace\|backward-char\|bol\|bottom\|bottom-page\|buffy-cycle\|clear-flag\|complete\%(-query\)\?\|copy-file\|create-alias\|detach-file\|eol\|exit\|extract-keys\|\%(imap-\)\?fetch-mail\|forget-passphrase\|forward-char\|group-reply\|help\|ispell\|jump\|limit\|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-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 "\<sidebar-\%(prev\|next\|open\|scroll-up\|scroll-down\)"
endif
@@ -578,7 +569,11 @@ 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 contained attachment body bold error hdrdefault header index indicator markers message normal quoted search signature status tilde tree underline
+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 "\<quoted\d\=\>"
if use_mutt_sidebar == 1
syn keyword muttrcColorField contained sidebar_new
@@ -634,160 +629,150 @@ syn keyword muttrcMono contained mono skipwhite nextgroup=muttrcColorField
syn match muttrcMonoLine "^\s*mono\s\+\S\+" skipwhite nextgroup=muttrcMonoAttrib contains=muttrcMono
" 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_muttrc_syntax_inits")
- if version < 508
- let did_muttrc_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink muttrcComment Comment
- HiLink muttrcEscape SpecialChar
- HiLink muttrcRXChars SpecialChar
- HiLink muttrcString String
- HiLink muttrcRXString String
- HiLink muttrcRXString2 String
- HiLink muttrcSpecial Special
- HiLink muttrcHooks Type
- HiLink muttrcGroupFlag Type
- HiLink muttrcGroupDef Macro
- HiLink muttrcAddrDef muttrcGroupFlag
- HiLink muttrcRXDef muttrcGroupFlag
- HiLink muttrcRXPat String
- HiLink muttrcAliasGroupName Macro
- HiLink muttrcAliasKey Identifier
- HiLink muttrcUnAliasKey Identifier
- HiLink muttrcAliasEncEmail Identifier
- HiLink muttrcAliasParens Type
- HiLink muttrcSetNumAssignment Number
- HiLink muttrcSetBoolAssignment Boolean
- HiLink muttrcSetQuadAssignment Boolean
- HiLink muttrcSetStrAssignment String
- HiLink muttrcEmail Special
- HiLink muttrcVariableInner Special
- HiLink muttrcEscapedVariable String
- HiLink muttrcHeader Type
- HiLink muttrcKeySpecial SpecialChar
- HiLink muttrcKey Type
- HiLink muttrcKeyName SpecialChar
- HiLink muttrcVarBool Identifier
- HiLink muttrcVarQuad Identifier
- HiLink muttrcVarNum Identifier
- HiLink muttrcVarStr Identifier
- HiLink muttrcMenu Identifier
- HiLink muttrcCommand Keyword
- HiLink muttrcMacroDescr String
- HiLink muttrcAction Macro
- HiLink muttrcBadAction Error
- HiLink muttrcBindFunction Error
- HiLink muttrcBindMenuList Error
- HiLink muttrcFunction Macro
- HiLink muttrcGroupKeyword muttrcCommand
- HiLink muttrcGroupLine Error
- HiLink muttrcSubscribeKeyword muttrcCommand
- HiLink muttrcSubscribeLine Error
- HiLink muttrcListsKeyword muttrcCommand
- HiLink muttrcListsLine Error
- HiLink muttrcAlternateKeyword muttrcCommand
- HiLink muttrcAlternatesLine Error
- HiLink muttrcAttachmentsLine muttrcCommand
- HiLink muttrcAttachmentsFlag Type
- HiLink muttrcAttachmentsMimeType String
- HiLink muttrcColorLine Error
- HiLink muttrcColorContext Error
- HiLink muttrcColorContextI Identifier
- HiLink muttrcColorContextH Identifier
- HiLink muttrcColorKeyword muttrcCommand
- HiLink muttrcColorKeywordI muttrcColorKeyword
- HiLink muttrcColorKeywordH muttrcColorKeyword
- HiLink muttrcColorField Identifier
- HiLink muttrcColor Type
- HiLink muttrcColorFG Error
- HiLink muttrcColorFGI Error
- HiLink muttrcColorFGH Error
- HiLink muttrcColorBG Error
- HiLink muttrcColorBGI Error
- HiLink muttrcColorBGH Error
- HiLink muttrcMonoAttrib muttrcColor
- HiLink muttrcMono muttrcCommand
- HiLink muttrcSimplePat Identifier
- HiLink muttrcSimplePatString Macro
- HiLink muttrcSimplePatMetas Special
- HiLink muttrcPattern Error
- HiLink muttrcUnColorLine Error
- HiLink muttrcUnColorKeyword muttrcCommand
- HiLink muttrcUnColorIndex Identifier
- HiLink muttrcShellString muttrcEscape
- HiLink muttrcRXHooks muttrcCommand
- HiLink muttrcRXHookNot Type
- HiLink muttrcPatHooks muttrcCommand
- HiLink muttrcPatHookNot Type
- HiLink muttrcFormatConditionals2 Type
- HiLink muttrcIndexFormatStr muttrcString
- HiLink muttrcIndexFormatEscapes muttrcEscape
- HiLink muttrcIndexFormatConditionals muttrcFormatConditionals2
- HiLink muttrcAliasFormatStr muttrcString
- HiLink muttrcAliasFormatEscapes muttrcEscape
- HiLink muttrcAttachFormatStr muttrcString
- HiLink muttrcAttachFormatEscapes muttrcEscape
- HiLink muttrcAttachFormatConditionals muttrcFormatConditionals2
- HiLink muttrcComposeFormatStr muttrcString
- HiLink muttrcComposeFormatEscapes muttrcEscape
- HiLink muttrcFolderFormatStr muttrcString
- HiLink muttrcFolderFormatEscapes muttrcEscape
- HiLink muttrcFolderFormatConditionals muttrcFormatConditionals2
- HiLink muttrcMixFormatStr muttrcString
- HiLink muttrcMixFormatEscapes muttrcEscape
- HiLink muttrcMixFormatConditionals muttrcFormatConditionals2
- HiLink muttrcPGPFormatStr muttrcString
- HiLink muttrcPGPFormatEscapes muttrcEscape
- HiLink muttrcPGPFormatConditionals muttrcFormatConditionals2
- HiLink muttrcPGPCmdFormatStr muttrcString
- HiLink muttrcPGPCmdFormatEscapes muttrcEscape
- HiLink muttrcPGPCmdFormatConditionals muttrcFormatConditionals2
- HiLink muttrcStatusFormatStr muttrcString
- HiLink muttrcStatusFormatEscapes muttrcEscape
- HiLink muttrcStatusFormatConditionals muttrcFormatConditionals2
- HiLink muttrcPGPGetKeysFormatStr muttrcString
- HiLink muttrcPGPGetKeysFormatEscapes muttrcEscape
- HiLink muttrcSmimeFormatStr muttrcString
- HiLink muttrcSmimeFormatEscapes muttrcEscape
- HiLink muttrcSmimeFormatConditionals muttrcFormatConditionals2
- HiLink muttrcTimeEscapes muttrcEscape
- HiLink muttrcPGPTimeEscapes muttrcEscape
- HiLink muttrcStrftimeEscapes Type
- HiLink muttrcStrftimeFormatStr muttrcString
- HiLink muttrcFormatErrors Error
-
- HiLink muttrcBindFunctionNL SpecialChar
- HiLink muttrcBindKeyNL SpecialChar
- HiLink muttrcBindMenuListNL SpecialChar
- HiLink muttrcMacroDescrNL SpecialChar
- HiLink muttrcMacroBodyNL SpecialChar
- HiLink muttrcMacroKeyNL SpecialChar
- HiLink muttrcMacroMenuListNL SpecialChar
- HiLink muttrcColorMatchCountNL SpecialChar
- HiLink muttrcColorNL SpecialChar
- HiLink muttrcColorRXNL SpecialChar
- HiLink muttrcColorBGNL SpecialChar
- HiLink muttrcColorFGNL SpecialChar
- HiLink muttrcAliasNameNL SpecialChar
- HiLink muttrcAliasENNL SpecialChar
- HiLink muttrcAliasNL SpecialChar
- HiLink muttrcUnAliasNL SpecialChar
- HiLink muttrcAliasGroupDefNL SpecialChar
- HiLink muttrcAliasEncEmailNL SpecialChar
- HiLink muttrcPatternNL SpecialChar
- HiLink muttrcUnColorPatNL SpecialChar
- HiLink muttrcUnColorAPNL SpecialChar
- HiLink muttrcUnColorIndexNL SpecialChar
- HiLink muttrcStringNL SpecialChar
-
- delcommand HiLink
-endif
+" 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 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 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 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 muttrcFormatErrors Error
+
+hi def link muttrcBindFunctionNL SpecialChar
+hi def link muttrcBindKeyNL SpecialChar
+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"
diff --git a/runtime/syntax/mysql.vim b/runtime/syntax/mysql.vim
index d7cf74710d..8bd7b6459a 100644
--- a/runtime/syntax/mysql.vim
+++ b/runtime/syntax/mysql.vim
@@ -6,11 +6,8 @@
" 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
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -273,29 +270,19 @@ syn region mysqlFunction start="weekday(" end=")" contains=ALL
syn region mysqlFunction start="yearweek(" end=")" contains=ALL
" 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_mysql_syn_inits")
- if version < 508
- let did_mysql_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink mysqlKeyword Statement
- HiLink mysqlSpecial Special
- HiLink mysqlString String
- HiLink mysqlNumber Number
- HiLink mysqlVariable Identifier
- HiLink mysqlComment Comment
- HiLink mysqlType Type
- HiLink mysqlOperator Statement
- HiLink mysqlFlow Statement
- HiLink mysqlFunction Function
+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
- delcommand HiLink
-endif
let b:current_syntax = "mysql"
diff --git a/runtime/syntax/n1ql.vim b/runtime/syntax/n1ql.vim
new file mode 100644
index 0000000000..bef65d8f64
--- /dev/null
+++ b/runtime/syntax/n1ql.vim
@@ -0,0 +1,434 @@
+" Vim syntax file
+" Language: N1QL / Couchbase Server
+" Maintainer: Eugene Ciurana <n1ql AT cime.net>
+" 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: <n1ql AT cime.net>
+" 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
index faec5f68e5..a5757d5eb9 100644
--- a/runtime/syntax/named.vim
+++ b/runtime/syntax/named.vim
@@ -11,25 +11,16 @@
" This file could do with a lot of improvements, so comments are welcome.
" Please submit the named.conf (segment) with any comments.
"
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
syn case match
-if version >= 600
- setlocal iskeyword=.,-,48-58,A-Z,a-z,_
-else
- set iskeyword=.,-,48-58,A-Z,a-z,_
-endif
+setlocal iskeyword=.,-,48-58,A-Z,a-z,_
-if version >= 600
- syn sync match namedSync grouphere NONE "^(zone|controls|acl|key)"
-endif
+syn sync match namedSync grouphere NONE "^(zone|controls|acl|key)"
let s:save_cpo = &cpo
set cpo-=C
@@ -197,48 +188,38 @@ syn match namedEParenError contained +{+
syn match namedParenError +}\([^;]\|$\)+
" 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_named_syn_inits")
- if version < 508
- let did_named_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink namedComment Comment
- HiLink namedInclude Include
- HiLink namedKeyword Keyword
- HiLink namedIntKeyword Keyword
- HiLink namedIdentifier Identifier
- HiLink namedIntIdent Identifier
-
- HiLink namedString String
- HiLink namedBool Type
- HiLink namedNotBool Error
- HiLink namedNumber Number
- HiLink namedNotNumber Error
-
- HiLink namedOption namedKeyword
- HiLink namedLogOption namedKeyword
- HiLink namedCNOption namedKeyword
- HiLink namedQSKeywords Type
- HiLink namedCNKeywords Type
- HiLink namedLogCategory Type
- HiLink namedIPaddr Number
- HiLink namedDomain Identifier
- HiLink namedZoneOpt namedKeyword
- HiLink namedZoneType Type
- HiLink namedParenError Error
- HiLink namedEParenError Error
- HiLink namedIllegalDom Error
- HiLink namedIPerror Error
- HiLink namedSpareDot Error
- HiLink namedError Error
-
- delcommand HiLink
-endif
+" 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
diff --git a/runtime/syntax/nanorc.vim b/runtime/syntax/nanorc.vim
index 2ae4961fdb..606ac7fdf1 100644
--- a/runtime/syntax/nanorc.vim
+++ b/runtime/syntax/nanorc.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: nanorc(5) - GNU nano configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: nanorc(5) - GNU nano configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/nasm.vim b/runtime/syntax/nasm.vim
index a6ed056650..4f70a0f334 100644
--- a/runtime/syntax/nasm.vim
+++ b/runtime/syntax/nasm.vim
@@ -1,18 +1,17 @@
" Vim syntax file
" Language: NASM - The Netwide Assembler (v0.98)
-" Maintainer: Andriy Sokolov <andriy145@gmail.com>
+" Maintainer: Andrii Sokolov <andriy145@gmail.com>
" Original Author: Manuel M.H. Stol <Manuel.Stol@allieddata.nl>
" Former Maintainer: Manuel M.H. Stol <Manuel.Stol@allieddata.nl>
-" Last Change: 2012 Feb 7
+" Contributors: Leonard König <leonard.r.koenig@gmail.com> (C string highlighting)
+" Last Change: 2017 Jan 23
" NASM Home: http://www.nasm.us/
" Setup Syntax:
-" Clear old syntax settings
-if version < 600
- syn clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
" Assembler syntax is case insensetive
@@ -21,18 +20,10 @@ syn case ignore
" Vim search and movement commands on identifers
-if version < 600
- " Comments at start of a line inside which to skip search for indentifiers
- set comments=:;
- " Identifier Keyword characters (defines \k)
- set iskeyword=@,48-57,#,$,.,?,@-@,_,~
-else
- " Comments at start of a line inside which to skip search for indentifiers
- setlocal comments=:;
- " Identifier Keyword characters (defines \k)
- setlocal iskeyword=@,48-57,#,$,.,?,@-@,_,~
-endif
-
+" 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:
@@ -77,8 +68,23 @@ syn match nasmLabelError "\<\~\s*\(\k*\s*:\|\$\=\.\k*\)"
" Constants:
-syn match nasmStringError +["']+
+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\>"
@@ -431,96 +437,89 @@ syn sync match nasmSync grouphere NONE "^\s*%endmacro\>"
" 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_nasm_syntax_inits")
- if version < 508
- let did_nasm_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" 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 nasmNowInstruction Statement
+hi def link nasmAmdInstruction Special
+hi def link nasmCrxInstruction Special
+hi def link nasmUndInstruction Todo
+hi def link nasmInstructnError Error
- " Sub Links:
- HiLink nasmInMacDirective nasmDirective
- HiLink nasmInMacLabel nasmLocalLabel
- HiLink nasmInMacLblWarn nasmLabelWarn
- HiLink nasmInMacMacro nasmMacro
- HiLink nasmInMacParam nasmMacro
- HiLink nasmInMacParamNum nasmDecNumber
- HiLink nasmInMacPreCondit nasmPreCondit
- HiLink nasmInMacPreProc nasmPreProc
- HiLink nasmInPreCondit nasmPreCondit
- HiLink nasmInStructure nasmStructure
- HiLink nasmStructureLabel nasmStructure
-
- " Comment Group:
- HiLink nasmComment Comment
- HiLink nasmSpecialComment SpecialComment
- HiLink nasmInCommentTodo Todo
-
- " Constant Group:
- HiLink nasmString String
- HiLink nasmStringError Error
- HiLink nasmBinNumber Number
- HiLink nasmOctNumber Number
- HiLink nasmDecNumber Number
- HiLink nasmHexNumber Number
- HiLink nasmFltNumber Float
- HiLink nasmNumberError Error
-
- " Identifier Group:
- HiLink nasmLabel Identifier
- HiLink nasmLocalLabel Identifier
- HiLink nasmSpecialLabel Special
- HiLink nasmLabelError Error
- HiLink nasmLabelWarn Todo
-
- " PreProc Group:
- HiLink nasmPreProc PreProc
- HiLink nasmDefine Define
- HiLink nasmInclude Include
- HiLink nasmMacro Macro
- HiLink nasmPreCondit PreCondit
- HiLink nasmPreProcError Error
- HiLink nasmPreProcWarn Todo
-
- " Type Group:
- HiLink nasmType Type
- HiLink nasmStorage StorageClass
- HiLink nasmStructure Structure
- HiLink nasmTypeError Error
-
- " Directive Group:
- HiLink nasmConstant Constant
- HiLink nasmInstrModifier Operator
- HiLink nasmRepeat Repeat
- HiLink nasmDirective Keyword
- HiLink nasmStdDirective Operator
- HiLink nasmFmtDirective Keyword
-
- " Register Group:
- HiLink nasmCtrlRegister Special
- HiLink nasmDebugRegister Debug
- HiLink nasmTestRegister Special
- HiLink nasmRegisterError Error
- HiLink nasmMemRefError Error
-
- " Instruction Group:
- HiLink nasmStdInstruction Statement
- HiLink nasmSysInstruction Statement
- HiLink nasmDbgInstruction Debug
- HiLink nasmFpuInstruction Statement
- HiLink nasmMmxInstruction Statement
- HiLink nasmSseInstruction Statement
- HiLink nasmNowInstruction Statement
- HiLink nasmAmdInstruction Special
- HiLink nasmCrxInstruction Special
- HiLink nasmUndInstruction Todo
- HiLink nasmInstructnError Error
-
- delcommand HiLink
-endif
let b:current_syntax = "nasm"
diff --git a/runtime/syntax/nastran.vim b/runtime/syntax/nastran.vim
index f7927693fa..239fd6e49d 100644
--- a/runtime/syntax/nastran.vim
+++ b/runtime/syntax/nastran.vim
@@ -6,11 +6,8 @@
" Since DMAP shares some traits with fortran, this syntax file
" is based on the fortran.vim syntax file.
"----------------------------------------------------------------------
-" Remove any old syntax stuff hanging around
-"syn clear
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
" DMAP is not case dependent
@@ -156,37 +153,28 @@ syn region nastranBulkData start=+ *[Bb][Uu][Ll][Kk] *$+ end=+^ [Ee][Nn][Dd] *[D
syn keyword nastranUtilCard ECHOON ECHOOFF INCLUDE PARAM
-if version >= 508 || !exists("did_nastran_syntax_inits")
- if version < 508
- let did_nastran_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi link <args>
- endif
- " The default methods for highlighting. Can be overridden later
- HiLink nastranDmapexecmod Statement
- HiLink nastranDmapType Type
- HiLink nastranDmapPreCondit Error
- HiLink nastranDmapUtilmod PreProc
- HiLink nastranDmapMatmod nastranDmapUtilmod
- HiLink nastranDmapString String
- HiLink nastranDmapNumber Constant
- HiLink nastranDmapFloat nastranDmapNumber
- HiLink nastranDmapInitTab nastranDmapNumber
- HiLink nastranDmapTab nastranDmapNumber
- HiLink nastranDmapLogical nastranDmapExecmod
- HiLink nastranDmapImplicit Identifier
- HiLink nastranDmapComment Comment
- HiLink nastranDmapRepeat nastranDmapexecmod
- HiLink nastranNastranCard nastranDmapPreCondit
- HiLink nastranECSCard nastranDmapUtilmod
- HiLink nastranFMSCard nastranNastranCard
- HiLink nastranCC nastranDmapexecmod
- HiLink nastranDelimiter Special
- HiLink nastranBulkData nastranDmapType
- HiLink nastranUtilCard nastranDmapexecmod
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/natural.vim b/runtime/syntax/natural.vim
index 4fbc916be2..be529f2d85 100644
--- a/runtime/syntax/natural.vim
+++ b/runtime/syntax/natural.vim
@@ -6,16 +6,11 @@
" Last Changed: 2012-02-05 18:50:43
" Support: http://www.von-oppen.com/
-" For version 5.x: Clear all syntax items
-" For version 6.x: Quit when this syntax file was already loaded
-if v:version < 600
- syntax clear
- set iskeyword+=-,*,#,+,_,/
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
-else
- setlocal iskeyword+=-,*,#,+,_,/
endif
+setlocal iskeyword+=-,*,#,+,_,/
let s:cpo_save = &cpo
set cpo&vim
@@ -153,59 +148,50 @@ if v:version >= 600
endif
-if v:version >= 508 || !exists("did_natural_syntax_inits")
- if v:version < 508
- let did_natural_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- " The default methods for highlighting. Can be overridden later
-
- " Constants
- HiLink naturalFormat Constant
- HiLink naturalAttribute Constant
- HiLink naturalNumber Number
- HiLink naturalString String
- HiLink naturalBoolean Boolean
-
- " All kinds of keywords
- HiLink naturalConditional Conditional
- HiLink naturalRepeat Repeat
- HiLink naturalLoop Repeat
- HiLink naturalFlow Keyword
- HiLink naturalError Keyword
- HiLink naturalKeyword Keyword
- HiLink naturalOperator Operator
- HiLink naturalParGui Operator
-
- " Labels
- HiLink naturalLabel Label
- HiLink naturalRefLabel Label
-
- " Comments
- HiLink naturalPComment Comment
- HiLink naturalComment Comment
- HiLink naturalTodo Todo
- HiLink naturalCommentMark PreProc
-
- HiLink naturalInclude Include
- HiLink naturalSysVar Identifier
- HiLink naturalLineNo LineNr
- HiLink naturalLineRef Error
- HiLink naturalSpecial Special
- HiLink naturalComKey Todo
-
- " illegal things
- HiLink naturalRMKeyword Error
- HiLink naturalLegalIdent Error
-
- HiLink naturalType Type
- HiLink naturalFunction Function
- HiLink naturalObjName PreProc
-
- delcommand HiLink
-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"
diff --git a/runtime/syntax/ncf.vim b/runtime/syntax/ncf.vim
index 2019c03723..0027fd4ef8 100644
--- a/runtime/syntax/ncf.vim
+++ b/runtime/syntax/ncf.vim
@@ -4,10 +4,8 @@
" Last Change: Tue, 04 Sep 2001 16:20:33 CDT
" $Id: ncf.vim,v 1.1 2004/06/13 16:31:58 vimboss Exp $
-" Remove any old syntax stuff hanging around
-if version < 600
- syn clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -217,42 +215,33 @@ if exists("ncf_highlight_unknowns")
syn match Error "[^ \t]*" contains=ALL
endif
-if version >= 508 || !exists("did_ncf_syntax_inits")
- if version < 508
- let did_ncf_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- " The default methods for highlighting. Can be overridden later
- HiLink ncfCommands Statement
- HiLink ncfSetCommands ncfCommands
- HiLink ncfLogins ncfCommands
- HiLink ncfString String
- HiLink ncfContString ncfString
- HiLink ncfComment Comment
- HiLink ncfImplicit Type
- HiLink ncfBoolean Boolean
- HiLink ncfScript Identifier
- HiLink ncfNumber Number
- HiLink ncfIPAddr ncfNumber
- HiLink ncfHexNumber ncfNumber
- HiLink ncfTime ncfNumber
- HiLink ncfDSTTime ncfNumber
- HiLink ncfPath Constant
- HiLink ncfServerName Special
- HiLink ncfIPXNet ncfServerName
- HiLink ncfTimeTypes Constant
- HiLink ncfSetCommandsNum ncfSetCommands
- HiLink ncfSetCommandsBool ncfSetCommands
- HiLink ncfSetCommandsStr ncfSetCommands
- HiLink ncfSetCommandsTime ncfSetCommands
- HiLink ncfSetCommandsTimeDate ncfSetCommands
- HiLink ncfSetCommandsBindCon ncfSetCommands
+" 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
- delcommand HiLink
-endif
let b:current_syntax = "ncf"
diff --git a/runtime/syntax/neomuttrc.vim b/runtime/syntax/neomuttrc.vim
new file mode 100644
index 0000000000..ea9d1f0885
--- /dev/null
+++ b/runtime/syntax/neomuttrc.vim
@@ -0,0 +1,1032 @@
+" Vim syntax file
+" Language: NeoMutt setup files
+" Maintainer: Guillaume Brogi <gui-gui@netcourrier.com>
+" Last Change: 2017 Oct 28
+" Original version based on syntax/muttrc.vim
+
+" This file covers NeoMutt 20170912
+
+" 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
+"syn match muttrcString contained "=\s*[^ #"'`]\+"lc=1 contains=muttrcEscape
+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,muttrcVarDeprecatedStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad
+
+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,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr contains=muttrcVariable,muttrcEscapedVariable
+syntax region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*"+hs=s+1 end=+"+ skip=+\\"+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr contains=muttrcString
+syntax region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*'+hs=s+1 end=+'+ skip=+\\'+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr contains=muttrcString
+syntax match muttrcSetBoolAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr contains=muttrcVariable,muttrcEscapedVariable
+syntax match muttrcSetBoolAssignment contained skipwhite /=\s*\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax match muttrcSetBoolAssignment contained skipwhite /=\s*"\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax match muttrcSetBoolAssignment contained skipwhite /=\s*'\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax match muttrcSetQuadAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr contains=muttrcVariable,muttrcEscapedVariable
+syntax match muttrcSetQuadAssignment contained skipwhite /=\s*\%(ask-\)\?\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax match muttrcSetQuadAssignment contained skipwhite /=\s*"\%(ask-\)\?\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax match muttrcSetQuadAssignment contained skipwhite /=\s*'\%(ask-\)\?\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax match muttrcSetNumAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr contains=muttrcVariable,muttrcEscapedVariable
+syntax match muttrcSetNumAssignment contained skipwhite /=\s*\d\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax match muttrcSetNumAssignment contained skipwhite /=\s*"\d\+"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax match muttrcSetNumAssignment contained skipwhite /=\s*'\d\+'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+
+" 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<F\d\+>"
+
+syntax match muttrcFormatErrors contained /%./
+
+syntax match muttrcStrftimeEscapes contained /%[AaBbCcDdeFGgHhIjklMmnpRrSsTtUuVvWwXxYyZz+%]/
+syntax match muttrcStrftimeEscapes contained /%E[cCxXyY]/
+syntax match muttrcStrftimeEscapes contained /%O[BdeHImMSuUVwWy]/
+
+syntax region muttrcIndexFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcIndexFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcGroupIndexFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcGroupIndexFormatEscapes,muttrcGroupIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcGroupIndexFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcGroupIndexFormatEscapes,muttrcGroupIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcSidebarFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcSidebarFormatEscapes,muttrcSidebarFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcSidebarFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcSidebarFormatEscapes,muttrcSidebarFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcQueryFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcQueryFormatEscapes,muttrcQueryFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcAliasFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAliasFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcAliasFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAliasFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcAttachFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcAttachFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcComposeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcComposeFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcComposeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcComposeFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcFolderFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcFolderFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcMixFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcMixFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcPGPFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcPGPFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcPGPCmdFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcPGPCmdFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcStatusFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcStatusFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcPGPGetKeysFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPGetKeysFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcPGPGetKeysFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPGetKeysFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcSmimeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcSmimeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcStrftimeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStrftimeEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcStrftimeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStrftimeEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+
+" Format escapes and conditionals
+syntax match muttrcFormatConditionals2 contained /[^?]*?/
+function s:escapesConditionals(baseName, sequence, alignment, secondary)
+ exec 'syntax match muttrc' . a:baseName . 'Escapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?\%(' . a:sequence . '\|%\)/'
+ if a:alignment
+ exec 'syntax match muttrc' . a:baseName . 'Escapes contained /%[>|*]./'
+ endif
+ if a:secondary
+ 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
+
+" flatcap compiled a list of formats here: https://pastebin.com/raw/5QXhiP6L
+" UPDATE
+" The following info was pulled from hdr_format_str in hdrline.c
+call s:escapesConditionals('IndexFormat', '[AaBbCcDdEeFfgHIiJKLlMmNnOPqrSsTtuvWXxYyZz(<[{]\|G[a-zA-Z]\+', 1, 1)
+" The following info was pulled from alias_format_str in addrbook.c
+syntax match muttrcAliasFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[afnrt%]/
+" The following info was pulled from newsgroup_format_str in browser.c
+call s:escapesConditionals('GroupIndexFormat', '[CdfMNns]', 1, 1)
+" The following info was pulled from cb_format_str in sidebar.c
+call s:escapesConditionals('SidebarFormat', '[BdFLNnSt!]', 1, 1)
+" The following info was pulled from query_format_str in query.c
+call s:escapesConditionals('QueryFormat', '[acent]', 0, 1)
+" The following info was pulled from mutt_attach_fmt in recvattach.c
+call s:escapesConditionals('AttachFormat', '[CcDdeFfIMmnQsTtuX]', 1, 1)
+" The following info was pulled from compose_format_str in compose.c
+syntax match muttrcComposeFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[ahlv%]/
+syntax match muttrcComposeFormatEscapes contained /%[>|*]./
+" The following info was pulled from folder_format_str in browser.c
+call s:escapesConditionals('FolderFormat', '[CDdfFglNstu]', 1, 0)
+" The following info was pulled from mix_entry_fmt in remailer.c
+call s:escapesConditionals('MixFormat', '[acns]', 0, 0)
+" 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).
+call s:escapesConditionals('PGPFormat', '[acfklnptu[]', 0, 0)
+" The following info was pulled from _mutt_fmt_pgp_command in
+" pgpinvoke.c
+call s:escapesConditionals('PGPCmdFormat', '[afprs]', 0, 1)
+" The following info was pulled from status_format_str in status.c
+call s:escapesConditionals('StatusFormat', '[bdFfhLlMmnoPprSstuVu]', 1, 1)
+" This matches the documentation, but directly contradicts the code
+" (according to the code, this should be identical to the
+" muttrcPGPCmdFormatEscapes
+syntax match muttrcPGPGetKeysFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[acfklntu[%]/
+" The following info was pulled from _mutt_fmt_smime_command in
+" smime.c
+call s:escapesConditionals('SmimeFormat', '[aCcdfiks]', 0, 1)
+
+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 region muttrcPGPTimeEscapes 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 muttrcVarEqualsIdxFmt contained skipwhite "=" nextgroup=muttrcIndexFormatStr
+syntax match muttrcVarEqualsGrpIdxFmt contained skipwhite "=" nextgroup=muttrcGroupIndexFormatStr
+syntax match muttrcVarEqualsMixFmt contained skipwhite "=" nextgroup=muttrcMixFormatStr
+syntax match muttrcVarEqualsPGPFmt contained skipwhite "=" nextgroup=muttrcPGPFormatStr
+syntax match muttrcVarEqualsQueryFmt contained skipwhite "=" nextgroup=muttrcQueryFormatStr
+syntax match muttrcVarEqualsPGPCmdFmt contained skipwhite "=" nextgroup=muttrcPGPCmdFormatStr
+syntax match muttrcVarEqualsSdbFmt contained skipwhite "=" nextgroup=muttrcSidebarFormatStr
+syntax match muttrcVarEqualsStatusFmt contained skipwhite "=" nextgroup=muttrcStatusFormatStr
+syntax match muttrcVarEqualsPGPGetKeysFmt contained skipwhite "=" nextgroup=muttrcPGPGetKeysFormatStr
+syntax match muttrcVarEqualsSmimeFmt contained skipwhite "=" nextgroup=muttrcSmimeFormatStr
+syntax match muttrcVarEqualsStrftimeFmt contained skipwhite "=" nextgroup=muttrcStrftimeFormatStr
+
+syntax match muttrcVPrefix contained /[?&]/ nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+
+" List of the different screens in mutt
+" UPDATE
+syntax keyword muttrcMenu contained alias attach browser compose editor index pager postpone pgp mix query generic
+syntax match muttrcMenuList "\S\+" contained contains=muttrcMenu
+syntax match muttrcMenuCommas /,/ contained
+
+" List of hooks in Commands in init.h
+" UPDATE
+syntax keyword muttrcHooks contained skipwhite
+ \ account-hook append-hook charset-hook
+ \ close-hook crypt-hook fcc-hook fcc-save-hook folder-hook iconv-hook mbox-hook
+ \ message-hook open-hook pgp-hook reply-hook save-hook send-hook send2-hook
+syntax keyword muttrcHooks skipwhite shutdown-hook startup-hook timeout-hook nextgroup=muttrcCommand
+
+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 nextgroup=muttrcGroupDef,muttrcComment
+syntax keyword muttrcSubscribeKeyword unsubscribe 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 "\\\@<![a-zA-Z_-]*\$[a-zA-Z_-]\+" contains=muttrcVariableInner
+syntax match muttrcVariableInner contained "\$[a-zA-Z_-]\+"
+syntax match muttrcEscapedVariable contained "\\\$[a-zA-Z_-]\+"
+
+syntax match muttrcBadAction contained "[^<>]\+" contains=muttrcEmail
+syntax match muttrcAction contained "<[^>]\{-}>" contains=muttrcBadAction,muttrcFunction,muttrcKeyName
+
+" First, functions 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, functions that take patterns
+syntax match muttrcPatHookNot contained /!\s*/ skipwhite nextgroup=muttrcPattern
+syntax match muttrcPatHooks /\<\%(charset\|iconv\)-hook\>/ skipwhite nextgroup=muttrcPatHookNot,muttrcPattern
+syntax match muttrcPatHooks /\<\%(message\|reply\|send\|send2\|save\|fcc\|fcc-save\)-hook\>/ skipwhite nextgroup=muttrcPatHookNot,muttrcOptPattern
+
+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=+'\|\%(\%(\\\\\)\@<!$\)+me=s contains=muttrcEscape,muttrcSet,muttrcUnset,muttrcReset,muttrcToggle,muttrcSpam,muttrcNoSpam,muttrcCommand,muttrcAction,muttrcVariable nextgroup=muttrcMacroDescr,muttrcMacroDescrNL
+syntax region muttrcMacroBody matchgroup=Type contained skipwhite start=+"+ms=e skip=+\\"+ end=+"\|\%(\%(\\\\\)\@<!$\)+me=s contains=muttrcEscape,muttrcSet,muttrcUnset,muttrcReset,muttrcToggle,muttrcSpam,muttrcNoSpam,muttrcCommand,muttrcAction,muttrcVariable nextgroup=muttrcMacroDescr,muttrcMacroDescrNL
+syntax match muttrcMacroBodyNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroBody,muttrcMacroBodyNL
+syntax match muttrcMacroKey contained /\S\+/ skipwhite contains=muttrcKey nextgroup=muttrcMacroBody,muttrcMacroBodyNL
+syntax match muttrcMacroKeyNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroKey,muttrcMacroKeyNL
+syntax match muttrcMacroMenuList contained /\S\+/ skipwhite contains=muttrcMenu,muttrcMenuCommas nextgroup=muttrcMacroKey,muttrcMacroKeyNL
+syntax match muttrcMacroMenuListNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroMenuList,muttrcMacroMenuListNL
+
+syntax match muttrcAddrContent contained "[a-zA-Z0-9._-]\+@[a-zA-Z0-9./-]\+\s*" skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
+syntax region muttrcAddrContent contained start=+'+ end=+'\s*+ skip=+\\'+ skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
+syntax region muttrcAddrContent contained start=+"+ end=+"\s*+ skip=+\\"+ skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
+syntax match muttrcAddrDef contained "-addr\s\+" skipwhite nextgroup=muttrcAddrContent
+
+syntax match muttrcGroupFlag contained "-group"
+syntax region muttrcGroupDef contained start="-group\s\+" skip="\\$" end="\s" skipwhite keepend contains=muttrcGroupFlag,muttrcUnHighlightSpace
+
+syntax keyword muttrcGroupKeyword contained group ungroup
+syntax region muttrcGroupLine keepend start=+^\s*\%(un\)\?group\s+ skip=+\\$+ end=+$+ contains=muttrcGroupKeyword,muttrcGroupDef,muttrcAddrDef,muttrcRXDef,muttrcUnHighlightSpace,muttrcComment
+
+syntax match muttrcAliasGroupName contained /\w\+/ skipwhite nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL
+syntax match muttrcAliasGroupDefNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasGroupName,muttrcAliasGroupDefNL
+syntax match muttrcAliasGroupDef contained /\s*-group/ skipwhite nextgroup=muttrcAliasGroupName,muttrcAliasGroupDefNL contains=muttrcGroupFlag
+syntax match muttrcAliasComma contained /,/ skipwhite nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL
+syntax match muttrcAliasEmail contained /\S\+@\S\+/ contains=muttrcEmail nextgroup=muttrcAliasName,muttrcAliasNameNL skipwhite
+syntax match muttrcAliasEncEmail contained /<[^>]\+>/ 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
+
+syntax match muttrcSimplePat contained "!\?\^\?[~][ADEFgGklNOpPQRSTuUvV=$]"
+syntax match muttrcSimplePat contained "!\?\^\?[~][mnXz]\s*\%([<>-][0-9]\+[kM]\?\|[0-9]\+[kM]\?[-]\%([0-9]\+[kM]\?\)\?\)"
+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
+syntax match muttrcSimplePat contained "!\?\^\?[~][bBcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatRXContainer
+syntax match muttrcSimplePat contained "!\?\^\?[%][bBcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatString
+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
+
+" List of fields in Fields in color.c
+" UPDATE
+syntax keyword muttrcColorField skipwhite contained
+ \ attach_headers attachment bold error hdrdefault index_author index_collapsed
+ \ index_date index_label index_number index_size index_subject index_tags
+ \ indicator markers message normal progress prompt quoted search sidebar_divider
+ \ sidebar_flagged sidebar_highlight sidebar_indicator sidebar_new
+ \ sidebar_ordinary sidebar_spoolfile signature status tilde tree underline
+ \ body header index index_flags index_tag
+ \ nextgroup=muttrcColor
+syntax match muttrcColorField contained "\<quoted\d\=\>"
+
+syntax match muttrcColorCompose skipwhite contained /\s*compose\s*/ nextgroup=muttrcColorComposeField
+" List of fields in ComposeFields in color.c
+" UPDATE
+syntax keyword muttrcColorComposeField skipwhite contained
+ \ header security_encrypt security_sign security_both security_none
+ \ 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
+ else
+ let l:type = a:type
+ endif
+
+ exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(a:vars) . ' nextgroup=muttrcSet' . l:orig_type . 'Assignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr'
+ exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(l:novars) . ' nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr'
+ exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(l:invvars) . ' nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr'
+endfunction
+
+" List of DT_BOOL in MuttVars in init.h
+" UPDATE
+call s:boolQuadGen('Bool', [
+ \ 'allow_8bit', 'allow_ansi', 'arrow_cursor', 'ascii_chars', 'askbcc', 'askcc',
+ \ 'ask_follow_up', 'ask_x_comment_to', 'attach_split', 'autoedit', 'auto_tag',
+ \ 'beep', 'beep_new', 'bounce_delivered', 'braille_friendly', 'check_mbox_size',
+ \ 'check_new', 'collapse_all', 'collapse_flagged', 'collapse_unread',
+ \ 'confirmappend', 'confirmcreate', 'crypt_autoencrypt', 'crypt_autopgp',
+ \ 'crypt_autosign', 'crypt_autosmime', 'crypt_confirmhook',
+ \ 'crypt_opportunistic_encrypt', 'crypt_replyencrypt', 'crypt_replysign',
+ \ 'crypt_replysignencrypted', 'crypt_timestamp', 'crypt_use_gpgme',
+ \ 'crypt_use_pka', 'delete_untag', 'digest_collapse', 'duplicate_threads',
+ \ 'edit_headers', 'encode_from', 'fast_reply', 'fcc_clear', 'flag_safe',
+ \ 'followup_to', 'force_name', 'forward_decode', 'forward_decrypt',
+ \ 'forward_quote', 'forward_references', 'hdrs', 'header',
+ \ 'header_cache_compress', '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_idle', 'imap_list_subscribed', 'imap_passive',
+ \ 'imap_peek', 'imap_servernoise', 'implicit_autoview', 'include_onlyfirst',
+ \ 'keep_flagged', 'keywords_legacy', 'keywords_standard', 'mailcap_sanitize',
+ \ 'mail_check_recent', 'mail_check_stats', 'maildir_check_cur',
+ \ 'maildir_header_cache_verify', 'maildir_trash', 'markers', 'mark_old',
+ \ 'menu_move_off', 'menu_scroll', 'message_cache_clean', 'meta_key', 'metoo',
+ \ 'mh_purge', 'mime_forward_decode', 'mime_subject', 'mime_type_query_first',
+ \ 'narrow_tree', 'nm_record', 'nntp_listgroup', 'nntp_load_description',
+ \ 'pager_stop', 'pgp_auto_decode', 'pgp_autoinline', 'pgp_check_exit',
+ \ 'pgp_ignore_subkeys', 'pgp_long_ids', 'pgp_replyinline',
+ \ 'pgp_retainable_sigs', 'pgp_self_encrypt', 'pgp_show_unusable',
+ \ 'pgp_strict_enc', 'pgp_use_gpg_agent', 'pipe_decode', 'pipe_split',
+ \ 'pop_auth_try_all', 'pop_last', 'postpone_encrypt', 'print_decode',
+ \ '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_realname', '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_on_right', 'sidebar_short_path',
+ \ 'sidebar_visible', 'sig_dashes', 'sig_on_top', '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_usesystemcerts', 'ssl_use_tlsv1', 'ssl_use_tlsv1_1',
+ \ 'ssl_use_tlsv1_2', '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',
+ \ 'uncollapse_jump', 'uncollapse_new', 'use_8bitmime', 'use_domain',
+ \ 'use_envelope_from', 'use_from', 'use_ipv6', 'user_agent',
+ \ 'virtual_spoolfile', 'wait_key', 'weed', 'wrap_search', 'write_bcc',
+ \ 'x_comment_to'
+ \ ], 0)
+
+" Deprecated Bools
+" UPDATE
+" List of DT_SYNONYM synonyms of Bools in MuttVars in init.h
+call s:boolQuadGen('Bool', [
+ \ 'edit_hdrs', 'envelope_from', 'forw_decode', 'forw_decrypt', 'forw_quote',
+ \ 'pgp_autoencrypt', 'pgp_autosign', 'pgp_auto_traditional',
+ \ 'pgp_create_traditional', 'pgp_replyencrypt', 'pgp_replysign',
+ \ 'pgp_replysignencrypted', 'xterm_set_titles'
+ \ ], 1)
+
+" List of DT_QUAD in MuttVars in init.h
+" UPDATE
+call s:boolQuadGen('Quad', [
+ \ 'abort_noattach', 'abort_nosubject', 'abort_unmodified', 'bounce',
+ \ 'catchup_newsgroup', 'copy', 'crypt_verify_sig', 'delete', 'fcc_attach',
+ \ 'followup_to_poster', 'forward_edit', 'honor_followup_to', 'include',
+ \ 'mime_forward', 'mime_forward_rest', 'move', 'pgp_encrypt_self',
+ \ 'pgp_mime_auto', 'pop_delete', 'pop_reconnect', 'post_moderated', 'postpone',
+ \ 'print', 'quit', 'recall', 'reply_to', 'smime_encrypt_self', 'ssl_starttls',
+ \ ], 0)
+
+" Deprecated Quads
+" UPDATE
+" List of DT_SYNONYM synonyms of Quads in MuttVars in init.h
+call s:boolQuadGen('Quad', [
+ \ 'mime_fwd', 'pgp_verify_sig'
+ \ ], 1)
+
+" List of DT_NUMBER in MuttVars in init.h
+" UPDATE
+syntax keyword muttrcVarNum skipwhite contained
+ \ connect_timeout debug_level history 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 pgp_timeout pop_checkinterval read_inc reflow_wrap
+ \ save_history score_threshold_delete score_threshold_flag score_threshold_read
+ \ search_context sendmail_wait sidebar_width skip_quoted_offset 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,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+
+" List of DT_STRING in MuttVars in init.h
+" UPDATE
+" Special cases first, and all the rest at the end
+" A lot of special cases are format, flatcap compiled a list here https://pastebin.com/raw/5QXhiP6L
+" 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,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+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 index_format message_format pager_format nextgroup=muttrcVarEqualsIdxFmt
+" Deprecated format
+syntax keyword muttrcVarDeprecatedStr contained skipwhite hdr_format msg_format nextgroup=muttrcVarEqualsIdxFmt
+syntax keyword muttrcVarStr contained skipwhite mix_entry_format nextgroup=muttrcVarEqualsMixFmt
+syntax 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
+syntax keyword muttrcVarStr contained skipwhite pgp_entry_format nextgroup=muttrcVarEqualsPGPFmt
+syntax keyword muttrcVarStr contained skipwhite pgp_getkeys_command nextgroup=muttrcVarEqualsPGPGetKeysFmt
+syntax keyword muttrcVarStr contained skipwhite query_format nextgroup=muttrcVarEqualsQueryFmt
+syntax 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
+syntax keyword muttrcVarStr contained skipwhite ts_icon_format ts_status_format status_format nextgroup=muttrcVarEqualsStatusFmt
+" Deprecated format
+syntax keyword muttrcVarDeprecatedStr contained skipwhite xterm_icon xterm_title 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
+ \ assumed_charset attach_charset attach_sep attribution_locale charset
+ \ config_charset content_type default_hook dsn_notify dsn_return empty_subject
+ \ escape forward_attribution_intro forward_attribution_trailer forward_format
+ \ header_cache_pagesize 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
+ \ mime_type_query_command newsgroups_charset news_server nm_default_uri
+ \ nm_exclude_tags nm_hidden_tags nm_query_type nm_query_window_current_search
+ \ nm_query_window_timebase nm_record_tags nm_unread_tag nntp_authenticators
+ \ nntp_pass nntp_user pgp_self_encrypt_as pgp_sign_as pipe_sep
+ \ pop_authenticators pop_host pop_pass pop_user post_indent_string
+ \ postpone_encrypt_as preconnect realname send_charset
+ \ show_multipart_alternative sidebar_delim_chars sidebar_divider_char
+ \ sidebar_indent_string simple_search smime_default_key smime_encrypt_with
+ \ smime_self_encrypt_as smime_sign_digest_alg smtp_authenticators smtp_pass
+ \ smtp_url spam_separator ssl_ciphers tunnel xlabel_delimiter
+ \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+" Deprecated strings
+syntax keyword muttrcVarDeprecatedStr contained skipwhite
+ \ forw_format indent_str post_indent_str smime_sign_as
+ \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+" List of DT_ADDRESS
+syntax keyword muttrcVarStr contained skipwhite envelope_from_address from nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+" List of DT_HCACHE
+syntax keyword muttrcVarStr contained skipwhite header_cache_backend nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+" List of DT_MAGIC
+syntax keyword muttrcVarStr contained skipwhite mbox_type nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+" List of DT_MBTABLE
+syntax keyword muttrcVarStr contained skipwhite flag_chars from_chars status_chars to_chars nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+" List of DT_PATH
+syntax keyword muttrcVarStr contained skipwhite
+ \ alias_file certificate_file debug_file display_filter editor entropy_file
+ \ folder header_cache history_file inews ispell mbox message_cachedir mixmaster
+ \ new_mail_command news_cache_dir newsrc pager postponed print_command
+ \ query_command record sendmail shell signature smime_ca_location
+ \ smime_certificates smime_keys spoolfile ssl_ca_certificates_file
+ \ ssl_client_cert tmpdir trash visual
+ \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+" List of deprecated DT_PATH
+syntax keyword muttrcVarDeprecatedStr contained skipwhite print_cmd nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+" List of DT_REGEX
+syntax keyword muttrcVarStr contained skipwhite
+ \ attach_keyword gecos_mask mask pgp_decryption_okay pgp_good_sign quote_regexp
+ \ reply_regexp smileys
+ \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+" 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,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+
+" List of commands in Commands in init.h
+" UPDATE
+" Remember to remove hooks, they have already been dealt with
+syntax keyword muttrcCommand skipwhite charset-hook nextgroup=muttrcRXString
+syntax keyword muttrcCommand skipwhite unhook nextgroup=muttrcHooks
+syntax keyword muttrcCommand skipwhite spam nextgroup=muttrcSpamPattern
+syntax keyword muttrcCommand skipwhite nospam nextgroup=muttrcNoSpamPattern
+syntax keyword muttrcCommand skipwhite bind nextgroup=muttrcBindMenuList,muttrcBindMenuListNL
+syntax keyword muttrcCommand skipwhite macro nextgroup=muttrcMacroMenuList,muttrcMacroMenuListNL
+syntax keyword muttrcCommand skipwhite alias nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL
+syntax keyword muttrcCommand skipwhite unalias nextgroup=muttrcUnAliasKey,muttrcUnAliasNL
+syntax keyword muttrcCommand skipwhite set unset reset toggle nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax keyword muttrcCommand skipwhite exec nextgroup=muttrcFunction
+syntax keyword muttrcCommand skipwhite
+ \ alternative_order attachments auto_view hdr_order ifdef ifndef ignore lua
+ \ lua-source mailboxes mailto_allow mime_lookup my_hdr push score setenv
+ \ sidebar_whitelist source subjectrx tag-formats tag-transforms
+ \ unalternative_order unattachments unauto_view uncolor unhdr_order unignore
+ \ unmailboxes unmailto_allow unmime_lookup unmono unmy_hdr unscore unsetenv
+ \ unsidebar_whitelist unsubjectrx unvirtual-mailboxes virtual-mailboxes
+
+" List of functions in functions.h
+" UPDATE
+syntax match muttrcFunction contained "\<accept\>"
+syntax match muttrcFunction contained "\<append\>"
+syntax match muttrcFunction contained "\<attach-file\>"
+syntax match muttrcFunction contained "\<attach-key\>"
+syntax match muttrcFunction contained "\<accept\>"
+syntax match muttrcFunction contained "\<append\>"
+syntax match muttrcFunction contained "\<attach-file\>"
+syntax match muttrcFunction contained "\<attach-key\>"
+syntax match muttrcFunction contained "\<attach-message\>"
+syntax match muttrcFunction contained "\<attach-news-message\>"
+syntax match muttrcFunction contained "\<backspace\>"
+syntax match muttrcFunction contained "\<backward-char\>"
+syntax match muttrcFunction contained "\<backward-word\>"
+syntax match muttrcFunction contained "\<bol\>"
+syntax match muttrcFunction contained "\<bottom\>"
+syntax match muttrcFunction contained "\<bottom-page\>"
+syntax match muttrcFunction contained "\<bounce-message\>"
+syntax match muttrcFunction contained "\<break-thread\>"
+syntax match muttrcFunction contained "\<buffy-cycle\>"
+syntax match muttrcFunction contained "\<buffy-list\>"
+syntax match muttrcFunction contained "\<capitalize-word\>"
+syntax match muttrcFunction contained "\<catchup\>"
+syntax match muttrcFunction contained "\<chain-next\>"
+syntax match muttrcFunction contained "\<chain-prev\>"
+syntax match muttrcFunction contained "\<change-dir\>"
+syntax match muttrcFunction contained "\<change-folder\>"
+syntax match muttrcFunction contained "\<change-folder-readonly\>"
+syntax match muttrcFunction contained "\<change-newsgroup\>"
+syntax match muttrcFunction contained "\<change-newsgroup-readonly\>"
+syntax match muttrcFunction contained "\<change-vfolder\>"
+syntax match muttrcFunction contained "\<check-new\>"
+syntax match muttrcFunction contained "\<check-traditional-pgp\>"
+syntax match muttrcFunction contained "\<clear-flag\>"
+syntax match muttrcFunction contained "\<collapse-all\>"
+syntax match muttrcFunction contained "\<collapse-parts\>"
+syntax match muttrcFunction contained "\<collapse-thread\>"
+syntax match muttrcFunction contained "\<complete\>"
+syntax match muttrcFunction contained "\<complete-query\>"
+syntax match muttrcFunction contained "\<compose-to-sender\>"
+syntax match muttrcFunction contained "\<copy-file\>"
+syntax match muttrcFunction contained "\<copy-message\>"
+syntax match muttrcFunction contained "\<create-alias\>"
+syntax match muttrcFunction contained "\<create-mailbox\>"
+syntax match muttrcFunction contained "\<current-bottom\>"
+syntax match muttrcFunction contained "\<current-middle\>"
+syntax match muttrcFunction contained "\<current-top\>"
+syntax match muttrcFunction contained "\<decode-copy\>"
+syntax match muttrcFunction contained "\<decode-save\>"
+syntax match muttrcFunction contained "\<decrypt-copy\>"
+syntax match muttrcFunction contained "\<decrypt-save\>"
+syntax match muttrcFunction contained "\<delete\>"
+syntax match muttrcFunction contained "\<delete-char\>"
+syntax match muttrcFunction contained "\<delete-entry\>"
+syntax match muttrcFunction contained "\<delete-mailbox\>"
+syntax match muttrcFunction contained "\<delete-message\>"
+syntax match muttrcFunction contained "\<delete-pattern\>"
+syntax match muttrcFunction contained "\<delete-subthread\>"
+syntax match muttrcFunction contained "\<delete-thread\>"
+syntax match muttrcFunction contained "\<detach-file\>"
+syntax match muttrcFunction contained "\<display-address\>"
+syntax match muttrcFunction contained "\<display-filename\>"
+syntax match muttrcFunction contained "\<display-message\>"
+syntax match muttrcFunction contained "\<display-toggle-weed\>"
+syntax match muttrcFunction contained "\<downcase-word\>"
+syntax match muttrcFunction contained "\<edit\>"
+syntax match muttrcFunction contained "\<edit-bcc\>"
+syntax match muttrcFunction contained "\<edit-cc\>"
+syntax match muttrcFunction contained "\<edit-description\>"
+syntax match muttrcFunction contained "\<edit-encoding\>"
+syntax match muttrcFunction contained "\<edit-fcc\>"
+syntax match muttrcFunction contained "\<edit-file\>"
+syntax match muttrcFunction contained "\<edit-followup-to\>"
+syntax match muttrcFunction contained "\<edit-from\>"
+syntax match muttrcFunction contained "\<edit-headers\>"
+syntax match muttrcFunction contained "\<edit-label\>"
+syntax match muttrcFunction contained "\<edit-message\>"
+syntax match muttrcFunction contained "\<edit-mime\>"
+syntax match muttrcFunction contained "\<edit-newsgroups\>"
+syntax match muttrcFunction contained "\<edit-reply-to\>"
+syntax match muttrcFunction contained "\<edit-subject\>"
+syntax match muttrcFunction contained "\<edit-to\>"
+syntax match muttrcFunction contained "\<edit-type\>"
+syntax match muttrcFunction contained "\<edit-x-comment-to\>"
+syntax match muttrcFunction contained "\<end-cond\>"
+syntax match muttrcFunction contained "\<enter-command\>"
+syntax match muttrcFunction contained "\<enter-mask\>"
+syntax match muttrcFunction contained "\<entire-thread\>"
+syntax match muttrcFunction contained "\<eol\>"
+syntax match muttrcFunction contained "\<exit\>"
+syntax match muttrcFunction contained "\<extract-keys\>"
+syntax match muttrcFunction contained "\<fetch-mail\>"
+syntax match muttrcFunction contained "\<filter-entry\>"
+syntax match muttrcFunction contained "\<first-entry\>"
+syntax match muttrcFunction contained "\<flag-message\>"
+syntax match muttrcFunction contained "\<followup-message\>"
+syntax match muttrcFunction contained "\<forget-passphrase\>"
+syntax match muttrcFunction contained "\<forward-char\>"
+syntax match muttrcFunction contained "\<forward-message\>"
+syntax match muttrcFunction contained "\<forward-to-group\>"
+syntax match muttrcFunction contained "\<forward-word\>"
+syntax match muttrcFunction contained "\<get-attachment\>"
+syntax match muttrcFunction contained "\<get-children\>"
+syntax match muttrcFunction contained "\<get-message\>"
+syntax match muttrcFunction contained "\<get-parent\>"
+syntax match muttrcFunction contained "\<goto-folder\>"
+syntax match muttrcFunction contained "\<group-reply\>"
+syntax match muttrcFunction contained "\<half-down\>"
+syntax match muttrcFunction contained "\<half-up\>"
+syntax match muttrcFunction contained "\<help\>"
+syntax match muttrcFunction contained "\<history-down\>"
+syntax match muttrcFunction contained "\<history-up\>"
+syntax match muttrcFunction contained "\<imap-fetch-mail\>"
+syntax match muttrcFunction contained "\<imap-logout-all\>"
+syntax match muttrcFunction contained "\<insert\>"
+syntax match muttrcFunction contained "\<ispell\>"
+syntax match muttrcFunction contained "\<jump\>"
+syntax match muttrcFunction contained "\<kill-eol\>"
+syntax match muttrcFunction contained "\<kill-eow\>"
+syntax match muttrcFunction contained "\<kill-line\>"
+syntax match muttrcFunction contained "\<kill-word\>"
+syntax match muttrcFunction contained "\<last-entry\>"
+syntax match muttrcFunction contained "\<limit\>"
+syntax match muttrcFunction contained "\<limit-current-thread\>"
+syntax match muttrcFunction contained "\<link-threads\>"
+syntax match muttrcFunction contained "\<list-reply\>"
+syntax match muttrcFunction contained "\<mail\>"
+syntax match muttrcFunction contained "\<mail-key\>"
+syntax match muttrcFunction contained "\<mark-as-new\>"
+syntax match muttrcFunction contained "\<mark-message\>"
+syntax match muttrcFunction contained "\<middle-page\>"
+syntax match muttrcFunction contained "\<mix\>"
+syntax match muttrcFunction contained "\<modify-labels\>"
+syntax match muttrcFunction contained "\<modify-labels-then-hide\>"
+syntax match muttrcFunction contained "\<new-mime\>"
+syntax match muttrcFunction contained "\<next-entry\>"
+syntax match muttrcFunction contained "\<next-line\>"
+syntax match muttrcFunction contained "\<next-new\>"
+syntax match muttrcFunction contained "\<next-new-then-unread\>"
+syntax match muttrcFunction contained "\<next-page\>"
+syntax match muttrcFunction contained "\<next-subthread\>"
+syntax match muttrcFunction contained "\<next-thread\>"
+syntax match muttrcFunction contained "\<next-undeleted\>"
+syntax match muttrcFunction contained "\<next-unread\>"
+syntax match muttrcFunction contained "\<next-unread-mailbox\>"
+syntax match muttrcFunction contained "\<parent-message\>"
+syntax match muttrcFunction contained "\<pgp-menu\>"
+syntax match muttrcFunction contained "\<pipe-entry\>"
+syntax match muttrcFunction contained "\<pipe-message\>"
+syntax match muttrcFunction contained "\<post-message\>"
+syntax match muttrcFunction contained "\<postpone-message\>"
+syntax match muttrcFunction contained "\<previous-entry\>"
+syntax match muttrcFunction contained "\<previous-line\>"
+syntax match muttrcFunction contained "\<previous-new\>"
+syntax match muttrcFunction contained "\<previous-new-then-unread\>"
+syntax match muttrcFunction contained "\<previous-page\>"
+syntax match muttrcFunction contained "\<previous-subthread\>"
+syntax match muttrcFunction contained "\<previous-thread\>"
+syntax match muttrcFunction contained "\<previous-undeleted\>"
+syntax match muttrcFunction contained "\<previous-unread\>"
+syntax match muttrcFunction contained "\<print-entry\>"
+syntax match muttrcFunction contained "\<print-message\>"
+syntax match muttrcFunction contained "\<purge-message\>"
+syntax match muttrcFunction contained "\<purge-thread\>"
+syntax match muttrcFunction contained "\<quasi-delete\>"
+syntax match muttrcFunction contained "\<query\>"
+syntax match muttrcFunction contained "\<query-append\>"
+syntax match muttrcFunction contained "\<quit\>"
+syntax match muttrcFunction contained "\<quote-char\>"
+syntax match muttrcFunction contained "\<read-subthread\>"
+syntax match muttrcFunction contained "\<read-thread\>"
+syntax match muttrcFunction contained "\<recall-message\>"
+syntax match muttrcFunction contained "\<reconstruct-thread\>"
+syntax match muttrcFunction contained "\<redraw-screen\>"
+syntax match muttrcFunction contained "\<refresh\>"
+syntax match muttrcFunction contained "\<reload-active\>"
+syntax match muttrcFunction contained "\<rename-attachment\>"
+syntax match muttrcFunction contained "\<rename-file\>"
+syntax match muttrcFunction contained "\<rename-mailbox\>"
+syntax match muttrcFunction contained "\<reply\>"
+syntax match muttrcFunction contained "\<resend-message\>"
+syntax match muttrcFunction contained "\<root-message\>"
+syntax match muttrcFunction contained "\<save-entry\>"
+syntax match muttrcFunction contained "\<save-message\>"
+syntax match muttrcFunction contained "\<search\>"
+syntax match muttrcFunction contained "\<search-next\>"
+syntax match muttrcFunction contained "\<search-opposite\>"
+syntax match muttrcFunction contained "\<search-reverse\>"
+syntax match muttrcFunction contained "\<search-toggle\>"
+syntax match muttrcFunction contained "\<select-entry\>"
+syntax match muttrcFunction contained "\<select-new\>"
+syntax match muttrcFunction contained "\<send-message\>"
+syntax match muttrcFunction contained "\<set-flag\>"
+syntax match muttrcFunction contained "\<shell-escape\>"
+syntax match muttrcFunction contained "\<show-limit\>"
+syntax match muttrcFunction contained "\<show-version\>"
+syntax match muttrcFunction contained "\<sidebar-next\>"
+syntax match muttrcFunction contained "\<sidebar-next-new\>"
+syntax match muttrcFunction contained "\<sidebar-open\>"
+syntax match muttrcFunction contained "\<sidebar-page-down\>"
+syntax match muttrcFunction contained "\<sidebar-page-up\>"
+syntax match muttrcFunction contained "\<sidebar-prev\>"
+syntax match muttrcFunction contained "\<sidebar-prev-new\>"
+syntax match muttrcFunction contained "\<sidebar-toggle-virtual\>"
+syntax match muttrcFunction contained "\<sidebar-toggle-visible\>"
+syntax match muttrcFunction contained "\<skip-quoted\>"
+syntax match muttrcFunction contained "\<smime-menu\>"
+syntax match muttrcFunction contained "\<sort\>"
+syntax match muttrcFunction contained "\<sort-mailbox\>"
+syntax match muttrcFunction contained "\<sort-reverse\>"
+syntax match muttrcFunction contained "\<subscribe\>"
+syntax match muttrcFunction contained "\<subscribe-pattern\>"
+syntax match muttrcFunction contained "\<sync-mailbox\>"
+syntax match muttrcFunction contained "\<tag-entry\>"
+syntax match muttrcFunction contained "\<tag-message\>"
+syntax match muttrcFunction contained "\<tag-pattern\>"
+syntax match muttrcFunction contained "\<tag-prefix\>"
+syntax match muttrcFunction contained "\<tag-prefix-cond\>"
+syntax match muttrcFunction contained "\<tag-subthread\>"
+syntax match muttrcFunction contained "\<tag-thread\>"
+syntax match muttrcFunction contained "\<toggle-disposition\>"
+syntax match muttrcFunction contained "\<toggle-mailboxes\>"
+syntax match muttrcFunction contained "\<toggle-new\>"
+syntax match muttrcFunction contained "\<toggle-quoted\>"
+syntax match muttrcFunction contained "\<toggle-read\>"
+syntax match muttrcFunction contained "\<toggle-recode\>"
+syntax match muttrcFunction contained "\<toggle-subscribed\>"
+syntax match muttrcFunction contained "\<toggle-unlink\>"
+syntax match muttrcFunction contained "\<toggle-write\>"
+syntax match muttrcFunction contained "\<top\>"
+syntax match muttrcFunction contained "\<top-page\>"
+syntax match muttrcFunction contained "\<transpose-chars\>"
+syntax match muttrcFunction contained "\<uncatchup\>"
+syntax match muttrcFunction contained "\<undelete-entry\>"
+syntax match muttrcFunction contained "\<undelete-message\>"
+syntax match muttrcFunction contained "\<undelete-pattern\>"
+syntax match muttrcFunction contained "\<undelete-subthread\>"
+syntax match muttrcFunction contained "\<undelete-thread\>"
+syntax match muttrcFunction contained "\<unsubscribe\>"
+syntax match muttrcFunction contained "\<unsubscribe-pattern\>"
+syntax match muttrcFunction contained "\<untag-pattern\>"
+syntax match muttrcFunction contained "\<upcase-word\>"
+syntax match muttrcFunction contained "\<update-encoding\>"
+syntax match muttrcFunction contained "\<verify-key\>"
+syntax match muttrcFunction contained "\<vfolder-from-query\>"
+syntax match muttrcFunction contained "\<vfolder-window-backward\>"
+syntax match muttrcFunction contained "\<vfolder-window-forward\>"
+syntax match muttrcFunction contained "\<view-attach\>"
+syntax match muttrcFunction contained "\<view-attachments\>"
+syntax match muttrcFunction contained "\<view-file\>"
+syntax match muttrcFunction contained "\<view-mailcap\>"
+syntax match muttrcFunction contained "\<view-name\>"
+syntax match muttrcFunction contained "\<view-text\>"
+syntax match muttrcFunction contained "\<what-key\>"
+syntax match muttrcFunction contained "\<write-fcc\>"
+
+
+
+" Define the default highlighting.
+" Only when an item doesn't have highlighting yet
+
+highlight def link muttrcComment Comment
+highlight def link muttrcEscape SpecialChar
+highlight def link muttrcRXChars SpecialChar
+highlight def link muttrcString String
+highlight def link muttrcRXString String
+highlight def link muttrcRXString2 String
+highlight def link muttrcSpecial Special
+highlight def link muttrcHooks Type
+highlight def link muttrcGroupFlag Type
+highlight def link muttrcGroupDef Macro
+highlight def link muttrcAddrDef muttrcGroupFlag
+highlight def link muttrcRXDef muttrcGroupFlag
+highlight def link muttrcRXPat String
+highlight def link muttrcAliasGroupName Macro
+highlight def link muttrcAliasKey Identifier
+highlight def link muttrcUnAliasKey Identifier
+highlight def link muttrcAliasEncEmail Identifier
+highlight def link muttrcAliasParens Type
+highlight def link muttrcSetNumAssignment Number
+highlight def link muttrcSetBoolAssignment Boolean
+highlight def link muttrcSetQuadAssignment Boolean
+highlight def link muttrcSetStrAssignment String
+highlight def link muttrcEmail Special
+highlight def link muttrcVariableInner Special
+highlight def link muttrcEscapedVariable String
+highlight def link muttrcHeader Type
+highlight def link muttrcKeySpecial SpecialChar
+highlight def link muttrcKey Type
+highlight def link muttrcKeyName SpecialChar
+highlight def link muttrcVarBool Identifier
+highlight def link muttrcVarQuad Identifier
+highlight def link muttrcVarNum Identifier
+highlight def link muttrcVarStr Identifier
+highlight def link muttrcMenu Identifier
+highlight def link muttrcCommand Keyword
+highlight def link muttrcMacroDescr String
+highlight def link muttrcAction Macro
+highlight def link muttrcBadAction Error
+highlight def link muttrcBindFunction Error
+highlight def link muttrcBindMenuList Error
+highlight def link muttrcFunction Macro
+highlight def link muttrcGroupKeyword muttrcCommand
+highlight def link muttrcGroupLine Error
+highlight def link muttrcSubscribeKeyword muttrcCommand
+highlight def link muttrcSubscribeLine Error
+highlight def link muttrcListsKeyword muttrcCommand
+highlight def link muttrcListsLine Error
+highlight def link muttrcAlternateKeyword muttrcCommand
+highlight def link muttrcAlternatesLine Error
+highlight def link muttrcAttachmentsLine muttrcCommand
+highlight def link muttrcAttachmentsFlag Type
+highlight def link muttrcAttachmentsMimeType String
+highlight def link muttrcColorLine Error
+highlight def link muttrcColorContext Error
+highlight def link muttrcColorContextI Identifier
+highlight def link muttrcColorContextH Identifier
+highlight def link muttrcColorKeyword muttrcCommand
+highlight def link muttrcColorField Identifier
+highlight def link muttrcColorCompose Identifier
+highlight def link muttrcColorComposeField Identifier
+highlight def link muttrcColor Type
+highlight def link muttrcColorFG Error
+highlight def link muttrcColorFGI Error
+highlight def link muttrcColorFGH Error
+highlight def link muttrcColorBG Error
+highlight def link muttrcColorBGI Error
+highlight def link muttrcColorBGH Error
+highlight def link muttrcMonoAttrib muttrcColor
+highlight def link muttrcMono muttrcCommand
+highlight def link muttrcSimplePat Identifier
+highlight def link muttrcSimplePatString Macro
+highlight def link muttrcSimplePatMetas Special
+highlight def link muttrcPattern Error
+highlight def link muttrcUnColorLine Error
+highlight def link muttrcUnColorKeyword muttrcCommand
+highlight def link muttrcUnColorIndex Identifier
+highlight def link muttrcShellString muttrcEscape
+highlight def link muttrcRXHooks muttrcCommand
+highlight def link muttrcRXHookNot Type
+highlight def link muttrcPatHooks muttrcCommand
+highlight def link muttrcPatHookNot Type
+highlight def link muttrcFormatConditionals2 Type
+highlight def link muttrcIndexFormatStr muttrcString
+highlight def link muttrcIndexFormatEscapes muttrcEscape
+highlight def link muttrcIndexFormatConditionals muttrcFormatConditionals2
+highlight def link muttrcAliasFormatStr muttrcString
+highlight def link muttrcAliasFormatEscapes muttrcEscape
+highlight def link muttrcAttachFormatStr muttrcString
+highlight def link muttrcAttachFormatEscapes muttrcEscape
+highlight def link muttrcAttachFormatConditionals muttrcFormatConditionals2
+highlight def link muttrcComposeFormatStr muttrcString
+highlight def link muttrcComposeFormatEscapes muttrcEscape
+highlight def link muttrcFolderFormatStr muttrcString
+highlight def link muttrcFolderFormatEscapes muttrcEscape
+highlight def link muttrcFolderFormatConditionals muttrcFormatConditionals2
+highlight def link muttrcMixFormatStr muttrcString
+highlight def link muttrcMixFormatEscapes muttrcEscape
+highlight def link muttrcMixFormatConditionals muttrcFormatConditionals2
+highlight def link muttrcPGPFormatStr muttrcString
+highlight def link muttrcPGPFormatEscapes muttrcEscape
+highlight def link muttrcPGPFormatConditionals muttrcFormatConditionals2
+highlight def link muttrcPGPCmdFormatStr muttrcString
+highlight def link muttrcPGPCmdFormatEscapes muttrcEscape
+highlight def link muttrcPGPCmdFormatConditionals muttrcFormatConditionals2
+highlight def link muttrcStatusFormatStr muttrcString
+highlight def link muttrcStatusFormatEscapes muttrcEscape
+highlight def link muttrcStatusFormatConditionals muttrcFormatConditionals2
+highlight def link muttrcPGPGetKeysFormatStr muttrcString
+highlight def link muttrcPGPGetKeysFormatEscapes muttrcEscape
+highlight def link muttrcSmimeFormatStr muttrcString
+highlight def link muttrcSmimeFormatEscapes muttrcEscape
+highlight def link muttrcSmimeFormatConditionals muttrcFormatConditionals2
+highlight def link muttrcTimeEscapes muttrcEscape
+highlight def link muttrcPGPTimeEscapes muttrcEscape
+highlight def link muttrcStrftimeEscapes Type
+highlight def link muttrcStrftimeFormatStr muttrcString
+highlight def link muttrcFormatErrors Error
+
+highlight def link muttrcBindFunctionNL SpecialChar
+highlight def link muttrcBindKeyNL SpecialChar
+highlight def link muttrcBindMenuListNL SpecialChar
+highlight def link muttrcMacroDescrNL SpecialChar
+highlight def link muttrcMacroBodyNL SpecialChar
+highlight def link muttrcMacroKeyNL SpecialChar
+highlight def link muttrcMacroMenuListNL SpecialChar
+highlight def link muttrcColorMatchCountNL SpecialChar
+highlight def link muttrcColorNL SpecialChar
+highlight def link muttrcColorRXNL SpecialChar
+highlight def link muttrcColorBGNL SpecialChar
+highlight def link muttrcColorFGNL SpecialChar
+highlight def link muttrcAliasNameNL SpecialChar
+highlight def link muttrcAliasENNL SpecialChar
+highlight def link muttrcAliasNL SpecialChar
+highlight def link muttrcUnAliasNL SpecialChar
+highlight def link muttrcAliasGroupDefNL SpecialChar
+highlight def link muttrcAliasEncEmailNL SpecialChar
+highlight def link muttrcPatternNL SpecialChar
+highlight def link muttrcUnColorPatNL SpecialChar
+highlight def link muttrcUnColorAPNL SpecialChar
+highlight def link muttrcUnColorIndexNL SpecialChar
+highlight def link muttrcStringNL SpecialChar
+
+highlight def link muttrcVarDeprecatedBool Error
+highlight def link muttrcVarDeprecatedQuad Error
+highlight def link muttrcVarDeprecatedStr Error
+
+
+let b:current_syntax = "neomuttrc"
+
+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/netrc.vim b/runtime/syntax/netrc.vim
index 9f15d16637..4d068a1b76 100644
--- a/runtime/syntax/netrc.vim
+++ b/runtime/syntax/netrc.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: netrc(5) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2010-01-03
+" Language: netrc(5) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2010-01-03
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/netrw.vim b/runtime/syntax/netrw.vim
index 718cee1429..3d3aa993bd 100644
--- a/runtime/syntax/netrw.vim
+++ b/runtime/syntax/netrw.vim
@@ -5,9 +5,8 @@
" ---------------------------------------------------------------------
" Syntax Clearing: {{{1
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
diff --git a/runtime/syntax/nqc.vim b/runtime/syntax/nqc.vim
index 0a3cd6bc73..d09c106f98 100644
--- a/runtime/syntax/nqc.vim
+++ b/runtime/syntax/nqc.vim
@@ -6,11 +6,8 @@
" URL: http://www.enotes.de/twiki/pub/Home/LegoMindstorms/nqc.vim
" Filenames: .nqc
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -326,52 +323,42 @@ endif
exec "syn sync ccomment nqcComment minlines=" . nqc_minlines
" 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_nqc_syn_inits")
- if version < 508
- let did_nqc_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" 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
- " The default methods for highlighting. Can be overridden later
- HiLink nqcLabel Label
- HiLink nqcConditional Conditional
- HiLink nqcRepeat Repeat
- HiLink nqcCharacter Character
- HiLink nqcNumber Number
- HiLink nqcFloat Float
- HiLink nqcFunction Function
- HiLink nqcParenError nqcError
- HiLink nqcErrInParen nqcError
- HiLink nqcErrInBracket nqcError
- HiLink nqcCommentL nqcComment
- HiLink nqcCommentStart nqcComment
- HiLink nqcCommentError nqcError
- HiLink nqcCommentStartError nqcError
- HiLink nqcSpaceError nqcError
- HiLink nqcStorageClass StorageClass
- HiLink nqcInclude Include
- HiLink nqcPreProc PreProc
- HiLink nqcDefine Macro
- HiLink nqcIncluded String
- HiLink nqcError Error
- HiLink nqcStatement Statement
- HiLink nqcEvents Statement
- HiLink nqcPreCondit PreCondit
- HiLink nqcType Type
- HiLink nqcConstant Constant
- HiLink nqcCommentSkip nqcComment
- HiLink nqcComment Comment
- HiLink nqcTodo Todo
- HiLink nqcCppSkip nqcCppOut
- HiLink nqcCppOut2 nqcCppOut
- HiLink nqcCppOut Comment
-
- delcommand HiLink
-endif
let b:current_syntax = "nqc"
diff --git a/runtime/syntax/nroff.vim b/runtime/syntax/nroff.vim
index 280ba9e7d9..3a8cf95856 100644
--- a/runtime/syntax/nroff.vim
+++ b/runtime/syntax/nroff.vim
@@ -22,12 +22,9 @@
"
" {{{1 Start syntax highlighting.
"
-" For version 5.x: Clear all syntax items
-" For version 6.x: Quit when a syntax file was already loaded
+" quit when a syntax file was already loaded
"
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+if exists("b:current_syntax")
finish
endif
@@ -197,65 +194,53 @@ syn keyword nroffTodo TODO XXX FIXME contained
"
" 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
+" Only when an item doesn't have highlighting yet
"
-if version >= 508 || !exists("did_nroff_syn_inits")
-
- if version < 508
- let did_nroff_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink nroffEscChar nroffSpecialChar
- HiLink nroffEscCharAr nroffSpecialChar
- HiLink nroffSpecialChar SpecialChar
- HiLink nroffSpace Delimiter
-
- HiLink nroffEscRegArg2 nroffEscRegArg
- HiLink nroffEscRegArg nroffIdent
-
- HiLink nroffEscArg2 nroffEscArg
- HiLink nroffEscPar nroffEscape
-
- HiLink nroffEscRegPar nroffEscape
- HiLink nroffEscArg nroffEscape
- HiLink nroffSize nroffEscape
- HiLink nroffEscape Preproc
-
- HiLink nroffIgnore Comment
- HiLink nroffComment Comment
- HiLink nroffTodo Todo
-
- HiLink nroffReqLeader nroffRequest
- HiLink nroffReqName nroffRequest
- HiLink nroffRequest Statement
- HiLink nroffCond PreCondit
- HiLink nroffDefIdent nroffIdent
- HiLink nroffIdent Identifier
-
- HiLink nroffEquation PreProc
- HiLink nroffTable PreProc
- HiLink nroffPicture PreProc
- HiLink nroffRefer PreProc
- HiLink nroffGrap PreProc
- HiLink nroffGremlin PreProc
-
- HiLink nroffNumber Number
- HiLink nroffBadChar nroffError
- HiLink nroffSpaceError nroffError
- HiLink nroffError Error
-
- HiLink nroffPreserve String
- HiLink nroffString String
- HiLink nroffDefinition String
- HiLink nroffDefSpecial Special
-
- delcommand HiLink
-endif
+hi def link nroffEscChar nroffSpecialChar
+hi def link nroffEscCharAr 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"
diff --git a/runtime/syntax/nsis.vim b/runtime/syntax/nsis.vim
index d6d803714e..3a343dd430 100644
--- a/runtime/syntax/nsis.vim
+++ b/runtime/syntax/nsis.vim
@@ -3,11 +3,8 @@
" Maintainer: Alex Jakushev <Alex.Jakushev@kemek.lt>
" Last Change: 2004 May 12
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -224,48 +221,36 @@ syn keyword nsisError UninstallExeName
" 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_nsis_syn_inits")
-
- if version < 508
- let did_nsys_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
-
- HiLink nsisInstruction Function
- HiLink nsisComment Comment
- HiLink nsisLocalLabel Label
- HiLink nsisGlobalLabel Label
- HiLink nsisStatement Statement
- HiLink nsisString String
- HiLink nsisBoolean Boolean
- HiLink nsisAttribOptions Constant
- HiLink nsisExecShell Constant
- HiLink nsisFileAttrib Constant
- HiLink nsisMessageBox Constant
- HiLink nsisRegistry Identifier
- HiLink nsisNumber Number
- HiLink nsisError Error
- HiLink nsisUserVar Identifier
- HiLink nsisSysVar Identifier
- HiLink nsisAttribute Type
- HiLink nsisCompiler Type
- HiLink nsisTodo Todo
- HiLink nsisCallback Operator
- " preprocessor commands
- HiLink nsisPreprocSubst PreProc
- HiLink nsisDefine Define
- HiLink nsisMacro Macro
- HiLink nsisPreCondit PreCondit
- HiLink nsisInclude Include
- HiLink nsisSystem PreProc
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link nsisInstruction Function
+hi def link nsisComment 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 nsisAttribOptions Constant
+hi def link nsisExecShell Constant
+hi def link nsisFileAttrib Constant
+hi def link nsisMessageBox 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 nsisTodo Todo
+hi def link nsisCallback Operator
+" preprocessor commands
+hi def link nsisPreprocSubst 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
+
let b:current_syntax = "nsis"
diff --git a/runtime/syntax/obj.vim b/runtime/syntax/obj.vim
index 66cd6c2bde..df4dbca5d7 100644
--- a/runtime/syntax/obj.vim
+++ b/runtime/syntax/obj.vim
@@ -4,11 +4,8 @@
" File Types: .obj (used in 3D)
" Last Change: 2010 May 18
"
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -62,34 +59,24 @@ syn match objInt "\d\+"
syn match objIndex "\d\+\/\d*\/\d*"
" 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_cabal_syn_inits")
- if version < 508
- let did_cabal_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink objError Error
- HiLink objComment Comment
- HiLink objInclude PreProc
- HiLink objFloat Float
- HiLink objInt Number
- HiLink objGroup Structure
- HiLink objIndex Constant
- HiLink objMaterial Label
+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
- HiLink objVertex Keyword
- HiLink objNormale Keyword
- HiLink objVertice Keyword
- HiLink objFace Keyword
- HiLink objKeywords Keyword
+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
- delcommand HiLink
-endif
let b:current_syntax = "obj"
diff --git a/runtime/syntax/objcpp.vim b/runtime/syntax/objcpp.vim
index e80eed900d..f11e307444 100644
--- a/runtime/syntax/objcpp.vim
+++ b/runtime/syntax/objcpp.vim
@@ -4,23 +4,15 @@
" Ex-Maintainer: Anthony Hodsdon <ahodsdon@fastmail.fm>
" Last Change: 2007 Oct 29
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
" Read in C++ and ObjC syntax files
-if version < 600
- so <sfile>:p:h/cpp.vim
- so <sfile>:p:h/objc.vim
-else
- runtime! syntax/cpp.vim
- unlet b:current_syntax
- runtime! syntax/objc.vim
-endif
+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
diff --git a/runtime/syntax/ocaml.vim b/runtime/syntax/ocaml.vim
index 24116f0e02..68c1feddae 100644
--- a/runtime/syntax/ocaml.vim
+++ b/runtime/syntax/ocaml.vim
@@ -13,11 +13,8 @@
" can be distinguished from begin/end, which is used for indentation,
" and folding. (David Baelde)
-" 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 == "ocaml"
+" quit when a syntax file was already loaded
+if exists("b:current_syntax") && b:current_syntax == "ocaml"
finish
endif
@@ -253,78 +250,68 @@ syn sync match ocamlSigSync grouphere ocamlSig "\<sig\>"
syn sync match ocamlSigSync groupthere ocamlSig "\<end\>"
" 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_ocaml_syntax_inits")
- if version < 508
- let did_ocaml_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink ocamlBraceErr Error
- HiLink ocamlBrackErr Error
- HiLink ocamlParenErr Error
- HiLink ocamlArrErr Error
-
- HiLink ocamlCommentErr Error
-
- HiLink ocamlCountErr Error
- HiLink ocamlDoErr Error
- HiLink ocamlDoneErr Error
- HiLink ocamlEndErr Error
- HiLink ocamlThenErr Error
-
- HiLink ocamlCharErr Error
-
- HiLink ocamlErr Error
-
- HiLink ocamlComment Comment
-
- HiLink ocamlModPath Include
- HiLink ocamlObject Include
- HiLink ocamlModule Include
- HiLink ocamlModParam1 Include
- HiLink ocamlModType Include
- HiLink ocamlMPRestr3 Include
- HiLink ocamlFullMod Include
- HiLink ocamlModTypeRestr Include
- HiLink ocamlWith Include
- HiLink ocamlMTDef Include
-
- HiLink ocamlScript Include
-
- HiLink ocamlConstructor Constant
-
- HiLink ocamlVal Keyword
- HiLink ocamlModPreRHS Keyword
- HiLink ocamlMPRestr2 Keyword
- HiLink ocamlKeyword Keyword
- HiLink ocamlMethod Include
- HiLink ocamlFunDef Keyword
- HiLink ocamlRefAssign Keyword
- HiLink ocamlKeyChar Keyword
- HiLink ocamlAnyVar Keyword
- HiLink ocamlTopStop Keyword
- HiLink ocamlOperator Keyword
-
- HiLink ocamlBoolean Boolean
- HiLink ocamlCharacter Character
- HiLink ocamlNumber Number
- HiLink ocamlFloat Float
- HiLink ocamlString String
-
- HiLink ocamlLabel Identifier
-
- HiLink ocamlType Type
-
- HiLink ocamlTodo Todo
-
- HiLink ocamlEncl Keyword
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+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 ocamlModType Include
+hi def link ocamlMPRestr3 Include
+hi def link ocamlFullMod Include
+hi def link ocamlModTypeRestr Include
+hi def link ocamlWith Include
+hi def link ocamlMTDef Include
+
+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 ocamlFunDef Keyword
+hi def link ocamlRefAssign Keyword
+hi def link ocamlKeyChar Keyword
+hi def link ocamlAnyVar Keyword
+hi def link ocamlTopStop Keyword
+hi def link ocamlOperator Keyword
+
+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 ocamlLabel Identifier
+
+hi def link ocamlType Type
+
+hi def link ocamlTodo Todo
+
+hi def link ocamlEncl Keyword
+
let b:current_syntax = "ocaml"
diff --git a/runtime/syntax/occam.vim b/runtime/syntax/occam.vim
index 1c84bf00f6..01d139bd09 100644
--- a/runtime/syntax/occam.vim
+++ b/runtime/syntax/occam.vim
@@ -4,9 +4,8 @@
" Maintainer: Mario Schweigler <ms44@kent.ac.uk>
" Last Change: 24 May 2003
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -86,41 +85,32 @@ 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
-if version >= 508 || !exists("did_occam_syn_inits")
- if version < 508
- let did_occam_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink occamType Type
- HiLink occamKeyword Keyword
- HiLink occamComment Comment
- HiLink occamCommentTitle PreProc
- HiLink occamTodo Todo
- HiLink occamNote Todo
- HiLink occamString String
- HiLink occamCharString String
- HiLink occamNumber Number
- HiLink occamCDirective PreProc
- HiLink occamCDString String
- HiLink occamPPIdentifier PreProc
- HiLink occamBoolean Boolean
- HiLink occamSpecialChar SpecialChar
- HiLink occamChar Character
- HiLink occamStructure Structure
- HiLink occamIdentifier Identifier
- HiLink occamConstant Constant
- HiLink occamOperator Operator
- HiLink occamFunction Ignore
- HiLink occamRepeat Repeat
- HiLink occamConditional Conditional
- HiLink occamBrackets Type
- HiLink occamParantheses Delimiter
-
- delcommand HiLink
-endif
+
+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
index 698b3c09fb..6294945ffb 100644
--- a/runtime/syntax/omnimark.vim
+++ b/runtime/syntax/omnimark.vim
@@ -3,19 +3,12 @@
" Maintainer: Paul Terray <mailto:terray@4dconcept.fr>
" Last Change: 11 Oct 2000
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
-if version < 600
- set iskeyword=@,48-57,_,128-167,224-235,-
-else
- setlocal iskeyword=@,48-57,_,128-167,224-235,-
-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
@@ -96,26 +89,16 @@ syn match omnimarkEscape contained +%[0-9][0-9]#+
syn sync minlines=2000
" 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_omnimark_syntax_inits")
- if version < 508
- let did_omnimark_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink omnimarkCommands Statement
- HiLink omnimarkKeywords Identifier
- HiLink omnimarkString String
- HiLink omnimarkPatterns Macro
-" HiLink omnimarkNumber Number
- HiLink omnimarkComment Comment
- HiLink omnimarkEscape Special
+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
- delcommand HiLink
-endif
let b:current_syntax = "omnimark"
diff --git a/runtime/syntax/openroad.vim b/runtime/syntax/openroad.vim
index 3f9a78d552..e09f233647 100644
--- a/runtime/syntax/openroad.vim
+++ b/runtime/syntax/openroad.vim
@@ -3,12 +3,8 @@
" Maintainer: Luis Moreno <lmoreno@eresmas.net>
" Last change: 2001 Jun 12
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -235,32 +231,22 @@ else
endif
" 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
+" Only when an item doesn't have highlighting yet
"
-if version >= 508 || !exists("did_openroad_syntax_inits")
- if version < 508
- let did_openroad_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink openroadKeyword Statement
- HiLink openroadNumber Number
- HiLink openroadString String
- HiLink openroadComment Comment
- HiLink openroadOperator Operator
- HiLink openroadType Type
- HiLink openroadFunc Special
- HiLink openroadClass Type
- HiLink openroadEvent Statement
- HiLink openroadConst Constant
- HiLink openroadVar Identifier
- HiLink openroadIdent Identifier
- HiLink openroadTodo Todo
+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
- delcommand HiLink
-endif
let b:current_syntax = "openroad"
diff --git a/runtime/syntax/opl.vim b/runtime/syntax/opl.vim
index 1b07e3596c..8b66a5b345 100644
--- a/runtime/syntax/opl.vim
+++ b/runtime/syntax/opl.vim
@@ -6,11 +6,8 @@
" Open Psion Language... (EPOC16/EPOC32)
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -75,25 +72,15 @@ syn region OPLComment start="REM[\t ]" end="$"
syn match OPLMathsOperator "-\|=\|[:<>+\*^/\\]"
" 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_OPL_syntax_inits")
- if version < 508
- let did_OPL_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink OPLStatement Statement
- HiLink OPLNumber Number
- HiLink OPLString String
- HiLink OPLComment Comment
- HiLink OPLMathsOperator Conditional
-" HiLink OPLError Error
+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
- delcommand HiLink
-endif
let b:current_syntax = "opl"
diff --git a/runtime/syntax/ora.vim b/runtime/syntax/ora.vim
index bf5d3220a0..99034793f2 100644
--- a/runtime/syntax/ora.vim
+++ b/runtime/syntax/ora.vim
@@ -11,10 +11,8 @@
" sqlnet-ora and tnsnames.ora; since will not cause(?) problems
" is easier to follow separately each file's keywords)
-" Remove any old syntax stuff hanging around, if needed
-if version < 600
- syn clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -437,35 +435,23 @@ syn cluster oraAll add=oraValue,oraModifier,oraString,oraSpecial,oraComment
"==============================================================================
" 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_ora_syn_inits")
-
- if version < 508
- let did_ora_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink oraKeyword Statement "usual keywords
- HiLink oraKeywordGroup Type "keywords which group other keywords
- HiLink oraKeywordPref oraKeywordGroup "keywords which act as prefixes
- HiLink oraKeywordObs Todo "obsolete keywords
- HiLink oraKeywordUnd PreProc "undocumented keywords
- HiLink oraKeywordUndObs oraKeywordObs "undocumented obsolete keywords
- HiLink oraValue Identifier "values, like true or false
- HiLink oraModifier oraValue "modifies values
- HiLink oraString String "strings
-
- HiLink oraSpecial Special "special characters
- HiLink oraError Error "errors
- HiLink oraParenError oraError "errors caused by mismatching parantheses
-
- HiLink oraComment Comment "comments
-
- delcommand HiLink
-endif
+" 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 parantheses
+
+hi def link oraComment Comment "comments
diff --git a/runtime/syntax/pamconf.vim b/runtime/syntax/pamconf.vim
index e3c8ba87fd..10d667bdf5 100644
--- a/runtime/syntax/pamconf.vim
+++ b/runtime/syntax/pamconf.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: pam(8) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2011-08-03
+" Language: pam(8) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2011-08-03
if exists("b:current_syntax")
diff --git a/runtime/syntax/papp.vim b/runtime/syntax/papp.vim
index d86dce603f..5b65f05cf4 100644
--- a/runtime/syntax/papp.vim
+++ b/runtime/syntax/papp.vim
@@ -14,41 +14,24 @@
" pod is, btw, allowed everywhere, which is actually wrong :(
-" 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")
+" 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
-if version < 600
- so <sfile>:p:h/xml.vim
-else
- runtime! syntax/xml.vim
-endif
+runtime! syntax/xml.vim
unlet b:current_syntax
if exists("papp_include_html")
- if version < 600
- syn include @PAppHtml <sfile>:p:h/html.vim
- else
- syn include @PAppHtml syntax/html.vim
- endif
+ syn include @PAppHtml syntax/html.vim
unlet b:current_syntax
syntax spell default " added by Bram
endif
-if version < 600
- syn include @PAppPerl <sfile>:p:h/perl.vim
-else
- syn include @PAppPerl syntax/perl.vim
-endif
+syn include @PAppPerl syntax/perl.vim
-if v:version >= 600
- syn cluster xmlFoldCluster add=papp_perl,papp_xperl,papp_phtml,papp_pxml,papp_perlPOD
-endif
+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
diff --git a/runtime/syntax/pascal.vim b/runtime/syntax/pascal.vim
index d2b6060acc..2a58ee43f6 100644
--- a/runtime/syntax/pascal.vim
+++ b/runtime/syntax/pascal.vim
@@ -12,11 +12,8 @@
" Austin Ziegler <austin@halostatue.ca>,
" Markus Koenig <markus@stber-koenig.de>
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -320,52 +317,42 @@ if !exists("pascal_traditional")
endif
" 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_pascal_syn_inits")
- if version < 508
- let did_pascal_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
+
+hi def link pascalAcces pascalStatement
+hi def link pascalBoolean Boolean
+hi def link pascalComment Comment
+hi def link pascalConditional Conditional
+hi def link pascalConstant Constant
+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 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
- HiLink pascalAcces pascalStatement
- HiLink pascalBoolean Boolean
- HiLink pascalComment Comment
- HiLink pascalConditional Conditional
- HiLink pascalConstant Constant
- HiLink pascalDelimiter Identifier
- HiLink pascalDirective pascalStatement
- HiLink pascalException Exception
- HiLink pascalFloat Float
- HiLink pascalFunction Function
- HiLink pascalLabel Label
- HiLink pascalMatrixDelimiter Identifier
- HiLink pascalModifier Type
- HiLink pascalNumber Number
- HiLink pascalOperator Operator
- HiLink pascalPredefined pascalStatement
- HiLink pascalPreProc PreProc
- HiLink pascalRepeat Repeat
- HiLink pascalSpaceError Error
- HiLink pascalStatement Statement
- HiLink pascalString String
- HiLink pascalStringEscape Special
- HiLink pascalStringEscapeGPC Special
- HiLink pascalStringError Error
- HiLink pascalStruct pascalStatement
- HiLink pascalSymbolOperator pascalOperator
- HiLink pascalTodo Todo
- HiLink pascalType Type
- HiLink pascalUnclassified pascalStatement
- " HiLink pascalAsm Assembler
- HiLink pascalError Error
- HiLink pascalAsmKey pascalStatement
- HiLink pascalShowTab Error
-
- delcommand HiLink
-endif
let b:current_syntax = "pascal"
diff --git a/runtime/syntax/passwd.vim b/runtime/syntax/passwd.vim
index cdaed58cc0..ad90202b06 100644
--- a/runtime/syntax/passwd.vim
+++ b/runtime/syntax/passwd.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: passwd(5) password file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-10-03
+" Language: passwd(5) password file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-10-03
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/pcap.vim b/runtime/syntax/pcap.vim
index 17d0d42c0b..e0eed633c1 100644
--- a/runtime/syntax/pcap.vim
+++ b/runtime/syntax/pcap.vim
@@ -4,20 +4,13 @@
" Modified by Bram
" Last Change: 2003 May 11
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
"define keywords
-if version < 600
- set isk=@,46-57,_,-,#,=,192-255
-else
- setlocal isk=@,46-57,_,-,#,=,192-255
-endif
+setlocal isk=@,46-57,_,-,#,=,192-255
"first all the bad guys
syn match pcapBad '^.\+$' "define any line as bad
@@ -43,22 +36,12 @@ syn sync minlines=50
" 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_pcap_syntax_inits")
- if version < 508
- let did_pcap_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink pcapBad WarningMsg
- HiLink pcapBadword WarningMsg
- HiLink pcapComment Comment
+hi def link pcapBad WarningMsg
+hi def link pcapBadword WarningMsg
+hi def link pcapComment Comment
- delcommand HiLink
-endif
let b:current_syntax = "pcap"
diff --git a/runtime/syntax/pccts.vim b/runtime/syntax/pccts.vim
index 8341f5bd43..780035798b 100644
--- a/runtime/syntax/pccts.vim
+++ b/runtime/syntax/pccts.vim
@@ -3,20 +3,13 @@
" Maintainer: Scott Bigham <dsb@killerbunnies.org>
" Last Change: 10 Aug 1999
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
" Read the C++ syntax to start with
-if version < 600
- syn include @cppTopLevel <sfile>:p:h/cpp.vim
-else
- syn include @cppTopLevel syntax/cpp.vim
-endif
+syn include @cppTopLevel syntax/cpp.vim
syn region pcctsAction matchgroup=pcctsDelim start="<<" end=">>?\=" contains=@cppTopLevel,pcctsRuleRef
@@ -72,34 +65,24 @@ syn sync match pcctsSyncRule grouphere pcctsRule "\<[a-z][A-Za-z0-9_]*\>\s*\[[^]
syn sync match pcctsSyncRule grouphere pcctsRule "\<[a-z][A-Za-z0-9_]*\>\(\s*\[[^]]*\]\)\=\s*>\s*\[[^]]*\]\s*:"
" 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_pccts_syntax_inits")
- if version < 508
- let did_pccts_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink pcctsDelim Special
- HiLink pcctsTokenName Identifier
- HiLink pcctsRuleName Statement
- HiLink pcctsLabelHack Label
- HiLink pcctsDirective PreProc
- HiLink pcctsString String
- HiLink pcctsComment Comment
- HiLink pcctsClass Statement
- HiLink pcctsClassName Identifier
- HiLink pcctsException Statement
- HiLink pcctsExceptionHandler Keyword
- HiLink pcctsExceptionRuleRef pcctsDelim
- HiLink pcctsExceptionID Identifier
- HiLink pcctsRuleRef Identifier
- HiLink pcctsSpecialChar SpecialChar
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/perl.vim b/runtime/syntax/perl.vim
index c09373a5cd..6ac28f6915 100644
--- a/runtime/syntax/perl.vim
+++ b/runtime/syntax/perl.vim
@@ -3,7 +3,7 @@
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Homepage: http://github.com/vim-perl/vim-perl/tree/master
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
-" Last Change: 2013-07-23
+" Last Change: 2017-09-12
" Contributors: Andy Lester <andy@petdance.com>
" Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
" Lukas Mai <l.mai.web.de>
@@ -28,8 +28,9 @@
" unlet perl_fold
" unlet perl_fold_blocks
" unlet perl_nofold_packages
-" let perl_nofold_subs = 1
+" unlet perl_nofold_subs
" unlet perl_fold_anonymous_subs
+" unlet perl_no_subprototype_error
if exists("b:current_syntax")
finish
@@ -38,11 +39,6 @@ endif
let s:cpo_save = &cpo
set cpo&vim
-if exists('&regexpengine')
- let s:regexpengine=&regexpengine
- set regexpengine=1
-endif
-
" POD starts with ^=<word> and ends with ^=cut
if !exists("perl_include_pod") || perl_include_pod == 1
@@ -83,7 +79,7 @@ syn match perlControl "\<\%(BEGIN\|CHECK\|INIT\|END\|UNITCHECK\)\>\_s*" nextgr
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\|uc\%(first\)\=\)\>"
+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\)\>"
@@ -94,9 +90,9 @@ syn match perlStatementFiledesc "\<\%(fcntl\|flock\|ioctl\|open\%(dir\)\=\|read
syn match perlStatementVector "\<vec\>"
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\)\>"
-syn match perlStatementInclude "\<\%(require\|import\)\>"
-syn match perlStatementInclude "\<\%(use\|no\)\s\+\%(\%(attributes\|attrs\|autouse\|parent\|base\|big\%(int\|num\|rat\)\|blib\|bytes\|charnames\|constant\|diagnostics\|encoding\%(::warnings\)\=\|feature\|fields\|filetest\|if\|integer\|less\|lib\|locale\|mro\|open\|ops\|overload\|re\|sigtrap\|sort\|strict\|subs\|threads\%(::shared\)\=\|utf8\|vars\|version\|vmsish\|warnings\%(::register\)\=\)\>\)\="
+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\|autouse\|parent\|base\|big\%(int\|num\|rat\)\|blib\|bytes\|charnames\|constant\|diagnostics\|encoding\%(::warnings\)\=\|feature\|fields\|filetest\|if\|integer\|less\|lib\|locale\|mro\|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\)\)\>"
@@ -108,7 +104,7 @@ syn match perlStatementMisc "\<\%(warn\|format\|formline\|reset\|scalar\|protot
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="}" contains=@perlTop,perlBraces extend
+syn region perlStatementIndirObjWrap matchgroup=perlStatementIndirObj start="\%(\<\%(map\|grep\|sort\|printf\=\|say\|system\|exec\)\>\s*\)\@<={" end="}" transparent extend
syn match perlLabel "^\s*\h\w*\s*::\@!\%(\<v\d\+\s*:\)\@<!"
@@ -125,7 +121,7 @@ syn match perlLabel "^\s*\h\w*\s*::\@!\%(\<v\d\+\s*:\)\@<!"
" Special variables first ($^A, ...) and ($|, $', ...)
syn match perlVarPlain "$^[ACDEFHILMNOPRSTVWX]\="
syn match perlVarPlain "$[\\\"\[\]'&`+*.,;=%~!?@#$<>(-]"
-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 "$::\@!"
@@ -143,41 +139,46 @@ syn match perlPackageRef "[$@#%*&]\%(\%(::\|'\)\=\I\i*\%(\%(::\|'\)\I\i*\)*\)\
" just set the variable "perl_no_extended_vars"...
if !exists("perl_no_scope_in_variables")
- syn match perlVarPlain "\%([@$]\|\$#\)\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod
- syn match perlVarPlain2 "%\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef
- syn match perlFunctionName "&\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod
+ syn match perlVarPlain "\%([@$]\|\$#\)\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
+ syn match perlVarPlain2 "%\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
+ syn match perlFunctionName "&\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
else
- syn match perlVarPlain "\%([@$]\|\$#\)\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod
- syn match perlVarPlain2 "%\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)"
- syn match perlFunctionName "&\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod
+ syn match perlVarPlain "\%([@$]\|\$#\)\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
+ syn match perlVarPlain2 "%\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
+ syn match perlFunctionName "&\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
endif
+syn match perlVarPlain2 "%[-+]"
+
if !exists("perl_no_extended_vars")
syn cluster perlExpr contains=perlStatementIndirObjWrap,perlStatementScalar,perlStatementRegexp,perlStatementNumeric,perlStatementList,perlStatementHash,perlStatementFiles,perlStatementTime,perlStatementMisc,perlVarPlain,perlVarPlain2,perlVarNotInMatches,perlVarSlash,perlVarBlock,perlVarBlock2,perlShellCommand,perlFloat,perlNumber,perlStringUnexpanded,perlString,perlQQ,perlArrow,perlBraces
- syn region perlArrow matchgroup=perlArrow start="->\s*(" end=")" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained
- syn region perlArrow matchgroup=perlArrow start="->\s*\[" end="\]" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained
- syn region perlArrow matchgroup=perlArrow start="->\s*{" end="}" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained
- syn match perlArrow "->\s*{\s*\I\i*\s*}" contains=perlVarSimpleMemberName nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained
- syn region perlArrow matchgroup=perlArrow start="->\s*\$*\I\i*\s*(" end=")" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained
- syn region perlVarBlock matchgroup=perlVarPlain start="\%($#\|[$@]\)\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
- syn region perlVarBlock2 matchgroup=perlVarPlain start="[%&*]\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
- syn match perlVarPlain2 "[%&*]\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
- syn match perlVarPlain "\%(\$#\|[@$]\)\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
- syn region perlVarMember matchgroup=perlVarPlain start="\%(->\)\={" skip="\\}" end="}" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
- syn match perlVarSimpleMember "\%(->\)\={\s*\I\i*\s*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contains=perlVarSimpleMemberName contained extend
+ syn region perlArrow matchgroup=perlArrow start="->\s*(" end=")" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
+ syn region perlArrow matchgroup=perlArrow start="->\s*\[" end="\]" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
+ syn region perlArrow matchgroup=perlArrow start="->\s*{" end="}" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
+ syn match perlArrow "->\s*{\s*\I\i*\s*}" contains=perlVarSimpleMemberName nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
+ syn region perlArrow matchgroup=perlArrow start="->\s*\$*\I\i*\s*(" end=")" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
+ syn region perlVarBlock matchgroup=perlVarPlain start="\%($#\|[$@]\)\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
+ syn region perlVarBlock2 matchgroup=perlVarPlain start="[%&*]\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
+ syn match perlVarPlain2 "[%&*]\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
+ syn match perlVarPlain "\%(\$#\|[@$]\)\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
+ syn region perlVarMember matchgroup=perlVarPlain start="\%(->\)\={" skip="\\}" end="}" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
+ syn match perlVarSimpleMember "\%(->\)\={\s*\I\i*\s*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,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,perlMethod extend
- syn match perlPackageConst "__PACKAGE__" nextgroup=perlMethod
- syn match perlMethod "->\$*\I\i*" contained nextgroup=perlVarSimpleMember,perlVarMember,perlMethod
+ syn region perlVarMember matchgroup=perlVarPlain start="\%(->\)\=\[" skip="\\]" end="]" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
+ syn match perlPackageConst "__PACKAGE__" nextgroup=perlMethod,perlPostDeref
+ syn match perlMethod "->\$*\I\i*" contained nextgroup=perlVarSimpleMember,perlVarMember,perlMethod,perlPostDeref
+ syn match perlPostDeref "->\%($#\|[$@%&*]\)\*" contained nextgroup=perlVarSimpleMember,perlVarMember,perlMethod,perlPostDeref
+ syn region perlPostDeref start="->\%($#\|[$@%&*]\)\[" skip="\\]" end="]" contained contains=@perlExpr nextgroup=perlVarSimpleMember,perlVarMember,perlMethod,perlPostDeref
+ syn region perlPostDeref matchgroup=perlPostDeref start="->\%($#\|[$@%&*]\){" skip="\\}" end="}" contained contains=@perlExpr nextgroup=perlVarSimpleMember,perlVarMember,perlMethod,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 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
+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
@@ -241,20 +242,18 @@ syn region perlAnglesDQ start=+<+ end=+>+ extend contained contains=perlAnglesD
" Simple version of searches and matches
-syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\>\s*\z([^[:space:]'([{<#]\)+ end=+\z1[msixpodualgc]*+ contains=@perlInterpMatch keepend extend
-syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m#+ end=+#[msixpodualgc]*+ contains=@perlInterpMatch keepend extend
-syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*'+ end=+'[msixpodualgc]*+ contains=@perlInterpSQ keepend extend
-syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*/+ end=+/[msixpodualgc]*+ contains=@perlInterpSlash keepend extend
-syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*(+ end=+)[msixpodualgc]*+ contains=@perlInterpMatch,perlParensDQ keepend extend
-
-" A special case for m{}, m<> and m[] which allows for comments and extra whitespace in the pattern
-syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*{+ end=+}[msixpodualgc]*+ contains=@perlInterpMatch,perlComment,perlBracesDQ extend
-syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*<+ end=+>[msixpodualgc]*+ contains=@perlInterpMatch,perlAnglesDQ keepend extend
-syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*\[+ end=+\][msixpodualgc]*+ contains=@perlInterpMatch,perlComment,perlBracketsDQ keepend extend
+syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\>\s*\z([^[:space:]'([{<#]\)+ end=+\z1[msixpodualgcn]*+ contains=@perlInterpMatch keepend extend
+syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m#+ end=+#[msixpodualgcn]*+ contains=@perlInterpMatch keepend extend
+syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*'+ end=+'[msixpodualgcn]*+ contains=@perlInterpSQ keepend extend
+syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*/+ end=+/[msixpodualgcn]*+ contains=@perlInterpSlash keepend extend
+syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*(+ end=+)[msixpodualgcn]*+ contains=@perlInterpMatch,perlParensDQ keepend extend
+syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*{+ end=+}[msixpodualgcn]*+ contains=@perlInterpMatch,perlBracesDQ extend
+syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*<+ end=+>[msixpodualgcn]*+ contains=@perlInterpMatch,perlAnglesDQ keepend extend
+syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*\[+ end=+\][msixpodualgcn]*+ contains=@perlInterpMatch,perlBracketsDQ keepend extend
" Below some hacks to recognise the // variant. This is virtually impossible to catch in all
" cases as the / is used in so many other ways, but these should be the most obvious ones.
-syn region perlMatch matchgroup=perlMatchStartEnd start="\%([$@%&*]\@<!\%(\<split\|\<while\|\<if\|\<unless\|\.\.\|[-+*!~(\[{=]\)\s*\)\@<=/\%(/=\)\@!" start=+^/\%(/=\)\@!+ start=+\s\@<=/\%(/=\)\@![^[:space:][:digit:]$@%=]\@=\%(/\_s*\%([([{$@%&*[:digit:]"'`]\|\_s\w\|[[:upper:]_abd-fhjklnqrt-wyz]\)\)\@!+ skip=+\\/+ end=+/[msixpodualgc]*+ contains=@perlInterpSlash extend
+syn region perlMatch matchgroup=perlMatchStartEnd start="\%([$@%&*]\@<!\%(\<split\|\<while\|\<if\|\<unless\|\.\.\|[-+*!~(\[{=]\)\s*\)\@<=/\%(/=\)\@!" start=+^/\%(/=\)\@!+ start=+\s\@<=/\%(/=\)\@![^[:space:][:digit:]$@%=]\@=\%(/\_s*\%([([{$@%&*[:digit:]"'`]\|\_s\w\|[[:upper:]_abd-fhjklnqrt-wyz]\)\)\@!+ skip=+\\/+ end=+/[msixpodualgcn]*+ contains=@perlInterpSlash extend
" Substitutions
@@ -267,12 +266,12 @@ syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*<+ end=+>+ contains=@perlInterpMatch,perlAnglesDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend extend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*\[+ end=+\]+ contains=@perlInterpMatch,perlBracketsDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend extend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*{+ end=+}+ contains=@perlInterpMatch,perlBracesDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend extend
-syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+\z([^[:space:]'([{<]\)+ end=+\z1[msixpodualgcer]*+ keepend contained contains=@perlInterpDQ extend
-syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+(+ end=+)[msixpodualgcer]*+ contained contains=@perlInterpDQ,perlParensDQ keepend extend
-syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+\[+ end=+\][msixpodualgcer]*+ contained contains=@perlInterpDQ,perlBracketsDQ keepend extend
-syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+{+ end=+}[msixpodualgcer]*+ contained contains=@perlInterpDQ,perlBracesDQ keepend extend extend
-syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+<+ end=+>[msixpodualgcer]*+ contained contains=@perlInterpDQ,perlAnglesDQ keepend extend
-syn region perlSubstitutionSQ matchgroup=perlMatchStartEnd start=+'+ end=+'[msixpodualgcer]*+ contained contains=@perlInterpSQ keepend extend
+syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+\z([^[:space:]'([{<]\)+ end=+\z1[msixpodualgcern]*+ keepend contained contains=@perlInterpDQ extend
+syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+(+ end=+)[msixpodualgcern]*+ contained contains=@perlInterpDQ,perlParensDQ keepend extend
+syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+\[+ end=+\][msixpodualgcern]*+ contained contains=@perlInterpDQ,perlBracketsDQ keepend extend
+syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+{+ end=+}[msixpodualgcern]*+ contained contains=@perlInterpDQ,perlBracesDQ keepend extend extend
+syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+<+ end=+>[msixpodualgcern]*+ contained contains=@perlInterpDQ,perlAnglesDQ keepend extend
+syn region perlSubstitutionSQ matchgroup=perlMatchStartEnd start=+'+ end=+'[msixpodualgcern]*+ contained contains=@perlInterpSQ keepend extend
" Translations
" perlMatch is the first part, perlTranslation* is the second, translator part.
@@ -314,35 +313,40 @@ syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*{+ end=+}+ contains=@perlInterpSQ,perlBracesSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*<+ end=+>+ contains=@perlInterpSQ,perlAnglesSQ keepend extend
-syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\>\s*\z([^[:space:]#([{<'/]\)+ end=+\z1[imosx]*+ contains=@perlInterpMatch keepend extend
-syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*/+ end=+/[imosx]*+ contains=@perlInterpSlash keepend extend
-syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr#+ end=+#[imosx]*+ contains=@perlInterpMatch keepend extend
-syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*'+ end=+'[imosx]*+ contains=@perlInterpSQ keepend extend
-syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*(+ end=+)[imosx]*+ contains=@perlInterpMatch,perlParensDQ keepend extend
+syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\>\s*\z([^[:space:]#([{<'/]\)+ end=+\z1[imosxdual]*+ contains=@perlInterpMatch keepend extend
+syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*/+ end=+/[imosxdual]*+ contains=@perlInterpSlash keepend extend
+syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr#+ end=+#[imosxdual]*+ contains=@perlInterpMatch keepend extend
+syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*'+ end=+'[imosxdual]*+ contains=@perlInterpSQ keepend extend
+syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*(+ end=+)[imosxdual]*+ contains=@perlInterpMatch,perlParensDQ keepend extend
" A special case for qr{}, qr<> and qr[] which allows for comments and extra whitespace in the pattern
-syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*{+ end=+}[imosx]*+ contains=@perlInterpMatch,perlBracesDQ,perlComment keepend extend
-syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*<+ end=+>[imosx]*+ contains=@perlInterpMatch,perlAnglesDQ,perlComment keepend extend
-syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*\[+ end=+\][imosx]*+ contains=@perlInterpMatch,perlBracketsDQ,perlComment keepend extend
+syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*{+ end=+}[imosxdual]*+ contains=@perlInterpMatch,perlBracesDQ,perlComment keepend extend
+syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*<+ end=+>[imosxdual]*+ contains=@perlInterpMatch,perlAnglesDQ,perlComment keepend extend
+syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*\[+ end=+\][imosxdual]*+ contains=@perlInterpMatch,perlBracketsDQ,perlComment keepend extend
" Constructs such as print <<EOF [...] EOF, 'here' documents
"
" XXX Any statements after the identifier are in perlString colour (i.e.
" 'if $a' in 'print <<EOF if $a'). This is almost impossible to get right it
" seems due to the 'auto-extending nature' of regions.
+syn region perlHereDocStart matchgroup=perlStringStartEnd start=+<<\z(\I\i*\)+ end=+$+ contains=@perlTop oneline
+syn region perlHereDocStart matchgroup=perlStringStartEnd start=+<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ end=+$+ contains=@perlTop oneline
+syn region perlHereDocStart matchgroup=perlStringStartEnd start=+<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ end=+$+ contains=@perlTop oneline
+syn region perlHereDocStart matchgroup=perlStringStartEnd start=+<<\s*""+ end=+$+ contains=@perlTop oneline
+syn region perlHereDocStart matchgroup=perlStringStartEnd start=+<<\s*''+ end=+$+ contains=@perlTop oneline
if exists("perl_fold")
- syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\z(\I\i*\).*+ end=+^\z1$+ contains=@perlInterpDQ fold extend
- syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ end=+^\z1$+ contains=@perlInterpDQ fold extend
- syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ end=+^\z1$+ contains=@perlInterpSQ fold extend
- syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*""+ end=+^$+ contains=@perlInterpDQ,perlNotEmptyLine fold extend
- syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*''+ end=+^$+ contains=@perlInterpSQ,perlNotEmptyLine fold extend
+ syn region perlHereDoc start=+<<\z(\I\i*\)+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpDQ fold extend
+ syn region perlHereDoc start=+<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpDQ fold extend
+ syn region perlHereDoc start=+<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpSQ fold extend
+ syn region perlHereDoc start=+<<\s*""+ matchgroup=perlStringStartEnd end=+^$+ contains=perlHereDocStart,@perlInterpDQ,perlNotEmptyLine fold extend
+ syn region perlHereDoc start=+<<\s*''+ matchgroup=perlStringStartEnd end=+^$+ contains=perlHereDocStart,@perlInterpSQ,perlNotEmptyLine fold extend
syn region perlAutoload matchgroup=perlStringStartEnd start=+<<\s*\(['"]\=\)\z(END_\%(SUB\|OF_FUNC\|OF_AUTOLOAD\)\)\1+ end=+^\z1$+ contains=ALL fold extend
else
- syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\z(\I\i*\).*+ end=+^\z1$+ contains=@perlInterpDQ
- syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ end=+^\z1$+ contains=@perlInterpDQ
- syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ end=+^\z1$+ contains=@perlInterpSQ
- syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*""+ end=+^$+ contains=@perlInterpDQ,perlNotEmptyLine
- syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*''+ end=+^$+ contains=@perlInterpSQ,perlNotEmptyLine
+ syn region perlHereDoc start=+<<\z(\I\i*\)+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpDQ
+ syn region perlHereDoc start=+<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpDQ
+ syn region perlHereDoc start=+<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpSQ
+ syn region perlHereDoc start=+<<\s*""+ matchgroup=perlStringStartEnd end=+^$+ contains=perlHereDocStart,@perlInterpDQ,perlNotEmptyLine
+ syn region perlHereDoc start=+<<\s*''+ matchgroup=perlStringStartEnd end=+^$+ contains=perlHereDocStart,@perlInterpSQ,perlNotEmptyLine
syn region perlAutoload matchgroup=perlStringStartEnd start=+<<\s*\(['"]\=\)\z(END_\%(SUB\|OF_FUNC\|OF_AUTOLOAD\)\)\1+ end=+^\z1$+ contains=ALL
endif
@@ -356,27 +360,21 @@ syn keyword perlStatementPackage package contained
" sub [name] [(prototype)] {
"
syn match perlSubError "[^[:space:];{#]" contained
-if v:version == 701 && !has('patch221') " XXX I hope that's the right one
- syn match perlSubAttributes ":" contained
+syn match perlSubAttributesCont "\h\w*\_s*\%(:\_s*\)\=" nextgroup=@perlSubAttrMaybe contained
+syn region perlSubAttributesCont matchgroup=perlSubAttributesCont start="\h\w*(" end=")\_s*\%(:\_s*\)\=" nextgroup=@perlSubAttrMaybe contained contains=@perlInterpSQ,perlParensSQ
+syn cluster perlSubAttrMaybe contains=perlSubAttributesCont,perlSubError,perlFakeGroup
+syn match perlSubAttributes "" contained nextgroup=perlSubError
+syn match perlSubAttributes ":\_s*" contained nextgroup=@perlSubAttrMaybe
+if get(g:, "perl_sub_signatures", 0)
+ syn match perlSignature +(\_[^)]*)\_s*+ nextgroup=perlSubAttributes,perlComment contained
else
- syn match perlSubAttributesCont "\h\w*\_s*\%(:\_s*\)\=" nextgroup=@perlSubAttrMaybe contained
- syn region perlSubAttributesCont matchgroup=perlSubAttributesCont start="\h\w*(" end=")\_s*\%(:\_s*\)\=" nextgroup=@perlSubAttrMaybe contained contains=@perlInterpSQ,perlParensSQ
- syn cluster perlSubAttrMaybe contains=perlSubAttributesCont,perlSubError,perlFakeGroup
- syn match perlSubAttributes "" contained nextgroup=perlSubError
- syn match perlSubAttributes ":\_s*" contained nextgroup=@perlSubAttrMaybe
+ syn match perlSubPrototypeError "(\%(\_s*\%(\%(\\\%([$@%&*]\|\[[$@%&*]\+\]\)\|[$&*]\|[@%]\%(\_s*)\)\@=\|;\%(\_s*[)$@%&*\\]\)\@=\|_\%(\_s*[);]\)\@=\)\_s*\)*\)\@>\zs\_[^)]\+" contained
+ syn match perlSubPrototype +(\_[^)]*)\_s*+ nextgroup=perlSubAttributes,perlComment contained contains=perlSubPrototypeError
endif
-syn match perlSubPrototypeError "(\%(\_s*\%(\%(\\\%([$@%&*]\|\[[$@%&*]\+\]\)\|[$&*]\|[@%]\%(\_s*)\)\@=\|;\%(\_s*[)$@%&*\\]\)\@=\|_\%(\_s*[);]\)\@=\)\_s*\)*\)\@>\zs\_[^)]\+" contained
-syn match perlSubPrototype +(\_[^)]*)\_s*\|+ nextgroup=perlSubAttributes,perlComment contained contains=perlSubPrototypeError
-syn match perlSubName +\%(\h\|::\|'\w\)\%(\w\|::\|'\w\)*\_s*\|+ contained nextgroup=perlSubPrototype,perlComment
-syn match perlFunction +\<sub\>\_s*+ nextgroup=perlSubName
+syn match perlSubName +\%(\h\|::\|'\w\)\%(\w\|::\|'\w\)*\_s*\|+ contained nextgroup=perlSubPrototype,perlSignature,perlSubAttributes,perlComment
-if !exists("perl_no_scope_in_variables")
- syn match perlFunctionPRef "\h\w*::" contained
- syn match perlFunctionName "\h\w*[^:]" contained
-else
- syn match perlFunctionName "\h[[:alnum:]_:]*" contained
-endif
+syn match perlFunction +\<sub\>\_s*+ nextgroup=perlSubName
" The => operator forces a bareword to the left of it to be interpreted as
" a string
@@ -397,10 +395,10 @@ syn match perlFormatField "@$" contained
" __END__ and __DATA__ clauses
if exists("perl_fold")
- syntax region perlDATA start="^__DATA__$" skip="." end="." fold
+ syntax region perlDATA start="^__DATA__$" skip="." end="." contains=@perlDATA fold
syntax region perlDATA start="^__END__$" skip="." end="." contains=perlPOD,@perlDATA fold
else
- syntax region perlDATA start="^__DATA__$" skip="." end="."
+ syntax region perlDATA start="^__DATA__$" skip="." end="." contains=@perlDATA
syntax region perlDATA start="^__END__$" skip="." end="." contains=perlPOD,@perlDATA
endif
@@ -414,9 +412,9 @@ if exists("perl_fold")
syn region perlPackageFold start="^package \S\+;\s*\%(#.*\)\=$" end="^1;\=\s*\%(#.*\)\=$" end="\n\+package"me=s-1 transparent fold keepend
endif
if !exists("perl_nofold_subs")
- if exists("perl_fold_anonymous_subs") && perl_fold_anonymous_subs
- syn region perlSubFold start="\<sub\>[^\n;]*{" end="}" transparent fold keepend extend
- syn region perlSubFold start="\<\%(BEGIN\|END\|CHECK\|INIT\)\>\s*{" end="}" transparent fold keepend
+ if get(g:, "perl_fold_anonymous_subs", 0)
+ syn region perlSubFold start="\<sub\>[^{]*{" end="}" transparent fold keepend extend
+ syn region perlSubFold start="\<\%(BEGIN\|END\|CHECK\|INIT\)\>\s*{" end="}" transparent fold keepend
else
syn region perlSubFold start="^\z(\s*\)\<sub\>.*[^};]$" end="^\z1}\s*\%(#.*\)\=$" transparent fold keepend
syn region perlSubFold start="^\z(\s*\)\<\%(BEGIN\|END\|CHECK\|INIT\|UNITCHECK\)\>.*[^};]$" end="^\z1}\s*$" transparent fold keepend
@@ -424,7 +422,7 @@ if exists("perl_fold")
endif
if exists("perl_fold_blocks")
- syn region perlBlockFold start="^\z(\s*\)\%(if\|elsif\|unless\|for\|while\|until\|given\)\s*(.*)\%(\s*{\)\=\s*\%(#.*\)\=$" start="^\z(\s*\)foreach\s*\%(\%(my\|our\)\=\s*\S\+\s*\)\=(.*)\%(\s*{\)\=\s*\%(#.*\)\=$" end="^\z1}\s*;\=\%(#.*\)\=$" transparent fold keepend
+ 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
syn region perlBlockFold start="^\z(\s*\)\%(do\|else\)\%(\s*{\)\=\s*\%(#.*\)\=$" end="^\z1}\s*while" end="^\z1}\s*;\=\%(#.*\)\=$" transparent fold keepend
endif
@@ -435,121 +433,121 @@ else
syn sync minlines=0
endif
-command -nargs=+ HiLink hi def link <args>
-
" 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.
-HiLink perlSharpBang PreProc
-HiLink perlControl PreProc
-HiLink perlInclude Include
-HiLink perlSpecial Special
-HiLink perlString String
-HiLink perlCharacter Character
-HiLink perlNumber Number
-HiLink perlFloat Float
-HiLink perlType Type
-HiLink perlIdentifier Identifier
-HiLink perlLabel Label
-HiLink perlStatement Statement
-HiLink perlConditional Conditional
-HiLink perlRepeat Repeat
-HiLink perlOperator Operator
-HiLink perlFunction Keyword
-HiLink perlSubName Function
-HiLink perlSubPrototype Type
-HiLink perlSubAttributes PreProc
-HiLink perlSubAttributesCont perlSubAttributes
-HiLink perlComment Comment
-HiLink perlTodo Todo
+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 perlSignature Type
+hi def link perlSubAttributes PreProc
+hi def link perlSubAttributesCont perlSubAttributes
+hi def link perlComment Comment
+hi def link perlTodo Todo
if exists("perl_string_as_statement")
- HiLink perlStringStartEnd perlStatement
+ hi def link perlStringStartEnd perlStatement
else
- HiLink perlStringStartEnd perlString
+ 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 perlQQ perlString
+hi def link perlHereDoc 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
-HiLink perlVStringV perlStringStartEnd
-HiLink perlList perlStatement
-HiLink perlMisc perlStatement
-HiLink perlVarPlain perlIdentifier
-HiLink perlVarPlain2 perlIdentifier
-HiLink perlArrow perlIdentifier
-HiLink perlFiledescRead perlIdentifier
-HiLink perlFiledescStatement perlIdentifier
-HiLink perlVarSimpleMember perlIdentifier
-HiLink perlVarSimpleMemberName perlString
-HiLink perlVarNotInMatches perlIdentifier
-HiLink perlVarSlash perlIdentifier
-HiLink perlQQ perlString
-HiLink perlHereDoc perlString
-HiLink perlStringUnexpanded perlString
-HiLink perlSubstitutionSQ perlString
-HiLink perlSubstitutionGQQ perlString
-HiLink perlTranslationGQ perlString
-HiLink perlMatch perlString
-HiLink perlMatchStartEnd perlStatement
-HiLink perlFormatName perlIdentifier
-HiLink perlFormatField perlString
-HiLink perlPackageDecl perlType
-HiLink perlStorageClass perlType
-HiLink perlPackageRef perlType
-HiLink perlStatementPackage perlStatement
-HiLink perlStatementStorage perlStatement
-HiLink perlStatementControl perlStatement
-HiLink perlStatementScalar perlStatement
-HiLink perlStatementRegexp perlStatement
-HiLink perlStatementNumeric perlStatement
-HiLink perlStatementList perlStatement
-HiLink perlStatementHash perlStatement
-HiLink perlStatementIOfunc perlStatement
-HiLink perlStatementFiledesc perlStatement
-HiLink perlStatementVector perlStatement
-HiLink perlStatementFiles perlStatement
-HiLink perlStatementFlow perlStatement
-HiLink perlStatementInclude perlStatement
-HiLink perlStatementProc perlStatement
-HiLink perlStatementSocket perlStatement
-HiLink perlStatementIPC perlStatement
-HiLink perlStatementNetwork perlStatement
-HiLink perlStatementPword perlStatement
-HiLink perlStatementTime perlStatement
-HiLink perlStatementMisc perlStatement
-HiLink perlStatementIndirObj perlStatement
-HiLink perlFunctionName perlIdentifier
-HiLink perlMethod perlIdentifier
-HiLink perlFunctionPRef perlType
-HiLink perlPOD perlComment
-HiLink perlShellCommand perlString
-HiLink perlSpecialAscii perlSpecial
-HiLink perlSpecialDollar perlSpecial
-HiLink perlSpecialString perlSpecial
-HiLink perlSpecialStringU perlSpecial
-HiLink perlSpecialMatch perlSpecial
-HiLink perlDATA perlComment
+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 perlDATA perlComment
" 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.
-HiLink perlParensSQ perlString
-HiLink perlBracketsSQ perlString
-HiLink perlBracesSQ perlString
-HiLink perlAnglesSQ perlString
+hi def link perlParensSQ perlString
+hi def link perlBracketsSQ perlString
+hi def link perlBracesSQ perlString
+hi def link perlAnglesSQ perlString
-HiLink perlParensDQ perlString
-HiLink perlBracketsDQ perlString
-HiLink perlBracesDQ perlString
-HiLink perlAnglesDQ perlString
+hi def link perlParensDQ perlString
+hi def link perlBracketsDQ perlString
+hi def link perlBracesDQ perlString
+hi def link perlAnglesDQ perlString
-HiLink perlSpecialStringU2 perlString
+hi def link perlSpecialStringU2 perlString
" Possible errors
-HiLink perlNotEmptyLine Error
-HiLink perlElseIfError Error
-HiLink perlSubPrototypeError Error
-HiLink perlSubError Error
-
-delcommand HiLink
+hi def link perlNotEmptyLine Error
+hi def link perlElseIfError Error
+hi def link perlSubPrototypeError Error
+hi def link perlSubError Error
" Syncing to speed up processing
"
@@ -577,11 +575,6 @@ syn sync match perlSyncPOD grouphere NONE "^=cut"
let b:current_syntax = "perl"
-if exists('&regexpengine')
- let &regexpengine=s:regexpengine
- unlet s:regexpengine
-endif
-
let &cpo = s:cpo_save
unlet s:cpo_save
diff --git a/runtime/syntax/perl6.vim b/runtime/syntax/perl6.vim
index 3d82ced89f..3bcd9ff0e9 100644
--- a/runtime/syntax/perl6.vim
+++ b/runtime/syntax/perl6.vim
@@ -61,11 +61,8 @@
" unlet perl6_extended_q
" unlet perl6_extended_all
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
let s:keepcpo= &cpo
@@ -2063,176 +2060,166 @@ syn region p6PodFormatFrench
\ contains=p6PodFormatAnglesFrench,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodFormatThree,p6PodVerticalBar,p6PodSemiColon,p6PodComma
" 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_perl6_syntax_inits")
- if version < 508
- let did_perl6_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
+
+hi def link p6EscOctOld p6Error
+hi def link p6PackageTwigil p6Twigil
+hi def link p6StringAngle p6String
+hi def link p6StringFrench p6String
+hi def link p6StringAngles p6String
+hi def link p6StringSQ p6String
+hi def link p6StringDQ p6String
+hi def link p6StringQ p6String
+hi def link p6RxStringSQ p6String
+hi def link p6RxStringDQ p6String
+hi def link p6Substitution p6String
+hi def link p6Transliteration p6String
+hi def link p6StringAuto p6String
+hi def link p6StringP5Auto p6String
+hi def link p6Key p6String
+hi def link p6Match p6String
+hi def link p6RegexBlock p6String
+hi def link p6RxP5CharClass p6String
+hi def link p6RxP5QuoteMeta p6String
+hi def link p6RxCharClass p6String
+hi def link p6RxQuoteWords p6String
+hi def link p6ReduceOp p6Operator
+hi def link p6ReverseCrossOp p6Operator
+hi def link p6HyperOp p6Operator
+hi def link p6QuoteQ p6Operator
+hi def link p6RxRange p6StringSpecial
+hi def link p6RxAnchor p6StringSpecial
+hi def link p6RxP5Anchor p6StringSpecial
+hi def link p6CodePoint p6StringSpecial
+hi def link p6RxMeta p6StringSpecial
+hi def link p6RxP5Range p6StringSpecial
+hi def link p6RxP5CPId p6StringSpecial
+hi def link p6RxP5Posix p6StringSpecial
+hi def link p6RxP5Mod p6StringSpecial
+hi def link p6RxP5HexSeq p6StringSpecial
+hi def link p6RxP5OctSeq p6StringSpecial
+hi def link p6RxP5WriteRefId p6StringSpecial
+hi def link p6HexSequence p6StringSpecial
+hi def link p6OctSequence p6StringSpecial
+hi def link p6RxP5Named p6StringSpecial
+hi def link p6RxP5PropId p6StringSpecial
+hi def link p6RxP5Quantifier p6StringSpecial
+hi def link p6RxP5CountId p6StringSpecial
+hi def link p6RxP5Verb p6StringSpecial
+hi def link p6Escape p6StringSpecial2
+hi def link p6EscNull p6StringSpecial2
+hi def link p6EscHash p6StringSpecial2
+hi def link p6EscQQ p6StringSpecial2
+hi def link p6EscQuote p6StringSpecial2
+hi def link p6EscDoubleQuote p6StringSpecial2
+hi def link p6EscBackTick p6StringSpecial2
+hi def link p6EscForwardSlash p6StringSpecial2
+hi def link p6EscVerticalBar p6StringSpecial2
+hi def link p6EscExclamation p6StringSpecial2
+hi def link p6EscDollar p6StringSpecial2
+hi def link p6EscOpenCurly p6StringSpecial2
+hi def link p6EscCloseCurly p6StringSpecial2
+hi def link p6EscCloseBracket p6StringSpecial2
+hi def link p6EscCloseAngle p6StringSpecial2
+hi def link p6EscCloseFrench p6StringSpecial2
+hi def link p6EscBackSlash p6StringSpecial2
+hi def link p6RxEscape p6StringSpecial2
+hi def link p6RxCapture p6StringSpecial2
+hi def link p6RxAlternation p6StringSpecial2
+hi def link p6RxP5 p6StringSpecial2
+hi def link p6RxP5ReadRef p6StringSpecial2
+hi def link p6RxP5Oct p6StringSpecial2
+hi def link p6RxP5Hex p6StringSpecial2
+hi def link p6RxP5EscMeta p6StringSpecial2
+hi def link p6RxP5Meta p6StringSpecial2
+hi def link p6RxP5Escape p6StringSpecial2
+hi def link p6RxP5CodePoint p6StringSpecial2
+hi def link p6RxP5WriteRef p6StringSpecial2
+hi def link p6RxP5Prop p6StringSpecial2
+
+hi def link p6Property Tag
+hi def link p6Attention Todo
+hi def link p6Type Type
+hi def link p6Error Error
+hi def link p6BlockLabel Label
+hi def link p6Float Float
+hi def link p6Normal Normal
+hi def link p6Package Normal
+hi def link p6PackageScope Normal
+hi def link p6Number Number
+hi def link p6VersionNum Number
+hi def link p6String String
+hi def link p6Repeat Repeat
+hi def link p6Keyword Keyword
+hi def link p6Pragma Keyword
+hi def link p6Module Keyword
+hi def link p6DeclareRoutine Keyword
+hi def link p6VarStorage Special
+hi def link p6FlowControl Special
+hi def link p6NumberBase Special
+hi def link p6Twigil Special
+hi def link p6StringSpecial2 Special
+hi def link p6VersionDot Special
+hi def link p6Comment Comment
+hi def link p6Include Include
+hi def link p6Shebang PreProc
+hi def link p6ClosureTrait PreProc
+hi def link p6Routine Function
+hi def link p6Operator Operator
+hi def link p6Version Operator
+hi def link p6Context Operator
+hi def link p6Quote Delimiter
+hi def link p6TypeConstraint PreCondit
+hi def link p6Exception Exception
+hi def link p6Placeholder Identifier
+hi def link p6Variable Identifier
+hi def link p6VarSlash Identifier
+hi def link p6VarNum Identifier
+hi def link p6VarExclam Identifier
+hi def link p6VarMatch Identifier
+hi def link p6VarName Identifier
+hi def link p6MatchVar Identifier
+hi def link p6RxP5ReadRefId Identifier
+hi def link p6RxP5ModDef Identifier
+hi def link p6RxP5ModName Identifier
+hi def link p6Conditional Conditional
+hi def link p6StringSpecial SpecialChar
+
+hi def link p6PodAbbr p6Pod
+hi def link p6PodAbbrEOF p6Pod
+hi def link p6PodAbbrNoCode p6Pod
+hi def link p6PodAbbrCode p6PodCode
+hi def link p6PodPara p6Pod
+hi def link p6PodParaEOF p6Pod
+hi def link p6PodParaNoCode p6Pod
+hi def link p6PodParaCode p6PodCode
+hi def link p6PodDelim p6Pod
+hi def link p6PodDelimEOF p6Pod
+hi def link p6PodDelimNoCode p6Pod
+hi def link p6PodDelimCode p6PodCode
+hi def link p6PodImplicitCode p6PodCode
+hi def link p6PodExtraConfig p6PodPrefix
+hi def link p6PodVerticalBar p6PodFormatCode
+hi def link p6PodColon p6PodFormatCode
+hi def link p6PodSemicolon p6PodFormatCode
+hi def link p6PodComma p6PodFormatCode
+hi def link p6PodFormatOne p6PodFormat
+hi def link p6PodFormatTwo p6PodFormat
+hi def link p6PodFormatThree p6PodFormat
+hi def link p6PodFormatFrench p6PodFormat
+
+hi def link p6PodType Type
+hi def link p6PodConfigOption String
+hi def link p6PodCode PreProc
+hi def link p6Pod Comment
+hi def link p6PodComment Comment
+hi def link p6PodAutoQuote Operator
+hi def link p6PodConfigOperator Operator
+hi def link p6PodPrefix Statement
+hi def link p6PodName Identifier
+hi def link p6PodFormatCode SpecialChar
+hi def link p6PodFormat SpecialComment
- HiLink p6EscOctOld p6Error
- HiLink p6PackageTwigil p6Twigil
- HiLink p6StringAngle p6String
- HiLink p6StringFrench p6String
- HiLink p6StringAngles p6String
- HiLink p6StringSQ p6String
- HiLink p6StringDQ p6String
- HiLink p6StringQ p6String
- HiLink p6RxStringSQ p6String
- HiLink p6RxStringDQ p6String
- HiLink p6Substitution p6String
- HiLink p6Transliteration p6String
- HiLink p6StringAuto p6String
- HiLink p6StringP5Auto p6String
- HiLink p6Key p6String
- HiLink p6Match p6String
- HiLink p6RegexBlock p6String
- HiLink p6RxP5CharClass p6String
- HiLink p6RxP5QuoteMeta p6String
- HiLink p6RxCharClass p6String
- HiLink p6RxQuoteWords p6String
- HiLink p6ReduceOp p6Operator
- HiLink p6ReverseCrossOp p6Operator
- HiLink p6HyperOp p6Operator
- HiLink p6QuoteQ p6Operator
- HiLink p6RxRange p6StringSpecial
- HiLink p6RxAnchor p6StringSpecial
- HiLink p6RxP5Anchor p6StringSpecial
- HiLink p6CodePoint p6StringSpecial
- HiLink p6RxMeta p6StringSpecial
- HiLink p6RxP5Range p6StringSpecial
- HiLink p6RxP5CPId p6StringSpecial
- HiLink p6RxP5Posix p6StringSpecial
- HiLink p6RxP5Mod p6StringSpecial
- HiLink p6RxP5HexSeq p6StringSpecial
- HiLink p6RxP5OctSeq p6StringSpecial
- HiLink p6RxP5WriteRefId p6StringSpecial
- HiLink p6HexSequence p6StringSpecial
- HiLink p6OctSequence p6StringSpecial
- HiLink p6RxP5Named p6StringSpecial
- HiLink p6RxP5PropId p6StringSpecial
- HiLink p6RxP5Quantifier p6StringSpecial
- HiLink p6RxP5CountId p6StringSpecial
- HiLink p6RxP5Verb p6StringSpecial
- HiLink p6Escape p6StringSpecial2
- HiLink p6EscNull p6StringSpecial2
- HiLink p6EscHash p6StringSpecial2
- HiLink p6EscQQ p6StringSpecial2
- HiLink p6EscQuote p6StringSpecial2
- HiLink p6EscDoubleQuote p6StringSpecial2
- HiLink p6EscBackTick p6StringSpecial2
- HiLink p6EscForwardSlash p6StringSpecial2
- HiLink p6EscVerticalBar p6StringSpecial2
- HiLink p6EscExclamation p6StringSpecial2
- HiLink p6EscDollar p6StringSpecial2
- HiLink p6EscOpenCurly p6StringSpecial2
- HiLink p6EscCloseCurly p6StringSpecial2
- HiLink p6EscCloseBracket p6StringSpecial2
- HiLink p6EscCloseAngle p6StringSpecial2
- HiLink p6EscCloseFrench p6StringSpecial2
- HiLink p6EscBackSlash p6StringSpecial2
- HiLink p6RxEscape p6StringSpecial2
- HiLink p6RxCapture p6StringSpecial2
- HiLink p6RxAlternation p6StringSpecial2
- HiLink p6RxP5 p6StringSpecial2
- HiLink p6RxP5ReadRef p6StringSpecial2
- HiLink p6RxP5Oct p6StringSpecial2
- HiLink p6RxP5Hex p6StringSpecial2
- HiLink p6RxP5EscMeta p6StringSpecial2
- HiLink p6RxP5Meta p6StringSpecial2
- HiLink p6RxP5Escape p6StringSpecial2
- HiLink p6RxP5CodePoint p6StringSpecial2
- HiLink p6RxP5WriteRef p6StringSpecial2
- HiLink p6RxP5Prop p6StringSpecial2
-
- HiLink p6Property Tag
- HiLink p6Attention Todo
- HiLink p6Type Type
- HiLink p6Error Error
- HiLink p6BlockLabel Label
- HiLink p6Float Float
- HiLink p6Normal Normal
- HiLink p6Package Normal
- HiLink p6PackageScope Normal
- HiLink p6Number Number
- HiLink p6VersionNum Number
- HiLink p6String String
- HiLink p6Repeat Repeat
- HiLink p6Keyword Keyword
- HiLink p6Pragma Keyword
- HiLink p6Module Keyword
- HiLink p6DeclareRoutine Keyword
- HiLink p6VarStorage Special
- HiLink p6FlowControl Special
- HiLink p6NumberBase Special
- HiLink p6Twigil Special
- HiLink p6StringSpecial2 Special
- HiLink p6VersionDot Special
- HiLink p6Comment Comment
- HiLink p6Include Include
- HiLink p6Shebang PreProc
- HiLink p6ClosureTrait PreProc
- HiLink p6Routine Function
- HiLink p6Operator Operator
- HiLink p6Version Operator
- HiLink p6Context Operator
- HiLink p6Quote Delimiter
- HiLink p6TypeConstraint PreCondit
- HiLink p6Exception Exception
- HiLink p6Placeholder Identifier
- HiLink p6Variable Identifier
- HiLink p6VarSlash Identifier
- HiLink p6VarNum Identifier
- HiLink p6VarExclam Identifier
- HiLink p6VarMatch Identifier
- HiLink p6VarName Identifier
- HiLink p6MatchVar Identifier
- HiLink p6RxP5ReadRefId Identifier
- HiLink p6RxP5ModDef Identifier
- HiLink p6RxP5ModName Identifier
- HiLink p6Conditional Conditional
- HiLink p6StringSpecial SpecialChar
-
- HiLink p6PodAbbr p6Pod
- HiLink p6PodAbbrEOF p6Pod
- HiLink p6PodAbbrNoCode p6Pod
- HiLink p6PodAbbrCode p6PodCode
- HiLink p6PodPara p6Pod
- HiLink p6PodParaEOF p6Pod
- HiLink p6PodParaNoCode p6Pod
- HiLink p6PodParaCode p6PodCode
- HiLink p6PodDelim p6Pod
- HiLink p6PodDelimEOF p6Pod
- HiLink p6PodDelimNoCode p6Pod
- HiLink p6PodDelimCode p6PodCode
- HiLink p6PodImplicitCode p6PodCode
- HiLink p6PodExtraConfig p6PodPrefix
- HiLink p6PodVerticalBar p6PodFormatCode
- HiLink p6PodColon p6PodFormatCode
- HiLink p6PodSemicolon p6PodFormatCode
- HiLink p6PodComma p6PodFormatCode
- HiLink p6PodFormatOne p6PodFormat
- HiLink p6PodFormatTwo p6PodFormat
- HiLink p6PodFormatThree p6PodFormat
- HiLink p6PodFormatFrench p6PodFormat
-
- HiLink p6PodType Type
- HiLink p6PodConfigOption String
- HiLink p6PodCode PreProc
- HiLink p6Pod Comment
- HiLink p6PodComment Comment
- HiLink p6PodAutoQuote Operator
- HiLink p6PodConfigOperator Operator
- HiLink p6PodPrefix Statement
- HiLink p6PodName Identifier
- HiLink p6PodFormatCode SpecialChar
- HiLink p6PodFormat SpecialComment
-
- delcommand HiLink
-endif
" Syncing to speed up processing
"syn sync match p6SyncPod groupthere p6PodAbbrRegion "^=\K\k*\>"
diff --git a/runtime/syntax/pfmain.vim b/runtime/syntax/pfmain.vim
index 32ed6975c0..af58da70ef 100644
--- a/runtime/syntax/pfmain.vim
+++ b/runtime/syntax/pfmain.vim
@@ -7,17 +7,12 @@
" URL: http://cern.ch/fuji/vim/syntax/pfmain.vim
" Comment: Based on Postfix 2.12/3.0 postconf.5.html.
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
-if version >= 600
- setlocal iskeyword=@,48-57,_,-
-else
- set iskeyword=@,48-57,_,-
-endif
+setlocal iskeyword=@,48-57,_,-
syntax case match
syntax sync minlines=1
@@ -1816,33 +1811,24 @@ syntax match pfmainSpecial "\<smtpd\>"
syntax match pfmainSpecial "\<trace\>"
syntax match pfmainSpecial "\<verify\>"
-if version >= 508 || !exists("pfmain_syntax_init")
- if version < 508
- let pfmain_syntax_init = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink pfmainConf Statement
- HiLink pfmainRef PreProc
- HiLink pfmainWord identifier
+hi def link pfmainConf Statement
+hi def link pfmainRef PreProc
+hi def link pfmainWord identifier
- HiLink pfmainDict Type
- HiLink pfmainQueueDir Constant
- HiLink pfmainTransport Constant
- HiLink pfmainLock Constant
- HiLink pfmainAnswer Constant
+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
- HiLink pfmainComment Comment
- HiLink pfmainNumber Number
- HiLink pfmainTime Number
- HiLink pfmainIP Number
- HiLink pfmainVariable Error
- HiLink pfmainSpecial Special
+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
- delcommand HiLink
-endif
let b:current_syntax = "pfmain"
diff --git a/runtime/syntax/php.vim b/runtime/syntax/php.vim
index fc257418d0..6a81b8c631 100644
--- a/runtime/syntax/php.vim
+++ b/runtime/syntax/php.vim
@@ -1,42 +1,38 @@
" Vim syntax file
-" Language: php PHP 3/4/5
+" Language: php PHP 3/4/5/7
" Maintainer: Jason Woofenden <jason@jasonwoof.com>
-" Last Change: Apr 18, 2016
+" Last Change: Jul 14, 2017
" URL: https://jasonwoof.com/gitweb/?p=vim-syntax.git;a=blob;f=php.vim;hb=HEAD
" Former Maintainers: Peter Hodge <toomuchphp-vim@yahoo.com>
" Debian VIM Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
"
-" 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: 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.
"
-" Options: php_sql_query = 1 for SQL syntax highlighting inside strings
-" php_htmlInStrings = 1 for HTML syntax highlighting inside strings
-" php_baselib = 1 for highlighting baselib functions
-" php_asp_tags = 1 for highlighting ASP-style short tags
-" php_parent_error_close = 1 for highlighting parent error ] or )
-" php_parent_error_open = 1 for skipping an php end tag, if there exists an open ( or [ without a closing one
-" php_oldStyle = 1 for using old colorstyle
-" php_noShortTags = 1 don't sync <? ?> as php
-" php_folding = 1 for folding classes and functions
-" php_folding = 2 for folding all { } regions
-" php_sync_method = x
-" x=-1 to sync by search ( default )
-" x>0 to sync at least x lines backwards
-" x=0 to sync from start
-"
-" Added by Peter Hodge On June 9, 2006:
-" php_special_functions = 1|0 to highlight functions with abnormal behaviour
-" php_alt_comparisons = 1|0 to highlight comparison operators in an alternate colour
-" php_alt_assignByReference = 1|0 to highlight '= &' in an alternate colour
-"
-" Note: these all default to 1 (On), so you would set them to '0' to turn them off.
-" E.g., in your .vimrc or _vimrc file:
-" let php_special_functions = 0
-" let php_alt_comparisons = 0
-" let php_alt_assignByReference = 0
-" Unletting these variables will revert back to their default (On).
+" Options:
+" Set to anything to enable:
+" php_sql_query SQL syntax highlighting inside strings
+" php_htmlInStrings HTML syntax highlighting inside strings
+" php_baselib highlighting baselib functions
+" php_asp_tags highlighting ASP-style short tags
+" php_parent_error_close highlighting parent error ] or )
+" php_parent_error_open skipping an php end tag, if there exists
+" an open ( or [ without a closing one
+" php_oldStyle use old colorstyle
+" php_noShortTags don't sync <? ?> 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:
@@ -55,11 +51,8 @@
" ii) Same problem if you are setting php_folding = 2 with a closing
" } inside an string on the first line of this string.
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -67,16 +60,8 @@ if !exists("main_syntax")
let main_syntax = 'php'
endif
-if version < 600
- unlet! php_folding
- if exists("php_sync_method") && !php_sync_method
- let php_sync_method=-1
- endif
- so <sfile>:p:h/html.vim
-else
- runtime! syntax/html.vim
- unlet b:current_syntax
-endif
+runtime! syntax/html.vim
+unlet b:current_syntax
" accept old options
if !exists("php_sync_method")
@@ -94,11 +79,7 @@ endif
syn cluster htmlPreproc add=phpRegion,phpRegionAsp,phpRegionSc
-if version < 600
- syn include @sqlTop <sfile>:p:h/sql.vim
-else
- syn include @sqlTop syntax/sql.vim
-endif
+syn include @sqlTop syntax/sql.vim
syn sync clear
unlet b:current_syntax
syn cluster sqlTop remove=sqlString,sqlComment
@@ -120,7 +101,7 @@ syn case match
syn keyword phpEnvVar GATEWAY_INTERFACE SERVER_NAME SERVER_SOFTWARE SERVER_PROTOCOL REQUEST_METHOD QUERY_STRING DOCUMENT_ROOT HTTP_ACCEPT HTTP_ACCEPT_CHARSET HTTP_ENCODING HTTP_ACCEPT_LANGUAGE HTTP_CONNECTION HTTP_HOST HTTP_REFERER HTTP_USER_AGENT REMOTE_ADDR REMOTE_PORT SCRIPT_FILENAME SERVER_ADMIN SERVER_PORT SERVER_SIGNATURE PATH_TRANSLATED SCRIPT_NAME REQUEST_URI contained
" Internal Variables
-syn keyword phpIntVar GLOBALS PHP_ERRMSG PHP_SELF HTTP_GET_VARS HTTP_POST_VARS HTTP_COOKIE_VARS HTTP_POST_FILES HTTP_ENV_VARS HTTP_SERVER_VARS HTTP_SESSION_VARS HTTP_RAW_POST_DATA HTTP_STATE_VARS _GET _POST _COOKIE _FILES _SERVER _ENV _SERVER _REQUEST _SESSION contained
+syn keyword phpIntVar GLOBALS PHP_ERRMSG PHP_SELF HTTP_GET_VARS HTTP_POST_VARS HTTP_COOKIE_VARS HTTP_POST_FILES HTTP_ENV_VARS HTTP_SERVER_VARS HTTP_SESSION_VARS HTTP_RAW_POST_DATA HTTP_STATE_VARS _GET _POST _COOKIE _FILES _SERVER _ENV _SERVER _REQUEST _SESSION contained
" Constants
syn keyword phpCoreConstant PHP_VERSION PHP_OS DEFAULT_INCLUDE_PATH PEAR_INSTALL_DIR PEAR_EXTENSION_DIR PHP_EXTENSION_DIR PHP_BINDIR PHP_LIBDIR PHP_DATADIR PHP_SYSCONFDIR PHP_LOCALSTATEDIR PHP_CONFIG_FILE_PATH PHP_OUTPUT_HANDLER_START PHP_OUTPUT_HANDLER_CONT PHP_OUTPUT_HANDLER_END contained
@@ -131,185 +112,185 @@ syn keyword phpCoreConstant E_ALL E_COMPILE_ERROR E_COMPILE_WARNING E_CORE_ERROR
syn case ignore
-syn keyword phpConstant __LINE__ __FILE__ __FUNCTION__ __METHOD__ __CLASS__ __DIR__ __NAMESPACE__ contained
+syn keyword phpConstant __LINE__ __FILE__ __FUNCTION__ __METHOD__ __CLASS__ __DIR__ __NAMESPACE__ __TRAIT__ contained
" Function and Methods ripped from php_manual_de.tar.gz Jan 2003
-syn keyword phpFunctions apache_child_terminate apache_get_modules apache_get_version apache_getenv apache_lookup_uri apache_note apache_request_headers apache_response_headers apache_setenv ascii2ebcdic ebcdic2ascii getallheaders virtual contained
-syn keyword phpFunctions array_change_key_case array_chunk array_column array_combine array_count_values array_diff_assoc array_diff_key array_diff_uassoc array_diff_ukey array_diff array_fill_keys array_fill array_filter array_flip array_intersect_assoc array_intersect_key array_intersect_uassoc array_intersect_ukey array_intersect array_key_exists array_keys array_map array_merge_recursive array_merge array_multisort array_pad array_pop array_product array_push array_rand array_reduce array_replace_recursive array_replace array_reverse array_search array_shift array_slice array_splice array_sum array_udiff_assoc array_udiff_uassoc array_udiff array_uintersect_assoc array_uintersect_uassoc array_uintersect array_unique array_unshift array_values array_walk_recursive array_walk arsort asort count current each end in_array key_exists key krsort ksort natcasesort natsort next pos prev range reset rsort shuffle sizeof sort uasort uksort usort contained
-syn keyword phpFunctions aspell_check aspell_new aspell_suggest contained
-syn keyword phpFunctions bcadd bccomp bcdiv bcmod bcmul bcpow bcpowmod bcscale bcsqrt bcsub contained
-syn keyword phpFunctions bzclose bzcompress bzdecompress bzerrno bzerror bzerrstr bzflush bzopen bzread bzwrite contained
-syn keyword phpFunctions cal_days_in_month cal_from_jd cal_info cal_to_jd easter_date easter_days frenchtojd gregoriantojd jddayofweek jdmonthname jdtofrench jdtogregorian jdtojewish jdtojulian jdtounix jewishtojd juliantojd unixtojd contained
-syn keyword phpFunctions ccvs_add ccvs_auth ccvs_command ccvs_count ccvs_delete ccvs_done ccvs_init ccvs_lookup ccvs_new ccvs_report ccvs_return ccvs_reverse ccvs_sale ccvs_status ccvs_textvalue ccvs_void contained
-syn keyword phpFunctions call_user_method_array call_user_method class_exists get_class_methods get_class_vars get_class get_declared_classes get_object_vars get_parent_class is_a is_subclass_of method_exists contained
-syn keyword phpFunctions com VARIANT com_addref com_get com_invoke com_isenum com_load_typelib com_load com_propget com_propput com_propset com_release com_set contained
-syn keyword phpFunctions cpdf_add_annotation cpdf_add_outline cpdf_arc cpdf_begin_text cpdf_circle cpdf_clip cpdf_close cpdf_closepath_fill_stroke cpdf_closepath_stroke cpdf_closepath cpdf_continue_text cpdf_curveto cpdf_end_text cpdf_fill_stroke cpdf_fill cpdf_finalize_page cpdf_finalize cpdf_global_set_document_limits cpdf_import_jpeg cpdf_lineto cpdf_moveto cpdf_newpath cpdf_open cpdf_output_buffer cpdf_page_init cpdf_place_inline_image cpdf_rect cpdf_restore cpdf_rlineto cpdf_rmoveto cpdf_rotate_text cpdf_rotate cpdf_save_to_file cpdf_save cpdf_scale cpdf_set_action_url cpdf_set_char_spacing cpdf_set_creator cpdf_set_current_page cpdf_set_font_directories cpdf_set_font_map_file cpdf_set_font cpdf_set_horiz_scaling cpdf_set_keywords cpdf_set_leading cpdf_set_page_animation cpdf_set_subject cpdf_set_text_matrix cpdf_set_text_pos cpdf_set_text_rendering cpdf_set_text_rise cpdf_set_title cpdf_set_viewer_preferences cpdf_set_word_spacing cpdf_setdash cpdf_setflat cpdf_setgray_fill cpdf_setgray_stroke cpdf_setgray cpdf_setlinecap cpdf_setlinejoin cpdf_setlinewidth cpdf_setmiterlimit cpdf_setrgbcolor_fill cpdf_setrgbcolor_stroke cpdf_setrgbcolor cpdf_show_xy cpdf_show cpdf_stringwidth cpdf_stroke cpdf_text cpdf_translate contained
-syn keyword phpFunctions crack_check crack_closedict crack_getlastmessage crack_opendict contained
-syn keyword phpFunctions ctype_alnum ctype_alpha ctype_cntrl ctype_digit ctype_graph ctype_lower ctype_print ctype_punct ctype_space ctype_upper ctype_xdigit contained
-syn keyword phpFunctions curl_close curl_errno curl_error curl_exec curl_getinfo curl_init curl_multi_add_handle curl_multi_close curl_multi_exec curl_multi_getcontent curl_multi_info_read curl_multi_init curl_multi_remove_handle curl_multi_select curl_setopt curl_version contained
-syn keyword phpFunctions cybercash_base64_decode cybercash_base64_encode cybercash_decr cybercash_encr contained
-syn keyword phpFunctions cyrus_authenticate cyrus_bind cyrus_close cyrus_connect cyrus_query cyrus_unbind contained
-syn keyword phpFunctions checkdate date getdate gettimeofday gmdate gmmktime gmstrftime localtime microtime mktime strftime strtotime time contained
-syn keyword phpFunctions dba_close dba_delete dba_exists dba_fetch dba_firstkey dba_handlers dba_insert dba_key_split dba_list dba_nextkey dba_open dba_optimize dba_popen dba_replace dba_sync contained
-syn keyword phpFunctions dbase_add_record dbase_close dbase_create dbase_delete_record dbase_get_header_info dbase_get_record_with_names dbase_get_record dbase_numfields dbase_numrecords dbase_open dbase_pack dbase_replace_record contained
-syn keyword phpFunctions dblist dbmclose dbmdelete dbmexists dbmfetch dbmfirstkey dbminsert dbmnextkey dbmopen dbmreplace contained
-syn keyword phpFunctions dbplus_add dbplus_aql dbplus_chdir dbplus_close dbplus_curr dbplus_errcode dbplus_errno dbplus_find dbplus_first dbplus_flush dbplus_freealllocks dbplus_freelock dbplus_freerlocks dbplus_getlock dbplus_getunique dbplus_info dbplus_last dbplus_lockrel dbplus_next dbplus_open dbplus_prev dbplus_rchperm dbplus_rcreate dbplus_rcrtexact dbplus_rcrtlike dbplus_resolve dbplus_restorepos dbplus_rkeys dbplus_ropen dbplus_rquery dbplus_rrename dbplus_rsecindex dbplus_runlink dbplus_rzap dbplus_savepos dbplus_setindex dbplus_setindexbynumber dbplus_sql dbplus_tcl dbplus_tremove dbplus_undo dbplus_undoprepare dbplus_unlockrel dbplus_unselect dbplus_update dbplus_xlockrel dbplus_xunlockrel contained
-syn keyword phpFunctions dbx_close dbx_compare dbx_connect dbx_error dbx_escape_string dbx_fetch_row dbx_query dbx_sort contained
-syn keyword phpFunctions dio_close dio_fcntl dio_open dio_read dio_seek dio_stat dio_tcsetattr dio_truncate dio_write contained
-syn keyword phpFunctions chdir chroot dir closedir getcwd opendir readdir rewinddir scandir contained
-syn keyword phpFunctions domxml_new_doc domxml_open_file domxml_open_mem domxml_version domxml_xmltree domxml_xslt_stylesheet_doc domxml_xslt_stylesheet_file domxml_xslt_stylesheet xpath_eval_expression xpath_eval xpath_new_context xptr_eval xptr_new_context contained
-syn keyword phpMethods name specified value create_attribute create_cdata_section create_comment create_element_ns create_element create_entity_reference create_processing_instruction create_text_node doctype document_element dump_file dump_mem get_element_by_id get_elements_by_tagname html_dump_mem xinclude entities internal_subset name notations public_id system_id get_attribute_node get_attribute get_elements_by_tagname has_attribute remove_attribute set_attribute tagname add_namespace append_child append_sibling attributes child_nodes clone_node dump_node first_child get_content has_attributes has_child_nodes insert_before is_blank_node last_child next_sibling node_name node_type node_value owner_document parent_node prefix previous_sibling remove_child replace_child replace_node set_content set_name set_namespace unlink_node data target process result_dump_file result_dump_mem contained
-syn keyword phpFunctions dotnet_load contained
-syn keyword phpFunctions debug_backtrace debug_print_backtrace error_log error_reporting restore_error_handler set_error_handler trigger_error user_error contained
-syn keyword phpFunctions escapeshellarg escapeshellcmd exec passthru proc_close proc_get_status proc_nice proc_open proc_terminate shell_exec system contained
-syn keyword phpFunctions fam_cancel_monitor fam_close fam_monitor_collection fam_monitor_directory fam_monitor_file fam_next_event fam_open fam_pending fam_resume_monitor fam_suspend_monitor contained
-syn keyword phpFunctions fbsql_affected_rows fbsql_autocommit fbsql_change_user fbsql_close fbsql_commit fbsql_connect fbsql_create_blob fbsql_create_clob fbsql_create_db fbsql_data_seek fbsql_database_password fbsql_database fbsql_db_query fbsql_db_status fbsql_drop_db fbsql_errno fbsql_error fbsql_fetch_array fbsql_fetch_assoc fbsql_fetch_field fbsql_fetch_lengths fbsql_fetch_object fbsql_fetch_row fbsql_field_flags fbsql_field_len fbsql_field_name fbsql_field_seek fbsql_field_table fbsql_field_type fbsql_free_result fbsql_get_autostart_info fbsql_hostname fbsql_insert_id fbsql_list_dbs fbsql_list_fields fbsql_list_tables fbsql_next_result fbsql_num_fields fbsql_num_rows fbsql_password fbsql_pconnect fbsql_query fbsql_read_blob fbsql_read_clob fbsql_result fbsql_rollback fbsql_select_db fbsql_set_lob_mode fbsql_set_transaction fbsql_start_db fbsql_stop_db fbsql_tablename fbsql_username fbsql_warnings contained
-syn keyword phpFunctions fdf_add_doc_javascript fdf_add_template fdf_close fdf_create fdf_enum_values fdf_errno fdf_error fdf_get_ap fdf_get_attachment fdf_get_encoding fdf_get_file fdf_get_flags fdf_get_opt fdf_get_status fdf_get_value fdf_get_version fdf_header fdf_next_field_name fdf_open_string fdf_open fdf_remove_item fdf_save_string fdf_save fdf_set_ap fdf_set_encoding fdf_set_file fdf_set_flags fdf_set_javascript_action fdf_set_opt fdf_set_status fdf_set_submit_form_action fdf_set_target_frame fdf_set_value fdf_set_version contained
-syn keyword phpFunctions filepro_fieldcount filepro_fieldname filepro_fieldtype filepro_fieldwidth filepro_retrieve filepro_rowcount filepro contained
-syn keyword phpFunctions basename chgrp chmod chown clearstatcache copy delete dirname disk_free_space disk_total_space diskfreespace fclose feof fflush fgetc fgetcsv fgets fgetss file_exists file_get_contents file_put_contents file fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype flock fnmatch fopen fpassthru fputs fread fscanf fseek fstat ftell ftruncate fwrite glob is_dir is_executable is_file is_link is_readable is_uploaded_file is_writable is_writeable link linkinfo lstat mkdir move_uploaded_file parse_ini_file pathinfo pclose popen readfile readlink realpath rename rewind rmdir set_file_buffer stat symlink tempnam tmpfile touch umask unlink contained
-syn keyword phpFunctions fribidi_log2vis contained
-syn keyword phpFunctions ftp_alloc ftp_cdup ftp_chdir ftp_chmod ftp_close ftp_connect ftp_delete ftp_exec ftp_fget ftp_fput ftp_get_option ftp_get ftp_login ftp_mdtm ftp_mkdir ftp_nb_continue ftp_nb_fget ftp_nb_fput ftp_nb_get ftp_nb_put ftp_nlist ftp_pasv ftp_put ftp_pwd ftp_quit ftp_raw ftp_rawlist ftp_rename ftp_rmdir ftp_set_option ftp_site ftp_size ftp_ssl_connect ftp_systype contained
-syn keyword phpFunctions call_user_func_array call_user_func create_function func_get_arg func_get_args func_num_args function_exists get_defined_functions register_shutdown_function register_tick_function unregister_tick_function contained
-syn keyword phpFunctions bind_textdomain_codeset bindtextdomain dcgettext dcngettext dgettext dngettext gettext ngettext textdomain contained
-syn keyword phpFunctions gmp_abs gmp_add gmp_and gmp_clrbit gmp_cmp gmp_com gmp_div_q gmp_div_qr gmp_div_r gmp_div gmp_divexact gmp_fact gmp_gcd gmp_gcdext gmp_hamdist gmp_init gmp_intval gmp_invert gmp_jacobi gmp_legendre gmp_mod gmp_mul gmp_neg gmp_or gmp_perfect_square gmp_popcount gmp_pow gmp_powm gmp_prob_prime gmp_random gmp_scan0 gmp_scan1 gmp_setbit gmp_sign gmp_sqrt gmp_sqrtrem gmp_sqrtrm gmp_strval gmp_sub gmp_xor contained
-syn keyword phpFunctions header headers_list headers_sent setcookie contained
-syn keyword phpFunctions hw_api_attribute hwapi_hgcsp hw_api_content hw_api_object contained
-syn keyword phpMethods key langdepvalue value values checkin checkout children mimetype read content copy dbstat dcstat dstanchors dstofsrcanchors count reason find ftstat hwstat identify info insert insertanchor insertcollection insertdocument link lock move assign attreditable count insert remove title value object objectbyanchor parents description type remove replace setcommitedversion srcanchors srcsofdst unlock user userlist contained
-syn keyword phpFunctions hw_Array2Objrec hw_changeobject hw_Children hw_ChildrenObj hw_Close hw_Connect hw_connection_info hw_cp hw_Deleteobject hw_DocByAnchor hw_DocByAnchorObj hw_Document_Attributes hw_Document_BodyTag hw_Document_Content hw_Document_SetContent hw_Document_Size hw_dummy hw_EditText hw_Error hw_ErrorMsg hw_Free_Document hw_GetAnchors hw_GetAnchorsObj hw_GetAndLock hw_GetChildColl hw_GetChildCollObj hw_GetChildDocColl hw_GetChildDocCollObj hw_GetObject hw_GetObjectByQuery hw_GetObjectByQueryColl hw_GetObjectByQueryCollObj hw_GetObjectByQueryObj hw_GetParents hw_GetParentsObj hw_getrellink hw_GetRemote hw_getremotechildren hw_GetSrcByDestObj hw_GetText hw_getusername hw_Identify hw_InCollections hw_Info hw_InsColl hw_InsDoc hw_insertanchors hw_InsertDocument hw_InsertObject hw_mapid hw_Modifyobject hw_mv hw_New_Document hw_objrec2array hw_Output_Document hw_pConnect hw_PipeDocument hw_Root hw_setlinkroot hw_stat hw_Unlock hw_Who contained
-syn keyword phpFunctions ibase_add_user ibase_affected_rows ibase_blob_add ibase_blob_cancel ibase_blob_close ibase_blob_create ibase_blob_echo ibase_blob_get ibase_blob_import ibase_blob_info ibase_blob_open ibase_close ibase_commit_ret ibase_commit ibase_connect ibase_delete_user ibase_drop_db ibase_errcode ibase_errmsg ibase_execute ibase_fetch_assoc ibase_fetch_object ibase_fetch_row ibase_field_info ibase_free_event_handler ibase_free_query ibase_free_result ibase_gen_id ibase_modify_user ibase_name_result ibase_num_fields ibase_num_params ibase_param_info ibase_pconnect ibase_prepare ibase_query ibase_rollback_ret ibase_rollback ibase_set_event_handler ibase_timefmt ibase_trans ibase_wait_event contained
-syn keyword phpFunctions iconv_get_encoding iconv_mime_decode_headers iconv_mime_decode iconv_mime_encode iconv_set_encoding iconv_strlen iconv_strpos iconv_strrpos iconv_substr iconv ob_iconv_handler contained
-syn keyword phpFunctions ifx_affected_rows ifx_blobinfile_mode ifx_byteasvarchar ifx_close ifx_connect ifx_copy_blob ifx_create_blob ifx_create_char ifx_do ifx_error ifx_errormsg ifx_fetch_row ifx_fieldproperties ifx_fieldtypes ifx_free_blob ifx_free_char ifx_free_result ifx_get_blob ifx_get_char ifx_getsqlca ifx_htmltbl_result ifx_nullformat ifx_num_fields ifx_num_rows ifx_pconnect ifx_prepare ifx_query ifx_textasvarchar ifx_update_blob ifx_update_char ifxus_close_slob ifxus_create_slob ifxus_free_slob ifxus_open_slob ifxus_read_slob ifxus_seek_slob ifxus_tell_slob ifxus_write_slob contained
-syn keyword phpFunctions exif_imagetype exif_read_data exif_thumbnail gd_info getimagesize image_type_to_mime_type image2wbmp imagealphablending imageantialias imagearc imagechar imagecharup imagecolorallocate imagecolorallocatealpha imagecolorat imagecolorclosest imagecolorclosestalpha imagecolorclosesthwb imagecolordeallocate imagecolorexact imagecolorexactalpha imagecolormatch imagecolorresolve imagecolorresolvealpha imagecolorset imagecolorsforindex imagecolorstotal imagecolortransparent imagecopy imagecopymerge imagecopymergegray imagecopyresampled imagecopyresized imagecreate imagecreatefromgd2 imagecreatefromgd2part imagecreatefromgd imagecreatefromgif imagecreatefromjpeg imagecreatefrompng imagecreatefromstring imagecreatefromwbmp imagecreatefromxbm imagecreatefromxpm imagecreatetruecolor imagedashedline imagedestroy imageellipse imagefill imagefilledarc imagefilledellipse imagefilledpolygon imagefilledrectangle imagefilltoborder imagefontheight imagefontwidth imageftbbox imagefttext imagegammacorrect imagegd2 imagegd imagegif imageinterlace imageistruecolor imagejpeg imageline imageloadfont imagepalettecopy imagepng imagepolygon imagepsbbox imagepscopyfont imagepsencodefont imagepsextendfont imagepsfreefont imagepsloadfont imagepsslantfont imagepstext imagerectangle imagerotate imagesavealpha imagesetbrush imagesetpixel imagesetstyle imagesetthickness imagesettile imagestring imagestringup imagesx imagesy imagetruecolortopalette imagettfbbox imagettftext imagetypes imagewbmp iptcembed iptcparse jpeg2wbmp png2wbmp read_exif_data contained
-syn keyword phpFunctions imap_8bit imap_alerts imap_append imap_base64 imap_binary imap_body imap_bodystruct imap_check imap_clearflag_full imap_close imap_createmailbox imap_delete imap_deletemailbox imap_errors imap_expunge imap_fetch_overview imap_fetchbody imap_fetchheader imap_fetchstructure imap_get_quota imap_get_quotaroot imap_getacl imap_getmailboxes imap_getsubscribed imap_header imap_headerinfo imap_headers imap_last_error imap_list imap_listmailbox imap_listscan imap_listsubscribed imap_lsub imap_mail_compose imap_mail_copy imap_mail_move imap_mail imap_mailboxmsginfo imap_mime_header_decode imap_msgno imap_num_msg imap_num_recent imap_open imap_ping imap_qprint imap_renamemailbox imap_reopen imap_rfc822_parse_adrlist imap_rfc822_parse_headers imap_rfc822_write_address imap_scanmailbox imap_search imap_set_quota imap_setacl imap_setflag_full imap_sort imap_status imap_subscribe imap_thread imap_timeout imap_uid imap_undelete imap_unsubscribe imap_utf7_decode imap_utf7_encode imap_utf8 contained
-syn keyword phpFunctions assert_options assert dl extension_loaded get_cfg_var get_current_user get_defined_constants get_extension_funcs get_include_path get_included_files get_loaded_extensions get_magic_quotes_gpc get_magic_quotes_runtime get_required_files getenv getlastmod getmygid getmyinode getmypid getmyuid getopt getrusage ini_alter ini_get_all ini_get ini_restore ini_set main memory_get_usage php_ini_scanned_files php_logo_guid php_sapi_name php_uname phpcredits phpinfo phpversion putenv restore_include_path set_include_path set_magic_quotes_runtime set_time_limit version_compare zend_logo_guid zend_version contained
-syn keyword phpFunctions ingres_autocommit ingres_close ingres_commit ingres_connect ingres_fetch_array ingres_fetch_object ingres_fetch_row ingres_field_length ingres_field_name ingres_field_nullable ingres_field_precision ingres_field_scale ingres_field_type ingres_num_fields ingres_num_rows ingres_pconnect ingres_query ingres_rollback contained
-syn keyword phpFunctions ircg_channel_mode ircg_disconnect ircg_fetch_error_msg ircg_get_username ircg_html_encode ircg_ignore_add ircg_ignore_del ircg_is_conn_alive ircg_join ircg_kick ircg_lookup_format_messages ircg_msg ircg_nick ircg_nickname_escape ircg_nickname_unescape ircg_notice ircg_part ircg_pconnect ircg_register_format_messages ircg_set_current ircg_set_file ircg_set_on_die ircg_topic ircg_whois contained
-syn keyword phpFunctions java_last_exception_clear java_last_exception_get contained
-syn keyword phpFunctions json_decode json_encode json_last_error contained
-syn keyword phpFunctions ldap_8859_to_t61 ldap_add ldap_bind ldap_close ldap_compare ldap_connect ldap_count_entries ldap_delete ldap_dn2ufn ldap_err2str ldap_errno ldap_error ldap_explode_dn ldap_first_attribute ldap_first_entry ldap_first_reference ldap_free_result ldap_get_attributes ldap_get_dn ldap_get_entries ldap_get_option ldap_get_values_len ldap_get_values ldap_list ldap_mod_add ldap_mod_del ldap_mod_replace ldap_modify ldap_next_attribute ldap_next_entry ldap_next_reference ldap_parse_reference ldap_parse_result ldap_read ldap_rename ldap_search ldap_set_option ldap_set_rebind_proc ldap_sort ldap_start_tls ldap_t61_to_8859 ldap_unbind contained
-syn keyword phpFunctions lzf_compress lzf_decompress lzf_optimized_for contained
-syn keyword phpFunctions ezmlm_hash mail contained
-syn keyword phpFunctions mailparse_determine_best_xfer_encoding mailparse_msg_create mailparse_msg_extract_part_file mailparse_msg_extract_part mailparse_msg_free mailparse_msg_get_part_data mailparse_msg_get_part mailparse_msg_get_structure mailparse_msg_parse_file mailparse_msg_parse mailparse_rfc822_parse_addresses mailparse_stream_encode mailparse_uudecode_all contained
-syn keyword phpFunctions abs acos acosh asin asinh atan2 atan atanh base_convert bindec ceil cos cosh decbin dechex decoct deg2rad exp expm1 floor fmod getrandmax hexdec hypot is_finite is_infinite is_nan lcg_value log10 log1p log max min mt_getrandmax mt_rand mt_srand octdec pi pow rad2deg rand round sin sinh sqrt srand tan tanh contained
-syn keyword phpFunctions mb_convert_case mb_convert_encoding mb_convert_kana mb_convert_variables mb_decode_mimeheader mb_decode_numericentity mb_detect_encoding mb_detect_order mb_encode_mimeheader mb_encode_numericentity mb_ereg_match mb_ereg_replace mb_ereg_search_getpos mb_ereg_search_getregs mb_ereg_search_init mb_ereg_search_pos mb_ereg_search_regs mb_ereg_search_setpos mb_ereg_search mb_ereg mb_eregi_replace mb_eregi mb_get_info mb_http_input mb_http_output mb_internal_encoding mb_language mb_output_handler mb_parse_str mb_preferred_mime_name mb_regex_encoding mb_regex_set_options mb_send_mail mb_split mb_strcut mb_strimwidth mb_strlen mb_strpos mb_strrpos mb_strtolower mb_strtoupper mb_strwidth mb_substitute_character mb_substr_count mb_substr contained
-syn keyword phpFunctions mcal_append_event mcal_close mcal_create_calendar mcal_date_compare mcal_date_valid mcal_day_of_week mcal_day_of_year mcal_days_in_month mcal_delete_calendar mcal_delete_event mcal_event_add_attribute mcal_event_init mcal_event_set_alarm mcal_event_set_category mcal_event_set_class mcal_event_set_description mcal_event_set_end mcal_event_set_recur_daily mcal_event_set_recur_monthly_mday mcal_event_set_recur_monthly_wday mcal_event_set_recur_none mcal_event_set_recur_weekly mcal_event_set_recur_yearly mcal_event_set_start mcal_event_set_title mcal_expunge mcal_fetch_current_stream_event mcal_fetch_event mcal_is_leap_year mcal_list_alarms mcal_list_events mcal_next_recurrence mcal_open mcal_popen mcal_rename_calendar mcal_reopen mcal_snooze mcal_store_event mcal_time_valid mcal_week_of_year contained
-syn keyword phpFunctions mcrypt_cbc mcrypt_cfb mcrypt_create_iv mcrypt_decrypt mcrypt_ecb mcrypt_enc_get_algorithms_name mcrypt_enc_get_block_size mcrypt_enc_get_iv_size mcrypt_enc_get_key_size mcrypt_enc_get_modes_name mcrypt_enc_get_supported_key_sizes mcrypt_enc_is_block_algorithm_mode mcrypt_enc_is_block_algorithm mcrypt_enc_is_block_mode mcrypt_enc_self_test mcrypt_encrypt mcrypt_generic_deinit mcrypt_generic_end mcrypt_generic_init mcrypt_generic mcrypt_get_block_size mcrypt_get_cipher_name mcrypt_get_iv_size mcrypt_get_key_size mcrypt_list_algorithms mcrypt_list_modes mcrypt_module_close mcrypt_module_get_algo_block_size mcrypt_module_get_algo_key_size mcrypt_module_get_supported_key_sizes mcrypt_module_is_block_algorithm_mode mcrypt_module_is_block_algorithm mcrypt_module_is_block_mode mcrypt_module_open mcrypt_module_self_test mcrypt_ofb mdecrypt_generic contained
-syn keyword phpFunctions mcve_adduser mcve_adduserarg mcve_bt mcve_checkstatus mcve_chkpwd mcve_chngpwd mcve_completeauthorizations mcve_connect mcve_connectionerror mcve_deleteresponse mcve_deletetrans mcve_deleteusersetup mcve_deluser mcve_destroyconn mcve_destroyengine mcve_disableuser mcve_edituser mcve_enableuser mcve_force mcve_getcell mcve_getcellbynum mcve_getcommadelimited mcve_getheader mcve_getuserarg mcve_getuserparam mcve_gft mcve_gl mcve_gut mcve_initconn mcve_initengine mcve_initusersetup mcve_iscommadelimited mcve_liststats mcve_listusers mcve_maxconntimeout mcve_monitor mcve_numcolumns mcve_numrows mcve_override mcve_parsecommadelimited mcve_ping mcve_preauth mcve_preauthcompletion mcve_qc mcve_responseparam mcve_return mcve_returncode mcve_returnstatus mcve_sale mcve_setblocking mcve_setdropfile mcve_setip mcve_setssl_files mcve_setssl mcve_settimeout mcve_settle mcve_text_avs mcve_text_code mcve_text_cv mcve_transactionauth mcve_transactionavs mcve_transactionbatch mcve_transactioncv mcve_transactionid mcve_transactionitem mcve_transactionssent mcve_transactiontext mcve_transinqueue mcve_transnew mcve_transparam mcve_transsend mcve_ub mcve_uwait mcve_verifyconnection mcve_verifysslcert mcve_void contained
-syn keyword phpFunctions mhash_count mhash_get_block_size mhash_get_hash_name mhash_keygen_s2k mhash contained
-syn keyword phpFunctions mime_content_type contained
-syn keyword phpFunctions ming_setcubicthreshold ming_setscale ming_useswfversion SWFAction SWFBitmap swfbutton_keypress SWFbutton SWFDisplayItem SWFFill SWFFont SWFGradient SWFMorph SWFMovie SWFShape SWFSprite SWFText SWFTextField contained
-syn keyword phpMethods getHeight getWidth addAction addShape setAction setdown setHit setOver setUp addColor move moveTo multColor remove Rotate rotateTo scale scaleTo setDepth setName setRatio skewX skewXTo skewY skewYTo moveTo rotateTo scaleTo skewXTo skewYTo getwidth addEntry getshape1 getshape2 add nextframe output remove save setbackground setdimension setframes setrate streammp3 addFill drawCurve drawCurveTo drawLine drawLineTo movePen movePenTo setLeftFill setLine setRightFill add nextframe remove setframes addString getWidth moveTo setColor setFont setHeight setSpacing addstring align setbounds setcolor setFont setHeight setindentation setLeftMargin setLineSpacing setMargins setname setrightMargin contained
-syn keyword phpFunctions connection_aborted connection_status connection_timeout constant define defined die eval exit get_browser highlight_file highlight_string ignore_user_abort pack show_source sleep uniqid unpack usleep contained
-syn keyword phpFunctions udm_add_search_limit udm_alloc_agent udm_api_version udm_cat_list udm_cat_path udm_check_charset udm_check_stored udm_clear_search_limits udm_close_stored udm_crc32 udm_errno udm_error udm_find udm_free_agent udm_free_ispell_data udm_free_res udm_get_doc_count udm_get_res_field udm_get_res_param udm_load_ispell_data udm_open_stored udm_set_agent_param contained
-syn keyword phpFunctions msession_connect msession_count msession_create msession_destroy msession_disconnect msession_find msession_get_array msession_get msession_getdata msession_inc msession_list msession_listvar msession_lock msession_plugin msession_randstr msession_set_array msession_set msession_setdata msession_timeout msession_uniq msession_unlock contained
-syn keyword phpFunctions msql_affected_rows msql_close msql_connect msql_create_db msql_createdb msql_data_seek msql_dbname msql_drop_db msql_dropdb msql_error msql_fetch_array msql_fetch_field msql_fetch_object msql_fetch_row msql_field_seek msql_fieldflags msql_fieldlen msql_fieldname msql_fieldtable msql_fieldtype msql_free_result msql_freeresult msql_list_dbs msql_list_fields msql_list_tables msql_listdbs msql_listfields msql_listtables msql_num_fields msql_num_rows msql_numfields msql_numrows msql_pconnect msql_query msql_regcase msql_result msql_select_db msql_selectdb msql_tablename msql contained
-syn keyword phpFunctions mssql_bind mssql_close mssql_connect mssql_data_seek mssql_execute mssql_fetch_array mssql_fetch_assoc mssql_fetch_batch mssql_fetch_field mssql_fetch_object mssql_fetch_row mssql_field_length mssql_field_name mssql_field_seek mssql_field_type mssql_free_result mssql_free_statement mssql_get_last_message mssql_guid_string mssql_init mssql_min_error_severity mssql_min_message_severity mssql_next_result mssql_num_fields mssql_num_rows mssql_pconnect mssql_query mssql_result mssql_rows_affected mssql_select_db contained
-syn keyword phpFunctions muscat_close muscat_get muscat_give muscat_setup_net muscat_setup contained
-syn keyword phpFunctions mysql_affected_rows mysql_change_user mysql_client_encoding mysql_close mysql_connect mysql_create_db mysql_data_seek mysql_db_name mysql_db_query mysql_drop_db mysql_errno mysql_error mysql_escape_string mysql_fetch_array mysql_fetch_assoc mysql_fetch_field mysql_fetch_lengths mysql_fetch_object mysql_fetch_row mysql_field_flags mysql_field_len mysql_field_name mysql_field_seek mysql_field_table mysql_field_type mysql_free_result mysql_get_client_info mysql_get_host_info mysql_get_proto_info mysql_get_server_info mysql_info mysql_insert_id mysql_list_dbs mysql_list_fields mysql_list_processes mysql_list_tables mysql_num_fields mysql_num_rows mysql_pconnect mysql_ping mysql_query mysql_real_escape_string mysql_result mysql_select_db mysql_stat mysql_tablename mysql_thread_id mysql_unbuffered_query contained
-syn keyword phpFunctions mysqli_affected_rows mysqli_autocommit mysqli_bind_param mysqli_bind_result mysqli_change_user mysqli_character_set_name mysqli_close mysqli_commit mysqli_connect mysqli_data_seek mysqli_debug mysqli_disable_reads_from_master mysqli_disable_rpl_parse mysqli_dump_debug_info mysqli_enable_reads_from_master mysqli_enable_rpl_parse mysqli_errno mysqli_error mysqli_execute mysqli_fetch_array mysqli_fetch_assoc mysqli_fetch_field_direct mysqli_fetch_field mysqli_fetch_fields mysqli_fetch_lengths mysqli_fetch_object mysqli_fetch_row mysqli_fetch mysqli_field_count mysqli_field_seek mysqli_field_tell mysqli_free_result mysqli_get_client_info mysqli_get_host_info mysqli_get_proto_info mysqli_get_server_info mysqli_get_server_version mysqli_info mysqli_init mysqli_insert_id mysqli_kill mysqli_master_query mysqli_num_fields mysqli_num_rows mysqli_options mysqli_param_count mysqli_ping mysqli_prepare_result mysqli_prepare mysqli_profiler mysqli_query mysqli_read_query_result mysqli_real_connect mysqli_real_escape_string mysqli_real_query mysqli_reload mysqli_rollback mysqli_rpl_parse_enabled mysqli_rpl_probe mysqli_rpl_query_type mysqli_select_db mysqli_send_long_data mysqli_send_query mysqli_slave_query mysqli_ssl_set mysqli_stat mysqli_stmt_affected_rows mysqli_stmt_close mysqli_stmt_errno mysqli_stmt_error mysqli_stmt_store_result mysqli_store_result mysqli_thread_id mysqli_thread_safe mysqli_use_result mysqli_warning_count contained
-syn keyword phpFunctions ncurses_addch ncurses_addchnstr ncurses_addchstr ncurses_addnstr ncurses_addstr ncurses_assume_default_colors ncurses_attroff ncurses_attron ncurses_attrset ncurses_baudrate ncurses_beep ncurses_bkgd ncurses_bkgdset ncurses_border ncurses_bottom_panel ncurses_can_change_color ncurses_cbreak ncurses_clear ncurses_clrtobot ncurses_clrtoeol ncurses_color_content ncurses_color_set ncurses_curs_set ncurses_def_prog_mode ncurses_def_shell_mode ncurses_define_key ncurses_del_panel ncurses_delay_output ncurses_delch ncurses_deleteln ncurses_delwin ncurses_doupdate ncurses_echo ncurses_echochar ncurses_end ncurses_erase ncurses_erasechar ncurses_filter ncurses_flash ncurses_flushinp ncurses_getch ncurses_getmaxyx ncurses_getmouse ncurses_getyx ncurses_halfdelay ncurses_has_colors ncurses_has_ic ncurses_has_il ncurses_has_key ncurses_hide_panel ncurses_hline ncurses_inch ncurses_init_color ncurses_init_pair ncurses_init ncurses_insch ncurses_insdelln ncurses_insertln ncurses_insstr ncurses_instr ncurses_isendwin ncurses_keyok ncurses_keypad ncurses_killchar ncurses_longname ncurses_meta ncurses_mouse_trafo ncurses_mouseinterval ncurses_mousemask ncurses_move_panel ncurses_move ncurses_mvaddch ncurses_mvaddchnstr ncurses_mvaddchstr ncurses_mvaddnstr ncurses_mvaddstr ncurses_mvcur ncurses_mvdelch ncurses_mvgetch ncurses_mvhline ncurses_mvinch ncurses_mvvline ncurses_mvwaddstr ncurses_napms ncurses_new_panel ncurses_newpad ncurses_newwin ncurses_nl ncurses_nocbreak ncurses_noecho ncurses_nonl ncurses_noqiflush ncurses_noraw ncurses_pair_content ncurses_panel_above ncurses_panel_below ncurses_panel_window ncurses_pnoutrefresh ncurses_prefresh ncurses_putp ncurses_qiflush ncurses_raw ncurses_refresh ncurses_replace_panel ncurses_reset_prog_mode ncurses_reset_shell_mode ncurses_resetty ncurses_savetty ncurses_scr_dump ncurses_scr_init ncurses_scr_restore ncurses_scr_set ncurses_scrl ncurses_show_panel ncurses_slk_attr ncurses_slk_attroff ncurses_slk_attron ncurses_slk_attrset ncurses_slk_clear ncurses_slk_color ncurses_slk_init ncurses_slk_noutrefresh ncurses_slk_refresh ncurses_slk_restore ncurses_slk_set ncurses_slk_touch ncurses_standend ncurses_standout ncurses_start_color ncurses_termattrs ncurses_termname ncurses_timeout ncurses_top_panel ncurses_typeahead ncurses_ungetch ncurses_ungetmouse ncurses_update_panels ncurses_use_default_colors ncurses_use_env ncurses_use_extended_names ncurses_vidattr ncurses_vline ncurses_waddch ncurses_waddstr ncurses_wattroff ncurses_wattron ncurses_wattrset ncurses_wborder ncurses_wclear ncurses_wcolor_set ncurses_werase ncurses_wgetch ncurses_whline ncurses_wmouse_trafo ncurses_wmove ncurses_wnoutrefresh ncurses_wrefresh ncurses_wstandend ncurses_wstandout ncurses_wvline contained
-syn keyword phpFunctions checkdnsrr closelog debugger_off debugger_on define_syslog_variables dns_check_record dns_get_mx dns_get_record fsockopen gethostbyaddr gethostbyname gethostbynamel getmxrr getprotobyname getprotobynumber getservbyname getservbyport ip2long long2ip openlog pfsockopen socket_get_status socket_set_blocking socket_set_timeout syslog contained
-syn keyword phpFunctions yp_all yp_cat yp_err_string yp_errno yp_first yp_get_default_domain yp_master yp_match yp_next yp_order contained
-syn keyword phpFunctions notes_body notes_copy_db notes_create_db notes_create_note notes_drop_db notes_find_note notes_header_info notes_list_msgs notes_mark_read notes_mark_unread notes_nav_create notes_search notes_unread notes_version contained
-syn keyword phpFunctions nsapi_request_headers nsapi_response_headers nsapi_virtual contained
-syn keyword phpFunctions aggregate_info aggregate_methods_by_list aggregate_methods_by_regexp aggregate_methods aggregate_properties_by_list aggregate_properties_by_regexp aggregate_properties aggregate aggregation_info deaggregate contained
-syn keyword phpFunctions ocibindbyname ocicancel ocicloselob ocicollappend ocicollassign ocicollassignelem ocicollgetelem ocicollmax ocicollsize ocicolltrim ocicolumnisnull ocicolumnname ocicolumnprecision ocicolumnscale ocicolumnsize ocicolumntype ocicolumntyperaw ocicommit ocidefinebyname ocierror ociexecute ocifetch ocifetchinto ocifetchstatement ocifreecollection ocifreecursor ocifreedesc ocifreestatement ociinternaldebug ociloadlob ocilogoff ocilogon ocinewcollection ocinewcursor ocinewdescriptor ocinlogon ocinumcols ociparse ociplogon ociresult ocirollback ocirowcount ocisavelob ocisavelobfile ociserverversion ocisetprefetch ocistatementtype ociwritelobtofile ociwritetemporarylob contained
-syn keyword phpFunctions odbc_autocommit odbc_binmode odbc_close_all odbc_close odbc_columnprivileges odbc_columns odbc_commit odbc_connect odbc_cursor odbc_data_source odbc_do odbc_error odbc_errormsg odbc_exec odbc_execute odbc_fetch_array odbc_fetch_into odbc_fetch_object odbc_fetch_row odbc_field_len odbc_field_name odbc_field_num odbc_field_precision odbc_field_scale odbc_field_type odbc_foreignkeys odbc_free_result odbc_gettypeinfo odbc_longreadlen odbc_next_result odbc_num_fields odbc_num_rows odbc_pconnect odbc_prepare odbc_primarykeys odbc_procedurecolumns odbc_procedures odbc_result_all odbc_result odbc_rollback odbc_setoption odbc_specialcolumns odbc_statistics odbc_tableprivileges odbc_tables contained
-syn keyword phpFunctions openssl_csr_export_to_file openssl_csr_export openssl_csr_new openssl_csr_sign openssl_error_string openssl_free_key openssl_get_privatekey openssl_get_publickey openssl_open openssl_pkcs7_decrypt openssl_pkcs7_encrypt openssl_pkcs7_sign openssl_pkcs7_verify openssl_pkey_export_to_file openssl_pkey_export openssl_pkey_get_private openssl_pkey_get_public openssl_pkey_new openssl_private_decrypt openssl_private_encrypt openssl_public_decrypt openssl_public_encrypt openssl_seal openssl_sign openssl_verify openssl_x509_check_private_key openssl_x509_checkpurpose openssl_x509_export_to_file openssl_x509_export openssl_x509_free openssl_x509_parse openssl_x509_read contained
-syn keyword phpFunctions ora_bind ora_close ora_columnname ora_columnsize ora_columntype ora_commit ora_commitoff ora_commiton ora_do ora_error ora_errorcode ora_exec ora_fetch_into ora_fetch ora_getcolumn ora_logoff ora_logon ora_numcols ora_numrows ora_open ora_parse ora_plogon ora_rollback contained
-syn keyword phpFunctions flush ob_clean ob_end_clean ob_end_flush ob_flush ob_get_clean ob_get_contents ob_get_flush ob_get_length ob_get_level ob_get_status ob_gzhandler ob_implicit_flush ob_list_handlers ob_start output_add_rewrite_var output_reset_rewrite_vars contained
-syn keyword phpFunctions overload contained
-syn keyword phpFunctions ovrimos_close ovrimos_commit ovrimos_connect ovrimos_cursor ovrimos_exec ovrimos_execute ovrimos_fetch_into ovrimos_fetch_row ovrimos_field_len ovrimos_field_name ovrimos_field_num ovrimos_field_type ovrimos_free_result ovrimos_longreadlen ovrimos_num_fields ovrimos_num_rows ovrimos_prepare ovrimos_result_all ovrimos_result ovrimos_rollback contained
-syn keyword phpFunctions pcntl_exec pcntl_fork pcntl_signal pcntl_waitpid pcntl_wexitstatus pcntl_wifexited pcntl_wifsignaled pcntl_wifstopped pcntl_wstopsig pcntl_wtermsig contained
-syn keyword phpFunctions preg_grep preg_match_all preg_match preg_quote preg_replace_callback preg_replace preg_split contained
-syn keyword phpFunctions pdf_add_annotation pdf_add_bookmark pdf_add_launchlink pdf_add_locallink pdf_add_note pdf_add_outline pdf_add_pdflink pdf_add_thumbnail pdf_add_weblink pdf_arc pdf_arcn pdf_attach_file pdf_begin_page pdf_begin_pattern pdf_begin_template pdf_circle pdf_clip pdf_close_image pdf_close_pdi_page pdf_close_pdi pdf_close pdf_closepath_fill_stroke pdf_closepath_stroke pdf_closepath pdf_concat pdf_continue_text pdf_curveto pdf_delete pdf_end_page pdf_end_pattern pdf_end_template pdf_endpath pdf_fill_stroke pdf_fill pdf_findfont pdf_get_buffer pdf_get_font pdf_get_fontname pdf_get_fontsize pdf_get_image_height pdf_get_image_width pdf_get_majorversion pdf_get_minorversion pdf_get_parameter pdf_get_pdi_parameter pdf_get_pdi_value pdf_get_value pdf_initgraphics pdf_lineto pdf_makespotcolor pdf_moveto pdf_new pdf_open_CCITT pdf_open_file pdf_open_gif pdf_open_image_file pdf_open_image pdf_open_jpeg pdf_open_memory_image pdf_open_pdi_page pdf_open_pdi pdf_open_png pdf_open_tiff pdf_open pdf_place_image pdf_place_pdi_page pdf_rect pdf_restore pdf_rotate pdf_save pdf_scale pdf_set_border_color pdf_set_border_dash pdf_set_border_style pdf_set_char_spacing pdf_set_duration pdf_set_font pdf_set_horiz_scaling pdf_set_info_author pdf_set_info_creator pdf_set_info_keywords pdf_set_info_subject pdf_set_info_title pdf_set_info pdf_set_leading pdf_set_parameter pdf_set_text_matrix pdf_set_text_pos pdf_set_text_rendering pdf_set_text_rise pdf_set_value pdf_set_word_spacing pdf_setcolor pdf_setdash pdf_setflat pdf_setfont pdf_setgray_fill pdf_setgray_stroke pdf_setgray pdf_setlinecap pdf_setlinejoin pdf_setlinewidth pdf_setmatrix pdf_setmiterlimit pdf_setpolydash pdf_setrgbcolor_fill pdf_setrgbcolor_stroke pdf_setrgbcolor pdf_show_boxed pdf_show_xy pdf_show pdf_skew pdf_stringwidth pdf_stroke pdf_translate contained
-syn keyword phpFunctions pfpro_cleanup pfpro_init pfpro_process_raw pfpro_process pfpro_version contained
-syn keyword phpFunctions pg_affected_rows pg_cancel_query pg_client_encoding pg_close pg_connect pg_connection_busy pg_connection_reset pg_connection_status pg_convert pg_copy_from pg_copy_to pg_dbname pg_delete pg_end_copy pg_escape_bytea pg_escape_string pg_fetch_all pg_fetch_array pg_fetch_assoc pg_fetch_object pg_fetch_result pg_fetch_row pg_field_is_null pg_field_name pg_field_num pg_field_prtlen pg_field_size pg_field_type pg_free_result pg_get_notify pg_get_pid pg_get_result pg_host pg_insert pg_last_error pg_last_notice pg_last_oid pg_lo_close pg_lo_create pg_lo_export pg_lo_import pg_lo_open pg_lo_read_all pg_lo_read pg_lo_seek pg_lo_tell pg_lo_unlink pg_lo_write pg_meta_data pg_num_fields pg_num_rows pg_options pg_pconnect pg_ping pg_port pg_put_line pg_query pg_result_error pg_result_seek pg_result_status pg_select pg_send_query pg_set_client_encoding pg_trace pg_tty pg_unescape_bytea pg_untrace pg_update contained
-syn keyword phpFunctions posix_ctermid posix_get_last_error posix_getcwd posix_getegid posix_geteuid posix_getgid posix_getgrgid posix_getgrnam posix_getgroups posix_getlogin posix_getpgid posix_getpgrp posix_getpid posix_getppid posix_getpwnam posix_getpwuid posix_getrlimit posix_getsid posix_getuid posix_isatty posix_kill posix_mkfifo posix_setegid posix_seteuid posix_setgid posix_setpgid posix_setsid posix_setuid posix_strerror posix_times posix_ttyname posix_uname contained
-syn keyword phpFunctions printer_abort printer_close printer_create_brush printer_create_dc printer_create_font printer_create_pen printer_delete_brush printer_delete_dc printer_delete_font printer_delete_pen printer_draw_bmp printer_draw_chord printer_draw_elipse printer_draw_line printer_draw_pie printer_draw_rectangle printer_draw_roundrect printer_draw_text printer_end_doc printer_end_page printer_get_option printer_list printer_logical_fontheight printer_open printer_select_brush printer_select_font printer_select_pen printer_set_option printer_start_doc printer_start_page printer_write contained
-syn keyword phpFunctions pspell_add_to_personal pspell_add_to_session pspell_check pspell_clear_session pspell_config_create pspell_config_ignore pspell_config_mode pspell_config_personal pspell_config_repl pspell_config_runtogether pspell_config_save_repl pspell_new_config pspell_new_personal pspell_new pspell_save_wordlist pspell_store_replacement pspell_suggest contained
-syn keyword phpFunctions qdom_error qdom_tree contained
-syn keyword phpFunctions readline_add_history readline_clear_history readline_completion_function readline_info readline_list_history readline_read_history readline_write_history readline contained
-syn keyword phpFunctions recode_file recode_string recode contained
-syn keyword phpFunctions ereg_replace ereg eregi_replace eregi split spliti sql_regcase contained
-syn keyword phpFunctions ftok msg_get_queue msg_receive msg_remove_queue msg_send msg_set_queue msg_stat_queue sem_acquire sem_get sem_release sem_remove shm_attach shm_detach shm_get_var shm_put_var shm_remove_var shm_remove contained
-syn keyword phpFunctions sesam_affected_rows sesam_commit sesam_connect sesam_diagnostic sesam_disconnect sesam_errormsg sesam_execimm sesam_fetch_array sesam_fetch_result sesam_fetch_row sesam_field_array sesam_field_name sesam_free_result sesam_num_fields sesam_query sesam_rollback sesam_seek_row sesam_settransaction contained
-syn keyword phpFunctions session_cache_expire session_cache_limiter session_decode session_destroy session_encode session_get_cookie_params session_id session_is_registered session_module_name session_name session_regenerate_id session_register session_save_path session_set_cookie_params session_set_save_handler session_start session_unregister session_unset session_write_close contained
-syn keyword phpFunctions shmop_close shmop_delete shmop_open shmop_read shmop_size shmop_write contained
-syn keyword phpFunctions snmp_get_quick_print snmp_set_quick_print snmpget snmprealwalk snmpset snmpwalk snmpwalkoid contained
-syn keyword phpFunctions socket_accept socket_bind socket_clear_error socket_close socket_connect socket_create_listen socket_create_pair socket_create socket_get_option socket_getpeername socket_getsockname socket_iovec_add socket_iovec_alloc socket_iovec_delete socket_iovec_fetch socket_iovec_free socket_iovec_set socket_last_error socket_listen socket_read socket_readv socket_recv socket_recvfrom socket_recvmsg socket_select socket_send socket_sendmsg socket_sendto socket_set_block socket_set_nonblock socket_set_option socket_shutdown socket_strerror socket_write socket_writev contained
-syn keyword phpFunctions sqlite_array_query sqlite_busy_timeout sqlite_changes sqlite_close sqlite_column sqlite_create_aggregate sqlite_create_function sqlite_current sqlite_error_string sqlite_escape_string sqlite_fetch_array sqlite_fetch_single sqlite_fetch_string sqlite_field_name sqlite_has_more sqlite_last_error sqlite_last_insert_rowid sqlite_libencoding sqlite_libversion sqlite_next sqlite_num_fields sqlite_num_rows sqlite_open sqlite_popen sqlite_query sqlite_rewind sqlite_seek sqlite_udf_decode_binary sqlite_udf_encode_binary sqlite_unbuffered_query contained
-syn keyword phpFunctions stream_context_create stream_context_get_options stream_context_set_option stream_context_set_params stream_copy_to_stream stream_filter_append stream_filter_prepend stream_filter_register stream_get_contents stream_get_filters stream_get_line stream_get_meta_data stream_get_transports stream_get_wrappers stream_register_wrapper stream_select stream_set_blocking stream_set_timeout stream_set_write_buffer stream_socket_accept stream_socket_client stream_socket_get_name stream_socket_recvfrom stream_socket_sendto stream_socket_server stream_wrapper_register contained
-syn keyword phpFunctions addcslashes addslashes bin2hex chop chr chunk_split convert_cyr_string count_chars crc32 crypt explode fprintf get_html_translation_table hebrev hebrevc html_entity_decode htmlentities htmlspecialchars implode join levenshtein localeconv ltrim md5_file md5 metaphone money_format nl_langinfo nl2br number_format ord parse_str print printf quoted_printable_decode quotemeta rtrim setlocale sha1_file sha1 similar_text soundex sprintf sscanf str_ireplace str_pad str_repeat str_replace str_rot13 str_shuffle str_split str_word_count strcasecmp strchr strcmp strcoll strcspn strip_tags stripcslashes stripos stripslashes stristr strlen strnatcasecmp strnatcmp strncasecmp strncmp strpos strrchr strrev strripos strrpos strspn strstr strtok strtolower strtoupper strtr substr_compare substr_count substr_replace substr trim ucfirst ucwords vprintf vsprintf wordwrap contained
-syn keyword phpFunctions swf_actiongeturl swf_actiongotoframe swf_actiongotolabel swf_actionnextframe swf_actionplay swf_actionprevframe swf_actionsettarget swf_actionstop swf_actiontogglequality swf_actionwaitforframe swf_addbuttonrecord swf_addcolor swf_closefile swf_definebitmap swf_definefont swf_defineline swf_definepoly swf_definerect swf_definetext swf_endbutton swf_enddoaction swf_endshape swf_endsymbol swf_fontsize swf_fontslant swf_fonttracking swf_getbitmapinfo swf_getfontinfo swf_getframe swf_labelframe swf_lookat swf_modifyobject swf_mulcolor swf_nextid swf_oncondition swf_openfile swf_ortho2 swf_ortho swf_perspective swf_placeobject swf_polarview swf_popmatrix swf_posround swf_pushmatrix swf_removeobject swf_rotate swf_scale swf_setfont swf_setframe swf_shapearc swf_shapecurveto3 swf_shapecurveto swf_shapefillbitmapclip swf_shapefillbitmaptile swf_shapefilloff swf_shapefillsolid swf_shapelinesolid swf_shapelineto swf_shapemoveto swf_showframe swf_startbutton swf_startdoaction swf_startshape swf_startsymbol swf_textwidth swf_translate swf_viewport contained
-syn keyword phpFunctions sybase_affected_rows sybase_close sybase_connect sybase_data_seek sybase_deadlock_retry_count sybase_fetch_array sybase_fetch_assoc sybase_fetch_field sybase_fetch_object sybase_fetch_row sybase_field_seek sybase_free_result sybase_get_last_message sybase_min_client_severity sybase_min_error_severity sybase_min_message_severity sybase_min_server_severity sybase_num_fields sybase_num_rows sybase_pconnect sybase_query sybase_result sybase_select_db sybase_set_message_handler sybase_unbuffered_query contained
-syn keyword phpFunctions tidy_access_count tidy_clean_repair tidy_config_count tidy_diagnose tidy_error_count tidy_get_body tidy_get_config tidy_get_error_buffer tidy_get_head tidy_get_html_ver tidy_get_html tidy_get_output tidy_get_release tidy_get_root tidy_get_status tidy_getopt tidy_is_xhtml tidy_load_config tidy_parse_file tidy_parse_string tidy_repair_file tidy_repair_string tidy_reset_config tidy_save_config tidy_set_encoding tidy_setopt tidy_warning_count contained
-syn keyword phpMethods attributes children get_attr get_nodes has_children has_siblings is_asp is_comment is_html is_jsp is_jste is_text is_xhtml is_xml next prev tidy_node contained
-syn keyword phpFunctions token_get_all token_name contained
-syn keyword phpFunctions base64_decode base64_encode get_meta_tags http_build_query parse_url rawurldecode rawurlencode urldecode urlencode contained
-syn keyword phpFunctions doubleval empty floatval get_defined_vars get_resource_type gettype import_request_variables intval is_array is_bool is_callable is_double is_float is_int is_integer is_long is_null is_numeric is_object is_real is_resource is_scalar is_string isset print_r serialize settype strval unserialize unset var_dump var_export contained
-syn keyword phpFunctions vpopmail_add_alias_domain_ex vpopmail_add_alias_domain vpopmail_add_domain_ex vpopmail_add_domain vpopmail_add_user vpopmail_alias_add vpopmail_alias_del_domain vpopmail_alias_del vpopmail_alias_get_all vpopmail_alias_get vpopmail_auth_user vpopmail_del_domain_ex vpopmail_del_domain vpopmail_del_user vpopmail_error vpopmail_passwd vpopmail_set_user_quota contained
-syn keyword phpFunctions w32api_deftype w32api_init_dtype w32api_invoke_function w32api_register_function w32api_set_call_method contained
-syn keyword phpFunctions wddx_add_vars wddx_deserialize wddx_packet_end wddx_packet_start wddx_serialize_value wddx_serialize_vars contained
-syn keyword phpFunctions utf8_decode utf8_encode xml_error_string xml_get_current_byte_index xml_get_current_column_number xml_get_current_line_number xml_get_error_code xml_parse_into_struct xml_parse xml_parser_create_ns xml_parser_create xml_parser_free xml_parser_get_option xml_parser_set_option xml_set_character_data_handler xml_set_default_handler xml_set_element_handler xml_set_end_namespace_decl_handler xml_set_external_entity_ref_handler xml_set_notation_decl_handler xml_set_object xml_set_processing_instruction_handler xml_set_start_namespace_decl_handler xml_set_unparsed_entity_decl_handler contained
-syn keyword phpFunctions xmlrpc_decode_request xmlrpc_decode xmlrpc_encode_request xmlrpc_encode xmlrpc_get_type xmlrpc_parse_method_descriptions xmlrpc_server_add_introspection_data xmlrpc_server_call_method xmlrpc_server_create xmlrpc_server_destroy xmlrpc_server_register_introspection_callback xmlrpc_server_register_method xmlrpc_set_type contained
-syn keyword phpFunctions xslt_create xslt_errno xslt_error xslt_free xslt_output_process xslt_set_base xslt_set_encoding xslt_set_error_handler xslt_set_log xslt_set_sax_handler xslt_set_sax_handlers xslt_set_scheme_handler xslt_set_scheme_handlers contained
-syn keyword phpFunctions yaz_addinfo yaz_ccl_conf yaz_ccl_parse yaz_close yaz_connect yaz_database yaz_element yaz_errno yaz_error yaz_es_result yaz_get_option yaz_hits yaz_itemorder yaz_present yaz_range yaz_record yaz_scan_result yaz_scan yaz_schema yaz_search yaz_set_option yaz_sort yaz_syntax yaz_wait contained
-syn keyword phpFunctions zip_close zip_entry_close zip_entry_compressedsize zip_entry_compressionmethod zip_entry_filesize zip_entry_name zip_entry_open zip_entry_read zip_open zip_read contained
-syn keyword phpFunctions gzclose gzcompress gzdeflate gzencode gzeof gzfile gzgetc gzgets gzgetss gzinflate gzopen gzpassthru gzputs gzread gzrewind gzseek gztell gzuncompress gzwrite readgzfile zlib_get_coding_type contained
+syn keyword phpFunctions apache_child_terminate apache_get_modules apache_get_version apache_getenv apache_lookup_uri apache_note apache_request_headers apache_response_headers apache_setenv ascii2ebcdic ebcdic2ascii getallheaders virtual contained
+syn keyword phpFunctions array_change_key_case array_chunk array_column array_combine array_count_values array_diff_assoc array_diff_key array_diff_uassoc array_diff_ukey array_diff array_fill_keys array_fill array_filter array_flip array_intersect_assoc array_intersect_key array_intersect_uassoc array_intersect_ukey array_intersect array_key_exists array_keys array_map array_merge_recursive array_merge array_multisort array_pad array_pop array_product array_push array_rand array_reduce array_replace_recursive array_replace array_reverse array_search array_shift array_slice array_splice array_sum array_udiff_assoc array_udiff_uassoc array_udiff array_uintersect_assoc array_uintersect_uassoc array_uintersect array_unique array_unshift array_values array_walk_recursive array_walk arsort asort count current each end in_array key_exists key krsort ksort natcasesort natsort next pos prev range reset rsort shuffle sizeof sort uasort uksort usort contained
+syn keyword phpFunctions aspell_check aspell_new aspell_suggest contained
+syn keyword phpFunctions bcadd bccomp bcdiv bcmod bcmul bcpow bcpowmod bcscale bcsqrt bcsub contained
+syn keyword phpFunctions bzclose bzcompress bzdecompress bzerrno bzerror bzerrstr bzflush bzopen bzread bzwrite contained
+syn keyword phpFunctions cal_days_in_month cal_from_jd cal_info cal_to_jd easter_date easter_days frenchtojd gregoriantojd jddayofweek jdmonthname jdtofrench jdtogregorian jdtojewish jdtojulian jdtounix jewishtojd juliantojd unixtojd contained
+syn keyword phpFunctions ccvs_add ccvs_auth ccvs_command ccvs_count ccvs_delete ccvs_done ccvs_init ccvs_lookup ccvs_new ccvs_report ccvs_return ccvs_reverse ccvs_sale ccvs_status ccvs_textvalue ccvs_void contained
+syn keyword phpFunctions call_user_method_array call_user_method class_exists get_class_methods get_class_vars get_class get_declared_classes get_object_vars get_parent_class is_a is_subclass_of method_exists contained
+syn keyword phpFunctions com VARIANT com_addref com_get com_invoke com_isenum com_load_typelib com_load com_propget com_propput com_propset com_release com_set contained
+syn keyword phpFunctions cpdf_add_annotation cpdf_add_outline cpdf_arc cpdf_begin_text cpdf_circle cpdf_clip cpdf_close cpdf_closepath_fill_stroke cpdf_closepath_stroke cpdf_closepath cpdf_continue_text cpdf_curveto cpdf_end_text cpdf_fill_stroke cpdf_fill cpdf_finalize_page cpdf_finalize cpdf_global_set_document_limits cpdf_import_jpeg cpdf_lineto cpdf_moveto cpdf_newpath cpdf_open cpdf_output_buffer cpdf_page_init cpdf_place_inline_image cpdf_rect cpdf_restore cpdf_rlineto cpdf_rmoveto cpdf_rotate_text cpdf_rotate cpdf_save_to_file cpdf_save cpdf_scale cpdf_set_action_url cpdf_set_char_spacing cpdf_set_creator cpdf_set_current_page cpdf_set_font_directories cpdf_set_font_map_file cpdf_set_font cpdf_set_horiz_scaling cpdf_set_keywords cpdf_set_leading cpdf_set_page_animation cpdf_set_subject cpdf_set_text_matrix cpdf_set_text_pos cpdf_set_text_rendering cpdf_set_text_rise cpdf_set_title cpdf_set_viewer_preferences cpdf_set_word_spacing cpdf_setdash cpdf_setflat cpdf_setgray_fill cpdf_setgray_stroke cpdf_setgray cpdf_setlinecap cpdf_setlinejoin cpdf_setlinewidth cpdf_setmiterlimit cpdf_setrgbcolor_fill cpdf_setrgbcolor_stroke cpdf_setrgbcolor cpdf_show_xy cpdf_show cpdf_stringwidth cpdf_stroke cpdf_text cpdf_translate contained
+syn keyword phpFunctions crack_check crack_closedict crack_getlastmessage crack_opendict contained
+syn keyword phpFunctions ctype_alnum ctype_alpha ctype_cntrl ctype_digit ctype_graph ctype_lower ctype_print ctype_punct ctype_space ctype_upper ctype_xdigit contained
+syn keyword phpFunctions curl_close curl_errno curl_error curl_exec curl_getinfo curl_init curl_multi_add_handle curl_multi_close curl_multi_exec curl_multi_getcontent curl_multi_info_read curl_multi_init curl_multi_remove_handle curl_multi_select curl_setopt curl_version contained
+syn keyword phpFunctions cybercash_base64_decode cybercash_base64_encode cybercash_decr cybercash_encr contained
+syn keyword phpFunctions cyrus_authenticate cyrus_bind cyrus_close cyrus_connect cyrus_query cyrus_unbind contained
+syn keyword phpFunctions checkdate date getdate gettimeofday gmdate gmmktime gmstrftime localtime microtime mktime strftime strtotime time contained
+syn keyword phpFunctions dba_close dba_delete dba_exists dba_fetch dba_firstkey dba_handlers dba_insert dba_key_split dba_list dba_nextkey dba_open dba_optimize dba_popen dba_replace dba_sync contained
+syn keyword phpFunctions dbase_add_record dbase_close dbase_create dbase_delete_record dbase_get_header_info dbase_get_record_with_names dbase_get_record dbase_numfields dbase_numrecords dbase_open dbase_pack dbase_replace_record contained
+syn keyword phpFunctions dblist dbmclose dbmdelete dbmexists dbmfetch dbmfirstkey dbminsert dbmnextkey dbmopen dbmreplace contained
+syn keyword phpFunctions dbplus_add dbplus_aql dbplus_chdir dbplus_close dbplus_curr dbplus_errcode dbplus_errno dbplus_find dbplus_first dbplus_flush dbplus_freealllocks dbplus_freelock dbplus_freerlocks dbplus_getlock dbplus_getunique dbplus_info dbplus_last dbplus_lockrel dbplus_next dbplus_open dbplus_prev dbplus_rchperm dbplus_rcreate dbplus_rcrtexact dbplus_rcrtlike dbplus_resolve dbplus_restorepos dbplus_rkeys dbplus_ropen dbplus_rquery dbplus_rrename dbplus_rsecindex dbplus_runlink dbplus_rzap dbplus_savepos dbplus_setindex dbplus_setindexbynumber dbplus_sql dbplus_tcl dbplus_tremove dbplus_undo dbplus_undoprepare dbplus_unlockrel dbplus_unselect dbplus_update dbplus_xlockrel dbplus_xunlockrel contained
+syn keyword phpFunctions dbx_close dbx_compare dbx_connect dbx_error dbx_escape_string dbx_fetch_row dbx_query dbx_sort contained
+syn keyword phpFunctions dio_close dio_fcntl dio_open dio_read dio_seek dio_stat dio_tcsetattr dio_truncate dio_write contained
+syn keyword phpFunctions chdir chroot dir closedir getcwd opendir readdir rewinddir scandir contained
+syn keyword phpFunctions domxml_new_doc domxml_open_file domxml_open_mem domxml_version domxml_xmltree domxml_xslt_stylesheet_doc domxml_xslt_stylesheet_file domxml_xslt_stylesheet xpath_eval_expression xpath_eval xpath_new_context xptr_eval xptr_new_context contained
+syn keyword phpMethods name specified value create_attribute create_cdata_section create_comment create_element_ns create_element create_entity_reference create_processing_instruction create_text_node doctype document_element dump_file dump_mem get_element_by_id get_elements_by_tagname html_dump_mem xinclude entities internal_subset name notations public_id system_id get_attribute_node get_attribute get_elements_by_tagname has_attribute remove_attribute set_attribute tagname add_namespace append_child append_sibling attributes child_nodes clone_node dump_node first_child get_content has_attributes has_child_nodes insert_before is_blank_node last_child next_sibling node_name node_type node_value owner_document parent_node prefix previous_sibling remove_child replace_child replace_node set_content set_name set_namespace unlink_node data target process result_dump_file result_dump_mem contained
+syn keyword phpFunctions dotnet_load contained
+syn keyword phpFunctions debug_backtrace debug_print_backtrace error_log error_reporting restore_error_handler set_error_handler trigger_error user_error contained
+syn keyword phpFunctions escapeshellarg escapeshellcmd exec passthru proc_close proc_get_status proc_nice proc_open proc_terminate shell_exec system contained
+syn keyword phpFunctions fam_cancel_monitor fam_close fam_monitor_collection fam_monitor_directory fam_monitor_file fam_next_event fam_open fam_pending fam_resume_monitor fam_suspend_monitor contained
+syn keyword phpFunctions fbsql_affected_rows fbsql_autocommit fbsql_change_user fbsql_close fbsql_commit fbsql_connect fbsql_create_blob fbsql_create_clob fbsql_create_db fbsql_data_seek fbsql_database_password fbsql_database fbsql_db_query fbsql_db_status fbsql_drop_db fbsql_errno fbsql_error fbsql_fetch_array fbsql_fetch_assoc fbsql_fetch_field fbsql_fetch_lengths fbsql_fetch_object fbsql_fetch_row fbsql_field_flags fbsql_field_len fbsql_field_name fbsql_field_seek fbsql_field_table fbsql_field_type fbsql_free_result fbsql_get_autostart_info fbsql_hostname fbsql_insert_id fbsql_list_dbs fbsql_list_fields fbsql_list_tables fbsql_next_result fbsql_num_fields fbsql_num_rows fbsql_password fbsql_pconnect fbsql_query fbsql_read_blob fbsql_read_clob fbsql_result fbsql_rollback fbsql_select_db fbsql_set_lob_mode fbsql_set_transaction fbsql_start_db fbsql_stop_db fbsql_tablename fbsql_username fbsql_warnings contained
+syn keyword phpFunctions fdf_add_doc_javascript fdf_add_template fdf_close fdf_create fdf_enum_values fdf_errno fdf_error fdf_get_ap fdf_get_attachment fdf_get_encoding fdf_get_file fdf_get_flags fdf_get_opt fdf_get_status fdf_get_value fdf_get_version fdf_header fdf_next_field_name fdf_open_string fdf_open fdf_remove_item fdf_save_string fdf_save fdf_set_ap fdf_set_encoding fdf_set_file fdf_set_flags fdf_set_javascript_action fdf_set_opt fdf_set_status fdf_set_submit_form_action fdf_set_target_frame fdf_set_value fdf_set_version contained
+syn keyword phpFunctions filepro_fieldcount filepro_fieldname filepro_fieldtype filepro_fieldwidth filepro_retrieve filepro_rowcount filepro contained
+syn keyword phpFunctions basename chgrp chmod chown clearstatcache copy delete dirname disk_free_space disk_total_space diskfreespace fclose feof fflush fgetc fgetcsv fgets fgetss file_exists file_get_contents file_put_contents file fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype flock fnmatch fopen fpassthru fputs fread fscanf fseek fstat ftell ftruncate fwrite glob is_dir is_executable is_file is_link is_readable is_uploaded_file is_writable is_writeable link linkinfo lstat mkdir move_uploaded_file parse_ini_file pathinfo pclose popen readfile readlink realpath rename rewind rmdir set_file_buffer stat symlink tempnam tmpfile touch umask unlink contained
+syn keyword phpFunctions fribidi_log2vis contained
+syn keyword phpFunctions ftp_alloc ftp_cdup ftp_chdir ftp_chmod ftp_close ftp_connect ftp_delete ftp_exec ftp_fget ftp_fput ftp_get_option ftp_get ftp_login ftp_mdtm ftp_mkdir ftp_nb_continue ftp_nb_fget ftp_nb_fput ftp_nb_get ftp_nb_put ftp_nlist ftp_pasv ftp_put ftp_pwd ftp_quit ftp_raw ftp_rawlist ftp_rename ftp_rmdir ftp_set_option ftp_site ftp_size ftp_ssl_connect ftp_systype contained
+syn keyword phpFunctions call_user_func_array call_user_func create_function func_get_arg func_get_args func_num_args function_exists get_defined_functions register_shutdown_function register_tick_function unregister_tick_function contained
+syn keyword phpFunctions bind_textdomain_codeset bindtextdomain dcgettext dcngettext dgettext dngettext gettext ngettext textdomain contained
+syn keyword phpFunctions gmp_abs gmp_add gmp_and gmp_clrbit gmp_cmp gmp_com gmp_div_q gmp_div_qr gmp_div_r gmp_div gmp_divexact gmp_fact gmp_gcd gmp_gcdext gmp_hamdist gmp_init gmp_intval gmp_invert gmp_jacobi gmp_legendre gmp_mod gmp_mul gmp_neg gmp_or gmp_perfect_square gmp_popcount gmp_pow gmp_powm gmp_prob_prime gmp_random gmp_scan0 gmp_scan1 gmp_setbit gmp_sign gmp_sqrt gmp_sqrtrem gmp_sqrtrm gmp_strval gmp_sub gmp_xor contained
+syn keyword phpFunctions header headers_list headers_sent setcookie contained
+syn keyword phpFunctions hw_api_attribute hwapi_hgcsp hw_api_content hw_api_object contained
+syn keyword phpMethods key langdepvalue value values checkin checkout children mimetype read content copy dbstat dcstat dstanchors dstofsrcanchors count reason find ftstat hwstat identify info insert insertanchor insertcollection insertdocument link lock move assign attreditable count insert remove title value object objectbyanchor parents description type remove replace setcommitedversion srcanchors srcsofdst unlock user userlist contained
+syn keyword phpFunctions hw_Array2Objrec hw_changeobject hw_Children hw_ChildrenObj hw_Close hw_Connect hw_connection_info hw_cp hw_Deleteobject hw_DocByAnchor hw_DocByAnchorObj hw_Document_Attributes hw_Document_BodyTag hw_Document_Content hw_Document_SetContent hw_Document_Size hw_dummy hw_EditText hw_Error hw_ErrorMsg hw_Free_Document hw_GetAnchors hw_GetAnchorsObj hw_GetAndLock hw_GetChildColl hw_GetChildCollObj hw_GetChildDocColl hw_GetChildDocCollObj hw_GetObject hw_GetObjectByQuery hw_GetObjectByQueryColl hw_GetObjectByQueryCollObj hw_GetObjectByQueryObj hw_GetParents hw_GetParentsObj hw_getrellink hw_GetRemote hw_getremotechildren hw_GetSrcByDestObj hw_GetText hw_getusername hw_Identify hw_InCollections hw_Info hw_InsColl hw_InsDoc hw_insertanchors hw_InsertDocument hw_InsertObject hw_mapid hw_Modifyobject hw_mv hw_New_Document hw_objrec2array hw_Output_Document hw_pConnect hw_PipeDocument hw_Root hw_setlinkroot hw_stat hw_Unlock hw_Who contained
+syn keyword phpFunctions ibase_add_user ibase_affected_rows ibase_blob_add ibase_blob_cancel ibase_blob_close ibase_blob_create ibase_blob_echo ibase_blob_get ibase_blob_import ibase_blob_info ibase_blob_open ibase_close ibase_commit_ret ibase_commit ibase_connect ibase_delete_user ibase_drop_db ibase_errcode ibase_errmsg ibase_execute ibase_fetch_assoc ibase_fetch_object ibase_fetch_row ibase_field_info ibase_free_event_handler ibase_free_query ibase_free_result ibase_gen_id ibase_modify_user ibase_name_result ibase_num_fields ibase_num_params ibase_param_info ibase_pconnect ibase_prepare ibase_query ibase_rollback_ret ibase_rollback ibase_set_event_handler ibase_timefmt ibase_trans ibase_wait_event contained
+syn keyword phpFunctions iconv_get_encoding iconv_mime_decode_headers iconv_mime_decode iconv_mime_encode iconv_set_encoding iconv_strlen iconv_strpos iconv_strrpos iconv_substr iconv ob_iconv_handler contained
+syn keyword phpFunctions ifx_affected_rows ifx_blobinfile_mode ifx_byteasvarchar ifx_close ifx_connect ifx_copy_blob ifx_create_blob ifx_create_char ifx_do ifx_error ifx_errormsg ifx_fetch_row ifx_fieldproperties ifx_fieldtypes ifx_free_blob ifx_free_char ifx_free_result ifx_get_blob ifx_get_char ifx_getsqlca ifx_htmltbl_result ifx_nullformat ifx_num_fields ifx_num_rows ifx_pconnect ifx_prepare ifx_query ifx_textasvarchar ifx_update_blob ifx_update_char ifxus_close_slob ifxus_create_slob ifxus_free_slob ifxus_open_slob ifxus_read_slob ifxus_seek_slob ifxus_tell_slob ifxus_write_slob contained
+syn keyword phpFunctions exif_imagetype exif_read_data exif_thumbnail gd_info getimagesize image_type_to_mime_type image2wbmp imagealphablending imageantialias imagearc imagechar imagecharup imagecolorallocate imagecolorallocatealpha imagecolorat imagecolorclosest imagecolorclosestalpha imagecolorclosesthwb imagecolordeallocate imagecolorexact imagecolorexactalpha imagecolormatch imagecolorresolve imagecolorresolvealpha imagecolorset imagecolorsforindex imagecolorstotal imagecolortransparent imagecopy imagecopymerge imagecopymergegray imagecopyresampled imagecopyresized imagecreate imagecreatefromgd2 imagecreatefromgd2part imagecreatefromgd imagecreatefromgif imagecreatefromjpeg imagecreatefrompng imagecreatefromstring imagecreatefromwbmp imagecreatefromxbm imagecreatefromxpm imagecreatetruecolor imagedashedline imagedestroy imageellipse imagefill imagefilledarc imagefilledellipse imagefilledpolygon imagefilledrectangle imagefilltoborder imagefontheight imagefontwidth imageftbbox imagefttext imagegammacorrect imagegd2 imagegd imagegif imageinterlace imageistruecolor imagejpeg imageline imageloadfont imagepalettecopy imagepng imagepolygon imagepsbbox imagepscopyfont imagepsencodefont imagepsextendfont imagepsfreefont imagepsloadfont imagepsslantfont imagepstext imagerectangle imagerotate imagesavealpha imagesetbrush imagesetpixel imagesetstyle imagesetthickness imagesettile imagestring imagestringup imagesx imagesy imagetruecolortopalette imagettfbbox imagettftext imagetypes imagewbmp iptcembed iptcparse jpeg2wbmp png2wbmp read_exif_data contained
+syn keyword phpFunctions imap_8bit imap_alerts imap_append imap_base64 imap_binary imap_body imap_bodystruct imap_check imap_clearflag_full imap_close imap_createmailbox imap_delete imap_deletemailbox imap_errors imap_expunge imap_fetch_overview imap_fetchbody imap_fetchheader imap_fetchstructure imap_get_quota imap_get_quotaroot imap_getacl imap_getmailboxes imap_getsubscribed imap_header imap_headerinfo imap_headers imap_last_error imap_list imap_listmailbox imap_listscan imap_listsubscribed imap_lsub imap_mail_compose imap_mail_copy imap_mail_move imap_mail imap_mailboxmsginfo imap_mime_header_decode imap_msgno imap_num_msg imap_num_recent imap_open imap_ping imap_qprint imap_renamemailbox imap_reopen imap_rfc822_parse_adrlist imap_rfc822_parse_headers imap_rfc822_write_address imap_scanmailbox imap_search imap_set_quota imap_setacl imap_setflag_full imap_sort imap_status imap_subscribe imap_thread imap_timeout imap_uid imap_undelete imap_unsubscribe imap_utf7_decode imap_utf7_encode imap_utf8 contained
+syn keyword phpFunctions assert_options assert dl extension_loaded get_cfg_var get_current_user get_defined_constants get_extension_funcs get_include_path get_included_files get_loaded_extensions get_magic_quotes_gpc get_magic_quotes_runtime get_required_files getenv getlastmod getmygid getmyinode getmypid getmyuid getopt getrusage ini_alter ini_get_all ini_get ini_restore ini_set main memory_get_usage php_ini_scanned_files php_logo_guid php_sapi_name php_uname phpcredits phpinfo phpversion putenv restore_include_path set_include_path set_magic_quotes_runtime set_time_limit version_compare zend_logo_guid zend_version contained
+syn keyword phpFunctions ingres_autocommit ingres_close ingres_commit ingres_connect ingres_fetch_array ingres_fetch_object ingres_fetch_row ingres_field_length ingres_field_name ingres_field_nullable ingres_field_precision ingres_field_scale ingres_field_type ingres_num_fields ingres_num_rows ingres_pconnect ingres_query ingres_rollback contained
+syn keyword phpFunctions ircg_channel_mode ircg_disconnect ircg_fetch_error_msg ircg_get_username ircg_html_encode ircg_ignore_add ircg_ignore_del ircg_is_conn_alive ircg_join ircg_kick ircg_lookup_format_messages ircg_msg ircg_nick ircg_nickname_escape ircg_nickname_unescape ircg_notice ircg_part ircg_pconnect ircg_register_format_messages ircg_set_current ircg_set_file ircg_set_on_die ircg_topic ircg_whois contained
+syn keyword phpFunctions java_last_exception_clear java_last_exception_get contained
+syn keyword phpFunctions json_decode json_encode json_last_error contained
+syn keyword phpFunctions ldap_8859_to_t61 ldap_add ldap_bind ldap_close ldap_compare ldap_connect ldap_count_entries ldap_delete ldap_dn2ufn ldap_err2str ldap_errno ldap_error ldap_explode_dn ldap_first_attribute ldap_first_entry ldap_first_reference ldap_free_result ldap_get_attributes ldap_get_dn ldap_get_entries ldap_get_option ldap_get_values_len ldap_get_values ldap_list ldap_mod_add ldap_mod_del ldap_mod_replace ldap_modify ldap_next_attribute ldap_next_entry ldap_next_reference ldap_parse_reference ldap_parse_result ldap_read ldap_rename ldap_search ldap_set_option ldap_set_rebind_proc ldap_sort ldap_start_tls ldap_t61_to_8859 ldap_unbind contained
+syn keyword phpFunctions lzf_compress lzf_decompress lzf_optimized_for contained
+syn keyword phpFunctions ezmlm_hash mail contained
+syn keyword phpFunctions mailparse_determine_best_xfer_encoding mailparse_msg_create mailparse_msg_extract_part_file mailparse_msg_extract_part mailparse_msg_free mailparse_msg_get_part_data mailparse_msg_get_part mailparse_msg_get_structure mailparse_msg_parse_file mailparse_msg_parse mailparse_rfc822_parse_addresses mailparse_stream_encode mailparse_uudecode_all contained
+syn keyword phpFunctions abs acos acosh asin asinh atan2 atan atanh base_convert bindec ceil cos cosh decbin dechex decoct deg2rad exp expm1 floor fmod getrandmax hexdec hypot is_finite is_infinite is_nan lcg_value log10 log1p log max min mt_getrandmax mt_rand mt_srand octdec pi pow rad2deg rand round sin sinh sqrt srand tan tanh contained
+syn keyword phpFunctions mb_convert_case mb_convert_encoding mb_convert_kana mb_convert_variables mb_decode_mimeheader mb_decode_numericentity mb_detect_encoding mb_detect_order mb_encode_mimeheader mb_encode_numericentity mb_ereg_match mb_ereg_replace mb_ereg_search_getpos mb_ereg_search_getregs mb_ereg_search_init mb_ereg_search_pos mb_ereg_search_regs mb_ereg_search_setpos mb_ereg_search mb_ereg mb_eregi_replace mb_eregi mb_get_info mb_http_input mb_http_output mb_internal_encoding mb_language mb_output_handler mb_parse_str mb_preferred_mime_name mb_regex_encoding mb_regex_set_options mb_send_mail mb_split mb_strcut mb_strimwidth mb_strlen mb_strpos mb_strrpos mb_strtolower mb_strtoupper mb_strwidth mb_substitute_character mb_substr_count mb_substr contained
+syn keyword phpFunctions mcal_append_event mcal_close mcal_create_calendar mcal_date_compare mcal_date_valid mcal_day_of_week mcal_day_of_year mcal_days_in_month mcal_delete_calendar mcal_delete_event mcal_event_add_attribute mcal_event_init mcal_event_set_alarm mcal_event_set_category mcal_event_set_class mcal_event_set_description mcal_event_set_end mcal_event_set_recur_daily mcal_event_set_recur_monthly_mday mcal_event_set_recur_monthly_wday mcal_event_set_recur_none mcal_event_set_recur_weekly mcal_event_set_recur_yearly mcal_event_set_start mcal_event_set_title mcal_expunge mcal_fetch_current_stream_event mcal_fetch_event mcal_is_leap_year mcal_list_alarms mcal_list_events mcal_next_recurrence mcal_open mcal_popen mcal_rename_calendar mcal_reopen mcal_snooze mcal_store_event mcal_time_valid mcal_week_of_year contained
+syn keyword phpFunctions mcrypt_cbc mcrypt_cfb mcrypt_create_iv mcrypt_decrypt mcrypt_ecb mcrypt_enc_get_algorithms_name mcrypt_enc_get_block_size mcrypt_enc_get_iv_size mcrypt_enc_get_key_size mcrypt_enc_get_modes_name mcrypt_enc_get_supported_key_sizes mcrypt_enc_is_block_algorithm_mode mcrypt_enc_is_block_algorithm mcrypt_enc_is_block_mode mcrypt_enc_self_test mcrypt_encrypt mcrypt_generic_deinit mcrypt_generic_end mcrypt_generic_init mcrypt_generic mcrypt_get_block_size mcrypt_get_cipher_name mcrypt_get_iv_size mcrypt_get_key_size mcrypt_list_algorithms mcrypt_list_modes mcrypt_module_close mcrypt_module_get_algo_block_size mcrypt_module_get_algo_key_size mcrypt_module_get_supported_key_sizes mcrypt_module_is_block_algorithm_mode mcrypt_module_is_block_algorithm mcrypt_module_is_block_mode mcrypt_module_open mcrypt_module_self_test mcrypt_ofb mdecrypt_generic contained
+syn keyword phpFunctions mcve_adduser mcve_adduserarg mcve_bt mcve_checkstatus mcve_chkpwd mcve_chngpwd mcve_completeauthorizations mcve_connect mcve_connectionerror mcve_deleteresponse mcve_deletetrans mcve_deleteusersetup mcve_deluser mcve_destroyconn mcve_destroyengine mcve_disableuser mcve_edituser mcve_enableuser mcve_force mcve_getcell mcve_getcellbynum mcve_getcommadelimited mcve_getheader mcve_getuserarg mcve_getuserparam mcve_gft mcve_gl mcve_gut mcve_initconn mcve_initengine mcve_initusersetup mcve_iscommadelimited mcve_liststats mcve_listusers mcve_maxconntimeout mcve_monitor mcve_numcolumns mcve_numrows mcve_override mcve_parsecommadelimited mcve_ping mcve_preauth mcve_preauthcompletion mcve_qc mcve_responseparam mcve_return mcve_returncode mcve_returnstatus mcve_sale mcve_setblocking mcve_setdropfile mcve_setip mcve_setssl_files mcve_setssl mcve_settimeout mcve_settle mcve_text_avs mcve_text_code mcve_text_cv mcve_transactionauth mcve_transactionavs mcve_transactionbatch mcve_transactioncv mcve_transactionid mcve_transactionitem mcve_transactionssent mcve_transactiontext mcve_transinqueue mcve_transnew mcve_transparam mcve_transsend mcve_ub mcve_uwait mcve_verifyconnection mcve_verifysslcert mcve_void contained
+syn keyword phpFunctions mhash_count mhash_get_block_size mhash_get_hash_name mhash_keygen_s2k mhash contained
+syn keyword phpFunctions mime_content_type contained
+syn keyword phpFunctions ming_setcubicthreshold ming_setscale ming_useswfversion SWFAction SWFBitmap swfbutton_keypress SWFbutton SWFDisplayItem SWFFill SWFFont SWFGradient SWFMorph SWFMovie SWFShape SWFSprite SWFText SWFTextField contained
+syn keyword phpMethods getHeight getWidth addAction addShape setAction setdown setHit setOver setUp addColor move moveTo multColor remove Rotate rotateTo scale scaleTo setDepth setName setRatio skewX skewXTo skewY skewYTo moveTo rotateTo scaleTo skewXTo skewYTo getwidth addEntry getshape1 getshape2 add nextframe output remove save setbackground setdimension setframes setrate streammp3 addFill drawCurve drawCurveTo drawLine drawLineTo movePen movePenTo setLeftFill setLine setRightFill add nextframe remove setframes addString getWidth moveTo setColor setFont setHeight setSpacing addstring align setbounds setcolor setFont setHeight setindentation setLeftMargin setLineSpacing setMargins setname setrightMargin contained
+syn keyword phpFunctions connection_aborted connection_status connection_timeout constant define defined die eval exit get_browser highlight_file highlight_string ignore_user_abort pack show_source sleep uniqid unpack usleep contained
+syn keyword phpFunctions udm_add_search_limit udm_alloc_agent udm_api_version udm_cat_list udm_cat_path udm_check_charset udm_check_stored udm_clear_search_limits udm_close_stored udm_crc32 udm_errno udm_error udm_find udm_free_agent udm_free_ispell_data udm_free_res udm_get_doc_count udm_get_res_field udm_get_res_param udm_load_ispell_data udm_open_stored udm_set_agent_param contained
+syn keyword phpFunctions msession_connect msession_count msession_create msession_destroy msession_disconnect msession_find msession_get_array msession_get msession_getdata msession_inc msession_list msession_listvar msession_lock msession_plugin msession_randstr msession_set_array msession_set msession_setdata msession_timeout msession_uniq msession_unlock contained
+syn keyword phpFunctions msql_affected_rows msql_close msql_connect msql_create_db msql_createdb msql_data_seek msql_dbname msql_drop_db msql_dropdb msql_error msql_fetch_array msql_fetch_field msql_fetch_object msql_fetch_row msql_field_seek msql_fieldflags msql_fieldlen msql_fieldname msql_fieldtable msql_fieldtype msql_free_result msql_freeresult msql_list_dbs msql_list_fields msql_list_tables msql_listdbs msql_listfields msql_listtables msql_num_fields msql_num_rows msql_numfields msql_numrows msql_pconnect msql_query msql_regcase msql_result msql_select_db msql_selectdb msql_tablename msql contained
+syn keyword phpFunctions mssql_bind mssql_close mssql_connect mssql_data_seek mssql_execute mssql_fetch_array mssql_fetch_assoc mssql_fetch_batch mssql_fetch_field mssql_fetch_object mssql_fetch_row mssql_field_length mssql_field_name mssql_field_seek mssql_field_type mssql_free_result mssql_free_statement mssql_get_last_message mssql_guid_string mssql_init mssql_min_error_severity mssql_min_message_severity mssql_next_result mssql_num_fields mssql_num_rows mssql_pconnect mssql_query mssql_result mssql_rows_affected mssql_select_db contained
+syn keyword phpFunctions muscat_close muscat_get muscat_give muscat_setup_net muscat_setup contained
+syn keyword phpFunctions mysql_affected_rows mysql_change_user mysql_client_encoding mysql_close mysql_connect mysql_create_db mysql_data_seek mysql_db_name mysql_db_query mysql_drop_db mysql_errno mysql_error mysql_escape_string mysql_fetch_array mysql_fetch_assoc mysql_fetch_field mysql_fetch_lengths mysql_fetch_object mysql_fetch_row mysql_field_flags mysql_field_len mysql_field_name mysql_field_seek mysql_field_table mysql_field_type mysql_free_result mysql_get_client_info mysql_get_host_info mysql_get_proto_info mysql_get_server_info mysql_info mysql_insert_id mysql_list_dbs mysql_list_fields mysql_list_processes mysql_list_tables mysql_num_fields mysql_num_rows mysql_pconnect mysql_ping mysql_query mysql_real_escape_string mysql_result mysql_select_db mysql_stat mysql_tablename mysql_thread_id mysql_unbuffered_query contained
+syn keyword phpFunctions mysqli_affected_rows mysqli_autocommit mysqli_bind_param mysqli_bind_result mysqli_change_user mysqli_character_set_name mysqli_close mysqli_commit mysqli_connect mysqli_data_seek mysqli_debug mysqli_disable_reads_from_master mysqli_disable_rpl_parse mysqli_dump_debug_info mysqli_enable_reads_from_master mysqli_enable_rpl_parse mysqli_errno mysqli_error mysqli_execute mysqli_fetch_array mysqli_fetch_assoc mysqli_fetch_field_direct mysqli_fetch_field mysqli_fetch_fields mysqli_fetch_lengths mysqli_fetch_object mysqli_fetch_row mysqli_fetch mysqli_field_count mysqli_field_seek mysqli_field_tell mysqli_free_result mysqli_get_client_info mysqli_get_host_info mysqli_get_proto_info mysqli_get_server_info mysqli_get_server_version mysqli_info mysqli_init mysqli_insert_id mysqli_kill mysqli_master_query mysqli_num_fields mysqli_num_rows mysqli_options mysqli_param_count mysqli_ping mysqli_prepare_result mysqli_prepare mysqli_profiler mysqli_query mysqli_read_query_result mysqli_real_connect mysqli_real_escape_string mysqli_real_query mysqli_reload mysqli_rollback mysqli_rpl_parse_enabled mysqli_rpl_probe mysqli_rpl_query_type mysqli_select_db mysqli_send_long_data mysqli_send_query mysqli_slave_query mysqli_ssl_set mysqli_stat mysqli_stmt_affected_rows mysqli_stmt_close mysqli_stmt_errno mysqli_stmt_error mysqli_stmt_store_result mysqli_store_result mysqli_thread_id mysqli_thread_safe mysqli_use_result mysqli_warning_count contained
+syn keyword phpFunctions ncurses_addch ncurses_addchnstr ncurses_addchstr ncurses_addnstr ncurses_addstr ncurses_assume_default_colors ncurses_attroff ncurses_attron ncurses_attrset ncurses_baudrate ncurses_beep ncurses_bkgd ncurses_bkgdset ncurses_border ncurses_bottom_panel ncurses_can_change_color ncurses_cbreak ncurses_clear ncurses_clrtobot ncurses_clrtoeol ncurses_color_content ncurses_color_set ncurses_curs_set ncurses_def_prog_mode ncurses_def_shell_mode ncurses_define_key ncurses_del_panel ncurses_delay_output ncurses_delch ncurses_deleteln ncurses_delwin ncurses_doupdate ncurses_echo ncurses_echochar ncurses_end ncurses_erase ncurses_erasechar ncurses_filter ncurses_flash ncurses_flushinp ncurses_getch ncurses_getmaxyx ncurses_getmouse ncurses_getyx ncurses_halfdelay ncurses_has_colors ncurses_has_ic ncurses_has_il ncurses_has_key ncurses_hide_panel ncurses_hline ncurses_inch ncurses_init_color ncurses_init_pair ncurses_init ncurses_insch ncurses_insdelln ncurses_insertln ncurses_insstr ncurses_instr ncurses_isendwin ncurses_keyok ncurses_keypad ncurses_killchar ncurses_longname ncurses_meta ncurses_mouse_trafo ncurses_mouseinterval ncurses_mousemask ncurses_move_panel ncurses_move ncurses_mvaddch ncurses_mvaddchnstr ncurses_mvaddchstr ncurses_mvaddnstr ncurses_mvaddstr ncurses_mvcur ncurses_mvdelch ncurses_mvgetch ncurses_mvhline ncurses_mvinch ncurses_mvvline ncurses_mvwaddstr ncurses_napms ncurses_new_panel ncurses_newpad ncurses_newwin ncurses_nl ncurses_nocbreak ncurses_noecho ncurses_nonl ncurses_noqiflush ncurses_noraw ncurses_pair_content ncurses_panel_above ncurses_panel_below ncurses_panel_window ncurses_pnoutrefresh ncurses_prefresh ncurses_putp ncurses_qiflush ncurses_raw ncurses_refresh ncurses_replace_panel ncurses_reset_prog_mode ncurses_reset_shell_mode ncurses_resetty ncurses_savetty ncurses_scr_dump ncurses_scr_init ncurses_scr_restore ncurses_scr_set ncurses_scrl ncurses_show_panel ncurses_slk_attr ncurses_slk_attroff ncurses_slk_attron ncurses_slk_attrset ncurses_slk_clear ncurses_slk_color ncurses_slk_init ncurses_slk_noutrefresh ncurses_slk_refresh ncurses_slk_restore ncurses_slk_set ncurses_slk_touch ncurses_standend ncurses_standout ncurses_start_color ncurses_termattrs ncurses_termname ncurses_timeout ncurses_top_panel ncurses_typeahead ncurses_ungetch ncurses_ungetmouse ncurses_update_panels ncurses_use_default_colors ncurses_use_env ncurses_use_extended_names ncurses_vidattr ncurses_vline ncurses_waddch ncurses_waddstr ncurses_wattroff ncurses_wattron ncurses_wattrset ncurses_wborder ncurses_wclear ncurses_wcolor_set ncurses_werase ncurses_wgetch ncurses_whline ncurses_wmouse_trafo ncurses_wmove ncurses_wnoutrefresh ncurses_wrefresh ncurses_wstandend ncurses_wstandout ncurses_wvline contained
+syn keyword phpFunctions checkdnsrr closelog debugger_off debugger_on define_syslog_variables dns_check_record dns_get_mx dns_get_record fsockopen gethostbyaddr gethostbyname gethostbynamel getmxrr getprotobyname getprotobynumber getservbyname getservbyport ip2long long2ip openlog pfsockopen socket_get_status socket_set_blocking socket_set_timeout syslog contained
+syn keyword phpFunctions yp_all yp_cat yp_err_string yp_errno yp_first yp_get_default_domain yp_master yp_match yp_next yp_order contained
+syn keyword phpFunctions notes_body notes_copy_db notes_create_db notes_create_note notes_drop_db notes_find_note notes_header_info notes_list_msgs notes_mark_read notes_mark_unread notes_nav_create notes_search notes_unread notes_version contained
+syn keyword phpFunctions nsapi_request_headers nsapi_response_headers nsapi_virtual contained
+syn keyword phpFunctions aggregate_info aggregate_methods_by_list aggregate_methods_by_regexp aggregate_methods aggregate_properties_by_list aggregate_properties_by_regexp aggregate_properties aggregate aggregation_info deaggregate contained
+syn keyword phpFunctions ocibindbyname ocicancel ocicloselob ocicollappend ocicollassign ocicollassignelem ocicollgetelem ocicollmax ocicollsize ocicolltrim ocicolumnisnull ocicolumnname ocicolumnprecision ocicolumnscale ocicolumnsize ocicolumntype ocicolumntyperaw ocicommit ocidefinebyname ocierror ociexecute ocifetch ocifetchinto ocifetchstatement ocifreecollection ocifreecursor ocifreedesc ocifreestatement ociinternaldebug ociloadlob ocilogoff ocilogon ocinewcollection ocinewcursor ocinewdescriptor ocinlogon ocinumcols ociparse ociplogon ociresult ocirollback ocirowcount ocisavelob ocisavelobfile ociserverversion ocisetprefetch ocistatementtype ociwritelobtofile ociwritetemporarylob contained
+syn keyword phpFunctions odbc_autocommit odbc_binmode odbc_close_all odbc_close odbc_columnprivileges odbc_columns odbc_commit odbc_connect odbc_cursor odbc_data_source odbc_do odbc_error odbc_errormsg odbc_exec odbc_execute odbc_fetch_array odbc_fetch_into odbc_fetch_object odbc_fetch_row odbc_field_len odbc_field_name odbc_field_num odbc_field_precision odbc_field_scale odbc_field_type odbc_foreignkeys odbc_free_result odbc_gettypeinfo odbc_longreadlen odbc_next_result odbc_num_fields odbc_num_rows odbc_pconnect odbc_prepare odbc_primarykeys odbc_procedurecolumns odbc_procedures odbc_result_all odbc_result odbc_rollback odbc_setoption odbc_specialcolumns odbc_statistics odbc_tableprivileges odbc_tables contained
+syn keyword phpFunctions openssl_cipher_iv_length openssl_csr_export_to_file openssl_csr_export openssl_csr_get_public_key openssl_csr_get_subject openssl_csr_new openssl_csr_sign openssl_decrypt openssl_dh_compute_key openssl_digest openssl_encrypt openssl_error_string openssl_free_key openssl_get_cert_locations openssl_get_cipher_methods openssl_get_md_methods openssl_get_privatekey openssl_get_publickey openssl_open openssl_pbkdf2 openssl_pkcs12_export_to_file openssl_pkcs12_export openssl_pkcs12_read openssl_pkcs7_decrypt openssl_pkcs7_encrypt openssl_pkcs7_sign openssl_pkcs7_verify openssl_pkey_export_to_file openssl_pkey_export openssl_pkey_free openssl_pkey_get_details openssl_pkey_get_private openssl_pkey_get_public openssl_pkey_new openssl_private_decrypt openssl_private_encrypt openssl_public_decrypt openssl_public_encrypt openssl_random_pseudo_bytes openssl_seal openssl_sign openssl_spki_export_challenge openssl_spki_export openssl_spki_new openssl_spki_verify openssl_verify openssl_x509_check_private_key openssl_x509_checkpurpose openssl_x509_export_to_file openssl_x509_export openssl_x509_fingerprint openssl_x509_free openssl_x509_parse openssl_x509_read contained
+syn keyword phpFunctions ora_bind ora_close ora_columnname ora_columnsize ora_columntype ora_commit ora_commitoff ora_commiton ora_do ora_error ora_errorcode ora_exec ora_fetch_into ora_fetch ora_getcolumn ora_logoff ora_logon ora_numcols ora_numrows ora_open ora_parse ora_plogon ora_rollback contained
+syn keyword phpFunctions flush ob_clean ob_end_clean ob_end_flush ob_flush ob_get_clean ob_get_contents ob_get_flush ob_get_length ob_get_level ob_get_status ob_gzhandler ob_implicit_flush ob_list_handlers ob_start output_add_rewrite_var output_reset_rewrite_vars contained
+syn keyword phpFunctions overload contained
+syn keyword phpFunctions ovrimos_close ovrimos_commit ovrimos_connect ovrimos_cursor ovrimos_exec ovrimos_execute ovrimos_fetch_into ovrimos_fetch_row ovrimos_field_len ovrimos_field_name ovrimos_field_num ovrimos_field_type ovrimos_free_result ovrimos_longreadlen ovrimos_num_fields ovrimos_num_rows ovrimos_prepare ovrimos_result_all ovrimos_result ovrimos_rollback contained
+syn keyword phpFunctions pcntl_exec pcntl_fork pcntl_signal pcntl_waitpid pcntl_wexitstatus pcntl_wifexited pcntl_wifsignaled pcntl_wifstopped pcntl_wstopsig pcntl_wtermsig contained
+syn keyword phpFunctions preg_grep preg_match_all preg_match preg_quote preg_replace_callback preg_replace preg_split contained
+syn keyword phpFunctions pdf_add_annotation pdf_add_bookmark pdf_add_launchlink pdf_add_locallink pdf_add_note pdf_add_outline pdf_add_pdflink pdf_add_thumbnail pdf_add_weblink pdf_arc pdf_arcn pdf_attach_file pdf_begin_page pdf_begin_pattern pdf_begin_template pdf_circle pdf_clip pdf_close_image pdf_close_pdi_page pdf_close_pdi pdf_close pdf_closepath_fill_stroke pdf_closepath_stroke pdf_closepath pdf_concat pdf_continue_text pdf_curveto pdf_delete pdf_end_page pdf_end_pattern pdf_end_template pdf_endpath pdf_fill_stroke pdf_fill pdf_findfont pdf_get_buffer pdf_get_font pdf_get_fontname pdf_get_fontsize pdf_get_image_height pdf_get_image_width pdf_get_majorversion pdf_get_minorversion pdf_get_parameter pdf_get_pdi_parameter pdf_get_pdi_value pdf_get_value pdf_initgraphics pdf_lineto pdf_makespotcolor pdf_moveto pdf_new pdf_open_CCITT pdf_open_file pdf_open_gif pdf_open_image_file pdf_open_image pdf_open_jpeg pdf_open_memory_image pdf_open_pdi_page pdf_open_pdi pdf_open_png pdf_open_tiff pdf_open pdf_place_image pdf_place_pdi_page pdf_rect pdf_restore pdf_rotate pdf_save pdf_scale pdf_set_border_color pdf_set_border_dash pdf_set_border_style pdf_set_char_spacing pdf_set_duration pdf_set_font pdf_set_horiz_scaling pdf_set_info_author pdf_set_info_creator pdf_set_info_keywords pdf_set_info_subject pdf_set_info_title pdf_set_info pdf_set_leading pdf_set_parameter pdf_set_text_matrix pdf_set_text_pos pdf_set_text_rendering pdf_set_text_rise pdf_set_value pdf_set_word_spacing pdf_setcolor pdf_setdash pdf_setflat pdf_setfont pdf_setgray_fill pdf_setgray_stroke pdf_setgray pdf_setlinecap pdf_setlinejoin pdf_setlinewidth pdf_setmatrix pdf_setmiterlimit pdf_setpolydash pdf_setrgbcolor_fill pdf_setrgbcolor_stroke pdf_setrgbcolor pdf_show_boxed pdf_show_xy pdf_show pdf_skew pdf_stringwidth pdf_stroke pdf_translate contained
+syn keyword phpFunctions pfpro_cleanup pfpro_init pfpro_process_raw pfpro_process pfpro_version contained
+syn keyword phpFunctions pg_affected_rows pg_cancel_query pg_client_encoding pg_close pg_connect pg_connection_busy pg_connection_reset pg_connection_status pg_convert pg_copy_from pg_copy_to pg_dbname pg_delete pg_end_copy pg_escape_bytea pg_escape_string pg_fetch_all pg_fetch_array pg_fetch_assoc pg_fetch_object pg_fetch_result pg_fetch_row pg_field_is_null pg_field_name pg_field_num pg_field_prtlen pg_field_size pg_field_type pg_free_result pg_get_notify pg_get_pid pg_get_result pg_host pg_insert pg_last_error pg_last_notice pg_last_oid pg_lo_close pg_lo_create pg_lo_export pg_lo_import pg_lo_open pg_lo_read_all pg_lo_read pg_lo_seek pg_lo_tell pg_lo_unlink pg_lo_write pg_meta_data pg_num_fields pg_num_rows pg_options pg_pconnect pg_ping pg_port pg_put_line pg_query pg_result_error pg_result_seek pg_result_status pg_select pg_send_query pg_set_client_encoding pg_trace pg_tty pg_unescape_bytea pg_untrace pg_update contained
+syn keyword phpFunctions posix_ctermid posix_get_last_error posix_getcwd posix_getegid posix_geteuid posix_getgid posix_getgrgid posix_getgrnam posix_getgroups posix_getlogin posix_getpgid posix_getpgrp posix_getpid posix_getppid posix_getpwnam posix_getpwuid posix_getrlimit posix_getsid posix_getuid posix_isatty posix_kill posix_mkfifo posix_setegid posix_seteuid posix_setgid posix_setpgid posix_setsid posix_setuid posix_strerror posix_times posix_ttyname posix_uname contained
+syn keyword phpFunctions printer_abort printer_close printer_create_brush printer_create_dc printer_create_font printer_create_pen printer_delete_brush printer_delete_dc printer_delete_font printer_delete_pen printer_draw_bmp printer_draw_chord printer_draw_elipse printer_draw_line printer_draw_pie printer_draw_rectangle printer_draw_roundrect printer_draw_text printer_end_doc printer_end_page printer_get_option printer_list printer_logical_fontheight printer_open printer_select_brush printer_select_font printer_select_pen printer_set_option printer_start_doc printer_start_page printer_write contained
+syn keyword phpFunctions pspell_add_to_personal pspell_add_to_session pspell_check pspell_clear_session pspell_config_create pspell_config_ignore pspell_config_mode pspell_config_personal pspell_config_repl pspell_config_runtogether pspell_config_save_repl pspell_new_config pspell_new_personal pspell_new pspell_save_wordlist pspell_store_replacement pspell_suggest contained
+syn keyword phpFunctions qdom_error qdom_tree contained
+syn keyword phpFunctions readline_add_history readline_clear_history readline_completion_function readline_info readline_list_history readline_read_history readline_write_history readline contained
+syn keyword phpFunctions recode_file recode_string recode contained
+syn keyword phpFunctions ereg_replace ereg eregi_replace eregi split spliti sql_regcase contained
+syn keyword phpFunctions ftok msg_get_queue msg_receive msg_remove_queue msg_send msg_set_queue msg_stat_queue sem_acquire sem_get sem_release sem_remove shm_attach shm_detach shm_get_var shm_put_var shm_remove_var shm_remove contained
+syn keyword phpFunctions sesam_affected_rows sesam_commit sesam_connect sesam_diagnostic sesam_disconnect sesam_errormsg sesam_execimm sesam_fetch_array sesam_fetch_result sesam_fetch_row sesam_field_array sesam_field_name sesam_free_result sesam_num_fields sesam_query sesam_rollback sesam_seek_row sesam_settransaction contained
+syn keyword phpFunctions session_cache_expire session_cache_limiter session_decode session_destroy session_encode session_get_cookie_params session_id session_is_registered session_module_name session_name session_regenerate_id session_register session_save_path session_set_cookie_params session_set_save_handler session_start session_unregister session_unset session_write_close contained
+syn keyword phpFunctions shmop_close shmop_delete shmop_open shmop_read shmop_size shmop_write contained
+syn keyword phpFunctions snmp_get_quick_print snmp_set_quick_print snmpget snmprealwalk snmpset snmpwalk snmpwalkoid contained
+syn keyword phpFunctions socket_accept socket_bind socket_clear_error socket_close socket_connect socket_create_listen socket_create_pair socket_create socket_get_option socket_getpeername socket_getsockname socket_iovec_add socket_iovec_alloc socket_iovec_delete socket_iovec_fetch socket_iovec_free socket_iovec_set socket_last_error socket_listen socket_read socket_readv socket_recv socket_recvfrom socket_recvmsg socket_select socket_send socket_sendmsg socket_sendto socket_set_block socket_set_nonblock socket_set_option socket_shutdown socket_strerror socket_write socket_writev contained
+syn keyword phpFunctions sqlite_array_query sqlite_busy_timeout sqlite_changes sqlite_close sqlite_column sqlite_create_aggregate sqlite_create_function sqlite_current sqlite_error_string sqlite_escape_string sqlite_fetch_array sqlite_fetch_single sqlite_fetch_string sqlite_field_name sqlite_has_more sqlite_last_error sqlite_last_insert_rowid sqlite_libencoding sqlite_libversion sqlite_next sqlite_num_fields sqlite_num_rows sqlite_open sqlite_popen sqlite_query sqlite_rewind sqlite_seek sqlite_udf_decode_binary sqlite_udf_encode_binary sqlite_unbuffered_query contained
+syn keyword phpFunctions stream_context_create stream_context_get_options stream_context_set_option stream_context_set_params stream_copy_to_stream stream_filter_append stream_filter_prepend stream_filter_register stream_get_contents stream_get_filters stream_get_line stream_get_meta_data stream_get_transports stream_get_wrappers stream_register_wrapper stream_select stream_set_blocking stream_set_timeout stream_set_write_buffer stream_socket_accept stream_socket_client stream_socket_get_name stream_socket_recvfrom stream_socket_sendto stream_socket_server stream_wrapper_register contained
+syn keyword phpFunctions addcslashes addslashes bin2hex chop chr chunk_split convert_cyr_string count_chars crc32 crypt explode fprintf get_html_translation_table hebrev hebrevc html_entity_decode htmlentities htmlspecialchars implode join levenshtein localeconv ltrim md5_file md5 metaphone money_format nl_langinfo nl2br number_format ord parse_str print printf quoted_printable_decode quotemeta rtrim setlocale sha1_file sha1 similar_text soundex sprintf sscanf str_ireplace str_pad str_repeat str_replace str_rot13 str_shuffle str_split str_word_count strcasecmp strchr strcmp strcoll strcspn strip_tags stripcslashes stripos stripslashes stristr strlen strnatcasecmp strnatcmp strncasecmp strncmp strpos strrchr strrev strripos strrpos strspn strstr strtok strtolower strtoupper strtr substr_compare substr_count substr_replace substr trim ucfirst ucwords vprintf vsprintf wordwrap contained
+syn keyword phpFunctions swf_actiongeturl swf_actiongotoframe swf_actiongotolabel swf_actionnextframe swf_actionplay swf_actionprevframe swf_actionsettarget swf_actionstop swf_actiontogglequality swf_actionwaitforframe swf_addbuttonrecord swf_addcolor swf_closefile swf_definebitmap swf_definefont swf_defineline swf_definepoly swf_definerect swf_definetext swf_endbutton swf_enddoaction swf_endshape swf_endsymbol swf_fontsize swf_fontslant swf_fonttracking swf_getbitmapinfo swf_getfontinfo swf_getframe swf_labelframe swf_lookat swf_modifyobject swf_mulcolor swf_nextid swf_oncondition swf_openfile swf_ortho2 swf_ortho swf_perspective swf_placeobject swf_polarview swf_popmatrix swf_posround swf_pushmatrix swf_removeobject swf_rotate swf_scale swf_setfont swf_setframe swf_shapearc swf_shapecurveto3 swf_shapecurveto swf_shapefillbitmapclip swf_shapefillbitmaptile swf_shapefilloff swf_shapefillsolid swf_shapelinesolid swf_shapelineto swf_shapemoveto swf_showframe swf_startbutton swf_startdoaction swf_startshape swf_startsymbol swf_textwidth swf_translate swf_viewport contained
+syn keyword phpFunctions sybase_affected_rows sybase_close sybase_connect sybase_data_seek sybase_deadlock_retry_count sybase_fetch_array sybase_fetch_assoc sybase_fetch_field sybase_fetch_object sybase_fetch_row sybase_field_seek sybase_free_result sybase_get_last_message sybase_min_client_severity sybase_min_error_severity sybase_min_message_severity sybase_min_server_severity sybase_num_fields sybase_num_rows sybase_pconnect sybase_query sybase_result sybase_select_db sybase_set_message_handler sybase_unbuffered_query contained
+syn keyword phpFunctions tidy_access_count tidy_clean_repair tidy_config_count tidy_diagnose tidy_error_count tidy_get_body tidy_get_config tidy_get_error_buffer tidy_get_head tidy_get_html_ver tidy_get_html tidy_get_output tidy_get_release tidy_get_root tidy_get_status tidy_getopt tidy_is_xhtml tidy_load_config tidy_parse_file tidy_parse_string tidy_repair_file tidy_repair_string tidy_reset_config tidy_save_config tidy_set_encoding tidy_setopt tidy_warning_count contained
+syn keyword phpMethods attributes children get_attr get_nodes has_children has_siblings is_asp is_comment is_html is_jsp is_jste is_text is_xhtml is_xml next prev tidy_node contained
+syn keyword phpFunctions token_get_all token_name contained
+syn keyword phpFunctions base64_decode base64_encode get_meta_tags http_build_query parse_url rawurldecode rawurlencode urldecode urlencode contained
+syn keyword phpFunctions doubleval empty floatval get_defined_vars get_resource_type gettype import_request_variables intval is_array is_bool is_callable is_double is_float is_int is_integer is_long is_null is_numeric is_object is_real is_resource is_scalar is_string isset print_r serialize settype strval unserialize unset var_dump var_export contained
+syn keyword phpFunctions vpopmail_add_alias_domain_ex vpopmail_add_alias_domain vpopmail_add_domain_ex vpopmail_add_domain vpopmail_add_user vpopmail_alias_add vpopmail_alias_del_domain vpopmail_alias_del vpopmail_alias_get_all vpopmail_alias_get vpopmail_auth_user vpopmail_del_domain_ex vpopmail_del_domain vpopmail_del_user vpopmail_error vpopmail_passwd vpopmail_set_user_quota contained
+syn keyword phpFunctions w32api_deftype w32api_init_dtype w32api_invoke_function w32api_register_function w32api_set_call_method contained
+syn keyword phpFunctions wddx_add_vars wddx_deserialize wddx_packet_end wddx_packet_start wddx_serialize_value wddx_serialize_vars contained
+syn keyword phpFunctions utf8_decode utf8_encode xml_error_string xml_get_current_byte_index xml_get_current_column_number xml_get_current_line_number xml_get_error_code xml_parse_into_struct xml_parse xml_parser_create_ns xml_parser_create xml_parser_free xml_parser_get_option xml_parser_set_option xml_set_character_data_handler xml_set_default_handler xml_set_element_handler xml_set_end_namespace_decl_handler xml_set_external_entity_ref_handler xml_set_notation_decl_handler xml_set_object xml_set_processing_instruction_handler xml_set_start_namespace_decl_handler xml_set_unparsed_entity_decl_handler contained
+syn keyword phpFunctions xmlrpc_decode_request xmlrpc_decode xmlrpc_encode_request xmlrpc_encode xmlrpc_get_type xmlrpc_parse_method_descriptions xmlrpc_server_add_introspection_data xmlrpc_server_call_method xmlrpc_server_create xmlrpc_server_destroy xmlrpc_server_register_introspection_callback xmlrpc_server_register_method xmlrpc_set_type contained
+syn keyword phpFunctions xslt_create xslt_errno xslt_error xslt_free xslt_output_process xslt_set_base xslt_set_encoding xslt_set_error_handler xslt_set_log xslt_set_sax_handler xslt_set_sax_handlers xslt_set_scheme_handler xslt_set_scheme_handlers contained
+syn keyword phpFunctions yaz_addinfo yaz_ccl_conf yaz_ccl_parse yaz_close yaz_connect yaz_database yaz_element yaz_errno yaz_error yaz_es_result yaz_get_option yaz_hits yaz_itemorder yaz_present yaz_range yaz_record yaz_scan_result yaz_scan yaz_schema yaz_search yaz_set_option yaz_sort yaz_syntax yaz_wait contained
+syn keyword phpFunctions zip_close zip_entry_close zip_entry_compressedsize zip_entry_compressionmethod zip_entry_filesize zip_entry_name zip_entry_open zip_entry_read zip_open zip_read contained
+syn keyword phpFunctions gzclose gzcompress gzdeflate gzencode gzeof gzfile gzgetc gzgets gzgetss gzinflate gzopen gzpassthru gzputs gzread gzrewind gzseek gztell gzuncompress gzwrite readgzfile zlib_get_coding_type contained
if exists( "php_baselib" )
- syn keyword phpMethods query next_record num_rows affected_rows nf f p np num_fields haltmsg seek link_id query_id metadata table_names nextid connect halt free register unregister is_registered delete url purl self_url pself_url hidden_session add_query padd_query reimport_get_vars reimport_post_vars reimport_cookie_vars set_container set_tokenname release_token put_headers get_id get_id put_id freeze thaw gc reimport_any_vars start url purl login_if is_authenticated auth_preauth auth_loginform auth_validatelogin auth_refreshlogin auth_registerform auth_doregister start check have_perm permsum perm_invalid contained
- syn keyword phpFunctions page_open page_close sess_load sess_save contained
+ syn keyword phpMethods query next_record num_rows affected_rows nf f p np num_fields haltmsg seek link_id query_id metadata table_names nextid connect halt free register unregister is_registered delete url purl self_url pself_url hidden_session add_query padd_query reimport_get_vars reimport_post_vars reimport_cookie_vars set_container set_tokenname release_token put_headers get_id get_id put_id freeze thaw gc reimport_any_vars start url purl login_if is_authenticated auth_preauth auth_loginform auth_validatelogin auth_refreshlogin auth_registerform auth_doregister start check have_perm permsum perm_invalid contained
+ syn keyword phpFunctions page_open page_close sess_load sess_save contained
endif
" Conditional
-syn keyword phpConditional declare else enddeclare endswitch elseif endif if switch contained
+syn keyword phpConditional declare else enddeclare endswitch elseif endif if switch contained
" Repeat
-syn keyword phpRepeat as do endfor endforeach endwhile for foreach while contained
+syn keyword phpRepeat as do endfor endforeach endwhile for foreach while contained
" Repeat
-syn keyword phpLabel case default switch contained
+syn keyword phpLabel case default switch contained
" Statement
-syn keyword phpStatement return break continue exit goto contained
+syn keyword phpStatement return break continue exit goto yield contained
" Keyword
-syn keyword phpKeyword var const contained
+syn keyword phpKeyword var const contained
" Type
-syn keyword phpType bool boolean int integer real double float string array object NULL contained
+syn keyword phpType bool boolean int integer real double float string array object NULL callable iterable contained
" Structure
-syn keyword phpStructure namespace extends implements instanceof parent self contained
+syn keyword phpStructure namespace extends implements instanceof parent self contained
" Operator
syn match phpOperator "[-=+%^&|*!.~?:]" contained display
-syn match phpOperator "[-+*/%^&|.]=" contained display
-syn match phpOperator "/[^*/]"me=e-1 contained display
-syn match phpOperator "\$" contained display
+syn match phpOperator "[-+*/%^&|.]=" contained display
+syn match phpOperator "/[^*/]"me=e-1 contained display
+syn match phpOperator "\$" contained display
syn match phpOperator "&&\|\<and\>" contained display
syn match phpOperator "||\|\<x\=or\>" contained display
syn match phpRelation "[!=<>]=" contained display
-syn match phpRelation "[<>]" contained display
-syn match phpMemberSelector "->" contained display
-syn match phpVarSelector "\$" contained display
+syn match phpRelation "[<>]" contained display
+syn match phpMemberSelector "->" contained display
+syn match phpVarSelector "\$" contained display
" Identifier
-syn match phpIdentifier "$\h\w*" contained contains=phpEnvVar,phpIntVar,phpVarSelector display
-syn match phpIdentifierSimply "${\h\w*}" contains=phpOperator,phpParent contained display
-syn region phpIdentifierComplex matchgroup=phpParent start="{\$"rs=e-1 end="}" contains=phpIdentifier,phpMemberSelector,phpVarSelector,phpIdentifierComplexP contained extend
-syn region phpIdentifierComplexP matchgroup=phpParent start="\[" end="]" contains=@phpClInside contained
+syn match phpIdentifier "$\h\w*" contained contains=phpEnvVar,phpIntVar,phpVarSelector display
+syn match phpIdentifierSimply "${\h\w*}" contains=phpOperator,phpParent contained display
+syn region phpIdentifierComplex matchgroup=phpParent start="{\$"rs=e-1 end="}" contains=phpIdentifier,phpMemberSelector,phpVarSelector,phpIdentifierComplexP contained extend
+syn region phpIdentifierComplexP matchgroup=phpParent start="\[" end="]" contains=@phpClInside contained
" Interpolated indentifiers (inside strings)
syn match phpBrackets "[][}{]" contained display
" errors
- syn match phpInterpSimpleError "\[[^]]*\]" contained display " fallback (if nothing else matches)
+ syn match phpInterpSimpleError "\[[^]]*\]" contained display " fallback (if nothing else matches)
syn match phpInterpSimpleError "->[^a-zA-Z_]" contained display
" make sure these stay above the correct DollarCurlies so they don't take priority
- syn match phpInterpBogusDollarCurley "${[^}]*}" contained display " fallback (if nothing else matches)
+ syn match phpInterpBogusDollarCurley "${[^}]*}" contained display " fallback (if nothing else matches)
syn match phpinterpSimpleBracketsInner "\w\+" contained
syn match phpInterpSimpleBrackets "\[\h\w*]" contained contains=phpBrackets,phpInterpSimpleBracketsInner
syn match phpInterpSimpleBrackets "\[\d\+]" contained contains=phpBrackets,phpInterpSimpleBracketsInner
@@ -317,7 +298,7 @@ syn region phpIdentifierComplexP matchgroup=phpParent start="\[" end="]" contai
syn match phpInterpSimple "\$\h\w*\(\[[^]]*\]\|->\h\w*\)\?" contained contains=phpInterpSimpleBrackets,phpIdentifier,phpInterpSimpleError,phpMethods,phpMemberSelector display
syn match phpInterpVarname "\h\w*" contained
syn match phpInterpMethodName "\h\w*" contained " default color
- syn match phpInterpSimpleCurly "\${\h\w*}" contains=phpInterpVarname contained extend
+ syn match phpInterpSimpleCurly "\${\h\w*}" contains=phpInterpVarname contained extend
syn region phpInterpDollarCurley1Helper matchgroup=phpParent start="{" end="\[" contains=phpInterpVarname contained
syn region phpInterpDollarCurly1 matchgroup=phpParent start="\${\h\w*\["rs=s+1 end="]}" contains=phpInterpDollarCurley1Helper,@phpClConst contained extend
@@ -337,28 +318,27 @@ syn region phpIdentifierComplexP matchgroup=phpParent start="\[" end="]" contai
syn match phpMethodsVar "->\h\w*" contained contains=phpMethods,phpMemberSelector display
" Include
-syn keyword phpInclude include require include_once require_once use contained
+syn keyword phpInclude include require include_once require_once use contained
-" Peter Hodge - added 'clone' keyword
" Define
syn keyword phpDefine new clone contained
" Boolean
-syn keyword phpBoolean true false contained
+syn keyword phpBoolean true false contained
" Number
syn match phpNumber "-\=\<\d\+\>" contained display
-syn match phpNumber "\<0x\x\{1,8}\>" contained display
+syn match phpNumber "\<0x\x\{1,8}\>" contained display
" Float
-syn match phpFloat "\(-\=\<\d+\|-\=\)\.\d\+\>" contained display
+syn match phpFloat "\(-\=\<\d+\|-\=\)\.\d\+\>" contained display
" Backslash escapes
syn case match
" for double quotes and heredoc
- syn match phpBackslashSequences "\\[fnrtv\\\"$]" contained display
- syn match phpBackslashSequences "\\\d\{1,3}" contained contains=phpOctalError display
- syn match phpBackslashSequences "\\x\x\{1,2}" contained display
+ syn match phpBackslashSequences "\\[fnrtv\\\"$]" contained display
+ syn match phpBackslashSequences "\\\d\{1,3}" contained contains=phpOctalError display
+ syn match phpBackslashSequences "\\x\x\{1,2}" contained display
" additional sequence for double quotes only
syn match phpBackslashDoubleQuote "\\[\"]" contained display
" for single quotes only
@@ -367,66 +347,57 @@ syn match phpFloat "\(-\=\<\d+\|-\=\)\.\d\+\>" contained display
" Error
-syn match phpOctalError "[89]" contained display
+syn match phpOctalError "[89]" contained display
if exists("php_parent_error_close")
- syn match phpParentError "[)\]}]" contained display
+ syn match phpParentError "[)\]}]" contained display
endif
" Todo
-syn keyword phpTodo todo fixme xxx contained
+syn keyword phpTodo todo fixme xxx contained
" Comment
if exists("php_parent_error_open")
- syn region phpComment start="/\*" end="\*/" contained contains=phpTodo
-else
- syn region phpComment start="/\*" end="\*/" contained contains=phpTodo extend
-endif
-if version >= 600
- syn match phpComment "#.\{-}\(?>\|$\)\@=" contained contains=phpTodo
- syn match phpComment "//.\{-}\(?>\|$\)\@=" contained contains=phpTodo
+ syn region phpComment start="/\*" end="\*/" contained contains=phpTodo,@Spell
else
- syn match phpComment "#.\{-}$" contained contains=phpTodo
- syn match phpComment "#.\{-}?>"me=e-2 contained contains=phpTodo
- syn match phpComment "//.\{-}$" contained contains=phpTodo
- syn match phpComment "//.\{-}?>"me=e-2 contained contains=phpTodo
+ syn region phpComment start="/\*" end="\*/" contained contains=phpTodo,@Spell extend
endif
+syn match phpComment "#.\{-}\(?>\|$\)\@=" contained contains=phpTodo,@Spell
+syn match phpComment "//.\{-}\(?>\|$\)\@=" contained contains=phpTodo,@Spell
" String
if exists("php_parent_error_open")
- syn region phpStringDouble matchgroup=phpStringDouble start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@phpAddStrings,phpBackslashSequences,phpBackslashDoubleQuote,@phpInterpDouble contained keepend
- syn region phpBacktick matchgroup=phpBacktick start=+`+ skip=+\\\\\|\\"+ end=+`+ contains=@phpAddStrings,phpIdentifier,phpBackslashSequences,phpIdentifierSimply,phpIdentifierComplex contained keepend
- syn region phpStringSingle matchgroup=phpStringSingle start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=@phpAddStrings,phpBackslashSingleQuote contained keepend
+ syn region phpStringDouble matchgroup=phpStringDouble start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@phpAddStrings,phpBackslashSequences,phpBackslashDoubleQuote,@phpInterpDouble,@Spell contained keepend
+ syn region phpBacktick matchgroup=phpBacktick start=+`+ skip=+\\\\\|\\"+ end=+`+ contains=@phpAddStrings,phpIdentifier,phpBackslashSequences,phpIdentifierSimply,phpIdentifierComplex contained keepend
+ syn region phpStringSingle matchgroup=phpStringSingle start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=@phpAddStrings,phpBackslashSingleQuote,@Spell contained keepend
else
- syn region phpStringDouble matchgroup=phpStringDouble start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@phpAddStrings,phpBackslashSequences,phpBackslashDoubleQuote,@phpInterpDouble contained extend keepend
- syn region phpBacktick matchgroup=phpBacktick start=+`+ skip=+\\\\\|\\"+ end=+`+ contains=@phpAddStrings,phpIdentifier,phpBackslashSequences,phpIdentifierSimply,phpIdentifierComplex contained extend keepend
- syn region phpStringSingle matchgroup=phpStringSingle start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=@phpAddStrings,phpBackslashSingleQuote contained keepend extend
+ syn region phpStringDouble matchgroup=phpStringDouble start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@phpAddStrings,phpBackslashSequences,phpBackslashDoubleQuote,@phpInterpDouble,@Spell contained extend keepend
+ syn region phpBacktick matchgroup=phpBacktick start=+`+ skip=+\\\\\|\\"+ end=+`+ contains=@phpAddStrings,phpIdentifier,phpBackslashSequences,phpIdentifierSimply,phpIdentifierComplex contained extend keepend
+ syn region phpStringSingle matchgroup=phpStringSingle start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=@phpAddStrings,phpBackslashSingleQuote,@Spell contained keepend extend
endif
" HereDoc and NowDoc
-if version >= 600
- syn case match
+syn case match
- " HereDoc
- syn region phpHereDoc matchgroup=Delimiter start="\(<<<\)\@<=\(\"\=\)\z(\I\i*\)\2$" end="^\z1\(;\=$\)\@=" contained contains=phpIdentifier,phpIdentifierSimply,phpIdentifierComplex,phpBackslashSequences,phpMethodsVar keepend extend
+" HereDoc
+syn region phpHereDoc matchgroup=Delimiter start="\(<<<\)\@<=\(\"\=\)\z(\I\i*\)\2$" end="^\z1\(;\=$\)\@=" contained contains=phpIdentifier,phpIdentifierSimply,phpIdentifierComplex,phpBackslashSequences,phpMethodsVar,@Spell keepend extend
" including HTML,JavaScript,SQL even if not enabled via options
- syn region phpHereDoc matchgroup=Delimiter start="\(<<<\)\@<=\(\"\=\)\z(\(\I\i*\)\=\(html\)\c\(\i*\)\)\2$" end="^\z1\(;\=$\)\@=" contained contains=@htmlTop,phpIdentifier,phpIdentifierSimply,phpIdentifierComplex,phpBackslashSequences,phpMethodsVar keepend extend
- syn region phpHereDoc matchgroup=Delimiter start="\(<<<\)\@<=\(\"\=\)\z(\(\I\i*\)\=\(sql\)\c\(\i*\)\)\2$" end="^\z1\(;\=$\)\@=" contained contains=@sqlTop,phpIdentifier,phpIdentifierSimply,phpIdentifierComplex,phpBackslashSequences,phpMethodsVar keepend extend
- syn region phpHereDoc matchgroup=Delimiter start="\(<<<\)\@<=\(\"\=\)\z(\(\I\i*\)\=\(javascript\)\c\(\i*\)\)\2$" end="^\z1\(;\=$\)\@=" contained contains=@htmlJavascript,phpIdentifierSimply,phpIdentifier,phpIdentifierComplex,phpBackslashSequences,phpMethodsVar keepend extend
+syn region phpHereDoc matchgroup=Delimiter start="\(<<<\)\@<=\(\"\=\)\z(\(\I\i*\)\=\(html\)\c\(\i*\)\)\2$" end="^\z1\(;\=$\)\@=" contained contains=@htmlTop,phpIdentifier,phpIdentifierSimply,phpIdentifierComplex,phpBackslashSequences,phpMethodsVar,@Spell keepend extend
+syn region phpHereDoc matchgroup=Delimiter start="\(<<<\)\@<=\(\"\=\)\z(\(\I\i*\)\=\(sql\)\c\(\i*\)\)\2$" end="^\z1\(;\=$\)\@=" contained contains=@sqlTop,phpIdentifier,phpIdentifierSimply,phpIdentifierComplex,phpBackslashSequences,phpMethodsVar,@Spell keepend extend
+syn region phpHereDoc matchgroup=Delimiter start="\(<<<\)\@<=\(\"\=\)\z(\(\I\i*\)\=\(javascript\)\c\(\i*\)\)\2$" end="^\z1\(;\=$\)\@=" contained contains=@htmlJavascript,phpIdentifierSimply,phpIdentifier,phpIdentifierComplex,phpBackslashSequences,phpMethodsVar,@Spell keepend extend
- " NowDoc
- syn region phpNowDoc matchgroup=Delimiter start="\(<<<\)\@<='\z(\I\i*\)'$" end="^\z1\(;\=$\)\@=" contained keepend extend
+" NowDoc
+syn region phpNowDoc matchgroup=Delimiter start="\(<<<\)\@<='\z(\I\i*\)'$" end="^\z1\(;\=$\)\@=" contained contains=@Spell keepend extend
" including HTML,JavaScript,SQL even if not enabled via options
- syn region phpNowDoc matchgroup=Delimiter start="\(<<<\)\@<='\z(\(\I\i*\)\=\(html\)\c\(\i*\)\)'$" end="^\z1\(;\=$\)\@=" contained contains=@htmlTop keepend extend
- syn region phpNowDoc matchgroup=Delimiter start="\(<<<\)\@<='\z(\(\I\i*\)\=\(sql\)\c\(\i*\)\)'$" end="^\z1\(;\=$\)\@=" contained contains=@sqlTop keepend extend
- syn region phpNowDoc matchgroup=Delimiter start="\(<<<\)\@<='\z(\(\I\i*\)\=\(javascript\)\c\(\i*\)\)'$" end="^\z1\(;\=$\)\@=" contained contains=@htmlJavascript keepend extend
- syn case ignore
-endif
+syn region phpNowDoc matchgroup=Delimiter start="\(<<<\)\@<='\z(\(\I\i*\)\=\(html\)\c\(\i*\)\)'$" end="^\z1\(;\=$\)\@=" contained contains=@htmlTop,@Spell keepend extend
+syn region phpNowDoc matchgroup=Delimiter start="\(<<<\)\@<='\z(\(\I\i*\)\=\(sql\)\c\(\i*\)\)'$" end="^\z1\(;\=$\)\@=" contained contains=@sqlTop,@Spell keepend extend
+syn region phpNowDoc matchgroup=Delimiter start="\(<<<\)\@<='\z(\(\I\i*\)\=\(javascript\)\c\(\i*\)\)'$" end="^\z1\(;\=$\)\@=" contained contains=@htmlJavascript,@Spell keepend extend
+syn case ignore
" Parent
if exists("php_parent_error_close") || exists("php_parent_error_open")
- syn match phpParent "[{}]" contained
- syn region phpParent matchgroup=Delimiter start="(" end=")" contained contains=@phpClInside transparent
- syn region phpParent matchgroup=Delimiter start="\[" end="\]" contained contains=@phpClInside transparent
+ syn match phpParent "[{}]" contained
+ syn region phpParent matchgroup=Delimiter start="(" end=")" contained contains=@phpClInside transparent
+ syn region phpParent matchgroup=Delimiter start="\[" end="\]" contained contains=@phpClInside transparent
if !exists("php_parent_error_close")
syn match phpParent "[\])]" contained
endif
@@ -434,73 +405,67 @@ else
syn match phpParent "[({[\]})]" contained
endif
-syn cluster phpClConst contains=phpFunctions,phpIdentifier,phpConditional,phpRepeat,phpStatement,phpOperator,phpRelation,phpStringSingle,phpStringDouble,phpBacktick,phpNumber,phpFloat,phpKeyword,phpType,phpBoolean,phpStructure,phpMethodsVar,phpConstant,phpCoreConstant,phpException
+syn cluster phpClConst contains=phpFunctions,phpIdentifier,phpConditional,phpRepeat,phpStatement,phpOperator,phpRelation,phpStringSingle,phpStringDouble,phpBacktick,phpNumber,phpFloat,phpKeyword,phpType,phpBoolean,phpStructure,phpMethodsVar,phpConstant,phpCoreConstant,phpException
syn cluster phpClInside contains=@phpClConst,phpComment,phpLabel,phpParent,phpParentError,phpInclude,phpHereDoc,phpNowDoc
syn cluster phpClFunction contains=@phpClInside,phpDefine,phpParentError,phpStorageClass
-syn cluster phpClTop contains=@phpClFunction,phpFoldFunction,phpFoldClass,phpFoldInterface,phpFoldTry,phpFoldCatch
+syn cluster phpClTop contains=@phpClFunction,phpFoldFunction,phpFoldClass,phpFoldInterface,phpFoldTry,phpFoldCatch
" Php Region
if exists("php_parent_error_open")
if exists("php_noShortTags")
- syn region phpRegion matchgroup=Delimiter start="<?php" end="?>" contains=@phpClTop
+ syn region phpRegion matchgroup=Delimiter start="<?php" end="?>" contains=@phpClTop
else
- syn region phpRegion matchgroup=Delimiter start="<?\(php\)\=" end="?>" contains=@phpClTop
+ syn region phpRegion matchgroup=Delimiter start="<?\(php\)\=" end="?>" contains=@phpClTop
endif
- syn region phpRegionSc matchgroup=Delimiter start=+<script language="php">+ end=+</script>+ contains=@phpClTop
+ syn region phpRegionSc matchgroup=Delimiter start=+<script language="php">+ end=+</script>+ contains=@phpClTop
if exists("php_asp_tags")
- syn region phpRegionAsp matchgroup=Delimiter start="<%\(=\)\=" end="%>" contains=@phpClTop
+ syn region phpRegionAsp matchgroup=Delimiter start="<%\(=\)\=" end="%>" contains=@phpClTop
endif
else
if exists("php_noShortTags")
- syn region phpRegion matchgroup=Delimiter start="<?php" end="?>" contains=@phpClTop keepend
+ syn region phpRegion matchgroup=Delimiter start="<?php" end="?>" contains=@phpClTop keepend
else
- syn region phpRegion matchgroup=Delimiter start="<?\(php\)\=" end="?>" contains=@phpClTop keepend
+ syn region phpRegion matchgroup=Delimiter start="<?\(php\)\=" end="?>" contains=@phpClTop keepend
endif
- syn region phpRegionSc matchgroup=Delimiter start=+<script language="php">+ end=+</script>+ contains=@phpClTop keepend
+ syn region phpRegionSc matchgroup=Delimiter start=+<script language="php">+ end=+</script>+ contains=@phpClTop keepend
if exists("php_asp_tags")
- syn region phpRegionAsp matchgroup=Delimiter start="<%\(=\)\=" end="%>" contains=@phpClTop keepend
+ syn region phpRegionAsp matchgroup=Delimiter start="<%\(=\)\=" end="%>" contains=@phpClTop keepend
endif
endif
" Fold
if exists("php_folding") && php_folding==1
" match one line constructs here and skip them at folding
- syn keyword phpSCKeyword abstract final private protected public static contained
- syn keyword phpFCKeyword function contained
- syn keyword phpStorageClass global contained
- syn match phpDefine "\(\s\|^\)\(abstract\s\+\|final\s\+\|private\s\+\|protected\s\+\|public\s\+\|static\s\+\)*function\(\s\+.*[;}]\)\@=" contained contains=phpSCKeyword
- syn match phpStructure "\(\s\|^\)\(abstract\s\+\|final\s\+\)*class\(\s\+.*}\)\@=" contained
- syn match phpStructure "\(\s\|^\)interface\(\s\+.*}\)\@=" contained
- syn match phpException "\(\s\|^\)try\(\s\+.*}\)\@=" contained
- syn match phpException "\(\s\|^\)catch\(\s\+.*}\)\@=" contained
-
- set foldmethod=syntax
- syn region phpFoldHtmlInside matchgroup=Delimiter start="?>" end="<?\(php\)\=" contained transparent contains=@htmlTop
- syn region phpFoldFunction matchgroup=Storageclass start="^\z(\s*\)\(abstract\s\+\|final\s\+\|private\s\+\|protected\s\+\|public\s\+\|static\s\+\)*function\s\([^};]*$\)\@="rs=e-9 matchgroup=Delimiter end="^\z1}" contains=@phpClFunction,phpFoldHtmlInside,phpFCKeyword contained transparent fold extend
- syn region phpFoldFunction matchgroup=Define start="^function\s\([^};]*$\)\@=" matchgroup=Delimiter end="^}" contains=@phpClFunction,phpFoldHtmlInside contained transparent fold extend
- syn region phpFoldClass matchgroup=Structure start="^\z(\s*\)\(abstract\s\+\|final\s\+\)*class\s\+\([^}]*$\)\@=" matchgroup=Delimiter end="^\z1}" contains=@phpClFunction,phpFoldFunction,phpSCKeyword contained transparent fold extend
- syn region phpFoldInterface matchgroup=Structure start="^\z(\s*\)interface\s\+\([^}]*$\)\@=" matchgroup=Delimiter end="^\z1}" contains=@phpClFunction,phpFoldFunction contained transparent fold extend
- syn region phpFoldCatch matchgroup=Exception start="^\z(\s*\)catch\s\+\([^}]*$\)\@=" matchgroup=Delimiter end="^\z1}" contains=@phpClFunction,phpFoldFunction contained transparent fold extend
- syn region phpFoldTry matchgroup=Exception start="^\z(\s*\)try\s\+\([^}]*$\)\@=" matchgroup=Delimiter end="^\z1}" contains=@phpClFunction,phpFoldFunction contained transparent fold extend
-elseif exists("php_folding") && php_folding==2
- syn keyword phpDefine function contained
- syn keyword phpStructure abstract class interface contained
- syn keyword phpException catch throw try contained
- syn keyword phpStorageClass final global private protected public static contained
+ syn keyword phpSCKeyword abstract final private protected public static contained
+ syn keyword phpFCKeyword function contained
+ syn keyword phpStorageClass global contained
+ syn match phpDefine "\(\s\|^\)\(abstract\s\+\|final\s\+\|private\s\+\|protected\s\+\|public\s\+\|static\s\+\)*function\(\s\+.*[;}]\)\@=" contained contains=phpSCKeyword
+ syn match phpStructure "\(\s\|^\)\(abstract\s\+\|final\s\+\)*\(trait\|class\)\(\s\+.*}\)\@=" contained
+ syn match phpStructure "\(\s\|^\)interface\(\s\+.*}\)\@=" contained
+ syn match phpException "\(\s\|^\)try\(\s\+.*}\)\@=" contained
+ syn match phpException "\(\s\|^\)catch\(\s\+.*}\)\@=" contained
+ syn match phpException "\(\s\|^\)finally\(\s\+.*}\)\@=" contained
set foldmethod=syntax
- syn region phpFoldHtmlInside matchgroup=Delimiter start="?>" end="<?\(php\)\=" contained transparent contains=@htmlTop
- syn region phpParent matchgroup=Delimiter start="{" end="}" contained contains=@phpClFunction,phpFoldHtmlInside transparent fold
+ syn region phpFoldHtmlInside matchgroup=Delimiter start="?>" end="<?\(php\)\=" contained transparent contains=@htmlTop
+ syn region phpFoldFunction matchgroup=Storageclass start="^\z(\s*\)\(abstract\s\+\|final\s\+\|private\s\+\|protected\s\+\|public\s\+\|static\s\+\)*function\s\([^};]*$\)\@="rs=e-9 matchgroup=Delimiter end="^\z1}" contains=@phpClFunction,phpFoldHtmlInside,phpFCKeyword contained transparent fold extend
+ syn region phpFoldFunction matchgroup=Define start="^function\s\([^};]*$\)\@=" matchgroup=Delimiter end="^}" contains=@phpClFunction,phpFoldHtmlInside contained transparent fold extend
+ syn region phpFoldClass matchgroup=Structure start="^\z(\s*\)\(abstract\s\+\|final\s\+\)*\(trait\|class\)\s\+\([^}]*$\)\@=" matchgroup=Delimiter end="^\z1}" contains=@phpClFunction,phpFoldFunction,phpSCKeyword contained transparent fold extend
+ syn region phpFoldInterface matchgroup=Structure start="^\z(\s*\)interface\s\+\([^}]*$\)\@=" matchgroup=Delimiter end="^\z1}" contains=@phpClFunction,phpFoldFunction contained transparent fold extend
+ syn region phpFoldCatch matchgroup=Exception start="^\z(\s*\)catch\s\+\([^}]*$\)\@=" matchgroup=Delimiter end="^\z1}" contains=@phpClFunction,phpFoldFunction contained transparent fold extend
+ syn region phpFoldTry matchgroup=Exception start="^\z(\s*\)try\s\+\([^}]*$\)\@=" matchgroup=Delimiter end="^\z1}" contains=@phpClFunction,phpFoldFunction contained transparent fold extend
else
- syn keyword phpDefine function contained
- syn keyword phpStructure abstract class interface contained
- syn keyword phpException catch throw try contained
- syn keyword phpStorageClass final global private protected public static contained
+ syn keyword phpDefine function contained
+ syn keyword phpStructure abstract class trait interface contained
+ syn keyword phpException catch throw try finally contained
+ syn keyword phpStorageClass final global private protected public static contained
+ if exists("php_folding") && php_folding==2
+ set foldmethod=syntax
+ syn region phpFoldHtmlInside matchgroup=Delimiter start="?>" end="<?\(php\)\=" contained transparent contains=@htmlTop
+ syn region phpParent matchgroup=Delimiter start="{" end="}" contained contains=@phpClFunction,phpFoldHtmlInside transparent fold
+ endif
endif
-" TODO: fold on "trait". For now just make sure it gets colored:
-syn keyword phpStructure trait
-
" ================================================================
" Peter Hodge - June 9, 2006
" Some of these changes (highlighting isset/unset/echo etc) are not so
@@ -515,11 +480,11 @@ syntax keyword phpStatement die contained
" Highlighting for PHP5's user-definable magic class methods
syntax keyword phpSpecialFunction containedin=ALLBUT,phpComment,phpStringDouble,phpStringSingle,phpIdentifier
- \ __construct __destruct __call __callStatic __get __set __isset __unset __sleep __wakeup __toString __invoke __set_state __clone __debugInfo
+ \ __construct __destruct __call __callStatic __get __set __isset __unset __sleep __wakeup __toString __invoke __set_state __clone __debugInfo
" Highlighting for __autoload slightly different from line above
syntax keyword phpSpecialFunction containedin=ALLBUT,phpComment,phpStringDouble,phpStringSingle,phpIdentifier,phpMethodsVar
\ __autoload
-highlight link phpSpecialFunction phpOperator
+hi def link phpSpecialFunction phpOperator
" Highlighting for PHP5's built-in classes
" - built-in classes harvested from get_declared_classes() in 5.1.4
@@ -542,42 +507,42 @@ syntax keyword phpClasses containedin=ALLBUT,phpComment,phpStringDouble,phpStrin
\ DOMCharacterData DOMAttr DOMElement DOMText DOMComment DOMTypeinfo DOMUserDataHandler
\ DOMLocator DOMConfiguration DOMCdataSection DOMDocumentType DOMNotation DOMEntity
\ DOMEntityReference DOMProcessingInstruction DOMStringExtend DOMXPath
-highlight link phpClasses phpFunctions
+hi def link phpClasses phpFunctions
" Highlighting for PHP5's built-in interfaces
" - built-in classes harvested from get_declared_interfaces() in 5.1.4
syntax keyword phpInterfaces containedin=ALLBUT,phpComment,phpStringDouble,phpStringSingle,phpIdentifier,phpMethodsVar
\ Iterator IteratorAggregate RecursiveIterator OuterIterator SeekableIterator
\ Traversable ArrayAccess Serializable Countable SplObserver SplSubject Reflector
-highlight link phpInterfaces phpConstant
+hi def link phpInterfaces phpConstant
" option defaults:
if ! exists('php_special_functions')
- let php_special_functions = 1
+ let php_special_functions = 1
endif
if ! exists('php_alt_comparisons')
- let php_alt_comparisons = 1
+ let php_alt_comparisons = 1
endif
if ! exists('php_alt_assignByReference')
- let php_alt_assignByReference = 1
+ let php_alt_assignByReference = 1
endif
if php_special_functions
- " Highlighting for PHP built-in functions which exhibit special behaviours
- " - isset()/unset()/empty() are not real functions.
- " - compact()/extract() directly manipulate variables in the local scope where
- " regular functions would not be able to.
- " - eval() is the token 'make_your_code_twice_as_complex()' function for PHP.
- " - user_error()/trigger_error() can be overloaded by set_error_handler and also
- " have the capacity to terminate your script when type is E_USER_ERROR.
- syntax keyword phpSpecialFunction containedin=ALLBUT,phpComment,phpStringDouble,phpStringSingle
+ " Highlighting for PHP built-in functions which exhibit special behaviours
+ " - isset()/unset()/empty() are not real functions.
+ " - compact()/extract() directly manipulate variables in the local scope where
+ " regular functions would not be able to.
+ " - eval() is the token 'make_your_code_twice_as_complex()' function for PHP.
+ " - user_error()/trigger_error() can be overloaded by set_error_handler and also
+ " have the capacity to terminate your script when type is E_USER_ERROR.
+ syntax keyword phpSpecialFunction containedin=ALLBUT,phpComment,phpStringDouble,phpStringSingle
\ user_error trigger_error isset unset eval extract compact empty
endif
if php_alt_assignByReference
- " special highlighting for '=&' operator
- syntax match phpAssignByRef /=\s*&/ containedin=ALLBUT,phpComment,phpStringDouble,phpStringSingle
- highlight link phpAssignByRef Type
+ " special highlighting for '=&' operator
+ syntax match phpAssignByRef /=\s*&/ containedin=ALLBUT,phpComment,phpStringDouble,phpStringSingle
+ hi def link phpAssignByRef Type
endif
if php_alt_comparisons
@@ -589,7 +554,7 @@ if php_alt_comparisons
syntax case ignore
syntax keyword phpComparison instanceof contained containedin=phpRegion
- hi link phpComparison Statement
+ hi def link phpComparison Statement
endif
" ================================================================
@@ -615,88 +580,78 @@ else
exec "syn sync fromstart"
endif
-syntax match phpDocCustomTags "@[a-zA-Z]*\(\s\+\|\n\|\r\)" containedin=phpComment
-syntax region phpDocTags start="{@\(example\|id\|internal\|inheritdoc\|link\|source\|toc\|tutorial\)" end="}" containedin=phpComment
-syntax match phpDocTags "@\(abstract\|access\|author\|category\|copyright\|deprecated\|example\|final\|global\|ignore\|internal\|license\|link\|method\|name\|package\|param\|property\|return\|see\|since\|static\|staticvar\|subpackage\|tutorial\|uses\|var\|version\|contributor\|modified\|filename\|description\|filesource\|throws\)\(\s\+\)\?" containedin=phpComment
-syntax match phpDocTodo "@\(todo\|fixme\|xxx\)\(\s\+\)\?" containedin=phpComment
+syntax match phpDocCustomTags "@[a-zA-Z]*\(\s\+\|\n\|\r\)" containedin=phpComment
+syntax region phpDocTags start="{@\(example\|id\|internal\|inheritdoc\|link\|source\|toc\|tutorial\)" end="}" containedin=phpComment
+syntax match phpDocTags "@\(abstract\|access\|author\|category\|copyright\|deprecated\|example\|final\|global\|ignore\|internal\|license\|link\|method\|name\|package\|param\|property\|return\|see\|since\|static\|staticvar\|subpackage\|tutorial\|uses\|var\|version\|contributor\|modified\|filename\|description\|filesource\|throws\)\(\s\+\)\?" containedin=phpComment
+syntax match phpDocTodo "@\(todo\|fixme\|xxx\)\(\s\+\)\?" containedin=phpComment
" 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_php_syn_inits")
- if version < 508
- let did_php_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink phpConstant Constant
- HiLink phpCoreConstant Constant
- HiLink phpComment Comment
- HiLink phpDocTags PreProc
- HiLink phpDocCustomTags Type
- HiLink phpException Exception
- HiLink phpBoolean Boolean
- HiLink phpStorageClass StorageClass
- HiLink phpSCKeyword StorageClass
- HiLink phpFCKeyword Define
- HiLink phpStructure Structure
- HiLink phpStringSingle String
- HiLink phpStringDouble String
- HiLink phpBacktick String
- HiLink phpNumber Number
- HiLink phpFloat Float
- HiLink phpMethods Function
- HiLink phpFunctions Function
- HiLink phpBaselib Function
- HiLink phpRepeat Repeat
- HiLink phpConditional Conditional
- HiLink phpLabel Label
- HiLink phpStatement Statement
- HiLink phpKeyword Statement
- HiLink phpType Type
- HiLink phpInclude Include
- HiLink phpDefine Define
- HiLink phpBackslashSequences SpecialChar
- HiLink phpBackslashDoubleQuote SpecialChar
- HiLink phpBackslashSingleQuote SpecialChar
- HiLink phpParent Delimiter
- HiLink phpBrackets Delimiter
- HiLink phpIdentifierConst Delimiter
- HiLink phpParentError Error
- HiLink phpOctalError Error
- HiLink phpInterpSimpleError Error
- HiLink phpInterpBogusDollarCurley Error
- HiLink phpInterpDollarCurly1 Error
- HiLink phpInterpDollarCurly2 Error
- HiLink phpInterpSimpleBracketsInner String
- HiLink phpInterpSimpleCurly Delimiter
- HiLink phpInterpVarname Identifier
- HiLink phpTodo Todo
- HiLink phpDocTodo Todo
- HiLink phpMemberSelector Structure
- if exists("php_oldStyle")
- hi phpIntVar guifg=Red ctermfg=DarkRed
- hi phpEnvVar guifg=Red ctermfg=DarkRed
- hi phpOperator guifg=SeaGreen ctermfg=DarkGreen
- hi phpVarSelector guifg=SeaGreen ctermfg=DarkGreen
- hi phpRelation guifg=SeaGreen ctermfg=DarkGreen
- hi phpIdentifier guifg=DarkGray ctermfg=Brown
- hi phpIdentifierSimply guifg=DarkGray ctermfg=Brown
- else
- HiLink phpIntVar Identifier
- HiLink phpEnvVar Identifier
- HiLink phpOperator Operator
- HiLink phpVarSelector Operator
- HiLink phpRelation Operator
- HiLink phpIdentifier Identifier
- HiLink phpIdentifierSimply Identifier
- endif
-
- delcommand HiLink
+" Only when an item doesn't have highlighting yet
+
+hi def link phpConstant Constant
+hi def link phpCoreConstant Constant
+hi def link phpComment Comment
+hi def link phpDocTags PreProc
+hi def link phpDocCustomTags Type
+hi def link phpException Exception
+hi def link phpBoolean Boolean
+hi def link phpStorageClass StorageClass
+hi def link phpSCKeyword StorageClass
+hi def link phpFCKeyword Define
+hi def link phpStructure Structure
+hi def link phpStringSingle String
+hi def link phpStringDouble String
+hi def link phpBacktick String
+hi def link phpNumber Number
+hi def link phpFloat Float
+hi def link phpMethods Function
+hi def link phpFunctions Function
+hi def link phpBaselib Function
+hi def link phpRepeat Repeat
+hi def link phpConditional Conditional
+hi def link phpLabel Label
+hi def link phpStatement Statement
+hi def link phpKeyword Statement
+hi def link phpType Type
+hi def link phpInclude Include
+hi def link phpDefine Define
+hi def link phpBackslashSequences SpecialChar
+hi def link phpBackslashDoubleQuote SpecialChar
+hi def link phpBackslashSingleQuote SpecialChar
+hi def link phpParent Delimiter
+hi def link phpBrackets Delimiter
+hi def link phpIdentifierConst Delimiter
+hi def link phpParentError Error
+hi def link phpOctalError Error
+hi def link phpInterpSimpleError Error
+hi def link phpInterpBogusDollarCurley Error
+hi def link phpInterpDollarCurly1 Error
+hi def link phpInterpDollarCurly2 Error
+hi def link phpInterpSimpleBracketsInner String
+hi def link phpInterpSimpleCurly Delimiter
+hi def link phpInterpVarname Identifier
+hi def link phpTodo Todo
+hi def link phpDocTodo Todo
+hi def link phpMemberSelector Structure
+if exists("php_oldStyle")
+ hi def phpIntVar guifg=Red ctermfg=DarkRed
+ hi def phpEnvVar guifg=Red ctermfg=DarkRed
+ hi def phpOperator guifg=SeaGreen ctermfg=DarkGreen
+ hi def phpVarSelector guifg=SeaGreen ctermfg=DarkGreen
+ hi def phpRelation guifg=SeaGreen ctermfg=DarkGreen
+ hi def phpIdentifier guifg=DarkGray ctermfg=Brown
+ hi def phpIdentifierSimply guifg=DarkGray ctermfg=Brown
+else
+ hi def link phpIntVar Identifier
+ hi def link phpEnvVar Identifier
+ hi def link phpOperator Operator
+ hi def link phpVarSelector Operator
+ hi def link phpRelation Operator
+ hi def link phpIdentifier Identifier
+ hi def link phpIdentifierSimply Identifier
endif
+
let b:current_syntax = "php"
if main_syntax == 'php'
diff --git a/runtime/syntax/pic.vim b/runtime/syntax/pic.vim
index adc964ea96..bcb01f4dbd 100644
--- a/runtime/syntax/pic.vim
+++ b/runtime/syntax/pic.vim
@@ -5,11 +5,8 @@
" URL: http://galeb.etf.bg.ac.yu/~alexa/vim/syntax/pic.vim
" Revision: 1.01
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -91,36 +88,26 @@ syn match picDirective "#\=DEFINE"
" 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_pic16f84_syntax_inits")
- if version < 508
- let did_pic16f84_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink picTodo Todo
- HiLink picComment Comment
- HiLink picDirective Statement
- HiLink picLabel Label
- HiLink picString String
-
- "HiLink picOpcode Keyword
- "HiLink picRegister Structure
- "HiLink picRegisterPart Special
-
- HiLink picASCII String
- HiLink picBinary Number
- HiLink picDecimal Number
- HiLink picHexadecimal Number
- HiLink picOctal Number
-
- HiLink picIdentifier Identifier
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link picTodo Todo
+hi def link picComment Comment
+hi def link picDirective Statement
+hi def link picLabel Label
+hi def link picString String
+
+"hi def link picOpcode Keyword
+"hi def link picRegister Structure
+"hi def link picRegisterPart Special
+
+hi def link picASCII String
+hi def link picBinary Number
+hi def link picDecimal Number
+hi def link picHexadecimal Number
+hi def link picOctal Number
+
+hi def link picIdentifier Identifier
+
let b:current_syntax = "pic"
diff --git a/runtime/syntax/pike.vim b/runtime/syntax/pike.vim
index efbafd5d82..ccd122c46c 100644
--- a/runtime/syntax/pike.vim
+++ b/runtime/syntax/pike.vim
@@ -3,11 +3,8 @@
" Maintainer: Francesco Chemolli <kinkie@kame.usr.dsi.unimi.it>
" Last Change: 2001 May 10
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -104,51 +101,41 @@ syn match pikeBitField ";\s*\I\i*\s*:\s*[1-9]"me=e-1
syn sync ccomment pikeComment minlines=10
" 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_pike_syntax_inits")
- if version < 508
- let did_pike_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink pikeLabel Label
- HiLink pikeUserLabel Label
- HiLink pikeConditional Conditional
- HiLink pikeRepeat Repeat
- HiLink pikeCharacter Character
- HiLink pikeSpecialCharacter pikeSpecial
- HiLink pikeNumber Number
- HiLink pikeFloat Float
- HiLink pikeOctalError pikeError
- HiLink pikeParenError pikeError
- HiLink pikeInParen pikeError
- HiLink pikeCommentError pikeError
- HiLink pikeOperator Operator
- HiLink pikeInclude Include
- HiLink pikePreProc PreProc
- HiLink pikeDefine Macro
- HiLink pikeIncluded pikeString
- HiLink pikeError Error
- HiLink pikeStatement Statement
- HiLink pikePreCondit PreCondit
- HiLink pikeType Type
- HiLink pikeCommentError pikeError
- HiLink pikeCommentString pikeString
- HiLink pikeComment2String pikeString
- HiLink pikeCommentSkip pikeComment
- HiLink pikeString String
- HiLink pikeComment Comment
- HiLink pikeSpecial SpecialChar
- HiLink pikeTodo Todo
- HiLink pikeException pikeStatement
- HiLink pikeCompoundType Constant
- "HiLink pikeIdentifier Identifier
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link pikeLabel Label
+hi def link pikeUserLabel Label
+hi def link pikeConditional Conditional
+hi def link pikeRepeat Repeat
+hi def link pikeCharacter Character
+hi def link pikeSpecialCharacter pikeSpecial
+hi def link pikeNumber Number
+hi def link pikeFloat Float
+hi def link pikeOctalError pikeError
+hi def link pikeParenError pikeError
+hi def link pikeInParen pikeError
+hi def link pikeCommentError pikeError
+hi def link pikeOperator Operator
+hi def link pikeInclude Include
+hi def link pikePreProc PreProc
+hi def link pikeDefine Macro
+hi def link pikeIncluded pikeString
+hi def link pikeError Error
+hi def link pikeStatement Statement
+hi def link pikePreCondit PreCondit
+hi def link pikeType Type
+hi def link pikeCommentError pikeError
+hi def link pikeCommentString pikeString
+hi def link pikeComment2String pikeString
+hi def link pikeCommentSkip pikeComment
+hi def link pikeString String
+hi def link pikeComment Comment
+hi def link pikeSpecial SpecialChar
+hi def link pikeTodo Todo
+hi def link pikeException pikeStatement
+hi def link pikeCompoundType Constant
+"hi def link pikeIdentifier Identifier
+
let b:current_syntax = "pike"
diff --git a/runtime/syntax/pilrc.vim b/runtime/syntax/pilrc.vim
index 86d5611589..f0e5f9bbc7 100644
--- a/runtime/syntax/pilrc.vim
+++ b/runtime/syntax/pilrc.vim
@@ -4,10 +4,8 @@
" Last change: 2003 May 11
" Available on: http://www.schau.com/pilrcvim/pilrc.vim
-" Remove any old syntax
-if version < 600
- syn clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -119,30 +117,20 @@ syn region pilrcInclude start="public class" end="}"
syn sync ccomment pilrcComment
-if version >= 508 || !exists("did_pilrc_syntax_inits")
- if version < 508
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- let did_pilrc_syntax_inits = 1
-
- " The default methods for highlighting
- HiLink pilrcKeyword Statement
- HiLink pilrcType Type
- HiLink pilrcError Error
- HiLink pilrcCountry SpecialChar
- HiLink pilrcLanguage SpecialChar
- HiLink pilrcString SpecialChar
- HiLink pilrcNumber Number
- HiLink pilrcComment Comment
- HiLink pilrcConstant Constant
- HiLink pilrcFunction Function
- HiLink pilrcInclude SpecialChar
- HiLink pilrcIdentifier Number
-
- delcommand HiLink
-endif
+
+" The default methods for highlighting
+hi def link pilrcKeyword Statement
+hi def link pilrcType Type
+hi def link pilrcError Error
+hi def link pilrcCountry SpecialChar
+hi def link pilrcLanguage SpecialChar
+hi def link pilrcString SpecialChar
+hi def link pilrcNumber Number
+hi def link pilrcComment Comment
+hi def link pilrcConstant Constant
+hi def link pilrcFunction Function
+hi def link pilrcInclude SpecialChar
+hi def link pilrcIdentifier Number
+
let b:current_syntax = "pilrc"
diff --git a/runtime/syntax/pine.vim b/runtime/syntax/pine.vim
index 4c64b9bbc7..aadf50be15 100644
--- a/runtime/syntax/pine.vim
+++ b/runtime/syntax/pine.vim
@@ -3,19 +3,12 @@
" Maintainer: David Pascoe <pascoedj@spamcop.net>
" Last Change: Thu Feb 27 10:18:48 WST 2003, update for pine 4.53
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
-if version >= 600
- setlocal iskeyword=@,48-57,_,128-167,224-235,-
-else
- set iskeyword=@,48-57,_,128-167,224-235,-
-endif
+setlocal iskeyword=@,48-57,_,128-167,224-235,-
syn keyword pineConfig addrbook-sort-rule
syn keyword pineConfig address-book
@@ -351,21 +344,11 @@ syn keyword pineOption vertical-folder-list
syn match pineComment "^#.*$"
" 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_pine_syn_inits")
- if version < 508
- let did_pine_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink pineConfig Type
- HiLink pineComment Comment
- HiLink pineOption Macro
- delcommand HiLink
-endif
+hi def link pineConfig Type
+hi def link pineComment Comment
+hi def link pineOption Macro
let b:current_syntax = "pine"
diff --git a/runtime/syntax/pinfo.vim b/runtime/syntax/pinfo.vim
index bf4126e59a..cb9e60ebb3 100644
--- a/runtime/syntax/pinfo.vim
+++ b/runtime/syntax/pinfo.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: pinfo(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2007-06-17
+" Language: pinfo(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2007-06-17
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/plaintex.vim b/runtime/syntax/plaintex.vim
index 7020c68e9b..5cb49a0bfc 100644
--- a/runtime/syntax/plaintex.vim
+++ b/runtime/syntax/plaintex.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: TeX (plain.tex format)
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-10-26
+" Language: TeX (plain.tex format)
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-10-26
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/pli.vim b/runtime/syntax/pli.vim
index f8d7e51cf3..a274cc40bf 100644
--- a/runtime/syntax/pli.vim
+++ b/runtime/syntax/pli.vim
@@ -3,9 +3,8 @@
" using keywords from http://www.kednos.com/pli/docs/reference_manual/6291pro_contents.html
" 2012-11-13 Alan Thompson
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -222,57 +221,46 @@ endif
syn sync minlines=10 maxlines=100
" Define the default highlighting.
-" For version 5.x and earlier, only when not done already.
-" For version 5.8 and later, only when and item doesn't have highlighting
-" yet.
-if version >= 508 || !exists("did_pl1_syn_inits")
- if version < 508
- let did_pl1_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when and item doesn't have highlighting yet.
- HiLink pl1Attribute Macro
- HiLink pl1BlockError Error
- HiLink pl1BooleanLiteral Boolean
- HiLink pl1CharLiteral Character
- HiLink pl1Comment Comment
- HiLink pl1CommentL Comment
- HiLink pl1Conditional Conditional
- HiLink pl1Error Error
- HiLink pl1ErrInBracket Error
- HiLink pl1ErrInBlock Error
- HiLink pl1ErrInParen Error
- HiLink pl1Exception Function
- HiLink pl1FloatLiteral Float
- HiLink pl1Function Function
- HiLink pl1Garbage Error
- HiLink pl1HostIdentifier Label
- HiLink pl1Identifier Normal
- HiLink pl1IntLiteral Number
- HiLink pl1Operator Operator
- HiLink pl1Paren Normal
- HiLink pl1ParenError Error
- HiLink pl1SpaceError Error
- HiLink pl1Pseudo PreProc
- HiLink pl1PreProc PreProc
- HiLink pl1PreProcSym PreProc
- HiLink pl1Keyword Keyword
- HiLink pl1Other Keyword
- HiLink pl1Repeat Repeat
- HiLink pl1Statement Keyword
- HiLink pl1Storage StorageClass
- HiLink pl1StringError Error
- HiLink pl1StringLiteral String
- HiLink pl1CommentString String
- HiLink pl1Comment2String String
- HiLink pl1Symbol Normal
- HiLink pl1Trigger Function
- HiLink pl1TypeAttribute StorageClass
- HiLink pl1Todo Todo
+hi def link pl1Attribute Macro
+hi def link pl1BlockError Error
+hi def link pl1BooleanLiteral Boolean
+hi def link pl1CharLiteral Character
+hi def link pl1Comment Comment
+hi def link pl1CommentL Comment
+hi def link pl1Conditional Conditional
+hi def link pl1Error Error
+hi def link pl1ErrInBracket Error
+hi def link pl1ErrInBlock Error
+hi def link pl1ErrInParen Error
+hi def link pl1Exception Function
+hi def link pl1FloatLiteral Float
+hi def link pl1Function Function
+hi def link pl1Garbage Error
+hi def link pl1HostIdentifier Label
+hi def link pl1Identifier Normal
+hi def link pl1IntLiteral Number
+hi def link pl1Operator Operator
+hi def link pl1Paren Normal
+hi def link pl1ParenError Error
+hi def link pl1SpaceError Error
+hi def link pl1Pseudo PreProc
+hi def link pl1PreProc PreProc
+hi def link pl1PreProcSym PreProc
+hi def link pl1Keyword Keyword
+hi def link pl1Other Keyword
+hi def link pl1Repeat Repeat
+hi def link pl1Statement Keyword
+hi def link pl1Storage StorageClass
+hi def link pl1StringError Error
+hi def link pl1StringLiteral String
+hi def link pl1CommentString String
+hi def link pl1Comment2String String
+hi def link pl1Symbol Normal
+hi def link pl1Trigger Function
+hi def link pl1TypeAttribute StorageClass
+hi def link pl1Todo Todo
- delcommand HiLink
-endif
let b:current_syntax = "pl1"
diff --git a/runtime/syntax/plm.vim b/runtime/syntax/plm.vim
index bf7c32fd1c..c6618adacb 100644
--- a/runtime/syntax/plm.vim
+++ b/runtime/syntax/plm.vim
@@ -3,11 +3,8 @@
" Maintainer: Philippe Coulonges <cphil@cphil.net>
" Last change: 2003 May 11
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -103,43 +100,33 @@ syn keyword plm386w16BuiltIn SETD SKIPD SKIPRD
syn sync lines=50
" 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_plm_syntax_inits")
- if version < 508
- let did_plm_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " The default methods for highlighting. Can be overridden later
-" HiLink plmLabel Label
-" HiLink plmConditional Conditional
-" HiLink plmRepeat Repeat
- HiLink plmTodo Todo
- HiLink plmNumber Number
- HiLink plmOperator Operator
- HiLink plmDelimiter Operator
- "HiLink plmShowTab Error
- "HiLink plmShowTabc Error
- HiLink plmIdentifier Identifier
- HiLink plmBuiltIn Statement
- HiLink plm286BuiltIn Statement
- HiLink plm386BuiltIn Statement
- HiLink plm386w16BuiltIn Statement
- HiLink plmReserved Statement
- HiLink plm386Reserved Statement
- HiLink plmPreProc PreProc
- HiLink plmCommentError plmError
- HiLink plmCommentString plmString
- HiLink plmComment2String plmString
- HiLink plmCommentSkip plmComment
- HiLink plmString String
- HiLink plmComment Comment
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+" The default methods for highlighting. Can be overridden later
+" hi def link plmLabel Label
+" hi def link plmConditional Conditional
+" hi def link plmRepeat Repeat
+hi def link plmTodo Todo
+hi def link plmNumber Number
+hi def link plmOperator Operator
+hi def link plmDelimiter Operator
+"hi def link plmShowTab Error
+"hi def link plmShowTabc Error
+hi def link plmIdentifier Identifier
+hi def link plmBuiltIn Statement
+hi def link plm286BuiltIn Statement
+hi def link plm386BuiltIn Statement
+hi def link plm386w16BuiltIn Statement
+hi def link plmReserved Statement
+hi def link plm386Reserved Statement
+hi def link plmPreProc PreProc
+hi def link plmCommentError plmError
+hi def link plmCommentString plmString
+hi def link plmComment2String plmString
+hi def link plmCommentSkip plmComment
+hi def link plmString String
+hi def link plmComment Comment
+
let b:current_syntax = "plm"
diff --git a/runtime/syntax/plp.vim b/runtime/syntax/plp.vim
index f59702d3b5..48dc4b249e 100644
--- a/runtime/syntax/plp.vim
+++ b/runtime/syntax/plp.vim
@@ -7,11 +7,8 @@
" Add to filetype.vim the following line (without quote sign):
" au BufNewFile,BufRead *.plp setf plp
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -19,14 +16,9 @@ if !exists("main_syntax")
let main_syntax = 'perlscript'
endif
-if version < 600
- so <sfile>:p:h/html.vim
- syn include @PLPperl <sfile>:p:h/perl.vim
-else
- runtime! syntax/html.vim
- unlet b:current_syntax
- syn include @PLPperl syntax/perl.vim
-endif
+runtime! syntax/html.vim
+unlet b:current_syntax
+syn include @PLPperl syntax/perl.vim
syn cluster htmlPreproc add=PLPperlblock
diff --git a/runtime/syntax/plsql.vim b/runtime/syntax/plsql.vim
index 6e513660f8..1868c9cb16 100644
--- a/runtime/syntax/plsql.vim
+++ b/runtime/syntax/plsql.vim
@@ -9,11 +9,8 @@
" Austin Ziegler (austin at halostatue dot ca)
" Added 8i+ features.
"
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -223,54 +220,44 @@ endif
syn sync minlines=10 maxlines=100
" Define the default highlighting.
-" For version 5.x 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_plsql_syn_inits")
- if version < 508
- let did_plsql_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet.
- HiLink plsqlAttribute Macro
- HiLink plsqlBlockError Error
- HiLink plsqlBooleanLiteral Boolean
- HiLink plsqlCharLiteral Character
- HiLink plsqlComment Comment
- HiLink plsqlCommentL Comment
- HiLink plsqlConditional Conditional
- HiLink plsqlError Error
- HiLink plsqlErrInBracket Error
- HiLink plsqlErrInBlock Error
- HiLink plsqlErrInParen Error
- HiLink plsqlException Function
- HiLink plsqlFloatLiteral Float
- HiLink plsqlFunction Function
- HiLink plsqlGarbage Error
- HiLink plsqlHostIdentifier Label
- HiLink plsqlIdentifier Normal
- HiLink plsqlIntLiteral Number
- HiLink plsqlOperator Operator
- HiLink plsqlParen Normal
- HiLink plsqlParenError Error
- HiLink plsqlSpaceError Error
- HiLink plsqlPseudo PreProc
- HiLink plsqlKeyword Keyword
- HiLink plsqlRepeat Repeat
- HiLink plsqlStorage StorageClass
- HiLink plsqlSQLKeyword Function
- HiLink plsqlStringError Error
- HiLink plsqlStringLiteral String
- HiLink plsqlCommentString String
- HiLink plsqlComment2String String
- HiLink plsqlSymbol Normal
- HiLink plsqlTrigger Function
- HiLink plsqlTypeAttribute StorageClass
- HiLink plsqlTodo Todo
+hi def link plsqlAttribute Macro
+hi def link plsqlBlockError Error
+hi def link plsqlBooleanLiteral Boolean
+hi def link plsqlCharLiteral Character
+hi def link plsqlComment Comment
+hi def link plsqlCommentL Comment
+hi def link plsqlConditional Conditional
+hi def link plsqlError Error
+hi def link plsqlErrInBracket Error
+hi def link plsqlErrInBlock Error
+hi def link plsqlErrInParen Error
+hi def link plsqlException Function
+hi def link plsqlFloatLiteral Float
+hi def link plsqlFunction Function
+hi def link plsqlGarbage Error
+hi def link plsqlHostIdentifier Label
+hi def link plsqlIdentifier Normal
+hi def link plsqlIntLiteral Number
+hi def link plsqlOperator Operator
+hi def link plsqlParen Normal
+hi def link plsqlParenError Error
+hi def link plsqlSpaceError Error
+hi def link plsqlPseudo PreProc
+hi def link plsqlKeyword Keyword
+hi def link plsqlRepeat Repeat
+hi def link plsqlStorage StorageClass
+hi def link plsqlSQLKeyword Function
+hi def link plsqlStringError Error
+hi def link plsqlStringLiteral String
+hi def link plsqlCommentString String
+hi def link plsqlComment2String String
+hi def link plsqlSymbol Normal
+hi def link plsqlTrigger Function
+hi def link plsqlTypeAttribute StorageClass
+hi def link plsqlTodo Todo
- delcommand HiLink
-endif
let b:current_syntax = "plsql"
diff --git a/runtime/syntax/po.vim b/runtime/syntax/po.vim
index 2ab13ac0b1..15d09b18bd 100644
--- a/runtime/syntax/po.vim
+++ b/runtime/syntax/po.vim
@@ -6,11 +6,8 @@
" Leonardo Fontenelle (Spell checking)
" Nam SungHyun <namsh@kldp.org> (Original maintainer)
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
let s:keepcpo= &cpo
@@ -82,61 +79,51 @@ syn match poAcceleratorStr contained "[^&_~][&_~]\(\a\|\d\)[^:]"ms=s+1,me=e-1 c
syn match poVariable contained "%\d"
" 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_po_syn_inits")
- if version < 508
- let did_po_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink poCommentSources PreProc
- HiLink poComment Comment
- HiLink poCommentAutomatic Comment
- HiLink poCommentTranslator Comment
- HiLink poCommentFlags Special
- HiLink poCommentDiff Comment
- HiLink poCopyrightUnset Todo
- HiLink poFlagFuzzy Todo
- HiLink poDiffOld Todo
- HiLink poDiffNew Special
- HiLink poObsolete Comment
-
- HiLink poStatementMsgid Statement
- HiLink poStatementMsgstr Statement
- HiLink poStatementMsgidplural Statement
- HiLink poStatementMsgCTxt Statement
- HiLink poPluralCaseN Constant
-
- HiLink poStringCTxt Comment
- HiLink poStringID String
- HiLink poStringSTR String
- HiLink poCommentKDE Comment
- HiLink poCommentKDEError Error
- HiLink poPluralKDE Comment
- HiLink poPluralKDEError Error
- HiLink poHeaderItem Identifier
- HiLink poHeaderUndefined Todo
- HiLink poKDEdesktopFile Identifier
-
- HiLink poHtml Identifier
- HiLink poHtmlNot String
- HiLink poHtmlTranslatables String
- HiLink poLineBreak String
-
- HiLink poFormat poSpecial
- HiLink poSpecial Special
- HiLink poAcceleratorId Special
- HiLink poAcceleratorStr Special
- HiLink poVariable Special
-
- HiLink poMsguniqError Special
- HiLink poMsguniqErrorMarkers Comment
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link poCommentSources PreProc
+hi def link poComment Comment
+hi def link poCommentAutomatic Comment
+hi def link poCommentTranslator Comment
+hi def link poCommentFlags Special
+hi def link poCommentDiff Comment
+hi def link poCopyrightUnset Todo
+hi def link poFlagFuzzy Todo
+hi def link poDiffOld Todo
+hi def link poDiffNew Special
+hi def link poObsolete Comment
+
+hi def link poStatementMsgid Statement
+hi def link poStatementMsgstr Statement
+hi def link poStatementMsgidplural Statement
+hi def link poStatementMsgCTxt Statement
+hi def link poPluralCaseN Constant
+
+hi def link poStringCTxt Comment
+hi def link poStringID String
+hi def link poStringSTR String
+hi def link poCommentKDE Comment
+hi def link poCommentKDEError Error
+hi def link poPluralKDE Comment
+hi def link poPluralKDEError Error
+hi def link poHeaderItem Identifier
+hi def link poHeaderUndefined Todo
+hi def link poKDEdesktopFile Identifier
+
+hi def link poHtml Identifier
+hi def link poHtmlNot String
+hi def link poHtmlTranslatables String
+hi def link poLineBreak String
+
+hi def link poFormat poSpecial
+hi def link poSpecial Special
+hi def link poAcceleratorId Special
+hi def link poAcceleratorStr Special
+hi def link poVariable Special
+
+hi def link poMsguniqError Special
+hi def link poMsguniqErrorMarkers Comment
+
let b:current_syntax = "po"
diff --git a/runtime/syntax/pod.vim b/runtime/syntax/pod.vim
index b9f2e0854f..604713260b 100644
--- a/runtime/syntax/pod.vim
+++ b/runtime/syntax/pod.vim
@@ -4,7 +4,7 @@
" Previously: Scott Bigham <dsb@killerbunnies.org>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
-" Last Change: 2013-07-21
+" Last Change: 2017-09-12
" To add embedded POD documentation highlighting to your syntax file, add
" the commands:
@@ -19,11 +19,8 @@
" Remove any old syntax stuff hanging around (this is suppressed
" automatically by ":syn include" if necessary).
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -67,28 +64,17 @@ syn match podEscape "\I\i*>"me=e-1 contained contains=@NoSpell
syn match podEscape2 "\d\+>"me=e-1 contained contains=@NoSpell
" 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_pod_syntax_inits")
- if version < 508
- let did_pod_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink podCommand Statement
- HiLink podCmdText String
- HiLink podOverIndent Number
- HiLink podForKeywd Identifier
- HiLink podFormat Identifier
- HiLink podVerbatimLine PreProc
- HiLink podSpecial Identifier
- HiLink podEscape String
- HiLink podEscape2 Number
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link podCommand Statement
+hi def link podCmdText String
+hi def link podOverIndent Number
+hi def link podForKeywd Identifier
+hi def link podFormat Identifier
+hi def link podVerbatimLine PreProc
+hi def link podSpecial Identifier
+hi def link podEscape String
+hi def link podEscape2 Number
if exists("perl_pod_spellcheck_headings")
" Spell-check headings
diff --git a/runtime/syntax/postscr.vim b/runtime/syntax/postscr.vim
index 8b051d33b3..d5dc9a22d6 100644
--- a/runtime/syntax/postscr.vim
+++ b/runtime/syntax/postscr.vim
@@ -13,11 +13,8 @@
" postscr_encodings - highlight encoding names (there are a lot)
" postscr_andornot_binary - highlight and, or, and not as binary operators (not logical)
"
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -25,11 +22,7 @@ endif
syn case match
" Keyword characters - all 7-bit ASCII bar PS delimiters and ws
-if version >= 600
- setlocal iskeyword=33-127,^(,^),^<,^>,^[,^],^{,^},^/,^%
-else
- set iskeyword=33-127,^(,^),^<,^>,^[,^],^{,^},^/,^%
-endif
+setlocal iskeyword=33-127,^(,^),^<,^>,^[,^],^{,^},^/,^%
" Yer trusty old TODO highlghter!
syn keyword postscrTodo contained TODO
@@ -730,68 +723,58 @@ if exists("postscr_ghostscript")
endif " GhostScript highlighting
" 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_postscr_syntax_inits")
- if version < 508
- let did_postscr_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink postscrComment Comment
-
- HiLink postscrConstant Constant
- HiLink postscrString String
- HiLink postscrASCIIString postscrString
- HiLink postscrHexString postscrString
- HiLink postscrASCII85String postscrString
- HiLink postscrNumber Number
- HiLink postscrInteger postscrNumber
- HiLink postscrHex postscrNumber
- HiLink postscrRadix postscrNumber
- HiLink postscrFloat Float
- HiLink postscrBoolean Boolean
-
- HiLink postscrIdentifier Identifier
- HiLink postscrProcedure Function
-
- HiLink postscrName Statement
- HiLink postscrConditional Conditional
- HiLink postscrRepeat Repeat
- HiLink postscrL2Repeat postscrRepeat
- HiLink postscrOperator Operator
- HiLink postscrL1Operator postscrOperator
- HiLink postscrL2Operator postscrOperator
- HiLink postscrL3Operator postscrOperator
- HiLink postscrMathOperator postscrOperator
- HiLink postscrLogicalOperator postscrOperator
- HiLink postscrBinaryOperator postscrOperator
-
- HiLink postscrDSCComment SpecialComment
- HiLink postscrSpecialChar SpecialChar
-
- HiLink postscrTodo Todo
-
- HiLink postscrError Error
- HiLink postscrSpecialCharError postscrError
- HiLink postscrASCII85CharError postscrError
- HiLink postscrHexCharError postscrError
- HiLink postscrASCIIStringError postscrError
- HiLink postscrIdentifierError postscrError
-
- if exists("postscr_ghostscript")
- HiLink postscrGSOperator postscrOperator
- HiLink postscrGSMathOperator postscrMathOperator
- else
- HiLink postscrGSOperator postscrError
- HiLink postscrGSMathOperator postscrError
- endif
-
- delcommand HiLink
+" Only when an item doesn't have highlighting yet
+
+hi def link postscrComment Comment
+
+hi def link postscrConstant Constant
+hi def link postscrString String
+hi def link postscrASCIIString postscrString
+hi def link postscrHexString postscrString
+hi def link postscrASCII85String postscrString
+hi def link postscrNumber Number
+hi def link postscrInteger postscrNumber
+hi def link postscrHex postscrNumber
+hi def link postscrRadix postscrNumber
+hi def link postscrFloat Float
+hi def link postscrBoolean Boolean
+
+hi def link postscrIdentifier Identifier
+hi def link postscrProcedure Function
+
+hi def link postscrName Statement
+hi def link postscrConditional Conditional
+hi def link postscrRepeat Repeat
+hi def link postscrL2Repeat postscrRepeat
+hi def link postscrOperator Operator
+hi def link postscrL1Operator postscrOperator
+hi def link postscrL2Operator postscrOperator
+hi def link postscrL3Operator postscrOperator
+hi def link postscrMathOperator postscrOperator
+hi def link postscrLogicalOperator postscrOperator
+hi def link postscrBinaryOperator postscrOperator
+
+hi def link postscrDSCComment SpecialComment
+hi def link postscrSpecialChar SpecialChar
+
+hi def link postscrTodo Todo
+
+hi def link postscrError Error
+hi def link postscrSpecialCharError postscrError
+hi def link postscrASCII85CharError postscrError
+hi def link postscrHexCharError postscrError
+hi def link postscrASCIIStringError postscrError
+hi def link postscrIdentifierError postscrError
+
+if exists("postscr_ghostscript")
+hi def link postscrGSOperator postscrOperator
+hi def link postscrGSMathOperator postscrMathOperator
+else
+hi def link postscrGSOperator postscrError
+hi def link postscrGSMathOperator postscrError
endif
+
let b:current_syntax = "postscr"
" vim: ts=8
diff --git a/runtime/syntax/pov.vim b/runtime/syntax/pov.vim
index 4c1fd9624a..8595bcb151 100644
--- a/runtime/syntax/pov.vim
+++ b/runtime/syntax/pov.vim
@@ -5,14 +5,8 @@
" Required Vim Version: 6.0
" Setup
-if version >= 600
- " Quit when a syntax file was already loaded
- if exists("b:current_syntax")
- finish
- endif
-else
- " Croak when an old Vim is sourcing us.
- echo "Sorry, but this syntax file relies on Vim 6 features. Either upgrade Vim or use a version of " . expand("<sfile>:t:r") . " syntax file appropriate for Vim " . version/100 . "." . version %100 . "."
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
diff --git a/runtime/syntax/povini.vim b/runtime/syntax/povini.vim
index 726fe1fc74..ac1f87875e 100644
--- a/runtime/syntax/povini.vim
+++ b/runtime/syntax/povini.vim
@@ -5,14 +5,8 @@
" Required Vim Version: 6.0
" Setup
-if version >= 600
- " Quit when a syntax file was already loaded
- if exists("b:current_syntax")
- finish
- endif
-else
- " Croak when an old Vim is sourcing us.
- echo "Sorry, but this syntax file relies on Vim 6 features. Either upgrade Vim or usea version of " . expand("<sfile>:t:r") . " syntax file appropriate for Vim " . version/100 . "." . version %100 . "."
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
diff --git a/runtime/syntax/ppd.vim b/runtime/syntax/ppd.vim
index 192f70c05d..da67e1f39f 100644
--- a/runtime/syntax/ppd.vim
+++ b/runtime/syntax/ppd.vim
@@ -3,11 +3,8 @@
" Maintainer: Bjoern Jacke <bjacke@suse.de>
" Last Change: 2001-10-06
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -21,27 +18,17 @@ syn match ppdGUIText "/.*:"
syn match ppdContraints "^*UIConstraints:"
" 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_ahdl_syn_inits")
- if version < 508
- let did_ahdl_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
-
- HiLink ppdComment Comment
- HiLink ppdDefine Statement
- HiLink ppdUI Function
- HiLink ppdUIGroup Function
- HiLink ppdDef String
- HiLink ppdGUIText Type
- HiLink ppdContraints Special
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+
+hi def link ppdComment Comment
+hi def link ppdDefine Statement
+hi def link ppdUI Function
+hi def link ppdUIGroup Function
+hi def link ppdDef String
+hi def link ppdGUIText Type
+hi def link ppdContraints Special
+
let b:current_syntax = "ppd"
diff --git a/runtime/syntax/ppwiz.vim b/runtime/syntax/ppwiz.vim
index d3d7b3a17a..514f8f36cc 100644
--- a/runtime/syntax/ppwiz.vim
+++ b/runtime/syntax/ppwiz.vim
@@ -6,11 +6,8 @@
" Filename: ppwiz.vim
" Remove old syntax stuff
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -63,33 +60,23 @@ syn match ppwizInteger "\d\+" contained
syn cluster ppwizArgVal add=ppwizString,ppwizInteger
" 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_ppwiz_syn_inits")
- if version < 508
- let did_ppwiz_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink ppwizSpecial Special
- HiLink ppwizEqual ppwizSpecial
- HiLink ppwizOperator ppwizSpecial
- HiLink ppwizComment Comment
- HiLink ppwizDef PreProc
- HiLink ppwizMacro Statement
- HiLink ppwizArg Identifier
- HiLink ppwizStdVar Identifier
- HiLink ppwizRexxVar Identifier
- HiLink ppwizString Constant
- HiLink ppwizInteger Constant
- HiLink ppwizCont ppwizSpecial
- HiLink ppwizError Error
- HiLink ppwizHTML Type
+hi def link ppwizSpecial Special
+hi def link ppwizEqual ppwizSpecial
+hi def link ppwizOperator ppwizSpecial
+hi def link ppwizComment Comment
+hi def link ppwizDef PreProc
+hi def link ppwizMacro Statement
+hi def link ppwizArg Identifier
+hi def link ppwizStdVar Identifier
+hi def link ppwizRexxVar Identifier
+hi def link ppwizString Constant
+hi def link ppwizInteger Constant
+hi def link ppwizCont ppwizSpecial
+hi def link ppwizError Error
+hi def link ppwizHTML Type
- delcommand HiLink
-endif
let b:current_syntax = "ppwiz"
diff --git a/runtime/syntax/prescribe.vim b/runtime/syntax/prescribe.vim
index d89ee35253..cd5ddbeedd 100644
--- a/runtime/syntax/prescribe.vim
+++ b/runtime/syntax/prescribe.vim
@@ -4,11 +4,8 @@
" URL: http://www.hampft.de/vim/syntax/prescribe.vim
" Last Change: 2005 Mar 04
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -44,25 +41,15 @@ syn region prescribeString start=+'+ end=+'+ skip=+\\'+
syn region prescribeComment start=+CMNT+ end=+;+
" 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_prescribe_syn_inits")
- if version < 508
- let did_prescribe_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink prescribeSpecial PreProc
- HiLink prescribeStatement Statement
- HiLink prescribeNumber Number
- HiLink prescribeCSETArg String
- HiLink prescribeFRPOArg String
- HiLink prescribeComment Comment
+hi def link prescribeSpecial PreProc
+hi def link prescribeStatement Statement
+hi def link prescribeNumber Number
+hi def link prescribeCSETArg String
+hi def link prescribeFRPOArg String
+hi def link prescribeComment Comment
- delcommand HiLink
-endif
let b:current_syntax = "prescribe"
diff --git a/runtime/syntax/procmail.vim b/runtime/syntax/procmail.vim
index c2ffa39883..93f50fe9ef 100644
--- a/runtime/syntax/procmail.vim
+++ b/runtime/syntax/procmail.vim
@@ -4,11 +4,8 @@
" Last Change: 2003 Aug 14
" Author: Sonia Heimann
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -33,34 +30,24 @@ syn region procmailActionNested start=+^\s*{+ end=+^\s*}+ contains=procmailRecip
syn region procmailRecipe start=+^\s*:.*$+ end=+^\s*\($\|}\)+me=e-1 contains=procmailComment,procmailCondition,procmailActionFolder,procmailActionVariable,procmailActionForward,procmailActionPipe,procmailActionNested,procmailVarDeclRegion
" 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_procmail_syntax_inits")
- if version < 508
- let did_procmail_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink procmailComment Comment
- HiLink procmailTodo Todo
+hi def link procmailComment Comment
+hi def link procmailTodo Todo
- HiLink procmailRecipe Statement
- "HiLink procmailCondition Statement
+hi def link procmailRecipe Statement
+"hi def link procmailCondition Statement
- HiLink procmailActionFolder procmailAction
- HiLink procmailActionVariable procmailAction
- HiLink procmailActionForward procmailAction
- HiLink procmailActionPipe procmailAction
- HiLink procmailAction Function
- HiLink procmailVar Identifier
- HiLink procmailVarDecl Identifier
+hi def link procmailActionFolder procmailAction
+hi def link procmailActionVariable procmailAction
+hi def link procmailActionForward procmailAction
+hi def link procmailActionPipe procmailAction
+hi def link procmailAction Function
+hi def link procmailVar Identifier
+hi def link procmailVarDecl Identifier
- HiLink procmailString String
+hi def link procmailString String
- delcommand HiLink
-endif
let b:current_syntax = "procmail"
diff --git a/runtime/syntax/progress.vim b/runtime/syntax/progress.vim
index 85a54a6505..5e7cfef299 100644
--- a/runtime/syntax/progress.vim
+++ b/runtime/syntax/progress.vim
@@ -11,22 +11,15 @@
" Version: 13
" Last Change: Nov 11 2012
-" For version 5.x: Clear all syntax item
-" For version 6.x: Quit when a syntax file was already loaded
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
-if version >= 600
- setlocal iskeyword=@,48-57,_,-,!,#,$,%
-else
- set iskeyword=@,48-57,_,-,!,#,$,%
-endif
+setlocal iskeyword=@,48-57,_,-,!,#,$,%
" The Progress editor doesn't cope with tabs very well.
set expandtab
@@ -282,44 +275,34 @@ syn keyword ProgressType char[acter] int[eger] int64 dec[imal] log[ical] da[te]
syn sync lines=800
" 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_progress_syntax_inits")
- if version < 508
- let did_progress_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- " The default methods for highlighting. Can be overridden later.
- HiLink ProgressByte Number
- HiLink ProgressCase Repeat
- HiLink ProgressComment Comment
- HiLink ProgressConditional Conditional
- HiLink ProgressDebug Debug
- HiLink ProgressDo Repeat
- HiLink ProgressEndError Error
- HiLink ProgressFor Repeat
- HiLink ProgressFunction Procedure
- HiLink ProgressIdentifier Identifier
- HiLink ProgressInclude Include
- HiLink ProgressMatrixDelimiter Identifier
- HiLink ProgressNumber Number
- HiLink ProgressOperator Operator
- HiLink ProgressPreProc PreProc
- HiLink ProgressProcedure Procedure
- HiLink ProgressQuote Delimiter
- HiLink ProgressRepeat Repeat
- HiLink ProgressReserved Statement
- HiLink ProgressSpaceError Error
- HiLink ProgressString String
- HiLink ProgressTodo Todo
- HiLink ProgressType Statement
- HiLink ProgressShowTab Error
+" The default methods for highlighting. Can be overridden later.
+hi def link ProgressByte Number
+hi def link ProgressCase Repeat
+hi def link ProgressComment Comment
+hi def link ProgressConditional Conditional
+hi def link ProgressDebug Debug
+hi def link ProgressDo Repeat
+hi def link ProgressEndError Error
+hi def link ProgressFor Repeat
+hi def link ProgressFunction Procedure
+hi def link ProgressIdentifier Identifier
+hi def link ProgressInclude Include
+hi def link ProgressMatrixDelimiter Identifier
+hi def link ProgressNumber Number
+hi def link ProgressOperator Operator
+hi def link ProgressPreProc PreProc
+hi def link ProgressProcedure Procedure
+hi def link ProgressQuote Delimiter
+hi def link ProgressRepeat Repeat
+hi def link ProgressReserved Statement
+hi def link ProgressSpaceError Error
+hi def link ProgressString String
+hi def link ProgressTodo Todo
+hi def link ProgressType Statement
+hi def link ProgressShowTab Error
- delcommand HiLink
-endif
let b:current_syntax = "progress"
diff --git a/runtime/syntax/prolog.vim b/runtime/syntax/prolog.vim
index f5f0e673ec..3b09bb3548 100644
--- a/runtime/syntax/prolog.vim
+++ b/runtime/syntax/prolog.vim
@@ -1,17 +1,17 @@
" Vim syntax file
" Language: PROLOG
-" Maintainers: Thomas Koehler <jean-luc@picard.franken.de>
-" Last Change: 2013 May 23
+" Maintainer: Thomas Koehler <jean-luc@picard.franken.de>
+" Please be aware: I'm often slow to answer email due to a high
+" non-computer related workload (sometimes 4-8 weeks)
+" Last Change: 2016 September 6
" URL: http://gott-gehabt.de/800_wer_wir_sind/thomas/Homepage/Computer/vim/syntax/prolog.vim
" There are two sets of highlighting in here:
" If the "prolog_highlighting_clean" variable exists, it is rather sparse.
" Otherwise you get more highlighting.
-" Quit when a syntax file was already loaded
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -78,46 +78,36 @@ syn sync maxlines=50
" 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_prolog_syn_inits")
- if version < 508
- let did_prolog_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " The default highlighting.
- HiLink prologComment Comment
- HiLink prologCComment Comment
- HiLink prologCharCode Special
-
- if exists ("prolog_highlighting_clean")
-
- HiLink prologKeyword Statement
- HiLink prologClauseHead Statement
- HiLink prologClause Normal
-
- else
-
- HiLink prologKeyword Keyword
- HiLink prologClauseHead Constant
- HiLink prologClause Normal
- HiLink prologQuestion PreProc
- HiLink prologSpecialCharacter Special
- HiLink prologNumber Number
- HiLink prologAsIs Normal
- HiLink prologCommentError Error
- HiLink prologAtom String
- HiLink prologString String
- HiLink prologOperator Operator
-
- endif
-
- delcommand HiLink
+" 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
index e812bc2749..add4514561 100644
--- a/runtime/syntax/promela.vim
+++ b/runtime/syntax/promela.vim
@@ -5,11 +5,8 @@
" Last Change: Thu Aug 7 21:22:48 CEST 2008
" Version: 0.5
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
diff --git a/runtime/syntax/proto.vim b/runtime/syntax/proto.vim
index 4d6a77e84a..4615e0ca0e 100644
--- a/runtime/syntax/proto.vim
+++ b/runtime/syntax/proto.vim
@@ -22,9 +22,8 @@
"
" http://code.google.com/p/protobuf/
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
diff --git a/runtime/syntax/protocols.vim b/runtime/syntax/protocols.vim
index 1dc109caf6..f31ca5a4b7 100644
--- a/runtime/syntax/protocols.vim
+++ b/runtime/syntax/protocols.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: protocols(5) - Internet protocols definition file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: protocols(5) - Internet protocols definition file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/psf.vim b/runtime/syntax/psf.vim
index 2b376f94cc..0971fe96bf 100644
--- a/runtime/syntax/psf.vim
+++ b/runtime/syntax/psf.vim
@@ -4,10 +4,8 @@
" Maintainer: Rex Barzee <rex_barzee@hp.com>
" Last change: 25 Apr 2001
-if version < 600
- " Remove any old syntax stuff hanging around
- syn clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -73,27 +71,17 @@ syn match psfComment "#.*$"
" 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_psf_syntax_inits")
- if version < 508
- let did_psf_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink psfObject Statement
- HiLink psfAttrib Type
- HiLink psfQuotString String
- HiLink psfObjTag Identifier
- HiLink psfAttAbbrev PreProc
- HiLink psfObjTags Identifier
-
- HiLink psfComment Comment
-
- delcommand HiLink
-endif
+" 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
diff --git a/runtime/syntax/ptcap.vim b/runtime/syntax/ptcap.vim
index 45590cf61b..1ebeb5227b 100644
--- a/runtime/syntax/ptcap.vim
+++ b/runtime/syntax/ptcap.vim
@@ -4,11 +4,8 @@
" URL: http://folk.uio.no/hakonrk/vim/syntax/ptcap.vim
" Last Change: 2001 May 15
-" For version 5.x: Clear all syntax items
-" For version 6.x: Quit when a syntax file was already loaded
-if version < 600
- syn clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -73,34 +70,25 @@ syn region ptcapField start=":" skip="[^\\]\(\\\\\)*\\$" end="[^\\]\(\\\\\)*
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
-if version >= 508 || !exists("did_ptcap_syntax_inits")
- if version < 508
- let did_ptcap_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink ptcapComment Comment
- HiLink 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 :-)
- HiLink ptcapEntry Todo
- HiLink ptcapError Error
- HiLink ptcapEscapedChar SpecialChar
- HiLink ptcapField Type
- HiLink ptcapLeadBlank NONE
- HiLink ptcapLineCont Special
- HiLink ptcapNames Label
- HiLink ptcapNumber NONE
- HiLink ptcapNumberError Error
- HiLink ptcapOperator Operator
- HiLink ptcapSpecialCap Type
- HiLink ptcapString NONE
-
- delcommand HiLink
-endif
+
+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"
diff --git a/runtime/syntax/purifylog.vim b/runtime/syntax/purifylog.vim
index 8bcfb4b006..2143d9fe28 100644
--- a/runtime/syntax/purifylog.vim
+++ b/runtime/syntax/purifylog.vim
@@ -3,11 +3,8 @@
" Maintainer: Gautam H. Mudunuri <gmudunur@informatica.com>
" Last Change: 2003 May 11
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -57,62 +54,52 @@ syn match purifyLogZPR "^ZPR:.*$"
syn match purifyLogZPW "^ZPW:.*$"
" 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_purifyLog_syntax_inits")
- if version < 508
- let did_purifyLog_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink purifyLogFIU purifyLogInformational
- HiLink purifyLogMAF purifyLogInformational
- HiLink purifyLogMIU purifyLogInformational
- HiLink purifyLogSIG purifyLogInformational
- HiLink purifyLogWPF purifyLogInformational
- HiLink purifyLogWPM purifyLogInformational
- HiLink purifyLogWPN purifyLogInformational
- HiLink purifyLogWPR purifyLogInformational
- HiLink purifyLogWPW purifyLogInformational
- HiLink purifyLogWPX purifyLogInformational
+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
- HiLink purifyLogABR purifyLogWarning
- HiLink purifyLogBSR purifyLogWarning
- HiLink purifyLogBSW purifyLogWarning
- HiLink purifyLogFMR purifyLogWarning
- HiLink purifyLogMLK purifyLogWarning
- HiLink purifyLogMSE purifyLogWarning
- HiLink purifyLogPAR purifyLogWarning
- HiLink purifyLogPLK purifyLogWarning
- HiLink purifyLogSBR purifyLogWarning
- HiLink purifyLogSOF purifyLogWarning
- HiLink purifyLogUMC purifyLogWarning
- HiLink purifyLogUMR purifyLogWarning
+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
- HiLink purifyLogABW purifyLogCorrupting
- HiLink purifyLogBRK purifyLogCorrupting
- HiLink purifyLogFMW purifyLogCorrupting
- HiLink purifyLogFNH purifyLogCorrupting
- HiLink purifyLogFUM purifyLogCorrupting
- HiLink purifyLogMRE purifyLogCorrupting
- HiLink purifyLogSBW purifyLogCorrupting
+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
- HiLink purifyLogCOR purifyLogFatal
- HiLink purifyLogNPR purifyLogFatal
- HiLink purifyLogNPW purifyLogFatal
- HiLink purifyLogZPR purifyLogFatal
- HiLink purifyLogZPW purifyLogFatal
+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
- HiLink purifyLogHeader Comment
- HiLink purifyLogInformational PreProc
- HiLink purifyLogWarning Type
- HiLink purifyLogCorrupting Error
- HiLink purifyLogFatal Error
+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
- delcommand HiLink
-endif
let b:current_syntax = "purifylog"
diff --git a/runtime/syntax/pyrex.vim b/runtime/syntax/pyrex.vim
index 7dc9b955b0..b860658975 100644
--- a/runtime/syntax/pyrex.vim
+++ b/runtime/syntax/pyrex.vim
@@ -4,21 +4,14 @@
" URL: http://marcobari.altervista.org/pyrex_vim.html
" Last Change: 2009 Nov 09
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
" Read the Python syntax to start with
-if version < 600
- so <sfile>:p:h/python.vim
-else
- runtime! syntax/python.vim
- unlet b:current_syntax
-endif
+runtime! syntax/python.vim
+unlet b:current_syntax
" Pyrex extentions
syn keyword pyrexStatement cdef typedef ctypedef sizeof
@@ -44,24 +37,15 @@ syn match pythonInclude "from"
syn match pyrexForFrom "\(for[^:]*\)\@<=from"
" Default highlighting
-if version >= 508 || !exists("did_pyrex_syntax_inits")
- if version < 508
- let did_pyrex_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink pyrexStatement Statement
- HiLink pyrexType Type
- HiLink pyrexStructure Structure
- HiLink pyrexInclude PreCondit
- HiLink pyrexAccess pyrexStatement
- if exists("python_highlight_builtins") || exists("pyrex_highlight_builtins")
- HiLink pyrexBuiltin Function
- endif
- HiLink pyrexForFrom Statement
-
- delcommand HiLink
+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
index fa42b3e2d2..5aec2fe3d2 100644
--- a/runtime/syntax/python.vim
+++ b/runtime/syntax/python.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Python
" Maintainer: Zvezdan Petkovic <zpetkovic@acm.org>
-" Last Change: 2016 Jul 21
+" Last Change: 2016 Oct 29
" Credits: Neil Schemenauer <nas@python.ca>
" Dmitry Vasiliev
"
@@ -36,11 +36,8 @@
" let python_highlight_all = 1
"
-" 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")
+" quit when a syntax file was already loaded.
+if exists("b:current_syntax")
finish
endif
@@ -49,6 +46,29 @@ endif
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,
@@ -84,14 +104,31 @@ syn keyword pythonInclude from import
syn keyword pythonAsync async await
" Decorators (new in Python 2.4)
-syn match pythonDecorator "@" display nextgroup=pythonFunction skipwhite
-" The zero-length non-grouping match before the function name is
-" extremely important in pythonFunction. Without it, everything is
-" interpreted as a function inside the contained environment of
-" doctests.
" A dot must be allowed because of @MyClass.myfunc decorators.
-syn match pythonFunction
- \ "\%(\%(def\s\|class\s\|@\)\s*\)\@<=\h\%(\w\|\.\)*" contained
+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
@@ -118,25 +155,6 @@ syn match pythonEscape "\%(\\u\x\{4}\|\\U\x\{8}\)" contained
syn match pythonEscape "\\N{\a\+\%(\s\a\+\)*}" contained
syn match pythonEscape "\\$"
-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
-
" 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
@@ -200,7 +218,9 @@ if !exists("python_no_builtin_highlight")
" 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 transparent
+ 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.
@@ -262,7 +282,7 @@ 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,@Spell
+ \ contained contains=ALLBUT,pythonDoctest,pythonFunction,@Spell
syn region pythonDoctestValue
\ start=+^\s*\%(>>>\s\|\.\.\.\s\|"""\|'''\)\@!\S\++ end="$"
\ contained
@@ -274,51 +294,41 @@ if !exists("python_no_doctest_highlight")
endif
" Sync at the beginning of class, function, or method definition.
-syn sync match pythonSync grouphere NONE "^\s*\%(def\|class\)\s\+\h\w*\s*("
-
-if version >= 508 || !exists("did_python_syn_inits")
- if version <= 508
- let did_python_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+syn sync match pythonSync grouphere NONE "^\%(def\|class\)\s\+\h\w*\s*[(:]"
- " The default highlight links. Can be overridden later.
- HiLink pythonStatement Statement
- HiLink pythonConditional Conditional
- HiLink pythonRepeat Repeat
- HiLink pythonOperator Operator
- HiLink pythonException Exception
- HiLink pythonInclude Include
- HiLink pythonAsync Statement
- HiLink pythonDecorator Define
- HiLink pythonFunction Function
- HiLink pythonComment Comment
- HiLink pythonTodo Todo
- HiLink pythonString String
- HiLink pythonRawString String
- HiLink pythonQuotes String
- HiLink pythonTripleQuotes pythonQuotes
- HiLink pythonEscape Special
- if !exists("python_no_number_highlight")
- HiLink pythonNumber Number
- endif
- if !exists("python_no_builtin_highlight")
- HiLink pythonBuiltin Function
- endif
- if !exists("python_no_exception_highlight")
- HiLink pythonExceptions Structure
- endif
- if exists("python_space_error_highlight")
- HiLink pythonSpaceError Error
- endif
- if !exists("python_no_doctest_highlight")
- HiLink pythonDoctest Special
- HiLink pythonDoctestValue Define
- endif
-
- delcommand HiLink
+" 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"
diff --git a/runtime/syntax/quake.vim b/runtime/syntax/quake.vim
index 3a9b68d6f3..7db53106ad 100644
--- a/runtime/syntax/quake.vim
+++ b/runtime/syntax/quake.vim
@@ -1,11 +1,11 @@
" Vim syntax file
-" Language: Quake[1-3] configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2007-06-17
+" Language: Quake[1-3] configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" 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
+" Credits: Tomasz Kalkosinski wrote the original quake3Colors stuff
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/r.vim b/runtime/syntax/r.vim
index d96bf96acb..45ff498b3b 100644
--- a/runtime/syntax/r.vim
+++ b/runtime/syntax/r.vim
@@ -5,10 +5,10 @@
" Tom Payne <tom@tompayne.org>
" Contributor: Johannes Ranke <jranke@uni-bremen.de>
" Homepage: https://github.com/jalvesaq/R-Vim-runtime
-" Last Change: Thu Mar 10, 2016 12:26PM
+" Last Change: Sat Apr 08, 2017 07:01PM
" Filenames: *.R *.r *.Rhistory *.Rt
"
-" NOTE: The highlighting of R functions is defined in
+" NOTE: The highlighting of R functions might be defined in
" runtime files created by a filetype plugin, if installed.
"
" CONFIGURATION:
@@ -18,7 +18,7 @@
"
" ROxygen highlighting can be turned off by
"
-" let r_hl_roxygen = 0
+" let r_syntax_hl_roxygen = 0
"
" Some lines of code were borrowed from Zhuojun Chen.
@@ -26,13 +26,25 @@ if exists("b:current_syntax")
finish
endif
-setlocal iskeyword=@,48-57,_,.
+if has("patch-7.4.1142")
+ syn iskeyword @,48-57,_,.
+else
+ setlocal iskeyword=@,48-57,_,.
+endif
+
+" 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
-if !exists("g:r_hl_roxygen")
- let g:r_hl_roxygen = 1
+if !exists("g:r_syntax_hl_roxygen")
+ let g:r_syntax_hl_roxygen = 1
endif
syn case match
@@ -42,19 +54,106 @@ syn match rCommentTodo contained "\(BUG\|FIXME\|NOTE\|TODO\):"
syn match rComment contains=@Spell,rCommentTodo,rOBlock "#.*"
" Roxygen
-if g:r_hl_roxygen
- syn region rOBlock start="^\s*\n#\{1,2}' " start="\%^#\{1,2}' " end="^\(#\{1,2}'\)\@!" contains=rOTitle,rOKeyword,rOExamples,@Spell keepend
- syn region rOTitle start="^\s*\n#\{1,2}' " start="\%^#\{1,2}' " end="^\(#\{1,2}'\s*$\)\@=" contained contains=rOCommentKey
- syn match rOCommentKey "#\{1,2}'" containedin=rOTitle contained
-
- syn region rOExamples start="^#\{1,2}' @examples.*"rs=e+1,hs=e+1 end="^\(#\{1,2}' @.*\)\@=" end="^\(#\{1,2}'\)\@!" contained contains=rOKeyword
-
- syn match rOKeyword contained "@\(param\|return\|name\|rdname\|examples\|example\|include\|docType\)"
- syn match rOKeyword contained "@\(S3method\|TODO\|aliases\|alias\|assignee\|author\|callGraphDepth\|callGraph\)"
- syn match rOKeyword contained "@\(callGraphPrimitives\|concept\|exportClass\|exportMethod\|exportPattern\|export\|formals\)"
- syn match rOKeyword contained "@\(format\|importClassesFrom\|importFrom\|importMethodsFrom\|import\|keywords\|useDynLib\)"
- syn match rOKeyword contained "@\(method\|noRd\|note\|references\|seealso\|setClass\|slot\|source\|title\|usage\)"
- syn match rOKeyword contained "@\(family\|template\|templateVar\|description\|details\|inheritParams\|field\)"
+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 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.
+
+ " 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
+ " overriden later by the definitions of rOBlock.
+ syn match rOTitleBlock "\%^\(\s*#\{1,2}' .*\n\)\{1,}" contains=rOCommentKey,rOTitleTag
+ syn match rOTitleBlock "^\s*\n\(\s*#\{1,2}' .*\n\)\{1,}" contains=rOCommentKey,rOTitleTag
+
+ " 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*#\{1,2}' .*\n\)\{-1,}\s*#\{1,2}'\s*$" end="^\s*\(#\{1,2}'\)\@!" contains=rOTitle,rOTag,rOExamples,@Spell keepend fold
+ 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*#\{1,2}' .*\n\)\{-}\s*#\{1,2}' @\(@\)\@!" end="^\s*\(#\{1,2}'\)\@!" contains=rOTitle,rOTag,rOExamples,@Spell keepend fold
+ 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*#\{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}' @rdname" end="^\s*\(#\{1,2}'\)\@!" contains=rOTag,rOExamples,@Spell keepend fold
+ syn region rOBlockNoTitle start="\%^\(\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
+ 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
+
+ " 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*#\{1,2}' .*\n\)\{-1,}\s*#\{1,2}'\s*$" contained contains=rOCommentKey,rOTitleTag
+ syn match rOTitle "^\s*\n\(\s*#\{1,2}' .*\n\)\{-1,}\s*#\{1,2}'\s*$" contained contains=rOCommentKey,rOTitleTag
+ syn match rOTitleTag contained "@title"
+
+ syn match rOCommentKey "#\{1,2}'" contained
+ syn region rOExamples start="^#\{1,2}' @examples.*"rs=e+1,hs=e+1 end="^\(#\{1,2}' @.*\)\@=" end="^\(#\{1,2}'\)\@!" contained contains=rOTag fold
+
+ " rOTag list generated from the lists 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 "@include"
endif
@@ -168,14 +267,28 @@ syn match rBraceError "[)}]" contained
syn match rCurlyError "[)\]]" contained
syn match rParenError "[\]}]" contained
-if !exists("g:R_hi_fun")
- let g:R_hi_fun = 1
+" 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
-if g:R_hi_fun
- " Nvim-R:
- runtime R/functions.vim
- " Vim-R-plugin:
- runtime r-plugin/functions.vim
+
+" 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
+ if !exists("g:R_hi_fun")
+ let g:R_hi_fun = 1
+ endif
+ if g:R_hi_fun
+ " Nvim-R:
+ runtime R/functions.vim
+ endif
endif
syn match rDollar display contained "\$"
@@ -207,8 +320,8 @@ if &filetype == "rhelp"
syn match rhSection "\\dontrun\>"
endif
-if exists("r_syn_minlines")
- exe "syn sync minlines=" . r_syn_minlines
+if exists("r_syntax_minlines")
+ exe "syn sync minlines=" . r_syntax_minlines
else
syn sync minlines=40
endif
@@ -245,15 +358,17 @@ hi def link rStatement Statement
hi def link rString String
hi def link rStrError Error
hi def link rType Type
-if g:r_hl_roxygen
- hi def link rOKeyword Title
- hi def link rOBlock Comment
+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 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
index d412227cbd..2d4c176eb7 100644
--- a/runtime/syntax/racc.vim
+++ b/runtime/syntax/racc.vim
@@ -1,7 +1,7 @@
" Vim default file
-" Language: Racc input file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-06-22
+" Language: Racc input file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-06-22
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/radiance.vim b/runtime/syntax/radiance.vim
index 461b708f0e..c49e339a28 100644
--- a/runtime/syntax/radiance.vim
+++ b/runtime/syntax/radiance.vim
@@ -18,20 +18,13 @@
" comments, external command names and the null-modifier "void".
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
" all printing characters except '#' and '!' are valid in names.
-if version >= 600
- setlocal iskeyword=\",$-~
-else
- set iskeyword=\",$-~
-endif
+setlocal iskeyword=\",$-~
" The null-modifier
syn keyword radianceKeyword void
@@ -130,29 +123,19 @@ syn keyword radianceTodo contained TODO XXX
syn match radianceComment "#.*$" contains=radianceTodo
" 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_radiance_syn_inits")
- if version < 508
- let did_radiance_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink radianceKeyword Keyword
- HiLink radianceExtraType Type
- HiLink radianceSurfType Type
- HiLink radianceLightType Type
- HiLink radianceMatType Type
- HiLink radiancePatType Type
- HiLink radianceTexType Type
- HiLink radianceMixType Type
- HiLink radianceComment Comment
- HiLink radianceCommand Function
- HiLink radianceID String
- HiLink radianceTodo Todo
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/ratpoison.vim b/runtime/syntax/ratpoison.vim
index 9fc59bec0d..af8676c43d 100644
--- a/runtime/syntax/ratpoison.vim
+++ b/runtime/syntax/ratpoison.vim
@@ -5,11 +5,8 @@
" Last Change: 2011 Apr 11
" Previous Maintainer: Doug Kearns <djkea2@gus.gscit.monash.edu.au>
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -247,33 +244,23 @@ syn match ratpoisonVoidCommand "^\s*\zsvsplit\ze\s*$"
syn match ratpoisonVoidCommand "^\s*\zswindows\ze\s*$"
" 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_ratpoison_syn_inits")
- if version < 508
- let did_ratpoison_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink ratpoisonBooleanArg Boolean
- HiLink ratpoisonCommandArg Keyword
- HiLink ratpoisonComment Comment
- HiLink ratpoisonDefCommand Identifier
- HiLink ratpoisonGravityArg Constant
- HiLink ratpoisonKeySeqArg Special
- HiLink ratpoisonNumberArg Number
- HiLink ratpoisonSetArg Keyword
- HiLink ratpoisonStringCommand Identifier
- HiLink ratpoisonTodo Todo
- HiLink ratpoisonVoidCommand Identifier
- HiLink ratpoisonWinFmtArg Special
- HiLink ratpoisonWinNameArg Constant
- HiLink ratpoisonWinListArg Constant
+hi def link ratpoisonBooleanArg Boolean
+hi def link ratpoisonCommandArg Keyword
+hi def link ratpoisonComment Comment
+hi def link ratpoisonDefCommand Identifier
+hi def link ratpoisonGravityArg Constant
+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
- delcommand HiLink
-endif
let b:current_syntax = "ratpoison"
diff --git a/runtime/syntax/rc.vim b/runtime/syntax/rc.vim
index a2d5824d3e..4c6856bc83 100644
--- a/runtime/syntax/rc.vim
+++ b/runtime/syntax/rc.vim
@@ -8,11 +8,8 @@
" This file is based on the c.vim
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -148,55 +145,45 @@ syn region rcPreProc start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|erro
syn sync ccomment rcComment minlines=10
" 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_rc_syntax_inits")
- if version < 508
- let did_rc_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink rcCharacter Character
- HiLink rcSpecialCharacter rcSpecial
- HiLink rcNumber Number
- HiLink rcFloat Float
- HiLink rcOctalError rcError
- HiLink rcParenError rcError
- HiLink rcInParen rcError
- HiLink rcCommentError rcError
- HiLink rcInclude Include
- HiLink rcPreProc PreProc
- HiLink rcDefine Macro
- HiLink rcIncluded rcString
- HiLink rcError Error
- HiLink rcPreCondit PreCondit
- HiLink rcCommentString rcString
- HiLink rcComment2String rcString
- HiLink rcCommentSkip rcComment
- HiLink rcString String
- HiLink rcComment Comment
- HiLink rcSpecial SpecialChar
- HiLink rcTodo Todo
-
- HiLink rcAttribute rcCommonAttribute
- HiLink rcStdId rcStatement
- HiLink rcStatement Statement
-
- " Default color overrides
- hi def rcLanguage term=reverse ctermbg=Red ctermfg=Yellow guibg=Red guifg=Yellow
- hi def rcMainObject term=underline ctermfg=Blue guifg=Blue
- hi def rcSubObject ctermfg=Green guifg=Green
- hi def rcCaptionParam term=underline ctermfg=DarkGreen guifg=Green
- hi def rcParam ctermfg=DarkGreen guifg=DarkGreen
- hi def rcStatement ctermfg=DarkGreen guifg=DarkGreen
- hi def rcCommonAttribute ctermfg=Brown guifg=Brown
-
- "HiLink rcIdentifier Identifier
-
- delcommand HiLink
-endif
+" 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
+
+" Default color overrides
+hi def rcLanguage term=reverse ctermbg=Red ctermfg=Yellow guibg=Red guifg=Yellow
+hi def rcMainObject term=underline ctermfg=Blue guifg=Blue
+hi def rcSubObject ctermfg=Green guifg=Green
+hi def rcCaptionParam term=underline ctermfg=DarkGreen guifg=Green
+hi def rcParam ctermfg=DarkGreen guifg=DarkGreen
+hi def rcStatement ctermfg=DarkGreen guifg=DarkGreen
+hi def rcCommonAttribute ctermfg=Brown guifg=Brown
+
+"hi def link rcIdentifier Identifier
+
let b:current_syntax = "rc"
diff --git a/runtime/syntax/rcs.vim b/runtime/syntax/rcs.vim
index e45d5fdbb6..5a34802ada 100644
--- a/runtime/syntax/rcs.vim
+++ b/runtime/syntax/rcs.vim
@@ -9,11 +9,8 @@
" Options:
" rcs_folding = 1 For folding strings
-" 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")
+" quit when a syntax file was already loaded.
+if exists("b:current_syntax")
finish
endif
@@ -52,25 +49,15 @@ else
endif
" 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_rcs_syn_inits")
- if version <= 508
- let did_rcs_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet.
- HiLink rcsKeyword Keyword
- HiLink rcsNumber Identifier
- HiLink rcsString String
- HiLink rcsTextStr String
- HiLink rcsSpecial Special
- HiLink rcsDiffLines Special
- HiLink rcsEOFError Error
+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
- delcommand HiLink
-endif
let b:current_syntax = "rcs"
diff --git a/runtime/syntax/rcslog.vim b/runtime/syntax/rcslog.vim
index acacfa124b..18f4593c77 100644
--- a/runtime/syntax/rcslog.vim
+++ b/runtime/syntax/rcslog.vim
@@ -3,11 +3,8 @@
" Maintainer: Joe Karthauser <joe@freebsd.org>
" Last Change: 2001 May 09
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -16,22 +13,12 @@ syn match rcslogFile "^RCS file:.*"
syn match rcslogDate "^date: .*$"
" 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_rcslog_syntax_inits")
- if version < 508
- let did_rcslog_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink rcslogFile Type
- HiLink rcslogRevision Constant
- HiLink rcslogDate Identifier
+hi def link rcslogFile Type
+hi def link rcslogRevision Constant
+hi def link rcslogDate Identifier
- delcommand HiLink
-endif
let b:current_syntax = "rcslog"
diff --git a/runtime/syntax/readline.vim b/runtime/syntax/readline.vim
index 091722e5e5..b50b9c60e5 100644
--- a/runtime/syntax/readline.vim
+++ b/runtime/syntax/readline.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: readline(3) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2012-04-25
+" Language: readline(3) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2017-06-25
" readline_has_bash - if defined add support for bash specific
" settings/functions
@@ -119,6 +119,7 @@ syn keyword readlineVariable contained
\ nextgroup=readlineBoolean
\ skipwhite
\ bind-tty-special-chars
+ \ colored-stats
\ completion-ignore-case
\ completion-map-case
\ convert-meta
@@ -142,6 +143,7 @@ syn keyword readlineVariable contained
\ revert-all-at-newline
\ show-all-if-ambiguous
\ show-all-if-unmodified
+ \ show-mode-in-prompt
\ skip-completed-text
\ visible-stats
@@ -158,6 +160,7 @@ syn keyword readlineVariable contained
\ completion-prefix-display-length
\ completion-query-items
\ history-size
+ \ keyseq-timeout
syn keyword readlineVariable contained
\ nextgroup=readlineEditingMode
diff --git a/runtime/syntax/rebol.vim b/runtime/syntax/rebol.vim
index e6395758f3..a5d50c4ab1 100644
--- a/runtime/syntax/rebol.vim
+++ b/runtime/syntax/rebol.vim
@@ -6,11 +6,8 @@
" URL: http://www.eandem.co.uk/mrw/vim
"
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -18,11 +15,7 @@ endif
syn case ignore
" As per current users documentation
-if version < 600
- set isk=@,48-57,?,!,.,',+,-,*,&,\|,=,_,~
-else
- setlocal isk=@,48-57,?,!,.,',+,-,*,&,\|,=,_,~
-endif
+setlocal isk=@,48-57,?,!,.,',+,-,*,&,\|,=,_,~
" Yer TODO highlighter
syn keyword rebolTodo contained TODO
@@ -145,65 +138,55 @@ syn keyword rebolConstant none
" 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_rebol_syntax_inits")
- if version < 508
- let did_rebol_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" 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
- HiLink rebolTodo Todo
-
- HiLink rebolStatement Statement
- HiLink rebolLabel Label
- HiLink rebolConditional Conditional
- HiLink rebolRepeat Repeat
-
- HiLink rebolOperator Operator
- HiLink rebolLogicOperator rebolOperator
- HiLink rebolLogicFunction rebolLogicOperator
- HiLink rebolMathOperator rebolOperator
- HiLink rebolMathFunction rebolMathOperator
- HiLink rebolBinaryOperator rebolOperator
- HiLink rebolBinaryFunction rebolBinaryOperator
-
- HiLink rebolType Type
- HiLink rebolTypeFunction rebolOperator
-
- HiLink rebolWord Identifier
- HiLink rebolWordPath rebolWord
- HiLink rebolFunction Function
-
- HiLink rebolCharacter Character
- HiLink rebolSpecialCharacter SpecialChar
- HiLink rebolString String
-
- HiLink rebolNumber Number
- HiLink rebolInteger rebolNumber
- HiLink rebolDecimal rebolNumber
- HiLink rebolTime rebolNumber
- HiLink rebolDate rebolNumber
- HiLink rebolMoney rebolNumber
- HiLink rebolBinary rebolNumber
- HiLink rebolEmail rebolString
- HiLink rebolFile rebolString
- HiLink rebolURL rebolString
- HiLink rebolIssue rebolNumber
- HiLink rebolTuple rebolNumber
- HiLink rebolFloat Float
- HiLink rebolBoolean Boolean
-
- HiLink rebolConstant Constant
-
- HiLink rebolComment Comment
-
- HiLink rebolError Error
-
- delcommand HiLink
-endif
if exists("my_rebol_file")
if file_readable(expand(my_rebol_file))
diff --git a/runtime/syntax/redif.vim b/runtime/syntax/redif.vim
index 1a44a9f479..725067fd32 100644
--- a/runtime/syntax/redif.vim
+++ b/runtime/syntax/redif.vim
@@ -7,10 +7,8 @@
" File Extension: rdf
" Note: The ReDIF format is used by RePEc.
-" To be compatible with Vim 5.8 use:
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
diff --git a/runtime/syntax/registry.vim b/runtime/syntax/registry.vim
index 4524247a08..67b5e49bcb 100644
--- a/runtime/syntax/registry.vim
+++ b/runtime/syntax/registry.vim
@@ -6,11 +6,8 @@
" Included patch from Alexander A. Ulitin
" clear any unwanted syntax defs
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -85,29 +82,20 @@ syn match registryHex "^\s*\([0-9a-fA-F]\{2},\)\{0,999}\([0-9a-fA-F]\{2}\|\\\)$
" Dword (32 bits)
syn match registryDword "dword:[0-9a-fA-F]\{8}$" contains=registrySpecial
-if version >= 508 || !exists("did_registry_syntax_inits")
- if version < 508
- let did_registry_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
" The default methods for highlighting. Can be overridden later
- HiLink registryComment Comment
- HiLink registryHead Constant
- HiLink registryHKEY Constant
- HiLink registryPath Special
- HiLink registryRemove PreProc
- HiLink registryGUID Identifier
- HiLink registrySpecial Special
- HiLink registrySubKey Type
- HiLink registryString String
- HiLink registryHex Number
- HiLink registryDword Number
-
- delcommand HiLink
-endif
+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"
diff --git a/runtime/syntax/remind.vim b/runtime/syntax/remind.vim
index 98064e043a..9e7ff22e14 100644
--- a/runtime/syntax/remind.vim
+++ b/runtime/syntax/remind.vim
@@ -13,9 +13,8 @@
" version 0.7: updated email and link
" version 0.6: added THROUGH keyword (courtesy of Ben Orchard)
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -48,35 +47,26 @@ syn match remindDates "'[0-9]\{4}[/-][0-9]\{1,2}[/-][0-9]\{1,2}\(@[0-9]\{1,2}[:
syn match remindWarning display excludenl "\S\s\+$"ms=s+1
-if version >= 508 || !exists("did_remind_syn_inits")
- if version < 508
- let did_remind_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink remindCommands Function
- HiLink remindExpiry Repeat
- HiLink remindTag Label
- HiLink remindTimed Statement
- HiLink remindMove Statement
- HiLink remindSpecial Include
- HiLink remindRun Function
- HiLink remindConditional Conditional
- HiLink remindComment Comment
- HiLink remindTimes String
- HiLink remindString String
- HiLink remindDebug Debug
- HiLink remindVar Identifier
- HiLink remindSubst Constant
- HiLink remindAdvanceNumber Number
- HiLink remindDateSeparators Comment
- HiLink remindDates String
- HiLink remindWarning Error
+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
- delcommand HiLink
-endif
let b:current_syntax = "remind"
diff --git a/runtime/syntax/resolv.vim b/runtime/syntax/resolv.vim
index 06d6885c1c..a879116a5f 100644
--- a/runtime/syntax/resolv.vim
+++ b/runtime/syntax/resolv.vim
@@ -9,9 +9,8 @@
" David Necas (Yeti) <yeti@physics.muni.cz>
" Stefano Zacchiroli <zack@debian.org>
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -50,38 +49,29 @@ syn match resolvOption /\<\%(ndots\|timeout\|attempts\):\d\+\>/ contained contai
" Additional errors
syn match resolvError /^search .\{257,}/
-if version >= 508 || !exists("did_config_syntax_inits")
- if version < 508
- let did_config_syntax_inits = 1
- command! -nargs=+ HiLink hi link <args>
- else
- command! -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink resolvIP Number
- HiLink resolvIPNetmask Number
- HiLink resolvHostname String
- HiLink resolvOption String
-
- HiLink resolvIPNameserver Number
- HiLink resolvHostnameSearch String
- HiLink resolvIPNetmaskSortList Number
-
- HiLink resolvNameServer Identifier
- HiLink resolvLwserver Identifier
- HiLink resolvDomain Identifier
- HiLink resolvSearch Identifier
- HiLink resolvSortList Identifier
- HiLink resolvOptions Identifier
-
- HiLink resolvComment Comment
- HiLink resolvOperator Operator
- HiLink resolvError Error
- HiLink resolvIPError Error
- HiLink resolvIPSpecial Special
-
- delcommand HiLink
-endif
+
+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"
diff --git a/runtime/syntax/reva.vim b/runtime/syntax/reva.vim
index 03dfc9d4c3..f605992190 100644
--- a/runtime/syntax/reva.vim
+++ b/runtime/syntax/reva.vim
@@ -7,13 +7,8 @@
" Filetypes: *.rf *.frt
" NOTE: You should also have the ftplugin/reva.vim file to set 'isk'
-" For version 5.x: Clear all syntax items and don't load
-" For version 6.x: Quit when a syntax file was already loaded
-if version < 600
- syntax clear
- echo "Reva syntax file requires version 6.0 or later of vim!"
- finish
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
diff --git a/runtime/syntax/rexx.vim b/runtime/syntax/rexx.vim
index ef698a5351..360fc8ff9f 100644
--- a/runtime/syntax/rexx.vim
+++ b/runtime/syntax/rexx.vim
@@ -6,11 +6,8 @@
" Special Thanks to Dan Sharp <dwsharp@hotmail.com> and Rony G. Flatscher
" <Rony.Flatscher@wu-wien.ac.at> for comments and additions
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -244,87 +241,77 @@ syn sync linecont "\(,\|-\ze-\@!\)\ze\s*\(--.*\|\/\*.*\)*$"
exec "syn sync fromstart"
" 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_rexx_syn_inits")
- if version < 508
- let did_rexx_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " make binary and hex strings stand out
- hi rexxStringConstant term=bold,underline ctermfg=5 cterm=bold guifg=darkMagenta gui=bold
-
- HiLink rexxLabel2 Function
- HiLink doLoopSelectLabelRegion rexxKeyword
- HiLink endIterateLeaveLabelRegion rexxKeyword
- HiLink rexxLoopKeywords rexxKeyword " Todo
-
- HiLink rexxNumber Normal "DiffChange
-" HiLink rexxIdentifier DiffChange
-
- HiLink rexxRegularCallSignal Statement
- HiLink rexxExceptionHandling Statement
-
- HiLink rexxLabel Function
- HiLink rexxCharacter Character
- HiLink rexxParenError rexxError
- HiLink rexxInParen rexxError
- HiLink rexxCommentError rexxError
- HiLink rexxError Error
- HiLink rexxKeyword Statement
- HiLink rexxKeywordStatements Statement
-
- HiLink rexxFunction Function
- HiLink rexxString String
- HiLink rexxComment Comment
- HiLink rexxTodo Todo
- HiLink rexxSpecialVariable Special
- HiLink rexxConditional rexxKeyword
-
- HiLink rexxOperator Operator
- HiLink rexxMessageOperator rexxOperator
- HiLink rexxLineComment Comment
-
- HiLink rexxLineContinue WildMenu
-
- HiLink rexxDirective rexxKeyword
- HiLink rexxClassDirective Type
- HiLink rexxMethodDirective rexxFunction
- HiLink rexxAttributeDirective rexxFunction
- HiLink rexxRequiresDirective Include
- HiLink rexxRoutineDirective rexxFunction
+" 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
- HiLink rexxOptionsDirective rexxFunction
- HiLink rexxOptionsDirective2 rexxOptionsDirective
- HiLink rexxOptionsDirective3 Normal " rexxOptionsDirective
+hi def link rexxOptionsDirective rexxFunction
+hi def link rexxOptionsDirective2 rexxOptionsDirective
+hi def link rexxOptionsDirective3 Normal " rexxOptionsDirective
- HiLink rexxConstantDirective rexxFunction
+hi def link rexxConstantDirective rexxFunction
- HiLink rexxConst Constant
- HiLink rexxTypeSpecifier Type
- HiLink rexxBuiltinClass rexxTypeSpecifier
+hi def link rexxConst Constant
+hi def link rexxTypeSpecifier Type
+hi def link rexxBuiltinClass rexxTypeSpecifier
- HiLink rexxEnvironmentSymbol rexxConst
- HiLink rexxMessage rexxFunction
+hi def link rexxEnvironmentSymbol rexxConst
+hi def link rexxMessage rexxFunction
- HiLink rexxParse rexxKeyword
- HiLink rexxParse2 rexxParse
+hi def link rexxParse rexxKeyword
+hi def link rexxParse2 rexxParse
- HiLink rexxGuard rexxKeyword
- HiLink rexxTrace rexxKeyword
+hi def link rexxGuard rexxKeyword
+hi def link rexxTrace rexxKeyword
- HiLink rexxRaise rexxKeyword
- HiLink rexxRaise2 rexxRaise
+hi def link rexxRaise rexxKeyword
+hi def link rexxRaise2 rexxRaise
- HiLink rexxForward rexxKeyword
- HiLink rexxForward2 rexxForward
+hi def link rexxForward rexxKeyword
+hi def link rexxForward2 rexxForward
- delcommand HiLink
-endif
let b:current_syntax = "rexx"
diff --git a/runtime/syntax/rhelp.vim b/runtime/syntax/rhelp.vim
index 47c764e296..8cac585bb0 100644
--- a/runtime/syntax/rhelp.vim
+++ b/runtime/syntax/rhelp.vim
@@ -3,7 +3,7 @@
" Maintainer: Jakson Aquino <jalvesaq@gmail.com>
" Former Maintainer: Johannes Ranke <jranke@uni-bremen.de>
" Homepage: https://github.com/jalvesaq/R-Vim-runtime
-" Last Change: Sat Feb 06, 2016 11:34AM
+" 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.
@@ -17,7 +17,6 @@ if exists("b:current_syntax")
endif
scriptencoding utf-8
-setlocal iskeyword=@,48-57,_,.
syn case match
diff --git a/runtime/syntax/rib.vim b/runtime/syntax/rib.vim
index 6b9f2b0bd4..0ee607122f 100644
--- a/runtime/syntax/rib.vim
+++ b/runtime/syntax/rib.vim
@@ -4,10 +4,8 @@
" Last Change: 2003 May 11
"
-" Remove any old syntax stuff hanging around
-if version < 600
- syn clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -46,26 +44,17 @@ syn match ribFloat display contained "[-]\=\.\d\+\(e[-+]\=\d\+\)\=\>"
syn match ribFloat display contained "[-]\=\d\+e[-+]\d\+\>"
syn case match
-if version >= 508 || !exists("did_rib_syntax_inits")
- if version < 508
- let did_rib_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink ribStructure Structure
- HiLink ribCommand Statement
+hi def link ribStructure Structure
+hi def link ribCommand Statement
- HiLink ribStructureComment SpecialComment
- HiLink ribLineComment Comment
+hi def link ribStructureComment SpecialComment
+hi def link ribLineComment Comment
- HiLink ribString String
- HiLink ribNumber Number
- HiLink ribFloat Float
+hi def link ribString String
+hi def link ribNumber Number
+hi def link ribFloat Float
- delcommand HiLink
-end
let b:current_syntax = "rib"
diff --git a/runtime/syntax/rmd.vim b/runtime/syntax/rmd.vim
index 4cde7441d3..05435354ad 100644
--- a/runtime/syntax/rmd.vim
+++ b/runtime/syntax/rmd.vim
@@ -1,17 +1,26 @@
" markdown Text with R statements
" Language: markdown with R code chunks
" Homepage: https://github.com/jalvesaq/R-Vim-runtime
-" Last Change: Sat Feb 06, 2016 06:45AM
+" Last Change: Sat Jan 28, 2017 10:06PM
"
" CONFIGURATION:
-" To highlight chunk headers as R code, put in your vimrc:
+" To highlight chunk headers as R code, put in your vimrc (e.g. .config/nvim/init.vim):
" let rmd_syn_hl_chunk = 1
+"
+" 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.
+"
+" TODO:
+" - Provide highlighting for rmarkdown parameters in yaml header
if exists("b:current_syntax")
finish
endif
-" load all of pandoc info
+" load all of pandoc info, e.g. from
+" https://github.com/vim-pandoc/vim-pandoc-syntax
runtime syntax/pandoc.vim
if exists("b:current_syntax")
let rmdIsPandoc = 1
@@ -22,28 +31,54 @@ else
if exists("b:current_syntax")
unlet b:current_syntax
endif
-endif
-" load all of the r syntax highlighting rules into @R
-syntax include @R syntax/r.vim
-if exists("b:current_syntax")
- unlet b:current_syntax
+ " load all of the yaml syntax highlighting rules into @yaml
+ syntax include @yaml syntax/yaml.vim
+ if exists("b:current_syntax")
+ unlet b:current_syntax
+ endif
+
+ " highlight yaml block commonly used for front matter
+ syntax region rmdYamlBlock matchgroup=rmdYamlBlockDelim start="^---" matchgroup=rmdYamlBlockDelim end="^---" contains=@yaml keepend fold
endif
-if exists("g:rmd_syn_hl_chunk")
- " highlight R code inside chunk header
- syntax match rmdChunkDelim "^[ \t]*```{r" contained
- syntax match rmdChunkDelim "}$" contained
+if !exists("g:rmd_syn_langs")
+ let g:rmd_syn_langs = ["r"]
else
- syntax match rmdChunkDelim "^[ \t]*```{r.*}$" contained
+ let s:hasr = 0
+ for s:lng in g:rmd_syn_langs
+ if s:lng == "r"
+ let s:hasr = 1
+ endif
+ endfor
+ if s:hasr == 0
+ let g:rmd_syn_langs += ["r"]
+ endif
endif
-syntax match rmdChunkDelim "^[ \t]*```$" contained
-syntax region rmdChunk start="^[ \t]*``` *{r.*}$" end="^[ \t]*```$" contains=@R,rmdChunkDelim keepend fold
+
+for s:lng in g:rmd_syn_langs
+ exe 'syntax include @' . toupper(s:lng) . ' syntax/'. s:lng . '.vim'
+ if exists("b:current_syntax")
+ unlet b:current_syntax
+ endif
+ exe 'syntax region rmd' . toupper(s:lng) . 'Chunk start="^[ \t]*``` *{\(' . s:lng . '\|r.*engine\s*=\s*["' . "']" . s:lng . "['" . '"]\).*}$" end="^[ \t]*```$" contains=@' . toupper(s:lng) . ',rmd' . toupper(s:lng) . 'ChunkDelim keepend fold'
+
+ if exists("g:rmd_syn_hl_chunk") && s:lng == "r"
+ " highlight R code inside chunk header
+ syntax match rmdRChunkDelim "^[ \t]*```{r" contained
+ syntax match rmdRChunkDelim "}$" contained
+ else
+ exe 'syntax match rmd' . toupper(s:lng) . 'ChunkDelim "^[ \t]*```{\(' . s:lng . '\|r.*engine\s*=\s*["' . "']" . s:lng . "['" . '"]\).*}$" contained'
+ endif
+ exe 'syntax match rmd' . toupper(s:lng) . 'ChunkDelim "^[ \t]*```$" contained'
+endfor
+
" also match and syntax highlight in-line R code
-syntax match rmdEndInline "`" contained
-syntax match rmdBeginInline "`r " contained
-syntax region rmdrInline start="`r " end="`" contains=@R,rmdBeginInline,rmdEndInline keepend
+syntax region rmdrInline matchgroup=rmdInlineDelim start="`r " end="`" contains=@R containedin=pandocLaTeXRegion,yamlFlowString keepend
+" I was not able to highlight rmdrInline inside a pandocLaTeXCommand, although
+" highlighting works within pandocLaTeXRegion and yamlFlowString.
+syntax cluster texMathZoneGroup add=rmdrInline
" match slidify special marker
syntax match rmdSlidifySpecial "\*\*\*"
@@ -56,8 +91,6 @@ if rmdIsPandoc == 0
if exists("b:current_syntax")
unlet b:current_syntax
endif
- " Extend cluster
- syn cluster texMathZoneGroup add=rmdrInline
" Inline
syntax match rmdLaTeXInlDelim "\$"
syntax match rmdLaTeXInlDelim "\\\$"
@@ -65,21 +98,24 @@ if rmdIsPandoc == 0
" Region
syntax match rmdLaTeXRegDelim "\$\$" contained
syntax match rmdLaTeXRegDelim "\$\$latex$" contained
- syntax region rmdLaTeXRegion start="^\$\$" skip="\\\$" end="\$\$$" contains=@LaTeX,rmdLaTeXSt,rmdLaTeXRegDelim keepend
- syntax region rmdLaTeXRegion2 start="^\\\[" end="\\\]" contains=@LaTeX,rmdLaTeXSt,rmdLaTeXRegDelim keepend
+ syntax match rmdLaTeXSt "\\[a-zA-Z]\+"
+ syntax region rmdLaTeXRegion start="^\$\$" skip="\\\$" end="\$\$$" contains=@LaTeX,rmdLaTeXRegDelim keepend
+ syntax region rmdLaTeXRegion2 start="^\\\[" end="\\\]" contains=@LaTeX,rmdLaTeXRegDelim keepend
+ hi def link rmdBlockQuote Comment
hi def link rmdLaTeXSt Statement
hi def link rmdLaTeXInlDelim Special
hi def link rmdLaTeXRegDelim Special
endif
-setlocal iskeyword=@,48-57,_,.
-
-syn sync match rmdSyncChunk grouphere rmdChunk "^[ \t]*``` *{r"
+for s:lng in g:rmd_syn_langs
+ exe 'syn sync match rmd' . toupper(s:lng) . 'SyncChunk grouphere rmd' . toupper(s:lng) . 'Chunk /^[ \t]*``` *{\(' . s:lng . '\|r.*engine\s*=\s*["' . "']" . s:lng . "['" . '"]\)/'
+endfor
-hi def link rmdChunkDelim Special
-hi def link rmdBeginInline Special
-hi def link rmdEndInline Special
-hi def link rmdBlockQuote Comment
+hi def link rmdYamlBlockDelim Delim
+for s:lng in g:rmd_syn_langs
+ exe 'hi def link rmd' . toupper(s:lng) . 'ChunkDelim Special'
+endfor
+hi def link rmdInlineDelim Special
hi def link rmdSlidifySpecial Special
let b:current_syntax = "rmd"
diff --git a/runtime/syntax/rnc.vim b/runtime/syntax/rnc.vim
index 8436c88755..7d3907e991 100644
--- a/runtime/syntax/rnc.vim
+++ b/runtime/syntax/rnc.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: Relax NG compact syntax
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2007-06-17
+" Language: Relax NG compact syntax
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2007-06-17
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/robots.vim b/runtime/syntax/robots.vim
index 066628bb3c..396bf52b25 100644
--- a/runtime/syntax/robots.vim
+++ b/runtime/syntax/robots.vim
@@ -5,11 +5,8 @@
" URL: http://www.mggen.com/vim/syntax/robots.zip
" Last change: 2001 May 09
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -41,26 +38,17 @@ syn match robotsUrl "http[s]\=://\S*"
syn match robotsMail "\S*@\S*"
syn region robotsString start=+L\="+ skip=+\\\\\|\\"+ end=+"+
-if version >= 508 || !exists("did_robos_syntax_inits")
- if version < 508
- let did_robots_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink robotsComment Comment
- HiLink robotsAgent Type
- HiLink robotsDisallow Statement
- HiLink robotsLine Special
- HiLink robotsStar Operator
- HiLink robotsDelimiter Delimiter
- HiLink robotsUrl String
- HiLink robotsMail String
- HiLink robotsString String
-
- delcommand HiLink
-endif
+
+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"
diff --git a/runtime/syntax/rpcgen.vim b/runtime/syntax/rpcgen.vim
index 85036dc049..08183d43a4 100644
--- a/runtime/syntax/rpcgen.vim
+++ b/runtime/syntax/rpcgen.vim
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: rpcgen
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change: Jan 13, 2015
-" Version: 10
+" Last Change: Aug 31, 2016
+" Version: 12
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_RPCGEN
if exists("b:current_syntax")
@@ -10,11 +10,7 @@ if exists("b:current_syntax")
endif
" Read the C syntax to start with
-if version < 600
- source <sfile>:p:h/c.vim
-else
- runtime! syntax/c.vim
-endif
+runtime! syntax/c.vim
syn keyword rpcProgram program skipnl skipwhite nextgroup=rpcProgName
syn match rpcProgName contained "\<\i\I*\>" skipnl skipwhite nextgroup=rpcProgZone
@@ -28,30 +24,21 @@ syn match rpcProgNmbrErr contained "=\s*0x[^23]\x*"ms=s+1
syn match rpcPassThru "^\s*%.*$"
" 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_rpcgen_syntax_inits")
- if version < 508
- let did_rpcgen_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink rpcProgName rpcName
- HiLink rpcProgram rpcStatement
- HiLink rpcVersName rpcName
- HiLink rpcVersion rpcStatement
-
- HiLink rpcDecl cType
- HiLink rpcPassThru cComment
-
- HiLink rpcName Special
- HiLink rpcProcNmbr Delimiter
- HiLink rpcProgNmbrErr Error
- HiLink rpcStatement Statement
-
- delcommand HiLink
+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"
diff --git a/runtime/syntax/rpl.vim b/runtime/syntax/rpl.vim
index 6457803a06..f339f7ae6e 100644
--- a/runtime/syntax/rpl.vim
+++ b/runtime/syntax/rpl.vim
@@ -6,11 +6,8 @@
" URL: http://www.makalis.fr/~bertrand/rpl2/download/vim/indent/rpl.vim
" Credits: Nothing
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -417,77 +414,67 @@ syntax region rplString start=+\(^\|\s\+\)"+ end=+"\ze\($\|\s\+\)+ contains=rplS
syntax match rplTab "\t" transparent
" 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_rpl_syntax_inits")
- if version < 508
- let did_rpl_syntax_inits = 1
- command -nargs=+ HiLink highlight link <args>
- else
- command -nargs=+ HiLink highlight default link <args>
- endif
-
- " The default highlighting.
-
- HiLink rplControl Statement
- HiLink rplStatement Statement
- HiLink rplAlgConditional Conditional
- HiLink rplConditional Repeat
- HiLink rplConditionalError Error
- HiLink rplRepeat Repeat
- HiLink rplCycle Repeat
- HiLink rplUntil Repeat
- HiLink rplIntrinsic Special
- HiLink rplStorage StorageClass
- HiLink rplStorageExpr StorageClass
- HiLink rplStorageError Error
- HiLink rplReadWrite rplIntrinsic
-
- HiLink rplOperator Operator
-
- HiLink rplList Special
- HiLink rplArray Special
- HiLink rplConstant Identifier
- HiLink rplExpr Type
-
- HiLink rplString String
- HiLink rplStringGuilles String
- HiLink rplStringAntislash String
-
- HiLink rplBinary Boolean
- HiLink rplOctal Boolean
- HiLink rplDecimal Boolean
- HiLink rplHexadecimal Boolean
- HiLink rplInteger Number
- HiLink rplFloat Float
- HiLink rplComplex Float
- HiLink rplBoolean Identifier
-
- HiLink rplObsolete Todo
-
- HiLink rplPreCondit PreCondit
- HiLink rplInclude Include
- HiLink rplIncluded rplString
- HiLink rplInclude Include
- HiLink rplExecPath Include
- HiLink rplPreProc PreProc
- HiLink rplComment Comment
- HiLink rplCommentLine Comment
- HiLink rplCommentString Comment
- HiLink rplSubDelimitor rplStorage
- HiLink rplCommentError Error
- HiLink rplParenError Error
- HiLink rplSubError Error
- HiLink rplArrayError Error
- HiLink rplListError Error
- HiLink rplTab Error
- HiLink rplBinaryError Error
- HiLink rplOctalError Error
- HiLink rplDecimalError Error
- HiLink rplHexadecimalError Error
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/rrst.vim b/runtime/syntax/rrst.vim
index 24d3844df0..b643af3285 100644
--- a/runtime/syntax/rrst.vim
+++ b/runtime/syntax/rrst.vim
@@ -2,7 +2,7 @@
" Language: reST with R code chunks
" Maintainer: Alex Zvoleff, azvoleff@mail.sdsu.edu
" Homepage: https://github.com/jalvesaq/R-Vim-runtime
-" Last Change: Sat Feb 06, 2016 06:45AM
+" Last Change: Tue Jun 28, 2016 08:53AM
"
" CONFIGURATION:
" To highlight chunk headers as R code, put in your vimrc:
@@ -19,8 +19,6 @@ unlet b:current_syntax
" load all of the r syntax highlighting rules into @R
syntax include @R syntax/r.vim
-setlocal iskeyword=@,48-57,_,.
-
" highlight R chunks
if exists("g:rrst_syn_hl_chunk")
" highlight R code inside chunk header
diff --git a/runtime/syntax/rst.vim b/runtime/syntax/rst.vim
index ef07b22676..232d2a7de3 100644
--- a/runtime/syntax/rst.vim
+++ b/runtime/syntax/rst.vim
@@ -2,7 +2,8 @@
" Language: reStructuredText documentation format
" Maintainer: Marshall Ward <marshall.ward@gmail.com>
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2016-06-17
+" Website: https://github.com/marshallward/vim-restructuredtext
+" Latest Revision: 2016-08-18
if exists("b:current_syntax")
finish
@@ -89,7 +90,7 @@ function! s:DefineOneInlineMarkup(name, start, middle, end, char_left, char_righ
\ ' start=+' . a:char_left . '\zs' . a:start .
\ '\ze[^[:space:]' . a:char_right . a:start[strlen(a:start) - 1] . ']+' .
\ a:middle .
- \ ' end=+\S' . a:end . '\ze\%($\|\s\|[''")\]}>/:.,;!?\\-]\)+'
+ \ ' end=+\S' . a:end . '\ze\%($\|\s\|[''"’)\]}>/:.,;!?\\-]\)+'
endfunction
function! s:DefineInlineMarkup(name, start, middle, end)
@@ -103,6 +104,8 @@ function! s:DefineInlineMarkup(name, start, middle, 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\|[/:]\)', '')
@@ -186,11 +189,8 @@ hi def link rstHyperlinkTarget String
hi def link rstExDirective String
hi def link rstSubstitutionDefinition rstDirective
hi def link rstDelimiter Delimiter
-hi def link rstEmphasis Underlined
-hi def link rstStrongEmphasis Special
-" TODO Append these atttributes somehow
-"hi def rstEmphasis term=italic cterm=italic gui=italic
-"hi def rstStrongEmphasis term=bold cterm=bold gui=bold
+hi def rstEmphasis ctermfg=13 term=italic cterm=italic gui=italic
+hi def rstStrongEmphasis ctermfg=1 term=bold cterm=bold gui=bold
hi def link rstInterpretedTextOrHyperlinkReference Identifier
hi def link rstInlineLiteral String
hi def link rstSubstitutionReference PreProc
diff --git a/runtime/syntax/rtf.vim b/runtime/syntax/rtf.vim
index 8f5ea71a36..c856f9ffcf 100644
--- a/runtime/syntax/rtf.vim
+++ b/runtime/syntax/rtf.vim
@@ -13,11 +13,8 @@
" TODO: render underline, italic, bold
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -52,35 +49,25 @@ syn match rtfBlue "\\blue[0-9][0-9]*"
syn match rtfFootNote "[#$K+]{\\footnote.*}" contains=rtfControlWord,rtfNewControlWord
" 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_rtf_syntax_inits")
- if version < 508
- let did_rtf_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
-
- HiLink rtfControlWord Statement
- HiLink rtfNewControlWord Special
- HiLink rtfControlSymbol Constant
- HiLink rtfCharacter Character
- HiLink rtfUnicodeCharacter SpecialChar
- HiLink 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
-
- HiLink rtfRed rtfRed
- HiLink rtfGreen rtfGreen
- HiLink rtfBlue rtfBlue
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/ruby.vim b/runtime/syntax/ruby.vim
index 28f553decb..ca7f51b1ea 100644
--- a/runtime/syntax/ruby.vim
+++ b/runtime/syntax/ruby.vim
@@ -9,16 +9,45 @@
" Thanks to perl.vim authors, and to Reimer Behrends. :-) (MN)
" ----------------------------------------------------------------------------
+" Prelude {{{1
if exists("b:current_syntax")
finish
endif
+" this file uses line continuations
+let s:cpo_sav = &cpo
+set cpo&vim
+
+" Folding Config {{{1
if has("folding") && exists("ruby_fold")
setlocal foldmethod=syntax
endif
+let s:foldable_groups = split(
+ \ get(
+ \ b:,
+ \ 'ruby_foldable_groups',
+ \ get(g:, 'ruby_foldable_groups', 'ALL')
+ \ )
+ \ )
+
+function! s:foldable(...) abort
+ if index(s:foldable_groups, 'ALL') > -1
+ return 1
+ endif
+
+ for l:i in a:000
+ if index(s:foldable_groups, l:i) > -1
+ return 1
+ endif
+ endfor
+
+ return 0
+endfunction " }}}
+
syn cluster rubyNotTop contains=@rubyExtendedStringSpecial,@rubyRegexpSpecial,@rubyDeclaration,rubyConditional,rubyExceptional,rubyMethodExceptional,rubyTodo
+" Whitespace Errors {{{1
if exists("ruby_space_errors")
if !exists("ruby_no_trail_space_error")
syn match rubySpaceError display excludenl "\s\+$"
@@ -28,14 +57,14 @@ if exists("ruby_space_errors")
endif
endif
-" Operators
+" Operators {{{1
if exists("ruby_operators")
- syn match rubyOperator "[~!^&|*/%+-]\|\%(class\s*\)\@<!<<\|<=>\|<=\|\%(<\|\<class\s\+\u\w*\s*\)\@<!<[^<]\@=\|===\|==\|=\~\|>>\|>=\|=\@<!>\|\*\*\|\.\.\.\|\.\.\|::"
+ syn match rubyOperator "[~!^|*/%+-]\|&\.\@!\|\%(class\s*\)\@<!<<\|<=>\|<=\|\%(<\|\<class\s\+\u\w*\s*\)\@<!<[^<]\@=\|===\|==\|=\~\|>>\|>=\|=\@1<!>\|\*\*\|\.\.\.\|\.\.\|::"
syn match rubyOperator "->\|-=\|/=\|\*\*=\|\*=\|&&=\|&=\|&&\|||=\||=\|||\|%=\|+=\|!\~\|!="
- syn region rubyBracketOperator matchgroup=rubyOperator start="\%(\w[?!]\=\|[]})]\)\@<=\[\s*" end="\s*]" contains=ALLBUT,@rubyNotTop
+ syn region rubyBracketOperator matchgroup=rubyOperator start="\%(\w[?!]\=\|[]})]\)\@2<=\[\s*" end="\s*]" contains=ALLBUT,@rubyNotTop
endif
-" Expression Substitution and Backslash Notation
+" Expression Substitution and Backslash Notation {{{1
syn match rubyStringEscape "\\\\\|\\[abefnrstv]\|\\\o\{1,3}\|\\x\x\{1,2}" contained display
syn match rubyStringEscape "\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)" contained display
syn match rubyQuoteEscape "\\[\\']" contained display
@@ -45,18 +74,19 @@ syn match rubyInterpolation "#\%(\$\|@@\=\)\w\+" display contained con
syn match rubyInterpolationDelimiter "#\ze\%(\$\|@@\=\)\w\+" display contained
syn match rubyInterpolation "#\$\%(-\w\|\W\)" display contained contains=rubyInterpolationDelimiter,rubyPredefinedVariable,rubyInvalidVariable
syn match rubyInterpolationDelimiter "#\ze\$\%(-\w\|\W\)" display contained
-syn region rubyNoInterpolation start="\\#{" end="}" contained
+syn region rubyNoInterpolation start="\\#{" end="}" contained
syn match rubyNoInterpolation "\\#{" display contained
syn match rubyNoInterpolation "\\#\%(\$\|@@\=\)\w\+" display contained
syn match rubyNoInterpolation "\\#\$\W" display contained
-syn match rubyDelimEscape "\\[(<{\[)>}\]]" transparent display contained contains=NONE
+syn match rubyDelimiterEscape "\\[(<{\[)>}\]]" transparent display contained contains=NONE
syn region rubyNestedParentheses start="(" skip="\\\\\|\\)" matchgroup=rubyString end=")" transparent contained
syn region rubyNestedCurlyBraces start="{" skip="\\\\\|\\}" matchgroup=rubyString end="}" transparent contained
syn region rubyNestedAngleBrackets start="<" skip="\\\\\|\\>" matchgroup=rubyString end=">" transparent contained
syn region rubyNestedSquareBrackets start="\[" skip="\\\\\|\\\]" matchgroup=rubyString end="\]" transparent contained
+" Regular Expression Metacharacters {{{1
" These are mostly Oniguruma ready
syn region rubyRegexpComment matchgroup=rubyRegexpSpecial start="(?#" skip="\\)" end=")" contained
syn region rubyRegexpParens matchgroup=rubyRegexpSpecial start="(\(?:\|?<\=[=!]\|?>\|?<[a-z_]\w*>\|?[imx]*-[imx]*:\=\|\%(?#\)\@!\)" skip="\\)" end=")" contained transparent contains=@rubyRegexpSpecial
@@ -79,36 +109,40 @@ syn cluster rubyStringSpecial contains=rubyInterpolation,rubyNoInterpolati
syn cluster rubyExtendedStringSpecial contains=@rubyStringSpecial,rubyNestedParentheses,rubyNestedCurlyBraces,rubyNestedAngleBrackets,rubyNestedSquareBrackets
syn cluster rubyRegexpSpecial contains=rubyInterpolation,rubyNoInterpolation,rubyStringEscape,rubyRegexpSpecial,rubyRegexpEscape,rubyRegexpBrackets,rubyRegexpCharClass,rubyRegexpDot,rubyRegexpQuantifier,rubyRegexpAnchor,rubyRegexpParens,rubyRegexpComment
-" Numbers and ASCII Codes
-syn match rubyASCIICode "\%(\w\|[]})\"'/]\)\@<!\%(?\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\=\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)\)"
-syn match rubyInteger "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<0[xX]\x\+\%(_\x\+\)*\>" display
-syn match rubyInteger "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<\%(0[dD]\)\=\%(0\|[1-9]\d*\%(_\d\+\)*\)\>" display
-syn match rubyInteger "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<0[oO]\=\o\+\%(_\o\+\)*\>" display
-syn match rubyInteger "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<0[bB][01]\+\%(_[01]\+\)*\>" display
-syn match rubyFloat "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<\%(0\|[1-9]\d*\%(_\d\+\)*\)\.\d\+\%(_\d\+\)*\>" display
-syn match rubyFloat "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<\%(0\|[1-9]\d*\%(_\d\+\)*\)\%(\.\d\+\%(_\d\+\)*\)\=\%([eE][-+]\=\d\+\%(_\d\+\)*\)\>" display
+" Numbers and ASCII Codes {{{1
+syn match rubyASCIICode "\%(\w\|[]})\"'/]\)\@1<!\%(?\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\=\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)\)"
+syn match rubyInteger "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<0[xX]\x\+\%(_\x\+\)*r\=i\=\>" display
+syn match rubyInteger "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<\%(0[dD]\)\=\%(0\|[1-9]\d*\%(_\d\+\)*\)r\=i\=\>" display
+syn match rubyInteger "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<0[oO]\=\o\+\%(_\o\+\)*r\=i\=\>" display
+syn match rubyInteger "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<0[bB][01]\+\%(_[01]\+\)*r\=i\=\>" display
+syn match rubyFloat "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<\%(0\|[1-9]\d*\%(_\d\+\)*\)\.\d\+\%(_\d\+\)*r\=i\=\>" display
+syn match rubyFloat "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<\%(0\|[1-9]\d*\%(_\d\+\)*\)\%(\.\d\+\%(_\d\+\)*\)\=\%([eE][-+]\=\d\+\%(_\d\+\)*\)r\=i\=\>" display
-" Identifiers
+" Identifiers {{{1
syn match rubyLocalVariableOrMethod "\<[_[:lower:]][_[:alnum:]]*[?!=]\=" contains=NONE display transparent
syn match rubyBlockArgument "&[_[:lower:]][_[:alnum:]]" contains=NONE display transparent
-syn match rubyConstant "\%(\%([.@$]\@<!\.\)\@<!\<\|::\)\_s*\zs\u\w*\%(\>\|::\)\@=\%(\s*(\)\@!"
+syn match rubyConstant "\%(\%(^\|[^.]\)\.\s*\)\@<!\<\u\%(\w\|[^\x00-\x7F]\)*\>\%(\s*(\)\@!"
syn match rubyClassVariable "@@\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*" display
-syn match rubyInstanceVariable "@\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*" display
+syn match rubyInstanceVariable "@\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*" display
syn match rubyGlobalVariable "$\%(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\|-.\)"
-syn match rubySymbol "[]})\"':]\@<!:\%(\^\|\~\|<<\|<=>\|<=\|<\|===\|[=!]=\|[=!]\~\|!\|>>\|>=\|>\||\|-@\|-\|/\|\[]=\|\[]\|\*\*\|\*\|&\|%\|+@\|+\|`\)"
-syn match rubySymbol "[]})\"':]\@<!:\$\%(-.\|[`~<=>_,;:!?/.'"@$*\&+0]\)"
-syn match rubySymbol "[]})\"':]\@<!:\%(\$\|@@\=\)\=\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*"
-syn match rubySymbol "[]})\"':]\@<!:\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\%([?!=]>\@!\)\="
-syn match rubySymbol "\%([{(,]\_s*\)\@<=\l\w*[!?]\=::\@!"he=e-1
-syn match rubySymbol "[]})\"':]\@<!\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[!?]\=:\s\@="he=e-1
-syn match rubySymbol "\%([{(,]\_s*\)\@<=[[:space:],{]\l\w*[!?]\=::\@!"hs=s+1,he=e-1
-syn match rubySymbol "[[:space:],{]\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[!?]\=:\s\@="hs=s+1,he=e-1
-syn region rubySymbol start="[]})\"':]\@<!:'" end="'" skip="\\\\\|\\'" contains=rubyQuoteEscape fold
-syn region rubySymbol start="[]})\"':]\@<!:\"" end="\"" skip="\\\\\|\\\"" contains=@rubyStringSpecial fold
+syn match rubySymbol "[]})\"':]\@1<!:\%(\^\|\~@\|\~\|<<\|<=>\|<=\|<\|===\|[=!]=\|[=!]\~\|!@\|!\|>>\|>=\|>\||\|-@\|-\|/\|\[]=\|\[]\|\*\*\|\*\|&\|%\|+@\|+\|`\)"
+syn match rubySymbol "[]})\"':]\@1<!:\$\%(-.\|[`~<=>_,;:!?/.'"@$*\&+0]\)"
+syn match rubySymbol "[]})\"':]\@1<!:\%(\$\|@@\=\)\=\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*"
+syn match rubySymbol "[]})\"':]\@1<!:\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\%([?!=]>\@!\)\="
+
+if s:foldable(':')
+ syn region rubySymbol start="[]})\"':]\@1<!:'" end="'" skip="\\\\\|\\'" contains=rubyQuoteEscape fold
+ syn region rubySymbol start="[]})\"':]\@1<!:\"" end="\"" skip="\\\\\|\\\"" contains=@rubyStringSpecial fold
+else
+ syn region rubySymbol start="[]})\"':]\@1<!:'" end="'" skip="\\\\\|\\'" contains=rubyQuoteEscape
+ syn region rubySymbol start="[]})\"':]\@1<!:\"" end="\"" skip="\\\\\|\\\"" contains=@rubyStringSpecial
+endif
+
+syn match rubyCapitalizedMethod "\%(\%(^\|[^.]\)\.\s*\)\@<!\<\u\%(\w\|[^\x00-\x7F]\)*\>\%(\s*(\)*\s*(\@="
syn match rubyBlockParameter "\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*" contained
-syn region rubyBlockParameterList start="\%(\%(\<do\>\|{\)\s*\)\@<=|" end="|" oneline display contains=rubyBlockParameter
+syn region rubyBlockParameterList start="\%(\%(\<do\>\|{\)\_s*\)\@32<=|" end="|" oneline display contains=rubyBlockParameter
syn match rubyInvalidVariable "$[^ A-Za-z_-]"
syn match rubyPredefinedVariable #$[!$&"'*+,./0:;<=>?@\`~]#
@@ -117,93 +151,187 @@ syn match rubyPredefinedVariable "$_\>" display
syn match rubyPredefinedVariable "$-[0FIKadilpvw]\>" display
syn match rubyPredefinedVariable "$\%(deferr\|defout\|stderr\|stdin\|stdout\)\>" display
syn match rubyPredefinedVariable "$\%(DEBUG\|FILENAME\|KCODE\|LOADED_FEATURES\|LOAD_PATH\|PROGRAM_NAME\|SAFE\|VERBOSE\)\>" display
-syn match rubyPredefinedConstant "\%(\%(\.\@<!\.\)\@<!\|::\)\_s*\zs\%(MatchingData\|ARGF\|ARGV\|ENV\)\>\%(\s*(\)\@!"
-syn match rubyPredefinedConstant "\%(\%(\.\@<!\.\)\@<!\|::\)\_s*\zs\%(DATA\|FALSE\|NIL\)\>\%(\s*(\)\@!"
-syn match rubyPredefinedConstant "\%(\%(\.\@<!\.\)\@<!\|::\)\_s*\zs\%(STDERR\|STDIN\|STDOUT\|TOPLEVEL_BINDING\|TRUE\)\>\%(\s*(\)\@!"
-syn match rubyPredefinedConstant "\%(\%(\.\@<!\.\)\@<!\|::\)\_s*\zs\%(RUBY_\%(VERSION\|RELEASE_DATE\|PLATFORM\|PATCHLEVEL\|REVISION\|DESCRIPTION\|COPYRIGHT\|ENGINE\)\)\>\%(\s*(\)\@!"
-
-" Normal Regular Expression
-syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\%(^\|\<\%(and\|or\|while\|until\|unless\|if\|elsif\|when\|not\|then\|else\)\|[;\~=!|&(,[<>?:*+-]\)\s*\)\@<=/" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial fold
-syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\h\k*\s\+\)\@<=/[ \t=]\@!" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial fold
-
-" Generalized Regular Expression
-syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\z([~`!@#$%^&*_\-+=|\:;"',.? /]\)" end="\z1[iomxneus]*" skip="\\\\\|\\\z1" contains=@rubyRegexpSpecial fold
-syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r{" end="}[iomxneus]*" skip="\\\\\|\\}" contains=@rubyRegexpSpecial fold
-syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r<" end=">[iomxneus]*" skip="\\\\\|\\>" contains=@rubyRegexpSpecial,rubyNestedAngleBrackets,rubyDelimEscape fold
-syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\[" end="\][iomxneus]*" skip="\\\\\|\\\]" contains=@rubyRegexpSpecial fold
-syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r(" end=")[iomxneus]*" skip="\\\\\|\\)" contains=@rubyRegexpSpecial fold
-
-" Normal String and Shell Command Output
-syn region rubyString matchgroup=rubyStringDelimiter start="\"" end="\"" skip="\\\\\|\\\"" contains=@rubyStringSpecial,@Spell fold
-syn region rubyString matchgroup=rubyStringDelimiter start="'" end="'" skip="\\\\\|\\'" contains=rubyQuoteEscape,@Spell fold
-syn region rubyString matchgroup=rubyStringDelimiter start="`" end="`" skip="\\\\\|\\`" contains=@rubyStringSpecial fold
-
-" Generalized Single Quoted String, Symbol and Array of Strings
-syn region rubyString matchgroup=rubyStringDelimiter start="%[qwi]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold
-syn region rubyString matchgroup=rubyStringDelimiter start="%[qwi]{" end="}" skip="\\\\\|\\}" fold contains=rubyNestedCurlyBraces,rubyDelimEscape
-syn region rubyString matchgroup=rubyStringDelimiter start="%[qwi]<" end=">" skip="\\\\\|\\>" fold contains=rubyNestedAngleBrackets,rubyDelimEscape
-syn region rubyString matchgroup=rubyStringDelimiter start="%[qwi]\[" end="\]" skip="\\\\\|\\\]" fold contains=rubyNestedSquareBrackets,rubyDelimEscape
-syn region rubyString matchgroup=rubyStringDelimiter start="%[qwi](" end=")" skip="\\\\\|\\)" fold contains=rubyNestedParentheses,rubyDelimEscape
-syn region rubyString matchgroup=rubyStringDelimiter start="%q " end=" " skip="\\\\\|\\)" fold
-syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s\z([~`!@#$%^&*_\-+=|\:;"',.? /]\)" end="\z1" skip="\\\\\|\\\z1" fold
-syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s{" end="}" skip="\\\\\|\\}" fold contains=rubyNestedCurlyBraces,rubyDelimEscape
-syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s<" end=">" skip="\\\\\|\\>" fold contains=rubyNestedAngleBrackets,rubyDelimEscape
-syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s\[" end="\]" skip="\\\\\|\\\]" fold contains=rubyNestedSquareBrackets,rubyDelimEscape
-syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s(" end=")" skip="\\\\\|\\)" fold contains=rubyNestedParentheses,rubyDelimEscape
-
-" Generalized Double Quoted String and Array of Strings and Shell Command Output
+syn match rubyPredefinedConstant "\%(\%(^\|[^.]\)\.\s*\)\@<!\<\%(ARGF\|ARGV\|ENV\|DATA\|FALSE\|NIL\|STDERR\|STDIN\|STDOUT\|TOPLEVEL_BINDING\|TRUE\)\>\%(\s*(\)\@!"
+syn match rubyPredefinedConstant "\%(\%(^\|[^.]\)\.\s*\)\@<!\<\%(RUBY_\%(VERSION\|RELEASE_DATE\|PLATFORM\|PATCHLEVEL\|REVISION\|DESCRIPTION\|COPYRIGHT\|ENGINE\)\)\>\%(\s*(\)\@!"
+
+" Normal Regular Expression {{{1
+if s:foldable('/')
+ syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\%(^\|\<\%(and\|or\|while\|until\|unless\|if\|elsif\|when\|not\|then\|else\)\|[;\~=!|&(,{[<>?:*+-]\)\s*\)\@<=/" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial fold
+ syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\h\k*\s\+\)\@<=/[ \t=]\@!" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial fold
+else
+ syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\%(^\|\<\%(and\|or\|while\|until\|unless\|if\|elsif\|when\|not\|then\|else\)\|[;\~=!|&(,{[<>?:*+-]\)\s*\)\@<=/" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial
+ syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\h\k*\s\+\)\@<=/[ \t=]\@!" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial
+endif
+
+" Generalized Regular Expression {{{1
+if s:foldable('%')
+ syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1[iomxneus]*" skip="\\\\\|\\\z1" contains=@rubyRegexpSpecial fold
+ syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r{" end="}[iomxneus]*" skip="\\\\\|\\}" contains=@rubyRegexpSpecial fold
+ syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r<" end=">[iomxneus]*" skip="\\\\\|\\>" contains=@rubyRegexpSpecial,rubyNestedAngleBrackets,rubyDelimiterEscape fold
+ syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\[" end="\][iomxneus]*" skip="\\\\\|\\\]" contains=@rubyRegexpSpecial fold
+ syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r(" end=")[iomxneus]*" skip="\\\\\|\\)" contains=@rubyRegexpSpecial fold
+ syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\z(\s\)" end="\z1[iomxneus]*" skip="\\\\\|\\\z1" contains=@rubyRegexpSpecial fold
+else
+ syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1[iomxneus]*" skip="\\\\\|\\\z1" contains=@rubyRegexpSpecial
+ syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r{" end="}[iomxneus]*" skip="\\\\\|\\}" contains=@rubyRegexpSpecial
+ syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r<" end=">[iomxneus]*" skip="\\\\\|\\>" contains=@rubyRegexpSpecial,rubyNestedAngleBrackets,rubyDelimiterEscape
+ syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\[" end="\][iomxneus]*" skip="\\\\\|\\\]" contains=@rubyRegexpSpecial
+ syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r(" end=")[iomxneus]*" skip="\\\\\|\\)" contains=@rubyRegexpSpecial
+ syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\z(\s\)" end="\z1[iomxneus]*" skip="\\\\\|\\\z1" contains=@rubyRegexpSpecial
+endif
+
+" Normal String {{{1
+let s:spell_cluster = exists('ruby_spellcheck_strings') ? ',@Spell' : ''
+exe 'syn region rubyString matchgroup=rubyStringDelimiter start="\"" end="\"" skip="\\\\\|\\\"" ' .
+ \ (s:foldable('%') ? 'fold' : '') . ' contains=@rubyStringSpecial' . s:spell_cluster
+exe 'syn region rubyString matchgroup=rubyStringDelimiter start="''" end="''" skip="\\\\\|\\''" ' .
+ \ (s:foldable('%') ? 'fold' : '') . ' contains=rubyQuoteEscape' . s:spell_cluster
+
+" Shell Command Output {{{1
+if s:foldable('%')
+ syn region rubyString matchgroup=rubyStringDelimiter start="`" end="`" skip="\\\\\|\\`" contains=@rubyStringSpecial fold
+else
+ syn region rubyString matchgroup=rubyStringDelimiter start="`" end="`" skip="\\\\\|\\`" contains=@rubyStringSpecial
+endif
+
+" Generalized Single Quoted String, Symbol and Array of Strings {{{1
+if s:foldable('%')
+ syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold
+ syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]{" end="}" skip="\\\\\|\\}" fold contains=rubyNestedCurlyBraces,rubyDelimiterEscape
+ syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]<" end=">" skip="\\\\\|\\>" fold contains=rubyNestedAngleBrackets,rubyDelimiterEscape
+ syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]\[" end="\]" skip="\\\\\|\\\]" fold contains=rubyNestedSquareBrackets,rubyDelimiterEscape
+ syn region rubyString matchgroup=rubyStringDelimiter start="%[qw](" end=")" skip="\\\\\|\\)" fold contains=rubyNestedParentheses,rubyDelimiterEscape
+ syn region rubyString matchgroup=rubyStringDelimiter start="%q\z(\s\)" end="\z1" skip="\\\\\|\\\z1" fold
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s{" end="}" skip="\\\\\|\\}" fold contains=rubyNestedCurlyBraces,rubyDelimiterEscape
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s<" end=">" skip="\\\\\|\\>" fold contains=rubyNestedAngleBrackets,rubyDelimiterEscape
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s\[" end="\]" skip="\\\\\|\\\]" fold contains=rubyNestedSquareBrackets,rubyDelimiterEscape
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s(" end=")" skip="\\\\\|\\)" fold contains=rubyNestedParentheses,rubyDelimiterEscape
+ syn region rubyString matchgroup=rubyStringDelimiter start="%s\z(\s\)" end="\z1" skip="\\\\\|\\\z1" fold
+else
+ syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1"
+ syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]{" end="}" skip="\\\\\|\\}" contains=rubyNestedCurlyBraces,rubyDelimiterEscape
+ syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]<" end=">" skip="\\\\\|\\>" contains=rubyNestedAngleBrackets,rubyDelimiterEscape
+ syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]\[" end="\]" skip="\\\\\|\\\]" contains=rubyNestedSquareBrackets,rubyDelimiterEscape
+ syn region rubyString matchgroup=rubyStringDelimiter start="%[qw](" end=")" skip="\\\\\|\\)" contains=rubyNestedParentheses,rubyDelimiterEscape
+ syn region rubyString matchgroup=rubyStringDelimiter start="%q\z(\s\)" end="\z1" skip="\\\\\|\\\z1"
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1"
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s{" end="}" skip="\\\\\|\\}" contains=rubyNestedCurlyBraces,rubyDelimiterEscape
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s<" end=">" skip="\\\\\|\\>" contains=rubyNestedAngleBrackets,rubyDelimiterEscape
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s\[" end="\]" skip="\\\\\|\\\]" contains=rubyNestedSquareBrackets,rubyDelimiterEscape
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s(" end=")" skip="\\\\\|\\)" contains=rubyNestedParentheses,rubyDelimiterEscape
+ syn region rubyString matchgroup=rubyStringDelimiter start="%s\z(\s\)" end="\z1" skip="\\\\\|\\\z1"
+endif
+
+" Generalized Double Quoted String and Array of Strings and Shell Command Output {{{1
" Note: %= is not matched here as the beginning of a double quoted string
-syn region rubyString matchgroup=rubyStringDelimiter start="%\z([~`!@#$%^&*_\-+|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial fold
-syn region rubyString matchgroup=rubyStringDelimiter start="%[QWIx]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial fold
-syn region rubyString matchgroup=rubyStringDelimiter start="%[QWIx]\={" end="}" skip="\\\\\|\\}" contains=@rubyStringSpecial,rubyNestedCurlyBraces,rubyDelimEscape fold
-syn region rubyString matchgroup=rubyStringDelimiter start="%[QWIx]\=<" end=">" skip="\\\\\|\\>" contains=@rubyStringSpecial,rubyNestedAngleBrackets,rubyDelimEscape fold
-syn region rubyString matchgroup=rubyStringDelimiter start="%[QWIx]\=\[" end="\]" skip="\\\\\|\\\]" contains=@rubyStringSpecial,rubyNestedSquareBrackets,rubyDelimEscape fold
-syn region rubyString matchgroup=rubyStringDelimiter start="%[QWIx]\=(" end=")" skip="\\\\\|\\)" contains=@rubyStringSpecial,rubyNestedParentheses,rubyDelimEscape fold
-syn region rubyString matchgroup=rubyStringDelimiter start="%[Qx] " end=" " skip="\\\\\|\\)" contains=@rubyStringSpecial fold
-
-" Here Document
-syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<-\=\zs\%(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)+ end=+$+ oneline contains=ALLBUT,@rubyNotTop
-syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<-\=\zs"\%([^"]*\)"+ end=+$+ oneline contains=ALLBUT,@rubyNotTop
-syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<-\=\zs'\%([^']*\)'+ end=+$+ oneline contains=ALLBUT,@rubyNotTop
-syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<-\=\zs`\%([^`]*\)`+ end=+$+ oneline contains=ALLBUT,@rubyNotTop
-
-syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<\z(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)\ze\%(.*<<-\=['`"]\=\h\)\@!+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial fold keepend
-syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<"\z([^"]*\)"\ze\%(.*<<-\=['`"]\=\h\)\@!+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial fold keepend
-syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<'\z([^']*\)'\ze\%(.*<<-\=['`"]\=\h\)\@!+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc fold keepend
-syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<`\z([^`]*\)`\ze\%(.*<<-\=['`"]\=\h\)\@!+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial fold keepend
-
-syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<-\z(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)\ze\%(.*<<-\=['`"]\=\h\)\@!+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial fold keepend
-syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<-"\z([^"]*\)"\ze\%(.*<<-\=['`"]\=\h\)\@!+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial fold keepend
-syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<-'\z([^']*\)'\ze\%(.*<<-\=['`"]\=\h\)\@!+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart fold keepend
-syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<-`\z([^`]*\)`\ze\%(.*<<-\=['`"]\=\h\)\@!+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial fold keepend
+if s:foldable('%')
+ syn region rubyString matchgroup=rubyStringDelimiter start="%\z([~`!@#$%^&*_\-+|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial fold
+ syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial fold
+ syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\={" end="}" skip="\\\\\|\\}" contains=@rubyStringSpecial,rubyNestedCurlyBraces,rubyDelimiterEscape fold
+ syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=<" end=">" skip="\\\\\|\\>" contains=@rubyStringSpecial,rubyNestedAngleBrackets,rubyDelimiterEscape fold
+ syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=\[" end="\]" skip="\\\\\|\\\]" contains=@rubyStringSpecial,rubyNestedSquareBrackets,rubyDelimiterEscape fold
+ syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=(" end=")" skip="\\\\\|\\)" contains=@rubyStringSpecial,rubyNestedParentheses,rubyDelimiterEscape fold
+ syn region rubyString matchgroup=rubyStringDelimiter start="%[Qx]\z(\s\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial fold
+else
+ syn region rubyString matchgroup=rubyStringDelimiter start="%\z([~`!@#$%^&*_\-+|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial
+ syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial
+ syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\={" end="}" skip="\\\\\|\\}" contains=@rubyStringSpecial,rubyNestedCurlyBraces,rubyDelimiterEscape
+ syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=<" end=">" skip="\\\\\|\\>" contains=@rubyStringSpecial,rubyNestedAngleBrackets,rubyDelimiterEscape
+ syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=\[" end="\]" skip="\\\\\|\\\]" contains=@rubyStringSpecial,rubyNestedSquareBrackets,rubyDelimiterEscape
+ syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=(" end=")" skip="\\\\\|\\)" contains=@rubyStringSpecial,rubyNestedParentheses,rubyDelimiterEscape
+ syn region rubyString matchgroup=rubyStringDelimiter start="%[Qx]\z(\s\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial
+endif
+
+" Array of Symbols {{{1
+if s:foldable('%')
+ " Array of Symbols
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i{" end="}" skip="\\\\\|\\}" fold contains=rubyNestedCurlyBraces,rubyDelimiterEscape
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i<" end=">" skip="\\\\\|\\>" fold contains=rubyNestedAngleBrackets,rubyDelimiterEscape
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i\[" end="\]" skip="\\\\\|\\\]" fold contains=rubyNestedSquareBrackets,rubyDelimiterEscape
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i(" end=")" skip="\\\\\|\\)" fold contains=rubyNestedParentheses,rubyDelimiterEscape
+
+ " Array of interpolated Symbols
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial fold
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I{" end="}" skip="\\\\\|\\}" contains=@rubyStringSpecial,rubyNestedCurlyBraces,rubyDelimiterEscape fold
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I<" end=">" skip="\\\\\|\\>" contains=@rubyStringSpecial,rubyNestedAngleBrackets,rubyDelimiterEscape fold
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I\[" end="\]" skip="\\\\\|\\\]" contains=@rubyStringSpecial,rubyNestedSquareBrackets,rubyDelimiterEscape fold
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I(" end=")" skip="\\\\\|\\)" contains=@rubyStringSpecial,rubyNestedParentheses,rubyDelimiterEscape fold
+else
+ " Array of Symbols
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1"
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i{" end="}" skip="\\\\\|\\}" contains=rubyNestedCurlyBraces,rubyDelimiterEscape
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i<" end=">" skip="\\\\\|\\>" contains=rubyNestedAngleBrackets,rubyDelimiterEscape
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i\[" end="\]" skip="\\\\\|\\\]" contains=rubyNestedSquareBrackets,rubyDelimiterEscape
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i(" end=")" skip="\\\\\|\\)" contains=rubyNestedParentheses,rubyDelimiterEscape
+
+ " Array of interpolated Symbols
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I{" end="}" skip="\\\\\|\\}" contains=@rubyStringSpecial,rubyNestedCurlyBraces,rubyDelimiterEscape
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I<" end=">" skip="\\\\\|\\>" contains=@rubyStringSpecial,rubyNestedAngleBrackets,rubyDelimiterEscape
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I\[" end="\]" skip="\\\\\|\\\]" contains=@rubyStringSpecial,rubyNestedSquareBrackets,rubyDelimiterEscape
+ syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I(" end=")" skip="\\\\\|\\)" contains=@rubyStringSpecial,rubyNestedParentheses,rubyDelimiterEscape
+endif
+
+" Here Document {{{1
+syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<[-~]\=\zs\%(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)+ end=+$+ oneline contains=ALLBUT,@rubyNotTop
+syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<[-~]\=\zs"\%([^"]*\)"+ end=+$+ oneline contains=ALLBUT,@rubyNotTop
+syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<[-~]\=\zs'\%([^']*\)'+ end=+$+ oneline contains=ALLBUT,@rubyNotTop
+syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<[-~]\=\zs`\%([^`]*\)`+ end=+$+ oneline contains=ALLBUT,@rubyNotTop
+
+if s:foldable('<<')
+ syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<\z(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial fold keepend
+ syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<"\z([^"]*\)"\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial fold keepend
+ syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<'\z([^']*\)'\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc fold keepend
+ syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<`\z([^`]*\)`\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial fold keepend
+
+ syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]\z(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial fold keepend
+ syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]"\z([^"]*\)"\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial fold keepend
+ syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]'\z([^']*\)'\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart fold keepend
+ syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]`\z([^`]*\)`\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial fold keepend
+else
+ syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<\z(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial keepend
+ syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<"\z([^"]*\)"\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial keepend
+ syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<'\z([^']*\)'\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc keepend
+ syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<`\z([^`]*\)`\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial keepend
+
+ syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]\z(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial keepend
+ syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]"\z([^"]*\)"\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial keepend
+ syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]'\z([^']*\)'\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart keepend
+ syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]`\z([^`]*\)`\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial keepend
+endif
+" eRuby Config {{{1
if exists('main_syntax') && main_syntax == 'eruby'
let b:ruby_no_expensive = 1
end
+" Module, Class, Method and Alias Declarations {{{1
syn match rubyAliasDeclaration "[^[:space:];#.()]\+" contained contains=rubySymbol,rubyGlobalVariable,rubyPredefinedVariable nextgroup=rubyAliasDeclaration2 skipwhite
syn match rubyAliasDeclaration2 "[^[:space:];#.()]\+" contained contains=rubySymbol,rubyGlobalVariable,rubyPredefinedVariable
syn match rubyMethodDeclaration "[^[:space:];#(]\+" contained contains=rubyConstant,rubyBoolean,rubyPseudoVariable,rubyInstanceVariable,rubyClassVariable,rubyGlobalVariable
syn match rubyClassDeclaration "[^[:space:];#<]\+" contained contains=rubyConstant,rubyOperator
syn match rubyModuleDeclaration "[^[:space:];#<]\+" contained contains=rubyConstant,rubyOperator
syn match rubyFunction "\<[_[:alpha:]][_[:alnum:]]*[?!=]\=[[:alnum:]_.:?!=]\@!" contained containedin=rubyMethodDeclaration
-syn match rubyFunction "\%(\s\|^\)\@<=[_[:alpha:]][_[:alnum:]]*[?!=]\=\%(\s\|$\)\@=" contained containedin=rubyAliasDeclaration,rubyAliasDeclaration2
-syn match rubyFunction "\%([[:space:].]\|^\)\@<=\%(\[\]=\=\|\*\*\|[+-]@\=\|[*/%|&^~]\|<<\|>>\|[<>]=\=\|<=>\|===\|[=!]=\|[=!]\~\|!\|`\)\%([[:space:];#(]\|$\)\@=" contained containedin=rubyAliasDeclaration,rubyAliasDeclaration2,rubyMethodDeclaration
+syn match rubyFunction "\%(\s\|^\)\@1<=[_[:alpha:]][_[:alnum:]]*[?!=]\=\%(\s\|$\)\@=" contained containedin=rubyAliasDeclaration,rubyAliasDeclaration2
+syn match rubyFunction "\%([[:space:].]\|^\)\@2<=\%(\[\]=\=\|\*\*\|[-+!~]@\=\|[*/%|&^~]\|<<\|>>\|[<>]=\=\|<=>\|===\|[=!]=\|[=!]\~\|!\|`\)\%([[:space:];#(]\|$\)\@=" contained containedin=rubyAliasDeclaration,rubyAliasDeclaration2,rubyMethodDeclaration
syn cluster rubyDeclaration contains=rubyAliasDeclaration,rubyAliasDeclaration2,rubyMethodDeclaration,rubyModuleDeclaration,rubyClassDeclaration,rubyFunction,rubyBlockParameter
-" Keywords
+" Keywords {{{1
" Note: the following keywords have already been defined:
" begin case class def do end for if module unless until while
syn match rubyControl "\<\%(and\|break\|in\|next\|not\|or\|redo\|rescue\|retry\|return\)\>[?!]\@!"
syn match rubyOperator "\<defined?" display
syn match rubyKeyword "\<\%(super\|yield\)\>[?!]\@!"
syn match rubyBoolean "\<\%(true\|false\)\>[?!]\@!"
-syn match rubyPseudoVariable "\<\%(nil\|self\|__ENCODING__\|__FILE__\|__LINE__\|__callee__\|__method__\)\>[?!]\@!" " TODO: reorganise
+syn match rubyPseudoVariable "\<\%(nil\|self\|__ENCODING__\|__dir__\|__FILE__\|__LINE__\|__callee__\|__method__\)\>[?!]\@!" " TODO: reorganise
syn match rubyBeginEnd "\<\%(BEGIN\|END\)\>[?!]\@!"
-" Expensive Mode - match 'end' with the appropriate opening keyword for syntax
-" based folding and special highlighting of module/class/method definitions
+" Expensive Mode {{{1
+" Match 'end' with the appropriate opening keyword for syntax based folding
+" and special highlighting of module/class/method definitions
if !exists("b:ruby_no_expensive") && !exists("ruby_no_expensive")
syn match rubyDefine "\<alias\>" nextgroup=rubyAliasDeclaration skipwhite skipnl
syn match rubyDefine "\<def\>" nextgroup=rubyMethodDeclaration skipwhite skipnl
@@ -211,23 +339,66 @@ if !exists("b:ruby_no_expensive") && !exists("ruby_no_expensive")
syn match rubyClass "\<class\>" nextgroup=rubyClassDeclaration skipwhite skipnl
syn match rubyModule "\<module\>" nextgroup=rubyModuleDeclaration skipwhite skipnl
- syn region rubyMethodBlock start="\<def\>" matchgroup=rubyDefine end="\%(\<def\_s\+\)\@<!\<end\>" contains=ALLBUT,@rubyNotTop fold
- syn region rubyBlock start="\<class\>" matchgroup=rubyClass end="\<end\>" contains=ALLBUT,@rubyNotTop fold
- syn region rubyBlock start="\<module\>" matchgroup=rubyModule end="\<end\>" contains=ALLBUT,@rubyNotTop fold
+ if s:foldable('def')
+ syn region rubyMethodBlock start="\<def\>" matchgroup=rubyDefine end="\%(\<def\_s\+\)\@<!\<end\>" contains=ALLBUT,@rubyNotTop fold
+ else
+ syn region rubyMethodBlock start="\<def\>" matchgroup=rubyDefine end="\%(\<def\_s\+\)\@<!\<end\>" contains=ALLBUT,@rubyNotTop
+ endif
+
+ if s:foldable('class')
+ syn region rubyBlock start="\<class\>" matchgroup=rubyClass end="\<end\>" contains=ALLBUT,@rubyNotTop fold
+ else
+ syn region rubyBlock start="\<class\>" matchgroup=rubyClass end="\<end\>" contains=ALLBUT,@rubyNotTop
+ endif
+
+ if s:foldable('module')
+ syn region rubyBlock start="\<module\>" matchgroup=rubyModule end="\<end\>" contains=ALLBUT,@rubyNotTop fold
+ else
+ syn region rubyBlock start="\<module\>" matchgroup=rubyModule end="\<end\>" contains=ALLBUT,@rubyNotTop
+ endif
" modifiers
- syn match rubyConditionalModifier "\<\%(if\|unless\)\>" display
- syn match rubyRepeatModifier "\<\%(while\|until\)\>" display
+ syn match rubyLineContinuation "\\$" nextgroup=rubyConditionalModifier,rubyRepeatModifier skipwhite skipnl
+ syn match rubyConditionalModifier "\<\%(if\|unless\)\>"
+ syn match rubyRepeatModifier "\<\%(while\|until\)\>"
+
+ if s:foldable('do')
+ syn region rubyDoBlock matchgroup=rubyControl start="\<do\>" end="\<end\>" contains=ALLBUT,@rubyNotTop fold
+ else
+ syn region rubyDoBlock matchgroup=rubyControl start="\<do\>" end="\<end\>" contains=ALLBUT,@rubyNotTop
+ endif
- syn region rubyDoBlock matchgroup=rubyControl start="\<do\>" end="\<end\>" contains=ALLBUT,@rubyNotTop fold
" curly bracket block or hash literal
- syn region rubyCurlyBlock matchgroup=rubyCurlyBlockDelimiter start="{" end="}" contains=ALLBUT,@rubyNotTop fold
- syn region rubyArrayLiteral matchgroup=rubyArrayDelimiter start="\%(\w\|[\]})]\)\@<!\[" end="]" contains=ALLBUT,@rubyNotTop fold
+ if s:foldable('{')
+ syn region rubyCurlyBlock matchgroup=rubyCurlyBlockDelimiter start="{" end="}" contains=ALLBUT,@rubyNotTop fold
+ else
+ syn region rubyCurlyBlock matchgroup=rubyCurlyBlockDelimiter start="{" end="}" contains=ALLBUT,@rubyNotTop
+ endif
+
+ if s:foldable('[')
+ syn region rubyArrayLiteral matchgroup=rubyArrayDelimiter start="\%(\w\|[\]})]\)\@<!\[" end="]" contains=ALLBUT,@rubyNotTop fold
+ else
+ syn region rubyArrayLiteral matchgroup=rubyArrayDelimiter start="\%(\w\|[\]})]\)\@<!\[" end="]" contains=ALLBUT,@rubyNotTop
+ endif
" statements without 'do'
- syn region rubyBlockExpression matchgroup=rubyControl start="\<begin\>" end="\<end\>" contains=ALLBUT,@rubyNotTop fold
- syn region rubyCaseExpression matchgroup=rubyConditional start="\<case\>" end="\<end\>" contains=ALLBUT,@rubyNotTop fold
- syn region rubyConditionalExpression matchgroup=rubyConditional start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*/%&^|+=-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![?!]\)\s*\)\@<=\%(if\|unless\)\>" end="\%(\%(\%(\.\@<!\.\)\|::\)\s*\)\@<!\<end\>" contains=ALLBUT,@rubyNotTop fold
+ if s:foldable('begin')
+ syn region rubyBlockExpression matchgroup=rubyControl start="\<begin\>" end="\<end\>" contains=ALLBUT,@rubyNotTop fold
+ else
+ syn region rubyBlockExpression matchgroup=rubyControl start="\<begin\>" end="\<end\>" contains=ALLBUT,@rubyNotTop
+ endif
+
+ if s:foldable('case')
+ syn region rubyCaseExpression matchgroup=rubyConditional start="\<case\>" end="\<end\>" contains=ALLBUT,@rubyNotTop fold
+ else
+ syn region rubyCaseExpression matchgroup=rubyConditional start="\<case\>" end="\<end\>" contains=ALLBUT,@rubyNotTop
+ endif
+
+ if s:foldable('if')
+ syn region rubyConditionalExpression matchgroup=rubyConditional start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*%&^|+=-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![?!]\)\s*\)\@<=\%(if\|unless\)\>" end="\%(\%(\%(\.\@1<!\.\)\|::\)\s*\)\@<!\<end\>" contains=ALLBUT,@rubyNotTop fold
+ else
+ syn region rubyConditionalExpression matchgroup=rubyConditional start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*%&^|+=-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![?!]\)\s*\)\@<=\%(if\|unless\)\>" end="\%(\%(\%(\.\@1<!\.\)\|::\)\s*\)\@<!\<end\>" contains=ALLBUT,@rubyNotTop
+ endif
syn match rubyConditional "\<\%(then\|else\|when\)\>[?!]\@!" contained containedin=rubyCaseExpression
syn match rubyConditional "\<\%(then\|else\|elsif\)\>[?!]\@!" contained containedin=rubyConditionalExpression
@@ -237,7 +408,12 @@ if !exists("b:ruby_no_expensive") && !exists("ruby_no_expensive")
" statements with optional 'do'
syn region rubyOptionalDoLine matchgroup=rubyRepeat start="\<for\>[?!]\@!" start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*/%&^|+-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![!=?]\)\s*\)\@<=\<\%(until\|while\)\>" matchgroup=rubyOptionalDo end="\%(\<do\>\)" end="\ze\%(;\|$\)" oneline contains=ALLBUT,@rubyNotTop
- syn region rubyRepeatExpression start="\<for\>[?!]\@!" start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*/%&^|+-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![!=?]\)\s*\)\@<=\<\%(until\|while\)\>" matchgroup=rubyRepeat end="\<end\>" contains=ALLBUT,@rubyNotTop nextgroup=rubyOptionalDoLine fold
+
+ if s:foldable('for')
+ syn region rubyRepeatExpression start="\<for\>[?!]\@!" start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*/%&^|+-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![!=?]\)\s*\)\@<=\<\%(until\|while\)\>" matchgroup=rubyRepeat end="\<end\>" contains=ALLBUT,@rubyNotTop nextgroup=rubyOptionalDoLine fold
+ else
+ syn region rubyRepeatExpression start="\<for\>[?!]\@!" start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*/%&^|+-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![!=?]\)\s*\)\@<=\<\%(until\|while\)\>" matchgroup=rubyRepeat end="\<end\>" contains=ALLBUT,@rubyNotTop nextgroup=rubyOptionalDoLine
+ endif
if !exists("ruby_minlines")
let ruby_minlines = 500
@@ -252,7 +428,7 @@ else
syn match rubyKeyword "\<\%(alias\|undef\)\>[?!]\@!"
endif
-" Special Methods
+" Special Methods {{{1
if !exists("ruby_no_special_methods")
syn keyword rubyAccess public protected private public_class_method private_class_method public_constant private_constant module_function
" attr is a common variable name
@@ -263,40 +439,40 @@ if !exists("ruby_no_special_methods")
syn keyword rubyException raise fail catch throw
" false positive with 'include?'
syn match rubyInclude "\<include\>[?!]\@!"
- syn keyword rubyInclude autoload extend load prepend require require_relative
+ syn keyword rubyInclude autoload extend load prepend refine require require_relative using
syn keyword rubyKeyword callcc caller lambda proc
endif
-" Comments and Documentation
+" Comments and Documentation {{{1
syn match rubySharpBang "\%^#!.*" display
-syn keyword rubyTodo FIXME NOTE TODO OPTIMIZE XXX todo contained
+syn keyword rubyTodo FIXME NOTE TODO OPTIMIZE HACK REVIEW XXX todo contained
syn match rubyComment "#.*" contains=rubySharpBang,rubySpaceError,rubyTodo,@Spell
-if !exists("ruby_no_comment_fold")
- syn region rubyMultilineComment start="\%(\%(^\s*#.*\n\)\@<!\%(^\s*#.*\n\)\)\%(\(^\s*#.*\n\)\{1,}\)\@=" end="\%(^\s*#.*\n\)\@<=\%(^\s*#.*\n\)\%(^\s*#\)\@!" contains=rubyComment transparent fold keepend
+if !exists("ruby_no_comment_fold") && s:foldable('#')
+ syn region rubyMultilineComment start="^\s*#.*\n\%(^\s*#\)\@=" end="^\s*#.*\n\%(^\s*#\)\@!" contains=rubyComment transparent fold keepend
syn region rubyDocumentation start="^=begin\ze\%(\s.*\)\=$" end="^=end\%(\s.*\)\=$" contains=rubySpaceError,rubyTodo,@Spell fold
else
syn region rubyDocumentation start="^=begin\s*$" end="^=end\s*$" contains=rubySpaceError,rubyTodo,@Spell
endif
+" Keyword Nobbling {{{1
" Note: this is a hack to prevent 'keywords' being highlighted as such when called as methods with an explicit receiver
-syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(alias\|and\|begin\|break\|case\|class\|def\|defined\|do\|else\)\>" transparent contains=NONE
-syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(elsif\|end\|ensure\|false\|for\|if\|in\|module\|next\|nil\)\>" transparent contains=NONE
-syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(not\|or\|redo\|rescue\|retry\|return\|self\|super\|then\|true\)\>" transparent contains=NONE
-syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(undef\|unless\|until\|when\|while\|yield\|BEGIN\|END\|__FILE__\|__LINE__\)\>" transparent contains=NONE
-
-syn match rubyKeywordAsMethod "\<\%(alias\|begin\|case\|class\|def\|do\|end\)[?!]" transparent contains=NONE
-syn match rubyKeywordAsMethod "\<\%(if\|module\|undef\|unless\|until\|while\)[?!]" transparent contains=NONE
-
-syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(abort\|at_exit\|attr\|attr_accessor\|attr_reader\)\>" transparent contains=NONE
-syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(attr_writer\|autoload\|callcc\|catch\|caller\)\>" transparent contains=NONE
-syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(eval\|class_eval\|instance_eval\|module_eval\|exit\)\>" transparent contains=NONE
-syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(extend\|fail\|fork\|include\|lambda\)\>" transparent contains=NONE
-syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(load\|loop\|prepend\|private\|proc\|protected\)\>" transparent contains=NONE
-syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(public\|require\|require_relative\|raise\|throw\|trap\)\>" transparent contains=NONE
-
-" __END__ Directive
-syn region rubyData matchgroup=rubyDataDirective start="^__END__$" end="\%$" fold
+syn match rubyKeywordAsMethod "\%(\%(\.\@1<!\.\)\|::\)\_s*\%([_[:lower:]][_[:alnum:]]*\|\<\%(BEGIN\|END\)\>\)" transparent contains=NONE
+syn match rubyKeywordAsMethod "\(defined?\|exit!\)\@!\<[_[:lower:]][_[:alnum:]]*[?!]" transparent contains=NONE
+
+" More Symbols {{{1
+syn match rubySymbol "\%([{(,]\_s*\)\zs\l\w*[!?]\=::\@!"he=e-1
+syn match rubySymbol "[]})\"':]\@1<!\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[!?]\=:[[:space:],]\@="he=e-1
+syn match rubySymbol "\%([{(,]\_s*\)\zs[[:space:],{]\l\w*[!?]\=::\@!"hs=s+1,he=e-1
+syn match rubySymbol "[[:space:],{(]\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[!?]\=:[[:space:],]\@="hs=s+1,he=e-1
+
+" __END__ Directive {{{1
+if s:foldable('__END__')
+ syn region rubyData matchgroup=rubyDataDirective start="^__END__$" end="\%$" fold
+else
+ syn region rubyData matchgroup=rubyDataDirective start="^__END__$" end="\%$"
+endif
+" Default Highlighting {{{1
hi def link rubyClass rubyDefine
hi def link rubyModule rubyDefine
hi def link rubyMethodExceptional rubyDefine
@@ -336,6 +512,7 @@ hi def link rubyAccess Statement
hi def link rubyAttribute Statement
hi def link rubyEval Statement
hi def link rubyPseudoVariable Constant
+hi def link rubyCapitalizedMethod rubyLocalVariableOrMethod
hi def link rubyComment Comment
hi def link rubyData Comment
@@ -349,7 +526,7 @@ hi def link rubyInterpolationDelimiter Delimiter
hi def link rubyNoInterpolation rubyString
hi def link rubySharpBang PreProc
hi def link rubyRegexpDelimiter rubyStringDelimiter
-hi def link rubySymbolDelimiter rubyStringDelimiter
+hi def link rubySymbolDelimiter rubySymbol
hi def link rubyStringDelimiter Delimiter
hi def link rubyHeredoc rubyString
hi def link rubyString String
@@ -366,6 +543,10 @@ hi def link rubyInvalidVariable Error
hi def link rubyError Error
hi def link rubySpaceError rubyError
+" Postscript {{{1
let b:current_syntax = "ruby"
-" vim: nowrap sw=2 sts=2 ts=8 noet:
+let &cpo = s:cpo_sav
+unlet! s:cpo_sav
+
+" vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker:
diff --git a/runtime/syntax/rust.vim b/runtime/syntax/rust.vim
new file mode 100644
index 0000000000..57343301e0
--- /dev/null
+++ b/runtime/syntax/rust.vim
@@ -0,0 +1,295 @@
+" Vim syntax file
+" Language: Rust
+" Maintainer: Patrick Walton <pcwalton@mozilla.com>
+" Maintainer: Ben Blum <bblum@cs.cmu.edu>
+" Maintainer: Chris Morgan <me@chrismorgan.info>
+" Last Change: Feb 24, 2016
+" 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 for loop while
+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 /\<union\_s\+\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*/ transparent contains=rustUnion
+syn keyword rustOperator as
+
+syn match rustAssert "\<assert\(\w\)*!" contained
+syn match rustPanic "\<panic\(\w\)*!" contained
+syn keyword rustKeyword break
+syn keyword rustKeyword box nextgroup=rustBoxPlacement skipwhite skipempty
+syn keyword rustKeyword continue
+syn keyword rustKeyword extern nextgroup=rustExternCrate,rustObsoleteExternMod skipwhite skipempty
+syn keyword rustKeyword fn nextgroup=rustFuncName skipwhite skipempty
+syn keyword rustKeyword in impl let
+syn keyword rustKeyword pub nextgroup=rustPubScope skipwhite skipempty
+syn keyword rustKeyword return
+syn keyword rustSuper super
+syn keyword rustKeyword unsafe where
+syn keyword rustKeyword use nextgroup=rustModPath skipwhite skipempty
+" FIXME: Scoped impl's name is also fallen in this category
+syn keyword rustKeyword mod trait nextgroup=rustIdentifier skipwhite skipempty
+syn keyword rustStorage move mut ref static const
+syn match rustDefault /\<default\ze\_s\+\(impl\|fn\|type\|const\)\>/
+
+syn keyword rustInvalidBareKeyword crate
+
+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 "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained
+
+syn region rustBoxPlacement matchgroup=rustBoxPlacementParens start="(" end=")" contains=TOP contained
+" Ideally we'd have syntax rules set up to match arbitrary expressions. Since
+" we don't, we'll just define temporary contained rules to handle balancing
+" delimiters.
+syn region rustBoxPlacementBalance start="(" end=")" containedin=rustBoxPlacement transparent
+syn region rustBoxPlacementBalance start="\[" end="\]" containedin=rustBoxPlacement transparent
+" {} are handled by rustFoldBraces
+
+syn region rustMacroRepeat matchgroup=rustMacroRepeatDelimiters start="$(" end=")" contains=TOP nextgroup=rustMacroRepeatCount
+syn match rustMacroRepeatCount ".\?[*+]" contained
+syn match rustMacroVariable "$\w\+"
+
+" Reserved (but not yet used) keywords {{{2
+syn keyword rustReservedKeyword alignof become do offsetof priv pure sizeof typeof unsized yield abstract virtual final override macro
+
+" Built-in types {{{2
+syn keyword rustType isize usize char bool u8 u16 u32 u64 u128 f32
+syn keyword rustType f64 i8 i16 i32 i64 i128 str Self
+
+" Things from the libstd v1 prelude (src/libstd/prelude/v1.rs) {{{2
+" This section is just straight transformation of the contents of the prelude,
+" to make it easy to update.
+
+" Reexported core operators {{{3
+syn keyword rustTrait Copy Send Sized Sync
+syn keyword rustTrait Drop Fn FnMut FnOnce
+
+" Reexported functions {{{3
+" There’s no point in highlighting these; when one writes drop( or drop::< it
+" gets the same highlighting anyway, and if someone writes `let drop = …;` we
+" don’t really want *that* drop to be highlighted.
+"syn keyword rustFunction drop
+
+" Reexported types and traits {{{3
+syn keyword rustTrait Box
+syn keyword rustTrait ToOwned
+syn keyword rustTrait Clone
+syn keyword rustTrait PartialEq PartialOrd Eq Ord
+syn keyword rustTrait AsRef AsMut Into From
+syn keyword rustTrait Default
+syn keyword rustTrait Iterator Extend IntoIterator
+syn keyword rustTrait DoubleEndedIterator ExactSizeIterator
+syn keyword rustEnum Option
+syn keyword rustEnumVariant Some None
+syn keyword rustEnum Result
+syn keyword rustEnumVariant Ok Err
+syn keyword rustTrait SliceConcatExt
+syn keyword rustTrait String ToString
+syn keyword rustTrait Vec
+
+" Other syntax {{{2
+syn keyword rustSelf self
+syn keyword rustBoolean true false
+
+" If foo::bar changes to foo.bar, change this ("::" to "\.").
+" If foo::bar changes to Foo::bar, change this (first "\w" to "\u").
+syn match rustModPath "\w\(\w\)*::[^<]"he=e-3,me=e-3
+syn match rustModPathSep "::"
+
+syn match rustFuncCall "\w\(\w\)*("he=e-1,me=e-1
+syn match rustFuncCall "\w\(\w\)*::<"he=e-3,me=e-3 " foo::<T>();
+
+" 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 start=+b"+ skip=+\\\\\|\\"+ end=+"+ contains=rustEscape,rustEscapeError,rustStringContinuation
+syn region rustString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=rustEscape,rustEscapeUnicode,rustEscapeError,rustStringContinuation,@Spell
+syn region rustString start='b\?r\z(#*\)"' end='"\z1' contains=@Spell
+
+syn region rustAttribute start="#!\?\[" end="\]" contains=rustString,rustDerive,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
+
+" Number literals
+syn match rustDecNumber display "\<[0-9][0-9_]*\%([iu]\%(size\|8\|16\|32\|64\|128\)\)\="
+syn match rustHexNumber display "\<0x[a-fA-F0-9_]\+\%([iu]\%(size\|8\|16\|32\|64\|128\)\)\="
+syn match rustOctNumber display "\<0o[0-7_]\+\%([iu]\%(size\|8\|16\|32\|64\|128\)\)\="
+syn match rustBinNumber display "\<0b[01_]\+\%([iu]\%(size\|8\|16\|32\|64\|128\)\)\="
+
+" Special case for numbers of the form "1." which are float literals, unless followed by
+" an identifier, which makes them integer literals with a method call or field access,
+" or by another ".", which makes them integer literals followed by the ".." token.
+" (This must go first so the others take precedence.)
+syn match rustFloat display "\<[0-9][0-9_]*\.\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\|\.\)\@!"
+" To mark a number as a normal float, it must have at least one of the three things integral values don't have:
+" a decimal point and more numbers; an exponent; and a type suffix.
+syn match rustFloat display "\<[0-9][0-9_]*\%(\.[0-9][0-9_]*\)\%([eE][+-]\=[0-9_]\+\)\=\(f32\|f64\)\="
+syn match rustFloat display "\<[0-9][0-9_]*\%(\.[0-9][0-9_]*\)\=\%([eE][+-]\=[0-9_]\+\)\(f32\|f64\)\="
+syn match rustFloat display "\<[0-9][0-9_]*\%(\.[0-9][0-9_]*\)\=\%([eE][+-]\=[0-9_]\+\)\=\(f32\|f64\)"
+
+" For the benefit of delimitMate
+syn region rustLifetimeCandidate display start=/&'\%(\([^'\\]\|\\\(['nrt0\\\"]\|x\x\{2}\|u{\x\{1,6}}\)\)'\)\@!/ end=/[[:cntrl:][:space:][:punct:]]\@=\|$/ contains=rustSigil,rustLifetime
+syn region rustGenericRegion display start=/<\%('\|[^[cntrl:][:space:][:punct:]]\)\@=')\S\@=/ end=/>/ 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 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,@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 ``\*\@<!`` at the start of them; it makes it worse, as
+" then you must deal with cases like ``/*/**/*/``. And don't try making it
+" worse with ``\%(/\@<!\*\)\@<!``, either...
+
+syn keyword rustTodo contained TODO FIXME XXX NB NOTE
+
+" Folding rules {{{2
+" Trivial folding rules to begin with.
+" FIXME: use the AST to make really good folding
+syn region rustFoldBraces start="{" end="}" transparent fold
+
+" 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 rustMacroRepeatCount rustMacroRepeatDelimiters
+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 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 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 rustPubScopeDelim Delimiter
+hi def link rustPubScopeCrate rustKeyword
+hi def link rustSuper rustKeyword
+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 rustCommentLineDocError Error
+hi def link rustCommentBlock rustCommentLine
+hi def link rustCommentBlockDoc rustCommentLineDoc
+hi def link rustCommentBlockDocError Error
+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 rustInvalidBareKeyword Error
+hi def link rustExternCrate rustKeyword
+hi def link rustObsoleteExternMod Error
+hi def link rustBoxPlacementParens Delimiter
+hi def link rustQuestionMark Special
+
+" 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"
diff --git a/runtime/syntax/samba.vim b/runtime/syntax/samba.vim
index 93029cc202..5b866cc6d9 100644
--- a/runtime/syntax/samba.vim
+++ b/runtime/syntax/samba.vim
@@ -8,11 +8,8 @@
"
" Don't forget to run your config file through testparm(1)!
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -107,24 +104,14 @@ syn keyword sambaKeyword contained shutdown signing special spnego
syn keyword sambaKeyword contained store unknown unwriteable
" 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_samba_syn_inits")
- if version < 508
- let did_samba_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink sambaParameter Normal
- HiLink sambaKeyword Type
- HiLink sambaSection Statement
- HiLink sambaMacro PreProc
- HiLink sambaComment Comment
- HiLink sambaContinue Operator
- HiLink sambaBoolean Constant
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/sas.vim b/runtime/syntax/sas.vim
index dc70e1fd90..fad6066737 100644
--- a/runtime/syntax/sas.vim
+++ b/runtime/syntax/sas.vim
@@ -1,279 +1,259 @@
" Vim syntax file
-" Language: SAS
-" Maintainer: James Kidd <james.kidd@covance.com>
-" Last Change: 2012 Apr 20
-" Corrected bug causing some keywords to appear as strings instead
-" 18 Jul 2008 by Paulo Tanimoto <ptanimoto@gmail.com>
-" Fixed comments with * taking multiple lines.
-" Fixed highlighting of macro keywords.
-" Added words to cases that didn't fit anywhere.
-" 02 Jun 2003
-" Added highlighting for additional keywords and such;
-" Attempted to match SAS default syntax colors;
-" Changed syncing so it doesn't lose colors on large blocks;
-" Much thanks to Bob Heckel for knowledgeable tweaking.
-" 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
-
-syn case ignore
-
-syn region sasString start=+"+ skip=+\\\\\|\\"+ end=+"+
-syn region sasString start=+'+ skip=+\\\\\|\\"+ end=+'+
-
-" Want region from 'cards;' to ';' to be captured (Bob Heckel)
-syn region sasCards start="^\s*CARDS.*" end="^\s*;\s*$"
-syn region sasCards start="^\s*DATALINES.*" end="^\s*;\s*$"
-
-syn match sasNumber "-\=\<\d*\.\=[0-9_]\>"
-
-" Block comment
-syn region sasComment start="/\*" end="\*/" contains=sasTodo
-
-" Ignore misleading //JCL SYNTAX... (Bob Heckel)
-syn region sasComment start="[^/][^/]/\*" end="\*/" contains=sasTodo
-
-" Previous code for comments was written by Bob Heckel
-" Comments with * may take multiple lines (Paulo Tanimoto)
-syn region sasComment start=";\s*\*"hs=s+1 end=";" contains=sasTodo
-
-" Comments with * starting after a semicolon (Paulo Tanimoto)
-syn region sasComment start="^\s*\*" end=";" contains=sasTodo
-
-" This line defines macro variables in code. HiLink at end of file
-" defines the color scheme. Begin region with ampersand and end with
-" any non-word character offset by -1; put ampersand in the skip list
-" just in case it is used to concatenate macro variable values.
-
-" Thanks to ronald hllwarth for this fix to an intra-versioning
-" problem with this little feature
+" Language: SAS
+" Maintainer: Zhen-Huan Hu <wildkeny@gmail.com>
+" Original Maintainer: James Kidd <james.kidd@covance.com>
+" 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
- syn region sasMacroVar start="\&" skip="[_&]" end="\W"he=e-1
-else " for the older Vim's just do it their way ...
- syn region sasMacroVar start="&" skip="[_&]" end="\W"he=e-1
+ syntax clear
+elseif exists('b:current_syntax')
+ finish
endif
+let s:cpo_save = &cpo
+set cpo&vim
-" I dont think specific PROCs need to be listed if use this line (Bob Heckel).
-syn match sasProc "^\s*PROC \w\+"
-syn keyword sasStep RUN QUIT DATA
-
-
-" Base SAS Procs - version 8.1
-
-syn keyword sasConditional DO ELSE END IF THEN UNTIL WHILE
-
-syn keyword sasStatement ABORT ARRAY ATTRIB BY CALL CARDS CARDS4 CATNAME
-syn keyword sasStatement CONTINUE DATALINES DATALINES4 DELETE DISPLAY
-syn keyword sasStatement DM DROP ENDSAS ERROR FILE FILENAME FOOTNOTE
-syn keyword sasStatement FORMAT GOTO INFILE INFORMAT INPUT KEEP
-syn keyword sasStatement LABEL LEAVE LENGTH LIBNAME LINK LIST LOSTCARD
-syn keyword sasStatement MERGE MISSING MODIFY OPTIONS OUTPUT PAGE
-syn keyword sasStatement PUT REDIRECT REMOVE RENAME REPLACE RETAIN
-syn keyword sasStatement RETURN SELECT SET SKIP STARTSAS STOP TITLE
-syn keyword sasStatement UPDATE WAITSAS WHERE WINDOW X SYSTASK
-
-" Keywords that are used in Proc SQL
-" I left them as statements because SAS's enhanced editor highlights
-" them the same as normal statements used in data steps (Jim Kidd)
-
-syn keyword sasStatement ADD AND ALTER AS CASCADE CHECK CREATE
-syn keyword sasStatement DELETE DESCRIBE DISTINCT DROP FOREIGN
-syn keyword sasStatement FROM GROUP HAVING INDEX INSERT INTO IN
-syn keyword sasStatement KEY LIKE MESSAGE MODIFY MSGTYPE NOT
-syn keyword sasStatement NULL ON OR ORDER PRIMARY REFERENCES
-syn keyword sasStatement RESET RESTRICT SELECT SET TABLE
-syn keyword sasStatement UNIQUE UPDATE VALIDATE VIEW WHERE
-
-" Match declarations have to appear one per line (Paulo Tanimoto)
-syn match sasStatement "FOOTNOTE\d"
-syn match sasStatement "TITLE\d"
-
-" Match declarations have to appear one per line (Paulo Tanimoto)
-syn match sasMacro "%BQUOTE"
-syn match sasMacro "%NRBQUOTE"
-syn match sasMacro "%CMPRES"
-syn match sasMacro "%QCMPRES"
-syn match sasMacro "%COMPSTOR"
-syn match sasMacro "%DATATYP"
-syn match sasMacro "%DISPLAY"
-syn match sasMacro "%DO"
-syn match sasMacro "%ELSE"
-syn match sasMacro "%END"
-syn match sasMacro "%EVAL"
-syn match sasMacro "%GLOBAL"
-syn match sasMacro "%GOTO"
-syn match sasMacro "%IF"
-syn match sasMacro "%INDEX"
-syn match sasMacro "%INPUT"
-syn match sasMacro "%KEYDEF"
-syn match sasMacro "%LABEL"
-syn match sasMacro "%LEFT"
-syn match sasMacro "%LENGTH"
-syn match sasMacro "%LET"
-syn match sasMacro "%LOCAL"
-syn match sasMacro "%LOWCASE"
-syn match sasMacro "%MACRO"
-syn match sasMacro "%MEND"
-syn match sasMacro "%NRBQUOTE"
-syn match sasMacro "%NRQUOTE"
-syn match sasMacro "%NRSTR"
-syn match sasMacro "%PUT"
-syn match sasMacro "%QCMPRES"
-syn match sasMacro "%QLEFT"
-syn match sasMacro "%QLOWCASE"
-syn match sasMacro "%QSCAN"
-syn match sasMacro "%QSUBSTR"
-syn match sasMacro "%QSYSFUNC"
-syn match sasMacro "%QTRIM"
-syn match sasMacro "%QUOTE"
-syn match sasMacro "%QUPCASE"
-syn match sasMacro "%SCAN"
-syn match sasMacro "%STR"
-syn match sasMacro "%SUBSTR"
-syn match sasMacro "%SUPERQ"
-syn match sasMacro "%SYSCALL"
-syn match sasMacro "%SYSEVALF"
-syn match sasMacro "%SYSEXEC"
-syn match sasMacro "%SYSFUNC"
-syn match sasMacro "%SYSGET"
-syn match sasMacro "%SYSLPUT"
-syn match sasMacro "%SYSPROD"
-syn match sasMacro "%SYSRC"
-syn match sasMacro "%SYSRPUT"
-syn match sasMacro "%THEN"
-syn match sasMacro "%TO"
-syn match sasMacro "%TRIM"
-syn match sasMacro "%UNQUOTE"
-syn match sasMacro "%UNTIL"
-syn match sasMacro "%UPCASE"
-syn match sasMacro "%VERIFY"
-syn match sasMacro "%WHILE"
-syn match sasMacro "%WINDOW"
-
-" SAS Functions
-
-syn keyword sasFunction ABS ADDR AIRY ARCOS ARSIN ATAN ATTRC ATTRN
-syn keyword sasFunction BAND BETAINV BLSHIFT BNOT BOR BRSHIFT BXOR
-syn keyword sasFunction BYTE CDF CEIL CEXIST CINV CLOSE CNONCT COLLATE
-syn keyword sasFunction COMPBL COMPOUND COMPRESS COS COSH CSS CUROBS
-syn keyword sasFunction CV DACCDB DACCDBSL DACCSL DACCSYD DACCTAB
-syn keyword sasFunction DAIRY DATE DATEJUL DATEPART DATETIME DAY
-syn keyword sasFunction DCLOSE DEPDB DEPDBSL DEPDBSL DEPSL DEPSL
-syn keyword sasFunction DEPSYD DEPSYD DEPTAB DEPTAB DEQUOTE DHMS
-syn keyword sasFunction DIF DIGAMMA DIM DINFO DNUM DOPEN DOPTNAME
-syn keyword sasFunction DOPTNUM DREAD DROPNOTE DSNAME ERF ERFC EXIST
-syn keyword sasFunction EXP FAPPEND FCLOSE FCOL FDELETE FETCH FETCHOBS
-syn keyword sasFunction FEXIST FGET FILEEXIST FILENAME FILEREF FINFO
-syn keyword sasFunction FINV FIPNAME FIPNAMEL FIPSTATE FLOOR FNONCT
-syn keyword sasFunction FNOTE FOPEN FOPTNAME FOPTNUM FPOINT FPOS
-syn keyword sasFunction FPUT FREAD FREWIND FRLEN FSEP FUZZ FWRITE
-syn keyword sasFunction GAMINV GAMMA GETOPTION GETVARC GETVARN HBOUND
-syn keyword sasFunction HMS HOSTHELP HOUR IBESSEL INDEX INDEXC
-syn keyword sasFunction INDEXW INPUT INPUTC INPUTN INT INTCK INTNX
-syn keyword sasFunction INTRR IRR JBESSEL JULDATE KURTOSIS LAG LBOUND
-syn keyword sasFunction LEFT LENGTH LGAMMA LIBNAME LIBREF LOG LOG10
-syn keyword sasFunction LOG2 LOGPDF LOGPMF LOGSDF LOWCASE MAX MDY
-syn keyword sasFunction MEAN MIN MINUTE MOD MONTH MOPEN MORT N
-syn keyword sasFunction NETPV NMISS NORMAL NOTE NPV OPEN ORDINAL
-syn keyword sasFunction PATHNAME PDF PEEK PEEKC PMF POINT POISSON POKE
-syn keyword sasFunction PROBBETA PROBBNML PROBCHI PROBF PROBGAM
-syn keyword sasFunction PROBHYPR PROBIT PROBNEGB PROBNORM PROBT PUT
-syn keyword sasFunction PUTC PUTN QTR QUOTE RANBIN RANCAU RANEXP
-syn keyword sasFunction RANGAM RANGE RANK RANNOR RANPOI RANTBL RANTRI
-syn keyword sasFunction RANUNI REPEAT RESOLVE REVERSE REWIND RIGHT
-syn keyword sasFunction ROUND SAVING SCAN SDF SECOND SIGN SIN SINH
-syn keyword sasFunction SKEWNESS SOUNDEX SPEDIS SQRT STD STDERR STFIPS
-syn keyword sasFunction STNAME STNAMEL SUBSTR SUM SYMGET SYSGET SYSMSG
-syn keyword sasFunction SYSPROD SYSRC SYSTEM TAN TANH TIME TIMEPART
-syn keyword sasFunction TINV TNONCT TODAY TRANSLATE TRANWRD TRIGAMMA
-syn keyword sasFunction TRIM TRIMN TRUNC UNIFORM UPCASE USS VAR
-syn keyword sasFunction VARFMT VARINFMT VARLABEL VARLEN VARNAME
-syn keyword sasFunction VARNUM VARRAY VARRAYX VARTYPE VERIFY VFORMAT
-syn keyword sasFunction VFORMATD VFORMATDX VFORMATN VFORMATNX VFORMATW
-syn keyword sasFunction VFORMATWX VFORMATX VINARRAY VINARRAYX VINFORMAT
-syn keyword sasFunction VINFORMATD VINFORMATDX VINFORMATN VINFORMATNX
-syn keyword sasFunction VINFORMATW VINFORMATWX VINFORMATX VLABEL
-syn keyword sasFunction VLABELX VLENGTH VLENGTHX VNAME VNAMEX VTYPE
-syn keyword sasFunction VTYPEX WEEKDAY YEAR YYQ ZIPFIPS ZIPNAME ZIPNAMEL
-syn keyword sasFunction ZIPSTATE
-
-" Handy settings for using vim with log files
-syn keyword sasLogMsg NOTE
-syn keyword sasWarnMsg WARNING
-syn keyword sasErrMsg ERROR
-
-" Always contained in a comment (Bob Heckel)
-syn keyword sasTodo TODO TBD FIXME contained
-
-" These don't fit anywhere else (Bob Heckel).
-" Added others that were missing.
-syn keyword sasUnderscore _ALL_ _AUTOMATIC_ _CHARACTER_ _INFILE_ _N_ _NAME_ _NULL_ _NUMERIC_ _USER_ _WEBOUT_
-
-" End of SAS Functions
-
-" 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_sas_syntax_inits")
- if version < 508
- let did_sas_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " Default sas enhanced editor color syntax
- hi sComment term=bold cterm=NONE ctermfg=Green ctermbg=Black gui=NONE guifg=DarkGreen guibg=White
- hi sCard term=bold cterm=NONE ctermfg=Black ctermbg=Yellow gui=NONE guifg=Black guibg=LightYellow
- hi sDate_Time term=NONE cterm=bold ctermfg=Green ctermbg=Black gui=bold guifg=SeaGreen guibg=White
- hi sKeyword term=NONE cterm=NONE ctermfg=Blue ctermbg=Black gui=NONE guifg=Blue guibg=White
- hi sFmtInfmt term=NONE cterm=NONE ctermfg=LightGreen ctermbg=Black gui=NONE guifg=SeaGreen guibg=White
- hi sString term=NONE cterm=NONE ctermfg=Magenta ctermbg=Black gui=NONE guifg=Purple guibg=White
- hi sText term=NONE cterm=NONE ctermfg=White ctermbg=Black gui=bold guifg=Black guibg=White
- hi sNumber term=NONE cterm=bold ctermfg=Green ctermbg=Black gui=bold guifg=SeaGreen guibg=White
- hi sProc term=NONE cterm=bold ctermfg=Blue ctermbg=Black gui=bold guifg=Navy guibg=White
- hi sSection term=NONE cterm=bold ctermfg=Blue ctermbg=Black gui=bold guifg=Navy guibg=White
- hi mDefine term=NONE cterm=bold ctermfg=White ctermbg=Black gui=bold guifg=Black guibg=White
- hi mKeyword term=NONE cterm=NONE ctermfg=Blue ctermbg=Black gui=NONE guifg=Blue guibg=White
- hi mReference term=NONE cterm=bold ctermfg=White ctermbg=Black gui=bold guifg=Blue guibg=White
- hi mSection term=NONE cterm=NONE ctermfg=Blue ctermbg=Black gui=bold guifg=Navy guibg=White
- hi mText term=NONE cterm=NONE ctermfg=White ctermbg=Black gui=bold guifg=Black guibg=White
-
-" Colors that closely match SAS log colors for default color scheme
- hi lError term=NONE cterm=NONE ctermfg=Red ctermbg=Black gui=none guifg=Red guibg=White
- hi lWarning term=NONE cterm=NONE ctermfg=Green ctermbg=Black gui=none guifg=Green guibg=White
- hi lNote term=NONE cterm=NONE ctermfg=Cyan ctermbg=Black gui=none guifg=Blue guibg=White
-
-
- " Special hilighting for the SAS proc section
+syn case ignore
- HiLink sasComment sComment
- HiLink sasConditional sKeyword
- HiLink sasStep sSection
- HiLink sasFunction sKeyword
- HiLink sasMacro mKeyword
- HiLink sasMacroVar NonText
- HiLink sasNumber sNumber
- HiLink sasStatement sKeyword
- HiLink sasString sString
- HiLink sasProc sProc
- " (Bob Heckel)
- HiLink sasTodo Todo
- HiLink sasErrMsg lError
- HiLink sasWarnMsg lWarning
- HiLink sasLogMsg lNote
- HiLink sasCards sCard
- " (Bob Heckel)
- HiLink sasUnderscore PreProc
- delcommand HiLink
-endif
+" 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.
@@ -281,4 +261,5 @@ syn sync fromstart
let b:current_syntax = "sas"
-" vim: ts=8
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/sass.vim b/runtime/syntax/sass.vim
index 2ea0722696..d075c8736e 100644
--- a/runtime/syntax/sass.vim
+++ b/runtime/syntax/sass.vim
@@ -2,7 +2,7 @@
" Language: Sass
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Filenames: *.sass
-" Last Change: 2013 May 30
+" Last Change: 2016 Aug 29
if exists("b:current_syntax")
finish
@@ -13,7 +13,7 @@ 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,scssComment,cssValue.*,cssColor,cssURL,sassDefault,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssRenderProp
+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
@@ -58,6 +58,9 @@ syn match sassAmpersand "&"
" TODO: Attribute namespaces
" TODO: Arithmetic (including strings and concatenation)
+syn region sassMediaQuery matchgroup=sassMedia start="@media" end="[{};]\@=\|$" contains=sassMediaOperators
+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
@@ -67,7 +70,9 @@ 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 sassDefault cssImportant
@@ -80,6 +85,9 @@ 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
diff --git a/runtime/syntax/sather.vim b/runtime/syntax/sather.vim
index 103cf0b8cd..baa3a825d8 100644
--- a/runtime/syntax/sather.vim
+++ b/runtime/syntax/sather.vim
@@ -9,11 +9,8 @@
" Homepage: http://www.icsi.berkeley.edu/~sather
" Sather files use .sa as suffix
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -61,44 +58,34 @@ syn match satherComment "--.*" contains=satherComment2String,satherCharacter
syn sync ccomment satherComment
" 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_sather_syn_inits")
- if version < 508
- let did_sather_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink satherBranch satherStatement
- HiLink satherLabel satherStatement
- HiLink satherConditional satherStatement
- HiLink satherSynchronize satherStatement
- HiLink satherRepeat satherStatement
- HiLink satherExceptions satherStatement
- HiLink satherStorageClass satherDeclarative
- HiLink satherMethodDecl satherDeclarative
- HiLink satherClassDecl satherDeclarative
- HiLink satherScopeDecl satherDeclarative
- HiLink satherBoolValue satherValue
- HiLink satherSpecial satherValue
- HiLink satherString satherValue
- HiLink satherCharacter satherValue
- HiLink satherSpecialCharacter satherValue
- HiLink satherNumber satherValue
- HiLink satherStatement Statement
- HiLink satherOperator Statement
- HiLink satherComment Comment
- HiLink satherType Type
- HiLink satherValue String
- HiLink satherString String
- HiLink satherSpecial String
- HiLink satherCharacter String
- HiLink satherDeclarative Type
- HiLink satherExternal PreCondit
- delcommand HiLink
-endif
+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"
diff --git a/runtime/syntax/sbt.vim b/runtime/syntax/sbt.vim
new file mode 100644
index 0000000000..cbf73beafe
--- /dev/null
+++ b/runtime/syntax/sbt.vim
@@ -0,0 +1,32 @@
+" Vim syntax file
+" Language: sbt
+" Maintainer: Steven Dobay <stevendobay at protonmail.com>
+" 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 0000000000..c5a175fd77
--- /dev/null
+++ b/runtime/syntax/scala.vim
@@ -0,0 +1,232 @@
+" Vim syntax file
+" Language: Scala
+" Maintainer: Derek Wyatt
+" URL: https://github.com/derekwyatt/vim-scala
+" License: Same as Vim
+" Last Change: 20 May 2016
+" ----------------------------------------------------------------------------
+
+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 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 link scalaAkkaSpecialWord PreProc
+
+syn keyword scalatestSpecialWord shouldBe
+syn match scalatestShouldDSLA /^\s\+\zsit should/
+syn match scalatestShouldDSLB /\<should\>/
+hi link scalatestSpecialWord PreProc
+hi link scalatestShouldDSLA PreProc
+hi link scalatestShouldDSLB PreProc
+
+syn match scalaSymbol /'[_A-Za-z0-9$]\+/
+hi 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 link scalaChar Character
+hi link scalaEscapedChar Function
+hi link scalaUnicodeChar Special
+
+syn match scalaOperator "||"
+syn match scalaOperator "&&"
+syn match scalaOperator "|"
+syn match scalaOperator "&"
+hi 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 link scalaNameDefinition Function
+
+syn match scalaInstanceDeclaration /\<[_\.A-Za-z0-9$]\+\>/ contained nextgroup=scalaInstanceHash
+syn match scalaInstanceDeclaration /`[^`]\+`/ contained
+syn match scalaInstanceHash /#/ contained nextgroup=scalaInstanceDeclaration
+hi link scalaInstanceDeclaration Special
+hi link scalaInstanceHash Type
+
+syn match scalaUnimplemented /???/
+hi link scalaUnimplemented ERROR
+
+syn match scalaCapitalWord /\<[A-Z][A-Za-z0-9$]*\>/
+hi link scalaCapitalWord Special
+
+" Handle type declarations specially
+syn region scalaTypeStatement matchgroup=Keyword start=/\<type\_s\+\ze/ end=/$/ contains=scalaTypeTypeDeclaration,scalaSquareBrackets,scalaTypeTypeEquals,scalaTypeStatement
+
+" Ugh... duplication of all the scalaType* stuff to handle special highlighting
+" of `type X =` declarations
+syn match scalaTypeTypeDeclaration /(/ contained nextgroup=scalaTypeTypeExtension,scalaTypeTypeEquals contains=scalaRoundBrackets skipwhite
+syn match scalaTypeTypeDeclaration /\%(⇒\|=>\)\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 nextgroup=scalaTypeTypeDeclaration skipwhite
+syn match scalaTypeTypePostDeclaration /\<[_\.A-Za-z0-9$]\+\>/ contained nextgroup=scalaTypeTypePostExtension skipwhite
+syn match scalaTypeTypePostExtension /\%(⇒\|=>\|<:\|:>\|=:=\|::\)/ contained nextgroup=scalaTypeTypePostDeclaration skipwhite
+hi link scalaTypeTypeDeclaration Type
+hi link scalaTypeTypeExtension Keyword
+hi link scalaTypeTypePostDeclaration Special
+hi 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 nextgroup=scalaTypeDeclaration skipwhite
+hi link scalaTypeDeclaration Type
+hi link scalaTypeExtension Keyword
+hi 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 link scalaTypeAnnotation Normal
+
+syn match scalaCaseFollowing /\<[_\.A-Za-z0-9$]\+\>/ contained
+syn match scalaCaseFollowing /`[^`]\+`/ contained
+hi link scalaCaseFollowing Special
+
+syn keyword scalaKeywordModifier abstract override final lazy implicit implicitly private protected sealed null require super
+hi link scalaKeywordModifier 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 link scalaSpecial PreProc
+
+syn keyword scalaExternal package import
+hi link scalaExternal Include
+
+syn match scalaStringEmbeddedQuote /\\"/ contained
+syn region scalaString start=/"/ end=/"/ contains=scalaStringEmbeddedQuote,scalaEscapedChar,scalaUnicodeChar
+hi link scalaString String
+hi 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 link scalaIString String
+hi link scalaTripleIString String
+
+syn match scalaInterpolation /\$[a-zA-Z0-9_$]\+/ contained
+exe 'syn region scalaInterpolationB matchgroup=scalaInterpolationBoundary start=/\${/ end=/}/ contained contains=' . s:ContainedGroup()
+hi link scalaInterpolation Function
+hi link scalaInterpolationB Normal
+
+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 link scalaFString String
+hi link scalaFInterpolation Function
+hi link scalaFInterpolationB Normal
+
+syn region scalaTripleString start=/"""/ end=/"""\%([^"]\|$\)/ contains=scalaEscapedChar,scalaUnicodeChar
+syn region scalaTripleFString matchgroup=scalaInterpolationBrackets start=/f"""/ end=/"""\%([^"]\|$\)/ contains=scalaFInterpolation,scalaFInterpolationB,scalaEscapedChar,scalaUnicodeChar
+hi link scalaTripleString String
+hi link scalaTripleFString String
+
+hi link scalaInterpolationBrackets Special
+hi 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 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
+syn match scalaTypeOperator /[-+=:<>]\+/ contained
+syn match scalaTypeAnnotationParameter /@\<[`_A-Za-z0-9$]\+\>/ contained
+hi link scalaSquareBracketsBrackets Type
+hi link scalaTypeOperator Keyword
+hi 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 link scalaShebang Comment
+hi link scalaMultilineComment Comment
+hi link scalaDocLinks Function
+hi link scalaParameterAnnotation Function
+hi link scalaParamAnnotationValue Keyword
+hi link scalaCommentAnnotation Function
+hi link scalaCommentCodeBlockBrackets String
+hi link scalaCommentCodeBlock String
+hi link scalaTodo Todo
+
+syn match scalaAnnotation /@\<[`_A-Za-z0-9$]\+\>/
+hi link scalaAnnotation PreProc
+
+syn match scalaTrailingComment "//.*$" contains=scalaTodo,@Spell
+hi link scalaTrailingComment Comment
+
+syn match scalaAkkaFSM /goto([^)]*)\_s\+\<using\>/ 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 /\<using\>/
+syn match scalaAkkaFSMGotoUsing /\<goto\>/
+hi link scalaAkkaFSM PreProc
+hi 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/scheme.vim b/runtime/syntax/scheme.vim
index c59e09cd17..af9a659e07 100644
--- a/runtime/syntax/scheme.vim
+++ b/runtime/syntax/scheme.vim
@@ -14,11 +14,8 @@
" Initializing:
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -64,11 +61,7 @@ syn region schemeUnquote matchgroup=Delimiter start=",@#\[" end="\]" contains=AL
" R5RS Scheme Functions and Syntax:
-if version < 600
- set iskeyword=33,35-39,42-58,60-90,94,95,97-122,126,_
-else
- setlocal iskeyword=33,35-39,42-58,60-90,94,95,97-122,126,_
-endif
+setlocal iskeyword=33,35-39,42-58,60-90,94,95,97-122,126,_
syn keyword schemeSyntax lambda and or if cond case define let let* letrec
syn keyword schemeSyntax begin do delay set! else =>
@@ -306,38 +299,28 @@ syn sync match matchPlace grouphere NONE "^[^ \t]"
" ... i.e. synchronize on a line that starts at the left margin
" 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_scheme_syntax_inits")
- if version < 508
- let did_scheme_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink schemeSyntax Statement
- HiLink schemeFunc Function
+hi def link schemeSyntax Statement
+hi def link schemeFunc Function
- HiLink schemeString String
- HiLink schemeCharacter Character
- HiLink schemeNumber Number
- HiLink schemeBoolean Boolean
+hi def link schemeString String
+hi def link schemeCharacter Character
+hi def link schemeNumber Number
+hi def link schemeBoolean Boolean
- HiLink schemeDelimiter Delimiter
- HiLink schemeConstant Constant
+hi def link schemeDelimiter Delimiter
+hi def link schemeConstant Constant
- HiLink schemeComment Comment
- HiLink schemeMultilineComment Comment
- HiLink schemeError Error
+hi def link schemeComment Comment
+hi def link schemeMultilineComment Comment
+hi def link schemeError Error
- HiLink schemeExtSyntax Type
- HiLink schemeExtFunc PreProc
+hi def link schemeExtSyntax Type
+hi def link schemeExtFunc PreProc
- HiLink schemeLang PreProc
+hi def link schemeLang PreProc
- delcommand HiLink
-endif
let b:current_syntax = "scheme"
diff --git a/runtime/syntax/scilab.vim b/runtime/syntax/scilab.vim
index 1bfc003678..03e123b058 100644
--- a/runtime/syntax/scilab.vim
+++ b/runtime/syntax/scilab.vim
@@ -9,11 +9,8 @@
"
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -66,49 +63,39 @@ syn match scilabOverload "%[A-Za-z0-9?!_#$]\+_[A-Za-z0-9?!_#$]\+"
" 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_scilab_syntax_inits")
- if version < 508
- let did_scilab_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink scilabStatement Statement
- HiLink scilabFunction Keyword
- HiLink scilabPredicate Keyword
- HiLink scilabKeyword Keyword
- HiLink scilabDebug Debug
- HiLink scilabRepeat Repeat
- HiLink scilabConditional Conditional
- HiLink scilabMultiplex Conditional
-
- HiLink scilabConstant Constant
- HiLink scilabBoolean Boolean
-
- HiLink scilabDelimiter Delimiter
- HiLink scilabMlistAccess Delimiter
- HiLink scilabComparison Operator
- HiLink scilabLogical Operator
- HiLink scilabAssignment Operator
- HiLink scilabArithmetic Operator
- HiLink scilabRange Operator
- HiLink scilabLineContinuation Underlined
- HiLink scilabTransposition Operator
-
- HiLink scilabTodo Todo
- HiLink scilabComment Comment
-
- HiLink scilabNumber Number
- HiLink scilabString String
-
- HiLink scilabIdentifier Identifier
- HiLink scilabOverload Special
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/sd.vim b/runtime/syntax/sd.vim
index 7fa0e04492..b497ba5eaa 100644
--- a/runtime/syntax/sd.vim
+++ b/runtime/syntax/sd.vim
@@ -5,9 +5,8 @@
" URL: http://netstudent.polito.it/vim_syntax/
" Last Change: 2012 Feb 03 by Thilo Six
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -51,29 +50,20 @@ syn keyword sdSpecial TRUE FALSE NULL
syn keyword sdDelimiter STREAM STREAM_END
syn match sdError /^search .\{257,}/
-if version >= 508 || !exists("did_config_syntax_inits")
- if version < 508
- let did_config_syntax_inits = 1
- command! -nargs=+ HiLink hi link <args>
- else
- command! -nargs=+ HiLink hi def link <args>
- endif
- HiLink sdIP Number
- HiLink sdHostname Type
- HiLink sdEncoding Identifier
- HiLink sdCoding Identifier
- HiLink sdSource Identifier
- HiLink sdComment Comment
- HiLink sdIPError Error
- HiLink sdError Error
- HiLink sdStatement Statement
- HiLink sdIPSpecial Special
- HiLink sdSpecial Special
- HiLink sdDelimiter Delimiter
+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
- delcommand HiLink
-endif
let b:current_syntax = "sd"
diff --git a/runtime/syntax/sdl.vim b/runtime/syntax/sdl.vim
index b524b72266..7df38d1955 100644
--- a/runtime/syntax/sdl.vim
+++ b/runtime/syntax/sdl.vim
@@ -3,11 +3,8 @@
" Maintainer: Michael Piefel <entwurf@piefel.de>
" Last Change: 2 May 2001
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -129,38 +126,27 @@ syn keyword sdlType STRING OBJECT IDENTIFIER NULL
syn sync ccomment sdlComment
" 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_sdl_syn_inits")
- if version < 508
- let did_sdl_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- command -nargs=+ Hi hi <args>
- else
- command -nargs=+ HiLink hi def link <args>
- command -nargs=+ Hi hi def <args>
- endif
-
- HiLink sdlException Label
- HiLink sdlConditional sdlStatement
- HiLink sdlVirtual sdlStatement
- HiLink sdlExported sdlFlag
- HiLink sdlCommentError sdlError
- HiLink sdlOperator Operator
- HiLink 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
- HiLink sdlType Type
- HiLink sdlString String
- HiLink sdlComment Comment
- HiLink sdlSpecial Special
- HiLink sdlError Error
-
- delcommand HiLink
- delcommand Hi
-endif
+" Only when an item doesn't have highlighting yet
+command -nargs=+ Hi hi def <args>
+
+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"
diff --git a/runtime/syntax/sed.vim b/runtime/syntax/sed.vim
index f0f80300d6..63b39db81f 100644
--- a/runtime/syntax/sed.vim
+++ b/runtime/syntax/sed.vim
@@ -4,11 +4,8 @@
" URL: http://folk.uio.no/hakonrk/vim/syntax/sed.vim
" Last Change: 2010 May 29
-" For version 5.x: Clear all syntax items
-" For version 6.x: Quit when a syntax file was already loaded
-if version < 600
- syn clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -49,8 +46,12 @@ syn match sedReplaceMeta "&\|\\\($\|.\)" contains=sedTab contained
" Metacharacters: $ * . \ ^ [ ~
" @ is used as delimiter and treated on its own below
let __at = char2nr("@")
-let __sed_i = char2nr(" ") " ASCII: 32
-let __sed_last = 126
+let __sed_i = char2nr(" ") " ASCII: 32, EBCDIC: 64
+if has("ebcdic")
+ let __sed_last = 255
+else
+ let __sed_last = 126
+endif
let __sed_metacharacters = '$*.\^[~'
while __sed_i <= __sed_last
let __sed_delimiter = escape(nr2char(__sed_i), __sed_metacharacters)
@@ -71,45 +72,36 @@ syn region sedReplacement64 matchgroup=Special start=+@\(\\\\\|\\@\)*+ skip=+[^\
" (y) does not allow any flags. To save memory, I ignore this problem.
syn match sedST "[sy]" nextgroup=sedRegexp\d\+
-if version >= 508 || !exists("did_sed_syntax_inits")
- if version < 508
- let did_sed_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink sedAddress Macro
- HiLink sedACI NONE
- HiLink sedBranch Label
- HiLink sedComment Comment
- HiLink sedDelete Function
- HiLink sedError Error
- HiLink sedFlag Type
- HiLink sedFlagwrite Constant
- HiLink sedFunction Function
- HiLink sedLabel Label
- HiLink sedLineCont Special
- HiLink sedPutHoldspc Function
- HiLink sedReplaceMeta Special
- HiLink sedRegexpMeta Special
- HiLink sedRW Constant
- HiLink sedSemicolon Special
- HiLink sedST Function
- HiLink sedSpecial Special
- HiLink sedWhitespace NONE
- if exists("highlight_sedtabs")
- HiLink sedTab Todo
- endif
- let __sed_i = char2nr(" ") " ASCII: 32
- while __sed_i <= __sed_last
- exe "HiLink sedRegexp".__sed_i "Macro"
- exe "HiLink sedReplacement".__sed_i "NONE"
- let __sed_i = __sed_i + 1
- endwhile
- delcommand HiLink
+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 sedWhitespace NONE
+if exists("highlight_sedtabs")
+hi def link sedTab Todo
endif
+let __sed_i = char2nr(" ") " ASCII: 32, EBCDIC: 64
+while __sed_i <= __sed_last
+exe "hi def link sedRegexp".__sed_i "Macro"
+exe "hi def link sedReplacement".__sed_i "NONE"
+let __sed_i = __sed_i + 1
+endwhile
+
unlet __sed_i __sed_last __sed_delimiter __sed_metacharacters
diff --git a/runtime/syntax/sendpr.vim b/runtime/syntax/sendpr.vim
index 6cf9395fe9..2e07802047 100644
--- a/runtime/syntax/sendpr.vim
+++ b/runtime/syntax/sendpr.vim
@@ -5,11 +5,8 @@
"
" http://raisdorf.net/files/misc/send-pr.vim
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
diff --git a/runtime/syntax/sensors.vim b/runtime/syntax/sensors.vim
index 63cececc68..f8bc4c696b 100644
--- a/runtime/syntax/sensors.vim
+++ b/runtime/syntax/sensors.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: sensors.conf(5) - libsensors configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: sensors.conf(5) - libsensors configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/services.vim b/runtime/syntax/services.vim
index 661f57a7e8..94e39ae219 100644
--- a/runtime/syntax/services.vim
+++ b/runtime/syntax/services.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: services(5) - Internet network services list
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: services(5) - Internet network services list
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/setserial.vim b/runtime/syntax/setserial.vim
index cdd309d7f2..967fa5f6d2 100644
--- a/runtime/syntax/setserial.vim
+++ b/runtime/syntax/setserial.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: setserial(8) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: setserial(8) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/sgml.vim b/runtime/syntax/sgml.vim
index c0c3643dd2..d60040c5d9 100644
--- a/runtime/syntax/sgml.vim
+++ b/runtime/syntax/sgml.vim
@@ -5,11 +5,8 @@
" Filenames: *.sgml,*.sgm
" $Id: sgml.vim,v 1.1 2004/06/13 17:52:57 vimboss Exp $
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
diff --git a/runtime/syntax/sgmldecl.vim b/runtime/syntax/sgmldecl.vim
index 13551b21c1..6c1cde15ae 100644
--- a/runtime/syntax/sgmldecl.vim
+++ b/runtime/syntax/sgmldecl.vim
@@ -5,11 +5,8 @@
" You can modify and maintain this file, in other case send comments
" the maintainer email address.
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
let s:keepcpo= &cpo
@@ -52,30 +49,20 @@ syn sync lines=250
" 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_sgmldecl_syntax_init")
- if version < 508
- let did_sgmldecl_syntax_init = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink sgmldeclDeclKeys Keyword
- HiLink sgmldeclTypes Type
- HiLink sgmldeclConst Constant
- HiLink sgmldeclNConst Constant
- HiLink sgmldeclString String
- HiLink sgmldeclDeclBlock Normal
- HiLink sgmldeclBool Boolean
- HiLink sgmldeclSpecial Special
- HiLink sgmldeclComment Comment
- HiLink sgmldeclStatem Statement
- HiLink sgmldeclVariables Type
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/sgmllnx.vim b/runtime/syntax/sgmllnx.vim
index 28224f601e..ccd78f494a 100644
--- a/runtime/syntax/sgmllnx.vim
+++ b/runtime/syntax/sgmllnx.vim
@@ -3,11 +3,8 @@
" Maintainer: SungHyun Nam <goweol@gmail.com>
" Last Change: 2013 May 13
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -36,31 +33,21 @@ syn region sgmllnxComment start=+<!--+ end=+-->+
syn region sgmllnxDocType start=+<!doctype+ end=+>+
" 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_sgmllnx_syn_inits")
- if version < 508
- let did_sgmllnx_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" 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
- HiLink sgmllnxTag2 Function
- HiLink sgmllnxTagN2 Function
- HiLink sgmllnxTag Special
- HiLink sgmllnxEndTag Special
- HiLink sgmllnxParen Special
- HiLink sgmllnxEntity Type
- HiLink sgmllnxDocEnt Type
- HiLink sgmllnxTagName Statement
- HiLink sgmllnxComment Comment
- HiLink sgmllnxSpecial Special
- HiLink sgmllnxDocType PreProc
- HiLink sgmllnxTagError Error
-
- delcommand HiLink
-endif
let b:current_syntax = "sgmllnx"
diff --git a/runtime/syntax/sh.vim b/runtime/syntax/sh.vim
index 711971ea4a..838c5eb4a7 100644
--- a/runtime/syntax/sh.vim
+++ b/runtime/syntax/sh.vim
@@ -2,17 +2,14 @@
" Language: shell (sh) Korn shell (ksh) bash (sh)
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int>
-" Last Change: Jun 10, 2016
-" Version: 152
+" Last Change: Oct 02, 2017
+" Version: 172
" 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)
-" For version 5.x: Clear all syntax items {{{1
-" For version 6.x: Quit when a syntax file was already loaded
-if v:version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded {{{1
+if exists("b:current_syntax")
finish
endif
@@ -127,19 +124,19 @@ syn cluster shErrorList contains=shDoError,shIfError,shInError,shCaseError,shEsa
if exists("b:is_kornshell")
syn cluster ErrorList add=shDTestError
endif
-syn cluster shArithParenList contains=shArithmetic,shCaseEsac,shComment,shDeref,shDo,shDerefSimple,shEcho,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shExDoubleQuote,shRedir,shSingleQuote,shDoubleQuote,shStatement,shVariable,shAlias,shTest,shCtrlSeq,shSpecial,shParen,bashSpecialVariables,bashStatement,shIf,shFor
+syn cluster shArithParenList contains=shArithmetic,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
syn cluster shArithList contains=@shArithParenList,shParenError
syn cluster shCaseEsacList contains=shCaseStart,shCase,shCaseBar,shCaseIn,shComment,shDeref,shDerefSimple,shCaseCommandSub,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote,shCtrlSeq,@shErrorList,shStringSpecial,shCaseRange
-syn cluster shCaseList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq
-syn cluster shCommandSubList contains=shAlias,shArithmetic,shComment,shCmdParenRegion,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shEcho,shEscape,shExDoubleQuote,shExpr,shExSingleQuote,shNumber,shOperator,shOption,shPosnParm,shSingleQuote,shSpecial,shStatement,shSubSh,shTest,shVariable
+syn cluster shCaseList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq
+syn cluster shCommandSubList contains=shAlias,shArithmetic,shCmdParenRegion,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
syn cluster shDblQuoteList contains=shCommandSub,shDeref,shDerefSimple,shEscape,shPosnParm,shCtrlSeq,shSpecial
syn cluster shDerefList contains=shDeref,shDerefSimple,shDerefVar,shDerefSpecial,shDerefWordError,shDerefPSR,shDerefPPS
-syn cluster shDerefVarList contains=shDerefOp,shDerefVarArray,shDerefOpError
+syn cluster shDerefVarList contains=shDerefOff,shDerefOp,shDerefVarArray,shDerefOpError
syn cluster shEchoList contains=shArithmetic,shCommandSub,shDeref,shDerefSimple,shEscape,shExpr,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,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shOption,shRedir,shSetList,shSource,shStatement,shVariable,shOperator,shCtrlSeq
+syn cluster shFunctionList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,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
syn cluster shFunctionList add=shDblBrace,shDblParen
@@ -147,12 +144,13 @@ endif
syn cluster shHereBeginList contains=@shCommandSubList
syn cluster shHereList contains=shBeginHere,shHerePayload
syn cluster shHereListDQ contains=shBeginHere,@shDblQuoteList,shHerePayload
-syn cluster shIdList contains=shCommandSub,shWrapLineOperator,shSetOption,shDeref,shDerefSimple,shRedir,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shCtrlSeq,shStringSpecial,shAtExpr
+syn cluster shIdList contains=shCommandSub,shWrapLineOperator,shSetOption,shDeref,shDerefSimple,shHereString,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,shForPP,shIf,shOption,shSet,shTest,shTestOpr,shTouch
syn cluster shPPSRightList contains=shComment,shDeref,shDerefSimple,shEscape,shPosnParm
-syn cluster shSubShList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shIf,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq,shOperator
+syn cluster shSubShList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shIf,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq,shOperator
syn cluster shTestList contains=shCharClass,shCommandSub,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shExDoubleQuote,shExpr,shExSingleQuote,shNumber,shOperator,shSingleQuote,shTest,shTestOpr
+syn cluster shNoZSList contains=shSpecialNoZS
" Echo: {{{1
" ====
@@ -173,7 +171,7 @@ if exists("b:is_kornshell") || exists("b:is_bash")
" Touch: {{{1
" =====
- syn match shTouch '\<touch\>[^;#]*' skipwhite nextgroup=shComment contains=shTouchCmd
+ syn match shTouch '\<touch\>[^;#]*' skipwhite nextgroup=shComment contains=shTouchCmd,shDoubleQuote,shSingleQuote,shDeref,shDerefSimple
syn match shTouchCmd '\<touch\>' contained
endif
@@ -216,20 +214,20 @@ syn match shPattern "\<\S\+\())\)\@=" contained contains=shExSingleQuote,shSin
" Subshells: {{{1
" ==========
-syn region shExpr transparent matchgroup=shExprRegion start="{" end="}" contains=@shExprList2 nextgroup=shMoreSpecial
-syn region shSubSh transparent matchgroup=shSubShRegion start="[^(]\zs(" end=")" contains=@shSubShList nextgroup=shMoreSpecial
+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="\<test\s" skip=+\\\\\|\\$+ matchgroup=NONE end="[;&|]"me=e-1 end="$" contains=@shExprList1
-syn region shNoQuote start='\S' skip='\%(\\\\\)*\\.' end='\ze\s' contained
+syn region shNoQuote start='\S' skip='\%(\\\\\)*\\.' end='\ze\s' end="\ze['"]" contained contains=shDerefSimple,shDeref
syn match shAstQuote contained '\*\ze"' nextgroup=shString
syn match shTestOpr contained '[^-+/%]\zs=' skipwhite nextgroup=shTestDoubleQuote,shTestSingleQuote,shTestPattern
syn match shTestOpr contained "<=\|>=\|!=\|==\|=\~\|-.\>\|-\(nt\|ot\|ef\|eq\|ne\|lt\|le\|gt\|ge\)\>\|[!<>]"
syn match shTestPattern contained '\w\+'
syn region shTestDoubleQuote contained start='\%(\%(\\\\\)*\\\)\@<!"' skip=+\\\\\|\\"+ end='"' contains=shDeref,shDerefSimple,shDerefSpecial
-syn match shTestSingleQuote contained '\\.'
+syn match shTestSingleQuote contained '\\.' nextgroup=shTestSingleQuote
syn match shTestSingleQuote contained "'[^']*'"
if exists("b:is_kornshell") || exists("b:is_bash")
syn region shDblBrace matchgroup=Delimiter start="\[\[" skip=+\%(\\\\\)*\\$+ end="\]\]" contains=@shTestList,shAstQuote,shNoQuote,shComment
@@ -264,7 +262,11 @@ syn match shComma contained ","
" ====
syn match shCaseBar contained skipwhite "\(^\|[^\\]\)\(\\\\\)*\zs|" nextgroup=shCase,shCaseStart,shCaseBar,shComment,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote
syn match shCaseStart contained skipwhite skipnl "(" nextgroup=shCase,shCaseBar
-ShFoldIfDoFor syn region shCase contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)" end=";;" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
+if exists("b:is_bash")
+ ShFoldIfDoFor syn region shCase contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)" end=";;" end=";&" end=";;&" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
+else
+ ShFoldIfDoFor syn region shCase contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)" end=";;" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
+endif
ShFoldIfDoFor syn region shCaseEsac matchgroup=shConditional start="\<case\>" end="\<esac\>" contains=@shCaseEsacList
syn keyword shCaseIn contained skipwhite skipnl in nextgroup=shCase,shCaseStart,shCaseBar,shComment,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote
@@ -294,7 +296,7 @@ syn match shEscape contained '\%(^\)\@!\%(\\\\\)*\\.'
" (ie. Posix compliant shell). /bin/ksh should work for those
" systems too, however, so the following syntax will flag $(..) as
" an Error under /bin/sh. By consensus of vimdev'ers!
-if exists("b:is_kornshell") || exists("b:is_bash")
+if exists("b:is_kornshell") || exists("b:is_bash") || exists("b:is_posix")
syn region shCommandSub matchgroup=shCmdSubRegion start="\$(" skip='\\\\\|\\.' end=")" contains=@shCommandSubList
syn region shArithmetic matchgroup=shArithRegion start="\$((" skip='\\\\\|\\.' end="))" contains=@shArithList
syn region shArithmetic matchgroup=shArithRegion start="\$\[" skip='\\\\\|\\.' end="\]" contains=@shArithList
@@ -308,7 +310,7 @@ if exists("b:is_bash")
syn cluster shCommandSubList add=bashSpecialVariables,bashStatement
syn cluster shCaseList add=bashAdminStatement,bashStatement
syn keyword bashSpecialVariables contained auto_resume BASH BASH_ALIASES BASH_ALIASES BASH_ARGC BASH_ARGC BASH_ARGV BASH_ARGV BASH_CMDS BASH_CMDS BASH_COMMAND BASH_COMMAND BASH_ENV BASH_EXECUTION_STRING BASH_EXECUTION_STRING BASH_LINENO BASH_LINENO BASHOPTS BASHOPTS BASHPID BASHPID BASH_REMATCH BASH_REMATCH BASH_SOURCE BASH_SOURCE BASH_SUBSHELL BASH_SUBSHELL BASH_VERSINFO BASH_VERSION BASH_XTRACEFD BASH_XTRACEFD CDPATH COLUMNS COLUMNS COMP_CWORD COMP_CWORD COMP_KEY COMP_KEY COMP_LINE COMP_LINE COMP_POINT COMP_POINT COMPREPLY COMPREPLY COMP_TYPE COMP_TYPE COMP_WORDBREAKS COMP_WORDBREAKS COMP_WORDS COMP_WORDS COPROC COPROC DIRSTACK EMACS EMACS ENV ENV EUID FCEDIT FIGNORE FUNCNAME FUNCNAME FUNCNEST FUNCNEST GLOBIGNORE GROUPS histchars HISTCMD HISTCONTROL HISTFILE HISTFILESIZE HISTIGNORE HISTSIZE HISTTIMEFORMAT HISTTIMEFORMAT HOME HOSTFILE HOSTNAME HOSTTYPE IFS IGNOREEOF INPUTRC LANG LC_ALL LC_COLLATE LC_CTYPE LC_CTYPE LC_MESSAGES LC_NUMERIC LC_NUMERIC LINENO LINES LINES MACHTYPE MAIL MAILCHECK MAILPATH MAPFILE MAPFILE OLDPWD OPTARG OPTERR OPTIND OSTYPE PATH PIPESTATUS POSIXLY_CORRECT POSIXLY_CORRECT PPID PROMPT_COMMAND PS1 PS2 PS3 PS4 PWD RANDOM READLINE_LINE READLINE_LINE READLINE_POINT READLINE_POINT REPLY SECONDS SHELL SHELL SHELLOPTS SHLVL TIMEFORMAT TIMEOUT TMPDIR TMPDIR UID
- syn keyword bashStatement chmod clear complete du egrep expr fgrep find gnufind gnugrep grep less ls mkdir mv rm rmdir rpm sed sleep sort strip tail
+ syn keyword bashStatement chmod clear complete du egrep expr fgrep find gnufind gnugrep grep less ls mkdir mv rm rmdir rpm sed sleep sort strip tail
syn keyword bashAdminStatement daemon killall killproc nice reload restart start status stop
syn keyword bashStatement command compgen
endif
@@ -332,15 +334,15 @@ endif
" String And Character Constants: {{{1
"================================
syn match shNumber "\<\d\+\>#\="
-syn match shNumber "-\=\.\=\d\+\>#\="
+syn match shNumber "\<-\=\.\=\d\+\>#\="
syn match shCtrlSeq "\\\d\d\d\|\\[abcfnrtv0]" contained
if exists("b:is_bash")
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
endif
if exists("b:is_bash")
- syn region shExSingleQuote matchgroup=shQuote start=+\$'+ skip=+\\\\\|\\.+ end=+'+ contains=shStringSpecial,shSpecial
- syn region shExDoubleQuote matchgroup=shQuote start=+\$"+ skip=+\\\\\|\\.\|\\"+ end=+"+ contains=@shDblQuoteList,shStringSpecial,shSpecial
+ 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
@@ -349,16 +351,21 @@ syn region shSingleQuote matchgroup=shQuote start=+'+ end=+'+ contains=@Spell
syn region shDoubleQuote matchgroup=shQuote start=+\%(\%(\\\\\)*\\\)\@<!"+ skip=+\\"+ end=+"+ contains=@shDblQuoteList,shStringSpecial,@Spell
syn match shStringSpecial "[^[:print:] \t]" contained
syn match shStringSpecial "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]"
-syn match shSpecial "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shBkslshSnglQuote,shBkslshDblQuote
+syn match shSpecial "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shBkslshSnglQuote,shBkslshDblQuote,@shNoZSList
syn match shSpecial "^\%(\\\\\)*\\[\\"'`$()#]"
-syn match shMoreSpecial "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shMoreSpecial contained
+syn match shSpecialNoZS contained "\%(\\\\\)*\\[\\"'`$()#]"
+syn match shSpecialNxt contained "\\[\\"'`$()#]"
syn region shBkslshSnglQuote contained matchgroup=shQuote start=+'+ end=+'+ contains=@Spell
syn region shBkslshDblQuote contained matchgroup=shQuote start=+"+ skip=+\\"+ end=+"+ contains=@shDblQuoteList,shStringSpecial,@Spell
" Comments: {{{1
"==========
syn cluster shCommentGroup contains=shTodo,@Spell
-syn keyword shTodo contained COMBAK FIXME TODO XXX
+if exists("b:is_bash")
+ syn match shTodo contained "\<\%(COMBAK\|FIXME\|TODO\|XXX\)\ze:\=\>"
+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
@@ -366,27 +373,27 @@ syn match shQuickComment contained "#.*$"
" Here Documents: {{{1
" =========================================
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc01 start="<<\s*\\\=\z([^ \t|]\+\)" matchgroup=shHereDoc01 end="^\z1\s*$" contains=@shDblQuoteList
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc02 start="<<\s*\"\z([^ \t|]\+\)\"" matchgroup=shHereDoc02 end="^\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc03 start="<<-\s*\z([^ \t|]\+\)" matchgroup=shHereDoc03 end="^\s*\z1\s*$" contains=@shDblQuoteList
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc04 start="<<-\s*'\z([^ \t|]\+\)'" matchgroup=shHereDoc04 end="^\s*\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc05 start="<<\s*'\z([^ \t|]\+\)'" matchgroup=shHereDoc05 end="^\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc06 start="<<-\s*\"\z([^ \t|]\+\)\"" matchgroup=shHereDoc06 end="^\s*\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc07 start="<<\s*\\\_$\_s*\z([^ \t|]\+\)" matchgroup=shHereDoc07 end="^\z1\s*$" contains=@shDblQuoteList
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc08 start="<<\s*\\\_$\_s*'\z([^ \t|]\+\)'" matchgroup=shHereDoc08 end="^\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc09 start="<<\s*\\\_$\_s*\"\z([^ \t|]\+\)\"" matchgroup=shHereDoc09 end="^\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc10 start="<<-\s*\\\_$\_s*\z([^ \t|]\+\)" matchgroup=shHereDoc10 end="^\s*\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc11 start="<<-\s*\\\_$\_s*\\\z([^ \t|]\+\)" matchgroup=shHereDoc11 end="^\s*\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc12 start="<<-\s*\\\_$\_s*'\z([^ \t|]\+\)'" matchgroup=shHereDoc12 end="^\s*\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc13 start="<<-\s*\\\_$\_s*\"\z([^ \t|]\+\)\"" matchgroup=shHereDoc13 end="^\s*\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc14 start="<<\\\z([^ \t|]\+\)" matchgroup=shHereDoc14 end="^\z1\s*$"
-ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc15 start="<<-\s*\\\z([^ \t|]\+\)" matchgroup=shHereDoc15 end="^\s*\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc01 start="<<\s*\\\=\z([^ \t|>]\+\)" matchgroup=shHereDoc01 end="^\z1\s*$" contains=@shDblQuoteList
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc02 start="<<\s*\"\z([^ \t|>]\+\)\"" matchgroup=shHereDoc02 end="^\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc03 start="<<-\s*\z([^ \t|>]\+\)" matchgroup=shHereDoc03 end="^\s*\z1\s*$" contains=@shDblQuoteList
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc04 start="<<-\s*'\z([^']\+\)'" matchgroup=shHereDoc04 end="^\s*\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc05 start="<<\s*'\z([^']\+\)'" matchgroup=shHereDoc05 end="^\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc06 start="<<-\s*\"\z([^ \t|>]\+\)\"" matchgroup=shHereDoc06 end="^\s*\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc07 start="<<\s*\\\_$\_s*\z([^ \t|>]\+\)" matchgroup=shHereDoc07 end="^\z1\s*$" contains=@shDblQuoteList
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc08 start="<<\s*\\\_$\_s*'\z([^ \t|>]\+\)'" matchgroup=shHereDoc08 end="^\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc09 start="<<\s*\\\_$\_s*\"\z([^ \t|>]\+\)\"" matchgroup=shHereDoc09 end="^\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc10 start="<<-\s*\\\_$\_s*\z([^ \t|>]\+\)" matchgroup=shHereDoc10 end="^\s*\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc11 start="<<-\s*\\\_$\_s*\\\z([^ \t|>]\+\)" matchgroup=shHereDoc11 end="^\s*\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc12 start="<<-\s*\\\_$\_s*'\z([^ \t|>]\+\)'" matchgroup=shHereDoc12 end="^\s*\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc13 start="<<-\s*\\\_$\_s*\"\z([^ \t|>]\+\)\"" matchgroup=shHereDoc13 end="^\s*\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc14 start="<<\\\z([^ \t|>]\+\)" matchgroup=shHereDoc14 end="^\z1\s*$"
+ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc15 start="<<-\s*\\\z([^ \t|>]\+\)" matchgroup=shHereDoc15 end="^\s*\z1\s*$"
" 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("g:is_posix"))
- syn match shRedir "<<<" skipwhite nextgroup=shCmdParenRegion
+if exists("b:is_bash") || (exists("b:is_kornshell") && !exists("b:is_posix"))
+ syn match shHereString "<<<" skipwhite nextgroup=shCmdParenRegion
endif
" Identifiers: {{{1
@@ -406,7 +413,7 @@ else
endif
" Functions: {{{1
-if !exists("g:is_posix")
+if !exists("b:is_posix")
syn keyword shFunctionKey function skipwhite skipnl nextgroup=shFunctionTwo
endif
@@ -427,13 +434,14 @@ endif
if !exists("g:sh_no_error")
syn match shDerefWordError "[^}$[~]" contained
endif
-syn match shDerefSimple "\$\%(\k\+\|\d\)"
+syn match shDerefSimple "\$\%(\h\w*\|\d\)" nextgroup=@shNoZSList
syn region shDeref matchgroup=PreProc start="\${" end="}" contains=@shDerefList,shDerefVarArray
-syn match shDerefSimple "\$[-#*@!?]"
-syn match shDerefSimple "\$\$"
+syn match shDerefSimple "\$[-#*@!?]" nextgroup=@shNoZSList
+syn match shDerefSimple "\$\$" nextgroup=@shNoZSList
+syn match shDerefSimple "\${\d}" nextgroup=@shNoZSList
if exists("b:is_bash") || exists("b:is_kornshell")
- syn region shDeref matchgroup=PreProc start="\${##\=" end="}" contains=@shDerefList
- syn region shDeref matchgroup=PreProc start="\${\$\$" end="}" contains=@shDerefList
+ syn region shDeref matchgroup=PreProc start="\${##\=" end="}" contains=@shDerefList nextgroup=@shSpecialNoZS
+ syn region shDeref matchgroup=PreProc start="\${\$\$" end="}" contains=@shDerefList nextgroup=@shSpecialNoZS
endif
" ksh: ${!var[*]} array index list syntax: {{{1
@@ -445,18 +453,19 @@ endif
" bash: ${!prefix*} and ${#parameter}: {{{1
" ====================================
if exists("b:is_bash")
- syn region shDeref matchgroup=PreProc start="\${!" end="\*\=}" contains=@shDerefList,shDerefOp
- syn match shDerefVar contained "{\@<=!\k\+" nextgroup=@shDerefVarList
+ syn region shDeref matchgroup=PreProc start="\${!" end="\*\=}" contains=@shDerefList,shDerefOff
+ syn match shDerefVar contained "{\@<=!\h\w*" nextgroup=@shDerefVarList
endif
if exists("b:is_kornshell")
- syn match shDerefVar contained "{\@<=!\k[[:alnum:]_.]*" nextgroup=@shDerefVarList
+ syn match shDerefVar contained "{\@<=!\h\w*[[:alnum:]_.]*" nextgroup=@shDerefVarList
endif
syn match shDerefSpecial contained "{\@<=[-*@?0]" nextgroup=shDerefOp,shDerefOpError
syn match shDerefSpecial contained "\({[#!]\)\@<=[[:alnum:]*@_]\+" nextgroup=@shDerefVarList,shDerefOp
-syn match shDerefVar contained "{\@<=\k\+" nextgroup=@shDerefVarList
+syn match shDerefVar contained "{\@<=\h\w*" nextgroup=@shDerefVarList
+syn match shDerefVar contained '\d' nextgroup=@shDerefVarList
if exists("b:is_kornshell")
- syn match shDerefVar contained "{\@<=\k[[:alnum:]_.]*" nextgroup=@shDerefVarList
+ syn match shDerefVar contained "{\@<=\h\w*[[:alnum:]_.]*" nextgroup=@shDerefVarList
endif
" sh ksh bash : ${var[... ]...} array reference: {{{1
@@ -482,24 +491,25 @@ endif
syn match shDerefOp contained ":\=[-=?]" nextgroup=@shDerefPatternList
syn match shDerefOp contained ":\=+" nextgroup=@shDerefPatternList
if exists("b:is_bash") || exists("b:is_kornshell")
- 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 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
endif
-syn region shDerefString contained matchgroup=shDerefDelim start=+\%(\\\)\@<!'+ end=+'+ contains=shStringSpecial
+syn region shDerefString contained matchgroup=shDerefDelim start=+\%(\\\)\@<!'+ end=+'+ contains=shStringSpecial
syn region shDerefString contained matchgroup=shDerefDelim start=+\%(\\\)\@<!"+ skip=+\\"+ end=+"+ contains=@shDblQuoteList,shStringSpecial
syn match shDerefString contained "\\["']" nextgroup=shDerefPattern
if exists("b:is_bash")
" bash : ${parameter:offset}
" bash : ${parameter:offset:length}
- syn region shDerefOp contained start=":[$[:alnum:]_]"me=e-1 end=":"me=e-1 end="}"me=e-1 contains=@shCommandSubList nextgroup=shDerefPOL
- syn match shDerefPOL contained ":[^}]\+" contains=@shCommandSubList
+ syn region shDerefOff contained start=':' end='\ze:' end='\ze}' contains=shDeref,shDerefSimple,shDerefEscape nextgroup=shDerefLen,shDeref,shDerefSimple
+ syn region shDerefOff contained start=':\s-' end='\ze:' end='\ze}' contains=shDeref,shDerefSimple,shDerefEscape nextgroup=shDerefLen,shDeref,shDerefSimple
+ syn match shDerefLen contained ":[^}]\+" contains=shDeref,shDerefSimple
" bash : ${parameter//pattern/string}
" bash : ${parameter//pattern}
@@ -529,7 +539,7 @@ endif
" ====================
if exists("b:is_kornshell") || exists("b:is_bash")
syn keyword shStatement autoload bg false fc fg functions getopts hash history integer jobs let nohup printf r stop suspend times true type unalias whence
- if exists("g:is_posix")
+ if exists("b:is_posix")
syn keyword shStatement command
else
syn keyword shStatement time
@@ -538,7 +548,7 @@ if exists("b:is_kornshell") || exists("b:is_bash")
" Useful bash Keywords: {{{1
" =====================
if exists("b:is_bash")
- syn keyword shStatement bind builtin dirs disown enable help local logout popd pushd shopt source
+ syn keyword shStatement bind builtin dirs disown enable help logout popd pushd shopt source
else
syn keyword shStatement login newgrp
endif
@@ -573,128 +583,135 @@ syn sync match shWhileSync grouphere shRepeat "\<while\>"
" Default Highlighting: {{{1
" =====================
-hi def link shArithRegion shShellVariables
-hi def link shAstQuote shDoubleQuote
-hi def link shAtExpr shSetList
-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 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 shHerePayload shHereDoc
-hi def link shLoop shStatement
-hi def link shMoreSpecial 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 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 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
-endif
-if exists("b:is_kornshell")
- hi def link kshSpecialVariables shShellVariables
- hi def link kshStatement shStatement
-endif
+if !exists("skip_sh_syntax_inits")
+ hi def link shArithRegion shShellVariables
+ hi def link shAstQuote shDoubleQuote
+ hi def link shAtExpr shSetList
+ 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 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 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("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_bash")
+ hi def link bashAdminStatement shStatement
+ hi def link bashSpecialVariables shShellVariables
+ hi def link bashStatement shStatement
+ hi def link shCharClass shSpecial
+ hi def link shDerefOff shDerefOp
+ hi def link shDerefLen shDerefOff
+ endif
if exists("b:is_kornshell")
- hi def link shDTestError Error
+ hi def link kshSpecialVariables shShellVariables
+ hi def link kshStatement shStatement
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 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 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
+ 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")
+ 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 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 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
+endif
" Delete shell folding commands {{{1
" =============================
diff --git a/runtime/syntax/sicad.vim b/runtime/syntax/sicad.vim
index 7e32451bed..20eb14cba1 100644
--- a/runtime/syntax/sicad.vim
+++ b/runtime/syntax/sicad.vim
@@ -4,28 +4,17 @@
" Last Change: 2003 May 11
" URL: http://lmark.mgx.hu:81/download/vim/sicad.vim
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
" use SQL highlighting after 'sql' command
-if version >= 600
- syn include @SQL syntax/sql.vim
-else
- syn include @SQL <sfile>:p:h/sql.vim
-endif
+syn include @SQL syntax/sql.vim
unlet b:current_syntax
" spaces are used in (auto)indents since sicad hates tabulator characters
-if version >= 600
- setlocal expandtab
-else
- set expandtab
-endif
+setlocal expandtab
" ignore case
syn case ignore
@@ -369,44 +358,32 @@ syn keyword sicadStatement zparbn zparf zparfn zparfw zparfwn
syn keyword sicadStatement zparp zparpn zwinkp zwinkpn
" 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_sicad_syntax_inits")
-
- if version < 508
- let did_sicad_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink sicadLabel PreProc
- HiLink sicadLabel1 sicadLabel
- HiLink sicadLabel2 sicadLabel
- HiLink sicadConditional Conditional
- HiLink sicadBoolean Boolean
- HiLink sicadNumber Number
- HiLink sicadFloat Float
- HiLink sicadOperator Operator
- HiLink sicadStatement Statement
- HiLink sicadParameter sicadStatement
- HiLink sicadGoto sicadStatement
- HiLink sicadLineCont sicadStatement
- HiLink sicadString String
- HiLink sicadComment Comment
- HiLink sicadSpecial Special
- HiLink sicadIdentifier Type
-" HiLink sicadIdentifier Identifier
- HiLink sicadError Error
- HiLink sicadParenError sicadError
- HiLink sicadApostropheError sicadError
- HiLink sicadStringError sicadError
- HiLink sicadCommentError sicadError
-" HiLink sqlStatement Special " modified highlight group in sql.vim
+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
- delcommand HiLink
-
-endif
let b:current_syntax = "sicad"
diff --git a/runtime/syntax/sieve.vim b/runtime/syntax/sieve.vim
index 4bb4417f39..35b4dfb79c 100644
--- a/runtime/syntax/sieve.vim
+++ b/runtime/syntax/sieve.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: Sieve filtering language input file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2007-10-25
+" Language: Sieve filtering language input file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2007-10-25
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/simula.vim b/runtime/syntax/simula.vim
index e952ee26c3..82f66d049e 100644
--- a/runtime/syntax/simula.vim
+++ b/runtime/syntax/simula.vim
@@ -4,11 +4,8 @@
" URL: http://folk.uio.no/hakonrk/vim/syntax/simula.vim
" Last Change: 2001 May 15
-" For version 5.x: Clear all syntax items
-" For version 6.x: Quit when a syntax file was already loaded
-if version < 600
- syn clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -58,42 +55,33 @@ syn match simulaReal "-\=\<\d\+\(\.\d\+\)\=\(&&\=[+-]\=\d\+\)\=\>"
" Real starting with a `.', optional exponent
syn match simulaReal "-\=\.\d\+\(&&\=[+-]\=\d\+\)\=\>"
-if version >= 508 || !exists("did_simula_syntax_inits")
- if version < 508
- let did_simula_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink simulaAssigned Identifier
- HiLink simulaBoolean Boolean
- HiLink simulaCharacter Character
- HiLink simulaCharError Error
- HiLink simulaComment Comment
- HiLink simulaCompound Statement
- HiLink simulaConditional Conditional
- HiLink simulaConstant Constant
- HiLink simulaFunction Function
- HiLink simulaNumber Number
- HiLink simulaOperator Operator
- HiLink simulaReal Float
- HiLink simulaReferenceType Type
- HiLink simulaRepeat Repeat
- HiLink simulaReserved Error
- HiLink simulaSemicolon Statement
- HiLink simulaSpecial Special
- HiLink simulaSpecialChar SpecialChar
- HiLink simulaSpecialCharErr Error
- HiLink simulaStatement Statement
- HiLink simulaStorageClass StorageClass
- HiLink simulaString String
- HiLink simulaStructure Structure
- HiLink simulaTodo Todo
- HiLink simulaType Type
+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
- delcommand HiLink
-endif
let b:current_syntax = "simula"
" vim: sts=4 sw=4 ts=8
diff --git a/runtime/syntax/sinda.vim b/runtime/syntax/sinda.vim
index 2bde267c2f..a6e5b45fcd 100644
--- a/runtime/syntax/sinda.vim
+++ b/runtime/syntax/sinda.vim
@@ -8,11 +8,8 @@
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -32,11 +29,7 @@ syn case ignore
let fortran_free_source=1
" Load FORTRAN syntax file
-if version < 600
- source <sfile>:p:h/fortran.vim
-else
- runtime! syntax/fortran.vim
-endif
+runtime! syntax/fortran.vim
unlet b:current_syntax
@@ -106,39 +99,29 @@ endif
" 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_sinda_syntax_inits")
- if version < 508
- let did_sinda_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink sindaMacro Macro
- HiLink sindaOptions Special
- HiLink sindaRoutine Type
- HiLink sindaControl Special
- HiLink sindaSubRoutine Function
- HiLink sindaIdentifier Identifier
-
- HiLink sindaFortran PreProc
- HiLink sindaMotran PreProc
-
- HiLink sindaComment Comment
- HiLink sindaHeader Typedef
- HiLink sindaIncludeFile Type
- HiLink sindaInteger Number
- HiLink sindaFloat Float
- HiLink sindaScientific Float
-
- HiLink sindaEndData Macro
-
- HiLink sindaTodo Todo
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/sindacmp.vim b/runtime/syntax/sindacmp.vim
index 87b483409a..88373eb285 100644
--- a/runtime/syntax/sindacmp.vim
+++ b/runtime/syntax/sindacmp.vim
@@ -8,11 +8,8 @@
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -45,28 +42,18 @@ syn match sindacmpFloat "-\=\<[0-9]*\.[0-9]*"
" 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_sindacmp_syntax_inits")
- if version < 508
- let did_sindacmp_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink sindacmpTitle Type
- HiLink sindacmpUnit PreProc
+hi def link sindacmpTitle Type
+hi def link sindacmpUnit PreProc
- HiLink sindacmpLabel Statement
+hi def link sindacmpLabel Statement
- HiLink sindacmpHeader sindaHeader
+hi def link sindacmpHeader sindaHeader
- HiLink sindacmpInteger Number
- HiLink sindacmpFloat Special
+hi def link sindacmpInteger Number
+hi def link sindacmpFloat Special
- delcommand HiLink
-endif
let b:current_syntax = "sindacmp"
diff --git a/runtime/syntax/sindaout.vim b/runtime/syntax/sindaout.vim
index b557e017eb..c362f19467 100644
--- a/runtime/syntax/sindaout.vim
+++ b/runtime/syntax/sindaout.vim
@@ -8,11 +8,8 @@
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -24,11 +21,7 @@ syn case match
" Load SINDA syntax file
-if version < 600
- source <sfile>:p:h/sinda.vim
-else
- runtime! syntax/sinda.vim
-endif
+runtime! syntax/sinda.vim
unlet b:current_syntax
@@ -66,33 +59,23 @@ syn match sindaoutError "<<< Error >>>"
" 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_sindaout_syntax_inits")
- if version < 508
- let did_sindaout_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- hi sindaHeaderDelim ctermfg=Black ctermbg=Green guifg=Black guibg=Green
-
- HiLink sindaoutPos Statement
- HiLink sindaoutNeg PreProc
- HiLink sindaoutTitle Type
- HiLink sindaoutFile sindaIncludeFile
- HiLink sindaoutInteger sindaInteger
-
- HiLink sindaoutSectionDelim Delimiter
- HiLink sindaoutSectionTitle Exception
- HiLink sindaoutHeaderDelim SpecialComment
- HiLink sindaoutLabel Identifier
-
- HiLink sindaoutError Error
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/sisu.vim b/runtime/syntax/sisu.vim
index 0e0f2dbe0a..264aae0600 100644
--- a/runtime/syntax/sisu.vim
+++ b/runtime/syntax/sisu.vim
@@ -1,16 +1,14 @@
" SiSU Vim syntax file
" SiSU Maintainer: Ralph Amissah <ralph.amissah@gmail.com>
" SiSU Markup: SiSU (sisu-5.6.7)
-" Last Change: 2014-09-14
+" Last Change: 2017 Jun 22
" URL: <http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=blob;f=data/sisu/conf/editor-syntax-etc/vim/syntax/sisu.vim;hb=HEAD>
" <http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=blob_plain;f=data/sisu/conf/editor-syntax-etc/vim/syntax/sisu.vim;hb=HEAD>
"(originally looked at Ruby Vim by Mirko Nasato)
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
-else
endif
let s:cpo_save = &cpo
set cpo&vim
@@ -104,7 +102,7 @@ syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_bold,sisu_c
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="^\(block\|group\|poem\|alt\){" end="^}\1"
+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"
diff --git a/runtime/syntax/skill.vim b/runtime/syntax/skill.vim
index 8b960441f6..47afffc0a9 100644
--- a/runtime/syntax/skill.vim
+++ b/runtime/syntax/skill.vim
@@ -9,11 +9,8 @@
" database. This file also defines syntax highlighting for
" certain Design Framework II interface functions.
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -525,37 +522,27 @@ syn match skillCommentError "\*/"
syn sync ccomment skillComment minlines=10
" 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_skill_syntax_inits")
- if version < 508
- let did_skill_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink skillcdfFunctions Function
- HiLink skillgeFunctions Function
- HiLink skillhiFunctions Function
- HiLink skillleFunctions Function
- HiLink skilldbefFunctions Function
- HiLink skillddFunctions Function
- HiLink skillpcFunctions Function
- HiLink skilltechFunctions Function
- HiLink skillConstants Constant
- HiLink skillFunction Function
- HiLink skillKeywords Statement
- HiLink skillConditional Conditional
- HiLink skillRepeat Repeat
- HiLink skillString String
- HiLink skillTodo Todo
- HiLink skillNote Todo
- HiLink skillComment Comment
- HiLink skillCommentError Error
+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
- delcommand HiLink
-endif
let b:current_syntax = "skill"
diff --git a/runtime/syntax/sl.vim b/runtime/syntax/sl.vim
index fa3bca06dd..1f6c847353 100644
--- a/runtime/syntax/sl.vim
+++ b/runtime/syntax/sl.vim
@@ -3,11 +3,8 @@
" Maintainer: Dan Piponi <dan@tanelorn.demon.co.uk>
" Last Change: 2001 May 09
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -75,45 +72,35 @@ syn keyword slVariable dtime dPdtime
syn sync ccomment slComment minlines=10
" 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_sl_syntax_inits")
- if version < 508
- let did_sl_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink slLabel Label
- HiLink slUserLabel Label
- HiLink slConditional Conditional
- HiLink slRepeat Repeat
- HiLink slCharacter Character
- HiLink slSpecialCharacter slSpecial
- HiLink slNumber Number
- HiLink slFloat Float
- HiLink slParenError slError
- HiLink slInParen slError
- HiLink slCommentError slError
- HiLink slOperator Operator
- HiLink slStorageClass StorageClass
- HiLink slError Error
- HiLink slStatement Statement
- HiLink slType Type
- HiLink slCommentError slError
- HiLink slCommentString slString
- HiLink slComment2String slString
- HiLink slCommentSkip slComment
- HiLink slString String
- HiLink slComment Comment
- HiLink slSpecial SpecialChar
- HiLink slTodo Todo
- HiLink slVariable Identifier
- "HiLink slIdentifier Identifier
+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
- delcommand HiLink
-endif
let b:current_syntax = "sl"
diff --git a/runtime/syntax/slang.vim b/runtime/syntax/slang.vim
index 9fa89b4d61..53ede4dc5a 100644
--- a/runtime/syntax/slang.vim
+++ b/runtime/syntax/slang.vim
@@ -3,11 +3,8 @@
" Maintainer: Jan Hlavacek <lahvak@math.ohio-state.edu>
" Last Change: 980216
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -55,47 +52,37 @@ 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.
-" 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_slang_syntax_inits")
- if version < 508
- let did_slang_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink slangDefinition Type
- HiLink slangBlock slangDefinition
- HiLink slangLabel Label
- HiLink slangConditional Conditional
- HiLink slangRepeat Repeat
- HiLink slangCharacter Character
- HiLink slangFloat Float
- HiLink slangImaginary Float
- HiLink slangDecimal slangNumber
- HiLink slangOctal slangNumber
- HiLink slangHex slangNumber
- HiLink slangNumber Number
- HiLink slangParenError Error
- HiLink slangOctalError Error
- HiLink slangOperator Operator
- HiLink slangStructure Structure
- HiLink slangInclude Include
- HiLink slangPreCondit PreCondit
- HiLink slangError Error
- HiLink slangStatement Statement
- HiLink slangType Type
- HiLink slangString String
- HiLink slangConstant Constant
- HiLink slangRangeArray slangConstant
- HiLink slangComment Comment
- HiLink slangSpecial SpecialChar
- HiLink slangTodo Todo
- HiLink slangDelim Delimiter
+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
- delcommand HiLink
-endif
let b:current_syntax = "slang"
diff --git a/runtime/syntax/slice.vim b/runtime/syntax/slice.vim
index 4e2f9a8604..3a57ece913 100644
--- a/runtime/syntax/slice.vim
+++ b/runtime/syntax/slice.vim
@@ -3,11 +3,8 @@
" Maintainer: Morel Bodin <slice06@nym.hush.com>
" Last Change: 2005 Dec 03
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -58,33 +55,23 @@ syn match sliceComment "//.*"
syn sync ccomment sliceComment
" 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_slice_syn_inits")
- if version < 508
- let did_slice_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink sliceComment Comment
- HiLink sliceConstruct Keyword
- HiLink sliceType Type
- HiLink sliceString String
- HiLink sliceIncluded String
- HiLink sliceQualifier Keyword
- HiLink sliceInclude Include
- HiLink sliceGuard PreProc
- HiLink sliceBoolean Boolean
- HiLink sliceFloat Number
- HiLink sliceNumber Number
- HiLink sliceOctal Number
- HiLink sliceOctalZero Special
- HiLink sliceNumberError Special
+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
- delcommand HiLink
-endif
let b:current_syntax = "slice"
diff --git a/runtime/syntax/slpconf.vim b/runtime/syntax/slpconf.vim
index 9fe4503780..712ba90719 100644
--- a/runtime/syntax/slpconf.vim
+++ b/runtime/syntax/slpconf.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: RFC 2614 - An API for Service Location configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: RFC 2614 - An API for Service Location configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/slpreg.vim b/runtime/syntax/slpreg.vim
index f3c8a7fc8e..a177b063f0 100644
--- a/runtime/syntax/slpreg.vim
+++ b/runtime/syntax/slpreg.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: RFC 2614 - An API for Service Location registration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: RFC 2614 - An API for Service Location registration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/slpspi.vim b/runtime/syntax/slpspi.vim
index 8507e3de69..eaeb02a80f 100644
--- a/runtime/syntax/slpspi.vim
+++ b/runtime/syntax/slpspi.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: RFC 2614 - An API for Service Location SPI file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: RFC 2614 - An API for Service Location SPI file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/slrnrc.vim b/runtime/syntax/slrnrc.vim
index 038b62e166..cf0734ae85 100644
--- a/runtime/syntax/slrnrc.vim
+++ b/runtime/syntax/slrnrc.vim
@@ -3,11 +3,8 @@
" Maintainer: Preben 'Peppe' Guldberg <peppe-vim@wielders.org>
" Last Change: 23 April 2006
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -150,44 +147,34 @@ syn match slrnrcSetkey "^\s*setkey\>" skipwhite nextgroup=slrnrcSetkeyArt,slrn
syn match slrnrcUnsetkey '^\s*unsetkey\s\+\("\)\=\(article\|group\|readline\)\>\1' skipwhite nextgroup=slrnrcKey contains=slrnrcSetkeyObj\(Str\)\=
" 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_slrnrc_syntax_inits")
- if version < 508
- let did_slrnrc_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink slrnrcTodo Todo
- HiLink slrnrcSpaceError Error
- HiLink slrnrcNumber Number
- HiLink slrnrcSpecKey SpecialChar
- HiLink slrnrcKey String
- HiLink slrnrcSpecChar SpecialChar
- HiLink slrnrcString String
- HiLink slrnSlangPreCondit Special
- HiLink slrnrcComment Comment
- HiLink slrnrcVarInt Identifier
- HiLink slrnrcVarStr Identifier
- HiLink slrnrcCmd slrnrcSet
- HiLink slrnrcSet Operator
- HiLink slrnrcColor Keyword
- HiLink slrnrcColorObj Identifier
- HiLink slrnrcColorVal String
- HiLink slrnrcMono Keyword
- HiLink slrnrcMonoObj Identifier
- HiLink slrnrcMonoVal String
- HiLink slrnrcFunArt Macro
- HiLink slrnrcFunGroup Macro
- HiLink slrnrcFunRead Macro
- HiLink slrnrcSetkeyObj Identifier
- HiLink slrnrcSetkey Keyword
- HiLink slrnrcUnsetkey slrnrcSetkey
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/slrnsc.vim b/runtime/syntax/slrnsc.vim
index 838af6ad1c..9f51cad380 100644
--- a/runtime/syntax/slrnsc.vim
+++ b/runtime/syntax/slrnsc.vim
@@ -3,20 +3,13 @@
" Maintainer: Preben 'Peppe' Guldberg <peppe@wielders.org>
" Last Change: 8 Oct 2004
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
" characters in newsgroup names
-if version < 600
- set isk=@,48-57,.,-,_,+
-else
- setlocal isk=@,48-57,.,-,_,+
-endif
+setlocal isk=@,48-57,.,-,_,+
syn match slrnscComment "%.*$"
syn match slrnscSectionCom ".].*"lc=2
@@ -51,34 +44,24 @@ 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.
-" 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_slrnsc_syntax_inits")
- if version < 508
- let did_slrnsc_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink slrnscComment Comment
- HiLink slrnscSectionCom slrnscComment
- HiLink slrnscGroup String
- HiLink slrnscNumber Number
- HiLink slrnscDate Special
- HiLink slrnscDelim Delimiter
- HiLink slrnscComma SpecialChar
- HiLink slrnscOper SpecialChar
- HiLink slrnscEsc String
- HiLink slrnscSectionStd Type
- HiLink slrnscSectionNot Delimiter
- HiLink slrnscItem Statement
- HiLink slrnscScore Keyword
- HiLink slrnscScoreIdent Identifier
- HiLink slrnscInclude Keyword
+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
- delcommand HiLink
-endif
let b:current_syntax = "slrnsc"
diff --git a/runtime/syntax/sm.vim b/runtime/syntax/sm.vim
index 8fdc14b71a..0ecc96875f 100644
--- a/runtime/syntax/sm.vim
+++ b/runtime/syntax/sm.vim
@@ -1,10 +1,9 @@
" Vim syntax file
" Language: sendmail
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change: Oct 23, 2014
-" Version: 7
+" Last Change: Oct 25, 2016
+" Version: 8
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SM
-
if exists("b:current_syntax")
finish
endif
@@ -56,36 +55,25 @@ syn match smClauseCont contained "^\t"
syn region smClause matchgroup=Delimiter start="\$?." matchgroup=Delimiter end="\$\." contains=smElse,smClause,smVar,smClauseCont
" 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_smil_syntax_inits")
- if version < 508
- let did_smil_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink smClause Special
- HiLink smClauseError Error
- HiLink smComment Comment
- HiLink smDefine Statement
- HiLink smElse Delimiter
- HiLink smHeader Statement
- HiLink smHeaderSep String
- HiLink smMesg Special
- HiLink smPrecedence Number
- HiLink smRewrite Statement
- HiLink smRewriteComment Comment
- HiLink smRewriteLhsToken String
- HiLink smRewriteLhsUser Statement
- HiLink smRewriteRhsToken String
- HiLink smRuleset Preproc
- HiLink smTrusted Special
- HiLink smVar String
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/smarty.vim b/runtime/syntax/smarty.vim
index 6dda366ba2..a39c290abe 100644
--- a/runtime/syntax/smarty.vim
+++ b/runtime/syntax/smarty.vim
@@ -8,11 +8,10 @@
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if !exists("main_syntax")
- if version < 600
- syntax clear
- elseif exists("b:current_syntax")
- finish
-endif
+ " quit when a syntax file was already loaded
+ if exists("b:current_syntax")
+ finish
+ endif
let main_syntax = 'smarty'
endif
@@ -57,25 +56,16 @@ syn region htmlString contained start=+'+ end=+'+ contains=htmlSpecialChar,ja
syn region htmlLink start="<a\>\_[^>]*\<href\>" end="</a>"me=e-4 contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreproc,smartyZone
-if version >= 508 || !exists("did_smarty_syn_inits")
- if version < 508
- let did_smarty_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink smartyTagName Identifier
- HiLink smartyProperty Constant
- " if you want the text inside the braces to be colored, then
- " remove the comment in from of the next statement
- "HiLink smartyZone Include
- HiLink smartyInFunc Function
- HiLink smartyBlock Constant
- HiLink smartyDot SpecialChar
- HiLink smartyModifier Function
- delcommand HiLink
-endif
+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"
diff --git a/runtime/syntax/smcl.vim b/runtime/syntax/smcl.vim
index d9afba6de5..a5baa47e96 100644
--- a/runtime/syntax/smcl.vim
+++ b/runtime/syntax/smcl.vim
@@ -10,9 +10,8 @@
" check for 'b:current_syntax', removed 'did_smcl_syntax_inits'
" 26apr2006 changed 'stata_smcl' to 'smcl'
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
diff --git a/runtime/syntax/smil.vim b/runtime/syntax/smil.vim
index 6b5a002868..4cf6e84710 100644
--- a/runtime/syntax/smil.vim
+++ b/runtime/syntax/smil.vim
@@ -7,11 +7,8 @@
" To learn more about SMIL, please refer to http://www.w3.org/AudioVideo/
" and to http://www.helio.org/products/smil/tutorial/
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -115,38 +112,28 @@ endif
syn region smilComment start=+<!DOCTYPE+ keepend end=+>+
" 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_smil_syntax_inits")
- if version < 508
- let did_smil_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink smilTag Function
- HiLink smilEndTag Identifier
- HiLink smilArg Type
- HiLink smilTagName smilStatement
- HiLink smilSpecialTagName Exception
- HiLink smilValue Value
- HiLink smilSpecialChar Special
-
- HiLink smilSpecial Special
- HiLink smilSpecialChar Special
- HiLink smilString String
- HiLink smilStatement Statement
- HiLink smilComment Comment
- HiLink smilCommentPart Comment
- HiLink smilPreProc PreProc
- HiLink smilValue String
- HiLink smilCommentError smilError
- HiLink smilTagError smilError
- HiLink smilError Error
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/smith.vim b/runtime/syntax/smith.vim
index e05ce69683..b045d3b963 100644
--- a/runtime/syntax/smith.vim
+++ b/runtime/syntax/smith.vim
@@ -3,11 +3,8 @@
" Maintainer: Rafal M. Sulejman <rms@poczta.onet.pl>
" Last Change: 21.07.2000
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -28,24 +25,14 @@ syn region smithString start=+"+ skip=+\\\\\|\\"+ end=+"+
syn case match
" 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_smith_syntax_inits")
- if version < 508
- let did_smith_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink smithRegister Identifier
- HiLink smithKeyword Keyword
- HiLink smithComment Comment
- HiLink smithString String
- HiLink smithNumber Number
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/sml.vim b/runtime/syntax/sml.vim
index aa7d64a33a..fa4524f93d 100644
--- a/runtime/syntax/sml.vim
+++ b/runtime/syntax/sml.vim
@@ -8,11 +8,8 @@
" 2002 Jun 02 - Fixed small typo (MM)
" 2001 Nov 20 - Fixed small highlighting bug with modules (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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -168,62 +165,52 @@ syn sync match smlSigSync grouphere smlSig "\<sig\>"
syn sync match smlSigSync groupthere smlSig "\<end\>"
" 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_sml_syntax_inits")
- if version < 508
- let did_sml_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink smlBraceErr Error
- HiLink smlBrackErr Error
- HiLink smlParenErr Error
-
- HiLink smlCommentErr Error
-
- HiLink smlEndErr Error
- HiLink smlThenErr Error
-
- HiLink smlCharErr Error
-
- HiLink smlComment Comment
-
- HiLink smlModPath Include
- HiLink smlModule Include
- HiLink smlModParam1 Include
- HiLink smlModType Include
- HiLink smlMPRestr3 Include
- HiLink smlFullMod Include
- HiLink smlModTypeRestr Include
- HiLink smlWith Include
- HiLink smlMTDef Include
-
- HiLink smlConstructor Constant
-
- HiLink smlModPreRHS Keyword
- HiLink smlMPRestr2 Keyword
- HiLink smlKeyword Keyword
- HiLink smlFunDef Keyword
- HiLink smlRefAssign Keyword
- HiLink smlKeyChar Keyword
- HiLink smlAnyVar Keyword
- HiLink smlTopStop Keyword
- HiLink smlOperator Keyword
-
- HiLink smlBoolean Boolean
- HiLink smlCharacter Character
- HiLink smlNumber Number
- HiLink smlReal Float
- HiLink smlString String
- HiLink smlType Type
- HiLink smlTodo Todo
- HiLink smlEncl Keyword
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/snnsnet.vim b/runtime/syntax/snnsnet.vim
index 6b24de5634..9dc9e06e78 100644
--- a/runtime/syntax/snnsnet.vim
+++ b/runtime/syntax/snnsnet.vim
@@ -8,9 +8,8 @@
" SNNS http://www-ra.informatik.uni-tuebingen.de/SNNS/
" is a simulator for neural networks.
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -54,23 +53,14 @@ syn match snnsnetNumbers "\d" contained
syn match snnsnetComment "#.*$" contains=snnsnetTodo
syn keyword snnsnetTodo TODO XXX FIXME contained
-if version >= 508 || !exists("did_snnsnet_syn_inits")
- if version < 508
- let did_snnsnet_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink snnsnetType Type
- HiLink snnsnetComment Comment
- HiLink snnsnetNumbers Number
- HiLink snnsnetSection Statement
- HiLink snnsnetTitle Label
- HiLink snnsnetTodo Todo
+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
- delcommand HiLink
-endif
let b:current_syntax = "snnsnet"
diff --git a/runtime/syntax/snnspat.vim b/runtime/syntax/snnspat.vim
index 5bfa48e624..cb6e9c5bd1 100644
--- a/runtime/syntax/snnspat.vim
+++ b/runtime/syntax/snnspat.vim
@@ -8,9 +8,8 @@
" SNNS http://www-ra.informatik.uni-tuebingen.de/SNNS/
" is a simulator for neural networks.
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -44,26 +43,17 @@ syn match snnspatNumbers "\d" contained
syn match snnspatComment "#.*$" contains=snnspatTodo
syn keyword snnspatTodo TODO XXX FIXME contained
-if version >= 508 || !exists("did_snnspat_syn_inits")
- if version < 508
- let did_snnspat_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink snnspatGen Statement
- HiLink snnspatHeader Error
- HiLink snnspatNoHeader Define
- HiLink snnspatNumbers Number
- HiLink snnspatComment Comment
- HiLink snnspatError Error
- HiLink snnspatTodo Todo
- HiLink snnspatAccepted NONE
- HiLink snnspatBrac NONE
+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
- delcommand HiLink
-endif
let b:current_syntax = "snnspat"
diff --git a/runtime/syntax/snnsres.vim b/runtime/syntax/snnsres.vim
index 4c1d596009..2f19b67dbe 100644
--- a/runtime/syntax/snnsres.vim
+++ b/runtime/syntax/snnsres.vim
@@ -8,9 +8,8 @@
" SNNS http://www-ra.informatik.uni-tuebingen.de/SNNS/
" is a simulator for neural networks.
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -37,23 +36,14 @@ syn match snnsresNumbers "\d" contained
syn match snnsresComment "#.*$" contains=snnsresTodo
syn keyword snnsresTodo TODO XXX FIXME contained
-if version >= 508 || !exists("did_snnsres_syn_inits")
- if version < 508
- let did_snnsres_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink snnsresGen Statement
- HiLink snnsresHeader Statement
- HiLink snnsresNoHeader Define
- HiLink snnsresNumbers Number
- HiLink snnsresComment Comment
- HiLink snnsresTodo Todo
-
- delcommand HiLink
-endif
+
+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"
diff --git a/runtime/syntax/snobol4.vim b/runtime/syntax/snobol4.vim
index 07eb63dec7..a14f15eef4 100644
--- a/runtime/syntax/snobol4.vim
+++ b/runtime/syntax/snobol4.vim
@@ -10,11 +10,8 @@
" - one character labels weren't displayed correctly.
" - nonexistent Snobol4 keywords displayed as errors.
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -79,47 +76,37 @@ syn match snobol4ErrInBracket display contained "[){}]\|<%\|%>"
" syn match snobol4Comment "^\#\!.*$"
" 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_snobol4_syntax_inits")
- if version < 508
- let did_snobol4_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink snobol4Constant Constant
- HiLink snobol4Label Label
- HiLink snobol4Goto Repeat
- HiLink snobol4Conditional Conditional
- HiLink snobol4Repeat Repeat
- HiLink snobol4Number Number
- HiLink snobol4Error Error
- HiLink snobol4Statement PreProc
- HiLink snobol4BogusStatement snobol4Error
- HiLink snobol4String String
- HiLink snobol4Comment Comment
- HiLink snobol4Special Special
- HiLink snobol4Todo Todo
- HiLink snobol4Keyword Keyword
- HiLink snobol4Function Function
- HiLink snobol4MathsOperator Operator
- HiLink snobol4ParenError snobol4Error
- HiLink snobol4ErrInParen snobol4Error
- HiLink snobol4ErrInBracket snobol4Error
- HiLink snobol4SysVar Keyword
- HiLink snobol4BogusSysVar snobol4Error
- if exists("snobol4_strict_mode")
- HiLink snobol4ExtSysVar WarningMsg
- HiLink snobol4ExtKeyword WarningMsg
- else
- HiLink snobol4ExtSysVar snobol4SysVar
- HiLink snobol4ExtKeyword snobol4Keyword
- endif
-
- delcommand HiLink
+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/spec.vim b/runtime/syntax/spec.vim
index 9952bd2548..3a7dc9e422 100644
--- a/runtime/syntax/spec.vim
+++ b/runtime/syntax/spec.vim
@@ -5,11 +5,8 @@
" Former Maintainer: Donovan Rebbechi elflord@panix.com (until March 2014)
" Last Change: Sat Apr 9 15:30 2016 Filip Szymański
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -159,78 +156,68 @@ syn sync match shCaseEsacSync grouphere shCaseEsac "\<case\>"
syn sync match shCaseEsacSync groupthere shCaseEsac "\<esac\>"
" 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_spec_syntax_inits")
- if version < 508
- let did_spec_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- "main types color definitions
- HiLink specSection Structure
- HiLink specSectionMacro Macro
- HiLink specWWWlink PreProc
- HiLink specOpts Operator
-
- "yes, it's ugly, but white is sooo cool
- if &background == "dark"
- hi def specGlobalMacro ctermfg=white
- else
- HiLink specGlobalMacro Identifier
- endif
-
- "sh colors
- HiLink shComment Comment
- HiLink shIf Statement
- HiLink shOperator Special
- HiLink shQuote1 String
- HiLink shQuote2 String
- HiLink shQuoteDelim Statement
-
- "spec colors
- HiLink specBlock Function
- HiLink specColon Special
- HiLink specCommand Statement
- HiLink specCommandOpts specOpts
- HiLink specCommandSpecial Special
- HiLink specComment Comment
- HiLink specConfigure specCommand
- HiLink specDate String
- HiLink specDescriptionOpts specOpts
- HiLink specEmail specWWWlink
- HiLink specError Error
- HiLink specFilesDirective specSectionMacro
- HiLink specFilesOpts specOpts
- HiLink specLicense String
- HiLink specMacroNameLocal specGlobalMacro
- HiLink specMacroNameOther specGlobalMacro
- HiLink specManpageFile NONE
- HiLink specMonth specDate
- HiLink specNoNumberHilite NONE
- HiLink specNumber Number
- HiLink specPackageOpts specOpts
- HiLink specPercent Special
- HiLink specSpecialChar Special
- HiLink specSpecialVariables specGlobalMacro
- HiLink specSpecialVariablesNames specGlobalMacro
- HiLink specTarCommand specCommand
- HiLink specURL specWWWlink
- HiLink specURLMacro specWWWlink
- HiLink specVariables Identifier
- HiLink specWeekday specDate
- HiLink specListedFilesBin Statement
- HiLink specListedFilesDoc Statement
- HiLink specListedFilesEtc Statement
- HiLink specListedFilesLib Statement
- HiLink specListedFilesPrefix Statement
- HiLink specListedFilesShare Statement
-
- delcommand HiLink
+" 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 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
index 93fb4a86c6..9387925ef2 100644
--- a/runtime/syntax/specman.vim
+++ b/runtime/syntax/specman.vim
@@ -10,11 +10,8 @@
"---------------------------------------------------------
" Remove any old syntax stuff hanging around
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -137,46 +134,36 @@ syn region specmanString start=+"+ end=+"+
syn sync lines=50
" 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_specman_syn_inits")
- if version < 508
- let did_specman_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- " The default methods for highlighting. Can be overridden later
- HiLink specmanConditional Conditional
- HiLink specmanConstraint Conditional
- HiLink specmanRepeat Repeat
- HiLink specmanString String
- HiLink specmanComment Comment
- HiLink specmanConstant Macro
- HiLink specmanNumber Number
- HiLink specmanCompare Operator
- HiLink specmanOperator Operator
- HiLink specmanLogical Operator
- HiLink specmanStatement Statement
- HiLink specmanHDL SpecialChar
- HiLink specmanMethod Function
- HiLink specmanInclude Include
- HiLink specmanStructure Structure
- HiLink specmanBoolean Boolean
- HiLink specmanFSM Label
- HiLink specmanSpecial Special
- HiLink specmanType Type
- HiLink specmanTemporal Type
- HiLink specmanFile Include
- HiLink specmanPreCondit Include
- HiLink specmanDefine Typedef
- HiLink specmanLabel Label
- HiLink specmanPacking keyword
- HiLink specmanTodo Todo
- HiLink specmanParenError Error
- HiLink specmanErrInParen Error
- HiLink specmanErrInBracket Error
- delcommand HiLink
-endif
+" 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
index 200e1aaea4..306039bc74 100644
--- a/runtime/syntax/spice.vim
+++ b/runtime/syntax/spice.vim
@@ -7,11 +7,8 @@
" This is based on sh.vim by Lennart Schultz
" but greatly simplified
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -53,28 +50,18 @@ syn match spiceParenError ")"
syn sync minlines=50
" 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_spice_syntax_inits")
- if version < 508
- let did_spice_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink spiceTodo Todo
- HiLink spiceWrapLineOperator spiceOperator
- HiLink spiceSinglequote spiceExpr
- HiLink spiceExpr Function
- HiLink spiceParenError Error
- HiLink spiceStatement Statement
- HiLink spiceNumber Number
- HiLink spiceComment Comment
- HiLink spiceOperator Operator
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/splint.vim b/runtime/syntax/splint.vim
index dc09d8b9d6..8eba57d288 100644
--- a/runtime/syntax/splint.vim
+++ b/runtime/syntax/splint.vim
@@ -15,20 +15,13 @@
" in your vimrc file or filetype.vim
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
" Read the C syntax to start with
-if version < 600
- so <sfile>:p:h/c.vim
-else
- runtime! syntax/c.vim
-endif
+runtime! syntax/c.vim
" FIXME: uses and changes several clusters defined in c.vim
@@ -199,61 +192,51 @@ syn cluster cPreProcGroup add=@splintAllStuff
syn cluster cMultiGroup add=@splintAllStuff
" 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_splint_syntax_inits")
- if version < 508
- let did_splint_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink splintShortAnn splintAnnotation
- HiLink splintAnnotation Comment
- HiLink splintAnnError splintError
- HiLink splintAnnError2 splintError
- HiLink splintFlag SpecialComment
- HiLink splintGlobalFlag splintError
- HiLink splintSpecialAnnot splintAnnKey
- HiLink splintStateAnnot splintAnnKey
- HiLink splintSpecTag splintAnnKey
- HiLink splintModifies splintAnnKey
- HiLink splintRequires splintAnnKey
- HiLink splintGlobals splintAnnKey
- HiLink splintGlobitem Constant
- HiLink splintGlobannot splintAnnKey
- HiLink splintWarning splintAnnKey
- HiLink splintModitem Constant
- HiLink splintIter splintAnnKey
- HiLink splintConst splintAnnKey
- HiLink splintAlt splintAnnKey
- HiLink splintType splintAnnKey
- HiLink splintGlobalType splintAnnKey
- HiLink splintMemMgm splintAnnKey
- HiLink splintAlias splintAnnKey
- HiLink splintExposure splintAnnKey
- HiLink splintDefState splintAnnKey
- HiLink splintGlobState splintAnnKey
- HiLink splintNullState splintAnnKey
- HiLink splintNullPred splintAnnKey
- HiLink splintExit splintAnnKey
- HiLink splintExec splintAnnKey
- HiLink splintSef splintAnnKey
- HiLink splintDecl splintAnnKey
- HiLink splintCase splintAnnKey
- HiLink splintBreak splintAnnKey
- HiLink splintUnreach splintAnnKey
- HiLink splintSpecFunc splintAnnKey
- HiLink splintErrSupp splintAnnKey
- HiLink splintTypeAcc splintAnnKey
- HiLink splintMacro splintAnnKey
- HiLink splintSpecType splintAnnKey
- HiLink splintAnnKey Type
- HiLink splintError Error
+" 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
- delcommand HiLink
-endif
let b:current_syntax = "splint"
diff --git a/runtime/syntax/spup.vim b/runtime/syntax/spup.vim
index 8d7a9e525c..743c7b5711 100644
--- a/runtime/syntax/spup.vim
+++ b/runtime/syntax/spup.vim
@@ -17,11 +17,8 @@
" If you encounter problems or have questions or suggestions, mail me
" Remove old syntax stuff
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -206,74 +203,64 @@ syn sync match spupSyncTitle grouphere spupTitle "^TITLE"
syn sync match spupSyncUnit grouphere spupUnit "^UNIT"
" 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_spup_syn_inits")
- if version < 508
- let did_spup_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink spupCdi spupSection
- HiLink spupConditions spupSection
- HiLink spupDeclare spupSection
- HiLink spupEstimation spupSection
- HiLink spupExternal spupSection
- HiLink spupFlowsheet spupSection
- HiLink spupFunction spupSection
- HiLink spupGlobal spupSection
- HiLink spupHomotopy spupSection
- HiLink spupMacro spupSection
- HiLink spupModel spupSection
- HiLink spupOperation spupSection
- HiLink spupOptions spupSection
- HiLink spupProcedure spupSection
- HiLink spupProfiles spupSection
- HiLink spupReport spupSection
- HiLink spupTitle spupConstant " this is correct, truly ;)
- HiLink spupUnit spupSection
+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
- HiLink spupCdiSubs spupSubs
- HiLink spupConditionsSubs spupSubs
- HiLink spupDeclareSubs spupSubs
- HiLink spupEstimationSubs spupSubs
- HiLink spupExternalSubs spupSubs
- HiLink spupFlowsheetSubs spupSubs
- HiLink spupFunctionSubs spupSubs
- HiLink spupHomotopySubs spupSubs
- HiLink spupMacroSubs spupSubs
- HiLink spupModelSubs spupSubs
- HiLink spupOperationSubs spupSubs
- HiLink spupOptionsSubs spupSubs
- HiLink spupProcedureSubs spupSubs
- HiLink spupReportSubs spupSubs
- HiLink spupUnitSubs spupSubs
+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
- HiLink spupCode Normal
- HiLink spupComment Comment
- HiLink spupComment2 spupComment
- HiLink spupConditional Statement
- HiLink spupConstant Constant
- HiLink spupError Error
- HiLink spupHelp Normal
- HiLink spupIdentifier Identifier
- HiLink spupNumber Constant
- HiLink spupOperator Special
- HiLink spupOpenBrace spupError
- HiLink spupSection Statement
- HiLink spupSpecial spupTextprocGeneric
- HiLink spupStreams Type
- HiLink spupString Constant
- HiLink spupSubs Statement
- HiLink spupSymbol Special
- HiLink spupTextprocError Normal
- HiLink spupTextprocGeneric PreProc
- HiLink spupTypes Type
+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
- delcommand HiLink
-endif
let b:current_syntax = "spup"
diff --git a/runtime/syntax/spyce.vim b/runtime/syntax/spyce.vim
index e76cb1a1a2..169de199dc 100644
--- a/runtime/syntax/spyce.vim
+++ b/runtime/syntax/spyce.vim
@@ -4,11 +4,8 @@
" URL: http://spyce.sourceforge.net
" Last Change: 2009 Nov 11
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -20,13 +17,9 @@ 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 <b>,<i>, etc...
-if version < 600
- so <sfile>:p:h/html.vim
-else
- runtime! syntax/html.vim
- unlet b:current_syntax
- syntax spell default " added by Bram
-endif
+runtime! syntax/html.vim
+unlet b:current_syntax
+syntax spell default " added by Bram
" include python
syn include @Python <sfile>:p:h/python.vim
diff --git a/runtime/syntax/sql.vim b/runtime/syntax/sql.vim
index 7ba20f3446..6de3f4a5c0 100644
--- a/runtime/syntax/sql.vim
+++ b/runtime/syntax/sql.vim
@@ -10,11 +10,8 @@
" If the above exist, it will source the type specified.
" If none exist, it will source the default sql.vim file.
"
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
diff --git a/runtime/syntax/sqlanywhere.vim b/runtime/syntax/sqlanywhere.vim
index 05b05c9f4f..e91a99de65 100644
--- a/runtime/syntax/sqlanywhere.vim
+++ b/runtime/syntax/sqlanywhere.vim
@@ -12,11 +12,8 @@
" Updated to Adaptive Server Anywhere 9.0.1
" Updated to Adaptive Server Anywhere 9.0.0
"
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
diff --git a/runtime/syntax/sqlforms.vim b/runtime/syntax/sqlforms.vim
index 055b2ae870..6077dd1e94 100644
--- a/runtime/syntax/sqlforms.vim
+++ b/runtime/syntax/sqlforms.vim
@@ -7,21 +7,14 @@
"
" TODO Find a new maintainer who knows SQL*Forms.
- " 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
syntax case ignore
-if version >= 600
- setlocal iskeyword=a-z,A-Z,48-57,_,.,-,>
-else
- set iskeyword=a-z,A-Z,48-57,_,.,-,>
-endif
+setlocal iskeyword=a-z,A-Z,48-57,_,.,-,>
" The SQL reserved words, defined as keywords.
@@ -138,30 +131,21 @@ syntax match sqlNumber "-\=\<[0-9]*\.\=[0-9_]\>"
syntax sync ccomment sqlComment
-if version >= 508 || !exists("did_sqlforms_syn_inits")
- if version < 508
- let did_sqlforms_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink sqlComment Comment
- HiLink sqlKeyword Statement
- HiLink sqlNumber Number
- HiLink sqlOperator Statement
- HiLink sqlProcedure Statement
- HiLink sqlFunction Statement
- HiLink sqlSystem Identifier
- HiLink sqlSpecial Special
- HiLink sqlStatement Statement
- HiLink sqlString String
- HiLink sqlType Type
- HiLink sqlCodes Identifier
- HiLink sqlTriggers PreProc
-
- delcommand HiLink
-endif
+
+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"
diff --git a/runtime/syntax/sqlhana.vim b/runtime/syntax/sqlhana.vim
index 1410e99eb4..2e334bb56e 100644
--- a/runtime/syntax/sqlhana.vim
+++ b/runtime/syntax/sqlhana.vim
@@ -7,11 +7,8 @@
" Description: Updated to SAP HANA SP4
"
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
diff --git a/runtime/syntax/sqlinformix.vim b/runtime/syntax/sqlinformix.vim
index b4d023600c..e01912bc40 100644
--- a/runtime/syntax/sqlinformix.vim
+++ b/runtime/syntax/sqlinformix.vim
@@ -4,11 +4,8 @@
" Maintainer: Dean Hill <dhill@hotmail.com>
" Last Change: 2004 Aug 30
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -154,43 +151,33 @@ syn keyword sqlTodo TODO FIXME XXX DEBUG NOTE
" 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_sql_syn_inits")
- if version < 508
- let did_sql_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
-
- " === Comment syntax group ===
- HiLink sqlComment Comment
-
- " === Constant syntax group ===
- HiLink sqlNumber Number
- HiLink sqlBoolean Boolean
- HiLink sqlString String
-
- " === Statment syntax group ===
- HiLink sqlStatement Statement
- HiLink sqlConditional Conditional
- HiLink sqlRepeat Repeat
- HiLink sqlKeyword Keyword
- HiLink sqlOperator Operator
- HiLink sqlException Exception
-
- " === Identifier syntax group ===
- HiLink sqlFunction Function
-
- " === Type syntax group ===
- HiLink sqlType Type
-
- " === Todo syntax group ===
- HiLink sqlTodo Todo
-
- delcommand HiLink
-endif
+" 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
+
+" === Statment 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
index 51398ef9c2..c901145c3c 100644
--- a/runtime/syntax/sqlj.vim
+++ b/runtime/syntax/sqlj.vim
@@ -8,10 +8,8 @@
" au BufNewFile,BufRead *.sqlj so $VIM/syntax/sqlj.vim
-" Remove any old syntax stuff hanging around
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -76,27 +74,18 @@ syn match sqlComment "--.*"
syn sync ccomment sqljComment
-if version >= 508 || !exists("did_sqlj_syn_inits")
- if version < 508
- let did_sqlj_syn_inits = 1
- command! -nargs=+ HiLink hi link <args>
- else
- command! -nargs=+ HiLink hi def link <args>
- endif
-
- " The default methods for highlighting. Can be overridden later.
- HiLink sqljComment Comment
- HiLink sqljKeyword sqljSpecial
- HiLink sqljNumber Number
- HiLink sqljOperator sqljStatement
- HiLink sqljSpecial Special
- HiLink sqljStatement Statement
- HiLink sqljString String
- HiLink sqljType Type
- HiLink sqljPre PreProc
-
- delcommand HiLink
-endif
+
+" 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
index f9e24af98c..bf2862f497 100644
--- a/runtime/syntax/sqloracle.vim
+++ b/runtime/syntax/sqloracle.vim
@@ -128,19 +128,17 @@ syn keyword sqlFunction xmlparse xmlpatch xmlpi xmlquery xmlroot xmlsequence xml
syn keyword sqlTodo TODO FIXME XXX DEBUG NOTE contained
" Define the default highlighting.
-command -nargs=+ HiLink hi def link <args>
-HiLink Quote Special
-HiLink sqlComment Comment
-HiLink sqlFunction Function
-HiLink sqlKeyword sqlSpecial
-HiLink sqlNumber Number
-HiLink sqlOperator sqlStatement
-HiLink sqlSpecial Special
-HiLink sqlStatement Statement
-HiLink sqlString String
-HiLink sqlType Type
-HiLink sqlTodo Todo
-
-delcommand HiLink
+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
index 8c9e7b49e4..40b48358c6 100644
--- a/runtime/syntax/sqr.vim
+++ b/runtime/syntax/sqr.vim
@@ -16,19 +16,12 @@
" http://lanzarotta.tripod.com/vim.html
" jefflanzarotta at yahoo dot com
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
-if version >= 600
- setlocal iskeyword=@,48-57,_,-,#,$,{,}
-else
- set iskeyword=@,48-57,_,-,#,$,{,}
-endif
+setlocal iskeyword=@,48-57,_,-,#,$,{,}
syn case ignore
@@ -220,75 +213,49 @@ syn match sqrNumber /-\=\<\d*\.\=[0-9_]\>/
syn keyword sqrTodo TODO FIXME XXX DEBUG NOTE ###
syn match sqrTodo /???/
-if version >= 600
- " See also the sqrString section above for handling of ! characters
- " inside of strings. (Those patterns override the ones below.)
- syn match sqrComment /!\@<!!\([^!=].*\|$\)/ contains=sqrTodo
- " the ! can't be preceded by another !,
- " and must be followed by at least one
- " character other than ! or =, or immediately
- " by the end-of-line
- syn match sqrComment /^!=.*/ contains=sqrTodo
- syn match sqrComment /^!!.*/ contains=sqrTodo
- syn match sqrError /^\s\+\zs!=.*/
- " it's an error to have "!=" preceded by
- " just whitespace on the line ("!="
- " preceded by non-whitespace is treated
- " as neither a comment nor an error, since
- " it is often correct, i.e.
- " if #count != 7
- syn match sqrError /.\+\zs!!.*/
- " a "!!" anywhere but at the beginning of
- " the line is always an error
-else "For versions before 6.0, same idea as above but we are limited
- "to simple patterns only. Also, the sqrString patterns above
- "don't seem to take precedence in v5 as they do in v6, so
- "we split the last rule to ignore comments found inside of
- "string literals.
- syn match sqrComment /!\([^!=].*\|$\)/ contains=sqrTodo
- syn match sqrComment /^!=.*/ contains=sqrTodo
- syn match sqrComment /^!!.*/ contains=sqrTodo
- syn match sqrError /^\s\+!=.*/
- syn match sqrError /^[^'!]\+!!/
- " flag !! on lines that don't have ! or '
- syn match sqrError /^\([^!']*'[^']*'[^!']*\)\+!!/
- " flag !! found after matched ' ' chars
- " (that aren't also commented)
-endif
+" See also the sqrString section above for handling of ! characters
+" inside of strings. (Those patterns override the ones below.)
+syn match sqrComment /!\@<!!\([^!=].*\|$\)/ contains=sqrTodo
+" the ! can't be preceded by another !,
+" and must be followed by at least one
+" character other than ! or =, or immediately
+" by the end-of-line
+syn match sqrComment /^!=.*/ contains=sqrTodo
+syn match sqrComment /^!!.*/ contains=sqrTodo
+syn match sqrError /^\s\+\zs!=.*/
+" it's an error to have "!=" preceded by
+" just whitespace on the line ("!="
+" preceded by non-whitespace is treated
+" as neither a comment nor an error, since
+" it is often correct, i.e.
+" if #count != 7
+syn match sqrError /.\+\zs!!.*/
+" a "!!" anywhere but at the beginning of
+" the line is always an error
" 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_sqr_syn_inits")
- if version < 508
- let did_sqr_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink sqrSection Statement
- HiLink sqrParagraph Statement
- HiLink sqrReserved Statement
- HiLink sqrParameter Statement
- HiLink sqrPreProc PreProc
- HiLink sqrSubstVar PreProc
- HiLink sqrCommand Statement
- HiLink sqrParam Type
- HiLink sqrFunction Special
-
- HiLink sqrString String
- HiLink sqrStrOpen Todo
- HiLink sqrNumber Number
- HiLink sqrVariable Identifier
-
- HiLink sqrComment Comment
- HiLink sqrTodo Todo
- HiLink sqrError Error
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet.
+
+hi def link sqrSection Statement
+hi def link sqrParagraph Statement
+hi def link sqrReserved Statement
+hi def link sqrParameter Statement
+hi def link sqrPreProc PreProc
+hi def link sqrSubstVar PreProc
+hi def link sqrCommand Statement
+hi def link sqrParam Type
+hi def link sqrFunction Special
+
+hi def link sqrString String
+hi def link sqrStrOpen Todo
+hi def link sqrNumber Number
+hi def link sqrVariable Identifier
+
+hi def link sqrComment Comment
+hi def link sqrTodo Todo
+hi def link sqrError Error
+
let b:current_syntax = "sqr"
diff --git a/runtime/syntax/squid.vim b/runtime/syntax/squid.vim
index a8462bbdce..a8abd180a0 100644
--- a/runtime/syntax/squid.vim
+++ b/runtime/syntax/squid.vim
@@ -7,11 +7,8 @@
" Michael Dotzler <Michael.Dotzler@leoni.com>
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -123,30 +120,20 @@ syn match squidRegexOpt contained "\(^\s*acl\s\+\S\+\s\+\S\+\(_regex\|_mime_type
syn sync minlines=3
" 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_squid_syntax_inits")
- if version < 508
- let did_squid_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink squidTodo Todo
- HiLink squidComment Comment
- HiLink squidTag Special
- HiLink squidConf Keyword
- HiLink squidOpt Constant
- HiLink squidAction String
- HiLink squidNumber Number
- HiLink squidIP Number
- HiLink squidAcl Keyword
- HiLink squidStr String
- HiLink squidRegexOpt Special
+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
- delcommand HiLink
-endif
let b:current_syntax = "squid"
diff --git a/runtime/syntax/srec.vim b/runtime/syntax/srec.vim
index 19b6d97426..6ac22d9062 100644
--- a/runtime/syntax/srec.vim
+++ b/runtime/syntax/srec.vim
@@ -24,11 +24,8 @@
" States in parentheses in the upper format description indicate that they
" should not appear in a valid file.
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -63,33 +60,23 @@ syn match srecDataUnexpected "[0-9a-fA-F]\{2}" contained nextgroup=srecDataUnexp
syn match srecChecksum "[0-9a-fA-F]\{2}$" contained
" 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_srec_syntax_inits")
- if version < 508
- let did_srec_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- " The default methods for highlighting. Can be overridden later
- HiLink srecRecStart srecRecType
- HiLink srecRecTypeUnknown srecRecType
- HiLink srecRecType WarningMsg
- HiLink srecByteCount Constant
- hi def srecAddressFieldUnknown term=italic cterm=italic gui=italic
- HiLink srecNoAddress DiffAdd
- HiLink srecDataAddress Comment
- HiLink srecRecCount srecNoAddress
- HiLink srecStartAddress srecDataAddress
- hi def srecDataOdd term=bold cterm=bold gui=bold
- hi def srecDataEven term=NONE cterm=NONE gui=NONE
- HiLink srecDataUnexpected Error
- HiLink srecChecksum DiffChange
+" 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
- delcommand HiLink
-endif
let b:current_syntax = "srec"
diff --git a/runtime/syntax/sshconfig.vim b/runtime/syntax/sshconfig.vim
index 302d073f1e..755d08e768 100644
--- a/runtime/syntax/sshconfig.vim
+++ b/runtime/syntax/sshconfig.vim
@@ -5,24 +5,17 @@
" Contributor: Leonard Ehrenfried <leonard.ehrenfried@web.de>
" Contributor: Karsten Hopp <karsten@redhat.com>
" Contributor: Dean, Adam Kenneth <adam.ken.dean@hpe.com>
-" Last Change: 2016 Aug 11
-" SSH Version: 7.3p1
+" Last Change: 2016 Dec 28
+" SSH Version: 7.4p1
"
" Setup
-if version >= 600
- if exists("b:current_syntax")
- finish
- endif
-else
- syntax clear
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
+ finish
endif
-if version >= 600
- setlocal iskeyword=_,-,a-z,A-Z,48-57
-else
- set iskeyword=_,-,a-z,A-Z,48-57
-endif
+setlocal iskeyword=_,-,a-z,A-Z,48-57
" case on
@@ -188,6 +181,7 @@ syn keyword sshconfigKeyword IPQoS
syn keyword sshconfigKeyword IdentitiesOnly
syn keyword sshconfigKeyword IdentityFile
syn keyword sshconfigKeyword IgnoreUnknown
+syn keyword sshconfigKeyword Include
syn keyword sshconfigKeyword IPQoS
syn keyword sshconfigKeyword KbdInteractiveAuthentication
syn keyword sshconfigKeyword KbdInteractiveDevices
@@ -233,40 +227,31 @@ syn keyword sshconfigKeyword VisualHostKey
syn keyword sshconfigKeyword XAuthLocation
" Define the default highlighting
-if version >= 508 || !exists("did_sshconfig_syntax_inits")
- if version < 508
- let did_sshconfig_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink sshconfigComment Comment
- HiLink sshconfigTodo Todo
- HiLink sshconfigHostPort sshconfigConstant
- HiLink sshconfigNumber sshconfigConstant
- HiLink sshconfigConstant Constant
- HiLink sshconfigYesNo sshconfigEnum
- HiLink sshconfigCipher sshconfigEnum
- HiLink sshconfigCiphers sshconfigEnum
- HiLink sshconfigMAC sshconfigEnum
- HiLink sshconfigHostKeyAlgo sshconfigEnum
- HiLink sshconfigLogLevel sshconfigEnum
- HiLink sshconfigSysLogFacility sshconfigEnum
- HiLink sshconfigAddressFamily sshconfigEnum
- HiLink sshconfigIPQoS sshconfigEnum
- HiLink sshconfigKbdInteractive sshconfigEnum
- HiLink sshconfigKexAlgo sshconfigEnum
- HiLink sshconfigTunnel sshconfigEnum
- HiLink sshconfigPreferredAuth sshconfigEnum
- HiLink sshconfigVar sshconfigEnum
- HiLink sshconfigEnum Identifier
- HiLink sshconfigSpecial Special
- HiLink sshconfigKeyword Keyword
- HiLink sshconfigHostSect Type
- HiLink sshconfigMatch Type
- delcommand HiLink
-endif
+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 sshconfigEnum
+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
let b:current_syntax = "sshconfig"
diff --git a/runtime/syntax/sshdconfig.vim b/runtime/syntax/sshdconfig.vim
index 6b7b98d893..3924aaf94a 100644
--- a/runtime/syntax/sshdconfig.vim
+++ b/runtime/syntax/sshdconfig.vim
@@ -6,24 +6,17 @@
" Contributor: Leonard Ehrenfried <leonard.ehrenfried@web.de>
" Contributor: Karsten Hopp <karsten@redhat.com>
" Originally: 2009-07-09
-" Last Change: 2016 Mar 1
-" SSH Version: 7.2
+" Last Change: 2017 Oct 25
+" SSH Version: 7.6p1
"
" Setup
-if version >= 600
- if exists("b:current_syntax")
- finish
- endif
-else
- syntax clear
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
+ finish
endif
-if version >= 600
- setlocal iskeyword=_,-,a-z,A-Z,48-57
-else
- set iskeyword=_,-,a-z,A-Z,48-57
-endif
+setlocal iskeyword=_,-,a-z,A-Z,48-57
" case on
@@ -168,6 +161,7 @@ syn keyword sshdconfigKeyword Compression
syn keyword sshdconfigKeyword DebianBanner
syn keyword sshdconfigKeyword DenyGroups
syn keyword sshdconfigKeyword DenyUsers
+syn keyword sshdconfigKeyword DisableForwarding
syn keyword sshdconfigKeyword ForceCommand
syn keyword sshdconfigKeyword GSSAPIAuthentication
syn keyword sshdconfigKeyword GSSAPICleanupCredentials
@@ -230,7 +224,6 @@ syn keyword sshdconfigKeyword TrustedUserCAKeys
syn keyword sshdconfigKeyword UseDNS
syn keyword sshdconfigKeyword UseLogin
syn keyword sshdconfigKeyword UsePAM
-syn keyword sshdconfigKeyword UsePrivilegeSeparation
syn keyword sshdconfigKeyword VersionAddendum
syn keyword sshdconfigKeyword X11DisplayOffset
syn keyword sshdconfigKeyword X11Forwarding
@@ -239,43 +232,34 @@ syn keyword sshdconfigKeyword XAuthLocation
" Define the default highlighting
-if version >= 508 || !exists("did_sshdconfig_syntax_inits")
- if version < 508
- let did_sshdconfig_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink sshdconfigComment Comment
- HiLink sshdconfigTodo Todo
- HiLink sshdconfigHostPort sshdconfigConstant
- HiLink sshdconfigTime sshdconfigConstant
- HiLink sshdconfigNumber sshdconfigConstant
- HiLink sshdconfigConstant Constant
- HiLink sshdconfigYesNo sshdconfigEnum
- HiLink sshdconfigAddressFamily sshdconfigEnum
- HiLink sshdconfigPrivilegeSeparation sshdconfigEnum
- HiLink sshdconfigTcpForwarding sshdconfigEnum
- HiLink sshdconfigRootLogin sshdconfigEnum
- HiLink sshdconfigCiphers sshdconfigEnum
- HiLink sshdconfigMAC sshdconfigEnum
- HiLink sshdconfigHostKeyAlgo sshdconfigEnum
- HiLink sshdconfigRootLogin sshdconfigEnum
- HiLink sshdconfigLogLevel sshdconfigEnum
- HiLink sshdconfigSysLogFacility sshdconfigEnum
- HiLink sshdconfigVar sshdconfigEnum
- HiLink sshdconfigCompression sshdconfigEnum
- HiLink sshdconfigIPQoS sshdconfigEnum
- HiLink sshdconfigKexAlgo sshdconfigEnum
- HiLink sshdconfigTunnel sshdconfigEnum
- HiLink sshdconfigSubsystem sshdconfigEnum
- HiLink sshdconfigEnum Function
- HiLink sshdconfigSpecial Special
- HiLink sshdconfigKeyword Keyword
- HiLink sshdconfigMatch Type
- delcommand HiLink
-endif
+
+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"
diff --git a/runtime/syntax/st.vim b/runtime/syntax/st.vim
index 47aa07de5d..8160c7704a 100644
--- a/runtime/syntax/st.vim
+++ b/runtime/syntax/st.vim
@@ -3,11 +3,8 @@
" Maintainer: Arndt Hesse <hesse@self.de>
" Last Change: 2012 Feb 12 by Thilo Six
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -77,30 +74,20 @@ hi link stBlockError stError
syn sync minlines=50
" 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_st_syntax_inits")
- if version < 508
- let did_st_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink stKeyword Statement
- HiLink stMethod Statement
- HiLink stComment Comment
- HiLink stCharacter Constant
- HiLink stString Constant
- HiLink stSymbol Special
- HiLink stNumber Type
- HiLink stFloat Type
- HiLink stError Error
- HiLink stLocalVariables Identifier
- HiLink stBlockVariable Identifier
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/stata.vim b/runtime/syntax/stata.vim
index e1f19c84fc..29f5052ebe 100644
--- a/runtime/syntax/stata.vim
+++ b/runtime/syntax/stata.vim
@@ -12,9 +12,8 @@
" 26apr2006 fixed brace confusion in stataErrInParen and stataErrInBracket
" fixed paren/bracket confusion in stataFuncGroup
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
diff --git a/runtime/syntax/stp.vim b/runtime/syntax/stp.vim
index f4f0f3b615..2992d8be47 100644
--- a/runtime/syntax/stp.vim
+++ b/runtime/syntax/stp.vim
@@ -4,11 +4,8 @@
" URL: http://lanzarotta.tripod.com/vim/syntax/stp.vim.zip
" Last Change: March 05, 2002
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -131,36 +128,26 @@ syn match stpParenError ")"
syn sync minlines=10 maxlines=100
" Define the default highlighting.
-" For version 5.x and earlier, only when not done already.
-" For version 5.8 and later, only when and item doesn't have highlighting yet.
-if version >= 508 || !exists("did_stp_syn_inits")
- if version < 508
- let did_stp_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink stpConditional Conditional
- HiLink stpComment Comment
- HiLink stpKeyword Keyword
- HiLink stpNumber Number
- HiLink stpOperator Operator
- HiLink stpSpecial Special
- HiLink stpStatement Statement
- HiLink stpString String
- HiLink stpStringError Error
- HiLink stpType Type
- HiLink stpTodo Todo
- HiLink stpFunction Function
- HiLink stpGlobals Macro
- HiLink stpParen Normal
- HiLink stpParenError Error
- HiLink stpSQLKeyword Function
- HiLink stpRepeat Repeat
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/strace.vim b/runtime/syntax/strace.vim
index 0f686fd808..206c58919e 100644
--- a/runtime/syntax/strace.vim
+++ b/runtime/syntax/strace.vim
@@ -5,12 +5,9 @@
" Last Change: 2015-01-16
" Setup
-if version >= 600
- if exists("b:current_syntax")
- finish
- endif
-else
- syntax clear
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
+ finish
endif
syn case match
@@ -35,31 +32,22 @@ syn match straceOperator "[-+=*/!%&|:,]"
syn region straceComment start="/\*" end="\*/" oneline
" Define the default highlighting
-if version >= 508 || !exists("did_strace_syntax_inits")
- if version < 508
- let did_strace_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink straceComment Comment
- HiLink straceVerbosed Comment
- HiLink stracePID PreProc
- HiLink straceNumber Number
- HiLink straceNumberRHS Type
- HiLink straceOtherRHS Type
- HiLink straceString String
- HiLink straceConstant Function
- HiLink straceEquals Type
- HiLink straceSysCallEmbed straceSysCall
- HiLink straceSysCall Statement
- HiLink straceParenthesis Statement
- HiLink straceOperator Normal
- HiLink straceSpecialChar Special
- HiLink straceOtherPID PreProc
+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
- delcommand HiLink
-endif
let b:current_syntax = "strace"
diff --git a/runtime/syntax/sudoers.vim b/runtime/syntax/sudoers.vim
index fffc1cf8bb..df1eb99b42 100644
--- a/runtime/syntax/sudoers.vim
+++ b/runtime/syntax/sudoers.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: sudoers(5) configuration files
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2011-02-24
+" Language: sudoers(5) configuration files
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2011-02-24
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/svn.vim b/runtime/syntax/svn.vim
index 6536d6d11c..6239790f12 100644
--- a/runtime/syntax/svn.vim
+++ b/runtime/syntax/svn.vim
@@ -15,11 +15,8 @@
" Myk Taylor
" Stefano Zacchiroli
-" 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")
+" quit when a syntax file was already loaded.
+if exists("b:current_syntax")
finish
endif
@@ -42,28 +39,18 @@ syn sync clear
syn sync match svnSync grouphere svnRegion "^--.*--$"me=s-1
" 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_svn_syn_inits")
- if version <= 508
- let did_svn_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet.
- HiLink svnSummary Keyword
- HiLink svnBlank Error
+hi def link svnSummary Keyword
+hi def link svnBlank Error
- HiLink svnRegion Comment
- HiLink svnDelimiter NonText
- HiLink svnRemoved Constant
- HiLink svnAdded Identifier
- HiLink svnModified Special
- HiLink svnProperty Special
- HiLink svnRenamed Special
+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
- delcommand HiLink
-endif
let b:current_syntax = "svn"
diff --git a/runtime/syntax/synload.vim b/runtime/syntax/synload.vim
index 6183f33a59..ab918c645b 100644
--- a/runtime/syntax/synload.vim
+++ b/runtime/syntax/synload.vim
@@ -1,6 +1,6 @@
" Vim syntax support file
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2012 Sep 25
+" Last Change: 2016 Nov 04
" This file sets up for syntax highlighting.
" It is loaded from "syntax.vim" and "manual.vim".
@@ -69,8 +69,11 @@ au Syntax c,cpp,cs,idl,java,php,datascript
" Source the user-specified syntax highlighting file
-if exists("mysyntaxfile") && filereadable(expand(mysyntaxfile))
- execute "source " . mysyntaxfile
+if exists("mysyntaxfile")
+ let s:fname = expand(mysyntaxfile)
+ if filereadable(s:fname)
+ execute "source " . fnameescape(s:fname)
+ endif
endif
" Restore 'cpoptions'
diff --git a/runtime/syntax/sysctl.vim b/runtime/syntax/sysctl.vim
index 748054fd73..d99ac01835 100644
--- a/runtime/syntax/sysctl.vim
+++ b/runtime/syntax/sysctl.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: sysctl.conf(5) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2011-05-02
+" Language: sysctl.conf(5) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2011-05-02
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/systemverilog.vim b/runtime/syntax/systemverilog.vim
index 5bf2935078..f99ea8d889 100644
--- a/runtime/syntax/systemverilog.vim
+++ b/runtime/syntax/systemverilog.vim
@@ -3,21 +3,14 @@
" Maintainer: kocha <kocha.lsifrontend@gmail.com>
" Last Change: 12-Aug-2013.
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
" Read in Verilog syntax files
-if version < 600
- so <sfile>:p:h/verilog.vim
-else
- runtime! syntax/verilog.vim
- unlet b:current_syntax
-endif
+runtime! syntax/verilog.vim
+unlet b:current_syntax
" IEEE1800-2005
syn keyword systemverilogStatement always_comb always_ff always_latch
@@ -76,25 +69,16 @@ syn keyword systemverilogStatement implements
syn keyword systemverilogStatement interconnect soft nettype
" Define the default highlighting.
-if version >= 508 || !exists("did_systemverilog_syn_inits")
- if version < 508
- let did_systemverilog_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- " The default highlighting.
- HiLink systemverilogStatement Statement
- HiLink systemverilogTypeDef TypeDef
- HiLink systemverilogConditional Conditional
- HiLink systemverilogRepeat Repeat
- HiLink systemverilogLabel Label
- HiLink systemverilogGlobal Define
- HiLink systemverilogNumber Number
+" 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
- delcommand HiLink
-endif
let b:current_syntax = "systemverilog"
diff --git a/runtime/syntax/tads.vim b/runtime/syntax/tads.vim
index 260ff360f7..23a65b99ec 100644
--- a/runtime/syntax/tads.vim
+++ b/runtime/syntax/tads.vim
@@ -13,11 +13,8 @@
" Actually, should cvtstr etc. be functions?! (change tadsFunction)
" Make global etc. into Identifiers, since we don't have regular variables?
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -122,57 +119,47 @@ endif
execute "syn sync maxlines=" . tads_sync_dist
" 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_tads_syn_inits")
- if version < 508
- let did_tads_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " The default methods for highlighting. Can be overridden later
- HiLink tadsFunctionDef Function
- HiLink tadsFunction Structure
- HiLink tadsClass Structure
- HiLink tadsClassDef Identifier
- HiLink tadsObjectDef Identifier
+" 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
- HiLink tadsOperator Operator
- HiLink tadsStructure Structure
- HiLink tadsTodo Todo
- HiLink tadsLabel Label
- HiLink tadsConditional Conditional
- HiLink tadsRepeat Repeat
- HiLink tadsException Exception
- HiLink tadsStatement Statement
- HiLink tadsStorageClass StorageClass
- HiLink tadsKeyWord Keyword
- HiLink tadsSpecial SpecialChar
- HiLink tadsNumber Number
- HiLink tadsBoolean Boolean
- HiLink tadsDoubleString tadsString
- HiLink tadsSingleString tadsString
-
- HiLink tadsOctalError tadsError
- HiLink tadsCommentError tadsError
- HiLink tadsBraceError tadsError
- HiLink tadsInBrace tadsError
- HiLink tadsError Error
-
- HiLink tadsInclude Include
- HiLink tadsPreProc PreProc
- HiLink tadsDefine Macro
- HiLink tadsIncluded tadsString
- HiLink tadsPreCondit PreCondit
-
- HiLink tadsString String
- HiLink tadsComment Comment
-
- delcommand HiLink
-endif
+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"
diff --git a/runtime/syntax/tags.vim b/runtime/syntax/tags.vim
index c86f17a618..f34696d4b0 100644
--- a/runtime/syntax/tags.vim
+++ b/runtime/syntax/tags.vim
@@ -1,47 +1,31 @@
" Language: tags
" Maintainer: Charles E. Campbell <NdrOchip@PcampbellAfamily.Mbiz>
-" Last Change: Oct 23, 2014
-" Version: 4
+" Last Change: Oct 26, 2016
+" Version: 7
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TAGS
-" 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")
+" 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 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 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]*:"
+syn match tagField contained "[a-z]*:"
" 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_drchip_tags_inits")
- if version < 508
- let did_drchip_tags_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink tagBaseFile PreProc
- HiLink tagComment Comment
- HiLink tagDelim Delimiter
- HiLink tagField Number
- HiLink tagName Identifier
- HiLink tagPath PreProc
-
- delcommand HiLink
+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"
-
-" vim: ts=12
diff --git a/runtime/syntax/tak.vim b/runtime/syntax/tak.vim
index 20186db143..7a8fceb860 100644
--- a/runtime/syntax/tak.vim
+++ b/runtime/syntax/tak.vim
@@ -8,11 +8,8 @@
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -32,11 +29,7 @@ syn case ignore
let fortran_free_source=1
" Load FORTRAN syntax file
-if version < 600
- source <sfile>:p:h/fortran.vim
-else
- runtime! syntax/fortran.vim
-endif
+runtime! syntax/fortran.vim
unlet b:current_syntax
@@ -95,40 +88,30 @@ endif
" 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_tak_syntax_inits")
- if version < 508
- let did_tak_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink takMacro Macro
- HiLink takOptions Special
- HiLink takRoutine Type
- HiLink takControl Special
- HiLink takSolids Special
- HiLink takSolidsArg Statement
- HiLink takIdentifier Identifier
-
- HiLink takFortran PreProc
- HiLink takMotran PreProc
-
- HiLink takComment Comment
- HiLink takHeader Typedef
- HiLink takIncludeFile Type
- HiLink takInteger Number
- HiLink takFloat Float
- HiLink takScientific Float
-
- HiLink takEndData Macro
-
- HiLink takTodo Todo
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/takcmp.vim b/runtime/syntax/takcmp.vim
index a94609b325..9426e02223 100644
--- a/runtime/syntax/takcmp.vim
+++ b/runtime/syntax/takcmp.vim
@@ -8,11 +8,8 @@
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -51,30 +48,20 @@ syn case ignore
" 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_takcmp_syntax_inits")
- if version < 508
- let did_takcmp_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink takcmpTitle Type
- HiLink takcmpUnit PreProc
+hi def link takcmpTitle Type
+hi def link takcmpUnit PreProc
- HiLink takcmpLabel Statement
+hi def link takcmpLabel Statement
- HiLink takcmpHeader takHeader
+hi def link takcmpHeader takHeader
- HiLink takcmpDate Identifier
- HiLink takcmpTime Identifier
- HiLink takcmpInteger Number
- HiLink takcmpFloat Special
+hi def link takcmpDate Identifier
+hi def link takcmpTime Identifier
+hi def link takcmpInteger Number
+hi def link takcmpFloat Special
- delcommand HiLink
-endif
let b:current_syntax = "takcmp"
diff --git a/runtime/syntax/takout.vim b/runtime/syntax/takout.vim
index 774353942a..5e5d360767 100644
--- a/runtime/syntax/takout.vim
+++ b/runtime/syntax/takout.vim
@@ -8,11 +8,8 @@
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -24,11 +21,7 @@ syn case match
" Load TAK syntax file
-if version < 600
- source <sfile>:p:h/tak.vim
-else
- runtime! syntax/tak.vim
-endif
+runtime! syntax/tak.vim
unlet b:current_syntax
@@ -70,31 +63,21 @@ syn match takoutError "<<< Error >>>"
" 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_takout_syntax_inits")
- if version < 508
- let did_takout_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink takoutPos Statement
- HiLink takoutNeg PreProc
- HiLink takoutTitle Type
- HiLink takoutFile takIncludeFile
- HiLink takoutInteger takInteger
-
- HiLink takoutSectionDelim Delimiter
- HiLink takoutSectionTitle Exception
- HiLink takoutHeaderDelim SpecialComment
- HiLink takoutLabel Identifier
-
- HiLink takoutError Error
-
- delcommand HiLink
-endif
+" 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"
diff --git a/runtime/syntax/tap.vim b/runtime/syntax/tap.vim
new file mode 100644
index 0000000000..db37bb8980
--- /dev/null
+++ b/runtime/syntax/tap.vim
@@ -0,0 +1,97 @@
+" Vim syntax file
+" Language: Verbose TAP Output
+" Maintainer: Rufus Cable <rufus@threebytesfull.com>
+" Remark: Simple syntax highlighting for TAP output
+" License:
+" Copyright: (c) 2008-2013 Rufus Cable
+" Last Change: 2014-12-13
+
+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 /\(# TODO\|Failed (TODO)\) .*$/ contained contains=tapTestTodoRev
+syn match tapTestTodoRev /\<TODO\>/ contained
+
+" highlight skipped tests
+syn match tapTestSkip /# skip .*$/ contained contains=tapTestSkipTag
+syn match tapTestSkipTag /\(# \)\@<=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=/^$/
+
+set foldtext=TAPTestLine_foldtext()
+function! TAPTestLine_foldtext()
+ let line = getline(v:foldstart)
+ let sub = substitute(line, '/\*\|\*/\|{{{\d\=', '', 'g')
+ return sub
+endfunction
+
+set foldminlines=5
+set foldcolumn=2
+set foldenable
+set foldmethod=syntax
+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/taskdata.vim b/runtime/syntax/taskdata.vim
index b37c70cc1f..63a8284adf 100644
--- a/runtime/syntax/taskdata.vim
+++ b/runtime/syntax/taskdata.vim
@@ -4,11 +4,8 @@
" Updated: Wed Jul 8 19:46:20 EDT 2009
-" 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")
+" quit when a syntax file was already loaded.
+if exists("b:current_syntax")
finish
endif
let s:keepcpo= &cpo
diff --git a/runtime/syntax/taskedit.vim b/runtime/syntax/taskedit.vim
index 170153c0ee..d33ca78650 100644
--- a/runtime/syntax/taskedit.vim
+++ b/runtime/syntax/taskedit.vim
@@ -4,11 +4,8 @@
" Updated: Wed Jul 8 19:46:32 EDT 2009
-" 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")
+" quit when a syntax file was already loaded.
+if exists("b:current_syntax")
finish
endif
let s:keepcpo= &cpo
diff --git a/runtime/syntax/tasm.vim b/runtime/syntax/tasm.vim
index 2f8559610e..c9fc8186d0 100644
--- a/runtime/syntax/tasm.vim
+++ b/runtime/syntax/tasm.vim
@@ -3,11 +3,8 @@
" Maintaner: FooLman of United Force <foolman@bigfoot.com>
" Last Change: 2012 Feb 03 by Thilo Six
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -95,32 +92,22 @@ syn match tasmOct "\<[0-7]\+O\>"
syn match tasmBin "\<[01]\+B\>"
" 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_tasm_syntax_inits")
- if version < 508
- let did_tasm_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink tasmString String
- HiLink tasmDec Number
- HiLink tasmHex Number
- HiLink tasmOct Number
- HiLink tasmBin Number
- HiLink tasmInstruction Keyword
- HiLink tasmCoprocInstr Keyword
- HiLink tasmMMXInst Keyword
- HiLink tasmDirective PreProc
- HiLink tasmRegister Identifier
- HiLink tasmProctype PreProc
- HiLink tasmComment Comment
- HiLink tasmLabel Label
+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
- delcommand HiLink
-endif
let b:curret_syntax = "tasm"
diff --git a/runtime/syntax/tcl.vim b/runtime/syntax/tcl.vim
index 06629d077f..64efd6fec4 100644
--- a/runtime/syntax/tcl.vim
+++ b/runtime/syntax/tcl.vim
@@ -10,11 +10,8 @@
" Version: 1.14
" URL: http://bitbucket.org/taylor_venable/metasyntax/src/tip/Config/vim/syntax/tcl.vim
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -238,49 +235,39 @@ syn region tclComment start=/;\s*\#/hs=s+1 skip="\\$" end="$" contains=tclTodo
"syn sync ccomment tclComment
" 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_tcl_syntax_inits")
- if version < 508
- let did_tcl_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink tcltkSwitch Special
- HiLink tclExpand Special
- HiLink tclLabel Label
- HiLink tclConditional Conditional
- HiLink tclRepeat Repeat
- HiLink tclNumber Number
- HiLink tclError Error
- HiLink tclCommand Statement
- HiLink tclProcCommand Type
- HiLink tclString String
- HiLink tclComment Comment
- HiLink tclSpecial Special
- HiLink tclTodo Todo
- " Below here are the commands and their options.
- HiLink tcltkCommandColor Statement
- HiLink tcltkWidgetColor Structure
- HiLink tclLineContinue WarningMsg
+" 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')
- HiLink tclNotLineContinue ErrorMsg
-endif
- HiLink tcltkStringSwitch Special
- HiLink tcltkArraySwitch Special
- HiLink tcltkLsortSwitch Special
- HiLink tcltkPackSwitch Special
- HiLink tcltkPackConfSwitch Special
- HiLink tcltkMaths Special
- HiLink tcltkNamespaceSwitch Special
- HiLink tcltkWidgetSwitch Special
- HiLink tcltkPackConfColor Identifier
- HiLink tclVarRef Identifier
-
- delcommand HiLink
+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"
diff --git a/runtime/syntax/teraterm.vim b/runtime/syntax/teraterm.vim
index 521331d8ce..1924996738 100644
--- a/runtime/syntax/teraterm.vim
+++ b/runtime/syntax/teraterm.vim
@@ -1,9 +1,9 @@
" Vim syntax file
" Language: Tera Term Language (TTL)
-" Based on Tera Term Version 4.86
+" Based on Tera Term Version 4.92
" Maintainer: Ken Takata
" URL: https://github.com/k-takata/vim-teraterm
-" Last Change: 2015 Jun 24
+" Last Change: 2016 Aug 17
" Filenames: *.ttl
" License: VIM License
@@ -33,7 +33,7 @@ syn keyword ttlOperator and or xor not
syn match ttlVar "\<groupmatchstr\d\>"
syn match ttlVar "\<param\d\>"
-syn keyword ttlVar inputstr matchstr paramcnt result timeout mtimeout
+syn keyword ttlVar inputstr matchstr paramcnt params result timeout mtimeout
syn match ttlLine nextgroup=ttlStatement "^"
diff --git a/runtime/syntax/terminfo.vim b/runtime/syntax/terminfo.vim
index 0ea112ad47..2b0ab0860a 100644
--- a/runtime/syntax/terminfo.vim
+++ b/runtime/syntax/terminfo.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: terminfo(5) definition
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: terminfo(5) definition
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/tex.vim b/runtime/syntax/tex.vim
index e560573e6e..d5a5de65c8 100644
--- a/runtime/syntax/tex.vim
+++ b/runtime/syntax/tex.vim
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: TeX
" Maintainer: Charles E. Campbell <NdrchipO@ScampbellPfamily.AbizM>
-" Last Change: Jun 17, 2016
-" Version: 97
+" Last Change: Oct 12, 2017
+" Version: 105
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX
"
" Notes: {{{1
@@ -40,29 +40,14 @@
" using conceal mode :help tex-conceal
" Version Clears: {{{1
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
let s:keepcpo= &cpo
set cpo&vim
scriptencoding utf-8
-" Define the default highlighting. {{{1
-" 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_tex_syntax_inits")
- let did_tex_syntax_inits = 1
- if version < 508
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-endif
-
" by default, enable all region-based highlighting
let s:tex_fast= "bcmMprsSvV"
if exists("g:tex_fast")
@@ -132,14 +117,20 @@ endif
" One may override this iskeyword setting by providing
" g:tex_isk
if exists("g:tex_isk")
- exe "setlocal isk=".g:tex_isk
-elseif !has("patch-7.4.1142")
- setl isk=48-57,a-z,A-Z,192-255
+ if b:tex_stylish && g:tex_isk !~ '@'
+ let b:tex_isk= '@,'.g:tex_isk
+ else
+ let b:tex_isk= g:tex_isk
+ endif
+elseif b:tex_stylish
+ let b:tex_isk="@,48-57,a-z,A-Z,192-255"
else
- syn iskeyword 48-57,a-z,A-Z,192-255
+ let b:tex_isk="48-57,a-z,A-Z,192-255"
endif
-if b:tex_stylish
- setlocal isk+=@-@
+if v:version > 704 || (v:version == 704 && has("patch-7.4.1142"))
+ exe "syn iskeyword ".b:tex_isk
+else
+ exe "setl isk=".b:tex_isk
endif
if exists("g:tex_no_error") && g:tex_no_error
let s:tex_no_error= 1
@@ -159,7 +150,7 @@ endif
" Clusters: {{{1
" --------
-syn cluster texCmdGroup contains=texCmdBody,texComment,texDefParm,texDelimiter,texDocType,texInput,texLength,texLigature,texMathDelim,texMathOper,texNewCmd,texNewEnv,texRefZone,texSection,texBeginEnd,texBeginEndName,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle
+syn cluster texCmdGroup contains=texCmdBody,texComment,texDefParm,texDelimiter,texDocType,texInput,texLength,texLigature,texMathDelim,texMathOper,texNewCmd,texNewEnv,texRefZone,texSection,texBeginEnd,texBeginEndName,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,@texMathZones
if !s:tex_no_error
syn cluster texCmdGroup add=texMathError
endif
@@ -169,15 +160,17 @@ syn cluster texBoldGroup contains=texAccent,texBadMath,texComment,texDefCmd,tex
syn cluster texItalGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMatcher,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texBeginEnd,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract,texItalStyle,texItalBoldStyle,texNoSpell
if !s:tex_nospell
syn cluster texMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,@Spell
+ syn cluster texMatchNMGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcherNM,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,@Spell
syn cluster texStyleGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texStyleStatement,@Spell,texStyleMatcher
else
syn cluster texMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption
+ syn cluster texMatchNMGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcherNM,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption
syn cluster texStyleGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texStyleStatement,texStyleMatcher
endif
-syn cluster texPreambleMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTitle,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texMathZoneZ
+syn cluster texPreambleMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcherNM,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTitle,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texMathZoneZ
syn cluster texRefGroup contains=texMatcher,texComment,texDelimiter
if !exists("g:tex_no_math")
- syn cluster texPreambleMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTitle,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texMathZoneZ
+ syn cluster texPreambleMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcherNM,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTitle,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texMathZoneZ
syn cluster texMathZones contains=texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ
syn cluster texMatchGroup add=@texMathZones
syn cluster texMathDelimGroup contains=texMathDelimBad,texMathDelimKey,texMathDelimSet1,texMathDelimSet2
@@ -208,9 +201,13 @@ if s:tex_fast =~# 'm'
if !s:tex_no_error
syn region texMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" transparent contains=@texMatchGroup,texError
syn region texMatcher matchgroup=Delimiter start="\[" end="]" transparent contains=@texMatchGroup,texError,@NoSpell
+ syn region texMatcherNM matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" transparent contains=@texMatchNMGroup,texError
+ syn region texMatcherNM matchgroup=Delimiter start="\[" end="]" transparent contains=@texMatchNMGroup,texError,@NoSpell
else
syn region texMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" transparent contains=@texMatchGroup
syn region texMatcher matchgroup=Delimiter start="\[" end="]" transparent contains=@texMatchGroup
+ syn region texMatcherNM matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" transparent contains=@texMatchNMGroup
+ syn region texMatcherNM matchgroup=Delimiter start="\[" end="]" transparent contains=@texMatchNMGroup
endif
if !s:tex_nospell
syn region texParen start="(" end=")" transparent contains=@texMatchGroup,@Spell
@@ -262,6 +259,7 @@ syn match texAccent +\\[=^.\~"`']+
syn match texAccent +\\['=t'.c^ud"vb~Hr]{\a}+
syn match texLigature "\\\([ijolL]\|ae\|oe\|ss\|AA\|AE\|OE\)$"
+
" \begin{}/\end{} section markers: {{{1
syn match texBeginEnd "\\begin\>\|\\end\>" nextgroup=texBeginEndName
if s:tex_fast =~# 'm'
@@ -408,7 +406,7 @@ if !exists("g:tex_no_math")
" TexNewMathZone: function creates a mathzone with the given suffix and mathzone name. {{{2
" Starred forms are created if starform is true. Starred
" forms have syntax group and synchronization groups with a
- " "S" appended. Handles: cluster, syntax, sync, and HiLink.
+ " "S" appended. Handles: cluster, syntax, sync, and highlighting.
fun! TexNewMathZone(sfx,mathzone,starform)
let grpname = "texMathZone".a:sfx
let syncname = "texSyncMathZone".a:sfx
@@ -447,9 +445,8 @@ if !exists("g:tex_no_math")
call TexNewMathZone("G","gather",1)
call TexNewMathZone("H","math",1)
call TexNewMathZone("I","multline",1)
- call TexNewMathZone("J","subequations",0)
- call TexNewMathZone("K","xalignat",1)
- call TexNewMathZone("L","xxalignat",0)
+ call TexNewMathZone("J","xalignat",1)
+ call TexNewMathZone("K","xxalignat",0)
" Inline Math Zones: {{{2
if s:tex_fast =~# 'M'
@@ -481,8 +478,9 @@ if !exists("g:tex_no_math")
" \left..something.. and \right..something.. support: {{{2
syn match texMathDelimBad contained "\S"
if has("conceal") && &enc == 'utf-8' && s:tex_conceal =~# 'm'
- syn match texMathDelim contained "\\left\\{\>" skipwhite nextgroup=texMathDelimSet1,texMathDelimSet2,texMathDelimBad contains=texMathSymbol cchar={
- syn match texMathDelim contained "\\right\\}\>" skipwhite nextgroup=texMathDelimSet1,texMathDelimSet2,texMathDelimBad contains=texMathSymbol cchar=}
+ syn match texMathDelim contained "\\left\["
+ syn match texMathDelim contained "\\left\\{" skipwhite nextgroup=texMathDelimSet1,texMathDelimSet2,texMathDelimBad contains=texMathSymbol cchar={
+ syn match texMathDelim contained "\\right\\}" skipwhite nextgroup=texMathDelimSet1,texMathDelimSet2,texMathDelimBad contains=texMathSymbol cchar=}
let s:texMathDelimList=[
\ ['<' , '<'] ,
\ ['>' , '>'] ,
@@ -497,13 +495,11 @@ if !exists("g:tex_no_math")
\ ['\\backslash' , '\'] ,
\ ['\\downarrow' , '↓'] ,
\ ['\\Downarrow' , '⇓'] ,
- \ ['\\langle' , '<'] ,
\ ['\\lbrace' , '['] ,
\ ['\\lceil' , '⌈'] ,
\ ['\\lfloor' , '⌊'] ,
\ ['\\lgroup' , '⌊'] ,
\ ['\\lmoustache' , '⎛'] ,
- \ ['\\rangle' , '>'] ,
\ ['\\rbrace' , ']'] ,
\ ['\\rceil' , '⌉'] ,
\ ['\\rfloor' , '⌋'] ,
@@ -513,6 +509,15 @@ if !exists("g:tex_no_math")
\ ['\\Uparrow' , '↑'] ,
\ ['\\updownarrow', '↕'] ,
\ ['\\Updownarrow', '⇕']]
+ if &ambw == "double" || exists("g:tex_usedblwidth")
+ let s:texMathDelimList= s:texMathDelimList + [
+ \ ['\\langle' , '〈'] ,
+ \ ['\\rangle' , '〉']]
+ else
+ let s:texMathDelimList= s:texMathDelimList + [
+ \ ['\\langle' , '<'] ,
+ \ ['\\rangle' , '>']]
+ endif
syn match texMathDelim '\\[bB]igg\=[lr]' contained nextgroup=texMathDelimBad
for texmath in s:texMathDelimList
exe "syn match texMathDelim '\\\\[bB]igg\\=[lr]\\=".texmath[0]."' contained conceal cchar=".texmath[1]
@@ -584,6 +589,13 @@ else
endif
endif
+" %begin-include ... %end-include acts like a texDocZone for \include'd files. Permits spell checking, for example, in such files.
+if !s:tex_nospell
+ TexFold syn region texDocZone matchgroup=texSection start='^\s*%begin-include\>' end='^\s*%end-include\>' contains=@texFoldGroup,@texDocGroup,@Spell
+else
+ TexFold syn region texDocZone matchgroup=texSection start='^\s*%begin-include\>' end='^\s*%end-include\>' contains=@texFoldGroup,@texDocGroup
+endif
+
" Separate lines used for verb` and verb# so that the end conditions {{{1
" will appropriately terminate.
" If g:tex_verbspell exists, then verbatim texZones will permit spellchecking there.
@@ -592,27 +604,17 @@ if s:tex_fast =~# 'v'
syn region texZone start="\\begin{[vV]erbatim}" end="\\end{[vV]erbatim}\|%stopzone\>" contains=@Spell
" listings package:
syn region texZone start="\\begin{lstlisting}" end="\\end{lstlisting}\|%stopzone\>" contains=@Spell
- if version < 600
- syn region texZone start="\\verb\*\=`" end="`\|%stopzone\>" contains=@Spell
- syn region texZone start="\\verb\*\=#" end="#\|%stopzone\>" contains=@Spell
+ if b:tex_stylish
+ syn region texZone start="\\verb\*\=\z([^\ta-zA-Z@]\)" end="\z1\|%stopzone\>" contains=@Spell
else
- if b:tex_stylish
- syn region texZone start="\\verb\*\=\z([^\ta-zA-Z@]\)" end="\z1\|%stopzone\>" contains=@Spell
- else
- syn region texZone start="\\verb\*\=\z([^\ta-zA-Z]\)" end="\z1\|%stopzone\>" contains=@Spell
- endif
+ syn region texZone start="\\verb\*\=\z([^\ta-zA-Z]\)" end="\z1\|%stopzone\>" contains=@Spell
endif
else
syn region texZone start="\\begin{[vV]erbatim}" end="\\end{[vV]erbatim}\|%stopzone\>"
- if version < 600
- syn region texZone start="\\verb\*\=`" end="`\|%stopzone\>"
- syn region texZone start="\\verb\*\=#" end="#\|%stopzone\>"
+ if b:tex_stylish
+ syn region texZone start="\\verb\*\=\z([^\ta-zA-Z@]\)" end="\z1\|%stopzone\>"
else
- if b:tex_stylish
- syn region texZone start="\\verb\*\=\z([^\ta-zA-Z@]\)" end="\z1\|%stopzone\>"
- else
- syn region texZone start="\\verb\*\=\z([^\ta-zA-Z]\)" end="\z1\|%stopzone\>"
- endif
+ syn region texZone start="\\verb\*\=\z([^\ta-zA-Z]\)" end="\z1\|%stopzone\>"
endif
endif
endif
@@ -693,6 +695,7 @@ if has("conceal") && &enc == 'utf-8'
\ ['backslash' , '∖'],
\ ['barwedge' , '⊼'],
\ ['because' , '∵'],
+ \ ['beth' , 'ܒ'],
\ ['between' , '≬'],
\ ['bigcap' , '∩'],
\ ['bigcirc' , '○'],
@@ -712,6 +715,7 @@ if has("conceal") && &enc == 'utf-8'
\ ['boxminus' , '⊟'],
\ ['boxplus' , '⊞'],
\ ['boxtimes' , '⊠'],
+ \ ['Box' , '☐'],
\ ['bullet' , '•'],
\ ['bumpeq' , '≏'],
\ ['Bumpeq' , '≎'],
@@ -761,6 +765,7 @@ if has("conceal") && &enc == 'utf-8'
\ ['eqslantgtr' , '⪖'],
\ ['eqslantless' , '⪕'],
\ ['equiv' , '≡'],
+ \ ['eth' , 'ð'],
\ ['exists' , '∃'],
\ ['fallingdotseq' , '≒'],
\ ['flat' , '♭'],
@@ -770,6 +775,7 @@ if has("conceal") && &enc == 'utf-8'
\ ['geq' , '≥'],
\ ['geqq' , '≧'],
\ ['gets' , '←'],
+ \ ['gimel' , 'ℷ'],
\ ['gg' , '⟫'],
\ ['gneqq' , '≩'],
\ ['gtrdot' , '⋗'],
@@ -780,13 +786,17 @@ if has("conceal") && &enc == 'utf-8'
\ ['heartsuit' , '♡'],
\ ['hookleftarrow' , '↩'],
\ ['hookrightarrow' , '↪'],
+ \ ['iff' , '⇔'],
\ ['iiint' , '∭'],
\ ['iint' , '∬'],
\ ['Im' , 'ℑ'],
\ ['imath' , 'ɩ'],
+ \ ['implies' , '⇒'],
\ ['in' , '∈'],
\ ['infty' , '∞'],
\ ['int' , '∫'],
+ \ ['jmath' , '𝚥'],
+ \ ['land' , '∧'],
\ ['lceil' , '⌈'],
\ ['ldots' , '…'],
\ ['le' , '≤'],
@@ -813,6 +823,7 @@ if has("conceal") && &enc == 'utf-8'
\ ['ll' , '≪'],
\ ['lmoustache' , '╭'],
\ ['lneqq' , '≨'],
+ \ ['lor' , '∨'],
\ ['ltimes' , '⋉'],
\ ['mapsto' , '↦'],
\ ['measuredangle' , '∡'],
@@ -839,6 +850,7 @@ if has("conceal") && &enc == 'utf-8'
\ ['nless' , '≮'],
\ ['nmid' , '∤'],
\ ['notin' , '∉'],
+ \ ['nparallel' , '∦'],
\ ['nprec' , '⊀'],
\ ['nrightarrow' , '↛'],
\ ['nRightarrow' , '⇏'],
@@ -940,10 +952,12 @@ if has("conceal") && &enc == 'utf-8'
\ ['trianglerighteq', '⊵'],
\ ['twoheadleftarrow', '↞'],
\ ['twoheadrightarrow', '↠'],
+ \ ['ulcorner' , '⌜'],
\ ['uparrow' , '↑'],
\ ['Uparrow' , '⇑'],
\ ['updownarrow' , '↕'],
\ ['Updownarrow' , '⇕'],
+ \ ['urcorner' , '⌝'],
\ ['varnothing' , '∅'],
\ ['vartriangle' , '∆'],
\ ['vdash' , '⊢'],
@@ -959,6 +973,15 @@ if has("conceal") && &enc == 'utf-8'
" \ ['jmath' , 'X']
" \ ['uminus' , 'X']
" \ ['uplus' , 'X']
+ if &ambw == "double" || exists("g:tex_usedblwidth")
+ let s:texMathList= s:texMathList + [
+ \ ['right\\rangle' , '〉'],
+ \ ['left\\langle' , '〈']]
+ else
+ let s:texMathList= s:texMathList + [
+ \ ['right\\rangle' , '>'],
+ \ ['left\\langle' , '<']]
+ endif
for texmath in s:texMathList
if texmath[0] =~# '\w$'
exe "syn match texMathSymbol '\\\\".texmath[0]."\\>' contained conceal cchar=".texmath[1]
@@ -1170,11 +1193,13 @@ if has("conceal") && &enc == 'utf-8'
delfun s:SuperSub
endif
- " Accented characters: {{{2
+ " Accented characters and Ligatures: {{{2
if s:tex_conceal =~# 'a'
if b:tex_stylish
syn match texAccent "\\[bcdvuH][^a-zA-Z@]"me=e-1
- syn match texLigature "\\\([ijolL]\|ae\|oe\|ss\|AA\|AE\|OE\)[^a-zA-Z@]"me=e-1
+ syn match texLigature "\\\([ijolL]\|ae\|oe\|ss\|AA\|AE\|OE\)[^a-zA-Z@]"me=e-1
+ syn match texLigature '--'
+ syn match texLigature '---'
else
fun! s:Accents(chr,...)
let i= 1
@@ -1235,15 +1260,17 @@ if has("conceal") && &enc == 'utf-8'
call s:Accents('\\i','ì','í','î','ï','ĩ','į',' ',' ',' ',' ',' ','ĭ',' ')
" \` \' \^ \" \~ \. \= \c \H \k \r \u \v
delfun s:Accents
- syn match texAccent '\\aa\>' conceal cchar=å
- syn match texAccent '\\AA\>' conceal cchar=Å
- syn match texAccent '\\o\>' conceal cchar=ø
- syn match texAccent '\\O\>' conceal cchar=Ø
+ syn match texAccent '\\aa\>' conceal cchar=å
+ syn match texAccent '\\AA\>' conceal cchar=Å
+ syn match texAccent '\\o\>' conceal cchar=ø
+ syn match texAccent '\\O\>' conceal cchar=Ø
syn match texLigature '\\AE\>' conceal cchar=Æ
syn match texLigature '\\ae\>' conceal cchar=æ
syn match texLigature '\\oe\>' conceal cchar=œ
syn match texLigature '\\OE\>' conceal cchar=Œ
syn match texLigature '\\ss\>' conceal cchar=ß
+ syn match texLigature '--' conceal cchar=–
+ syn match texLigature '---' conceal cchar=—
endif
endif
endif
@@ -1273,86 +1300,87 @@ endif
" ---------------------------------------------------------------------
" Highlighting: {{{1
-if did_tex_syntax_inits == 1
- let did_tex_syntax_inits= 2
+
+" Define the default highlighting. {{{1
+if !exists("skip_tex_syntax_inits")
+
" TeX highlighting groups which should share similar highlighting
if !exists("g:tex_no_error")
if !exists("g:tex_no_math")
- HiLink texBadMath texError
- HiLink texMathDelimBad texError
- HiLink texMathError texError
+ hi def link texBadMath texError
+ hi def link texMathDelimBad texError
+ hi def link texMathError texError
if !b:tex_stylish
- HiLink texOnlyMath texError
+ hi def link texOnlyMath texError
endif
endif
- HiLink texError Error
+ hi def link texError Error
endif
hi texBoldStyle gui=bold cterm=bold
hi texItalStyle gui=italic cterm=italic
hi texBoldItalStyle gui=bold,italic cterm=bold,italic
hi texItalBoldStyle gui=bold,italic cterm=bold,italic
- HiLink texCite texRefZone
- HiLink texDefCmd texDef
- HiLink texDefName texDef
- HiLink texDocType texCmdName
- HiLink texDocTypeArgs texCmdArgs
- HiLink texInputFileOpt texCmdArgs
- HiLink texInputCurlies texDelimiter
- HiLink texLigature texSpecialChar
+ hi def link texCite texRefZone
+ hi def link texDefCmd texDef
+ hi def link texDefName texDef
+ hi def link texDocType texCmdName
+ hi def link texDocTypeArgs texCmdArgs
+ hi def link texInputFileOpt texCmdArgs
+ hi def link texInputCurlies texDelimiter
+ hi def link texLigature texSpecialChar
if !exists("g:tex_no_math")
- HiLink texMathDelimSet1 texMathDelim
- HiLink texMathDelimSet2 texMathDelim
- HiLink texMathDelimKey texMathDelim
- HiLink texMathMatcher texMath
- HiLink texAccent texStatement
- HiLink texGreek texStatement
- HiLink texSuperscript texStatement
- HiLink texSubscript texStatement
- HiLink texSuperscripts texSuperscript
- HiLink texSubscripts texSubscript
- HiLink texMathSymbol texStatement
- HiLink texMathZoneV texMath
- HiLink texMathZoneW texMath
- HiLink texMathZoneX texMath
- HiLink texMathZoneY texMath
- HiLink texMathZoneV texMath
- HiLink texMathZoneZ texMath
+ hi def link texMathDelimSet1 texMathDelim
+ hi def link texMathDelimSet2 texMathDelim
+ hi def link texMathDelimKey texMathDelim
+ hi def link texMathMatcher texMath
+ hi def link texAccent texStatement
+ hi def link texGreek texStatement
+ hi def link texSuperscript texStatement
+ hi def link texSubscript texStatement
+ hi def link texSuperscripts texSuperscript
+ hi def link texSubscripts texSubscript
+ hi def link texMathSymbol texStatement
+ hi def link texMathZoneV texMath
+ hi def link texMathZoneW texMath
+ hi def link texMathZoneX texMath
+ hi def link texMathZoneY texMath
+ hi def link texMathZoneV texMath
+ hi def link texMathZoneZ texMath
endif
- HiLink texBeginEnd texCmdName
- HiLink texBeginEndName texSection
- HiLink texSpaceCode texStatement
- HiLink texStyleStatement texStatement
- HiLink texTypeSize texType
- HiLink texTypeStyle texType
+ hi def link texBeginEnd texCmdName
+ hi def link texBeginEndName texSection
+ hi def link texSpaceCode texStatement
+ hi def link texStyleStatement texStatement
+ hi def link texTypeSize texType
+ hi def link texTypeStyle texType
" Basic TeX highlighting groups
- HiLink texCmdArgs Number
- HiLink texCmdName Statement
- HiLink texComment Comment
- HiLink texDef Statement
- HiLink texDefParm Special
- HiLink texDelimiter Delimiter
- HiLink texInput Special
- HiLink texInputFile Special
- HiLink texLength Number
- HiLink texMath Special
- HiLink texMathDelim Statement
- HiLink texMathOper Operator
- HiLink texNewCmd Statement
- HiLink texNewEnv Statement
- HiLink texOption Number
- HiLink texRefZone Special
- HiLink texSection PreCondit
- HiLink texSpaceCodeChar Special
- HiLink texSpecialChar SpecialChar
- HiLink texStatement Statement
- HiLink texString String
- HiLink texTodo Todo
- HiLink texType Type
- HiLink texZone PreCondit
+ hi def link texCmdArgs Number
+ hi def link texCmdName Statement
+ hi def link texComment Comment
+ hi def link texDef Statement
+ hi def link texDefParm Special
+ hi def link texDelimiter Delimiter
+ hi def link texInput Special
+ hi def link texInputFile Special
+ hi def link texLength Number
+ hi def link texMath Special
+ hi def link texMathDelim Statement
+ hi def link texMathOper Operator
+ hi def link texNewCmd Statement
+ hi def link texNewEnv Statement
+ hi def link texOption Number
+ hi def link texRefZone Special
+ hi def link texSection PreCondit
+ hi def link texSpaceCodeChar Special
+ hi def link texSpecialChar SpecialChar
+ hi def link texStatement Statement
+ hi def link texString String
+ hi def link texTodo Todo
+ hi def link texType Type
+ hi def link texZone PreCondit
- delcommand HiLink
endif
" Cleanup: {{{1
diff --git a/runtime/syntax/texinfo.vim b/runtime/syntax/texinfo.vim
index 134fc6763c..a4b7689707 100644
--- a/runtime/syntax/texinfo.vim
+++ b/runtime/syntax/texinfo.vim
@@ -9,10 +9,8 @@
" since @ can have special meanings, everything is 'match'-ed and 'region'-ed
" (including @ in 'iskeyword' option has unexpected effects)
-" Remove any old syntax stuff hanging around, if needed
-if version < 600
- syn clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -356,48 +354,37 @@ syn cluster texinfoReducedAll contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
"==============================================================================
" 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_texinfo_syn_inits")
-
- if version < 508
- let did_texinfo_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink texinfoSpecialChar Special
- HiLink texinfoHFSpecialChar Special
-
- HiLink texinfoError Error
- HiLink texinfoIdent Identifier
- HiLink texinfoAssignment Identifier
- HiLink texinfoSinglePar Identifier
- HiLink texinfoIndexPar Identifier
- HiLink texinfoSIPar Identifier
- HiLink texinfoDIEPar Identifier
- HiLink texinfoTexCmd PreProc
-
-
- HiLink texinfoAtCmd Statement "@-command
- HiLink texinfoPrmAtCmd String "@-command in one line with unknown nr. of parameters
- "is String because is found as a region and is 'matchgroup'-ed
- "to texinfoAtCmd
- HiLink texinfoBrcPrmAtCmd String "@-command with parameter(s) in braces ({})
- "is String because is found as a region and is 'matchgroup'-ed to texinfoAtCmd
- HiLink texinfoMltlnAtCmdFLine texinfoAtCmd "repeated embedded First lines in @-commands
- HiLink texinfoMltlnAtCmd String "@-command in multiple lines
- "is String because is found as a region and is 'matchgroup'-ed to texinfoAtCmd
- HiLink texinfoMltln2AtCmd PreProc "@-command in multiple lines (same as texinfoMltlnAtCmd, just with other colors)
- HiLink texinfoMltlnDMAtCmd PreProc "@-command in multiple lines (same as texinfoMltlnAtCmd, just with other colors; used for @detailmenu, which can be included in @menu)
- HiLink texinfoMltlnNAtCmd Normal "@-command in multiple lines (same as texinfoMltlnAtCmd, just with other colors)
- HiLink texinfoThisAtCmd Statement "@-command used in headers and footers (@this... series)
-
- HiLink texinfoComment Comment
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link texinfoSpecialChar Special
+hi def link texinfoHFSpecialChar Special
+
+hi def link texinfoError Error
+hi def link texinfoIdent Identifier
+hi def link texinfoAssignment Identifier
+hi def link texinfoSinglePar Identifier
+hi def link texinfoIndexPar Identifier
+hi def link texinfoSIPar Identifier
+hi def link texinfoDIEPar Identifier
+hi def link texinfoTexCmd PreProc
+
+
+hi def link texinfoAtCmd Statement "@-command
+hi def link texinfoPrmAtCmd String "@-command in one line with unknown nr. of parameters
+ "is String because is found as a region and is 'matchgroup'-ed
+ "to texinfoAtCmd
+hi def link texinfoBrcPrmAtCmd String "@-command with parameter(s) in braces ({})
+ "is String because is found as a region and is 'matchgroup'-ed to texinfoAtCmd
+hi def link texinfoMltlnAtCmdFLine texinfoAtCmd "repeated embedded First lines in @-commands
+hi def link texinfoMltlnAtCmd String "@-command in multiple lines
+ "is String because is found as a region and is 'matchgroup'-ed to texinfoAtCmd
+hi def link texinfoMltln2AtCmd PreProc "@-command in multiple lines (same as texinfoMltlnAtCmd, just with other colors)
+hi def link texinfoMltlnDMAtCmd PreProc "@-command in multiple lines (same as texinfoMltlnAtCmd, just with other colors; used for @detailmenu, which can be included in @menu)
+hi def link texinfoMltlnNAtCmd Normal "@-command in multiple lines (same as texinfoMltlnAtCmd, just with other colors)
+hi def link texinfoThisAtCmd Statement "@-command used in headers and footers (@this... series)
+
+hi def link texinfoComment Comment
+
let b:current_syntax = "texinfo"
diff --git a/runtime/syntax/texmf.vim b/runtime/syntax/texmf.vim
index 7b91168f08..d1268faff7 100644
--- a/runtime/syntax/texmf.vim
+++ b/runtime/syntax/texmf.vim
@@ -6,12 +6,9 @@
" URL: http://physics.muni.cz/~yeti/download/syntax/texmf.vim
" Setup
-if version >= 600
- if exists("b:current_syntax")
- finish
- endif
-else
- syntax clear
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
+ finish
endif
syn case match
@@ -45,42 +42,33 @@ syn region texmfBrace matchgroup=texmfBraceBrace start="{" end="}" contains=ALLB
syn match texmfBraceError "}"
" Define the default highlighting
-if version >= 508 || !exists("did_texmf_syntax_inits")
- if version < 508
- let did_texmf_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink texmfComment Comment
- HiLink texmfTodo Todo
+hi def link texmfComment Comment
+hi def link texmfTodo Todo
- HiLink texmfPassedParameter texmfVariable
- HiLink texmfVariable Identifier
+hi def link texmfPassedParameter texmfVariable
+hi def link texmfVariable Identifier
- HiLink texmfNumber Number
- HiLink texmfString String
+hi def link texmfNumber Number
+hi def link texmfString String
- HiLink texmfLHSStart texmfLHS
- HiLink texmfLHSVariable texmfLHS
- HiLink texmfLHSDot texmfLHS
- HiLink texmfLHS Type
+hi def link texmfLHSStart texmfLHS
+hi def link texmfLHSVariable texmfLHS
+hi def link texmfLHSDot texmfLHS
+hi def link texmfLHS Type
- HiLink texmfEquals Normal
+hi def link texmfEquals Normal
- HiLink texmfBraceBrace texmfDelimiter
- HiLink texmfComma texmfDelimiter
- HiLink texmfColons texmfDelimiter
- HiLink texmfDelimiter Preproc
+hi def link texmfBraceBrace texmfDelimiter
+hi def link texmfComma texmfDelimiter
+hi def link texmfColons texmfDelimiter
+hi def link texmfDelimiter Preproc
- HiLink texmfDoubleExclam Statement
- HiLink texmfSpecial Special
+hi def link texmfDoubleExclam Statement
+hi def link texmfSpecial Special
- HiLink texmfBraceError texmfError
- HiLink texmfError Error
+hi def link texmfBraceError texmfError
+hi def link texmfError Error
- delcommand HiLink
-endif
let b:current_syntax = "texmf"
diff --git a/runtime/syntax/tf.vim b/runtime/syntax/tf.vim
index 2a9a999883..47775b8637 100644
--- a/runtime/syntax/tf.vim
+++ b/runtime/syntax/tf.vim
@@ -9,11 +9,8 @@
" Remove any old syntax stuff hanging around
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -161,44 +158,34 @@ else
endif
" 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_tf_syn_inits")
- if version < 508
- let did_tf_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink tfComment Comment
- HiLink tfString String
- HiLink tfNumber Number
- HiLink tfFloat Float
- HiLink tfIdentifier Identifier
- HiLink tfVar Identifier
- HiLink tfWorld Identifier
- HiLink tfReadonly Identifier
- HiLink tfHook Identifier
- HiLink tfFunctions Function
- HiLink tfRepeat Repeat
- HiLink tfConditional Conditional
- HiLink tfLabel Label
- HiLink tfStatement Statement
- HiLink tfType Type
- HiLink tfInclude Include
- HiLink tfDefine Define
- HiLink tfSpecialChar SpecialChar
- HiLink tfSpecialCharEsc SpecialChar
- HiLink tfParentError Error
- HiLink tfTodo Todo
- HiLink tfEndCommand Delimiter
- HiLink tfJoinLines Delimiter
- HiLink tfOperator Operator
- HiLink tfRelation Operator
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link tfComment Comment
+hi def link tfString String
+hi def link tfNumber Number
+hi def link tfFloat Float
+hi def link tfIdentifier Identifier
+hi def link tfVar Identifier
+hi def link tfWorld Identifier
+hi def link tfReadonly Identifier
+hi def link tfHook Identifier
+hi def link tfFunctions Function
+hi def link tfRepeat Repeat
+hi def link tfConditional Conditional
+hi def link tfLabel Label
+hi def link tfStatement Statement
+hi def link tfType Type
+hi def link tfInclude Include
+hi def link tfDefine Define
+hi def link tfSpecialChar SpecialChar
+hi def link tfSpecialCharEsc SpecialChar
+hi def link tfParentError Error
+hi def link tfTodo Todo
+hi def link tfEndCommand Delimiter
+hi def link tfJoinLines Delimiter
+hi def link tfOperator Operator
+hi def link tfRelation Operator
+
let b:current_syntax = "tf"
diff --git a/runtime/syntax/tli.vim b/runtime/syntax/tli.vim
index 5685a6cbf2..b96d4a2119 100644
--- a/runtime/syntax/tli.vim
+++ b/runtime/syntax/tli.vim
@@ -4,11 +4,8 @@
" Last Change: 2001 May 10
" Version: 1.0
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -44,27 +41,17 @@ syn match tliComment "#.*"
syn case match
" 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_tli_syntax_inits")
- if version < 508
- let did_tli_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink tliNumber Number
- HiLink tliString String
- HiLink tliComment Comment
- HiLink tliSpecial SpecialChar
- HiLink tliIdentifier Identifier
- HiLink tliObject Statement
- HiLink tliField Type
- HiLink tliStyle PreProc
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link tliNumber Number
+hi def link tliString String
+hi def link tliComment Comment
+hi def link tliSpecial SpecialChar
+hi def link tliIdentifier Identifier
+hi def link tliObject Statement
+hi def link tliField Type
+hi def link tliStyle PreProc
+
let b:current_syntax = "tli"
diff --git a/runtime/syntax/tmux.vim b/runtime/syntax/tmux.vim
new file mode 100644
index 0000000000..1ba5f67736
--- /dev/null
+++ b/runtime/syntax/tmux.vim
@@ -0,0 +1,124 @@
+" Language: tmux(1) configuration file
+" Version: 2.3 (git-14dc2ac)
+" URL: https://github.com/ericpruitt/tmux.vim/
+" Maintainer: Eric Pruitt <eric.pruitt@gmail.com>
+" License: 2-Clause BSD (http://opensource.org/licenses/BSD-2-Clause)
+
+if exists("b:current_syntax")
+ finish
+endif
+
+" Explicitly change compatiblity options to Vim's defaults because this file
+" uses line continuations.
+let s:original_cpo = &cpo
+set cpo&vim
+
+let b:current_syntax = "tmux"
+setlocal iskeyword+=-
+syntax case match
+
+syn keyword tmuxAction none any current other
+syn keyword tmuxBoolean off on
+
+syn keyword tmuxTodo FIXME NOTE TODO XXX contained
+
+syn match tmuxColour /\<colour[0-9]\+/ display
+syn match tmuxKey /\(C-\|M-\|\^\)\+\S\+/ display
+syn match tmuxNumber /\d\+/ display
+syn match tmuxFlags /\s-\a\+/ display
+syn match tmuxVariable /\w\+=/ display
+syn match tmuxVariableExpansion /\${\=\w\+}\=/ display
+
+syn region tmuxComment start=/#/ skip=/\\\@<!\\$/ end=/$/ contains=tmuxTodo
+
+syn region tmuxString start=+"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=tmuxFormatString
+syn region tmuxString start=+'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end='$' contains=tmuxFormatString
+
+" TODO: Figure out how escaping works inside of #(...) and #{...} blocks.
+syn region tmuxFormatString start=/#[#DFhHIPSTW]/ end=// contained keepend
+syn region tmuxFormatString start=/#{/ skip=/#{.\{-}}/ end=/}/ contained keepend
+syn region tmuxFormatString start=/#(/ skip=/#(.\{-})/ end=/)/ contained keepend
+
+hi def link tmuxFormatString Identifier
+hi def link tmuxAction Boolean
+hi def link tmuxBoolean Boolean
+hi def link tmuxCommands Keyword
+hi def link tmuxComment Comment
+hi def link tmuxKey Special
+hi def link tmuxNumber Number
+hi def link tmuxFlags Identifier
+hi def link tmuxOptions Function
+hi def link tmuxString String
+hi def link tmuxTodo Todo
+hi def link tmuxVariable Identifier
+hi def link tmuxVariableExpansion Identifier
+
+" Make the foreground of colourXXX keywords match the color they represent.
+" Darker colors have their background set to white.
+for s:i in range(0, 255)
+ let s:bg = (!s:i || s:i == 16 || (s:i > 231 && s:i < 235)) ? 15 : "none"
+ exec "syn match tmuxColour" . s:i . " /\\<colour" . s:i . "\\>/ display"
+\ " | highlight tmuxColour" . s:i . " ctermfg=" . s:i . " ctermbg=" . s:bg
+endfor
+
+syn keyword tmuxOptions
+\ buffer-limit command-alias default-terminal escape-time exit-unattached
+\ focus-events history-file message-limit set-clipboard terminal-overrides
+\ assume-paste-time base-index bell-action bell-on-alert default-command
+\ default-shell destroy-unattached detach-on-destroy
+\ display-panes-active-colour display-panes-colour display-panes-time
+\ display-time history-limit key-table lock-after-time lock-command
+\ message-attr message-bg message-command-attr message-command-bg
+\ message-command-fg message-command-style message-fg message-style mouse
+\ prefix prefix2 renumber-windows repeat-time set-titles set-titles-string
+\ status status-attr status-bg status-fg status-interval status-justify
+\ status-keys status-left status-left-attr status-left-bg status-left-fg
+\ status-left-length status-left-style status-position status-right
+\ status-right-attr status-right-bg status-right-fg status-right-length
+\ status-right-style status-style update-environment visual-activity
+\ visual-bell visual-silence word-separators aggressive-resize allow-rename
+\ alternate-screen automatic-rename automatic-rename-format
+\ clock-mode-colour clock-mode-style force-height force-width
+\ main-pane-height main-pane-width mode-attr mode-bg mode-fg mode-keys
+\ mode-style monitor-activity monitor-silence other-pane-height
+\ other-pane-width pane-active-border-bg pane-active-border-fg
+\ pane-active-border-style pane-base-index pane-border-bg pane-border-fg
+\ pane-border-format pane-border-status pane-border-style remain-on-exit
+\ synchronize-panes window-active-style window-style
+\ window-status-activity-attr window-status-activity-bg
+\ window-status-activity-fg window-status-activity-style window-status-attr
+\ window-status-bell-attr window-status-bell-bg window-status-bell-fg
+\ window-status-bell-style window-status-bg window-status-current-attr
+\ window-status-current-bg window-status-current-fg
+\ window-status-current-format window-status-current-style window-status-fg
+\ window-status-format window-status-last-attr window-status-last-bg
+\ window-status-last-fg window-status-last-style window-status-separator
+\ window-status-style wrap-search xterm-keys
+
+syn keyword tmuxCommands
+\ attach-session attach bind-key bind break-pane breakp capture-pane
+\ capturep clear-history clearhist choose-buffer choose-client choose-tree
+\ choose-session choose-window command-prompt confirm-before confirm
+\ copy-mode clock-mode detach-client detach suspend-client suspendc
+\ display-message display display-panes displayp find-window findw if-shell
+\ if join-pane joinp move-pane movep kill-pane killp kill-server
+\ start-server start kill-session kill-window killw unlink-window unlinkw
+\ list-buffers lsb list-clients lsc list-keys lsk list-commands lscm
+\ list-panes lsp list-sessions ls list-windows lsw load-buffer loadb
+\ lock-server lock lock-session locks lock-client lockc move-window movew
+\ link-window linkw new-session new has-session has new-window neww
+\ paste-buffer pasteb pipe-pane pipep refresh-client refresh rename-session
+\ rename rename-window renamew resize-pane resizep respawn-pane respawnp
+\ respawn-window respawnw rotate-window rotatew run-shell run save-buffer
+\ saveb show-buffer showb select-layout selectl next-layout nextl
+\ previous-layout prevl select-pane selectp last-pane lastp select-window
+\ selectw next-window next previous-window prev last-window last send-keys
+\ send send-prefix set-buffer setb delete-buffer deleteb set-environment
+\ setenv set-hook show-hooks set-option set set-window-option setw
+\ show-environment showenv show-messages showmsgs show-options show
+\ show-window-options showw source-file source split-window splitw swap-pane
+\ swapp swap-window swapw switch-client switchc unbind-key unbind wait-for
+\ wait
+
+let &cpo = s:original_cpo
+unlet! s:original_cpo s:bg s:i
diff --git a/runtime/syntax/tpp.vim b/runtime/syntax/tpp.vim
index 050a2ba78d..1244b97f08 100644
--- a/runtime/syntax/tpp.vim
+++ b/runtime/syntax/tpp.vim
@@ -17,11 +17,8 @@
" the latest version of this file.
" SPAM is _NOT_ welcome - be ready to be reported!
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -51,11 +48,7 @@ syn region tppAbstractOption start="^--\%(author\|title\|date\|footer\)" end="$"
if main_syntax != 'sh'
" shell command
- if version < 600
- syn include @tppShExec <sfile>:p:h/sh.vim
- else
- syn include @tppShExec syntax/sh.vim
- endif
+ syn include @tppShExec syntax/sh.vim
unlet b:current_syntax
syn region shExec matchgroup=tppPageLocalOptionKey start='^--exec *' keepend end='$' contains=@tppShExec
@@ -65,35 +58,25 @@ endif
syn match tppComment "^--##.*$"
" 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_tpp_syn_inits")
- if version < 508
- let did_tpp_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink tppAbstractOptionKey Special
- HiLink tppPageLocalOptionKey Keyword
- HiLink tppPageLocalSwitchKey Keyword
- HiLink tppColorOptionKey Keyword
- HiLink tppTimeOptionKey Comment
- HiLink tppNewPageOptionKey PreProc
- HiLink tppString String
- HiLink tppColor String
- HiLink tppTime Number
- HiLink tppComment Comment
- HiLink tppAbstractOption Error
- HiLink tppPageLocalOption Error
- HiLink tppPageLocalSwitch Error
- HiLink tppColorOption Error
- HiLink tppNewPageOption Error
- HiLink tppTimeOption Error
+hi def link tppAbstractOptionKey Special
+hi def link tppPageLocalOptionKey Keyword
+hi def link tppPageLocalSwitchKey Keyword
+hi def link tppColorOptionKey Keyword
+hi def link tppTimeOptionKey Comment
+hi def link tppNewPageOptionKey PreProc
+hi def link tppString String
+hi def link tppColor String
+hi def link tppTime Number
+hi def link tppComment Comment
+hi def link tppAbstractOption Error
+hi def link tppPageLocalOption Error
+hi def link tppPageLocalSwitch Error
+hi def link tppColorOption Error
+hi def link tppNewPageOption Error
+hi def link tppTimeOption Error
- delcommand HiLink
-endif
let b:current_syntax = "tpp"
diff --git a/runtime/syntax/trasys.vim b/runtime/syntax/trasys.vim
index cfecc1c1fd..d52b5eeb47 100644
--- a/runtime/syntax/trasys.vim
+++ b/runtime/syntax/trasys.vim
@@ -8,11 +8,8 @@
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -21,11 +18,7 @@ endif
let fortran_free_source=1
" Load FORTRAN syntax file
-if version < 600
- source <sfile>:p:h/fortran.vim
-else
- runtime! syntax/fortran.vim
-endif
+runtime! syntax/fortran.vim
unlet b:current_syntax
@@ -136,40 +129,30 @@ syn sync match trasysSync grouphere trasysComment "^HEADER DOCUMENTATION DATA"
" 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_trasys_syntax_inits")
- if version < 508
- let did_trasys_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink trasysOptions Special
- HiLink trasysSurface Special
- HiLink trasysSurfaceType Constant
- HiLink trasysSurfaceArgs Constant
- HiLink trasysArgs Constant
- HiLink trasysOperations Statement
- HiLink trasysSubRoutine Statement
- HiLink trassyPrcsrSegm PreProc
- HiLink trasysIdentifier Identifier
- HiLink trasysComment Comment
- HiLink trasysHeader Typedef
- HiLink trasysMacro Macro
- HiLink trasysInteger Number
- HiLink trasysFloat Float
- HiLink trasysScientific Float
-
- HiLink trasysBlank SpecialChar
-
- HiLink trasysEndData Macro
-
- HiLink trasysTodo Todo
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link trasysOptions Special
+hi def link trasysSurface Special
+hi def link trasysSurfaceType Constant
+hi def link trasysSurfaceArgs Constant
+hi def link trasysArgs Constant
+hi def link trasysOperations Statement
+hi def link trasysSubRoutine Statement
+hi def link trassyPrcsrSegm PreProc
+hi def link trasysIdentifier Identifier
+hi def link trasysComment Comment
+hi def link trasysHeader Typedef
+hi def link trasysMacro Macro
+hi def link trasysInteger Number
+hi def link trasysFloat Float
+hi def link trasysScientific Float
+
+hi def link trasysBlank SpecialChar
+
+hi def link trasysEndData Macro
+
+hi def link trasysTodo Todo
+
let b:current_syntax = "trasys"
diff --git a/runtime/syntax/treetop.vim b/runtime/syntax/treetop.vim
index 921c5bea1d..60bbf26193 100644
--- a/runtime/syntax/treetop.vim
+++ b/runtime/syntax/treetop.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: Treetop
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2011-03-14
+" Language: Treetop
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2011-03-14
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/trustees.vim b/runtime/syntax/trustees.vim
index 4bc8874772..6c58d3983d 100644
--- a/runtime/syntax/trustees.vim
+++ b/runtime/syntax/trustees.vim
@@ -3,9 +3,8 @@
" Maintainer: Nima Talebi <nima@it.net.au>
" Last Change: 2005-10-12
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
diff --git a/runtime/syntax/tsalt.vim b/runtime/syntax/tsalt.vim
index 887d6b75e7..8dd2a24df9 100644
--- a/runtime/syntax/tsalt.vim
+++ b/runtime/syntax/tsalt.vim
@@ -4,11 +4,8 @@
" Last Change: 2012 Feb 03 by Thilo Six
" Version Info: @(#)tsalt.vim 1.5 97/12/16 08:11:15
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -171,46 +168,36 @@ syn sync ccomment tsaltComment
" 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_tsalt_syntax_inits")
- if version < 508
- let did_tsalt_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink tsaltFunction Statement
- HiLink tsaltSysVar Type
- "HiLink tsaltLibFunc UserDefFunc
- "HiLink tsaltConstants Type
- "HiLink tsaltFuncArg Type
- "HiLink tsaltOperator Operator
- "HiLink tsaltLabel Label
- "HiLink tsaltUserLabel Label
- HiLink tsaltConditional Conditional
- HiLink tsaltRepeat Repeat
- HiLink tsaltCharacter SpecialChar
- HiLink tsaltSpecialCharacter SpecialChar
- HiLink tsaltNumber Number
- HiLink tsaltFloat Float
- HiLink tsaltCommentError tsaltError
- HiLink tsaltInclude Include
- HiLink tsaltPreProc PreProc
- HiLink tsaltDefine Macro
- HiLink tsaltIncluded tsaltString
- HiLink tsaltError Error
- HiLink tsaltStatement Statement
- HiLink tsaltPreCondit PreCondit
- HiLink tsaltType Type
- HiLink tsaltString String
- HiLink tsaltComment Comment
- HiLink tsaltSpecial Special
- HiLink tsaltTodo Todo
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link tsaltFunction Statement
+hi def link tsaltSysVar Type
+"hi def link tsaltLibFunc UserDefFunc
+"hi def link tsaltConstants Type
+"hi def link tsaltFuncArg Type
+"hi def link tsaltOperator Operator
+"hi def link tsaltLabel Label
+"hi def link tsaltUserLabel Label
+hi def link tsaltConditional Conditional
+hi def link tsaltRepeat Repeat
+hi def link tsaltCharacter SpecialChar
+hi def link tsaltSpecialCharacter SpecialChar
+hi def link tsaltNumber Number
+hi def link tsaltFloat Float
+hi def link tsaltCommentError tsaltError
+hi def link tsaltInclude Include
+hi def link tsaltPreProc PreProc
+hi def link tsaltDefine Macro
+hi def link tsaltIncluded tsaltString
+hi def link tsaltError Error
+hi def link tsaltStatement Statement
+hi def link tsaltPreCondit PreCondit
+hi def link tsaltType Type
+hi def link tsaltString String
+hi def link tsaltComment Comment
+hi def link tsaltSpecial Special
+hi def link tsaltTodo Todo
+
let b:current_syntax = "tsalt"
diff --git a/runtime/syntax/tsscl.vim b/runtime/syntax/tsscl.vim
index 3fc18c6847..fd2a5e2ba9 100644
--- a/runtime/syntax/tsscl.vim
+++ b/runtime/syntax/tsscl.vim
@@ -8,11 +8,8 @@
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -179,37 +176,27 @@ syn match tssclScientific "-\=\<[0-9]*\.[0-9]*E[-+]\=[0-9]\+\>"
" 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_tsscl_syntax_inits")
- if version < 508
- let did_tsscl_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink tssclCommand Statement
- HiLink tssclKeyword Special
- HiLink tssclEnd Macro
- HiLink tssclUnits Special
-
- HiLink tssclComment Comment
- HiLink tssclDirective Statement
- HiLink tssclConditional Conditional
- HiLink tssclContChar Macro
- HiLink tssclQualifier Typedef
- HiLink tssclSymbol Identifier
- HiLink tssclSymbol2 Symbol
- HiLink tssclString String
- HiLink tssclOper Operator
-
- HiLink tssclInteger Number
- HiLink tssclFloat Number
- HiLink tssclScientific Number
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link tssclCommand Statement
+hi def link tssclKeyword Special
+hi def link tssclEnd Macro
+hi def link tssclUnits Special
+
+hi def link tssclComment Comment
+hi def link tssclDirective Statement
+hi def link tssclConditional Conditional
+hi def link tssclContChar Macro
+hi def link tssclQualifier Typedef
+hi def link tssclSymbol Identifier
+hi def link tssclSymbol2 Symbol
+hi def link tssclString String
+hi def link tssclOper Operator
+
+hi def link tssclInteger Number
+hi def link tssclFloat Number
+hi def link tssclScientific Number
+
let b:current_syntax = "tsscl"
diff --git a/runtime/syntax/tssgm.vim b/runtime/syntax/tssgm.vim
index b8182d48ea..8ca7962e81 100644
--- a/runtime/syntax/tssgm.vim
+++ b/runtime/syntax/tssgm.vim
@@ -8,11 +8,8 @@
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -75,35 +72,25 @@ syn match tssgmScientific "-\=\<[0-9]*\.[0-9]*E[-+]\=[0-9]\+\>"
" 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_tssgm_syntax_inits")
- if version < 508
- let did_tssgm_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink tssgmParam Statement
- HiLink tssgmSurfType Type
- HiLink tssgmArgs Special
- HiLink tssgmDelim Typedef
- HiLink tssgmEnd Macro
- HiLink tssgmUnits Special
-
- HiLink tssgmDefault SpecialComment
- HiLink tssgmComment Statement
- HiLink tssgmCommentString Comment
- HiLink tssgmSurfIdent Identifier
- HiLink tssgmString Delimiter
-
- HiLink tssgmInteger Number
- HiLink tssgmFloat Float
- HiLink tssgmScientific Float
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link tssgmParam Statement
+hi def link tssgmSurfType Type
+hi def link tssgmArgs Special
+hi def link tssgmDelim Typedef
+hi def link tssgmEnd Macro
+hi def link tssgmUnits Special
+
+hi def link tssgmDefault SpecialComment
+hi def link tssgmComment Statement
+hi def link tssgmCommentString Comment
+hi def link tssgmSurfIdent Identifier
+hi def link tssgmString Delimiter
+
+hi def link tssgmInteger Number
+hi def link tssgmFloat Float
+hi def link tssgmScientific Float
+
let b:current_syntax = "tssgm"
diff --git a/runtime/syntax/tssop.vim b/runtime/syntax/tssop.vim
index d416df054c..6a775b2358 100644
--- a/runtime/syntax/tssop.vim
+++ b/runtime/syntax/tssop.vim
@@ -8,11 +8,8 @@
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -56,30 +53,20 @@ syn match tssopScientific "-\=\<[0-9]*\.[0-9]*E[-+]\=[0-9]\+\>"
" 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_tssop_syntax_inits")
- if version < 508
- let did_tssop_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink tssopParam Statement
- HiLink tssopProp Identifier
- HiLink tssopArgs Special
-
- HiLink tssopComment Statement
- HiLink tssopCommentString Comment
- HiLink tssopPropName Typedef
-
- HiLink tssopInteger Number
- HiLink tssopFloat Float
- HiLink tssopScientific Float
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link tssopParam Statement
+hi def link tssopProp Identifier
+hi def link tssopArgs Special
+
+hi def link tssopComment Statement
+hi def link tssopCommentString Comment
+hi def link tssopPropName Typedef
+
+hi def link tssopInteger Number
+hi def link tssopFloat Float
+hi def link tssopScientific Float
+
let b:current_syntax = "tssop"
diff --git a/runtime/syntax/tt2.vim b/runtime/syntax/tt2.vim
index 5321e277da..6432b85a05 100644
--- a/runtime/syntax/tt2.vim
+++ b/runtime/syntax/tt2.vim
@@ -3,10 +3,10 @@
" Author: Moriki, Atsushi <4woods+vim@gmail.com>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
-" Last Change: 2013-07-21
+" Last Change: 2015-04-25
"
-" Instration:
-" put tt2.vim and tt2html.vim in to your syntax diretory.
+" Installation:
+" put tt2.vim and tt2html.vim in to your syntax directory.
"
" add below in your filetype.vim.
" au BufNewFile,BufRead *.tt2 setf tt2
diff --git a/runtime/syntax/tutor.vim b/runtime/syntax/tutor.vim
index bce9189660..cb101ee9a7 100644
--- a/runtime/syntax/tutor.vim
+++ b/runtime/syntax/tutor.vim
@@ -15,7 +15,7 @@ syn match tutorURL /\(https\?\|file\):\/\/[[:graph:]]\+\>\/\?/
syn match tutorEmail /\<[[:graph:]]\+@[[:graph:]]\+\>/
syn match tutorInternalAnchor /\*[[:alnum:]-]\+\*/ contained conceal containedin=tutorSection
-syn match tutorSection /^#\{1,6}\s.\+$/ fold
+syn match tutorSection /^#\{1,6}\s.\+$/ fold contains=tutorInlineNormal
syn match tutorSectionBullet /#/ contained containedin=tutorSection
syn match tutorTOC /\ctable of contents:/
@@ -31,24 +31,18 @@ syn keyword tutorMarks TODO NOTE IMPORTANT TIP ATTENTION EXERCISE
syn keyword tutorMarks todo note tip attention exercise
syn keyword tutorMarks Todo Note Tip Excersise
-syn match tutorTextMark /\\\@<!--->/ conceal cchar=→
-syn region tutorSampleText start=/^\(--->\)\@=/ end=/$/ keepend contains=@SPELL
-syn match tutorSampleTextMark /^--->/ contained containedin=tutorSampleText conceal cchar=→
-syn match tutorSampleTextExpect /\}\@<! {expect:.\+}\s*$/ contained containedin=tutorSampleText conceal
-syn match tutorSampleTextExpect /|\@<! |expect:.\+|\s*$/ contained containedin=tutorSampleText conceal
-
syn region tutorCodeblock matchgroup=Delimiter start=/^\~\{3}.*$/ end=/^\~\{3}/
-syn region tutorShell matchgroup=Delimiter start=/^\~\{3} sh\s*$/ end=/^\~\{3}/ keepend contains=@TUTORSHELL concealends
+syn region tutorShell matchgroup=Delimiter start=/^\~\{3} sh\s*$/ end=/^\~\{3}/ keepend contains=@TUTORSHELL
syn match tutorShellPrompt /\(^\s*\)\@<=[$#]/ contained containedin=tutorShell
-syn region tutorInlineCode matchgroup=Delimiter start=/\\\@<!`/ end=/\\\@<!\(`{\@!\|`\s\)/ concealends
+syn region tutorInlineCode matchgroup=Delimiter start=/\\\@<!`/ end=/\\\@<!\(`{\@!\|`\s\)/
-syn region tutorCommand matchgroup=Delimiter start=/^\~\{3} cmd\( :\)\?\s*$/ end=/^\~\{3}/ keepend contains=@VIM concealends
-syn region tutorInlineCommand matchgroup=Delimiter start=/\\\@<!`\(.*{vim}\)\@=/ end=/\\\@<!`\({vim}\)\@=/ nextgroup=tutorInlineType contains=@VIM concealends
+syn region tutorCommand matchgroup=Delimiter start=/^\~\{3} cmd\( :\)\?\s*$/ end=/^\~\{3}/ keepend contains=@VIM
+syn region tutorInlineCommand matchgroup=Delimiter start=/\\\@<!`\(.*{vim}\)\@=/ end=/\\\@<!`\({vim}\)\@=/ nextgroup=tutorInlineType contains=@VIM
-syn region tutorNormal matchgroup=Delimiter start=/^\~\{3} norm\(al\?\)\?\s*$/ end=/^\~\{3}/ contains=@VIMNORMAL concealends
-syn region tutorInlineNormal matchgroup=Delimiter start=/\\\@<!`\(\S*{normal}\)\@=/ end=/\\\@<!`\({normal}\)\@=/ nextgroup=tutorInlineType contains=@VIMNORMAL concealends
+syn region tutorNormal matchgroup=Delimiter start=/^\~\{3} norm\(al\?\)\?\s*$/ end=/^\~\{3}/ contains=@VIMNORMAL
+syn region tutorInlineNormal matchgroup=Delimiter start=/\\\@<!`\(\S*{normal}\)\@=/ end=/\\\@<!`\({normal}\)\@=/ nextgroup=tutorInlineType contains=@VIMNORMAL
syn match tutorInlineType /{\(normal\|vim\)}/ contained conceal
@@ -72,7 +66,7 @@ hi! tutorMarks cterm=bold gui=bold
hi! tutorEmphasis gui=italic cterm=italic
hi! tutorBold gui=bold cterm=bold
-hi! link tutorSampleText Special
+hi! link tutorExpect Special
hi! tutorOK ctermfg=green guifg=#00ff88 cterm=bold gui=bold
hi! tutorX ctermfg=red guifg=#ff2000 cterm=bold gui=bold
hi! link tutorInlineOK tutorOK
diff --git a/runtime/syntax/uc.vim b/runtime/syntax/uc.vim
index 7eab1d48ae..90d33396c5 100644
--- a/runtime/syntax/uc.vim
+++ b/runtime/syntax/uc.vim
@@ -7,11 +7,8 @@
" Please check :help uc.vim for comments on some of the options available.
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -110,64 +107,54 @@ endif
exec "syn sync ccomment ucComment minlines=" . uc_minlines
" 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_uc_syntax_inits")
- if version < 508
- let did_uc_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink ucFuncDef Conditional
- HiLink ucEventDef Conditional
- HiLink ucBraces Function
- HiLink ucBranch Conditional
- HiLink ucLabel Label
- HiLink ucUserLabel Label
- HiLink ucConditional Conditional
- HiLink ucRepeat Repeat
- HiLink ucStorageClass StorageClass
- HiLink ucMethodDecl ucStorageClass
- HiLink ucClassDecl ucStorageClass
- HiLink ucScopeDecl ucStorageClass
- HiLink ucBoolean Boolean
- HiLink ucSpecial Special
- HiLink ucSpecialError Error
- HiLink ucSpecialCharError Error
- HiLink ucString String
- HiLink ucCharacter Character
- HiLink ucSpecialChar SpecialChar
- HiLink ucNumber Number
- HiLink ucError Error
- HiLink ucStringError Error
- HiLink ucStatement Statement
- HiLink ucOperator Operator
- HiLink ucOverLoaded Operator
- HiLink ucComment Comment
- HiLink ucDocComment Comment
- HiLink ucLineComment Comment
- HiLink ucConstant ucBoolean
- HiLink ucTypedef Typedef
- HiLink ucTodo Todo
-
- HiLink ucCommentTitle SpecialComment
- HiLink ucDocTags Special
- HiLink ucDocParam Function
- HiLink ucCommentStar ucComment
-
- HiLink ucType Type
- HiLink ucExternal Include
-
- HiLink ucClassKeys Conditional
- HiLink ucClassLabel Conditional
-
- HiLink htmlComment Special
- HiLink htmlCommentPart Special
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link ucFuncDef Conditional
+hi def link ucEventDef Conditional
+hi def link ucBraces Function
+hi def link ucBranch Conditional
+hi def link ucLabel Label
+hi def link ucUserLabel Label
+hi def link ucConditional Conditional
+hi def link ucRepeat Repeat
+hi def link ucStorageClass StorageClass
+hi def link ucMethodDecl ucStorageClass
+hi def link ucClassDecl ucStorageClass
+hi def link ucScopeDecl ucStorageClass
+hi def link ucBoolean Boolean
+hi def link ucSpecial Special
+hi def link ucSpecialError Error
+hi def link ucSpecialCharError Error
+hi def link ucString String
+hi def link ucCharacter Character
+hi def link ucSpecialChar SpecialChar
+hi def link ucNumber Number
+hi def link ucError Error
+hi def link ucStringError Error
+hi def link ucStatement Statement
+hi def link ucOperator Operator
+hi def link ucOverLoaded Operator
+hi def link ucComment Comment
+hi def link ucDocComment Comment
+hi def link ucLineComment Comment
+hi def link ucConstant ucBoolean
+hi def link ucTypedef Typedef
+hi def link ucTodo Todo
+
+hi def link ucCommentTitle SpecialComment
+hi def link ucDocTags Special
+hi def link ucDocParam Function
+hi def link ucCommentStar ucComment
+
+hi def link ucType Type
+hi def link ucExternal Include
+
+hi def link ucClassKeys Conditional
+hi def link ucClassLabel Conditional
+
+hi def link htmlComment Special
+hi def link htmlCommentPart Special
+
let b:current_syntax = "uc"
diff --git a/runtime/syntax/udevconf.vim b/runtime/syntax/udevconf.vim
index a294604906..82fd81daf6 100644
--- a/runtime/syntax/udevconf.vim
+++ b/runtime/syntax/udevconf.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: udev(8) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: udev(8) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/udevperm.vim b/runtime/syntax/udevperm.vim
index 9d3af09d07..abda0b6663 100644
--- a/runtime/syntax/udevperm.vim
+++ b/runtime/syntax/udevperm.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: udev(8) permissions file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: udev(8) permissions file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/udevrules.vim b/runtime/syntax/udevrules.vim
index b04d728865..ce156ccc13 100644
--- a/runtime/syntax/udevrules.vim
+++ b/runtime/syntax/udevrules.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: udev(8) rules file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-12-18
+" Language: udev(8) rules file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-12-18
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/uil.vim b/runtime/syntax/uil.vim
index b5421bcfdb..088a0f6c86 100644
--- a/runtime/syntax/uil.vim
+++ b/runtime/syntax/uil.vim
@@ -1,13 +1,13 @@
" Vim syntax file
" Language: Motif UIL (User Interface Language)
" Maintainer: Thomas Koehler <jean-luc@picard.franken.de>
-" Last Change: 2013 May 23
+" Please be aware: I'm often slow to answer email due to a high
+" non-computer related workload (sometimes 4-8 weeks)
+" Last Change: 2016 September 6
" URL: http://gott-gehabt.de/800_wer_wir_sind/thomas/Homepage/Computer/vim/syntax/uil.vim
-" Quit when a syntax file was already loaded
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -47,37 +47,27 @@ syn region uilDefine start="^#\s*\(define\>\|undef\>\)" end="$" contains=uilLin
syn sync ccomment uilComment
" 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_uil_syn_inits")
- if version < 508
- let did_uil_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- " The default highlighting.
- HiLink uilCharacter uilString
- HiLink uilSpecialCharacter uilSpecial
- HiLink uilNumber uilString
- HiLink uilCommentError uilError
- HiLink uilInclude uilPreCondit
- HiLink uilDefine uilPreCondit
- HiLink uilIncluded uilString
- HiLink uilSpecialFunction uilRessource
- HiLink uilRessource Identifier
- HiLink uilSpecialStatement Keyword
- HiLink uilError Error
- HiLink uilPreCondit PreCondit
- HiLink uilType Type
- HiLink uilString String
- HiLink uilComment Comment
- HiLink uilSpecial Special
- HiLink uilTodo Todo
+" The default highlighting.
+hi def link uilCharacter uilString
+hi def link uilSpecialCharacter uilSpecial
+hi def link uilNumber uilString
+hi def link uilCommentError uilError
+hi def link uilInclude uilPreCondit
+hi def link uilDefine uilPreCondit
+hi def link uilIncluded uilString
+hi def link uilSpecialFunction uilRessource
+hi def link uilRessource Identifier
+hi def link uilSpecialStatement Keyword
+hi def link uilError Error
+hi def link uilPreCondit PreCondit
+hi def link uilType Type
+hi def link uilString String
+hi def link uilComment Comment
+hi def link uilSpecial Special
+hi def link uilTodo Todo
- delcommand HiLink
-endif
let b:current_syntax = "uil"
diff --git a/runtime/syntax/updatedb.vim b/runtime/syntax/updatedb.vim
index 7c082d62df..224a7dd2c2 100644
--- a/runtime/syntax/updatedb.vim
+++ b/runtime/syntax/updatedb.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: updatedb.conf(5) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2009-05-25
+" Language: updatedb.conf(5) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2009-05-25
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/upstart.vim b/runtime/syntax/upstart.vim
index b3f2b9e637..140cd174e0 100644
--- a/runtime/syntax/upstart.vim
+++ b/runtime/syntax/upstart.vim
@@ -10,9 +10,8 @@
" It is inspired by the initng syntax file and includes sh.vim to do the
" highlighting of script blocks.
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
diff --git a/runtime/syntax/vb.vim b/runtime/syntax/vb.vim
index 0c05b35fbd..8ddb1efac3 100644
--- a/runtime/syntax/vb.vim
+++ b/runtime/syntax/vb.vim
@@ -11,11 +11,8 @@
" VIM and VIM-DEV mailing lists. It is by no means complete.
" Send comments, suggestions and requests to the maintainer.
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -338,40 +335,30 @@ syn match vbTypeSpecifier "[a-zA-Z0-9][\$%&!#]"ms=s+1
syn match vbTypeSpecifier "#[a-zA-Z0-9]"me=e-1
" 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_vb_syntax_inits")
- if version < 508
- let did_vb_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink vbBoolean Boolean
- HiLink vbLineNumber Comment
- HiLink vbComment Comment
- HiLink vbConditional Conditional
- HiLink vbConst Constant
- HiLink vbDefine Constant
- HiLink vbError Error
- HiLink vbFunction Identifier
- HiLink vbIdentifier Identifier
- HiLink vbNumber Number
- HiLink vbFloat Float
- HiLink vbMethods PreProc
- HiLink vbOperator Operator
- HiLink vbRepeat Repeat
- HiLink vbString String
- HiLink vbStatement Statement
- HiLink vbKeyword Statement
- HiLink vbEvents Special
- HiLink vbTodo Todo
- HiLink vbTypes Type
- HiLink vbTypeSpecifier Type
+hi def link vbBoolean Boolean
+hi def link vbLineNumber Comment
+hi def link vbComment Comment
+hi def link vbConditional Conditional
+hi def link vbConst Constant
+hi def link vbDefine Constant
+hi def link vbError Error
+hi def link vbFunction Identifier
+hi def link vbIdentifier Identifier
+hi def link vbNumber Number
+hi def link vbFloat Float
+hi def link vbMethods PreProc
+hi def link vbOperator Operator
+hi def link vbRepeat Repeat
+hi def link vbString String
+hi def link vbStatement Statement
+hi def link vbKeyword Statement
+hi def link vbEvents Special
+hi def link vbTodo Todo
+hi def link vbTypes Type
+hi def link vbTypeSpecifier Type
- delcommand HiLink
-endif
let b:current_syntax = "vb"
diff --git a/runtime/syntax/vera.vim b/runtime/syntax/vera.vim
index b8e25cf346..b41c0a6cbf 100644
--- a/runtime/syntax/vera.vim
+++ b/runtime/syntax/vera.vim
@@ -10,11 +10,8 @@
" (change the value for guibg to any color you like)
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -287,74 +284,64 @@ endif
exec "syn sync ccomment veraComment minlines=" . b:vera_minlines
" 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_vera_syn_inits")
- if version < 508
- let did_vera_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
+
+hi def link veraClass Identifier
+hi def link veraObject Identifier
+hi def link veraUserMethod Function
+hi def link veraTask Keyword
+hi def link veraModifier Tag
+hi def link veraDeprecated veraError
+hi def link veraMethods Statement
+" hi def link veraInterface Label
+hi def link veraInterface Function
+
+hi def link veraFormat veraSpecial
+hi def link veraCppString veraString
+hi def link veraCommentL veraComment
+hi def link veraCommentStart veraComment
+hi def link veraLabel Label
+hi def link veraUserLabel Label
+hi def link veraConditional Conditional
+hi def link veraRepeat Repeat
+hi def link veraCharacter Character
+hi def link veraSpecialCharacter veraSpecial
+hi def link veraNumber Number
+hi def link veraOctal Number
+hi def link veraOctalZero PreProc " link this to Error if you want
+hi def link veraFloat Float
+hi def link veraOctalError veraError
+hi def link veraParenError veraError
+hi def link veraErrInParen veraError
+hi def link veraErrInBracket veraError
+hi def link veraCommentError veraError
+hi def link veraCommentStartError veraError
+hi def link veraSpaceError SpaceError
+hi def link veraSpecialError veraError
+hi def link veraOperator Operator
+hi def link veraStructure Structure
+hi def link veraInclude Include
+hi def link veraPreProc PreProc
+hi def link veraDefine Macro
+hi def link veraIncluded veraString
+hi def link veraError Error
+hi def link veraStatement Statement
+hi def link veraPreCondit PreCondit
+hi def link veraType Type
+" hi def link veraConstant Constant
+hi def link veraConstant Keyword
+hi def link veraUserConstant Constant
+hi def link veraCommentString veraString
+hi def link veraComment2String veraString
+hi def link veraCommentSkip veraComment
+hi def link veraString String
+hi def link veraComment Comment
+hi def link veraSpecial SpecialChar
+hi def link veraTodo Todo
+hi def link veraCppSkip veraCppOut
+hi def link veraCppOut2 veraCppOut
+hi def link veraCppOut Comment
- HiLink veraClass Identifier
- HiLink veraObject Identifier
- HiLink veraUserMethod Function
- HiLink veraTask Keyword
- HiLink veraModifier Tag
- HiLink veraDeprecated veraError
- HiLink veraMethods Statement
- " HiLink veraInterface Label
- HiLink veraInterface Function
-
- HiLink veraFormat veraSpecial
- HiLink veraCppString veraString
- HiLink veraCommentL veraComment
- HiLink veraCommentStart veraComment
- HiLink veraLabel Label
- HiLink veraUserLabel Label
- HiLink veraConditional Conditional
- HiLink veraRepeat Repeat
- HiLink veraCharacter Character
- HiLink veraSpecialCharacter veraSpecial
- HiLink veraNumber Number
- HiLink veraOctal Number
- HiLink veraOctalZero PreProc " link this to Error if you want
- HiLink veraFloat Float
- HiLink veraOctalError veraError
- HiLink veraParenError veraError
- HiLink veraErrInParen veraError
- HiLink veraErrInBracket veraError
- HiLink veraCommentError veraError
- HiLink veraCommentStartError veraError
- HiLink veraSpaceError SpaceError
- HiLink veraSpecialError veraError
- HiLink veraOperator Operator
- HiLink veraStructure Structure
- HiLink veraInclude Include
- HiLink veraPreProc PreProc
- HiLink veraDefine Macro
- HiLink veraIncluded veraString
- HiLink veraError Error
- HiLink veraStatement Statement
- HiLink veraPreCondit PreCondit
- HiLink veraType Type
- " HiLink veraConstant Constant
- HiLink veraConstant Keyword
- HiLink veraUserConstant Constant
- HiLink veraCommentString veraString
- HiLink veraComment2String veraString
- HiLink veraCommentSkip veraComment
- HiLink veraString String
- HiLink veraComment Comment
- HiLink veraSpecial SpecialChar
- HiLink veraTodo Todo
- HiLink veraCppSkip veraCppOut
- HiLink veraCppOut2 veraCppOut
- HiLink veraCppOut Comment
-
- delcommand HiLink
-endif
let b:current_syntax = "vera"
diff --git a/runtime/syntax/verilog.vim b/runtime/syntax/verilog.vim
index f4d21d0739..bbaca491a7 100644
--- a/runtime/syntax/verilog.vim
+++ b/runtime/syntax/verilog.vim
@@ -3,22 +3,15 @@
" Maintainer: Mun Johl <Mun.Johl@emulex.com>
" Last Update: Wed Jul 20 16:04:19 PDT 2011
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
" Set the local value of the 'iskeyword' option.
" NOTE: '?' was added so that verilogNumber would be processed correctly when
" '?' is the last character of the number.
-if version >= 600
- setlocal iskeyword=@,48-57,63,_,192-255
-else
- set iskeyword=@,48-57,63,_,192-255
-endif
+setlocal iskeyword=@,48-57,63,_,192-255
" A bunch of useful Verilog keywords
@@ -102,34 +95,24 @@ syn region verilogDirective start="//\s*\$s dc_script_begin\>" end="//\s*\$s
syn sync minlines=50
" 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_verilog_syn_inits")
- if version < 508
- let did_verilog_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " The default highlighting.
- HiLink verilogCharacter Character
- HiLink verilogConditional Conditional
- HiLink verilogRepeat Repeat
- HiLink verilogString String
- HiLink verilogTodo Todo
- HiLink verilogComment Comment
- HiLink verilogConstant Constant
- HiLink verilogLabel Label
- HiLink verilogNumber Number
- HiLink verilogOperator Special
- HiLink verilogStatement Statement
- HiLink verilogGlobal Define
- HiLink verilogDirective SpecialComment
- HiLink verilogEscape Special
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+" The default highlighting.
+hi def link verilogCharacter Character
+hi def link verilogConditional Conditional
+hi def link verilogRepeat Repeat
+hi def link verilogString String
+hi def link verilogTodo Todo
+hi def link verilogComment Comment
+hi def link verilogConstant Constant
+hi def link verilogLabel Label
+hi def link verilogNumber Number
+hi def link verilogOperator Special
+hi def link verilogStatement Statement
+hi def link verilogGlobal Define
+hi def link verilogDirective SpecialComment
+hi def link verilogEscape Special
+
let b:current_syntax = "verilog"
diff --git a/runtime/syntax/verilogams.vim b/runtime/syntax/verilogams.vim
index d16e4bffb4..7551b681a8 100644
--- a/runtime/syntax/verilogams.vim
+++ b/runtime/syntax/verilogams.vim
@@ -9,20 +9,13 @@
" Minor reserved keyword updates.
" Last Update: Thursday September 15 15:36:03 CST 2005
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
" Set the local value of the 'iskeyword' option
-if version >= 600
- setlocal iskeyword=@,48-57,_,192-255
-else
- set iskeyword=@,48-57,_,192-255
-endif
+setlocal iskeyword=@,48-57,_,192-255
" Annex B.1 'All keywords'
syn keyword verilogamsStatement above abs absdelay acos acosh ac_stim
@@ -113,36 +106,26 @@ syn match verilogamsEscape "\\\o\o\=\o\=" contained
syn sync lines=50
" 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_verilogams_syn_inits")
- if version < 508
- let did_verilogams_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- " The default highlighting.
- HiLink verilogamsCharacter Character
- HiLink verilogamsConditional Conditional
- HiLink verilogamsRepeat Repeat
- HiLink verilogamsString String
- HiLink verilogamsTodo Todo
- HiLink verilogamsComment Comment
- HiLink verilogamsConstant Constant
- HiLink verilogamsLabel Label
- HiLink verilogamsNumber Number
- HiLink verilogamsOperator Special
- HiLink verilogamsStatement Statement
- HiLink verilogamsGlobal Define
- HiLink verilogamsDirective SpecialComment
- HiLink verilogamsEscape Special
- HiLink verilogamsType Type
- HiLink verilogamsSystask Function
+" The default highlighting.
+hi def link verilogamsCharacter Character
+hi def link verilogamsConditional Conditional
+hi def link verilogamsRepeat Repeat
+hi def link verilogamsString String
+hi def link verilogamsTodo Todo
+hi def link verilogamsComment Comment
+hi def link verilogamsConstant Constant
+hi def link verilogamsLabel Label
+hi def link verilogamsNumber Number
+hi def link verilogamsOperator Special
+hi def link verilogamsStatement Statement
+hi def link verilogamsGlobal Define
+hi def link verilogamsDirective SpecialComment
+hi def link verilogamsEscape Special
+hi def link verilogamsType Type
+hi def link verilogamsSystask Function
- delcommand HiLink
-endif
let b:current_syntax = "verilogams"
diff --git a/runtime/syntax/vhdl.vim b/runtime/syntax/vhdl.vim
index 32503823ee..f4b11ff5dd 100644
--- a/runtime/syntax/vhdl.vim
+++ b/runtime/syntax/vhdl.vim
@@ -5,9 +5,8 @@
" Credits: Stephan Hegel <stephan.hegel@snc.siemens.com.cn>
" Last Changed: 2016 Mar 05 by Daniel Kho
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -234,35 +233,25 @@ syn match vhdlPreProc "\(^\|\s\)--\s*synopsys\s\+translate_\(on\|off\)\s*"
syn sync minlines=600
" 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_vhdl_syntax_inits")
- if version < 508
- let did_vhdl_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink vhdlSpecial Special
- HiLink vhdlStatement Statement
- HiLink vhdlCharacter Character
- HiLink vhdlString String
- HiLink vhdlVector Number
- HiLink vhdlBoolean Number
- HiLink vhdlTodo Todo
- HiLink vhdlFixme Fixme
- HiLink vhdlComment Comment
- HiLink vhdlNumber Number
- HiLink vhdlTime Number
- HiLink vhdlType Type
- HiLink vhdlOperator Operator
- HiLink vhdlError Error
- HiLink vhdlAttribute Special
- HiLink vhdlPreProc PreProc
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link vhdlSpecial Special
+hi def link vhdlStatement Statement
+hi def link vhdlCharacter Character
+hi def link vhdlString String
+hi def link vhdlVector Number
+hi def link vhdlBoolean Number
+hi def link vhdlTodo Todo
+hi def link vhdlFixme Fixme
+hi def link vhdlComment Comment
+hi def link vhdlNumber Number
+hi def link vhdlTime Number
+hi def link vhdlType Type
+hi def link vhdlOperator Operator
+hi def link vhdlError Error
+hi def link vhdlAttribute Special
+hi def link vhdlPreProc PreProc
+
let b:current_syntax = "vhdl"
diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index 63618e902e..1551a314a3 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -3,8 +3,8 @@
" #############################################################################
" #############################################################################
" Note: Be careful when merging the upstream version of this file.
-" Much of this is generated by scripts/genvimvim.lua (result is installed
-" to: $VIMRUNTIME/syntax/vim/generated.vim)
+" Much of this is generated by scripts/genvimvim.lua
+" (installs to $VIMRUNTIME/syntax/vim/generated.vim)
" #############################################################################
" #############################################################################
@@ -21,7 +21,7 @@ syn keyword vimTodo contained COMBAK FIXME TODO XXX
syn cluster vimCommentGroup contains=vimTodo,@Spell
" Special and plugin vim commands {{{2
-syn match vimCommand contained "\<z[-+^.=]\="
+syn match vimCommand contained "\<z[-+^.=]\=\>"
syn keyword vimOnlyCommand contained fix[del] op[en] sh[ell] P[rint]
syn keyword vimStdPlugin contained DiffOrig Man N[ext] S TOhtml XMLent XMLns
@@ -53,10 +53,10 @@ syn case ignore
syn keyword vimGroup contained Comment Constant String Character Number Boolean Float Identifier Function Statement Conditional Repeat Label Operator Keyword Exception PreProc Include Define Macro PreCondit Type StorageClass Structure Typedef Special SpecialChar Tag Delimiter SpecialComment Debug Underlined Ignore Error Todo
" Default highlighting groups {{{2
-syn keyword vimHLGroup contained ColorColumn Cursor CursorColumn CursorIM CursorLine CursorLineNr DiffAdd DiffChange DiffDelete DiffText Directory ErrorMsg FoldColumn Folded IncSearch LineNr MatchParen Menu ModeMsg MoreMsg NonText Normal Pmenu PmenuSbar PmenuSel PmenuThumb Question Scrollbar Search SignColumn SpecialKey SpellBad SpellCap SpellLocal SpellRare StatusLine StatusLineNC TabLine TabLineFill TabLineSel Title Tooltip VertSplit Visual WarningMsg WildMenu
+syn keyword vimHLGroup contained ColorColumn Cursor CursorColumn CursorIM CursorLine CursorLineNr DiffAdd DiffChange DiffDelete DiffText Directory EndOfBuffer ErrorMsg FoldColumn Folded IncSearch LineNr MatchParen Menu ModeMsg MoreMsg NonText Normal Pmenu PmenuSbar PmenuSel PmenuThumb Question Scrollbar Search SignColumn SpecialKey SpellBad SpellCap SpellLocal SpellRare StatusLine StatusLineNC TabLine TabLineFill TabLineSel Title Tooltip VertSplit Visual WarningMsg WildMenu
syn match vimHLGroup contained "Conceal"
syn keyword vimOnlyHLGroup contained VisualNOS
-syn keyword nvimHLGroup contained EndOfBuffer Substitute TermCursor TermCursorNC QuickFixLine
+syn keyword nvimHLGroup contained Substitute TermCursor TermCursorNC QuickFixLine
"}}}2
syn case match
" Special Vim Highlighting (not automatic) {{{1
@@ -128,6 +128,13 @@ if exists("g:vimsyntax_noerror")
let g:vimsyn_noerror= g:vimsyntax_noerror
endif
+" Variable options {{{2
+if exists("g:vim_maxlines")
+ let s:vimsyn_maxlines= g:vim_maxlines
+else
+ let s:vimsyn_maxlines= 60
+endif
+
" Numbers {{{2
" =======
syn match vimNumber "\<\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand
@@ -139,8 +146,8 @@ syn match vimNumber "\%(^\|[^a-zA-Z]\)\zs#\x\{6}"
syn match vimCmdSep "[:|]\+" skipwhite nextgroup=vimAddress,vimAutoCmd,vimIsCommand,vimExtCmd,vimFilter,vimLet,vimMap,vimMark,vimSet,vimSyntax,vimUserCmd
syn match vimIsCommand "\<\h\w*\>" contains=vimCommand
syn match vimVar contained "\<\h[a-zA-Z0-9#_]*\>"
-syn match vimVar "\<[bwglsav]:\h[a-zA-Z0-9#_]*\>"
-syn match vimFBVar contained "\<[bwglsav]:\h[a-zA-Z0-9#_]*\>"
+syn match vimVar "\<[bwglstav]:\h[a-zA-Z0-9#_]*\>"
+syn match vimFBVar contained "\<[bwglstav]:\h[a-zA-Z0-9#_]*\>"
syn keyword vimCommand contained in
" Insertions And Appends: insert append {{{2
@@ -194,7 +201,7 @@ endif
" Functions : Tag is provided for those who wish to highlight tagged functions {{{2
" =========
syn cluster vimFuncList contains=vimCommand,vimFunctionError,vimFuncKey,Tag,vimFuncSID
-syn cluster vimFuncBodyList contains=vimAbb,vimAddress,vimAugroupKey,vimAutoCmd,vimCmplxRepeat,vimComment,vimComment,vimContinue,vimCtrlChar,vimEcho,vimEchoHL,vimExecute,vimIf,vimIsCommand,vimFBVar,vimFunc,vimFunction,vimFuncVar,vimGlobal,vimHighlight,vimIsCommand,vimLet,vimLineComment,vimMap,vimMark,vimNorm,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegion,vimRegister,vimSet,vimSpecFile,vimString,vimSubst,vimSynLine,vimUnmap,vimUserCommand,nvimUnmap,nvimMap
+syn cluster vimFuncBodyList contains=vimAbb,vimAddress,vimAugroupKey,vimAutoCmd,vimCmplxRepeat,vimComment,vimContinue,vimCtrlChar,vimEcho,vimEchoHL,vimExecute,vimIf,vimIsCommand,vimFBVar,vimFunc,vimFunction,vimFuncVar,vimGlobal,vimHighlight,vimIsCommand,vimLet,vimLineComment,vimMap,vimMark,vimNorm,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegion,vimRegister,vimSet,vimSpecFile,vimString,vimSubst,vimSynLine,vimUnmap,vimUserCommand
syn match vimFunction "\<fu\%[nction]!\=\s\+\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)*\ze\s*(" contains=@vimFuncList nextgroup=vimFuncBody
if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'f'
@@ -238,7 +245,7 @@ if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_nousercmderror")
endif
syn case ignore
syn keyword vimUserAttrbKey contained bar ban[g] cou[nt] ra[nge] com[plete] n[args] re[gister]
-syn keyword vimUserAttrbCmplt contained augroup buffer color command compiler cscope dir environment event expression file file_in_path filetype function help highlight locale mapping menu option shellcmd sign syntax tag tag_listfiles var
+syn keyword vimUserAttrbCmplt contained augroup buffer behave color command compiler cscope dir environment event expression file file_in_path filetype function help highlight history locale mapping menu option packadd shellcmd sign syntax syntime tag tag_listfiles user var
syn keyword vimUserAttrbCmplt contained custom customlist nextgroup=vimUserAttrbCmpltFunc,vimUserCmdError
syn match vimUserAttrbCmpltFunc contained ",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w*\%(#\h\w*\)\+\|\h\w*\)"hs=s+1 nextgroup=vimUserCmdError
@@ -267,8 +274,8 @@ syn region vimPatSepZone oneline contained matchgroup=vimPatSepZ start="\\%\
syn region vimPatRegion contained transparent matchgroup=vimPatSepR start="\\[z%]\=(" end="\\)" contains=@vimSubstList oneline
syn match vimNotPatSep contained "\\\\"
syn cluster vimStringGroup contains=vimEscapeBrace,vimPatSep,vimNotPatSep,vimPatSepErr,vimPatSepZone,@Spell
-syn region vimString oneline keepend start=+[^:a-zA-Z>!\\@]"+lc=1 skip=+\\\\\|\\"+ end=+"+ contains=@vimStringGroup
-syn region vimString oneline keepend start=+[^:a-zA-Z>!\\@]'+lc=1 end=+'+
+syn region vimString oneline keepend start=+[^a-zA-Z>!\\@]"+lc=1 skip=+\\\\\|\\"+ end=+"+ contains=@vimStringGroup
+syn region vimString oneline keepend start=+[^a-zA-Z>!\\@]'+lc=1 end=+'+
syn region vimString oneline start=+=!+lc=1 skip=+\\\\\|\\!+ end=+!+ contains=@vimStringGroup
syn region vimString oneline start="=+"lc=1 skip="\\\\\|\\+" end="+" contains=@vimStringGroup
syn region vimString oneline start="\s/\s*\A"lc=1 skip="\\\\\|\\+" end="/" contains=@vimStringGroup
@@ -390,7 +397,7 @@ syn match vimNotation "\(\\\|<lt>\)\=<\([scamd]-\)\{0,4}x\=\(f\d\{1,2}\|[^ \t:]\
syn match vimNotation "\(\\\|<lt>\)\=<\([scam2-4]-\)\{0,4}\(right\|left\|middle\)\(mouse\)\=\(drag\|release\)\=>" contains=vimBracket
syn match vimNotation "\(\\\|<lt>\)\=<\(bslash\|plug\|sid\|space\|bar\|nop\|nul\|lt\)>" contains=vimBracket
syn match vimNotation '\(\\\|<lt>\)\=<C-R>[0-9a-z"%#:.\-=]'he=e-1 contains=vimBracket
-syn match vimNotation '\(\\\|<lt>\)\=<\%(q-\)\=\(line[12]\|count\|bang\|reg\|args\|f-args\|lt\)>' contains=vimBracket
+syn match vimNotation '\(\\\|<lt>\)\=<\%(q-\)\=\(line[12]\|count\|bang\|reg\|args\|mods\|f-args\|f-mods\|lt\)>' contains=vimBracket
syn match vimNotation "\(\\\|<lt>\)\=<\([cas]file\|abuf\|amatch\|cword\|cWORD\|client\)>" contains=vimBracket
syn match vimBracket contained "[\\<>]"
syn case match
@@ -470,7 +477,7 @@ syn cluster vimFuncBodyList add=vimSynType
syn cluster vimSynMtchGroup contains=vimMtchComment,vimSynContains,vimSynError,vimSynMtchOpt,vimSynNextgroup,vimSynRegPat,vimNotation
syn keyword vimSynType contained match skipwhite nextgroup=vimSynMatchRegion
syn region vimSynMatchRegion contained keepend matchgroup=vimGroupName start="\h\w*" matchgroup=vimSep end="|\|$" contains=@vimSynMtchGroup
-syn match vimSynMtchOpt contained "\<\(conceal\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|extend\|skipnl\|fold\)\>"
+syn match vimSynMtchOpt contained "\<\(conceal\|transparent\|contained\|excludenl\|keepend\|skipempty\|skipwhite\|display\|extend\|skipnl\|fold\)\>"
if has("conceal")
syn match vimSynMtchOpt contained "\<cchar=" nextgroup=vimSynMtchCchar
syn match vimSynMtchCchar contained "\S"
@@ -600,7 +607,7 @@ syn region vimGlobal matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' e
" g:vimsyn_embed =~# 'r' : embed ruby
" g:vimsyn_embed =~# 't' : embed tcl
if !exists("g:vimsyn_embed")
- let g:vimsyn_embed= "lpPr"
+ let g:vimsyn_embed= 0
endif
" [-- lua --] {{{3
@@ -743,9 +750,10 @@ if !filereadable(s:mzschemepath)
endif
if g:vimsyn_embed =~# 'm' && filereadable(s:mzschemepath)
unlet! b:current_syntax
- let iskKeep= &isk
+ let s:iskKeep= &isk
exe "syn include @vimMzSchemeScript ".s:mzschemepath
- let &isk= iskKeep
+ let &isk= s:iskKeep
+ unlet s:iskKeep
VimFoldm syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimMzSchemeScript
VimFoldm syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+ contains=@vimMzSchemeScript
syn cluster vimFuncBodyList add=vimMzSchemeRegion
@@ -760,11 +768,7 @@ unlet s:mzschemepath
if exists("g:vimsyn_minlines")
exe "syn sync minlines=".g:vimsyn_minlines
endif
-if exists("g:vimsyn_maxlines")
- exe "syn sync maxlines=".g:vimsyn_maxlines
-else
- syn sync maxlines=60
-endif
+exe "syn sync maxlines=".s:vimsyn_maxlines
syn sync linecont "^\s\+\\"
syn sync match vimAugroupSyncA groupthere NONE "\<aug\%[roup]\>\s\+[eE][nN][dD]"
@@ -772,171 +776,174 @@ syn sync match vimAugroupSyncA groupthere NONE "\<aug\%[roup]\>\s\+[eE][nN][dD]"
" Highlighting Settings {{{2
" ====================
-if !exists("g:vimsyn_noerror")
- hi def link vimBehaveError vimError
- hi def link vimCollClassErr vimError
- hi def link vimErrSetting vimError
- hi def link vimEmbedError vimError
- hi def link vimFTError vimError
- hi def link vimFunctionError vimError
- hi def link vimFunc vimError
- hi def link vimHiAttribList vimError
- hi def link vimHiCtermError vimError
- hi def link vimHiKeyError vimError
- hi def link vimKeyCodeError vimError
- hi def link vimMapModErr vimError
- hi def link vimSubstFlagErr vimError
- hi def link vimSynCaseError vimError
- hi def link vimBufnrWarn vimWarn
-endif
-
-hi def link vimAbb vimCommand
-hi def link vimAddress vimMark
-hi def link vimAugroupError vimError
-hi def link vimAugroupKey vimCommand
-hi def link vimAuHighlight vimHighlight
-hi def link vimAutoCmdOpt vimOption
-hi def link vimAutoCmd vimCommand
-hi def link vimAutoEvent Type
-hi def link nvimAutoEvent vimAutoEvent
-hi def link vimAutoSet vimCommand
-hi def link vimBehaveModel vimBehave
-hi def link vimBehave vimCommand
-hi def link vimBracket Delimiter
-hi def link vimCmplxRepeat SpecialChar
-hi def link vimCommand Statement
-hi def link vimComment Comment
-hi def link vimCommentString vimString
-hi def link vimCommentTitle PreProc
-hi def link vimCondHL vimCommand
-hi def link vimContinue Special
-hi def link vimCtrlChar SpecialChar
-hi def link vimEchoHLNone vimGroup
-hi def link vimEchoHL vimCommand
-hi def link vimElseIfErr Error
-hi def link vimElseif vimCondHL
-hi def link vimEnvvar PreProc
-hi def link vimError Error
-hi def link vimFBVar vimVar
-hi def link vimFgBgAttrib vimHiAttrib
-hi def link vimFold Folded
-hi def link vimFTCmd vimCommand
-hi def link vimFTOption vimSynType
-hi def link vimFuncKey vimCommand
-hi def link vimFuncName Function
-hi def link vimFuncSID Special
-hi def link vimFuncVar Identifier
-hi def link vimGroupAdd vimSynOption
-hi def link vimGroupName vimGroup
-hi def link vimGroupRem vimSynOption
-hi def link vimGroupSpecial Special
-hi def link vimGroup Type
-hi def link vimHiAttrib PreProc
-hi def link vimHiClear vimHighlight
-hi def link vimHiCtermFgBg vimHiTerm
-hi def link vimHiCTerm vimHiTerm
-hi def link vimHighlight vimCommand
-hi def link vimHiGroup vimGroupName
-hi def link vimHiGuiFgBg vimHiTerm
-hi def link vimHiGuiFont vimHiTerm
-hi def link vimHiGuiRgb vimNumber
-hi def link vimHiGui vimHiTerm
-hi def link vimHiNmbr Number
-hi def link vimHiStartStop vimHiTerm
-hi def link vimHiTerm Type
-hi def link vimHLGroup vimGroup
-hi def link nvimHLGroup vimHLGroup
-hi def link vimHLMod PreProc
-hi def link vimInsert vimString
-hi def link vimIskSep Delimiter
-hi def link vimKeyCode vimSpecFile
-hi def link vimKeyword Statement
-hi def link vimLet vimCommand
-hi def link vimLineComment vimComment
-hi def link vimMapBang vimCommand
-hi def link vimMapModKey vimFuncSID
-hi def link vimMapMod vimBracket
-hi def link vimMap vimCommand
-hi def link nvimMap vimMap
-hi def link vimMark Number
-hi def link vimMarkNumber vimNumber
-hi def link vimMenuMod vimMapMod
-hi def link vimMenuNameMore vimMenuName
-hi def link vimMenuName PreProc
-hi def link vimMtchComment vimComment
-hi def link vimNorm vimCommand
-hi def link vimNotation Special
-hi def link vimNotFunc vimCommand
-hi def link vimNotPatSep vimString
-hi def link vimNumber Number
-hi def link vimOperError Error
-hi def link vimOper Operator
-hi def link vimOption PreProc
-hi def link vimParenSep Delimiter
-hi def link vimPatSepErr vimPatSep
-hi def link vimPatSepR vimPatSep
-hi def link vimPatSep SpecialChar
-hi def link vimPatSepZone vimString
-hi def link vimPatSepZ vimPatSep
-hi def link vimPattern Type
-hi def link vimPlainMark vimMark
-hi def link vimPlainRegister vimRegister
-hi def link vimRegister SpecialChar
-hi def link vimScriptDelim Comment
-hi def link vimSearchDelim Statement
-hi def link vimSearch vimString
-hi def link vimSep Delimiter
-hi def link vimSetMod vimOption
-hi def link vimSetSep Statement
-hi def link vimSetString vimString
-hi def link vimSpecFile Identifier
-hi def link vimSpecFileMod vimSpecFile
-hi def link vimSpecial Type
-hi def link vimStatement Statement
-hi def link vimStringCont vimString
-hi def link vimString String
-hi def link vimSubst1 vimSubst
-hi def link vimSubstDelim Delimiter
-hi def link vimSubstFlags Special
-hi def link vimSubstSubstr SpecialChar
-hi def link vimSubstTwoBS vimString
-hi def link vimSubst vimCommand
-hi def link vimSynCaseError Error
-hi def link vimSynCase Type
-hi def link vimSyncC Type
-hi def link vimSyncError Error
-hi def link vimSyncGroupName vimGroupName
-hi def link vimSyncGroup vimGroupName
-hi def link vimSyncKey Type
-hi def link vimSyncNone Type
-hi def link vimSynContains vimSynOption
-hi def link vimSynError Error
-hi def link vimSynKeyContainedin vimSynContains
-hi def link vimSynKeyOpt vimSynOption
-hi def link vimSynMtchGrp vimSynOption
-hi def link vimSynMtchOpt vimSynOption
-hi def link vimSynNextgroup vimSynOption
-hi def link vimSynNotPatRange vimSynRegPat
-hi def link vimSynOption Special
-hi def link vimSynPatRange vimString
-hi def link vimSynRegOpt vimSynOption
-hi def link vimSynRegPat vimString
-hi def link vimSynReg Type
-hi def link vimSyntax vimCommand
-hi def link vimSynType vimSpecial
-hi def link vimTodo Todo
-hi def link vimUnmap vimMap
-hi def link nvimUnmap vimMap
-hi def link vimUserAttrbCmpltFunc Special
-hi def link vimUserAttrbCmplt vimSpecial
-hi def link vimUserAttrbKey vimOption
-hi def link vimUserAttrb vimSpecial
-hi def link vimUserAttrbError Error
-hi def link vimUserCmdError Error
-hi def link vimUserCommand vimCommand
-hi def link vimUserFunc Normal
-hi def link vimVar Identifier
-hi def link vimWarn WarningMsg
+if !exists("skip_vim_syntax_inits")
+ if !exists("g:vimsyn_noerror")
+ hi def link vimBehaveError vimError
+ hi def link vimCollClassErr vimError
+ hi def link vimErrSetting vimError
+ hi def link vimEmbedError Normal
+ hi def link vimFTError vimError
+ hi def link vimFunctionError vimError
+ hi def link vimFunc vimError
+ hi def link vimHiAttribList vimError
+ hi def link vimHiCtermError vimError
+ hi def link vimHiKeyError vimError
+ hi def link vimKeyCodeError vimError
+ hi def link vimMapModErr vimError
+ hi def link vimSubstFlagErr vimError
+ hi def link vimSynCaseError vimError
+ hi def link vimBufnrWarn vimWarn
+ endif
+
+ hi def link vimAbb vimCommand
+ hi def link vimAddress vimMark
+ hi def link vimAugroupError vimError
+ hi def link vimAugroupKey vimCommand
+ hi def link vimAuHighlight vimHighlight
+ hi def link vimAutoCmdOpt vimOption
+ hi def link vimAutoCmd vimCommand
+ hi def link vimAutoEvent Type
+ hi def link vimAutoSet vimCommand
+ hi def link vimBehaveModel vimBehave
+ hi def link vimBehave vimCommand
+ hi def link vimBracket Delimiter
+ hi def link vimCmplxRepeat SpecialChar
+ hi def link vimCommand Statement
+ hi def link vimComment Comment
+ hi def link vimCommentString vimString
+ hi def link vimCommentTitle PreProc
+ hi def link vimCondHL vimCommand
+ hi def link vimContinue Special
+ hi def link vimCtrlChar SpecialChar
+ hi def link vimEchoHLNone vimGroup
+ hi def link vimEchoHL vimCommand
+ hi def link vimElseIfErr Error
+ hi def link vimElseif vimCondHL
+ hi def link vimEnvvar PreProc
+ hi def link vimError Error
+ hi def link vimFBVar vimVar
+ hi def link vimFgBgAttrib vimHiAttrib
+ hi def link vimFold Folded
+ hi def link vimFTCmd vimCommand
+ hi def link vimFTOption vimSynType
+ hi def link vimFuncKey vimCommand
+ hi def link vimFuncName Function
+ hi def link vimFuncSID Special
+ hi def link vimFuncVar Identifier
+ hi def link vimGroupAdd vimSynOption
+ hi def link vimGroupName vimGroup
+ hi def link vimGroupRem vimSynOption
+ hi def link vimGroupSpecial Special
+ hi def link vimGroup Type
+ hi def link vimHiAttrib PreProc
+ hi def link vimHiClear vimHighlight
+ hi def link vimHiCtermFgBg vimHiTerm
+ hi def link vimHiCTerm vimHiTerm
+ hi def link vimHighlight vimCommand
+ hi def link vimHiGroup vimGroupName
+ hi def link vimHiGuiFgBg vimHiTerm
+ hi def link vimHiGuiFont vimHiTerm
+ hi def link vimHiGuiRgb vimNumber
+ hi def link vimHiGui vimHiTerm
+ hi def link vimHiNmbr Number
+ hi def link vimHiStartStop vimHiTerm
+ hi def link vimHiTerm Type
+ hi def link vimHLGroup vimGroup
+ hi def link vimHLMod PreProc
+ hi def link vimInsert vimString
+ hi def link vimIskSep Delimiter
+ hi def link vimKeyCode vimSpecFile
+ hi def link vimKeyword Statement
+ hi def link vimLet vimCommand
+ hi def link vimLineComment vimComment
+ hi def link vimMapBang vimCommand
+ hi def link vimMapModKey vimFuncSID
+ hi def link vimMapMod vimBracket
+ hi def link vimMap vimCommand
+ hi def link vimMark Number
+ hi def link vimMarkNumber vimNumber
+ hi def link vimMenuMod vimMapMod
+ hi def link vimMenuNameMore vimMenuName
+ hi def link vimMenuName PreProc
+ hi def link vimMtchComment vimComment
+ hi def link vimNorm vimCommand
+ hi def link vimNotation Special
+ hi def link vimNotFunc vimCommand
+ hi def link vimNotPatSep vimString
+ hi def link vimNumber Number
+ hi def link vimOperError Error
+ hi def link vimOper Operator
+ hi def link vimOption PreProc
+ hi def link vimParenSep Delimiter
+ hi def link vimPatSepErr vimPatSep
+ hi def link vimPatSepR vimPatSep
+ hi def link vimPatSep SpecialChar
+ hi def link vimPatSepZone vimString
+ hi def link vimPatSepZ vimPatSep
+ hi def link vimPattern Type
+ hi def link vimPlainMark vimMark
+ hi def link vimPlainRegister vimRegister
+ hi def link vimRegister SpecialChar
+ hi def link vimScriptDelim Comment
+ hi def link vimSearchDelim Statement
+ hi def link vimSearch vimString
+ hi def link vimSep Delimiter
+ hi def link vimSetMod vimOption
+ hi def link vimSetSep Statement
+ hi def link vimSetString vimString
+ hi def link vimSpecFile Identifier
+ hi def link vimSpecFileMod vimSpecFile
+ hi def link vimSpecial Type
+ hi def link vimStatement Statement
+ hi def link vimStringCont vimString
+ hi def link vimString String
+ hi def link vimSubst1 vimSubst
+ hi def link vimSubstDelim Delimiter
+ hi def link vimSubstFlags Special
+ hi def link vimSubstSubstr SpecialChar
+ hi def link vimSubstTwoBS vimString
+ hi def link vimSubst vimCommand
+ hi def link vimSynCaseError Error
+ hi def link vimSynCase Type
+ hi def link vimSyncC Type
+ hi def link vimSyncError Error
+ hi def link vimSyncGroupName vimGroupName
+ hi def link vimSyncGroup vimGroupName
+ hi def link vimSyncKey Type
+ hi def link vimSyncNone Type
+ hi def link vimSynContains vimSynOption
+ hi def link vimSynError Error
+ hi def link vimSynKeyContainedin vimSynContains
+ hi def link vimSynKeyOpt vimSynOption
+ hi def link vimSynMtchGrp vimSynOption
+ hi def link vimSynMtchOpt vimSynOption
+ hi def link vimSynNextgroup vimSynOption
+ hi def link vimSynNotPatRange vimSynRegPat
+ hi def link vimSynOption Special
+ hi def link vimSynPatRange vimString
+ hi def link vimSynRegOpt vimSynOption
+ hi def link vimSynRegPat vimString
+ hi def link vimSynReg Type
+ hi def link vimSyntax vimCommand
+ hi def link vimSynType vimSpecial
+ hi def link vimTodo Todo
+ hi def link vimUnmap vimMap
+ hi def link vimUserAttrbCmpltFunc Special
+ hi def link vimUserAttrbCmplt vimSpecial
+ hi def link vimUserAttrbKey vimOption
+ hi def link vimUserAttrb vimSpecial
+ hi def link vimUserAttrbError Error
+ hi def link vimUserCmdError Error
+ hi def link vimUserCommand vimCommand
+ hi def link vimUserFunc Normal
+ hi def link vimVar Identifier
+ hi def link vimWarn WarningMsg
+
+ hi def link nvimAutoEvent vimAutoEvent
+ hi def link nvimHLGroup vimHLGroup
+ hi def link nvimMap vimMap
+ hi def link nvimUnmap vimUnmap
+endif
" Current Syntax Variable: {{{2
let b:current_syntax = "vim"
diff --git a/runtime/syntax/virata.vim b/runtime/syntax/virata.vim
index e597b8e31c..0ed54fa899 100644
--- a/runtime/syntax/virata.vim
+++ b/runtime/syntax/virata.vim
@@ -13,10 +13,8 @@
" Setup Syntax:
-if version < 600
- " Clear old syntax settings
- syn clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
" Virata syntax is case insensitive (mostly)
@@ -156,63 +154,53 @@ syn sync minlines=50 "for multiple region nesting
" 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_virata_syntax_inits")
- if version < 508
- let did_virata_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " Sub Links:
- HiLink virataDefSubstError virataPreProcError
- HiLink virataDefSubst virataPreProc
- HiLink virataInAlter virataOperator
- HiLink virataInExec virataOperator
- HiLink virataInExport virataOperator
- HiLink virataInImport virataOperator
- HiLink virataInInstance virataOperator
- HiLink virataInMake virataOperator
- HiLink virataInModule virataOperator
- HiLink virataInProcess virataOperator
- HiLink virataInMacAddr virataHexNumber
-
- " Comment Group:
- HiLink virataComment Comment
- HiLink virataSpclComment SpecialComment
- HiLink virataInCommentTodo Todo
-
- " Constant Group:
- HiLink virataString String
- HiLink virataStringError Error
- HiLink virataCharacter Character
- HiLink virataSpclChar Special
- HiLink virataDecNumber Number
- HiLink virataHexNumber Number
- HiLink virataSizeNumber Number
- HiLink virataNumberError Error
-
- " Identifier Group:
- HiLink virataIdentError Error
-
- " PreProc Group:
- HiLink virataPreProc PreProc
- HiLink virataDefine Define
- HiLink virataInclude Include
- HiLink virataPreCondit PreCondit
- HiLink virataPreProcError Error
- HiLink virataPreProcWarn Todo
-
- " Directive Group:
- HiLink virataStatement Statement
- HiLink virataCfgStatement Statement
- HiLink virataOperator Operator
- HiLink virataDirective Keyword
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+" Sub Links:
+hi def link virataDefSubstError virataPreProcError
+hi def link virataDefSubst virataPreProc
+hi def link virataInAlter virataOperator
+hi def link virataInExec virataOperator
+hi def link virataInExport virataOperator
+hi def link virataInImport virataOperator
+hi def link virataInInstance virataOperator
+hi def link virataInMake virataOperator
+hi def link virataInModule virataOperator
+hi def link virataInProcess virataOperator
+hi def link virataInMacAddr virataHexNumber
+
+" Comment Group:
+hi def link virataComment Comment
+hi def link virataSpclComment SpecialComment
+hi def link virataInCommentTodo Todo
+
+" Constant Group:
+hi def link virataString String
+hi def link virataStringError Error
+hi def link virataCharacter Character
+hi def link virataSpclChar Special
+hi def link virataDecNumber Number
+hi def link virataHexNumber Number
+hi def link virataSizeNumber Number
+hi def link virataNumberError Error
+
+" Identifier Group:
+hi def link virataIdentError Error
+
+" PreProc Group:
+hi def link virataPreProc PreProc
+hi def link virataDefine Define
+hi def link virataInclude Include
+hi def link virataPreCondit PreCondit
+hi def link virataPreProcError Error
+hi def link virataPreProcWarn Todo
+
+" Directive Group:
+hi def link virataStatement Statement
+hi def link virataCfgStatement Statement
+hi def link virataOperator Operator
+hi def link virataDirective Keyword
+
let b:current_syntax = "virata"
diff --git a/runtime/syntax/vmasm.vim b/runtime/syntax/vmasm.vim
index 85d0441258..c5cbb1e3a2 100644
--- a/runtime/syntax/vmasm.vim
+++ b/runtime/syntax/vmasm.vim
@@ -6,11 +6,8 @@
" This is incomplete. Feel free to contribute...
"
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -196,55 +193,45 @@ syn match vmasmDirective "\.\(signed_\)\=word\>"
syn case match
" 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_macro_syntax_inits")
- if version < 508
- let did_macro_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " The default methods for highlighting. Can be overridden later
- " Comment Constant Error Identifier PreProc Special Statement Todo Type
- "
- " Constant Boolean Character Number String
- " Identifier Function
- " PreProc Define Include Macro PreCondit
- " Special Debug Delimiter SpecialChar SpecialComment Tag
- " Statement Conditional Exception Keyword Label Operator Repeat
- " Type StorageClass Structure Typedef
-
- HiLink vmasmComment Comment
- HiLink vmasmTodo Todo
-
- HiLink vmasmhexNumber Number " Constant
- HiLink vmasmoctNumber Number " Constant
- HiLink vmasmbinNumber Number " Constant
- HiLink vmasmdecNumber Number " Constant
- HiLink vmasmfloatNumber Number " Constant
-
-" HiLink vmasmString String " Constant
-
- HiLink vmasmReg Identifier
- HiLink vmasmOperator Identifier
-
- HiLink vmasmInclude Include " PreProc
- HiLink vmasmMacro Macro " PreProc
- " HiLink vmasmMacroParam Keyword " Statement
-
- HiLink vmasmDirective Special
- HiLink vmasmPreCond Special
-
-
- HiLink vmasmOpcode Statement
- HiLink vmasmCond Conditional " Statement
- HiLink vmasmRepeat Repeat " Statement
-
- HiLink vmasmLabel Type
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+" The default methods for highlighting. Can be overridden later
+" Comment Constant Error Identifier PreProc Special Statement Todo Type
+"
+" Constant Boolean Character Number String
+" Identifier Function
+" PreProc Define Include Macro PreCondit
+" Special Debug Delimiter SpecialChar SpecialComment Tag
+" Statement Conditional Exception Keyword Label Operator Repeat
+" Type StorageClass Structure Typedef
+
+hi def link vmasmComment Comment
+hi def link vmasmTodo Todo
+
+hi def link vmasmhexNumber Number " Constant
+hi def link vmasmoctNumber Number " Constant
+hi def link vmasmbinNumber Number " Constant
+hi def link vmasmdecNumber Number " Constant
+hi def link vmasmfloatNumber Number " Constant
+
+" hi def link vmasmString String " Constant
+
+hi def link vmasmReg Identifier
+hi def link vmasmOperator Identifier
+
+hi def link vmasmInclude Include " PreProc
+hi def link vmasmMacro Macro " PreProc
+" hi def link vmasmMacroParam Keyword " Statement
+
+hi def link vmasmDirective Special
+hi def link vmasmPreCond Special
+
+
+hi def link vmasmOpcode Statement
+hi def link vmasmCond Conditional " Statement
+hi def link vmasmRepeat Repeat " Statement
+
+hi def link vmasmLabel Type
let b:current_syntax = "vmasm"
diff --git a/runtime/syntax/vrml.vim b/runtime/syntax/vrml.vim
index 44814aad86..2474493c94 100644
--- a/runtime/syntax/vrml.vim
+++ b/runtime/syntax/vrml.vim
@@ -5,11 +5,8 @@
" Former Maintainer: Gregory Seidman <gsslist+vim@anthropohedron.net>
" Last change: 2006 May 03
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -168,11 +165,9 @@ syn keyword VRMLProtos contained EXTERNPROTO PROTO IS
syn keyword VRMLRoutes contained ROUTE TO
-if version >= 502
"containment!
- syn include @jscript $VIMRUNTIME/syntax/javascript.vim
- syn region VRMLjScriptString contained start=+"\(\(javascript\)\|\(vrmlscript\)\|\(ecmascript\)\):+ms=e+1 skip=+\\\\\|\\"+ end=+"+me=e-1 contains=@jscript
-endif
+syn include @jscript $VIMRUNTIME/syntax/javascript.vim
+syn region VRMLjScriptString contained start=+"\(\(javascript\)\|\(vrmlscript\)\|\(ecmascript\)\):+ms=e+1 skip=+\\\\\|\\"+ end=+"+me=e-1 contains=@jscript
" match definitions.
syn match VRMLSpecial contained "\\[0-9][0-9][0-9]\|\\."
@@ -192,47 +187,35 @@ syn region VRMLInstName start="USE\>"hs=e+1 skip="USE\(,\|\s\)*" end="[A-Za-z
syn keyword VRMLInstances contained DEF USE
syn sync minlines=1
-if version >= 600
"FOLDS!
- syn sync fromstart
- "setlocal foldmethod=syntax
- syn region braceFold start="{" end="}" transparent fold contains=TOP
- syn region bracketFold start="\[" end="]" transparent fold contains=TOP
- syn region VRMLString start=+"+ skip=+\\\\\|\\"+ end=+"+ fold contains=VRMLSpecial,VRMLjScriptString
-endif
+syn sync fromstart
+"setlocal foldmethod=syntax
+syn region braceFold start="{" end="}" transparent fold contains=TOP
+syn region bracketFold start="\[" end="]" transparent fold contains=TOP
+syn region VRMLString start=+"+ skip=+\\\\\|\\"+ end=+"+ fold contains=VRMLSpecial,VRMLjScriptString
" 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_VRML_syntax_inits")
- if version < 508
- let did_VRML_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink VRMLCharacter VRMLString
- HiLink VRMLSpecialCharacter VRMLSpecial
- HiLink VRMLNumber VRMLString
- HiLink VRMLValues VRMLString
- HiLink VRMLString String
- HiLink VRMLSpecial Special
- HiLink VRMLComment Comment
- HiLink VRMLNodes Statement
- HiLink VRMLFields Type
- HiLink VRMLEvents Type
- HiLink VRMLfTypes LineNr
+" Only when an item doesn't have highlighting yet
+
+hi def link VRMLCharacter VRMLString
+hi def link VRMLSpecialCharacter VRMLSpecial
+hi def link VRMLNumber VRMLString
+hi def link VRMLValues VRMLString
+hi def link VRMLString String
+hi def link VRMLSpecial Special
+hi def link VRMLComment Comment
+hi def link VRMLNodes Statement
+hi def link VRMLFields Type
+hi def link VRMLEvents Type
+hi def link VRMLfTypes LineNr
" hi VRMLfTypes ctermfg=6 guifg=Brown
- HiLink VRMLInstances PreCondit
- HiLink VRMLRoutes PreCondit
- HiLink VRMLProtos PreProc
- HiLink VRMLRouteNode Identifier
- HiLink VRMLInstName Identifier
- HiLink VRMLTypes Identifier
-
- delcommand HiLink
-endif
+hi def link VRMLInstances PreCondit
+hi def link VRMLRoutes PreCondit
+hi def link VRMLProtos PreProc
+hi def link VRMLRouteNode Identifier
+hi def link VRMLInstName Identifier
+hi def link VRMLTypes Identifier
+
let b:current_syntax = "vrml"
diff --git a/runtime/syntax/vroom.vim b/runtime/syntax/vroom.vim
index 0cd6ccce1d..0509e30b17 100644
--- a/runtime/syntax/vroom.vim
+++ b/runtime/syntax/vroom.vim
@@ -3,11 +3,8 @@
" Maintainer: David Barnett (https://github.com/google/vim-ft-vroom)
" Last Change: 2014 Jul 23
-" For version 5.x: Clear all syntax items.
-" For version 6.x and later: Quit when a syntax file was already loaded.
-if v:version < 600
- syntax clear
-elseif exists('b:current_syntax')
+" quit when a syntax file was already loaded
+if exists('b:current_syntax')
finish
endif
diff --git a/runtime/syntax/vsejcl.vim b/runtime/syntax/vsejcl.vim
index f4f00c65ea..f329836236 100644
--- a/runtime/syntax/vsejcl.vim
+++ b/runtime/syntax/vsejcl.vim
@@ -4,11 +4,8 @@
" URL:
" Last change: 2001 May 10
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -23,26 +20,16 @@ syn match vsejclString /'.\{-}'/
syn match vsejclParms /(.\{-})/ contained
" 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_vsejcl_syntax")
- if version < 508
- let did_vsejcl_syntax = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink vsejclComment Comment
- HiLink vsejclField Type
- HiLink vsejclKeyword Statement
- HiLink vsejclObject Constant
- HiLink vsejclString Constant
- HiLink vsejclMisc Special
- HiLink vsejclParms Constant
+hi def link vsejclComment Comment
+hi def link vsejclField Type
+hi def link vsejclKeyword Statement
+hi def link vsejclObject Constant
+hi def link vsejclString Constant
+hi def link vsejclMisc Special
+hi def link vsejclParms Constant
- delcommand HiLink
-endif
let b:current_syntax = "vsejcl"
diff --git a/runtime/syntax/wdiff.vim b/runtime/syntax/wdiff.vim
index 9cd0611819..d0afadff2f 100644
--- a/runtime/syntax/wdiff.vim
+++ b/runtime/syntax/wdiff.vim
@@ -9,11 +9,8 @@
" SPAM is _NOT_ welcome - be ready to be reported!
-" For version 5.x: Clear all syntax items
-" For version 6.x: Quit when a syntax file was already loaded
-if version < 600
- syn clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -23,21 +20,10 @@ syn region wdiffNew start="{+" end="+}"
" 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_wdiff_syn_inits")
- let did_wdiff_syn_inits = 1
- if version < 508
- let did_wdiff_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink wdiffOld Special
- HiLink wdiffNew Identifier
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link wdiffOld Special
+hi def link wdiffNew Identifier
+
let b:current_syntax = "wdiff"
diff --git a/runtime/syntax/web.vim b/runtime/syntax/web.vim
index f7a7fdfdc2..54eebda399 100644
--- a/runtime/syntax/web.vim
+++ b/runtime/syntax/web.vim
@@ -8,11 +8,8 @@
" the standard WEB distribution, available for anonymous ftp at
" ftp://labrea.stanford.edu/pub/tex/web/.
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -20,12 +17,8 @@ endif
" we base this syntax file on the modern superset, CWEB. Note: This shortcut
" may introduce some illegal constructs, e.g., CWEB's "@c" does _not_ start a
" code section in WEB. Anyway, I'm not a WEB programmer.
-if version < 600
- source <sfile>:p:h/cweb.vim
-else
- runtime! syntax/cweb.vim
- unlet b:current_syntax
-endif
+runtime! syntax/cweb.vim
+unlet b:current_syntax
" Replace C/C++ syntax by Pascal syntax.
syntax include @webIncludedC <sfile>:p:h/pascal.vim
diff --git a/runtime/syntax/webmacro.vim b/runtime/syntax/webmacro.vim
index 3b863f7c37..fb1fff6d3d 100644
--- a/runtime/syntax/webmacro.vim
+++ b/runtime/syntax/webmacro.vim
@@ -11,21 +11,16 @@
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if !exists("main_syntax")
- if version < 600
- syntax clear
- elseif exists("b:current_syntax")
+ " quit when a syntax file was already loaded
+ if exists("b:current_syntax")
finish
endif
let main_syntax = 'webmacro'
endif
-if version < 600
- source <sfile>:p:h/html.vim
-else
- runtime! syntax/html.vim
- unlet b:current_syntax
-endif
+runtime! syntax/html.vim
+unlet b:current_syntax
syn cluster htmlPreProc add=webmacroIf,webmacroUse,webmacroBraces,webmacroParse,webmacroInclude,webmacroSet,webmacroForeach,webmacroComment
@@ -49,31 +44,21 @@ syn match webmacroComment "##.*$"
syn match webmacroHash "[#{}\$]" contained
" 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_webmacro_syn_inits")
- if version < 508
- let did_webmacro_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink webmacroComment CommentTitle
- HiLink webmacroVariable PreProc
- HiLink webmacroIf webmacroStatement
- HiLink webmacroForeach webmacroStatement
- HiLink webmacroSet webmacroStatement
- HiLink webmacroInclude webmacroStatement
- HiLink webmacroParse webmacroStatement
- HiLink webmacroStatement Function
- HiLink webmacroNumber Number
- HiLink webmacroBoolean Boolean
- HiLink webmacroSpecial Special
- HiLink webmacroString String
- HiLink webmacroBracesError Error
- delcommand HiLink
-endif
+hi def link webmacroComment CommentTitle
+hi def link webmacroVariable PreProc
+hi def link webmacroIf webmacroStatement
+hi def link webmacroForeach webmacroStatement
+hi def link webmacroSet webmacroStatement
+hi def link webmacroInclude webmacroStatement
+hi def link webmacroParse webmacroStatement
+hi def link webmacroStatement Function
+hi def link webmacroNumber Number
+hi def link webmacroBoolean Boolean
+hi def link webmacroSpecial Special
+hi def link webmacroString String
+hi def link webmacroBracesError Error
let b:current_syntax = "webmacro"
diff --git a/runtime/syntax/winbatch.vim b/runtime/syntax/winbatch.vim
index aea2cdebcb..15ea0fc77b 100644
--- a/runtime/syntax/winbatch.vim
+++ b/runtime/syntax/winbatch.vim
@@ -4,11 +4,8 @@
" URL: http://www.mggen.com/vim/syntax/winbatch.zip
" Last change: 2001 May 10
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -158,29 +155,19 @@ syn keyword winbatchImplicit xgetchildhwnd xgetelapsed xhex xmemcompact xmessage
syn keyword winbatchImplicit xsendmessage xverifyccard yield
" 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_winbatch_syntax_inits")
- if version < 508
- let did_winbatch_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" Only when an item doesn't have highlighting yet
- HiLink winbatchLabel PreProc
- HiLink winbatchCtl Operator
- HiLink winbatchStatement Statement
- HiLink winbatchTodo Todo
- HiLink winbatchString String
- HiLink winbatchVar Type
- HiLink winbatchComment Comment
- HiLink winbatchImplicit Special
- HiLink winbatchNumber Number
- HiLink winbatchConstant StorageClass
+hi def link winbatchLabel PreProc
+hi def link winbatchCtl Operator
+hi def link winbatchStatement Statement
+hi def link winbatchTodo Todo
+hi def link winbatchString String
+hi def link winbatchVar Type
+hi def link winbatchComment Comment
+hi def link winbatchImplicit Special
+hi def link winbatchNumber Number
+hi def link winbatchConstant StorageClass
- delcommand HiLink
-endif
let b:current_syntax = "winbatch"
diff --git a/runtime/syntax/wml.vim b/runtime/syntax/wml.vim
index 5957930c8e..73bf822e40 100644
--- a/runtime/syntax/wml.vim
+++ b/runtime/syntax/wml.vim
@@ -16,21 +16,14 @@
" vim-package around your corner :)
-" For version 5.x: Clear all syntax items
-" For version 6.x: Quit when a syntax file was already loaded
-if version < 600
- syn clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
" A lot of the web stuff looks like HTML so we load that first
-if version < 600
- so <sfile>:p:h/html.vim
-else
- runtime! syntax/html.vim
-endif
+runtime! syntax/html.vim
unlet b:current_syntax
if !exists("main_syntax")
@@ -108,11 +101,7 @@ syn region htmlTagName start="\<\(define-tag\|define-region\)" end="\>" cont
" The perl include stuff
if main_syntax != 'perl'
" Perl script
- if version < 600
- syn include @wmlPerlScript <sfile>:p:h/perl.vim
- else
- syn include @wmlPerlScript syntax/perl.vim
- endif
+ syn include @wmlPerlScript syntax/perl.vim
unlet b:current_syntax
syn region perlScript start=+<perl>+ keepend end=+</perl>+ contains=@wmlPerlScript,wmlPerlTag
@@ -140,33 +129,22 @@ if main_syntax == "html"
endif
" 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_wml_syn_inits")
- let did_wml_syn_inits = 1
- if version < 508
- let did_wml_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink wmlNextLine Special
- HiLink wmlUse Include
- HiLink wmlUsed String
- HiLink wmlBody Special
- HiLink wmlDiverted Label
- HiLink wmlDivert Delimiter
- HiLink wmlDivertEnd Delimiter
- HiLink wmlLocationId Label
- HiLink wmlLocation Delimiter
-" HiLink wmlLocationed Delimiter
- HiLink wmlDefineName String
- HiLink wmlComment Comment
- HiLink wmlInclude Include
- HiLink wmlSharpBang PreProc
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link wmlNextLine Special
+hi def link wmlUse Include
+hi def link wmlUsed String
+hi def link wmlBody Special
+hi def link wmlDiverted Label
+hi def link wmlDivert Delimiter
+hi def link wmlDivertEnd Delimiter
+hi def link wmlLocationId Label
+hi def link wmlLocation Delimiter
+" hi def link wmlLocationed Delimiter
+hi def link wmlDefineName String
+hi def link wmlComment Comment
+hi def link wmlInclude Include
+hi def link wmlSharpBang PreProc
+
let b:current_syntax = "wml"
diff --git a/runtime/syntax/wsml.vim b/runtime/syntax/wsml.vim
index 2a92a0d548..d01294caac 100644
--- a/runtime/syntax/wsml.vim
+++ b/runtime/syntax/wsml.vim
@@ -4,10 +4,8 @@
" URL: none
" Last Change: 2006 Apr 30
-" Quit when a syntax file was already loaded
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -78,47 +76,37 @@ syn match wsmlSpecial "\\u\d\{4\}"
syn cluster wsmlTop add=wsmlString,wsmlCharacter,wsmlNumber,wsmlSpecial,wsmlStringError
" 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_wsml_syn_inits")
- if version < 508
- let did_wsml_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink wsmlHeader TypeDef
- HiLink wsmlNamespace TypeDef
- HiLink wsmlOntology Statement
- HiLink wsmlAxiom TypeDef
- HiLink wsmlService TypeDef
- HiLink wsmlNFP TypeDef
- HiLink wsmlTopLevel TypeDef
- HiLink wsmlMediation TypeDef
- HiLink wsmlBehavioral TypeDef
- HiLink wsmlChoreographyPri TypeDef
- HiLink wsmlChoreographySec Operator
- HiLink wsmlChoreographyTer Special
- HiLink wsmlString String
- HiLink wsmlIdentifier Normal
- HiLink wsmlSqName Normal
- HiLink wsmlVariable Define
- HiLink wsmlKeywordsInsideLEs Operator
- HiLink wsmlOperator Operator
- HiLink wsmlBrace Operator
- HiLink wsmlCharacter Character
- HiLink wsmlNumber Number
- HiLink wsmlDataTypes Special
- HiLink wsmlComment Comment
- HiLink wsmlDocComment Comment
- HiLink wsmlLineComment Comment
- HiLink wsmlTodo Todo
- HiLink wsmlFixMe Error
- HiLink wsmlCommentTitle SpecialComment
- HiLink wsmlCommentStar wsmlComment
- endif
+" Only when an item doesn't have highlighting yet
+hi def link wsmlHeader TypeDef
+hi def link wsmlNamespace TypeDef
+hi def link wsmlOntology Statement
+hi def link wsmlAxiom TypeDef
+hi def link wsmlService TypeDef
+hi def link wsmlNFP TypeDef
+hi def link wsmlTopLevel TypeDef
+hi def link wsmlMediation TypeDef
+hi def link wsmlBehavioral TypeDef
+hi def link wsmlChoreographyPri TypeDef
+hi def link wsmlChoreographySec Operator
+hi def link wsmlChoreographyTer Special
+hi def link wsmlString String
+hi def link wsmlIdentifier Normal
+hi def link wsmlSqName Normal
+hi def link wsmlVariable Define
+hi def link wsmlKeywordsInsideLEs Operator
+hi def link wsmlOperator Operator
+hi def link wsmlBrace Operator
+hi def link wsmlCharacter Character
+hi def link wsmlNumber Number
+hi def link wsmlDataTypes Special
+hi def link wsmlComment Comment
+hi def link wsmlDocComment Comment
+hi def link wsmlLineComment Comment
+hi def link wsmlTodo Todo
+hi def link wsmlFixMe Error
+hi def link wsmlCommentTitle SpecialComment
+hi def link wsmlCommentStar wsmlComment
-delcommand HiLink
let b:current_syntax = "wsml"
let b:spell_options="contained"
diff --git a/runtime/syntax/xdefaults.vim b/runtime/syntax/xdefaults.vim
index 5e38952a75..7da5969cde 100644
--- a/runtime/syntax/xdefaults.vim
+++ b/runtime/syntax/xdefaults.vim
@@ -10,11 +10,8 @@
" xrdb manual page
" xrdb source: ftp://ftp.x.org/pub/R6.4/xc/programs/xrdb/xrdb.c
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -109,36 +106,26 @@ syn keyword xdefaultsSymbol contained X_RESOLUTION
syn keyword xdefaultsSymbol contained Y_RESOLUTION
" 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_xdefaults_syntax_inits")
- if version < 508
- let did_xdefaults_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink xdefaultsLabel Type
- HiLink xdefaultsValue Constant
- HiLink xdefaultsComment Comment
- HiLink xdefaultsCommentH xdefaultsComment
- HiLink xdefaultsPreProc PreProc
- HiLink xdefaultsInclude xdefaultsPreProc
- HiLink xdefaultsCppSkip xdefaultsCppOut
- HiLink xdefaultsCppOut2 xdefaultsCppOut
- HiLink xdefaultsCppOut Comment
- HiLink xdefaultsIncluded String
- HiLink xdefaultsDefine Macro
- HiLink xdefaultsSymbol Statement
- HiLink xdefaultsSpecial Statement
- HiLink xdefaultsErrorLine Error
- HiLink xdefaultsCommentError Error
- HiLink xdefaultsPunct Normal
- HiLink xdefaultsLineEnd Special
- HiLink xdefaultsTodo Todo
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+hi def link xdefaultsLabel Type
+hi def link xdefaultsValue Constant
+hi def link xdefaultsComment Comment
+hi def link xdefaultsCommentH xdefaultsComment
+hi def link xdefaultsPreProc PreProc
+hi def link xdefaultsInclude xdefaultsPreProc
+hi def link xdefaultsCppSkip xdefaultsCppOut
+hi def link xdefaultsCppOut2 xdefaultsCppOut
+hi def link xdefaultsCppOut Comment
+hi def link xdefaultsIncluded String
+hi def link xdefaultsDefine Macro
+hi def link xdefaultsSymbol Statement
+hi def link xdefaultsSpecial Statement
+hi def link xdefaultsErrorLine Error
+hi def link xdefaultsCommentError Error
+hi def link xdefaultsPunct Normal
+hi def link xdefaultsLineEnd Special
+hi def link xdefaultsTodo Todo
+
let b:current_syntax = "xdefaults"
diff --git a/runtime/syntax/xf86conf.vim b/runtime/syntax/xf86conf.vim
index 62784d2285..545eda7db0 100644
--- a/runtime/syntax/xf86conf.vim
+++ b/runtime/syntax/xf86conf.vim
@@ -10,12 +10,8 @@
" to force XFree86 3.x or 4.x XF86Config syntax
" Setup
-if version >= 600
- if exists("b:current_syntax")
- finish
- endif
-else
- echo "Sorry, but this syntax file relies on Vim 6 features. Either upgrade Vim or usea version of " . expand("<sfile>:t:r") . " syntax file appropriate for Vim " . version/100 . "." . version %100 . "."
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
diff --git a/runtime/syntax/xinetd.vim b/runtime/syntax/xinetd.vim
index 9010a48a1d..fab3a916ea 100644
--- a/runtime/syntax/xinetd.vim
+++ b/runtime/syntax/xinetd.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: xinetd.conf(5) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: xinetd.conf(5) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/xkb.vim b/runtime/syntax/xkb.vim
index ff9bfd0dae..59fc497e62 100644
--- a/runtime/syntax/xkb.vim
+++ b/runtime/syntax/xkb.vim
@@ -6,12 +6,9 @@
" URL: http://trific.ath.cx/Ftp/vim/syntax/xkb.vim
" Setup
-if version >= 600
- if exists("b:current_syntax")
- finish
- endif
-else
- syntax clear
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
+ finish
endif
syn case match
@@ -50,42 +47,33 @@ syn keyword xkbTModif default hidden partial virtual
syn keyword xkbSect alphanumeric_keys alternate_group function_keys keypad_keys modifier_keys xkb_compatibility xkb_geometry xkb_keycodes xkb_keymap xkb_semantics xkb_symbols xkb_types
" Define the default highlighting
-if version >= 508 || !exists("did_xkb_syntax_inits")
- if version < 508
- let did_xkb_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink xkbModif xkbPreproc
- HiLink xkbTModif xkbPreproc
- HiLink xkbPreproc Preproc
-
- HiLink xkbIdentifier Keyword
- HiLink xkbFunction Function
- HiLink xkbSect Type
- HiLink xkbPhysicalKey Identifier
- HiLink xkbKeyword Keyword
-
- HiLink xkbComment Comment
- HiLink xkbTodo Todo
-
- HiLink xkbConstant Constant
- HiLink xkbString String
-
- HiLink xkbSpecialChar xkbSpecial
- HiLink xkbSpecial Special
-
- HiLink xkbParenError xkbBalancingError
- HiLink xkbBraceError xkbBalancingError
- HiLink xkbBraketError xkbBalancingError
- HiLink xkbBalancingError xkbError
- HiLink xkbCommentStartError xkbCommentError
- HiLink xkbCommentError xkbError
- HiLink xkbError Error
-
- delcommand HiLink
-endif
+
+hi def link xkbModif xkbPreproc
+hi def link xkbTModif xkbPreproc
+hi def link xkbPreproc Preproc
+
+hi def link xkbIdentifier Keyword
+hi def link xkbFunction Function
+hi def link xkbSect Type
+hi def link xkbPhysicalKey Identifier
+hi def link xkbKeyword Keyword
+
+hi def link xkbComment Comment
+hi def link xkbTodo Todo
+
+hi def link xkbConstant Constant
+hi def link xkbString String
+
+hi def link xkbSpecialChar xkbSpecial
+hi def link xkbSpecial Special
+
+hi def link xkbParenError xkbBalancingError
+hi def link xkbBraceError xkbBalancingError
+hi def link xkbBraketError xkbBalancingError
+hi def link xkbBalancingError xkbError
+hi def link xkbCommentStartError xkbCommentError
+hi def link xkbCommentError xkbError
+hi def link xkbError Error
+
let b:current_syntax = "xkb"
diff --git a/runtime/syntax/xmath.vim b/runtime/syntax/xmath.vim
index 5434f928c7..22b3e85dae 100644
--- a/runtime/syntax/xmath.vim
+++ b/runtime/syntax/xmath.vim
@@ -1,15 +1,13 @@
" Vim syntax file
" Language: xmath (a simulation tool)
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change: Sep 11, 2006
-" Version: 7
+" Last Change: Aug 31, 2016
+" Version: 9
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_XMATH
" 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")
+if exists("b:current_syntax")
finish
endif
@@ -194,41 +192,32 @@ syn sync match xmathSyncComment grouphere xmathCommentBlock "#{"
syn sync match xmathSyncComment groupthere NONE "}#"
" 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_xmath_syntax_inits")
- if version < 508
- let did_xmath_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink xmathBraceError xmathError
- HiLink xmathCmd xmathStatement
- HiLink xmathCommentBlock xmathComment
- HiLink xmathCurlyError xmathError
- HiLink xmathFuncCmd xmathStatement
- HiLink xmathParenError xmathError
+if !exists("skip_xmath_syntax_inits")
+
+ hi def link xmathBraceError xmathError
+ hi def link xmathCmd xmathStatement
+ hi def link xmathCommentBlock xmathComment
+ hi def link xmathCurlyError xmathError
+ hi def link xmathFuncCmd xmathStatement
+ hi def link xmathParenError xmathError
" The default methods for highlighting. Can be overridden later
- HiLink xmathCharacter Character
- HiLink xmathComma Delimiter
- HiLink xmathComment Comment
- HiLink xmathCommentBlock Comment
- HiLink xmathConditional Conditional
- HiLink xmathError Error
- HiLink xmathFunc Function
- HiLink xmathLabel PreProc
- HiLink xmathNumber Number
- HiLink xmathRepeat Repeat
- HiLink xmathSpecial Type
- HiLink xmathSpecialChar SpecialChar
- HiLink xmathStatement Statement
- HiLink xmathString String
- HiLink xmathTodo Todo
-
- delcommand HiLink
+ hi def link xmathCharacter Character
+ hi def link xmathComma Delimiter
+ hi def link xmathComment Comment
+ hi def link xmathCommentBlock Comment
+ hi def link xmathConditional Conditional
+ hi def link xmathError Error
+ hi def link xmathFunc Function
+ hi def link xmathLabel PreProc
+ hi def link xmathNumber Number
+ hi def link xmathRepeat Repeat
+ hi def link xmathSpecial Type
+ hi def link xmathSpecialChar SpecialChar
+ hi def link xmathStatement Statement
+ hi def link xmathString String
+ hi def link xmathTodo Todo
+
endif
let b:current_syntax = "xmath"
diff --git a/runtime/syntax/xmodmap.vim b/runtime/syntax/xmodmap.vim
index 69c70c563d..28cae3eb71 100644
--- a/runtime/syntax/xmodmap.vim
+++ b/runtime/syntax/xmodmap.vim
@@ -1,7 +1,7 @@
" Vim syntax file
-" Language: xmodmap(1) definition file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: xmodmap(1) definition file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:current_syntax")
finish
diff --git a/runtime/syntax/xpm.vim b/runtime/syntax/xpm.vim
index 3cbc1b54fd..0667ca28ad 100644
--- a/runtime/syntax/xpm.vim
+++ b/runtime/syntax/xpm.vim
@@ -1,14 +1,12 @@
" Vim syntax file
" Language: X Pixmap
" Maintainer: Ronald Schild <rs@scutum.de>
-" Last Change: 2008 May 28
+" Last Change: 2017 Feb 01
" Version: 5.4n.1
+" Jemma Nelson added termguicolors support
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -18,7 +16,7 @@ syn keyword xpmTodo TODO FIXME XXX contained
syn region xpmComment start="/\*" end="\*/" contains=xpmTodo
syn region xpmPixelString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@xpmColors
-if has("gui_running")
+if has("gui_running") || has("termguicolors") && &termguicolors
let color = ""
let chars = ""
@@ -123,27 +121,17 @@ endwhile
unlet color chars colors cpp n i s
-endif " has("gui_running")
+endif " has("gui_running") || has("termguicolors") && &termguicolors
" 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_xpm_syntax_inits")
- if version < 508
- let did_xpm_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink xpmType Type
- HiLink xpmStorageClass StorageClass
- HiLink xpmTodo Todo
- HiLink xpmComment Comment
- HiLink xpmPixelString String
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link xpmType Type
+hi def link xpmStorageClass StorageClass
+hi def link xpmTodo Todo
+hi def link xpmComment Comment
+hi def link xpmPixelString String
+
let b:current_syntax = "xpm"
diff --git a/runtime/syntax/xpm2.vim b/runtime/syntax/xpm2.vim
index 74b3c66af2..dfa6945a31 100644
--- a/runtime/syntax/xpm2.vim
+++ b/runtime/syntax/xpm2.vim
@@ -1,17 +1,15 @@
" Vim syntax file
" Language: X Pixmap v2
" Maintainer: Steve Wall (hitched97@velnet.com)
-" Last Change: 2012 Jun 01
+" Last Change: 2017 Feb 01
" (Dominique Pelle added @Spell)
" Version: 5.8
+" Jemma Nelson added termguicolors support
"
" Made from xpm.vim by Ronald Schild <rs@scutum.de>
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -23,15 +21,9 @@ syn keyword xpm2Todo TODO FIXME XXX contained
syn match xpm2Comment "\!.*$" contains=@Spell,xpm2Todo
-if version < 508
- command -nargs=+ HiLink hi link <args>
- command -nargs=+ Hi hi <args>
-else
- command -nargs=+ HiLink hi def link <args>
- command -nargs=+ Hi hi def <args>
-endif
+command -nargs=+ Hi hi def <args>
-if has("gui_running")
+if has("gui_running") || has("termguicolors") && &termguicolors
let color = ""
let chars = ""
@@ -63,7 +55,7 @@ if has("gui_running")
if s !~ '/'
exe 'syn match xpm2Values /' . s . '/'
endif
- HiLink xpm2Values Statement
+ hi def link xpm2Values Statement
let n = 1 " n = color index
@@ -112,11 +104,11 @@ if has("gui_running")
" now create syntax items
" highlight the color string as normal string (no pixel string)
exe 'syn match xpm2Col'.n.'Def /'.s.'/ contains=xpm2Col'.n.'inDef'
- exe 'HiLink xpm2Col'.n.'Def Constant'
+ exe 'hi def link xpm2Col'.n.'Def Constant'
" but highlight the first whitespace after chars in its color
exe 'syn match xpm2Col'.n.'inDef /^'.chars.'/hs=s+'.(cpp).' contained'
- exe 'HiLink xpm2Col'.n.'inDef xpm2Color'.n
+ exe 'hi def link xpm2Col'.n.'inDef xpm2Color'.n
" remove the following whitespace from chars
let chars = substitute(chars, '\\s\\+$', '', '')
@@ -141,24 +133,17 @@ if has("gui_running")
unlet color chars colors cpp n i s
-endif " has("gui_running")
+endif " has("gui_running") || has("termguicolors") && &termguicolors
" 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_xpm2_syntax_inits")
- if version < 508
- let did_xpm2_syntax_inits = 1
- endif
-
- " The default highlighting.
- HiLink xpm2Type Type
- HiLink xpm2StorageClass StorageClass
- HiLink xpm2Todo Todo
- HiLink xpm2Comment Comment
- HiLink xpm2PixelString String
-endif
-delcommand HiLink
+" Only when an item doesn't have highlighting yet
+" The default highlighting.
+hi def link xpm2Type Type
+hi def link xpm2StorageClass StorageClass
+hi def link xpm2Todo Todo
+hi def link xpm2Comment Comment
+hi def link xpm2PixelString String
+
delcommand Hi
let b:current_syntax = "xpm2"
diff --git a/runtime/syntax/xs.vim b/runtime/syntax/xs.vim
index 6fd0a468f9..3e658b4a83 100644
--- a/runtime/syntax/xs.vim
+++ b/runtime/syntax/xs.vim
@@ -3,27 +3,19 @@
" Author: Autogenerated from perl headers, on an original basis of Michael W. Dodge <sarge@pobox.com>
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Previous: Vincent Pit <perl@profvince.com>
-" Last Change: 2013-05-12
+" Last Change: 2017-09-12
-" 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")
+if exists("b:current_syntax")
finish
endif
-" Read the C syntax to start with
-if version < 600
- source <sfile>:p:h/c.vim
-else
- runtime! syntax/c.vim
-endif
+runtime! syntax/c.vim
-let xs_superseded = 1 " mark C functions superseded by Perl replacements
-let xs_not_core = 1 " mark private core functions
+" Configuration:
+" let xs_superseded = 0 " mark C functions superseded by Perl replacements (ex. memcpy vs Copy)
+" let xs_not_core = 0 " mark private core functions
-if exists("xs_superseded") && xs_superseded
+if get(g:, 'xs_superseded', 0)
syn keyword xsSuperseded atof atol calloc clearerr exit fclose feof ferror
syn keyword xsSuperseded fflush fgetc fgetpos fgets fopen fprintf fputc fputs
syn keyword xsSuperseded fread free freopen fseek fsetpos fwrite getc getenv
@@ -35,45 +27,78 @@ syn keyword xsSuperseded strcat strcmp strcpy strdup strlen strncat strncmp
syn keyword xsSuperseded strncpy strstr strtod strtol strtoul system tolower
syn keyword xsSuperseded toupper ungetc
endif
-if exists("xs_not_core") && xs_not_core
+if get(g:, 'xs_not_core', 0)
syn keyword xsPrivate F0convert Perl__add_range_to_invlist
-syn keyword xsPrivate Perl__core_swash_init Perl__invlist_contents
+syn keyword xsPrivate Perl__core_swash_init Perl__get_encoding
+syn keyword xsPrivate Perl__get_swash_invlist Perl__invlist_contents
+syn keyword xsPrivate Perl__invlist_dump
syn keyword xsPrivate Perl__invlist_intersection_maybe_complement_2nd
-syn keyword xsPrivate Perl__invlist_invert Perl__invlist_invert_prop
-syn keyword xsPrivate Perl__invlist_populate_swatch
+syn keyword xsPrivate Perl__invlist_invert Perl__invlist_populate_swatch
+syn keyword xsPrivate Perl__invlist_search
syn keyword xsPrivate Perl__invlist_union_maybe_complement_2nd
-syn keyword xsPrivate Perl__is_utf8__perl_idstart Perl__new_invlist
-syn keyword xsPrivate Perl__swash_inversion_hash Perl__swash_to_invlist
-syn keyword xsPrivate Perl__to_fold_latin1 Perl_av_reify Perl_emulate_cop_io
-syn keyword xsPrivate Perl_find_rundefsvoffset Perl_get_re_arg
-syn keyword xsPrivate Perl_is_utf8_X_L Perl_is_utf8_X_LV Perl_is_utf8_X_LVT
-syn keyword xsPrivate Perl_is_utf8_X_LV_LVT_V Perl_is_utf8_X_T
-syn keyword xsPrivate Perl_is_utf8_X_V Perl_is_utf8_X_begin
-syn keyword xsPrivate Perl_is_utf8_X_extend Perl_is_utf8_X_non_hangul
-syn keyword xsPrivate Perl_is_utf8_X_prepend Perl_is_utf8_char
-syn keyword xsPrivate Perl_new_warnings_bitfield Perl_op_clear
-syn keyword xsPrivate Perl_ptr_table_clear Perl_qerror Perl_reg_named_buff
-syn keyword xsPrivate Perl_reg_named_buff_iter Perl_reg_numbered_buff_fetch
+syn keyword xsPrivate Perl__load_PL_utf8_foldclosures Perl__new_invlist
+syn keyword xsPrivate Perl__setup_canned_invlist Perl__swash_inversion_hash
+syn keyword xsPrivate Perl__swash_to_invlist Perl__to_fold_latin1
+syn keyword xsPrivate Perl__warn_problematic_locale Perl_av_reify
+syn keyword xsPrivate Perl_current_re_engine Perl_cv_ckproto_len_flags
+syn keyword xsPrivate Perl_emulate_cop_io Perl_find_rundefsvoffset
+syn keyword xsPrivate Perl_get_re_arg Perl_grok_atoUV Perl_isALNUM_lazy
+syn keyword xsPrivate Perl_isIDFIRST_lazy Perl_is_uni_alnum
+syn keyword xsPrivate Perl_is_uni_alnum_lc Perl_is_uni_alnumc
+syn keyword xsPrivate Perl_is_uni_alnumc_lc Perl_is_uni_alpha
+syn keyword xsPrivate Perl_is_uni_alpha_lc Perl_is_uni_ascii
+syn keyword xsPrivate Perl_is_uni_ascii_lc Perl_is_uni_blank
+syn keyword xsPrivate Perl_is_uni_blank_lc Perl_is_uni_cntrl
+syn keyword xsPrivate Perl_is_uni_cntrl_lc Perl_is_uni_digit
+syn keyword xsPrivate Perl_is_uni_digit_lc Perl_is_uni_graph
+syn keyword xsPrivate Perl_is_uni_graph_lc Perl_is_uni_idfirst
+syn keyword xsPrivate Perl_is_uni_idfirst_lc Perl_is_uni_lower
+syn keyword xsPrivate Perl_is_uni_lower_lc Perl_is_uni_print
+syn keyword xsPrivate Perl_is_uni_print_lc Perl_is_uni_punct
+syn keyword xsPrivate Perl_is_uni_punct_lc Perl_is_uni_space
+syn keyword xsPrivate Perl_is_uni_space_lc Perl_is_uni_upper
+syn keyword xsPrivate Perl_is_uni_upper_lc Perl_is_uni_xdigit
+syn keyword xsPrivate Perl_is_uni_xdigit_lc Perl_is_utf8_alnum
+syn keyword xsPrivate Perl_is_utf8_alnumc Perl_is_utf8_alpha
+syn keyword xsPrivate Perl_is_utf8_ascii Perl_is_utf8_blank Perl_is_utf8_char
+syn keyword xsPrivate Perl_is_utf8_cntrl Perl_is_utf8_digit
+syn keyword xsPrivate Perl_is_utf8_graph Perl_is_utf8_idcont
+syn keyword xsPrivate Perl_is_utf8_idfirst Perl_is_utf8_lower
+syn keyword xsPrivate Perl_is_utf8_mark Perl_is_utf8_perl_space
+syn keyword xsPrivate Perl_is_utf8_perl_word Perl_is_utf8_posix_digit
+syn keyword xsPrivate Perl_is_utf8_print Perl_is_utf8_punct
+syn keyword xsPrivate Perl_is_utf8_space Perl_is_utf8_upper
+syn keyword xsPrivate Perl_is_utf8_xdigit Perl_is_utf8_xidcont
+syn keyword xsPrivate Perl_is_utf8_xidfirst Perl_mg_find_mglob Perl_mg_length
+syn keyword xsPrivate Perl_multideref_stringify Perl_new_warnings_bitfield
+syn keyword xsPrivate Perl_op_clear Perl_ptr_table_clear Perl_qerror
+syn keyword xsPrivate Perl_reg_named_buff Perl_reg_named_buff_iter
+syn keyword xsPrivate Perl_reg_numbered_buff_fetch
syn keyword xsPrivate Perl_reg_numbered_buff_length
syn keyword xsPrivate Perl_reg_numbered_buff_store Perl_reg_qr_package
syn keyword xsPrivate Perl_reg_temp_copy Perl_regprop Perl_report_uninit
-syn keyword xsPrivate Perl_sv_compile_2op Perl_sv_setsv_cow
-syn keyword xsPrivate Perl_try_amagic_bin Perl_try_amagic_un
-syn keyword xsPrivate Perl_utf8_to_uvchr Perl_utf8_to_uvuni
-syn keyword xsPrivate Perl_vivify_defelem Perl_yylex S_F0convert S_Slab_to_rw
-syn keyword xsPrivate S__append_range_to_invlist S__new_invlist_C_array
-syn keyword xsPrivate S_add_alternate S_add_data S_add_utf16_textfilter
-syn keyword xsPrivate S_adjust_stack_on_leave S_amagic_cmp
+syn keyword xsPrivate Perl_sv_magicext_mglob Perl_sv_setsv_cow
+syn keyword xsPrivate Perl_to_uni_lower_lc Perl_to_uni_title_lc
+syn keyword xsPrivate Perl_to_uni_upper_lc Perl_try_amagic_bin
+syn keyword xsPrivate Perl_try_amagic_un Perl_utf8_to_uvchr
+syn keyword xsPrivate Perl_utf8_to_uvuni Perl_utf8_to_uvuni_buf
+syn keyword xsPrivate Perl_valid_utf8_to_uvuni Perl_validate_proto
+syn keyword xsPrivate Perl_vivify_defelem Perl_yylex S_F0convert
+syn keyword xsPrivate S__append_range_to_invlist S__make_exactf_invlist
+syn keyword xsPrivate S_add_above_Latin1_folds S_add_data S_add_multi_match
+syn keyword xsPrivate S_add_utf16_textfilter S_adjust_size_and_find_bucket
+syn keyword xsPrivate S_advance_one_SB S_advance_one_WB S_amagic_cmp
syn keyword xsPrivate S_amagic_cmp_locale S_amagic_i_ncmp S_amagic_ncmp
syn keyword xsPrivate S_anonymise_cv_maybe S_ao S_apply_attrs
syn keyword xsPrivate S_apply_attrs_my S_assert_uft8_cache_coherent
-syn keyword xsPrivate S_bad_type_pv S_bad_type_sv S_bytes_to_uni
+syn keyword xsPrivate S_assignment_type S_backup_one_SB S_backup_one_WB
+syn keyword xsPrivate S_bad_type_gv S_bad_type_pv
syn keyword xsPrivate S_check_locale_boundary_crossing S_check_type_and_open
-syn keyword xsPrivate S_check_uni S_checkcomma S_checkposixcc S_ckwarn_common
-syn keyword xsPrivate S_cl_and S_cl_anything S_cl_init S_cl_is_anything
-syn keyword xsPrivate S_cl_or S_clear_placeholders S_closest_cop S_cop_free
-syn keyword xsPrivate S_core_regclass_swash S_cr_textfilter S_curmad S_curse
-syn keyword xsPrivate S_cv_dump S_deb_curcv S_deb_stack_n S_debprof
+syn keyword xsPrivate S_check_uni S_checkcomma S_ckwarn_common
+syn keyword xsPrivate S_clear_placeholders S_clear_special_blocks
+syn keyword xsPrivate S_cntrl_to_mnemonic S_construct_ahocorasick_from_trie
+syn keyword xsPrivate S_cop_free S_could_it_be_a_POSIX_class S_cr_textfilter
+syn keyword xsPrivate S_curse S_cv_dump S_deb_curcv S_deb_stack_n S_debprof
syn keyword xsPrivate S_debug_start_match S_del_sv
syn keyword xsPrivate S_deprecate_commaless_var_list S_destroy_matcher
syn keyword xsPrivate S_div128 S_do_chomp S_do_delete_local S_do_oddball
@@ -89,103 +114,116 @@ syn keyword xsPrivate S_dump_trie_interim_table S_dumpuntil S_dup_attrlist
syn keyword xsPrivate S_exec_failed S_expect_number S_filter_gets
syn keyword xsPrivate S_finalize_op S_find_and_forget_pmops
syn keyword xsPrivate S_find_array_subscript S_find_beginning S_find_byclass
-syn keyword xsPrivate S_find_hash_subscript S_find_in_my_stash
-syn keyword xsPrivate S_find_uninit_var S_first_symbol S_fold_constants
-syn keyword xsPrivate S_forbid_setid S_force_ident S_force_list S_force_next
-syn keyword xsPrivate S_force_strict_version S_force_version S_force_word
-syn keyword xsPrivate S_forget_pmop S_gen_constant_list S_get_aux_mg
-syn keyword xsPrivate S_get_num S_glob_2number S_glob_assign_glob
-syn keyword xsPrivate S_glob_assign_ref S_grok_bslash_c S_grok_bslash_o
-syn keyword xsPrivate S_group_end S_gv_ename S_gv_get_super_pkg
-syn keyword xsPrivate S_gv_init_svtype S_gv_magicalize_isa
-syn keyword xsPrivate S_gv_magicalize_overload S_hfreeentries S_hsplit
-syn keyword xsPrivate S_hv_auxinit S_hv_delete_common S_hv_free_ent_ret
-syn keyword xsPrivate S_hv_magic_check S_hv_notallowed S_incline S_incpush
-syn keyword xsPrivate S_incpush_if_exists S_incpush_use_sep S_ingroup
-syn keyword xsPrivate S_init_ids S_init_interp S_init_main_stash
-syn keyword xsPrivate S_init_perllib S_init_postdump_symbols
-syn keyword xsPrivate S_init_predump_symbols S_inplace_aassign
-syn keyword xsPrivate S_intuit_method S_intuit_more S_invlist_extend
-syn keyword xsPrivate S_invlist_iternext S_invlist_search
-syn keyword xsPrivate S_invoke_exception_hook S_is_an_int
-syn keyword xsPrivate S_is_handle_constructor S_is_list_assignment
-syn keyword xsPrivate S_is_utf8_char_slow S_is_utf8_common S_isa_lookup
-syn keyword xsPrivate S_join_exact S_listkids S_looks_like_bool
-syn keyword xsPrivate S_magic_methcall1 S_make_matcher S_make_trie
-syn keyword xsPrivate S_make_trie_failtable S_matcher_matches_sv
+syn keyword xsPrivate S_find_default_stash S_find_hash_subscript
+syn keyword xsPrivate S_find_in_my_stash S_find_uninit_var S_first_symbol
+syn keyword xsPrivate S_fixup_errno_string S_fold_constants S_forbid_setid
+syn keyword xsPrivate S_force_ident S_force_ident_maybe_lex S_force_list
+syn keyword xsPrivate S_force_next S_force_strict_version S_force_version
+syn keyword xsPrivate S_force_word S_forget_pmop S_form_short_octal_warning
+syn keyword xsPrivate S_gen_constant_list S_get_ANYOF_cp_list_for_ssc
+syn keyword xsPrivate S_get_aux_mg S_get_num S_glob_2number
+syn keyword xsPrivate S_glob_assign_glob S_grok_bslash_N S_grok_bslash_c
+syn keyword xsPrivate S_grok_bslash_o S_group_end S_gv_init_svtype
+syn keyword xsPrivate S_gv_is_in_main S_gv_magicalize S_gv_magicalize_isa
+syn keyword xsPrivate S_handle_regex_sets S_hfreeentries S_hsplit
+syn keyword xsPrivate S_hv_auxinit S_hv_auxinit_internal S_hv_delete_common
+syn keyword xsPrivate S_hv_free_ent_ret S_hv_magic_check S_hv_notallowed
+syn keyword xsPrivate S_incline S_incpush S_incpush_if_exists
+syn keyword xsPrivate S_incpush_use_sep S_ingroup S_init_ids S_init_interp
+syn keyword xsPrivate S_init_main_stash S_init_perllib
+syn keyword xsPrivate S_init_postdump_symbols S_init_predump_symbols
+syn keyword xsPrivate S_inplace_aassign S_intuit_method S_intuit_more
+syn keyword xsPrivate S_invlist_extend S_invlist_iternext
+syn keyword xsPrivate S_invoke_exception_hook S_isFOO_lc S_isFOO_utf8_lc
+syn keyword xsPrivate S_isGCB S_isSB S_isWB S_is_an_int
+syn keyword xsPrivate S_is_handle_constructor S_is_ssc_worth_it S_isa_lookup
+syn keyword xsPrivate S_join_exact S_leave_common S_listkids
+syn keyword xsPrivate S_looks_like_bool S_magic_methcall1 S_make_matcher
+syn keyword xsPrivate S_make_trie S_matcher_matches_sv S_maybe_multimagic_gv
syn keyword xsPrivate S_mayberelocate S_measure_struct S_mem_log_common
-syn keyword xsPrivate S_mess_alloc S_method_common S_minus_v S_missingterm
-syn keyword xsPrivate S_modkids S_more_sv S_mro_clean_isarev
+syn keyword xsPrivate S_mess_alloc S_minus_v S_missingterm S_modkids
+syn keyword xsPrivate S_more_sv S_move_proto_attr S_mro_clean_isarev
syn keyword xsPrivate S_mro_gather_and_rename S_mro_get_linear_isa_dfs
-syn keyword xsPrivate S_mul128 S_mulexp10 S_my_exit_jump S_my_kid S_need_utf8
-syn keyword xsPrivate S_newDEFSVOP S_newGIVWHENOP S_new_constant S_new_he
-syn keyword xsPrivate S_new_logop S_next_symbol S_nextchar
+syn keyword xsPrivate S_mul128 S_mulexp10 S_my_bytes_to_utf8 S_my_exit_jump
+syn keyword xsPrivate S_my_kid S_need_utf8 S_newGIVWHENOP S_new_constant
+syn keyword xsPrivate S_new_he S_new_logop S_next_symbol S_nextchar
syn keyword xsPrivate S_no_bareword_allowed S_no_fh_allowed S_no_op
-syn keyword xsPrivate S_not_a_number S_nuke_stacks S_num_overflow
-syn keyword xsPrivate S_open_script S_opt_scalarhv S_pack_rec
-syn keyword xsPrivate S_pad_alloc_name S_pad_check_dup S_pad_findlex
-syn keyword xsPrivate S_pad_reset S_parse_body S_path_is_absolute S_pidgone
-syn keyword xsPrivate S_pm_description S_pmtrans S_printbuf
-syn keyword xsPrivate S_process_special_blocks S_ptr_table_find S_put_byte
-syn keyword xsPrivate S_qsortsvu S_re_croak2 S_readpipe_override
-syn keyword xsPrivate S_ref_array_or_hash S_refcounted_he_value S_refkids
-syn keyword xsPrivate S_refto S_reg S_reg_check_named_buff_matched
-syn keyword xsPrivate S_reg_namedseq S_reg_node S_reg_recode S_reg_scan_name
-syn keyword xsPrivate S_reg_skipcomment S_reganode S_regatom S_regbranch
-syn keyword xsPrivate S_regclass S_regcppop S_regcppush S_regdump_extflags
-syn keyword xsPrivate S_reghop3 S_reghop4 S_reghopmaybe3 S_reginclass
-syn keyword xsPrivate S_reginsert S_regmatch S_regpiece S_regpposixcc
-syn keyword xsPrivate S_regrepeat S_regtail S_regtail_study S_regtry S_reguni
-syn keyword xsPrivate S_regwhite S_require_tie_mod S_restore_magic S_run_body
-syn keyword xsPrivate S_run_user_filter S_rxres_free S_rxres_restore
-syn keyword xsPrivate S_save_hek_flags S_save_lines S_save_magic
-syn keyword xsPrivate S_save_pushptri32ptr S_save_scalar_at S_scalar_mod_type
-syn keyword xsPrivate S_scalarboolean S_scalarkids S_scalarseq S_scan_commit
-syn keyword xsPrivate S_scan_const S_scan_formline S_scan_heredoc
-syn keyword xsPrivate S_scan_ident S_scan_inputsymbol S_scan_pat S_scan_str
-syn keyword xsPrivate S_scan_subst S_scan_trans S_scan_word S_search_const
-syn keyword xsPrivate S_sequence_num S_set_regclass_bit_fold
-syn keyword xsPrivate S_share_hek_flags S_simplify_sort S_skipspace
-syn keyword xsPrivate S_skipspace0 S_skipspace1 S_skipspace2 S_sortcv
-syn keyword xsPrivate S_sortcv_stacked S_sortcv_xsub
-syn keyword xsPrivate S_space_join_names_mortal S_start_force S_stdize_locale
-syn keyword xsPrivate S_strip_return S_study_chunk S_sublex_done
-syn keyword xsPrivate S_sublex_push S_sublex_start S_sv_2iuv_common
-syn keyword xsPrivate S_sv_2iuv_non_preserve S_sv_add_arena S_sv_dup_common
+syn keyword xsPrivate S_not_a_number S_not_incrementable S_nuke_stacks
+syn keyword xsPrivate S_num_overflow S_open_script S_openn_cleanup
+syn keyword xsPrivate S_openn_setup S_pack_rec S_pad_alloc_name
+syn keyword xsPrivate S_pad_check_dup S_pad_findlex S_pad_reset S_parse_body
+syn keyword xsPrivate S_parse_gv_stash_name S_parse_ident
+syn keyword xsPrivate S_parse_lparen_question_flags S_pending_ident S_pidgone
+syn keyword xsPrivate S_pm_description S_pmtrans
+syn keyword xsPrivate S_populate_ANYOF_from_invlist S_printbuf
+syn keyword xsPrivate S_process_special_blocks S_ptr_table_find
+syn keyword xsPrivate S_put_charclass_bitmap_innards S_put_code_point
+syn keyword xsPrivate S_put_range S_qsortsvu S_re_croak2 S_ref_array_or_hash
+syn keyword xsPrivate S_refcounted_he_value S_refkids S_refto S_reg
+syn keyword xsPrivate S_reg2Lanode S_reg_check_named_buff_matched S_reg_node
+syn keyword xsPrivate S_reg_recode S_reg_scan_name S_reganode S_regatom
+syn keyword xsPrivate S_regbranch S_regclass S_regcppop S_regcppush
+syn keyword xsPrivate S_regdump_extflags S_regdump_intflags
+syn keyword xsPrivate S_regex_set_precedence S_reghop3 S_reghop4
+syn keyword xsPrivate S_reghopmaybe3 S_reginclass S_reginsert S_regmatch
+syn keyword xsPrivate S_regnode_guts S_regpatws S_regpiece S_regrepeat
+syn keyword xsPrivate S_regtail S_regtail_study S_regtry S_require_tie_mod
+syn keyword xsPrivate S_restore_magic S_run_body S_run_user_filter
+syn keyword xsPrivate S_rxres_free S_rxres_restore S_save_hek_flags
+syn keyword xsPrivate S_save_lines S_save_magic_flags S_save_pushptri32ptr
+syn keyword xsPrivate S_save_scalar_at S_scalar_mod_type S_scalarboolean
+syn keyword xsPrivate S_scalarkids S_scalarseq S_scan_commit S_scan_const
+syn keyword xsPrivate S_scan_formline S_scan_heredoc S_scan_ident
+syn keyword xsPrivate S_scan_inputsymbol S_scan_pat S_scan_str S_scan_subst
+syn keyword xsPrivate S_scan_trans S_scan_word S_search_const S_sequence_num
+syn keyword xsPrivate S_set_ANYOF_arg S_share_hek_flags S_simplify_sort
+syn keyword xsPrivate S_skipspace_flags S_sortcv S_sortcv_stacked
+syn keyword xsPrivate S_sortcv_xsub S_space_join_names_mortal S_ssc_and
+syn keyword xsPrivate S_ssc_anything S_ssc_finalize S_ssc_init
+syn keyword xsPrivate S_ssc_is_anything S_ssc_is_cp_posixl_init S_ssc_or
+syn keyword xsPrivate S_stdize_locale S_strip_return S_study_chunk
+syn keyword xsPrivate S_sublex_done S_sublex_push S_sublex_start
+syn keyword xsPrivate S_sv_2iuv_common S_sv_2iuv_non_preserve S_sv_add_arena
+syn keyword xsPrivate S_sv_buf_to_rw S_sv_display S_sv_dup_common
syn keyword xsPrivate S_sv_dup_inc_multiple S_sv_exp_grow S_sv_i_ncmp
syn keyword xsPrivate S_sv_ncmp S_sv_pos_b2u_midway S_sv_pos_u2b_cached
syn keyword xsPrivate S_sv_pos_u2b_forwards S_sv_pos_u2b_midway
-syn keyword xsPrivate S_sv_release_COW S_swallow_bom S_swatch_get
-syn keyword xsPrivate S_to_byte_substr S_to_lower_latin1 S_to_utf8_substr
-syn keyword xsPrivate S_tokenize_use S_tokeq S_tokereport
-syn keyword xsPrivate S_too_few_arguments_pv S_too_few_arguments_sv
-syn keyword xsPrivate S_too_many_arguments_pv S_too_many_arguments_sv
+syn keyword xsPrivate S_sv_release_COW S_swallow_bom S_swash_scan_list_line
+syn keyword xsPrivate S_swatch_get S_to_byte_substr S_to_lower_latin1
+syn keyword xsPrivate S_to_utf8_substr S_tokenize_use S_tokeq S_tokereport
+syn keyword xsPrivate S_too_few_arguments_pv S_too_many_arguments_pv
syn keyword xsPrivate S_uiv_2buf S_unpack_rec S_unreferenced_to_tmp_stack
syn keyword xsPrivate S_unshare_hek_or_pvn S_unwind_handler_stack
syn keyword xsPrivate S_update_debugger_info S_usage S_utf16_textfilter
syn keyword xsPrivate S_utf8_mg_len_cache_update S_utf8_mg_pos_cache_update
syn keyword xsPrivate S_validate_suid S_visit S_with_queued_errors
-syn keyword xsPrivate S_write_no_mem S_xmldump_attr S_yywarn Slab_to_rw
-syn keyword xsPrivate _add_range_to_invlist _append_range_to_invlist
-syn keyword xsPrivate _core_swash_init _invlist_array_init _invlist_contents
+syn keyword xsPrivate S_xs_version_bootcheck S_yywarn _add_range_to_invlist
+syn keyword xsPrivate _append_range_to_invlist _core_swash_init _get_encoding
+syn keyword xsPrivate _get_swash_invlist _invlist_array_init
+syn keyword xsPrivate _invlist_contains_cp _invlist_contents _invlist_dump
syn keyword xsPrivate _invlist_intersection
syn keyword xsPrivate _invlist_intersection_maybe_complement_2nd
-syn keyword xsPrivate _invlist_invert _invlist_invert_prop
-syn keyword xsPrivate _invlist_populate_swatch _invlist_subtract
-syn keyword xsPrivate _invlist_union _invlist_union_maybe_complement_2nd
-syn keyword xsPrivate _is_utf8__perl_idstart _new_invlist
-syn keyword xsPrivate _new_invlist_C_array _swash_inversion_hash
-syn keyword xsPrivate _swash_to_invlist _to_fold_latin1 add_alternate
-syn keyword xsPrivate add_cp_to_invlist add_data add_utf16_textfilter
-syn keyword xsPrivate adjust_stack_on_leave amagic_cmp amagic_cmp_locale
+syn keyword xsPrivate _invlist_invert _invlist_len _invlist_populate_swatch
+syn keyword xsPrivate _invlist_search _invlist_subtract _invlist_union
+syn keyword xsPrivate _invlist_union_maybe_complement_2nd
+syn keyword xsPrivate _load_PL_utf8_foldclosures _make_exactf_invlist
+syn keyword xsPrivate _new_invlist _setup_canned_invlist
+syn keyword xsPrivate _swash_inversion_hash _swash_to_invlist _to_fold_latin1
+syn keyword xsPrivate _warn_problematic_locale add_above_Latin1_folds
+syn keyword xsPrivate add_cp_to_invlist add_data add_multi_match
+syn keyword xsPrivate add_utf16_textfilter adjust_size_and_find_bucket
+syn keyword xsPrivate advance_one_SB advance_one_WB
+syn keyword xsPrivate alloc_maybe_populate_EXACT amagic_cmp amagic_cmp_locale
syn keyword xsPrivate amagic_i_ncmp amagic_ncmp anonymise_cv_maybe ao
syn keyword xsPrivate apply_attrs apply_attrs_my assert_uft8_cache_coherent
-syn keyword xsPrivate av_reify bad_type_pv bad_type_sv bytes_to_uni
-syn keyword xsPrivate check_locale_boundary_crossing check_type_and_open
-syn keyword xsPrivate check_uni checkcomma checkposixcc ckwarn_common cl_and
-syn keyword xsPrivate cl_anything cl_init cl_is_anything cl_or
-syn keyword xsPrivate clear_placeholders closest_cop cop_free
-syn keyword xsPrivate core_regclass_swash cr_textfilter curmad curse cv_dump
+syn keyword xsPrivate assignment_type av_reify backup_one_SB backup_one_WB
+syn keyword xsPrivate bad_type_gv bad_type_pv check_locale_boundary_crossing
+syn keyword xsPrivate check_type_and_open check_uni checkcomma ckwarn_common
+syn keyword xsPrivate clear_placeholders clear_special_blocks
+syn keyword xsPrivate cntrl_to_mnemonic compute_EXACTish
+syn keyword xsPrivate construct_ahocorasick_from_trie cop_free
+syn keyword xsPrivate could_it_be_a_POSIX_class cr_textfilter
+syn keyword xsPrivate current_re_engine curse cv_ckproto_len_flags cv_dump
syn keyword xsPrivate deb_curcv deb_stack_n debprof debug_start_match del_sv
syn keyword xsPrivate deprecate_commaless_var_list destroy_matcher div128
syn keyword xsPrivate do_aexec do_chomp do_delete_local do_exec do_oddball
@@ -199,274 +237,342 @@ syn keyword xsPrivate dump_trie_interim_list dump_trie_interim_table
syn keyword xsPrivate dumpuntil dup_attrlist exec_failed expect_number
syn keyword xsPrivate filter_gets finalize_op find_and_forget_pmops
syn keyword xsPrivate find_array_subscript find_beginning find_byclass
-syn keyword xsPrivate find_hash_subscript find_in_my_stash
+syn keyword xsPrivate find_default_stash find_hash_subscript find_in_my_stash
syn keyword xsPrivate find_rundefsvoffset find_uninit_var first_symbol
-syn keyword xsPrivate fold_constants forbid_setid force_ident force_list
-syn keyword xsPrivate force_next force_strict_version force_version
-syn keyword xsPrivate force_word gen_constant_list get_aux_mg
-syn keyword xsPrivate get_invlist_iter_addr get_invlist_len_addr
-syn keyword xsPrivate get_invlist_version_id_addr get_invlist_zero_addr
-syn keyword xsPrivate get_num glob_2number glob_assign_glob glob_assign_ref
-syn keyword xsPrivate grok_bslash_c grok_bslash_o group_end gv_ename
-syn keyword xsPrivate gv_get_super_pkg gv_init_svtype gv_magicalize_isa
-syn keyword xsPrivate gv_magicalize_overload hfreeentries hsplit hv_auxinit
-syn keyword xsPrivate hv_delete_common hv_free_ent_ret hv_magic_check
-syn keyword xsPrivate hv_notallowed incline incpush incpush_if_exists
-syn keyword xsPrivate incpush_use_sep ingroup init_ids init_interp
-syn keyword xsPrivate init_main_stash init_perllib init_postdump_symbols
-syn keyword xsPrivate init_predump_symbols inplace_aassign intuit_method
-syn keyword xsPrivate intuit_more invlist_array invlist_clone invlist_extend
-syn keyword xsPrivate invlist_iterinit invlist_iternext invlist_len
-syn keyword xsPrivate invlist_max invlist_search invlist_set_len invlist_trim
-syn keyword xsPrivate invoke_exception_hook is_an_int is_handle_constructor
-syn keyword xsPrivate is_list_assignment is_utf8_X_L is_utf8_X_LV
-syn keyword xsPrivate is_utf8_X_LVT is_utf8_X_LV_LVT_V is_utf8_X_T
-syn keyword xsPrivate is_utf8_X_V is_utf8_X_begin is_utf8_X_extend
-syn keyword xsPrivate is_utf8_X_non_hangul is_utf8_X_prepend is_utf8_char
-syn keyword xsPrivate is_utf8_char_slow is_utf8_common isa_lookup join_exact
-syn keyword xsPrivate listkids looks_like_bool magic_methcall1 make_matcher
-syn keyword xsPrivate make_trie make_trie_failtable matcher_matches_sv
-syn keyword xsPrivate mayberelocate measure_struct mem_log_common mess_alloc
-syn keyword xsPrivate method_common minus_v missingterm modkids more_sv
-syn keyword xsPrivate mro_clean_isarev mro_gather_and_rename
-syn keyword xsPrivate mro_get_linear_isa_dfs mul128 mulexp10 my_exit_jump
-syn keyword xsPrivate my_kid need_utf8 newDEFSVOP newGIVWHENOP new_he
-syn keyword xsPrivate new_logop next_symbol nextchar no_bareword_allowed
-syn keyword xsPrivate no_fh_allowed no_op not_a_number nuke_stacks
-syn keyword xsPrivate num_overflow op_clear open_script opt_scalarhv pack_rec
-syn keyword xsPrivate pad_alloc_name pad_check_dup pad_findlex pad_reset
-syn keyword xsPrivate parse_body path_is_absolute pidgone pm_description
-syn keyword xsPrivate pmtrans printbuf process_special_blocks ptr_table_clear
-syn keyword xsPrivate ptr_table_find put_byte qerror qsortsvu re_croak2
-syn keyword xsPrivate readpipe_override ref_array_or_hash refcounted_he_value
-syn keyword xsPrivate refkids refto reg reg_check_named_buff_matched
-syn keyword xsPrivate reg_named_buff reg_named_buff_iter reg_namedseq
-syn keyword xsPrivate reg_node reg_numbered_buff_fetch
+syn keyword xsPrivate fixup_errno_string fold_constants forbid_setid
+syn keyword xsPrivate force_ident force_ident_maybe_lex force_list force_next
+syn keyword xsPrivate force_strict_version force_version force_word
+syn keyword xsPrivate forget_pmop form_short_octal_warning free_c_backtrace
+syn keyword xsPrivate gen_constant_list get_ANYOF_cp_list_for_ssc get_aux_mg
+syn keyword xsPrivate get_invlist_iter_addr get_invlist_offset_addr
+syn keyword xsPrivate get_invlist_previous_index_addr get_num glob_2number
+syn keyword xsPrivate glob_assign_glob grok_atoUV grok_bslash_N grok_bslash_c
+syn keyword xsPrivate grok_bslash_o grok_bslash_x group_end gv_init_svtype
+syn keyword xsPrivate gv_is_in_main gv_magicalize gv_magicalize_isa
+syn keyword xsPrivate handle_regex_sets hfreeentries hsplit hv_auxinit
+syn keyword xsPrivate hv_auxinit_internal hv_delete_common hv_free_ent_ret
+syn keyword xsPrivate hv_magic_check hv_notallowed incline incpush
+syn keyword xsPrivate incpush_if_exists incpush_use_sep ingroup init_ids
+syn keyword xsPrivate init_interp init_main_stash init_perllib
+syn keyword xsPrivate init_postdump_symbols init_predump_symbols
+syn keyword xsPrivate inplace_aassign intuit_method intuit_more invlist_array
+syn keyword xsPrivate invlist_clone invlist_extend invlist_highest
+syn keyword xsPrivate invlist_is_iterating invlist_iterfinish
+syn keyword xsPrivate invlist_iterinit invlist_iternext invlist_max
+syn keyword xsPrivate invlist_previous_index invlist_set_len
+syn keyword xsPrivate invlist_set_previous_index invlist_trim
+syn keyword xsPrivate invoke_exception_hook isALNUM_lazy isFOO_lc
+syn keyword xsPrivate isFOO_utf8_lc isGCB isIDFIRST_lazy isSB isWB is_an_int
+syn keyword xsPrivate is_handle_constructor is_ssc_worth_it is_uni_alnum
+syn keyword xsPrivate is_uni_alnum_lc is_uni_alnumc is_uni_alnumc_lc
+syn keyword xsPrivate is_uni_alpha is_uni_alpha_lc is_uni_ascii
+syn keyword xsPrivate is_uni_ascii_lc is_uni_blank is_uni_blank_lc
+syn keyword xsPrivate is_uni_cntrl is_uni_cntrl_lc is_uni_digit
+syn keyword xsPrivate is_uni_digit_lc is_uni_graph is_uni_graph_lc
+syn keyword xsPrivate is_uni_idfirst is_uni_idfirst_lc is_uni_lower
+syn keyword xsPrivate is_uni_lower_lc is_uni_print is_uni_print_lc
+syn keyword xsPrivate is_uni_punct is_uni_punct_lc is_uni_space
+syn keyword xsPrivate is_uni_space_lc is_uni_upper is_uni_upper_lc
+syn keyword xsPrivate is_uni_xdigit is_uni_xdigit_lc is_utf8_alnum
+syn keyword xsPrivate is_utf8_alnumc is_utf8_alpha is_utf8_ascii
+syn keyword xsPrivate is_utf8_blank is_utf8_char is_utf8_cntrl is_utf8_digit
+syn keyword xsPrivate is_utf8_graph is_utf8_idcont is_utf8_idfirst
+syn keyword xsPrivate is_utf8_lower is_utf8_mark is_utf8_perl_space
+syn keyword xsPrivate is_utf8_perl_word is_utf8_posix_digit is_utf8_print
+syn keyword xsPrivate is_utf8_punct is_utf8_space is_utf8_upper
+syn keyword xsPrivate is_utf8_xdigit is_utf8_xidcont is_utf8_xidfirst
+syn keyword xsPrivate isa_lookup join_exact leave_common listkids
+syn keyword xsPrivate looks_like_bool magic_methcall1 make_matcher make_trie
+syn keyword xsPrivate matcher_matches_sv maybe_multimagic_gv mayberelocate
+syn keyword xsPrivate measure_struct mem_log_common mess_alloc mg_find_mglob
+syn keyword xsPrivate mg_length minus_v missingterm modkids more_sv
+syn keyword xsPrivate move_proto_attr mro_clean_isarev mro_gather_and_rename
+syn keyword xsPrivate mro_get_linear_isa_dfs mul128 mulexp10
+syn keyword xsPrivate multideref_stringify my_bytes_to_utf8 my_exit_jump
+syn keyword xsPrivate my_kid need_utf8 newGIVWHENOP new_he new_logop
+syn keyword xsPrivate next_symbol nextchar no_bareword_allowed no_fh_allowed
+syn keyword xsPrivate no_op not_a_number not_incrementable nuke_stacks
+syn keyword xsPrivate num_overflow op_clear open_script openn_cleanup
+syn keyword xsPrivate openn_setup pack_rec pad_alloc_name pad_check_dup
+syn keyword xsPrivate pad_findlex pad_reset parse_body parse_gv_stash_name
+syn keyword xsPrivate parse_ident parse_lparen_question_flags pending_ident
+syn keyword xsPrivate pidgone pm_description pmtrans
+syn keyword xsPrivate populate_ANYOF_from_invlist printbuf
+syn keyword xsPrivate process_special_blocks ptr_table_clear ptr_table_find
+syn keyword xsPrivate put_charclass_bitmap_innards put_code_point put_range
+syn keyword xsPrivate qerror qsortsvu re_croak2 ref_array_or_hash
+syn keyword xsPrivate refcounted_he_value refkids refto reg reg2Lanode
+syn keyword xsPrivate reg_check_named_buff_matched reg_named_buff
+syn keyword xsPrivate reg_named_buff_iter reg_node reg_numbered_buff_fetch
syn keyword xsPrivate reg_numbered_buff_length reg_numbered_buff_store
syn keyword xsPrivate reg_qr_package reg_recode reg_scan_name reg_skipcomment
syn keyword xsPrivate reg_temp_copy reganode regatom regbranch regclass
-syn keyword xsPrivate regcppop regcppush regcurly regdump_extflags reghop3
-syn keyword xsPrivate reghop4 reghopmaybe3 reginclass reginsert regmatch
-syn keyword xsPrivate regpiece regpposixcc regprop regrepeat regtail
-syn keyword xsPrivate regtail_study regtry reguni regwhite report_uninit
-syn keyword xsPrivate require_tie_mod restore_magic run_body run_user_filter
-syn keyword xsPrivate rxres_free rxres_restore save_hek_flags save_lines
-syn keyword xsPrivate save_magic save_pushptri32ptr save_scalar_at
+syn keyword xsPrivate regcppop regcppush regcurly regdump_extflags
+syn keyword xsPrivate regdump_intflags regex_set_precedence reghop3 reghop4
+syn keyword xsPrivate reghopmaybe3 reginclass reginsert regmatch regnode_guts
+syn keyword xsPrivate regpatws regpiece regpposixcc regprop regrepeat regtail
+syn keyword xsPrivate regtail_study regtry report_uninit require_tie_mod
+syn keyword xsPrivate restore_magic run_body run_user_filter rxres_free
+syn keyword xsPrivate rxres_restore save_hek_flags save_lines
+syn keyword xsPrivate save_magic_flags save_pushptri32ptr save_scalar_at
syn keyword xsPrivate scalar_mod_type scalarboolean scalarkids scalarseq
syn keyword xsPrivate scan_commit scan_const scan_formline scan_heredoc
syn keyword xsPrivate scan_ident scan_inputsymbol scan_pat scan_str
syn keyword xsPrivate scan_subst scan_trans scan_word search_const
-syn keyword xsPrivate sequence_num set_regclass_bit set_regclass_bit_fold
-syn keyword xsPrivate share_hek_flags simplify_sort skipspace skipspace0
-syn keyword xsPrivate skipspace1 skipspace2 sortcv sortcv_stacked sortcv_xsub
-syn keyword xsPrivate space_join_names_mortal start_force stdize_locale
+syn keyword xsPrivate sequence_num set_ANYOF_arg share_hek_flags
+syn keyword xsPrivate simplify_sort skipspace_flags sortcv sortcv_stacked
+syn keyword xsPrivate sortcv_xsub space_join_names_mortal ssc_add_range
+syn keyword xsPrivate ssc_and ssc_anything ssc_clear_locale ssc_cp_and
+syn keyword xsPrivate ssc_finalize ssc_init ssc_intersection ssc_is_anything
+syn keyword xsPrivate ssc_is_cp_posixl_init ssc_or ssc_union stdize_locale
syn keyword xsPrivate strip_return study_chunk sublex_done sublex_push
syn keyword xsPrivate sublex_start sv_2iuv_common sv_2iuv_non_preserve
-syn keyword xsPrivate sv_add_arena sv_compile_2op sv_dup_common
-syn keyword xsPrivate sv_dup_inc_multiple sv_exp_grow sv_i_ncmp sv_ncmp
-syn keyword xsPrivate sv_pos_b2u_midway sv_pos_u2b_cached sv_pos_u2b_forwards
-syn keyword xsPrivate sv_pos_u2b_midway sv_release_COW sv_setsv_cow
-syn keyword xsPrivate swallow_bom swatch_get to_byte_substr to_lower_latin1
+syn keyword xsPrivate sv_add_arena sv_buf_to_rw sv_copypv sv_display
+syn keyword xsPrivate sv_dup_common sv_dup_inc_multiple sv_exp_grow sv_i_ncmp
+syn keyword xsPrivate sv_magicext_mglob sv_ncmp sv_only_taint_gmagic
+syn keyword xsPrivate sv_or_pv_pos_u2b sv_pos_b2u_midway sv_pos_u2b_cached
+syn keyword xsPrivate sv_pos_u2b_forwards sv_pos_u2b_midway sv_release_COW
+syn keyword xsPrivate sv_setsv_cow swallow_bom swash_scan_list_line
+syn keyword xsPrivate swatch_get to_byte_substr to_lower_latin1
+syn keyword xsPrivate to_uni_lower_lc to_uni_title_lc to_uni_upper_lc
syn keyword xsPrivate to_utf8_substr tokenize_use tokeq tokereport
-syn keyword xsPrivate too_few_arguments_pv too_few_arguments_sv
-syn keyword xsPrivate too_many_arguments_pv too_many_arguments_sv uiv_2buf
+syn keyword xsPrivate too_few_arguments_pv too_many_arguments_pv uiv_2buf
syn keyword xsPrivate unpack_rec unreferenced_to_tmp_stack unshare_hek_or_pvn
syn keyword xsPrivate unwind_handler_stack update_debugger_info usage
syn keyword xsPrivate utf16_textfilter utf8_mg_len_cache_update
syn keyword xsPrivate utf8_mg_pos_cache_update utf8_to_uvchr utf8_to_uvuni
-syn keyword xsPrivate visit vivify_defelem with_queued_errors write_no_mem
-syn keyword xsPrivate xmldump_attr yylex yywarn
+syn keyword xsPrivate utf8_to_uvuni_buf valid_utf8_to_uvuni validate_proto
+syn keyword xsPrivate visit vivify_defelem with_queued_errors yylex yywarn
endif
syn keyword xsType AMT AMTS ANY AV BHK BINOP BLOCK CHECKPOINT CLONE_PARAMS
syn keyword xsType COP COPHH CV DB_Hash_t DB_Prefix_t DEBUG_t Direntry_t
-syn keyword xsType Fpos_t Free_t GP GV Gid_t Groups_t HE HEK HV I16 I32 I64
-syn keyword xsType I8 IO IV Int64 JMPENV LISTOP LOGOP LOOP MADPROP MAGIC MGS
-syn keyword xsType MGVTBL Malloc_t Mmap_t Mode_t NEXTTOKE NV Netdb_hlen_t
-syn keyword xsType Netdb_host_t Netdb_name_t Netdb_net_t OP OPCODE OP_4tree
-syn keyword xsType Off_t Optype PAD PADLIST PADOFFSET PADOP PERL_CONTEXT
-syn keyword xsType PERL_SI PMOP PTR_TBL_ENT_t PTR_TBL_t PVOP PerlIO
-syn keyword xsType PerlIO_funcs PerlIO_list_s PerlIO_list_t PerlIOl
-syn keyword xsType PerlInterpreter Pid_t Quad_t REGEXP Rand_seed_t SSize_t
-syn keyword xsType STRLEN STRUCT_SV SUBLEXINFO SV SVOP Select_fd_set_t
-syn keyword xsType Shmat_t Signal_t Sigsave_t Size_t Sock_size_t Stat_t TM64
-syn keyword xsType TOKEN Time64_T Time_t U16 U32 U64 U8 UNOP UV Uid_t Uquad_t
-syn keyword xsType XOP XPV XPVAV XPVBM XPVCV XPVFM XPVGV XPVHV XPVIO XPVIV
-syn keyword xsType XPVLV XPVMG XPVNV XPVUV Year _PerlIO _PerlIO_funcs
-syn keyword xsType _pMY_CXT _pTHX _reg_ac_data _reg_trie_data _reg_trie_state
-syn keyword xsType _reg_trie_trans _reg_trie_trans_list_elem _sublex_info
-syn keyword xsType _xhvnameu _xivu _xmgu _xnvu am_table am_table_short
-syn keyword xsType block_eval block_format block_givwhen block_hooks
-syn keyword xsType block_loop block_sub bool clone_params custom_op
-syn keyword xsType cv_flags_t expectation gccbug_semun line_t madprop magic
-syn keyword xsType mem_log_type mgvtbl mro_alg mro_meta my_cxt_t opcode p5rx
-syn keyword xsType pMY_CXT pMY_CXT_ pTHX pTHX_ padtidy_type perl_cond
-syn keyword xsType perl_debug_pad perl_key perl_memory_debug_header
-syn keyword xsType perl_mstats perl_mstats_t perl_mutex perl_os_thread
-syn keyword xsType perl_phase perl_vars perl_wait_queue pthread_addr_t
-syn keyword xsType ptr_tbl ptr_tbl_ent re_save_state refcounted_he
-syn keyword xsType reg_ac_data reg_data reg_substr_data reg_substr_datum
-syn keyword xsType reg_trie_data reg_trie_state reg_trie_trans
-syn keyword xsType reg_trie_trans_le regex_charset regnode regnode_1
-syn keyword xsType regnode_2 regnode_2L regnode_charclass
-syn keyword xsType regnode_charclass_class regnode_string semun shared_he
-syn keyword xsType svtype thread_intern ufuncs xpv xpvav xpvcv xpvfm xpvgv
-syn keyword xsType xpvhv xpvhv_aux xpvio xpviv xpvlv xpvmg xpvnv xpvuv
+syn keyword xsType Fpos_t Free_t GCB_enum GP GV Gid_t Groups_t HE HEK HV I16
+syn keyword xsType I32 I64 I8 IO IV Int64 JMPENV LISTOP LOGOP LOOP MAGIC
+syn keyword xsType METHOP MGS MGVTBL Malloc_t Mmap_t Mode_t NV Netdb_hlen_t
+syn keyword xsType Netdb_host_t Netdb_name_t Netdb_net_t OP OPCODE OPSLAB
+syn keyword xsType OPSLOT Off_t Optype PAD PADLIST PADNAME PADNAMELIST
+syn keyword xsType PADOFFSET PADOP PERL_CONTEXT PERL_DRAND48_T PERL_SI PMOP
+syn keyword xsType PTR_TBL_ENT_t PTR_TBL_t PVOP PerlHandShakeInterpreter
+syn keyword xsType PerlIO PerlIO_funcs PerlIO_list_s PerlIO_list_t PerlIOl
+syn keyword xsType PerlInterpreter Pid_t Quad_t REGEXP RExC_state_t
+syn keyword xsType Rand_seed_t SB_enum SSize_t STRLEN STRUCT_SV SUBLEXINFO SV
+syn keyword xsType SVOP Select_fd_set_t Shmat_t Signal_t Sigsave_t Size_t
+syn keyword xsType Sock_size_t Stat_t TM64 Time64_T Time_t U16 U32 U64 U8
+syn keyword xsType UNOP UNOP_AUX UV Uid_t Uquad_t WB_enum XINVLIST XOP XPV
+syn keyword xsType XPVAV XPVBM XPVCV XPVFM XPVGV XPVHV XPVIO XPVIV XPVLV
+syn keyword xsType XPVMG XPVNV XPVUV Year _PerlIO _PerlIO_funcs
+syn keyword xsType _char_class_number _pMY_CXT _pTHX _reg_ac_data
+syn keyword xsType _reg_trie_data _reg_trie_state _reg_trie_trans
+syn keyword xsType _reg_trie_trans_list_elem _sublex_info _xhvnameu _xivu
+syn keyword xsType _xmgu _xnvu am_table am_table_short block_eval
+syn keyword xsType block_format block_givwhen block_hooks block_loop
+syn keyword xsType block_sub bound_type clone_params custom_op cv_flags_t
+syn keyword xsType expectation gccbug_semun line_t magic mem_log_type methop
+syn keyword xsType mgvtbl mro_alg mro_meta my_cxt_t opcode opslab opslot p5rx
+syn keyword xsType pMY_CXT pMY_CXT_ pTHX pTHX_ padlist padname
+syn keyword xsType padname_with_str padnamelist padtidy_type perl_cond
+syn keyword xsType perl_debug_pad perl_drand48_t perl_key
+syn keyword xsType perl_memory_debug_header perl_mstats perl_mstats_t
+syn keyword xsType perl_mutex perl_os_thread perl_phase perl_vars
+syn keyword xsType pthread_addr_t ptr_tbl ptr_tbl_ent refcounted_he
+syn keyword xsType reg_ac_data reg_code_block reg_data reg_substr_data
+syn keyword xsType reg_substr_datum reg_trie_data reg_trie_state
+syn keyword xsType reg_trie_trans reg_trie_trans_le regex_charset regnode
+syn keyword xsType regnode_1 regnode_2 regnode_2L regnode_charclass
+syn keyword xsType regnode_charclass_class regnode_charclass_posixl
+syn keyword xsType regnode_ssc regnode_string semun shared_he svtype ufuncs
+syn keyword xsType unop_aux xop_flags_enum xpv xpvav xpvcv xpvfm xpvgv xpvhv
+syn keyword xsType xpvhv_aux xpvinvlist xpvio xpviv xpvlv xpvmg xpvnv xpvuv
syn keyword xsType yytokentype
syn keyword xsString IVdf NVef NVff NVgf SVf SVf256 SVf32 SVf_ UVof UVuf UVxf
syn keyword xsConstant CXt_BLOCK CXt_EVAL CXt_FORMAT CXt_GIVEN CXt_LOOP_FOR
syn keyword xsConstant CXt_LOOP_LAZYIV CXt_LOOP_LAZYSV CXt_LOOP_PLAIN
-syn keyword xsConstant CXt_NULL CXt_SUB CXt_SUBST CXt_WHEN FALSE G_ARRAY
-syn keyword xsConstant G_DISCARD G_EVAL G_FAKINGEVAL G_KEEPERR G_METHOD
-syn keyword xsConstant G_NOARGS G_NODEBUG G_SCALAR G_UNDEF_FILL G_VOID G_WANT
-syn keyword xsConstant G_WARN_ALL_MASK G_WARN_ALL_OFF G_WARN_ALL_ON
-syn keyword xsConstant G_WARN_OFF G_WARN_ON G_WARN_ONCE G_WRITING_TO_STDERR
-syn keyword xsConstant OA_AVREF OA_BASEOP OA_BASEOP_OR_UNOP OA_BINOP
-syn keyword xsConstant OA_CLASS_MASK OA_COP OA_CVREF OA_DANGEROUS OA_DEFGV
-syn keyword xsConstant OA_FILEREF OA_FILESTATOP OA_FOLDCONST OA_HVREF OA_LIST
-syn keyword xsConstant OA_LISTOP OA_LOGOP OA_LOOP OA_LOOPEXOP OA_MARK
+syn keyword xsConstant CXt_NULL CXt_SUB CXt_SUBST CXt_WHEN GCB_BOUND GCB_CR
+syn keyword xsConstant GCB_Control GCB_EDGE GCB_Extend GCB_L GCB_LF GCB_LV
+syn keyword xsConstant GCB_LVT GCB_Other GCB_Prepend GCB_Regional_Indicator
+syn keyword xsConstant GCB_SpacingMark GCB_T GCB_V G_ARRAY G_DISCARD G_EVAL
+syn keyword xsConstant G_FAKINGEVAL G_KEEPERR G_METHOD G_METHOD_NAMED
+syn keyword xsConstant G_NOARGS G_NODEBUG G_RE_REPARSING G_SCALAR
+syn keyword xsConstant G_UNDEF_FILL G_VOID G_WANT G_WARN_ALL_MASK
+syn keyword xsConstant G_WARN_ALL_OFF G_WARN_ALL_ON G_WARN_OFF G_WARN_ON
+syn keyword xsConstant G_WARN_ONCE G_WRITING_TO_STDERR OA_AVREF OA_BASEOP
+syn keyword xsConstant OA_BASEOP_OR_UNOP OA_BINOP OA_CLASS_MASK OA_COP
+syn keyword xsConstant OA_CVREF OA_DANGEROUS OA_DEFGV OA_FILEREF
+syn keyword xsConstant OA_FILESTATOP OA_FOLDCONST OA_HVREF OA_LIST OA_LISTOP
+syn keyword xsConstant OA_LOGOP OA_LOOP OA_LOOPEXOP OA_MARK OA_METHOP
syn keyword xsConstant OA_OPTIONAL OA_OTHERINT OA_PADOP OA_PMOP
syn keyword xsConstant OA_PVOP_OR_SVOP OA_RETSCALAR OA_SCALAR OA_SCALARREF
-syn keyword xsConstant OA_SVOP OA_TARGET OA_TARGLEX OA_UNOP OP_AASSIGN OP_ABS
-syn keyword xsConstant OP_ACCEPT OP_ADD OP_AEACH OP_AELEM OP_AELEMFAST
-syn keyword xsConstant OP_AELEMFAST_LEX OP_AKEYS OP_ALARM OP_AND OP_ANDASSIGN
-syn keyword xsConstant OP_ANONCODE OP_ANONHASH OP_ANONLIST OP_ASLICE OP_ATAN2
-syn keyword xsConstant OP_AV2ARYLEN OP_AVALUES OP_BACKTICK OP_BIND OP_BINMODE
-syn keyword xsConstant OP_BIT_AND OP_BIT_OR OP_BIT_XOR OP_BLESS OP_BOOLKEYS
-syn keyword xsConstant OP_BREAK OP_CALLER OP_CHDIR OP_CHMOD OP_CHOMP OP_CHOP
-syn keyword xsConstant OP_CHOWN OP_CHR OP_CHROOT OP_CLOSE OP_CLOSEDIR
-syn keyword xsConstant OP_COMPLEMENT OP_CONCAT OP_COND_EXPR OP_CONNECT
-syn keyword xsConstant OP_CONST OP_CONTINUE OP_COREARGS OP_COS OP_CRYPT
-syn keyword xsConstant OP_CUSTOM OP_DBMCLOSE OP_DBMOPEN OP_DBSTATE OP_DEFINED
-syn keyword xsConstant OP_DELETE OP_DIE OP_DIVIDE OP_DOFILE OP_DOR
-syn keyword xsConstant OP_DORASSIGN OP_DUMP OP_EACH OP_EGRENT OP_EHOSTENT
-syn keyword xsConstant OP_ENETENT OP_ENTER OP_ENTEREVAL OP_ENTERGIVEN
-syn keyword xsConstant OP_ENTERITER OP_ENTERLOOP OP_ENTERSUB OP_ENTERTRY
-syn keyword xsConstant OP_ENTERWHEN OP_ENTERWRITE OP_EOF OP_EPROTOENT
-syn keyword xsConstant OP_EPWENT OP_EQ OP_ESERVENT OP_EXEC OP_EXISTS OP_EXIT
-syn keyword xsConstant OP_EXP OP_FC OP_FCNTL OP_FILENO OP_FLIP OP_FLOCK
-syn keyword xsConstant OP_FLOP OP_FORK OP_FORMLINE OP_FTATIME OP_FTBINARY
-syn keyword xsConstant OP_FTBLK OP_FTCHR OP_FTCTIME OP_FTDIR OP_FTEEXEC
-syn keyword xsConstant OP_FTEOWNED OP_FTEREAD OP_FTEWRITE OP_FTFILE OP_FTIS
-syn keyword xsConstant OP_FTLINK OP_FTMTIME OP_FTPIPE OP_FTREXEC OP_FTROWNED
-syn keyword xsConstant OP_FTRREAD OP_FTRWRITE OP_FTSGID OP_FTSIZE OP_FTSOCK
-syn keyword xsConstant OP_FTSUID OP_FTSVTX OP_FTTEXT OP_FTTTY OP_FTZERO OP_GE
-syn keyword xsConstant OP_GELEM OP_GETC OP_GETLOGIN OP_GETPEERNAME OP_GETPGRP
-syn keyword xsConstant OP_GETPPID OP_GETPRIORITY OP_GETSOCKNAME OP_GGRENT
-syn keyword xsConstant OP_GGRGID OP_GGRNAM OP_GHBYADDR OP_GHBYNAME
-syn keyword xsConstant OP_GHOSTENT OP_GLOB OP_GMTIME OP_GNBYADDR OP_GNBYNAME
-syn keyword xsConstant OP_GNETENT OP_GOTO OP_GPBYNAME OP_GPBYNUMBER
-syn keyword xsConstant OP_GPROTOENT OP_GPWENT OP_GPWNAM OP_GPWUID
-syn keyword xsConstant OP_GREPSTART OP_GREPWHILE OP_GSBYNAME OP_GSBYPORT
-syn keyword xsConstant OP_GSERVENT OP_GSOCKOPT OP_GT OP_GV OP_GVSV OP_HELEM
-syn keyword xsConstant OP_HEX OP_HINTSEVAL OP_HSLICE OP_INDEX OP_INT OP_IOCTL
-syn keyword xsConstant OP_ITER OP_I_ADD OP_I_DIVIDE OP_I_EQ OP_I_GE OP_I_GT
-syn keyword xsConstant OP_I_LE OP_I_LT OP_I_MODULO OP_I_MULTIPLY OP_I_NCMP
-syn keyword xsConstant OP_I_NE OP_I_NEGATE OP_I_POSTDEC OP_I_POSTINC
-syn keyword xsConstant OP_I_PREDEC OP_I_PREINC OP_I_SUBTRACT OP_JOIN OP_KEYS
-syn keyword xsConstant OP_KILL OP_LAST OP_LC OP_LCFIRST OP_LE OP_LEAVE
-syn keyword xsConstant OP_LEAVEEVAL OP_LEAVEGIVEN OP_LEAVELOOP OP_LEAVESUB
-syn keyword xsConstant OP_LEAVESUBLV OP_LEAVETRY OP_LEAVEWHEN OP_LEAVEWRITE
-syn keyword xsConstant OP_LEFT_SHIFT OP_LENGTH OP_LINESEQ OP_LINK OP_LIST
-syn keyword xsConstant OP_LISTEN OP_LOCALTIME OP_LOCK OP_LOG OP_LSLICE
-syn keyword xsConstant OP_LSTAT OP_LT OP_MAPSTART OP_MAPWHILE OP_MATCH
-syn keyword xsConstant OP_METHOD OP_METHOD_NAMED OP_MKDIR OP_MODULO OP_MSGCTL
-syn keyword xsConstant OP_MSGGET OP_MSGRCV OP_MSGSND OP_MULTIPLY OP_NCMP
-syn keyword xsConstant OP_NE OP_NEGATE OP_NEXT OP_NEXTSTATE OP_NOT OP_NULL
-syn keyword xsConstant OP_OCT OP_ONCE OP_OPEN OP_OPEN_DIR OP_OR OP_ORASSIGN
-syn keyword xsConstant OP_ORD OP_PACK OP_PADANY OP_PADAV OP_PADHV OP_PADSV
-syn keyword xsConstant OP_PIPE_OP OP_POP OP_POS OP_POSTDEC OP_POSTINC OP_POW
-syn keyword xsConstant OP_PREDEC OP_PREINC OP_PRINT OP_PROTOTYPE OP_PRTF
-syn keyword xsConstant OP_PUSH OP_PUSHMARK OP_PUSHRE OP_QR OP_QUOTEMETA
-syn keyword xsConstant OP_RAND OP_RANGE OP_RCATLINE OP_REACH OP_READ
-syn keyword xsConstant OP_READDIR OP_READLINE OP_READLINK OP_RECV OP_REDO
-syn keyword xsConstant OP_REF OP_REFGEN OP_REGCMAYBE OP_REGCOMP OP_REGCRESET
-syn keyword xsConstant OP_RENAME OP_REPEAT OP_REQUIRE OP_RESET OP_RETURN
-syn keyword xsConstant OP_REVERSE OP_REWINDDIR OP_RIGHT_SHIFT OP_RINDEX
-syn keyword xsConstant OP_RKEYS OP_RMDIR OP_RUNCV OP_RV2AV OP_RV2CV OP_RV2GV
-syn keyword xsConstant OP_RV2HV OP_RV2SV OP_RVALUES OP_SASSIGN OP_SAY
-syn keyword xsConstant OP_SCALAR OP_SCHOMP OP_SCHOP OP_SCMP OP_SCOPE OP_SEEK
-syn keyword xsConstant OP_SEEKDIR OP_SELECT OP_SEMCTL OP_SEMGET OP_SEMOP
-syn keyword xsConstant OP_SEND OP_SEQ OP_SETPGRP OP_SETPRIORITY OP_SGE
-syn keyword xsConstant OP_SGRENT OP_SGT OP_SHIFT OP_SHMCTL OP_SHMGET
-syn keyword xsConstant OP_SHMREAD OP_SHMWRITE OP_SHOSTENT OP_SHUTDOWN OP_SIN
-syn keyword xsConstant OP_SLE OP_SLEEP OP_SLT OP_SMARTMATCH OP_SNE OP_SNETENT
-syn keyword xsConstant OP_SOCKET OP_SOCKPAIR OP_SORT OP_SPLICE OP_SPLIT
-syn keyword xsConstant OP_SPRINTF OP_SPROTOENT OP_SPWENT OP_SQRT OP_SRAND
-syn keyword xsConstant OP_SREFGEN OP_SSELECT OP_SSERVENT OP_SSOCKOPT OP_STAT
-syn keyword xsConstant OP_STRINGIFY OP_STUB OP_STUDY OP_SUBST OP_SUBSTCONT
-syn keyword xsConstant OP_SUBSTR OP_SUBTRACT OP_SYMLINK OP_SYSCALL OP_SYSOPEN
-syn keyword xsConstant OP_SYSREAD OP_SYSSEEK OP_SYSTEM OP_SYSWRITE OP_TELL
-syn keyword xsConstant OP_TELLDIR OP_TIE OP_TIED OP_TIME OP_TMS OP_TRANS
-syn keyword xsConstant OP_TRANSR OP_TRUNCATE OP_UC OP_UCFIRST OP_UMASK
-syn keyword xsConstant OP_UNDEF OP_UNLINK OP_UNPACK OP_UNSHIFT OP_UNSTACK
-syn keyword xsConstant OP_UNTIE OP_UTIME OP_VALUES OP_VEC OP_WAIT OP_WAITPID
-syn keyword xsConstant OP_WANTARRAY OP_WARN OP_XOR OP_max OPf_KIDS OPf_KNOW
-syn keyword xsConstant OPf_LIST OPf_MOD OPf_PARENS OPf_REF OPf_SPECIAL
-syn keyword xsConstant OPf_STACKED OPf_WANT OPf_WANT_LIST OPf_WANT_SCALAR
-syn keyword xsConstant OPf_WANT_VOID OPpALLOW_FAKE OPpASSIGN_BACKWARDS
-syn keyword xsConstant OPpASSIGN_COMMON OPpASSIGN_CV_TO_GV OPpCONST_BARE
-syn keyword xsConstant OPpCONST_ENTERED OPpCONST_NOVER OPpCONST_SHORTCIRCUIT
-syn keyword xsConstant OPpCONST_STRICT OPpCONST_WARNING OPpCOREARGS_DEREF1
-syn keyword xsConstant OPpCOREARGS_DEREF2 OPpCOREARGS_PUSHMARK
-syn keyword xsConstant OPpCOREARGS_SCALARMOD OPpDEREF OPpDEREF_AV OPpDEREF_HV
-syn keyword xsConstant OPpDEREF_SV OPpDONT_INIT_GV OPpEARLY_CV
-syn keyword xsConstant OPpENTERSUB_AMPER OPpENTERSUB_DB OPpENTERSUB_HASTARG
-syn keyword xsConstant OPpENTERSUB_INARGS OPpENTERSUB_LVAL_MASK
-syn keyword xsConstant OPpENTERSUB_NOPAREN OPpEVAL_BYTES OPpEVAL_COPHH
-syn keyword xsConstant OPpEVAL_HAS_HH OPpEVAL_UNICODE OPpEXISTS_SUB
-syn keyword xsConstant OPpEXIT_VMSISH OPpFLIP_LINENUM OPpFT_ACCESS
-syn keyword xsConstant OPpFT_AFTER_t OPpFT_STACKED OPpFT_STACKING OPpGREP_LEX
-syn keyword xsConstant OPpHUSH_VMSISH OPpITER_DEF OPpITER_REVERSED
-syn keyword xsConstant OPpLIST_GUESSED OPpLVAL_DEFER OPpLVAL_INTRO
-syn keyword xsConstant OPpMAYBE_LVSUB OPpMAY_RETURN_CONSTANT OPpOFFBYONE
-syn keyword xsConstant OPpOPEN_IN_CRLF OPpOPEN_IN_RAW OPpOPEN_OUT_CRLF
-syn keyword xsConstant OPpOPEN_OUT_RAW OPpOUR_INTRO OPpPAD_STATE
-syn keyword xsConstant OPpPV_IS_UTF8 OPpREFCOUNTED OPpREPEAT_DOLIST
-syn keyword xsConstant OPpREVERSE_INPLACE OPpRUNTIME OPpSLICE OPpSORT_DESCEND
+syn keyword xsConstant OA_SVOP OA_TARGET OA_TARGLEX OA_UNOP OA_UNOP_AUX
+syn keyword xsConstant OP_AASSIGN OP_ABS OP_ACCEPT OP_ADD OP_AEACH OP_AELEM
+syn keyword xsConstant OP_AELEMFAST OP_AELEMFAST_LEX OP_AKEYS OP_ALARM OP_AND
+syn keyword xsConstant OP_ANDASSIGN OP_ANONCODE OP_ANONCONST OP_ANONHASH
+syn keyword xsConstant OP_ANONLIST OP_ASLICE OP_ATAN2 OP_AV2ARYLEN OP_AVALUES
+syn keyword xsConstant OP_BACKTICK OP_BIND OP_BINMODE OP_BIT_AND OP_BIT_OR
+syn keyword xsConstant OP_BIT_XOR OP_BLESS OP_BREAK OP_CALLER OP_CHDIR
+syn keyword xsConstant OP_CHMOD OP_CHOMP OP_CHOP OP_CHOWN OP_CHR OP_CHROOT
+syn keyword xsConstant OP_CLONECV OP_CLOSE OP_CLOSEDIR OP_COMPLEMENT
+syn keyword xsConstant OP_CONCAT OP_COND_EXPR OP_CONNECT OP_CONST OP_CONTINUE
+syn keyword xsConstant OP_COREARGS OP_COS OP_CRYPT OP_CUSTOM OP_DBMCLOSE
+syn keyword xsConstant OP_DBMOPEN OP_DBSTATE OP_DEFINED OP_DELETE OP_DIE
+syn keyword xsConstant OP_DIVIDE OP_DOFILE OP_DOR OP_DORASSIGN OP_DUMP
+syn keyword xsConstant OP_EACH OP_EGRENT OP_EHOSTENT OP_ENETENT OP_ENTER
+syn keyword xsConstant OP_ENTEREVAL OP_ENTERGIVEN OP_ENTERITER OP_ENTERLOOP
+syn keyword xsConstant OP_ENTERSUB OP_ENTERTRY OP_ENTERWHEN OP_ENTERWRITE
+syn keyword xsConstant OP_EOF OP_EPROTOENT OP_EPWENT OP_EQ OP_ESERVENT
+syn keyword xsConstant OP_EXEC OP_EXISTS OP_EXIT OP_EXP OP_FC OP_FCNTL
+syn keyword xsConstant OP_FILENO OP_FLIP OP_FLOCK OP_FLOP OP_FORK OP_FORMLINE
+syn keyword xsConstant OP_FTATIME OP_FTBINARY OP_FTBLK OP_FTCHR OP_FTCTIME
+syn keyword xsConstant OP_FTDIR OP_FTEEXEC OP_FTEOWNED OP_FTEREAD OP_FTEWRITE
+syn keyword xsConstant OP_FTFILE OP_FTIS OP_FTLINK OP_FTMTIME OP_FTPIPE
+syn keyword xsConstant OP_FTREXEC OP_FTROWNED OP_FTRREAD OP_FTRWRITE
+syn keyword xsConstant OP_FTSGID OP_FTSIZE OP_FTSOCK OP_FTSUID OP_FTSVTX
+syn keyword xsConstant OP_FTTEXT OP_FTTTY OP_FTZERO OP_GE OP_GELEM OP_GETC
+syn keyword xsConstant OP_GETLOGIN OP_GETPEERNAME OP_GETPGRP OP_GETPPID
+syn keyword xsConstant OP_GETPRIORITY OP_GETSOCKNAME OP_GGRENT OP_GGRGID
+syn keyword xsConstant OP_GGRNAM OP_GHBYADDR OP_GHBYNAME OP_GHOSTENT OP_GLOB
+syn keyword xsConstant OP_GMTIME OP_GNBYADDR OP_GNBYNAME OP_GNETENT OP_GOTO
+syn keyword xsConstant OP_GPBYNAME OP_GPBYNUMBER OP_GPROTOENT OP_GPWENT
+syn keyword xsConstant OP_GPWNAM OP_GPWUID OP_GREPSTART OP_GREPWHILE
+syn keyword xsConstant OP_GSBYNAME OP_GSBYPORT OP_GSERVENT OP_GSOCKOPT OP_GT
+syn keyword xsConstant OP_GV OP_GVSV OP_HELEM OP_HEX OP_HINTSEVAL OP_HSLICE
+syn keyword xsConstant OP_INDEX OP_INT OP_INTROCV OP_IOCTL OP_ITER OP_I_ADD
+syn keyword xsConstant OP_I_DIVIDE OP_I_EQ OP_I_GE OP_I_GT OP_I_LE OP_I_LT
+syn keyword xsConstant OP_I_MODULO OP_I_MULTIPLY OP_I_NCMP OP_I_NE
+syn keyword xsConstant OP_I_NEGATE OP_I_POSTDEC OP_I_POSTINC OP_I_PREDEC
+syn keyword xsConstant OP_I_PREINC OP_I_SUBTRACT OP_JOIN OP_KEYS OP_KILL
+syn keyword xsConstant OP_KVASLICE OP_KVHSLICE OP_LAST OP_LC OP_LCFIRST OP_LE
+syn keyword xsConstant OP_LEAVE OP_LEAVEEVAL OP_LEAVEGIVEN OP_LEAVELOOP
+syn keyword xsConstant OP_LEAVESUB OP_LEAVESUBLV OP_LEAVETRY OP_LEAVEWHEN
+syn keyword xsConstant OP_LEAVEWRITE OP_LEFT_SHIFT OP_LENGTH OP_LINESEQ
+syn keyword xsConstant OP_LINK OP_LIST OP_LISTEN OP_LOCALTIME OP_LOCK OP_LOG
+syn keyword xsConstant OP_LSLICE OP_LSTAT OP_LT OP_LVAVREF OP_LVREF
+syn keyword xsConstant OP_LVREFSLICE OP_MAPSTART OP_MAPWHILE OP_MATCH
+syn keyword xsConstant OP_METHOD OP_METHOD_NAMED OP_METHOD_REDIR
+syn keyword xsConstant OP_METHOD_REDIR_SUPER OP_METHOD_SUPER OP_MKDIR
+syn keyword xsConstant OP_MODULO OP_MSGCTL OP_MSGGET OP_MSGRCV OP_MSGSND
+syn keyword xsConstant OP_MULTIDEREF OP_MULTIPLY OP_NBIT_AND OP_NBIT_OR
+syn keyword xsConstant OP_NBIT_XOR OP_NCMP OP_NCOMPLEMENT OP_NE OP_NEGATE
+syn keyword xsConstant OP_NEXT OP_NEXTSTATE OP_NOT OP_NULL OP_OCT OP_ONCE
+syn keyword xsConstant OP_OPEN OP_OPEN_DIR OP_OR OP_ORASSIGN OP_ORD OP_PACK
+syn keyword xsConstant OP_PADANY OP_PADAV OP_PADCV OP_PADHV OP_PADRANGE
+syn keyword xsConstant OP_PADSV OP_PIPE_OP OP_POP OP_POS OP_POSTDEC
+syn keyword xsConstant OP_POSTINC OP_POW OP_PREDEC OP_PREINC OP_PRINT
+syn keyword xsConstant OP_PROTOTYPE OP_PRTF OP_PUSH OP_PUSHMARK OP_PUSHRE
+syn keyword xsConstant OP_QR OP_QUOTEMETA OP_RAND OP_RANGE OP_RCATLINE
+syn keyword xsConstant OP_REACH OP_READ OP_READDIR OP_READLINE OP_READLINK
+syn keyword xsConstant OP_RECV OP_REDO OP_REF OP_REFASSIGN OP_REFGEN
+syn keyword xsConstant OP_REGCMAYBE OP_REGCOMP OP_REGCRESET OP_RENAME
+syn keyword xsConstant OP_REPEAT OP_REQUIRE OP_RESET OP_RETURN OP_REVERSE
+syn keyword xsConstant OP_REWINDDIR OP_RIGHT_SHIFT OP_RINDEX OP_RKEYS
+syn keyword xsConstant OP_RMDIR OP_RUNCV OP_RV2AV OP_RV2CV OP_RV2GV OP_RV2HV
+syn keyword xsConstant OP_RV2SV OP_RVALUES OP_SASSIGN OP_SAY OP_SBIT_AND
+syn keyword xsConstant OP_SBIT_OR OP_SBIT_XOR OP_SCALAR OP_SCHOMP OP_SCHOP
+syn keyword xsConstant OP_SCMP OP_SCOMPLEMENT OP_SCOPE OP_SEEK OP_SEEKDIR
+syn keyword xsConstant OP_SELECT OP_SEMCTL OP_SEMGET OP_SEMOP OP_SEND OP_SEQ
+syn keyword xsConstant OP_SETPGRP OP_SETPRIORITY OP_SGE OP_SGRENT OP_SGT
+syn keyword xsConstant OP_SHIFT OP_SHMCTL OP_SHMGET OP_SHMREAD OP_SHMWRITE
+syn keyword xsConstant OP_SHOSTENT OP_SHUTDOWN OP_SIN OP_SLE OP_SLEEP OP_SLT
+syn keyword xsConstant OP_SMARTMATCH OP_SNE OP_SNETENT OP_SOCKET OP_SOCKPAIR
+syn keyword xsConstant OP_SORT OP_SPLICE OP_SPLIT OP_SPRINTF OP_SPROTOENT
+syn keyword xsConstant OP_SPWENT OP_SQRT OP_SRAND OP_SREFGEN OP_SSELECT
+syn keyword xsConstant OP_SSERVENT OP_SSOCKOPT OP_STAT OP_STRINGIFY OP_STUB
+syn keyword xsConstant OP_STUDY OP_SUBST OP_SUBSTCONT OP_SUBSTR OP_SUBTRACT
+syn keyword xsConstant OP_SYMLINK OP_SYSCALL OP_SYSOPEN OP_SYSREAD OP_SYSSEEK
+syn keyword xsConstant OP_SYSTEM OP_SYSWRITE OP_TELL OP_TELLDIR OP_TIE
+syn keyword xsConstant OP_TIED OP_TIME OP_TMS OP_TRANS OP_TRANSR OP_TRUNCATE
+syn keyword xsConstant OP_UC OP_UCFIRST OP_UMASK OP_UNDEF OP_UNLINK OP_UNPACK
+syn keyword xsConstant OP_UNSHIFT OP_UNSTACK OP_UNTIE OP_UTIME OP_VALUES
+syn keyword xsConstant OP_VEC OP_WAIT OP_WAITPID OP_WANTARRAY OP_WARN OP_XOR
+syn keyword xsConstant OP_max OPf_FOLDED OPf_KIDS OPf_KNOW OPf_LIST OPf_MOD
+syn keyword xsConstant OPf_PARENS OPf_REF OPf_SPECIAL OPf_STACKED OPf_WANT
+syn keyword xsConstant OPf_WANT_LIST OPf_WANT_SCALAR OPf_WANT_VOID
+syn keyword xsConstant OPpALLOW_FAKE OPpARG1_MASK OPpARG2_MASK OPpARG3_MASK
+syn keyword xsConstant OPpARG4_MASK OPpASSIGN_BACKWARDS OPpASSIGN_COMMON
+syn keyword xsConstant OPpASSIGN_CV_TO_GV OPpCONST_BARE OPpCONST_ENTERED
+syn keyword xsConstant OPpCONST_NOVER OPpCONST_SHORTCIRCUIT OPpCONST_STRICT
+syn keyword xsConstant OPpCOREARGS_DEREF1 OPpCOREARGS_DEREF2
+syn keyword xsConstant OPpCOREARGS_PUSHMARK OPpCOREARGS_SCALARMOD OPpDEREF
+syn keyword xsConstant OPpDEREF_AV OPpDEREF_HV OPpDEREF_SV OPpDONT_INIT_GV
+syn keyword xsConstant OPpEARLY_CV OPpENTERSUB_AMPER OPpENTERSUB_DB
+syn keyword xsConstant OPpENTERSUB_HASTARG OPpENTERSUB_INARGS
+syn keyword xsConstant OPpENTERSUB_LVAL_MASK OPpENTERSUB_NOPAREN
+syn keyword xsConstant OPpEVAL_BYTES OPpEVAL_COPHH OPpEVAL_HAS_HH
+syn keyword xsConstant OPpEVAL_RE_REPARSING OPpEVAL_UNICODE OPpEXISTS_SUB
+syn keyword xsConstant OPpFLIP_LINENUM OPpFT_ACCESS OPpFT_AFTER_t
+syn keyword xsConstant OPpFT_STACKED OPpFT_STACKING OPpGREP_LEX
+syn keyword xsConstant OPpHINT_STRICT_REFS OPpHUSH_VMSISH OPpITER_DEF
+syn keyword xsConstant OPpITER_REVERSED OPpLIST_GUESSED OPpLVALUE
+syn keyword xsConstant OPpLVAL_DEFER OPpLVAL_INTRO OPpLVREF_AV OPpLVREF_CV
+syn keyword xsConstant OPpLVREF_ELEM OPpLVREF_HV OPpLVREF_ITER OPpLVREF_SV
+syn keyword xsConstant OPpLVREF_TYPE OPpMAYBE_LVSUB OPpMAYBE_TRUEBOOL
+syn keyword xsConstant OPpMAY_RETURN_CONSTANT OPpMULTIDEREF_DELETE
+syn keyword xsConstant OPpMULTIDEREF_EXISTS OPpOFFBYONE OPpOPEN_IN_CRLF
+syn keyword xsConstant OPpOPEN_IN_RAW OPpOPEN_OUT_CRLF OPpOPEN_OUT_RAW
+syn keyword xsConstant OPpOUR_INTRO OPpPADRANGE_COUNTMASK
+syn keyword xsConstant OPpPADRANGE_COUNTSHIFT OPpPAD_STATE OPpPV_IS_UTF8
+syn keyword xsConstant OPpREFCOUNTED OPpREPEAT_DOLIST OPpREVERSE_INPLACE
+syn keyword xsConstant OPpRUNTIME OPpSLICE OPpSLICEWARNING OPpSORT_DESCEND
syn keyword xsConstant OPpSORT_INPLACE OPpSORT_INTEGER OPpSORT_NUMERIC
syn keyword xsConstant OPpSORT_QSORT OPpSORT_REVERSE OPpSORT_STABLE
-syn keyword xsConstant OPpSUBSTR_REPL_FIRST OPpTARGET_MY OPpTRANS_ALL
-syn keyword xsConstant OPpTRANS_COMPLEMENT OPpTRANS_DELETE OPpTRANS_FROM_UTF
-syn keyword xsConstant OPpTRANS_GROWS OPpTRANS_IDENTICAL OPpTRANS_SQUASH
-syn keyword xsConstant OPpTRANS_TO_UTF PERL_MAGIC_READONLY_ACCEPTABLE
+syn keyword xsConstant OPpSPLIT_IMPLIM OPpSUBSTR_REPL_FIRST OPpTARGET_MY
+syn keyword xsConstant OPpTRANS_ALL OPpTRANS_COMPLEMENT OPpTRANS_DELETE
+syn keyword xsConstant OPpTRANS_FROM_UTF OPpTRANS_GROWS OPpTRANS_IDENTICAL
+syn keyword xsConstant OPpTRANS_SQUASH OPpTRANS_TO_UTF OPpTRUEBOOL
+syn keyword xsConstant PERL_MAGIC_READONLY_ACCEPTABLE
syn keyword xsConstant PERL_MAGIC_TYPE_IS_VALUE_MAGIC
syn keyword xsConstant PERL_MAGIC_TYPE_READONLY_ACCEPTABLE
syn keyword xsConstant PERL_MAGIC_UTF8_CACHESIZE PERL_MAGIC_VALUE_MAGIC
syn keyword xsConstant PERL_MAGIC_VTABLE_MASK PERL_MAGIC_arylen
syn keyword xsConstant PERL_MAGIC_arylen_p PERL_MAGIC_backref PERL_MAGIC_bm
syn keyword xsConstant PERL_MAGIC_checkcall PERL_MAGIC_collxfrm
-syn keyword xsConstant PERL_MAGIC_dbfile PERL_MAGIC_dbline PERL_MAGIC_defelem
-syn keyword xsConstant PERL_MAGIC_env PERL_MAGIC_envelem PERL_MAGIC_ext
-syn keyword xsConstant PERL_MAGIC_fm PERL_MAGIC_hints PERL_MAGIC_hintselem
-syn keyword xsConstant PERL_MAGIC_isa PERL_MAGIC_isaelem PERL_MAGIC_nkeys
-syn keyword xsConstant PERL_MAGIC_overload PERL_MAGIC_overload_elem
+syn keyword xsConstant PERL_MAGIC_dbfile PERL_MAGIC_dbline
+syn keyword xsConstant PERL_MAGIC_debugvar PERL_MAGIC_defelem PERL_MAGIC_env
+syn keyword xsConstant PERL_MAGIC_envelem PERL_MAGIC_ext PERL_MAGIC_fm
+syn keyword xsConstant PERL_MAGIC_hints PERL_MAGIC_hintselem PERL_MAGIC_isa
+syn keyword xsConstant PERL_MAGIC_isaelem PERL_MAGIC_lvref PERL_MAGIC_nkeys
syn keyword xsConstant PERL_MAGIC_overload_table PERL_MAGIC_pos PERL_MAGIC_qr
syn keyword xsConstant PERL_MAGIC_regdata PERL_MAGIC_regdatum
syn keyword xsConstant PERL_MAGIC_regex_global PERL_MAGIC_rhash
syn keyword xsConstant PERL_MAGIC_shared PERL_MAGIC_shared_scalar
-syn keyword xsConstant PERL_MAGIC_sig PERL_MAGIC_sigelem PERL_MAGIC_study
-syn keyword xsConstant PERL_MAGIC_substr PERL_MAGIC_sv PERL_MAGIC_symtab
-syn keyword xsConstant PERL_MAGIC_taint PERL_MAGIC_tied PERL_MAGIC_tiedelem
+syn keyword xsConstant PERL_MAGIC_sig PERL_MAGIC_sigelem PERL_MAGIC_substr
+syn keyword xsConstant PERL_MAGIC_sv PERL_MAGIC_symtab PERL_MAGIC_taint
+syn keyword xsConstant PERL_MAGIC_tied PERL_MAGIC_tiedelem
syn keyword xsConstant PERL_MAGIC_tiedscalar PERL_MAGIC_utf8 PERL_MAGIC_uvar
syn keyword xsConstant PERL_MAGIC_uvar_elem PERL_MAGIC_vec PERL_MAGIC_vstring
syn keyword xsConstant REGEX_ASCII_MORE_RESTRICTED_CHARSET
syn keyword xsConstant REGEX_ASCII_RESTRICTED_CHARSET REGEX_DEPENDS_CHARSET
-syn keyword xsConstant REGEX_LOCALE_CHARSET REGEX_UNICODE_CHARSET SVfARG
+syn keyword xsConstant REGEX_LOCALE_CHARSET REGEX_UNICODE_CHARSET SB_ATerm
+syn keyword xsConstant SB_BOUND SB_CR SB_Close SB_EDGE SB_Extend SB_Format
+syn keyword xsConstant SB_LF SB_Lower SB_Numeric SB_OLetter SB_Other
+syn keyword xsConstant SB_SContinue SB_STerm SB_Sep SB_Sp SB_Upper SVfARG
syn keyword xsConstant SVf_AMAGIC SVf_BREAK SVf_FAKE SVf_IOK SVf_IVisUV
-syn keyword xsConstant SVf_NOK SVf_OK SVf_OOK SVf_POK SVf_READONLY SVf_ROK
-syn keyword xsConstant SVf_THINKFIRST SVf_UTF8 SVp_IOK SVp_NOK SVp_POK
-syn keyword xsConstant SVp_SCREAM SVpad_NAME SVpad_OUR SVpad_STATE
+syn keyword xsConstant SVf_IsCOW SVf_NOK SVf_OK SVf_OOK SVf_POK SVf_PROTECT
+syn keyword xsConstant SVf_READONLY SVf_ROK SVf_THINKFIRST SVf_UTF8 SVp_IOK
+syn keyword xsConstant SVp_NOK SVp_POK SVp_SCREAM SVpad_OUR SVpad_STATE
syn keyword xsConstant SVpad_TYPED SVpav_REAL SVpav_REIFY SVpbm_TAIL
syn keyword xsConstant SVpbm_VALID SVpgv_GP SVphv_CLONEABLE SVphv_HASKFLAGS
-syn keyword xsConstant SVphv_LAZYDEL SVphv_REHASH SVphv_SHAREKEYS
-syn keyword xsConstant SVprv_PCS_IMPORTED SVprv_WEAKREF SVs_GMG SVs_OBJECT
-syn keyword xsConstant SVs_PADMY SVs_PADSTALE SVs_PADTMP SVs_RMG SVs_SMG
-syn keyword xsConstant SVs_TEMP SVt_BIND SVt_IV SVt_LAST SVt_NULL SVt_NV
-syn keyword xsConstant SVt_PV SVt_PVAV SVt_PVBM SVt_PVCV SVt_PVFM SVt_PVGV
-syn keyword xsConstant SVt_PVHV SVt_PVIO SVt_PVIV SVt_PVLV SVt_PVMG SVt_PVNV
-syn keyword xsConstant SVt_REGEXP SVt_RV TRUE XATTRBLOCK XATTRTERM XBLOCK
-syn keyword xsConstant XOPERATOR XREF XSTATE XTERM XTERMBLOCK XTERMORDORDOR
-syn keyword xsConstant padtidy_FORMAT padtidy_SUB padtidy_SUBCLONE
+syn keyword xsConstant SVphv_LAZYDEL SVphv_SHAREKEYS SVprv_PCS_IMPORTED
+syn keyword xsConstant SVprv_WEAKREF SVs_GMG SVs_OBJECT SVs_PADMY
+syn keyword xsConstant SVs_PADSTALE SVs_PADTMP SVs_RMG SVs_SMG SVs_TEMP
+syn keyword xsConstant SVt_INVLIST SVt_IV SVt_LAST SVt_NULL SVt_NV SVt_PV
+syn keyword xsConstant SVt_PVAV SVt_PVBM SVt_PVCV SVt_PVFM SVt_PVGV SVt_PVHV
+syn keyword xsConstant SVt_PVIO SVt_PVIV SVt_PVLV SVt_PVMG SVt_PVNV
+syn keyword xsConstant SVt_REGEXP SVt_RV TRADITIONAL_BOUND WB_ALetter
+syn keyword xsConstant WB_BOUND WB_CR WB_Double_Quote WB_EDGE WB_Extend
+syn keyword xsConstant WB_ExtendNumLet WB_Format WB_Hebrew_Letter WB_Katakana
+syn keyword xsConstant WB_LF WB_MidLetter WB_MidNum WB_MidNumLet WB_Newline
+syn keyword xsConstant WB_Numeric WB_Other WB_Regional_Indicator
+syn keyword xsConstant WB_Single_Quote WB_UNKNOWN XATTRBLOCK XATTRTERM XBLOCK
+syn keyword xsConstant XBLOCKTERM XOPERATOR XOPe_xop_class XOPe_xop_desc
+syn keyword xsConstant XOPe_xop_name XOPe_xop_peep XOPe_xop_ptr XPOSTDEREF
+syn keyword xsConstant XREF XSTATE XTERM XTERMBLOCK XTERMORDORDOR
+syn keyword xsConstant _CC_ENUM_ALPHA _CC_ENUM_ALPHANUMERIC _CC_ENUM_ASCII
+syn keyword xsConstant _CC_ENUM_BLANK _CC_ENUM_CASED _CC_ENUM_CNTRL
+syn keyword xsConstant _CC_ENUM_DIGIT _CC_ENUM_GRAPH _CC_ENUM_LOWER
+syn keyword xsConstant _CC_ENUM_PRINT _CC_ENUM_PUNCT _CC_ENUM_SPACE
+syn keyword xsConstant _CC_ENUM_UPPER _CC_ENUM_VERTSPACE _CC_ENUM_WORDCHAR
+syn keyword xsConstant _CC_ENUM_XDIGIT padtidy_FORMAT padtidy_SUB
+syn keyword xsConstant padtidy_SUBCLONE
syn keyword xsException XCPT_CATCH XCPT_RETHROW XCPT_TRY_END XCPT_TRY_START
syn keyword xsException dXCPT
syn keyword xsKeyword ALIAS: BOOT: CASE: CLEANUP: CODE: C_ARGS: DISABLE
@@ -492,11 +598,19 @@ syn keyword xsFunction Perl_PerlIO_read Perl_PerlIO_seek Perl_PerlIO_set_cnt
syn keyword xsFunction Perl_PerlIO_set_ptrcnt Perl_PerlIO_setlinebuf
syn keyword xsFunction Perl_PerlIO_stderr Perl_PerlIO_stdin
syn keyword xsFunction Perl_PerlIO_stdout Perl_PerlIO_tell Perl_PerlIO_unread
-syn keyword xsFunction Perl_PerlIO_write Perl_Slab_Alloc Perl_Slab_Free
-syn keyword xsFunction Perl__is_utf8_quotemeta Perl__to_uni_fold_flags
+syn keyword xsFunction Perl_PerlIO_write Perl__get_regclass_nonbitmap_data
+syn keyword xsFunction Perl__is_cur_LC_category_utf8
+syn keyword xsFunction Perl__is_in_locale_category Perl__is_uni_FOO
+syn keyword xsFunction Perl__is_uni_perl_idcont Perl__is_uni_perl_idstart
+syn keyword xsFunction Perl__is_utf8_FOO Perl__is_utf8_idcont
+syn keyword xsFunction Perl__is_utf8_idstart Perl__is_utf8_mark
+syn keyword xsFunction Perl__is_utf8_perl_idcont Perl__is_utf8_perl_idstart
+syn keyword xsFunction Perl__is_utf8_xidcont Perl__is_utf8_xidstart
+syn keyword xsFunction Perl__new_invlist_C_array Perl__to_uni_fold_flags
syn keyword xsFunction Perl__to_utf8_fold_flags Perl__to_utf8_lower_flags
syn keyword xsFunction Perl__to_utf8_title_flags Perl__to_utf8_upper_flags
-syn keyword xsFunction Perl_amagic_call Perl_amagic_deref_call Perl_any_dup
+syn keyword xsFunction Perl_alloccopstash Perl_amagic_call
+syn keyword xsFunction Perl_amagic_deref_call Perl_any_dup
syn keyword xsFunction Perl_apply_attrs_string Perl_atfork_lock
syn keyword xsFunction Perl_atfork_unlock Perl_av_arylen_p Perl_av_clear
syn keyword xsFunction Perl_av_create_and_push Perl_av_create_and_unshift_one
@@ -504,13 +618,14 @@ syn keyword xsFunction Perl_av_delete Perl_av_exists Perl_av_extend
syn keyword xsFunction Perl_av_fetch Perl_av_fill Perl_av_iter_p Perl_av_len
syn keyword xsFunction Perl_av_make Perl_av_pop Perl_av_push Perl_av_shift
syn keyword xsFunction Perl_av_store Perl_av_undef Perl_av_unshift
-syn keyword xsFunction Perl_block_gimme Perl_blockhook_register
-syn keyword xsFunction Perl_bytes_cmp_utf8 Perl_bytes_from_utf8
-syn keyword xsFunction Perl_bytes_to_utf8 Perl_call_argv Perl_call_atexit
-syn keyword xsFunction Perl_call_list Perl_call_method Perl_call_pv
-syn keyword xsFunction Perl_call_sv Perl_caller_cx Perl_calloc Perl_cast_i32
-syn keyword xsFunction Perl_cast_iv Perl_cast_ulong Perl_cast_uv
-syn keyword xsFunction Perl_ck_entersub_args_list Perl_ck_entersub_args_proto
+syn keyword xsFunction Perl_block_end Perl_block_gimme Perl_block_start
+syn keyword xsFunction Perl_blockhook_register Perl_bytes_cmp_utf8
+syn keyword xsFunction Perl_bytes_from_utf8 Perl_bytes_to_utf8 Perl_call_argv
+syn keyword xsFunction Perl_call_atexit Perl_call_list Perl_call_method
+syn keyword xsFunction Perl_call_pv Perl_call_sv Perl_caller_cx Perl_calloc
+syn keyword xsFunction Perl_cast_i32 Perl_cast_iv Perl_cast_ulong
+syn keyword xsFunction Perl_cast_uv Perl_ck_entersub_args_list
+syn keyword xsFunction Perl_ck_entersub_args_proto
syn keyword xsFunction Perl_ck_entersub_args_proto_or_list Perl_ck_warner
syn keyword xsFunction Perl_ck_warner_d Perl_ckwarn Perl_ckwarn_d
syn keyword xsFunction Perl_clone_params_del Perl_clone_params_new
@@ -518,38 +633,39 @@ syn keyword xsFunction Perl_cop_fetch_label Perl_cop_store_label Perl_croak
syn keyword xsFunction Perl_croak_no_modify Perl_croak_nocontext
syn keyword xsFunction Perl_croak_sv Perl_croak_xs_usage Perl_csighandler
syn keyword xsFunction Perl_custom_op_desc Perl_custom_op_name
-syn keyword xsFunction Perl_custom_op_register Perl_custom_op_xop
-syn keyword xsFunction Perl_cv_clone Perl_cv_const_sv
-syn keyword xsFunction Perl_cv_get_call_checker Perl_cv_set_call_checker
-syn keyword xsFunction Perl_cv_undef Perl_cx_dump Perl_cx_dup Perl_cxinc
-syn keyword xsFunction Perl_deb Perl_deb_nocontext Perl_debop
-syn keyword xsFunction Perl_debprofdump Perl_debstack Perl_debstackptrs
-syn keyword xsFunction Perl_delimcpy Perl_despatch_signals Perl_die
-syn keyword xsFunction Perl_die_nocontext Perl_die_sv Perl_dirp_dup
-syn keyword xsFunction Perl_do_aspawn Perl_do_binmode Perl_do_close
-syn keyword xsFunction Perl_do_gv_dump Perl_do_gvgv_dump Perl_do_hv_dump
-syn keyword xsFunction Perl_do_join Perl_do_magic_dump Perl_do_op_dump
-syn keyword xsFunction Perl_do_open9 Perl_do_openn Perl_do_pmop_dump
-syn keyword xsFunction Perl_do_spawn Perl_do_spawn_nowait Perl_do_sprintf
-syn keyword xsFunction Perl_do_sv_dump Perl_doing_taint Perl_doref
-syn keyword xsFunction Perl_dounwind Perl_dowantarray Perl_dump_all
-syn keyword xsFunction Perl_dump_eval Perl_dump_fds Perl_dump_form
-syn keyword xsFunction Perl_dump_indent Perl_dump_mstats Perl_dump_packsubs
-syn keyword xsFunction Perl_dump_sub Perl_dump_vindent Perl_eval_pv
-syn keyword xsFunction Perl_eval_sv Perl_fbm_compile Perl_fbm_instr
-syn keyword xsFunction Perl_filter_add Perl_filter_del Perl_filter_read
-syn keyword xsFunction Perl_find_runcv Perl_find_rundefsv Perl_foldEQ
-syn keyword xsFunction Perl_foldEQ_latin1 Perl_foldEQ_locale
-syn keyword xsFunction Perl_foldEQ_utf8_flags Perl_form Perl_form_nocontext
-syn keyword xsFunction Perl_fp_dup Perl_fprintf_nocontext
+syn keyword xsFunction Perl_custom_op_register Perl_cv_clone Perl_cv_const_sv
+syn keyword xsFunction Perl_cv_get_call_checker Perl_cv_name
+syn keyword xsFunction Perl_cv_set_call_checker
+syn keyword xsFunction Perl_cv_set_call_checker_flags Perl_cv_undef
+syn keyword xsFunction Perl_cx_dump Perl_cx_dup Perl_cxinc Perl_deb
+syn keyword xsFunction Perl_deb_nocontext Perl_debop Perl_debprofdump
+syn keyword xsFunction Perl_debstack Perl_debstackptrs Perl_delimcpy
+syn keyword xsFunction Perl_despatch_signals Perl_die Perl_die_nocontext
+syn keyword xsFunction Perl_die_sv Perl_dirp_dup Perl_do_aspawn
+syn keyword xsFunction Perl_do_binmode Perl_do_close Perl_do_gv_dump
+syn keyword xsFunction Perl_do_gvgv_dump Perl_do_hv_dump Perl_do_join
+syn keyword xsFunction Perl_do_magic_dump Perl_do_op_dump Perl_do_open9
+syn keyword xsFunction Perl_do_openn Perl_do_pmop_dump Perl_do_spawn
+syn keyword xsFunction Perl_do_spawn_nowait Perl_do_sprintf Perl_do_sv_dump
+syn keyword xsFunction Perl_doing_taint Perl_doref Perl_dounwind
+syn keyword xsFunction Perl_dowantarray Perl_dump_all Perl_dump_c_backtrace
+syn keyword xsFunction Perl_dump_eval Perl_dump_form Perl_dump_indent
+syn keyword xsFunction Perl_dump_mstats Perl_dump_packsubs Perl_dump_sub
+syn keyword xsFunction Perl_dump_vindent Perl_eval_pv Perl_eval_sv
+syn keyword xsFunction Perl_fbm_compile Perl_fbm_instr Perl_filter_add
+syn keyword xsFunction Perl_filter_del Perl_filter_read Perl_find_runcv
+syn keyword xsFunction Perl_find_rundefsv Perl_foldEQ Perl_foldEQ_latin1
+syn keyword xsFunction Perl_foldEQ_locale Perl_foldEQ_utf8_flags Perl_form
+syn keyword xsFunction Perl_form_nocontext Perl_fp_dup Perl_fprintf_nocontext
syn keyword xsFunction Perl_free_global_struct Perl_free_tmps Perl_get_av
-syn keyword xsFunction Perl_get_context Perl_get_cv Perl_get_cvn_flags
-syn keyword xsFunction Perl_get_hv Perl_get_mstats Perl_get_op_descs
-syn keyword xsFunction Perl_get_op_names Perl_get_ppaddr Perl_get_sv
-syn keyword xsFunction Perl_get_vtbl Perl_getcwd_sv Perl_gp_dup Perl_gp_free
-syn keyword xsFunction Perl_gp_ref Perl_grok_bin Perl_grok_hex
-syn keyword xsFunction Perl_grok_number Perl_grok_numeric_radix Perl_grok_oct
-syn keyword xsFunction Perl_gv_add_by_type Perl_gv_autoload_pv
+syn keyword xsFunction Perl_get_c_backtrace_dump Perl_get_context Perl_get_cv
+syn keyword xsFunction Perl_get_cvn_flags Perl_get_hv Perl_get_mstats
+syn keyword xsFunction Perl_get_op_descs Perl_get_op_names Perl_get_ppaddr
+syn keyword xsFunction Perl_get_sv Perl_get_vtbl Perl_getcwd_sv Perl_gp_dup
+syn keyword xsFunction Perl_gp_free Perl_gp_ref Perl_grok_bin Perl_grok_hex
+syn keyword xsFunction Perl_grok_infnan Perl_grok_number
+syn keyword xsFunction Perl_grok_number_flags Perl_grok_numeric_radix
+syn keyword xsFunction Perl_grok_oct Perl_gv_add_by_type Perl_gv_autoload_pv
syn keyword xsFunction Perl_gv_autoload_pvn Perl_gv_autoload_sv Perl_gv_check
syn keyword xsFunction Perl_gv_const_sv Perl_gv_dump Perl_gv_efullname
syn keyword xsFunction Perl_gv_efullname4 Perl_gv_fetchfile
@@ -574,72 +690,50 @@ syn keyword xsFunction Perl_hv_eiter_set Perl_hv_fill Perl_hv_free_ent
syn keyword xsFunction Perl_hv_iterinit Perl_hv_iterkey Perl_hv_iterkeysv
syn keyword xsFunction Perl_hv_iternext_flags Perl_hv_iternextsv
syn keyword xsFunction Perl_hv_iterval Perl_hv_ksplit Perl_hv_name_set
-syn keyword xsFunction Perl_hv_placeholders_get Perl_hv_placeholders_p
-syn keyword xsFunction Perl_hv_placeholders_set Perl_hv_riter_p
-syn keyword xsFunction Perl_hv_riter_set Perl_hv_scalar
-syn keyword xsFunction Perl_init_global_struct Perl_init_i18nl10n
-syn keyword xsFunction Perl_init_i18nl14n Perl_init_stacks Perl_init_tm
-syn keyword xsFunction Perl_instr Perl_is_ascii_string Perl_is_lvalue_sub
-syn keyword xsFunction Perl_is_uni_alnum Perl_is_uni_alnum_lc
-syn keyword xsFunction Perl_is_uni_alpha Perl_is_uni_alpha_lc
-syn keyword xsFunction Perl_is_uni_ascii Perl_is_uni_ascii_lc
-syn keyword xsFunction Perl_is_uni_cntrl Perl_is_uni_cntrl_lc
-syn keyword xsFunction Perl_is_uni_digit Perl_is_uni_digit_lc
-syn keyword xsFunction Perl_is_uni_graph Perl_is_uni_graph_lc
-syn keyword xsFunction Perl_is_uni_idfirst Perl_is_uni_idfirst_lc
-syn keyword xsFunction Perl_is_uni_lower Perl_is_uni_lower_lc
-syn keyword xsFunction Perl_is_uni_print Perl_is_uni_print_lc
-syn keyword xsFunction Perl_is_uni_punct Perl_is_uni_punct_lc
-syn keyword xsFunction Perl_is_uni_space Perl_is_uni_space_lc
-syn keyword xsFunction Perl_is_uni_upper Perl_is_uni_upper_lc
-syn keyword xsFunction Perl_is_uni_xdigit Perl_is_uni_xdigit_lc
-syn keyword xsFunction Perl_is_utf8_alnum Perl_is_utf8_alpha
-syn keyword xsFunction Perl_is_utf8_ascii Perl_is_utf8_char_buf
-syn keyword xsFunction Perl_is_utf8_cntrl Perl_is_utf8_digit
-syn keyword xsFunction Perl_is_utf8_graph Perl_is_utf8_idcont
-syn keyword xsFunction Perl_is_utf8_idfirst Perl_is_utf8_lower
-syn keyword xsFunction Perl_is_utf8_mark Perl_is_utf8_perl_space
-syn keyword xsFunction Perl_is_utf8_perl_word Perl_is_utf8_posix_digit
-syn keyword xsFunction Perl_is_utf8_print Perl_is_utf8_punct
-syn keyword xsFunction Perl_is_utf8_space Perl_is_utf8_string
-syn keyword xsFunction Perl_is_utf8_string_loclen Perl_is_utf8_upper
-syn keyword xsFunction Perl_is_utf8_xdigit Perl_is_utf8_xidcont
-syn keyword xsFunction Perl_is_utf8_xidfirst Perl_leave_scope
-syn keyword xsFunction Perl_lex_bufutf8 Perl_lex_discard_to
-syn keyword xsFunction Perl_lex_grow_linestr Perl_lex_next_chunk
-syn keyword xsFunction Perl_lex_peek_unichar Perl_lex_read_space
-syn keyword xsFunction Perl_lex_read_to Perl_lex_read_unichar Perl_lex_start
-syn keyword xsFunction Perl_lex_stuff_pv Perl_lex_stuff_pvn Perl_lex_stuff_sv
-syn keyword xsFunction Perl_lex_unstuff Perl_load_module
-syn keyword xsFunction Perl_load_module_nocontext Perl_looks_like_number
-syn keyword xsFunction Perl_magic_dump Perl_malloc Perl_markstack_grow
-syn keyword xsFunction Perl_mess Perl_mess_nocontext Perl_mess_sv Perl_mfree
-syn keyword xsFunction Perl_mg_clear Perl_mg_copy Perl_mg_dup Perl_mg_find
-syn keyword xsFunction Perl_mg_findext Perl_mg_free Perl_mg_free_type
-syn keyword xsFunction Perl_mg_get Perl_mg_length Perl_mg_magical Perl_mg_set
-syn keyword xsFunction Perl_mg_size Perl_mini_mktime Perl_moreswitches
-syn keyword xsFunction Perl_mro_get_from_name Perl_mro_get_linear_isa
-syn keyword xsFunction Perl_mro_get_private_data Perl_mro_method_changed_in
-syn keyword xsFunction Perl_mro_register Perl_mro_set_mro
-syn keyword xsFunction Perl_mro_set_private_data Perl_my_atof Perl_my_atof2
-syn keyword xsFunction Perl_my_bcopy Perl_my_bzero Perl_my_chsize
-syn keyword xsFunction Perl_my_cxt_index Perl_my_cxt_init Perl_my_dirfd
-syn keyword xsFunction Perl_my_exit Perl_my_failure_exit Perl_my_fflush_all
-syn keyword xsFunction Perl_my_fork Perl_my_htonl Perl_my_memcmp
-syn keyword xsFunction Perl_my_memset Perl_my_ntohl Perl_my_pclose
-syn keyword xsFunction Perl_my_popen Perl_my_popen_list Perl_my_setenv
+syn keyword xsFunction Perl_hv_placeholders_get Perl_hv_placeholders_set
+syn keyword xsFunction Perl_hv_rand_set Perl_hv_riter_p Perl_hv_riter_set
+syn keyword xsFunction Perl_hv_scalar Perl_init_global_struct
+syn keyword xsFunction Perl_init_i18nl10n Perl_init_i18nl14n Perl_init_stacks
+syn keyword xsFunction Perl_init_tm Perl_instr Perl_intro_my
+syn keyword xsFunction Perl_is_invariant_string Perl_is_lvalue_sub
+syn keyword xsFunction Perl_is_utf8_string Perl_is_utf8_string_loclen
+syn keyword xsFunction Perl_isinfnan Perl_leave_scope Perl_lex_bufutf8
+syn keyword xsFunction Perl_lex_discard_to Perl_lex_grow_linestr
+syn keyword xsFunction Perl_lex_next_chunk Perl_lex_peek_unichar
+syn keyword xsFunction Perl_lex_read_space Perl_lex_read_to
+syn keyword xsFunction Perl_lex_read_unichar Perl_lex_start Perl_lex_stuff_pv
+syn keyword xsFunction Perl_lex_stuff_pvn Perl_lex_stuff_sv Perl_lex_unstuff
+syn keyword xsFunction Perl_load_module Perl_load_module_nocontext
+syn keyword xsFunction Perl_looks_like_number Perl_magic_dump Perl_malloc
+syn keyword xsFunction Perl_markstack_grow Perl_mess Perl_mess_nocontext
+syn keyword xsFunction Perl_mess_sv Perl_mfree Perl_mg_clear Perl_mg_copy
+syn keyword xsFunction Perl_mg_dup Perl_mg_find Perl_mg_findext Perl_mg_free
+syn keyword xsFunction Perl_mg_free_type Perl_mg_get Perl_mg_magical
+syn keyword xsFunction Perl_mg_set Perl_mg_size Perl_mini_mktime
+syn keyword xsFunction Perl_moreswitches Perl_mro_get_from_name
+syn keyword xsFunction Perl_mro_get_linear_isa Perl_mro_get_private_data
+syn keyword xsFunction Perl_mro_method_changed_in Perl_mro_register
+syn keyword xsFunction Perl_mro_set_mro Perl_mro_set_private_data
+syn keyword xsFunction Perl_my_atof Perl_my_atof2 Perl_my_bcopy Perl_my_bzero
+syn keyword xsFunction Perl_my_chsize Perl_my_cxt_index Perl_my_cxt_init
+syn keyword xsFunction Perl_my_dirfd Perl_my_exit Perl_my_failure_exit
+syn keyword xsFunction Perl_my_fflush_all Perl_my_fork Perl_my_memcmp
+syn keyword xsFunction Perl_my_memset Perl_my_pclose Perl_my_popen
+syn keyword xsFunction Perl_my_popen_list Perl_my_setenv Perl_my_setlocale
syn keyword xsFunction Perl_my_snprintf Perl_my_socketpair Perl_my_sprintf
-syn keyword xsFunction Perl_my_strftime Perl_my_strlcat Perl_my_strlcpy
-syn keyword xsFunction Perl_my_swap Perl_my_vsnprintf Perl_newANONATTRSUB
+syn keyword xsFunction Perl_my_strerror Perl_my_strftime Perl_my_strlcat
+syn keyword xsFunction Perl_my_strlcpy Perl_my_vsnprintf Perl_newANONATTRSUB
syn keyword xsFunction Perl_newANONHASH Perl_newANONLIST Perl_newANONSUB
-syn keyword xsFunction Perl_newASSIGNOP Perl_newATTRSUB Perl_newAVREF
-syn keyword xsFunction Perl_newBINOP Perl_newCONDOP Perl_newCONSTSUB
-syn keyword xsFunction Perl_newCONSTSUB_flags Perl_newCVREF Perl_newFORM
+syn keyword xsFunction Perl_newASSIGNOP Perl_newAVREF Perl_newBINOP
+syn keyword xsFunction Perl_newCONDOP Perl_newCONSTSUB Perl_newCONSTSUB_flags
+syn keyword xsFunction Perl_newCVREF Perl_newDEFSVOP Perl_newFORM
syn keyword xsFunction Perl_newFOROP Perl_newGIVENOP Perl_newGVOP
syn keyword xsFunction Perl_newGVREF Perl_newGVgen_flags Perl_newHVREF
syn keyword xsFunction Perl_newHVhv Perl_newLISTOP Perl_newLOGOP
-syn keyword xsFunction Perl_newLOOPEX Perl_newLOOPOP Perl_newMYSUB
-syn keyword xsFunction Perl_newNULLLIST Perl_newOP Perl_newPADOP Perl_newPMOP
+syn keyword xsFunction Perl_newLOOPEX Perl_newLOOPOP Perl_newMETHOP
+syn keyword xsFunction Perl_newMETHOP_named Perl_newMYSUB Perl_newNULLLIST
+syn keyword xsFunction Perl_newOP Perl_newPADNAMELIST Perl_newPADNAMEouter
+syn keyword xsFunction Perl_newPADNAMEpvn Perl_newPADOP Perl_newPMOP
syn keyword xsFunction Perl_newPROG Perl_newPVOP Perl_newRANGE Perl_newRV
syn keyword xsFunction Perl_newRV_noinc Perl_newSLICEOP Perl_newSTATEOP
syn keyword xsFunction Perl_newSV Perl_newSVOP Perl_newSVREF Perl_newSV_type
@@ -647,21 +741,24 @@ syn keyword xsFunction Perl_newSVhek Perl_newSViv Perl_newSVnv Perl_newSVpv
syn keyword xsFunction Perl_newSVpv_share Perl_newSVpvf
syn keyword xsFunction Perl_newSVpvf_nocontext Perl_newSVpvn
syn keyword xsFunction Perl_newSVpvn_flags Perl_newSVpvn_share Perl_newSVrv
-syn keyword xsFunction Perl_newSVsv Perl_newSVuv Perl_newUNOP Perl_newWHENOP
-syn keyword xsFunction Perl_newWHILEOP Perl_newXS Perl_newXS_flags
-syn keyword xsFunction Perl_new_collate Perl_new_ctype Perl_new_numeric
-syn keyword xsFunction Perl_new_stackinfo Perl_new_version Perl_ninstr
-syn keyword xsFunction Perl_nothreadhook Perl_op_append_elem
-syn keyword xsFunction Perl_op_append_list Perl_op_contextualize Perl_op_dump
-syn keyword xsFunction Perl_op_free Perl_op_linklist Perl_op_null
-syn keyword xsFunction Perl_op_prepend_elem Perl_op_refcnt_lock
-syn keyword xsFunction Perl_op_refcnt_unlock Perl_op_scope Perl_pack_cat
+syn keyword xsFunction Perl_newSVsv Perl_newSVuv Perl_newUNOP
+syn keyword xsFunction Perl_newUNOP_AUX Perl_newWHENOP Perl_newWHILEOP
+syn keyword xsFunction Perl_newXS Perl_newXS_flags Perl_new_collate
+syn keyword xsFunction Perl_new_ctype Perl_new_numeric Perl_new_stackinfo
+syn keyword xsFunction Perl_new_version Perl_ninstr Perl_nothreadhook
+syn keyword xsFunction Perl_op_append_elem Perl_op_append_list
+syn keyword xsFunction Perl_op_contextualize Perl_op_convert_list
+syn keyword xsFunction Perl_op_dump Perl_op_free Perl_op_linklist
+syn keyword xsFunction Perl_op_null Perl_op_parent Perl_op_prepend_elem
+syn keyword xsFunction Perl_op_refcnt_lock Perl_op_refcnt_unlock
+syn keyword xsFunction Perl_op_scope Perl_op_sibling_splice Perl_pack_cat
syn keyword xsFunction Perl_packlist Perl_pad_add_anon Perl_pad_add_name_pv
syn keyword xsFunction Perl_pad_add_name_pvn Perl_pad_add_name_sv
syn keyword xsFunction Perl_pad_alloc Perl_pad_compname_type
syn keyword xsFunction Perl_pad_findmy_pv Perl_pad_findmy_pvn
syn keyword xsFunction Perl_pad_findmy_sv Perl_pad_new Perl_pad_setsv
-syn keyword xsFunction Perl_pad_sv Perl_pad_tidy Perl_parse_arithexpr
+syn keyword xsFunction Perl_pad_sv Perl_pad_tidy Perl_padnamelist_fetch
+syn keyword xsFunction Perl_padnamelist_store Perl_parse_arithexpr
syn keyword xsFunction Perl_parse_barestmt Perl_parse_block
syn keyword xsFunction Perl_parse_fullexpr Perl_parse_fullstmt
syn keyword xsFunction Perl_parse_label Perl_parse_listexpr
@@ -673,7 +770,9 @@ syn keyword xsFunction Perl_ptr_table_fetch Perl_ptr_table_free
syn keyword xsFunction Perl_ptr_table_new Perl_ptr_table_split
syn keyword xsFunction Perl_ptr_table_store Perl_push_scope Perl_pv_display
syn keyword xsFunction Perl_pv_escape Perl_pv_pretty Perl_pv_uni_display
-syn keyword xsFunction Perl_re_compile Perl_re_dup_guts Perl_re_intuit_start
+syn keyword xsFunction Perl_quadmath_format_needed
+syn keyword xsFunction Perl_quadmath_format_single Perl_re_compile
+syn keyword xsFunction Perl_re_dup_guts Perl_re_intuit_start
syn keyword xsFunction Perl_re_intuit_string Perl_realloc Perl_reentrant_free
syn keyword xsFunction Perl_reentrant_init Perl_reentrant_retry
syn keyword xsFunction Perl_reentrant_size Perl_reg_named_buff_all
@@ -707,37 +806,38 @@ syn keyword xsFunction Perl_savesharedpv Perl_savesharedpvn
syn keyword xsFunction Perl_savesharedsvpv Perl_savestack_grow
syn keyword xsFunction Perl_savestack_grow_cnt Perl_savesvpv Perl_scan_bin
syn keyword xsFunction Perl_scan_hex Perl_scan_num Perl_scan_oct
-syn keyword xsFunction Perl_scan_version Perl_scan_vstring Perl_screaminstr
-syn keyword xsFunction Perl_seed Perl_set_context Perl_set_numeric_local
+syn keyword xsFunction Perl_scan_version Perl_scan_vstring Perl_seed
+syn keyword xsFunction Perl_set_context Perl_set_numeric_local
syn keyword xsFunction Perl_set_numeric_radix Perl_set_numeric_standard
syn keyword xsFunction Perl_setdefout Perl_share_hek Perl_si_dup Perl_sortsv
syn keyword xsFunction Perl_sortsv_flags Perl_ss_dup Perl_stack_grow
-syn keyword xsFunction Perl_start_subparse Perl_stashpv_hvname_match
-syn keyword xsFunction Perl_str_to_version Perl_sv_2bool_flags Perl_sv_2cv
-syn keyword xsFunction Perl_sv_2io Perl_sv_2iv_flags Perl_sv_2mortal
-syn keyword xsFunction Perl_sv_2nv_flags Perl_sv_2pv_flags Perl_sv_2pvbyte
-syn keyword xsFunction Perl_sv_2pvutf8 Perl_sv_2uv_flags Perl_sv_backoff
-syn keyword xsFunction Perl_sv_bless Perl_sv_cat_decode Perl_sv_catpv
-syn keyword xsFunction Perl_sv_catpv_flags Perl_sv_catpv_mg Perl_sv_catpvf
-syn keyword xsFunction Perl_sv_catpvf_mg Perl_sv_catpvf_mg_nocontext
-syn keyword xsFunction Perl_sv_catpvf_nocontext Perl_sv_catpvn_flags
-syn keyword xsFunction Perl_sv_catsv_flags Perl_sv_chop Perl_sv_clear
-syn keyword xsFunction Perl_sv_cmp Perl_sv_cmp_flags Perl_sv_cmp_locale
-syn keyword xsFunction Perl_sv_cmp_locale_flags Perl_sv_collxfrm_flags
-syn keyword xsFunction Perl_sv_copypv Perl_sv_dec Perl_sv_dec_nomg
-syn keyword xsFunction Perl_sv_derived_from Perl_sv_derived_from_pv
-syn keyword xsFunction Perl_sv_derived_from_pvn Perl_sv_derived_from_sv
-syn keyword xsFunction Perl_sv_destroyable Perl_sv_does Perl_sv_does_pv
-syn keyword xsFunction Perl_sv_does_pvn Perl_sv_does_sv Perl_sv_dump
-syn keyword xsFunction Perl_sv_dup Perl_sv_dup_inc Perl_sv_eq_flags
-syn keyword xsFunction Perl_sv_force_normal_flags Perl_sv_free Perl_sv_gets
-syn keyword xsFunction Perl_sv_grow Perl_sv_inc Perl_sv_inc_nomg
-syn keyword xsFunction Perl_sv_insert_flags Perl_sv_isa Perl_sv_isobject
-syn keyword xsFunction Perl_sv_iv Perl_sv_len Perl_sv_len_utf8 Perl_sv_magic
-syn keyword xsFunction Perl_sv_magicext Perl_sv_mortalcopy Perl_sv_newmortal
-syn keyword xsFunction Perl_sv_newref Perl_sv_nosharing Perl_sv_nounlocking
-syn keyword xsFunction Perl_sv_nv Perl_sv_peek Perl_sv_pos_b2u
-syn keyword xsFunction Perl_sv_pos_u2b Perl_sv_pos_u2b_flags Perl_sv_pvbyten
+syn keyword xsFunction Perl_start_subparse Perl_str_to_version
+syn keyword xsFunction Perl_sv_2bool_flags Perl_sv_2cv Perl_sv_2io
+syn keyword xsFunction Perl_sv_2iv_flags Perl_sv_2mortal Perl_sv_2nv_flags
+syn keyword xsFunction Perl_sv_2pv_flags Perl_sv_2pvbyte Perl_sv_2pvutf8
+syn keyword xsFunction Perl_sv_2uv_flags Perl_sv_backoff Perl_sv_bless
+syn keyword xsFunction Perl_sv_cat_decode Perl_sv_catpv Perl_sv_catpv_flags
+syn keyword xsFunction Perl_sv_catpv_mg Perl_sv_catpvf Perl_sv_catpvf_mg
+syn keyword xsFunction Perl_sv_catpvf_mg_nocontext Perl_sv_catpvf_nocontext
+syn keyword xsFunction Perl_sv_catpvn_flags Perl_sv_catsv_flags Perl_sv_chop
+syn keyword xsFunction Perl_sv_clear Perl_sv_cmp Perl_sv_cmp_flags
+syn keyword xsFunction Perl_sv_cmp_locale Perl_sv_cmp_locale_flags
+syn keyword xsFunction Perl_sv_collxfrm_flags Perl_sv_copypv_flags
+syn keyword xsFunction Perl_sv_dec Perl_sv_dec_nomg Perl_sv_derived_from
+syn keyword xsFunction Perl_sv_derived_from_pv Perl_sv_derived_from_pvn
+syn keyword xsFunction Perl_sv_derived_from_sv Perl_sv_destroyable
+syn keyword xsFunction Perl_sv_does Perl_sv_does_pv Perl_sv_does_pvn
+syn keyword xsFunction Perl_sv_does_sv Perl_sv_dump Perl_sv_dup
+syn keyword xsFunction Perl_sv_dup_inc Perl_sv_eq_flags
+syn keyword xsFunction Perl_sv_force_normal_flags Perl_sv_free
+syn keyword xsFunction Perl_sv_get_backrefs Perl_sv_gets Perl_sv_grow
+syn keyword xsFunction Perl_sv_inc Perl_sv_inc_nomg Perl_sv_insert_flags
+syn keyword xsFunction Perl_sv_isa Perl_sv_isobject Perl_sv_iv Perl_sv_len
+syn keyword xsFunction Perl_sv_len_utf8 Perl_sv_magic Perl_sv_magicext
+syn keyword xsFunction Perl_sv_newmortal Perl_sv_newref Perl_sv_nosharing
+syn keyword xsFunction Perl_sv_nounlocking Perl_sv_nv Perl_sv_peek
+syn keyword xsFunction Perl_sv_pos_b2u Perl_sv_pos_b2u_flags Perl_sv_pos_u2b
+syn keyword xsFunction Perl_sv_pos_u2b_flags Perl_sv_pvbyten
syn keyword xsFunction Perl_sv_pvbyten_force Perl_sv_pvn
syn keyword xsFunction Perl_sv_pvn_force_flags Perl_sv_pvn_nomg
syn keyword xsFunction Perl_sv_pvutf8n Perl_sv_pvutf8n_force
@@ -758,67 +858,74 @@ syn keyword xsFunction Perl_sv_usepvn_flags Perl_sv_utf8_decode
syn keyword xsFunction Perl_sv_utf8_downgrade Perl_sv_utf8_encode
syn keyword xsFunction Perl_sv_utf8_upgrade_flags_grow Perl_sv_uv
syn keyword xsFunction Perl_sv_vcatpvf Perl_sv_vcatpvf_mg Perl_sv_vcatpvfn
-syn keyword xsFunction Perl_sv_vsetpvf Perl_sv_vsetpvf_mg Perl_sv_vsetpvfn
-syn keyword xsFunction Perl_swash_fetch Perl_swash_init Perl_sys_init
+syn keyword xsFunction Perl_sv_vcatpvfn_flags Perl_sv_vsetpvf
+syn keyword xsFunction Perl_sv_vsetpvf_mg Perl_sv_vsetpvfn Perl_swash_fetch
+syn keyword xsFunction Perl_swash_init Perl_sync_locale Perl_sys_init
syn keyword xsFunction Perl_sys_init3 Perl_sys_intern_clear
syn keyword xsFunction Perl_sys_intern_dup Perl_sys_intern_init Perl_sys_term
-syn keyword xsFunction Perl_taint_env Perl_taint_proper Perl_tmps_grow
-syn keyword xsFunction Perl_to_uni_lower Perl_to_uni_lower_lc
-syn keyword xsFunction Perl_to_uni_title Perl_to_uni_title_lc
-syn keyword xsFunction Perl_to_uni_upper Perl_to_uni_upper_lc
-syn keyword xsFunction Perl_to_utf8_case Perl_unlnk Perl_unpack_str
-syn keyword xsFunction Perl_unpackstring Perl_unsharepvn Perl_upg_version
-syn keyword xsFunction Perl_utf16_to_utf8 Perl_utf16_to_utf8_reversed
-syn keyword xsFunction Perl_utf8_distance Perl_utf8_hop Perl_utf8_length
-syn keyword xsFunction Perl_utf8_to_bytes Perl_utf8_to_uvchr_buf
-syn keyword xsFunction Perl_utf8_to_uvuni_buf Perl_utf8n_to_uvchr
-syn keyword xsFunction Perl_utf8n_to_uvuni Perl_uvchr_to_utf8
-syn keyword xsFunction Perl_uvchr_to_utf8_flags Perl_uvuni_to_utf8_flags
-syn keyword xsFunction Perl_valid_utf8_to_uvchr Perl_valid_utf8_to_uvuni
+syn keyword xsFunction Perl_taint_env Perl_taint_proper Perl_to_uni_lower
+syn keyword xsFunction Perl_to_uni_title Perl_to_uni_upper Perl_to_utf8_case
+syn keyword xsFunction Perl_unlnk Perl_unpack_str Perl_unpackstring
+syn keyword xsFunction Perl_unsharepvn Perl_upg_version Perl_utf16_to_utf8
+syn keyword xsFunction Perl_utf16_to_utf8_reversed Perl_utf8_distance
+syn keyword xsFunction Perl_utf8_hop Perl_utf8_length Perl_utf8_to_bytes
+syn keyword xsFunction Perl_utf8n_to_uvchr Perl_utf8n_to_uvuni
+syn keyword xsFunction Perl_uvoffuni_to_utf8_flags Perl_uvuni_to_utf8
+syn keyword xsFunction Perl_uvuni_to_utf8_flags Perl_valid_utf8_to_uvchr
syn keyword xsFunction Perl_vcmp Perl_vcroak Perl_vdeb Perl_vform
syn keyword xsFunction Perl_vload_module Perl_vmess Perl_vnewSVpvf
syn keyword xsFunction Perl_vnormal Perl_vnumify Perl_vstringify Perl_vverify
syn keyword xsFunction Perl_vwarn Perl_vwarner Perl_warn Perl_warn_nocontext
syn keyword xsFunction Perl_warn_sv Perl_warner Perl_warner_nocontext
syn keyword xsFunction Perl_whichsig_pv Perl_whichsig_pvn Perl_whichsig_sv
-syn keyword xsFunction Perl_wrap_op_checker Slab_Alloc Slab_Free
-syn keyword xsFunction _is_utf8_quotemeta _to_uni_fold_flags
-syn keyword xsFunction _to_utf8_fold_flags _to_utf8_lower_flags
-syn keyword xsFunction _to_utf8_title_flags _to_utf8_upper_flags amagic_call
-syn keyword xsFunction amagic_deref_call any_dup apply_attrs_string
-syn keyword xsFunction atfork_lock atfork_unlock av_clear av_delete av_exists
-syn keyword xsFunction av_extend av_fetch av_fill av_len av_make av_pop
-syn keyword xsFunction av_push av_shift av_store av_undef av_unshift
-syn keyword xsFunction block_gimme bytes_cmp_utf8 bytes_from_utf8
-syn keyword xsFunction bytes_to_utf8 call_argv call_atexit call_list
-syn keyword xsFunction call_method call_pv call_sv caller_cx cast_i32 cast_iv
-syn keyword xsFunction cast_ulong cast_uv ck_entersub_args_list
-syn keyword xsFunction ck_entersub_args_proto ck_entersub_args_proto_or_list
-syn keyword xsFunction ck_warner ck_warner_d croak croak_no_modify
+syn keyword xsFunction Perl_wrap_op_checker _get_regclass_nonbitmap_data
+syn keyword xsFunction _is_cur_LC_category_utf8 _is_in_locale_category
+syn keyword xsFunction _is_uni_FOO _is_uni_perl_idcont _is_uni_perl_idstart
+syn keyword xsFunction _is_utf8_FOO _is_utf8_char_slow _is_utf8_idcont
+syn keyword xsFunction _is_utf8_idstart _is_utf8_mark _is_utf8_perl_idcont
+syn keyword xsFunction _is_utf8_perl_idstart _is_utf8_xidcont
+syn keyword xsFunction _is_utf8_xidstart _new_invlist_C_array
+syn keyword xsFunction _to_uni_fold_flags _to_utf8_fold_flags
+syn keyword xsFunction _to_utf8_lower_flags _to_utf8_title_flags
+syn keyword xsFunction _to_utf8_upper_flags alloccopstash amagic_call
+syn keyword xsFunction amagic_deref_call any_dup append_utf8_from_native_byte
+syn keyword xsFunction apply_attrs_string atfork_lock atfork_unlock av_clear
+syn keyword xsFunction av_delete av_exists av_extend av_fetch av_fill av_len
+syn keyword xsFunction av_make av_pop av_push av_shift av_store av_top_index
+syn keyword xsFunction av_undef av_unshift block_end block_gimme block_start
+syn keyword xsFunction bytes_cmp_utf8 bytes_from_utf8 bytes_to_utf8 call_argv
+syn keyword xsFunction call_atexit call_list call_method call_pv call_sv
+syn keyword xsFunction caller_cx cast_i32 cast_iv cast_ulong cast_uv
+syn keyword xsFunction ck_entersub_args_list ck_entersub_args_proto
+syn keyword xsFunction ck_entersub_args_proto_or_list ck_warner ck_warner_d
+syn keyword xsFunction croak croak_memory_wrap croak_no_modify
syn keyword xsFunction croak_nocontext croak_sv croak_xs_usage csighandler
syn keyword xsFunction custom_op_desc custom_op_name cv_clone cv_const_sv
-syn keyword xsFunction cv_get_call_checker cv_set_call_checker cv_undef
-syn keyword xsFunction cx_dump cx_dup cxinc deb deb_nocontext debop
-syn keyword xsFunction debprofdump debstack debstackptrs delimcpy
-syn keyword xsFunction despatch_signals die die_nocontext die_sv dirp_dup
-syn keyword xsFunction do_aspawn do_binmode do_close do_gv_dump do_gvgv_dump
-syn keyword xsFunction do_hv_dump do_join do_magic_dump do_op_dump do_open9
-syn keyword xsFunction do_openn do_pmop_dump do_spawn do_spawn_nowait
-syn keyword xsFunction do_sprintf do_sv_dump doing_taint doref dounwind
-syn keyword xsFunction dowantarray dump_all dump_eval dump_fds dump_form
+syn keyword xsFunction cv_get_call_checker cv_name cv_set_call_checker
+syn keyword xsFunction cv_set_call_checker_flags cv_undef cx_dump cx_dup
+syn keyword xsFunction cxinc deb deb_nocontext debop debprofdump debstack
+syn keyword xsFunction debstackptrs delimcpy despatch_signals die
+syn keyword xsFunction die_nocontext die_sv dirp_dup do_aspawn do_binmode
+syn keyword xsFunction do_close do_gv_dump do_gvgv_dump do_hv_dump do_join
+syn keyword xsFunction do_magic_dump do_op_dump do_open9 do_openn
+syn keyword xsFunction do_pmop_dump do_spawn do_spawn_nowait do_sprintf
+syn keyword xsFunction do_sv_dump doing_taint doref dounwind dowantarray
+syn keyword xsFunction dump_all dump_c_backtrace dump_eval dump_form
syn keyword xsFunction dump_indent dump_mstats dump_packsubs dump_sub
syn keyword xsFunction dump_vindent eval_pv eval_sv fbm_compile fbm_instr
syn keyword xsFunction filter_add filter_del filter_read find_runcv
syn keyword xsFunction find_rundefsv foldEQ foldEQ_latin1 foldEQ_locale
syn keyword xsFunction foldEQ_utf8_flags form form_nocontext fp_dup
syn keyword xsFunction fprintf_nocontext free_global_struct free_tmps get_av
-syn keyword xsFunction get_context get_cv get_cvn_flags get_hv get_mstats
-syn keyword xsFunction get_op_descs get_op_names get_ppaddr get_sv get_vtbl
-syn keyword xsFunction getcwd_sv gp_dup gp_free gp_ref grok_bin grok_hex
-syn keyword xsFunction grok_number grok_numeric_radix grok_oct gv_add_by_type
-syn keyword xsFunction gv_autoload_pv gv_autoload_pvn gv_autoload_sv gv_check
-syn keyword xsFunction gv_const_sv gv_dump gv_efullname gv_efullname4
-syn keyword xsFunction gv_fetchfile gv_fetchfile_flags gv_fetchmeth_pv
+syn keyword xsFunction get_c_backtrace_dump get_context get_cv get_cvn_flags
+syn keyword xsFunction get_hv get_mstats get_op_descs get_op_names get_ppaddr
+syn keyword xsFunction get_sv get_vtbl getcwd_sv gp_dup gp_free gp_ref
+syn keyword xsFunction grok_bin grok_hex grok_infnan grok_number
+syn keyword xsFunction grok_number_flags grok_numeric_radix grok_oct
+syn keyword xsFunction gv_add_by_type gv_autoload_pv gv_autoload_pvn
+syn keyword xsFunction gv_autoload_sv gv_check gv_const_sv gv_dump
+syn keyword xsFunction gv_efullname gv_efullname4 gv_fetchfile
+syn keyword xsFunction gv_fetchfile_flags gv_fetchmeth_pv
syn keyword xsFunction gv_fetchmeth_pv_autoload gv_fetchmeth_pvn
syn keyword xsFunction gv_fetchmeth_pvn_autoload gv_fetchmeth_sv
syn keyword xsFunction gv_fetchmeth_sv_autoload gv_fetchmethod_autoload
@@ -831,118 +938,106 @@ syn keyword xsFunction hv_clear hv_clear_placeholders hv_common
syn keyword xsFunction hv_common_key_len hv_copy_hints_hv hv_delayfree_ent
syn keyword xsFunction hv_free_ent hv_iterinit hv_iterkey hv_iterkeysv
syn keyword xsFunction hv_iternext_flags hv_iternextsv hv_iterval hv_ksplit
-syn keyword xsFunction hv_name_set hv_scalar init_global_struct init_i18nl10n
-syn keyword xsFunction init_i18nl14n init_stacks init_tm instr
-syn keyword xsFunction is_ascii_string is_lvalue_sub is_uni_alnum
-syn keyword xsFunction is_uni_alnum_lc is_uni_alpha is_uni_alpha_lc
-syn keyword xsFunction is_uni_ascii is_uni_ascii_lc is_uni_cntrl
-syn keyword xsFunction is_uni_cntrl_lc is_uni_digit is_uni_digit_lc
-syn keyword xsFunction is_uni_graph is_uni_graph_lc is_uni_idfirst
-syn keyword xsFunction is_uni_idfirst_lc is_uni_lower is_uni_lower_lc
-syn keyword xsFunction is_uni_print is_uni_print_lc is_uni_punct
-syn keyword xsFunction is_uni_punct_lc is_uni_space is_uni_space_lc
-syn keyword xsFunction is_uni_upper is_uni_upper_lc is_uni_xdigit
-syn keyword xsFunction is_uni_xdigit_lc is_utf8_alnum is_utf8_alpha
-syn keyword xsFunction is_utf8_ascii is_utf8_char_buf is_utf8_cntrl
-syn keyword xsFunction is_utf8_digit is_utf8_graph is_utf8_idcont
-syn keyword xsFunction is_utf8_idfirst is_utf8_lower is_utf8_mark
-syn keyword xsFunction is_utf8_perl_space is_utf8_perl_word
-syn keyword xsFunction is_utf8_posix_digit is_utf8_print is_utf8_punct
-syn keyword xsFunction is_utf8_space is_utf8_string is_utf8_string_loclen
-syn keyword xsFunction is_utf8_upper is_utf8_xdigit is_utf8_xidcont
-syn keyword xsFunction is_utf8_xidfirst leave_scope lex_bufutf8
-syn keyword xsFunction lex_discard_to lex_grow_linestr lex_next_chunk
-syn keyword xsFunction lex_peek_unichar lex_read_space lex_read_to
-syn keyword xsFunction lex_read_unichar lex_start lex_stuff_pv lex_stuff_pvn
-syn keyword xsFunction lex_stuff_sv lex_unstuff load_module
-syn keyword xsFunction load_module_nocontext looks_like_number magic_dump
-syn keyword xsFunction markstack_grow mess mess_nocontext mess_sv mg_clear
-syn keyword xsFunction mg_copy mg_dup mg_find mg_findext mg_free mg_free_type
-syn keyword xsFunction mg_get mg_length mg_magical mg_set mg_size mini_mktime
-syn keyword xsFunction moreswitches mro_get_linear_isa mro_method_changed_in
-syn keyword xsFunction my_atof my_atof2 my_bcopy my_bzero my_chsize my_dirfd
-syn keyword xsFunction my_exit my_failure_exit my_fflush_all my_fork my_htonl
-syn keyword xsFunction my_memcmp my_memset my_ntohl my_pclose my_popen
-syn keyword xsFunction my_popen_list my_setenv my_socketpair my_strftime
-syn keyword xsFunction my_swap newANONATTRSUB newANONHASH newANONLIST
-syn keyword xsFunction newANONSUB newASSIGNOP newATTRSUB newAVREF newBINOP
-syn keyword xsFunction newCONDOP newCONSTSUB newCONSTSUB_flags newCVREF
-syn keyword xsFunction newFORM newFOROP newGIVENOP newGVOP newGVREF
-syn keyword xsFunction newGVgen_flags newHVREF newHVhv newLISTOP newLOGOP
-syn keyword xsFunction newLOOPEX newLOOPOP newMYSUB newNULLLIST newOP
-syn keyword xsFunction newPADOP newPMOP newPROG newPVOP newRANGE newRV
-syn keyword xsFunction newRV_noinc newSLICEOP newSTATEOP newSV newSVOP
-syn keyword xsFunction newSVREF newSV_type newSVhek newSViv newSVnv newSVpv
+syn keyword xsFunction hv_name_set hv_rand_set hv_scalar init_global_struct
+syn keyword xsFunction init_i18nl10n init_i18nl14n init_stacks init_tm instr
+syn keyword xsFunction intro_my is_invariant_string is_lvalue_sub
+syn keyword xsFunction is_safe_syscall is_utf8_string is_utf8_string_loclen
+syn keyword xsFunction isinfnan leave_scope lex_bufutf8 lex_discard_to
+syn keyword xsFunction lex_grow_linestr lex_next_chunk lex_peek_unichar
+syn keyword xsFunction lex_read_space lex_read_to lex_read_unichar lex_start
+syn keyword xsFunction lex_stuff_pv lex_stuff_pvn lex_stuff_sv lex_unstuff
+syn keyword xsFunction load_module load_module_nocontext looks_like_number
+syn keyword xsFunction magic_dump markstack_grow mess mess_nocontext mess_sv
+syn keyword xsFunction mg_clear mg_copy mg_dup mg_find mg_findext mg_free
+syn keyword xsFunction mg_free_type mg_get mg_magical mg_set mg_size
+syn keyword xsFunction mini_mktime moreswitches mro_get_linear_isa
+syn keyword xsFunction mro_method_changed_in my_atof my_atof2 my_bcopy
+syn keyword xsFunction my_bzero my_chsize my_dirfd my_exit my_failure_exit
+syn keyword xsFunction my_fflush_all my_fork my_memcmp my_memset my_pclose
+syn keyword xsFunction my_popen my_popen_list my_setenv my_setlocale
+syn keyword xsFunction my_socketpair my_strerror my_strftime newANONATTRSUB
+syn keyword xsFunction newANONHASH newANONLIST newANONSUB newASSIGNOP
+syn keyword xsFunction newAVREF newBINOP newCONDOP newCONSTSUB
+syn keyword xsFunction newCONSTSUB_flags newCVREF newDEFSVOP newFORM newFOROP
+syn keyword xsFunction newGIVENOP newGVOP newGVREF newGVgen_flags newHVREF
+syn keyword xsFunction newHVhv newLISTOP newLOGOP newLOOPEX newLOOPOP
+syn keyword xsFunction newMETHOP newMETHOP_named newMYSUB newNULLLIST newOP
+syn keyword xsFunction newPADNAMELIST newPADNAMEouter newPADNAMEpvn newPADOP
+syn keyword xsFunction newPMOP newPROG newPVOP newRANGE newRV newRV_noinc
+syn keyword xsFunction newSLICEOP newSTATEOP newSV newSVOP newSVREF
+syn keyword xsFunction newSV_type newSVhek newSViv newSVnv newSVpv
syn keyword xsFunction newSVpv_share newSVpvf newSVpvf_nocontext newSVpvn
syn keyword xsFunction newSVpvn_flags newSVpvn_share newSVrv newSVsv newSVuv
-syn keyword xsFunction newUNOP newWHENOP newWHILEOP newXS newXS_flags
-syn keyword xsFunction new_collate new_ctype new_numeric new_stackinfo
-syn keyword xsFunction new_version ninstr nothreadhook op_append_elem
-syn keyword xsFunction op_append_list op_contextualize op_dump op_free
-syn keyword xsFunction op_linklist op_null op_prepend_elem op_refcnt_lock
-syn keyword xsFunction op_refcnt_unlock op_scope pack_cat packlist
-syn keyword xsFunction pad_add_anon pad_add_name_pv pad_add_name_pvn
+syn keyword xsFunction newUNOP newUNOP_AUX newWHENOP newWHILEOP newXS
+syn keyword xsFunction newXS_flags new_collate new_ctype new_numeric
+syn keyword xsFunction new_stackinfo new_version ninstr nothreadhook
+syn keyword xsFunction op_append_elem op_append_list op_contextualize
+syn keyword xsFunction op_convert_list op_dump op_free op_linklist op_null
+syn keyword xsFunction op_parent op_prepend_elem op_refcnt_lock
+syn keyword xsFunction op_refcnt_unlock op_scope op_sibling_splice pack_cat
+syn keyword xsFunction packlist pad_add_anon pad_add_name_pv pad_add_name_pvn
syn keyword xsFunction pad_add_name_sv pad_alloc pad_compname_type
syn keyword xsFunction pad_findmy_pv pad_findmy_pvn pad_findmy_sv pad_new
-syn keyword xsFunction pad_setsv pad_sv pad_tidy parse_arithexpr
-syn keyword xsFunction parse_barestmt parse_block parse_fullexpr
-syn keyword xsFunction parse_fullstmt parse_label parse_listexpr
-syn keyword xsFunction parse_stmtseq parse_termexpr parser_dup pmop_dump
-syn keyword xsFunction pop_scope pregcomp pregexec pregfree pregfree2
-syn keyword xsFunction prescan_version printf_nocontext ptr_table_fetch
-syn keyword xsFunction ptr_table_free ptr_table_new ptr_table_split
-syn keyword xsFunction ptr_table_store push_scope pv_display pv_escape
-syn keyword xsFunction pv_pretty pv_uni_display re_compile re_dup_guts
-syn keyword xsFunction re_intuit_start re_intuit_string reentrant_free
-syn keyword xsFunction reentrant_init reentrant_retry reentrant_size
-syn keyword xsFunction reg_named_buff_all reg_named_buff_exists
-syn keyword xsFunction reg_named_buff_fetch reg_named_buff_firstkey
-syn keyword xsFunction reg_named_buff_nextkey reg_named_buff_scalar
-syn keyword xsFunction regclass_swash regdump regdupe_internal regexec_flags
-syn keyword xsFunction regfree_internal reginitcolors regnext repeatcpy
-syn keyword xsFunction require_pv rninstr rsignal rsignal_state runops_debug
-syn keyword xsFunction runops_standard rv2cv_op_cv rvpv_dup safesyscalloc
-syn keyword xsFunction safesysfree safesysmalloc safesysrealloc save_I16
-syn keyword xsFunction save_I32 save_I8 save_adelete save_aelem_flags
-syn keyword xsFunction save_alloc save_aptr save_ary save_bool save_clearsv
-syn keyword xsFunction save_delete save_destructor save_destructor_x
-syn keyword xsFunction save_generic_pvref save_generic_svref save_gp
-syn keyword xsFunction save_hash save_hdelete save_helem_flags save_hints
-syn keyword xsFunction save_hptr save_int save_item save_iv save_list
-syn keyword xsFunction save_long save_nogv save_padsv_and_mortalize save_pptr
-syn keyword xsFunction save_pushi32ptr save_pushptr save_pushptrptr
-syn keyword xsFunction save_re_context save_scalar save_set_svflags
-syn keyword xsFunction save_shared_pvref save_sptr save_svref save_vptr
-syn keyword xsFunction savepv savepvn savesharedpv savesharedpvn
-syn keyword xsFunction savesharedsvpv savestack_grow savestack_grow_cnt
-syn keyword xsFunction savesvpv scan_bin scan_hex scan_num scan_oct
-syn keyword xsFunction scan_version scan_vstring screaminstr seed set_context
-syn keyword xsFunction set_numeric_local set_numeric_radix
+syn keyword xsFunction pad_setsv pad_sv pad_tidy padnamelist_fetch
+syn keyword xsFunction padnamelist_store parse_arithexpr parse_barestmt
+syn keyword xsFunction parse_block parse_fullexpr parse_fullstmt parse_label
+syn keyword xsFunction parse_listexpr parse_stmtseq parse_termexpr parser_dup
+syn keyword xsFunction pmop_dump pop_scope pregcomp pregexec pregfree
+syn keyword xsFunction pregfree2 prescan_version printf_nocontext
+syn keyword xsFunction ptr_table_fetch ptr_table_free ptr_table_new
+syn keyword xsFunction ptr_table_split ptr_table_store push_scope pv_display
+syn keyword xsFunction pv_escape pv_pretty pv_uni_display
+syn keyword xsFunction quadmath_format_needed quadmath_format_single
+syn keyword xsFunction re_compile re_dup_guts re_intuit_start
+syn keyword xsFunction re_intuit_string reentrant_free reentrant_init
+syn keyword xsFunction reentrant_retry reentrant_size reg_named_buff_all
+syn keyword xsFunction reg_named_buff_exists reg_named_buff_fetch
+syn keyword xsFunction reg_named_buff_firstkey reg_named_buff_nextkey
+syn keyword xsFunction reg_named_buff_scalar regclass_swash regdump
+syn keyword xsFunction regdupe_internal regexec_flags regfree_internal
+syn keyword xsFunction reginitcolors regnext repeatcpy require_pv rninstr
+syn keyword xsFunction rsignal rsignal_state runops_debug runops_standard
+syn keyword xsFunction rv2cv_op_cv rvpv_dup safesyscalloc safesysfree
+syn keyword xsFunction safesysmalloc safesysrealloc save_I16 save_I32 save_I8
+syn keyword xsFunction save_adelete save_aelem_flags save_alloc save_aptr
+syn keyword xsFunction save_ary save_bool save_clearsv save_delete
+syn keyword xsFunction save_destructor save_destructor_x save_generic_pvref
+syn keyword xsFunction save_generic_svref save_gp save_hash save_hdelete
+syn keyword xsFunction save_helem_flags save_hints save_hptr save_int
+syn keyword xsFunction save_item save_iv save_list save_long save_nogv
+syn keyword xsFunction save_padsv_and_mortalize save_pptr save_pushi32ptr
+syn keyword xsFunction save_pushptr save_pushptrptr save_re_context
+syn keyword xsFunction save_scalar save_set_svflags save_shared_pvref
+syn keyword xsFunction save_sptr save_svref save_vptr savepv savepvn
+syn keyword xsFunction savesharedpv savesharedpvn savesharedsvpv
+syn keyword xsFunction savestack_grow savestack_grow_cnt savesvpv scan_bin
+syn keyword xsFunction scan_hex scan_num scan_oct scan_version scan_vstring
+syn keyword xsFunction seed set_context set_numeric_local set_numeric_radix
syn keyword xsFunction set_numeric_standard setdefout share_hek si_dup sortsv
syn keyword xsFunction sortsv_flags ss_dup stack_grow start_subparse
-syn keyword xsFunction stashpv_hvname_match str_to_version sv_2bool_flags
-syn keyword xsFunction sv_2cv sv_2io sv_2iv_flags sv_2mortal sv_2nv_flags
-syn keyword xsFunction sv_2pv_flags sv_2pvbyte sv_2pvutf8 sv_2uv_flags
-syn keyword xsFunction sv_backoff sv_bless sv_cat_decode sv_catpv
-syn keyword xsFunction sv_catpv_flags sv_catpv_mg sv_catpvf sv_catpvf_mg
-syn keyword xsFunction sv_catpvf_mg_nocontext sv_catpvf_nocontext
-syn keyword xsFunction sv_catpvn_flags sv_catsv_flags sv_chop sv_clear
-syn keyword xsFunction sv_cmp_flags sv_cmp_locale_flags sv_collxfrm_flags
-syn keyword xsFunction sv_copypv sv_dec sv_dec_nomg sv_derived_from
-syn keyword xsFunction sv_derived_from_pv sv_derived_from_pvn
+syn keyword xsFunction str_to_version sv_2bool_flags sv_2cv sv_2io
+syn keyword xsFunction sv_2iv_flags sv_2mortal sv_2nv_flags sv_2pv_flags
+syn keyword xsFunction sv_2pvbyte sv_2pvutf8 sv_2uv_flags sv_backoff sv_bless
+syn keyword xsFunction sv_cat_decode sv_catpv sv_catpv_flags sv_catpv_mg
+syn keyword xsFunction sv_catpvf sv_catpvf_mg sv_catpvf_mg_nocontext
+syn keyword xsFunction sv_catpvf_nocontext sv_catpvn_flags sv_catsv_flags
+syn keyword xsFunction sv_chop sv_clear sv_cmp_flags sv_cmp_locale_flags
+syn keyword xsFunction sv_collxfrm_flags sv_copypv_flags sv_dec sv_dec_nomg
+syn keyword xsFunction sv_derived_from sv_derived_from_pv sv_derived_from_pvn
syn keyword xsFunction sv_derived_from_sv sv_destroyable sv_does sv_does_pv
syn keyword xsFunction sv_does_pvn sv_does_sv sv_dump sv_dup sv_dup_inc
-syn keyword xsFunction sv_eq_flags sv_force_normal_flags sv_free sv_gets
-syn keyword xsFunction sv_grow sv_inc sv_inc_nomg sv_insert_flags sv_isa
-syn keyword xsFunction sv_isobject sv_iv sv_len sv_len_utf8 sv_magic
-syn keyword xsFunction sv_magicext sv_mortalcopy sv_newmortal sv_newref
-syn keyword xsFunction sv_nosharing sv_nounlocking sv_nv sv_peek sv_pos_b2u
-syn keyword xsFunction sv_pos_u2b sv_pos_u2b_flags sv_pvbyten
-syn keyword xsFunction sv_pvbyten_force sv_pvn sv_pvn_force_flags sv_pvn_nomg
-syn keyword xsFunction sv_pvutf8n sv_pvutf8n_force sv_recode_to_utf8
-syn keyword xsFunction sv_reftype sv_replace sv_report_used sv_reset
-syn keyword xsFunction sv_rvweaken sv_setiv sv_setiv_mg sv_setnv sv_setnv_mg
-syn keyword xsFunction sv_setpv sv_setpv_mg sv_setpvf sv_setpvf_mg
+syn keyword xsFunction sv_eq_flags sv_force_normal_flags sv_free
+syn keyword xsFunction sv_get_backrefs sv_gets sv_grow sv_inc sv_inc_nomg
+syn keyword xsFunction sv_insert_flags sv_isa sv_isobject sv_iv sv_len
+syn keyword xsFunction sv_len_utf8 sv_magic sv_magicext sv_newmortal
+syn keyword xsFunction sv_newref sv_nosharing sv_nounlocking sv_nv sv_peek
+syn keyword xsFunction sv_pos_b2u sv_pos_b2u_flags sv_pos_u2b
+syn keyword xsFunction sv_pos_u2b_flags sv_pvbyten sv_pvbyten_force sv_pvn
+syn keyword xsFunction sv_pvn_force_flags sv_pvn_nomg sv_pvutf8n
+syn keyword xsFunction sv_pvutf8n_force sv_recode_to_utf8 sv_reftype
+syn keyword xsFunction sv_replace sv_report_used sv_reset sv_rvweaken
+syn keyword xsFunction sv_setiv sv_setiv_mg sv_setnv sv_setnv_mg sv_setpv
+syn keyword xsFunction sv_setpv_mg sv_setpvf sv_setpvf_mg
syn keyword xsFunction sv_setpvf_mg_nocontext sv_setpvf_nocontext sv_setpviv
syn keyword xsFunction sv_setpviv_mg sv_setpvn sv_setpvn_mg sv_setref_iv
syn keyword xsFunction sv_setref_nv sv_setref_pv sv_setref_pvn sv_setref_uv
@@ -951,18 +1046,16 @@ syn keyword xsFunction sv_tainted sv_true sv_uni_display sv_unmagic
syn keyword xsFunction sv_unmagicext sv_unref_flags sv_untaint sv_upgrade
syn keyword xsFunction sv_usepvn_flags sv_utf8_decode sv_utf8_downgrade
syn keyword xsFunction sv_utf8_encode sv_utf8_upgrade_flags_grow sv_uv
-syn keyword xsFunction sv_vcatpvf sv_vcatpvf_mg sv_vcatpvfn sv_vsetpvf
-syn keyword xsFunction sv_vsetpvf_mg sv_vsetpvfn swash_fetch swash_init
-syn keyword xsFunction sys_intern_clear sys_intern_dup sys_intern_init
-syn keyword xsFunction taint_env taint_proper tmps_grow to_uni_lower
-syn keyword xsFunction to_uni_lower_lc to_uni_title to_uni_title_lc
-syn keyword xsFunction to_uni_upper to_uni_upper_lc to_utf8_case unlnk
+syn keyword xsFunction sv_vcatpvf sv_vcatpvf_mg sv_vcatpvfn sv_vcatpvfn_flags
+syn keyword xsFunction sv_vsetpvf sv_vsetpvf_mg sv_vsetpvfn swash_fetch
+syn keyword xsFunction swash_init sync_locale sys_intern_clear sys_intern_dup
+syn keyword xsFunction sys_intern_init taint_env taint_proper to_uni_lower
+syn keyword xsFunction to_uni_title to_uni_upper to_utf8_case unlnk
syn keyword xsFunction unpack_str unpackstring unsharepvn upg_version
syn keyword xsFunction utf16_to_utf8 utf16_to_utf8_reversed utf8_distance
-syn keyword xsFunction utf8_hop utf8_length utf8_to_bytes utf8_to_uvchr_buf
-syn keyword xsFunction utf8_to_uvuni_buf utf8n_to_uvchr utf8n_to_uvuni
-syn keyword xsFunction uvchr_to_utf8 uvchr_to_utf8_flags uvuni_to_utf8_flags
-syn keyword xsFunction valid_utf8_to_uvchr valid_utf8_to_uvuni vcmp vcroak
+syn keyword xsFunction utf8_hop utf8_length utf8_to_bytes utf8n_to_uvchr
+syn keyword xsFunction utf8n_to_uvuni uvoffuni_to_utf8_flags uvuni_to_utf8
+syn keyword xsFunction uvuni_to_utf8_flags valid_utf8_to_uvchr vcmp vcroak
syn keyword xsFunction vdeb vform vload_module vmess vnewSVpvf vnormal
syn keyword xsFunction vnumify vstringify vverify vwarn vwarner warn
syn keyword xsFunction warn_nocontext warn_sv warner warner_nocontext
@@ -971,149 +1064,165 @@ syn keyword xsVariable MARK MY_CXT ORIGMARK PL_I PL_No PL_Vars PL_VarsPtr
syn keyword xsVariable PL_Yes PL_a2e PL_bincompat_options PL_bitcount
syn keyword xsVariable PL_block_type PL_bufend PL_bufptr PL_charclass
syn keyword xsVariable PL_check PL_copline PL_core_reg_engine PL_cshname
-syn keyword xsVariable PL_curforce PL_e2a PL_e2utf PL_endwhite PL_error_count
-syn keyword xsVariable PL_expect PL_faketokens PL_fold PL_fold_latin1
-syn keyword xsVariable PL_fold_locale PL_force_link_funcs PL_freq
-syn keyword xsVariable PL_global_struct_size PL_hexdigit PL_in_my
-syn keyword xsVariable PL_in_my_stash PL_interp_size PL_interp_size_5_16_0
-syn keyword xsVariable PL_last_lop PL_last_lop_op PL_last_uni PL_lasttoke
-syn keyword xsVariable PL_latin1_lc PL_lex_allbrackets PL_lex_brackets
-syn keyword xsVariable PL_lex_brackstack PL_lex_casemods PL_lex_casestack
-syn keyword xsVariable PL_lex_defer PL_lex_dojoin PL_lex_expect
-syn keyword xsVariable PL_lex_fakeeof PL_lex_formbrack PL_lex_inpat
-syn keyword xsVariable PL_lex_inwhat PL_lex_op PL_lex_repl PL_lex_starts
-syn keyword xsVariable PL_lex_state PL_lex_stuff PL_linestart PL_linestr
-syn keyword xsVariable PL_magic_data PL_magic_vtable_names PL_memory_wrap
-syn keyword xsVariable PL_mod_latin1_uc PL_multi_close PL_multi_end
-syn keyword xsVariable PL_multi_open PL_multi_start PL_nexttoke PL_nexttype
-syn keyword xsVariable PL_nextval PL_nextwhite PL_no_aelem PL_no_dir_func
+syn keyword xsVariable PL_e2a PL_e2utf PL_error_count PL_expect PL_fold
+syn keyword xsVariable PL_fold_latin1 PL_fold_locale PL_force_link_funcs
+syn keyword xsVariable PL_freq PL_global_struct_size PL_hexdigit PL_in_my
+syn keyword xsVariable PL_in_my_stash PL_interp_size PL_interp_size_5_18_0
+syn keyword xsVariable PL_last_lop PL_last_lop_op PL_last_uni PL_latin1_lc
+syn keyword xsVariable PL_lex_allbrackets PL_lex_brackets PL_lex_brackstack
+syn keyword xsVariable PL_lex_casemods PL_lex_casestack PL_lex_defer
+syn keyword xsVariable PL_lex_dojoin PL_lex_fakeeof PL_lex_formbrack
+syn keyword xsVariable PL_lex_inpat PL_lex_inwhat PL_lex_op PL_lex_repl
+syn keyword xsVariable PL_lex_starts PL_lex_state PL_lex_stuff PL_linestart
+syn keyword xsVariable PL_linestr PL_magic_data PL_magic_vtable_names
+syn keyword xsVariable PL_memory_wrap PL_mod_latin1_uc PL_multi_close
+syn keyword xsVariable PL_multi_end PL_multi_open PL_multi_start PL_nexttoke
+syn keyword xsVariable PL_nexttype PL_nextval PL_no_aelem PL_no_dir_func
syn keyword xsVariable PL_no_func PL_no_helem_sv PL_no_localize_ref PL_no_mem
syn keyword xsVariable PL_no_modify PL_no_myglob PL_no_security
syn keyword xsVariable PL_no_sock_func PL_no_symref PL_no_symref_sv
syn keyword xsVariable PL_no_usym PL_no_wrongref PL_oldbufptr PL_oldoldbufptr
-syn keyword xsVariable PL_op_desc PL_op_name PL_opargs PL_pending_ident
+syn keyword xsVariable PL_op_desc PL_op_name PL_op_private_bitdef_ix
+syn keyword xsVariable PL_op_private_bitdefs PL_op_private_bitfields
+syn keyword xsVariable PL_op_private_labels PL_op_private_valid PL_opargs
syn keyword xsVariable PL_phase_names PL_ppaddr PL_preambled
-syn keyword xsVariable PL_realtokenstart PL_reg_extflags_name PL_reg_name
+syn keyword xsVariable PL_reg_extflags_name PL_reg_intflags_name PL_reg_name
syn keyword xsVariable PL_regkind PL_revision PL_rsfp PL_rsfp_filters
syn keyword xsVariable PL_runops_dbg PL_runops_std PL_sh_path PL_sig_name
-syn keyword xsVariable PL_sig_num PL_simple PL_simple_bitmask PL_skipwhite
-syn keyword xsVariable PL_sublex_info PL_subversion PL_thisclose PL_thismad
-syn keyword xsVariable PL_thisopen PL_thisstuff PL_thistoken PL_thiswhite
-syn keyword xsVariable PL_tokenbuf PL_utf2e PL_utf8skip PL_uudmap PL_uuemap
-syn keyword xsVariable PL_valid_types_IVX PL_valid_types_IV_set
-syn keyword xsVariable PL_valid_types_NVX PL_valid_types_NV_set
-syn keyword xsVariable PL_valid_types_PVX PL_valid_types_RV PL_varies
-syn keyword xsVariable PL_varies_bitmask PL_version PL_warn_nl PL_warn_nosemi
-syn keyword xsVariable PL_warn_reserved PL_warn_uninit PL_warn_uninit_sv
-syn keyword xsVariable RETVAL SP TARG _aMY_CXT _aTHX aMY_CXT aMY_CXT_ aTHX
-syn keyword xsVariable aTHX_ items
+syn keyword xsVariable PL_sig_num PL_simple PL_simple_bitmask PL_sublex_info
+syn keyword xsVariable PL_subversion PL_tokenbuf PL_utf2e PL_utf8skip
+syn keyword xsVariable PL_uudmap PL_uuemap PL_valid_types_IVX
+syn keyword xsVariable PL_valid_types_IV_set PL_valid_types_NVX
+syn keyword xsVariable PL_valid_types_NV_set PL_valid_types_PVX
+syn keyword xsVariable PL_valid_types_RV PL_varies PL_varies_bitmask
+syn keyword xsVariable PL_version PL_warn_nl PL_warn_nosemi PL_warn_reserved
+syn keyword xsVariable PL_warn_uninit PL_warn_uninit_sv RETVAL SP TARG
+syn keyword xsVariable _aMY_CXT _aTHX aMY_CXT aMY_CXT_ aTHX aTHX_ items
syn keyword xsMacro ABORT ACCEPT ADDOP AHOCORASICK AHOCORASICKC
-syn keyword xsMacro ALLOC_THREAD_KEY ALNUM ALNUMA ALNUML ALNUMU AMG_CALLun
-syn keyword xsMacro AMG_CALLunary AMGf_assign AMGf_noleft AMGf_noright
-syn keyword xsMacro AMGf_numeric AMGf_set AMGf_unary AMGfallNEVER AMGfallNO
+syn keyword xsMacro ALLOC_THREAD_KEY AMG_CALLun AMG_CALLunary AMGf_assign
+syn keyword xsMacro AMGf_noleft AMGf_noright AMGf_numarg AMGf_numeric
+syn keyword xsMacro AMGf_set AMGf_unary AMGf_want_list AMGfallNEVER AMGfallNO
syn keyword xsMacro AMGfallYES AMT_AMAGIC AMT_AMAGIC_off AMT_AMAGIC_on
-syn keyword xsMacro AMT_OVERLOADED AMT_OVERLOADED_off AMT_OVERLOADED_on
-syn keyword xsMacro AMTf_AMAGIC AMTf_OVERLOADED ANDAND ANDOP ANONSUB ANYOF
-syn keyword xsMacro ANYOFV ANYOF_ALNUM ANYOF_ALNUMC ANYOF_ALNUML ANYOF_ALPHA
-syn keyword xsMacro ANYOF_ASCII ANYOF_BIT ANYOF_BITMAP ANYOF_BITMAP_BYTE
-syn keyword xsMacro ANYOF_BITMAP_CLEAR ANYOF_BITMAP_CLEARALL ANYOF_BITMAP_SET
+syn keyword xsMacro AMTf_AMAGIC ANDAND ANDOP ANGSTROM_SIGN ANONSUB ANYOF
+syn keyword xsMacro ANYOFL ANYOF_ALNUM ANYOF_ALNUML ANYOF_ALPHA
+syn keyword xsMacro ANYOF_ALPHANUMERIC ANYOF_ASCII ANYOF_BIT ANYOF_BITMAP
+syn keyword xsMacro ANYOF_BITMAP_BYTE ANYOF_BITMAP_CLEAR
+syn keyword xsMacro ANYOF_BITMAP_CLEARALL ANYOF_BITMAP_SET
syn keyword xsMacro ANYOF_BITMAP_SETALL ANYOF_BITMAP_SIZE ANYOF_BITMAP_TEST
-syn keyword xsMacro ANYOF_BITMAP_TESTALLSET ANYOF_BITMAP_ZERO ANYOF_BLANK
-syn keyword xsMacro ANYOF_CLASS ANYOF_CLASSBITMAP_SIZE ANYOF_CLASS_BYTE
-syn keyword xsMacro ANYOF_CLASS_CLEAR ANYOF_CLASS_SET ANYOF_CLASS_SETALL
-syn keyword xsMacro ANYOF_CLASS_SIZE ANYOF_CLASS_SKIP ANYOF_CLASS_TEST
+syn keyword xsMacro ANYOF_BITMAP_ZERO ANYOF_BLANK ANYOF_CASED
+syn keyword xsMacro ANYOF_CLASS_CLEAR ANYOF_CLASS_OR ANYOF_CLASS_SET
+syn keyword xsMacro ANYOF_CLASS_SETALL ANYOF_CLASS_TEST
syn keyword xsMacro ANYOF_CLASS_TEST_ANY_SET ANYOF_CLASS_ZERO ANYOF_CNTRL
-syn keyword xsMacro ANYOF_DIGIT ANYOF_EOS ANYOF_FLAGS ANYOF_FLAGS_ALL
-syn keyword xsMacro ANYOF_FOLD_SHARP_S ANYOF_GRAPH ANYOF_HORIZWS ANYOF_INVERT
-syn keyword xsMacro ANYOF_IS_SYNTHETIC ANYOF_LARGE ANYOF_LOCALE
-syn keyword xsMacro ANYOF_LOC_NONBITMAP_FOLD ANYOF_LOWER ANYOF_MAX
-syn keyword xsMacro ANYOF_NALNUM ANYOF_NALNUMC ANYOF_NALNUML ANYOF_NALPHA
-syn keyword xsMacro ANYOF_NASCII ANYOF_NBLANK ANYOF_NCNTRL ANYOF_NDIGIT
-syn keyword xsMacro ANYOF_NGRAPH ANYOF_NHORIZWS ANYOF_NLOWER ANYOF_NONBITMAP
-syn keyword xsMacro ANYOF_NONBITMAP_EMPTY ANYOF_NONBITMAP_NON_UTF8
-syn keyword xsMacro ANYOF_NON_UTF8_LATIN1_ALL ANYOF_NPRINT ANYOF_NPSXSPC
-syn keyword xsMacro ANYOF_NPUNCT ANYOF_NSPACE ANYOF_NSPACEL ANYOF_NUPPER
-syn keyword xsMacro ANYOF_NVERTWS ANYOF_NXDIGIT ANYOF_PRINT ANYOF_PSXSPC
-syn keyword xsMacro ANYOF_PUNCT ANYOF_SIZE ANYOF_SKIP ANYOF_SPACE
-syn keyword xsMacro ANYOF_SPACEL ANYOF_UNICODE_ALL ANYOF_UPPER ANYOF_VERTWS
-syn keyword xsMacro ANYOF_XDIGIT ARCHLIB ARCHLIB_EXP ARCHNAME ARG ARG1
-syn keyword xsMacro ARG1_LOC ARG1_SET ARG2 ARG2L ARG2L_LOC ARG2L_SET ARG2_LOC
-syn keyword xsMacro ARG2_SET ARGTARG ARG_LOC ARG_SET ARG_VALUE ARG__SET ARROW
+syn keyword xsMacro ANYOF_COMMON_FLAGS ANYOF_DIGIT ANYOF_FLAGS
+syn keyword xsMacro ANYOF_FLAGS_ALL ANYOF_FOLD_SHARP_S ANYOF_GRAPH
+syn keyword xsMacro ANYOF_HAS_NONBITMAP_NON_UTF8_MATCHES
+syn keyword xsMacro ANYOF_HAS_UTF8_NONBITMAP_MATCHES ANYOF_HORIZWS
+syn keyword xsMacro ANYOF_INVERT ANYOF_LOCALE_FLAGS ANYOF_LOC_FOLD
+syn keyword xsMacro ANYOF_LOWER ANYOF_MATCHES_ALL_ABOVE_BITMAP
+syn keyword xsMacro ANYOF_MATCHES_ALL_NON_UTF8_NON_ASCII ANYOF_MATCHES_POSIXL
+syn keyword xsMacro ANYOF_MAX ANYOF_NALNUM ANYOF_NALNUML ANYOF_NALPHA
+syn keyword xsMacro ANYOF_NALPHANUMERIC ANYOF_NASCII ANYOF_NBLANK
+syn keyword xsMacro ANYOF_NCASED ANYOF_NCNTRL ANYOF_NDIGIT ANYOF_NGRAPH
+syn keyword xsMacro ANYOF_NHORIZWS ANYOF_NLOWER ANYOF_NPRINT ANYOF_NPUNCT
+syn keyword xsMacro ANYOF_NSPACE ANYOF_NSPACEL ANYOF_NUPPER ANYOF_NVERTWS
+syn keyword xsMacro ANYOF_NWORDCHAR ANYOF_NXDIGIT ANYOF_ONLY_HAS_BITMAP
+syn keyword xsMacro ANYOF_POSIXL_AND ANYOF_POSIXL_CLEAR ANYOF_POSIXL_MAX
+syn keyword xsMacro ANYOF_POSIXL_OR ANYOF_POSIXL_SET ANYOF_POSIXL_SETALL
+syn keyword xsMacro ANYOF_POSIXL_SKIP ANYOF_POSIXL_SSC_TEST_ALL_SET
+syn keyword xsMacro ANYOF_POSIXL_SSC_TEST_ANY_SET ANYOF_POSIXL_TEST
+syn keyword xsMacro ANYOF_POSIXL_TEST_ALL_SET ANYOF_POSIXL_TEST_ANY_SET
+syn keyword xsMacro ANYOF_POSIXL_ZERO ANYOF_PRINT ANYOF_PUNCT ANYOF_SKIP
+syn keyword xsMacro ANYOF_SPACE ANYOF_SPACEL ANYOF_UNIPROP ANYOF_UPPER
+syn keyword xsMacro ANYOF_VERTWS ANYOF_WARN_SUPER ANYOF_WORDCHAR ANYOF_XDIGIT
+syn keyword xsMacro ARCHLIB ARCHLIB_EXP ARCHNAME ARG ARG1 ARG1_LOC ARG1_SET
+syn keyword xsMacro ARG2 ARG2L ARG2L_LOC ARG2L_SET ARG2_LOC ARG2_SET ARGTARG
+syn keyword xsMacro ARG_LOC ARG_SET ARG_VALUE ARG__SET ARROW
syn keyword xsMacro ASCII_MORE_RESTRICT_PAT_MODS ASCII_RESTRICT_PAT_MOD
-syn keyword xsMacro ASCII_RESTRICT_PAT_MODS ASCII_TO_NATIVE ASCII_TO_NEED
-syn keyword xsMacro ASCTIME_R_PROTO ASSERT_CURPAD_ACTIVE ASSERT_CURPAD_LEGAL
-syn keyword xsMacro ASSIGNOP Atof Atol Atoul AvALLOC AvARRAY AvARYLEN AvFILL
-syn keyword xsMacro AvFILLp AvMAX AvREAL AvREALISH AvREAL_off AvREAL_on
-syn keyword xsMacro AvREAL_only AvREIFY AvREIFY_off AvREIFY_on AvREIFY_only
-syn keyword xsMacro BACK BADVERSION BASEOP BHKf_bhk_eval BHKf_bhk_post_end
-syn keyword xsMacro BHKf_bhk_pre_end BHKf_bhk_start BIN BIN_EXP BITANDOP
-syn keyword xsMacro BITMAP_BYTE BITMAP_TEST BITOROP BIT_BUCKET BIT_DIGITS BOL
-syn keyword xsMacro BOUND BOUNDA BOUNDL BOUNDU BRANCH BRANCHJ BRANCH_next
-syn keyword xsMacro BRANCH_next_fail BSD_GETPGRP BSD_SETPGRP BSDish BUFSIZ
-syn keyword xsMacro BYTEORDER BhkDISABLE BhkENABLE BhkENTRY BhkENTRY_set
-syn keyword xsMacro BhkFLAGS Bit BmFLAGS BmPREVIOUS BmRARE BmUSEFUL
-syn keyword xsMacro CALLREGCOMP CALLREGCOMP_ENG CALLREGDUPE CALLREGDUPE_PVT
-syn keyword xsMacro CALLREGEXEC CALLREGFREE CALLREGFREE_PVT
-syn keyword xsMacro CALLREG_INTUIT_START CALLREG_INTUIT_STRING
-syn keyword xsMacro CALLREG_NAMED_BUFF_ALL CALLREG_NAMED_BUFF_CLEAR
-syn keyword xsMacro CALLREG_NAMED_BUFF_COUNT CALLREG_NAMED_BUFF_DELETE
-syn keyword xsMacro CALLREG_NAMED_BUFF_EXISTS CALLREG_NAMED_BUFF_FETCH
-syn keyword xsMacro CALLREG_NAMED_BUFF_FIRSTKEY CALLREG_NAMED_BUFF_NEXTKEY
-syn keyword xsMacro CALLREG_NAMED_BUFF_SCALAR CALLREG_NAMED_BUFF_STORE
-syn keyword xsMacro CALLREG_NUMBUF_FETCH CALLREG_NUMBUF_LENGTH
-syn keyword xsMacro CALLREG_NUMBUF_STORE CALLREG_PACKAGE CALLRUNOPS
-syn keyword xsMacro CALL_BLOCK_HOOKS CALL_FPTR CANY CAN_COW_FLAGS
+syn keyword xsMacro ASCII_RESTRICT_PAT_MODS ASCII_TO_NATIVE ASCTIME_R_PROTO
+syn keyword xsMacro ASSERT_CURPAD_ACTIVE ASSERT_CURPAD_LEGAL ASSIGNOP ASSUME
+syn keyword xsMacro Atof Atol Atoul AvALLOC AvARRAY AvARYLEN AvFILL AvFILLp
+syn keyword xsMacro AvMAX AvREAL AvREALISH AvREAL_off AvREAL_on AvREAL_only
+syn keyword xsMacro AvREIFY AvREIFY_off AvREIFY_on AvREIFY_only BADVERSION
+syn keyword xsMacro BASEOP BHKf_bhk_eval BHKf_bhk_post_end BHKf_bhk_pre_end
+syn keyword xsMacro BHKf_bhk_start BIN BIN_EXP BITANDOP BITMAP_BYTE
+syn keyword xsMacro BITMAP_TEST BITOROP BIT_BUCKET BIT_DIGITS BOL
+syn keyword xsMacro BOM_UTF8_FIRST_BYTE BOM_UTF8_TAIL BOUND BOUNDA BOUNDL
+syn keyword xsMacro BOUNDU BRANCH BRANCHJ BRANCH_next BRANCH_next_fail
+syn keyword xsMacro BSD_GETPGRP BSD_SETPGRP BSDish BUFSIZ BYTEORDER
+syn keyword xsMacro BhkDISABLE BhkENABLE BhkENTRY BhkENTRY_set BhkFLAGS Bit
+syn keyword xsMacro BmFLAGS BmPREVIOUS BmRARE BmUSEFUL CALLREGCOMP
+syn keyword xsMacro CALLREGCOMP_ENG CALLREGDUPE CALLREGDUPE_PVT CALLREGEXEC
+syn keyword xsMacro CALLREGFREE CALLREGFREE_PVT CALLREG_INTUIT_START
+syn keyword xsMacro CALLREG_INTUIT_STRING CALLREG_NAMED_BUFF_ALL
+syn keyword xsMacro CALLREG_NAMED_BUFF_CLEAR CALLREG_NAMED_BUFF_COUNT
+syn keyword xsMacro CALLREG_NAMED_BUFF_DELETE CALLREG_NAMED_BUFF_EXISTS
+syn keyword xsMacro CALLREG_NAMED_BUFF_FETCH CALLREG_NAMED_BUFF_FIRSTKEY
+syn keyword xsMacro CALLREG_NAMED_BUFF_NEXTKEY CALLREG_NAMED_BUFF_SCALAR
+syn keyword xsMacro CALLREG_NAMED_BUFF_STORE CALLREG_NUMBUF_FETCH
+syn keyword xsMacro CALLREG_NUMBUF_LENGTH CALLREG_NUMBUF_STORE
+syn keyword xsMacro CALLREG_PACKAGE CALLRUNOPS CALL_BLOCK_HOOKS
+syn keyword xsMacro CALL_CHECKER_REQUIRE_GV CALL_FPTR CANY CAN_COW_FLAGS
syn keyword xsMacro CAN_COW_MASK CAN_PROTOTYPE CAN_VAPROTO
syn keyword xsMacro CASE_STD_PMMOD_FLAGS_PARSE_SET CASTFLAGS CASTNEGFLOAT
-syn keyword xsMacro CAT2 CATCH_GET CATCH_SET CHARBITS CHARSET_PAT_MODS
-syn keyword xsMacro CHECK_MALLOC_TAINT CHECK_MALLOC_TOO_LATE_FOR
-syn keyword xsMacro CHECK_MALLOC_TOO_LATE_FOR_ CLEAR_ARGARRAY CLEAR_ERRSV
-syn keyword xsMacro CLONEf_CLONE_HOST CLONEf_COPY_STACKS CLONEf_JOIN_IN
-syn keyword xsMacro CLONEf_KEEP_PTR_TABLE CLOSE CLUMP CLUMP_2IV CLUMP_2UV
-syn keyword xsMacro COLONATTR COMMIT COMMIT_next COMMIT_next_fail
-syn keyword xsMacro COND_BROADCAST COND_DESTROY COND_INIT COND_SIGNAL
-syn keyword xsMacro COND_WAIT CONTINUE CONTINUE_PAT_MOD COPHH_KEY_UTF8
-syn keyword xsMacro COP_SEQ_RANGE_HIGH COP_SEQ_RANGE_LOW CPERLarg CPERLarg_
-syn keyword xsMacro CPERLscope CPPLAST CPPMINUS CPPRUN CPPSTDIN CRYPT_R_PROTO
-syn keyword xsMacro CSH CTERMID_R_PROTO CTIME_R_PROTO CTYPE256 CURLY CURLYM
+syn keyword xsMacro CAT2 CATCH_GET CATCH_SET CHANGE_MULTICALL_FLAGS CHARBITS
+syn keyword xsMacro CHARSET_PAT_MODS CHECK_MALLOC_TAINT
+syn keyword xsMacro CHECK_MALLOC_TOO_LATE_FOR CHECK_MALLOC_TOO_LATE_FOR_
+syn keyword xsMacro CLEAR_ARGARRAY CLEAR_ERRSV CLONEf_CLONE_HOST
+syn keyword xsMacro CLONEf_COPY_STACKS CLONEf_JOIN_IN CLONEf_KEEP_PTR_TABLE
+syn keyword xsMacro CLOSE CLUMP CLUMP_2IV CLUMP_2UV COLONATTR
+syn keyword xsMacro COMBINING_GRAVE_ACCENT_UTF8 COMMIT COMMIT_next
+syn keyword xsMacro COMMIT_next_fail COND_BROADCAST COND_DESTROY COND_INIT
+syn keyword xsMacro COND_SIGNAL COND_WAIT CONTINUE CONTINUE_PAT_MOD
+syn keyword xsMacro COPHH_KEY_UTF8 COP_SEQMAX_INC COP_SEQ_RANGE_HIGH
+syn keyword xsMacro COP_SEQ_RANGE_LOW CPERLarg CPERLarg_ CPERLscope CPPLAST
+syn keyword xsMacro CPPMINUS CPPRUN CPPSTDIN CRYPT_R_PROTO CR_NATIVE CSH
+syn keyword xsMacro CTERMID_R_PROTO CTIME_R_PROTO CTYPE256 CURLY CURLYM
syn keyword xsMacro CURLYM_A CURLYM_A_fail CURLYM_B CURLYM_B_fail CURLYN
syn keyword xsMacro CURLYX CURLYX_end CURLYX_end_fail CURLY_B_max
syn keyword xsMacro CURLY_B_max_fail CURLY_B_min CURLY_B_min_fail
syn keyword xsMacro CURLY_B_min_known CURLY_B_min_known_fail
syn keyword xsMacro CURRENT_FEATURE_BUNDLE CURRENT_HINTS CUTGROUP
-syn keyword xsMacro CUTGROUP_next CUTGROUP_next_fail CVf_ANON CVf_AUTOLOAD
+syn keyword xsMacro CUTGROUP_next CUTGROUP_next_fail CV_NAME_NOTQUAL
+syn keyword xsMacro CV_UNDEF_KEEP_NAME CVf_ANON CVf_ANONCONST CVf_AUTOLOAD
syn keyword xsMacro CVf_BUILTIN_ATTRS CVf_CLONE CVf_CLONED CVf_CONST
-syn keyword xsMacro CVf_CVGV_RC CVf_DYNFILE CVf_ISXSUB CVf_LVALUE CVf_METHOD
-syn keyword xsMacro CVf_NODEBUG CVf_UNIQUE CVf_WEAKOUTSIDE CXINC CXTYPEMASK
-syn keyword xsMacro CX_CURPAD_SAVE CX_CURPAD_SV CXp_FOR_DEF CXp_HASARGS
-syn keyword xsMacro CXp_MULTICALL CXp_ONCE CXp_REAL CXp_TRYBLOCK C_ARRAY_END
-syn keyword xsMacro C_ARRAY_LENGTH C_FAC_POSIX CopFILE CopFILEAV CopFILEAVx
-syn keyword xsMacro CopFILEGV CopFILEGV_set CopFILESV CopFILE_free
-syn keyword xsMacro CopFILE_set CopFILE_setn CopHINTHASH_get CopHINTHASH_set
-syn keyword xsMacro CopHINTS_get CopHINTS_set CopLABEL CopLABEL_alloc
-syn keyword xsMacro CopLABEL_len CopLABEL_len_flags CopLINE CopLINE_dec
-syn keyword xsMacro CopLINE_inc CopLINE_set CopSTASH CopSTASHPV
-syn keyword xsMacro CopSTASHPV_set CopSTASH_eq CopSTASH_free CopSTASH_len
-syn keyword xsMacro CopSTASH_len_set CopSTASH_ne CopSTASH_set Copy CopyD Ctl
-syn keyword xsMacro CvANON CvANON_off CvANON_on CvAUTOLOAD CvAUTOLOAD_off
+syn keyword xsMacro CVf_CVGV_RC CVf_DYNFILE CVf_HASEVAL CVf_ISXSUB
+syn keyword xsMacro CVf_LEXICAL CVf_LVALUE CVf_METHOD CVf_NAMED CVf_NODEBUG
+syn keyword xsMacro CVf_SLABBED CVf_UNIQUE CVf_WEAKOUTSIDE CXINC CXTYPEMASK
+syn keyword xsMacro CX_CURPAD_SAVE CX_CURPAD_SV CXp_FOR_DEF CXp_FOR_LVREF
+syn keyword xsMacro CXp_HASARGS CXp_MULTICALL CXp_ONCE CXp_REAL CXp_SUB_RE
+syn keyword xsMacro CXp_SUB_RE_FAKE CXp_TRYBLOCK C_ARRAY_END C_ARRAY_LENGTH
+syn keyword xsMacro C_FAC_POSIX CopFILE CopFILEAV CopFILEAVx CopFILEGV
+syn keyword xsMacro CopFILEGV_set CopFILESV CopFILE_free CopFILE_set
+syn keyword xsMacro CopFILE_setn CopHINTHASH_get CopHINTHASH_set CopHINTS_get
+syn keyword xsMacro CopHINTS_set CopLABEL CopLABEL_alloc CopLABEL_len
+syn keyword xsMacro CopLABEL_len_flags CopLINE CopLINE_dec CopLINE_inc
+syn keyword xsMacro CopLINE_set CopSTASH CopSTASHPV CopSTASHPV_set
+syn keyword xsMacro CopSTASH_eq CopSTASH_ne CopSTASH_set Copy CopyD CowREFCNT
+syn keyword xsMacro Ctl CvANON CvANONCONST CvANONCONST_off CvANONCONST_on
+syn keyword xsMacro CvANON_off CvANON_on CvAUTOLOAD CvAUTOLOAD_off
syn keyword xsMacro CvAUTOLOAD_on CvCLONE CvCLONED CvCLONED_off CvCLONED_on
syn keyword xsMacro CvCLONE_off CvCLONE_on CvCONST CvCONST_off CvCONST_on
-syn keyword xsMacro CvCVGV_RC CvCVGV_RC_off CvCVGV_RC_on CvDEPTH CvDYNFILE
-syn keyword xsMacro CvDYNFILE_off CvDYNFILE_on CvEVAL CvEVAL_off CvEVAL_on
-syn keyword xsMacro CvFILE CvFILEGV CvFILE_set_from_cop CvFLAGS CvGV CvGV_set
-syn keyword xsMacro CvISXSUB CvISXSUB_off CvISXSUB_on CvLVALUE CvLVALUE_off
-syn keyword xsMacro CvLVALUE_on CvMETHOD CvMETHOD_off CvMETHOD_on CvNODEBUG
-syn keyword xsMacro CvNODEBUG_off CvNODEBUG_on CvOUTSIDE CvOUTSIDE_SEQ
-syn keyword xsMacro CvPADLIST CvPROTO CvPROTOLEN CvROOT CvSPECIAL
+syn keyword xsMacro CvCVGV_RC CvCVGV_RC_off CvCVGV_RC_on CvDEPTH
+syn keyword xsMacro CvDEPTHunsafe CvDYNFILE CvDYNFILE_off CvDYNFILE_on CvEVAL
+syn keyword xsMacro CvEVAL_off CvEVAL_on CvFILE CvFILEGV CvFILE_set_from_cop
+syn keyword xsMacro CvFLAGS CvGV CvGV_set CvHASEVAL CvHASEVAL_off
+syn keyword xsMacro CvHASEVAL_on CvHASGV CvHSCXT CvISXSUB CvISXSUB_off
+syn keyword xsMacro CvISXSUB_on CvLEXICAL CvLEXICAL_off CvLEXICAL_on CvLVALUE
+syn keyword xsMacro CvLVALUE_off CvLVALUE_on CvMETHOD CvMETHOD_off
+syn keyword xsMacro CvMETHOD_on CvNAMED CvNAMED_off CvNAMED_on CvNAME_HEK_set
+syn keyword xsMacro CvNODEBUG CvNODEBUG_off CvNODEBUG_on CvOUTSIDE
+syn keyword xsMacro CvOUTSIDE_SEQ CvPADLIST CvPADLIST_set CvPROTO CvPROTOLEN
+syn keyword xsMacro CvROOT CvSLABBED CvSLABBED_off CvSLABBED_on CvSPECIAL
syn keyword xsMacro CvSPECIAL_off CvSPECIAL_on CvSTART CvSTASH CvSTASH_set
syn keyword xsMacro CvUNIQUE CvUNIQUE_off CvUNIQUE_on CvWEAKOUTSIDE
syn keyword xsMacro CvWEAKOUTSIDE_off CvWEAKOUTSIDE_on CvXSUB CvXSUBANY
syn keyword xsMacro CxFOREACH CxFOREACHDEF CxHASARGS CxITERVAR
syn keyword xsMacro CxITERVAR_PADSV CxLABEL CxLABEL_len CxLABEL_len_flags
syn keyword xsMacro CxLVAL CxMULTICALL CxOLD_IN_EVAL CxOLD_OP_TYPE CxONCE
-syn keyword xsMacro CxPADLOOP CxREALEVAL CxTRYBLOCK CxTYPE CxTYPE_is_LOOP
-syn keyword xsMacro DBL_DIG DBL_MAX DBL_MIN DBM_ckFilter DBM_setFilter
-syn keyword xsMacro DB_VERSION_MAJOR_CFG DB_VERSION_MINOR_CFG
+syn keyword xsMacro CxPADLOOP CxPOPSUB_DONE CxREALEVAL CxTRYBLOCK CxTYPE
+syn keyword xsMacro CxTYPE_is_LOOP DBL_DIG DBL_MAX DBL_MIN DBM_ckFilter
+syn keyword xsMacro DBM_setFilter DBVARMG_COUNT DBVARMG_SIGNAL DBVARMG_SINGLE
+syn keyword xsMacro DBVARMG_TRACE DB_VERSION_MAJOR_CFG DB_VERSION_MINOR_CFG
syn keyword xsMacro DB_VERSION_PATCH_CFG DEBUG_A DEBUG_A_FLAG DEBUG_A_TEST
syn keyword xsMacro DEBUG_A_TEST_ DEBUG_B DEBUG_BUFFERS_r DEBUG_B_FLAG
syn keyword xsMacro DEBUG_B_TEST DEBUG_B_TEST_ DEBUG_C DEBUG_COMPILE_r
@@ -1122,13 +1231,15 @@ syn keyword xsMacro DEBUG_DB_RECURSE_FLAG DEBUG_DUMP_r DEBUG_D_FLAG
syn keyword xsMacro DEBUG_D_TEST DEBUG_D_TEST_ DEBUG_EXECUTE_r DEBUG_EXTRA_r
syn keyword xsMacro DEBUG_FLAGS_r DEBUG_GPOS_r DEBUG_H DEBUG_H_FLAG
syn keyword xsMacro DEBUG_H_TEST DEBUG_H_TEST_ DEBUG_INTUIT_r DEBUG_J_FLAG
-syn keyword xsMacro DEBUG_J_TEST DEBUG_J_TEST_ DEBUG_M DEBUG_MASK
+syn keyword xsMacro DEBUG_J_TEST DEBUG_J_TEST_ DEBUG_L DEBUG_L_FLAG
+syn keyword xsMacro DEBUG_L_TEST DEBUG_L_TEST_ DEBUG_M DEBUG_MASK
syn keyword xsMacro DEBUG_MATCH_r DEBUG_M_FLAG DEBUG_M_TEST DEBUG_M_TEST_
syn keyword xsMacro DEBUG_OFFSETS_r DEBUG_OPTIMISE_MORE_r DEBUG_OPTIMISE_r
syn keyword xsMacro DEBUG_P DEBUG_PARSE_r DEBUG_P_FLAG DEBUG_P_TEST
syn keyword xsMacro DEBUG_P_TEST_ DEBUG_Pv DEBUG_Pv_TEST DEBUG_Pv_TEST_
-syn keyword xsMacro DEBUG_R DEBUG_R_FLAG DEBUG_R_TEST DEBUG_R_TEST_
-syn keyword xsMacro DEBUG_SCOPE DEBUG_STACK_r DEBUG_STATE_r DEBUG_T
+syn keyword xsMacro DEBUG_R DEBUG_R_FLAG DEBUG_R_TEST DEBUG_R_TEST_ DEBUG_S
+syn keyword xsMacro DEBUG_SCOPE DEBUG_STACK_r DEBUG_STATE_r DEBUG_S_FLAG
+syn keyword xsMacro DEBUG_S_TEST DEBUG_S_TEST_ DEBUG_T DEBUG_TEST_r
syn keyword xsMacro DEBUG_TOP_FLAG DEBUG_TRIE_COMPILE_MORE_r
syn keyword xsMacro DEBUG_TRIE_COMPILE_r DEBUG_TRIE_EXECUTE_MORE_r
syn keyword xsMacro DEBUG_TRIE_EXECUTE_r DEBUG_TRIE_r DEBUG_T_FLAG
@@ -1148,47 +1259,71 @@ syn keyword xsMacro DEBUG_s_FLAG DEBUG_s_TEST DEBUG_s_TEST_ DEBUG_t_FLAG
syn keyword xsMacro DEBUG_t_TEST DEBUG_t_TEST_ DEBUG_u DEBUG_u_FLAG
syn keyword xsMacro DEBUG_u_TEST DEBUG_u_TEST_ DEBUG_v DEBUG_v_FLAG
syn keyword xsMacro DEBUG_v_TEST DEBUG_v_TEST_ DEBUG_x DEBUG_x_FLAG
-syn keyword xsMacro DEBUG_x_TEST DEBUG_x_TEST_ DEFAULT DEFAULT_PAT_MOD
-syn keyword xsMacro DEFINEP DEFSV DEFSV_set DEPENDS_PAT_MOD DEPENDS_PAT_MODS
-syn keyword xsMacro DETACH DIE DIGIT DIGITA DIGITL DIR DM_ARRAY_ISA DM_DELAY
-syn keyword xsMacro DM_EGID DM_EUID DM_GID DM_RGID DM_RUID DM_UID DO DOINIT
-syn keyword xsMacro DOLSHARP DONT_DECLARE_STD DORDOR DOROP DOSISH DOTDOT
-syn keyword xsMacro DOUBLESIZE DO_UTF8 DPTR2FPTR DRAND48_R_PROTO DUP_WARNINGS
-syn keyword xsMacro Drand01 ELSE ELSIF EMBEDMYMALLOC END ENDGRENT_R_PROTO
-syn keyword xsMacro ENDHOSTENT_R_PROTO ENDLIKE ENDNETENT_R_PROTO
-syn keyword xsMacro ENDPROTOENT_R_PROTO ENDPWENT_R_PROTO ENDSERVENT_R_PROTO
-syn keyword xsMacro END_EXTERN_C ENTER ENTER_with_name ENTRY_PROBE ENUM_BOOL
-syn keyword xsMacro EOF EOL EOS EQOP ERRHV ERRSV EVAL EVAL_AB EVAL_AB_fail
-syn keyword xsMacro EVAL_INEVAL EVAL_INREQUIRE EVAL_KEEPERR EVAL_NULL
-syn keyword xsMacro EVAL_WARNONLY EXACT EXACTF EXACTFA EXACTFL EXACTFU
-syn keyword xsMacro EXACTFU_SS EXACTFU_TRICKYFOLD EXEC_ARGV_CAST EXEC_PAT_MOD
+syn keyword xsMacro DEBUG_x_TEST DEBUG_x_TEST_
+syn keyword xsMacro DECLARATION_FOR_LC_NUMERIC_MANIPULATION
+syn keyword xsMacro DECLARATION_FOR_STORE_LC_NUMERIC_SET_TO_NEEDED
+syn keyword xsMacro DECLARE_STORE_LC_NUMERIC_SET_TO_NEEDED DEFAULT
+syn keyword xsMacro DEFAULT_PAT_MOD DEFINEP DEFSV DEFSV_set DEL_NATIVE
+syn keyword xsMacro DEPENDS_PAT_MOD DEPENDS_PAT_MODS DETACH DIE DM_ARRAY_ISA
+syn keyword xsMacro DM_DELAY DM_EGID DM_EUID DM_GID DM_RGID DM_RUID DM_UID DO
+syn keyword xsMacro DOINIT DOLSHARP DONT_DECLARE_STD DORDOR DOROP DOSISH
+syn keyword xsMacro DOTDOT DOUBLEKIND DOUBLESIZE DOUBLE_BIG_ENDIAN
+syn keyword xsMacro DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN
+syn keyword xsMacro DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN
+syn keyword xsMacro DOUBLE_IS_IEEE_754_32_BIT_BIG_ENDIAN
+syn keyword xsMacro DOUBLE_IS_IEEE_754_32_BIT_LITTLE_ENDIAN
+syn keyword xsMacro DOUBLE_IS_IEEE_754_64_BIT_BIG_ENDIAN
+syn keyword xsMacro DOUBLE_IS_IEEE_754_64_BIT_LITTLE_ENDIAN
+syn keyword xsMacro DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE
+syn keyword xsMacro DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE
+syn keyword xsMacro DOUBLE_IS_UNKNOWN_FORMAT DOUBLE_LITTLE_ENDIAN
+syn keyword xsMacro DOUBLE_MIX_ENDIAN DO_UTF8 DPTR2FPTR DRAND48_R_PROTO
+syn keyword xsMacro DUP_WARNINGS Drand01 ELSE ELSIF EMBEDMYMALLOC END
+syn keyword xsMacro ENDGRENT_R_PROTO ENDHOSTENT_R_PROTO ENDLIKE
+syn keyword xsMacro ENDNETENT_R_PROTO ENDPROTOENT_R_PROTO ENDPWENT_R_PROTO
+syn keyword xsMacro ENDSERVENT_R_PROTO END_EXTERN_C ENTER ENTER_with_name
+syn keyword xsMacro ENTRY_PROBE EOF EOL EOS EQOP ERRSV ESC_NATIVE EVAL
+syn keyword xsMacro EVAL_AB EVAL_AB_fail EVAL_INEVAL EVAL_INREQUIRE
+syn keyword xsMacro EVAL_KEEPERR EVAL_NULL EVAL_RE_REPARSING EVAL_WARNONLY
+syn keyword xsMacro EXACT EXACTF EXACTFA EXACTFA_NO_TRIE EXACTFL EXACTFLU8
+syn keyword xsMacro EXACTFU EXACTFU_SS EXACTL EXEC_ARGV_CAST EXEC_PAT_MOD
syn keyword xsMacro EXEC_PAT_MODS EXPECT EXT EXTCONST EXTEND EXTEND_MORTAL
syn keyword xsMacro EXTERN_C EXTPERLIO EXTRA_SIZE EXTRA_STEP_2ARGS EXT_MGVTBL
syn keyword xsMacro EXT_PAT_MODS FAKE_BIT_BUCKET FAKE_DEFAULT_SIGNAL_HANDLERS
-syn keyword xsMacro FAKE_PERSISTENT_SIGNAL_HANDLERS FBMcf_TAIL
+syn keyword xsMacro FAKE_PERSISTENT_SIGNAL_HANDLERS FALSE FBMcf_TAIL
syn keyword xsMacro FBMcf_TAIL_DOLLAR FBMcf_TAIL_DOLLARM FBMcf_TAIL_Z
syn keyword xsMacro FBMcf_TAIL_z FBMrf_MULTILINE FCNTL_CAN_LOCK FD_CLR
syn keyword xsMacro FD_ISSET FD_SET FD_ZERO FEATURE_ARYBASE_IS_ENABLED
-syn keyword xsMacro FEATURE_BUNDLE_510 FEATURE_BUNDLE_511 FEATURE_BUNDLE_515
+syn keyword xsMacro FEATURE_BITWISE_IS_ENABLED FEATURE_BUNDLE_510
+syn keyword xsMacro FEATURE_BUNDLE_511 FEATURE_BUNDLE_515
syn keyword xsMacro FEATURE_BUNDLE_CUSTOM FEATURE_BUNDLE_DEFAULT
syn keyword xsMacro FEATURE_EVALBYTES_IS_ENABLED FEATURE_FC_IS_ENABLED
-syn keyword xsMacro FEATURE_IS_ENABLED FEATURE_SAY_IS_ENABLED
-syn keyword xsMacro FEATURE_STATE_IS_ENABLED FEATURE_SWITCH_IS_ENABLED
-syn keyword xsMacro FEATURE_UNICODE_IS_ENABLED FEATURE_UNIEVAL_IS_ENABLED
-syn keyword xsMacro FEATURE___SUB___IS_ENABLED FFLUSH_NULL FF_0DECIMAL
-syn keyword xsMacro FF_BLANK FF_CHECKCHOP FF_CHECKNL FF_CHOP FF_DECIMAL
-syn keyword xsMacro FF_END FF_FETCH FF_HALFSPACE FF_ITEM FF_LINEGLOB
-syn keyword xsMacro FF_LINEMARK FF_LINESNGL FF_LITERAL FF_MORE FF_NEWLINE
-syn keyword xsMacro FF_SKIP FF_SPACE FILE FILE_base FILE_bufsiz FILE_cnt
-syn keyword xsMacro FILE_ptr FILL_ADVANCE_NODE FILL_ADVANCE_NODE_ARG
-syn keyword xsMacro FILTER_DATA FILTER_ISREADER FILTER_READ FITS_IN_8_BITS
-syn keyword xsMacro FLAGS FLEXFILENAMES FOLDEQ_S1_ALREADY_FOLDED
-syn keyword xsMacro FOLDEQ_S2_ALREADY_FOLDED FOLDEQ_UTF8_LOCALE
-syn keyword xsMacro FOLDEQ_UTF8_NOMIX_ASCII FOLD_FLAGS_FULL FOLD_FLAGS_LOCALE
-syn keyword xsMacro FOR FORMAT FPTR2DPTR FREETMPS FREE_THREAD_KEY FSEEKSIZE
-syn keyword xsMacro FUNC FUNC0 FUNC0OP FUNC0SUB FUNC1 FUNCMETH FUNCTION__
-syn keyword xsMacro F_atan2_amg F_cos_amg F_exp_amg F_log_amg F_pow_amg
-syn keyword xsMacro F_sin_amg F_sqrt_amg Fflush FmLINES FreeOp Fstat
+syn keyword xsMacro FEATURE_IS_ENABLED FEATURE_LEXSUBS_IS_ENABLED
+syn keyword xsMacro FEATURE_POSTDEREF_IS_ENABLED
+syn keyword xsMacro FEATURE_POSTDEREF_QQ_IS_ENABLED
+syn keyword xsMacro FEATURE_REFALIASING_IS_ENABLED FEATURE_SAY_IS_ENABLED
+syn keyword xsMacro FEATURE_SIGNATURES_IS_ENABLED FEATURE_STATE_IS_ENABLED
+syn keyword xsMacro FEATURE_SWITCH_IS_ENABLED FEATURE_UNICODE_IS_ENABLED
+syn keyword xsMacro FEATURE_UNIEVAL_IS_ENABLED FEATURE___SUB___IS_ENABLED
+syn keyword xsMacro FFLUSH_NULL FF_0DECIMAL FF_BLANK FF_CHECKCHOP FF_CHECKNL
+syn keyword xsMacro FF_CHOP FF_DECIMAL FF_END FF_FETCH FF_HALFSPACE FF_ITEM
+syn keyword xsMacro FF_LINEGLOB FF_LINEMARK FF_LINESNGL FF_LITERAL FF_MORE
+syn keyword xsMacro FF_NEWLINE FF_SKIP FF_SPACE FILE FILE_base FILE_bufsiz
+syn keyword xsMacro FILE_cnt FILE_ptr FILL_ADVANCE_NODE
+syn keyword xsMacro FILL_ADVANCE_NODE_2L_ARG FILL_ADVANCE_NODE_ARG
+syn keyword xsMacro FILTER_DATA FILTER_ISREADER FILTER_READ
+syn keyword xsMacro FIND_RUNCV_level_eq FIND_RUNCV_padid_eq
+syn keyword xsMacro FIRST_SURROGATE_UTF8_FIRST_BYTE FITS_IN_8_BITS FLAGS
+syn keyword xsMacro FLEXFILENAMES FOLDEQ_LOCALE FOLDEQ_S1_ALREADY_FOLDED
+syn keyword xsMacro FOLDEQ_S1_FOLDS_SANE FOLDEQ_S2_ALREADY_FOLDED
+syn keyword xsMacro FOLDEQ_S2_FOLDS_SANE FOLDEQ_UTF8_NOMIX_ASCII
+syn keyword xsMacro FOLD_FLAGS_FULL FOLD_FLAGS_LOCALE FOLD_FLAGS_NOMIX_ASCII
+syn keyword xsMacro FOR FORMAT FORMLBRACK FORMRBRACK FPTR2DPTR FP_PINF
+syn keyword xsMacro FP_QNAN FREETMPS FREE_THREAD_KEY FSEEKSIZE FUNC FUNC0
+syn keyword xsMacro FUNC0OP FUNC0SUB FUNC1 FUNCMETH FUNCTION__ F_atan2_amg
+syn keyword xsMacro F_cos_amg F_exp_amg F_log_amg F_pow_amg F_sin_amg
+syn keyword xsMacro F_sqrt_amg Fflush FmLINES FreeOp Fstat GCB_ENUM_COUNT
+syn keyword xsMacro GCC_DIAG_IGNORE GCC_DIAG_PRAGMA GCC_DIAG_RESTORE
syn keyword xsMacro GDBMNDBM_H_USES_PROTOTYPES GETATARGET GETGRENT_R_PROTO
syn keyword xsMacro GETGRGID_R_PROTO GETGRNAM_R_PROTO GETHOSTBYADDR_R_PROTO
syn keyword xsMacro GETHOSTBYNAME_R_PROTO GETHOSTENT_R_PROTO GETLOGIN_R_PROTO
@@ -1201,164 +1336,185 @@ syn keyword xsMacro GETSERVENT_R_PROTO GETSPNAM_R_PROTO GETTARGET
syn keyword xsMacro GETTARGETSTACKED GET_RE_DEBUG_FLAGS
syn keyword xsMacro GET_RE_DEBUG_FLAGS_DECL GIMME GIMME_V GIVEN
syn keyword xsMacro GLOBAL_PAT_MOD GMTIME_MAX GMTIME_MIN GMTIME_R
-syn keyword xsMacro GMTIME_R_PROTO GOSTART GOSUB GPOS GRAMBARESTMT GRAMBLOCK
-syn keyword xsMacro GRAMEXPR GRAMFULLSTMT GRAMPROG GRAMSTMTSEQ
+syn keyword xsMacro GMTIME_R_PROTO GOSTART GOSUB GPOS GPf_ALIASED_SV
+syn keyword xsMacro GRAMBARESTMT GRAMBLOCK GRAMEXPR GRAMFULLSTMT GRAMPROG
+syn keyword xsMacro GRAMSTMTSEQ GREEK_CAPITAL_LETTER_IOTA_UTF8
syn keyword xsMacro GREEK_CAPITAL_LETTER_MU GREEK_SMALL_LETTER_MU
-syn keyword xsMacro GROK_NUMERIC_RADIX GROUPP GRPASSWD GV_ADD GV_ADDINEVAL
-syn keyword xsMacro GV_ADDMG GV_ADDMULTI GV_ADDWARN GV_AUTOLOAD
-syn keyword xsMacro GV_AUTOLOAD_ISMETHOD GV_CROAK GV_NOADD_MASK
-syn keyword xsMacro GV_NOADD_NOINIT GV_NOEXPAND GV_NOINIT GV_NOTQUAL
-syn keyword xsMacro GV_NO_SVGMAGIC GVf_ASSUMECV GVf_IMPORTED GVf_IMPORTED_AV
-syn keyword xsMacro GVf_IMPORTED_CV GVf_IMPORTED_HV GVf_IMPORTED_SV GVf_INTRO
-syn keyword xsMacro GVf_IN_PAD GVf_MULTI Gconvert Gid_t_f Gid_t_sign
-syn keyword xsMacro Gid_t_size GvASSIGN_GENERATION GvASSIGN_GENERATION_set
-syn keyword xsMacro GvASSUMECV GvASSUMECV_off GvASSUMECV_on GvAV GvAVn GvCV
-syn keyword xsMacro GvCVGEN GvCV_set GvCVu GvEGV GvEGVx GvENAME GvENAMELEN
-syn keyword xsMacro GvENAMEUTF8 GvENAME_HEK GvESTASH GvFILE GvFILEGV
-syn keyword xsMacro GvFILE_HEK GvFLAGS GvFORM GvGP GvGP_set GvHV GvHVn
-syn keyword xsMacro GvIMPORTED GvIMPORTED_AV GvIMPORTED_AV_off
-syn keyword xsMacro GvIMPORTED_AV_on GvIMPORTED_CV GvIMPORTED_CV_off
-syn keyword xsMacro GvIMPORTED_CV_on GvIMPORTED_HV GvIMPORTED_HV_off
-syn keyword xsMacro GvIMPORTED_HV_on GvIMPORTED_SV GvIMPORTED_SV_off
-syn keyword xsMacro GvIMPORTED_SV_on GvIMPORTED_off GvIMPORTED_on GvINTRO
-syn keyword xsMacro GvINTRO_off GvINTRO_on GvIN_PAD GvIN_PAD_off GvIN_PAD_on
-syn keyword xsMacro GvIO GvIOn GvIOp GvLINE GvMULTI GvMULTI_off GvMULTI_on
-syn keyword xsMacro GvNAME GvNAMELEN GvNAMELEN_get GvNAMEUTF8 GvNAME_HEK
-syn keyword xsMacro GvNAME_get GvREFCNT GvSTASH GvSV GvSVn GvXPVGV Gv_AMG
+syn keyword xsMacro GREEK_SMALL_LETTER_MU_UTF8 GROK_NUMERIC_RADIX GROUPP
+syn keyword xsMacro GRPASSWD GV_ADD GV_ADDMG GV_ADDMULTI GV_ADDWARN
+syn keyword xsMacro GV_AUTOLOAD GV_AUTOLOAD_ISMETHOD GV_CACHE_ONLY GV_CROAK
+syn keyword xsMacro GV_NOADD_MASK GV_NOADD_NOINIT GV_NOEXPAND GV_NOINIT
+syn keyword xsMacro GV_NOTQUAL GV_NO_SVGMAGIC GV_SUPER GVf_ASSUMECV
+syn keyword xsMacro GVf_IMPORTED GVf_IMPORTED_AV GVf_IMPORTED_CV
+syn keyword xsMacro GVf_IMPORTED_HV GVf_IMPORTED_SV GVf_INTRO GVf_MULTI
+syn keyword xsMacro Gconvert Gid_t_f Gid_t_sign Gid_t_size GvALIASED_SV
+syn keyword xsMacro GvALIASED_SV_off GvALIASED_SV_on GvASSIGN_GENERATION
+syn keyword xsMacro GvASSIGN_GENERATION_set GvASSUMECV GvASSUMECV_off
+syn keyword xsMacro GvASSUMECV_on GvAV GvAVn GvCV GvCVGEN GvCV_set GvCVu
+syn keyword xsMacro GvEGV GvEGVx GvENAME GvENAMELEN GvENAMEUTF8 GvENAME_HEK
+syn keyword xsMacro GvESTASH GvFILE GvFILEGV GvFILE_HEK GvFILEx GvFLAGS
+syn keyword xsMacro GvFORM GvGP GvGPFLAGS GvGP_set GvHV GvHVn GvIMPORTED
+syn keyword xsMacro GvIMPORTED_AV GvIMPORTED_AV_off GvIMPORTED_AV_on
+syn keyword xsMacro GvIMPORTED_CV GvIMPORTED_CV_off GvIMPORTED_CV_on
+syn keyword xsMacro GvIMPORTED_HV GvIMPORTED_HV_off GvIMPORTED_HV_on
+syn keyword xsMacro GvIMPORTED_SV GvIMPORTED_SV_off GvIMPORTED_SV_on
+syn keyword xsMacro GvIMPORTED_off GvIMPORTED_on GvINTRO GvINTRO_off
+syn keyword xsMacro GvINTRO_on GvIN_PAD GvIN_PAD_off GvIN_PAD_on GvIO GvIOn
+syn keyword xsMacro GvIOp GvLINE GvMULTI GvMULTI_off GvMULTI_on GvNAME
+syn keyword xsMacro GvNAMELEN GvNAMELEN_get GvNAMEUTF8 GvNAME_HEK GvNAME_get
+syn keyword xsMacro GvREFCNT GvSTASH GvSV GvSVn GvXPVGV Gv_AMG HANDY_H
syn keyword xsMacro HASATTRIBUTE_DEPRECATED HASATTRIBUTE_FORMAT
syn keyword xsMacro HASATTRIBUTE_MALLOC HASATTRIBUTE_NONNULL
syn keyword xsMacro HASATTRIBUTE_NORETURN HASATTRIBUTE_PURE
syn keyword xsMacro HASATTRIBUTE_UNUSED HASATTRIBUTE_WARN_UNUSED_RESULT
-syn keyword xsMacro HASCONST HASHBRACK HASVOLATILE HAS_64K_LIMIT HAS_ACCESS
-syn keyword xsMacro HAS_ALARM HAS_ATOLL HAS_BCMP HAS_BCOPY HAS_BOOL
-syn keyword xsMacro HAS_BUILTIN_CHOOSE_EXPR HAS_BUILTIN_EXPECT HAS_BZERO
-syn keyword xsMacro HAS_C99_VARIADIC_MACROS HAS_CHOWN HAS_CHROOT HAS_CLEARENV
-syn keyword xsMacro HAS_COPYSIGNL HAS_CRYPT HAS_CTERMID HAS_CUSERID
-syn keyword xsMacro HAS_DBL_DIG HAS_DBMINIT_PROTO HAS_DIFFTIME HAS_DIRFD
-syn keyword xsMacro HAS_DLERROR HAS_DRAND48_PROTO HAS_DUP2 HAS_EACCESS
-syn keyword xsMacro HAS_ENDGRENT HAS_ENDHOSTENT HAS_ENDNETENT HAS_ENDPROTOENT
-syn keyword xsMacro HAS_ENDPWENT HAS_ENDSERVENT HAS_FAST_STDIO HAS_FCHDIR
-syn keyword xsMacro HAS_FCHMOD HAS_FCHOWN HAS_FCNTL HAS_FD_SET HAS_FGETPOS
-syn keyword xsMacro HAS_FINITE HAS_FINITEL HAS_FLOCK HAS_FLOCK_PROTO HAS_FORK
-syn keyword xsMacro HAS_FPATHCONF HAS_FREXPL HAS_FSEEKO HAS_FSETPOS
-syn keyword xsMacro HAS_FSTATFS HAS_FSTATVFS HAS_FSYNC HAS_FTELLO HAS_FUTIMES
-syn keyword xsMacro HAS_GETADDRINFO HAS_GETCWD HAS_GETGRENT HAS_GETGROUPS
-syn keyword xsMacro HAS_GETHOSTBYADDR HAS_GETHOSTBYNAME HAS_GETHOSTENT
-syn keyword xsMacro HAS_GETHOSTNAME HAS_GETHOST_PROTOS HAS_GETITIMER
-syn keyword xsMacro HAS_GETLOGIN HAS_GETMNTENT HAS_GETNAMEINFO
-syn keyword xsMacro HAS_GETNETBYADDR HAS_GETNETBYNAME HAS_GETNETENT
-syn keyword xsMacro HAS_GETNET_PROTOS HAS_GETPAGESIZE HAS_GETPGID HAS_GETPGRP
-syn keyword xsMacro HAS_GETPPID HAS_GETPRIORITY HAS_GETPROTOBYNAME
-syn keyword xsMacro HAS_GETPROTOBYNUMBER HAS_GETPROTOENT HAS_GETPROTO_PROTOS
-syn keyword xsMacro HAS_GETPWENT HAS_GETSERVBYNAME HAS_GETSERVBYPORT
-syn keyword xsMacro HAS_GETSERVENT HAS_GETSERV_PROTOS HAS_GETSPNAM
-syn keyword xsMacro HAS_GETTIMEOFDAY HAS_GNULIBC HAS_GROUP HAS_HASMNTOPT
-syn keyword xsMacro HAS_HTOVL HAS_HTOVS HAS_ILOGBL HAS_INETNTOP HAS_INETPTON
+syn keyword xsMacro HASCONST HASHBRACK HASVOLATILE HAS_ACCESS HAS_ACOSH
+syn keyword xsMacro HAS_ALARM HAS_ASINH HAS_ATANH HAS_ATOLL HAS_BACKTRACE
+syn keyword xsMacro HAS_BCMP HAS_BCOPY HAS_BOOL HAS_BUILTIN_CHOOSE_EXPR
+syn keyword xsMacro HAS_BUILTIN_EXPECT HAS_BZERO HAS_C99
+syn keyword xsMacro HAS_C99_VARIADIC_MACROS HAS_CBRT HAS_CHOWN HAS_CHROOT
+syn keyword xsMacro HAS_CLEARENV HAS_COPYSIGN HAS_COPYSIGNL HAS_CRYPT
+syn keyword xsMacro HAS_CTERMID HAS_CUSERID HAS_DBL_DIG HAS_DBMINIT_PROTO
+syn keyword xsMacro HAS_DIFFTIME HAS_DIRFD HAS_DLADDR HAS_DLERROR
+syn keyword xsMacro HAS_DRAND48_PROTO HAS_DUP2 HAS_EACCESS HAS_ENDGRENT
+syn keyword xsMacro HAS_ENDHOSTENT HAS_ENDNETENT HAS_ENDPROTOENT HAS_ENDPWENT
+syn keyword xsMacro HAS_ENDSERVENT HAS_ERF HAS_ERFC HAS_EXP2 HAS_EXPM1
+syn keyword xsMacro HAS_FCHDIR HAS_FCHMOD HAS_FCHOWN HAS_FCNTL HAS_FDIM
+syn keyword xsMacro HAS_FD_SET HAS_FEGETROUND HAS_FGETPOS HAS_FINITE
+syn keyword xsMacro HAS_FINITEL HAS_FLOCK HAS_FLOCK_PROTO HAS_FMA HAS_FMAX
+syn keyword xsMacro HAS_FMIN HAS_FORK HAS_FPATHCONF HAS_FPCLASSIFY HAS_FREXPL
+syn keyword xsMacro HAS_FSEEKO HAS_FSETPOS HAS_FSTATFS HAS_FSTATVFS HAS_FSYNC
+syn keyword xsMacro HAS_FTELLO HAS_FUTIMES HAS_GETADDRINFO HAS_GETCWD
+syn keyword xsMacro HAS_GETGRENT HAS_GETGROUPS HAS_GETHOSTBYADDR
+syn keyword xsMacro HAS_GETHOSTBYNAME HAS_GETHOSTENT HAS_GETHOSTNAME
+syn keyword xsMacro HAS_GETHOST_PROTOS HAS_GETITIMER HAS_GETLOGIN
+syn keyword xsMacro HAS_GETMNTENT HAS_GETNAMEINFO HAS_GETNETBYADDR
+syn keyword xsMacro HAS_GETNETBYNAME HAS_GETNETENT HAS_GETNET_PROTOS
+syn keyword xsMacro HAS_GETPAGESIZE HAS_GETPGID HAS_GETPGRP HAS_GETPPID
+syn keyword xsMacro HAS_GETPRIORITY HAS_GETPROTOBYNAME HAS_GETPROTOBYNUMBER
+syn keyword xsMacro HAS_GETPROTOENT HAS_GETPROTO_PROTOS HAS_GETPWENT
+syn keyword xsMacro HAS_GETSERVBYNAME HAS_GETSERVBYPORT HAS_GETSERVENT
+syn keyword xsMacro HAS_GETSERV_PROTOS HAS_GETSPNAM HAS_GETTIMEOFDAY
+syn keyword xsMacro HAS_GNULIBC HAS_GROUP HAS_HASMNTOPT HAS_HTONL HAS_HTONS
+syn keyword xsMacro HAS_HYPOT HAS_ILOGB HAS_ILOGBL HAS_INETNTOP HAS_INETPTON
syn keyword xsMacro HAS_INET_ATON HAS_INT64_T HAS_IOCTL HAS_IPV6_MREQ
-syn keyword xsMacro HAS_ISASCII HAS_ISBLANK HAS_ISINF HAS_ISNAN HAS_ISNANL
-syn keyword xsMacro HAS_KILL HAS_KILLPG HAS_LCHOWN HAS_LDBL_DIG HAS_LINK
-syn keyword xsMacro HAS_LOCALECONV HAS_LOCKF HAS_LONG_DOUBLE HAS_LONG_LONG
+syn keyword xsMacro HAS_IP_MREQ HAS_IP_MREQ_SOURCE HAS_ISASCII HAS_ISBLANK
+syn keyword xsMacro HAS_ISFINITE HAS_ISINF HAS_ISINFL HAS_ISNAN HAS_ISNANL
+syn keyword xsMacro HAS_ISNORMAL HAS_J0 HAS_J0L HAS_KILL HAS_KILLPG
+syn keyword xsMacro HAS_LCHOWN HAS_LC_MONETARY_2008 HAS_LDBL_DIG HAS_LDEXPL
+syn keyword xsMacro HAS_LGAMMA HAS_LGAMMA_R HAS_LINK HAS_LLRINT HAS_LLRINTL
+syn keyword xsMacro HAS_LLROUND HAS_LLROUNDL HAS_LOCALECONV HAS_LOCKF
+syn keyword xsMacro HAS_LOG1P HAS_LOG2 HAS_LOGB HAS_LONG_DOUBLE HAS_LONG_LONG
+syn keyword xsMacro HAS_LRINT HAS_LRINTL HAS_LROUND HAS_LROUNDL
syn keyword xsMacro HAS_LSEEK_PROTO HAS_LSTAT HAS_MADVISE HAS_MBLEN
syn keyword xsMacro HAS_MBSTOWCS HAS_MBTOWC HAS_MEMCHR HAS_MEMCMP HAS_MEMCPY
syn keyword xsMacro HAS_MEMMOVE HAS_MEMSET HAS_MKDIR HAS_MKDTEMP HAS_MKFIFO
syn keyword xsMacro HAS_MKSTEMP HAS_MKSTEMPS HAS_MKTIME HAS_MMAP HAS_MODFL
syn keyword xsMacro HAS_MODFL_PROTO HAS_MPROTECT HAS_MSG HAS_MSG_CTRUNC
syn keyword xsMacro HAS_MSG_DONTROUTE HAS_MSG_OOB HAS_MSG_PEEK HAS_MSG_PROXY
-syn keyword xsMacro HAS_MSYNC HAS_MUNMAP HAS_NICE HAS_NL_LANGINFO HAS_OPEN3
-syn keyword xsMacro HAS_PASSWD HAS_PATHCONF HAS_PAUSE HAS_PIPE HAS_POLL
-syn keyword xsMacro HAS_PRCTL HAS_PRCTL_SET_NAME HAS_PROCSELFEXE
+syn keyword xsMacro HAS_MSYNC HAS_MUNMAP HAS_NAN HAS_NEARBYINT HAS_NEXTAFTER
+syn keyword xsMacro HAS_NEXTTOWARD HAS_NICE HAS_NL_LANGINFO HAS_NTOHL
+syn keyword xsMacro HAS_NTOHS HAS_OPEN3 HAS_PASSWD HAS_PATHCONF HAS_PAUSE
+syn keyword xsMacro HAS_PIPE HAS_POLL HAS_PRCTL HAS_PRCTL_SET_NAME
+syn keyword xsMacro HAS_PROCSELFEXE HAS_PTHREAD_ATFORK
syn keyword xsMacro HAS_PTHREAD_ATTR_SETSCOPE
-syn keyword xsMacro HAS_PTHREAD_UNCHECKED_GETSPECIFIC_NP HAS_READDIR
-syn keyword xsMacro HAS_READLINK HAS_READV HAS_RECVMSG HAS_RENAME
-syn keyword xsMacro HAS_REWINDDIR HAS_RMDIR HAS_SANE_MEMCMP HAS_SBRK_PROTO
-syn keyword xsMacro HAS_SCALBNL HAS_SCHED_YIELD HAS_SCM_RIGHTS HAS_SEEKDIR
-syn keyword xsMacro HAS_SELECT HAS_SEM HAS_SENDMSG HAS_SETEGID HAS_SETEUID
-syn keyword xsMacro HAS_SETGRENT HAS_SETGROUPS HAS_SETHOSTENT HAS_SETITIMER
-syn keyword xsMacro HAS_SETLINEBUF HAS_SETLOCALE HAS_SETNETENT HAS_SETPGID
-syn keyword xsMacro HAS_SETPGRP HAS_SETPRIORITY HAS_SETPROTOENT HAS_SETPWENT
-syn keyword xsMacro HAS_SETREGID HAS_SETRESGID HAS_SETRESUID HAS_SETREUID
-syn keyword xsMacro HAS_SETSERVENT HAS_SETSID HAS_SETVBUF HAS_SHM
-syn keyword xsMacro HAS_SHMAT_PROTOTYPE HAS_SIGACTION HAS_SIGNBIT
-syn keyword xsMacro HAS_SIGPROCMASK HAS_SIGSETJMP HAS_SIN6_SCOPE_ID
-syn keyword xsMacro HAS_SNPRINTF HAS_SOCKADDR_IN6 HAS_SOCKATMARK
-syn keyword xsMacro HAS_SOCKATMARK_PROTO HAS_SOCKET HAS_SQRTL
-syn keyword xsMacro HAS_STATIC_INLINE HAS_STRCHR HAS_STRCOLL HAS_STRFTIME
-syn keyword xsMacro HAS_STRTOD HAS_STRTOL HAS_STRTOLD HAS_STRTOLL HAS_STRTOQ
-syn keyword xsMacro HAS_STRTOUL HAS_STRTOULL HAS_STRTOUQ HAS_STRUCT_CMSGHDR
+syn keyword xsMacro HAS_PTHREAD_UNCHECKED_GETSPECIFIC_NP HAS_PTHREAD_YIELD
+syn keyword xsMacro HAS_PTRDIFF_T HAS_READDIR HAS_READLINK HAS_READV
+syn keyword xsMacro HAS_RECVMSG HAS_REGCOMP HAS_REMAINDER HAS_REMQUO
+syn keyword xsMacro HAS_RENAME HAS_REWINDDIR HAS_RINT HAS_RMDIR HAS_ROUND
+syn keyword xsMacro HAS_SANE_MEMCMP HAS_SBRK_PROTO HAS_SCALBN HAS_SCALBNL
+syn keyword xsMacro HAS_SCHED_YIELD HAS_SCM_RIGHTS HAS_SEEKDIR HAS_SELECT
+syn keyword xsMacro HAS_SEM HAS_SENDMSG HAS_SETEGID HAS_SETEUID HAS_SETGRENT
+syn keyword xsMacro HAS_SETGROUPS HAS_SETHOSTENT HAS_SETITIMER HAS_SETLINEBUF
+syn keyword xsMacro HAS_SETLOCALE HAS_SETNETENT HAS_SETPGID HAS_SETPGRP
+syn keyword xsMacro HAS_SETPRIORITY HAS_SETPROTOENT HAS_SETPWENT HAS_SETREGID
+syn keyword xsMacro HAS_SETRESGID HAS_SETRESUID HAS_SETREUID HAS_SETSERVENT
+syn keyword xsMacro HAS_SETSID HAS_SETVBUF HAS_SHM HAS_SHMAT_PROTOTYPE
+syn keyword xsMacro HAS_SIGACTION HAS_SIGNBIT HAS_SIGPROCMASK HAS_SIGSETJMP
+syn keyword xsMacro HAS_SIN6_SCOPE_ID HAS_SKIP_LOCALE_INIT HAS_SNPRINTF
+syn keyword xsMacro HAS_SOCKADDR_IN6 HAS_SOCKATMARK HAS_SOCKATMARK_PROTO
+syn keyword xsMacro HAS_SOCKET HAS_SQRTL HAS_STAT HAS_STATIC_INLINE
+syn keyword xsMacro HAS_STRCHR HAS_STRCOLL HAS_STRFTIME HAS_STRTOD HAS_STRTOL
+syn keyword xsMacro HAS_STRTOLD HAS_STRTOLL HAS_STRTOQ HAS_STRTOUL
+syn keyword xsMacro HAS_STRTOULL HAS_STRTOUQ HAS_STRUCT_CMSGHDR
syn keyword xsMacro HAS_STRUCT_MSGHDR HAS_STRUCT_STATFS
syn keyword xsMacro HAS_STRUCT_STATFS_F_FLAGS HAS_STRXFRM HAS_SYMLINK
syn keyword xsMacro HAS_SYSCALL HAS_SYSCALL_PROTO HAS_SYSCONF HAS_SYSTEM
syn keyword xsMacro HAS_SYS_ERRLIST HAS_TCGETPGRP HAS_TCSETPGRP HAS_TELLDIR
-syn keyword xsMacro HAS_TELLDIR_PROTO HAS_TIME HAS_TIMEGM HAS_TIMES
-syn keyword xsMacro HAS_TM_TM_GMTOFF HAS_TM_TM_ZONE HAS_TRUNCATE HAS_TZNAME
-syn keyword xsMacro HAS_UALARM HAS_UMASK HAS_UNAME HAS_UNSETENV HAS_USLEEP
-syn keyword xsMacro HAS_USLEEP_PROTO HAS_USTAT HAS_UTIME HAS_VPRINTF
-syn keyword xsMacro HAS_VSNPRINTF HAS_VTOHL HAS_VTOHS HAS_WAIT HAS_WAIT4
-syn keyword xsMacro HAS_WAITPID HAS_WCSTOMBS HAS_WCTOMB HAS_WRITEV
-syn keyword xsMacro HAVE_THREAD_INTERN HEK_BASESIZE HEK_FLAGS HEK_HASH
-syn keyword xsMacro HEK_KEY HEK_LEN HEK_REHASH HEK_REHASH_on HEK_UTF8
-syn keyword xsMacro HEK_UTF8_off HEK_UTF8_on HEK_WASUTF8 HEK_WASUTF8_off
-syn keyword xsMacro HEK_WASUTF8_on HEKf HEKf256 HEKfARG HE_SVSLOT HEf_SVKEY
-syn keyword xsMacro HINTS_REFCNT_INIT HINTS_REFCNT_LOCK HINTS_REFCNT_TERM
-syn keyword xsMacro HINTS_REFCNT_UNLOCK HINT_BLOCK_SCOPE HINT_BYTES
-syn keyword xsMacro HINT_EXPLICIT_STRICT_REFS HINT_EXPLICIT_STRICT_SUBS
-syn keyword xsMacro HINT_EXPLICIT_STRICT_VARS HINT_FEATURE_MASK
-syn keyword xsMacro HINT_FEATURE_SHIFT HINT_FILETEST_ACCESS HINT_INTEGER
-syn keyword xsMacro HINT_LEXICAL_IO_IN HINT_LEXICAL_IO_OUT HINT_LOCALE
-syn keyword xsMacro HINT_LOCALE_NOT_CHARS HINT_LOCALIZE_HH HINT_NEW_BINARY
-syn keyword xsMacro HINT_NEW_FLOAT HINT_NEW_INTEGER HINT_NEW_RE
-syn keyword xsMacro HINT_NEW_STRING HINT_NO_AMAGIC HINT_RE_EVAL HINT_RE_FLAGS
-syn keyword xsMacro HINT_RE_TAINT HINT_SORT_MERGESORT HINT_SORT_QUICKSORT
-syn keyword xsMacro HINT_SORT_SORT_BITS HINT_SORT_STABLE HINT_STRICT_REFS
-syn keyword xsMacro HINT_STRICT_SUBS HINT_STRICT_VARS HINT_UNI_8_BIT
-syn keyword xsMacro HINT_UTF8 HORIZWS HV_DELETE HV_DISABLE_UVAR_XKEY
+syn keyword xsMacro HAS_TELLDIR_PROTO HAS_TGAMMA HAS_TIME HAS_TIMEGM
+syn keyword xsMacro HAS_TIMES HAS_TM_TM_GMTOFF HAS_TM_TM_ZONE HAS_TRUNC
+syn keyword xsMacro HAS_TRUNCATE HAS_TRUNCL HAS_TZNAME HAS_UALARM HAS_UMASK
+syn keyword xsMacro HAS_UNAME HAS_UNSETENV HAS_USLEEP HAS_USLEEP_PROTO
+syn keyword xsMacro HAS_USTAT HAS_UTIME HAS_VPRINTF HAS_VSNPRINTF HAS_WAIT
+syn keyword xsMacro HAS_WAIT4 HAS_WAITPID HAS_WCSCMP HAS_WCSTOMBS HAS_WCSXFRM
+syn keyword xsMacro HAS_WCTOMB HAS_WRITEV HEK_BASESIZE HEK_FLAGS HEK_HASH
+syn keyword xsMacro HEK_KEY HEK_LEN HEK_UTF8 HEK_UTF8_off HEK_UTF8_on
+syn keyword xsMacro HEK_WASUTF8 HEK_WASUTF8_off HEK_WASUTF8_on HEKf HEKf256
+syn keyword xsMacro HEKfARG HE_SVSLOT HEf_SVKEY HINTS_REFCNT_INIT
+syn keyword xsMacro HINTS_REFCNT_LOCK HINTS_REFCNT_TERM HINTS_REFCNT_UNLOCK
+syn keyword xsMacro HINT_BLOCK_SCOPE HINT_BYTES HINT_EXPLICIT_STRICT_REFS
+syn keyword xsMacro HINT_EXPLICIT_STRICT_SUBS HINT_EXPLICIT_STRICT_VARS
+syn keyword xsMacro HINT_FEATURE_MASK HINT_FEATURE_SHIFT HINT_FILETEST_ACCESS
+syn keyword xsMacro HINT_INTEGER HINT_LEXICAL_IO_IN HINT_LEXICAL_IO_OUT
+syn keyword xsMacro HINT_LOCALE HINT_LOCALE_PARTIAL HINT_LOCALIZE_HH
+syn keyword xsMacro HINT_NEW_BINARY HINT_NEW_FLOAT HINT_NEW_INTEGER
+syn keyword xsMacro HINT_NEW_RE HINT_NEW_STRING HINT_NO_AMAGIC HINT_RE_EVAL
+syn keyword xsMacro HINT_RE_FLAGS HINT_RE_TAINT HINT_SORT_MERGESORT
+syn keyword xsMacro HINT_SORT_QUICKSORT HINT_SORT_SORT_BITS HINT_SORT_STABLE
+syn keyword xsMacro HINT_STRICT_REFS HINT_STRICT_SUBS HINT_STRICT_VARS
+syn keyword xsMacro HINT_UNI_8_BIT HINT_UTF8 HS_APIVERLEN_MAX HS_CXT
+syn keyword xsMacro HS_GETAPIVERLEN HS_GETINTERPSIZE HS_GETXSVERLEN HS_KEY
+syn keyword xsMacro HS_KEYp HS_XSVERLEN_MAX HSf_IMP_CXT HSf_NOCHK HSf_POPMARK
+syn keyword xsMacro HSf_SETXSUBFN HSm_APIVERLEN HSm_INTRPSIZE HSm_KEY_MATCH
+syn keyword xsMacro HSm_XSVERLEN HV_DELETE HV_DISABLE_UVAR_XKEY
syn keyword xsMacro HV_FETCH_EMPTY_HE HV_FETCH_ISEXISTS HV_FETCH_ISSTORE
syn keyword xsMacro HV_FETCH_JUST_SV HV_FETCH_LVALUE
syn keyword xsMacro HV_ITERNEXT_WANTPLACEHOLDERS HV_NAME_SETALL
syn keyword xsMacro HVhek_ENABLEHVKFLAGS HVhek_FREEKEY HVhek_KEYCANONICAL
-syn keyword xsMacro HVhek_MASK HVhek_PLACEHOLD HVhek_REHASH HVhek_UNSHARED
-syn keyword xsMacro HVhek_UTF8 HVhek_WASUTF8 HVrhek_IV HVrhek_PV
-syn keyword xsMacro HVrhek_PV_UTF8 HVrhek_UV HVrhek_delete HVrhek_typemask
-syn keyword xsMacro HVrhek_undef H_PERL HeHASH HeKEY HeKEY_hek HeKEY_sv
-syn keyword xsMacro HeKFLAGS HeKLEN HeKLEN_UTF8 HeKREHASH HeKUTF8 HeKWASUTF8
+syn keyword xsMacro HVhek_MASK HVhek_PLACEHOLD HVhek_UNSHARED HVhek_UTF8
+syn keyword xsMacro HVhek_WASUTF8 HVrhek_IV HVrhek_PV HVrhek_PV_UTF8
+syn keyword xsMacro HVrhek_UV HVrhek_delete HVrhek_typemask HVrhek_undef
+syn keyword xsMacro HYPHEN_UTF8 H_EBCDIC_TABLES H_PERL H_REGCHARCLASS
+syn keyword xsMacro H_UNICODE_CONSTANTS H_UTF8 HeHASH HeKEY HeKEY_hek
+syn keyword xsMacro HeKEY_sv HeKFLAGS HeKLEN HeKLEN_UTF8 HeKUTF8 HeKWASUTF8
syn keyword xsMacro HeNEXT HePV HeSVKEY HeSVKEY_force HeSVKEY_set HeUTF8
-syn keyword xsMacro HeVAL HvARRAY HvAUX HvEITER HvEITER_get HvEITER_set
-syn keyword xsMacro HvENAME HvENAMELEN HvENAMELEN_get HvENAMEUTF8 HvENAME_HEK
-syn keyword xsMacro HvENAME_HEK_NN HvENAME_get HvFILL HvHASKFLAGS
-syn keyword xsMacro HvHASKFLAGS_off HvHASKFLAGS_on HvKEYS HvLAZYDEL
-syn keyword xsMacro HvLAZYDEL_off HvLAZYDEL_on HvMAX HvMROMETA HvNAME
-syn keyword xsMacro HvNAMELEN HvNAMELEN_get HvNAMEUTF8 HvNAME_HEK
+syn keyword xsMacro HeVAL HvAMAGIC HvAMAGIC_off HvAMAGIC_on HvARRAY HvAUX
+syn keyword xsMacro HvAUXf_NO_DEREF HvAUXf_SCAN_STASH HvEITER HvEITER_get
+syn keyword xsMacro HvEITER_set HvENAME HvENAMELEN HvENAMELEN_get HvENAMEUTF8
+syn keyword xsMacro HvENAME_HEK HvENAME_HEK_NN HvENAME_get HvFILL HvHASKFLAGS
+syn keyword xsMacro HvHASKFLAGS_off HvHASKFLAGS_on HvKEYS HvLASTRAND_get
+syn keyword xsMacro HvLAZYDEL HvLAZYDEL_off HvLAZYDEL_on HvMAX HvMROMETA
+syn keyword xsMacro HvNAME HvNAMELEN HvNAMELEN_get HvNAMEUTF8 HvNAME_HEK
syn keyword xsMacro HvNAME_HEK_NN HvNAME_get HvPLACEHOLDERS
-syn keyword xsMacro HvPLACEHOLDERS_get HvPLACEHOLDERS_set HvREHASH
-syn keyword xsMacro HvREHASH_off HvREHASH_on HvRITER HvRITER_get HvRITER_set
-syn keyword xsMacro HvSHAREKEYS HvSHAREKEYS_off HvSHAREKEYS_on HvTOTALKEYS
-syn keyword xsMacro HvUSEDKEYS I16SIZE I16TYPE I16_MAX I16_MIN I286 I32SIZE
-syn keyword xsMacro I32TYPE I32_MAX I32_MAX_P1 I32_MIN I64SIZE I64TYPE I8SIZE
-syn keyword xsMacro I8TYPE I8_TO_NATIVE IF IFMATCH IFMATCH_A IFMATCH_A_fail
-syn keyword xsMacro IFTHEN IGNORE_PAT_MOD INIT INIT_THREADS
+syn keyword xsMacro HvPLACEHOLDERS_get HvPLACEHOLDERS_set HvRAND_get HvRITER
+syn keyword xsMacro HvRITER_get HvRITER_set HvSHAREKEYS HvSHAREKEYS_off
+syn keyword xsMacro HvSHAREKEYS_on HvTOTALKEYS HvUSEDKEYS I16SIZE I16TYPE
+syn keyword xsMacro I16_MAX I16_MIN I32SIZE I32TYPE I32_MAX I32_MAX_P1
+syn keyword xsMacro I32_MIN I64SIZE I64TYPE I8SIZE I8TYPE I8_TO_NATIVE
+syn keyword xsMacro I8_TO_NATIVE_UTF8 IF IFMATCH IFMATCH_A IFMATCH_A_fail
+syn keyword xsMacro IFTHEN IGNORE_PAT_MOD ILLEGAL_UTF8_BYTE INIT INIT_THREADS
syn keyword xsMacro INIT_TRACK_MEMPOOL INSUBP INT2PTR INT32_MIN INT64_C
-syn keyword xsMacro INT64_MIN INTSIZE INT_64_T INT_PAT_MODS
-syn keyword xsMacro INVERSION_UNAFFECTED_FLAGS IN_BYTES IN_LOCALE
+syn keyword xsMacro INT64_MIN INTSIZE INT_64_T INT_PAT_MODS IN_BYTES
+syn keyword xsMacro IN_ENCODING IN_LC IN_LC_ALL_COMPILETIME IN_LC_ALL_RUNTIME
+syn keyword xsMacro IN_LC_COMPILETIME IN_LC_PARTIAL_COMPILETIME
+syn keyword xsMacro IN_LC_PARTIAL_RUNTIME IN_LC_RUNTIME IN_LOCALE
syn keyword xsMacro IN_LOCALE_COMPILETIME IN_LOCALE_RUNTIME
syn keyword xsMacro IN_PERL_COMPILETIME IN_PERL_RUNTIME IN_SOME_LOCALE_FORM
syn keyword xsMacro IN_SOME_LOCALE_FORM_COMPILETIME
-syn keyword xsMacro IN_SOME_LOCALE_FORM_RUNTIME IN_UNI_8_BIT IOCPARM_LEN
-syn keyword xsMacro IOf_ARGV IOf_DIDTOP IOf_FAKE_DIRP IOf_FLUSH IOf_NOLINE
-syn keyword xsMacro IOf_START IOf_UNTAINT ISHISH IS_ANYOF_TRIE
+syn keyword xsMacro IN_SOME_LOCALE_FORM_RUNTIME IN_UNI_8_BIT
+syn keyword xsMacro IN_UTF8_CTYPE_LOCALE IOCPARM_LEN IOf_ARGV IOf_DIDTOP
+syn keyword xsMacro IOf_FAKE_DIRP IOf_FLUSH IOf_NOLINE IOf_START IOf_UNTAINT
+syn keyword xsMacro ISA_VERSION_OBJ IS_ANYOF_TRIE
syn keyword xsMacro IS_NUMBER_GREATER_THAN_UV_MAX IS_NUMBER_INFINITY
syn keyword xsMacro IS_NUMBER_IN_UV IS_NUMBER_NAN IS_NUMBER_NEG
-syn keyword xsMacro IS_NUMBER_NOT_INT IS_NUMERIC_RADIX IS_PADCONST IS_PADGV
-syn keyword xsMacro IS_TRIE_AC IS_UTF8_CHAR IS_UTF8_CHAR_1 IS_UTF8_CHAR_2
-syn keyword xsMacro IS_UTF8_CHAR_3 IS_UTF8_CHAR_3a IS_UTF8_CHAR_3b
-syn keyword xsMacro IS_UTF8_CHAR_3c IS_UTF8_CHAR_3d IS_UTF8_CHAR_4
-syn keyword xsMacro IS_UTF8_CHAR_4a IS_UTF8_CHAR_4b IS_UTF8_CHAR_4c
-syn keyword xsMacro IS_UTF8_CHAR_5 IS_UTF8_CHAR_5a IS_UTF8_CHAR_5b
-syn keyword xsMacro IS_UTF8_CHAR_FAST IVSIZE IVTYPE IV_DIG IV_MAX IV_MAX_P1
-syn keyword xsMacro IV_MIN I_32 I_ARPA_INET I_ASSERT I_CRYPT I_DBM I_DIRENT
-syn keyword xsMacro I_DLFCN I_FLOAT I_GDBM I_GDBMNDBM I_GRP I_INTTYPES
-syn keyword xsMacro I_LANGINFO I_LIMITS I_LOCALE I_MATH I_MNTENT I_NETDB
-syn keyword xsMacro I_NETINET_IN I_NETINET_TCP I_POLL I_PTHREAD I_PWD
-syn keyword xsMacro I_SHADOW I_STDARG I_STDBOOL I_STDDEF I_STDLIB I_STRING
+syn keyword xsMacro IS_NUMBER_NOT_INT IS_NUMBER_TRAILING IS_NUMERIC_RADIX
+syn keyword xsMacro IS_PADCONST IS_PADGV IS_SAFE_PATHNAME IS_SAFE_SYSCALL
+syn keyword xsMacro IS_TRIE_AC IS_UTF8_CHAR IS_UTF8_CHAR_FAST IVSIZE IVTYPE
+syn keyword xsMacro IV_DIG IV_MAX IV_MAX_P1 IV_MIN I_32 I_ARPA_INET I_ASSERT
+syn keyword xsMacro I_BFD I_CRYPT I_DBM I_DIRENT I_DLFCN I_EXECINFO I_FENV
+syn keyword xsMacro I_FLOAT I_GDBM I_GDBMNDBM I_GRP I_INTTYPES I_LANGINFO
+syn keyword xsMacro I_LIMITS I_LOCALE I_MATH I_MNTENT I_NETDB I_NETINET_IN
+syn keyword xsMacro I_NETINET_TCP I_POLL I_PTHREAD I_PWD I_QUADMATH I_SHADOW
+syn keyword xsMacro I_STDARG I_STDBOOL I_STDDEF I_STDINT I_STDLIB I_STRING
syn keyword xsMacro I_SYSLOG I_SYSUIO I_SYSUTSNAME I_SYS_DIR I_SYS_FILE
syn keyword xsMacro I_SYS_IOCTL I_SYS_MOUNT I_SYS_PARAM I_SYS_POLL
syn keyword xsMacro I_SYS_RESOURCE I_SYS_SELECT I_SYS_STAT I_SYS_STATFS
@@ -1372,12 +1528,12 @@ syn keyword xsMacro IoTYPE_NUMERIC IoTYPE_PIPE IoTYPE_RDONLY IoTYPE_RDWR
syn keyword xsMacro IoTYPE_SOCKET IoTYPE_STD IoTYPE_WRONLY IsSet
syn keyword xsMacro JMPENV_BOOTSTRAP JMPENV_JUMP JMPENV_POP JMPENV_PUSH JOIN
syn keyword xsMacro KEEPCOPY_PAT_MOD KEEPCOPY_PAT_MODS KEEPS KEEPS_next
-syn keyword xsMacro KEEPS_next_fail KEYWORD_PLUGIN_DECLINE
+syn keyword xsMacro KEEPS_next_fail KELVIN_SIGN KEYWORD_PLUGIN_DECLINE
syn keyword xsMacro KEYWORD_PLUGIN_EXPR KEYWORD_PLUGIN_STMT KEY_AUTOLOAD
-syn keyword xsMacro KEY_BEGIN KEY_CHECK KEY_CORE KEY_DESTROY KEY_END KEY_INIT
-syn keyword xsMacro KEY_NULL KEY_UNITCHECK KEY___DATA__ KEY___END__
-syn keyword xsMacro KEY___FILE__ KEY___LINE__ KEY___PACKAGE__ KEY___SUB__
-syn keyword xsMacro KEY_abs KEY_accept KEY_alarm KEY_and KEY_atan2 KEY_bind
+syn keyword xsMacro KEY_BEGIN KEY_CHECK KEY_DESTROY KEY_END KEY_INIT KEY_NULL
+syn keyword xsMacro KEY_UNITCHECK KEY___DATA__ KEY___END__ KEY___FILE__
+syn keyword xsMacro KEY___LINE__ KEY___PACKAGE__ KEY___SUB__ KEY_abs
+syn keyword xsMacro KEY_accept KEY_alarm KEY_and KEY_atan2 KEY_bind
syn keyword xsMacro KEY_binmode KEY_bless KEY_break KEY_caller KEY_chdir
syn keyword xsMacro KEY_chmod KEY_chomp KEY_chop KEY_chown KEY_chr KEY_chroot
syn keyword xsMacro KEY_close KEY_closedir KEY_cmp KEY_connect KEY_continue
@@ -1425,125 +1581,177 @@ syn keyword xsMacro KEY_uc KEY_ucfirst KEY_umask KEY_undef KEY_unless
syn keyword xsMacro KEY_unlink KEY_unpack KEY_unshift KEY_untie KEY_until
syn keyword xsMacro KEY_use KEY_utime KEY_values KEY_vec KEY_wait KEY_waitpid
syn keyword xsMacro KEY_wantarray KEY_warn KEY_when KEY_while KEY_write KEY_x
-syn keyword xsMacro KEY_xor KEY_y LABEL
+syn keyword xsMacro KEY_xor KEY_y LABEL LATIN1_TO_NATIVE
syn keyword xsMacro LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE
+syn keyword xsMacro LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE_NATIVE
syn keyword xsMacro LATIN_CAPITAL_LETTER_SHARP_S
+syn keyword xsMacro LATIN_CAPITAL_LETTER_SHARP_S_UTF8
syn keyword xsMacro LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS
syn keyword xsMacro LATIN_SMALL_LETTER_A_WITH_RING_ABOVE
+syn keyword xsMacro LATIN_SMALL_LETTER_A_WITH_RING_ABOVE_NATIVE
+syn keyword xsMacro LATIN_SMALL_LETTER_LONG_S LATIN_SMALL_LETTER_LONG_S_UTF8
syn keyword xsMacro LATIN_SMALL_LETTER_SHARP_S
-syn keyword xsMacro LATIN_SMALL_LETTER_Y_WITH_DIAERESIS LDBL_DIG LEAVE
-syn keyword xsMacro LEAVESUB LEAVE_SCOPE LEAVE_with_name LEX_DONT_CLOSE_RSFP
-syn keyword xsMacro LEX_EVALBYTES LEX_IGNORE_UTF8_HINTS LEX_KEEP_PREVIOUS
-syn keyword xsMacro LEX_NOTPARSING LEX_START_COPIED LEX_START_FLAGS
-syn keyword xsMacro LEX_START_SAME_FILTER LEX_STUFF_UTF8 LIBERAL
-syn keyword xsMacro LIBM_LIB_VERSION LIB_INVARG LIKELY LINKLIST LNBREAK LOCAL
-syn keyword xsMacro LOCALE_PAT_MOD LOCALE_PAT_MODS LOCALTIME_MAX
+syn keyword xsMacro LATIN_SMALL_LETTER_SHARP_S_NATIVE
+syn keyword xsMacro LATIN_SMALL_LETTER_Y_WITH_DIAERESIS
+syn keyword xsMacro LATIN_SMALL_LETTER_Y_WITH_DIAERESIS_NATIVE
+syn keyword xsMacro LATIN_SMALL_LIGATURE_LONG_S_T
+syn keyword xsMacro LATIN_SMALL_LIGATURE_LONG_S_T_UTF8
+syn keyword xsMacro LATIN_SMALL_LIGATURE_ST LATIN_SMALL_LIGATURE_ST_UTF8
+syn keyword xsMacro LDBL_DIG LEAVE LEAVESUB LEAVE_SCOPE LEAVE_with_name
+syn keyword xsMacro LEX_DONT_CLOSE_RSFP LEX_EVALBYTES LEX_IGNORE_UTF8_HINTS
+syn keyword xsMacro LEX_KEEP_PREVIOUS LEX_NOTPARSING LEX_START_COPIED
+syn keyword xsMacro LEX_START_FLAGS LEX_START_SAME_FILTER LEX_STUFF_UTF8
+syn keyword xsMacro LF_NATIVE LIBERAL LIBM_LIB_VERSION LIB_INVARG LIKELY
+syn keyword xsMacro LINKLIST LNBREAK LOADED_FILE_PROBE LOADING_FILE_PROBE
+syn keyword xsMacro LOCAL LOCALE_PAT_MOD LOCALE_PAT_MODS LOCALTIME_MAX
syn keyword xsMacro LOCALTIME_MIN LOCALTIME_R LOCALTIME_R_PROTO
-syn keyword xsMacro LOCAL_PATCH_COUNT LOCK_DOLLARZERO_MUTEX LOC_SED LOGICAL
-syn keyword xsMacro LONGJMP LONGLONGSIZE LONGSIZE LONG_DOUBLESIZE
-syn keyword xsMacro LONG_DOUBLE_EQUALS_DOUBLE LOOPEX LOOP_PAT_MODS LSEEKSIZE
-syn keyword xsMacro LSTOP LSTOPSUB LVRET L_R_TZSET LvFLAGS LvTARG LvTARGLEN
-syn keyword xsMacro LvTARGOFF LvTYPE MADPROP_IN_BASEOP MAD_NULL MAD_OP MAD_PV
-syn keyword xsMacro MAD_SV MALLOC_CHECK_TAINT MALLOC_CHECK_TAINT2
-syn keyword xsMacro MALLOC_CTL_H MALLOC_INIT MALLOC_OVERHEAD MALLOC_TERM
+syn keyword xsMacro LOCAL_PATCH_COUNT LOCK_DOLLARZERO_MUTEX
+syn keyword xsMacro LOCK_LC_NUMERIC_STANDARD LOCK_NUMERIC_STANDARD LOC_SED
+syn keyword xsMacro LOGICAL LONGDOUBLE_BIG_ENDIAN LONGDOUBLE_DOUBLEDOUBLE
+syn keyword xsMacro LONGDOUBLE_LITTLE_ENDIAN LONGDOUBLE_X86_80_BIT LONGJMP
+syn keyword xsMacro LONGLONGSIZE LONGSIZE LONG_DOUBLEKIND LONG_DOUBLESIZE
+syn keyword xsMacro LONG_DOUBLE_EQUALS_DOUBLE LONG_DOUBLE_IS_DOUBLE
+syn keyword xsMacro LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN
+syn keyword xsMacro LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN
+syn keyword xsMacro LONG_DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN
+syn keyword xsMacro LONG_DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN
+syn keyword xsMacro LONG_DOUBLE_IS_UNKNOWN_FORMAT
+syn keyword xsMacro LONG_DOUBLE_IS_X86_80_BIT_BIG_ENDIAN
+syn keyword xsMacro LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN LOOPEX
+syn keyword xsMacro LOOP_PAT_MODS LSEEKSIZE LSTOP LSTOPSUB LVRET L_R_TZSET
+syn keyword xsMacro LvFLAGS LvSTARGOFF LvTARG LvTARGLEN LvTARGOFF LvTYPE
+syn keyword xsMacro MALLOC_CHECK_TAINT MALLOC_CHECK_TAINT2 MALLOC_CTL_H
+syn keyword xsMacro MALLOC_INIT MALLOC_OVERHEAD MALLOC_TERM
syn keyword xsMacro MALLOC_TOO_LATE_FOR MARKPOINT MARKPOINT_next
syn keyword xsMacro MARKPOINT_next_fail MASK MATCHOP MAXARG MAXO MAXPATHLEN
syn keyword xsMacro MAXSYSFD MAX_CHARSET_NAME_LENGTH MAX_FEATURE_LEN
syn keyword xsMacro MAX_PORTABLE_UTF8_TWO_BYTE
-syn keyword xsMacro MAX_RECURSE_EVAL_NOCHANGE_DEPTH MAYBE_DEREF_GV
-syn keyword xsMacro MAYBE_DEREF_GV_flags MAYBE_DEREF_GV_nomg MBOL
-syn keyword xsMacro MEMBER_TO_FPTR MEM_ALIGNBYTES MEM_LOG_ALLOC MEM_LOG_FREE
-syn keyword xsMacro MEM_LOG_REALLOC MEM_SIZE MEM_SIZE_MAX MEM_WRAP_CHECK
-syn keyword xsMacro MEM_WRAP_CHECK_ MEM_WRAP_CHECK_1 MEM_WRAP_CHECK_2 MEOL
-syn keyword xsMacro METHOD MEXTEND MGf_COPY MGf_DUP MGf_GSKIP MGf_LOCAL
-syn keyword xsMacro MGf_MINMATCH MGf_REFCOUNTED MGf_TAINTEDDIR MICRO_SIGN
-syn keyword xsMacro MINMOD MJD_OFFSET_DEBUG MRO_GET_PRIVATE_DATA MSPAGAIN
-syn keyword xsMacro MULOP MULTICALL MULTILINE_PAT_MOD MULTIPLICITY MUTABLE_AV
-syn keyword xsMacro MUTABLE_CV MUTABLE_GV MUTABLE_HV MUTABLE_IO MUTABLE_PTR
-syn keyword xsMacro MUTABLE_SV MUTEX_DESTROY MUTEX_INIT
-syn keyword xsMacro MUTEX_INIT_CALLS_MALLOC MUTEX_INIT_NEEDS_MUTEX_ZEROED
-syn keyword xsMacro MUTEX_LOCK MUTEX_UNLOCK MY MYSUB MYSWAP MY_CXT_CLONE
-syn keyword xsMacro MY_CXT_INDEX MY_CXT_INIT MY_CXT_INIT_ARG
-syn keyword xsMacro MY_CXT_INIT_INTERP M_PAT_MODS M_VOID MgPV MgPV_const
-syn keyword xsMacro MgPV_nolen_const MgTAINTEDDIR MgTAINTEDDIR_off
-syn keyword xsMacro MgTAINTEDDIR_on Mkdir Move MoveD NALNUM NALNUMA NALNUML
-syn keyword xsMacro NALNUMU NATIVE8_TO_UNI NATIVE_IS_INVARIANT
-syn keyword xsMacro NATIVE_TO_ASCII NATIVE_TO_I8 NATIVE_TO_NEED NATIVE_TO_UNI
-syn keyword xsMacro NATIVE_TO_UTF NBOUND NBOUNDA NBOUNDL NBOUNDU
-syn keyword xsMacro NDBM_H_USES_PROTOTYPES NDIGIT NDIGITA NDIGITL
+syn keyword xsMacro MAX_PRINT_A_FOR_USE_ONLY_BY_REGCOMP_DOT_C
+syn keyword xsMacro MAX_RECURSE_EVAL_NOCHANGE_DEPTH MAX_UTF8_TWO_BYTE
+syn keyword xsMacro MAYBE_DEREF_GV MAYBE_DEREF_GV_flags MAYBE_DEREF_GV_nomg
+syn keyword xsMacro MBOL MB_CUR_MAX MDEREF_ACTION_MASK MDEREF_AV_gvav_aelem
+syn keyword xsMacro MDEREF_AV_gvsv_vivify_rv2av_aelem MDEREF_AV_padav_aelem
+syn keyword xsMacro MDEREF_AV_padsv_vivify_rv2av_aelem
+syn keyword xsMacro MDEREF_AV_pop_rv2av_aelem MDEREF_AV_vivify_rv2av_aelem
+syn keyword xsMacro MDEREF_FLAG_last MDEREF_HV_gvhv_helem
+syn keyword xsMacro MDEREF_HV_gvsv_vivify_rv2hv_helem MDEREF_HV_padhv_helem
+syn keyword xsMacro MDEREF_HV_padsv_vivify_rv2hv_helem
+syn keyword xsMacro MDEREF_HV_pop_rv2hv_helem MDEREF_HV_vivify_rv2hv_helem
+syn keyword xsMacro MDEREF_INDEX_MASK MDEREF_INDEX_const MDEREF_INDEX_gvsv
+syn keyword xsMacro MDEREF_INDEX_none MDEREF_INDEX_padsv MDEREF_MASK
+syn keyword xsMacro MDEREF_SHIFT MDEREF_reload MEMBER_TO_FPTR MEM_ALIGNBYTES
+syn keyword xsMacro MEM_LOG_ALLOC MEM_LOG_FREE MEM_LOG_REALLOC MEM_SIZE
+syn keyword xsMacro MEM_SIZE_MAX MEM_WRAP_CHECK MEM_WRAP_CHECK_
+syn keyword xsMacro MEM_WRAP_CHECK_1 MEM_WRAP_CHECK_2 MEOL METHOD MEXTEND
+syn keyword xsMacro MGf_BYTES MGf_COPY MGf_DUP MGf_GSKIP MGf_LOCAL
+syn keyword xsMacro MGf_MINMATCH MGf_PERSIST MGf_REFCOUNTED MGf_REQUIRE_GV
+syn keyword xsMacro MGf_TAINTEDDIR MICRO_SIGN MICRO_SIGN_NATIVE MINMOD
+syn keyword xsMacro MJD_OFFSET_DEBUG MRO_GET_PRIVATE_DATA MSPAGAIN MULOP
+syn keyword xsMacro MULTICALL MULTILINE_PAT_MOD MULTIPLICITY MURMUR_C1
+syn keyword xsMacro MURMUR_C2 MURMUR_C3 MURMUR_C4 MURMUR_C5 MURMUR_DOBLOCK
+syn keyword xsMacro MURMUR_DOBYTES MUTABLE_AV MUTABLE_CV MUTABLE_GV
+syn keyword xsMacro MUTABLE_HV MUTABLE_IO MUTABLE_PTR MUTABLE_SV
+syn keyword xsMacro MUTEX_DESTROY MUTEX_INIT MUTEX_INIT_NEEDS_MUTEX_ZEROED
+syn keyword xsMacro MUTEX_LOCK MUTEX_UNLOCK MY MY_CXT_CLONE MY_CXT_INDEX
+syn keyword xsMacro MY_CXT_INIT MY_CXT_INIT_ARG MY_CXT_INIT_INTERP M_PAT_MODS
+syn keyword xsMacro MgBYTEPOS MgBYTEPOS_set MgPV MgPV_const MgPV_nolen_const
+syn keyword xsMacro MgTAINTEDDIR MgTAINTEDDIR_off MgTAINTEDDIR_on Mkdir Move
+syn keyword xsMacro MoveD NAN_COMPARE_BROKEN NATIVE8_TO_UNI
+syn keyword xsMacro NATIVE_BYTE_IS_INVARIANT NATIVE_SKIP NATIVE_TO_ASCII
+syn keyword xsMacro NATIVE_TO_I8 NATIVE_TO_LATIN1 NATIVE_TO_UNI NATIVE_TO_UTF
+syn keyword xsMacro NATIVE_UTF8_TO_I8 NBOUND NBOUNDA NBOUNDL NBOUNDU
+syn keyword xsMacro NBSP_NATIVE NBSP_UTF8 NDBM_H_USES_PROTOTYPES NDEBUG
syn keyword xsMacro NEED_PTHREAD_INIT NEED_VA_COPY NEGATIVE_INDICES_VAR
-syn keyword xsMacro NETDB_R_OBSOLETE NEWSV NEXTOPER NEXT_LINE_CHAR NEXT_OFF
-syn keyword xsMacro NGROUPP NHORIZWS NOAMP NODE_ALIGN NODE_ALIGN_FILL
-syn keyword xsMacro NODE_STEP_B NODE_STEP_REGNODE NODE_SZ_STR NOLINE
-syn keyword xsMacro NONDESTRUCT_PAT_MOD NONDESTRUCT_PAT_MODS NOOP
+syn keyword xsMacro NETDB_R_OBSOLETE NEWSV NEW_VERSION NEXTOPER
+syn keyword xsMacro NEXT_LINE_CHAR NEXT_OFF NGROUPP NOAMP NOCAPTURE_PAT_MOD
+syn keyword xsMacro NOCAPTURE_PAT_MODS NODE_ALIGN NODE_ALIGN_FILL NODE_STEP_B
+syn keyword xsMacro NODE_STEP_REGNODE NODE_SZ_STR NOLINE NONDESTRUCT_PAT_MOD
+syn keyword xsMacro NONDESTRUCT_PAT_MODS
+syn keyword xsMacro NON_OTHER_COUNT_FOR_USE_ONLY_BY_REGCOMP_DOT_C NOOP
syn keyword xsMacro NORETURN_FUNCTION_END NORMAL NOTHING NOTOP NOT_IN_PAD
-syn keyword xsMacro NO_ENV_ARRAY_IN_MAIN NO_LOCALE
-syn keyword xsMacro NO_LOCALECONV_MON_THOUSANDS_SEP NREF NREFF NREFFA NREFFL
-syn keyword xsMacro NREFFU NSIG NSPACE NSPACEA NSPACEL NSPACEU NUM2PTR
-syn keyword xsMacro NVERTWS NVSIZE NVTYPE NV_DIG NV_EPSILON NV_INF
-syn keyword xsMacro NV_MANT_DIG NV_MAX NV_MAX_10_EXP NV_MIN NV_MIN_10_EXP
-syn keyword xsMacro NV_NAN NV_OVERFLOWS_INTEGERS_AT NV_PRESERVES_UV_BITS
+syn keyword xsMacro NOT_REACHED NO_ENV_ARRAY_IN_MAIN NO_LOCALE
+syn keyword xsMacro NO_LOCALECONV_MON_THOUSANDS_SEP NO_TAINT_SUPPORT NPOSIXA
+syn keyword xsMacro NPOSIXD NPOSIXL NPOSIXU NREF NREFF NREFFA NREFFL NREFFU
+syn keyword xsMacro NSIG NUM2PTR NUM_ANYOF_CODE_POINTS NVSIZE NVTYPE
+syn keyword xsMacro NV_BIG_ENDIAN NV_DIG NV_EPSILON NV_INF NV_LITTLE_ENDIAN
+syn keyword xsMacro NV_MANT_DIG NV_MAX NV_MAX_10_EXP NV_MAX_EXP NV_MIN
+syn keyword xsMacro NV_MIN_10_EXP NV_MIN_EXP NV_MIX_ENDIAN NV_NAN
+syn keyword xsMacro NV_OVERFLOWS_INTEGERS_AT NV_PRESERVES_UV_BITS
syn keyword xsMacro NV_WITHIN_IV NV_WITHIN_UV New NewOp NewOpSz Newc Newx
syn keyword xsMacro Newxc Newxz Newz NofAMmeth Null Nullav Nullch Nullcv
syn keyword xsMacro Nullfp Nullgv Nullhe Nullhek Nullhv Nullop Nullsv OASHIFT
-syn keyword xsMacro OCSHIFT ONCE_PAT_MOD ONCE_PAT_MODS OPEN OPERAND OPFAIL
+syn keyword xsMacro OCSHIFT OCTAL_VALUE OFFUNISKIP ONCE_PAT_MOD ONCE_PAT_MODS
+syn keyword xsMacro OPEN OPERAND OPFAIL OPSLOT_HEADER OPSLOT_HEADER_P
syn keyword xsMacro OPTIMIZED OP_BINARY OP_CHECK_MUTEX_INIT
syn keyword xsMacro OP_CHECK_MUTEX_LOCK OP_CHECK_MUTEX_TERM
-syn keyword xsMacro OP_CHECK_MUTEX_UNLOCK OP_CLASS OP_DESC OP_GIMME
-syn keyword xsMacro OP_GIMME_REVERSE OP_IS_DIRHOP OP_IS_FILETEST
-syn keyword xsMacro OP_IS_FILETEST_ACCESS OP_IS_NUMCOMPARE OP_IS_SOCKET
-syn keyword xsMacro OP_LVALUE_NO_CROAK OP_MEM_TO_REG OP_NAME OP_REFCNT_INIT
-syn keyword xsMacro OP_REFCNT_LOCK OP_REFCNT_TERM OP_REFCNT_UNLOCK
-syn keyword xsMacro OP_REG_TO_MEM OROP OROR OSNAME OSVERS O_CREAT O_RDONLY
-syn keyword xsMacro O_RDWR O_TEXT O_WRONLY Off Off_t_size OpREFCNT_dec
-syn keyword xsMacro OpREFCNT_inc OpREFCNT_set OutCopFILE PAD_BASE_SV
-syn keyword xsMacro PAD_CLONE_VARS PAD_COMPNAME_FLAGS
+syn keyword xsMacro OP_CHECK_MUTEX_UNLOCK OP_CLASS OP_DESC OP_ENTRY_PROBE
+syn keyword xsMacro OP_FREED OP_GIMME OP_GIMME_REVERSE OP_IS_DIRHOP
+syn keyword xsMacro OP_IS_FILETEST OP_IS_FILETEST_ACCESS OP_IS_INFIX_BIT
+syn keyword xsMacro OP_IS_NUMCOMPARE OP_IS_SOCKET OP_LVALUE_NO_CROAK OP_NAME
+syn keyword xsMacro OP_REFCNT_INIT OP_REFCNT_LOCK OP_REFCNT_TERM
+syn keyword xsMacro OP_REFCNT_UNLOCK OP_SIBLING OP_TYPE_IS OP_TYPE_ISNT
+syn keyword xsMacro OP_TYPE_ISNT_AND_WASNT OP_TYPE_ISNT_AND_WASNT_NN
+syn keyword xsMacro OP_TYPE_ISNT_NN OP_TYPE_IS_NN OP_TYPE_IS_OR_WAS
+syn keyword xsMacro OP_TYPE_IS_OR_WAS_NN OROP OROR OSNAME OSVERS O_CREAT
+syn keyword xsMacro O_RDONLY O_RDWR O_TEXT O_WRONLY Off Off_t_size
+syn keyword xsMacro OpHAS_SIBLING OpLASTSIB_set OpMAYBESIB_set OpMORESIB_set
+syn keyword xsMacro OpREFCNT_dec OpREFCNT_inc OpREFCNT_set OpSIBLING OpSLAB
+syn keyword xsMacro OpSLOT OpslabREFCNT_dec OpslabREFCNT_dec_padok OutCopFILE
+syn keyword xsMacro PADNAME_FROM_PV PADNAMEt_LVALUE PADNAMEt_OUR
+syn keyword xsMacro PADNAMEt_OUTER PADNAMEt_STATE PADNAMEt_TYPED PAD_BASE_SV
+syn keyword xsMacro PAD_CLONE_VARS PAD_COMPNAME PAD_COMPNAME_FLAGS
syn keyword xsMacro PAD_COMPNAME_FLAGS_isOUR PAD_COMPNAME_GEN
syn keyword xsMacro PAD_COMPNAME_GEN_set PAD_COMPNAME_OURSTASH
syn keyword xsMacro PAD_COMPNAME_PV PAD_COMPNAME_SV PAD_COMPNAME_TYPE
syn keyword xsMacro PAD_FAKELEX_ANON PAD_FAKELEX_MULTI PAD_RESTORE_LOCAL
syn keyword xsMacro PAD_SAVE_LOCAL PAD_SAVE_SETNULLPAD PAD_SETSV PAD_SET_CUR
syn keyword xsMacro PAD_SET_CUR_NOSAVE PAD_SV PAD_SVl PARENT_FAKELEX_FLAGS
-syn keyword xsMacro PARENT_PAD_INDEX PARSE_OPTIONAL PATCHLEVEL PEG PERLDB_ALL
-syn keyword xsMacro PERLDB_GOTO PERLDB_INTER PERLDB_LINE PERLDB_NAMEANON
-syn keyword xsMacro PERLDB_NAMEEVAL PERLDB_NOOPT PERLDB_SAVESRC
-syn keyword xsMacro PERLDB_SAVESRC_INVALID PERLDB_SAVESRC_NOSUBS
-syn keyword xsMacro PERLDB_SINGLE PERLDB_SUB PERLDB_SUBLINE PERLDB_SUB_NN
-syn keyword xsMacro PERLDBf_GOTO PERLDBf_INTER PERLDBf_LINE PERLDBf_NAMEANON
-syn keyword xsMacro PERLDBf_NAMEEVAL PERLDBf_NONAME PERLDBf_NOOPT
-syn keyword xsMacro PERLDBf_SAVESRC PERLDBf_SAVESRC_INVALID
-syn keyword xsMacro PERLDBf_SAVESRC_NOSUBS PERLDBf_SINGLE PERLDBf_SUB
-syn keyword xsMacro PERLDBf_SUBLINE PERLIOBUF_DEFAULT_BUFSIZ PERLIO_DUP_CLONE
-syn keyword xsMacro PERLIO_DUP_FD PERLIO_FUNCS_CAST PERLIO_FUNCS_CONST
-syn keyword xsMacro PERLIO_FUNCS_DECL PERLIO_F_APPEND PERLIO_F_CANREAD
-syn keyword xsMacro PERLIO_F_CANWRITE PERLIO_F_CLEARED PERLIO_F_CRLF
-syn keyword xsMacro PERLIO_F_EOF PERLIO_F_ERROR PERLIO_F_FASTGETS
-syn keyword xsMacro PERLIO_F_LINEBUF PERLIO_F_NOTREG PERLIO_F_OPEN
-syn keyword xsMacro PERLIO_F_RDBUF PERLIO_F_TEMP PERLIO_F_TRUNCATE
-syn keyword xsMacro PERLIO_F_TTY PERLIO_F_UNBUF PERLIO_F_UTF8 PERLIO_F_WRBUF
-syn keyword xsMacro PERLIO_INIT PERLIO_IS_STDIO PERLIO_K_BUFFERED
-syn keyword xsMacro PERLIO_K_CANCRLF PERLIO_K_DESTRUCT PERLIO_K_DUMMY
-syn keyword xsMacro PERLIO_K_FASTGETS PERLIO_K_MULTIARG PERLIO_K_RAW
-syn keyword xsMacro PERLIO_K_UTF8 PERLIO_LAYERS PERLIO_NOT_STDIO
-syn keyword xsMacro PERLIO_STDTEXT PERLIO_TERM PERLIO_USING_CRLF
-syn keyword xsMacro PERLSI_DESTROY PERLSI_DIEHOOK PERLSI_MAGIC PERLSI_MAIN
-syn keyword xsMacro PERLSI_OVERLOAD PERLSI_REQUIRE PERLSI_SIGNAL PERLSI_SORT
-syn keyword xsMacro PERLSI_UNDEF PERLSI_UNKNOWN PERLSI_WARNHOOK PERL_ABS
-syn keyword xsMacro PERL_ALLOC_CHECK PERL_API_REVISION PERL_API_SUBVERSION
-syn keyword xsMacro PERL_API_VERSION PERL_API_VERSION_STRING
-syn keyword xsMacro PERL_ARENA_ROOTS_SIZE PERL_ARENA_SIZE
-syn keyword xsMacro PERL_ARGS_ASSERT_ADD_ALTERNATE PERL_ARGS_ASSERT_ADD_DATA
+syn keyword xsMacro PARENT_PAD_INDEX PARSE_OPTIONAL PASS1 PASS2 PATCHLEVEL
+syn keyword xsMacro PERLDB_ALL PERLDB_GOTO PERLDB_INTER PERLDB_LINE
+syn keyword xsMacro PERLDB_NAMEANON PERLDB_NAMEEVAL PERLDB_NOOPT
+syn keyword xsMacro PERLDB_SAVESRC PERLDB_SAVESRC_INVALID
+syn keyword xsMacro PERLDB_SAVESRC_NOSUBS PERLDB_SINGLE PERLDB_SUB
+syn keyword xsMacro PERLDB_SUBLINE PERLDB_SUB_NN PERLDBf_GOTO PERLDBf_INTER
+syn keyword xsMacro PERLDBf_LINE PERLDBf_NAMEANON PERLDBf_NAMEEVAL
+syn keyword xsMacro PERLDBf_NONAME PERLDBf_NOOPT PERLDBf_SAVESRC
+syn keyword xsMacro PERLDBf_SAVESRC_INVALID PERLDBf_SAVESRC_NOSUBS
+syn keyword xsMacro PERLDBf_SINGLE PERLDBf_SUB PERLDBf_SUBLINE
+syn keyword xsMacro PERLIOBUF_DEFAULT_BUFSIZ PERLIO_DUP_CLONE PERLIO_DUP_FD
+syn keyword xsMacro PERLIO_FUNCS_CAST PERLIO_FUNCS_CONST PERLIO_FUNCS_DECL
+syn keyword xsMacro PERLIO_F_APPEND PERLIO_F_CANREAD PERLIO_F_CANWRITE
+syn keyword xsMacro PERLIO_F_CLEARED PERLIO_F_CRLF PERLIO_F_EOF
+syn keyword xsMacro PERLIO_F_ERROR PERLIO_F_FASTGETS PERLIO_F_LINEBUF
+syn keyword xsMacro PERLIO_F_NOTREG PERLIO_F_OPEN PERLIO_F_RDBUF
+syn keyword xsMacro PERLIO_F_TEMP PERLIO_F_TRUNCATE PERLIO_F_TTY
+syn keyword xsMacro PERLIO_F_UNBUF PERLIO_F_UTF8 PERLIO_F_WRBUF PERLIO_INIT
+syn keyword xsMacro PERLIO_IS_STDIO PERLIO_K_BUFFERED PERLIO_K_CANCRLF
+syn keyword xsMacro PERLIO_K_DESTRUCT PERLIO_K_DUMMY PERLIO_K_FASTGETS
+syn keyword xsMacro PERLIO_K_MULTIARG PERLIO_K_RAW PERLIO_K_UTF8
+syn keyword xsMacro PERLIO_LAYERS PERLIO_NOT_STDIO PERLIO_STDTEXT PERLIO_TERM
+syn keyword xsMacro PERLIO_USING_CRLF PERLSI_DESTROY PERLSI_DIEHOOK
+syn keyword xsMacro PERLSI_MAGIC PERLSI_MAIN PERLSI_OVERLOAD PERLSI_REQUIRE
+syn keyword xsMacro PERLSI_SIGNAL PERLSI_SORT PERLSI_UNDEF PERLSI_UNKNOWN
+syn keyword xsMacro PERLSI_WARNHOOK PERL_ABS PERL_ALLOC_CHECK PERL_ANY_COW
+syn keyword xsMacro PERL_API_REVISION PERL_API_SUBVERSION PERL_API_VERSION
+syn keyword xsMacro PERL_API_VERSION_STRING PERL_ARENA_ROOTS_SIZE
+syn keyword xsMacro PERL_ARENA_SIZE PERL_ARGS_ASSERT_ADD_ABOVE_LATIN1_FOLDS
+syn keyword xsMacro PERL_ARGS_ASSERT_ADD_DATA
+syn keyword xsMacro PERL_ARGS_ASSERT_ADD_MULTI_MATCH
syn keyword xsMacro PERL_ARGS_ASSERT_ADD_UTF16_TEXTFILTER
-syn keyword xsMacro PERL_ARGS_ASSERT_ADJUST_STACK_ON_LEAVE
-syn keyword xsMacro PERL_ARGS_ASSERT_ALLOCMY PERL_ARGS_ASSERT_AMAGIC_CALL
-syn keyword xsMacro PERL_ARGS_ASSERT_AMAGIC_CMP
+syn keyword xsMacro PERL_ARGS_ASSERT_ADJUST_SIZE_AND_FIND_BUCKET
+syn keyword xsMacro PERL_ARGS_ASSERT_ADVANCE_ONE_SB
+syn keyword xsMacro PERL_ARGS_ASSERT_ADVANCE_ONE_WB
+syn keyword xsMacro PERL_ARGS_ASSERT_ALLOCCOPSTASH PERL_ARGS_ASSERT_ALLOCMY
+syn keyword xsMacro PERL_ARGS_ASSERT_ALLOC_MAYBE_POPULATE_EXACT
+syn keyword xsMacro PERL_ARGS_ASSERT_AMAGIC_CALL PERL_ARGS_ASSERT_AMAGIC_CMP
syn keyword xsMacro PERL_ARGS_ASSERT_AMAGIC_CMP_LOCALE
syn keyword xsMacro PERL_ARGS_ASSERT_AMAGIC_DEREF_CALL
syn keyword xsMacro PERL_ARGS_ASSERT_AMAGIC_I_NCMP
syn keyword xsMacro PERL_ARGS_ASSERT_AMAGIC_NCMP
syn keyword xsMacro PERL_ARGS_ASSERT_ANONYMISE_CV_MAYBE
-syn keyword xsMacro PERL_ARGS_ASSERT_ANY_DUP PERL_ARGS_ASSERT_APPLY
-syn keyword xsMacro PERL_ARGS_ASSERT_APPLY_ATTRS
+syn keyword xsMacro PERL_ARGS_ASSERT_ANY_DUP
+syn keyword xsMacro PERL_ARGS_ASSERT_APPEND_UTF8_FROM_NATIVE_BYTE
+syn keyword xsMacro PERL_ARGS_ASSERT_APPLY PERL_ARGS_ASSERT_APPLY_ATTRS
syn keyword xsMacro PERL_ARGS_ASSERT_APPLY_ATTRS_MY
syn keyword xsMacro PERL_ARGS_ASSERT_APPLY_ATTRS_STRING
syn keyword xsMacro PERL_ARGS_ASSERT_ASSERT_UFT8_CACHE_COHERENT
@@ -1551,82 +1759,92 @@ syn keyword xsMacro PERL_ARGS_ASSERT_AV_ARYLEN_P PERL_ARGS_ASSERT_AV_CLEAR
syn keyword xsMacro PERL_ARGS_ASSERT_AV_CREATE_AND_PUSH
syn keyword xsMacro PERL_ARGS_ASSERT_AV_CREATE_AND_UNSHIFT_ONE
syn keyword xsMacro PERL_ARGS_ASSERT_AV_DELETE PERL_ARGS_ASSERT_AV_EXISTS
-syn keyword xsMacro PERL_ARGS_ASSERT_AV_EXTEND PERL_ARGS_ASSERT_AV_FETCH
+syn keyword xsMacro PERL_ARGS_ASSERT_AV_EXTEND
+syn keyword xsMacro PERL_ARGS_ASSERT_AV_EXTEND_GUTS PERL_ARGS_ASSERT_AV_FETCH
syn keyword xsMacro PERL_ARGS_ASSERT_AV_FILL PERL_ARGS_ASSERT_AV_ITER_P
syn keyword xsMacro PERL_ARGS_ASSERT_AV_LEN PERL_ARGS_ASSERT_AV_MAKE
syn keyword xsMacro PERL_ARGS_ASSERT_AV_POP PERL_ARGS_ASSERT_AV_PUSH
syn keyword xsMacro PERL_ARGS_ASSERT_AV_REIFY PERL_ARGS_ASSERT_AV_SHIFT
-syn keyword xsMacro PERL_ARGS_ASSERT_AV_STORE PERL_ARGS_ASSERT_AV_UNDEF
-syn keyword xsMacro PERL_ARGS_ASSERT_AV_UNSHIFT PERL_ARGS_ASSERT_BAD_TYPE_PV
-syn keyword xsMacro PERL_ARGS_ASSERT_BAD_TYPE_SV PERL_ARGS_ASSERT_BIND_MATCH
+syn keyword xsMacro PERL_ARGS_ASSERT_AV_STORE PERL_ARGS_ASSERT_AV_TOP_INDEX
+syn keyword xsMacro PERL_ARGS_ASSERT_AV_UNDEF PERL_ARGS_ASSERT_AV_UNSHIFT
+syn keyword xsMacro PERL_ARGS_ASSERT_BACKUP_ONE_SB
+syn keyword xsMacro PERL_ARGS_ASSERT_BACKUP_ONE_WB
+syn keyword xsMacro PERL_ARGS_ASSERT_BAD_TYPE_GV PERL_ARGS_ASSERT_BAD_TYPE_PV
+syn keyword xsMacro PERL_ARGS_ASSERT_BIND_MATCH
syn keyword xsMacro PERL_ARGS_ASSERT_BLOCKHOOK_REGISTER
syn keyword xsMacro PERL_ARGS_ASSERT_BYTES_CMP_UTF8
syn keyword xsMacro PERL_ARGS_ASSERT_BYTES_FROM_UTF8
-syn keyword xsMacro PERL_ARGS_ASSERT_BYTES_TO_UNI
syn keyword xsMacro PERL_ARGS_ASSERT_BYTES_TO_UTF8 PERL_ARGS_ASSERT_CALL_ARGV
syn keyword xsMacro PERL_ARGS_ASSERT_CALL_LIST PERL_ARGS_ASSERT_CALL_METHOD
syn keyword xsMacro PERL_ARGS_ASSERT_CALL_PV PERL_ARGS_ASSERT_CALL_SV
syn keyword xsMacro PERL_ARGS_ASSERT_CANDO PERL_ARGS_ASSERT_CHECKCOMMA
-syn keyword xsMacro PERL_ARGS_ASSERT_CHECKPOSIXCC
syn keyword xsMacro PERL_ARGS_ASSERT_CHECK_LOCALE_BOUNDARY_CROSSING
syn keyword xsMacro PERL_ARGS_ASSERT_CHECK_TYPE_AND_OPEN
syn keyword xsMacro PERL_ARGS_ASSERT_CHECK_UTF8_PRINT
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_ANONCODE PERL_ARGS_ASSERT_CK_BITOP
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_CHDIR PERL_ARGS_ASSERT_CK_CMP
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_ANONCODE PERL_ARGS_ASSERT_CK_BACKTICK
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_BITOP PERL_ARGS_ASSERT_CK_CMP
syn keyword xsMacro PERL_ARGS_ASSERT_CK_CONCAT PERL_ARGS_ASSERT_CK_DEFINED
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_DELETE PERL_ARGS_ASSERT_CK_DIE
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_EACH
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_DELETE PERL_ARGS_ASSERT_CK_EACH
syn keyword xsMacro PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_CORE
syn keyword xsMacro PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_LIST
syn keyword xsMacro PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_PROTO
syn keyword xsMacro PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_PROTO_OR_LIST
syn keyword xsMacro PERL_ARGS_ASSERT_CK_EOF PERL_ARGS_ASSERT_CK_EVAL
syn keyword xsMacro PERL_ARGS_ASSERT_CK_EXEC PERL_ARGS_ASSERT_CK_EXISTS
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_EXIT PERL_ARGS_ASSERT_CK_FTST
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_FUN PERL_ARGS_ASSERT_CK_GLOB
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_GREP PERL_ARGS_ASSERT_CK_INDEX
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_JOIN PERL_ARGS_ASSERT_CK_LENGTH
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_LFUN PERL_ARGS_ASSERT_CK_LISTIOB
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_MATCH PERL_ARGS_ASSERT_CK_METHOD
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_NULL PERL_ARGS_ASSERT_CK_OPEN
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_READLINE PERL_ARGS_ASSERT_CK_REPEAT
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_FTST PERL_ARGS_ASSERT_CK_FUN
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_GLOB PERL_ARGS_ASSERT_CK_GREP
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_INDEX PERL_ARGS_ASSERT_CK_JOIN
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_LENGTH PERL_ARGS_ASSERT_CK_LFUN
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_LISTIOB PERL_ARGS_ASSERT_CK_MATCH
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_METHOD PERL_ARGS_ASSERT_CK_NULL
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_OPEN PERL_ARGS_ASSERT_CK_PROTOTYPE
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_READLINE
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_REFASSIGN PERL_ARGS_ASSERT_CK_REPEAT
syn keyword xsMacro PERL_ARGS_ASSERT_CK_REQUIRE PERL_ARGS_ASSERT_CK_RETURN
syn keyword xsMacro PERL_ARGS_ASSERT_CK_RFUN PERL_ARGS_ASSERT_CK_RVCONST
syn keyword xsMacro PERL_ARGS_ASSERT_CK_SASSIGN PERL_ARGS_ASSERT_CK_SELECT
syn keyword xsMacro PERL_ARGS_ASSERT_CK_SHIFT PERL_ARGS_ASSERT_CK_SMARTMATCH
syn keyword xsMacro PERL_ARGS_ASSERT_CK_SORT PERL_ARGS_ASSERT_CK_SPAIR
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_SPLIT PERL_ARGS_ASSERT_CK_SUBR
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_SUBSTR PERL_ARGS_ASSERT_CK_SVCONST
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_TELL PERL_ARGS_ASSERT_CK_TRUNC
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_WARNER PERL_ARGS_ASSERT_CK_WARNER_D
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_SPLIT PERL_ARGS_ASSERT_CK_STRINGIFY
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_SUBR PERL_ARGS_ASSERT_CK_SUBSTR
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_SVCONST PERL_ARGS_ASSERT_CK_TELL
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_TRUNC PERL_ARGS_ASSERT_CK_WARNER
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_WARNER_D
syn keyword xsMacro PERL_ARGS_ASSERT_CLEAR_PLACEHOLDERS
+syn keyword xsMacro PERL_ARGS_ASSERT_CLEAR_SPECIAL_BLOCKS
syn keyword xsMacro PERL_ARGS_ASSERT_CLONE_PARAMS_DEL
syn keyword xsMacro PERL_ARGS_ASSERT_CLONE_PARAMS_NEW
-syn keyword xsMacro PERL_ARGS_ASSERT_CLOSEST_COP PERL_ARGS_ASSERT_CL_AND
-syn keyword xsMacro PERL_ARGS_ASSERT_CL_ANYTHING PERL_ARGS_ASSERT_CL_INIT
-syn keyword xsMacro PERL_ARGS_ASSERT_CL_IS_ANYTHING PERL_ARGS_ASSERT_CL_OR
+syn keyword xsMacro PERL_ARGS_ASSERT_CLOSEST_COP
+syn keyword xsMacro PERL_ARGS_ASSERT_COMPUTE_EXACTISH
+syn keyword xsMacro PERL_ARGS_ASSERT_CONSTRUCT_AHOCORASICK_FROM_TRIE
syn keyword xsMacro PERL_ARGS_ASSERT_COP_FETCH_LABEL
syn keyword xsMacro PERL_ARGS_ASSERT_COP_FREE
syn keyword xsMacro PERL_ARGS_ASSERT_COP_STORE_LABEL
syn keyword xsMacro PERL_ARGS_ASSERT_CORESUB_OP
syn keyword xsMacro PERL_ARGS_ASSERT_CORE_PROTOTYPE
-syn keyword xsMacro PERL_ARGS_ASSERT_CORE_REGCLASS_SWASH
+syn keyword xsMacro PERL_ARGS_ASSERT_COULD_IT_BE_A_POSIX_CLASS
syn keyword xsMacro PERL_ARGS_ASSERT_CROAK_SV PERL_ARGS_ASSERT_CROAK_XS_USAGE
syn keyword xsMacro PERL_ARGS_ASSERT_CURSE PERL_ARGS_ASSERT_CUSTOM_OP_DESC
+syn keyword xsMacro PERL_ARGS_ASSERT_CUSTOM_OP_GET_FIELD
syn keyword xsMacro PERL_ARGS_ASSERT_CUSTOM_OP_NAME
syn keyword xsMacro PERL_ARGS_ASSERT_CUSTOM_OP_REGISTER
-syn keyword xsMacro PERL_ARGS_ASSERT_CUSTOM_OP_XOP PERL_ARGS_ASSERT_CVGV_SET
+syn keyword xsMacro PERL_ARGS_ASSERT_CVGV_FROM_HEK PERL_ARGS_ASSERT_CVGV_SET
syn keyword xsMacro PERL_ARGS_ASSERT_CVSTASH_SET
syn keyword xsMacro PERL_ARGS_ASSERT_CV_CKPROTO_LEN_FLAGS
-syn keyword xsMacro PERL_ARGS_ASSERT_CV_CLONE PERL_ARGS_ASSERT_CV_DUMP
+syn keyword xsMacro PERL_ARGS_ASSERT_CV_CLONE PERL_ARGS_ASSERT_CV_CLONE_INTO
+syn keyword xsMacro PERL_ARGS_ASSERT_CV_DUMP
syn keyword xsMacro PERL_ARGS_ASSERT_CV_GET_CALL_CHECKER
+syn keyword xsMacro PERL_ARGS_ASSERT_CV_NAME
syn keyword xsMacro PERL_ARGS_ASSERT_CV_SET_CALL_CHECKER
-syn keyword xsMacro PERL_ARGS_ASSERT_CV_UNDEF PERL_ARGS_ASSERT_CX_DUMP
-syn keyword xsMacro PERL_ARGS_ASSERT_CX_DUP PERL_ARGS_ASSERT_DEB
-syn keyword xsMacro PERL_ARGS_ASSERT_DEBOP PERL_ARGS_ASSERT_DEBPROF
+syn keyword xsMacro PERL_ARGS_ASSERT_CV_SET_CALL_CHECKER_FLAGS
+syn keyword xsMacro PERL_ARGS_ASSERT_CV_UNDEF PERL_ARGS_ASSERT_CV_UNDEF_FLAGS
+syn keyword xsMacro PERL_ARGS_ASSERT_CX_DUMP PERL_ARGS_ASSERT_CX_DUP
+syn keyword xsMacro PERL_ARGS_ASSERT_DEB PERL_ARGS_ASSERT_DEBOP
+syn keyword xsMacro PERL_ARGS_ASSERT_DEBPROF
syn keyword xsMacro PERL_ARGS_ASSERT_DEBUG_START_MATCH
syn keyword xsMacro PERL_ARGS_ASSERT_DEB_NOCONTEXT
-syn keyword xsMacro PERL_ARGS_ASSERT_DEB_STACK_N PERL_ARGS_ASSERT_DELIMCPY
+syn keyword xsMacro PERL_ARGS_ASSERT_DEB_STACK_N
+syn keyword xsMacro PERL_ARGS_ASSERT_DEFELEM_TARGET PERL_ARGS_ASSERT_DELIMCPY
syn keyword xsMacro PERL_ARGS_ASSERT_DEL_SV PERL_ARGS_ASSERT_DESTROY_MATCHER
syn keyword xsMacro PERL_ARGS_ASSERT_DIE_SV PERL_ARGS_ASSERT_DIE_UNWIND
syn keyword xsMacro PERL_ARGS_ASSERT_DIRP_DUP PERL_ARGS_ASSERT_DIV128
@@ -1645,13 +1863,12 @@ syn keyword xsMacro PERL_ARGS_ASSERT_DO_IPCCTL PERL_ARGS_ASSERT_DO_IPCGET
syn keyword xsMacro PERL_ARGS_ASSERT_DO_JOIN PERL_ARGS_ASSERT_DO_MAGIC_DUMP
syn keyword xsMacro PERL_ARGS_ASSERT_DO_MSGRCV PERL_ARGS_ASSERT_DO_MSGSND
syn keyword xsMacro PERL_ARGS_ASSERT_DO_NCMP PERL_ARGS_ASSERT_DO_ODDBALL
-syn keyword xsMacro PERL_ARGS_ASSERT_DO_OPEN PERL_ARGS_ASSERT_DO_OPEN9
-syn keyword xsMacro PERL_ARGS_ASSERT_DO_OPENN PERL_ARGS_ASSERT_DO_OP_DUMP
-syn keyword xsMacro PERL_ARGS_ASSERT_DO_OP_XMLDUMP
-syn keyword xsMacro PERL_ARGS_ASSERT_DO_PMOP_DUMP
-syn keyword xsMacro PERL_ARGS_ASSERT_DO_PMOP_XMLDUMP
-syn keyword xsMacro PERL_ARGS_ASSERT_DO_PRINT PERL_ARGS_ASSERT_DO_SEMOP
-syn keyword xsMacro PERL_ARGS_ASSERT_DO_SHMIO PERL_ARGS_ASSERT_DO_SPAWN
+syn keyword xsMacro PERL_ARGS_ASSERT_DO_OPEN PERL_ARGS_ASSERT_DO_OPEN6
+syn keyword xsMacro PERL_ARGS_ASSERT_DO_OPEN9 PERL_ARGS_ASSERT_DO_OPENN
+syn keyword xsMacro PERL_ARGS_ASSERT_DO_OPEN_RAW PERL_ARGS_ASSERT_DO_OP_DUMP
+syn keyword xsMacro PERL_ARGS_ASSERT_DO_PMOP_DUMP PERL_ARGS_ASSERT_DO_PRINT
+syn keyword xsMacro PERL_ARGS_ASSERT_DO_SEMOP PERL_ARGS_ASSERT_DO_SHMIO
+syn keyword xsMacro PERL_ARGS_ASSERT_DO_SPAWN
syn keyword xsMacro PERL_ARGS_ASSERT_DO_SPAWN_NOWAIT
syn keyword xsMacro PERL_ARGS_ASSERT_DO_SPRINTF PERL_ARGS_ASSERT_DO_SV_DUMP
syn keyword xsMacro PERL_ARGS_ASSERT_DO_SYSSEEK PERL_ARGS_ASSERT_DO_TELL
@@ -1663,10 +1880,11 @@ syn keyword xsMacro PERL_ARGS_ASSERT_DO_TRANS_COUNT_UTF8
syn keyword xsMacro PERL_ARGS_ASSERT_DO_TRANS_SIMPLE
syn keyword xsMacro PERL_ARGS_ASSERT_DO_TRANS_SIMPLE_UTF8
syn keyword xsMacro PERL_ARGS_ASSERT_DO_VECGET PERL_ARGS_ASSERT_DO_VECSET
-syn keyword xsMacro PERL_ARGS_ASSERT_DO_VOP PERL_ARGS_ASSERT_DUMPUNTIL
-syn keyword xsMacro PERL_ARGS_ASSERT_DUMP_EXEC_POS PERL_ARGS_ASSERT_DUMP_FDS
-syn keyword xsMacro PERL_ARGS_ASSERT_DUMP_FORM PERL_ARGS_ASSERT_DUMP_INDENT
-syn keyword xsMacro PERL_ARGS_ASSERT_DUMP_MSTATS
+syn keyword xsMacro PERL_ARGS_ASSERT_DO_VOP PERL_ARGS_ASSERT_DRAND48_INIT_R
+syn keyword xsMacro PERL_ARGS_ASSERT_DRAND48_R PERL_ARGS_ASSERT_DUMPUNTIL
+syn keyword xsMacro PERL_ARGS_ASSERT_DUMP_C_BACKTRACE
+syn keyword xsMacro PERL_ARGS_ASSERT_DUMP_EXEC_POS PERL_ARGS_ASSERT_DUMP_FORM
+syn keyword xsMacro PERL_ARGS_ASSERT_DUMP_INDENT PERL_ARGS_ASSERT_DUMP_MSTATS
syn keyword xsMacro PERL_ARGS_ASSERT_DUMP_PACKSUBS
syn keyword xsMacro PERL_ARGS_ASSERT_DUMP_PACKSUBS_PERL
syn keyword xsMacro PERL_ARGS_ASSERT_DUMP_SUB PERL_ARGS_ASSERT_DUMP_SUB_PERL
@@ -1687,12 +1905,15 @@ syn keyword xsMacro PERL_ARGS_ASSERT_FIND_AND_FORGET_PMOPS
syn keyword xsMacro PERL_ARGS_ASSERT_FIND_ARRAY_SUBSCRIPT
syn keyword xsMacro PERL_ARGS_ASSERT_FIND_BEGINNING
syn keyword xsMacro PERL_ARGS_ASSERT_FIND_BYCLASS
+syn keyword xsMacro PERL_ARGS_ASSERT_FIND_DEFAULT_STASH
syn keyword xsMacro PERL_ARGS_ASSERT_FIND_HASH_SUBSCRIPT
syn keyword xsMacro PERL_ARGS_ASSERT_FIND_IN_MY_STASH
syn keyword xsMacro PERL_ARGS_ASSERT_FIND_RUNDEFSV2
syn keyword xsMacro PERL_ARGS_ASSERT_FIND_SCRIPT
-syn keyword xsMacro PERL_ARGS_ASSERT_FIRST_SYMBOL PERL_ARGS_ASSERT_FOLDEQ
-syn keyword xsMacro PERL_ARGS_ASSERT_FOLDEQ_LATIN1
+syn keyword xsMacro PERL_ARGS_ASSERT_FIND_UNINIT_VAR
+syn keyword xsMacro PERL_ARGS_ASSERT_FIRST_SYMBOL
+syn keyword xsMacro PERL_ARGS_ASSERT_FIXUP_ERRNO_STRING
+syn keyword xsMacro PERL_ARGS_ASSERT_FOLDEQ PERL_ARGS_ASSERT_FOLDEQ_LATIN1
syn keyword xsMacro PERL_ARGS_ASSERT_FOLDEQ_LOCALE
syn keyword xsMacro PERL_ARGS_ASSERT_FOLDEQ_UTF8_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_FOLD_CONSTANTS
@@ -1701,34 +1922,40 @@ syn keyword xsMacro PERL_ARGS_ASSERT_FORCE_STRICT_VERSION
syn keyword xsMacro PERL_ARGS_ASSERT_FORCE_VERSION
syn keyword xsMacro PERL_ARGS_ASSERT_FORCE_WORD PERL_ARGS_ASSERT_FORGET_PMOP
syn keyword xsMacro PERL_ARGS_ASSERT_FORM PERL_ARGS_ASSERT_FORM_NOCONTEXT
+syn keyword xsMacro PERL_ARGS_ASSERT_FORM_SHORT_OCTAL_WARNING
syn keyword xsMacro PERL_ARGS_ASSERT_FPRINTF_NOCONTEXT
syn keyword xsMacro PERL_ARGS_ASSERT_FP_DUP
syn keyword xsMacro PERL_ARGS_ASSERT_FREE_GLOBAL_STRUCT
syn keyword xsMacro PERL_ARGS_ASSERT_GETCWD_SV PERL_ARGS_ASSERT_GETENV_LEN
+syn keyword xsMacro PERL_ARGS_ASSERT_GET_AND_CHECK_BACKSLASH_N_NAME
+syn keyword xsMacro PERL_ARGS_ASSERT_GET_ANYOF_CP_LIST_FOR_SSC
syn keyword xsMacro PERL_ARGS_ASSERT_GET_AUX_MG PERL_ARGS_ASSERT_GET_AV
syn keyword xsMacro PERL_ARGS_ASSERT_GET_CV PERL_ARGS_ASSERT_GET_CVN_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_GET_DB_SUB
-syn keyword xsMacro PERL_ARGS_ASSERT_GET_DEBUG_OPTS PERL_ARGS_ASSERT_GET_HV
+syn keyword xsMacro PERL_ARGS_ASSERT_GET_DEBUG_OPTS
+syn keyword xsMacro PERL_ARGS_ASSERT_GET_HASH_SEED PERL_ARGS_ASSERT_GET_HV
syn keyword xsMacro PERL_ARGS_ASSERT_GET_INVLIST_ITER_ADDR
-syn keyword xsMacro PERL_ARGS_ASSERT_GET_INVLIST_LEN_ADDR
-syn keyword xsMacro PERL_ARGS_ASSERT_GET_INVLIST_VERSION_ID_ADDR
-syn keyword xsMacro PERL_ARGS_ASSERT_GET_INVLIST_ZERO_ADDR
+syn keyword xsMacro PERL_ARGS_ASSERT_GET_INVLIST_OFFSET_ADDR
+syn keyword xsMacro PERL_ARGS_ASSERT_GET_INVLIST_PREVIOUS_INDEX_ADDR
syn keyword xsMacro PERL_ARGS_ASSERT_GET_MSTATS PERL_ARGS_ASSERT_GET_NUM
syn keyword xsMacro PERL_ARGS_ASSERT_GET_SV PERL_ARGS_ASSERT_GLOB_2NUMBER
-syn keyword xsMacro PERL_ARGS_ASSERT_GLOB_ASSIGN_GLOB
-syn keyword xsMacro PERL_ARGS_ASSERT_GLOB_ASSIGN_REF PERL_ARGS_ASSERT_GP_DUP
-syn keyword xsMacro PERL_ARGS_ASSERT_GROK_BIN PERL_ARGS_ASSERT_GROK_BSLASH_O
-syn keyword xsMacro PERL_ARGS_ASSERT_GROK_HEX PERL_ARGS_ASSERT_GROK_NUMBER
+syn keyword xsMacro PERL_ARGS_ASSERT_GLOB_ASSIGN_GLOB PERL_ARGS_ASSERT_GP_DUP
+syn keyword xsMacro PERL_ARGS_ASSERT_GROK_ATOUV PERL_ARGS_ASSERT_GROK_BIN
+syn keyword xsMacro PERL_ARGS_ASSERT_GROK_BSLASH_N
+syn keyword xsMacro PERL_ARGS_ASSERT_GROK_BSLASH_O
+syn keyword xsMacro PERL_ARGS_ASSERT_GROK_BSLASH_X PERL_ARGS_ASSERT_GROK_HEX
+syn keyword xsMacro PERL_ARGS_ASSERT_GROK_INFNAN PERL_ARGS_ASSERT_GROK_NUMBER
+syn keyword xsMacro PERL_ARGS_ASSERT_GROK_NUMBER_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_GROK_NUMERIC_RADIX
syn keyword xsMacro PERL_ARGS_ASSERT_GROK_OCT PERL_ARGS_ASSERT_GROUP_END
syn keyword xsMacro PERL_ARGS_ASSERT_GV_AMUPDATE
syn keyword xsMacro PERL_ARGS_ASSERT_GV_AUTOLOAD_PV
syn keyword xsMacro PERL_ARGS_ASSERT_GV_AUTOLOAD_PVN
syn keyword xsMacro PERL_ARGS_ASSERT_GV_AUTOLOAD_SV PERL_ARGS_ASSERT_GV_CHECK
-syn keyword xsMacro PERL_ARGS_ASSERT_GV_CONST_SV PERL_ARGS_ASSERT_GV_DUMP
+syn keyword xsMacro PERL_ARGS_ASSERT_GV_CONST_SV
syn keyword xsMacro PERL_ARGS_ASSERT_GV_EFULLNAME
syn keyword xsMacro PERL_ARGS_ASSERT_GV_EFULLNAME3
-syn keyword xsMacro PERL_ARGS_ASSERT_GV_EFULLNAME4 PERL_ARGS_ASSERT_GV_ENAME
+syn keyword xsMacro PERL_ARGS_ASSERT_GV_EFULLNAME4
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FETCHFILE
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FETCHFILE_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FETCHMETHOD
@@ -1746,20 +1973,24 @@ syn keyword xsMacro PERL_ARGS_ASSERT_GV_FETCHPV
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FETCHPVN_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FETCHSV PERL_ARGS_ASSERT_GV_FULLNAME
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FULLNAME3
-syn keyword xsMacro PERL_ARGS_ASSERT_GV_FULLNAME4
-syn keyword xsMacro PERL_ARGS_ASSERT_GV_GET_SUPER_PKG
-syn keyword xsMacro PERL_ARGS_ASSERT_GV_INIT_PV PERL_ARGS_ASSERT_GV_INIT_PVN
-syn keyword xsMacro PERL_ARGS_ASSERT_GV_INIT_SV
+syn keyword xsMacro PERL_ARGS_ASSERT_GV_FULLNAME4 PERL_ARGS_ASSERT_GV_INIT_PV
+syn keyword xsMacro PERL_ARGS_ASSERT_GV_INIT_PVN PERL_ARGS_ASSERT_GV_INIT_SV
syn keyword xsMacro PERL_ARGS_ASSERT_GV_INIT_SVTYPE
+syn keyword xsMacro PERL_ARGS_ASSERT_GV_IS_IN_MAIN
+syn keyword xsMacro PERL_ARGS_ASSERT_GV_MAGICALIZE
syn keyword xsMacro PERL_ARGS_ASSERT_GV_MAGICALIZE_ISA
-syn keyword xsMacro PERL_ARGS_ASSERT_GV_MAGICALIZE_OVERLOAD
-syn keyword xsMacro PERL_ARGS_ASSERT_GV_NAME_SET PERL_ARGS_ASSERT_GV_STASHPV
-syn keyword xsMacro PERL_ARGS_ASSERT_GV_STASHPVN PERL_ARGS_ASSERT_GV_STASHSV
+syn keyword xsMacro PERL_ARGS_ASSERT_GV_NAME_SET PERL_ARGS_ASSERT_GV_OVERRIDE
+syn keyword xsMacro PERL_ARGS_ASSERT_GV_SETREF PERL_ARGS_ASSERT_GV_STASHPV
+syn keyword xsMacro PERL_ARGS_ASSERT_GV_STASHPVN
+syn keyword xsMacro PERL_ARGS_ASSERT_GV_STASHPVN_INTERNAL
+syn keyword xsMacro PERL_ARGS_ASSERT_GV_STASHSV
syn keyword xsMacro PERL_ARGS_ASSERT_GV_TRY_DOWNGRADE
+syn keyword xsMacro PERL_ARGS_ASSERT_HANDLE_REGEX_SETS
syn keyword xsMacro PERL_ARGS_ASSERT_HEK_DUP PERL_ARGS_ASSERT_HE_DUP
syn keyword xsMacro PERL_ARGS_ASSERT_HFREEENTRIES
syn keyword xsMacro PERL_ARGS_ASSERT_HFREE_NEXT_ENTRY PERL_ARGS_ASSERT_HSPLIT
syn keyword xsMacro PERL_ARGS_ASSERT_HV_ASSERT PERL_ARGS_ASSERT_HV_AUXINIT
+syn keyword xsMacro PERL_ARGS_ASSERT_HV_AUXINIT_INTERNAL
syn keyword xsMacro PERL_ARGS_ASSERT_HV_BACKREFERENCES_P
syn keyword xsMacro PERL_ARGS_ASSERT_HV_CLEAR_PLACEHOLDERS
syn keyword xsMacro PERL_ARGS_ASSERT_HV_COMMON_KEY_LEN
@@ -1786,9 +2017,9 @@ syn keyword xsMacro PERL_ARGS_ASSERT_HV_NOTALLOWED
syn keyword xsMacro PERL_ARGS_ASSERT_HV_PLACEHOLDERS_GET
syn keyword xsMacro PERL_ARGS_ASSERT_HV_PLACEHOLDERS_P
syn keyword xsMacro PERL_ARGS_ASSERT_HV_PLACEHOLDERS_SET
-syn keyword xsMacro PERL_ARGS_ASSERT_HV_RITER_P PERL_ARGS_ASSERT_HV_RITER_SET
-syn keyword xsMacro PERL_ARGS_ASSERT_HV_SCALAR PERL_ARGS_ASSERT_INCLINE
-syn keyword xsMacro PERL_ARGS_ASSERT_INCPUSH
+syn keyword xsMacro PERL_ARGS_ASSERT_HV_RAND_SET PERL_ARGS_ASSERT_HV_RITER_P
+syn keyword xsMacro PERL_ARGS_ASSERT_HV_RITER_SET PERL_ARGS_ASSERT_HV_SCALAR
+syn keyword xsMacro PERL_ARGS_ASSERT_INCLINE PERL_ARGS_ASSERT_INCPUSH
syn keyword xsMacro PERL_ARGS_ASSERT_INCPUSH_IF_EXISTS
syn keyword xsMacro PERL_ARGS_ASSERT_INCPUSH_USE_SEP
syn keyword xsMacro PERL_ARGS_ASSERT_INIT_ARGV_SYMBOLS
@@ -1799,21 +2030,32 @@ syn keyword xsMacro PERL_ARGS_ASSERT_INTUIT_MORE
syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_ARRAY
syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_CLONE
syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_EXTEND
+syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_HIGHEST
+syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_IS_ITERATING
+syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_ITERFINISH
syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_ITERINIT
syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_ITERNEXT
-syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_LEN PERL_ARGS_ASSERT_INVLIST_MAX
-syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_SEARCH
+syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_MAX
+syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_PREVIOUS_INDEX
syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_SET_LEN
+syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_SET_PREVIOUS_INDEX
syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_TRIM PERL_ARGS_ASSERT_IO_CLOSE
-syn keyword xsMacro PERL_ARGS_ASSERT_ISA_LOOKUP PERL_ARGS_ASSERT_IS_AN_INT
-syn keyword xsMacro PERL_ARGS_ASSERT_IS_ASCII_STRING
+syn keyword xsMacro PERL_ARGS_ASSERT_ISALNUM_LAZY PERL_ARGS_ASSERT_ISA_LOOKUP
+syn keyword xsMacro PERL_ARGS_ASSERT_ISFOO_UTF8_LC
+syn keyword xsMacro PERL_ARGS_ASSERT_ISIDFIRST_LAZY
+syn keyword xsMacro PERL_ARGS_ASSERT_ISINFNANSV PERL_ARGS_ASSERT_ISSB
+syn keyword xsMacro PERL_ARGS_ASSERT_ISWB PERL_ARGS_ASSERT_IS_AN_INT
syn keyword xsMacro PERL_ARGS_ASSERT_IS_HANDLE_CONSTRUCTOR
+syn keyword xsMacro PERL_ARGS_ASSERT_IS_INVARIANT_STRING
+syn keyword xsMacro PERL_ARGS_ASSERT_IS_SAFE_SYSCALL
+syn keyword xsMacro PERL_ARGS_ASSERT_IS_SSC_WORTH_IT
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_ALNUM
+syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_ALNUMC
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_ALPHA
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_ASCII
+syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_BLANK
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_CHAR
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_CHAR_BUF
-syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_CHAR_SLOW
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_CNTRL
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_COMMON
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_DIGIT
@@ -1834,19 +2076,10 @@ syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_STRING_LOCLEN
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_UPPER
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_XDIGIT
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_XIDCONT
-syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_XIDFIRST
-syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_X_BEGIN
-syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_X_EXTEND
-syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_X_L
-syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_X_LV
-syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_X_LVT
-syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_X_LV_LVT_V
-syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_X_NON_HANGUL
-syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_X_PREPEND
-syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_X_T PERL_ARGS_ASSERT_IS_UTF8_X_V
-syn keyword xsMacro PERL_ARGS_ASSERT_JMAYBE PERL_ARGS_ASSERT_JOIN_EXACT
-syn keyword xsMacro PERL_ARGS_ASSERT_KEYWORD
+syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_XIDFIRST PERL_ARGS_ASSERT_JMAYBE
+syn keyword xsMacro PERL_ARGS_ASSERT_JOIN_EXACT PERL_ARGS_ASSERT_KEYWORD
syn keyword xsMacro PERL_ARGS_ASSERT_KEYWORD_PLUGIN_STANDARD
+syn keyword xsMacro PERL_ARGS_ASSERT_LEAVE_COMMON
syn keyword xsMacro PERL_ARGS_ASSERT_LEX_DISCARD_TO
syn keyword xsMacro PERL_ARGS_ASSERT_LEX_READ_TO
syn keyword xsMacro PERL_ARGS_ASSERT_LEX_STUFF_PV
@@ -1857,6 +2090,7 @@ syn keyword xsMacro PERL_ARGS_ASSERT_LOAD_MODULE_NOCONTEXT
syn keyword xsMacro PERL_ARGS_ASSERT_LOCALIZE
syn keyword xsMacro PERL_ARGS_ASSERT_LOOKS_LIKE_BOOL
syn keyword xsMacro PERL_ARGS_ASSERT_LOOKS_LIKE_NUMBER PERL_ARGS_ASSERT_LOP
+syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_CLEARARYLEN_P
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_CLEARENV
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_CLEARHINT
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_CLEARHINTS
@@ -1864,11 +2098,13 @@ syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_CLEARISA
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_CLEARPACK
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_CLEARSIG
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_CLEAR_ALL_ENV
+syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_COPYCALLCHECKER
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_EXISTSPACK
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_FREEARYLEN_P
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_FREEOVRLD
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GET
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GETARYLEN
+syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GETDEBUGVAR
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GETDEFELEM
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GETNKEYS
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GETPACK
@@ -1879,7 +2115,6 @@ syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GETTAINT
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GETUVAR
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GETVEC
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_KILLBACKREFS
-syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_LEN
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_METHCALL
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_METHCALL1
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_METHPACK
@@ -1889,14 +2124,15 @@ syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_REGDATUM_GET
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_REGDATUM_SET
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SCALARPACK
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SET
-syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETAMAGIC
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETARYLEN
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETCOLLXFRM
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETDBLINE
+syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETDEBUGVAR
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETDEFELEM
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETENV
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETHINT
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETISA
+syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETLVREF
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETMGLOB
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETNKEYS
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETPACK
@@ -1908,27 +2144,27 @@ syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETTAINT
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETUTF8
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETUVAR
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETVEC
-syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETVSTRING
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SET_ALL_ENV
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SIZEPACK
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_WIPEPACK
syn keyword xsMacro PERL_ARGS_ASSERT_MAKE_MATCHER PERL_ARGS_ASSERT_MAKE_TRIE
-syn keyword xsMacro PERL_ARGS_ASSERT_MAKE_TRIE_FAILTABLE
syn keyword xsMacro PERL_ARGS_ASSERT_MALLOCED_SIZE
syn keyword xsMacro PERL_ARGS_ASSERT_MATCHER_MATCHES_SV
syn keyword xsMacro PERL_ARGS_ASSERT_MAYBERELOCATE
+syn keyword xsMacro PERL_ARGS_ASSERT_MAYBE_MULTIMAGIC_GV
syn keyword xsMacro PERL_ARGS_ASSERT_MEASURE_STRUCT
syn keyword xsMacro PERL_ARGS_ASSERT_MEM_COLLXFRM
syn keyword xsMacro PERL_ARGS_ASSERT_MEM_LOG_COMMON PERL_ARGS_ASSERT_MESS
syn keyword xsMacro PERL_ARGS_ASSERT_MESS_NOCONTEXT PERL_ARGS_ASSERT_MESS_SV
-syn keyword xsMacro PERL_ARGS_ASSERT_METHOD_COMMON PERL_ARGS_ASSERT_MG_CLEAR
-syn keyword xsMacro PERL_ARGS_ASSERT_MG_COPY PERL_ARGS_ASSERT_MG_DUP
+syn keyword xsMacro PERL_ARGS_ASSERT_MG_CLEAR PERL_ARGS_ASSERT_MG_COPY
+syn keyword xsMacro PERL_ARGS_ASSERT_MG_DUP PERL_ARGS_ASSERT_MG_FIND_MGLOB
syn keyword xsMacro PERL_ARGS_ASSERT_MG_FREE PERL_ARGS_ASSERT_MG_FREE_TYPE
syn keyword xsMacro PERL_ARGS_ASSERT_MG_GET PERL_ARGS_ASSERT_MG_LENGTH
syn keyword xsMacro PERL_ARGS_ASSERT_MG_LOCALIZE PERL_ARGS_ASSERT_MG_MAGICAL
syn keyword xsMacro PERL_ARGS_ASSERT_MG_SET PERL_ARGS_ASSERT_MG_SIZE
syn keyword xsMacro PERL_ARGS_ASSERT_MINI_MKTIME
syn keyword xsMacro PERL_ARGS_ASSERT_MORESWITCHES
+syn keyword xsMacro PERL_ARGS_ASSERT_MOVE_PROTO_ATTR
syn keyword xsMacro PERL_ARGS_ASSERT_MRO_CLEAN_ISAREV
syn keyword xsMacro PERL_ARGS_ASSERT_MRO_GATHER_AND_RENAME
syn keyword xsMacro PERL_ARGS_ASSERT_MRO_GET_FROM_NAME
@@ -1944,29 +2180,35 @@ syn keyword xsMacro PERL_ARGS_ASSERT_MRO_REGISTER
syn keyword xsMacro PERL_ARGS_ASSERT_MRO_SET_MRO
syn keyword xsMacro PERL_ARGS_ASSERT_MRO_SET_PRIVATE_DATA
syn keyword xsMacro PERL_ARGS_ASSERT_MUL128
-syn keyword xsMacro PERL_ARGS_ASSERT_MUNGE_QWLIST_TO_PAREN_LIST
+syn keyword xsMacro PERL_ARGS_ASSERT_MULTIDEREF_STRINGIFY
syn keyword xsMacro PERL_ARGS_ASSERT_MY_ATOF PERL_ARGS_ASSERT_MY_ATOF2
syn keyword xsMacro PERL_ARGS_ASSERT_MY_ATTRS PERL_ARGS_ASSERT_MY_BCOPY
+syn keyword xsMacro PERL_ARGS_ASSERT_MY_BYTES_TO_UTF8
syn keyword xsMacro PERL_ARGS_ASSERT_MY_BZERO PERL_ARGS_ASSERT_MY_CXT_INDEX
syn keyword xsMacro PERL_ARGS_ASSERT_MY_CXT_INIT PERL_ARGS_ASSERT_MY_KID
syn keyword xsMacro PERL_ARGS_ASSERT_MY_MEMCMP PERL_ARGS_ASSERT_MY_MEMSET
syn keyword xsMacro PERL_ARGS_ASSERT_MY_POPEN PERL_ARGS_ASSERT_MY_POPEN_LIST
syn keyword xsMacro PERL_ARGS_ASSERT_MY_SNPRINTF PERL_ARGS_ASSERT_MY_SPRINTF
-syn keyword xsMacro PERL_ARGS_ASSERT_MY_STRFTIME PERL_ARGS_ASSERT_MY_SWABN
+syn keyword xsMacro PERL_ARGS_ASSERT_MY_STRFTIME
syn keyword xsMacro PERL_ARGS_ASSERT_MY_VSNPRINTF PERL_ARGS_ASSERT_NEED_UTF8
syn keyword xsMacro PERL_ARGS_ASSERT_NEWAVREF PERL_ARGS_ASSERT_NEWCONDOP
syn keyword xsMacro PERL_ARGS_ASSERT_NEWFOROP PERL_ARGS_ASSERT_NEWGIVENOP
syn keyword xsMacro PERL_ARGS_ASSERT_NEWGIVWHENOP PERL_ARGS_ASSERT_NEWGP
syn keyword xsMacro PERL_ARGS_ASSERT_NEWGVGEN_FLAGS PERL_ARGS_ASSERT_NEWGVOP
syn keyword xsMacro PERL_ARGS_ASSERT_NEWHVREF PERL_ARGS_ASSERT_NEWLOGOP
-syn keyword xsMacro PERL_ARGS_ASSERT_NEWLOOPEX PERL_ARGS_ASSERT_NEWMADSV
-syn keyword xsMacro PERL_ARGS_ASSERT_NEWPADOP PERL_ARGS_ASSERT_NEWPROG
-syn keyword xsMacro PERL_ARGS_ASSERT_NEWRANGE PERL_ARGS_ASSERT_NEWRV
-syn keyword xsMacro PERL_ARGS_ASSERT_NEWRV_NOINC PERL_ARGS_ASSERT_NEWSVOP
-syn keyword xsMacro PERL_ARGS_ASSERT_NEWSVPVF
+syn keyword xsMacro PERL_ARGS_ASSERT_NEWLOOPEX PERL_ARGS_ASSERT_NEWMETHOP
+syn keyword xsMacro PERL_ARGS_ASSERT_NEWMETHOP_NAMED
+syn keyword xsMacro PERL_ARGS_ASSERT_NEWMYSUB
+syn keyword xsMacro PERL_ARGS_ASSERT_NEWPADNAMEOUTER
+syn keyword xsMacro PERL_ARGS_ASSERT_NEWPADNAMEPVN PERL_ARGS_ASSERT_NEWPADOP
+syn keyword xsMacro PERL_ARGS_ASSERT_NEWPROG PERL_ARGS_ASSERT_NEWRANGE
+syn keyword xsMacro PERL_ARGS_ASSERT_NEWRV PERL_ARGS_ASSERT_NEWRV_NOINC
+syn keyword xsMacro PERL_ARGS_ASSERT_NEWSTUB PERL_ARGS_ASSERT_NEWSVAVDEFELEM
+syn keyword xsMacro PERL_ARGS_ASSERT_NEWSVOP PERL_ARGS_ASSERT_NEWSVPVF
syn keyword xsMacro PERL_ARGS_ASSERT_NEWSVPVF_NOCONTEXT
syn keyword xsMacro PERL_ARGS_ASSERT_NEWSVREF PERL_ARGS_ASSERT_NEWSVRV
syn keyword xsMacro PERL_ARGS_ASSERT_NEWWHENOP PERL_ARGS_ASSERT_NEWXS
+syn keyword xsMacro PERL_ARGS_ASSERT_NEWXS_DEFFILE
syn keyword xsMacro PERL_ARGS_ASSERT_NEWXS_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_NEWXS_LEN_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_NEW_CONSTANT PERL_ARGS_ASSERT_NEW_CTYPE
@@ -1974,24 +2216,39 @@ syn keyword xsMacro PERL_ARGS_ASSERT_NEW_LOGOP PERL_ARGS_ASSERT_NEW_VERSION
syn keyword xsMacro PERL_ARGS_ASSERT_NEW_WARNINGS_BITFIELD
syn keyword xsMacro PERL_ARGS_ASSERT_NEXTARGV PERL_ARGS_ASSERT_NEXTCHAR
syn keyword xsMacro PERL_ARGS_ASSERT_NEXT_SYMBOL PERL_ARGS_ASSERT_NINSTR
-syn keyword xsMacro PERL_ARGS_ASSERT_NOT_A_NUMBER
+syn keyword xsMacro PERL_ARGS_ASSERT_NOPERL_DIE PERL_ARGS_ASSERT_NOT_A_NUMBER
+syn keyword xsMacro PERL_ARGS_ASSERT_NOT_INCREMENTABLE
syn keyword xsMacro PERL_ARGS_ASSERT_NO_BAREWORD_ALLOWED
syn keyword xsMacro PERL_ARGS_ASSERT_NO_FH_ALLOWED PERL_ARGS_ASSERT_NO_OP
syn keyword xsMacro PERL_ARGS_ASSERT_OOPSAV PERL_ARGS_ASSERT_OOPSHV
-syn keyword xsMacro PERL_ARGS_ASSERT_OPEN_SCRIPT
-syn keyword xsMacro PERL_ARGS_ASSERT_OPT_SCALARHV PERL_ARGS_ASSERT_OP_CLEAR
+syn keyword xsMacro PERL_ARGS_ASSERT_OPENN_CLEANUP
+syn keyword xsMacro PERL_ARGS_ASSERT_OPENN_SETUP PERL_ARGS_ASSERT_OPEN_SCRIPT
+syn keyword xsMacro PERL_ARGS_ASSERT_OPMETHOD_STASH
+syn keyword xsMacro PERL_ARGS_ASSERT_OPSLAB_FORCE_FREE
+syn keyword xsMacro PERL_ARGS_ASSERT_OPSLAB_FREE
+syn keyword xsMacro PERL_ARGS_ASSERT_OPSLAB_FREE_NOPAD
+syn keyword xsMacro PERL_ARGS_ASSERT_OP_CLEAR
syn keyword xsMacro PERL_ARGS_ASSERT_OP_CONTEXTUALIZE
syn keyword xsMacro PERL_ARGS_ASSERT_OP_DUMP PERL_ARGS_ASSERT_OP_INTEGERIZE
syn keyword xsMacro PERL_ARGS_ASSERT_OP_LINKLIST PERL_ARGS_ASSERT_OP_NULL
-syn keyword xsMacro PERL_ARGS_ASSERT_OP_REFCNT_DEC
-syn keyword xsMacro PERL_ARGS_ASSERT_OP_STD_INIT PERL_ARGS_ASSERT_OP_XMLDUMP
-syn keyword xsMacro PERL_ARGS_ASSERT_PACKAGE PERL_ARGS_ASSERT_PACKAGE_VERSION
+syn keyword xsMacro PERL_ARGS_ASSERT_OP_PARENT PERL_ARGS_ASSERT_OP_REFCNT_DEC
+syn keyword xsMacro PERL_ARGS_ASSERT_OP_RELOCATE_SV
+syn keyword xsMacro PERL_ARGS_ASSERT_OP_STD_INIT PERL_ARGS_ASSERT_PACKAGE
+syn keyword xsMacro PERL_ARGS_ASSERT_PACKAGE_VERSION
syn keyword xsMacro PERL_ARGS_ASSERT_PACKLIST PERL_ARGS_ASSERT_PACK_CAT
syn keyword xsMacro PERL_ARGS_ASSERT_PACK_REC PERL_ARGS_ASSERT_PADLIST_DUP
+syn keyword xsMacro PERL_ARGS_ASSERT_PADLIST_STORE
+syn keyword xsMacro PERL_ARGS_ASSERT_PADNAMELIST_DUP
+syn keyword xsMacro PERL_ARGS_ASSERT_PADNAMELIST_FETCH
+syn keyword xsMacro PERL_ARGS_ASSERT_PADNAMELIST_FREE
+syn keyword xsMacro PERL_ARGS_ASSERT_PADNAMELIST_STORE
+syn keyword xsMacro PERL_ARGS_ASSERT_PADNAME_DUP
+syn keyword xsMacro PERL_ARGS_ASSERT_PADNAME_FREE
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_ADD_ANON
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_ADD_NAME_PV
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_ADD_NAME_PVN
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_ADD_NAME_SV
+syn keyword xsMacro PERL_ARGS_ASSERT_PAD_ADD_WEAKREF
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_ALLOC_NAME
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_CHECK_DUP
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_FINDLEX
@@ -1999,11 +2256,14 @@ syn keyword xsMacro PERL_ARGS_ASSERT_PAD_FINDMY_PV
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_FINDMY_PVN
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_FINDMY_SV
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_FIXUP_INNER_ANONS
-syn keyword xsMacro PERL_ARGS_ASSERT_PAD_PEG PERL_ARGS_ASSERT_PAD_PUSH
-syn keyword xsMacro PERL_ARGS_ASSERT_PAD_SETSV PERL_ARGS_ASSERT_PARSER_DUP
-syn keyword xsMacro PERL_ARGS_ASSERT_PARSER_FREE
+syn keyword xsMacro PERL_ARGS_ASSERT_PAD_PUSH PERL_ARGS_ASSERT_PAD_SETSV
+syn keyword xsMacro PERL_ARGS_ASSERT_PARSER_DUP PERL_ARGS_ASSERT_PARSER_FREE
+syn keyword xsMacro PERL_ARGS_ASSERT_PARSER_FREE_NEXTTOKE_OPS
+syn keyword xsMacro PERL_ARGS_ASSERT_PARSE_GV_STASH_NAME
+syn keyword xsMacro PERL_ARGS_ASSERT_PARSE_IDENT
+syn keyword xsMacro PERL_ARGS_ASSERT_PARSE_LPAREN_QUESTION_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_PARSE_UNICODE_OPTS
-syn keyword xsMacro PERL_ARGS_ASSERT_PATH_IS_ABSOLUTE
+syn keyword xsMacro PERL_ARGS_ASSERT_PATH_IS_SEARCHABLE
syn keyword xsMacro PERL_ARGS_ASSERT_PERLIO_READ
syn keyword xsMacro PERL_ARGS_ASSERT_PERLIO_UNREAD
syn keyword xsMacro PERL_ARGS_ASSERT_PERLIO_WRITE
@@ -2015,6 +2275,7 @@ syn keyword xsMacro PERL_ARGS_ASSERT_PERL_DESTRUCT PERL_ARGS_ASSERT_PERL_FREE
syn keyword xsMacro PERL_ARGS_ASSERT_PERL_PARSE PERL_ARGS_ASSERT_PERL_RUN
syn keyword xsMacro PERL_ARGS_ASSERT_PMRUNTIME PERL_ARGS_ASSERT_PMTRANS
syn keyword xsMacro PERL_ARGS_ASSERT_PM_DESCRIPTION
+syn keyword xsMacro PERL_ARGS_ASSERT_POPULATE_ANYOF_FROM_INVLIST
syn keyword xsMacro PERL_ARGS_ASSERT_POPULATE_ISA PERL_ARGS_ASSERT_PREGCOMP
syn keyword xsMacro PERL_ARGS_ASSERT_PREGEXEC PERL_ARGS_ASSERT_PREGFREE2
syn keyword xsMacro PERL_ARGS_ASSERT_PRESCAN_VERSION
@@ -2025,10 +2286,14 @@ syn keyword xsMacro PERL_ARGS_ASSERT_PTR_TABLE_FETCH
syn keyword xsMacro PERL_ARGS_ASSERT_PTR_TABLE_FIND
syn keyword xsMacro PERL_ARGS_ASSERT_PTR_TABLE_SPLIT
syn keyword xsMacro PERL_ARGS_ASSERT_PTR_TABLE_STORE
-syn keyword xsMacro PERL_ARGS_ASSERT_PUT_BYTE PERL_ARGS_ASSERT_PV_DISPLAY
+syn keyword xsMacro PERL_ARGS_ASSERT_PUT_CHARCLASS_BITMAP_INNARDS
+syn keyword xsMacro PERL_ARGS_ASSERT_PUT_CODE_POINT
+syn keyword xsMacro PERL_ARGS_ASSERT_PUT_RANGE PERL_ARGS_ASSERT_PV_DISPLAY
syn keyword xsMacro PERL_ARGS_ASSERT_PV_ESCAPE PERL_ARGS_ASSERT_PV_PRETTY
syn keyword xsMacro PERL_ARGS_ASSERT_PV_UNI_DISPLAY PERL_ARGS_ASSERT_QERROR
syn keyword xsMacro PERL_ARGS_ASSERT_QSORTSVU
+syn keyword xsMacro PERL_ARGS_ASSERT_QUADMATH_FORMAT_NEEDED
+syn keyword xsMacro PERL_ARGS_ASSERT_QUADMATH_FORMAT_SINGLE
syn keyword xsMacro PERL_ARGS_ASSERT_REENTRANT_RETRY
syn keyword xsMacro PERL_ARGS_ASSERT_REFCOUNTED_HE_FETCH_PV
syn keyword xsMacro PERL_ARGS_ASSERT_REFCOUNTED_HE_FETCH_PVN
@@ -2038,9 +2303,10 @@ syn keyword xsMacro PERL_ARGS_ASSERT_REFCOUNTED_HE_NEW_PVN
syn keyword xsMacro PERL_ARGS_ASSERT_REFCOUNTED_HE_NEW_SV
syn keyword xsMacro PERL_ARGS_ASSERT_REFCOUNTED_HE_VALUE
syn keyword xsMacro PERL_ARGS_ASSERT_REFTO PERL_ARGS_ASSERT_REG
-syn keyword xsMacro PERL_ARGS_ASSERT_REGANODE PERL_ARGS_ASSERT_REGATOM
-syn keyword xsMacro PERL_ARGS_ASSERT_REGBRANCH PERL_ARGS_ASSERT_REGCLASS
-syn keyword xsMacro PERL_ARGS_ASSERT_REGCLASS_SWASH PERL_ARGS_ASSERT_REGCPPOP
+syn keyword xsMacro PERL_ARGS_ASSERT_REG2LANODE PERL_ARGS_ASSERT_REGANODE
+syn keyword xsMacro PERL_ARGS_ASSERT_REGATOM PERL_ARGS_ASSERT_REGBRANCH
+syn keyword xsMacro PERL_ARGS_ASSERT_REGCLASS PERL_ARGS_ASSERT_REGCLASS_SWASH
+syn keyword xsMacro PERL_ARGS_ASSERT_REGCPPOP PERL_ARGS_ASSERT_REGCPPUSH
syn keyword xsMacro PERL_ARGS_ASSERT_REGCURLY PERL_ARGS_ASSERT_REGDUMP
syn keyword xsMacro PERL_ARGS_ASSERT_REGDUPE_INTERNAL
syn keyword xsMacro PERL_ARGS_ASSERT_REGEXEC_FLAGS
@@ -2048,13 +2314,12 @@ syn keyword xsMacro PERL_ARGS_ASSERT_REGFREE_INTERNAL
syn keyword xsMacro PERL_ARGS_ASSERT_REGHOP3 PERL_ARGS_ASSERT_REGHOP4
syn keyword xsMacro PERL_ARGS_ASSERT_REGHOPMAYBE3 PERL_ARGS_ASSERT_REGINCLASS
syn keyword xsMacro PERL_ARGS_ASSERT_REGINSERT PERL_ARGS_ASSERT_REGMATCH
+syn keyword xsMacro PERL_ARGS_ASSERT_REGNODE_GUTS PERL_ARGS_ASSERT_REGPATWS
syn keyword xsMacro PERL_ARGS_ASSERT_REGPIECE PERL_ARGS_ASSERT_REGPPOSIXCC
syn keyword xsMacro PERL_ARGS_ASSERT_REGPROP PERL_ARGS_ASSERT_REGREPEAT
syn keyword xsMacro PERL_ARGS_ASSERT_REGTAIL PERL_ARGS_ASSERT_REGTAIL_STUDY
-syn keyword xsMacro PERL_ARGS_ASSERT_REGTRY PERL_ARGS_ASSERT_REGUNI
-syn keyword xsMacro PERL_ARGS_ASSERT_REGWHITE
+syn keyword xsMacro PERL_ARGS_ASSERT_REGTRY
syn keyword xsMacro PERL_ARGS_ASSERT_REG_CHECK_NAMED_BUFF_MATCHED
-syn keyword xsMacro PERL_ARGS_ASSERT_REG_NAMEDSEQ
syn keyword xsMacro PERL_ARGS_ASSERT_REG_NAMED_BUFF
syn keyword xsMacro PERL_ARGS_ASSERT_REG_NAMED_BUFF_ALL
syn keyword xsMacro PERL_ARGS_ASSERT_REG_NAMED_BUFF_EXISTS
@@ -2079,7 +2344,8 @@ syn keyword xsMacro PERL_ARGS_ASSERT_RE_COMPILE PERL_ARGS_ASSERT_RE_CROAK2
syn keyword xsMacro PERL_ARGS_ASSERT_RE_DUP_GUTS
syn keyword xsMacro PERL_ARGS_ASSERT_RE_INTUIT_START
syn keyword xsMacro PERL_ARGS_ASSERT_RE_INTUIT_STRING
-syn keyword xsMacro PERL_ARGS_ASSERT_RNINSTR PERL_ARGS_ASSERT_RSIGNAL_SAVE
+syn keyword xsMacro PERL_ARGS_ASSERT_RE_OP_COMPILE PERL_ARGS_ASSERT_RNINSTR
+syn keyword xsMacro PERL_ARGS_ASSERT_RSIGNAL_SAVE
syn keyword xsMacro PERL_ARGS_ASSERT_RUN_USER_FILTER
syn keyword xsMacro PERL_ARGS_ASSERT_RV2CV_OP_CV PERL_ARGS_ASSERT_RVPV_DUP
syn keyword xsMacro PERL_ARGS_ASSERT_RXRES_FREE
@@ -2088,6 +2354,7 @@ syn keyword xsMacro PERL_ARGS_ASSERT_RXRES_SAVE PERL_ARGS_ASSERT_SAME_DIRENT
syn keyword xsMacro PERL_ARGS_ASSERT_SAVESHAREDSVPV PERL_ARGS_ASSERT_SAVESVPV
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_ADELETE
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_AELEM_FLAGS
+syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_ALIASED_SV
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_APTR PERL_ARGS_ASSERT_SAVE_ARY
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_BOOL PERL_ARGS_ASSERT_SAVE_CLEARSV
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_DELETE
@@ -2103,15 +2370,16 @@ syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_I32 PERL_ARGS_ASSERT_SAVE_I8
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_INT PERL_ARGS_ASSERT_SAVE_ITEM
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_IV PERL_ARGS_ASSERT_SAVE_LINES
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_LIST PERL_ARGS_ASSERT_SAVE_LONG
-syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_MAGIC
+syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_MAGIC_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_MORTALIZESV
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_NOGV PERL_ARGS_ASSERT_SAVE_PPTR
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_SCALAR
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_SCALAR_AT
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_SET_SVFLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_SHARED_PVREF
-syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_SPTR PERL_ARGS_ASSERT_SAVE_SVREF
-syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_VPTR PERL_ARGS_ASSERT_SCALARBOOLEAN
+syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_SPTR PERL_ARGS_ASSERT_SAVE_STRLEN
+syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_SVREF PERL_ARGS_ASSERT_SAVE_VPTR
+syn keyword xsMacro PERL_ARGS_ASSERT_SCALARBOOLEAN
syn keyword xsMacro PERL_ARGS_ASSERT_SCALARVOID PERL_ARGS_ASSERT_SCAN_BIN
syn keyword xsMacro PERL_ARGS_ASSERT_SCAN_COMMIT PERL_ARGS_ASSERT_SCAN_CONST
syn keyword xsMacro PERL_ARGS_ASSERT_SCAN_FORMLINE
@@ -2123,25 +2391,31 @@ syn keyword xsMacro PERL_ARGS_ASSERT_SCAN_PAT PERL_ARGS_ASSERT_SCAN_STR
syn keyword xsMacro PERL_ARGS_ASSERT_SCAN_SUBST PERL_ARGS_ASSERT_SCAN_TRANS
syn keyword xsMacro PERL_ARGS_ASSERT_SCAN_VERSION
syn keyword xsMacro PERL_ARGS_ASSERT_SCAN_VSTRING PERL_ARGS_ASSERT_SCAN_WORD
-syn keyword xsMacro PERL_ARGS_ASSERT_SCREAMINSTR
-syn keyword xsMacro PERL_ARGS_ASSERT_SEARCH_CONST
-syn keyword xsMacro PERL_ARGS_ASSERT_SET_CONTEXT
-syn keyword xsMacro PERL_ARGS_ASSERT_SET_REGCLASS_BIT
-syn keyword xsMacro PERL_ARGS_ASSERT_SET_REGCLASS_BIT_FOLD
+syn keyword xsMacro PERL_ARGS_ASSERT_SEARCH_CONST PERL_ARGS_ASSERT_SETDEFOUT
+syn keyword xsMacro PERL_ARGS_ASSERT_SET_ANYOF_ARG
+syn keyword xsMacro PERL_ARGS_ASSERT_SET_CONTEXT PERL_ARGS_ASSERT_SET_PADLIST
syn keyword xsMacro PERL_ARGS_ASSERT_SHARE_HEK
syn keyword xsMacro PERL_ARGS_ASSERT_SHARE_HEK_FLAGS
+syn keyword xsMacro PERL_ARGS_ASSERT_SHOULD_WARN_NL
syn keyword xsMacro PERL_ARGS_ASSERT_SIMPLIFY_SORT PERL_ARGS_ASSERT_SI_DUP
-syn keyword xsMacro PERL_ARGS_ASSERT_SKIPSPACE PERL_ARGS_ASSERT_SKIPSPACE0
-syn keyword xsMacro PERL_ARGS_ASSERT_SKIPSPACE1 PERL_ARGS_ASSERT_SKIPSPACE2
-syn keyword xsMacro PERL_ARGS_ASSERT_SLAB_FREE PERL_ARGS_ASSERT_SLAB_TO_RW
-syn keyword xsMacro PERL_ARGS_ASSERT_SOFTREF2XV PERL_ARGS_ASSERT_SORTCV
-syn keyword xsMacro PERL_ARGS_ASSERT_SORTCV_STACKED
+syn keyword xsMacro PERL_ARGS_ASSERT_SKIPSPACE_FLAGS
+syn keyword xsMacro PERL_ARGS_ASSERT_SLAB_FREE PERL_ARGS_ASSERT_SLAB_TO_RO
+syn keyword xsMacro PERL_ARGS_ASSERT_SLAB_TO_RW PERL_ARGS_ASSERT_SOFTREF2XV
+syn keyword xsMacro PERL_ARGS_ASSERT_SORTCV PERL_ARGS_ASSERT_SORTCV_STACKED
syn keyword xsMacro PERL_ARGS_ASSERT_SORTCV_XSUB PERL_ARGS_ASSERT_SORTSV
syn keyword xsMacro PERL_ARGS_ASSERT_SORTSV_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SPACE_JOIN_NAMES_MORTAL
+syn keyword xsMacro PERL_ARGS_ASSERT_SSC_ADD_RANGE PERL_ARGS_ASSERT_SSC_AND
+syn keyword xsMacro PERL_ARGS_ASSERT_SSC_ANYTHING
+syn keyword xsMacro PERL_ARGS_ASSERT_SSC_CLEAR_LOCALE
+syn keyword xsMacro PERL_ARGS_ASSERT_SSC_CP_AND PERL_ARGS_ASSERT_SSC_FINALIZE
+syn keyword xsMacro PERL_ARGS_ASSERT_SSC_INIT
+syn keyword xsMacro PERL_ARGS_ASSERT_SSC_INTERSECTION
+syn keyword xsMacro PERL_ARGS_ASSERT_SSC_IS_ANYTHING
+syn keyword xsMacro PERL_ARGS_ASSERT_SSC_IS_CP_POSIXL_INIT
+syn keyword xsMacro PERL_ARGS_ASSERT_SSC_OR PERL_ARGS_ASSERT_SSC_UNION
syn keyword xsMacro PERL_ARGS_ASSERT_SS_DUP PERL_ARGS_ASSERT_STACK_GROW
syn keyword xsMacro PERL_ARGS_ASSERT_START_GLOB
-syn keyword xsMacro PERL_ARGS_ASSERT_STASHPV_HVNAME_MATCH
syn keyword xsMacro PERL_ARGS_ASSERT_STDIZE_LOCALE
syn keyword xsMacro PERL_ARGS_ASSERT_STRIP_RETURN
syn keyword xsMacro PERL_ARGS_ASSERT_STR_TO_VERSION
@@ -2150,16 +2424,21 @@ syn keyword xsMacro PERL_ARGS_ASSERT_SUB_CRUSH_DEPTH
syn keyword xsMacro PERL_ARGS_ASSERT_SV_2BOOL_FLAGS PERL_ARGS_ASSERT_SV_2CV
syn keyword xsMacro PERL_ARGS_ASSERT_SV_2IO PERL_ARGS_ASSERT_SV_2IUV_COMMON
syn keyword xsMacro PERL_ARGS_ASSERT_SV_2IUV_NON_PRESERVE
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_2NUM PERL_ARGS_ASSERT_SV_2PVBYTE
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_2IV PERL_ARGS_ASSERT_SV_2IV_FLAGS
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_2NUM PERL_ARGS_ASSERT_SV_2NV_FLAGS
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_2PV PERL_ARGS_ASSERT_SV_2PVBYTE
syn keyword xsMacro PERL_ARGS_ASSERT_SV_2PVBYTE_NOLEN
syn keyword xsMacro PERL_ARGS_ASSERT_SV_2PVUTF8
syn keyword xsMacro PERL_ARGS_ASSERT_SV_2PVUTF8_NOLEN
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_2PV_NOLEN
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_2PV_FLAGS
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_2PV_NOLEN PERL_ARGS_ASSERT_SV_2UV
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_2UV_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_ADD_ARENA
syn keyword xsMacro PERL_ARGS_ASSERT_SV_ADD_BACKREF
syn keyword xsMacro PERL_ARGS_ASSERT_SV_BACKOFF PERL_ARGS_ASSERT_SV_BLESS
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATPV PERL_ARGS_ASSERT_SV_CATPVF
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATPVF_MG
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_BUF_TO_RO
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_BUF_TO_RW PERL_ARGS_ASSERT_SV_CATPV
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATPVF PERL_ARGS_ASSERT_SV_CATPVF_MG
syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATPVF_MG_NOCONTEXT
syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATPVF_NOCONTEXT
syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATPVN
@@ -2168,37 +2447,40 @@ syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATPVN_MG
syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATPV_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATPV_MG PERL_ARGS_ASSERT_SV_CATSV
syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATSV_FLAGS
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATSV_MG PERL_ARGS_ASSERT_SV_CATXMLPV
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATXMLPVN
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATXMLSV
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATSV_MG
syn keyword xsMacro PERL_ARGS_ASSERT_SV_CAT_DECODE PERL_ARGS_ASSERT_SV_CHOP
syn keyword xsMacro PERL_ARGS_ASSERT_SV_CLEAR
syn keyword xsMacro PERL_ARGS_ASSERT_SV_COLLXFRM_FLAGS
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_COMPILE_2OP
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_COMPILE_2OP_IS_BROKEN
syn keyword xsMacro PERL_ARGS_ASSERT_SV_COPYPV
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_COPYPV_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_DEL_BACKREF
syn keyword xsMacro PERL_ARGS_ASSERT_SV_DERIVED_FROM
syn keyword xsMacro PERL_ARGS_ASSERT_SV_DERIVED_FROM_PV
syn keyword xsMacro PERL_ARGS_ASSERT_SV_DERIVED_FROM_PVN
syn keyword xsMacro PERL_ARGS_ASSERT_SV_DERIVED_FROM_SV
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_DOES PERL_ARGS_ASSERT_SV_DOES_PV
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_DOES_PVN PERL_ARGS_ASSERT_SV_DOES_SV
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_DUMP PERL_ARGS_ASSERT_SV_DUP
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_DUP_COMMON
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_DISPLAY PERL_ARGS_ASSERT_SV_DOES
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_DOES_PV PERL_ARGS_ASSERT_SV_DOES_PVN
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_DOES_SV PERL_ARGS_ASSERT_SV_DUMP
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_DUP PERL_ARGS_ASSERT_SV_DUP_COMMON
syn keyword xsMacro PERL_ARGS_ASSERT_SV_DUP_INC
syn keyword xsMacro PERL_ARGS_ASSERT_SV_DUP_INC_MULTIPLE
syn keyword xsMacro PERL_ARGS_ASSERT_SV_EXP_GROW
syn keyword xsMacro PERL_ARGS_ASSERT_SV_FORCE_NORMAL
syn keyword xsMacro PERL_ARGS_ASSERT_SV_FORCE_NORMAL_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_FREE2 PERL_ARGS_ASSERT_SV_GETS
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_GROW PERL_ARGS_ASSERT_SV_INSERT
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_GET_BACKREFS PERL_ARGS_ASSERT_SV_GROW
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_INSERT
syn keyword xsMacro PERL_ARGS_ASSERT_SV_INSERT_FLAGS PERL_ARGS_ASSERT_SV_ISA
syn keyword xsMacro PERL_ARGS_ASSERT_SV_IV PERL_ARGS_ASSERT_SV_I_NCMP
syn keyword xsMacro PERL_ARGS_ASSERT_SV_KILL_BACKREFS
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_LEN_UTF8_NOMG
syn keyword xsMacro PERL_ARGS_ASSERT_SV_MAGIC PERL_ARGS_ASSERT_SV_MAGICEXT
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_MAGICEXT_MGLOB
syn keyword xsMacro PERL_ARGS_ASSERT_SV_NCMP PERL_ARGS_ASSERT_SV_NV
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_ONLY_TAINT_GMAGIC
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_OR_PV_POS_U2B
syn keyword xsMacro PERL_ARGS_ASSERT_SV_POS_B2U
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_POS_B2U_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_POS_B2U_MIDWAY
syn keyword xsMacro PERL_ARGS_ASSERT_SV_POS_U2B
syn keyword xsMacro PERL_ARGS_ASSERT_SV_POS_U2B_CACHED
@@ -2252,23 +2534,22 @@ syn keyword xsMacro PERL_ARGS_ASSERT_SV_UTF8_UPGRADE
syn keyword xsMacro PERL_ARGS_ASSERT_SV_UTF8_UPGRADE_FLAGS_GROW
syn keyword xsMacro PERL_ARGS_ASSERT_SV_UV PERL_ARGS_ASSERT_SV_VCATPVF
syn keyword xsMacro PERL_ARGS_ASSERT_SV_VCATPVFN
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_VCATPVFN_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_VCATPVF_MG
syn keyword xsMacro PERL_ARGS_ASSERT_SV_VSETPVF PERL_ARGS_ASSERT_SV_VSETPVFN
syn keyword xsMacro PERL_ARGS_ASSERT_SV_VSETPVF_MG
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_XMLPEEK PERL_ARGS_ASSERT_SWALLOW_BOM
-syn keyword xsMacro PERL_ARGS_ASSERT_SWASH_FETCH PERL_ARGS_ASSERT_SWASH_INIT
+syn keyword xsMacro PERL_ARGS_ASSERT_SWALLOW_BOM PERL_ARGS_ASSERT_SWASH_FETCH
+syn keyword xsMacro PERL_ARGS_ASSERT_SWASH_INIT
+syn keyword xsMacro PERL_ARGS_ASSERT_SWASH_SCAN_LIST_LINE
syn keyword xsMacro PERL_ARGS_ASSERT_SWATCH_GET PERL_ARGS_ASSERT_SYS_INIT
syn keyword xsMacro PERL_ARGS_ASSERT_SYS_INIT3
syn keyword xsMacro PERL_ARGS_ASSERT_SYS_INTERN_DUP
syn keyword xsMacro PERL_ARGS_ASSERT_TAINT_PROPER
syn keyword xsMacro PERL_ARGS_ASSERT_TIED_METHOD
-syn keyword xsMacro PERL_ARGS_ASSERT_TOKENIZE_USE PERL_ARGS_ASSERT_TOKEN_FREE
-syn keyword xsMacro PERL_ARGS_ASSERT_TOKEN_GETMAD PERL_ARGS_ASSERT_TOKEQ
+syn keyword xsMacro PERL_ARGS_ASSERT_TOKENIZE_USE PERL_ARGS_ASSERT_TOKEQ
syn keyword xsMacro PERL_ARGS_ASSERT_TOKEREPORT
syn keyword xsMacro PERL_ARGS_ASSERT_TOO_FEW_ARGUMENTS_PV
-syn keyword xsMacro PERL_ARGS_ASSERT_TOO_FEW_ARGUMENTS_SV
syn keyword xsMacro PERL_ARGS_ASSERT_TOO_MANY_ARGUMENTS_PV
-syn keyword xsMacro PERL_ARGS_ASSERT_TOO_MANY_ARGUMENTS_SV
syn keyword xsMacro PERL_ARGS_ASSERT_TO_BYTE_SUBSTR
syn keyword xsMacro PERL_ARGS_ASSERT_TO_UNI_LOWER
syn keyword xsMacro PERL_ARGS_ASSERT_TO_UNI_TITLE
@@ -2296,13 +2577,13 @@ syn keyword xsMacro PERL_ARGS_ASSERT_UTF8_MG_LEN_CACHE_UPDATE
syn keyword xsMacro PERL_ARGS_ASSERT_UTF8_MG_POS_CACHE_UPDATE
syn keyword xsMacro PERL_ARGS_ASSERT_UTF8_TO_BYTES
syn keyword xsMacro PERL_ARGS_ASSERT_UTF8_TO_UVCHR
-syn keyword xsMacro PERL_ARGS_ASSERT_UTF8_TO_UVCHR_BUF
syn keyword xsMacro PERL_ARGS_ASSERT_UTF8_TO_UVUNI
syn keyword xsMacro PERL_ARGS_ASSERT_UTF8_TO_UVUNI_BUF
-syn keyword xsMacro PERL_ARGS_ASSERT_UTILIZE PERL_ARGS_ASSERT_UVCHR_TO_UTF8
-syn keyword xsMacro PERL_ARGS_ASSERT_UVCHR_TO_UTF8_FLAGS
+syn keyword xsMacro PERL_ARGS_ASSERT_UTILIZE
+syn keyword xsMacro PERL_ARGS_ASSERT_UVOFFUNI_TO_UTF8_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_UVUNI_TO_UTF8
syn keyword xsMacro PERL_ARGS_ASSERT_UVUNI_TO_UTF8_FLAGS
+syn keyword xsMacro PERL_ARGS_ASSERT_VALIDATE_PROTO
syn keyword xsMacro PERL_ARGS_ASSERT_VALIDATE_SUID
syn keyword xsMacro PERL_ARGS_ASSERT_VALID_UTF8_TO_UVCHR
syn keyword xsMacro PERL_ARGS_ASSERT_VALID_UTF8_TO_UVUNI
@@ -2320,33 +2601,40 @@ syn keyword xsMacro PERL_ARGS_ASSERT_WARN_NOCONTEXT PERL_ARGS_ASSERT_WARN_SV
syn keyword xsMacro PERL_ARGS_ASSERT_WATCH PERL_ARGS_ASSERT_WHICHSIG_PV
syn keyword xsMacro PERL_ARGS_ASSERT_WHICHSIG_PVN
syn keyword xsMacro PERL_ARGS_ASSERT_WHICHSIG_SV
+syn keyword xsMacro PERL_ARGS_ASSERT_WIN32_CROAK_NOT_IMPLEMENTED
syn keyword xsMacro PERL_ARGS_ASSERT_WITH_QUEUED_ERRORS
syn keyword xsMacro PERL_ARGS_ASSERT_WRAP_OP_CHECKER
syn keyword xsMacro PERL_ARGS_ASSERT_WRITE_TO_STDERR
-syn keyword xsMacro PERL_ARGS_ASSERT_XMLDUMP_ATTR
-syn keyword xsMacro PERL_ARGS_ASSERT_XMLDUMP_FORM
-syn keyword xsMacro PERL_ARGS_ASSERT_XMLDUMP_INDENT
-syn keyword xsMacro PERL_ARGS_ASSERT_XMLDUMP_PACKSUBS
-syn keyword xsMacro PERL_ARGS_ASSERT_XMLDUMP_PACKSUBS_PERL
-syn keyword xsMacro PERL_ARGS_ASSERT_XMLDUMP_SUB
-syn keyword xsMacro PERL_ARGS_ASSERT_XMLDUMP_SUB_PERL
-syn keyword xsMacro PERL_ARGS_ASSERT_XMLDUMP_VINDENT
-syn keyword xsMacro PERL_ARGS_ASSERT_XS_APIVERSION_BOOTCHECK
+syn keyword xsMacro PERL_ARGS_ASSERT_XS_HANDSHAKE
syn keyword xsMacro PERL_ARGS_ASSERT_XS_VERSION_BOOTCHECK
syn keyword xsMacro PERL_ARGS_ASSERT_YYERROR PERL_ARGS_ASSERT_YYERROR_PV
syn keyword xsMacro PERL_ARGS_ASSERT_YYERROR_PVN PERL_ARGS_ASSERT_YYWARN
syn keyword xsMacro PERL_ARGS_ASSERT__APPEND_RANGE_TO_INVLIST
syn keyword xsMacro PERL_ARGS_ASSERT__CORE_SWASH_INIT
+syn keyword xsMacro PERL_ARGS_ASSERT__GET_REGCLASS_NONBITMAP_DATA
+syn keyword xsMacro PERL_ARGS_ASSERT__GET_SWASH_INVLIST
syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_ARRAY_INIT
+syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_CONTAINS_CP
syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_CONTENTS
+syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_DUMP
syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_INTERSECTION_MAYBE_COMPLEMENT_2ND
syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_INVERT
-syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_INVERT_PROP
+syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_LEN
syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_POPULATE_SWATCH
+syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_SEARCH
syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_UNION_MAYBE_COMPLEMENT_2ND
-syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8_QUOTEMETA
-syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8__PERL_IDSTART
+syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8_CHAR_SLOW
+syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8_FOO
+syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8_IDCONT
+syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8_IDSTART
+syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8_MARK
+syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8_PERL_IDCONT
+syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8_PERL_IDSTART
+syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8_XIDCONT
+syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8_XIDSTART
+syn keyword xsMacro PERL_ARGS_ASSERT__MAKE_EXACTF_INVLIST
syn keyword xsMacro PERL_ARGS_ASSERT__NEW_INVLIST_C_ARRAY
+syn keyword xsMacro PERL_ARGS_ASSERT__SETUP_CANNED_INVLIST
syn keyword xsMacro PERL_ARGS_ASSERT__SWASH_INVERSION_HASH
syn keyword xsMacro PERL_ARGS_ASSERT__SWASH_TO_INVLIST
syn keyword xsMacro PERL_ARGS_ASSERT__TO_FOLD_LATIN1
@@ -2357,59 +2645,62 @@ syn keyword xsMacro PERL_ARGS_ASSERT__TO_UTF8_LOWER_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT__TO_UTF8_TITLE_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT__TO_UTF8_UPPER_FLAGS PERL_ASYNC_CHECK
syn keyword xsMacro PERL_BITFIELD16 PERL_BITFIELD32 PERL_BITFIELD8
-syn keyword xsMacro PERL_CALLCONV PERL_CHECK_INITED PERL_CKDEF PERL_DEB
-syn keyword xsMacro PERL_DEBUG PERL_DEBUG_PAD PERL_DEBUG_PAD_ZERO
+syn keyword xsMacro PERL_CALLCONV PERL_CALLCONV_NO_RET PERL_CHECK_INITED
+syn keyword xsMacro PERL_CKDEF PERL_DEB PERL_DEB2 PERL_DEBUG PERL_DEBUG_PAD
+syn keyword xsMacro PERL_DEBUG_PAD_ZERO PERL_DECIMAL_VERSION
syn keyword xsMacro PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION
-syn keyword xsMacro PERL_DONT_CREATE_GVSV
+syn keyword xsMacro PERL_DONT_CREATE_GVSV PERL_DRAND48_QUAD
syn keyword xsMacro PERL_ENABLE_EXPERIMENTAL_REGEX_OPTIMISATIONS
syn keyword xsMacro PERL_ENABLE_EXTENDED_TRIE_OPTIMISATION
syn keyword xsMacro PERL_ENABLE_POSITIVE_ASSERTION_STUDY
-syn keyword xsMacro PERL_ENABLE_TRIE_OPTIMISATION PERL_EXIT_DESTRUCT_END
-syn keyword xsMacro PERL_EXIT_EXPECTED PERL_EXPORT_C PERL_FILE_IS_ABSOLUTE
-syn keyword xsMacro PERL_FILTER_EXISTS PERL_FLUSHALL_FOR_CHILD PERL_FPU_INIT
-syn keyword xsMacro PERL_FPU_POST_EXEC PERL_FPU_PRE_EXEC PERL_FS_VERSION
-syn keyword xsMacro PERL_FS_VER_FMT PERL_GCC_BRACE_GROUPS_FORBIDDEN
-syn keyword xsMacro PERL_GET_CONTEXT PERL_GET_INTERP PERL_GET_THX
-syn keyword xsMacro PERL_GET_VARS PERL_GIT_UNPUSHED_COMMITS
-syn keyword xsMacro PERL_GLOBAL_STRUCT PERL_GPROF_MONCONTROL PERL_HASH
-syn keyword xsMacro PERL_HASH_INTERNAL PERL_HASH_INTERNAL_ PERL_HASH_SEED
-syn keyword xsMacro PERL_HV_ARRAY_ALLOC_BYTES PERL_IMPLICIT_CONTEXT
-syn keyword xsMacro PERL_INTERPRETER_SIZE_UPTO_MEMBER PERL_INT_MAX
-syn keyword xsMacro PERL_INT_MIN PERL_LOADMOD_DENY PERL_LOADMOD_IMPORT_OPS
-syn keyword xsMacro PERL_LOADMOD_NOIMPORT PERL_LONG_MAX PERL_LONG_MIN
-syn keyword xsMacro PERL_MALLOC_WRAP PERL_MG_UFUNC PERL_MY_SNPRINTF_GUARDED
-syn keyword xsMacro PERL_MY_VSNPRINTF_GUARDED PERL_NEED_MY_BETOH16
-syn keyword xsMacro PERL_NEED_MY_BETOH32 PERL_NEED_MY_BETOHI
-syn keyword xsMacro PERL_NEED_MY_BETOHL PERL_NEED_MY_BETOHS
-syn keyword xsMacro PERL_NEED_MY_HTOBE16 PERL_NEED_MY_HTOBE32
-syn keyword xsMacro PERL_NEED_MY_HTOBEI PERL_NEED_MY_HTOBEL
-syn keyword xsMacro PERL_NEED_MY_HTOBES PERL_NEED_MY_HTOLE16
-syn keyword xsMacro PERL_NEED_MY_HTOLE32 PERL_NEED_MY_HTOLEI
-syn keyword xsMacro PERL_NEED_MY_HTOLEL PERL_NEED_MY_HTOLES
-syn keyword xsMacro PERL_NEED_MY_LETOH16 PERL_NEED_MY_LETOH32
-syn keyword xsMacro PERL_NEED_MY_LETOHI PERL_NEED_MY_LETOHL
-syn keyword xsMacro PERL_NEED_MY_LETOHS PERL_NO_DEV_RANDOM PERL_OBJECT_THIS
-syn keyword xsMacro PERL_OBJECT_THIS_ PERL_PADSEQ_INTRO PERL_PATCHNUM
+syn keyword xsMacro PERL_ENABLE_TRIE_OPTIMISATION PERL_EXIT_ABORT
+syn keyword xsMacro PERL_EXIT_DESTRUCT_END PERL_EXIT_EXPECTED PERL_EXIT_WARN
+syn keyword xsMacro PERL_EXPORT_C PERL_FILE_IS_ABSOLUTE PERL_FILTER_EXISTS
+syn keyword xsMacro PERL_FLUSHALL_FOR_CHILD PERL_FPU_INIT PERL_FPU_POST_EXEC
+syn keyword xsMacro PERL_FPU_PRE_EXEC PERL_FS_VERSION PERL_FS_VER_FMT
+syn keyword xsMacro PERL_GCC_BRACE_GROUPS_FORBIDDEN PERL_GET_CONTEXT
+syn keyword xsMacro PERL_GET_INTERP PERL_GET_THX PERL_GET_VARS
+syn keyword xsMacro PERL_GIT_UNPUSHED_COMMITS PERL_GLOBAL_STRUCT
+syn keyword xsMacro PERL_GPROF_MONCONTROL PERL_HASH PERL_HASH_DEFAULT_HvMAX
+syn keyword xsMacro PERL_HASH_FUNC PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
+syn keyword xsMacro PERL_HASH_INTERNAL PERL_HASH_ITER_BUCKET
+syn keyword xsMacro PERL_HASH_RANDOMIZE_KEYS PERL_HASH_SEED
+syn keyword xsMacro PERL_HASH_SEED_BYTES PERL_HASH_WITH_SEED
+syn keyword xsMacro PERL_HV_ALLOC_AUX_SIZE PERL_HV_ARRAY_ALLOC_BYTES
+syn keyword xsMacro PERL_IMPLICIT_CONTEXT PERL_INTERPRETER_SIZE_UPTO_MEMBER
+syn keyword xsMacro PERL_INT_MAX PERL_INT_MIN PERL_LOADMOD_DENY
+syn keyword xsMacro PERL_LOADMOD_IMPORT_OPS PERL_LOADMOD_NOIMPORT
+syn keyword xsMacro PERL_LONG_MAX PERL_LONG_MIN PERL_MALLOC_WRAP
+syn keyword xsMacro PERL_MEMORY_DEBUG_HEADER_SIZE PERL_MG_UFUNC
+syn keyword xsMacro PERL_MY_SNPRINTF_GUARDED PERL_MY_SNPRINTF_POST_GUARD
+syn keyword xsMacro PERL_MY_VSNPRINTF_GUARDED PERL_MY_VSNPRINTF_POST_GUARD
+syn keyword xsMacro PERL_NEW_COPY_ON_WRITE PERL_NO_DEV_RANDOM
+syn keyword xsMacro PERL_OBJECT_THIS PERL_OBJECT_THIS_ PERL_PADNAME_MINIMAL
+syn keyword xsMacro PERL_PADSEQ_INTRO PERL_PATCHNUM PERL_POISON_EXPR
syn keyword xsMacro PERL_PPADDR_INITED PERL_PPDEF PERL_PRESERVE_IVUV
syn keyword xsMacro PERL_PRIeldbl PERL_PRIfldbl PERL_PRIgldbl
-syn keyword xsMacro PERL_PV_ESCAPE_ALL PERL_PV_ESCAPE_FIRSTCHAR
-syn keyword xsMacro PERL_PV_ESCAPE_NOBACKSLASH PERL_PV_ESCAPE_NOCLEAR
-syn keyword xsMacro PERL_PV_ESCAPE_NONASCII PERL_PV_ESCAPE_QUOTE
-syn keyword xsMacro PERL_PV_ESCAPE_RE PERL_PV_ESCAPE_UNI
+syn keyword xsMacro PERL_PV_ESCAPE_ALL PERL_PV_ESCAPE_DWIM
+syn keyword xsMacro PERL_PV_ESCAPE_FIRSTCHAR PERL_PV_ESCAPE_NOBACKSLASH
+syn keyword xsMacro PERL_PV_ESCAPE_NOCLEAR PERL_PV_ESCAPE_NONASCII
+syn keyword xsMacro PERL_PV_ESCAPE_QUOTE PERL_PV_ESCAPE_RE PERL_PV_ESCAPE_UNI
syn keyword xsMacro PERL_PV_ESCAPE_UNI_DETECT PERL_PV_PRETTY_DUMP
-syn keyword xsMacro PERL_PV_PRETTY_ELLIPSES PERL_PV_PRETTY_LTGT
-syn keyword xsMacro PERL_PV_PRETTY_NOCLEAR PERL_PV_PRETTY_QUOTE
-syn keyword xsMacro PERL_PV_PRETTY_REGPROP PERL_QUAD_MAX PERL_QUAD_MIN
-syn keyword xsMacro PERL_REENTR_API PERL_REGMATCH_SLAB_SLOTS PERL_REVISION
+syn keyword xsMacro PERL_PV_PRETTY_ELLIPSES PERL_PV_PRETTY_EXACTSIZE
+syn keyword xsMacro PERL_PV_PRETTY_LTGT PERL_PV_PRETTY_NOCLEAR
+syn keyword xsMacro PERL_PV_PRETTY_QUOTE PERL_PV_PRETTY_REGPROP PERL_QUAD_MAX
+syn keyword xsMacro PERL_QUAD_MIN PERL_REENTR_API PERL_REGMATCH_SLAB_SLOTS
+syn keyword xsMacro PERL_RELOCATABLE_INC PERL_REVISION PERL_SAWAMPERSAND
syn keyword xsMacro PERL_SCAN_ALLOW_UNDERSCORES PERL_SCAN_DISALLOW_PREFIX
syn keyword xsMacro PERL_SCAN_GREATER_THAN_UV_MAX PERL_SCAN_SILENT_ILLDIGIT
-syn keyword xsMacro PERL_SCAN_SILENT_NON_PORTABLE PERL_SCNfldbl
-syn keyword xsMacro PERL_SCRIPT_MODE PERL_SET_CONTEXT PERL_SET_INTERP
-syn keyword xsMacro PERL_SET_PHASE PERL_SET_THX PERL_SHORT_MAX PERL_SHORT_MIN
-syn keyword xsMacro PERL_SIGNALS_UNSAFE_FLAG PERL_STACK_OVERFLOW_CHECK
-syn keyword xsMacro PERL_STATIC_INLINE PERL_STRLEN_EXPAND_SHIFT
-syn keyword xsMacro PERL_STRLEN_ROUNDUP PERL_STRLEN_ROUNDUP_QUANTUM
-syn keyword xsMacro PERL_SUBVERSION PERL_SUB_DEPTH_WARN PERL_SYS_INIT
+syn keyword xsMacro PERL_SCAN_SILENT_NON_PORTABLE PERL_SCAN_TRAILING
+syn keyword xsMacro PERL_SCNfldbl PERL_SCRIPT_MODE PERL_SEEN_HV_FUNC_H
+syn keyword xsMacro PERL_SET_CONTEXT PERL_SET_INTERP PERL_SET_PHASE
+syn keyword xsMacro PERL_SET_THX PERL_SHORT_MAX PERL_SHORT_MIN
+syn keyword xsMacro PERL_SIGNALS_UNSAFE_FLAG PERL_SNPRINTF_CHECK
+syn keyword xsMacro PERL_STACK_OVERFLOW_CHECK PERL_STATIC_INLINE
+syn keyword xsMacro PERL_STATIC_INLINE_NO_RET PERL_STATIC_NO_RET
+syn keyword xsMacro PERL_STRLEN_EXPAND_SHIFT PERL_STRLEN_ROUNDUP
+syn keyword xsMacro PERL_STRLEN_ROUNDUP_QUANTUM PERL_SUBVERSION
+syn keyword xsMacro PERL_SUB_DEPTH_WARN PERL_SYS_FPU_INIT PERL_SYS_INIT
syn keyword xsMacro PERL_SYS_INIT3 PERL_SYS_INIT3_BODY PERL_SYS_INIT_BODY
syn keyword xsMacro PERL_SYS_TERM PERL_SYS_TERM_BODY PERL_TARGETARCH
syn keyword xsMacro PERL_UCHAR_MAX PERL_UCHAR_MIN PERL_UINT_MAX PERL_UINT_MIN
@@ -2427,49 +2718,47 @@ syn keyword xsMacro PERL_UNICODE_STD_FLAG PERL_UNICODE_UTF8CACHEASSERT
syn keyword xsMacro PERL_UNICODE_UTF8CACHEASSERT_FLAG
syn keyword xsMacro PERL_UNICODE_WIDESYSCALLS PERL_UNICODE_WIDESYSCALLS_FLAG
syn keyword xsMacro PERL_UNUSED_ARG PERL_UNUSED_CONTEXT PERL_UNUSED_DECL
-syn keyword xsMacro PERL_UNUSED_VAR PERL_UQUAD_MAX PERL_UQUAD_MIN
-syn keyword xsMacro PERL_USES_PL_PIDSTATUS PERL_USE_GCC_BRACE_GROUPS
-syn keyword xsMacro PERL_USHORT_MAX PERL_USHORT_MIN PERL_VERSION
-syn keyword xsMacro PERL_VERSION_STRING PERL_WAIT_FOR_CHILDREN
-syn keyword xsMacro PERL_WARNHOOK_FATAL PERL_WRITE_MSG_TO_CONSOLE
-syn keyword xsMacro PERL_XS_EXPORT_C PHASE_CHANGE_PROBE PHOSTNAME
-syn keyword xsMacro PIPESOCK_MODE PIPE_OPEN_MODE PLUGEXPR PLUGSTMT PLUS
-syn keyword xsMacro PL_ASCII PL_AboveLatin1 PL_Argv PL_Cmd PL_DBcv PL_DBgv
-syn keyword xsMacro PL_DBline PL_DBsignal PL_DBsingle PL_DBsub PL_DBtrace
-syn keyword xsMacro PL_Dir PL_Env PL_Gappctx PL_Gcheck PL_Gcheck_mutex
-syn keyword xsMacro PL_Gcsighandlerp PL_Gcurinterp PL_Gdo_undump
-syn keyword xsMacro PL_Gdollarzero_mutex PL_Gfold_locale PL_Ghints_mutex
-syn keyword xsMacro PL_Gkeyword_plugin PL_Gmalloc_mutex PL_Gmmap_page_size
-syn keyword xsMacro PL_Gmy_ctx_mutex PL_Gmy_cxt_index PL_Gop_mutex PL_Gop_seq
-syn keyword xsMacro PL_Gop_sequence PL_Gperlio_debug_fd PL_Gperlio_fd_refcnt
+syn keyword xsMacro PERL_UNUSED_RESULT PERL_UNUSED_VAR PERL_UQUAD_MAX
+syn keyword xsMacro PERL_UQUAD_MIN PERL_USES_PL_PIDSTATUS
+syn keyword xsMacro PERL_USE_GCC_BRACE_GROUPS PERL_USHORT_MAX PERL_USHORT_MIN
+syn keyword xsMacro PERL_VERSION PERL_VERSION_DECIMAL PERL_VERSION_GE
+syn keyword xsMacro PERL_VERSION_LT PERL_VERSION_STRING
+syn keyword xsMacro PERL_WAIT_FOR_CHILDREN PERL_WARNHOOK_FATAL
+syn keyword xsMacro PERL_WRITE_MSG_TO_CONSOLE PERL_XS_EXPORT_C
+syn keyword xsMacro PHASE_CHANGE_PROBE PHOSTNAME PIPESOCK_MODE PIPE_OPEN_MODE
+syn keyword xsMacro PLUGEXPR PLUGSTMT PLUS PL_AboveLatin1 PL_Argv PL_Cmd
+syn keyword xsMacro PL_DBcontrol PL_DBcv PL_DBgv PL_DBline PL_DBsignal
+syn keyword xsMacro PL_DBsignal_iv PL_DBsingle PL_DBsingle_iv PL_DBsub
+syn keyword xsMacro PL_DBtrace PL_DBtrace_iv PL_Dir PL_Env PL_GCB_invlist
+syn keyword xsMacro PL_Gappctx PL_Gcheck PL_Gcheck_mutex PL_Gcsighandlerp
+syn keyword xsMacro PL_Gcurinterp PL_Gdo_undump PL_Gdollarzero_mutex
+syn keyword xsMacro PL_Gfold_locale PL_Ghash_seed PL_Ghash_seed_set
+syn keyword xsMacro PL_Ghints_mutex PL_Gkeyword_plugin PL_Gmalloc_mutex
+syn keyword xsMacro PL_Gmmap_page_size PL_Gmy_ctx_mutex PL_Gmy_cxt_index
+syn keyword xsMacro PL_Gop_mutex PL_Gop_seq PL_Gop_sequence
+syn keyword xsMacro PL_Gperlio_debug_fd PL_Gperlio_fd_refcnt
syn keyword xsMacro PL_Gperlio_fd_refcnt_size PL_Gperlio_mutex PL_Gppaddr
syn keyword xsMacro PL_Gsh_path PL_Gsig_defaulting PL_Gsig_handlers_initted
syn keyword xsMacro PL_Gsig_ignoring PL_Gsig_trapped PL_Gsigfpe_saved
syn keyword xsMacro PL_Gsv_placeholder PL_Gthr_key PL_Gtimesbase
syn keyword xsMacro PL_Guse_safe_putenv PL_Gveto_cleanup PL_Gwatch_pvx
-syn keyword xsMacro PL_L1Cased PL_L1PosixAlnum PL_L1PosixAlpha
-syn keyword xsMacro PL_L1PosixGraph PL_L1PosixLower PL_L1PosixPrint
-syn keyword xsMacro PL_L1PosixPunct PL_L1PosixUpper PL_L1PosixWord PL_LIO
-syn keyword xsMacro PL_Latin1 PL_Mem PL_MemParse PL_MemShared
-syn keyword xsMacro PL_OP_SLAB_ALLOC PL_OpPtr PL_OpSlab PL_OpSpace
-syn keyword xsMacro PL_PerlSpace PL_PosixAlnum PL_PosixAlpha PL_PosixBlank
-syn keyword xsMacro PL_PosixCntrl PL_PosixDigit PL_PosixGraph PL_PosixLower
-syn keyword xsMacro PL_PosixPrint PL_PosixPunct PL_PosixSpace PL_PosixUpper
-syn keyword xsMacro PL_PosixWord PL_PosixXDigit PL_Proc PL_Sock PL_StdIO
-syn keyword xsMacro PL_Sv PL_VertSpace PL_XPerlSpace PL_XPosixBlank
-syn keyword xsMacro PL_XPosixCntrl PL_XPosixSpace PL_XPosixXDigit PL_Xpv
-syn keyword xsMacro PL_amagic_generation PL_an PL_apiversion PL_appctx
-syn keyword xsMacro PL_argvgv PL_argvout_stack PL_argvoutgv PL_basetime
-syn keyword xsMacro PL_beginav PL_beginav_save PL_blockhooks PL_body_arenas
-syn keyword xsMacro PL_body_roots PL_bodytarget PL_bostr PL_breakable_sub_gen
+syn keyword xsMacro PL_HASH_RAND_BITS_ENABLED PL_HasMultiCharFold PL_InBitmap
+syn keyword xsMacro PL_LIO PL_Latin1 PL_Mem PL_MemParse PL_MemShared
+syn keyword xsMacro PL_NonL1NonFinalFold PL_Posix_ptrs PL_Proc
+syn keyword xsMacro PL_RANDOM_STATE_TYPE PL_SB_invlist PL_Sock PL_StdIO PL_Sv
+syn keyword xsMacro PL_UpperLatin1 PL_WB_invlist PL_XPosix_ptrs PL_Xpv
+syn keyword xsMacro PL_amagic_generation PL_an PL_appctx PL_argvgv
+syn keyword xsMacro PL_argvout_stack PL_argvoutgv PL_basetime PL_beginav
+syn keyword xsMacro PL_beginav_save PL_blockhooks PL_body_arenas
+syn keyword xsMacro PL_body_roots PL_bodytarget PL_breakable_sub_gen
syn keyword xsMacro PL_check_mutex PL_checkav PL_checkav_save PL_chopset
syn keyword xsMacro PL_clocktick PL_collation_ix PL_collation_name
syn keyword xsMacro PL_collation_standard PL_collxfrm_base PL_collxfrm_mult
syn keyword xsMacro PL_colors PL_colorset PL_compcv PL_compiling PL_comppad
syn keyword xsMacro PL_comppad_name PL_comppad_name_fill
-syn keyword xsMacro PL_comppad_name_floor PL_cop_seqmax PL_cryptseen
-syn keyword xsMacro PL_cshlen PL_csighandlerp PL_curcop PL_curcopdb
-syn keyword xsMacro PL_curinterp PL_curpad PL_curpm PL_curstack
+syn keyword xsMacro PL_comppad_name_floor PL_constpadix PL_cop_seqmax
+syn keyword xsMacro PL_cryptseen PL_cshlen PL_csighandlerp PL_curcop
+syn keyword xsMacro PL_curcopdb PL_curinterp PL_curpad PL_curpm PL_curstack
syn keyword xsMacro PL_curstackinfo PL_curstash PL_curstname
syn keyword xsMacro PL_custom_op_descs PL_custom_op_names PL_custom_ops
syn keyword xsMacro PL_cv_has_eval PL_dbargs PL_debstash PL_debug
@@ -2482,133 +2771,139 @@ syn keyword xsMacro PL_dumpindent PL_e_script PL_efloatbuf PL_efloatsize
syn keyword xsMacro PL_encoding PL_endav PL_envgv PL_errgv PL_errors
syn keyword xsMacro PL_eval_root PL_eval_start PL_evalseq PL_exit_flags
syn keyword xsMacro PL_exitlist PL_exitlistlen PL_fdpid PL_filemode
-syn keyword xsMacro PL_firstgv PL_forkprocess PL_formfeed PL_formtarget
-syn keyword xsMacro PL_generation PL_gensym PL_glob_index PL_globalstash
-syn keyword xsMacro PL_globhook PL_hash_seed PL_hintgv PL_hints
-syn keyword xsMacro PL_hints_mutex PL_hv_fetch_ent_mh PL_in_clean_all
-syn keyword xsMacro PL_in_clean_objs PL_in_eval PL_in_load_module PL_incgv
+syn keyword xsMacro PL_firstgv PL_forkprocess PL_formtarget PL_generation
+syn keyword xsMacro PL_gensym PL_globalstash PL_globhook PL_hash_rand_bits
+syn keyword xsMacro PL_hash_rand_bits_enabled PL_hash_seed PL_hash_seed_set
+syn keyword xsMacro PL_hintgv PL_hints PL_hints_mutex PL_hv_fetch_ent_mh
+syn keyword xsMacro PL_in_clean_all PL_in_clean_objs PL_in_eval
+syn keyword xsMacro PL_in_load_module PL_in_utf8_CTYPE_locale PL_incgv
syn keyword xsMacro PL_initav PL_inplace PL_isarev PL_keyword_plugin
syn keyword xsMacro PL_known_layers PL_last_in_gv PL_last_swash_hv
syn keyword xsMacro PL_last_swash_key PL_last_swash_klen PL_last_swash_slen
syn keyword xsMacro PL_last_swash_tmps PL_lastfd PL_lastgotoprobe
-syn keyword xsMacro PL_laststatval PL_laststype PL_localizing PL_localpatches
-syn keyword xsMacro PL_lockhook PL_madskills PL_main_cv PL_main_root
+syn keyword xsMacro PL_laststatval PL_laststype PL_lex_encoding PL_localizing
+syn keyword xsMacro PL_localpatches PL_lockhook PL_main_cv PL_main_root
syn keyword xsMacro PL_main_start PL_mainstack PL_malloc_mutex PL_markstack
syn keyword xsMacro PL_markstack_max PL_markstack_ptr PL_max_intro_pending
syn keyword xsMacro PL_maxo PL_maxsysfd PL_memory_debug_header PL_mess_sv
syn keyword xsMacro PL_min_intro_pending PL_minus_E PL_minus_F PL_minus_a
syn keyword xsMacro PL_minus_c PL_minus_l PL_minus_n PL_minus_p
syn keyword xsMacro PL_mmap_page_size PL_modcount PL_modglobal
-syn keyword xsMacro PL_my_ctx_mutex PL_my_cxt_index PL_my_cxt_keys
-syn keyword xsMacro PL_my_cxt_list PL_my_cxt_size PL_nomemok PL_nrs
+syn keyword xsMacro PL_multideref_pc PL_my_ctx_mutex PL_my_cxt_index
+syn keyword xsMacro PL_my_cxt_keys PL_my_cxt_list PL_my_cxt_size PL_nomemok
syn keyword xsMacro PL_numeric_local PL_numeric_name PL_numeric_radix_sv
-syn keyword xsMacro PL_numeric_standard PL_ofsgv PL_oldname PL_op PL_op_mask
-syn keyword xsMacro PL_op_mutex PL_op_seq PL_op_sequence PL_opfreehook
-syn keyword xsMacro PL_opsave PL_origalen PL_origargc PL_origargv
-syn keyword xsMacro PL_origenviron PL_origfilename PL_ors_sv PL_osname
-syn keyword xsMacro PL_pad_reset_pending PL_padix PL_padix_floor PL_parser
-syn keyword xsMacro PL_patchlevel PL_peepp PL_perl_destruct_level PL_perldb
-syn keyword xsMacro PL_perlio PL_perlio_debug_fd PL_perlio_fd_refcnt
-syn keyword xsMacro PL_perlio_fd_refcnt_size PL_perlio_mutex PL_phase
-syn keyword xsMacro PL_pidstatus PL_preambleav PL_profiledata PL_psig_name
-syn keyword xsMacro PL_psig_pend PL_psig_ptr PL_ptr_table PL_reentrant_buffer
-syn keyword xsMacro PL_reentrant_retint PL_reg_curpm PL_reg_eval_set
-syn keyword xsMacro PL_reg_flags PL_reg_leftiter PL_reg_magic
-syn keyword xsMacro PL_reg_match_utf8 PL_reg_maxiter PL_reg_oldcurpm
-syn keyword xsMacro PL_reg_oldpos PL_reg_oldsaved PL_reg_oldsavedlen
-syn keyword xsMacro PL_reg_poscache PL_reg_poscache_size PL_reg_start_tmp
-syn keyword xsMacro PL_reg_start_tmpl PL_reg_starttry PL_reg_state
-syn keyword xsMacro PL_regdummy PL_regeol PL_regex_pad PL_regex_padav
-syn keyword xsMacro PL_reginput PL_reginterp_cnt PL_registered_mros
-syn keyword xsMacro PL_reglastcloseparen PL_reglastparen PL_regmatch_slab
-syn keyword xsMacro PL_regmatch_state PL_regoffs PL_regsize PL_rehash_seed
-syn keyword xsMacro PL_rehash_seed_set PL_replgv PL_restartjmpenv
-syn keyword xsMacro PL_restartop PL_rpeepp PL_rs PL_runops PL_savebegin
-syn keyword xsMacro PL_savestack PL_savestack_ix PL_savestack_max
+syn keyword xsMacro PL_numeric_standard PL_ofsgv PL_oldname PL_op
+syn keyword xsMacro PL_op_exec_cnt PL_op_mask PL_op_mutex PL_op_seq
+syn keyword xsMacro PL_op_sequence PL_opfreehook PL_origalen PL_origargc
+syn keyword xsMacro PL_origargv PL_origenviron PL_origfilename PL_ors_sv
+syn keyword xsMacro PL_osname PL_pad_reset_pending PL_padix PL_padix_floor
+syn keyword xsMacro PL_padlist_generation PL_padname_const PL_padname_undef
+syn keyword xsMacro PL_parser PL_patchlevel PL_peepp PL_perl_destruct_level
+syn keyword xsMacro PL_perldb PL_perlio PL_perlio_debug_fd
+syn keyword xsMacro PL_perlio_fd_refcnt PL_perlio_fd_refcnt_size
+syn keyword xsMacro PL_perlio_mutex PL_phase PL_pidstatus PL_preambleav
+syn keyword xsMacro PL_profiledata PL_psig_name PL_psig_pend PL_psig_ptr
+syn keyword xsMacro PL_ptr_table PL_random_state PL_reentrant_buffer
+syn keyword xsMacro PL_reentrant_retint PL_reg_curpm PL_regex_pad
+syn keyword xsMacro PL_regex_padav PL_registered_mros PL_regmatch_slab
+syn keyword xsMacro PL_regmatch_state PL_replgv PL_restartjmpenv PL_restartop
+syn keyword xsMacro PL_rpeepp PL_rs PL_runops PL_savebegin PL_savestack
+syn keyword xsMacro PL_savestack_ix PL_savestack_max PL_sawalias
syn keyword xsMacro PL_sawampersand PL_scopestack PL_scopestack_ix
syn keyword xsMacro PL_scopestack_max PL_scopestack_name PL_secondgv
syn keyword xsMacro PL_sharehook PL_sig_defaulting PL_sig_handlers_initted
syn keyword xsMacro PL_sig_ignoring PL_sig_pending PL_sig_trapped
syn keyword xsMacro PL_sigfpe_saved PL_sighandlerp PL_signalhook PL_signals
-syn keyword xsMacro PL_slab_count PL_slabs PL_sort_RealCmp PL_sortcop
-syn keyword xsMacro PL_sortstash PL_splitstr PL_srand_called PL_stack_base
-syn keyword xsMacro PL_stack_max PL_stack_sp PL_start_env PL_stashcache
-syn keyword xsMacro PL_statbuf PL_statcache PL_statgv PL_statname
-syn keyword xsMacro PL_statusvalue PL_statusvalue_posix PL_statusvalue_vms
-syn keyword xsMacro PL_stderrgv PL_stdingv PL_strtab PL_sub_generation
-syn keyword xsMacro PL_subline PL_subname PL_sv_arenaroot PL_sv_count
-syn keyword xsMacro PL_sv_no PL_sv_objcount PL_sv_placeholder PL_sv_root
-syn keyword xsMacro PL_sv_serial PL_sv_undef PL_sv_yes PL_sys_intern
-syn keyword xsMacro PL_taint_warn PL_tainted PL_tainting PL_thr_key
-syn keyword xsMacro PL_threadhook PL_timesbase PL_timesbuf PL_tmps_floor
-syn keyword xsMacro PL_tmps_ix PL_tmps_max PL_tmps_stack PL_top_env
-syn keyword xsMacro PL_toptarget PL_unicode PL_unitcheckav
+syn keyword xsMacro PL_sort_RealCmp PL_sortcop PL_sortstash PL_splitstr
+syn keyword xsMacro PL_srand_called PL_stack_base PL_stack_max PL_stack_sp
+syn keyword xsMacro PL_start_env PL_stashcache PL_stashpad PL_stashpadix
+syn keyword xsMacro PL_stashpadmax PL_statbuf PL_statcache PL_statgv
+syn keyword xsMacro PL_statname PL_statusvalue PL_statusvalue_posix
+syn keyword xsMacro PL_statusvalue_vms PL_stderrgv PL_stdingv PL_strtab
+syn keyword xsMacro PL_sub_generation PL_subline PL_subname PL_sv_arenaroot
+syn keyword xsMacro PL_sv_consts PL_sv_count PL_sv_no PL_sv_placeholder
+syn keyword xsMacro PL_sv_root PL_sv_serial PL_sv_undef PL_sv_yes
+syn keyword xsMacro PL_sys_intern PL_taint_warn PL_tainted PL_tainting
+syn keyword xsMacro PL_thr_key PL_threadhook PL_timesbase PL_timesbuf
+syn keyword xsMacro PL_tmps_floor PL_tmps_ix PL_tmps_max PL_tmps_stack
+syn keyword xsMacro PL_top_env PL_toptarget PL_unicode PL_unitcheckav
syn keyword xsMacro PL_unitcheckav_save PL_unlockhook PL_unsafe
-syn keyword xsMacro PL_use_safe_putenv PL_utf8_X_L PL_utf8_X_LV PL_utf8_X_LVT
-syn keyword xsMacro PL_utf8_X_LV_LVT_V PL_utf8_X_T PL_utf8_X_V
-syn keyword xsMacro PL_utf8_X_begin PL_utf8_X_extend PL_utf8_X_non_hangul
-syn keyword xsMacro PL_utf8_X_prepend PL_utf8_alnum PL_utf8_alpha
-syn keyword xsMacro PL_utf8_digit PL_utf8_foldable PL_utf8_foldclosures
-syn keyword xsMacro PL_utf8_graph PL_utf8_idcont PL_utf8_idstart
-syn keyword xsMacro PL_utf8_lower PL_utf8_mark PL_utf8_perl_idstart
-syn keyword xsMacro PL_utf8_print PL_utf8_punct PL_utf8_quotemeta
-syn keyword xsMacro PL_utf8_space PL_utf8_tofold PL_utf8_tolower
-syn keyword xsMacro PL_utf8_totitle PL_utf8_toupper PL_utf8_upper
-syn keyword xsMacro PL_utf8_xdigit PL_utf8_xidcont PL_utf8_xidstart
-syn keyword xsMacro PL_utf8cache PL_utf8locale PL_veto_cleanup PL_vtbl_amagic
-syn keyword xsMacro PL_vtbl_amagicelem PL_vtbl_arylen PL_vtbl_arylen_p
-syn keyword xsMacro PL_vtbl_backref PL_vtbl_bm PL_vtbl_collxfrm
-syn keyword xsMacro PL_vtbl_dbline PL_vtbl_defelem PL_vtbl_env
-syn keyword xsMacro PL_vtbl_envelem PL_vtbl_fm PL_vtbl_hints
-syn keyword xsMacro PL_vtbl_hintselem PL_vtbl_isa PL_vtbl_isaelem
-syn keyword xsMacro PL_vtbl_mglob PL_vtbl_nkeys PL_vtbl_ovrld PL_vtbl_pack
-syn keyword xsMacro PL_vtbl_packelem PL_vtbl_pos PL_vtbl_regdata
-syn keyword xsMacro PL_vtbl_regdatum PL_vtbl_regexp PL_vtbl_sigelem
-syn keyword xsMacro PL_vtbl_substr PL_vtbl_sv PL_vtbl_taint PL_vtbl_utf8
-syn keyword xsMacro PL_vtbl_uvar PL_vtbl_vec PL_vtbl_vstring PL_warnhook
-syn keyword xsMacro PL_watch_pvx PL_watchaddr PL_watchok PL_xmlfp PMFUNC
-syn keyword xsMacro PM_GETRE PM_SETRE PMf_BASE_SHIFT PMf_COMPILETIME
-syn keyword xsMacro PMf_CONST PMf_CONTINUE PMf_EVAL PMf_EXTENDED PMf_FOLD
-syn keyword xsMacro PMf_GLOBAL PMf_KEEP PMf_KEEPCOPY PMf_MAYBE_CONST
-syn keyword xsMacro PMf_MULTILINE PMf_NONDESTRUCT PMf_ONCE PMf_RETAINT
-syn keyword xsMacro PMf_SINGLELINE PMf_USED POPBLOCK POPEVAL POPFORMAT
+syn keyword xsMacro PL_use_safe_putenv PL_utf8_charname_begin
+syn keyword xsMacro PL_utf8_charname_continue PL_utf8_foldable
+syn keyword xsMacro PL_utf8_foldclosures PL_utf8_idcont PL_utf8_idstart
+syn keyword xsMacro PL_utf8_mark PL_utf8_perl_idcont PL_utf8_perl_idstart
+syn keyword xsMacro PL_utf8_swash_ptrs PL_utf8_tofold PL_utf8_tolower
+syn keyword xsMacro PL_utf8_totitle PL_utf8_toupper PL_utf8_xidcont
+syn keyword xsMacro PL_utf8_xidstart PL_utf8cache PL_utf8locale
+syn keyword xsMacro PL_veto_cleanup PL_vtbl_arylen PL_vtbl_arylen_p
+syn keyword xsMacro PL_vtbl_backref PL_vtbl_bm PL_vtbl_checkcall
+syn keyword xsMacro PL_vtbl_collxfrm PL_vtbl_dbline PL_vtbl_debugvar
+syn keyword xsMacro PL_vtbl_defelem PL_vtbl_env PL_vtbl_envelem PL_vtbl_fm
+syn keyword xsMacro PL_vtbl_hints PL_vtbl_hintselem PL_vtbl_isa
+syn keyword xsMacro PL_vtbl_isaelem PL_vtbl_lvref PL_vtbl_mglob PL_vtbl_nkeys
+syn keyword xsMacro PL_vtbl_ovrld PL_vtbl_pack PL_vtbl_packelem PL_vtbl_pos
+syn keyword xsMacro PL_vtbl_regdata PL_vtbl_regdatum PL_vtbl_regexp
+syn keyword xsMacro PL_vtbl_sigelem PL_vtbl_substr PL_vtbl_sv PL_vtbl_taint
+syn keyword xsMacro PL_vtbl_utf8 PL_vtbl_uvar PL_vtbl_vec PL_warn_locale
+syn keyword xsMacro PL_warnhook PL_watch_pvx PL_watchaddr PL_watchok
+syn keyword xsMacro PL_xsubfilename PMFUNC PM_GETRE PM_SETRE PMf_BASE_SHIFT
+syn keyword xsMacro PMf_CHARSET PMf_CODELIST_PRIVATE PMf_CONST PMf_CONTINUE
+syn keyword xsMacro PMf_EVAL PMf_EXTENDED PMf_EXTENDED_MORE PMf_FOLD
+syn keyword xsMacro PMf_GLOBAL PMf_HAS_CV PMf_IS_QR PMf_KEEP PMf_KEEPCOPY
+syn keyword xsMacro PMf_MULTILINE PMf_NOCAPTURE PMf_NONDESTRUCT PMf_ONCE
+syn keyword xsMacro PMf_RETAINT PMf_SINGLELINE PMf_SPLIT PMf_STRICT PMf_USED
+syn keyword xsMacro PMf_USE_RE_EVAL PNf PNfARG POPBLOCK POPEVAL POPFORMAT
syn keyword xsMacro POPLOOP POPMARK POPSTACK POPSTACK_TO POPSUB POPSUBST
syn keyword xsMacro POP_MULTICALL POP_SAVEARRAY POPi POPl POPn POPp POPpbytex
-syn keyword xsMacro POPpconstx POPpx POPq POPs POPu POPul POPuq POSTDEC
-syn keyword xsMacro POSTINC POWOP PP PREC_LOW PREDEC PREGf_CUTGROUP_SEEN
-syn keyword xsMacro PREGf_IMPLICIT PREGf_NAUGHTY PREGf_SKIP
-syn keyword xsMacro PREGf_VERBARG_SEEN PREINC PREVOPER PRINTF_FORMAT_NULL_OK
-syn keyword xsMacro PRIVATEREF PRIVLIB PRIVLIB_EXP PRIVSHIFT PROCSELFEXE_PATH
-syn keyword xsMacro PRUNE PSEUDO PTHREAD_ATFORK PTHREAD_ATTR_SETDETACHSTATE
+syn keyword xsMacro POPpconstx POPpx POPs POPu POPul POSIXA POSIXD POSIXL
+syn keyword xsMacro POSIXU POSIX_CC_COUNT POSIX_SWASH_COUNT POSTDEC POSTINC
+syn keyword xsMacro POSTJOIN POWOP PP PREC_LOW PREDEC PREGf_ANCH
+syn keyword xsMacro PREGf_ANCH_GPOS PREGf_ANCH_MBOL PREGf_ANCH_SBOL
+syn keyword xsMacro PREGf_CANY_SEEN PREGf_CUTGROUP_SEEN PREGf_GPOS_FLOAT
+syn keyword xsMacro PREGf_GPOS_SEEN PREGf_IMPLICIT PREGf_NAUGHTY PREGf_NOSCAN
+syn keyword xsMacro PREGf_SKIP PREGf_USE_RE_EVAL PREGf_VERBARG_SEEN PREINC
+syn keyword xsMacro PRESCAN_VERSION PREVOPER PRINTF_FORMAT_NULL_OK PRIVATEREF
+syn keyword xsMacro PRIVLIB PRIVLIB_EXP PRIVSHIFT PROCSELFEXE_PATH PRUNE
+syn keyword xsMacro PSEUDO PTHREAD_ATFORK PTHREAD_ATTR_SETDETACHSTATE
syn keyword xsMacro PTHREAD_CREATE PTHREAD_CREATE_JOINABLE
syn keyword xsMacro PTHREAD_GETSPECIFIC PTHREAD_GETSPECIFIC_INT PTR2IV PTR2NV
syn keyword xsMacro PTR2UV PTR2nat PTR2ul PTRSIZE PTRV PUSHBLOCK PUSHEVAL
syn keyword xsMacro PUSHFORMAT PUSHGIVEN PUSHLOOP_FOR PUSHLOOP_PLAIN PUSHMARK
syn keyword xsMacro PUSHSTACK PUSHSTACKi PUSHSUB PUSHSUBST PUSHSUB_BASE
-syn keyword xsMacro PUSHSUB_DB PUSHTARG PUSHWHEN PUSH_MULTICALL PUSHi
-syn keyword xsMacro PUSHmortal PUSHn PUSHp PUSHs PUSHu PUTBACK PWGECOS
-syn keyword xsMacro PWPASSWD Pause PeRl_CaTiFy PeRl_StGiFy PerlDir_chdir
-syn keyword xsMacro PerlDir_close PerlDir_mapA PerlDir_mapW PerlDir_mkdir
-syn keyword xsMacro PerlDir_open PerlDir_read PerlDir_rewind PerlDir_rmdir
-syn keyword xsMacro PerlDir_seek PerlDir_tell PerlEnv_ENVgetenv
-syn keyword xsMacro PerlEnv_ENVgetenv_len PerlEnv_clearenv
-syn keyword xsMacro PerlEnv_free_childdir PerlEnv_free_childenv
-syn keyword xsMacro PerlEnv_get_child_IO PerlEnv_get_childdir
-syn keyword xsMacro PerlEnv_get_childenv PerlEnv_getenv PerlEnv_getenv_len
-syn keyword xsMacro PerlEnv_lib_path PerlEnv_os_id PerlEnv_putenv
-syn keyword xsMacro PerlEnv_sitelib_path PerlEnv_uname PerlEnv_vendorlib_path
-syn keyword xsMacro PerlIOArg PerlIOBase PerlIONext PerlIOSelf PerlIOValid
-syn keyword xsMacro PerlIO_canset_cnt PerlIO_exportFILE PerlIO_fast_gets
-syn keyword xsMacro PerlIO_fdopen PerlIO_findFILE PerlIO_getc PerlIO_getname
+syn keyword xsMacro PUSHSUB_DB PUSHSUB_GET_LVALUE_MASK PUSHTARG PUSHWHEN
+syn keyword xsMacro PUSH_MULTICALL PUSH_MULTICALL_FLAGS PUSHi PUSHmortal
+syn keyword xsMacro PUSHn PUSHp PUSHs PUSHu PUTBACK PWGECOS PWPASSWD PadARRAY
+syn keyword xsMacro PadMAX PadlistARRAY PadlistMAX PadlistNAMES
+syn keyword xsMacro PadlistNAMESARRAY PadlistNAMESMAX PadlistREFCNT
+syn keyword xsMacro PadnameFLAGS PadnameIsOUR PadnameIsSTATE
+syn keyword xsMacro PadnameIsSTATE_on PadnameLEN PadnameLVALUE
+syn keyword xsMacro PadnameLVALUE_on PadnameOURSTASH PadnameOURSTASH_set
+syn keyword xsMacro PadnameOUTER PadnamePROTOCV PadnamePV PadnameREFCNT
+syn keyword xsMacro PadnameREFCNT_dec PadnameSV PadnameTYPE PadnameTYPE_set
+syn keyword xsMacro PadnameUTF8 PadnamelistARRAY PadnamelistMAX
+syn keyword xsMacro PadnamelistMAXNAMED PadnamelistREFCNT
+syn keyword xsMacro PadnamelistREFCNT_dec Pause PeRl_CaTiFy PeRl_INT64_C
+syn keyword xsMacro PeRl_StGiFy PeRl_UINT64_C PerlDir_chdir PerlDir_close
+syn keyword xsMacro PerlDir_mapA PerlDir_mapW PerlDir_mkdir PerlDir_open
+syn keyword xsMacro PerlDir_read PerlDir_rewind PerlDir_rmdir PerlDir_seek
+syn keyword xsMacro PerlDir_tell PerlEnv_ENVgetenv PerlEnv_ENVgetenv_len
+syn keyword xsMacro PerlEnv_clearenv PerlEnv_free_childdir
+syn keyword xsMacro PerlEnv_free_childenv PerlEnv_get_child_IO
+syn keyword xsMacro PerlEnv_get_childdir PerlEnv_get_childenv PerlEnv_getenv
+syn keyword xsMacro PerlEnv_getenv_len PerlEnv_lib_path PerlEnv_os_id
+syn keyword xsMacro PerlEnv_putenv PerlEnv_sitelib_path PerlEnv_uname
+syn keyword xsMacro PerlEnv_vendorlib_path PerlIOArg PerlIOBase PerlIONext
+syn keyword xsMacro PerlIOSelf PerlIOValid PerlIO_canset_cnt
+syn keyword xsMacro PerlIO_exportFILE PerlIO_fast_gets PerlIO_fdopen
+syn keyword xsMacro PerlIO_findFILE PerlIO_getc PerlIO_getname
syn keyword xsMacro PerlIO_has_base PerlIO_has_cntptr PerlIO_importFILE
syn keyword xsMacro PerlIO_isutf8 PerlIO_open PerlIO_printf PerlIO_putc
syn keyword xsMacro PerlIO_puts PerlIO_releaseFILE PerlIO_reopen
-syn keyword xsMacro PerlIO_rewind PerlIO_sprintf PerlIO_stdoutf
-syn keyword xsMacro PerlIO_tmpfile PerlIO_ungetc PerlIO_vprintf
-syn keyword xsMacro PerlLIO_access PerlLIO_chmod PerlLIO_chown PerlLIO_chsize
-syn keyword xsMacro PerlLIO_close PerlLIO_dup PerlLIO_dup2 PerlLIO_flock
-syn keyword xsMacro PerlLIO_fstat PerlLIO_ioctl PerlLIO_isatty PerlLIO_link
-syn keyword xsMacro PerlLIO_lseek PerlLIO_lstat PerlLIO_mkstemp
+syn keyword xsMacro PerlIO_rewind PerlIO_stdoutf PerlIO_tmpfile PerlIO_ungetc
+syn keyword xsMacro PerlIO_vprintf PerlLIO_access PerlLIO_chmod PerlLIO_chown
+syn keyword xsMacro PerlLIO_chsize PerlLIO_close PerlLIO_dup PerlLIO_dup2
+syn keyword xsMacro PerlLIO_flock PerlLIO_fstat PerlLIO_ioctl PerlLIO_isatty
+syn keyword xsMacro PerlLIO_link PerlLIO_lseek PerlLIO_lstat PerlLIO_mkstemp
syn keyword xsMacro PerlLIO_mktemp PerlLIO_open PerlLIO_open3 PerlLIO_read
syn keyword xsMacro PerlLIO_rename PerlLIO_setmode PerlLIO_stat
syn keyword xsMacro PerlLIO_tmpnam PerlLIO_umask PerlLIO_unlink PerlLIO_utime
@@ -2664,18 +2959,21 @@ syn keyword xsMacro PerlSock_recv PerlSock_recvfrom PerlSock_select
syn keyword xsMacro PerlSock_send PerlSock_sendto PerlSock_sethostent
syn keyword xsMacro PerlSock_setnetent PerlSock_setprotoent
syn keyword xsMacro PerlSock_setservent PerlSock_setsockopt PerlSock_shutdown
-syn keyword xsMacro PerlSock_socket PerlSock_socketpair Perl_assert
-syn keyword xsMacro Perl_atan2 Perl_atof Perl_atof2 Perl_ceil Perl_cos
-syn keyword xsMacro Perl_debug_log Perl_error_log Perl_exp Perl_floor
-syn keyword xsMacro Perl_fmod Perl_fp_class Perl_fp_class_denorm
-syn keyword xsMacro Perl_fp_class_inf Perl_fp_class_nan Perl_fp_class_ndenorm
-syn keyword xsMacro Perl_fp_class_ninf Perl_fp_class_nnorm Perl_fp_class_norm
+syn keyword xsMacro PerlSock_socket PerlSock_socketpair Perl_acos Perl_asin
+syn keyword xsMacro Perl_assert Perl_atan Perl_atan2 Perl_atof Perl_atof2
+syn keyword xsMacro Perl_ceil Perl_cos Perl_cosh Perl_custom_op_xop
+syn keyword xsMacro Perl_debug_log Perl_drand48 Perl_drand48_init
+syn keyword xsMacro Perl_error_log Perl_exp Perl_floor Perl_fmod
+syn keyword xsMacro Perl_fp_class_denorm Perl_fp_class_inf Perl_fp_class_nan
+syn keyword xsMacro Perl_fp_class_ndenorm Perl_fp_class_ninf
+syn keyword xsMacro Perl_fp_class_nnorm Perl_fp_class_norm
syn keyword xsMacro Perl_fp_class_nzero Perl_fp_class_pdenorm
syn keyword xsMacro Perl_fp_class_pinf Perl_fp_class_pnorm
syn keyword xsMacro Perl_fp_class_pzero Perl_fp_class_qnan Perl_fp_class_snan
-syn keyword xsMacro Perl_fp_class_zero Perl_frexp Perl_isfinite Perl_isinf
-syn keyword xsMacro Perl_isnan Perl_log Perl_malloc_good_size Perl_modf
-syn keyword xsMacro Perl_pow Perl_pp_accept Perl_pp_aelemfast_lex
+syn keyword xsMacro Perl_fp_class_zero Perl_free_c_backtrace Perl_frexp
+syn keyword xsMacro Perl_isfinite Perl_isfinitel Perl_isinf Perl_isnan
+syn keyword xsMacro Perl_ldexp Perl_log Perl_log10 Perl_malloc_good_size
+syn keyword xsMacro Perl_modf Perl_pow Perl_pp_accept Perl_pp_aelemfast_lex
syn keyword xsMacro Perl_pp_andassign Perl_pp_avalues Perl_pp_bind
syn keyword xsMacro Perl_pp_bit_xor Perl_pp_chmod Perl_pp_chomp
syn keyword xsMacro Perl_pp_connect Perl_pp_cos Perl_pp_custom
@@ -2701,53 +2999,52 @@ syn keyword xsMacro Perl_pp_kill Perl_pp_lcfirst Perl_pp_lineseq
syn keyword xsMacro Perl_pp_listen Perl_pp_localtime Perl_pp_log
syn keyword xsMacro Perl_pp_lstat Perl_pp_mapstart Perl_pp_msgctl
syn keyword xsMacro Perl_pp_msgget Perl_pp_msgrcv Perl_pp_msgsnd
-syn keyword xsMacro Perl_pp_orassign Perl_pp_padany Perl_pp_pop
-syn keyword xsMacro Perl_pp_postdec Perl_pp_predec Perl_pp_reach Perl_pp_read
-syn keyword xsMacro Perl_pp_recv Perl_pp_regcmaybe Perl_pp_rindex
-syn keyword xsMacro Perl_pp_rv2hv Perl_pp_rvalues Perl_pp_say Perl_pp_scalar
-syn keyword xsMacro Perl_pp_schomp Perl_pp_scope Perl_pp_seek Perl_pp_semop
-syn keyword xsMacro Perl_pp_send Perl_pp_sge Perl_pp_sgrent Perl_pp_sgt
-syn keyword xsMacro Perl_pp_shmctl Perl_pp_shmget Perl_pp_shmread
-syn keyword xsMacro Perl_pp_shutdown Perl_pp_slt Perl_pp_snetent
-syn keyword xsMacro Perl_pp_socket Perl_pp_sprotoent Perl_pp_spwent
-syn keyword xsMacro Perl_pp_sqrt Perl_pp_sservent Perl_pp_ssockopt
-syn keyword xsMacro Perl_pp_symlink Perl_pp_transr Perl_pp_unlink
-syn keyword xsMacro Perl_pp_utime Perl_pp_values Perl_safesysmalloc_size
-syn keyword xsMacro Perl_sharepvn Perl_signbit Perl_sin Perl_sqrt
-syn keyword xsMacro Perl_va_copy PmopSTASH PmopSTASHPV PmopSTASHPV_set
-syn keyword xsMacro PmopSTASH_flags PmopSTASH_flags_set PmopSTASH_free
-syn keyword xsMacro PmopSTASH_set Poison PoisonFree PoisonNew PoisonWith
-syn keyword xsMacro QR_PAT_MODS QUADKIND QUAD_IS_INT QUAD_IS_INT64_T
-syn keyword xsMacro QUAD_IS_LONG QUAD_IS_LONG_LONG QUAD_IS___INT64 QWLIST
-syn keyword xsMacro RANDBITS RANDOM_R_PROTO RD_NODATA READDIR64_R_PROTO
-syn keyword xsMacro READDIR_R_PROTO REENTRANT_PROTO_B_B REENTRANT_PROTO_B_BI
-syn keyword xsMacro REENTRANT_PROTO_B_BW REENTRANT_PROTO_B_CCD
-syn keyword xsMacro REENTRANT_PROTO_B_CCS REENTRANT_PROTO_B_IBI
-syn keyword xsMacro REENTRANT_PROTO_B_IBW REENTRANT_PROTO_B_SB
-syn keyword xsMacro REENTRANT_PROTO_B_SBI REENTRANT_PROTO_I_BI
-syn keyword xsMacro REENTRANT_PROTO_I_BW REENTRANT_PROTO_I_CCSBWR
-syn keyword xsMacro REENTRANT_PROTO_I_CCSD REENTRANT_PROTO_I_CII
-syn keyword xsMacro REENTRANT_PROTO_I_CIISD REENTRANT_PROTO_I_CSBI
-syn keyword xsMacro REENTRANT_PROTO_I_CSBIR REENTRANT_PROTO_I_CSBWR
-syn keyword xsMacro REENTRANT_PROTO_I_CSBWRE REENTRANT_PROTO_I_CSD
-syn keyword xsMacro REENTRANT_PROTO_I_CWISBWRE REENTRANT_PROTO_I_CWISD
-syn keyword xsMacro REENTRANT_PROTO_I_D REENTRANT_PROTO_I_H
-syn keyword xsMacro REENTRANT_PROTO_I_IBI REENTRANT_PROTO_I_IBW
-syn keyword xsMacro REENTRANT_PROTO_I_ICBI REENTRANT_PROTO_I_ICSBWR
-syn keyword xsMacro REENTRANT_PROTO_I_ICSD REENTRANT_PROTO_I_ID
-syn keyword xsMacro REENTRANT_PROTO_I_IISD REENTRANT_PROTO_I_ISBWR
-syn keyword xsMacro REENTRANT_PROTO_I_ISD REENTRANT_PROTO_I_LISBI
-syn keyword xsMacro REENTRANT_PROTO_I_LISD REENTRANT_PROTO_I_LS
+syn keyword xsMacro Perl_pp_nbit_xor Perl_pp_orassign Perl_pp_padany
+syn keyword xsMacro Perl_pp_pop Perl_pp_postdec Perl_pp_predec Perl_pp_reach
+syn keyword xsMacro Perl_pp_read Perl_pp_recv Perl_pp_regcmaybe
+syn keyword xsMacro Perl_pp_rindex Perl_pp_rv2hv Perl_pp_rvalues Perl_pp_say
+syn keyword xsMacro Perl_pp_sbit_xor Perl_pp_scalar Perl_pp_schomp
+syn keyword xsMacro Perl_pp_scope Perl_pp_seek Perl_pp_semop Perl_pp_send
+syn keyword xsMacro Perl_pp_sge Perl_pp_sgrent Perl_pp_sgt Perl_pp_shmctl
+syn keyword xsMacro Perl_pp_shmget Perl_pp_shmread Perl_pp_shutdown
+syn keyword xsMacro Perl_pp_slt Perl_pp_snetent Perl_pp_socket
+syn keyword xsMacro Perl_pp_sprotoent Perl_pp_spwent Perl_pp_sqrt
+syn keyword xsMacro Perl_pp_sservent Perl_pp_ssockopt Perl_pp_symlink
+syn keyword xsMacro Perl_pp_transr Perl_pp_unlink Perl_pp_utime
+syn keyword xsMacro Perl_pp_values Perl_safesysmalloc_size Perl_sharepvn
+syn keyword xsMacro Perl_signbit Perl_sin Perl_sinh Perl_sqrt Perl_strtod
+syn keyword xsMacro Perl_tan Perl_tanh Perl_va_copy PmopSTASH PmopSTASHPV
+syn keyword xsMacro PmopSTASHPV_set PmopSTASH_set Poison PoisonFree PoisonNew
+syn keyword xsMacro PoisonPADLIST PoisonWith QR_PAT_MODS QUADKIND QUAD_IS_INT
+syn keyword xsMacro QUAD_IS_INT64_T QUAD_IS_LONG QUAD_IS_LONG_LONG
+syn keyword xsMacro QUAD_IS___INT64 QUESTION_MARK_CTRL QWLIST RANDBITS
+syn keyword xsMacro RANDOM_R_PROTO RD_NODATA READDIR64_R_PROTO
+syn keyword xsMacro READDIR_R_PROTO READ_XDIGIT REENTRANT_PROTO_B_B
+syn keyword xsMacro REENTRANT_PROTO_B_BI REENTRANT_PROTO_B_BW
+syn keyword xsMacro REENTRANT_PROTO_B_CCD REENTRANT_PROTO_B_CCS
+syn keyword xsMacro REENTRANT_PROTO_B_IBI REENTRANT_PROTO_B_IBW
+syn keyword xsMacro REENTRANT_PROTO_B_SB REENTRANT_PROTO_B_SBI
+syn keyword xsMacro REENTRANT_PROTO_I_BI REENTRANT_PROTO_I_BW
+syn keyword xsMacro REENTRANT_PROTO_I_CCSBWR REENTRANT_PROTO_I_CCSD
+syn keyword xsMacro REENTRANT_PROTO_I_CII REENTRANT_PROTO_I_CIISD
+syn keyword xsMacro REENTRANT_PROTO_I_CSBI REENTRANT_PROTO_I_CSBIR
+syn keyword xsMacro REENTRANT_PROTO_I_CSBWR REENTRANT_PROTO_I_CSBWRE
+syn keyword xsMacro REENTRANT_PROTO_I_CSD REENTRANT_PROTO_I_CWISBWRE
+syn keyword xsMacro REENTRANT_PROTO_I_CWISD REENTRANT_PROTO_I_D
+syn keyword xsMacro REENTRANT_PROTO_I_H REENTRANT_PROTO_I_IBI
+syn keyword xsMacro REENTRANT_PROTO_I_IBW REENTRANT_PROTO_I_ICBI
+syn keyword xsMacro REENTRANT_PROTO_I_ICSBWR REENTRANT_PROTO_I_ICSD
+syn keyword xsMacro REENTRANT_PROTO_I_ID REENTRANT_PROTO_I_IISD
+syn keyword xsMacro REENTRANT_PROTO_I_ISBWR REENTRANT_PROTO_I_ISD
+syn keyword xsMacro REENTRANT_PROTO_I_LISBI REENTRANT_PROTO_I_LISD
syn keyword xsMacro REENTRANT_PROTO_I_SB REENTRANT_PROTO_I_SBI
syn keyword xsMacro REENTRANT_PROTO_I_SBIE REENTRANT_PROTO_I_SBIH
syn keyword xsMacro REENTRANT_PROTO_I_SBIR REENTRANT_PROTO_I_SBWR
syn keyword xsMacro REENTRANT_PROTO_I_SBWRE REENTRANT_PROTO_I_SD
-syn keyword xsMacro REENTRANT_PROTO_I_ST REENTRANT_PROTO_I_St
syn keyword xsMacro REENTRANT_PROTO_I_TISD REENTRANT_PROTO_I_TS
syn keyword xsMacro REENTRANT_PROTO_I_TSBI REENTRANT_PROTO_I_TSBIR
syn keyword xsMacro REENTRANT_PROTO_I_TSBWR REENTRANT_PROTO_I_TSR
syn keyword xsMacro REENTRANT_PROTO_I_TsISBWRE REENTRANT_PROTO_I_UISBWRE
-syn keyword xsMacro REENTRANT_PROTO_I_iS REENTRANT_PROTO_I_lS
syn keyword xsMacro REENTRANT_PROTO_I_uISBWRE REENTRANT_PROTO_S_CBI
syn keyword xsMacro REENTRANT_PROTO_S_CCSBI REENTRANT_PROTO_S_CIISBIE
syn keyword xsMacro REENTRANT_PROTO_S_CSBI REENTRANT_PROTO_S_CSBIE
@@ -2762,160 +3059,201 @@ syn keyword xsMacro REENTRANT_PROTO_V_ID REENTR_H REENTR_MEMZERO REF
syn keyword xsMacro REFCOUNTED_HE_EXISTS REFCOUNTED_HE_KEY_UTF8 REFF REFFA
syn keyword xsMacro REFFL REFFU REFGEN REF_HE_KEY REGMATCH_STATE_MAX
syn keyword xsMacro REGNODE_MAX REGNODE_SIMPLE REGNODE_VARIES REG_ANY
-syn keyword xsMacro REG_INFTY REG_MAGIC REG_SEEN_CANY REG_SEEN_CUTGROUP
-syn keyword xsMacro REG_SEEN_EVAL REG_SEEN_EXACTF_SHARP_S REG_SEEN_GPOS
-syn keyword xsMacro REG_SEEN_LOOKBEHIND REG_SEEN_RECURSE
-syn keyword xsMacro REG_SEEN_RUN_ON_COMMENT REG_SEEN_SANY REG_SEEN_VERBARG
-syn keyword xsMacro REG_SEEN_ZERO_LEN REG_TOP_LEVEL_BRANCHES RELOP RENUM
-syn keyword xsMacro REQUIRE RESTORE_ERRNO RESTORE_NUMERIC_LOCAL
+syn keyword xsMacro REG_CANY_SEEN REG_CUTGROUP_SEEN REG_EXTFLAGS_NAME_SIZE
+syn keyword xsMacro REG_GOSTART_SEEN REG_GPOS_SEEN REG_INFTY
+syn keyword xsMacro REG_INTFLAGS_NAME_SIZE REG_LOOKBEHIND_SEEN REG_MAGIC
+syn keyword xsMacro REG_RECURSE_SEEN REG_RUN_ON_COMMENT_SEEN
+syn keyword xsMacro REG_TOP_LEVEL_BRANCHES_SEEN REG_UNBOUNDED_QUANTIFIER_SEEN
+syn keyword xsMacro REG_UNFOLDED_MULTI_SEEN REG_VERBARG_SEEN
+syn keyword xsMacro REG_ZERO_LEN_SEEN RELOP RENUM REQUIRE RESTORE_ERRNO
+syn keyword xsMacro RESTORE_LC_NUMERIC RESTORE_LC_NUMERIC_STANDARD
+syn keyword xsMacro RESTORE_LC_NUMERIC_UNDERLYING RESTORE_NUMERIC_LOCAL
syn keyword xsMacro RESTORE_NUMERIC_STANDARD RETPUSHNO RETPUSHUNDEF
-syn keyword xsMacro RETPUSHYES RETSETNO RETSETUNDEF RETSETYES RETURN RETURNOP
-syn keyword xsMacro RETURNX RETURN_PROBE REXEC_CHECKED REXEC_COPY_STR
-syn keyword xsMacro REXEC_IGNOREPOS REXEC_NOT_FIRST REXEC_SCREAM
-syn keyword xsMacro RE_DEBUG_COMPILE_DUMP RE_DEBUG_COMPILE_FLAGS
+syn keyword xsMacro RETPUSHYES RETSETNO RETSETTARG RETSETUNDEF RETSETYES
+syn keyword xsMacro RETURN RETURNOP RETURNX RETURN_PROBE REXEC_CHECKED
+syn keyword xsMacro REXEC_COPY_SKIP_POST REXEC_COPY_SKIP_PRE REXEC_COPY_STR
+syn keyword xsMacro REXEC_FAIL_ON_UNDERFLOW REXEC_IGNOREPOS REXEC_NOT_FIRST
+syn keyword xsMacro REXEC_SCREAM RE_DEBUG_COMPILE_DUMP RE_DEBUG_COMPILE_FLAGS
syn keyword xsMacro RE_DEBUG_COMPILE_MASK RE_DEBUG_COMPILE_OPTIMISE
-syn keyword xsMacro RE_DEBUG_COMPILE_PARSE RE_DEBUG_COMPILE_TRIE
-syn keyword xsMacro RE_DEBUG_EXECUTE_INTUIT RE_DEBUG_EXECUTE_MASK
-syn keyword xsMacro RE_DEBUG_EXECUTE_MATCH RE_DEBUG_EXECUTE_TRIE
-syn keyword xsMacro RE_DEBUG_EXTRA_BUFFERS RE_DEBUG_EXTRA_GPOS
-syn keyword xsMacro RE_DEBUG_EXTRA_MASK RE_DEBUG_EXTRA_OFFDEBUG
-syn keyword xsMacro RE_DEBUG_EXTRA_OFFSETS RE_DEBUG_EXTRA_OPTIMISE
-syn keyword xsMacro RE_DEBUG_EXTRA_STACK RE_DEBUG_EXTRA_STATE
-syn keyword xsMacro RE_DEBUG_EXTRA_TRIE RE_DEBUG_FLAG RE_DEBUG_FLAGS
-syn keyword xsMacro RE_PV_COLOR_DECL RE_PV_QUOTED_DECL RE_SV_DUMPLEN
-syn keyword xsMacro RE_SV_ESCAPE RE_SV_TAIL RE_TRACK_PATTERN_OFFSETS
-syn keyword xsMacro RE_TRIE_MAXBUF_INIT RE_TRIE_MAXBUF_NAME RMS_DIR RMS_FAC
-syn keyword xsMacro RMS_FEX RMS_FNF RMS_IFI RMS_ISI RMS_PRV RUNOPS_DEFAULT
-syn keyword xsMacro RV2CVOPCV_MARK_EARLY RV2CVOPCV_RETURN_NAME_GV
-syn keyword xsMacro RX_ANCHORED_SUBSTR RX_ANCHORED_UTF8 RX_BUFF_IDX_FULLMATCH
+syn keyword xsMacro RE_DEBUG_COMPILE_PARSE RE_DEBUG_COMPILE_TEST
+syn keyword xsMacro RE_DEBUG_COMPILE_TRIE RE_DEBUG_EXECUTE_INTUIT
+syn keyword xsMacro RE_DEBUG_EXECUTE_MASK RE_DEBUG_EXECUTE_MATCH
+syn keyword xsMacro RE_DEBUG_EXECUTE_TRIE RE_DEBUG_EXTRA_BUFFERS
+syn keyword xsMacro RE_DEBUG_EXTRA_GPOS RE_DEBUG_EXTRA_MASK
+syn keyword xsMacro RE_DEBUG_EXTRA_OFFDEBUG RE_DEBUG_EXTRA_OFFSETS
+syn keyword xsMacro RE_DEBUG_EXTRA_OPTIMISE RE_DEBUG_EXTRA_STACK
+syn keyword xsMacro RE_DEBUG_EXTRA_STATE RE_DEBUG_EXTRA_TRIE RE_DEBUG_FLAG
+syn keyword xsMacro RE_DEBUG_FLAGS RE_PV_COLOR_DECL RE_PV_QUOTED_DECL
+syn keyword xsMacro RE_SV_DUMPLEN RE_SV_ESCAPE RE_SV_TAIL
+syn keyword xsMacro RE_TRACK_PATTERN_OFFSETS RE_TRIE_MAXBUF_INIT
+syn keyword xsMacro RE_TRIE_MAXBUF_NAME RMS_DIR RMS_FAC RMS_FEX RMS_FNF
+syn keyword xsMacro RMS_IFI RMS_ISI RMS_PRV ROTL32 ROTL64 ROTL_UV
+syn keyword xsMacro RUNOPS_DEFAULT RV2CVOPCV_FLAG_MASK RV2CVOPCV_MARK_EARLY
+syn keyword xsMacro RV2CVOPCV_MAYBE_NAME_GV RV2CVOPCV_RETURN_NAME_GV
+syn keyword xsMacro RV2CVOPCV_RETURN_STUB RX_ANCHORED_SUBSTR RX_ANCHORED_UTF8
+syn keyword xsMacro RX_BUFF_IDX_CARET_FULLMATCH RX_BUFF_IDX_CARET_POSTMATCH
+syn keyword xsMacro RX_BUFF_IDX_CARET_PREMATCH RX_BUFF_IDX_FULLMATCH
syn keyword xsMacro RX_BUFF_IDX_POSTMATCH RX_BUFF_IDX_PREMATCH
-syn keyword xsMacro RX_CHECK_SUBSTR RX_ENGINE RX_EXTFLAGS RX_FLOAT_SUBSTR
-syn keyword xsMacro RX_FLOAT_UTF8 RX_GOFS RX_HAS_CUTGROUP RX_LASTCLOSEPAREN
-syn keyword xsMacro RX_LASTPAREN RX_MATCH_COPIED RX_MATCH_COPIED_off
-syn keyword xsMacro RX_MATCH_COPIED_on RX_MATCH_COPIED_set RX_MATCH_COPY_FREE
-syn keyword xsMacro RX_MATCH_TAINTED RX_MATCH_TAINTED_off RX_MATCH_TAINTED_on
+syn keyword xsMacro RX_CHECK_SUBSTR RX_COMPFLAGS RX_ENGINE RX_EXTFLAGS
+syn keyword xsMacro RX_FLOAT_SUBSTR RX_FLOAT_UTF8 RX_GOFS RX_HAS_CUTGROUP
+syn keyword xsMacro RX_INTFLAGS RX_ISTAINTED RX_LASTCLOSEPAREN RX_LASTPAREN
+syn keyword xsMacro RX_MATCH_COPIED RX_MATCH_COPIED_off RX_MATCH_COPIED_on
+syn keyword xsMacro RX_MATCH_COPIED_set RX_MATCH_COPY_FREE RX_MATCH_TAINTED
+syn keyword xsMacro RX_MATCH_TAINTED_off RX_MATCH_TAINTED_on
syn keyword xsMacro RX_MATCH_TAINTED_set RX_MATCH_UTF8 RX_MATCH_UTF8_off
syn keyword xsMacro RX_MATCH_UTF8_on RX_MATCH_UTF8_set RX_MINLEN RX_MINLENRET
syn keyword xsMacro RX_NPARENS RX_OFFS RX_PRECOMP RX_PRECOMP_const RX_PRELEN
-syn keyword xsMacro RX_REFCNT RX_SAVED_COPY RX_SEEN_EVALS RX_SUBBEG RX_SUBLEN
-syn keyword xsMacro RX_UTF8 RX_WRAPLEN RX_WRAPPED RX_WRAPPED_const RXapif_ALL
-syn keyword xsMacro RXapif_CLEAR RXapif_DELETE RXapif_EXISTS RXapif_FETCH
-syn keyword xsMacro RXapif_FIRSTKEY RXapif_NEXTKEY RXapif_ONE RXapif_REGNAME
-syn keyword xsMacro RXapif_REGNAMES RXapif_REGNAMES_COUNT RXapif_SCALAR
-syn keyword xsMacro RXapif_STORE RXf_ANCH RXf_ANCH_BOL RXf_ANCH_GPOS
-syn keyword xsMacro RXf_ANCH_MBOL RXf_ANCH_SBOL RXf_ANCH_SINGLE
-syn keyword xsMacro RXf_BASE_SHIFT RXf_CANY_SEEN RXf_CHECK_ALL RXf_COPY_DONE
-syn keyword xsMacro RXf_EVAL_SEEN RXf_GPOS_CHECK RXf_GPOS_FLOAT RXf_GPOS_SEEN
-syn keyword xsMacro RXf_INTUIT_TAIL RXf_LOOKBEHIND_SEEN RXf_MATCH_UTF8
-syn keyword xsMacro RXf_NOSCAN RXf_NULL RXf_PMf_CHARSET RXf_PMf_COMPILETIME
-syn keyword xsMacro RXf_PMf_EXTENDED RXf_PMf_FOLD RXf_PMf_KEEPCOPY
-syn keyword xsMacro RXf_PMf_MULTILINE RXf_PMf_SINGLELINE RXf_PMf_STD_PMMOD
-syn keyword xsMacro RXf_PMf_STD_PMMOD_SHIFT RXf_SKIPWHITE RXf_SPLIT
-syn keyword xsMacro RXf_START_ONLY RXf_TAINTED RXf_TAINTED_SEEN
-syn keyword xsMacro RXf_USE_INTUIT RXf_USE_INTUIT_ML RXf_USE_INTUIT_NOML
-syn keyword xsMacro RXf_WHITE RXi_GET RXi_GET_DECL RXi_SET RXp_EXTFLAGS
-syn keyword xsMacro RXp_MATCH_COPIED RXp_MATCH_COPIED_off RXp_MATCH_COPIED_on
-syn keyword xsMacro RXp_MATCH_TAINTED RXp_MATCH_UTF8 RXp_PAREN_NAMES
+syn keyword xsMacro RX_REFCNT RX_SAVED_COPY RX_SUBBEG RX_SUBCOFFSET RX_SUBLEN
+syn keyword xsMacro RX_SUBOFFSET RX_TAINT_on RX_UTF8 RX_WRAPLEN RX_WRAPPED
+syn keyword xsMacro RX_WRAPPED_const RX_ZERO_LEN RXapif_ALL RXapif_CLEAR
+syn keyword xsMacro RXapif_DELETE RXapif_EXISTS RXapif_FETCH RXapif_FIRSTKEY
+syn keyword xsMacro RXapif_NEXTKEY RXapif_ONE RXapif_REGNAME RXapif_REGNAMES
+syn keyword xsMacro RXapif_REGNAMES_COUNT RXapif_SCALAR RXapif_STORE
+syn keyword xsMacro RXf_BASE_SHIFT RXf_CHECK_ALL RXf_COPY_DONE RXf_EVAL_SEEN
+syn keyword xsMacro RXf_INTUIT_TAIL RXf_IS_ANCHORED RXf_MATCH_UTF8
+syn keyword xsMacro RXf_NO_INPLACE_SUBST RXf_NULL RXf_PMf_CHARSET
+syn keyword xsMacro RXf_PMf_COMPILETIME RXf_PMf_EXTENDED
+syn keyword xsMacro RXf_PMf_EXTENDED_MORE RXf_PMf_FLAGCOPYMASK RXf_PMf_FOLD
+syn keyword xsMacro RXf_PMf_KEEPCOPY RXf_PMf_MULTILINE RXf_PMf_NOCAPTURE
+syn keyword xsMacro RXf_PMf_SINGLELINE RXf_PMf_SPLIT RXf_PMf_STD_PMMOD
+syn keyword xsMacro RXf_PMf_STD_PMMOD_SHIFT RXf_PMf_STRICT RXf_SKIPWHITE
+syn keyword xsMacro RXf_SPLIT RXf_START_ONLY RXf_TAINTED RXf_TAINTED_SEEN
+syn keyword xsMacro RXf_UNBOUNDED_QUANTIFIER_SEEN RXf_USE_INTUIT
+syn keyword xsMacro RXf_USE_INTUIT_ML RXf_USE_INTUIT_NOML RXf_WHITE RXi_GET
+syn keyword xsMacro RXi_GET_DECL RXi_SET RXp_COMPFLAGS RXp_EXTFLAGS
+syn keyword xsMacro RXp_INTFLAGS RXp_MATCH_COPIED RXp_MATCH_COPIED_off
+syn keyword xsMacro RXp_MATCH_COPIED_on RXp_MATCH_TAINTED
+syn keyword xsMacro RXp_MATCH_TAINTED_on RXp_MATCH_UTF8 RXp_PAREN_NAMES ReANY
syn keyword xsMacro ReREFCNT_dec ReREFCNT_inc Renew Renewc RsPARA RsRECORD
syn keyword xsMacro RsSIMPLE RsSNARF SAFE_TRIE_NODENUM SANY SAVEADELETE
syn keyword xsMacro SAVEBOOL SAVECLEARSV SAVECOMPILEWARNINGS SAVECOMPPAD
-syn keyword xsMacro SAVECOPFILE SAVECOPFILE_FREE SAVECOPLINE SAVECOPSTASH
+syn keyword xsMacro SAVECOPFILE SAVECOPFILE_FREE SAVECOPLINE
syn keyword xsMacro SAVECOPSTASH_FREE SAVEDELETE SAVEDESTRUCTOR
-syn keyword xsMacro SAVEDESTRUCTOR_X SAVEFREECOPHH SAVEFREEOP SAVEFREEPV
-syn keyword xsMacro SAVEFREESV SAVEGENERICPV SAVEGENERICSV SAVEHDELETE
-syn keyword xsMacro SAVEHINTS SAVEI16 SAVEI32 SAVEI8 SAVEINT SAVEIV SAVELONG
-syn keyword xsMacro SAVEMORTALIZESV SAVEOP SAVEPADSVANDMORTALIZE SAVEPARSER
-syn keyword xsMacro SAVEPPTR SAVESETSVFLAGS SAVESHAREDPV SAVESPTR
-syn keyword xsMacro SAVESTACK_ALLOC_FOR_RE_SAVE_STATE SAVESTACK_CXPOS
-syn keyword xsMacro SAVESTACK_POS SAVESWITCHSTACK SAVETMPS SAVEVPTR
-syn keyword xsMacro SAVE_DEFSV SAVE_ERRNO SAVE_MASK SAVE_TIGHT_SHIFT
-syn keyword xsMacro SAVEf_KEEPOLDELEM SAVEf_SETMAGIC SAVEt_ADELETE
-syn keyword xsMacro SAVEt_AELEM SAVEt_ALLOC SAVEt_APTR SAVEt_AV SAVEt_BOOL
-syn keyword xsMacro SAVEt_CLEARSV SAVEt_COMPILE_WARNINGS SAVEt_COMPPAD
-syn keyword xsMacro SAVEt_DELETE SAVEt_DESTRUCTOR SAVEt_DESTRUCTOR_X
-syn keyword xsMacro SAVEt_FREECOPHH SAVEt_FREEOP SAVEt_FREEPV SAVEt_FREESV
+syn keyword xsMacro SAVEDESTRUCTOR_X SAVEFREECOPHH SAVEFREEOP SAVEFREEPADNAME
+syn keyword xsMacro SAVEFREEPV SAVEFREESV SAVEGENERICPV SAVEGENERICSV
+syn keyword xsMacro SAVEHDELETE SAVEHINTS SAVEI16 SAVEI32 SAVEI8 SAVEINT
+syn keyword xsMacro SAVEIV SAVELONG SAVEMORTALIZESV SAVEOP
+syn keyword xsMacro SAVEPADSVANDMORTALIZE SAVEPARSER SAVEPPTR SAVESETSVFLAGS
+syn keyword xsMacro SAVESHAREDPV SAVESPTR SAVESTACK_POS SAVESWITCHSTACK
+syn keyword xsMacro SAVETMPS SAVEVPTR SAVE_DEFSV SAVE_ERRNO SAVE_MASK
+syn keyword xsMacro SAVE_TIGHT_SHIFT SAVEf_KEEPOLDELEM SAVEf_SETMAGIC
+syn keyword xsMacro SAVEt_ADELETE SAVEt_AELEM SAVEt_ALLOC SAVEt_APTR
+syn keyword xsMacro SAVEt_ARG0_MAX SAVEt_ARG1_MAX SAVEt_ARG2_MAX SAVEt_AV
+syn keyword xsMacro SAVEt_BOOL SAVEt_CLEARPADRANGE SAVEt_CLEARSV
+syn keyword xsMacro SAVEt_COMPILE_WARNINGS SAVEt_COMPPAD SAVEt_DELETE
+syn keyword xsMacro SAVEt_DESTRUCTOR SAVEt_DESTRUCTOR_X SAVEt_FREECOPHH
+syn keyword xsMacro SAVEt_FREEOP SAVEt_FREEPADNAME SAVEt_FREEPV SAVEt_FREESV
syn keyword xsMacro SAVEt_GENERIC_PVREF SAVEt_GENERIC_SVREF SAVEt_GP
-syn keyword xsMacro SAVEt_GVSV SAVEt_HELEM SAVEt_HINTS SAVEt_HPTR SAVEt_HV
-syn keyword xsMacro SAVEt_I16 SAVEt_I32 SAVEt_I32_SMALL SAVEt_I8 SAVEt_INT
-syn keyword xsMacro SAVEt_INT_SMALL SAVEt_ITEM SAVEt_IV SAVEt_LONG
-syn keyword xsMacro SAVEt_MORTALIZESV SAVEt_NSTAB SAVEt_OP
-syn keyword xsMacro SAVEt_PADSV_AND_MORTALIZE SAVEt_PARSER SAVEt_PPTR
-syn keyword xsMacro SAVEt_REGCONTEXT SAVEt_RE_STATE SAVEt_SAVESWITCHSTACK
-syn keyword xsMacro SAVEt_SET_SVFLAGS SAVEt_SHARED_PVREF SAVEt_SPTR
-syn keyword xsMacro SAVEt_STACK_CXPOS SAVEt_STACK_POS SAVEt_SV SAVEt_SVREF
-syn keyword xsMacro SAVEt_VPTR SBOL SCAN_DEF SCAN_REPL SCAN_TR SCHEDULE
-syn keyword xsMacro SCHED_YIELD SCOPE_SAVES_SIGNAL_MASK SEEK_CUR SEEK_END
-syn keyword xsMacro SEEK_SET SELECT_MIN_BITS SEOL SETERRNO SETGRENT_R_PROTO
-syn keyword xsMacro SETHOSTENT_R_PROTO SETLOCALE_R_PROTO SETNETENT_R_PROTO
-syn keyword xsMacro SETPROTOENT_R_PROTO SETPWENT_R_PROTO SETSERVENT_R_PROTO
-syn keyword xsMacro SETTARG SET_MARK_OFFSET SET_NUMERIC_LOCAL
-syn keyword xsMacro SET_NUMERIC_STANDARD SET_THR SET_THREAD_SELF SETi SETn
-syn keyword xsMacro SETp SETs SETsv SETsvUN SETu SHARP_S_SKIP SHIFTOP
-syn keyword xsMacro SHORTSIZE SH_PATH SIGABRT SIGILL SIG_NAME SIG_NUM
-syn keyword xsMacro SIG_SIZE SINGLE_PAT_MOD SITEARCH SITEARCH_EXP SITELIB
-syn keyword xsMacro SITELIB_EXP SITELIB_STEM SIZE_ALIGN SIZE_ONLY SKIP
-syn keyword xsMacro SKIP_next SKIP_next_fail SLOPPYDIVIDE SOCKET_OPEN_MODE
-syn keyword xsMacro SPACE SPACEA SPACEL SPACEU SPAGAIN SPRINTF_RETURNS_STRLEN
-syn keyword xsMacro SRAND48_R_PROTO SRANDOM_R_PROTO SSCHECK SSGROW SSNEW
-syn keyword xsMacro SSNEWa SSNEWat SSNEWt SSPOPBOOL SSPOPDPTR SSPOPDXPTR
-syn keyword xsMacro SSPOPINT SSPOPIV SSPOPLONG SSPOPPTR SSPOPUV SSPTR SSPTRt
+syn keyword xsMacro SAVEt_GP_ALIASED_SV SAVEt_GVSLOT SAVEt_GVSV SAVEt_HELEM
+syn keyword xsMacro SAVEt_HINTS SAVEt_HPTR SAVEt_HV SAVEt_I16 SAVEt_I32
+syn keyword xsMacro SAVEt_I32_SMALL SAVEt_I8 SAVEt_INT SAVEt_INT_SMALL
+syn keyword xsMacro SAVEt_ITEM SAVEt_IV SAVEt_LONG SAVEt_MORTALIZESV
+syn keyword xsMacro SAVEt_NSTAB SAVEt_OP SAVEt_PADSV_AND_MORTALIZE
+syn keyword xsMacro SAVEt_PARSER SAVEt_PPTR SAVEt_READONLY_OFF
+syn keyword xsMacro SAVEt_REGCONTEXT SAVEt_SAVESWITCHSTACK SAVEt_SET_SVFLAGS
+syn keyword xsMacro SAVEt_SHARED_PVREF SAVEt_SPTR SAVEt_STACK_POS
+syn keyword xsMacro SAVEt_STRLEN SAVEt_SV SAVEt_SVREF SAVEt_VPTR
+syn keyword xsMacro SAWAMPERSAND_LEFT SAWAMPERSAND_MIDDLE SAWAMPERSAND_RIGHT
+syn keyword xsMacro SBOL SB_ENUM_COUNT SCAN_DEF SCAN_REPL SCAN_TR
+syn keyword xsMacro SCAN_VERSION SCHED_YIELD SCOPE_SAVES_SIGNAL_MASK SEEK_CUR
+syn keyword xsMacro SEEK_END SEEK_SET SELECT_MIN_BITS SEOL SETERRNO
+syn keyword xsMacro SETGRENT_R_PROTO SETHOSTENT_R_PROTO SETLOCALE_R_PROTO
+syn keyword xsMacro SETNETENT_R_PROTO SETPROTOENT_R_PROTO SETPWENT_R_PROTO
+syn keyword xsMacro SETSERVENT_R_PROTO SETTARG SET_MARK_OFFSET
+syn keyword xsMacro SET_NUMERIC_LOCAL SET_NUMERIC_STANDARD
+syn keyword xsMacro SET_NUMERIC_UNDERLYING SET_THR SET_THREAD_SELF SETi SETn
+syn keyword xsMacro SETp SETs SETu SHARP_S_SKIP SHIFTOP SHORTSIZE SH_PATH
+syn keyword xsMacro SIGABRT SIGILL SIG_NAME SIG_NUM SIG_SIZE SINGLE_PAT_MOD
+syn keyword xsMacro SIPROUND SITEARCH SITEARCH_EXP SITELIB SITELIB_EXP
+syn keyword xsMacro SITELIB_STEM SIZE_ALIGN SIZE_ONLY SKIP SKIP_next
+syn keyword xsMacro SKIP_next_fail SLOPPYDIVIDE SOCKET_OPEN_MODE SPAGAIN
+syn keyword xsMacro SPRINTF_RETURNS_STRLEN SRAND48_R_PROTO SRANDOM_R_PROTO
+syn keyword xsMacro SSCHECK SSC_MATCHES_EMPTY_STRING SSGROW SSNEW SSNEWa
+syn keyword xsMacro SSNEWat SSNEWt SSPOPBOOL SSPOPDPTR SSPOPDXPTR SSPOPINT
+syn keyword xsMacro SSPOPIV SSPOPLONG SSPOPPTR SSPOPUV SSPTR SSPTRt
syn keyword xsMacro SSPUSHBOOL SSPUSHDPTR SSPUSHDXPTR SSPUSHINT SSPUSHIV
-syn keyword xsMacro SSPUSHLONG SSPUSHPTR SSPUSHUV SS_ACCVIO SS_DEVOFFLINE
-syn keyword xsMacro SS_IVCHAN SS_NORMAL ST STANDARD_C STAR STARTPERL
-syn keyword xsMacro START_EXTERN_C START_MY_CXT STATIC STATUS_ALL_FAILURE
-syn keyword xsMacro STATUS_ALL_SUCCESS STATUS_CURRENT STATUS_EXIT
-syn keyword xsMacro STATUS_EXIT_SET STATUS_NATIVE STATUS_NATIVE_CHILD_SET
-syn keyword xsMacro STATUS_UNIX STATUS_UNIX_EXIT_SET STATUS_UNIX_SET STDCHAR
-syn keyword xsMacro STDIO_PTR_LVALUE STDIO_PTR_LVAL_SETS_CNT
-syn keyword xsMacro STDIO_STREAM_ARRAY STD_PAT_MODS STD_PMMOD_FLAGS_CLEAR
-syn keyword xsMacro STMT_END STMT_START STORE_NUMERIC_LOCAL_SET_STANDARD
+syn keyword xsMacro SSPUSHLONG SSPUSHPTR SSPUSHUV SS_ACCVIO SS_ADD_BOOL
+syn keyword xsMacro SS_ADD_DPTR SS_ADD_DXPTR SS_ADD_END SS_ADD_INT SS_ADD_IV
+syn keyword xsMacro SS_ADD_LONG SS_ADD_PTR SS_ADD_UV SS_BUFFEROVF
+syn keyword xsMacro SS_DEVOFFLINE SS_IVCHAN SS_MAXPUSH SS_NOPRIV SS_NORMAL
+syn keyword xsMacro SSize_t_MAX ST STANDARD_C STAR STARTPERL START_EXTERN_C
+syn keyword xsMacro START_MY_CXT STATIC STATIC_ASSERT_1 STATIC_ASSERT_2
+syn keyword xsMacro STATIC_ASSERT_GLOBAL STATIC_ASSERT_STMT
+syn keyword xsMacro STATUS_ALL_FAILURE STATUS_ALL_SUCCESS STATUS_CURRENT
+syn keyword xsMacro STATUS_EXIT STATUS_EXIT_SET STATUS_NATIVE
+syn keyword xsMacro STATUS_NATIVE_CHILD_SET STATUS_UNIX STATUS_UNIX_EXIT_SET
+syn keyword xsMacro STATUS_UNIX_SET STDCHAR STDIO_STREAM_ARRAY STD_PAT_MODS
+syn keyword xsMacro STD_PMMOD_FLAGS_CLEAR STD_PMMOD_FLAGS_PARSE_X_WARN
+syn keyword xsMacro STMT_END STMT_START STORE_LC_NUMERIC_FORCE_TO_UNDERLYING
+syn keyword xsMacro STORE_LC_NUMERIC_SET_TO_NEEDED
+syn keyword xsMacro STORE_LC_NUMERIC_STANDARD_SET_UNDERLYING
+syn keyword xsMacro STORE_LC_NUMERIC_UNDERLYING_SET_STANDARD
+syn keyword xsMacro STORE_NUMERIC_LOCAL_SET_STANDARD
+syn keyword xsMacro STORE_NUMERIC_STANDARD_FORCE_LOCAL
syn keyword xsMacro STORE_NUMERIC_STANDARD_SET_LOCAL STRERROR_R_PROTO STRING
syn keyword xsMacro STRINGIFY STRUCT_OFFSET STRUCT_SV STR_LEN STR_SZ
syn keyword xsMacro STR_WITH_LEN ST_INO_SIGN ST_INO_SIZE SUB
syn keyword xsMacro SUBST_TAINT_BOOLRET SUBST_TAINT_PAT SUBST_TAINT_REPL
syn keyword xsMacro SUBST_TAINT_RETAINT SUBST_TAINT_STR SUBVERSION SUCCEED
syn keyword xsMacro SUSPEND SVTYPEMASK SV_CATBYTES SV_CATUTF8
-syn keyword xsMacro SV_CHECK_THINKFIRST SV_CHECK_THINKFIRST_COW_DROP
-syn keyword xsMacro SV_CONST_RETURN SV_COW_DROP_PV SV_COW_OTHER_PVS
+syn keyword xsMacro SV_CHECK_THINKFIRST SV_CHECK_THINKFIRST_COW_DROP SV_CONST
+syn keyword xsMacro SV_CONSTS_COUNT SV_CONST_BINMODE SV_CONST_CLEAR
+syn keyword xsMacro SV_CONST_CLOSE SV_CONST_DELETE SV_CONST_DESTROY
+syn keyword xsMacro SV_CONST_EOF SV_CONST_EXISTS SV_CONST_EXTEND
+syn keyword xsMacro SV_CONST_FETCH SV_CONST_FETCHSIZE SV_CONST_FILENO
+syn keyword xsMacro SV_CONST_FIRSTKEY SV_CONST_GETC SV_CONST_NEXTKEY
+syn keyword xsMacro SV_CONST_OPEN SV_CONST_POP SV_CONST_PRINT SV_CONST_PRINTF
+syn keyword xsMacro SV_CONST_PUSH SV_CONST_READ SV_CONST_READLINE
+syn keyword xsMacro SV_CONST_RETURN SV_CONST_SCALAR SV_CONST_SEEK
+syn keyword xsMacro SV_CONST_SHIFT SV_CONST_SPLICE SV_CONST_STORE
+syn keyword xsMacro SV_CONST_STORESIZE SV_CONST_TELL SV_CONST_TIEARRAY
+syn keyword xsMacro SV_CONST_TIEHANDLE SV_CONST_TIEHASH SV_CONST_TIESCALAR
+syn keyword xsMacro SV_CONST_UNSHIFT SV_CONST_UNTIE SV_CONST_WRITE
+syn keyword xsMacro SV_COW_DROP_PV SV_COW_OTHER_PVS SV_COW_REFCNT_MAX
syn keyword xsMacro SV_COW_SHARED_HASH_KEYS SV_DO_COW_SVSETSV
syn keyword xsMacro SV_FORCE_UTF8_UPGRADE SV_GMAGIC SV_HAS_TRAILING_NUL
syn keyword xsMacro SV_IMMEDIATE_UNREF SV_MUTABLE_RETURN SV_NOSTEAL
syn keyword xsMacro SV_SAVED_COPY SV_SKIP_OVERLOAD SV_SMAGIC
syn keyword xsMacro SV_UNDEF_RETURNS_NULL SV_UTF8_NO_ENCODING SVrepl_EVAL
-syn keyword xsMacro SVt_MASK SWITCHSTACK SYMBIAN SYSTEM_GMTIME_MAX
+syn keyword xsMacro SVt_FIRST SVt_MASK SWITCHSTACK SYMBIAN SYSTEM_GMTIME_MAX
syn keyword xsMacro SYSTEM_GMTIME_MIN SYSTEM_LOCALTIME_MAX
syn keyword xsMacro SYSTEM_LOCALTIME_MIN S_IEXEC S_IFIFO S_IFMT S_IREAD
syn keyword xsMacro S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISBLK
syn keyword xsMacro S_ISCHR S_ISDIR S_ISFIFO S_ISGID S_ISLNK S_ISREG S_ISSOCK
syn keyword xsMacro S_ISUID S_IWGRP S_IWOTH S_IWRITE S_IWUSR S_IXGRP S_IXOTH
syn keyword xsMacro S_IXUSR S_PAT_MODS Safefree Semctl Sigjmp_buf Siglongjmp
-syn keyword xsMacro Sigsetjmp Size_t_size StGiFy StashHANDLER Stat Strerror
-syn keyword xsMacro Strtol Strtoul StructCopy SvAMAGIC SvAMAGIC_off
-syn keyword xsMacro SvAMAGIC_on SvANY SvCANEXISTDELETE SvCOMPILED
-syn keyword xsMacro SvCOMPILED_off SvCOMPILED_on SvCUR SvCUR_set
-syn keyword xsMacro SvDESTROYABLE SvEND SvEND_set SvENDx SvEVALED
-syn keyword xsMacro SvEVALED_off SvEVALED_on SvFAKE SvFAKE_off SvFAKE_on
-syn keyword xsMacro SvFLAGS SvGAMAGIC SvGETMAGIC SvGMAGICAL SvGMAGICAL_off
-syn keyword xsMacro SvGMAGICAL_on SvGROW SvGROW_mutable SvIMMORTAL SvIOK
-syn keyword xsMacro SvIOK_UV SvIOK_notUV SvIOK_off SvIOK_on SvIOK_only
+syn keyword xsMacro Sigsetjmp Size_t_MAX Size_t_size StGiFy StashHANDLER Stat
+syn keyword xsMacro Strerror Strtol Strtoul StructCopy SvAMAGIC SvANY
+syn keyword xsMacro SvCANCOW SvCANEXISTDELETE SvCOMPILED SvCOMPILED_off
+syn keyword xsMacro SvCOMPILED_on SvCUR SvCUR_set SvDESTROYABLE SvEND
+syn keyword xsMacro SvEND_set SvENDx SvEVALED SvEVALED_off SvEVALED_on SvFAKE
+syn keyword xsMacro SvFAKE_off SvFAKE_on SvFLAGS SvGAMAGIC SvGETMAGIC SvGID
+syn keyword xsMacro SvGMAGICAL SvGMAGICAL_off SvGMAGICAL_on SvGROW
+syn keyword xsMacro SvGROW_mutable SvIMMORTAL SvIOK SvIOK_UV SvIOK_nog
+syn keyword xsMacro SvIOK_nogthink SvIOK_notUV SvIOK_off SvIOK_on SvIOK_only
syn keyword xsMacro SvIOK_only_UV SvIOKp SvIOKp_on SvIS_FREED SvIV SvIVX
syn keyword xsMacro SvIVXx SvIV_nomg SvIV_please SvIV_please_nomg SvIV_set
-syn keyword xsMacro SvIVx SvIsCOW SvIsCOW_normal SvIsCOW_shared_hash SvIsUV
-syn keyword xsMacro SvIsUV_off SvIsUV_on SvLEN SvLEN_set SvLENx SvLOCK
-syn keyword xsMacro SvMAGIC SvMAGICAL SvMAGICAL_off SvMAGICAL_on SvMAGIC_set
-syn keyword xsMacro SvNIOK SvNIOK_off SvNIOKp SvNOK SvNOK_off SvNOK_on
-syn keyword xsMacro SvNOK_only SvNOKp SvNOKp_on SvNV SvNVX SvNVXx SvNV_nomg
-syn keyword xsMacro SvNV_set SvNVx SvOBJECT SvOBJECT_off SvOBJECT_on SvOK
-syn keyword xsMacro SvOK_off SvOK_off_exc_UV SvOKp SvOOK SvOOK_off
-syn keyword xsMacro SvOOK_offset SvOOK_on SvOURSTASH SvOURSTASH_set SvPADMY
-syn keyword xsMacro SvPADMY_on SvPADSTALE SvPADSTALE_off SvPADSTALE_on
-syn keyword xsMacro SvPADTMP SvPADTMP_off SvPADTMP_on SvPAD_OUR SvPAD_OUR_on
+syn keyword xsMacro SvIVx SvIsCOW SvIsCOW_normal SvIsCOW_off SvIsCOW_on
+syn keyword xsMacro SvIsCOW_shared_hash SvIsUV SvIsUV_off SvIsUV_on SvLEN
+syn keyword xsMacro SvLEN_set SvLENx SvLOCK SvMAGIC SvMAGICAL SvMAGICAL_off
+syn keyword xsMacro SvMAGICAL_on SvMAGIC_set SvNIOK SvNIOK_nog
+syn keyword xsMacro SvNIOK_nogthink SvNIOK_off SvNIOKp SvNOK SvNOK_nog
+syn keyword xsMacro SvNOK_nogthink SvNOK_off SvNOK_on SvNOK_only SvNOKp
+syn keyword xsMacro SvNOKp_on SvNV SvNVX SvNVXx SvNV_nomg SvNV_set SvNVx
+syn keyword xsMacro SvOBJECT SvOBJECT_off SvOBJECT_on SvOK SvOK_off
+syn keyword xsMacro SvOK_off_exc_UV SvOKp SvOOK SvOOK_off SvOOK_offset
+syn keyword xsMacro SvOOK_on SvOURSTASH SvOURSTASH_set SvPADMY SvPADMY_on
+syn keyword xsMacro SvPADSTALE SvPADSTALE_off SvPADSTALE_on SvPADTMP
+syn keyword xsMacro SvPADTMP_off SvPADTMP_on SvPAD_OUR SvPAD_OUR_on
syn keyword xsMacro SvPAD_STATE SvPAD_STATE_on SvPAD_TYPED SvPAD_TYPED_on
syn keyword xsMacro SvPCS_IMPORTED SvPCS_IMPORTED_off SvPCS_IMPORTED_on
-syn keyword xsMacro SvPEEK SvPOK SvPOK_off SvPOK_on SvPOK_only
-syn keyword xsMacro SvPOK_only_UTF8 SvPOKp SvPOKp_on SvPV SvPVX SvPVX_const
-syn keyword xsMacro SvPVX_mutable SvPVXx SvPV_const SvPV_flags
-syn keyword xsMacro SvPV_flags_const SvPV_flags_const_nolen
+syn keyword xsMacro SvPEEK SvPOK SvPOK_byte_nog SvPOK_byte_nogthink
+syn keyword xsMacro SvPOK_byte_pure_nogthink SvPOK_nog SvPOK_nogthink
+syn keyword xsMacro SvPOK_off SvPOK_on SvPOK_only SvPOK_only_UTF8
+syn keyword xsMacro SvPOK_pure_nogthink SvPOK_utf8_nog SvPOK_utf8_nogthink
+syn keyword xsMacro SvPOK_utf8_pure_nogthink SvPOKp SvPOKp_on SvPV SvPVX
+syn keyword xsMacro SvPVX_const SvPVX_mutable SvPVXtrue SvPVXx SvPV_const
+syn keyword xsMacro SvPV_flags SvPV_flags_const SvPV_flags_const_nolen
syn keyword xsMacro SvPV_flags_mutable SvPV_force SvPV_force_flags
syn keyword xsMacro SvPV_force_flags_mutable SvPV_force_flags_nolen
syn keyword xsMacro SvPV_force_mutable SvPV_force_nolen SvPV_force_nomg
@@ -2927,44 +3265,49 @@ syn keyword xsMacro SvPVbytex SvPVbytex_force SvPVbytex_nolen SvPVutf8
syn keyword xsMacro SvPVutf8_force SvPVutf8_nolen SvPVutf8x SvPVutf8x_force
syn keyword xsMacro SvPVx SvPVx_const SvPVx_force SvPVx_nolen
syn keyword xsMacro SvPVx_nolen_const SvREADONLY SvREADONLY_off SvREADONLY_on
-syn keyword xsMacro SvREFCNT SvREFCNT_dec SvREFCNT_inc SvREFCNT_inc_NN
-syn keyword xsMacro SvREFCNT_inc_simple SvREFCNT_inc_simple_NN
-syn keyword xsMacro SvREFCNT_inc_simple_void SvREFCNT_inc_simple_void_NN
-syn keyword xsMacro SvREFCNT_inc_void SvREFCNT_inc_void_NN SvRELEASE_IVX
-syn keyword xsMacro SvRELEASE_IVX_ SvRMAGICAL SvRMAGICAL_off SvRMAGICAL_on
-syn keyword xsMacro SvROK SvROK_off SvROK_on SvRV SvRV_const SvRV_set SvRVx
-syn keyword xsMacro SvRX SvRXOK SvSCREAM SvSCREAM_off SvSCREAM_on SvSETMAGIC
-syn keyword xsMacro SvSHARE SvSHARED_HASH SvSHARED_HEK_FROM_PV SvSMAGICAL
+syn keyword xsMacro SvREFCNT SvREFCNT_IMMORTAL SvREFCNT_dec SvREFCNT_dec_NN
+syn keyword xsMacro SvREFCNT_inc SvREFCNT_inc_NN SvREFCNT_inc_simple
+syn keyword xsMacro SvREFCNT_inc_simple_NN SvREFCNT_inc_simple_void
+syn keyword xsMacro SvREFCNT_inc_simple_void_NN SvREFCNT_inc_void
+syn keyword xsMacro SvREFCNT_inc_void_NN SvRELEASE_IVX SvRELEASE_IVX_
+syn keyword xsMacro SvRMAGICAL SvRMAGICAL_off SvRMAGICAL_on SvROK SvROK_off
+syn keyword xsMacro SvROK_on SvRV SvRV_const SvRV_set SvRVx SvRX SvRXOK
+syn keyword xsMacro SvSCREAM SvSCREAM_off SvSCREAM_on SvSETMAGIC SvSHARE
+syn keyword xsMacro SvSHARED_HASH SvSHARED_HEK_FROM_PV SvSMAGICAL
syn keyword xsMacro SvSMAGICAL_off SvSMAGICAL_on SvSTASH SvSTASH_set
syn keyword xsMacro SvSetMagicSV SvSetMagicSV_nosteal SvSetSV SvSetSV_and
syn keyword xsMacro SvSetSV_nosteal SvSetSV_nosteal_and SvTAIL SvTAIL_off
syn keyword xsMacro SvTAIL_on SvTAINT SvTAINTED SvTAINTED_off SvTAINTED_on
syn keyword xsMacro SvTEMP SvTEMP_off SvTEMP_on SvTHINKFIRST SvTIED_mg
-syn keyword xsMacro SvTIED_obj SvTRUE SvTRUE_nomg SvTRUEx SvTYPE SvUNLOCK
-syn keyword xsMacro SvUOK SvUPGRADE SvUTF8 SvUTF8_off SvUTF8_on SvUV SvUVX
-syn keyword xsMacro SvUVXx SvUV_nomg SvUV_set SvUVx SvVALID SvVALID_off
-syn keyword xsMacro SvVALID_on SvVOK SvVSTRING_mg SvWEAKREF SvWEAKREF_off
-syn keyword xsMacro SvWEAKREF_on Sv_Grow TAIL TAINT TAINT_ENV TAINT_IF
-syn keyword xsMacro TAINT_NOT TAINT_PROPER THING THR THREAD_CREATE
+syn keyword xsMacro SvTIED_obj SvTRUE SvTRUE_NN SvTRUE_common SvTRUE_nomg
+syn keyword xsMacro SvTRUE_nomg_NN SvTRUEx SvTRUEx_nomg SvTYPE SvUID SvUNLOCK
+syn keyword xsMacro SvUOK SvUOK_nog SvUOK_nogthink SvUPGRADE SvUTF8
+syn keyword xsMacro SvUTF8_off SvUTF8_on SvUV SvUVX SvUVXx SvUV_nomg SvUV_set
+syn keyword xsMacro SvUVx SvVALID SvVALID_off SvVALID_on SvVOK SvVSTRING_mg
+syn keyword xsMacro SvWEAKREF SvWEAKREF_off SvWEAKREF_on Sv_Grow TAIL TAINT
+syn keyword xsMacro TAINTING_get TAINTING_set TAINT_ENV TAINT_IF TAINT_NOT
+syn keyword xsMacro TAINT_PROPER TAINT_WARN_get TAINT_WARN_set TAINT_get
+syn keyword xsMacro TAINT_set THING THR THREAD_CREATE
syn keyword xsMacro THREAD_CREATE_NEEDS_STACK THREAD_POST_CREATE
syn keyword xsMacro THREAD_RET_CAST THREAD_RET_TYPE
syn keyword xsMacro TIED_METHOD_ARGUMENTS_ON_STACK
syn keyword xsMacro TIED_METHOD_MORTALIZE_NOT_NEEDED TIED_METHOD_SAY
syn keyword xsMacro TIME64_CONFIG_H TIME64_H TM TMPNAM_R_PROTO TOO_LATE_FOR
syn keyword xsMacro TOO_LATE_FOR_ TOPBLOCK TOPMARK TOPi TOPl TOPm1s TOPn TOPp
-syn keyword xsMacro TOPp1s TOPpx TOPq TOPs TOPu TOPul TOPuq TRIE TRIEC
-syn keyword xsMacro TRIE_BITMAP TRIE_BITMAP_BYTE TRIE_BITMAP_CLEAR
-syn keyword xsMacro TRIE_BITMAP_SET TRIE_BITMAP_TEST TRIE_CHARCOUNT
-syn keyword xsMacro TRIE_NODEIDX TRIE_NODENUM TRIE_WORDS_OFFSET TRIE_next
-syn keyword xsMacro TRIE_next_fail TTYNAME_R_PROTO TWO_BYTE_UTF8_TO_UNI
-syn keyword xsMacro TYPE_CHARS TYPE_DIGITS Timeval U16SIZE U16TYPE U16_CONST
-syn keyword xsMacro U16_MAX U16_MIN U32SIZE U32TYPE U32_ALIGNMENT_REQUIRED
-syn keyword xsMacro U32_CONST U32_MAX U32_MAX_P1 U32_MAX_P1_HALF U32_MIN
-syn keyword xsMacro U64SIZE U64TYPE U64_CONST U8SIZE U8TYPE U8_MAX U8_MIN
-syn keyword xsMacro UCHARAT UINT32_MIN UINT64_C UINT64_MIN UMINUS UNDERBAR
-syn keyword xsMacro UNICODE_ALLOW_ANY UNICODE_ALLOW_SUPER
-syn keyword xsMacro UNICODE_ALLOW_SURROGATE UNICODE_BYTE_ORDER_MARK
-syn keyword xsMacro UNICODE_DISALLOW_FE_FF
+syn keyword xsMacro TOPp1s TOPpx TOPs TOPu TOPul TRIE TRIEC TRIE_BITMAP
+syn keyword xsMacro TRIE_BITMAP_BYTE TRIE_BITMAP_CLEAR TRIE_BITMAP_SET
+syn keyword xsMacro TRIE_BITMAP_TEST TRIE_CHARCOUNT TRIE_NODEIDX TRIE_NODENUM
+syn keyword xsMacro TRIE_WORDS_OFFSET TRIE_next TRIE_next_fail TRUE
+syn keyword xsMacro TTYNAME_R_PROTO TWO_BYTE_UTF8_TO_NATIVE
+syn keyword xsMacro TWO_BYTE_UTF8_TO_UNI TYPE_CHARS TYPE_DIGITS Timeval
+syn keyword xsMacro U16SIZE U16TYPE U16_CONST U16_MAX U16_MIN U32SIZE U32TYPE
+syn keyword xsMacro U32_ALIGNMENT_REQUIRED U32_CONST U32_MAX U32_MAX_P1
+syn keyword xsMacro U32_MAX_P1_HALF U32_MIN U64SIZE U64TYPE U64_CONST U8SIZE
+syn keyword xsMacro U8TO16_LE U8TO32_LE U8TO64_LE U8TYPE U8_MAX U8_MIN
+syn keyword xsMacro UCHARAT UINT32_MIN UINT64_C UINT64_MIN UMINUS
+syn keyword xsMacro UNALIGNED_SAFE UNDERBAR UNICODE_ALLOW_ANY
+syn keyword xsMacro UNICODE_ALLOW_SUPER UNICODE_ALLOW_SURROGATE
+syn keyword xsMacro UNICODE_BYTE_ORDER_MARK UNICODE_DISALLOW_FE_FF
syn keyword xsMacro UNICODE_DISALLOW_ILLEGAL_INTERCHANGE
syn keyword xsMacro UNICODE_DISALLOW_NONCHAR UNICODE_DISALLOW_SUPER
syn keyword xsMacro UNICODE_DISALLOW_SURROGATE
@@ -2983,295 +3326,351 @@ syn keyword xsMacro UNICODE_WARN_ILLEGAL_INTERCHANGE UNICODE_WARN_NONCHAR
syn keyword xsMacro UNICODE_WARN_SUPER UNICODE_WARN_SURROGATE UNIOP UNIOPSUB
syn keyword xsMacro UNISKIP UNI_DISPLAY_BACKSLASH UNI_DISPLAY_ISPRINT
syn keyword xsMacro UNI_DISPLAY_QQ UNI_DISPLAY_REGEX UNI_IS_INVARIANT
-syn keyword xsMacro UNI_TO_NATIVE UNLESS UNLESSM UNLIKELY UNLINK
-syn keyword xsMacro UNLOCK_DOLLARZERO_MUTEX UNTIL USE USE_64_BIT_ALL
-syn keyword xsMacro USE_64_BIT_INT USE_64_BIT_RAWIO USE_64_BIT_STDIO
-syn keyword xsMacro USE_BSDPGRP USE_DYNAMIC_LOADING USE_ENVIRON_ARRAY
-syn keyword xsMacro USE_HASH_SEED USE_HEAP_INSTEAD_OF_STACK USE_LARGE_FILES
-syn keyword xsMacro USE_LEFT USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE
-syn keyword xsMacro USE_LOCALE_NUMERIC USE_PERLIO USE_REENTRANT_API
+syn keyword xsMacro UNI_TO_NATIVE UNKNOWN_ERRNO_MSG UNLESS UNLESSM UNLIKELY
+syn keyword xsMacro UNLINK UNLOCK_DOLLARZERO_MUTEX UNLOCK_LC_NUMERIC_STANDARD
+syn keyword xsMacro UNLOCK_NUMERIC_STANDARD UNOP_AUX_item_sv UNTIL
+syn keyword xsMacro UPG_VERSION USE USE_64_BIT_ALL USE_64_BIT_INT
+syn keyword xsMacro USE_64_BIT_RAWIO USE_64_BIT_STDIO USE_BSDPGRP
+syn keyword xsMacro USE_DYNAMIC_LOADING USE_ENVIRON_ARRAY USE_HASH_SEED
+syn keyword xsMacro USE_HEAP_INSTEAD_OF_STACK USE_LARGE_FILES USE_LEFT
+syn keyword xsMacro USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE
+syn keyword xsMacro USE_LOCALE_MESSAGES USE_LOCALE_MONETARY
+syn keyword xsMacro USE_LOCALE_NUMERIC USE_LOCALE_TIME USE_PERLIO
+syn keyword xsMacro USE_PERL_PERTURB_KEYS USE_REENTRANT_API
syn keyword xsMacro USE_SEMCTL_SEMID_DS USE_SEMCTL_SEMUN USE_STAT_BLOCKS
-syn keyword xsMacro USE_STAT_RDEV USE_STDIO USE_STDIO_BASE USE_STDIO_PTR
-syn keyword xsMacro USE_STRUCT_COPY USE_SYSTEM_GMTIME USE_SYSTEM_LOCALTIME
-syn keyword xsMacro USE_THREADS USE_TM64 USE_UTF8_IN_NAMES UTF8SKIP
-syn keyword xsMacro UTF8_ACCUMULATE UTF8_ALLOW_ANY UTF8_ALLOW_ANYUV
-syn keyword xsMacro UTF8_ALLOW_CONTINUATION UTF8_ALLOW_DEFAULT
-syn keyword xsMacro UTF8_ALLOW_EMPTY UTF8_ALLOW_FFFF UTF8_ALLOW_LONG
-syn keyword xsMacro UTF8_ALLOW_NON_CONTINUATION UTF8_ALLOW_SHORT
-syn keyword xsMacro UTF8_ALLOW_SURROGATE UTF8_CHECK_ONLY UTF8_DISALLOW_FE_FF
-syn keyword xsMacro UTF8_DISALLOW_ILLEGAL_INTERCHANGE UTF8_DISALLOW_NONCHAR
-syn keyword xsMacro UTF8_DISALLOW_SUPER UTF8_DISALLOW_SURROGATE
-syn keyword xsMacro UTF8_EIGHT_BIT_HI UTF8_EIGHT_BIT_LO
+syn keyword xsMacro USE_STAT_RDEV USE_STDIO USE_STRUCT_COPY USE_SYSTEM_GMTIME
+syn keyword xsMacro USE_SYSTEM_LOCALTIME USE_THREADS USE_TM64
+syn keyword xsMacro USE_UTF8_IN_NAMES USING_MSVC6 UTF8SKIP UTF8_ACCUMULATE
+syn keyword xsMacro UTF8_ALLOW_ANY UTF8_ALLOW_ANYUV UTF8_ALLOW_CONTINUATION
+syn keyword xsMacro UTF8_ALLOW_DEFAULT UTF8_ALLOW_EMPTY UTF8_ALLOW_FFFF
+syn keyword xsMacro UTF8_ALLOW_LONG UTF8_ALLOW_NON_CONTINUATION
+syn keyword xsMacro UTF8_ALLOW_SHORT UTF8_ALLOW_SURROGATE UTF8_CHECK_ONLY
+syn keyword xsMacro UTF8_DISALLOW_FE_FF UTF8_DISALLOW_ILLEGAL_INTERCHANGE
+syn keyword xsMacro UTF8_DISALLOW_NONCHAR UTF8_DISALLOW_SUPER
+syn keyword xsMacro UTF8_DISALLOW_SURROGATE UTF8_EIGHT_BIT_HI
+syn keyword xsMacro UTF8_EIGHT_BIT_LO
syn keyword xsMacro UTF8_FIRST_PROBLEMATIC_CODE_POINT_FIRST_BYTE
-syn keyword xsMacro UTF8_IS_CONTINUATION UTF8_IS_CONTINUED
-syn keyword xsMacro UTF8_IS_DOWNGRADEABLE_START UTF8_IS_INVARIANT
+syn keyword xsMacro UTF8_IS_ABOVE_LATIN1 UTF8_IS_CONTINUATION
+syn keyword xsMacro UTF8_IS_CONTINUED UTF8_IS_DOWNGRADEABLE_START
+syn keyword xsMacro UTF8_IS_INVARIANT UTF8_IS_NEXT_CHAR_DOWNGRADEABLE
syn keyword xsMacro UTF8_IS_NONCHAR_
syn keyword xsMacro UTF8_IS_NONCHAR_GIVEN_THAT_NON_SUPER_AND_GE_PROBLEMATIC
-syn keyword xsMacro UTF8_IS_START UTF8_IS_SUPER UTF8_IS_SURROGATE
-syn keyword xsMacro UTF8_MAXBYTES UTF8_MAXBYTES_CASE UTF8_MAXLEN
-syn keyword xsMacro UTF8_MAX_FOLD_CHAR_EXPAND UTF8_QUAD_MAX UTF8_TWO_BYTE_HI
-syn keyword xsMacro UTF8_TWO_BYTE_HI_nocast UTF8_TWO_BYTE_LO
+syn keyword xsMacro UTF8_IS_REPLACEMENT UTF8_IS_START UTF8_IS_SUPER
+syn keyword xsMacro UTF8_IS_SURROGATE UTF8_MAXBYTES UTF8_MAXBYTES_CASE
+syn keyword xsMacro UTF8_MAXLEN UTF8_MAX_FOLD_CHAR_EXPAND UTF8_QUAD_MAX
+syn keyword xsMacro UTF8_TWO_BYTE_HI UTF8_TWO_BYTE_HI_nocast UTF8_TWO_BYTE_LO
syn keyword xsMacro UTF8_TWO_BYTE_LO_nocast UTF8_WARN_FE_FF
syn keyword xsMacro UTF8_WARN_ILLEGAL_INTERCHANGE UTF8_WARN_NONCHAR
-syn keyword xsMacro UTF8_WARN_SUPER UTF8_WARN_SURROGATE
+syn keyword xsMacro UTF8_WARN_SUPER UTF8_WARN_SURROGATE UTF8f UTF8fARG
syn keyword xsMacro UTF_ACCUMULATION_OVERFLOW_MASK UTF_ACCUMULATION_SHIFT
syn keyword xsMacro UTF_CONTINUATION_MARK UTF_CONTINUATION_MASK
-syn keyword xsMacro UTF_START_MARK UTF_START_MASK UTF_TO_NATIVE UVSIZE UVTYPE
-syn keyword xsMacro UVXf UV_DIG UV_MAX UV_MAX_P1 UV_MAX_P1_HALF UV_MIN UVf
-syn keyword xsMacro U_32 U_I U_L U_S U_V Uid_t_f Uid_t_sign Uid_t_size
-syn keyword xsMacro VAL_EAGAIN VAL_O_NONBLOCK VDf VERB VERTWS VOIDFLAGS
-syn keyword xsMacro VOIDUSED VOL VTBL_amagic VTBL_amagicelem VTBL_arylen
-syn keyword xsMacro VTBL_bm VTBL_collxfrm VTBL_dbline VTBL_defelem VTBL_env
+syn keyword xsMacro UTF_START_MARK UTF_START_MASK UTF_TO_NATIVE
+syn keyword xsMacro UVCHR_IS_INVARIANT UVCHR_SKIP UVSIZE UVTYPE UVXf UV_DIG
+syn keyword xsMacro UV_MAX UV_MAX_P1 UV_MAX_P1_HALF UV_MIN UVf U_32 U_I U_L
+syn keyword xsMacro U_S U_V Uid_t_f Uid_t_sign Uid_t_size VAL_EAGAIN
+syn keyword xsMacro VAL_O_NONBLOCK VCMP VERB VNORMAL VNUMIFY VOL VSTRINGIFY
+syn keyword xsMacro VTBL_amagic VTBL_amagicelem VTBL_arylen VTBL_bm
+syn keyword xsMacro VTBL_collxfrm VTBL_dbline VTBL_defelem VTBL_env
syn keyword xsMacro VTBL_envelem VTBL_fm VTBL_glob VTBL_isa VTBL_isaelem
syn keyword xsMacro VTBL_mglob VTBL_nkeys VTBL_pack VTBL_packelem VTBL_pos
syn keyword xsMacro VTBL_regdata VTBL_regdatum VTBL_regexp VTBL_sigelem
syn keyword xsMacro VTBL_substr VTBL_sv VTBL_taint VTBL_uvar VTBL_vec
-syn keyword xsMacro WARN_ALL WARN_ALLstring WARN_AMBIGUOUS WARN_BAREWORD
-syn keyword xsMacro WARN_CLOSED WARN_CLOSURE WARN_DEBUGGING WARN_DEPRECATED
-syn keyword xsMacro WARN_DIGIT WARN_EXEC WARN_EXITING WARN_GLOB
+syn keyword xsMacro VT_NATIVE VUTIL_REPLACE_CORE VVERIFY WARN_ALL
+syn keyword xsMacro WARN_ALLstring WARN_AMBIGUOUS WARN_BAREWORD WARN_CLOSED
+syn keyword xsMacro WARN_CLOSURE WARN_DEBUGGING WARN_DEPRECATED WARN_DIGIT
+syn keyword xsMacro WARN_EXEC WARN_EXITING WARN_EXPERIMENTAL
+syn keyword xsMacro WARN_EXPERIMENTAL__AUTODEREF WARN_EXPERIMENTAL__BITWISE
+syn keyword xsMacro WARN_EXPERIMENTAL__CONST_ATTR
+syn keyword xsMacro WARN_EXPERIMENTAL__LEXICAL_SUBS
+syn keyword xsMacro WARN_EXPERIMENTAL__LEXICAL_TOPIC
+syn keyword xsMacro WARN_EXPERIMENTAL__POSTDEREF
+syn keyword xsMacro WARN_EXPERIMENTAL__REFALIASING
+syn keyword xsMacro WARN_EXPERIMENTAL__REGEX_SETS
+syn keyword xsMacro WARN_EXPERIMENTAL__RE_STRICT
+syn keyword xsMacro WARN_EXPERIMENTAL__SIGNATURES
+syn keyword xsMacro WARN_EXPERIMENTAL__SMARTMATCH
+syn keyword xsMacro WARN_EXPERIMENTAL__WIN32_PERLIO WARN_GLOB
syn keyword xsMacro WARN_ILLEGALPROTO WARN_IMPRECISION WARN_INPLACE
-syn keyword xsMacro WARN_INTERNAL WARN_IO WARN_LAYER WARN_MALLOC WARN_MISC
-syn keyword xsMacro WARN_NEWLINE WARN_NONCHAR WARN_NONEstring
-syn keyword xsMacro WARN_NON_UNICODE WARN_NUMERIC WARN_ONCE WARN_OVERFLOW
-syn keyword xsMacro WARN_PACK WARN_PARENTHESIS WARN_PIPE WARN_PORTABLE
-syn keyword xsMacro WARN_PRECEDENCE WARN_PRINTF WARN_PROTOTYPE WARN_QW
-syn keyword xsMacro WARN_RECURSION WARN_REDEFINE WARN_REGEXP WARN_RESERVED
-syn keyword xsMacro WARN_SEMICOLON WARN_SEVERE WARN_SIGNAL WARN_SUBSTR
-syn keyword xsMacro WARN_SURROGATE WARN_SYNTAX WARN_TAINT WARN_THREADS
-syn keyword xsMacro WARN_UNINITIALIZED WARN_UNOPENED WARN_UNPACK WARN_UNTIE
-syn keyword xsMacro WARN_UTF8 WARN_VOID WARNshift WARNsize WEXITSTATUS WHEN
-syn keyword xsMacro WHILE WHILEM WHILEM_A_max WHILEM_A_max_fail WHILEM_A_min
+syn keyword xsMacro WARN_INTERNAL WARN_IO WARN_LAYER WARN_LOCALE WARN_MALLOC
+syn keyword xsMacro WARN_MISC WARN_MISSING WARN_NEWLINE WARN_NONCHAR
+syn keyword xsMacro WARN_NONEstring WARN_NON_UNICODE WARN_NUMERIC WARN_ONCE
+syn keyword xsMacro WARN_OVERFLOW WARN_PACK WARN_PARENTHESIS WARN_PIPE
+syn keyword xsMacro WARN_PORTABLE WARN_PRECEDENCE WARN_PRINTF WARN_PROTOTYPE
+syn keyword xsMacro WARN_QW WARN_RECURSION WARN_REDEFINE WARN_REDUNDANT
+syn keyword xsMacro WARN_REGEXP WARN_RESERVED WARN_SEMICOLON WARN_SEVERE
+syn keyword xsMacro WARN_SIGNAL WARN_SUBSTR WARN_SURROGATE WARN_SYNTAX
+syn keyword xsMacro WARN_SYSCALLS WARN_TAINT WARN_THREADS WARN_UNINITIALIZED
+syn keyword xsMacro WARN_UNOPENED WARN_UNPACK WARN_UNTIE WARN_UTF8 WARN_VOID
+syn keyword xsMacro WARNshift WARNsize WB_ENUM_COUNT WEXITSTATUS WHEN WHILE
+syn keyword xsMacro WHILEM WHILEM_A_max WHILEM_A_max_fail WHILEM_A_min
syn keyword xsMacro WHILEM_A_min_fail WHILEM_A_pre WHILEM_A_pre_fail
syn keyword xsMacro WHILEM_B_max WHILEM_B_max_fail WHILEM_B_min
syn keyword xsMacro WHILEM_B_min_fail WIDEST_UTYPE WIFEXITED WIFSIGNALED
syn keyword xsMacro WIFSTOPPED WIN32SCK_IS_STDSCK WNOHANG WORD WSTOPSIG
-syn keyword xsMacro WTERMSIG WUNTRACED XHvTOTALKEYS XOPd_xop_class
-syn keyword xsMacro XOPd_xop_desc XOPd_xop_name XOPd_xop_peep XOPf_xop_class
-syn keyword xsMacro XOPf_xop_desc XOPf_xop_name XOPf_xop_peep XPUSHTARG
-syn keyword xsMacro XPUSHi XPUSHmortal XPUSHn XPUSHp XPUSHs XPUSHu XPUSHundef
-syn keyword xsMacro XS XSANY XSINTERFACE_CVT XSINTERFACE_CVT_ANON
+syn keyword xsMacro WTERMSIG WUNTRACED XDIGIT_VALUE XHvTOTALKEYS
+syn keyword xsMacro XOPd_xop_class XOPd_xop_desc XOPd_xop_name XOPd_xop_peep
+syn keyword xsMacro XOPf_xop_class XOPf_xop_desc XOPf_xop_name XOPf_xop_peep
+syn keyword xsMacro XPUSHTARG XPUSHi XPUSHmortal XPUSHn XPUSHp XPUSHs XPUSHu
+syn keyword xsMacro XPUSHundef XS XSANY XSINTERFACE_CVT XSINTERFACE_CVT_ANON
syn keyword xsMacro XSINTERFACE_FUNC XSINTERFACE_FUNC_SET XSPROTO XSRETURN
syn keyword xsMacro XSRETURN_EMPTY XSRETURN_IV XSRETURN_NO XSRETURN_NV
syn keyword xsMacro XSRETURN_PV XSRETURN_PVN XSRETURN_UNDEF XSRETURN_UV
syn keyword xsMacro XSRETURN_YES XST_mIV XST_mNO XST_mNV XST_mPV XST_mPVN
syn keyword xsMacro XST_mUNDEF XST_mUV XST_mYES XS_APIVERSION_BOOTCHECK
+syn keyword xsMacro XS_APIVERSION_POPMARK_BOOTCHECK
+syn keyword xsMacro XS_APIVERSION_SETXSUBFN_POPMARK_BOOTCHECK
+syn keyword xsMacro XS_BOTHVERSION_BOOTCHECK XS_BOTHVERSION_POPMARK_BOOTCHECK
+syn keyword xsMacro XS_BOTHVERSION_SETXSUBFN_POPMARK_BOOTCHECK
syn keyword xsMacro XS_DYNAMIC_FILENAME XS_EXTERNAL XS_INTERNAL
-syn keyword xsMacro XS_VERSION_BOOTCHECK XSprePUSH XTENDED_PAT_MOD XopDISABLE
-syn keyword xsMacro XopENABLE XopENTRY XopENTRY_set XopFLAGS YADAYADA YIELD
+syn keyword xsMacro XS_SETXSUBFN_POPMARK XS_VERSION_BOOTCHECK XSprePUSH
+syn keyword xsMacro XTENDED_PAT_MOD XopDISABLE XopENABLE XopENTRY
+syn keyword xsMacro XopENTRYCUSTOM XopENTRY_set XopFLAGS YADAYADA YIELD
syn keyword xsMacro YYEMPTY YYSTYPE_IS_DECLARED YYSTYPE_IS_TRIVIAL
-syn keyword xsMacro YYTOKENTYPE Zero ZeroD _ _CANNOT _CC_ALNUMC_A
-syn keyword xsMacro _CC_ALNUMC_L1 _CC_ALPHA_A _CC_ALPHA_L1 _CC_BLANK_A
-syn keyword xsMacro _CC_BLANK_L1 _CC_CHARNAME_CONT _CC_CNTRL_A _CC_CNTRL_L1
-syn keyword xsMacro _CC_DIGIT_A _CC_GRAPH_A _CC_GRAPH_L1 _CC_IDFIRST_A
-syn keyword xsMacro _CC_IDFIRST_L1 _CC_LOWER_A _CC_LOWER_L1
-syn keyword xsMacro _CC_NONLATIN1_FOLD _CC_OCTAL_A _CC_PRINT_A _CC_PRINT_L1
-syn keyword xsMacro _CC_PSXSPC_A _CC_PSXSPC_L1 _CC_PUNCT_A _CC_PUNCT_L1
-syn keyword xsMacro _CC_QUOTEMETA _CC_SPACE_A _CC_SPACE_L1 _CC_UPPER_A
-syn keyword xsMacro _CC_UPPER_L1 _CC_WORDCHAR_A _CC_WORDCHAR_L1 _CC_XDIGIT_A
-syn keyword xsMacro _CPERLarg _GNU_SOURCE
+syn keyword xsMacro YYTOKENTYPE Zero ZeroD _ _CANNOT _CC_ALPHA
+syn keyword xsMacro _CC_ALPHANUMERIC _CC_ASCII _CC_BLANK _CC_CASED
+syn keyword xsMacro _CC_CHARNAME_CONT _CC_CNTRL _CC_DIGIT _CC_GRAPH
+syn keyword xsMacro _CC_IDFIRST _CC_IS_IN_SOME_FOLD _CC_LOWER
+syn keyword xsMacro _CC_MNEMONIC_CNTRL _CC_NONLATIN1_FOLD
+syn keyword xsMacro _CC_NONLATIN1_SIMPLE_FOLD _CC_NON_FINAL_FOLD _CC_PRINT
+syn keyword xsMacro _CC_PUNCT _CC_QUOTEMETA _CC_SPACE _CC_UPPER _CC_VERTSPACE
+syn keyword xsMacro _CC_WORDCHAR _CC_XDIGIT _CC_mask _CC_mask_A
+syn keyword xsMacro _CHECK_AND_OUTPUT_WIDE_LOCALE_CP_MSG
+syn keyword xsMacro _CHECK_AND_OUTPUT_WIDE_LOCALE_UTF8_MSG
+syn keyword xsMacro _CHECK_AND_WARN_PROBLEMATIC_LOCALE
+syn keyword xsMacro _CORE_SWASH_INIT_ACCEPT_INVLIST
+syn keyword xsMacro _CORE_SWASH_INIT_RETURN_IF_UNDEF
+syn keyword xsMacro _CORE_SWASH_INIT_USER_DEFINED_PROPERTY _CPERLarg
+syn keyword xsMacro _FIRST_NON_SWASH_CC _GNU_SOURCE
syn keyword xsMacro _HAS_NONLATIN1_FOLD_CLOSURE_ONLY_FOR_USE_BY_REGCOMP_DOT_C_AND_REGEXEC_DOT_C
-syn keyword xsMacro _INC_PERL_XSUB_H _PERLIOL_H _PERLIO_H _PERL_OBJECT_THIS
-syn keyword xsMacro _REGEXP_COMMON _RXf_PMf_CHARSET_SHIFT _RXf_PMf_SHIFT_NEXT
-syn keyword xsMacro _SOCKADDR_LEN _STDIO_H _STDIO_INCLUDED _V _XPVCV_COMMON
-syn keyword xsMacro _XPV_HEAD __Inc__IPerl___ __PATCHLEVEL_H_INCLUDED__
-syn keyword xsMacro __STDIO_LOADED __attribute__deprecated__
-syn keyword xsMacro __attribute__format__ __attribute__format__null_ok__
-syn keyword xsMacro __attribute__malloc__ __attribute__nonnull__
-syn keyword xsMacro __attribute__noreturn__ __attribute__pure__
-syn keyword xsMacro __attribute__unused__ __attribute__warn_unused_result__
-syn keyword xsMacro __filbuf __flsbuf __perlapi_h__ _config_h_ _exit _filbuf
-syn keyword xsMacro _flsbuf _isQUOTEMETA _stdopen _swab_16_ _swab_32_
-syn keyword xsMacro _swab_64_ aTHXo aTHXo_ aTHXx aTHXx_ abort accept access
+syn keyword xsMacro _HAS_NONLATIN1_SIMPLE_FOLD_CLOSURE_ONLY_FOR_USE_BY_REGCOMP_DOT_C_AND_REGEXEC_DOT_C
+syn keyword xsMacro _HIGHEST_REGCOMP_DOT_H_SYNC _INC_PERL_XSUB_H
+syn keyword xsMacro _IS_IN_SOME_FOLD_ONLY_FOR_USE_BY_REGCOMP_DOT_C
+syn keyword xsMacro _IS_MNEMONIC_CNTRL_ONLY_FOR_USE_BY_REGCOMP_DOT_C
+syn keyword xsMacro _IS_NON_FINAL_FOLD_ONLY_FOR_USE_BY_REGCOMP_DOT_C _LC_CAST
+syn keyword xsMacro _MEM_WRAP_NEEDS_RUNTIME_CHECK _MEM_WRAP_WILL_WRAP
+syn keyword xsMacro _NOT_IN_NUMERIC_STANDARD _NOT_IN_NUMERIC_UNDERLYING
+syn keyword xsMacro _NV_BODYLESS_UNION _OP_SIBPARENT_FIELDNAME _PERLIOL_H
+syn keyword xsMacro _PERLIO_H _PERL_OBJECT_THIS _REGEXP_COMMON
+syn keyword xsMacro _RXf_PMf_CHARSET_SHIFT _RXf_PMf_SHIFT_COMPILETIME
+syn keyword xsMacro _RXf_PMf_SHIFT_NEXT _STDIO_H _STDIO_INCLUDED _V
+syn keyword xsMacro _XPVCV_COMMON _XPV_HEAD __ASSERT_ __BASE_TWO_BYTE_HI
+syn keyword xsMacro __BASE_TWO_BYTE_LO __Inc__IPerl___
+syn keyword xsMacro __PATCHLEVEL_H_INCLUDED__ __PL_inf_float_int32
+syn keyword xsMacro __PL_nan_float_int32 __STDIO_LOADED
+syn keyword xsMacro __attribute__deprecated__ __attribute__format__
+syn keyword xsMacro __attribute__format__null_ok__ __attribute__malloc__
+syn keyword xsMacro __attribute__nonnull__ __attribute__noreturn__
+syn keyword xsMacro __attribute__pure__ __attribute__unused__
+syn keyword xsMacro __attribute__warn_unused_result__ __filbuf __flsbuf
+syn keyword xsMacro __has_builtin __perlapi_h__ _config_h_ _exit _filbuf
+syn keyword xsMacro _flsbuf _generic_LC _generic_LC_base
+syn keyword xsMacro _generic_LC_func_utf8 _generic_LC_swash_utf8
+syn keyword xsMacro _generic_LC_swash_uvchr _generic_LC_underscore
+syn keyword xsMacro _generic_LC_utf8 _generic_LC_uvchr _generic_func_utf8
+syn keyword xsMacro _generic_isCC _generic_isCC_A _generic_swash_uni
+syn keyword xsMacro _generic_swash_utf8 _generic_toFOLD_LC
+syn keyword xsMacro _generic_toLOWER_LC _generic_toUPPER_LC _generic_uni
+syn keyword xsMacro _generic_utf8 _generic_utf8_no_upper_latin1 _isQMC
+syn keyword xsMacro _isQUOTEMETA _swab_16_ _swab_32_ _swab_64_ aTHXa aTHXo
+syn keyword xsMacro aTHXo_ aTHXx aTHXx_ abort accept access
syn keyword xsMacro anchored_end_shift anchored_offset anchored_substr
-syn keyword xsMacro anchored_utf8 asctime assert assert_not_ROK
-syn keyword xsMacro assert_not_glob atoll bcmp bind blk_eval blk_format
-syn keyword xsMacro blk_gimme blk_givwhen blk_loop blk_oldcop blk_oldmarksp
-syn keyword xsMacro blk_oldpm blk_oldscopesp blk_oldsp blk_sub blk_u16 boolSV
-syn keyword xsMacro cBINOP cBINOPo cBINOPx cBOOL cCOP cCOPo cCOPx cGVOP_gv
-syn keyword xsMacro cGVOPo_gv cGVOPx_gv cLISTOP cLISTOPo cLISTOPx cLOGOP
-syn keyword xsMacro cLOGOPo cLOGOPx cLOOP cLOOPo cLOOPx cPADOP cPADOPo
+syn keyword xsMacro anchored_utf8 asctime assert assert_ assert_not_ROK
+syn keyword xsMacro assert_not_glob atoll av_tindex bcmp bind blk_eval
+syn keyword xsMacro blk_format blk_gimme blk_givwhen blk_loop blk_oldcop
+syn keyword xsMacro blk_oldmarksp blk_oldpm blk_oldscopesp blk_oldsp blk_sub
+syn keyword xsMacro blk_u16 bool boolSV cBINOP cBINOPo cBINOPx cBOOL cCOP
+syn keyword xsMacro cCOPo cCOPx cGVOP_gv cGVOPo_gv cGVOPx_gv cLISTOP cLISTOPo
+syn keyword xsMacro cLISTOPx cLOGOP cLOGOPo cLOGOPx cLOOP cLOOPo cLOOPx
+syn keyword xsMacro cMETHOPx cMETHOPx_meth cMETHOPx_rclass cPADOP cPADOPo
syn keyword xsMacro cPADOPx cPMOP cPMOPo cPMOPx cPVOP cPVOPo cPVOPx cSVOP
syn keyword xsMacro cSVOP_sv cSVOPo cSVOPo_sv cSVOPx cSVOPx_sv cSVOPx_svp
-syn keyword xsMacro cUNOP cUNOPo cUNOPx chdir check_end_shift
-syn keyword xsMacro check_offset_max check_offset_min check_substr check_utf8
-syn keyword xsMacro child_offset_bits chmod chsize ckDEAD ckWARN ckWARN2
-syn keyword xsMacro ckWARN2_d ckWARN3 ckWARN3_d ckWARN4 ckWARN4_d ckWARN_d
-syn keyword xsMacro close closedir connect cop_hints_2hv cop_hints_fetch_pv
-syn keyword xsMacro cop_hints_fetch_pvn cop_hints_fetch_pvs
-syn keyword xsMacro cop_hints_fetch_sv cophh_2hv cophh_copy cophh_delete_pv
-syn keyword xsMacro cophh_delete_pvn cophh_delete_pvs cophh_delete_sv
-syn keyword xsMacro cophh_fetch_pv cophh_fetch_pvn cophh_fetch_pvs
-syn keyword xsMacro cophh_fetch_sv cophh_free cophh_new_empty cophh_store_pv
-syn keyword xsMacro cophh_store_pvn cophh_store_pvs cophh_store_sv crypt
-syn keyword xsMacro ctermid ctime cv_ckproto cx_type cxstack cxstack_ix
-syn keyword xsMacro cxstack_max dATARGET dAX dAXMARK dEXT dEXTCONST dITEMS
-syn keyword xsMacro dJMPENV dMARK dMULTICALL dMY_CXT dMY_CXT_INTERP
-syn keyword xsMacro dMY_CXT_SV dNOOP dORIGMARK dPOPPOPiirl dPOPPOPnnrl
-syn keyword xsMacro dPOPPOPssrl dPOPTOPiirl dPOPTOPiirl_nomg
-syn keyword xsMacro dPOPTOPiirl_ul_nomg dPOPTOPnnrl dPOPTOPnnrl_nomg
-syn keyword xsMacro dPOPTOPssrl dPOPXiirl dPOPXiirl_ul_nomg dPOPXnnrl
-syn keyword xsMacro dPOPXssrl dPOPiv dPOPnv dPOPnv_nomg dPOPqv dPOPss dPOPuqv
-syn keyword xsMacro dPOPuv dSAVEDERRNO dSAVE_ERRNO dSP dTARG dTARGET
+syn keyword xsMacro cUNOP cUNOP_AUX cUNOP_AUXo cUNOP_AUXx cUNOPo cUNOPx chdir
+syn keyword xsMacro check_end_shift check_offset_max check_offset_min
+syn keyword xsMacro check_substr check_utf8 child_offset_bits chmod chsize
+syn keyword xsMacro ckDEAD ckWARN ckWARN2 ckWARN2_d ckWARN3 ckWARN3_d ckWARN4
+syn keyword xsMacro ckWARN4_d ckWARN_d close closedir connect cop_hints_2hv
+syn keyword xsMacro cop_hints_fetch_pv cop_hints_fetch_pvn
+syn keyword xsMacro cop_hints_fetch_pvs cop_hints_fetch_sv cophh_2hv
+syn keyword xsMacro cophh_copy cophh_delete_pv cophh_delete_pvn
+syn keyword xsMacro cophh_delete_pvs cophh_delete_sv cophh_fetch_pv
+syn keyword xsMacro cophh_fetch_pvn cophh_fetch_pvs cophh_fetch_sv cophh_free
+syn keyword xsMacro cophh_new_empty cophh_store_pv cophh_store_pvn
+syn keyword xsMacro cophh_store_pvs cophh_store_sv crypt ctermid ctime
+syn keyword xsMacro cv_ckproto cx_type cxstack cxstack_ix cxstack_max
+syn keyword xsMacro dATARGET dAX dAXMARK dEXT dEXTCONST dITEMS dJMPENV dMARK
+syn keyword xsMacro dMULTICALL dMY_CXT dMY_CXT_INTERP dMY_CXT_SV dNOOP
+syn keyword xsMacro dORIGMARK dPOPPOPiirl dPOPPOPnnrl dPOPPOPssrl dPOPTOPiirl
+syn keyword xsMacro dPOPTOPiirl_nomg dPOPTOPiirl_ul_nomg dPOPTOPnnrl
+syn keyword xsMacro dPOPTOPnnrl_nomg dPOPTOPssrl dPOPXiirl dPOPXiirl_ul_nomg
+syn keyword xsMacro dPOPXnnrl dPOPXssrl dPOPiv dPOPnv dPOPnv_nomg dPOPss
+syn keyword xsMacro dPOPuv dSAVEDERRNO dSAVE_ERRNO dSP dSS_ADD dTARG dTARGET
syn keyword xsMacro dTARGETSTACKED dTHR dTHX dTHXa dTHXo dTHXoa dTHXs dTHXx
-syn keyword xsMacro dTOPiv dTOPnv dTOPqv dTOPss dTOPuqv dTOPuv dUNDERBAR dVAR
-syn keyword xsMacro dXSARGS dXSFUNCTION dXSI32 dXSTARG dXSUB_SYS deprecate
-syn keyword xsMacro djSP do_open drand48 dup dup2 endgrent endhostent
-syn keyword xsMacro endnetent endprotoent endpwent endservent environ execl
-syn keyword xsMacro execv execvp fcntl fd_set fdopen fileno float_end_shift
-syn keyword xsMacro float_max_offset float_min_offset float_substr float_utf8
-syn keyword xsMacro flock flockfile foldEQ_utf8 frewind fscanf fstat ftell
-syn keyword xsMacro ftruncate ftrylockfile funlockfile fwrite1 generic_uni
-syn keyword xsMacro generic_utf8 get_cvs getc_unlocked getegid geteuid getgid
-syn keyword xsMacro getgrent getgrgid getgrnam gethostbyaddr gethostbyname
-syn keyword xsMacro gethostent gethostname getlogin getnetbyaddr getnetbyname
-syn keyword xsMacro getnetent getpeername getpid getprotobyname
-syn keyword xsMacro getprotobynumber getprotoent getpwent getpwnam getpwuid
-syn keyword xsMacro getservbyname getservbyport getservent getsockname
-syn keyword xsMacro getsockopt getspnam gettimeofday getuid getw gv_AVadd
-syn keyword xsMacro gv_HVadd gv_IOadd gv_SVadd gv_autoload4 gv_efullname3
-syn keyword xsMacro gv_fetchmeth gv_fetchmeth_autoload gv_fetchmethod
-syn keyword xsMacro gv_fetchmethod_flags gv_fetchpvn gv_fetchpvs
-syn keyword xsMacro gv_fetchsv_nomg gv_fullname3 gv_init gv_stashpvs htoni
-syn keyword xsMacro htonl htons htovl htovs hv_delete hv_delete_ent hv_exists
-syn keyword xsMacro hv_exists_ent hv_fetch hv_fetch_ent hv_fetchs hv_iternext
-syn keyword xsMacro hv_magic hv_store hv_store_ent hv_store_flags hv_stores
-syn keyword xsMacro hv_undef ibcmp ibcmp_locale ibcmp_utf8 inet_addr
-syn keyword xsMacro inet_ntoa init_os_extras init_thread_intern ioctl isALNUM
-syn keyword xsMacro isALNUMC isALNUMC_A isALNUMC_L1 isALNUMC_LC
-syn keyword xsMacro isALNUMC_LC_utf8 isALNUMU isALNUM_LC isALNUM_LC_utf8
-syn keyword xsMacro isALNUM_LC_uvchr isALNUM_lazy isALNUM_lazy_if isALNUM_uni
-syn keyword xsMacro isALNUM_utf8 isALPHA isALPHAU isALPHA_A isALPHA_L1
-syn keyword xsMacro isALPHA_LC isALPHA_LC_utf8 isALPHA_LC_uvchr isALPHA_uni
-syn keyword xsMacro isALPHA_utf8 isASCII isASCII_A isASCII_L1 isASCII_LC
-syn keyword xsMacro isASCII_uni isASCII_utf8 isBLANK isBLANK_A isBLANK_L1
-syn keyword xsMacro isBLANK_LC isBLANK_LC_uni isBLANK_LC_utf8 isBLANK_uni
-syn keyword xsMacro isBLANK_utf8 isCHARNAME_CONT isCNTRL isCNTRL_A isCNTRL_L1
-syn keyword xsMacro isCNTRL_LC isCNTRL_LC_utf8 isCNTRL_LC_uvchr isCNTRL_uni
-syn keyword xsMacro isCNTRL_utf8 isDIGIT isDIGIT_A isDIGIT_L1 isDIGIT_LC
-syn keyword xsMacro isDIGIT_LC_utf8 isDIGIT_LC_uvchr isDIGIT_uni isDIGIT_utf8
-syn keyword xsMacro isGRAPH isGRAPH_A isGRAPH_L1 isGRAPH_LC isGRAPH_LC_utf8
+syn keyword xsMacro dTOPiv dTOPnv dTOPss dTOPuv dUNDERBAR dVAR dXSARGS
+syn keyword xsMacro dXSBOOTARGSAPIVERCHK dXSBOOTARGSNOVERCHK
+syn keyword xsMacro dXSBOOTARGSXSAPIVERCHK dXSFUNCTION dXSI32 dXSTARG
+syn keyword xsMacro dXSUB_SYS deprecate djSP do_open dup dup2 endgrent
+syn keyword xsMacro endhostent endnetent endprotoent endpwent endservent
+syn keyword xsMacro environ execl execv execvp fcntl fd_set fdopen fileno
+syn keyword xsMacro float_end_shift float_max_offset float_min_offset
+syn keyword xsMacro float_substr float_utf8 flock flockfile foldEQ_utf8
+syn keyword xsMacro frewind fscanf fstat ftell ftruncate ftrylockfile
+syn keyword xsMacro funlockfile fwrite1 get_cvs getc_unlocked getegid geteuid
+syn keyword xsMacro getgid getgrent getgrgid getgrnam gethostbyaddr
+syn keyword xsMacro gethostbyname gethostent gethostname getlogin
+syn keyword xsMacro getnetbyaddr getnetbyname getnetent getpeername getpid
+syn keyword xsMacro getprotobyname getprotobynumber getprotoent getpwent
+syn keyword xsMacro getpwnam getpwuid getservbyname getservbyport getservent
+syn keyword xsMacro getsockname getsockopt getspnam gettimeofday getuid getw
+syn keyword xsMacro gv_AVadd gv_HVadd gv_IOadd gv_SVadd gv_autoload4
+syn keyword xsMacro gv_efullname3 gv_fetchmeth gv_fetchmeth_autoload
+syn keyword xsMacro gv_fetchmethod gv_fetchmethod_flags gv_fetchpvn
+syn keyword xsMacro gv_fetchpvs gv_fetchsv_nomg gv_fullname3 gv_init
+syn keyword xsMacro gv_method_changed gv_stashpvs htoni htonl htons htovl
+syn keyword xsMacro htovs hv_delete hv_delete_ent hv_deletehek hv_exists
+syn keyword xsMacro hv_exists_ent hv_fetch hv_fetch_ent hv_fetchhek hv_fetchs
+syn keyword xsMacro hv_iternext hv_magic hv_store hv_store_ent hv_store_flags
+syn keyword xsMacro hv_storehek hv_stores hv_undef ibcmp ibcmp_locale
+syn keyword xsMacro ibcmp_utf8 inet_addr inet_ntoa init_os_extras ioctl
+syn keyword xsMacro isALNUM isALNUMC isALNUMC_A isALNUMC_L1 isALNUMC_LC
+syn keyword xsMacro isALNUMC_LC_utf8 isALNUMC_LC_uvchr isALNUMC_uni
+syn keyword xsMacro isALNUMC_utf8 isALNUMU isALNUM_LC isALNUM_LC_utf8
+syn keyword xsMacro isALNUM_LC_uvchr isALNUM_lazy_if isALNUM_uni isALNUM_utf8
+syn keyword xsMacro isALPHA isALPHANUMERIC isALPHANUMERIC_A isALPHANUMERIC_L1
+syn keyword xsMacro isALPHANUMERIC_LC isALPHANUMERIC_LC_utf8
+syn keyword xsMacro isALPHANUMERIC_LC_uvchr isALPHANUMERIC_uni
+syn keyword xsMacro isALPHANUMERIC_utf8 isALPHAU isALPHA_A isALPHA_FOLD_EQ
+syn keyword xsMacro isALPHA_FOLD_NE isALPHA_L1 isALPHA_LC isALPHA_LC_utf8
+syn keyword xsMacro isALPHA_LC_uvchr isALPHA_uni isALPHA_utf8 isASCII
+syn keyword xsMacro isASCII_A isASCII_L1 isASCII_LC isASCII_LC_utf8
+syn keyword xsMacro isASCII_LC_uvchr isASCII_uni isASCII_utf8 isBLANK
+syn keyword xsMacro isBLANK_A isBLANK_L1 isBLANK_LC isBLANK_LC_uni
+syn keyword xsMacro isBLANK_LC_utf8 isBLANK_LC_uvchr isBLANK_uni isBLANK_utf8
+syn keyword xsMacro isCHARNAME_CONT isCNTRL isCNTRL_A isCNTRL_L1 isCNTRL_LC
+syn keyword xsMacro isCNTRL_LC_utf8 isCNTRL_LC_uvchr isCNTRL_uni isCNTRL_utf8
+syn keyword xsMacro isDIGIT isDIGIT_A isDIGIT_L1 isDIGIT_LC isDIGIT_LC_utf8
+syn keyword xsMacro isDIGIT_LC_uvchr isDIGIT_uni isDIGIT_utf8 isGRAPH
+syn keyword xsMacro isGRAPH_A isGRAPH_L1 isGRAPH_LC isGRAPH_LC_utf8
syn keyword xsMacro isGRAPH_LC_uvchr isGRAPH_uni isGRAPH_utf8 isGV
-syn keyword xsMacro isGV_with_GP isGV_with_GP_off isGV_with_GP_on
-syn keyword xsMacro isIDCONT_utf8 isIDFIRST isIDFIRST_A isIDFIRST_L1
-syn keyword xsMacro isIDFIRST_LC isIDFIRST_LC_utf8 isIDFIRST_LC_uvchr
-syn keyword xsMacro isIDFIRST_lazy isIDFIRST_lazy_if isIDFIRST_uni
+syn keyword xsMacro isGV_with_GP isGV_with_GP_off isGV_with_GP_on isIDCONT
+syn keyword xsMacro isIDCONT_A isIDCONT_L1 isIDCONT_LC isIDCONT_LC_utf8
+syn keyword xsMacro isIDCONT_LC_uvchr isIDCONT_uni isIDCONT_utf8 isIDFIRST
+syn keyword xsMacro isIDFIRST_A isIDFIRST_L1 isIDFIRST_LC isIDFIRST_LC_utf8
+syn keyword xsMacro isIDFIRST_LC_uvchr isIDFIRST_lazy_if isIDFIRST_uni
syn keyword xsMacro isIDFIRST_utf8 isLEXWARN_off isLEXWARN_on isLOWER
syn keyword xsMacro isLOWER_A isLOWER_L1 isLOWER_LC isLOWER_LC_utf8
syn keyword xsMacro isLOWER_LC_uvchr isLOWER_uni isLOWER_utf8 isOCTAL
syn keyword xsMacro isOCTAL_A isOCTAL_L1 isPRINT isPRINT_A isPRINT_L1
syn keyword xsMacro isPRINT_LC isPRINT_LC_utf8 isPRINT_LC_uvchr isPRINT_uni
syn keyword xsMacro isPRINT_utf8 isPSXSPC isPSXSPC_A isPSXSPC_L1 isPSXSPC_LC
-syn keyword xsMacro isPSXSPC_LC_uni isPSXSPC_LC_utf8 isPSXSPC_uni
+syn keyword xsMacro isPSXSPC_LC_utf8 isPSXSPC_LC_uvchr isPSXSPC_uni
syn keyword xsMacro isPSXSPC_utf8 isPUNCT isPUNCT_A isPUNCT_L1 isPUNCT_LC
syn keyword xsMacro isPUNCT_LC_utf8 isPUNCT_LC_uvchr isPUNCT_uni isPUNCT_utf8
-syn keyword xsMacro isSPACE isSPACE_A isSPACE_L1 isSPACE_LC isSPACE_LC_utf8
-syn keyword xsMacro isSPACE_LC_uvchr isSPACE_uni isSPACE_utf8 isUPPER
-syn keyword xsMacro isUPPER_A isUPPER_L1 isUPPER_LC isUPPER_LC_utf8
-syn keyword xsMacro isUPPER_LC_uvchr isUPPER_uni isUPPER_utf8 isWARN_ONCE
-syn keyword xsMacro isWARN_on isWARNf_on isWORDCHAR isWORDCHAR_A
-syn keyword xsMacro isWORDCHAR_L1 isXDIGIT isXDIGIT_A isXDIGIT_L1
-syn keyword xsMacro isXDIGIT_uni isXDIGIT_utf8 is_HORIZWS is_HORIZWS_cp
-syn keyword xsMacro is_HORIZWS_latin1 is_HORIZWS_latin1_safe is_HORIZWS_safe
-syn keyword xsMacro is_HORIZWS_utf8 is_HORIZWS_utf8_safe is_LAX_VERSION
-syn keyword xsMacro is_LNBREAK is_LNBREAK_latin1 is_LNBREAK_latin1_safe
-syn keyword xsMacro is_LNBREAK_safe is_LNBREAK_utf8 is_LNBREAK_utf8_safe
-syn keyword xsMacro is_STRICT_VERSION is_TRICKYFOLD is_TRICKYFOLD_cp
-syn keyword xsMacro is_TRICKYFOLD_safe is_VERTWS is_VERTWS_cp
-syn keyword xsMacro is_VERTWS_latin1 is_VERTWS_latin1_safe is_VERTWS_safe
-syn keyword xsMacro is_VERTWS_utf8 is_VERTWS_utf8_safe is_utf8_string_loc
-syn keyword xsMacro isatty kBINOP kCOP kGVOP_gv kLISTOP kLOGOP kLOOP kPADOP
-syn keyword xsMacro kPMOP kPVOP kSVOP kSVOP_sv kUNOP kill killpg
-syn keyword xsMacro lex_stuff_pvs link listen lockf longjmp lseek lstat
-syn keyword xsMacro mPUSHi mPUSHn mPUSHp mPUSHs mPUSHu mXPUSHi mXPUSHn
+syn keyword xsMacro isREGEXP isSPACE isSPACE_A isSPACE_L1 isSPACE_LC
+syn keyword xsMacro isSPACE_LC_utf8 isSPACE_LC_uvchr isSPACE_uni isSPACE_utf8
+syn keyword xsMacro isUPPER isUPPER_A isUPPER_L1 isUPPER_LC isUPPER_LC_utf8
+syn keyword xsMacro isUPPER_LC_uvchr isUPPER_uni isUPPER_utf8 isUTF8_CHAR
+syn keyword xsMacro isVERTWS_uni isVERTWS_utf8 isWARN_ONCE isWARN_on
+syn keyword xsMacro isWARNf_on isWORDCHAR isWORDCHAR_A isWORDCHAR_L1
+syn keyword xsMacro isWORDCHAR_LC isWORDCHAR_LC_utf8 isWORDCHAR_LC_uvchr
+syn keyword xsMacro isWORDCHAR_lazy_if isWORDCHAR_uni isWORDCHAR_utf8
+syn keyword xsMacro isXDIGIT isXDIGIT_A isXDIGIT_L1 isXDIGIT_LC
+syn keyword xsMacro isXDIGIT_LC_utf8 isXDIGIT_LC_uvchr isXDIGIT_uni
+syn keyword xsMacro isXDIGIT_utf8 is_ANYOF_SYNTHETIC is_FOLDS_TO_MULTI_utf8
+syn keyword xsMacro is_HORIZWS_cp_high is_HORIZWS_high is_LAX_VERSION
+syn keyword xsMacro is_LNBREAK_latin1_safe is_LNBREAK_safe
+syn keyword xsMacro is_LNBREAK_utf8_safe is_MULTI_CHAR_FOLD_latin1_safe
+syn keyword xsMacro is_MULTI_CHAR_FOLD_utf8_safe
+syn keyword xsMacro is_MULTI_CHAR_FOLD_utf8_safe_part0
+syn keyword xsMacro is_MULTI_CHAR_FOLD_utf8_safe_part1 is_NONCHAR_utf8
+syn keyword xsMacro is_PATWS_cp is_PATWS_safe
+syn keyword xsMacro is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp
+syn keyword xsMacro is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8
+syn keyword xsMacro is_PROBLEMATIC_LOCALE_FOLD_cp
+syn keyword xsMacro is_PROBLEMATIC_LOCALE_FOLD_utf8 is_QUOTEMETA_high
+syn keyword xsMacro is_QUOTEMETA_high_part0 is_QUOTEMETA_high_part1
+syn keyword xsMacro is_REPLACEMENT_utf8_safe is_STRICT_VERSION
+syn keyword xsMacro is_SURROGATE_utf8 is_UTF8_CHAR_utf8_no_length_checks
+syn keyword xsMacro is_VERTWS_cp_high is_VERTWS_high is_XDIGIT_cp_high
+syn keyword xsMacro is_XDIGIT_high is_XPERLSPACE_cp_high is_XPERLSPACE_high
+syn keyword xsMacro is_ascii_string is_utf8_char_buf is_utf8_string_loc
+syn keyword xsMacro isatty isnormal kBINOP kCOP kGVOP_gv kLISTOP kLOGOP kLOOP
+syn keyword xsMacro kPADOP kPMOP kPVOP kSVOP kSVOP_sv kUNOP kUNOP_AUX kill
+syn keyword xsMacro killpg lex_stuff_pvs link listen lockf longjmp lseek
+syn keyword xsMacro lstat mPUSHi mPUSHn mPUSHp mPUSHs mPUSHu mXPUSHi mXPUSHn
syn keyword xsMacro mXPUSHp mXPUSHs mXPUSHu memEQ memEQs memNE memNEs memchr
-syn keyword xsMacro memcmp memzero mkdir mktemp my my_betoh16 my_betoh32
-syn keyword xsMacro my_betoh64 my_betohi my_betohl my_betohn my_betohs
-syn keyword xsMacro my_binmode my_htobe16 my_htobe32 my_htobe64 my_htobei
-syn keyword xsMacro my_htobel my_htoben my_htobes my_htole16 my_htole32
-syn keyword xsMacro my_htole64 my_htolei my_htolel my_htolen my_htoles
-syn keyword xsMacro my_letoh16 my_letoh32 my_letoh64 my_letohi my_letohl
-syn keyword xsMacro my_letohn my_letohs my_lstat my_snprintf my_sprintf
-syn keyword xsMacro my_stat my_strlcat my_strlcpy my_vsnprintf newAV newGVgen
-syn keyword xsMacro newHV newIO newRV_inc newSUB newSVpvn_utf8 newSVpvs
-syn keyword xsMacro newSVpvs_flags newSVpvs_share newXSproto ntohi ntohl
-syn keyword xsMacro ntohs opASSIGN op_getmad op_lvalue open opendir pTHX_1
-syn keyword xsMacro pTHX_2 pTHX_3 pTHX_4 pTHX_5 pTHX_6 pTHX_7 pTHX_8 pTHX_9
-syn keyword xsMacro pTHX_FORMAT pTHX_VALUE pTHX_VALUE_ pTHX__FORMAT
+syn keyword xsMacro memcmp memzero mkdir mktemp my my_binmode my_lstat
+syn keyword xsMacro my_setlocale my_snprintf my_sprintf my_stat my_strlcat
+syn keyword xsMacro my_strlcpy my_vsnprintf newATTRSUB newAV newGVgen newHV
+syn keyword xsMacro newIO newRV_inc newSUB newSVpadname newSVpvn_utf8
+syn keyword xsMacro newSVpvs newSVpvs_flags newSVpvs_share newXSproto ntohi
+syn keyword xsMacro ntohl ntohs opASSIGN op_lvalue open opendir pTHX_1
+syn keyword xsMacro pTHX_12 pTHX_2 pTHX_3 pTHX_4 pTHX_5 pTHX_6 pTHX_7 pTHX_8
+syn keyword xsMacro pTHX_9 pTHX_FORMAT pTHX_VALUE pTHX_VALUE_ pTHX__FORMAT
syn keyword xsMacro pTHX__VALUE pTHX__VALUE_ pTHXo pTHXo_ pTHXx pTHXx_ pVAR
syn keyword xsMacro pWARN_ALL pWARN_NONE pWARN_STD packWARN packWARN2
syn keyword xsMacro packWARN3 packWARN4 pad_add_name_pvs pad_findmy_pvs
-syn keyword xsMacro pad_peg padadd_NO_DUP_CHECK padadd_OUR padadd_STATE
-syn keyword xsMacro padadd_UTF8_NAME padnew_CLONE padnew_SAVE padnew_SAVESUB
+syn keyword xsMacro pad_peg padadd_NO_DUP_CHECK padadd_OUR padadd_STALEOK
+syn keyword xsMacro padadd_STATE padnew_CLONE padnew_SAVE padnew_SAVESUB
syn keyword xsMacro panic_write2 pause pclose pipe popen prepare_SV_for_RV
syn keyword xsMacro pthread_attr_init pthread_condattr_default pthread_create
syn keyword xsMacro pthread_key_create pthread_keycreate
syn keyword xsMacro pthread_mutexattr_default pthread_mutexattr_init
-syn keyword xsMacro pthread_mutexattr_settype putc_unlocked putenv putw
-syn keyword xsMacro random read readdir readdir64 recv recvfrom ref
+syn keyword xsMacro pthread_mutexattr_settype putc_unlocked putenv putw read
+syn keyword xsMacro readdir readdir64 recv recvfrom ref
syn keyword xsMacro refcounted_he_fetch_pvs refcounted_he_new_pvs rename
-syn keyword xsMacro rewinddir rmdir sTHX safecalloc safefree safemalloc
+syn keyword xsMacro rewinddir rmdir safecalloc safefree safemalloc
syn keyword xsMacro saferealloc save_aelem save_freeop save_freepv
syn keyword xsMacro save_freesv save_helem save_mortalizesv save_op savepvs
syn keyword xsMacro savesharedpvs sb_dstr sb_iters sb_m sb_maxiters
syn keyword xsMacro sb_oldsave sb_orig sb_rflags sb_rx sb_rxres sb_rxtainted
syn keyword xsMacro sb_s sb_strend sb_targ seedDrand01 seekdir select send
-syn keyword xsMacro sendto setbuf setgid setgrent sethostent setjmp
-syn keyword xsMacro setlinebuf setlocale setmode setnetent setprotoent
-syn keyword xsMacro setpwent setregid setreuid setservent setsockopt setuid
-syn keyword xsMacro setvbuf share_hek_hek sharepvn shutdown signal sleep
-syn keyword xsMacro socket socketpair specialWARN srand48 srandom stat
-syn keyword xsMacro stdoutf strEQ strGE strGT strLE strLT strNE strchr
-syn keyword xsMacro strerror stringify stringify_immed strnEQ strnNE strrchr
-syn keyword xsMacro strtoll strtoull sv_2bool sv_2iv sv_2nv sv_2pv
-syn keyword xsMacro sv_2pv_nolen sv_2pv_nomg sv_2pvbyte_nolen
-syn keyword xsMacro sv_2pvutf8_nolen sv_2uv sv_catpv_nomg sv_catpvn
-syn keyword xsMacro sv_catpvn_mg sv_catpvn_nomg sv_catpvn_utf8_upgrade
-syn keyword xsMacro sv_catpvs sv_catpvs_flags sv_catpvs_mg sv_catpvs_nomg
-syn keyword xsMacro sv_catsv sv_catsv_mg sv_catsv_nomg sv_catxmlpvs sv_cmp
-syn keyword xsMacro sv_cmp_locale sv_collxfrm sv_eq sv_force_normal sv_insert
-syn keyword xsMacro sv_nolocking sv_nounlocking sv_pv sv_pvbyte sv_pvn_force
-syn keyword xsMacro sv_pvn_force_nomg sv_pvutf8 sv_setpvs sv_setpvs_mg
-syn keyword xsMacro sv_setref_pvs sv_setsv sv_setsv_nomg sv_taint sv_unref
-syn keyword xsMacro sv_usepvn sv_usepvn_mg sv_utf8_upgrade
-syn keyword xsMacro sv_utf8_upgrade_flags sv_utf8_upgrade_nomg tTHX telldir
-syn keyword xsMacro times tmpfile tmpnam toCTRL toFOLD_uni toLOWER
-syn keyword xsMacro toLOWER_LATIN1 toLOWER_LC toLOWER_uni toLOWER_utf8
-syn keyword xsMacro toTITLE_uni toTITLE_utf8 toUPPER toUPPER_LATIN1_MOD
+syn keyword xsMacro sendto set_ANYOF_SYNTHETIC setbuf setgid setgrent
+syn keyword xsMacro sethostent setjmp setlinebuf setlocale setmode setnetent
+syn keyword xsMacro setprotoent setpwent setregid setreuid setservent
+syn keyword xsMacro setsockopt setuid setvbuf share_hek_hek sharepvn shutdown
+syn keyword xsMacro signal sleep socket socketpair specialWARN stat stdoutf
+syn keyword xsMacro strEQ strGE strGT strLE strLT strNE strchr strerror
+syn keyword xsMacro strnEQ strnNE strrchr strtoll strtoull sv_2bool
+syn keyword xsMacro sv_2bool_nomg sv_2iv sv_2nv sv_2pv sv_2pv_nolen
+syn keyword xsMacro sv_2pv_nomg sv_2pvbyte_nolen sv_2pvutf8_nolen sv_2uv
+syn keyword xsMacro sv_cathek sv_catpv_nomg sv_catpvn sv_catpvn_mg
+syn keyword xsMacro sv_catpvn_nomg sv_catpvn_nomg_maybeutf8
+syn keyword xsMacro sv_catpvn_nomg_utf8_upgrade sv_catpvs sv_catpvs_flags
+syn keyword xsMacro sv_catpvs_mg sv_catpvs_nomg sv_catsv sv_catsv_mg
+syn keyword xsMacro sv_catsv_nomg sv_catxmlpvs sv_cmp sv_cmp_locale
+syn keyword xsMacro sv_collxfrm sv_copypv_nomg sv_eq sv_force_normal
+syn keyword xsMacro sv_insert sv_mortalcopy sv_nolocking sv_nounlocking
+syn keyword xsMacro sv_or_pv_len_utf8 sv_pv sv_pvbyte sv_pvn_force
+syn keyword xsMacro sv_pvn_force_nomg sv_pvutf8 sv_setgid sv_setpvs
+syn keyword xsMacro sv_setpvs_mg sv_setref_pvs sv_setsv sv_setsv_nomg
+syn keyword xsMacro sv_setuid sv_taint sv_unref sv_usepvn sv_usepvn_mg
+syn keyword xsMacro sv_utf8_upgrade sv_utf8_upgrade_flags
+syn keyword xsMacro sv_utf8_upgrade_nomg tTHX telldir times tmpfile tmpnam
+syn keyword xsMacro toCTRL toFOLD toFOLD_A toFOLD_LC toFOLD_uni toFOLD_utf8
+syn keyword xsMacro toLOWER toLOWER_A toLOWER_L1 toLOWER_LATIN1 toLOWER_LC
+syn keyword xsMacro toLOWER_uni toLOWER_utf8 toTITLE toTITLE_A toTITLE_uni
+syn keyword xsMacro toTITLE_utf8 toUPPER toUPPER_A toUPPER_LATIN1_MOD
syn keyword xsMacro toUPPER_LC toUPPER_uni toUPPER_utf8 to_uni_fold
syn keyword xsMacro to_utf8_fold to_utf8_lower to_utf8_title to_utf8_upper
syn keyword xsMacro truncate tryAMAGICbin_MG tryAMAGICunDEREF
-syn keyword xsMacro tryAMAGICunTARGET tryAMAGICun_MG ttyname umask uname
+syn keyword xsMacro tryAMAGICunTARGETlist tryAMAGICun_MG ttyname umask uname
syn keyword xsMacro unlink unpackWARN1 unpackWARN2 unpackWARN3 unpackWARN4
-syn keyword xsMacro utf8n_to_uvchr utime uvchr_to_utf8 uvuni_to_utf8 vTHX
-syn keyword xsMacro vfprintf vtohl vtohs wait want_vtbl_bm want_vtbl_fm
-syn keyword xsMacro what_TRICKYFOLD what_TRICKYFOLD_safe what_len_TRICKYFOLD
-syn keyword xsMacro what_len_TRICKYFOLD_safe whichsig write xio_any xio_dirp
-syn keyword xsMacro xiv_iv xuv_uv yystype
+syn keyword xsMacro utf8_to_uvchr_buf utime uvchr_to_utf8 uvchr_to_utf8_flags
+syn keyword xsMacro vTHX vfprintf vtohl vtohs wait want_vtbl_bm want_vtbl_fm
+syn keyword xsMacro whichsig write xio_any xio_dirp xiv_iv xlv_targoff
+syn keyword xsMacro xpv_len xuv_uv yystype
" 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_xs_syntax_inits")
- if version < 508
- let did_xs_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink xsPrivate Error
- HiLink xsSuperseded Error
- HiLink xsType Type
- HiLink xsString String
- HiLink xsConstant Constant
- HiLink xsException Exception
- HiLink xsKeyword Keyword
- HiLink xsFunction Function
- HiLink xsVariable Identifier
- HiLink xsMacro Macro
-
- delcommand HiLink
-endif
+hi def link xsPrivate Error
+hi def link xsSuperseded Error
+hi def link xsType Type
+hi def link xsString String
+hi def link xsConstant Constant
+hi def link xsException Exception
+hi def link xsKeyword Keyword
+hi def link xsFunction Function
+hi def link xsVariable Identifier
+hi def link xsMacro Macro
let b:current_syntax = "xs"
diff --git a/runtime/syntax/xxd.vim b/runtime/syntax/xxd.vim
index b2b1e44603..f3c43e816c 100644
--- a/runtime/syntax/xxd.vim
+++ b/runtime/syntax/xxd.vim
@@ -1,16 +1,13 @@
" Vim syntax file
" Language: bin using xxd
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change: Oct 23, 2014
-" Version: 8
+" Last Change: Aug 31, 2016
+" Version: 10
" Notes: use :help xxd to see how to invoke it
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_XXD
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -20,21 +17,12 @@ syn match xxdAscii " .\{,16\}\r\=$"hs=s+2 contains=xxdDot
syn match xxdDot contained "[.\r]"
" 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_xxd_syntax_inits")
- if version < 508
- let did_xxd_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+if !exists("skip_xxd_syntax_inits")
- HiLink xxdAddress Constant
- HiLink xxdSep Identifier
- HiLink xxdAscii Statement
+ hi def link xxdAddress Constant
+ hi def link xxdSep Identifier
+ hi def link xxdAscii Statement
- delcommand HiLink
endif
let b:current_syntax = "xxd"
diff --git a/runtime/syntax/yacc.vim b/runtime/syntax/yacc.vim
index 977ffa75e4..8d5eb13071 100644
--- a/runtime/syntax/yacc.vim
+++ b/runtime/syntax/yacc.vim
@@ -1,18 +1,15 @@
" Vim syntax file
" Language: Yacc
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change: Apr 02, 2015
-" Version: 13
-" URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
+" Last Change: Aug 31, 2016
+" Version: 15
+" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_YACC
"
" Options: {{{1
" g:yacc_uses_cpp : if this variable exists, then C++ is loaded rather than C
" ---------------------------------------------------------------------
" this version of syntax/yacc.vim requires 6.0 or later
-if version < 600
- finish
-endif
if exists("b:current_syntax")
syntax clear
endif
@@ -90,7 +87,7 @@ syn sync fromstart
" ---------------------------------------------------------------------
" Define the default highlighting. {{{1
-if !exists("did_yacc_syn_inits")
+if !exists("skip_yacc_syn_inits")
hi def link yaccBrkt yaccStmt
hi def link yaccComment Comment
hi def link yaccCurly Delimiter
diff --git a/runtime/syntax/z8a.vim b/runtime/syntax/z8a.vim
index a3a8a2bbdf..6809eb98cd 100644
--- a/runtime/syntax/z8a.vim
+++ b/runtime/syntax/z8a.vim
@@ -3,11 +3,8 @@
" Maintainer: Milan Pikula <www@fornax.elf.stuba.sk>
" Last Change: 2003 May 11
-" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -85,30 +82,20 @@ syn match z8aComment ";.*"
syn case match
" 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_z8a_syntax_inits")
- if version < 508
- let did_z8a_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink z8aSection Special
- HiLink z8aLabel Label
- HiLink z8aSpecialLabel Label
- HiLink z8aComment Comment
- HiLink z8aInstruction Statement
- HiLink z8aSpecInst Statement
- HiLink z8aInclude Include
- HiLink z8aPreCondit PreCondit
- HiLink z8aPreProc PreProc
- HiLink z8aNumber Number
- HiLink z8aString String
-
- delcommand HiLink
-endif
+" Only when an item doesn't have highlighting yet
+
+hi def link z8aSection Special
+hi def link z8aLabel Label
+hi def link z8aSpecialLabel Label
+hi def link z8aComment Comment
+hi def link z8aInstruction Statement
+hi def link z8aSpecInst Statement
+hi def link z8aInclude Include
+hi def link z8aPreCondit PreCondit
+hi def link z8aPreProc PreProc
+hi def link z8aNumber Number
+hi def link z8aString String
+
let b:current_syntax = "z8a"
" vim: ts=8
diff --git a/runtime/syntax/zsh.vim b/runtime/syntax/zsh.vim
index 0d385a35d0..e16e74e0c2 100644
--- a/runtime/syntax/zsh.vim
+++ b/runtime/syntax/zsh.vim
@@ -2,9 +2,9 @@
" Language: Zsh shell script
" Maintainer: Christian Brabandt <cb@256bit.org>
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2016-02-15
+" Latest Revision: 2017-07-11
" License: Vim (see :h license)
-" Repository: https://github.com/chrisbra/vim-zsh
+" Repository: https://github.com/chrisbra/vim-zsh
if exists("b:current_syntax")
finish
@@ -24,7 +24,7 @@ endif
syn keyword zshTodo contained TODO FIXME XXX NOTE
-syn region zshComment oneline start='\%(^\|\s*\)#' end='$'
+syn region zshComment oneline start='\%(^\|\s\+\)#' end='$'
\ contains=zshTodo,@Spell fold
syn region zshComment start='^\s*#' end='^\%(\s*#\)\@!'
@@ -88,33 +88,20 @@ syn match zshVariable '\<\h\w*' contained
syn match zshVariableDef '\<\h\w*\ze+\=='
" XXX: how safe is this?
syn region zshVariableDef oneline
- \ start='\$\@<!\<\h\w*\[' end='\]\ze+\=='
+ \ start='\$\@<!\<\h\w*\[' end='\]\ze+\?=\?'
\ contains=@zshSubst
-syn cluster zshDerefs contains=zshShortDeref,zshLongDeref,zshDeref
+syn cluster zshDerefs contains=zshShortDeref,zshLongDeref,zshDeref,zshDollarVar
-if !exists("g:zsh_syntax_variables")
- let s:zsh_syntax_variables = 'all'
-else
- let s:zsh_syntax_variables = g:zsh_syntax_variables
-endif
+syn match zshShortDeref '\$[!#$*@?_-]\w\@!'
+syn match zshShortDeref '\$[=^~]*[#+]*\d\+\>'
-if s:zsh_syntax_variables =~ 'short\|all'
- syn match zshShortDeref '\$[!#$*@?_-]\w\@!'
- syn match zshShortDeref '\$[=^~]*[#+]*\d\+\>'
-endif
+syn match zshLongDeref '\$\%(ARGC\|argv\|status\|pipestatus\|CPUTYPE\|EGID\|EUID\|ERRNO\|GID\|HOST\|LINENO\|LOGNAME\)'
+syn match zshLongDeref '\$\%(MACHTYPE\|OLDPWD OPTARG\|OPTIND\|OSTYPE\|PPID\|PWD\|RANDOM\|SECONDS\|SHLVL\|signals\)'
+syn match zshLongDeref '\$\%(TRY_BLOCK_ERROR\|TTY\|TTYIDLE\|UID\|USERNAME\|VENDOR\|ZSH_NAME\|ZSH_VERSION\|REPLY\|reply\|TERM\)'
-if s:zsh_syntax_variables =~ 'long\|all'
- syn match zshLongDeref '\$\%(ARGC\|argv\|status\|pipestatus\|CPUTYPE\|EGID\|EUID\|ERRNO\|GID\|HOST\|LINENO\|LOGNAME\)'
- syn match zshLongDeref '\$\%(MACHTYPE\|OLDPWD OPTARG\|OPTIND\|OSTYPE\|PPID\|PWD\|RANDOM\|SECONDS\|SHLVL\|signals\)'
- syn match zshLongDeref '\$\%(TRY_BLOCK_ERROR\|TTY\|TTYIDLE\|UID\|USERNAME\|VENDOR\|ZSH_NAME\|ZSH_VERSION\|REPLY\|reply\|TERM\)'
-endif
-
-if s:zsh_syntax_variables =~ 'all'
- syn match zshDeref '\$[=^~]*[#+]*\h\w*\>'
-else
- syn match zshDeref transparent contains=NONE '\$[=^~]*[#+]*\h\w*\>'
-endif
+syn match zshDollarVar '\$\h\w*'
+syn match zshDeref '\$[=^~]*[#+]*\h\w*\>'
syn match zshCommands '\%(^\|\s\)[.:]\ze\s'
syn keyword zshCommands alias autoload bg bindkey break bye cap cd
@@ -126,10 +113,10 @@ syn keyword zshCommands alias autoload bg bindkey break bye cap cd
\ functions getcap getln getopts hash history
\ jobs kill let limit log logout popd print
\ printf pushd pushln pwd r read readonly
- \ rehash return sched set setcap setopt shift
+ \ rehash return sched set setcap shift
\ source stat suspend test times trap true
\ ttyctl type ulimit umask unalias unfunction
- \ unhash unlimit unset unsetopt vared wait
+ \ unhash unlimit unset vared wait
\ whence where which zcompile zformat zftp zle
\ zmodload zparseopts zprof zpty zregexparse
\ zsocket zstyle ztcp
@@ -145,163 +132,199 @@ syn keyword zshCommands alias autoload bg bindkey break bye cap cd
" done
syn case ignore
-syn keyword zshOptions aliases allexport all_export alwayslastprompt
- \ always_last_prompt always_lastprompt alwaystoend always_to_end appendcreate
- \ append_create appendhistory append_history autocd auto_cd autocontinue
- \ auto_continue autolist auto_list
- \ automenu auto_menu autonamedirs auto_name_dirs
- \ autoparamkeys auto_param_keys autoparamslash
- \ auto_param_slash autopushd auto_pushd autoremoveslash
- \ auto_remove_slash autoresume auto_resume badpattern bad_pattern
- \ banghist bang_hist bareglobqual bare_glob_qual
- \ bashautolist bash_auto_list bashrematch bash_rematch
- \ beep bgnice bg_nice braceccl brace_ccl braceexpand brace_expand
- \ bsdecho bsd_echo caseglob case_glob casematch case_match
- \ cbases c_bases cdablevars cdable_vars cd_able_vars chasedots chase_dots
- \ chaselinks chase_links checkjobs check_jobs
- \ clobber combiningchars combining_chars completealiases
- \ complete_aliases completeinword complete_in_word
- \ continueonerror continue_on_error correct
- \ correctall correct_all cprecedences c_precedences
- \ cshjunkiehistory csh_junkie_history cshjunkieloops
- \ csh_junkie_loops cshjunkiequotes csh_junkie_quotes
- \ csh_nullcmd csh_null_cmd cshnullcmd csh_null_cmd cshnullglob csh_null_glob
- \ debugbeforecmd debug_before_cmd dotglob dot_glob dvorak
- \ emacs equals errexit err_exit errreturn err_return evallineno
- \ eval_lineno exec extendedglob extended_glob extendedhistory
- \ extended_history flowcontrol flow_control forcefloat
- \ force_float functionargzero function_argzero function_arg_zero glob globalexport
- \ global_export globalrcs global_rcs globassign glob_assign
- \ globcomplete glob_complete globdots glob_dots glob_subst
- \ globsubst globstarshort glob_star_short hashall hash_all hashcmds
- \ hash_cmds hashdirs hash_dirs hashexecutablesonly hash_executables_only
- \ hashlistall hash_list_all histallowclobber hist_allow_clobber histappend
- \ hist_append histbeep hist_beep hist_expand hist_expire_dups_first
- \ histexpand histexpiredupsfirst histfcntllock hist_fcntl_lock
- \ histfindnodups hist_find_no_dups histignorealldups
- \ hist_ignore_all_dups histignoredups hist_ignore_dups
- \ histignorespace hist_ignore_space histlexwords hist_lex_words
- \ histnofunctions hist_no_functions histnostore hist_no_store
- \ histreduceblanks hist_reduce_blanks histsavebycopy
- \ hist_save_by_copy histsavenodups hist_save_no_dups
- \ histsubstpattern hist_subst_pattern histverify hist_verify
- \ hup ignorebraces ignore_braces ignoreclosebraces ignore_close_braces
- \ ignoreeof ignore_eof incappendhistory inc_append_history
- \ incappendhistorytime inc_append_history_time interactive
- \ interactivecomments interactive_comments ksharrays ksh_arrays
- \ kshautoload ksh_autoload kshglob ksh_glob kshoptionprint
- \ ksh_option_print kshtypeset ksh_typeset kshzerosubscript
- \ ksh_zero_subscript listambiguous list_ambiguous listbeep
- \ list_beep listpacked list_packed listrowsfirst list_rows_first
- \ listtypes list_types localloops local_loops localoptions
- \ local_options localpatterns local_patterns localtraps
- \ local_traps log login longlistjobs long_list_jobs magicequalsubst
- \ magic_equal_subst mailwarn mail_warn mail_warning mark_dirs
- \ mailwarning markdirs menucomplete menu_complete monitor
- \ multibyte multi_byte multifuncdef multi_func_def multios
- \ multi_os nomatch no_match notify nullglob null_glob numericglobsort
- \ numeric_glob_sort octalzeroes octal_zeroes onecmd one_cmd
- \ overstrike over_strike pathdirs path_dirs pathscript
- \ path_script physical pipefail pipe_fail posixaliases
- \ posix_aliases posixargzero posix_arg_zero posix_argzero posixbuiltins
- \ posix_builtins posixcd posix_cd posixidentifiers posix_identifiers
- \ posixjobs posix_jobs posixstrings posix_strings posixtraps
- \ posix_traps printeightbit print_eight_bit printexitvalue
- \ print_exit_value privileged promptbang prompt_bang promptcr
- \ prompt_cr promptpercent prompt_percent promptsp prompt_sp
- \ promptsubst prompt_subst promptvars prompt_vars pushdignoredups
- \ pushd_ignore_dups pushdminus pushd_minus pushdsilent pushd_silent
- \ pushdtohome pushd_to_home rcexpandparam rc_expandparam rc_expand_param rcquotes
- \ rc_quotes rcs recexact rec_exact rematchpcre re_match_pcre rematch_pcre
- \ restricted rmstarsilent rm_star_silent rmstarwait rm_star_wait
- \ sharehistory share_history shfileexpansion sh_file_expansion
- \ shglob sh_glob shinstdin shin_stdin shnullcmd sh_nullcmd
- \ shoptionletters sh_option_letters shortloops short_loops shwordsplit
- \ sh_word_split singlecommand single_command singlelinezle single_line_zle
- \ sourcetrace source_trace stdin sunkeyboardhack sun_keyboard_hack
- \ trackall track_all transientrprompt transient_rprompt
- \ trapsasync traps_async typesetsilent type_set_silent typeset_silent unset verbose vi
- \ warncreateglobal warn_create_global xtrace zle
-
-syn keyword zshOptions noaliases no_aliases noallexport no_allexport noall_export no_all_export noalwayslastprompt no_alwayslastprompt
- \ noalways_lastprompt no_always_lastprompt no_always_last_prompt noalwaystoend no_alwaystoend noalways_to_end no_always_to_end
- \ noappendcreate no_appendcreate no_append_create noappendhistory no_appendhistory noappend_history no_append_history noautocd
- \ no_autocd no_auto_cd noautocontinue no_autocontinue noauto_continue no_auto_continue noautolist no_autolist noauto_list
- \ no_auto_list noautomenu no_automenu noauto_menu no_auto_menu noautonamedirs no_autonamedirs noauto_name_dirs
- \ no_auto_name_dirs noautoparamkeys no_autoparamkeys noauto_param_keys no_auto_param_keys noautoparamslash no_autoparamslash
- \ noauto_param_slash no_auto_param_slash noautopushd no_autopushd noauto_pushd no_auto_pushd noautoremoveslash no_autoremoveslash
- \ noauto_remove_slash no_auto_remove_slash noautoresume no_autoresume noauto_resume no_auto_resume nobadpattern no_badpattern no_bad_pattern
- \ nobanghist no_banghist nobang_hist no_bang_hist nobareglobqual no_bareglobqual nobare_glob_qual no_bare_glob_qual
- \ nobashautolist no_bashautolist nobash_auto_list no_bash_auto_list nobashrematch no_bashrematch nobash_rematch no_bash_rematch
- \ nobeep no_beep nobgnice no_bgnice no_bg_nice nobraceccl no_braceccl nobrace_ccl no_brace_ccl nobraceexpand no_braceexpand nobrace_expand no_brace_expand
- \ nobsdecho no_bsdecho nobsd_echo no_bsd_echo nocaseglob no_caseglob nocase_glob no_case_glob nocasematch no_casematch nocase_match no_case_match
- \ nocbases no_cbases no_c_bases nocdablevars no_cdablevars no_cdable_vars nocd_able_vars no_cd_able_vars nochasedots no_chasedots nochase_dots no_chase_dots
- \ nochaselinks no_chaselinks nochase_links no_chase_links nocheckjobs no_checkjobs nocheck_jobs no_check_jobs
- \ noclobber no_clobber nocombiningchars no_combiningchars nocombining_chars no_combining_chars nocompletealiases no_completealiases
- \ nocomplete_aliases no_complete_aliases nocompleteinword no_completeinword nocomplete_in_word no_complete_in_word
- \ nocontinueonerror no_continueonerror nocontinue_on_error no_continue_on_error nocorrect no_correct
- \ nocorrectall no_correctall nocorrect_all no_correct_all nocprecedences no_cprecedences noc_precedences no_c_precedences
- \ nocshjunkiehistory no_cshjunkiehistory nocsh_junkie_history no_csh_junkie_history nocshjunkieloops no_cshjunkieloops
- \ nocsh_junkie_loops no_csh_junkie_loops nocshjunkiequotes no_cshjunkiequotes nocsh_junkie_quotes no_csh_junkie_quotes
- \ nocshnullcmd no_cshnullcmd no_csh_nullcmd nocsh_null_cmd no_csh_null_cmd nocshnullglob no_cshnullglob nocsh_null_glob no_csh_null_glob
- \ nodebugbeforecmd no_debugbeforecmd nodebug_before_cmd no_debug_before_cmd nodotglob no_dotglob nodot_glob no_dot_glob nodvorak no_dvorak
- \ noemacs no_emacs noequals no_equals noerrexit no_errexit noerr_exit no_err_exit noerrreturn no_errreturn noerr_return no_err_return noevallineno no_evallineno
- \ noeval_lineno no_eval_lineno noexec no_exec noextendedglob no_extendedglob noextended_glob no_extended_glob noextendedhistory no_extendedhistory
- \ noextended_history no_extended_history noflowcontrol no_flowcontrol noflow_control no_flow_control noforcefloat no_forcefloat
- \ noforce_float no_force_float nofunctionargzero no_functionargzero nofunction_arg_zero no_function_argzero no_function_arg_zero noglob no_glob noglobalexport no_globalexport
- \ noglobal_export no_global_export noglobalrcs no_globalrcs noglobal_rcs no_global_rcs noglobassign no_globassign noglob_assign no_glob_assign
- \ noglobcomplete no_globcomplete noglob_complete no_glob_complete noglobdots no_globdots noglob_dots no_glob_dots
- \ noglobstarshort no_glob_star_short noglob_subst no_glob_subst
- \ noglobsubst no_globsubst nohashall no_hashall nohash_all no_hash_all nohashcmds no_hashcmds nohash_cmds no_hash_cmds nohashdirs no_hashdirs
- \ nohash_dirs no_hash_dirs nohashexecutablesonly no_hashexecutablesonly nohash_executables_only no_hash_executables_only nohashlistall no_hashlistall
- \ nohash_list_all no_hash_list_all nohistallowclobber no_histallowclobber nohist_allow_clobber no_hist_allow_clobber nohistappend no_histappend
- \ nohist_append no_hist_append nohistbeep no_histbeep nohist_beep no_hist_beep nohist_expand no_hist_expand nohist_expire_dups_first no_hist_expire_dups_first
- \ nohistexpand no_histexpand nohistexpiredupsfirst no_histexpiredupsfirst nohistfcntllock no_histfcntllock nohist_fcntl_lock no_hist_fcntl_lock
- \ nohistfindnodups no_histfindnodups nohist_find_no_dups no_hist_find_no_dups nohistignorealldups no_histignorealldups
- \ nohist_ignore_all_dups no_hist_ignore_all_dups nohistignoredups no_histignoredups nohist_ignore_dups no_hist_ignore_dups
- \ nohistignorespace no_histignorespace nohist_ignore_space no_hist_ignore_space nohistlexwords no_histlexwords nohist_lex_words no_hist_lex_words
- \ nohistnofunctions no_histnofunctions nohist_no_functions no_hist_no_functions nohistnostore no_histnostore nohist_no_store no_hist_no_store
- \ nohistreduceblanks no_histreduceblanks nohist_reduce_blanks no_hist_reduce_blanks nohistsavebycopy no_histsavebycopy
- \ nohist_save_by_copy no_hist_save_by_copy nohistsavenodups no_histsavenodups nohist_save_no_dups no_hist_save_no_dups
- \ nohistsubstpattern no_histsubstpattern nohist_subst_pattern no_hist_subst_pattern nohistverify no_histverify nohist_verify no_hist_verify
- \ nohup no_hup noignorebraces no_ignorebraces noignore_braces no_ignore_braces noignoreclosebraces no_ignoreclosebraces noignore_close_braces no_ignore_close_braces
- \ noignoreeof no_ignoreeof noignore_eof no_ignore_eof noincappendhistory no_incappendhistory noinc_append_history no_inc_append_history
- \ noincappendhistorytime no_incappendhistorytime noinc_append_history_time no_inc_append_history_time nointeractive no_interactive
- \ nointeractivecomments no_interactivecomments nointeractive_comments no_interactive_comments noksharrays no_ksharrays noksh_arrays no_ksh_arrays
- \ nokshautoload no_kshautoload noksh_autoload no_ksh_autoload nokshglob no_kshglob noksh_glob no_ksh_glob nokshoptionprint no_kshoptionprint
- \ noksh_option_print no_ksh_option_print nokshtypeset no_kshtypeset noksh_typeset no_ksh_typeset nokshzerosubscript no_kshzerosubscript
- \ noksh_zero_subscript no_ksh_zero_subscript nolistambiguous no_listambiguous nolist_ambiguous no_list_ambiguous nolistbeep no_listbeep
- \ nolist_beep no_list_beep nolistpacked no_listpacked nolist_packed no_list_packed nolistrowsfirst no_listrowsfirst nolist_rows_first no_list_rows_first
- \ nolisttypes no_listtypes nolist_types no_list_types nolocalloops no_localloops nolocal_loops no_local_loops nolocaloptions no_localoptions
- \ nolocal_options no_local_options nolocalpatterns no_localpatterns nolocal_patterns no_local_patterns nolocaltraps no_localtraps
- \ nolocal_traps no_local_traps nolog no_log nologin no_login nolonglistjobs no_longlistjobs nolong_list_jobs no_long_list_jobs nomagicequalsubst no_magicequalsubst
- \ nomagic_equal_subst no_magic_equal_subst nomailwarn no_mailwarn nomail_warn no_mail_warn nomail_warning no_mail_warning nomark_dirs no_mark_dirs
- \ nomailwarning no_mailwarning nomarkdirs no_markdirs nomenucomplete no_menucomplete nomenu_complete no_menu_complete nomonitor no_monitor
- \ nomultibyte no_multibyte nomulti_byte no_multi_byte nomultifuncdef no_multifuncdef nomulti_func_def no_multi_func_def nomultios no_multios
- \ nomulti_os no_multi_os nonomatch no_nomatch nono_match no_no_match nonotify no_notify nonullglob no_nullglob nonull_glob no_null_glob nonumericglobsort no_numericglobsort
- \ nonumeric_glob_sort no_numeric_glob_sort nooctalzeroes no_octalzeroes nooctal_zeroes no_octal_zeroes noonecmd no_onecmd noone_cmd no_one_cmd
- \ nooverstrike no_overstrike noover_strike no_over_strike nopathdirs no_pathdirs nopath_dirs no_path_dirs nopathscript no_pathscript
- \ nopath_script no_path_script nophysical no_physical nopipefail no_pipefail nopipe_fail no_pipe_fail noposixaliases no_posixaliases
- \ noposix_aliases no_posix_aliases noposixargzero no_posixargzero no_posix_argzero noposix_arg_zero no_posix_arg_zero noposixbuiltins no_posixbuiltins
- \ noposix_builtins no_posix_builtins noposixcd no_posixcd noposix_cd no_posix_cd noposixidentifiers no_posixidentifiers noposix_identifiers no_posix_identifiers
- \ noposixjobs no_posixjobs noposix_jobs no_posix_jobs noposixstrings no_posixstrings noposix_strings no_posix_strings noposixtraps no_posixtraps
- \ noposix_traps no_posix_traps noprinteightbit no_printeightbit noprint_eight_bit no_print_eight_bit noprintexitvalue no_printexitvalue
- \ noprint_exit_value no_print_exit_value noprivileged no_privileged nopromptbang no_promptbang noprompt_bang no_prompt_bang nopromptcr no_promptcr
- \ noprompt_cr no_prompt_cr nopromptpercent no_promptpercent noprompt_percent no_prompt_percent nopromptsp no_promptsp noprompt_sp no_prompt_sp
- \ nopromptsubst no_promptsubst noprompt_subst no_prompt_subst nopromptvars no_promptvars noprompt_vars no_prompt_vars nopushdignoredups no_pushdignoredups
- \ nopushd_ignore_dups no_pushd_ignore_dups nopushdminus no_pushdminus nopushd_minus no_pushd_minus nopushdsilent no_pushdsilent nopushd_silent no_pushd_silent
- \ nopushdtohome no_pushdtohome nopushd_to_home no_pushd_to_home norcexpandparam no_rcexpandparam norc_expandparam no_rc_expandparam no_rc_expand_param norcquotes no_rcquotes
- \ norc_quotes no_rc_quotes norcs no_rcs norecexact no_recexact norec_exact no_rec_exact norematchpcre no_rematchpcre nore_match_pcre no_re_match_pcre no_rematch_pcre
- \ norestricted no_restricted normstarsilent no_rmstarsilent norm_star_silent no_rm_star_silent normstarwait no_rmstarwait norm_star_wait no_rm_star_wait
- \ nosharehistory no_sharehistory noshare_history no_share_history noshfileexpansion no_shfileexpansion nosh_file_expansion no_sh_file_expansion
- \ noshglob no_shglob nosh_glob no_sh_glob noshinstdin no_shinstdin noshin_stdin no_shin_stdin noshnullcmd no_shnullcmd nosh_nullcmd no_sh_nullcmd
- \ noshoptionletters no_shoptionletters nosh_option_letters no_sh_option_letters noshortloops no_shortloops noshort_loops no_short_loops noshwordsplit no_shwordsplit
- \ nosh_word_split no_sh_word_split nosinglecommand no_singlecommand nosingle_command no_single_command nosinglelinezle no_singlelinezle nosingle_line_zle no_single_line_zle
- \ nosourcetrace no_sourcetrace nosource_trace no_source_trace nostdin no_stdin nosunkeyboardhack no_sunkeyboardhack nosun_keyboard_hack no_sun_keyboard_hack
- \ notrackall no_trackall notrack_all no_track_all notransientrprompt no_transientrprompt notransient_rprompt no_transient_rprompt
- \ notrapsasync no_trapsasync notrapasync no_trapasync no_traps_async notypesetsilent no_typesetsilent notype_set_silent no_type_set_silent no_typeset_silent \nounset no_unset
- \ noverbose no_verbose novi no_vi nowarncreateglobal no_warncreateglobal nowarn_create_global no_warn_create_global noxtrace no_xtrace nozle no_zle
-syn case match
+
+syn match zshOptStart /^\s*\%(\%(\%(un\)\?setopt\)\|set\s+[-+]o\)/ nextgroup=zshOption skipwhite
+syn match zshOption /
+ \ \%(\%(\<no_\?\)\?aliases\>\)\|
+ \ \%(\%(\<no_\?\)\?allexport\>\)\|\%(\%(no_\?\)\?all_export\>\)\|
+ \ \%(\%(\<no_\?\)\?alwayslastprompt\>\)\|\%(\%(no_\?\)\?always_last_prompt\>\)\|\%(\%(no_\?\)\?always_lastprompt\>\)\|
+ \ \%(\%(\<no_\?\)\?alwaystoend\>\)\|\%(\%(no_\?\)\?always_to_end\>\)\|
+ \ \%(\%(\<no_\?\)\?appendcreate\>\)\|\%(\%(no_\?\)\?append_create\>\)\|
+ \ \%(\%(\<no_\?\)\?appendhistory\>\)\|\%(\%(no_\?\)\?append_history\>\)\|
+ \ \%(\%(\<no_\?\)\?autocd\>\)\|\%(\%(no_\?\)\?auto_cd\>\)\|
+ \ \%(\%(\<no_\?\)\?autocontinue\>\)\|\%(\%(no_\?\)\?auto_continue\>\)\|
+ \ \%(\%(\<no_\?\)\?autolist\>\)\|\%(\%(no_\?\)\?auto_list\>\)\|
+ \ \%(\%(\<no_\?\)\?automenu\>\)\|\%(\%(no_\?\)\?auto_menu\>\)\|
+ \ \%(\%(\<no_\?\)\?autonamedirs\>\)\|\%(\%(no_\?\)\?auto_name_dirs\>\)\|
+ \ \%(\%(\<no_\?\)\?autoparamkeys\>\)\|\%(\%(no_\?\)\?auto_param_keys\>\)\|
+ \ \%(\%(\<no_\?\)\?autoparamslash\>\)\|\%(\%(no_\?\)\?auto_param_slash\>\)\|
+ \ \%(\%(\<no_\?\)\?autopushd\>\)\|\%(\%(no_\?\)\?auto_pushd\>\)\|
+ \ \%(\%(\<no_\?\)\?autoremoveslash\>\)\|\%(\%(no_\?\)\?auto_remove_slash\>\)\|
+ \ \%(\%(\<no_\?\)\?autoresume\>\)\|\%(\%(no_\?\)\?auto_resume\>\)\|
+ \ \%(\%(\<no_\?\)\?badpattern\>\)\|\%(\%(no_\?\)\?bad_pattern\>\)\|
+ \ \%(\%(\<no_\?\)\?banghist\>\)\|\%(\%(no_\?\)\?bang_hist\>\)\|
+ \ \%(\%(\<no_\?\)\?bareglobqual\>\)\|\%(\%(no_\?\)\?bare_glob_qual\>\)\|
+ \ \%(\%(\<no_\?\)\?bashautolist\>\)\|\%(\%(no_\?\)\?bash_auto_list\>\)\|
+ \ \%(\%(\<no_\?\)\?bashrematch\>\)\|\%(\%(no_\?\)\?bash_rematch\>\)\|
+ \ \%(\%(\<no_\?\)\?beep\>\)\|
+ \ \%(\%(\<no_\?\)\?bgnice\>\)\|\%(\%(no_\?\)\?bg_nice\>\)\|
+ \ \%(\%(\<no_\?\)\?braceccl\>\)\|\%(\%(no_\?\)\?brace_ccl\>\)\|
+ \ \%(\%(\<no_\?\)\?braceexpand\>\)\|\%(\%(no_\?\)\?brace_expand\>\)\|
+ \ \%(\%(\<no_\?\)\?bsdecho\>\)\|\%(\%(no_\?\)\?bsd_echo\>\)\|
+ \ \%(\%(\<no_\?\)\?caseglob\>\)\|\%(\%(no_\?\)\?case_glob\>\)\|
+ \ \%(\%(\<no_\?\)\?casematch\>\)\|\%(\%(no_\?\)\?case_match\>\)\|
+ \ \%(\%(\<no_\?\)\?cbases\>\)\|\%(\%(no_\?\)\?c_bases\>\)\|
+ \ \%(\%(\<no_\?\)\?cdablevars\>\)\|\%(\%(no_\?\)\?cdable_vars\>\)\|\%(\%(no_\?\)\?cd_able_vars\>\)\|
+ \ \%(\%(\<no_\?\)\?chasedots\>\)\|\%(\%(no_\?\)\?chase_dots\>\)\|
+ \ \%(\%(\<no_\?\)\?chaselinks\>\)\|\%(\%(no_\?\)\?chase_links\>\)\|
+ \ \%(\%(\<no_\?\)\?checkjobs\>\)\|\%(\%(no_\?\)\?check_jobs\>\)\|
+ \ \%(\%(\<no_\?\)\?clobber\>\)\|
+ \ \%(\%(\<no_\?\)\?combiningchars\>\)\|\%(\%(no_\?\)\?combining_chars\>\)\|
+ \ \%(\%(\<no_\?\)\?completealiases\>\)\|\%(\%(no_\?\)\?complete_aliases\>\)\|
+ \ \%(\%(\<no_\?\)\?completeinword\>\)\|\%(\%(no_\?\)\?complete_in_word\>\)\|
+ \ \%(\%(\<no_\?\)\?continueonerror\>\)\|\%(\%(no_\?\)\?continue_on_error\>\)\|
+ \ \%(\%(\<no_\?\)\?correct\>\)\|
+ \ \%(\%(\<no_\?\)\?correctall\>\)\|\%(\%(no_\?\)\?correct_all\>\)\|
+ \ \%(\%(\<no_\?\)\?cprecedences\>\)\|\%(\%(no_\?\)\?c_precedences\>\)\|
+ \ \%(\%(\<no_\?\)\?cshjunkiehistory\>\)\|\%(\%(no_\?\)\?csh_junkie_history\>\)\|
+ \ \%(\%(\<no_\?\)\?cshjunkieloops\>\)\|\%(\%(no_\?\)\?csh_junkie_loops\>\)\|
+ \ \%(\%(\<no_\?\)\?cshjunkiequotes\>\)\|\%(\%(no_\?\)\?csh_junkie_quotes\>\)\|
+ \ \%(\%(\<no_\?\)\?csh_nullcmd\>\)\|\%(\%(no_\?\)\?csh_null_cmd\>\)\|\%(\%(no_\?\)\?cshnullcmd\>\)\|\%(\%(no_\?\)\?csh_null_cmd\>\)\|
+ \ \%(\%(\<no_\?\)\?cshnullglob\>\)\|\%(\%(no_\?\)\?csh_null_glob\>\)\|
+ \ \%(\%(\<no_\?\)\?debugbeforecmd\>\)\|\%(\%(no_\?\)\?debug_before_cmd\>\)\|
+ \ \%(\%(\<no_\?\)\?dotglob\>\)\|\%(\%(no_\?\)\?dot_glob\>\)\|
+ \ \%(\%(\<no_\?\)\?dvorak\>\)\|
+ \ \%(\%(\<no_\?\)\?emacs\>\)\|
+ \ \%(\%(\<no_\?\)\?equals\>\)\|
+ \ \%(\%(\<no_\?\)\?errexit\>\)\|\%(\%(no_\?\)\?err_exit\>\)\|
+ \ \%(\%(\<no_\?\)\?errreturn\>\)\|\%(\%(no_\?\)\?err_return\>\)\|
+ \ \%(\%(\<no_\?\)\?evallineno_\?\)\|\%(\%(no_\?\)\?eval_lineno_\?\)\|
+ \ \%(\%(\<no_\?\)\?exec\>\)\|
+ \ \%(\%(\<no_\?\)\?extendedglob\>\)\|\%(\%(no_\?\)\?extended_glob\>\)\|
+ \ \%(\%(\<no_\?\)\?extendedhistory\>\)\|\%(\%(no_\?\)\?extended_history\>\)\|
+ \ \%(\%(\<no_\?\)\?flowcontrol\>\)\|\%(\%(no_\?\)\?flow_control\>\)\|
+ \ \%(\%(\<no_\?\)\?forcefloat\>\)\|\%(\%(no_\?\)\?force_float\>\)\|
+ \ \%(\%(\<no_\?\)\?functionargzero\>\)\|\%(\%(no_\?\)\?function_argzero\>\)\|\%(\%(no_\?\)\?function_arg_zero\>\)\|
+ \ \%(\%(\<no_\?\)\?glob\>\)\|
+ \ \%(\%(\<no_\?\)\?globalexport\>\)\|\%(\%(no_\?\)\?global_export\>\)\|
+ \ \%(\%(\<no_\?\)\?globalrcs\>\)\|\%(\%(no_\?\)\?global_rcs\>\)\|
+ \ \%(\%(\<no_\?\)\?globassign\>\)\|\%(\%(no_\?\)\?glob_assign\>\)\|
+ \ \%(\%(\<no_\?\)\?globcomplete\>\)\|\%(\%(no_\?\)\?glob_complete\>\)\|
+ \ \%(\%(\<no_\?\)\?globdots\>\)\|\%(\%(no_\?\)\?glob_dots\>\)\|
+ \ \%(\%(\<no_\?\)\?glob_subst\>\)\|\%(\%(no_\?\)\?globsubst\>\)\|
+ \ \%(\%(\<no_\?\)\?globstarshort\>\)\|\%(\%(no_\?\)\?glob_star_short\>\)\|
+ \ \%(\%(\<no_\?\)\?hashall\>\)\|\%(\%(no_\?\)\?hash_all\>\)\|
+ \ \%(\%(\<no_\?\)\?hashcmds\>\)\|\%(\%(no_\?\)\?hash_cmds\>\)\|
+ \ \%(\%(\<no_\?\)\?hashdirs\>\)\|\%(\%(no_\?\)\?hash_dirs\>\)\|
+ \ \%(\%(\<no_\?\)\?hashexecutablesonly\>\)\|\%(\%(no_\?\)\?hash_executables_only\>\)\|
+ \ \%(\%(\<no_\?\)\?hashlistall\>\)\|\%(\%(no_\?\)\?hash_list_all\>\)\|
+ \ \%(\%(\<no_\?\)\?histallowclobber\>\)\|\%(\%(no_\?\)\?hist_allow_clobber\>\)\|
+ \ \%(\%(\<no_\?\)\?histappend\>\)\|\%(\%(no_\?\)\?hist_append\>\)\|
+ \ \%(\%(\<no_\?\)\?histbeep\>\)\|\%(\%(no_\?\)\?hist_beep\>\)\|
+ \ \%(\%(\<no_\?\)\?hist_expand\>\)\|\%(\%(no_\?\)\?histexpand\>\)\|
+ \ \%(\%(\<no_\?\)\?hist_expire_dups_first\>\)\|\%(\%(no_\?\)\?histexpiredupsfirst\>\)\|
+ \ \%(\%(\<no_\?\)\?histfcntllock\>\)\|\%(\%(no_\?\)\?hist_fcntl_lock\>\)\|
+ \ \%(\%(\<no_\?\)\?histfindnodups\>\)\|\%(\%(no_\?\)\?hist_find_no_dups\>\)\|
+ \ \%(\%(\<no_\?\)\?histignorealldups\>\)\|\%(\%(no_\?\)\?hist_ignore_all_dups\>\)\|
+ \ \%(\%(\<no_\?\)\?histignoredups\>\)\|\%(\%(no_\?\)\?hist_ignore_dups\>\)\|
+ \ \%(\%(\<no_\?\)\?histignorespace\>\)\|\%(\%(no_\?\)\?hist_ignore_space\>\)\|
+ \ \%(\%(\<no_\?\)\?histlexwords\>\)\|\%(\%(no_\?\)\?hist_lex_words\>\)\|
+ \ \%(\%(\<no_\?\)\?histnofunctions\>\)\|\%(\%(no_\?\)\?hist_no_functions\>\)\|
+ \ \%(\%(\<no_\?\)\?histnostore\>\)\|\%(\%(no_\?\)\?hist_no_store\>\)\|
+ \ \%(\%(\<no_\?\)\?histreduceblanks\>\)\|\%(\%(no_\?\)\?hist_reduce_blanks\>\)\|
+ \ \%(\%(\<no_\?\)\?histsavebycopy\>\)\|\%(\%(no_\?\)\?hist_save_by_copy\>\)\|
+ \ \%(\%(\<no_\?\)\?histsavenodups\>\)\|\%(\%(no_\?\)\?hist_save_no_dups\>\)\|
+ \ \%(\%(\<no_\?\)\?histsubstpattern\>\)\|\%(\%(no_\?\)\?hist_subst_pattern\>\)\|
+ \ \%(\%(\<no_\?\)\?histverify\>\)\|\%(\%(no_\?\)\?hist_verify\>\)\|
+ \ \%(\%(\<no_\?\)\?hup\>\)\|
+ \ \%(\%(\<no_\?\)\?ignorebraces\>\)\|\%(\%(no_\?\)\?ignore_braces\>\)\|
+ \ \%(\%(\<no_\?\)\?ignoreclosebraces\>\)\|\%(\%(no_\?\)\?ignore_close_braces\>\)\|
+ \ \%(\%(\<no_\?\)\?ignoreeof\>\)\|\%(\%(no_\?\)\?ignore_eof\>\)\|
+ \ \%(\%(\<no_\?\)\?incappendhistory\>\)\|\%(\%(no_\?\)\?inc_append_history\>\)\|
+ \ \%(\%(\<no_\?\)\?incappendhistorytime\>\)\|\%(\%(no_\?\)\?inc_append_history_time\>\)\|
+ \ \%(\%(\<no_\?\)\?interactive\>\)\|
+ \ \%(\%(\<no_\?\)\?interactivecomments\>\)\|\%(\%(no_\?\)\?interactive_comments\>\)\|
+ \ \%(\%(\<no_\?\)\?ksharrays\>\)\|\%(\%(no_\?\)\?ksh_arrays\>\)\|
+ \ \%(\%(\<no_\?\)\?kshautoload\>\)\|\%(\%(no_\?\)\?ksh_autoload\>\)\|
+ \ \%(\%(\<no_\?\)\?kshglob\>\)\|\%(\%(no_\?\)\?ksh_glob\>\)\|
+ \ \%(\%(\<no_\?\)\?kshoptionprint\>\)\|\%(\%(no_\?\)\?ksh_option_print\>\)\|
+ \ \%(\%(\<no_\?\)\?kshtypeset\>\)\|\%(\%(no_\?\)\?ksh_typeset\>\)\|
+ \ \%(\%(\<no_\?\)\?kshzerosubscript\>\)\|\%(\%(no_\?\)\?ksh_zero_subscript\>\)\|
+ \ \%(\%(\<no_\?\)\?listambiguous\>\)\|\%(\%(no_\?\)\?list_ambiguous\>\)\|
+ \ \%(\%(\<no_\?\)\?listbeep\>\)\|\%(\%(no_\?\)\?list_beep\>\)\|
+ \ \%(\%(\<no_\?\)\?listpacked\>\)\|\%(\%(no_\?\)\?list_packed\>\)\|
+ \ \%(\%(\<no_\?\)\?listrowsfirst\>\)\|\%(\%(no_\?\)\?list_rows_first\>\)\|
+ \ \%(\%(\<no_\?\)\?listtypes\>\)\|\%(\%(no_\?\)\?list_types\>\)\|
+ \ \%(\%(\<no_\?\)\?localloops\>\)\|\%(\%(no_\?\)\?local_loops\>\)\|
+ \ \%(\%(\<no_\?\)\?localoptions\>\)\|\%(\%(no_\?\)\?local_options\>\)\|
+ \ \%(\%(\<no_\?\)\?localpatterns\>\)\|\%(\%(no_\?\)\?local_patterns\>\)\|
+ \ \%(\%(\<no_\?\)\?localtraps\>\)\|\%(\%(no_\?\)\?local_traps\>\)\|
+ \ \%(\%(\<no_\?\)\?log\>\)\|
+ \ \%(\%(\<no_\?\)\?login\>\)\|
+ \ \%(\%(\<no_\?\)\?longlistjobs\>\)\|\%(\%(no_\?\)\?long_list_jobs\>\)\|
+ \ \%(\%(\<no_\?\)\?magicequalsubst\>\)\|\%(\%(no_\?\)\?magic_equal_subst\>\)\|
+ \ \%(\%(\<no_\?\)\?mark_dirs\>\)\|
+ \ \%(\%(\<no_\?\)\?mailwarn\>\)\|\%(\%(no_\?\)\?mail_warn\>\)\|
+ \ \%(\%(\<no_\?\)\?mailwarning\>\)\|\%(\%(no_\?\)\?mail_warning\>\)\|
+ \ \%(\%(\<no_\?\)\?markdirs\>\)\|
+ \ \%(\%(\<no_\?\)\?menucomplete\>\)\|\%(\%(no_\?\)\?menu_complete\>\)\|
+ \ \%(\%(\<no_\?\)\?monitor\>\)\|
+ \ \%(\%(\<no_\?\)\?multibyte\>\)\|\%(\%(no_\?\)\?multi_byte\>\)\|
+ \ \%(\%(\<no_\?\)\?multifuncdef\>\)\|\%(\%(no_\?\)\?multi_func_def\>\)\|
+ \ \%(\%(\<no_\?\)\?multios\>\)\|\%(\%(no_\?\)\?multi_os\>\)\|
+ \ \%(\%(\<no_\?\)\?nomatch\>\)\|\%(\%(no_\?\)\?no_match\>\)\|
+ \ \%(\%(\<no_\?\)\?notify\>\)\|
+ \ \%(\%(\<no_\?\)\?nullglob\>\)\|\%(\%(no_\?\)\?null_glob\>\)\|
+ \ \%(\%(\<no_\?\)\?numericglobsort\>\)\|\%(\%(no_\?\)\?numeric_glob_sort\>\)\|
+ \ \%(\%(\<no_\?\)\?octalzeroes\>\)\|\%(\%(no_\?\)\?octal_zeroes\>\)\|
+ \ \%(\%(\<no_\?\)\?onecmd\>\)\|\%(\%(no_\?\)\?one_cmd\>\)\|
+ \ \%(\%(\<no_\?\)\?overstrike\>\)\|\%(\%(no_\?\)\?over_strike\>\)\|
+ \ \%(\%(\<no_\?\)\?pathdirs\>\)\|\%(\%(no_\?\)\?path_dirs\>\)\|
+ \ \%(\%(\<no_\?\)\?pathscript\>\)\|\%(\%(no_\?\)\?path_script\>\)\|
+ \ \%(\%(\<no_\?\)\?physical\>\)\|
+ \ \%(\%(\<no_\?\)\?pipefail\>\)\|\%(\%(no_\?\)\?pipe_fail\>\)\|
+ \ \%(\%(\<no_\?\)\?posixaliases\>\)\|\%(\%(no_\?\)\?posix_aliases\>\)\|
+ \ \%(\%(\<no_\?\)\?posixargzero\>\)\|\%(\%(no_\?\)\?posix_arg_zero\>\)\|\%(\%(no_\?\)\?posix_argzero\>\)\|
+ \ \%(\%(\<no_\?\)\?posixbuiltins\>\)\|\%(\%(no_\?\)\?posix_builtins\>\)\|
+ \ \%(\%(\<no_\?\)\?posixcd\>\)\|\%(\%(no_\?\)\?posix_cd\>\)\|
+ \ \%(\%(\<no_\?\)\?posixidentifiers\>\)\|\%(\%(no_\?\)\?posix_identifiers\>\)\|
+ \ \%(\%(\<no_\?\)\?posixjobs\>\)\|\%(\%(no_\?\)\?posix_jobs\>\)\|
+ \ \%(\%(\<no_\?\)\?posixstrings\>\)\|\%(\%(no_\?\)\?posix_strings\>\)\|
+ \ \%(\%(\<no_\?\)\?posixtraps\>\)\|\%(\%(no_\?\)\?posix_traps\>\)\|
+ \ \%(\%(\<no_\?\)\?printeightbit\>\)\|\%(\%(no_\?\)\?print_eight_bit\>\)\|
+ \ \%(\%(\<no_\?\)\?printexitvalue\>\)\|\%(\%(no_\?\)\?print_exit_value\>\)\|
+ \ \%(\%(\<no_\?\)\?privileged\>\)\|
+ \ \%(\%(\<no_\?\)\?promptbang\>\)\|\%(\%(no_\?\)\?prompt_bang\>\)\|
+ \ \%(\%(\<no_\?\)\?promptcr\>\)\|\%(\%(no_\?\)\?prompt_cr\>\)\|
+ \ \%(\%(\<no_\?\)\?promptpercent\>\)\|\%(\%(no_\?\)\?prompt_percent\>\)\|
+ \ \%(\%(\<no_\?\)\?promptsp\>\)\|\%(\%(no_\?\)\?prompt_sp\>\)\|
+ \ \%(\%(\<no_\?\)\?promptsubst\>\)\|\%(\%(no_\?\)\?prompt_subst\>\)\|
+ \ \%(\%(\<no_\?\)\?promptvars\>\)\|\%(\%(no_\?\)\?prompt_vars\>\)\|
+ \ \%(\%(\<no_\?\)\?pushdignoredups\>\)\|\%(\%(no_\?\)\?pushd_ignore_dups\>\)\|
+ \ \%(\%(\<no_\?\)\?pushdminus\>\)\|\%(\%(no_\?\)\?pushd_minus\>\)\|
+ \ \%(\%(\<no_\?\)\?pushdsilent\>\)\|\%(\%(no_\?\)\?pushd_silent\>\)\|
+ \ \%(\%(\<no_\?\)\?pushdtohome\>\)\|\%(\%(no_\?\)\?pushd_to_home\>\)\|
+ \ \%(\%(\<no_\?\)\?rcexpandparam\>\)\|\%(\%(no_\?\)\?rc_expandparam\>\)\|\%(\%(no_\?\)\?rc_expand_param\>\)\|
+ \ \%(\%(\<no_\?\)\?rcquotes\>\)\|\%(\%(no_\?\)\?rc_quotes\>\)\|
+ \ \%(\%(\<no_\?\)\?rcs\>\)\|
+ \ \%(\%(\<no_\?\)\?recexact\>\)\|\%(\%(no_\?\)\?rec_exact\>\)\|
+ \ \%(\%(\<no_\?\)\?rematchpcre\>\)\|\%(\%(no_\?\)\?re_match_pcre\>\)\|\%(\%(no_\?\)\?rematch_pcre\>\)\|
+ \ \%(\%(\<no_\?\)\?restricted\>\)\|
+ \ \%(\%(\<no_\?\)\?rmstarsilent\>\)\|\%(\%(no_\?\)\?rm_star_silent\>\)\|
+ \ \%(\%(\<no_\?\)\?rmstarwait\>\)\|\%(\%(no_\?\)\?rm_star_wait\>\)\|
+ \ \%(\%(\<no_\?\)\?sharehistory\>\)\|\%(\%(no_\?\)\?share_history\>\)\|
+ \ \%(\%(\<no_\?\)\?shfileexpansion\>\)\|\%(\%(no_\?\)\?sh_file_expansion\>\)\|
+ \ \%(\%(\<no_\?\)\?shglob\>\)\|\%(\%(no_\?\)\?sh_glob\>\)\|
+ \ \%(\%(\<no_\?\)\?shinstdin\>\)\|\%(\%(no_\?\)\?shin_stdin\>\)\|
+ \ \%(\%(\<no_\?\)\?shnullcmd\>\)\|\%(\%(no_\?\)\?sh_nullcmd\>\)\|
+ \ \%(\%(\<no_\?\)\?shoptionletters\>\)\|\%(\%(no_\?\)\?sh_option_letters\>\)\|
+ \ \%(\%(\<no_\?\)\?shortloops\>\)\|\%(\%(no_\?\)\?short_loops\>\)\|
+ \ \%(\%(\<no_\?\)\?shwordsplit\>\)\|\%(\%(no_\?\)\?sh_word_split\>\)\|
+ \ \%(\%(\<no_\?\)\?singlecommand\>\)\|\%(\%(no_\?\)\?single_command\>\)\|
+ \ \%(\%(\<no_\?\)\?singlelinezle\>\)\|\%(\%(no_\?\)\?single_line_zle\>\)\|
+ \ \%(\%(\<no_\?\)\?sourcetrace\>\)\|\%(\%(no_\?\)\?source_trace\>\)\|
+ \ \%(\%(\<no_\?\)\?stdin\>\)\|
+ \ \%(\%(\<no_\?\)\?sunkeyboardhack\>\)\|\%(\%(no_\?\)\?sun_keyboard_hack\>\)\|
+ \ \%(\%(\<no_\?\)\?trackall\>\)\|\%(\%(no_\?\)\?track_all\>\)\|
+ \ \%(\%(\<no_\?\)\?transientrprompt\>\)\|\%(\%(no_\?\)\?transient_rprompt\>\)\|
+ \ \%(\%(\<no_\?\)\?trapsasync\>\)\|\%(\%(no_\?\)\?traps_async\>\)\|
+ \ \%(\%(\<no_\?\)\?typesetsilent\>\)\|\%(\%(no_\?\)\?type_set_silent\>\)\|\%(\%(no_\?\)\?typeset_silent\>\)\|
+ \ \%(\%(\<no_\?\)\?unset\>\)\|
+ \ \%(\%(\<no_\?\)\?verbose\>\)\|
+ \ \%(\%(\<no_\?\)\?vi\>\)\|
+ \ \%(\%(\<no_\?\)\?warncreateglobal\>\)\|\%(\%(no_\?\)\?warn_create_global\>\)\|
+ \ \%(\%(\<no_\?\)\?xtrace\>\)\|
+ \ \%(\%(\<no_\?\)\?zle\>\)/ nextgroup=zshOption skipwhite contained
syn keyword zshTypes float integer local typeset declare private
@@ -319,9 +342,9 @@ syn cluster zshSubst contains=zshSubst,zshOldSubst,zshMathSubst
syn region zshSubst matchgroup=zshSubstDelim transparent
\ start='\$(' skip='\\)' end=')' contains=TOP fold
syn region zshParentheses transparent start='(' skip='\\)' end=')' fold
+syn region zshGlob start='(#' end=')'
syn region zshMathSubst matchgroup=zshSubstDelim transparent
- \ start='\$((' skip='\\)'
- \ matchgroup=zshSubstDelim end='))'
+ \ start='\$((' skip='\\)' end='))'
\ contains=zshParentheses,@zshSubst,zshNumber,
\ @zshDerefs,zshString keepend fold
syn region zshBrackets contained transparent start='{' skip='\\}'
@@ -359,23 +382,13 @@ hi def link zshRedir Operator
hi def link zshVariable None
hi def link zshVariableDef zshVariable
hi def link zshDereferencing PreProc
-if s:zsh_syntax_variables =~ 'short\|all'
- hi def link zshShortDeref zshDereferencing
-else
- hi def link zshShortDeref None
-endif
-if s:zsh_syntax_variables =~ 'long\|all'
- hi def link zshLongDeref zshDereferencing
-else
- hi def link zshLongDeref None
-endif
-if s:zsh_syntax_variables =~ 'all'
- hi def link zshDeref zshDereferencing
-else
- hi def link zshDeref None
-endif
+hi def link zshShortDeref zshDereferencing
+hi def link zshLongDeref zshDereferencing
+hi def link zshDeref zshDereferencing
+hi def link zshDollarVar zshDereferencing
hi def link zshCommands Keyword
-hi def link zshOptions Constant
+hi def link zshOptStart Keyword
+hi def link zshOption Constant
hi def link zshTypes Type
hi def link zshSwitches Special
hi def link zshNumber Number
@@ -383,6 +396,7 @@ hi def link zshSubst PreProc
hi def link zshMathSubst zshSubst
hi def link zshOldSubst zshSubst
hi def link zshSubstDelim zshSubst
+hi def link zshGlob zshSubst
let b:current_syntax = "zsh"
diff --git a/runtime/tutor/en/vim-01-beginner.tutor b/runtime/tutor/en/vim-01-beginner.tutor
index 47d4ed06a1..3f243a18fa 100644
--- a/runtime/tutor/en/vim-01-beginner.tutor
+++ b/runtime/tutor/en/vim-01-beginner.tutor
@@ -18,12 +18,12 @@ be saved. Don't worry about messing things up; just remember that pressing
[<Esc>](<Esc>) and then [u](u) will undo the latest change.
This tutorial is interactive, and there are a few things you should know.
-Pressing [<Enter>](<Enter>) over text highlighted [like this](holy-grail) will take you to some relevant
-help (hopefully), and pressing K over any word will try to do so too. Sometimes
-you will be required to modify text like
----> this here {expect:this here}
+Pressing [<Enter>](<Enter>) over text highlighted [like this](holy-grail) will take you to some
+relevant help (hopefully), and pressing K over any word will try to do so too.
+Sometimes you will be required to modify text like
+this here
Once you have done the changes correctly, the ✗ sign at the left will change
-to ✓. I imagine you can already see how neat Vim can be ;)
+to ✓. I imagine you can already see how neat Vim can be. ;)
Other times, you'll be prompted to run a command (I'll explain this later):
~~~ cmd
:help <Enter>
@@ -36,36 +36,36 @@ or press a sequence of keys
Text within <'s and >'s (like `<Enter>`{normal}) describes a key to press instead of text
to type.
-Now, move to the next lesson (remember, use j).
+Now, move to the next lesson (remember, use the `j`{normal} key to scroll down).
## Lesson 1.1: MOVING THE CURSOR
** To move the cursor, press the `h`, `j`, `k`, `l` keys as indicated. **
- k Hint: The h key is at the left and moves left.
- ← h l → The l key is at the right and moves right.
- j The j key looks like a down arrow.
+ k Hint: The `h`{normal} key is at the left and moves left.
+ ← h l → The `l`{normal} key is at the right and moves right.
+ j The `j`{normal} key looks like a down arrow.
1. Move the cursor around the screen until you are comfortable.
- 2. Hold down the down key (j) until it repeats.
+ 2. Hold down the down key (`j`{normal}) until it repeats.
Now you know how to move to the next lesson.
3. Using the down key, move to Lesson 1.2.
NOTE: If you are ever unsure about something you typed, press <Esc> to place
- you in Normal mode. Then retype the command you wanted.
+ you in Normal mode. Then retype the command you wanted.
-NOTE: The cursor keys should also work. But using hjkl you will be able to
- move around much faster, once you get used to it. Really!
+NOTE: The cursor keys should also work. But using hjkl you will be able to
+ move around much faster, once you get used to it. Really!
# Lesson 1.2: EXITING VIM
!! NOTE: Before executing any of the steps below, read this entire lesson !!
- 1. Press the <Esc> key (to make sure you are in [Normal mode]().
+ 1. Press the <Esc> key (to make sure you are in [Normal mode](Normal-mode).
2. Type:
@@ -81,7 +81,7 @@ NOTE: The cursor keys should also work. But using hjkl you will be able to
4. If you have these steps memorized and are confident, execute steps
1 through 3 to exit and re-enter the editor.
-NOTE: [:q!](:q) <Enter> discards any changes you made. In a few lessons you
+NOTE: [:q!](:q) <Enter> discards any changes you made. In a few lessons you
will learn how to save the changes to a file.
5. Move the cursor down to Lesson 1.3.
@@ -90,18 +90,18 @@ NOTE: [:q!](:q) <Enter> discards any changes you made. In a few lessons you
** Press `x`{normal} to delete the character under the cursor. **
-1. Move the cursor to the line below marked --->.
+ 1. Move the cursor to the line below marked --->.
-2. To fix the errors, move the cursor until it is on top of the
- character to be deleted.
+ 2. To fix the errors, move the cursor until it is on top of the
+ character to be deleted.
-3. Press [the x key](x) to delete the unwanted character.
+ 3. Press [the x key](x) to delete the unwanted character.
-4. Repeat steps 2 through 4 until the sentence is correct.
+ 4. Repeat steps 2 through 4 until the sentence is correct.
----> The ccow jumpedd ovverr thhe mooon. {expect:The cow jumped over the moon.}
+The ccow jumpedd ovverr thhe mooon.
-5. Now that the line is correct, go on to Lesson 1.4.
+ 5. Now that the line is correct, go on to Lesson 1.4.
NOTE: As you go through this tutor, do not try to memorize, learn by usage.
@@ -114,15 +114,15 @@ NOTE: As you go through this tutor, do not try to memorize, learn by usage.
2. To make the first line the same as the second, move the cursor on top
of the first character AFTER where the text is to be inserted.
- 3. Press i and type in the necessary additions.
+ 3. Press `i`{normal} and type in the necessary additions.
- 4. As each error is fixed press <Esc> to return to Normal mode.
+ 4. As each error is fixed press `<Esc>`{normal} to return to Normal mode.
Repeat steps 2 through 4 to correct the sentence.
----> There is text misng this . {expect:There is some text missing from this line.}
----> There is some text missing from this line. {expect:There is some text missing from this line.}
+There is text misng this .
+There is some text missing from this line.
- 5. When you are comfortable inserting text move to lesson 1.5.
+ 5. When you are comfortable inserting text move to Lesson 1.5.
# Lesson 1.5: TEXT EDITING: APPENDING
@@ -131,19 +131,19 @@ NOTE: As you go through this tutor, do not try to memorize, learn by usage.
1. Move the cursor to the first line below marked --->.
It does not matter on what character the cursor is in that line.
- 2. Press [A](A) and type in the necessary additions.
+ 2. Press [A](A) and type in the necessary additions.
- 3. As the text has been appended press <Esc> to return to Normal mode.
+ 3. As the text has been appended press `<Esc>`{normal} to return to Normal mode.
4. Move the cursor to the second line marked ---> and repeat
steps 2 and 3 to correct this sentence.
----> There is some text missing from th {expect:There is some text missing from this line.}
----> There is some text missing from this line. {expect:There is some text missing from this line.}
----> There is also some text miss {expect:There is also some text missing here.}
----> There is also some text missing here. {expect:There is also some text missing here.}
+There is some text missing from th
+There is some text missing from this line.
+There is also some text miss
+There is also some text missing here.
- 5. When you are comfortable appending text move to lesson 1.6.
+ 5. When you are comfortable appending text move to Lesson 1.6.
# Lesson 1.6: EDITING A FILE
@@ -151,7 +151,7 @@ NOTE: As you go through this tutor, do not try to memorize, learn by usage.
!! NOTE: Before executing any of the steps below, read this entire lesson !!
- 1. Exit this tutor as you did in lesson 1.2: :q!
+ 1. Exit this tutor as you did in Lesson 1.2: `:q!`{vim}
Or, if you have access to another terminal, do the following there.
2. At the shell prompt type this command:
@@ -159,7 +159,7 @@ NOTE: As you go through this tutor, do not try to memorize, learn by usage.
$ vim tutor
~~~
'vim' is the command to start the Vim editor, 'tutor' is the name of the
- file you wish to edit. Use a file that may be changed.
+ file you wish to edit. Use a file that may be changed.
3. Insert and delete text as you learned in the previous lessons.
@@ -186,14 +186,14 @@ NOTE: As you go through this tutor, do not try to memorize, learn by usage.
$ vim FILENAME
~~~
- 3. To exit Vim type: <Esc> :q! <Enter> to trash all changes.
- OR type: <Esc> :wq <Enter> to save the changes.
+ 3. To exit Vim type: `<Esc>`{normal} `:q!`{vim} `<Enter>`{normal} to trash all changes.
+ OR type: `<Esc>`{normal} `:wq`{vim} `<Enter>`{normal} to save the changes.
- 4. To delete the character at the cursor type: `x`{normal}
+ 4. To delete the character at the cursor type: `x`{normal}
5. To insert or append text type:
- `i`{normal} type inserted text `<Esc>`{normal} insert before the cursor
- `A`{normal} type appended text `<Esc>`{normal} append after the line
+ `i`{normal} insert text `<Esc>`{normal} insert before the cursor.
+ `A`{normal} append text `<Esc>`{normal} append after the line.
NOTE: Pressing `<Esc>`{normal} will place you in Normal mode or will cancel
an unwanted and partially completed command.
@@ -210,17 +210,17 @@ Now continue with Lesson 2.
3. Move the cursor to the beginning of a word that needs to be deleted.
- 4. Type [d](d)[w](w) to make the word disappear.
+ 4. Type [d](d)[w](w) to make the word disappear.
----> There are a some words fun that don't belong paper in this sentence. {expect:There are some words that don't belong in this sentence.}
+There are a some words fun that don't belong paper in this sentence.
5. Repeat steps 3 and 4 until the sentence is correct and go to Lesson 2.2.
# Lesson 2.2: MORE DELETION COMMANDS
-** Type `d$`{normal} to delete to the end of the line. **
+** Type `d$`{normal} to delete to the end of the line. **
- 1. Press <Esc> to make sure you are in Normal mode.
+ 1. Press `<Esc>`{normal} to make sure you are in Normal mode.
2. Move the cursor to the line below marked --->.
@@ -228,7 +228,7 @@ Now continue with Lesson 2.
4. Type `d$`{normal} to delete to the end of the line.
----> Somebody typed the end of this line twice. end of this line twice. {expect:ANYTHING}
+Somebody typed the end of this line twice. end of this line twice.
5. Move on to Lesson 2.3 to understand what is happening.
@@ -236,7 +236,7 @@ Now continue with Lesson 2.
Many commands that change text are made from an [operator](operator) and a [motion](navigation).
-The format for a delete command with the [d](d) delete operator is as follows:
+The format for a delete command with the [d](d) delete operator is as follows:
d motion
@@ -249,7 +249,7 @@ The format for a delete command with the [d](d) delete operator is as follows:
[e](e) - to the end of the current word, INCLUDING the last character.
[$]($) - to the end of the line, INCLUDING the last character.
- Thus typing `de`{normal} will delete from the cursor to the end of the word.
+ Thus typing `de`{normal} will delete from the cursor to the end of the word.
NOTE: Pressing just the motion while in Normal mode without an operator will
move the cursor as specified.
@@ -260,15 +260,15 @@ NOTE: Pressing just the motion while in Normal mode without an operator will
1. Move the cursor to the start of the line marked ---> below.
- 2. Type `2w`{normal} to move the cursor two words forward.
+ 2. Type `2w`{normal} to move the cursor two words forward.
- 3. Type `3e`{normal} to move the cursor to the end of the third word forward.
+ 3. Type `3e`{normal} to move the cursor to the end of the third word forward.
- 4. Type `0`{normal} ([zero](0)) to move to the start of the line.
+ 4. Type `0`{normal} ([zero](0)) to move to the start of the line.
5. Repeat steps 2 and 3 with different numbers.
----> This is just a line with words you can move around in. {expect:ANYTHING}
+This is just a line with words you can move around in.
6. Move on to Lesson 2.5.
@@ -282,49 +282,49 @@ insert a count before the motion to delete more:
1. Move the cursor to the first UPPER CASE word in the line marked --->.
- 2. Type `d2w`{normal} to delete the two UPPER CASE words
+ 2. Type `d2w`{normal} to delete the two UPPER CASE words
3. Repeat steps 1 and 2 with a different count to delete the consecutive
UPPER CASE words with one command
----> this ABC DE line FGHI JK LMN OP of words is Q RS TUV cleaned up. {expect:this line of words is cleaned up.}
+This ABC DE line FGHI JK LMN OP of words is Q RS TUV cleaned up.
# Lesson 2.6: OPERATING ON LINES
-** Type dd to delete a whole line. **
+** Type `dd`{normal} to delete a whole line. **
Due to the frequency of whole line deletion, the designers of Vi decided
it would be easier to simply type two d's to delete a line.
1. Move the cursor to the second line in the phrase below.
- 2. Type [dd](dd) to delete the line.
+ 2. Type [dd](dd) to delete the line.
3. Now move to the fourth line.
4. Type `2dd`{normal} to delete two lines.
----> 1) Roses are red, {expect:ANYTHING}
----> 2) Mud is fun, {expect:ANYTHING}
----> 3) Violets are blue, {expect:ANYTHING}
----> 4) I have a car, {expect:ANYTHING}
----> 5) Clocks tell time, {expect:ANYTHING}
----> 6) Sugar is sweet {expect:ANYTHING}
----> 7) And so are you. {expect:ANYTHING}
+1) Roses are red,
+2) Mud is fun,
+3) Violets are blue,
+4) I have a car,
+5) Clocks tell time,
+6) Sugar is sweet
+7) And so are you.
# Lesson 2.7: THE UNDO COMMAND
-** Press u to undo the last commands, U to fix a whole line. **
+** Press `u`{normal} to undo the last commands, `U`{normal} to fix a whole line. **
1. Move the cursor to the line below marked ---> and place it on the
first error.
- 2. Type `x`{normal} to delete the first unwanted character.
- 3. Now type `u`{normal} to undo the last command executed.
- 4. This time fix all the errors on the line using the `x`{normal} command.
- 5. Now type a capital `U`{normal} to return the line to its original state.
- 6. Now type `u`{normal} a few times to undo the U and preceding commands.
- 7. Now type `<Ctrl-r>`{normal} a few times to redo the commands (undo the undo's).
+ 2. Type `x`{normal} to delete the first unwanted character.
+ 3. Now type `u`{normal} to undo the last command executed.
+ 4. This time fix all the errors on the line using the `x`{normal} command.
+ 5. Now type a capital `U`{normal} to return the line to its original state.
+ 6. Now type `u`{normal} a few times to undo the `U`{normal} and preceding commands.
+ 7. Now type `<Ctrl-r>`{normal} a few times to redo the commands (undo the undo's).
----> Fiix the errors oon thhis line and reeplace them witth undo. {expect:Fix the errors on this line and replace them with undo.}
+Fiix the errors oon thhis line and reeplace them witth undo.
- 8. These are very useful commands. Now move on to the Lesson 2 Summary.
+ 8. These are very useful commands. Now move on to the Lesson 2 Summary.
# Lesson 2 SUMMARY
@@ -336,13 +336,13 @@ insert a count before the motion to delete more:
5. The format for a change command is:
operator [number] motion
where:
- operator - is what to do, such as [d](d) for delete
+ operator - is what to do, such as [d](d) for delete
[number] - is an optional count to repeat the motion
motion - moves over the text to operate on, such as:
[w](w) (word),
[$]($) (to the end of line), etc.
- 6. To move to the start of the line use a zero: [0](0)
+ 6. To move to the start of the line use a zero: [0](0)
7. To undo previous actions, type: `u`{normal} (lowercase u)
To undo all the changes on a line, type: `U`{normal} (capital U)
@@ -350,22 +350,22 @@ insert a count before the motion to delete more:
# Lesson 3.1: THE PUT COMMAND
-** Type p to put previously deleted text after the cursor. **
+** Type `p`{normal} to put previously deleted text after the cursor. **
1. Move the cursor to the first ---> line below.
- 2. Type `dd`{normal} to delete the line and store it in a Vim register.
+ 2. Type `dd`{normal} to delete the line and store it in a Vim register.
3. Move the cursor to the c) line, ABOVE where the deleted line should go.
- 4. Type `p`{normal} to put the line below the cursor.
+ 4. Type `p`{normal} to put the line below the cursor.
5. Repeat steps 2 through 4 to put all the lines in correct order.
----> d) Can you learn too? {expect:ANYTHING}
----> b) Violets are blue, {expect:ANYTHING}
----> c) Intelligence is learned, {expect:ANYTHING}
----> a) Roses are red, {expect:ANYTHING}
+d) Can you learn too?
+b) Violets are blue,
+c) Intelligence is learned,
+a) Roses are red,
# Lesson 3.2: THE REPLACE COMMAND
@@ -379,8 +379,8 @@ insert a count before the motion to delete more:
4. Repeat steps 2 and 3 until the first line is equal to the second one.
----> Whan this lime was tuoed in, someone presswd some wrojg keys! {expect:When this line was typed in, someone pressed some wrong keys!}
----> When this line was typed in, someone pressed some wrong keys! {expect:When this line was typed in, someone pressed some wrong keys!}
+Whan this lime was tuoed in, someone presswd some wrojg keys!
+When this line was typed in, someone pressed some wrong keys!
5. Now move on to Lesson 3.3.
@@ -388,11 +388,11 @@ NOTE: Remember that you should be learning by doing, not memorization.
# Lesson 3.3: THE CHANGE OPERATOR
-** To change until the end of a word, type `ce`{normal} **
+** To change until the end of a word, type `ce`{normal}. **
1. Move the cursor to the first line below marked --->.
- 2. Place the cursor on the "u" in "lubw".
+ 2. Place the cursor on the "u" in "lubw".
3. Type `ce`{normal} and the correct word (in this case, type "ine" ).
@@ -400,16 +400,16 @@ NOTE: Remember that you should be learning by doing, not memorization.
5. Repeat steps 3 and 4 until the first sentence is the same as the second.
----> This lubw has a few wptfd that mrrf changing usf the change operator. {expect:This line has a few words that need changing using the change operator.}
----> This line has a few words that need changing using the change operator. {expect:This line has a few words that need changing using the change operator.}
+This lubw has a few wptfd that mrrf changing usf the change operator.
+This line has a few words that need changing using the change operator.
Notice that [c](c)e deletes the word and places you in Insert mode.
-# Lesson 3.4: MORE CHANGES USING c
+# Lesson 3.4: MORE CHANGES USING `c`{normal}
** The change operator is used with the same motions as delete. **
- 1. The change operator works in the same way as delete. The format is:
+ 1. The change operator works in the same way as delete. The format is:
c [number] motion
@@ -421,14 +421,14 @@ Notice that [c](c)e deletes the word and places you in Insert mode.
5. Type `c$`{normal} and type the rest of the line like the second and press `<Esc>`{normal}.
----> The end of this line needs some help to make it like the second. {expect:The end of this line needs to be corrected using the c$ command.}
----> The end of this line needs to be corrected using the c$ command. {expect:The end of this line needs to be corrected using the c$ command.}
+The end of this line needs some help to make it like the second.
+The end of this line needs to be corrected using the `c$`{normal} command.
-NOTE: You can use the Backspace key to correct mistakes while typing.
+NOTE: You can use the Backspace key to correct mistakes while typing.
# Lesson 3 SUMMARY
- 1. To put back text that has just been deleted, type [p](p). This puts the
+ 1. To put back text that has just been deleted, type [p](p). This puts the
deleted text AFTER the cursor (if a line was deleted it will go on the
line below the cursor).
@@ -436,8 +436,8 @@ NOTE: You can use the Backspace key to correct mistakes while typing.
character you want to have there.
3. The [change operator](c) allows you to change from the cursor to where the
- motion takes you. eg. Type `ce`{normal} to change from the cursor to the end of
- the word, `c$`{normal} to change to the end of a line.
+ motion takes you. Type `ce`{normal} to change from the cursor to the end of
+ the word, `c$`{normal} to change to the end of a line.
4. The format for change is:
@@ -448,21 +448,21 @@ Now go on to the next lesson.
# Lesson 4.1: CURSOR LOCATION AND FILE STATUS
** Type `<Ctrl-g>`{normal} to show your location in the file and the file status.
- Type `G`{normal} to move to a line in the file. **
+ Type `G`{normal} to move to a line in the file. **
NOTE: Read this entire lesson before executing any of the steps!!
- 1. Hold down the `<Ctrl>`{normal} key and press `g`{normal}. We call this `<Ctrl-g>`{normal}.
+ 1. Hold down the `<Ctrl>`{normal} key and press `g`{normal}. We call this `<Ctrl-g>`{normal}.
A message will appear at the bottom of the page with the filename and the
- position in the file. Remember the line number for Step 3.
+ position in the file. Remember the line number for Step 3.
-NOTE: You may see the cursor position in the lower right corner of the screen
- This happens when the ['ruler']('ruler') option is set (see :help 'ruler' )
+NOTE: You may see the cursor position in the lower right corner of the screen
+ This happens when the ['ruler']('ruler') option is set (see `:help 'ruler'`{vim} ).
- 2. Press [G](G) to move you to the bottom of the file.
- Type [gg](gg) to move you to the start of the file.
+ 2. Press [G](G) to move you to the bottom of the file.
+ Type [gg](gg) to move you to the start of the file.
- 3. Type the number of the line you were on and then `G`{normal} . This will
+ 3. Type the number of the line you were on and then `G`{normal}. This will
return you to the line you were on when you first pressed `<Ctrl-g>`{normal}.
4. If you feel confident to do this, execute steps 1 through 3.
@@ -471,20 +471,20 @@ NOTE: You may see the cursor position in the lower right corner of the screen
** Type `/`{normal} followed by a phrase to search for the phrase. **
- 1. In Normal mode type the `/`{normal} character. Notice that it and the cursor
- appear at the bottom of the screen as with the : command.
+ 1. In Normal mode type the `/`{normal} character. Notice that it and the cursor
+ appear at the bottom of the screen as with the `:`{normal} command.
- 2. Now type 'errroor' `<Enter>`{normal}. This is the word you want to search for.
+ 2. Now type 'errroor' `<Enter>`{normal}. This is the word you want to search for.
- 3. To search for the same phrase again, simply type [n](n) .
- To search for the same phrase in the opposite direction, type [N](N) .
+ 3. To search for the same phrase again, simply type [n](n).
+ To search for the same phrase in the opposite direction, type [N](N).
- 4. To search for a phrase in the backward direction, use [?](?) instead of / .
+ 4. To search for a phrase in the backward direction, use [?](?) instead of `/`{normal}.
- 5. To go back to where you came from press `<Ctrl-o>`{normal} (Keep Ctrl down while
- pressing the letter o). Repeat to go back further. `<Ctrl-i>`{normal} goes forward.
+ 5. To go back to where you came from press `<Ctrl-o>`{normal} (keep `<Ctrl>`{normal} pressed down while
+ pressing the letter `o`{normal}). Repeat to go back further. `<Ctrl-i>`{normal} goes forward.
----> "errroor" is not the way to spell error; errroor is an error. {expect:ANYTHING}
+"errroor" is not the way to spell error; errroor is an error.
NOTE: When the search reaches the end of the file it will continue at the
start, unless the ['wrapscan']('wrapscan') option has been reset.
@@ -495,7 +495,7 @@ NOTE: When the search reaches the end of the file it will continue at the
1. Place the cursor on any (, [, or { in the line below marked --->.
- 2. Now type the [%](%) character.
+ 2. Now type the [%](%) character.
3. The cursor will move to the matching parenthesis or bracket.
@@ -503,7 +503,7 @@ NOTE: When the search reaches the end of the file it will continue at the
5. Move the cursor to another (,),[,],{ or } and see what `%`{normal} does.
----> This ( is a test line with ('s, ['s ] and {'s } in it. )) {expect:ANYTHING}
+This ( is a test line with ('s, ['s ] and {'s } in it. ))
NOTE: This is very useful in debugging a program with unmatched parentheses!
@@ -528,7 +528,7 @@ NOTE: This is very useful in debugging a program with unmatched parentheses!
Adding the g [flag](:s_flags) means to substitute globally in the line, change
all occurrences of "thee" in the line.
----> thee best time to see thee flowers is in thee spring. {expect:the best time to see the flowers is in the spring.}
+Usually thee best time to see thee flowers is in thee spring.
4. To change every occurrence of a character string between two lines, type
~~~ cmd
@@ -589,20 +589,20 @@ NOTE: This is very useful in debugging a program with unmatched parentheses!
** Type `:!`{vim} followed by an external command to execute that command. **
1. Type the familiar command `:`{normal} to set the cursor at the bottom of the
- screen. This allows you to enter a command-line command.
+ screen. This allows you to enter a command-line command.
- 2. Now type the [!](!cmd) (exclamation point) character. This allows you to
+ 2. Now type the [!](!cmd) (exclamation point) character. This allows you to
execute any external shell command.
- 3. As an example type "ls" following the "!" and then hit `<Enter>`{normal}. This
+ 3. As an example type "ls" following the "!" and then hit `<Enter>`{normal}. This
will show you a listing of your directory, just as if you were at the
shell prompt.
-NOTE: It is possible to execute any external command this way, also with
- arguments.
+NOTE: It is possible to execute any external command this way, also with
+ arguments.
-NOTE: All : commands must be finished by hitting <Enter>
- From here on we will not always mention it.
+NOTE: All `:`{vim} commands must be finished by hitting `<Enter>`{normal}.
+ From here on we will not always mention it.
# Lesson 5.2: MORE ON WRITING FILES
@@ -622,7 +622,7 @@ NOTE: All : commands must be finished by hitting <Enter>
4. This saves the whole file (the Vim Tutor) under the name TEST.
To verify this, type `:!ls`{vim} again to see your directory.
-NOTE: If you were to exit Vim and start it again with vim TEST , the file
+NOTE: If you were to exit Vim and start it again with `nvim TEST`, the file
would be an exact copy of the tutor when you saved it.
5. Now remove the file by typing:
@@ -632,14 +632,14 @@ NOTE: If you were to exit Vim and start it again with vim TEST , the file
# Lesson 5.3: SELECTING TEXT TO WRITE
-** To save part of the file, type `v`{normal} motion `:w FILENAME`{vim} **
+** To save part of the file, type `v`{normal} motion `:w FILENAME`{vim}. **
1. Move the cursor to this line.
- 2. Press [v](v) and move the cursor to the fifth item below. Notice that the
+ 2. Press [v](v) and move the cursor to the fifth item below. Notice that the
text is highlighted.
- 3. Press the `:`{normal} character. At the bottom of the screen
+ 3. Press the `:`{normal} character. At the bottom of the screen
:'<,'>
@@ -649,27 +649,27 @@ NOTE: If you were to exit Vim and start it again with vim TEST , the file
`:w TEST`{vim}
- where TEST is a filename that does not exist yet. Verify that you see
+ where TEST is a filename that does not exist yet. Verify that you see
`:'<,'>w TEST`{vim}
before you press `<Enter>`{normal}.
- 5. Vim will write the selected lines to the file TEST. Use `:!ls`{vim} to see it.
- Do not remove it yet! We will use it in the next lesson.
+ 5. Vim will write the selected lines to the file TEST. Use `:!ls`{vim} to see it.
+ Do not remove it yet! We will use it in the next lesson.
-NOTE: Pressing [v](v) starts [Visual selection](visual-mode). You can move
- the cursor around to make the selection bigger or smaller. Then you can
- use an operator to do something with the text. For example, `d`{normal} deletes
- the text.
+NOTE: Pressing [v](v) starts [Visual selection](visual-mode). You can move
+ the cursor around to make the selection bigger or smaller. Then you can
+ use an operator to do something with the text. For example, `d`{normal} deletes
+ the text.
# Lesson 5.4: RETRIEVING AND MERGING FILES
-** To insert the contents of a file, type `:r FILENAME`{vim} **
+** To insert the contents of a file, type `:r FILENAME`{vim}. **
1. Place the cursor just above this line.
-NOTE: After executing Step 2 you will see text from Lesson 5.3. Then move
+NOTE: After executing Step 2 you will see text from Lesson 5.3. Then move
DOWN to see this lesson again.
2. Now retrieve your TEST file using the command
@@ -682,31 +682,31 @@ NOTE: After executing Step 2 you will see text from Lesson 5.3. Then move
3. To verify that a file was retrieved, cursor back and notice that there
are now two copies of Lesson 5.3, the original and the file version.
-NOTE: You can also read the output of an external command. For example,
+NOTE: You can also read the output of an external command. For example,
- `:r !ls`{vim}
+ `:r !ls`{vim}
- reads the output of the `ls` command and puts it below the cursor.
+ reads the output of the `ls` command and puts it below the cursor.
# Lesson 5 SUMMARY
- 1. [:!command](:!cmd) executes an external command.
+ 1. [:!command](:!cmd) executes an external command.
- Some useful examples are:
- `:!ls`{vim} - shows a directory listing
- `:!rm FILENAME`{vim} - removes file FILENAME
+ Some useful examples are:
+ `:!ls`{vim} - shows a directory listing
+ `:!rm FILENAME`{vim} - removes file FILENAME
- 2. [:w](:w) FILENAME writes the current Vim file to disk with
- name FILENAME.
+ 2. [:w](:w) FILENAME writes the current Vim file to disk with
+ name FILENAME.
- 3. [v](v) motion :w FILENAME saves the Visually selected lines in file
- FILENAME.
+ 3. [v](v) motion :w FILENAME saves the Visually selected lines in file
+ FILENAME.
- 4. [:r](:r) FILENAME retrieves disk file FILENAME and puts it
- below the cursor position.
+ 4. [:r](:r) FILENAME retrieves disk file FILENAME and puts it
+ below the cursor position.
- 5. [:r !dir](:r!) reads the output of the dir command and
- puts it below the cursor position.
+ 5. [:r !dir](:r!) reads the output of the dir command and
+ puts it below the cursor position.
# Lesson 6.1: THE OPEN COMMAND
@@ -719,12 +719,12 @@ NOTE: You can also read the output of an external command. For example,
3. Now type some text and press `<Esc>`{normal} to exit Insert mode.
----> After typing o the cursor is placed on the open line in Insert mode. {expect:ANYTHING}
+After typing `o`{normal} the cursor is placed on the open line in Insert mode.
4. To open up a line ABOVE the cursor, simply type a [capital O](O), rather
- than a lowercase `o`{normal}. Try this on the line below.
+ than a lowercase `o`{normal}. Try this on the line below.
----> Open up a line above this by typing O while the cursor is on this line. {expect:ANYTHING}
+Open up a line above this by typing O while the cursor is on this line.
# Lesson 6.2: THE APPEND COMMAND
@@ -734,43 +734,43 @@ NOTE: You can also read the output of an external command. For example,
2. Press `e`{normal} until the cursor is on the end of "li".
- 3. Type an `a`{normal} (lowercase) to [append](a) text AFTER the cursor.
+ 3. Type the lowercase letter `a`{normal} to [append](a) text AFTER the cursor.
- 4. Complete the word like the line below it. Press `<Esc>`{normal} to exit Insert
+ 4. Complete the word like the line below it. Press `<Esc>`{normal} to exit Insert
mode.
5. Use `e`{normal} to move to the next incomplete word and repeat steps 3 and 4.
----> This li will allow you to pract appendi text to a line. {expect:This line will allow you to practice appending text to a line.}
----> This line will allow you to practice appending text to a line. {expect:This line will allow you to practice appending text to a line.}
+This li will allow you to pract appendi text to a line.
+This line will allow you to practice appending text to a line.
-NOTE: [a](a), [i](i) and [A](A) all go to the same Insert mode, the only difference is where
- the characters are inserted.
+NOTE: [a](a), [i](i) and [A](A) all go to the same Insert mode, the only difference is where
+ the characters are inserted.
# Lesson 6.3: ANOTHER WAY TO REPLACE
** Type a capital `R`{normal} to replace more than one character. **
- 1. Move the cursor to the first line below marked --->. Move the cursor to
+ 1. Move the cursor to the first line below marked --->. Move the cursor to
the beginning of the first "xxx".
2. Now press `R`{normal} ([capital R](R)) and type the number below it in the second line, so that it
replaces the "xxx".
- 3. Press `<Esc>`{normal} to leave [Replace mode](mode-replace). Notice that the rest of the line
+ 3. Press `<Esc>`{normal} to leave [Replace mode](mode-replace). Notice that the rest of the line
remains unmodified.
4. Repeat the steps to replace the remaining "xxx".
----> Adding 123 to xxx gives you xxx. {expect:Adding 123 to 456 gives you 579.}
----> Adding 123 to 456 gives you 579. {expect:Adding 123 to 456 gives you 579.}
+Adding 123 to xxx gives you xxx.
+Adding 123 to 456 gives you 579.
-NOTE: Replace mode is like Insert mode, but every typed character deletes an
- existing character.
+NOTE: Replace mode is like Insert mode, but every typed character deletes an
+ existing character.
# Lesson 6.4: COPY AND PASTE TEXT
-** Use the `y`{normal} operator to copy text and `p`{normal} to paste it **
+** Use the `y`{normal} operator to copy text and `p`{normal} to paste it. **
1. Go to the line marked with ---> below and place the cursor after "a)".
@@ -780,35 +780,37 @@ NOTE: Replace mode is like Insert mode, but every typed character deletes an
4. Move the cursor to the end of the next line: `j$`{normal}
- 5. Type `p`{normal} to [put](put) (paste) the text. Then type: "a second"`<Esc>`{normal}.
+ 5. Type `p`{normal} to [put](put) (paste) the text.
+
+ 6. Press `a`{normal} and then type "second". Press `<Esc>`{normal} to leave Insert mode.
- 6. Use Visual mode to select " item.", yank it with `y`{normal}, move to the end of
+ 7. Use Visual mode to select " item.", yank it with `y`{normal}, move to the end of
the next line with `j$`{normal} and put the text there with `p`{normal}.
----> a) this is the first item.
----> b) {expect: b) this is the second item}
+a) This is the first item.
+ b)
- NOTE: you can also use `y`{normal} as an operator; `yw`{normal} yanks one word.
+NOTE: you can also use `y`{normal} as an operator; `yw`{normal} yanks one word.
# Lesson 6.5: SET OPTION
-** Set an option so a search or substitute ignores case **
+** Set an option so a search or substitute ignores case. **
- 1. Search for 'ignore' by entering: `/ignore`
+ 1. Search for 'ignore' by entering: `/ignore`
Repeat several times by pressing `n`{normal}.
2. Set the 'ic' (Ignore case) option by entering:
~~~ cmd
:set ic
~~~
- 3. Now search for 'ignore' again by pressing n
+ 3. Now search for 'ignore' again by pressing `n`{normal}.
Notice that Ignore and IGNORE are now also found.
4. Set the 'hlsearch' and 'incsearch' options:
~~~ cmd
:set hls is
~~~
- 5. Now type the search command again and see what happens: /ignore <Enter>
+ 5. Now type the search command again and see what happens: /ignore <Enter>
6. To disable ignoring case enter:
~~~ cmd
@@ -818,12 +820,12 @@ NOTE: Replace mode is like Insert mode, but every typed character deletes an
~~~ cmd
:set invic
~~~
-NOTE: To remove the highlighting of matches enter:
+NOTE: To remove the highlighting of matches enter:
~~~ cmd
:nohlsearch
~~~
-NOTE: If you want to ignore case for just one search command, use [\c](/\c)
- in the phrase: /ignore\c <Enter>
+NOTE: If you want to ignore case for just one search command, use [\c](/\c)
+ in the phrase: /ignore\c <Enter>
# Lesson 6 SUMMARY
@@ -839,7 +841,7 @@ NOTE: If you want to ignore case for just one search command, use [\c](/\c)
5. Typing a capital `R`{normal} enters Replace mode until `<Esc>`{normal} is pressed.
- 6. Typing "[:set](:set) xxx" sets the option "xxx". Some options are:
+ 6. Typing "[:set](:set) xxx" sets the option "xxx". Some options are:
'ic' 'ignorecase' ignore upper/lower case when searching
'is' 'incsearch' show partial matches for a search phrase
@@ -858,9 +860,9 @@ NOTE: If you want to ignore case for just one search command, use [\c](/\c)
# Lesson 7.1: GETTING HELP
-** Use the on-line help system **
+** Use the on-line help system. **
-Vim has a comprehensive on-line help system. To get started, try one of
+Vim has a comprehensive on-line help system. To get started, try one of
these three:
- press the `<HELP>`{normal} key (if you have one)
- press the `<F1>`{normal} key (if you have one)
@@ -872,7 +874,7 @@ Type `<Ctrl-w><Ctrl-w>`{normal} to jump from one window to another.
Type `:q`{vim} to close the help window.
You can find help on just about any subject, by giving an argument to the
-":help" command. Try these (don't forget pressing <Enter>):
+":help" command. Try these (don't forget pressing <Enter>):
~~~ cmd
:help w
:help c_CTRL-D
@@ -881,13 +883,13 @@ You can find help on just about any subject, by giving an argument to the
~~~
# Lesson 7.2: CREATE A STARTUP SCRIPT
-** Enable Vim features **
+** Enable Vim features. **
Vim has many more features than Vi, but most of them are disabled by
-default. To start using more features you have to create a "vimrc" file.
+default. To start using more features you have to create a "vimrc" file.
- 1. Start editing the "vimrc" file. This depends on your system:
- `:e ~/.config/nvim/init.vim`{vim} for Unix-like systems
+ 1. Start editing the "vimrc" file. This depends on your system:
+ `:e ~/.config/nvim/init.vim`{vim} for Unix-like systems
2. Now read the example "vimrc" file contents:
`:r $VIMRUNTIME/vimrc_example.vim`{vim}
@@ -897,15 +899,15 @@ default. To start using more features you have to create a "vimrc" file.
The next time you start Vim it will use syntax highlighting.
You can add all your preferred settings to this "vimrc" file.
- For more information type :help vimrc-intro
+ For more information type `:help vimrc-intro`{vim}.
# Lesson 7.3: COMPLETION
-** Command line completion with `<Ctrl-d>`{normal} and `<Tab>`{normal} **
+** Command line completion with `<Ctrl-d>`{normal} and `<Tab>`{normal}. **
- 1. Look what files exist in the directory: `:!ls`{vim}
+ 1. Look what files exist in the directory: `:!ls`{vim}
- 2. Type the start of a command: `:e`{vim}
+ 2. Type the start of a command: `:e`{vim}
3. Press `<Ctrl-d>`{normal} and Vim will show a list of commands that start with "e".
@@ -913,20 +915,20 @@ default. To start using more features you have to create a "vimrc" file.
5. Now add a space and the start of an existing file name: `:edit FIL`{vim}
- 6. Press `<Tab>`{normal}. Vim will complete the name (if it is unique).
+ 6. Press `<Tab>`{normal}. Vim will complete the name (if it is unique).
-NOTE: Completion works for many commands. It is especially useful for `:help`{vim}.
+NOTE: Completion works for many commands. It is especially useful for `:help`{vim}.
# Lesson 7 SUMMARY
1. Type `:help`{vim}
or press `<F1>`{normal} or `<Help>`{normal} to open a help window.
- 2. Type `:help TOPIC`{vim} to find help on TOPIC.
+ 2. Type `:help TOPIC`{vim} to find help on TOPIC.
- 3. Type `<Ctrl-w><Ctrl-w>`{normal} to jump to another window
+ 3. Type `<Ctrl-w><Ctrl-w>`{normal} to jump to another window
- 4. Type `:q`{vim} to close the help window
+ 4. Type `:q`{vim} to close the help window
5. Create a vimrc startup script to keep your preferred settings.
@@ -937,22 +939,24 @@ NOTE: Completion works for many commands. It is especially useful for `:help`{v
This was intended to give a brief overview of the Vim editor, just enough to
allow you to use the editor fairly easily. It is far from complete as Vim has
-many many more commands. Consult the help often.
+many many more commands. Consult the help often.
There are many resources online to learn more about vim. Here's a bunch of them:
- *Learn Vim Progressively*: http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/
- *Learning Vim in 2014*: http://benmccormick.org/learning-vim-in-2014/
-- Vimcasts: http://vimcasts.org/
-- Vim Video-Tutorials by Derek Wyatt: http://derekwyatt.org/vim/tutorials/
+- *Vimcasts*: http://vimcasts.org/
+- *Vim Video-Tutorials by Derek Wyatt*: http://derekwyatt.org/vim/tutorials/
- *Learn Vimscript the Hard Way*: http://learnvimscriptthehardway.stevelosh.com/
- *7 Habits of Effective Text Editing*: http://www.moolenaar.net/habits.html
+- *vim-galore*: https://github.com/mhinz/vim-galore
-If you prefer a book, *Practival Vim* by Drew Neil is recommended often.
+If you prefer a book, *Practical Vim* by Drew Neil is recommended often (the sequel, *Modern
+Vim*, includes material specific to nvim).
This tutorial was written by Michael C. Pierce and Robert K. Ware, Colorado
School of Mines using ideas supplied by Charles Smith, Colorado State
-University. E-mail: bware@mines.colorado.edu.
+University. E-mail: bware@mines.colorado.edu.
Modified for Vim by Bram Moolenaar.
Modified for vim-tutor-mode by Felipe Morales.
diff --git a/runtime/tutor/en/vim-01-beginner.tutor.json b/runtime/tutor/en/vim-01-beginner.tutor.json
new file mode 100644
index 0000000000..444bd7c4b7
--- /dev/null
+++ b/runtime/tutor/en/vim-01-beginner.tutor.json
@@ -0,0 +1,45 @@
+{
+ "expect": {
+ "24": -1,
+ "102": "The cow jumped over the moon.",
+ "122": "There is some text missing from this line.",
+ "123": "There is some text missing from this line.",
+ "141": "There is some text missing from this line.",
+ "142": "There is some text missing from this line.",
+ "143": "There is also some text missing here.",
+ "144": "There is also some text missing here.",
+ "215": "There are some words that don't belong in this sentence.",
+ "231": "Somebody typed the end of this line twice.",
+ "271": -1,
+ "290": "This line of words is cleaned up.",
+ "304": -1,
+ "305": -1,
+ "306": -1,
+ "307": -1,
+ "308": -1,
+ "309": -1,
+ "310": -1,
+ "325": "Fix the errors on this line and replace them with undo.",
+ "365": -1,
+ "366": -1,
+ "367": -1,
+ "368": -1,
+ "382": "When this line was typed in, someone pressed some wrong keys!",
+ "383": "When this line was typed in, someone pressed some wrong keys!",
+ "403": "This line has a few words that need changing using the change operator.",
+ "404": "This line has a few words that need changing using the change operator.",
+ "424": "The end of this line needs to be corrected using the c$ command.",
+ "425": "The end of this line needs to be corrected using the c$ command.",
+ "487": -1,
+ "506": -1,
+ "531": "Usually the best time to see the flowers is in the spring.",
+ "722": -1,
+ "727": -1,
+ "744": "This line will allow you to practice appending text to a line.",
+ "745": "This line will allow you to practice appending text to a line.",
+ "765": "Adding 123 to 456 gives you 579.",
+ "766": "Adding 123 to 456 gives you 579.",
+ "790": "a) This is the first item.",
+ "791": " b) This is the second item."
+ }
+}
diff --git a/runtime/tutor/tutor.tutor b/runtime/tutor/tutor.tutor
index 1ad64a18ff..c937bd686a 100644
--- a/runtime/tutor/tutor.tutor
+++ b/runtime/tutor/tutor.tutor
@@ -60,27 +60,27 @@ is displayed like
1. Format the line below so it becomes a lesson description:
----> This is text with important information {expect:This is text with **important information**}
----> This is text with **important information** {expect:This is text with **important information**}
+This is text with important information
+This is text with **important information**
Note: Some words (e.g., NOTE, IMPORTANT, tip, ATTENTION, etc.) will also be
highlighted. You don't need to mark them specially.
2. Turn the line below into a TODO item:
----> Document '&variable' {expect:TODO: Document '&variable'}
----> TODO: Document '&variable' {expect:TODO: Document '&variable'}
+Document '&variable'
+TODO: Document '&variable'
### Headers *headers*
3. Practice fixing the lines below:
----> This is a level 1 header {expect:# This is a level 1 header}
----> # This is a level 1 header {expect:# This is a level 1 header}
----> This is a level 3 header {expect:### This is a level 3 header}
----> ### This is a level 3 header {expect:### This is a level 3 header}
----> This is a header with a label {expect:# This is a header with a label {*label*}}
----> # This is a header with a label {*label*} {expect:# This is a header with a label {*label*}}
+This is a level 1 header
+# This is a level 1 header
+This is a level 3 header
+### This is a level 3 header
+This is a header with a label
+# This is a header with a label {*label*}
4. Now, create a 4th level section here, and add a label like in the previous
exercise:
@@ -105,8 +105,8 @@ If the target of a link matches a help topic, opening it will open it.
5. Fix the following line:
----> A link to help for the 'breakindent' option {expect:A link to help for the ['breakindent']('breakindent') option}
----> A link to help for the ['breakindent']('breakindent') option {expect:A link to help for the ['breakindent']('breakindent') option}
+A link to help for the 'breakindent' option
+A link to help for the ['breakindent']('breakindent') option
#### Anchor links
@@ -120,8 +120,8 @@ and are hidden by default. Links to them look like
6. Add the appropiate link:
----> A link to the Links section {expect:A link to the [Links](*links*) section}
----> A link to the [Links](*links*) section {expect:A link to the [Links](*links*) section}
+A link to the Links section
+A link to the [Links](*links*) section
7. Now, create a link to the section you created on exercise 4
above.
@@ -136,8 +136,8 @@ You can also have links to other tutorials. For this, you'll write the anchor in
7. Create a link to this tutorial:
----> A link to the vim-tutor-mode tutorial {expect:A link to [the vim-tutor-mode tutorial](@tutor:tutor)}
----> A link to [the vim-tutor-mode tutorial](@tutor:tutor) {expect:A link to [the vim-tutor-mode tutorial](@tutor:tutor)}
+A link to the vim-tutor-mode tutorial
+A link to [the vim-tutor-mode tutorial](@tutor:tutor)
### Codeblocks *codeblocks*
@@ -154,13 +154,13 @@ echom "hello"
8. Copy the viml section below
----> {expect:~~~ viml}
----> {expect:echom "the value of &number is".string(&number)}
----> {expect:~~~}
----> ~~~ viml {expect:~~~ viml}
----> echom "the value of &number is".string(&number) {expect:echom "the value of &number is".string(&number)}
----> ~~~ {expect:~~~}
+
+
+
+~~~ viml
+echom 'the value of &number is'.string(&number)
+~~~
You can inline viml code using "\`" and "\`{vim}":
@@ -185,13 +185,13 @@ Note: you can also write `norm` or `normal`.
9. Copy the normal section below
----> {expect:~~~ normal}
----> {expect:d2w}
----> {expect:~~~}
----> ~~~ normal {expect:~~~ normal}
----> d2w {expect:d2w}
----> ~~~ {expect:~~~}
+
+
+
+~~~ normal
+d2w
+~~~
You can also inline normal commands by using "\`" and "\`{normal}":
@@ -203,10 +203,11 @@ is displayed:
10. Complete the line as shown
----> d {expect:«d2w»}
----> «d2w» {expect:«d2w»}
+d
+`d2w`{normal}
-Commands to run in the system shell can be highlighted by indenting a line starting with "$".
+Commands to run in the system shell can be highlighted by indenting a line
+starting with "$".
~~~ sh
$ vim --version
@@ -215,45 +216,32 @@ Commands to run in the system shell can be highlighted by indenting a line start
## INTERACTIVE ELEMENTS *interactive*
As visible in this very document, vim-tutor-mode includes some interactive
-elements, to provide feedback to the user about his progress. These elements
-all have the syntax
-
- \---> TEXT {CLAUSE}
-
-where \---> must start at the beginning of the line. If TEXT satisfies CLAUSE,
-a ✓ sign will appear to the left. A ✗ sign is displayed otherwise. The CLAUSE
-itself is hidden unless debug mode is set or ['conceallevel']('conceallevel')
-is 2.
+elements to provide feedback to the user about his progress. If the text in
+these elements satisfies some set condition, a ✓ sign will appear in the gutter
+to the left. Otherwise, a ✗ sign is displayed.
### expect *expect*
-The basic clause is "expect", which is satisfied if TEXT is the same as the
-content of the clause. For example
-
- \---> TEXT {expect:TEXT}
-
-is satisfied, but
-
- \---> OTHER TEXT {expect:TEXT}
-
-is not.
+"expect" lines check that the contents of the line are identical to some preset text
+(like in the exercises above).
-13. Make both lines the same:
+These elements are specified in separate JSON files like this
----> this is not right {expect:---> this is right} |expect:---> this is right {expect:---> this is right}|
----> ---> this is right {expect:---> this is right} |expect:---> this is right {expect:---> this is right}|
-
-
-If the content of a expect clause is ANYTHING, no checks will be performed. This is
-useful to create a line that is highlighted you want the user to play with.
-
- \---> TEXT {expect:ANYTHING}
-
-is displayed
+~~~ json
+{
+ "expect": {
+ "1": "This is how this line should look.",
+ "2": "This is how this line should look.",
+ "3": -1
+ }
+}
+~~~
----> this is free text {expect:ANYTHING}
+These files contain an "expect" dictionary, for which the keys are line numbers and
+the values are the expected text. A value of -1 means that the condition for the line
+will always be satisfied, no matter what (this is useful for letting the user play a bit).
-14. Turn the line below into free text:
+This is an "expect" line that is always satisfied. Try changing it.
----> this is some text |expect:---> this is some text {expect:ANYTHING}|
----> ---> this is some text {expect:ANYTHING} |expect:---> this is some text {expect:ANYTHING}|
+These files conventionally have the same name as the tutorial document with the `.json`
+extension appended (for a full example, see the file that corresponds to this tutorial).
diff --git a/runtime/tutor/tutor.tutor.json b/runtime/tutor/tutor.tutor.json
new file mode 100644
index 0000000000..bf3eae8586
--- /dev/null
+++ b/runtime/tutor/tutor.tutor.json
@@ -0,0 +1,35 @@
+{
+ "expect": {
+ "63": "This is text with **important information**",
+ "64": "This is text with **important information**",
+ "71": "Document '&variable'",
+ "72": "Document '&variable'",
+ "78": "# This is a level 1 header",
+ "79": "# This is a level 1 header",
+ "80": "### This is a level 3 header",
+ "81": "### This is a level 3 header",
+ "82": "# This is a header with a label {*label*}",
+ "83": "# This is a header with a label {*label*}",
+ "108": "A link to help for the ['breakindent']('breakindent') option",
+ "109": "A link to help for the ['breakindent']('breakindent') option",
+ "123": "A link to the [Links](*links*) section",
+ "124": "A link to the [Links](*links*) section",
+ "139": "A link to [the vim-tutor-mode tutorial](@tutor:tutor)",
+ "140": "A link to [the vim-tutor-mode tutorial](@tutor:tutor)",
+ "157": "~~~ viml",
+ "158": "echom 'the value of &number is'.string(&number)",
+ "159": "~~~",
+ "161": "~~~ viml",
+ "162": "echom 'the value of &number is'.string(&number)",
+ "163": "~~~",
+ "188": "~~~ normal",
+ "189": "d2w",
+ "190": "~~~",
+ "192": "~~~ normal",
+ "193": "d2w",
+ "194": "~~~",
+ "206": "`d2w`{normal}",
+ "207": "`d2w`{normal}",
+ "244": -1
+ }
+}
diff --git a/runtime/vimrc_example.vim b/runtime/vimrc_example.vim
deleted file mode 100644
index 17cba123a8..0000000000
--- a/runtime/vimrc_example.vim
+++ /dev/null
@@ -1,56 +0,0 @@
-" An example for a vimrc file.
-"
-" To use it, copy it to
-" for Unix: $HOME/.config/nvim/init.vim
-" for Windows: %LOCALAPPDATA%\nvim\init.vim
-
-set backup " keep a backup file (restore to previous version)
-set undofile " keep an undo file (undo changes after closing)
-set ruler " show the cursor position all the time
-set showcmd " display incomplete commands
-
-" Don't use Ex mode, use Q for formatting
-noremap Q gq
-
-" CTRL-U in insert mode deletes a lot. Use CTRL-G u to first break undo,
-" so that you can undo CTRL-U after inserting a line break.
-inoremap <C-U> <C-G>u<C-U>
-
-" Switch syntax highlighting on
-syntax on
-
-" Also switch on highlighting the last used search pattern.
-set hlsearch
-
-" I like highlighting strings inside C comments.
-let c_comment_strings=1
-
-" Enable file type detection.
-" Use the default filetype settings, so that mail gets 'textwidth' set to 72,
-" 'cindent' is on in C files, etc.
-" Also load indent files, to automatically do language-dependent indenting.
-filetype plugin indent on
-
-" Put these in an autocmd group, so that we can delete them easily.
-augroup vimrcEx
- autocmd!
-
- " For all text files set 'textwidth' to 78 characters.
- autocmd FileType text setlocal textwidth=78
-
- " When editing a file, always jump to the last known cursor position.
- " Don't do it when the position is invalid or when inside an event handler
- autocmd BufReadPost *
- \ if line("'\"") >= 1 && line("'\"") <= line("$") |
- \ execute "normal! g`\"" |
- \ endif
-
-augroup END
-
-" Convenient command to see the difference between the current buffer and the
-" file it was loaded from, thus the changes you made.
-" Only define it when not defined already.
-if !exists(":DiffOrig")
- command DiffOrig vert new | set buftype=nofile | read ++edit # | 0d_ | diffthis
- \ | wincmd p | diffthis
-endif