aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml42
-rw-r--r--CMakeLists.txt77
-rw-r--r--CONTRIBUTING.md46
-rw-r--r--Makefile10
-rw-r--r--README.md54
-rw-r--r--ci/build.bat10
-rw-r--r--ci/common/build.sh32
-rw-r--r--ci/common/suite.sh98
-rw-r--r--ci/common/test.sh78
-rwxr-xr-xci/run_lint.sh25
-rwxr-xr-xci/run_tests.sh12
-rw-r--r--cmake/FindLibUV.cmake2
-rw-r--r--cmake/FindLua.cmake197
-rw-r--r--cmake/InstallHelpers.cmake9
-rw-r--r--cmake/RunLuacheck.cmake22
-rw-r--r--cmake/RunTests.cmake4
-rw-r--r--cmake/RunTestsLint.cmake13
-rw-r--r--contrib/local.mk.example5
-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.vim1
-rw-r--r--runtime/autoload/health/nvim.vim9
-rw-r--r--runtime/autoload/health/provider.vim45
-rw-r--r--runtime/autoload/man.vim77
-rw-r--r--runtime/autoload/netrw.vim4
-rw-r--r--runtime/autoload/phpcomplete.vim102
-rw-r--r--runtime/autoload/provider/clipboard.vim25
-rw-r--r--runtime/autoload/provider/ruby.vim12
-rw-r--r--runtime/autoload/provider/script_host.rb8
-rw-r--r--runtime/autoload/rubycomplete.vim38
-rw-r--r--runtime/autoload/shada.vim3
-rw-r--r--runtime/autoload/tar.vim2
-rw-r--r--runtime/autoload/zip.vim76
-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/context.vim54
-rw-r--r--runtime/compiler/csslint.vim16
-rw-r--r--runtime/compiler/cucumber.vim4
-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/rubyunit.vim2
-rw-r--r--runtime/compiler/sass.vim4
-rw-r--r--runtime/doc/api.txt25
-rw-r--r--runtime/doc/autocmd.txt49
-rw-r--r--runtime/doc/change.txt34
-rw-r--r--runtime/doc/cmdline.txt33
-rw-r--r--runtime/doc/debug.txt4
-rw-r--r--runtime/doc/deprecated.txt3
-rw-r--r--runtime/doc/develop.txt5
-rw-r--r--runtime/doc/diff.txt11
-rw-r--r--runtime/doc/digraph.txt4
-rw-r--r--runtime/doc/editing.txt15
-rw-r--r--runtime/doc/eval.txt288
-rw-r--r--runtime/doc/filetype.txt18
-rw-r--r--runtime/doc/fold.txt5
-rw-r--r--runtime/doc/gui.txt48
-rw-r--r--runtime/doc/help.txt6
-rw-r--r--runtime/doc/helphelp.txt21
-rw-r--r--runtime/doc/if_cscop.txt10
-rw-r--r--runtime/doc/if_lua.txt311
-rw-r--r--runtime/doc/if_pyth.txt24
-rw-r--r--runtime/doc/if_ruby.txt12
-rw-r--r--runtime/doc/indent.txt3
-rw-r--r--runtime/doc/index.txt24
-rw-r--r--runtime/doc/insert.txt13
-rw-r--r--runtime/doc/intro.txt41
-rw-r--r--runtime/doc/job_control.txt4
-rw-r--r--runtime/doc/map.txt61
-rw-r--r--runtime/doc/mbyte.txt94
-rw-r--r--runtime/doc/message.txt14
-rw-r--r--runtime/doc/mlang.txt6
-rw-r--r--runtime/doc/motion.txt12
-rw-r--r--runtime/doc/msgpack_rpc.txt53
-rw-r--r--runtime/doc/nvim.txt16
-rw-r--r--runtime/doc/nvim_terminal_emulator.txt48
-rw-r--r--runtime/doc/options.txt219
-rw-r--r--runtime/doc/os_win32.txt31
-rw-r--r--runtime/doc/pattern.txt18
-rw-r--r--runtime/doc/pi_gzip.txt2
-rw-r--r--runtime/doc/pi_health.txt14
-rw-r--r--runtime/doc/pi_netrw.txt12
-rw-r--r--runtime/doc/pi_zip.txt28
-rw-r--r--runtime/doc/print.txt9
-rw-r--r--runtime/doc/provider.txt68
-rw-r--r--runtime/doc/quickfix.txt12
-rw-r--r--runtime/doc/quickref.txt3
-rw-r--r--runtime/doc/recover.txt3
-rw-r--r--runtime/doc/remote.txt4
-rw-r--r--runtime/doc/remote_plugin.txt5
-rw-r--r--runtime/doc/repeat.txt20
-rw-r--r--runtime/doc/russian.txt5
-rw-r--r--runtime/doc/scroll.txt10
-rw-r--r--runtime/doc/sign.txt3
-rw-r--r--runtime/doc/spell.txt5
-rw-r--r--runtime/doc/starting.txt157
-rw-r--r--runtime/doc/syntax.txt383
-rw-r--r--runtime/doc/tabpage.txt61
-rw-r--r--runtime/doc/tagsrch.txt7
-rw-r--r--runtime/doc/term.txt397
-rw-r--r--runtime/doc/tips.txt59
-rw-r--r--runtime/doc/undo.txt7
-rw-r--r--runtime/doc/usr_02.txt8
-rw-r--r--runtime/doc/usr_03.txt2
-rw-r--r--runtime/doc/usr_05.txt16
-rw-r--r--runtime/doc/usr_06.txt7
-rw-r--r--runtime/doc/usr_22.txt2
-rw-r--r--runtime/doc/usr_41.txt2
-rw-r--r--runtime/doc/usr_toc.txt5
-rw-r--r--runtime/doc/various.txt47
-rw-r--r--runtime/doc/vi_diff.txt3
-rw-r--r--runtime/doc/vim_diff.txt65
-rw-r--r--runtime/doc/visual.txt9
-rw-r--r--runtime/doc/windows.txt15
-rw-r--r--runtime/filetype.vim34
-rw-r--r--runtime/ftplugin/awk.vim18
-rw-r--r--runtime/ftplugin/context.vim79
-rw-r--r--runtime/ftplugin/cucumber.vim28
-rw-r--r--runtime/ftplugin/eruby.vim2
-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/haml.vim2
-rw-r--r--runtime/ftplugin/help.vim72
-rw-r--r--runtime/ftplugin/man.vim5
-rw-r--r--runtime/ftplugin/markdown.vim32
-rw-r--r--runtime/ftplugin/mf.vim61
-rw-r--r--runtime/ftplugin/mp.vim64
-rw-r--r--runtime/ftplugin/python.vim34
-rw-r--r--runtime/ftplugin/qf.vim23
-rw-r--r--runtime/ftplugin/ruby.vim153
-rw-r--r--runtime/ftplugin/sass.vim5
-rw-r--r--runtime/ftplugin/scala.vim2
-rw-r--r--runtime/ftplugin/scss.vim3
-rw-r--r--runtime/indent/cdl.vim2
-rw-r--r--runtime/indent/context.vim36
-rw-r--r--runtime/indent/cucumber.vim21
-rw-r--r--runtime/indent/eruby.vim43
-rw-r--r--runtime/indent/fortran.vim23
-rw-r--r--runtime/indent/gitconfig.vim9
-rw-r--r--runtime/indent/haml.vim7
-rw-r--r--runtime/indent/html.vim27
-rw-r--r--runtime/indent/javascript.vim388
-rw-r--r--runtime/indent/liquid.vim11
-rw-r--r--runtime/indent/mf.vim6
-rw-r--r--runtime/indent/mp.vim483
-rw-r--r--runtime/indent/ruby.vim232
-rw-r--r--runtime/indent/sass.vim6
-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/menu.vim4
-rw-r--r--runtime/optwin.vim2
-rw-r--r--runtime/pack/dist/opt/vimball/autoload/vimball.vim2
-rw-r--r--runtime/plugin/gzip.vim12
-rw-r--r--runtime/plugin/zipPlugin.vim8
-rw-r--r--runtime/synmenu.vim52
-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/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/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.vim188
-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/bib.vim47
-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.vim48
-rw-r--r--runtime/syntax/cabal.vim37
-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/cmake.vim45
-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/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/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.vim41
-rw-r--r--runtime/syntax/debcontrol.vim61
-rw-r--r--runtime/syntax/debsources.vim12
-rw-r--r--runtime/syntax/def.vim35
-rw-r--r--runtime/syntax/desc.vim66
-rw-r--r--runtime/syntax/desktop.vim67
-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/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/elmfilt.vim52
-rw-r--r--runtime/syntax/erlang.vim217
-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/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/fgl.vim37
-rw-r--r--runtime/syntax/flexwiki.vim6
-rw-r--r--runtime/syntax/focexec.vim45
-rw-r--r--runtime/syntax/form.vim81
-rw-r--r--runtime/syntax/forth.vim101
-rw-r--r--runtime/syntax/fortran.vim20
-rw-r--r--runtime/syntax/foxpro.vim55
-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/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/grads.vim41
-rw-r--r--runtime/syntax/gretl.vim59
-rw-r--r--runtime/syntax/groovy.vim168
-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.vim116
-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.vim6
-rw-r--r--runtime/syntax/hercules.vim48
-rw-r--r--runtime/syntax/hex.vim49
-rw-r--r--runtime/syntax/hog.vim5
-rw-r--r--runtime/syntax/hostsaccess.vim8
-rw-r--r--runtime/syntax/html.vim175
-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/inform.vim112
-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/ldif.vim32
-rw-r--r--runtime/syntax/lex.vim47
-rw-r--r--runtime/syntax/lhaskell.vim50
-rw-r--r--runtime/syntax/lifelines.vim75
-rw-r--r--runtime/syntax/lilo.vim128
-rw-r--r--runtime/syntax/lisp.vim46
-rw-r--r--runtime/syntax/lite.vim61
-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/make.vim63
-rw-r--r--runtime/syntax/man.vim5
-rw-r--r--runtime/syntax/maple.vim145
-rw-r--r--runtime/syntax/markdown.vim31
-rw-r--r--runtime/syntax/mason.vim36
-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/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/mush.vim58
-rw-r--r--runtime/syntax/muttrc.vim311
-rw-r--r--runtime/syntax/mysql.vim39
-rw-r--r--runtime/syntax/named.vim91
-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/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/papp.vim29
-rw-r--r--runtime/syntax/pascal.vim87
-rw-r--r--runtime/syntax/pcap.vim31
-rw-r--r--runtime/syntax/pccts.vim59
-rw-r--r--runtime/syntax/perl.vim192
-rw-r--r--runtime/syntax/perl6.vim335
-rw-r--r--runtime/syntax/pfmain.vim48
-rw-r--r--runtime/syntax/php.vim212
-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/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.vim39
-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/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.vim181
-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/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/rib.vim29
-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/rtf.vim55
-rw-r--r--runtime/syntax/ruby.vim439
-rw-r--r--runtime/syntax/samba.vim33
-rw-r--r--runtime/syntax/sas.vim113
-rw-r--r--runtime/syntax/sass.vim12
-rw-r--r--runtime/syntax/sather.vim71
-rw-r--r--runtime/syntax/scala.vim5
-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/sgml.vim7
-rw-r--r--runtime/syntax/sgmldecl.vim45
-rw-r--r--runtime/syntax/sgmllnx.vim45
-rw-r--r--runtime/syntax/sh.vim285
-rw-r--r--runtime/syntax/sicad.vim79
-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.vim6
-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/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.vim85
-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/svn.vim37
-rw-r--r--runtime/syntax/synload.vim9
-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/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/tex.vim218
-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/tpp.vim57
-rw-r--r--runtime/syntax/trasys.vim71
-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/uc.vim113
-rw-r--r--runtime/syntax/uil.vim58
-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.vim337
-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/xkb.vim74
-rw-r--r--runtime/syntax/xmath.vim65
-rw-r--r--runtime/syntax/xpm.vim40
-rw-r--r--runtime/syntax/xpm2.vim51
-rw-r--r--runtime/syntax/xs.vim45
-rw-r--r--runtime/syntax/xxd.vim28
-rw-r--r--runtime/syntax/yacc.vim11
-rw-r--r--runtime/syntax/z8a.vim45
-rwxr-xr-xscripts/genappimage.sh83
-rwxr-xr-xscripts/pvscheck.sh403
-rwxr-xr-xscripts/release.sh15
-rwxr-xr-xscripts/vim-patch.sh4
-rwxr-xr-xsrc/clint.py22
-rw-r--r--src/nvim/CMakeLists.txt179
-rw-r--r--src/nvim/README.md68
-rw-r--r--src/nvim/api/buffer.c105
-rw-r--r--src/nvim/api/private/defs.h34
-rw-r--r--src/nvim/api/private/helpers.c99
-rw-r--r--src/nvim/api/private/helpers.h2
-rw-r--r--src/nvim/api/tabpage.c14
-rw-r--r--src/nvim/api/ui.c207
-rw-r--r--src/nvim/api/ui_events.in.h71
-rw-r--r--src/nvim/api/vim.c198
-rw-r--r--src/nvim/api/window.c40
-rw-r--r--src/nvim/buffer.c415
-rw-r--r--src/nvim/buffer.h8
-rw-r--r--src/nvim/buffer_defs.h31
-rw-r--r--src/nvim/bufhl_defs.h23
-rw-r--r--src/nvim/charset.c61
-rw-r--r--src/nvim/cursor_shape.c8
-rw-r--r--src/nvim/diff.c2
-rw-r--r--src/nvim/edit.c7
-rw-r--r--src/nvim/eval.c692
-rw-r--r--src/nvim/eval.lua3
-rw-r--r--src/nvim/eval/decode.c157
-rw-r--r--src/nvim/eval/decode.h1
-rw-r--r--src/nvim/eval/encode.c6
-rw-r--r--src/nvim/eval/executor.c6
-rw-r--r--src/nvim/eval/typval.c37
-rw-r--r--src/nvim/eval/typval.h13
-rw-r--r--src/nvim/eval/typval_encode.c.h5
-rw-r--r--src/nvim/event/defs.h8
-rw-r--r--src/nvim/event/libuv_process.c10
-rw-r--r--src/nvim/event/loop.c24
-rw-r--r--src/nvim/event/multiqueue.c48
-rw-r--r--src/nvim/event/multiqueue.h2
-rw-r--r--src/nvim/event/process.c10
-rw-r--r--src/nvim/event/socket.c206
-rw-r--r--src/nvim/event/socket.h2
-rw-r--r--src/nvim/event/stream.c8
-rw-r--r--src/nvim/ex_cmds.c168
-rw-r--r--src/nvim/ex_cmds.lua12
-rw-r--r--src/nvim/ex_cmds2.c11
-rw-r--r--src/nvim/ex_cmds_defs.h27
-rw-r--r--src/nvim/ex_docmd.c150
-rw-r--r--src/nvim/ex_getln.c367
-rw-r--r--src/nvim/fileio.c41
-rw-r--r--src/nvim/fold.c2
-rw-r--r--src/nvim/func_attr.h61
-rw-r--r--src/nvim/garray.h2
-rw-r--r--src/nvim/generators/c_grammar.lua50
-rw-r--r--src/nvim/generators/dump_bin_array.lua17
-rw-r--r--src/nvim/generators/gen_api_dispatch.lua (renamed from scripts/gendispatch.lua)278
-rw-r--r--src/nvim/generators/gen_api_ui_events.lua165
-rw-r--r--src/nvim/generators/gen_char_blob.lua48
-rwxr-xr-xsrc/nvim/generators/gen_declarations.lua (renamed from scripts/gendeclarations.lua)64
-rw-r--r--src/nvim/generators/gen_eval.lua (renamed from scripts/geneval.lua)3
-rw-r--r--src/nvim/generators/gen_events.lua (renamed from scripts/gen_events.lua)0
-rw-r--r--src/nvim/generators/gen_ex_cmds.lua (renamed from scripts/genex_cmds.lua)0
-rw-r--r--src/nvim/generators/gen_options.lua (renamed from scripts/genoptions.lua)2
-rw-r--r--src/nvim/generators/gen_unicode_tables.lua (renamed from scripts/genunicodetables.lua)0
-rw-r--r--src/nvim/getchar.c56
-rw-r--r--src/nvim/globals.h107
-rw-r--r--src/nvim/highlight_defs.h126
-rw-r--r--src/nvim/if_cscope.c2
-rw-r--r--src/nvim/if_cscope_defs.h1
-rw-r--r--src/nvim/indent.c4
-rw-r--r--src/nvim/indent_c.c39
-rw-r--r--src/nvim/keymap.c2
-rw-r--r--src/nvim/lib/kbtree.h451
-rw-r--r--src/nvim/log.c106
-rw-r--r--src/nvim/log.h74
-rw-r--r--src/nvim/lua/converter.c1189
-rw-r--r--src/nvim/lua/converter.h15
-rw-r--r--src/nvim/lua/executor.c662
-rw-r--r--src/nvim/lua/executor.h25
-rw-r--r--src/nvim/lua/vim.lua64
-rw-r--r--src/nvim/macros.h30
-rw-r--r--src/nvim/main.c40
-rw-r--r--src/nvim/map.c1
-rw-r--r--src/nvim/map.h1
-rw-r--r--src/nvim/mark.c19
-rw-r--r--src/nvim/mark.h3
-rw-r--r--src/nvim/mbyte.c8
-rw-r--r--src/nvim/memfile.c24
-rw-r--r--src/nvim/memline.c9
-rw-r--r--src/nvim/memory.c4
-rw-r--r--src/nvim/menu.c2
-rw-r--r--src/nvim/message.c21
-rw-r--r--src/nvim/misc1.c12
-rw-r--r--src/nvim/mouse.c4
-rw-r--r--src/nvim/msgpack_rpc/channel.c133
-rw-r--r--src/nvim/msgpack_rpc/channel.h5
-rw-r--r--src/nvim/msgpack_rpc/helpers.c31
-rw-r--r--src/nvim/msgpack_rpc/helpers.h7
-rw-r--r--src/nvim/msgpack_rpc/server.c48
-rw-r--r--src/nvim/msgpack_rpc/server.h2
-rw-r--r--src/nvim/normal.c11
-rw-r--r--src/nvim/ops.c99
-rw-r--r--src/nvim/option.c119
-rw-r--r--src/nvim/option_defs.h1
-rw-r--r--src/nvim/options.lua17
-rw-r--r--src/nvim/os/env.c60
-rw-r--r--src/nvim/os/fs.c14
-rw-r--r--src/nvim/os/input.c14
-rw-r--r--src/nvim/os/pty_process_unix.c2
-rw-r--r--src/nvim/os/shell.c17
-rw-r--r--src/nvim/os/shell.h2
-rw-r--r--src/nvim/os_unix.c8
-rw-r--r--src/nvim/path.c53
-rw-r--r--src/nvim/po/eo.po4851
-rw-r--r--src/nvim/po/fr.po4984
-rw-r--r--src/nvim/po/ga.po6199
-rw-r--r--src/nvim/po/ja.euc-jp.po6119
-rw-r--r--src/nvim/po/ja.po6116
-rw-r--r--src/nvim/popupmnu.c30
-rw-r--r--src/nvim/popupmnu.h2
-rw-r--r--src/nvim/quickfix.c70
-rw-r--r--src/nvim/quickfix.h3
-rw-r--r--src/nvim/regexp.c95
-rw-r--r--src/nvim/regexp.h4
-rw-r--r--src/nvim/regexp_nfa.c18
-rw-r--r--src/nvim/screen.c455
-rw-r--r--src/nvim/search.c9
-rw-r--r--src/nvim/sha256.h1
-rw-r--r--src/nvim/shada.c92
-rw-r--r--src/nvim/sign_defs.h2
-rw-r--r--src/nvim/spell.h2
-rw-r--r--src/nvim/spellfile.c3
-rw-r--r--src/nvim/spellfile.h1
-rw-r--r--src/nvim/state.c49
-rw-r--r--src/nvim/strings.c90
-rw-r--r--src/nvim/syntax.c114
-rw-r--r--src/nvim/syntax_defs.h3
-rw-r--r--src/nvim/tag.c93
-rw-r--r--src/nvim/tag.h3
-rw-r--r--src/nvim/terminal.c22
-rw-r--r--src/nvim/testdir/Makefile4
-rw-r--r--src/nvim/testdir/runtest.vim119
-rw-r--r--src/nvim/testdir/shared.vim2
-rw-r--r--src/nvim/testdir/test49.vim2
-rw-r--r--src/nvim/testdir/test_alot.vim3
-rw-r--r--src/nvim/testdir/test_cscope.vim2
-rw-r--r--src/nvim/testdir/test_cursor_func.vim8
-rw-r--r--src/nvim/testdir/test_expr.vim31
-rw-r--r--src/nvim/testdir/test_filter_cmd.vim76
-rw-r--r--src/nvim/testdir/test_float_func.vim332
-rw-r--r--src/nvim/testdir/test_functions.vim19
-rw-r--r--src/nvim/testdir/test_largefile.vim34
-rw-r--r--src/nvim/testdir/test_menu.vim2
-rw-r--r--src/nvim/testdir/test_popup.vim2
-rw-r--r--src/nvim/testdir/test_search.vim285
-rw-r--r--src/nvim/testdir/test_startup.vim2
-rw-r--r--src/nvim/testdir/test_stat.vim64
-rw-r--r--src/nvim/testdir/test_vimscript.vim (renamed from src/nvim/testdir/test_viml.vim)151
-rw-r--r--src/nvim/tui/input.c10
-rw-r--r--src/nvim/tui/input.h3
-rw-r--r--src/nvim/tui/tui.c306
-rw-r--r--src/nvim/tui/tui.h1
-rw-r--r--src/nvim/ui.c199
-rw-r--r--src/nvim/ui.h41
-rw-r--r--src/nvim/ui_bridge.c257
-rw-r--r--src/nvim/undo.c8
-rw-r--r--src/nvim/version.c42
-rw-r--r--src/nvim/window.c12
-rw-r--r--test/README.md2
-rw-r--r--test/functional/api/buffer_spec.lua10
-rw-r--r--test/functional/api/keymap_spec.lua246
-rw-r--r--test/functional/api/server_requests_spec.lua73
-rw-r--r--test/functional/api/vim_spec.lua174
-rw-r--r--test/functional/api/window_spec.lua7
-rw-r--r--test/functional/eval/api_functions_spec.lua2
-rw-r--r--test/functional/eval/function_spec.lua29
-rw-r--r--test/functional/eval/input_spec.lua354
-rw-r--r--test/functional/eval/map_functions_spec.lua120
-rw-r--r--test/functional/eval/msgpack_functions_spec.lua8
-rw-r--r--test/functional/eval/server_spec.lua47
-rw-r--r--test/functional/ex_cmds/encoding_spec.lua4
-rw-r--r--test/functional/ex_cmds/mksession_spec.lua49
-rw-r--r--test/functional/ex_cmds/oldfiles_spec.lua47
-rw-r--r--test/functional/ex_cmds/script_spec.lua75
-rw-r--r--test/functional/fixtures/api_level_2.mpackbin0 -> 16949 bytes
-rw-r--r--test/functional/fixtures/tty-test.c9
-rw-r--r--test/functional/helpers.lua72
-rw-r--r--test/functional/legacy/036_regexp_character_classes_spec.lua12
-rw-r--r--test/functional/legacy/assert_spec.lua10
-rw-r--r--test/functional/legacy/eval_spec.lua9
-rw-r--r--test/functional/legacy/search_spec.lua474
-rw-r--r--test/functional/lua/api_spec.lua204
-rw-r--r--test/functional/lua/commands_spec.lua164
-rw-r--r--test/functional/lua/luaeval_spec.lua255
-rw-r--r--test/functional/lua/overrides_spec.lua294
-rw-r--r--test/functional/options/defaults_spec.lua93
-rw-r--r--test/functional/options/pastetoggle_spec.lua35
-rw-r--r--test/functional/plugin/shada_spec.lua37
-rw-r--r--test/functional/provider/python3_spec.lua8
-rw-r--r--test/functional/provider/python_spec.lua8
-rw-r--r--test/functional/provider/ruby_spec.lua6
-rw-r--r--test/functional/shada/registers_spec.lua36
-rw-r--r--test/functional/terminal/tui_spec.lua12
-rw-r--r--test/functional/ui/cursor_spec.lua141
-rw-r--r--test/functional/ui/highlight_spec.lua415
-rw-r--r--test/functional/ui/inccommand_spec.lua1
-rw-r--r--test/functional/ui/screen.lua5
-rw-r--r--test/functional/ui/screen_basic_spec.lua60
-rw-r--r--test/functional/ui/tabline_spec.lua57
-rw-r--r--test/functional/ui/wildmode_spec.lua21
-rw-r--r--test/functional/viml/completion_spec.lua4
-rw-r--r--test/functional/viml/function_spec.lua232
-rw-r--r--test/helpers.lua16
-rw-r--r--test/unit/eval/typval_spec.lua49
-rw-r--r--test/unit/os/env_spec.lua2
-rw-r--r--test/unit/os/fs_spec.lua52
-rw-r--r--test/unit/os/shell_spec.lua22
-rw-r--r--test/unit/path_spec.lua136
-rw-r--r--test/unit/strings_spec.lua39
-rw-r--r--third-party/CMakeLists.txt38
-rw-r--r--third-party/cmake/BuildLibtermkey.cmake48
-rw-r--r--third-party/cmake/BuildLua.cmake19
-rw-r--r--third-party/cmake/BuildLuarocks.cmake9
793 files changed, 40526 insertions, 36018 deletions
diff --git a/.travis.yml b/.travis.yml
index 1f00b5c880..45c2dcb832 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -10,7 +10,7 @@ env:
# http://docs.travis-ci.com/user/speeding-up-the-build/#Paralellizing-your-build-on-one-VM
- MAKE_CMD="make -j2"
# Update PATH for pip.
- - PATH="$(python2.7 -c 'import site; print(site.getuserbase())')/bin:/usr/lib/llvm-symbolizer-3.9/bin:$PATH"
+ - PATH="$(python2.7 -c 'import site; print(site.getuserbase())')/bin:/usr/lib/llvm-symbolizer-4.0/bin:$PATH"
# Build directory for Neovim.
- BUILD_DIR="$TRAVIS_BUILD_DIR/build"
# Build directory for third-party dependencies.
@@ -21,13 +21,15 @@ env:
- INSTALL_PREFIX="$HOME/nvim-install"
# Log directory for Clang sanitizers and Valgrind.
- LOG_DIR="$BUILD_DIR/log"
+ # Nvim log file.
+ - NVIM_LOG_FILE="$BUILD_DIR/.nvimlog"
# Default CMake flags.
- CMAKE_FLAGS="-DTRAVIS_CI_BUILD=ON
-DCMAKE_BUILD_TYPE=Debug
-DCMAKE_INSTALL_PREFIX:PATH=$INSTALL_PREFIX
-DBUSTED_OUTPUT_TYPE=nvim
-DDEPS_PREFIX=$DEPS_BUILD_DIR/usr
- -DMIN_LOG_LEVEL=2"
+ -DMIN_LOG_LEVEL=3"
- DEPS_CMAKE_FLAGS="-DDEPS_DOWNLOAD_DIR:PATH=$DEPS_DOWNLOAD_DIR"
# Additional CMake flags for 32-bit builds.
- CMAKE_FLAGS_32BIT="-DCMAKE_SYSTEM_LIBRARY_PATH=/lib32:/usr/lib32:/usr/local/lib32
@@ -47,14 +49,19 @@ env:
- FUNCTIONALTEST=functionaltest
- CI_TARGET=tests
-matrix:
+jobs:
include:
+ - stage: sanitizers
+ os: linux
+ compiler: clang-4.0
+ env: >
+ CLANG_SANITIZER=ASAN_UBSAN
+ CMAKE_FLAGS="$CMAKE_FLAGS -DPREFER_LUA=ON"
- os: linux
- env: CI_TARGET=lint
- - os: linux
- compiler: gcc-5
- env: GCOV=gcov-5 CMAKE_FLAGS="$CMAKE_FLAGS -DUSE_GCOV=ON"
- - os: linux
+ compiler: clang-4.0
+ env: CLANG_SANITIZER=TSAN
+ - stage: normal builds
+ os: linux
compiler: gcc-5
env: FUNCTIONALTEST=functionaltest-lua
- os: linux
@@ -63,18 +70,19 @@ matrix:
# dependencies in a separate cache.
compiler: gcc-5 -m32
env: BUILD_32BIT=ON
- - os: linux
- compiler: clang-3.9
- env: CLANG_SANITIZER=ASAN_UBSAN
- - os: linux
- compiler: clang-3.9
- env: CLANG_SANITIZER=TSAN
- os: osx
compiler: clang
osx_image: xcode7.3 # macOS 10.11
- os: osx
compiler: gcc-4.9
osx_image: xcode7.3 # macOS 10.11
+ - stage: lint
+ os: linux
+ env: CI_TARGET=lint
+ - stage: coverage
+ os: linux
+ compiler: gcc-5
+ env: GCOV=gcov-5 CMAKE_FLAGS="$CMAKE_FLAGS -DUSE_GCOV=ON"
allow_failures:
- env: GCOV=gcov-5 CMAKE_FLAGS="$CMAKE_FLAGS -DUSE_GCOV=ON"
fast_finish: true
@@ -90,13 +98,13 @@ addons:
apt:
sources:
- ubuntu-toolchain-r-test
- - llvm-toolchain-trusty-3.9
+ - llvm-toolchain-trusty-4.0
packages:
- autoconf
- automake
- apport
- build-essential
- - clang-3.9
+ - clang-4.0
- cmake
- cscope
- g++-5-multilib
@@ -107,7 +115,7 @@ addons:
- language-pack-tr
- libc6-dev-i386
- libtool
- - llvm-3.9-dev
+ - llvm-4.0-dev
- locales
- pkg-config
- unzip
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2232543cc8..1699ffa8fa 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -64,11 +64,11 @@ set_property(CACHE CMAKE_BUILD_TYPE PROPERTY
# version string, else they are combined with the result of `git describe`.
set(NVIM_VERSION_MAJOR 0)
set(NVIM_VERSION_MINOR 2)
-set(NVIM_VERSION_PATCH 0)
+set(NVIM_VERSION_PATCH 1)
set(NVIM_VERSION_PRERELEASE "-dev") # for package maintainers
# API level
-set(NVIM_API_LEVEL 2) # Bump this after any API change.
+set(NVIM_API_LEVEL 3) # Bump this after any API change.
set(NVIM_API_LEVEL_COMPAT 0) # Adjust this after a _breaking_ API change.
set(NVIM_API_PRERELEASE true)
@@ -96,15 +96,15 @@ if(CMAKE_C_FLAGS_RELEASE MATCHES "-O3")
string(REPLACE "-O3" "-O2" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
endif()
-# Disable logging for release-type builds.
-if(NOT CMAKE_C_FLAGS_RELEASE MATCHES DDISABLE_LOG)
- set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DDISABLE_LOG")
+# Minimize logging for release-type builds.
+if(NOT CMAKE_C_FLAGS_RELEASE MATCHES DMIN_LOG_LEVEL)
+ set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DMIN_LOG_LEVEL=3")
endif()
-if(NOT CMAKE_C_FLAGS_MINSIZEREL MATCHES DDISABLE_LOG)
- set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} -DDISABLE_LOG")
+if(NOT CMAKE_C_FLAGS_MINSIZEREL MATCHES DMIN_LOG_LEVEL)
+ set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} -DMIN_LOG_LEVEL=3")
endif()
-if(NOT CMAKE_C_FLAGS_RELWITHDEBINFO MATCHES DDISABLE_LOG)
- set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -DDISABLE_LOG")
+if(NOT CMAKE_C_FLAGS_RELWITHDEBINFO MATCHES DMIN_LOG_LEVEL)
+ set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -DMIN_LOG_LEVEL=3")
endif()
# Enable assertions for RelWithDebInfo.
@@ -221,9 +221,14 @@ else()
add_definitions(-Wall -Wextra -pedantic -Wno-unused-parameter
-Wstrict-prototypes -std=gnu99)
+ check_c_compiler_flag(-Wimplicit-fallthrough HAS_WIMPLICIT_FALLTHROUGH_FLAG)
+ if(HAS_WIMPLICIT_FALLTHROUGH_FLAG)
+ add_definitions(-Wimplicit-fallthrough)
+ endif()
+
# On FreeBSD 64 math.h uses unguarded C11 extension, which taints clang
# 3.4.1 used there.
- if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
+ if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" AND CMAKE_C_COMPILER_ID MATCHES "Clang")
add_definitions(-Wno-c11-extensions)
endif()
endif()
@@ -309,6 +314,20 @@ include_directories(SYSTEM ${LIBUV_INCLUDE_DIRS})
find_package(Msgpack 1.0.0 REQUIRED)
include_directories(SYSTEM ${MSGPACK_INCLUDE_DIRS})
+# Note: The test lib requires LuaJIT; it will be skipped if LuaJIT is missing.
+option(PREFER_LUA "Prefer Lua over LuaJIT in the nvim executable." OFF)
+
+if(PREFER_LUA)
+ find_package(Lua REQUIRED)
+ set(LUA_PREFERRED_INCLUDE_DIRS ${LUA_INCLUDE_DIR})
+ set(LUA_PREFERRED_LIBRARIES ${LUA_LIBRARIES})
+ find_package(LuaJit)
+else()
+ find_package(LuaJit REQUIRED)
+ set(LUA_PREFERRED_INCLUDE_DIRS ${LUAJIT_INCLUDE_DIRS})
+ set(LUA_PREFERRED_LIBRARIES ${LUAJIT_LIBRARIES})
+endif()
+
list(APPEND CMAKE_REQUIRED_INCLUDES "${MSGPACK_INCLUDE_DIRS}")
check_c_source_compiles("
#include <msgpack.h>
@@ -324,11 +343,7 @@ if(MSGPACK_HAS_FLOAT32)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DNVIM_MSGPACK_HAS_FLOAT32")
endif()
-if(UNIX)
- option(FEAT_TUI "Enable the Terminal UI" ON)
-else()
- option(FEAT_TUI "Enable the Terminal UI" OFF)
-endif()
+option(FEAT_TUI "Enable the Terminal UI" ON)
if(FEAT_TUI)
find_package(Unibilium REQUIRED)
@@ -430,11 +445,7 @@ message(STATUS "Using the Lua interpreter ${LUA_PRG}.")
find_program(BUSTED_PRG NAMES busted busted.bat)
find_program(BUSTED_LUA_PRG busted-lua)
if(NOT BUSTED_OUTPUT_TYPE)
- if(WIN32)
- set(BUSTED_OUTPUT_TYPE "plainTerminal")
- else()
- set(BUSTED_OUTPUT_TYPE "utfTerminal")
- endif()
+ set(BUSTED_OUTPUT_TYPE "nvim")
endif()
find_program(LUACHECK_PRG luacheck)
@@ -445,7 +456,6 @@ include(InstallHelpers)
file(GLOB MANPAGES
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
man/nvim.1)
-
install_helper(
FILES ${MANPAGES}
DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
@@ -453,11 +463,11 @@ install_helper(
# MIN_LOG_LEVEL for log.h
if(DEFINED MIN_LOG_LEVEL)
if(NOT MIN_LOG_LEVEL MATCHES "^[0-3]$")
- message(FATAL_ERROR "MIN_LOG_LEVEL must be a number 0-3")
+ message(FATAL_ERROR "invalid MIN_LOG_LEVEL: " ${MIN_LOG_LEVEL})
endif()
message(STATUS "MIN_LOG_LEVEL set to ${MIN_LOG_LEVEL}")
else()
- message(STATUS "MIN_LOG_LEVEL not specified, defaulting to INFO(1)")
+ message(STATUS "MIN_LOG_LEVEL not specified, defaulting to 1 (INFO)")
endif()
# Go down the tree.
@@ -590,9 +600,26 @@ if(LUACHECK_PRG)
add_custom_target(testlint
COMMAND ${CMAKE_COMMAND}
-DLUACHECK_PRG=${LUACHECK_PRG}
- -DTEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}/test
+ -DLUAFILES_DIR=${CMAKE_CURRENT_SOURCE_DIR}/test
+ -DIGNORE_PATTERN="*/preload.lua"
-DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}
- -P ${PROJECT_SOURCE_DIR}/cmake/RunTestsLint.cmake)
+ -P ${PROJECT_SOURCE_DIR}/cmake/RunLuacheck.cmake)
+
+ add_custom_target(
+ blobcodelint
+ COMMAND
+ ${CMAKE_COMMAND}
+ -DLUACHECK_PRG=${LUACHECK_PRG}
+ -DLUAFILES_DIR=${CMAKE_CURRENT_SOURCE_DIR}/src/nvim/lua
+ -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}
+ -DREAD_GLOBALS=vim
+ -P ${PROJECT_SOURCE_DIR}/cmake/RunLuacheck.cmake
+ )
+ # TODO(ZyX-I): Run linter for all lua code in src
+ add_custom_target(
+ lualint
+ DEPENDS blobcodelint
+ )
endif()
set(CPACK_PACKAGE_NAME "Neovim")
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index f442ceb672..8580e8ef39 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -6,9 +6,10 @@ Getting started
If you want to help but don't know where to start, here are some
low-risk/isolated tasks:
-- Merge a [Vim patch].
+- [Merge a Vim patch].
- Try a [complexity:low] issue.
-- Fix [clang-scan], [coverity](#coverity), and [PVS](#pvs-studio) warnings.
+- Fix bugs found by [clang scan-build](#clang-scan-build),
+ [coverity](#coverity), and [PVS](#pvs-studio).
Developer guidelines
--------------------
@@ -22,18 +23,16 @@ Reporting problems
- Check the [**FAQ**][wiki-faq].
- Search [existing issues][github-issues] (including closed!)
- Update Neovim to the latest version to see if your problem persists.
-- If you're using a plugin manager, comment out your plugins, then add them back
- in one by one, to narrow down the cause of the issue.
-- Crash reports which include a stacktrace are 10x more valuable.
-- [Bisecting][git-bisect] to the cause of a regression often leads to an
- immediate fix.
+- Disable plugins incrementally, to narrow down the cause of the issue.
+- When reporting a crash, include a stacktrace.
+- [Bisect][git-bisect] to the cause of a regression, if you are able. This is _extremely_ helpful.
+- Check `$NVIM_LOG_FILE`, if it exists.
Pull requests ("PRs")
---------------------
- To avoid duplicate work, create a `[WIP]` pull request as soon as possible.
-- Avoid cosmetic changes to unrelated files in the same commit: noise makes
- reviews take longer.
+- Avoid cosmetic changes to unrelated files in the same commit.
- Use a [feature branch][git-feature-branch] instead of the master branch.
- Use a **rebase workflow** for small PRs.
- After addressing review comments, it's fine to rebase and force-push.
@@ -43,7 +42,7 @@ Pull requests ("PRs")
- Use the `ri` git alias:
```
[alias]
- ri = "!sh -c 't=\"${1:-master}\" ; s=\"${2:-HEAD}\" ; if git merge-base --is-ancestor \"$t\" \"$s\" ; then o=\"$t\" ; else mb=\"$(git merge-base \"$t\" \"$s\")\" ; if test \"x$mb\" = x ; then o=\"$t\" ; else lm=\"$(git log -n1 --merges \"$t..$s\" --pretty=%H)\" ; if test \"x$lm\" = x ; then o=\"$mb\" ; else o=\"$lm\" ; fi ; fi ; fi ; [ $# -gt 0 ] && shift ; [ $# -gt 0 ] && shift ; git rebase --interactive \"$o\" \"$@\"' -"
+ ri = "!sh -c 't=\"${1:-master}\"; s=\"${2:-HEAD}\"; mb=\"$(git merge-base \"$t\" \"$s\")\"; if test \"x$mb\" = x ; then o=\"$t\"; else lm=\"$(git log -n1 --merges \"$t..$s\" --pretty=%H)\"; if test \"x$lm\" = x ; then o=\"$mb\"; else o=\"$lm\"; fi; fi; test $# -gt 0 && shift; test $# -gt 0 && shift; git rebase --interactive \"$o\" \"$@\"'"
```
This avoids unnecessary rebases yet still allows you to combine related
commits, separate monolithic commits, etc.
@@ -86,10 +85,11 @@ the VCS/git logs more valuable.
### Automated builds (CI)
-Each pull request must pass the automated builds ([travis CI] and [quickbuild]).
+Each pull request must pass the automated builds on [travis CI], [quickbuild]
+and [AppVeyor].
-- CI builds are compiled with [`-Werror`][gcc-warnings], so if your PR
- introduces any compiler warnings, the build will fail.
+- CI builds are compiled with [`-Werror`][gcc-warnings], so compiler warnings
+ will fail the build.
- If any tests fail, the build will fail.
See [Building Neovim#running-tests][wiki-run-tests] to run tests locally.
Passing locally doesn't guarantee passing the CI build, because of the
@@ -112,11 +112,19 @@ QuickBuild uses this invocation:
VERBOSE=1 nvim unittest-prereqs functionaltest-prereqs
+### Clang scan-build
+
+The auto-generated [clang-scan] report presents walk-throughs of bugs found by
+Clang's [scan-build](https://clang-analyzer.llvm.org/scan-build.html) static
+analyzer. To verify a fix locally, run `scan-build` like this:
+
+ rm -rf build/
+ scan-build --use-analyzer=/usr/bin/clang make
+
### Coverity
[Coverity](https://scan.coverity.com/projects/neovim-neovim) runs against the
-master build. If you want to view the defects, just request access at the
-_Contributor_ level. An Admin will grant you permission.
+master build. To view the defects, just request access; you will be approved.
Use this commit-message format for coverity fixes:
@@ -126,8 +134,9 @@ where `<id>` is the Coverity ID (CID). For example see [#804](https://github.com
### PVS-Studio
-Run `scripts/pvscheck.sh` to check the codebase with [PVS
-Studio](https://www.viva64.com/en/pvs-studio/).
+View the [PVS analysis report](https://neovim.io/doc/reports/pvs/) to see bugs
+found by [PVS Studio](https://www.viva64.com/en/pvs-studio/).
+You can run `scripts/pvscheck.sh` locally to run PVS on your machine.
Reviewing
---------
@@ -163,6 +172,7 @@ as context, use the `-W` argument as well.
[3174]: https://github.com/neovim/neovim/issues/3174
[travis CI]: https://travis-ci.org/neovim/neovim
[quickbuild]: http://neovim-qb.szakmeister.net/dashboard
-[Vim patch]: https://github.com/neovim/neovim/wiki/Merging-patches-from-upstream-Vim
+[AppVeyor]: https://ci.appveyor.com/project/neovim/neovim
+[Merge a Vim patch]: https://github.com/neovim/neovim/wiki/Merging-patches-from-upstream-Vim
[clang-scan]: https://neovim.io/doc/reports/clang/
[complexity:low]: https://github.com/neovim/neovim/issues?q=is%3Aopen+is%3Aissue+label%3Acomplexity%3Alow
diff --git a/Makefile b/Makefile
index 0c057f5656..e349cc4d0f 100644
--- a/Makefile
+++ b/Makefile
@@ -107,6 +107,9 @@ functionaltest-lua: | nvim
testlint: | build/.ran-cmake deps
$(BUILD_CMD) -C build testlint
+lualint: | build/.ran-cmake deps
+ $(BUILD_CMD) -C build lualint
+
unittest: | nvim
+$(BUILD_CMD) -C build unittest
@@ -135,6 +138,9 @@ clint-full: build/.ran-cmake
check-single-includes: build/.ran-cmake
+$(BUILD_CMD) -C build check-single-includes
-lint: check-single-includes clint testlint
+appimage:
+ bash scripts/genappimage.sh
+
+lint: check-single-includes clint testlint lualint
-.PHONY: test testlint functionaltest unittest lint clint clean distclean nvim libnvim cmake deps install
+.PHONY: test testlint lualint functionaltest unittest lint clint clean distclean nvim libnvim cmake deps install appimage
diff --git a/README.md b/README.md
index bfa0216a0f..cb3ac46a24 100644
--- a/README.md
+++ b/README.md
@@ -8,11 +8,13 @@
[![Travis Build Status](https://travis-ci.org/neovim/neovim.svg?branch=master)](https://travis-ci.org/neovim/neovim)
[![AppVeyor Build status](https://ci.appveyor.com/api/projects/status/urdqjrik5u521fac/branch/master?svg=true)](https://ci.appveyor.com/project/neovim/neovim/branch/master)
-[![Pull requests waiting for review](https://badge.waffle.io/neovim/neovim.svg?label=RFC&title=RFCs)](https://waffle.io/neovim/neovim)
[![Coverage Status](https://img.shields.io/coveralls/neovim/neovim.svg)](https://coveralls.io/r/neovim/neovim)
[![Coverity Scan Build](https://scan.coverity.com/projects/2227/badge.svg)](https://scan.coverity.com/projects/2227)
[![Clang Scan Build](https://neovim.io/doc/reports/clang/badge.svg)](https://neovim.io/doc/reports/clang)
+[![PVS-studio Check](https://neovim.io/doc/reports/pvs/badge.svg)](https://neovim.io/doc/reports/pvs)
+
<a href="https://buildd.debian.org/neovim"><img src="https://www.debian.org/logos/openlogo-nd-25.png" width="13" height="15">Debian</a>
+[![Downloads](https://img.shields.io/github/downloads/neovim/neovim/total.svg?maxAge=2592000)](https://github.com/neovim/neovim/releases/)
Neovim is a project that seeks to aggressively refactor Vim in order to:
@@ -37,34 +39,41 @@ See [the wiki](https://github.com/neovim/neovim/wiki/Building-Neovim) for detail
Install from package
--------------------
-Packages are in [Homebrew], [Debian], [Ubuntu], [Fedora], [Arch Linux], and
-[more](https://github.com/neovim/neovim/wiki/Installing-Neovim).
+Pre-built packages for Windows, macOS, and Linux are found at the
+[Releases](https://github.com/neovim/neovim/releases/) page.
+
+Managed packages are in [Homebrew], [Debian], [Ubuntu], [Fedora], [Arch Linux], [Gentoo],
+and [more](https://github.com/neovim/neovim/wiki/Installing-Neovim)!
Project layout
--------------
-- `ci/`: Build server scripts
-- `cmake/`: Build scripts
-- `runtime/`: Application files
-- [`src/`](src/nvim/README.md): Application source code
-- `third-party/`: CMake sub-project to build third-party dependencies (if the
- `USE_BUNDLED_DEPS` flag is undefined or `USE_BUNDLED` CMake option is false).
-- [`test/`](test/README.md): Test files
-
-What's been done so far
------------------------
-
-- RPC API based on [MessagePack](https://msgpack.org)
-- Embedded [terminal emulator](https://neovim.io/doc/user/nvim_terminal_emulator.html)
+ ├─ ci/ Build server scripts
+ ├─ cmake/ Build scripts
+ ├─ runtime/ User plugins/docs
+ ├─ src/ Source code
+ ├─ third-party/ CMake subproject to build dependencies
+ └─ test/ Test code
+
+- `third-party/` is activated if `USE_BUNDLED_DEPS` is undefined or the
+ `USE_BUNDLED` CMake option is true.
+- [Source README](src/nvim/README.md)
+- [Test README](test/README.md)
+
+Features
+--------
+
+- Modern [GUIs](https://github.com/neovim/neovim/wiki/Related-projects#gui)
+- [API](https://github.com/neovim/neovim/wiki/Related-projects#api-clients)
+ access from any language including clojure, lisp, go, haskell, lua,
+ javascript, perl, python, ruby, rust.
+- Embedded, scriptable [terminal emulator](https://neovim.io/doc/user/nvim_terminal_emulator.html)
- Asynchronous [job control](https://github.com/neovim/neovim/pull/2247)
- [Shared data (shada)](https://github.com/neovim/neovim/pull/2506) among multiple editor instances
- [XDG base directories](https://github.com/neovim/neovim/pull/3470) support
-- [libuv](https://github.com/libuv/libuv/)-based platform/OS layer
-- [Pushdown automaton](https://github.com/neovim/neovim/pull/3413) input model
-- 1000s of new tests
-- Legacy tests converted to Lua tests
+- Compatible with most Vim plugins, including Ruby and Python plugins.
-See [`:help nvim-features`][nvim-features] for a comprehensive list.
+See [`:help nvim-features`][nvim-features] for the full list!
License
-------
@@ -95,11 +104,12 @@ See `LICENSE` for details.
[license-commit]: https://github.com/neovim/neovim/commit/b17d9691a24099c9210289f16afb1a498a89d803
[nvim-features]: https://neovim.io/doc/user/vim_diff.html#nvim-features
[Roadmap]: https://neovim.io/roadmap/
-[advanced UIs]: https://github.com/neovim/neovim/wiki/Related-projects#gui-projects
+[advanced UIs]: https://github.com/neovim/neovim/wiki/Related-projects#gui
[Homebrew]: https://github.com/neovim/homebrew-neovim#installation
[Debian]: https://packages.debian.org/testing/neovim
[Ubuntu]: http://packages.ubuntu.com/search?keywords=neovim
[Fedora]: https://admin.fedoraproject.org/pkgdb/package/rpms/neovim
[Arch Linux]: https://www.archlinux.org/packages/?q=neovim
+[Gentoo]: https://packages.gentoo.org/packages/app-editors/neovim
<!-- vim: set tw=80: -->
diff --git a/ci/build.bat b/ci/build.bat
index 9071c0864e..c871c6b849 100644
--- a/ci/build.bat
+++ b/ci/build.bat
@@ -17,7 +17,7 @@ set PATH=C:\Program Files (x86)\CMake\bin\cpack.exe;%PATH%
:: Build third-party dependencies
C:\msys64\usr\bin\bash -lc "pacman --verbose --noconfirm -Su" || goto :error
-C:\msys64\usr\bin\bash -lc "pacman --verbose --noconfirm --needed -S mingw-w64-%ARCH%-cmake mingw-w64-%ARCH%-perl mingw-w64-%ARCH%-diffutils gperf" || goto :error
+C:\msys64\usr\bin\bash -lc "pacman --verbose --noconfirm --needed -S mingw-w64-%ARCH%-cmake mingw-w64-%ARCH%-perl mingw-w64-%ARCH%-diffutils mingw-w64-%ARCH%-unibilium gperf" || goto :error
:: Setup python (use AppVeyor system python)
C:\Python27\python.exe -m pip install neovim || goto :error
@@ -31,14 +31,14 @@ python3 -c "import neovim; print(str(neovim))" || goto :error
mkdir .deps
cd .deps
-cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release ..\third-party\ || goto :error
+cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo ..\third-party\ || goto :error
mingw32-make VERBOSE=1 || goto :error
cd ..
:: Build Neovim
mkdir build
cd build
-cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release -DBUSTED_OUTPUT_TYPE=nvim -DGPERF_PRG="C:\msys64\usr\bin\gperf.exe" .. || goto :error
+cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUSTED_OUTPUT_TYPE=nvim -DGPERF_PRG="C:\msys64\usr\bin\gperf.exe" .. || goto :error
mingw32-make VERBOSE=1 || goto :error
bin\nvim --version || goto :error
@@ -46,8 +46,8 @@ bin\nvim --version || goto :error
mingw32-make functionaltest VERBOSE=1 || goto :error
:: Build artifacts
-cpack -G ZIP -C Release
-if defined APPVEYOR_REPO_TAG_NAME cpack -G NSIS -C Release
+cpack -G ZIP -C RelWithDebInfo
+if defined APPVEYOR_REPO_TAG_NAME cpack -G NSIS -C RelWithDebInfo
goto :EOF
:error
diff --git a/ci/common/build.sh b/ci/common/build.sh
index 129622b522..f398a1a1cc 100644
--- a/ci/common/build.sh
+++ b/ci/common/build.sh
@@ -7,10 +7,11 @@ build_make() {
}
build_deps() {
- if [[ "${BUILD_32BIT}" == ON ]]; then
+ if test "${BUILD_32BIT}" = ON ; then
DEPS_CMAKE_FLAGS="${DEPS_CMAKE_FLAGS} ${CMAKE_FLAGS_32BIT}"
fi
- if [[ "${FUNCTIONALTEST}" == "functionaltest-lua" ]]; then
+ if test "${FUNCTIONALTEST}" = "functionaltest-lua" \
+ || test "${CLANG_SANITIZER}" = "ASAN_UBSAN" ; then
DEPS_CMAKE_FLAGS="${DEPS_CMAKE_FLAGS} -DUSE_BUNDLED_LUA=ON"
fi
@@ -18,16 +19,15 @@ build_deps() {
# If there is a valid cache and we're not forced to recompile,
# use cached third-party dependencies.
- if [[ -f "${CACHE_MARKER}" ]] && [[ "${BUILD_NVIM_DEPS}" != true ]]; then
- if [[ "${TRAVIS_OS_NAME}" == osx ]]; then
- local statcmd="stat -f '%Sm'"
- else
- local statcmd="stat -c '%y'"
+ if test -f "${CACHE_MARKER}" && test "${BUILD_NVIM_DEPS}" != "true" ; then
+ local statcmd="stat -c '%y'"
+ if test "${TRAVIS_OS_NAME}" = osx ; then
+ statcmd="stat -f '%Sm'"
fi
echo "Using third-party dependencies from Travis's cache (last updated: $(${statcmd} "${CACHE_MARKER}"))."
- mkdir -p "$(dirname "${DEPS_BUILD_DIR}")"
- mv "${HOME}/.cache/nvim-deps" "${DEPS_BUILD_DIR}"
+ mkdir -p "$(dirname "${DEPS_BUILD_DIR}")"
+ mv "${HOME}/.cache/nvim-deps" "${DEPS_BUILD_DIR}"
else
mkdir -p "${DEPS_BUILD_DIR}"
fi
@@ -46,10 +46,10 @@ build_deps() {
}
prepare_build() {
- if [[ -n "${CLANG_SANITIZER}" ]]; then
+ if test -n "${CLANG_SANITIZER}" ; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DCLANG_${CLANG_SANITIZER}=ON"
fi
- if [[ "${BUILD_32BIT}" == ON ]]; then
+ if test "${BUILD_32BIT}" = ON ; then
CMAKE_FLAGS="${CMAKE_FLAGS} ${CMAKE_FLAGS_32BIT}"
fi
@@ -61,24 +61,24 @@ prepare_build() {
build_nvim() {
echo "Building nvim."
- if ! top_make nvim; then
+ if ! top_make nvim ; then
exit 1
fi
- if [ "$CLANG_SANITIZER" != "TSAN" ]; then
+ if test "$CLANG_SANITIZER" != "TSAN" ; then
echo "Building libnvim."
- if ! top_make libnvim; then
+ if ! top_make libnvim ; then
exit 1
fi
echo "Building nvim-test."
- if ! top_make nvim-test; then
+ if ! top_make nvim-test ; then
exit 1
fi
fi
# Invoke nvim to trigger *San early.
- if ! (bin/nvim --version && bin/nvim -u NONE -e -c ':qall'); then
+ if ! (bin/nvim --version && bin/nvim -u NONE -e -c ':qall') ; then
asan_check "${LOG_DIR}"
exit 1
fi
diff --git a/ci/common/suite.sh b/ci/common/suite.sh
index 568d5d5bee..d3fbcd1eda 100644
--- a/ci/common/suite.sh
+++ b/ci/common/suite.sh
@@ -11,20 +11,48 @@ FAIL_SUMMARY=""
END_MARKER="$BUILD_DIR/.tests_finished"
FAIL_SUMMARY_FILE="$BUILD_DIR/.test_errors"
+ANSI_CLEAR="\033[0K"
+
+travis_fold() {
+ local action="$1"
+ local name="$2"
+ name="$(echo -n "$name" | tr '\n\0' '--' | sed 's/[^A-Za-z0-9]\{1,\}/-/g')"
+ name="$(echo -n "$name" | sed 's/-$//')"
+ echo -en "travis_fold:${action}:${name}\r${ANSI_CLEAR}"
+}
+
+if test "$TRAVIS" != "true" ; then
+ travis_fold() {
+ return 0
+ }
+fi
+
enter_suite() {
+ set +x
FAILED=0
rm -f "${END_MARKER}"
local suite_name="$1"
export NVIM_TEST_CURRENT_SUITE="${NVIM_TEST_CURRENT_SUITE}/$suite_name"
+ travis_fold start "${NVIM_TEST_CURRENT_SUITE}"
+ set -x
}
exit_suite() {
+ set +x
+ if test -f "$NVIM_LOG_FILE" ; then
+ printf "===============================================================================\n"
+ printf "NVIM_LOG_FILE: $NVIM_LOG_FILE\n"
+ cat "$NVIM_LOG_FILE" 2>/dev/null || printf '(empty)'
+ printf "\n"
+ rm -rf "$NVIM_LOG_FILE"
+ fi
+ travis_fold end "${NVIM_TEST_CURRENT_SUITE}"
if test $FAILED -ne 0 ; then
echo "Suite ${NVIM_TEST_CURRENT_SUITE} failed, summary:"
echo "${FAIL_SUMMARY}"
fi
export NVIM_TEST_CURRENT_SUITE="${NVIM_TEST_CURRENT_SUITE%/*}"
- if test "x$1" != "x--continue" ; then
+ if test "$1" != "--continue" ; then
exit $FAILED
else
local saved_failed=$FAILED
@@ -61,7 +89,7 @@ run_test() {
run_test_wd() {
local hang_ok=
- if test "x$1" = "x--allow-hang" ; then
+ if test "$1" = "--allow-hang" ; then
hang_ok=1
shift
fi
@@ -82,21 +110,31 @@ run_test_wd() {
local output_file="$(mktemp)"
local status_file="$(mktemp)"
+ local sid_file="$(mktemp)"
local restarts=5
local prev_tmpsize=-1
while test $restarts -gt 0 ; do
- : > "${status_file}"
- (
- set -o pipefail
- ret=0
- if ! eval "$cmd" 2>&1 | tee -a "$output_file" ; then
- ret=1
- fi
- echo "$ret" > "$status_file"
- exit $ret
- ) &
- local pid=$!
+ : > "$status_file"
+ : > "$sid_file"
+ setsid \
+ env \
+ output_file="$output_file" \
+ status_file="$status_file" \
+ sid_file="$sid_file" \
+ cmd="$cmd" \
+ CI_DIR="$CI_DIR" \
+ sh -c '
+ . "${CI_DIR}/common/test.sh"
+ ps -o sid= > "$sid_file"
+ (
+ ret=0
+ if ! eval "$cmd" 2>&1 ; then
+ ret=1
+ fi
+ echo "$ret" > "$status_file"
+ ) | tee -a "$output_file"
+ '
while test "$(stat -c "%s" "$status_file")" -eq 0 ; do
prev_tmpsize=$tmpsize
sleep $timeout
@@ -106,13 +144,23 @@ run_test_wd() {
break
fi
done
- restarts=$[ restarts - 1 ]
+ restarts=$(( restarts - 1 ))
if test "$(stat -c "%s" "$status_file")" -eq 0 ; then
- # status file not updated, assuming hang
- kill -KILL $pid
+ # Status file not updated, assuming hang
+
+ # SID not known, this should not ever happen
+ if test "$(stat -c "%s" "$sid_file")" -eq 0 ; then
+ fail "$test_name" E "Shell did not run"
+ break
+ fi
+
+ # Kill all processes which belong to one session: should get rid of test
+ # processes as well as sh itself.
+ pkill -KILL -s$(cat "$sid_file")
+
if test $restarts -eq 0 ; then
- if test "x$hang_ok" = "x" ; then
- fail "${test_name}" E "Test hang up"
+ if test -z "$hang_ok" ; then
+ fail "$test_name" E "Test hang up"
fi
else
echo "Test ${test_name} hang up, restarting"
@@ -120,21 +168,25 @@ run_test_wd() {
fi
else
local new_failed="$(cat "$status_file")"
- if test "x$new_failed" != "x0" ; then
- fail "${test_name}" F "Test failed in run_test_wd"
+ if test "$new_failed" != "0" ; then
+ fail "$test_name" F "Test failed in run_test_wd"
fi
- return 0
+ break
fi
done
+
+ rm -f "$output_file"
+ rm -f "$status_file"
+ rm -f "$sid_file"
}
ended_successfully() {
- if [[ -f "${FAIL_SUMMARY_FILE}" ]]; then
+ if test -f "${FAIL_SUMMARY_FILE}" ; then
echo 'Test failed, complete summary:'
cat "${FAIL_SUMMARY_FILE}"
return 1
fi
- if ! [[ -f "${END_MARKER}" ]] ; then
+ if ! test -f "${END_MARKER}" ; then
echo 'ended_successfully called before end marker was touched'
return 1
fi
diff --git a/ci/common/test.sh b/ci/common/test.sh
index d911d9bc18..55f76ca798 100644
--- a/ci/common/test.sh
+++ b/ci/common/test.sh
@@ -1,5 +1,5 @@
-source "${CI_DIR}/common/build.sh"
-source "${CI_DIR}/common/suite.sh"
+. "${CI_DIR}/common/build.sh"
+. "${CI_DIR}/common/suite.sh"
print_core() {
local app="$1"
@@ -9,7 +9,7 @@ print_core() {
return 0
fi
echo "======= Core file $core ======="
- if [[ "${TRAVIS_OS_NAME}" == osx ]]; then
+ if test "${TRAVIS_OS_NAME}" = osx ; then
lldb -Q -o "bt all" -f "${app}" -c "${core}"
else
gdb -n -batch -ex 'thread apply all bt full' "${app}" -c "${core}"
@@ -23,13 +23,13 @@ check_core_dumps() {
shift
fi
local app="${1:-${BUILD_DIR}/bin/nvim}"
- if [[ "${TRAVIS_OS_NAME}" == osx ]]; then
+ if test "${TRAVIS_OS_NAME}" = osx ; then
local cores="$(find /cores/ -type f -print)"
else
local cores="$(find ./ -type f -name 'core.*' -print)"
fi
- if [ -z "${cores}" ]; then
+ if test -z "${cores}" ; then
return
fi
local core
@@ -61,7 +61,7 @@ check_logs() {
cat "${log}"
err=1
done
- if [[ -n "${err}" ]]; then
+ if test -n "${err}" ; then
fail 'logs' E 'Runtime errors detected.'
fi
}
@@ -76,7 +76,7 @@ asan_check() {
run_unittests() {(
enter_suite unittests
- ulimit -c unlimited
+ ulimit -c unlimited || true
if ! build_make unittest ; then
fail 'unittests' F 'Unit tests failed'
fi
@@ -86,7 +86,7 @@ run_unittests() {(
run_functionaltests() {(
enter_suite functionaltests
- ulimit -c unlimited
+ ulimit -c unlimited || true
if ! build_make ${FUNCTIONALTEST}; then
fail 'functionaltests' F 'Functional tests failed'
fi
@@ -98,7 +98,7 @@ run_functionaltests() {(
run_oldtests() {(
enter_suite oldtests
- ulimit -c unlimited
+ ulimit -c unlimited || true
if ! make -C "${TRAVIS_BUILD_DIR}/src/nvim/testdir"; then
reset
fail 'oldtests' F 'Legacy tests failed'
@@ -109,6 +109,27 @@ run_oldtests() {(
exit_suite
)}
+check_runtime_files() {(
+ set +x
+ local test_name="$1" ; shift
+ local message="$1" ; shift
+ local tst="$1" ; shift
+
+ cd runtime
+ for file in $(git ls-files "$@") ; do
+ # Check that test is not trying to work with files with spaces/etc
+ # Prefer failing the build over using more robust construct because files
+ # with IFS are not welcome.
+ if ! test -e "$file" ; then
+ fail "$test_name" E \
+ "It appears that $file is only a part of the file name"
+ fi
+ if ! test "$tst" "$INSTALL_PREFIX/share/nvim/runtime/$file" ; then
+ fail "$test_name" F "$(printf "$message" "$file")"
+ fi
+ done
+)}
+
install_nvim() {(
enter_suite 'install_nvim'
if ! build_make install ; then
@@ -117,34 +138,37 @@ install_nvim() {(
fi
"${INSTALL_PREFIX}/bin/nvim" --version
- "${INSTALL_PREFIX}/bin/nvim" -u NONE -e -c ':help' -c ':qall' || {
+ if ! "${INSTALL_PREFIX}/bin/nvim" -u NONE -e -c ':help' -c ':qall' ; then
echo "Running ':help' in the installed nvim failed."
echo "Maybe the helptags have not been generated properly."
fail 'help' F 'Failed running :help'
- }
+ fi
- local genvimsynf=syntax/vim/generated.vim
# Check that all runtime files were installed
- for file in doc/tags $genvimsynf $(
- cd runtime ; git ls-files | grep -e '.vim$' -e '.ps$' -e '.dict$' -e '.py$' -e '.tutor$'
- ) ; do
- if ! test -e "${INSTALL_PREFIX}/share/nvim/runtime/$file" ; then
- fail 'runtime-install' F "It appears that $file is not installed."
- fi
- done
+ check_runtime_files \
+ 'runtime-install' \
+ 'It appears that %s is not installed.' \
+ -e \
+ '*.vim' '*.ps' '*.dict' '*.py' '*.tutor'
+
+ # Check that some runtime files are installed and are executables
+ check_runtime_files \
+ 'not-exe' \
+ 'It appears that %s is not installed or is not executable.' \
+ -x \
+ '*.awk' '*.sh' '*.bat'
# Check that generated syntax file has function names, #5060.
+ local genvimsynf=syntax/vim/generated.vim
local gpat='syn keyword vimFuncName .*eval'
- if ! grep -q "$gpat" "${INSTALL_PREFIX}/share/nvim/runtime/$genvimsynf"; then
+ if ! grep -q "$gpat" "${INSTALL_PREFIX}/share/nvim/runtime/$genvimsynf" ; then
fail 'funcnames' F "It appears that $genvimsynf does not contain $gpat."
fi
- for file in $(
- cd runtime ; git ls-files | grep -e '.awk$' -e '.sh$' -e '.bat$'
- ) ; do
- if ! test -x "${INSTALL_PREFIX}/share/nvim/runtime/$file" ; then
- fail 'not-exe' F "It appears that $file is not installed or is not executable."
- fi
- done
exit_suite
)}
+
+csi_clean() {
+ find "${BUILD_DIR}/bin" -name 'test-includes-*' -delete
+ find "${BUILD_DIR}" -name '*test-include*.o' -delete
+}
diff --git a/ci/run_lint.sh b/ci/run_lint.sh
index 5639b4c3db..e7f6727448 100755
--- a/ci/run_lint.sh
+++ b/ci/run_lint.sh
@@ -8,17 +8,26 @@ CI_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "${CI_DIR}/common/build.sh"
source "${CI_DIR}/common/suite.sh"
-enter_suite 'lint'
+enter_suite 'clint'
-set -x
+run_test 'top_make clint-full' clint
-csi_clean() {
- find "${BUILD_DIR}/bin" -name 'test-includes-*' -delete
- find "${BUILD_DIR}" -name '*test-include*.o' -delete
-}
+exit_suite --continue
+
+enter_suite 'testlint'
-run_test 'top_make clint-full' clint
run_test 'top_make testlint' testlint
+
+exit_suite --continue
+
+enter_suite 'lualint'
+
+run_test 'top_make lualint' lualint
+
+exit_suite --continue
+
+enter_suite single-includes
+
CLICOLOR_FORCE=1 run_test_wd \
--allow-hang \
10s \
@@ -26,4 +35,6 @@ CLICOLOR_FORCE=1 run_test_wd \
'csi_clean' \
single-includes
+exit_suite --continue
+
end_tests
diff --git a/ci/run_tests.sh b/ci/run_tests.sh
index 4abc9eea9f..a0bf6e010d 100755
--- a/ci/run_tests.sh
+++ b/ci/run_tests.sh
@@ -8,16 +8,18 @@ source "${CI_DIR}/common/build.sh"
source "${CI_DIR}/common/test.sh"
source "${CI_DIR}/common/suite.sh"
-set -x
-
-enter_suite tests
+enter_suite build
check_core_dumps --delete quiet
prepare_build
build_nvim
-if [ "$CLANG_SANITIZER" != "TSAN" ]; then
+exit_suite --continue
+
+enter_suite tests
+
+if test "$CLANG_SANITIZER" != "TSAN" ; then
# Additional threads are only created when the builtin UI starts, which
# doesn't happen in the unit/functional tests
run_test run_unittests
@@ -27,4 +29,6 @@ run_test run_oldtests
run_test install_nvim
+exit_suite --continue
+
end_tests
diff --git a/cmake/FindLibUV.cmake b/cmake/FindLibUV.cmake
index 3e042e4c50..3a60a831ea 100644
--- a/cmake/FindLibUV.cmake
+++ b/cmake/FindLibUV.cmake
@@ -65,7 +65,7 @@ if(HAVE_LIBKSTAT)
endif()
check_library_exists(kvm kvm_open "kvm.h" HAVE_LIBKVM)
-if(HAVE_LIBKVM)
+if(HAVE_LIBKVM AND NOT CMAKE_SYSTEM_NAME STREQUAL "OpenBSD")
list(APPEND LIBUV_LIBRARIES kvm)
endif()
diff --git a/cmake/FindLua.cmake b/cmake/FindLua.cmake
new file mode 100644
index 0000000000..b669a49f29
--- /dev/null
+++ b/cmake/FindLua.cmake
@@ -0,0 +1,197 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#.rst:
+# FindLua
+# -------
+#
+#
+#
+# Locate Lua library This module defines
+#
+# ::
+#
+# LUA_FOUND - if false, do not try to link to Lua
+# LUA_LIBRARIES - both lua and lualib
+# LUA_INCLUDE_DIR - where to find lua.h
+# LUA_VERSION_STRING - the version of Lua found
+# LUA_VERSION_MAJOR - the major version of Lua
+# LUA_VERSION_MINOR - the minor version of Lua
+# LUA_VERSION_PATCH - the patch version of Lua
+#
+#
+#
+# Note that the expected include convention is
+#
+# ::
+#
+# #include "lua.h"
+#
+# and not
+#
+# ::
+#
+# #include <lua/lua.h>
+#
+# This is because, the lua location is not standardized and may exist in
+# locations other than lua/
+
+unset(_lua_include_subdirs)
+unset(_lua_library_names)
+unset(_lua_append_versions)
+
+# this is a function only to have all the variables inside go away automatically
+function(_lua_set_version_vars)
+ set(LUA_VERSIONS5 5.3 5.2 5.1 5.0)
+
+ if (Lua_FIND_VERSION_EXACT)
+ if (Lua_FIND_VERSION_COUNT GREATER 1)
+ set(_lua_append_versions ${Lua_FIND_VERSION_MAJOR}.${Lua_FIND_VERSION_MINOR})
+ endif ()
+ elseif (Lua_FIND_VERSION)
+ # once there is a different major version supported this should become a loop
+ if (NOT Lua_FIND_VERSION_MAJOR GREATER 5)
+ if (Lua_FIND_VERSION_COUNT EQUAL 1)
+ set(_lua_append_versions ${LUA_VERSIONS5})
+ else ()
+ foreach (subver IN LISTS LUA_VERSIONS5)
+ if (NOT subver VERSION_LESS ${Lua_FIND_VERSION})
+ list(APPEND _lua_append_versions ${subver})
+ endif ()
+ endforeach ()
+ endif ()
+ endif ()
+ else ()
+ # once there is a different major version supported this should become a loop
+ set(_lua_append_versions ${LUA_VERSIONS5})
+ endif ()
+
+ list(APPEND _lua_include_subdirs "include/lua" "include")
+
+ foreach (ver IN LISTS _lua_append_versions)
+ string(REGEX MATCH "^([0-9]+)\\.([0-9]+)$" _ver "${ver}")
+ list(APPEND _lua_include_subdirs
+ include/lua${CMAKE_MATCH_1}${CMAKE_MATCH_2}
+ include/lua${CMAKE_MATCH_1}.${CMAKE_MATCH_2}
+ include/lua-${CMAKE_MATCH_1}.${CMAKE_MATCH_2}
+ )
+ endforeach ()
+
+ set(_lua_include_subdirs "${_lua_include_subdirs}" PARENT_SCOPE)
+ set(_lua_append_versions "${_lua_append_versions}" PARENT_SCOPE)
+endfunction(_lua_set_version_vars)
+
+function(_lua_check_header_version _hdr_file)
+ # At least 5.[012] have different ways to express the version
+ # so all of them need to be tested. Lua 5.2 defines LUA_VERSION
+ # and LUA_RELEASE as joined by the C preprocessor, so avoid those.
+ file(STRINGS "${_hdr_file}" lua_version_strings
+ REGEX "^#define[ \t]+LUA_(RELEASE[ \t]+\"Lua [0-9]|VERSION([ \t]+\"Lua [0-9]|_[MR])).*")
+
+ string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION_MAJOR[ \t]+\"([0-9])\"[ \t]*;.*" "\\1" LUA_VERSION_MAJOR ";${lua_version_strings};")
+ if (LUA_VERSION_MAJOR MATCHES "^[0-9]+$")
+ string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION_MINOR[ \t]+\"([0-9])\"[ \t]*;.*" "\\1" LUA_VERSION_MINOR ";${lua_version_strings};")
+ string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION_RELEASE[ \t]+\"([0-9])\"[ \t]*;.*" "\\1" LUA_VERSION_PATCH ";${lua_version_strings};")
+ set(LUA_VERSION_STRING "${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}.${LUA_VERSION_PATCH}")
+ else ()
+ string(REGEX REPLACE ".*;#define[ \t]+LUA_RELEASE[ \t]+\"Lua ([0-9.]+)\"[ \t]*;.*" "\\1" LUA_VERSION_STRING ";${lua_version_strings};")
+ if (NOT LUA_VERSION_STRING MATCHES "^[0-9.]+$")
+ string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION[ \t]+\"Lua ([0-9.]+)\"[ \t]*;.*" "\\1" LUA_VERSION_STRING ";${lua_version_strings};")
+ endif ()
+ string(REGEX REPLACE "^([0-9]+)\\.[0-9.]*$" "\\1" LUA_VERSION_MAJOR "${LUA_VERSION_STRING}")
+ string(REGEX REPLACE "^[0-9]+\\.([0-9]+)[0-9.]*$" "\\1" LUA_VERSION_MINOR "${LUA_VERSION_STRING}")
+ string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]).*" "\\1" LUA_VERSION_PATCH "${LUA_VERSION_STRING}")
+ endif ()
+ foreach (ver IN LISTS _lua_append_versions)
+ if (ver STREQUAL "${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}")
+ set(LUA_VERSION_MAJOR ${LUA_VERSION_MAJOR} PARENT_SCOPE)
+ set(LUA_VERSION_MINOR ${LUA_VERSION_MINOR} PARENT_SCOPE)
+ set(LUA_VERSION_PATCH ${LUA_VERSION_PATCH} PARENT_SCOPE)
+ set(LUA_VERSION_STRING ${LUA_VERSION_STRING} PARENT_SCOPE)
+ return()
+ endif ()
+ endforeach ()
+endfunction(_lua_check_header_version)
+
+_lua_set_version_vars()
+
+if (LUA_INCLUDE_DIR AND EXISTS "${LUA_INCLUDE_DIR}/lua.h")
+ _lua_check_header_version("${LUA_INCLUDE_DIR}/lua.h")
+endif ()
+
+if (NOT LUA_VERSION_STRING)
+ foreach (subdir IN LISTS _lua_include_subdirs)
+ unset(LUA_INCLUDE_PREFIX CACHE)
+ find_path(LUA_INCLUDE_PREFIX ${subdir}/lua.h
+ HINTS
+ ENV LUA_DIR
+ PATHS
+ ~/Library/Frameworks
+ /Library/Frameworks
+ /sw # Fink
+ /opt/local # DarwinPorts
+ /opt/csw # Blastwave
+ /opt
+ )
+ if (LUA_INCLUDE_PREFIX)
+ _lua_check_header_version("${LUA_INCLUDE_PREFIX}/${subdir}/lua.h")
+ if (LUA_VERSION_STRING)
+ set(LUA_INCLUDE_DIR "${LUA_INCLUDE_PREFIX}/${subdir}")
+ break()
+ endif ()
+ endif ()
+ endforeach ()
+endif ()
+unset(_lua_include_subdirs)
+unset(_lua_append_versions)
+
+if (LUA_VERSION_STRING)
+ set(_lua_library_names
+ lua${LUA_VERSION_MAJOR}${LUA_VERSION_MINOR}
+ lua${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}
+ lua-${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}
+ lua.${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}
+ )
+endif ()
+
+find_library(LUA_LIBRARY
+ NAMES ${_lua_library_names} lua
+ HINTS
+ ENV LUA_DIR
+ PATH_SUFFIXES lib
+ PATHS
+ ~/Library/Frameworks
+ /Library/Frameworks
+ /sw
+ /opt/local
+ /opt/csw
+ /opt
+)
+unset(_lua_library_names)
+
+if (LUA_LIBRARY)
+ # include the math library for Unix
+ if (UNIX AND NOT APPLE AND NOT BEOS)
+ find_library(LUA_MATH_LIBRARY m)
+ set(LUA_LIBRARIES "${LUA_LIBRARY};${LUA_MATH_LIBRARY}")
+
+ # include dl library for statically-linked Lua library
+ get_filename_component(LUA_LIB_EXT ${LUA_LIBRARY} EXT)
+ if(LUA_LIB_EXT STREQUAL CMAKE_STATIC_LIBRARY_SUFFIX)
+ list(APPEND LUA_LIBRARIES ${CMAKE_DL_LIBS})
+ endif()
+
+ # For Windows and Mac, don't need to explicitly include the math library
+ else ()
+ set(LUA_LIBRARIES "${LUA_LIBRARY}")
+ endif ()
+endif ()
+
+include(FindPackageHandleStandardArgs)
+# handle the QUIETLY and REQUIRED arguments and set LUA_FOUND to TRUE if
+# all listed variables are TRUE
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Lua
+ REQUIRED_VARS LUA_LIBRARIES LUA_INCLUDE_DIR
+ VERSION_VAR LUA_VERSION_STRING)
+
+mark_as_advanced(LUA_INCLUDE_DIR LUA_LIBRARY LUA_MATH_LIBRARY)
diff --git a/cmake/InstallHelpers.cmake b/cmake/InstallHelpers.cmake
index ee07ba2c66..ca20ddf354 100644
--- a/cmake/InstallHelpers.cmake
+++ b/cmake/InstallHelpers.cmake
@@ -1,3 +1,12 @@
+# Fix CMAKE_INSTALL_MANDIR on BSD before including GNUInstallDirs. #6771
+if(CMAKE_SYSTEM_NAME MATCHES "BSD" AND NOT DEFINED CMAKE_INSTALL_MANDIR)
+ if(DEFINED ENV{MANPREFIX})
+ set(CMAKE_INSTALL_MANDIR "$ENV{MANPREFIX}/man")
+ else()
+ set(CMAKE_INSTALL_MANDIR "/usr/local/man")
+ endif()
+endif()
+
# For $CMAKE_INSTALL_{DATAROOT,MAN, ...}DIR
include(GNUInstallDirs)
diff --git a/cmake/RunLuacheck.cmake b/cmake/RunLuacheck.cmake
new file mode 100644
index 0000000000..5129541cd8
--- /dev/null
+++ b/cmake/RunLuacheck.cmake
@@ -0,0 +1,22 @@
+set(LUACHECK_ARGS -q "${LUAFILES_DIR}")
+if(DEFINED IGNORE_PATTERN)
+ list(APPEND LUACHECK_ARGS --exclude-files "${LUAFILES_DIR}/${IGNORE_PATTERN}")
+endif()
+if(DEFINED CHECK_PATTERN)
+ list(APPEND LUACHECK_ARGS --include-files "${LUAFILES_DIR}/${CHECK_PATTERN}")
+endif()
+if(DEFINED READ_GLOBALS)
+ list(APPEND LUACHECK_ARGS --read-globals "${READ_GLOBALS}")
+endif()
+
+execute_process(
+ COMMAND "${LUACHECK_PRG}" ${LUACHECK_ARGS}
+ WORKING_DIRECTORY "${LUAFILES_DIR}"
+ ERROR_VARIABLE err
+ RESULT_VARIABLE res
+)
+
+if(NOT res EQUAL 0)
+ message(STATUS "Output to stderr:\n${err}")
+ message(FATAL_ERROR "Linting tests failed with error: ${res}.")
+endif()
diff --git a/cmake/RunTests.cmake b/cmake/RunTests.cmake
index bd7b630708..5f818cc9ad 100644
--- a/cmake/RunTests.cmake
+++ b/cmake/RunTests.cmake
@@ -3,6 +3,10 @@ set(ENV{NVIM_RPLUGIN_MANIFEST} ${WORKING_DIR}/Xtest_rplugin_manifest)
set(ENV{XDG_CONFIG_HOME} ${WORKING_DIR}/Xtest_xdg/config)
set(ENV{XDG_DATA_HOME} ${WORKING_DIR}/Xtest_xdg/share)
+if(NOT DEFINED ENV{NVIM_LOG_FILE})
+ set(ENV{NVIM_LOG_FILE} ${WORKING_DIR}/.nvimlog)
+endif()
+
if(NVIM_PRG)
set(ENV{NVIM_PRG} "${NVIM_PRG}")
endif()
diff --git a/cmake/RunTestsLint.cmake b/cmake/RunTestsLint.cmake
deleted file mode 100644
index addc9ab35e..0000000000
--- a/cmake/RunTestsLint.cmake
+++ /dev/null
@@ -1,13 +0,0 @@
-set(IGNORE_FILES "${TEST_DIR}/*/preload.lua")
-
-execute_process(
- COMMAND ${LUACHECK_PRG} -q ${TEST_DIR} --exclude-files ${IGNORE_FILES}
- WORKING_DIRECTORY ${TEST_DIR}
- ERROR_VARIABLE err
- RESULT_VARIABLE res
- ${EXTRA_ARGS})
-
-if(NOT res EQUAL 0)
- message(STATUS "Output to stderr:\n${err}")
- message(FATAL_ERROR "Linting tests failed with error: ${res}.")
-endif()
diff --git a/contrib/local.mk.example b/contrib/local.mk.example
index 04f21131b8..cadb9cf4b2 100644
--- a/contrib/local.mk.example
+++ b/contrib/local.mk.example
@@ -31,9 +31,8 @@
#
# CMAKE_BUILD_TYPE := Debug
-# By default, nvim's log level is INFO (1) (unless CMAKE_BUILD_TYPE is
-# "Release", in which case logging is disabled).
-# The log level must be a number DEBUG (0), INFO (1), WARNING (2) or ERROR (3).
+# The default log level is 1 (INFO) (unless CMAKE_BUILD_TYPE is "Release").
+# Log levels: 0 (DEBUG), 1 (INFO), 2 (WARNING), 3 (ERROR)
# CMAKE_EXTRA_FLAGS += -DMIN_LOG_LEVEL=1
# By default, nvim uses bundled versions of its required third-party
diff --git a/runtime/autoload/ada.vim b/runtime/autoload/ada.vim
index cc5191fa43..ce3a19369a 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 , '\') .
+ \ " <Learder>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 8f45adcff1..1d8cae7d19 100644
--- a/runtime/autoload/health.vim
+++ b/runtime/autoload/health.vim
@@ -66,6 +66,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
diff --git a/runtime/autoload/health/nvim.vim b/runtime/autoload/health/nvim.vim
index 4c6aa0eb04..3834cbd054 100644
--- a/runtime/autoload/health/nvim.vim
+++ b/runtime/autoload/health/nvim.vim
@@ -4,15 +4,6 @@ function! s:check_config() abort
let ok = v:true
call health#report_start('Configuration')
- if get(g:, 'loaded_sensible', 0)
- let ok = v:false
- 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
-
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+",
diff --git a/runtime/autoload/health/provider.vim b/runtime/autoload/health/provider.vim
index 2506c8216b..31a235a397 100644
--- a/runtime/autoload/health/provider.vim
+++ b/runtime/autoload/health/provider.vim
@@ -31,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 : ''
@@ -54,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
@@ -66,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
@@ -116,7 +123,7 @@ function! s:check_clipboard() abort
let clipboard_tool = provider#clipboard#Executable()
if empty(clipboard_tool)
call health#report_warn(
- \ "No clipboard tool found. Clipboard registers will not work.",
+ \ 'No clipboard tool found. Clipboard registers will not work.',
\ [':help clipboard'])
else
call health#report_ok('Clipboard tool found: '. clipboard_tool)
@@ -157,7 +164,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([
@@ -169,14 +176,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)
@@ -429,8 +436,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'))
@@ -445,21 +452,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
diff --git a/runtime/autoload/man.vim b/runtime/autoload/man.vim
index 96f03e47cc..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
@@ -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/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/clipboard.vim b/runtime/autoload/provider/clipboard.vim
index a3210046b1..a67681d28e 100644
--- a/runtime/autoload/provider/clipboard.vim
+++ b/runtime/autoload/provider/clipboard.vim
@@ -8,7 +8,7 @@ let s:paste = {}
" ownership of the selection, so we know how long the cache is valid.
let s:selection = { 'owner': 0, 'data': [] }
-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
@@ -18,7 +18,7 @@ endfunction
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
@@ -34,7 +34,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 +47,12 @@ function! provider#clipboard#Error() abort
endfunction
function! provider#clipboard#Executable() abort
- if has('mac') && executable('pbcopy')
+ if exists('g:clipboard')
+ 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', 1)
+ 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,6 +89,12 @@ 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. :help clipboard'
@@ -96,14 +107,14 @@ 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['+']
@@ -138,6 +149,6 @@ function! s:clipboard.set(lines, regtype, reg)
let selection.owner = jobid
endfunction
-function! provider#clipboard#Call(method, args)
+function! provider#clipboard#Call(method, args) abort
return call(s:clipboard[a:method],a:args,s:clipboard)
endfunction
diff --git a/runtime/autoload/provider/ruby.vim b/runtime/autoload/provider/ruby.vim
index c8ede20a75..91b7fb9f2c 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 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
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/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/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/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/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/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/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/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/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/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 a118690876..ebc2a40561 100644
--- a/runtime/doc/api.txt
+++ b/runtime/doc/api.txt
@@ -11,6 +11,8 @@ via |msgpack-rpc|, Lua and VimL (|eval-api|).
Applications can also embed libnvim to work with the C API directly.
+ Type <M-]> to see the table of contents.
+
==============================================================================
API Types *api-types*
@@ -46,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 |rpc-remote-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
@@ -268,7 +271,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
@@ -368,6 +371,17 @@ 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: Mode string. |mode()|
+ blocking: true if Nvim is waiting for input.
+
+ Attributes:~
+ {async}
+
+ Return:~
+ Dictionary { "mode": String, "blocking": Boolean }
+
nvim_get_api_info() *nvim_get_api_info()*
TODO: Documentation
@@ -512,15 +526,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
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index e7c7b0d71a..2a98d08c4e 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -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 <M-]> 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.
@@ -76,11 +66,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 +121,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].
@@ -422,8 +421,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*
@@ -794,7 +793,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".
@@ -1002,7 +1003,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 +1087,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,11 +1188,12 @@ name!
different from existing {event} names, as this
most likely will not do what you intended.
- *:augroup-delete* *E367* *W19*
+ *: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! You will get a warning if doing
- it anyway.
+ 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 e0974b103c..6af3c4d5d7 100644
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -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 <M-]> 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
@@ -614,12 +599,14 @@ Directory for temporary files is created in the first suitable directory of:
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]
@@ -833,6 +820,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
diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt
index 7277e1d22e..d870a72600 100644
--- a/runtime/doc/cmdline.txt
+++ b/runtime/doc/cmdline.txt
@@ -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 <M-]> 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.
@@ -394,12 +389,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
@@ -999,10 +1008,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.
diff --git a/runtime/doc/debug.txt b/runtime/doc/debug.txt
index c5414e91ca..fd2c4fa54e 100644
--- a/runtime/doc/debug.txt
+++ b/runtime/doc/debug.txt
@@ -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 <M-]> to see the table of contents.
==============================================================================
diff --git a/runtime/doc/deprecated.txt b/runtime/doc/deprecated.txt
index e77d20172e..26cd5b24cc 100644
--- a/runtime/doc/deprecated.txt
+++ b/runtime/doc/deprecated.txt
@@ -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.
diff --git a/runtime/doc/develop.txt b/runtime/doc/develop.txt
index 0e909aac65..7fd1f90173 100644
--- a/runtime/doc/develop.txt
+++ b/runtime/doc/develop.txt
@@ -6,14 +6,13 @@
Development of Nvim. *development*
-1. Design goals |design-goals|
-2. Developer guidelines |dev-help|
-
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 an overview of the source code.
+ Type <M-]> to see the table of contents.
+
==============================================================================
Design goals *design-goals*
diff --git a/runtime/doc/diff.txt b/runtime/doc/diff.txt
index 12f4563518..74a3d183a3 100644
--- a/runtime/doc/diff.txt
+++ b/runtime/doc/diff.txt
@@ -10,11 +10,7 @@ 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 <M-]> to see the table of contents.
==============================================================================
1. Starting diff mode
@@ -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
diff --git a/runtime/doc/digraph.txt b/runtime/doc/digraph.txt
index 20fbe60602..89351c5b4f 100644
--- a/runtime/doc/digraph.txt
+++ b/runtime/doc/digraph.txt
@@ -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 <M-]> to see the table of contents.
==============================================================================
1. Defining digraphs *digraphs-define*
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index 57458b7b81..9fe815ea9c 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -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 <M-]> 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
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 107dd28ecd..2a73590c76 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -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 <M-]> to see the table of contents.
==============================================================================
1. Variables *variables*
@@ -38,6 +22,8 @@ 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*
+ 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*
@@ -107,7 +93,7 @@ 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.
+non-empty String, then the value is considered 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.
@@ -394,10 +380,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 +613,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 +640,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|
@@ -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:
@@ -1214,7 +1209,7 @@ 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
+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)
@@ -1233,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})
@@ -1297,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.
@@ -1760,9 +1756,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*
@@ -1949,16 +1943,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
+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}
@@ -2023,8 +2024,8 @@ 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
+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}]])
@@ -2048,7 +2049,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}])
@@ -2147,7 +2148,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}
@@ -2169,8 +2171,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
@@ -2465,7 +2467,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
@@ -2513,6 +2515,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()|.
@@ -2857,8 +2862,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
@@ -3044,6 +3047,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.
@@ -3478,9 +3483,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"')
@@ -3503,6 +3509,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: >
@@ -3543,17 +3553,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
@@ -3639,11 +3651,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()*
@@ -4538,6 +4553,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
@@ -4667,10 +4683,23 @@ 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().
+
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
@@ -4712,6 +4741,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: >
@@ -4723,7 +4753,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
@@ -4874,9 +4903,9 @@ jobstart({cmd}[, {opts}]) {Nvim} *jobstart()*
unless cmd[0] is some form of "cmd.exe".
{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|)
+ |on_stderr|: stderr event handler (function name or |Funcref|)
+ |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
@@ -5112,6 +5141,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|.
@@ -5140,6 +5172,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: >
@@ -5461,16 +5497,20 @@ 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.
*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}]])
@@ -5706,7 +5746,7 @@ printf({fmt}, {expr1} ...) *printf()*
%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
@@ -6167,7 +6207,7 @@ rpcstop({channel}) {Nvim} *rpcstop()*
connecting to |v:servername|.
screenattr(row, col) *screenattr()*
- Like screenchar(), but return the attribute. This is a rather
+ 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.
@@ -6442,11 +6482,20 @@ 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 TCP socket (IPv4/IPv6), Unix domain socket (Unix),
+ or named pipe (Windows) at {address} for clients to connect
+ to and returns {address}.
+
+ If {address} contains `:`, a TCP socket is used. Everything in
+ front of the last occurrence of `:` is the IP or hostname,
+ everything after it the port. If the port is empty or `0`,
+ a random port will be assigned.
+
+ 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')"
@@ -6692,6 +6741,8 @@ 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
@@ -6836,6 +6887,21 @@ 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. Currently only rpc sockets are supported, so
+ {opts} must be passed with "rpc" set to |TRUE|.
+
+ {opts} is a dictionary with these keys:
+ rpc : If set, |msgpack-rpc| will be used to communicate
+ over the socket.
+ Returns:
+ - The channel ID on success, which is used by
+ |rpcnotify()| and |rpcrequest()| and |rpcstop()|.
+ - 0 on invalid arguments or connection failure.
sort({list} [, {func} [, {dict}]]) *sort()* *E702*
Sort the items in {list} in-place. Returns {list}.
@@ -7041,7 +7107,7 @@ 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'.
@@ -7401,10 +7467,10 @@ 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()*
@@ -7579,13 +7645,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)
@@ -7875,7 +7942,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
@@ -7938,7 +8005,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
@@ -8009,7 +8079,7 @@ 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: >
@@ -8044,17 +8114,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!
@@ -8072,9 +8139,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.
@@ -8089,8 +8153,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 Vim.
menu Compiled with support for |:menu|.
mksession Compiled with support for |:mksession|.
modify_fname Compiled with file name modifiers. |filename-modifiers|
@@ -8098,17 +8161,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.
@@ -8131,15 +8193,12 @@ 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|.
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|
@@ -8152,17 +8211,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
@@ -8634,6 +8685,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.
diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt
index 4c7360c88e..64d9c6daa9 100644
--- a/runtime/doc/filetype.txt
+++ b/runtime/doc/filetype.txt
@@ -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 <M-]> to see the table of contents.
+
==============================================================================
1. Filetypes *filetypes* *file-types*
@@ -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.
+META-] Show the manpage outline in the |location-list|.
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
diff --git a/runtime/doc/fold.txt b/runtime/doc/fold.txt
index 4826a65d7b..88dde9f61d 100644
--- a/runtime/doc/fold.txt
+++ b/runtime/doc/fold.txt
@@ -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 <M-]> to see the table of contents.
==============================================================================
1. Fold methods *fold-methods*
diff --git a/runtime/doc/gui.txt b/runtime/doc/gui.txt
index 4b89cd0d35..0bd3a40a7c 100644
--- a/runtime/doc/gui.txt
+++ b/runtime/doc/gui.txt
@@ -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 <M-]> 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
@@ -92,8 +75,7 @@ and only the first one that is found is read.
: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).
@@ -872,30 +854,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/help.txt b/runtime/doc/help.txt
index f71f46bad3..7cba0b9894 100644
--- a/runtime/doc/help.txt
+++ b/runtime/doc/help.txt
@@ -148,28 +148,22 @@ Special issues ~
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_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 6741efabd8..5948b24667 100644
--- a/runtime/doc/helphelp.txt
+++ b/runtime/doc/helphelp.txt
@@ -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 <M-]> 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 <M-]> 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 |
diff --git a/runtime/doc/if_cscop.txt b/runtime/doc/if_cscop.txt
index 3ce1575c99..831b2c9840 100644
--- a/runtime/doc/if_cscop.txt
+++ b/runtime/doc/if_cscop.txt
@@ -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 <M-]> to see the table of contents.
==============================================================================
1. Cscope introduction *cscope-intro*
diff --git a/runtime/doc/if_lua.txt b/runtime/doc/if_lua.txt
new file mode 100644
index 0000000000..c4efd57b45
--- /dev/null
+++ b/runtime/doc/if_lua.txt
@@ -0,0 +1,311 @@
+*if_lua.txt* Nvim
+
+
+ VIM REFERENCE MANUAL by Luis Carvalho
+
+
+Lua Interface to Nvim *lua* *Lua*
+
+ Type <M-]> to see the table of contents.
+
+==============================================================================
+1. Importing modules *lua-require*
+
+Neovim lua interface automatically adjusts `package.path` and `package.cpath`
+according to effective &runtimepath value. Adjustment happens after
+'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. Here is an 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 Neovim 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.
+
+------------------------------------------------------------------------------
+1.1. Example of the plugin which 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,
+ }
+
+==============================================================================
+2. Commands *lua-commands*
+
+ *:lua*
+:[range]lua {chunk}
+ Execute Lua chunk {chunk}.
+
+Examples:
+>
+ :lua vim.api.nvim_command('echo "Hello, Neovim!"')
+<
+
+:[range]lua << {endmarker}
+{script}
+{endmarker}
+ Execute Lua script {script}.
+ Note: This command doesn't work when the Lua
+ feature wasn't compiled in. To avoid errors, see
+ |script-here|.
+
+{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 variables are prefixed with `local`: they will disappear when
+block finishes. This is not the case for globals.
+
+To see what version of Lua you have: >
+ :lua print(_VERSION)
+
+If you use LuaJIT you can also use this: >
+ :lua print(jit.version)
+<
+
+ *: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 Vim 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 Neovim
+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|.
+
+
+==============================================================================
+2. The vim module *lua-vim*
+
+Lua interfaces Vim through the "vim" module. Currently it only has `api`
+submodule which is a table with all API functions. Descriptions of these
+functions may be found in |api.txt|.
+
+==============================================================================
+3. The luaeval function *lua-luaeval* *lua-eval*
+ *luaeval()*
+
+The (dual) equivalent of "vim.eval" for passing Lua values to Vim 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 Vim respective 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|.
+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 6321175420..8baa2d309b 100644
--- a/runtime/doc/if_pyth.txt
+++ b/runtime/doc/if_pyth.txt
@@ -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 <M-]> 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.
@@ -683,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*
@@ -692,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 2474039d82..54d81a958d 100644
--- a/runtime/doc/if_ruby.txt
+++ b/runtime/doc/if_ruby.txt
@@ -5,18 +5,13 @@
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 <M-]> 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
diff --git a/runtime/doc/indent.txt b/runtime/doc/indent.txt
index 4f4b39f559..8e17de3fb0 100644
--- a/runtime/doc/indent.txt
+++ b/runtime/doc/indent.txt
@@ -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 <M-]> 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 0dc8fff975..c15587cffd 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -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 <M-]> to see the table of contents.
+
==============================================================================
1. Insert mode *insert-index*
@@ -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,7 +991,7 @@ 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>
CTRL-O not used
@@ -1015,7 +1006,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 +1015,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
@@ -1340,6 +1331,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
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index 8b8c05c070..9219f45c83 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -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 <M-]> to see the table of contents.
+
==============================================================================
1. Special keys *ins-special-keys*
diff --git a/runtime/doc/intro.txt b/runtime/doc/intro.txt
index a5f9106bb0..c745d60ebc 100644
--- a/runtime/doc/intro.txt
+++ b/runtime/doc/intro.txt
@@ -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 <M-]> 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.
@@ -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,10 +116,7 @@ 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
@@ -453,7 +435,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
@@ -488,7 +469,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 +489,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 +525,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*
diff --git a/runtime/doc/job_control.txt b/runtime/doc/job_control.txt
index 40fd83b52c..da592d6eb0 100644
--- a/runtime/doc/job_control.txt
+++ b/runtime/doc/job_control.txt
@@ -6,8 +6,7 @@
Nvim's facilities for job control *job-control*
-1. Introduction |job-control-intro|
-2. Usage |job-control-usage|
+ Type <M-]> to see the table of contents.
==============================================================================
1. Introduction *job-control-intro*
@@ -76,6 +75,7 @@ Here's what is happening:
- 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.
+ *on_stdout* *on_stderr* *on_exit*
- The arguments passed to `JobHandler()` are:
0: The job id
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index 3ba1ce1f17..16c044a21d 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -9,21 +9,7 @@ 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 <M-]> to see the table of contents.
==============================================================================
1. Key mapping *key-mapping* *mapping* *macro*
@@ -437,6 +423,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 +439,30 @@ 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 termcap, it will automatically be
+ translated into the internal code and become the second way of mapping
+ (unless the 'k' flag is included in 'cpoptions').
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. The <> form cannot be used when 'cpoptions'
+ includes the '<' flag.
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*
@@ -1136,6 +1113,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}
diff --git a/runtime/doc/mbyte.txt b/runtime/doc/mbyte.txt
index 708c05e241..2e2ca92656 100644
--- a/runtime/doc/mbyte.txt
+++ b/runtime/doc/mbyte.txt
@@ -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 <M-]> 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 d0bdba41ab..c6c6f49026 100644
--- a/runtime/doc/message.txt
+++ b/runtime/doc/message.txt
@@ -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 <M-]> 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}
diff --git a/runtime/doc/mlang.txt b/runtime/doc/mlang.txt
index 187d8f029b..717ec9530c 100644
--- a/runtime/doc/mlang.txt
+++ b/runtime/doc/mlang.txt
@@ -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 <M-]> to see the table of contents.
==============================================================================
1. Messages *multilang-messages*
diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt
index a89fabe107..99aa76bfe5 100644
--- a/runtime/doc/motion.txt
+++ b/runtime/doc/motion.txt
@@ -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 <M-]> to see the table of contents.
+
==============================================================================
1. Motions and operators *operator*
diff --git a/runtime/doc/msgpack_rpc.txt b/runtime/doc/msgpack_rpc.txt
index 77cbc2f3d8..856476c6ae 100644
--- a/runtime/doc/msgpack_rpc.txt
+++ b/runtime/doc/msgpack_rpc.txt
@@ -6,12 +6,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 <M-]> to see the table of contents.
==============================================================================
1. Introduction *rpc-intro*
@@ -33,7 +28,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
@@ -197,7 +192,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 +214,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,7 +238,7 @@ 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.
@@ -251,9 +247,9 @@ connect to another with different type codes.
6. Remote UIs *rpc-remote-ui*
GUIs can be implemented as external processes communicating with Nvim over the
-RPC API. Currently the UI model consists of a terminal-like grid with one
-single, monospace font size. Some elements (UI "widgets") can be drawn
-separately from the grid.
+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").
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
@@ -264,10 +260,11 @@ a dictionary with these (optional) keys:
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.
+ `ext_popupmenu` Externalize the popupmenu. |ui-ext-popupmenu|
+ `ext_tabline` Externalize the tabline. |ui-ext-tabline|
+ Externalized widgets will not be drawn by
+ Nvim; only high-level data will be published
+ in new UI event kinds.
Nvim will then send msgpack-rpc notifications, with the method name "redraw"
and a single argument, an array of screen updates (described below). These
@@ -417,6 +414,7 @@ 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.
+ *ui-ext-popupmenu*
["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
@@ -436,5 +434,12 @@ states might be represented as separate modes.
["popupmenu_hide"]
The popupmenu is hidden.
+ *ui-ext-tabline*
+["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 }, ...]
+
==============================================================================
vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/nvim.txt b/runtime/doc/nvim.txt
index bd483e9949..29059f83d9 100644
--- a/runtime/doc/nvim.txt
+++ b/runtime/doc/nvim.txt
@@ -4,23 +4,25 @@
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.
+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 <M-]> 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 85325d3470..801ff75647 100644
--- a/runtime/doc/nvim_terminal_emulator.txt
+++ b/runtime/doc/nvim_terminal_emulator.txt
@@ -4,7 +4,7 @@
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
@@ -15,6 +15,8 @@ Terminal buffers behave mostly like normal 'nomodifiable' buffers, except:
- 'scrollback' controls how many off-screen lines are kept.
- Terminal output is followed if the cursor is on the last line.
+ Type <M-]> to see the table of contents.
+
==============================================================================
Spawning *terminal-emulator-spawning*
@@ -41,29 +43,35 @@ restarting the {cmd} when the session is loaded.
==============================================================================
Input *terminal-emulator-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.
@@ -81,6 +89,16 @@ Options: 'scrollback'
Events: |TermOpen|, |TermClose|
Highlight groups: |hl-TermCursor|, |hl-TermCursorNC|
+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
+
Terminal colors can be customized with these variables:
- `{g,b}:terminal_color_$NUM`: The terminal color palette, where `$NUM` is the
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 6b96271c4a..bb5cfb4a80 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -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,6 +14,8 @@ achieve special effects. These options come in three forms:
number has a numeric value
string has a string value
+ Type <M-]> to see the table of contents.
+
==============================================================================
1. Setting options *set-option* *E764*
@@ -130,39 +128,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
@@ -628,7 +593,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'*
@@ -2092,7 +2057,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'*
@@ -2219,10 +2184,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|.
@@ -2784,23 +2754,24 @@ A jump table for the options with a short description can be found at |Q_op|.
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")
+'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 some
- terminals. Unset to disable: >
- :set guicursor=
-<
+ terminals.
+
With tmux you might need this in ~/.tmux.conf (see terminal-overrides
in the tmux(1) manual page): >
set -ga terminal-overrides ',*:Ss=\E[%p1%d q:Se=\E[2 q'
-<
- The option is a comma separated list of parts. Each part consists of a
+
+< 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:
@@ -2828,16 +2799,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}
@@ -3156,81 +3120,9 @@ A jump table for the options with a short description can be found at |Q_op|.
Think twice when using ":q!" or ":qa!".
*'highlight'* *'hl'*
-'highlight' 'hl' string (default: string of "c:group,..." pairs)
- 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-Whitespace| 0
- |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
-
- |hl-TabLine| *
- |hl-TabLineFill| _
- |hl-TabLineSel| #
-
- |hl-ColorColumn| o
- |hl-CursorColumn| !
- |hl-CursorLine| .
- |hl-QuickFixLine| q
-
- 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.
+'highlight' 'hl' Removed. |vim-differences|
+ global
+ The builtin |highlight-groups| cannot be changed.
*'hlsearch'* *'hls'* *'nohlsearch'* *'nohls'*
'hlsearch' 'hls' boolean (default on)
@@ -3426,6 +3318,8 @@ 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.
@@ -3915,10 +3809,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: "")
@@ -4003,6 +3898,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*
@@ -4114,7 +4011,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)
@@ -4147,7 +4044,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.
@@ -4407,7 +4304,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
@@ -4471,7 +4368,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 "")
@@ -4685,6 +4583,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)
@@ -4884,7 +4783,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
@@ -6871,6 +6772,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 |group-name| pairs
+ "{hl-builtin}:{hl-group},..." where each {hl-builtin} is a group (from
+ |highlight-groups|) to be overridden by {hl-group} in the window where
+ this option was set. Only builting ui highlights are supported, not
+ syntax highlighting. For that purpose, use |:ownsyntax|.
+
+ Most highlights occuring within the frame of a window are supported.
+ 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 in the tabpage. Highlights of
+ the popupmenu are determined by the current window. Highlights in the
+ message area are not overridable. Example for overriding the
+ backgrond color: >
+ 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
index cd8ad3465a..4b012712fc 100644
--- a/runtime/doc/os_win32.txt
+++ b/runtime/doc/os_win32.txt
@@ -1,38 +1,11 @@
*os_win32.txt* Nvim
- VIM REFERENCE MANUAL by George Reilly
+ NVIM REFERENCE MANUAL
*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.
+This file documents the Win32 version of Nvim.
==============================================================================
1. Known problems *win32-problems*
diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt
index 1d0f42c222..f7f561dfa5 100644
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -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 <M-]> 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
diff --git a/runtime/doc/pi_gzip.txt b/runtime/doc/pi_gzip.txt
index 5b7a903f9c..f024db1260 100644
--- a/runtime/doc/pi_gzip.txt
+++ b/runtime/doc/pi_gzip.txt
@@ -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..8354c0470f 100644
--- a/runtime/doc/pi_health.txt
+++ b/runtime/doc/pi_health.txt
@@ -2,10 +2,7 @@
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 <M-]> to see the table of contents.
==============================================================================
Introduction *healthcheck* *health.vim-intro*
@@ -100,15 +97,12 @@ health#{plugin}#check() function in autoload/health/{plugin}.vim.
|:CheckHealth| automatically finds and invokes such functions.
If your plugin is named "jslint", then its healthcheck function must be >
-
health#jslint#check()
-<
-defined in this file on 'runtimepath': >
+defined in this file on 'runtimepath': >
autoload/health/jslint.vim
-<
-Here's a sample to get started: >
+Here's a sample to get started: >
function! health#jslint#check() abort
call health#report_start('sanity checks')
" perform arbitrary checks
@@ -121,7 +115,7 @@ Here's a sample to get started: >
\ ['npm install --save jslint'])
endif
endfunction
-<
+
==============================================================================
vim:tw=78:ts=8:ft=help:fdm=marker
diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt
index d0cfa70582..3e19f0b4af 100644
--- a/runtime/doc/pi_netrw.txt
+++ b/runtime/doc/pi_netrw.txt
@@ -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_zip.txt b/runtime/doc/pi_zip.txt
index 64f0be1a08..c20bda1fa1 100644
--- a/runtime/doc/pi_zip.txt
+++ b/runtime/doc/pi_zip.txt
@@ -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 c5470d1469..01de3a5290 100644
--- a/runtime/doc/print.txt
+++ b/runtime/doc/print.txt
@@ -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 <M-]> to see the table of contents.
==============================================================================
1. Introduction *print-intro*
diff --git a/runtime/doc/provider.txt b/runtime/doc/provider.txt
index eaa23de093..50307ccbf3 100644
--- a/runtime/doc/provider.txt
+++ b/runtime/doc/provider.txt
@@ -8,6 +8,8 @@ Providers *provider*
Nvim delegates some features to dynamic "providers".
+ Type <M-]> to see the table of contents.
+
==============================================================================
Python integration *provider-python*
@@ -97,33 +99,65 @@ 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".
+
+To ALWAYS use the clipboard for ALL operations (instead of interacting with
+the '+' and/or '*' registers explicitly): >
+
+ set clipboard+=unnamedplus
+<
+See 'clipboard' for details and options.
-Clipboard access is implicitly enabled if any of the following clipboard tools
-are found in your `$PATH`.
+ *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)
- xclip
- xsel (newer alternative to xclip)
- - pbcopy/pbpaste (macOS)
- 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*
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index 1bc5c31281..cad5bf98b5 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -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 <M-]> to see the table of contents.
=============================================================================
1. Using QuickFix commands *quickfix* *Quickfix* *E42*
@@ -872,7 +864,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
diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt
index 420f570c99..128c70ee94 100644
--- a/runtime/doc/quickref.txt
+++ b/runtime/doc/quickref.txt
@@ -988,7 +988,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}
@@ -1027,6 +1026,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:
diff --git a/runtime/doc/recover.txt b/runtime/doc/recover.txt
index 8eded487c0..2b49af1c96 100644
--- a/runtime/doc/recover.txt
+++ b/runtime/doc/recover.txt
@@ -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 <M-]> 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 b99aa6a859..bdc763b85f 100644
--- a/runtime/doc/remote.txt
+++ b/runtime/doc/remote.txt
@@ -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 <M-]> to see the table of contents.
==============================================================================
1. Common functionality *clientserver*
diff --git a/runtime/doc/remote_plugin.txt b/runtime/doc/remote_plugin.txt
index 3c682e83f3..cc2efd3d1f 100644
--- a/runtime/doc/remote_plugin.txt
+++ b/runtime/doc/remote_plugin.txt
@@ -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 <M-]> to see the table of contents.
==============================================================================
1. Introduction *remote-plugin-intro*
diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt
index b34d081ba9..0b3edc9bba 100644
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -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 <M-]> 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/russian.txt b/runtime/doc/russian.txt
index 7dd267ad50..e2c44ce54f 100644
--- a/runtime/doc/russian.txt
+++ b/runtime/doc/russian.txt
@@ -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 <M-]> to see the table of contents.
===============================================================================
1. Introduction *russian-intro*
diff --git a/runtime/doc/scroll.txt b/runtime/doc/scroll.txt
index fba5275f47..52e5cc9f0c 100644
--- a/runtime/doc/scroll.txt
+++ b/runtime/doc/scroll.txt
@@ -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 <M-]> 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
diff --git a/runtime/doc/sign.txt b/runtime/doc/sign.txt
index 466a030e0c..ced0608e8a 100644
--- a/runtime/doc/sign.txt
+++ b/runtime/doc/sign.txt
@@ -7,8 +7,7 @@
Sign Support Features *sign-support*
-1. Introduction |sign-intro|
-2. Commands |sign-commands|
+ Type <M-]> to see the table of contents.
==============================================================================
1. Introduction *sign-intro* *signs*
diff --git a/runtime/doc/spell.txt b/runtime/doc/spell.txt
index 08415f72a7..5c99db42ba 100644
--- a/runtime/doc/spell.txt
+++ b/runtime/doc/spell.txt
@@ -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 <M-]> to see the table of contents.
==============================================================================
1. Quick start *spell-quickstart* *E756*
diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt
index 14e8c5d76f..8581bcfb72 100644
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -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 <M-]> to see the table of contents.
==============================================================================
1. Vim arguments *vim-arguments*
@@ -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
@@ -425,7 +418,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)
@@ -518,7 +511,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
@@ -540,17 +534,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.
@@ -558,8 +558,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
@@ -581,6 +583,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.
@@ -590,6 +594,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
@@ -721,7 +727,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*
@@ -1182,8 +1188,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
@@ -1272,29 +1281,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,
@@ -1354,39 +1366,38 @@ file when reading and include:
complete MessagePack object.
==============================================================================
-9. Base Directories *base-directories* *xdg*
+9. Standard Paths
-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/
-
-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 3b54f9f268..07af856e6b 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -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 <M-]> to see the table of contents.
==============================================================================
1. Quick start *:syn-qstart*
@@ -1472,7 +1455,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
@@ -2656,68 +2639,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.
+
+ *ruby_spellcheck_strings*
+ Ruby: Spellchecking strings ~
-Folding of multiline comments can be disabled by defining
-"ruby_no_comment_fold": >
+Ruby syntax will perform spellchecking of strings if you define
+"ruby_spellcheck_strings": >
- :let ruby_no_comment_fold = 1
+ :let ruby_spellcheck_strings = 1
<
SCHEME *scheme.vim* *ft-scheme-syntax*
@@ -2815,9 +2833,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 +2846,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 +2879,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 +2903,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 +3212,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
@@ -3262,8 +3285,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 +3444,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 +3463,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 +3491,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 +3550,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 +3563,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
@@ -4024,6 +4061,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*
@@ -4532,7 +4572,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 +4636,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 +4676,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
@@ -4669,7 +4706,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
@@ -4812,10 +4849,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*
@@ -4885,6 +4921,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 window
*hl-Pmenu*
Pmenu Popup menu: normal item.
*hl-PmenuSel*
@@ -4934,6 +4972,8 @@ 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*
@@ -5162,32 +5202,6 @@ 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: >
@@ -5198,111 +5212,6 @@ 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>)
-
-
==============================================================================
18. When syntax is slow *:syntime*
diff --git a/runtime/doc/tabpage.txt b/runtime/doc/tabpage.txt
index c299d43927..8f1eb9d8cd 100644
--- a/runtime/doc/tabpage.txt
+++ b/runtime/doc/tabpage.txt
@@ -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 <M-]> 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 b47053e17b..d5a4f4e627 100644
--- a/runtime/doc/tagsrch.txt
+++ b/runtime/doc/tagsrch.txt
@@ -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 <M-]> to see the table of contents.
==============================================================================
1. Jump to a tag *tag-commands*
diff --git a/runtime/doc/term.txt b/runtime/doc/term.txt
index 56f57a3819..cdff8760fc 100644
--- a/runtime/doc/term.txt
+++ b/runtime/doc/term.txt
@@ -4,35 +4,25 @@
VIM REFERENCE MANUAL by Bram Moolenaar
-Terminal information *terminal-info*
+Terminal information
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|.
+characters.
-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 <M-]> 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.
*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|.
+"termcap" in all the documentation.
Settings depending on terminal *term-dependent-settings*
@@ -45,25 +35,12 @@ can do this best in your vimrc. Example: >
... vt100, vt102 maps and settings ...
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.
-
*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,55 +69,6 @@ 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
@@ -151,309 +79,12 @@ For the builtin termcap entries, Vim checks if the 'term' option contains
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
+When Vim receives a response to the "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.]
@@ -477,7 +108,7 @@ One command can be used to set the screen size:
Detects the screen size and redraws the screen.
==============================================================================
-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
@@ -511,7 +142,7 @@ 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.
==============================================================================
-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
@@ -592,13 +223,9 @@ 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.
-
-NOTE: See https://cirw.in/blog/bracketed-paste for technical details.
+you can paste text without Nvim giving any special meaning to it, e.g. it will
+not auto-indent the pasted text. See https://cirw.in/blog/bracketed-paste for
+technical details.
*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 e8dfbaea0b..9b34cd7599 100644
--- a/runtime/doc/tips.txt
+++ b/runtime/doc/tips.txt
@@ -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 <M-]> 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
diff --git a/runtime/doc/undo.txt b/runtime/doc/undo.txt
index e40be6b250..cbce868cec 100644
--- a/runtime/doc/undo.txt
+++ b/runtime/doc/undo.txt
@@ -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 <M-]> to see the table of contents.
==============================================================================
1. Undo and redo commands *undo-commands*
diff --git a/runtime/doc/usr_02.txt b/runtime/doc/usr_02.txt
index b32d84080c..b738cdc48b 100644
--- a/runtime/doc/usr_02.txt
+++ b/runtime/doc/usr_02.txt
@@ -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
diff --git a/runtime/doc/usr_03.txt b/runtime/doc/usr_03.txt
index f2e523e784..5a7f0cb0e5 100644
--- a/runtime/doc/usr_03.txt
+++ b/runtime/doc/usr_03.txt
@@ -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
diff --git a/runtime/doc/usr_05.txt b/runtime/doc/usr_05.txt
index 9e7f06ab63..cb7bf94ddc 100644
--- a/runtime/doc/usr_05.txt
+++ b/runtime/doc/usr_05.txt
@@ -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 fb02fe2683..48f672be78 100644
--- a/runtime/doc/usr_06.txt
+++ b/runtime/doc/usr_06.txt
@@ -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_22.txt b/runtime/doc/usr_22.txt
index 8d11be11b2..255211f668 100644
--- a/runtime/doc/usr_22.txt
+++ b/runtime/doc/usr_22.txt
@@ -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_41.txt b/runtime/doc/usr_41.txt
index 77c238ae97..acb6fd0fa4 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -950,8 +950,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
diff --git a/runtime/doc/usr_toc.txt b/runtime/doc/usr_toc.txt
index 0dce3eac83..ed14d78d22 100644
--- a/runtime/doc/usr_toc.txt
+++ b/runtime/doc/usr_toc.txt
@@ -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 fd81064d5b..8880b625e9 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -6,8 +6,7 @@
Various commands *various*
-1. Various commands |various-cmds|
-2. Using Vim like less or more |less|
+ Type <M-]> 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
@@ -207,15 +208,20 @@ 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
<
@@ -311,7 +317,6 @@ 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.
@@ -347,6 +352,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
@@ -367,14 +373,12 @@ 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|
@@ -461,6 +465,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.
diff --git a/runtime/doc/vi_diff.txt b/runtime/doc/vi_diff.txt
index 1fbd96f749..b8bfcaa586 100644
--- a/runtime/doc/vi_diff.txt
+++ b/runtime/doc/vi_diff.txt
@@ -6,8 +6,7 @@
Differences between Vim and Vi *vi-differences*
-1. Limits |limits|
-2. The most interesting additions |vim-additions|
+ Type <M-]> to see the table of contents.
==============================================================================
1. Limits *limits*
diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt
index c84cea2b55..24410ddaac 100644
--- a/runtime/doc/vim_diff.txt
+++ b/runtime/doc/vim_diff.txt
@@ -10,13 +10,7 @@ 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|
-
+ Type <M-]> to see the table of contents.
==============================================================================
1. Configuration *nvim-configuration*
@@ -65,7 +59,6 @@ these differences.
==============================================================================
3. New Features *nvim-features*
-
MAJOR COMPONENTS ~
Embedded terminal emulator |terminal-emulator|
@@ -77,7 +70,6 @@ Remote plugins |remote-plugin|
Python plugins |provider-python|
Clipboard integration |provider-clipboard|
-
USER EXPERIENCE ~
Working intuitively and consistently is a major goal of Nvim. Examples:
@@ -93,14 +85,14 @@ Working intuitively and consistently is a major goal of Nvim. Examples:
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.
FEATURES ~
-|bracketed-paste-mode| is built-in and enabled by default.
+"Outline": Type <M-]> 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-/>,
@@ -115,8 +107,10 @@ 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|
@@ -222,22 +216,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
@@ -248,18 +235,33 @@ 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|.
+- Currently, most legacy Vim features are missing.
+
+|input()| and |inputdialog()| gained support for each other’s features (return
+on cancel and completion respectively) via dictionary argument (replaces all
+other arguments if used).
+
==============================================================================
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 currently only supports `vim.api`
+- *if_perl*
+- *if_mzscheme*
+- *if_tcl*
==============================================================================
6. Removed features *nvim-features-removed*
@@ -276,6 +278,11 @@ 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.
+
'ttyfast':
":set ttyfast" is ignored
":set nottyfast" is an error
@@ -288,9 +295,6 @@ MS-DOS support:
'bioskey'
'conskey'
-Highlight groups:
- |hl-VisualNOS|
-
Test functions:
test_alloc_fail()
test_autochdir()
@@ -311,6 +315,7 @@ Other options:
'esckeys'
'guioptions' "t" flag was removed
*'guipty'* (Nvim uses pipes and PTYs consistently on all platforms.)
+ 'highlight' (the builtin |highlight-groups| cannot be changed)
*'imactivatefunc'* *'imaf'*
*'imactivatekey'* *'imak'*
*'imstatusfunc'* *'imsf'*
diff --git a/runtime/doc/visual.txt b/runtime/doc/visual.txt
index 9bad1a24a0..e9f5bf91f8 100644
--- a/runtime/doc/visual.txt
+++ b/runtime/doc/visual.txt
@@ -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 <M-]> to see the table of contents.
==============================================================================
1. Using Visual mode *visual-use*
diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt
index fa7a7f2a81..1941ac0972 100644
--- a/runtime/doc/windows.txt
+++ b/runtime/doc/windows.txt
@@ -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 <M-]> to see the table of contents.
==============================================================================
1. Introduction *windows-intro* *window*
@@ -287,7 +276,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
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index 43155aa27e..7d0f9cf779 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 Aug 26
+" Last Change: 2017 Jan 06
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -305,7 +305,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()
@@ -669,8 +672,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
@@ -802,6 +814,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
@@ -851,7 +867,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
@@ -1749,6 +1765,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
@@ -2243,7 +2262,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
@@ -2660,6 +2679,9 @@ au BufNewFile,BufRead mutt{ng,}rc*,Mutt{ng,}rc* call s:StarSetf('muttrc')
" 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/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/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/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/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/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/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/help.vim b/runtime/ftplugin/help.vim
index a0a0f292eb..c94b2ef3eb 100644
--- a/runtime/ftplugin/help.vim
+++ b/runtime/ftplugin/help.vim
@@ -18,5 +18,77 @@ if has("conceal")
setlocal cole=2 cocu=nc
endif
+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> <M-]> :call <sid>show_toc()<cr>
+endif
+
let &cpo = s:cpo_save
unlet s:cpo_save
diff --git a/runtime/ftplugin/man.vim b/runtime/ftplugin/man.vim
index 5d83886f56..27c8b88e44 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> <M-]> :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/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/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/python.vim b/runtime/ftplugin/python.vim
index df5dab8afc..546e3bd560 100644
--- a/runtime/ftplugin/python.vim
+++ b/runtime/ftplugin/python.vim
@@ -2,7 +2,7 @@
" Language: python
" Maintainer: James Sully <sullyj3@gmail.com>
" Previous Maintainer: Johannes Zellner <johannes@zellner.org>
-" Last Change: Wed, 29 June 2016
+" Last Change: Tue, 09 October 2016
" https://github.com/sullyj3/vim-ftplugin-python
if exists("b:did_ftplugin") | finish | endif
@@ -22,15 +22,25 @@ 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='\v%$\|^\s*(class\|def\|async def)>'
+let b:prev='\v^\s*(class\|def\|async def)>'
-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> ]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 "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> ]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 "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> ]m :call <SID>Python_jump('x', '". b:next."', 'W')<cr>"
+execute "xnoremap <silent> <buffer> [m :call <SID>Python_jump('x', '". b:prev."', 'Wb')<cr>"
if !exists('*<SID>Python_jump')
fun! <SID>Python_jump(mode, motion, flags) range
@@ -56,8 +66,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/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/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/scala.vim b/runtime/ftplugin/scala.vim
index e409950107..18e16f1d5b 100644
--- a/runtime/ftplugin/scala.vim
+++ b/runtime/ftplugin/scala.vim
@@ -32,6 +32,4 @@ setlocal includeexpr='substitute(v:fname,"\\.","/","g")'
setlocal path+=src/main/scala,src/test/scala
setlocal suffixesadd=.scala
-compiler sbt
-
" vim:set sw=2 sts=2 ts=8 et:
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/indent/cdl.vim b/runtime/indent/cdl.vim
index db2b9052b2..5ec2a7b21a 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
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/cucumber.vim b/runtime/indent/cucumber.vim
index 965c7786ed..999b8d6a76 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: 2016 Aug 29
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() : &sw
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/eruby.vim b/runtime/indent/eruby.vim
index 80cab7000e..afabd4fe5b 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,18 @@ 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
+ if exists('*shiftwidth')
+ let sw = shiftwidth()
+ else
+ let sw = &sw
+ endif
+
if a:0 && a:1 == '.'
let v:lnum = line('.')
elseif a:0 && a:1 =~ '^\d'
@@ -52,31 +66,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/fortran.vim b/runtime/indent/fortran.vim
index be2f0866d5..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.45
-" Last Change: 2016 Aug. 18
+" 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\/submodule\|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\/submodule\|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, 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/gitconfig.vim b/runtime/indent/gitconfig.vim
index 7d5d44b779..480c96d1b9 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: 2016 Aug 29
if exists("b:did_indent")
finish
@@ -20,17 +20,18 @@ if exists("*GetGitconfigIndent")
endif
function! GetGitconfigIndent()
+ let sw = exists('*shiftwidth') ? shiftwidth() : &sw
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/haml.vim b/runtime/indent/haml.vim
index c47a8a59c7..c3935af9e9 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: 2016 Aug 29
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 = exists('*shiftwidth') ? shiftwidth() : &sw
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/html.vim b/runtime/indent/html.vim
index 828bc3120b..57ba53ecd4 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 Jan 17
" 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}
@@ -596,7 +591,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
@@ -749,7 +744,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)
diff --git a/runtime/indent/javascript.vim b/runtime/indent/javascript.vim
index 0d6c11d151..a6f1e1a8f8 100644
--- a/runtime/indent/javascript.vim
+++ b/runtime/indent/javascript.vim
@@ -2,7 +2,7 @@
" Language: Javascript
" Maintainer: Chris Paul ( https://github.com/bounceme )
" URL: https://github.com/pangloss/vim-javascript
-" Last Change: August 25, 2016
+" Last Change: December 31, 2016
" Only load this indent file when no other was loaded.
if exists('b:did_indent')
@@ -12,11 +12,10 @@ let b:did_indent = 1
" Now, set up our indentation expression and keys that trigger it.
setlocal indentexpr=GetJavascriptIndent()
-setlocal nolisp noautoindent nosmartindent
-setlocal indentkeys=0{,0},0),0],:,!^F,o,O,e
-setlocal cinoptions+=j1,J1
+setlocal autoindent nolisp nosmartindent
+setlocal indentkeys+=0],0)
-let b:undo_indent = 'setlocal indentexpr< smartindent< autoindent< indentkeys< cinoptions<'
+let b:undo_indent = 'setlocal indentexpr< smartindent< autoindent< indentkeys<'
" Only define the function once.
if exists('*GetJavascriptIndent')
@@ -37,158 +36,329 @@ else
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\)'
-
-" Expression used to check whether we should skip a match with searchpair().
-let s:skip_expr = "synIDattr(synID(line('.'),col('.'),0),'name') =~? '".s:syng_strcom."'"
-
+" searchpair() wrapper
if has('reltime')
- function s:GetPair(start,end,flags,time)
- return searchpair(a:start,'',a:end,a:flags,s:skip_expr,max([prevnonblank(v:lnum) - 2000,0]),a:time)
+ function s:GetPair(start,end,flags,skip,time,...)
+ return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,max([prevnonblank(v:lnum) - 2000,0] + a:000),a:time)
endfunction
else
- function s:GetPair(start,end,flags,n)
- return searchpair(a:start,'',a:end,a:flags,0,max([prevnonblank(v:lnum) - 2000,0]))
+ function s:GetPair(start,end,flags,skip,...)
+ return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,max([prevnonblank(v:lnum) - 1000,get(a:000,1)]))
endfunction
endif
-let s:line_term = '\s*\%(\%(\/\%(\%(\*.\{-}\*\/\)\|\%(\*\+\)\)\)\s*\)\=$'
+" Regex of syntax group names that are or delimit string or are comments.
+let s:syng_strcom = 'string\|comment\|regex\|special\|doc\|template'
+let s:syng_str = 'string\|template'
+let s:syng_com = 'comment\|doc'
+" Expression used to check whether we should skip a match with searchpair().
+let s:skip_expr = "synIDattr(synID(line('.'),col('.'),0),'name') =~? '".s:syng_strcom."'"
-" configurable regexes that define continuation lines, not including (, {, or [.
-if !exists('g:javascript_opfirst')
- let g:javascript_opfirst = '\%([<>,:?^%|*&]\|\/[^/*]\|\([-.+]\)\1\@!\|=>\@!\|in\%(stanceof\)\=\>\)'
-endif
-if !exists('g:javascript_continuation')
- let g:javascript_continuation = '\%([<=,.?/*:^%|&]\|+\@<!+\|-\@<!-\|=\@<!>\|\<in\%(stanceof\)\=\)'
-endif
+function s:skip_func()
+ if !s:free || search('\m`\|\*\/','nW',s:looksyn)
+ let s:free = !eval(s:skip_expr)
+ let s:looksyn = s:free ? line('.') : s:looksyn
+ return !s:free
+ endif
+ let s:looksyn = line('.')
+ return (search('\m\/','nbW',s:looksyn) || search('\m[''"]\|\\$','nW',s:looksyn)) && eval(s:skip_expr)
+endfunction
-let g:javascript_opfirst = s:line_pre . g:javascript_opfirst
-let g:javascript_continuation .= s:line_term
+function s:alternatePair(stop)
+ let pos = getpos('.')[1:2]
+ while search('\m[][(){}]','bW',a:stop)
+ if !s:skip_func()
+ let idx = stridx('])}',s:looking_at())
+ if idx + 1
+ if !s:GetPair(['\[','(','{'][idx], '])}'[idx],'bW','s:skip_func()',2000,a:stop)
+ break
+ endif
+ else
+ return
+ endif
+ endif
+ endwhile
+ call call('cursor',pos)
+endfunction
-function s:OneScope(lnum,text,add)
- return a:text =~# '\%(\<else\|\<do\|=>\)' . s:line_term ? 'no b' :
- \ ((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:GetPair('(', ')', 'cbW', 100) > 0 && search('\C\l\+\_s*\%#','bW') &&
- \ (a:add || ((expand('<cword>') !=# 'while' || !s:GetPair('\C\<do\>', '\C\<while\>','nbW',100)) &&
- \ (expand('<cword>') !=# 'each' || search('\C\<for\_s\+\%#','nbW')))) ? expand('<cword>') : ''
+function s:save_pos(f,...)
+ let l:pos = getpos('.')[1:2]
+ let ret = call(a:f,a:000)
+ call call('cursor',l:pos)
+ return ret
endfunction
-" https://github.com/sweet-js/sweet.js/wiki/design#give-lookbehind-to-the-reader
-function s:IsBlock()
- return getline(line('.'))[col('.')-1] == '{' && !search(
- \ '\C\%(\<return\s*\|\%([-=~!<*+,.?^%|&\[(]\|=\@<!>\|\*\@<!\/\|\<\%(var\|const\|let\|import\|export\%(\_s\+default\)\=\|yield\|delete\|void\|t\%(ypeof\|hrow\)\|new\|in\%(stanceof\)\=\)\)\_s*\)\%#','bnW') &&
- \ (!search(':\_s*\%#','bW') || (!s:GetPair('[({[]','[])}]','bW',200) || s:IsBlock()))
+function s:syn_at(l,c)
+ return synIDattr(synID(a:l,a:c,0),'name')
+endfunction
+
+function s:looking_at()
+ return getline('.')[col('.')-1]
+endfunction
+
+function s:token()
+ return s:looking_at() =~ '\k' ? expand('<cword>') : s:looking_at()
+endfunction
+
+function s:b_token()
+ if s:looking_at() =~ '\k'
+ call search('\m\<','cbW')
+ endif
+ return search('\m\S','bW')
+endfunction
+
+function s:previous_token()
+ let l:n = line('.')
+ while s:b_token()
+ if (s:looking_at() == '/' || line('.') != l:n && search('\m\/\/','nbW',
+ \ line('.'))) && s:syn_at(line('.'),col('.')) =~? s:syng_com
+ call search('\m\_[^/]\zs\/[/*]','bW')
+ else
+ return s:token()
+ endif
+ endwhile
+ return ''
+endfunction
+
+function s:others(p)
+ return "((line2byte(line('.')) + col('.')) <= ".(line2byte(a:p[0]) + a:p[1]).") || ".s:skip_expr
+endfunction
+
+function s:tern_skip(p)
+ return s:GetPair('{','}','nbW',s:others(a:p),200,a:p[0]) > 0
+endfunction
+
+function s:tern_col(p)
+ return s:GetPair('?',':\@<!::\@!','nbW',s:others(a:p)
+ \ .' || s:tern_skip('.string(a:p).')',200,a:p[0]) > 0
+endfunction
+
+function s:label_col()
+ let pos = getpos('.')[1:2]
+ let [s:looksyn,s:free] = pos
+ call s:alternatePair(0)
+ if s:save_pos('s:IsBlock')
+ let poss = getpos('.')[1:2]
+ return call('cursor',pos) || !s:tern_col(poss)
+ elseif s:looking_at() == ':'
+ return !s:tern_col([0,0])
+ endif
+endfunction
+
+" configurable regexes that define continuation lines, not including (, {, or [.
+let s:opfirst = '^' . get(g:,'javascript_opfirst',
+ \ '\%([<>=,?^%|*/&]\|\([-.:+]\)\1\@!\|!=\|in\%(stanceof\)\=\>\)')
+let s:continuation = get(g:,'javascript_continuation',
+ \ '\%([<=,.~!?/*^%|&:]\|+\@<!+\|-\@<!-\|=\@<!>\|\<\%(typeof\|delete\|void\|in\|instanceof\)\)') . '$'
+
+function s:continues(ln,con)
+ return !cursor(a:ln, match(' '.a:con,s:continuation)) &&
+ \ eval((['s:syn_at(line("."),col(".")) !~? "regex"'] +
+ \ repeat(['s:previous_token() != "."'],5) + [1])[
+ \ index(split('/ typeof in instanceof void delete'),s:token())])
endfunction
-" Auxiliary Functions {{{2
+" get the line of code stripped of comments and move cursor to the last
+" non-comment char.
+function s:Trim(ln)
+ let pline = substitute(getline(a:ln),'\s*$','','')
+ let l:max = max([match(pline,'.*[^/]\zs\/[/*]'),0])
+ while l:max && s:syn_at(a:ln, strlen(pline)) =~? s:syng_com
+ let pline = substitute(strpart(pline, 0, l:max),'\s*$','','')
+ let l:max = max([match(pline,'.*[^/]\zs\/[/*]'),0])
+ endwhile
+ return cursor(a:ln,strlen(pline)) ? pline : pline
+endfunction
-" Find line above 'lnum' that isn't empty, in a comment, or in a string.
+" Find line above 'lnum' that isn't empty or in a comment
function s:PrevCodeLine(lnum)
- let l:lnum = prevnonblank(a:lnum)
- while l:lnum
- if synIDattr(synID(l:lnum,matchend(getline(l:lnum), '^\s*[^''"]'),0),'name') !~? s:syng_strcom
- return l:lnum
+ let l:n = prevnonblank(a:lnum)
+ while l:n
+ if getline(l:n) =~ '^\s*\/[/*]'
+ if (stridx(getline(l:n),'`') > 0 || getline(l:n-1)[-1:] == '\') &&
+ \ s:syn_at(l:n,1) =~? s:syng_str
+ return l:n
+ endif
+ let l:n = prevnonblank(l:n-1)
+ elseif s:syn_at(l:n,1) =~? s:syng_com
+ let l:n = s:save_pos('eval',
+ \ 'cursor('.l:n.',1) + search(''\m\/\*'',"bW")')
+ else
+ return l:n
endif
- let l:lnum = prevnonblank(l:lnum - 1)
endwhile
endfunction
" Check if line 'lnum' has a balanced amount of parentheses.
function s:Balanced(lnum)
- let [open_0,open_2,open_4] = [0,0,0]
+ let l:open = 0
let l:line = getline(a:lnum)
let pos = match(l:line, '[][(){}]', 0)
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:syn_at(a:lnum,pos + 1) !~? s:syng_strcom
+ let l:open += match(' ' . l:line[pos],'[[({]')
+ if l:open < 0
+ return
endif
endif
let pos = match(l:line, '[][(){}]', 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(lnum)
+ let pline = s:Trim(a:lnum)
+ let kw = 'else do'
+ if pline[-1:] == ')' && s:GetPair('(', ')', 'bW', s:skip_expr, 100) > 0
+ call s:previous_token()
+ let kw = 'for if let while with'
+ if index(split('await each'),s:token()) + 1
+ call s:previous_token()
+ let kw = 'for'
+ endif
+ endif
+ return pline[-2:] == '=>' || index(split(kw),s:token()) + 1 &&
+ \ s:save_pos('s:previous_token') != '.'
+endfunction
+
+" returns braceless levels started by 'i' and above lines * &sw. 'num' is the
+" lineNr which encloses the entire context, 'cont' if whether line 'i' + 1 is
+" a continued expression, which could have started in a braceless context
+function s:iscontOne(i,num,cont)
+ let [l:i, l:num, bL] = [a:i, a:num + !a:num, 0]
+ let pind = a:num ? indent(l:num) + s:W : 0
+ let ind = indent(l:i) + (a:cont ? 0 : s:W)
+ while l:i >= l:num && (ind > pind || l:i == l:num)
+ if indent(l:i) < ind && s:OneScope(l:i)
+ let bL += s:W
+ let l:i = line('.')
+ elseif !a:cont || bL || ind < indent(a:i)
+ break
+ endif
+ let ind = min([ind, indent(l:i)])
+ let l:i = s:PrevCodeLine(l:i - 1)
+ endwhile
+ return bL
+endfunction
+
+" https://github.com/sweet-js/sweet.js/wiki/design#give-lookbehind-to-the-reader
+function s:IsBlock()
+ if s:looking_at() == '{'
+ let l:n = line('.')
+ let char = s:previous_token()
+ let syn = char =~ '[{>/]' ? s:syn_at(line('.'),col('.')-(char == '{')) : ''
+ if syn =~? 'xml\|jsx'
+ return char != '{'
+ elseif char =~ '\k'
+ return index(split('return const let import export yield default delete var await void typeof throw case new in instanceof')
+ \ ,char) < (line('.') != l:n) || s:previous_token() == '.'
+ elseif char == '>'
+ return getline('.')[col('.')-2] == '=' || syn =~? '^jsflow'
+ elseif char == ':'
+ return getline('.')[col('.')-2] != ':' && s:label_col()
+ endif
+ return syn =~? 'regex' || char !~ '[-=~!<*+,/?^%|&([]'
endif
+endfunction
+
+function GetJavascriptIndent()
+ let b:js_cache = get(b:,'js_cache',[0,0,0])
" Get the current line.
- let l:line = getline(v:lnum)
- let syns = synIDattr(synID(v:lnum, 1, 0), 'name')
+ call cursor(v:lnum,1)
+ let l:line = getline('.')
+ let syns = s:syn_at(v:lnum, 1)
- " 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 syns =~? s:syng_com
+ if l:line =~ '^\s*\*'
+ return cindent(v:lnum)
+ elseif l:line !~ '^\s*\/[/*]'
+ return -1
+ endif
+ elseif syns =~? s:syng_str && l:line !~ '^[''"]'
+ 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
+ if !l:lnum
+ return
endif
- 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*','','')
+ 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.
- 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:GetPair(pattern[0],pattern[1],'bW',2000)
+ " the containing paren, bracket, or curly. Many hacks for performance
+ let idx = strlen(l:line) ? stridx('])}',l:line[0]) : -1
+ 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:GetPair('[({[]','[])}]','bW',2000)
+ let [s:looksyn, s:free, top] = [v:lnum - 1, 1, (!indent(l:lnum) &&
+ \ s:syn_at(l:lnum,1) !~? s:syng_str) * l:lnum]
+ if idx + 1
+ call s:GetPair(['\[','(','{'][idx], '])}'[idx],'bW','s:skip_func()',2000,top)
+ elseif indent(v:lnum) && syns =~? 'block'
+ call s:GetPair('{','}','bW','s:skip_func()',2000,top)
+ else
+ call s:alternatePair(top)
+ endif
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)
+ if idx + 1 || l:line[:1] == '|}'
+ if idx == 2 && search('\m\S','bW',line('.')) && s:looking_at() == ')'
+ call s:GetPair('(',')','bW',s:skip_expr,200)
+ endif
+ return indent('.')
endif
- call cursor(b:js_cache[1],b:js_cache[2])
-
- let swcase = getline(l:lnum) =~# s:expr_case
- let pline = swcase ? getline(l:lnum) : substitute(getline(l:lnum), '\%(:\@<!\/\/.*\)$', '','')
- let inb = num == 0 || num < l:lnum && ((l:line !~ s:line_pre . ',' && pline !~ ',' . s:line_term) || s:IsBlock())
- let switch_offset = num == 0 || s:OneScope(num, strpart(getline(num),0,b:js_cache[2] - 1),1) !=# '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 && !swcase && ((l:line =~# g:javascript_opfirst || pline =~# g:javascript_continuation) ||
- \ num < l:lnum && s:OneScope(l:lnum,pline,0) =~# '\<\%(for\|each\|if\|let\|no\sb\|w\%(hile\|ith\)\)\>' &&
- \ 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 b:js_cache = [v:lnum] + (line('.') == v:lnum ? [0,0] : getpos('.')[1:2])
+ let num = b:js_cache[1]
+
+ let [s:W, isOp, bL, switch_offset] = [s:sw(),0,0,0]
+ if !num || s:IsBlock()
+ let pline = s:save_pos('s:Trim',l:lnum)
+ if num && s:looking_at() == ')' && s:GetPair('(', ')', 'bW', s:skip_expr, 100) > 0
+ let num = line('.')
+ if s:previous_token() ==# 'switch' && s:previous_token() != '.'
+ if &cino !~ ':' || !has('float')
+ let switch_offset = s:W
+ else
+ let cinc = matchlist(&cino,'.*:\(-\)\=\([0-9.]*\)\(s\)\=\C')
+ let switch_offset = float2nr(str2float(cinc[1].(strlen(cinc[2]) ? cinc[2] : strlen(cinc[3])))
+ \ * (strlen(cinc[3]) ? s:W : 1))
+ endif
+ if pline[-1:] != '.' && l:line =~# '^\%(default\|case\)\>'
+ return indent(num) + switch_offset
+ endif
+ endif
+ endif
+ if pline[-1:] !~ '[{;]'
+ if pline =~# ':\@<!:$'
+ call cursor(l:lnum,strlen(pline))
+ let isOp = s:tern_col(b:js_cache[1:2])
+ else
+ let isOp = l:line =~# s:opfirst || s:continues(l:lnum,pline)
+ endif
+ let bL = s:iscontOne(l:lnum,num,isOp)
+ let bL -= (bL && l:line[0] == '{') * s:W
+ endif
endif
+ " main return
+ if isOp
+ return (num ? indent(num) : -s:W) + (s:W * 2) + switch_offset + bL
+ elseif num
+ return indent(num) + s:W + switch_offset + bL
+ endif
+ return bL
endfunction
-
let &cpo = s:cpo_save
unlet s:cpo_save
diff --git a/runtime/indent/liquid.vim b/runtime/indent/liquid.vim
index 01e7223696..f8e1c83079 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: 2016 Aug 29
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 = exists('*shiftwidth') ? shiftwidth() : &sw
+ 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/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/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/ruby.vim b/runtime/indent/ruby.vim
index 095b3a43c6..a97f4828d6 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,13 @@ function GetRubyIndent(...)
" 3.1. Setup {{{2
" ----------
+ " The value of a single shift-width
+ if exists('*shiftwidth')
+ let sw = shiftwidth()
+ else
+ let sw = &sw
+ endif
+
" For the current line, use the first argument if given, else v:lnum
let clnum = a:0 ? a:1 : v:lnum
@@ -333,6 +423,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 +451,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 +476,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 +506,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 +531,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 +589,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 +631,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 +648,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 +668,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 +679,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/sass.vim b/runtime/indent/sass.vim
index b6e2e66e8a..d87b371fdd 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: 2016 Aug 29
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 + (exists('*shiftwidth') ? shiftwidth() : &sw)
else
return -1
endif
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/menu.vim b/runtime/menu.vim
index 7cb530a331..37e9d8733b 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 Feb 09
" 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.
@@ -475,7 +475,7 @@ if has("folding")
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.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>
diff --git a/runtime/optwin.vim b/runtime/optwin.vim
index 36d1741362..5c883babc1 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 21
+" Last Change: 2017 Jan 28
" If there already is an option window, jump to that one.
if bufwinnr("option-window") > 0
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/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/synmenu.vim b/runtime/synmenu.vim
index 01dad3c7f2..81e3667298 100644
--- a/runtime/synmenu.vim
+++ b/runtime/synmenu.vim
@@ -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>
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/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/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..3b826af6f5 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-01-23
+" 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,7 @@ syn keyword autohotkeyCommand
\ SoundSetWaveVolume
\ FormatTime IfInString IfNotInString Sort StringCaseSense StringGetPos
\ StringLeft StringRight StringLower StringUpper StringMid StringReplace
- \ StringSplit StringTrimLeft StringTrimRight
+ \ StringSplit StringTrimLeft StringTrimRight StringLen
\ Control ControlClick ControlFocus ControlGet ControlGetFocus
\ ControlGetPos ControlGetText ControlMove ControlSend ControlSendRaw
\ ControlSetText Menu PostMessage SendMessage SetControlDelay
@@ -164,12 +116,16 @@ 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
\ 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
syn keyword autohotkeyStatement
\ Break Continue Exit ExitApp Gosub Goto OnExit Pause Return
@@ -180,7 +136,9 @@ syn keyword autohotkeyRepeat
syn keyword autohotkeyConditional
\ IfExist IfNotExist If IfEqual IfLess IfGreater Else
- \ IfWinExist IfWinNotExist
+ \ IfWinExist IfWinNotExist IfWinActive IfWinNotActive
+ \ IfNotEqual IfLessOrEqual IfGreaterOrEqual
+ \ while until for in
syn match autohotkeyPreProcStart
\ nextgroup=
@@ -200,6 +158,7 @@ syn keyword autohotkeyPreProc
\ HotkeyInterval HotKeyModifierTimeout
\ Hotstring
\ IfWinActive IfWinNotActive IfWinExist IfWinNotExist
+ \ If IfTimeout
\ MaxHotkeysPerInterval MaxThreads MaxThreadsBuffer MaxThreadsPerHotkey
\ UseHook InstallKeybdHook InstallMouseHook
\ KeyHistory
@@ -213,6 +172,10 @@ syn keyword autohotkeyPreProc
\ MaxMem
\ NoEnv
\ Persistent
+ \ LTrim
+ \ InputLevel
+ \ MenuMaskKey
+ \ Warn
syn keyword autohotkeyMatchClass
\ ahk_group ahk_class ahk_id ahk_pid
@@ -243,11 +206,74 @@ syn match autohotkeyFloat
syn keyword autohotkeyType
\ local
\ global
+ \ static
+ \ byref
syn keyword autohotkeyBoolean
\ true
\ false
+syn match autohotkeyHotkey
+ \ contains=autohotkeyKey,
+ \ autohotkeyHotkeyDelimiter
+ \ display
+ \ '^.\{-}::'
+
+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/bib.vim b/runtime/syntax/bib.vim
index 8bd0528e1e..f2b99e961b 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: 2016 Sep 12
" 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,6 +81,7 @@ 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
@@ -91,11 +89,7 @@ syn region bibField contained start="\S\+\s*=\s*" end=/[}),]/me=e-1 contains=bib
syn region bibEntryData contained start=/[{(]/ms=e+1 end=/[})]/me=e-1 contains=bibKey,bibField
" 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
" Synchronization
@@ -107,25 +101,16 @@ 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
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..cc99f674a1 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: 2016 Nov 17
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
@@ -358,36 +358,36 @@ 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 cCppOutIf contained start="0\+" matchgroup=cCppOutWrapper end="^\s*\(%:\|#\)\s*endif\>" contains=cCppOutIf2,cCppOutElse
+ 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*\zs\(%:\|#\)\s*endif\>" contains=cCppOutIf2,cCppOutElse
if !exists("c_no_if0_fold")
syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0\+\s*\($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell fold
else
syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0\+\s*\($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell
endif
- syn region cCppOutElse contained matchgroup=cCppOutWrapper start="^\s*\(%:\|#\)\s*\(else\|elif\)" end="^\s*\(%:\|#\)\s*endif\>"me=s-1 contains=TOP,cPreCondit
- syn region cCppInWrapper start="^\s*\(%:\|#\)\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
+ syn region cCppOutElse contained matchgroup=cCppOutWrapper start="^\s*\zs\(%:\|#\)\s*\(else\|elif\)" end="^\s*\zs\(%:\|#\)\s*endif\>"me=s-1 contains=TOP,cPreCondit
+ syn region cCppInWrapper start="^\s*\zs\(%:\|#\)\s*if\s\+0*[1-9]\d*\s*\($\|//\|/\*\||\)" end=".\@=\|$" contains=cCppInIf,cCppInElse fold
+ syn region cCppInIf contained matchgroup=cCppInWrapper start="\d\+" end="^\s*\zs\(%:\|#\)\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
+ syn region cCppInElse contained start="^\s*\zs\(%:\|#\)\s*\(else\>\|elif\s\+\(0*[1-9]\d*\s*\($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cCppInIf contains=cCppInElse2 fold
else
- syn region cCppInElse contained start="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0*[1-9]\d*\s*\($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cCppInIf contains=cCppInElse2
+ syn region cCppInElse contained start="^\s*\zs\(%:\|#\)\s*\(else\>\|elif\s\+\(0*[1-9]\d*\s*\($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cCppInIf contains=cCppInElse2
endif
- syn region cCppInElse2 contained matchgroup=cCppInWrapper start="^\s*\(%:\|#\)\s*\(else\|elif\)\([^/]\|/[^/*]\)*" end="^\s*\(%:\|#\)\s*endif\>"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell
- syn region cCppOutSkip contained start="^\s*\(%:\|#\)\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" contains=cSpaceError,cCppOutSkip
- syn region cCppInSkip contained matchgroup=cCppInWrapper start="^\s*\(%:\|#\)\s*\(if\s\+\(\d\+\s*\($\|//\|/\*\||\|&\)\)\@!\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" containedin=cCppOutElse,cCppInIf,cCppInSkip contains=TOP,cPreProc
+ syn region cCppInElse2 contained matchgroup=cCppInWrapper start="^\s*\zs\(%:\|#\)\s*\(else\|elif\)\([^/]\|/[^/*]\)*" end="^\s*\zs\(%:\|#\)\s*endif\>"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell
+ syn region cCppOutSkip contained start="^\s*\zs\(%:\|#\)\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\zs\(%:\|#\)\s*endif\>" contains=cSpaceError,cCppOutSkip
+ syn region cCppInSkip contained matchgroup=cCppInWrapper start="^\s*\zs\(%:\|#\)\s*\(if\s\+\(\d\+\s*\($\|//\|/\*\||\|&\)\)\@!\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\zs\(%:\|#\)\s*endif\>" containedin=cCppOutElse,cCppInIf,cCppInSkip contains=TOP,cPreProc
endif
syn region cIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
syn match cIncluded display contained "<[^>]*>"
-syn match cInclude display "^\s*\(%:\|#\)\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 +396,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/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/cmake.vim b/runtime/syntax/cmake.vim
index 4586940c5e..4cc21da8fe 100644
--- a/runtime/syntax/cmake.vim
+++ b/runtime/syntax/cmake.vim
@@ -12,11 +12,8 @@
" http://www.cmake.org/HTML/Copyright.html
" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
let s:keepcpo= &cpo
@@ -52,32 +49,22 @@ syn keyword cmakeTodo
\ 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
+" Only when an item doesn't have highlighting yet
- 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
+hi def link cmakeStatement Statement
+hi def link cmakeComment Comment
+hi def link cmakeString String
+hi def link cmakeVariableValue Type
+hi def link cmakeRegistry Underlined
+hi def link cmakeArguments Identifier
+hi def link cmakeArgument Constant
+hi def link cmakeEnvironment Special
+hi def link cmakeOperators Operator
+hi def link cmakeMacro PreProc
+hi def link cmakeError Error
+hi def link cmakeTodo TODO
+hi def link cmakeEscaped Special
- delcommand HiLink
-endif
let b:current_syntax = "cmake"
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..5a478fb77d 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: 2016 Oct 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
" 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\)\>"
+ 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/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/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..eb02aaf4af 100644
--- a/runtime/syntax/debchangelog.vim
+++ b/runtime/syntax/debchangelog.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: 2016 Apr 24
+" Last Change: 2016 Nov 12
" 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
@@ -23,7 +21,7 @@ let binNMU='binary-only=yes'
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))=)+"
+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|zesty)%(-%(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..b1bc9f8bfe 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: 2016 Aug 30
" 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
@@ -28,7 +26,7 @@ syn match debControlSpace " "
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|javascript|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"
@@ -86,37 +84,26 @@ syn region debcontrolMultiField start="^\%(Build-\%(Conflicts\|Depends\)\%(-Inde
syn region debcontrolMultiFieldSpell start="^\%(Description\):" skip="^ " end="^$"me=s-1 end="^[^ #]"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..390c43035e 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: 2016 Nov 12
" 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'
+ \ 'precise', 'trusty', 'xenial', 'yakkety', 'zesty', 'devel'
\ ]
let s:unsupported = [
\ 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato',
@@ -36,12 +34,12 @@ let s:unsupported = [
\ 'warty', 'hoary', 'breezy', 'dapper', 'edgy', 'feisty',
\ 'gutsy', 'hardy', 'intrepid', 'jaunty', 'karmic', 'lucid',
\ 'maverick', 'natty', 'oneiric', 'quantal', 'raring', 'saucy',
- \ 'utopic', 'vivid'
+ \ 'utopic', 'vivid', 'wily'
\ ]
let &cpo=s:cpo
" Match uri's
-syn match debsourcesUri +\(http://\|ftp://\|[rs]sh://\|debtorrent://\|\(cdrom\|copy\|file\):\)[^' <>"]\++
+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:]_./]*\)+'
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/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/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/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/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..11b763409b 100644
--- a/runtime/syntax/erlang.vim
+++ b/runtime/syntax/erlang.vim
@@ -28,11 +28,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,9 +39,7 @@ set cpo&vim
" Case sensitive
syn case match
-if version >= 600
- setlocal iskeyword+=$,@-@
-endif
+setlocal iskeyword+=$,@-@
" Comments
syn match erlangComment '%.*$' contains=erlangCommentAnnotation,erlangTodo
@@ -147,116 +142,106 @@ 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
+" Only when an item doesn't have highlighting yet
+
+" 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
+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
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/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/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..b8cb87c905 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
@@ -109,49 +106,39 @@ syn match formDirective "^\=\.[a-zA-z][a-zA-Z0-9]*\>"
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 06e5390c60..4c26e78f16 100644
--- a/runtime/syntax/fortran.vim
+++ b/runtime/syntax/fortran.vim
@@ -1,17 +1,17 @@
" Vim syntax file
" Language: Fortran 2008 (and older: Fortran 2003, 95, 90, and 77)
-" Version: 0.98
-" Last Change: 2016 Aug. 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, Jan Hermann,
-" Stefano Zaghi and Vishnu Krishnan.
+" Stefano Zaghi, Vishnu V. Krishnan and Judical Grasset
if exists("b:current_syntax")
finish
@@ -368,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\)\>.*"
@@ -396,6 +397,7 @@ if exists("fortran_fold")
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 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
@@ -405,6 +407,7 @@ if exists("fortran_fold")
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 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
@@ -414,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
@@ -517,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/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/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/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/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..11f4c35a58 100644
--- a/runtime/syntax/haskell.vim
+++ b/runtime/syntax/haskell.vim
@@ -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
@@ -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..98ab7f4b23 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: 2016 Sep 02
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
@@ -50,6 +50,7 @@ else
syn match helpIgnore "." contained
endif
syn keyword helpNote note Note NOTE note: Note: NOTE: Notes Notes:
+syn keyword helpWarning WARNING: Warning:
syn match helpSpecial "\<N\>"
syn match helpSpecial "\<N\.$"me=e-1
syn match helpSpecial "\<N\.\s"me=e-2
@@ -86,6 +87,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 +164,7 @@ 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 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/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/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..49d3ab4adb 100644
--- a/runtime/syntax/html.vim
+++ b/runtime/syntax/html.vim
@@ -1,18 +1,16 @@
" 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 Jan 21
+" included patch from Jorge Maldonado Ventura
" 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 +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=+ HtmlHiLink hi link <args>
-else
- command! -nargs=+ HtmlHiLink hi def link <args>
-endif
-
syntax spell toplevel
syn case ignore
@@ -63,6 +54,14 @@ syn keyword htmlTagName contained abbr acronym bdo button col label
syn keyword htmlTagName contained colgroup del 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 +96,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};"
@@ -171,7 +183,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 +195,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 +219,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 +233,66 @@ 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
- endif
+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
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/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/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/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/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/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/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/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/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/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..6789e11aef 100644
--- a/runtime/syntax/mason.vim
+++ b/runtime/syntax/mason.vim
@@ -13,12 +13,8 @@
" - 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,22 +26,14 @@ 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
" 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
@@ -78,19 +66,7 @@ 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
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/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/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 94b27313b2..e4395fdf59 100644
--- a/runtime/syntax/muttrc.vim
+++ b/runtime/syntax/muttrc.vim
@@ -6,11 +6,8 @@
" 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
@@ -18,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")
@@ -636,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/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/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/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/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/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..6ab6cd83a2 100644
--- a/runtime/syntax/perl.vim
+++ b/runtime/syntax/perl.vim
@@ -435,121 +435,119 @@ 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 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
-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 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 perlFunctionPRef perlType
+hi def link perlPOD 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
+hi def link perlNotEmptyLine Error
+hi def link perlElseIfError Error
+hi def link perlSubPrototypeError Error
+hi def link perlSubError Error
-delcommand HiLink
" Syncing to speed up processing
"
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 ae3f82d64a..278fc1358c 100644
--- a/runtime/syntax/php.vim
+++ b/runtime/syntax/php.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: php PHP 3/4/5/7
" Maintainer: Jason Woofenden <jason@jasonwoof.com>
-" Last Change: Jul 27, 2016
+" Last Change: Dec 11, 2016
" 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>
@@ -55,11 +55,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 +64,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 +83,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
@@ -381,15 +366,8 @@ if exists("php_parent_error_open")
else
syn region phpComment start="/\*" end="\*/" contained contains=phpTodo,@Spell extend
endif
-if version >= 600
- syn match phpComment "#.\{-}\(?>\|$\)\@=" contained contains=phpTodo,@Spell
- syn match phpComment "//.\{-}\(?>\|$\)\@=" contained contains=phpTodo,@Spell
-else
- syn match phpComment "#.\{-}$" contained contains=phpTodo,@Spell
- syn match phpComment "#.\{-}?>"me=e-2 contained contains=phpTodo,@Spell
- syn match phpComment "//.\{-}$" contained contains=phpTodo,@Spell
- syn match phpComment "//.\{-}?>"me=e-2 contained contains=phpTodo,@Spell
-endif
+syn match phpComment "#.\{-}\(?>\|$\)\@=" contained contains=phpTodo,@Spell
+syn match phpComment "//.\{-}\(?>\|$\)\@=" contained contains=phpTodo,@Spell
" String
if exists("php_parent_error_open")
@@ -403,24 +381,22 @@ else
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,@Spell 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,@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
+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 contains=@Spell 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,@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
-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")
@@ -519,7 +495,7 @@ syntax keyword phpSpecialFunction containedin=ALLBUT,phpComment,phpStringDouble,
" 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,14 +518,14 @@ 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')
@@ -577,7 +553,7 @@ endif
if php_alt_assignByReference
" special highlighting for '=&' operator
syntax match phpAssignByRef /=\s*&/ containedin=ALLBUT,phpComment,phpStringDouble,phpStringSingle
- highlight link phpAssignByRef Type
+ hi def link phpAssignByRef Type
endif
if php_alt_comparisons
@@ -589,7 +565,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
" ================================================================
@@ -621,82 +597,72 @@ syntax match phpDocTags "@\(abstract\|access\|author\|category\|copyright\|dep
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/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..7c65a8433f 100644
--- a/runtime/syntax/pod.vim
+++ b/runtime/syntax/pod.vim
@@ -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,18 @@ 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
+" 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
- 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
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/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 f0f03a8c8d..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 Aug 14
+" 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,30 +104,31 @@ syn keyword pythonInclude from import
syn keyword pythonAsync async await
" Decorators (new in Python 2.4)
-" Python 3.5 introduced the use of the same symbol for matrix
-" multiplication. We now have to exclude the symbol from being
-" highlighted when used in that context. Hence, the check that it's
-" preceded by empty space only (possibly in a docstring/doctest) and
-" followed by decorator name, optional parenthesized list of arguments,
-" and the next line with either def, class, or another decorator.
-syn match pythonDecorator
- \ "\%(\%(^\s*\)\%(\%(>>>\|\.\.\.\)\s\+\)\=\)\zs@\%(\s*\h\%(\w\|\.\)*\%(([^)]*)\)\=\s*\n\s*\%(\.\.\.\s\+\)\=\%(@\s*\h\|\%(def\|class\)\s\+\)\)\@="
- \ display nextgroup=pythonDecoratorName skipwhite
-
" A dot must be allowed because of @MyClass.myfunc decorators.
-" It must be preceded by a decorator symbol and on a separate line from
-" a function/class it decorates.
-syn match pythonDecoratorName
- \ "\%(@\s*\)\@<=\h\%(\w\|\.\)*\%(\%(([^)]*)\)\=\s*\n\)\@="
- \ contained display nextgroup=pythonFunction skipnl
+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
-" The zero-length non-grouping match of def or class before the function
-" name is extremely important in pythonFunction. Without it, everything
-" is interpreted as a function inside the contained environment of
-" doctests.
-syn match pythonFunction
- \ "\%(\%(^\s*\)\%(\%(>>>\|\.\.\.\)\s\+\)\=\%(def\|class\)\s\+\)\@<=\h\w*"
- \ contained
+syn match pythonFunction "\h\w*" display contained
syn match pythonComment "#.*$" contains=pythonTodo,@Spell
syn keyword pythonTodo FIXME NOTE NOTES TODO XXX contained
@@ -134,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
@@ -216,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.
@@ -278,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
@@ -290,52 +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 pythonDecoratorName Function
- 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/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/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/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/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/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/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..90d411dc8b 100644
--- a/runtime/syntax/sas.vim
+++ b/runtime/syntax/sas.vim
@@ -12,11 +12,8 @@
" 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")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -44,7 +41,7 @@ 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
+" This line defines macro variables in code. "hi def link" 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.
@@ -52,11 +49,7 @@ syn region sasComment start="^\s*\*" end=";" contains=sasTodo
" Thanks to ronald hllwarth for this fix to an intra-versioning
" problem with this little feature
-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
-endif
+syn region sasMacroVar start="&" skip="[_&]" end="\W"he=e-1
" I dont think specific PROCs need to be listed if use this line (Bob Heckel).
@@ -218,62 +211,52 @@ syn keyword sasUnderscore _ALL_ _AUTOMATIC_ _CHARACTER_ _INFILE_ _N_ _NAME_ _NUL
" 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
+" Only when an item doesn't have highlighting yet
+
+
+" 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
-
- 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
+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
+
+hi def link sasComment sComment
+hi def link sasConditional sKeyword
+hi def link sasStep sSection
+hi def link sasFunction sKeyword
+hi def link sasMacro mKeyword
+hi def link sasMacroVar NonText
+hi def link sasNumber sNumber
+hi def link sasStatement sKeyword
+hi def link sasString sString
+hi def link sasProc sProc
+" (Bob Heckel)
+hi def link sasTodo Todo
+hi def link sasErrMsg lError
+hi def link sasWarnMsg lWarning
+hi def link sasLogMsg lNote
+hi def link sasCards sCard
+" (Bob Heckel)
+hi def link sasUnderscore PreProc
" Syncronize from beginning to keep large blocks from losing
" syntax coloring while moving through code.
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/scala.vim b/runtime/syntax/scala.vim
index b04af3be5b..7779c43996 100644
--- a/runtime/syntax/scala.vim
+++ b/runtime/syntax/scala.vim
@@ -7,9 +7,8 @@
" ----------------------------------------------------------------------------
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 = 'scala'
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/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 2fe13fbde6..f97299cdeb 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: Aug 23, 2016
-" Version: 161
+" Last Change: Jan 30, 2017
+" Version: 168
" 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
@@ -148,7 +145,7 @@ 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,shHereString,shRedir,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shCtrlSeq,shStringSpecial,shAtExpr
-syn cluster shIfList contains=@shLoopList,shDblBrace,shDblParen,shFunctionKey,shFunctionOne,shFunctionTwo,shParen
+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,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq,shOperator
@@ -173,7 +170,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
@@ -223,7 +220,7 @@ syn region shSubSh transparent matchgroup=shSubShRegion start="[^(]\zs(" end=")"
"=======
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' 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\)\>\|[!<>]"
@@ -308,7 +305,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
@@ -349,7 +346,7 @@ 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\%(\\\\\)*\\[\\"'`$()#]"
syn match shSpecial "^\%(\\\\\)*\\[\\"'`$()#]"
syn match shSpecialNxt contained "\\[\\"'`$()#]"
syn region shBkslshSnglQuote contained matchgroup=shQuote start=+'+ end=+'+ contains=@Spell
@@ -358,7 +355,11 @@ syn region shBkslshDblQuote contained matchgroup=shQuote start=+"+ skip=+\\"+ e
" 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
@@ -375,8 +376,8 @@ ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc06 start="<<-\s*\"\z([^ \
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=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*$"
@@ -385,7 +386,7 @@ ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc15 start="<<-\s*\\\z([^ \
" 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"))
+if exists("b:is_bash") || (exists("b:is_kornshell") && !exists("b:is_posix"))
syn match shHereString "<<<" skipwhite nextgroup=shCmdParenRegion
endif
@@ -406,7 +407,7 @@ else
endif
" Functions: {{{1
-if !exists("g:is_posix")
+if !exists("b:is_posix")
syn keyword shFunctionKey function skipwhite skipnl nextgroup=shFunctionTwo
endif
@@ -532,7 +533,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
@@ -541,7 +542,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
@@ -576,132 +577,134 @@ 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 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("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 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 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/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..83d2a17245 100644
--- a/runtime/syntax/sisu.vim
+++ b/runtime/syntax/sisu.vim
@@ -6,11 +6,9 @@
" <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
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/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..c3abfff632 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: 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
@@ -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
@@ -239,43 +233,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/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/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/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/tex.vim b/runtime/syntax/tex.vim
index c0982d84da..ab19da329b 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: Jul 05, 2016
-" Version: 98
+" Last Change: Jan 31, 2017
+" Version: 103
" 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")
@@ -175,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
@@ -214,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
@@ -414,7 +405,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
@@ -503,13 +494,11 @@ if !exists("g:tex_no_math")
\ ['\\backslash' , '\'] ,
\ ['\\downarrow' , '↓'] ,
\ ['\\Downarrow' , '⇓'] ,
- \ ['\\langle' , '<'] ,
\ ['\\lbrace' , '['] ,
\ ['\\lceil' , '⌈'] ,
\ ['\\lfloor' , '⌊'] ,
\ ['\\lgroup' , '⌊'] ,
\ ['\\lmoustache' , '⎛'] ,
- \ ['\\rangle' , '>'] ,
\ ['\\rbrace' , ']'] ,
\ ['\\rceil' , '⌉'] ,
\ ['\\rfloor' , '⌋'] ,
@@ -519,6 +508,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]
@@ -596,29 +594,17 @@ endif
if s:tex_fast =~# 'v'
if exists("g:tex_verbspell") && g:tex_verbspell
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
@@ -699,6 +685,7 @@ if has("conceal") && &enc == 'utf-8'
\ ['backslash' , '∖'],
\ ['barwedge' , '⊼'],
\ ['because' , '∵'],
+ \ ['beth' , 'ܒ'],
\ ['between' , '≬'],
\ ['bigcap' , '∩'],
\ ['bigcirc' , '○'],
@@ -718,6 +705,7 @@ if has("conceal") && &enc == 'utf-8'
\ ['boxminus' , '⊟'],
\ ['boxplus' , '⊞'],
\ ['boxtimes' , '⊠'],
+ \ ['Box' , '☐'],
\ ['bullet' , '•'],
\ ['bumpeq' , '≏'],
\ ['Bumpeq' , '≎'],
@@ -767,6 +755,7 @@ if has("conceal") && &enc == 'utf-8'
\ ['eqslantgtr' , '⪖'],
\ ['eqslantless' , '⪕'],
\ ['equiv' , '≡'],
+ \ ['eth' , 'ð'],
\ ['exists' , '∃'],
\ ['fallingdotseq' , '≒'],
\ ['flat' , '♭'],
@@ -776,6 +765,7 @@ if has("conceal") && &enc == 'utf-8'
\ ['geq' , '≥'],
\ ['geqq' , '≧'],
\ ['gets' , '←'],
+ \ ['gimel' , 'ℷ'],
\ ['gg' , '⟫'],
\ ['gneqq' , '≩'],
\ ['gtrdot' , '⋗'],
@@ -786,13 +776,17 @@ if has("conceal") && &enc == 'utf-8'
\ ['heartsuit' , '♡'],
\ ['hookleftarrow' , '↩'],
\ ['hookrightarrow' , '↪'],
+ \ ['iff' , '⇔'],
\ ['iiint' , '∭'],
\ ['iint' , '∬'],
\ ['Im' , 'ℑ'],
\ ['imath' , 'ɩ'],
+ \ ['implies' , '⇒'],
\ ['in' , '∈'],
\ ['infty' , '∞'],
\ ['int' , '∫'],
+ \ ['jmath' , '𝚥'],
+ \ ['land' , '∧'],
\ ['lceil' , '⌈'],
\ ['ldots' , '…'],
\ ['le' , '≤'],
@@ -819,6 +813,7 @@ if has("conceal") && &enc == 'utf-8'
\ ['ll' , '≪'],
\ ['lmoustache' , '╭'],
\ ['lneqq' , '≨'],
+ \ ['lor' , '∨'],
\ ['ltimes' , '⋉'],
\ ['mapsto' , '↦'],
\ ['measuredangle' , '∡'],
@@ -845,6 +840,7 @@ if has("conceal") && &enc == 'utf-8'
\ ['nless' , '≮'],
\ ['nmid' , '∤'],
\ ['notin' , '∉'],
+ \ ['nparallel' , '∦'],
\ ['nprec' , '⊀'],
\ ['nrightarrow' , '↛'],
\ ['nRightarrow' , '⇏'],
@@ -946,10 +942,12 @@ if has("conceal") && &enc == 'utf-8'
\ ['trianglerighteq', '⊵'],
\ ['twoheadleftarrow', '↞'],
\ ['twoheadrightarrow', '↠'],
+ \ ['ulcorner' , '⌜'],
\ ['uparrow' , '↑'],
\ ['Uparrow' , '⇑'],
\ ['updownarrow' , '↕'],
\ ['Updownarrow' , '⇕'],
+ \ ['urcorner' , '⌝'],
\ ['varnothing' , '∅'],
\ ['vartriangle' , '∆'],
\ ['vdash' , '⊢'],
@@ -965,6 +963,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]
@@ -1279,86 +1286,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/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/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/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/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/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 91f70c6a1a..85ced1ed3e 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -133,14 +133,15 @@ endif
syn match vimNumber "\<\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand
syn match vimNumber "-\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand
syn match vimNumber "\<0[xX]\x\+"
+syn match vimNumber "\<0[bB][01]\+"
syn match vimNumber "\%(^\|[^a-zA-Z]\)\zs#\x\{6}"
" All vimCommands are contained by vimIsCommands. {{{2
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 +195,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'
@@ -470,7 +471,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"
@@ -772,171 +773,169 @@ 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 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 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
+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/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/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..d4ac9d1bc7 100644
--- a/runtime/syntax/xs.vim
+++ b/runtime/syntax/xs.vim
@@ -5,20 +5,13 @@
" Previous: Vincent Pit <perl@profvince.com>
" Last Change: 2013-05-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
" 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
@@ -3249,29 +3242,19 @@ syn keyword xsMacro what_len_TRICKYFOLD_safe whichsig write xio_any xio_dirp
syn keyword xsMacro xiv_iv 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
+" Only when an item doesn't have highlighting yet
- 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
+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
- delcommand HiLink
-endif
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/scripts/genappimage.sh b/scripts/genappimage.sh
new file mode 100755
index 0000000000..a73ccd86c7
--- /dev/null
+++ b/scripts/genappimage.sh
@@ -0,0 +1,83 @@
+#!/bin/bash
+
+########################################################################
+# Package the binaries built as an AppImage
+# By Simon Peter 2016
+# For more information, see http://appimage.org/
+########################################################################
+
+# App arch, used by generate_appimage.
+if [ -z "$ARCH" ]; then
+ export ARCH="$(arch)"
+fi
+
+# App name, used by generate_appimage.
+APP=nvim
+
+ROOT_DIR="$(git rev-parse --show-toplevel)"
+APP_BUILD_DIR="$ROOT_DIR/build"
+APP_DIR="$APP.AppDir"
+
+########################################################################
+# Compile nvim and install it into AppDir
+########################################################################
+
+# Build and install nvim into the AppImage
+make CMAKE_BUILD_TYPE=RelWithDebInfo CMAKE_EXTRA_FLAGS="-DCMAKE_INSTALL_PREFIX=${APP_DIR}/usr -DCMAKE_INSTALL_MANDIR=man"
+make install
+
+########################################################################
+# Get helper functions and move to AppDir
+########################################################################
+
+# App version, used by generate_appimage.
+VERSION=$("$ROOT_DIR"/build/bin/nvim --version | head -n 1 | grep -o 'v.*')
+
+cd "$APP_BUILD_DIR"
+
+curl -Lo "$APP_BUILD_DIR"/appimage_functions.sh https://github.com/probonopd/AppImages/raw/master/functions.sh
+. ./appimage_functions.sh
+
+# Copy desktop and icon file to AppDir for AppRun to pick them up.
+# get_apprun
+# get_desktop
+cp "$ROOT_DIR/runtime/nvim.desktop" "$APP_DIR/"
+cp "$ROOT_DIR/runtime/nvim.png" "$APP_DIR/"
+
+cd "$APP_DIR"
+
+# copy dependencies
+copy_deps
+# Move the libraries to usr/bin
+move_lib
+
+# Delete stuff that should not go into the AppImage.
+# Delete dangerous libraries; see
+# https://github.com/probonopd/AppImages/blob/master/excludelist
+delete_blacklisted
+
+########################################################################
+# AppDir complete. Now package it as an AppImage.
+########################################################################
+
+# No need for a fancy script. AppRun can just be a symlink to nvim.
+ln -s usr/bin/nvim AppRun
+
+cd "$APP_BUILD_DIR" # Get out of AppImage directory.
+
+# Generate AppImage.
+# - Expects: $ARCH, $APP, $VERSION env vars
+# - Expects: ./$APP.AppDir/ directory
+# - Produces: ../out/$APP-$VERSION.glibc$GLIBC_NEEDED-$ARCH.AppImage
+generate_appimage
+
+# NOTE: There is currently a bug in the `generate_appimage` function (see
+# https://github.com/probonopd/AppImages/issues/228) that causes repeated builds
+# that result in the same name to fail.
+# Moving the final executable to a different folder gets around this issue.
+
+mv "$ROOT_DIR"/out/*.AppImage "$ROOT_DIR"/build/bin
+# Remove the (now empty) folder the AppImage was built in
+rmdir "$ROOT_DIR"/out
+
+echo 'genappimage.sh: finished'
diff --git a/scripts/pvscheck.sh b/scripts/pvscheck.sh
index 32d63646aa..dfdc539bf9 100755
--- a/scripts/pvscheck.sh
+++ b/scripts/pvscheck.sh
@@ -1,27 +1,53 @@
#!/bin/sh
+
+# Assume that "local" is available.
+# shellcheck disable=SC2039
+
set -e
+# Note: -u causes problems with posh, it barks at “undefined” $@ when no
+# arguments provided.
+test -z "$POSH_VERSION" && set -u
get_jobs_num() {
- local num="$(cat /proc/cpuinfo | grep -c "^processor")"
- num="$(echo $(( num + 1 )))"
- num="${num:-1}"
- echo $num
+ if [ -n "${TRAVIS:-}" ] ; then
+ # HACK: /proc/cpuinfo on Travis CI is misleading, so hardcode 1.
+ echo 1
+ else
+ echo $(( $(grep -c "^processor" /proc/cpuinfo) + 1 ))
+ fi
}
help() {
echo 'Usage:'
- echo ' pvscheck.sh [target-directory [branch]]'
- echo ' pvscheck.sh [--recheck] [target-directory]'
+ echo ' pvscheck.sh [--pvs URL] [--deps] [target-directory [branch]]'
+ echo ' pvscheck.sh [--pvs URL] [--recheck|--only-analyse] [target-directory]'
+ echo ' pvscheck.sh [--pvs URL] --pvs-install {target-directory}'
echo ' pvscheck.sh --patch [--only-build]'
echo
+ echo ' --pvs: Use the specified URL as a path to pvs-studio archive.'
+ echo ' By default latest tested version is used.'
+ echo
+ echo ' May use "--pvs detect" to try detecting latest version.'
+ echo ' That assumes certain viva64.com site properties and'
+ echo ' may be broken by the site update.'
+ echo
+ echo ' --deps: (for regular run) Use top-level Makefile and build deps.'
+ echo ' Without this it assumes all dependencies are already'
+ echo ' installed.'
+ echo
+ echo ' --only-build: (for --patch) Only patch files in ./build directory.'
+ echo
+ echo ' --pvs-install: Only install PVS-studio to the specified location.'
+ echo
echo ' --patch: patch sources in the current directory.'
echo ' Does not patch already patched files.'
echo ' Does not run analysis.'
echo
- echo ' --only-build: Only patch files in ./build directory.'
- echo
echo ' --recheck: run analysis on a prepared target directory.'
echo
+ echo ' --only-analyse: run analysis on a prepared target directory '
+ echo ' without building Neovim.'
+ echo
echo ' target-directory: Directory where build should occur.'
echo ' Default: ../neovim-pvs'
echo
@@ -29,45 +55,257 @@ help() {
echo ' Default: master.'
}
+getopts_error() {
+ local msg="$1" ; shift
+ local do_help=
+ if test "$msg" = "--help" ; then
+ msg="$1" ; shift
+ do_help=1
+ fi
+ printf '%s\n' "$msg" >&2
+ if test -n "$do_help" ; then
+ printf '\n' >&2
+ help >&2
+ fi
+ echo 'return 1'
+ return 1
+}
+
+# Usage `eval "$(getopts_long long_defs -- positionals_defs -- "$@")"`
+#
+# long_defs: list of pairs of arguments like `longopt action`.
+# positionals_defs: list of arguments like `action`.
+#
+# `action` is a space-separated commands:
+#
+# store_const [const] [varname] [default]
+# Store constant [const] (default 1) (note: eval’ed) if argument is present
+# (long options only). Assumes long option accepts no arguments.
+# store [varname] [default]
+# Store value. Assumes long option needs an argument.
+# run {func} [varname] [default]
+# Run function {func} and store its output to the [varname]. Assumes no
+# arguments accepted (long options only).
+# modify {func} [varname] [default]
+# Like run, but assumes a single argument, passed to function {func} as $1.
+#
+# All actions stores empty value if neither [varname] nor [default] are
+# present. [default] is evaled by top-level `eval`, so be careful. Also note
+# that no arguments may contain spaces, including [default] and [const].
+getopts_long() {
+ local positional=
+ local opt_bases=""
+ while test $# -gt 0 ; do
+ local arg="$1" ; shift
+ local opt_base=
+ local act=
+ local opt_name=
+ if test -z "$positional" ; then
+ if test "$arg" = "--" ; then
+ positional=0
+ continue
+ fi
+ act="$1" ; shift
+ opt_name="$(echo "$arg" | tr '-' '_')"
+ opt_base="longopt_$opt_name"
+ else
+ if test "$arg" = "--" ; then
+ break
+ fi
+ : $(( positional+=1 ))
+ act="$arg"
+ opt_name="arg_$positional"
+ opt_base="positional_$positional"
+ fi
+ opt_bases="$opt_bases $opt_base"
+ eval "local varname_$opt_base=$opt_name"
+ local i=0
+ for act_subarg in $act ; do
+ eval "local act_$(( i+=1 ))_$opt_base=\"\$act_subarg\""
+ done
+ done
+ # Process options
+ local positional=0
+ local force_positional=
+ while test $# -gt 0 ; do
+ local argument="$1" ; shift
+ local opt_base=
+ local has_equal=
+ local equal_arg=
+ local is_positional=
+ if test "$argument" = "--" ; then
+ force_positional=1
+ continue
+ elif test -z "$force_positional" && test "${argument#--}" != "$argument"
+ then
+ local opt_name="${argument#--}"
+ local opt_name_striparg="${opt_name%%=*}"
+ if test "$opt_name" = "$opt_name_striparg" ; then
+ has_equal=0
+ else
+ has_equal=1
+ equal_arg="${argument#*=}"
+ opt_name="$opt_name_striparg"
+ fi
+ # Use trailing x to prevent stripping newlines
+ opt_name="$(printf '%sx' "$opt_name" | tr '-' '_')"
+ opt_name="${opt_name%x}"
+ if test -n "$(printf '%sx' "$opt_name" | tr -d 'a-z_')" ; then
+ getopts_error "Option contains invalid characters: $opt_name"
+ fi
+ opt_base="longopt_$opt_name"
+ else
+ : $(( positional+=1 ))
+ opt_base="positional_$positional"
+ is_positional=1
+ fi
+ if test -n "$opt_base" ; then
+ eval "local occurred_$opt_base=1"
+
+ eval "local act_1=\"\${act_1_$opt_base:-}\""
+ eval "local varname=\"\${varname_$opt_base:-}\""
+ local need_val=
+ local func=
+ case "$act_1" in
+ (store_const)
+ eval "local const=\"\${act_2_${opt_base}:-1}\""
+ eval "local varname=\"\${act_3_${opt_base}:-$varname}\""
+ printf 'local %s=%s\n' "$varname" "$const"
+ ;;
+ (store)
+ eval "varname=\"\${act_2_${opt_base}:-$varname}\""
+ need_val=1
+ ;;
+ (run)
+ eval "func=\"\${act_2_${opt_base}}\""
+ eval "varname=\"\${act_3_${opt_base}:-$varname}\""
+ printf 'local %s="$(%s)"\n' "$varname" "$func"
+ ;;
+ (modify)
+ eval "func=\"\${act_2_${opt_base}}\""
+ eval "varname=\"\${act_3_${opt_base}:-$varname}\""
+ need_val=1
+ ;;
+ ("")
+ getopts_error --help "Wrong argument: $argument"
+ ;;
+ esac
+ if test -n "$need_val" ; then
+ local val=
+ if test -z "$is_positional" ; then
+ if test $has_equal = 1 ; then
+ val="$equal_arg"
+ else
+ if test $# -eq 0 ; then
+ getopts_error "Missing argument for $opt_name"
+ fi
+ val="$1" ; shift
+ fi
+ else
+ val="$argument"
+ fi
+ local escaped_val="'$(printf "%s" "$val" | sed "s/'/'\\\\''/g")'"
+ case "$act_1" in
+ (store)
+ printf 'local %s=%s\n' "$varname" "$escaped_val"
+ ;;
+ (modify)
+ printf 'local %s="$(%s %s)"\n' "$varname" "$func" "$escaped_val"
+ ;;
+ esac
+ fi
+ fi
+ done
+ # Print default values when no values were provided
+ local opt_base=
+ for opt_base in $opt_bases ; do
+ eval "local occurred=\"\${occurred_$opt_base:-}\""
+ if test -n "$occurred" ; then
+ continue
+ fi
+ eval "local act_1=\"\$act_1_$opt_base\""
+ eval "local varname=\"\$varname_$opt_base\""
+ case "$act_1" in
+ (store)
+ eval "local varname=\"\${act_2_${opt_base}:-$varname}\""
+ eval "local default=\"\${act_3_${opt_base}:-}\""
+ printf 'local %s=%s\n' "$varname" "$default"
+ ;;
+ (store_const|run|modify)
+ eval "local varname=\"\${act_3_${opt_base}:-$varname}\""
+ eval "local default=\"\${act_4_${opt_base}:-}\""
+ printf 'local %s=%s\n' "$varname" "$default"
+ ;;
+ esac
+ done
+}
+
get_pvs_comment() {
- cat > pvs-comment << EOF
+ local tgt="$1" ; shift
+
+ cat > "$tgt/pvs-comment" << EOF
// This is an open source non-commercial project. Dear PVS-Studio, please check
// it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
EOF
}
-install_pvs() {
+install_pvs() {(
+ local tgt="$1" ; shift
+ local pvs_url="$1" ; shift
+
+ cd "$tgt"
+
mkdir pvs-studio
cd pvs-studio
- curl -o pvs-studio.tar.gz "$PVS_URL"
+ curl -L -o pvs-studio.tar.gz "$pvs_url"
tar xzf pvs-studio.tar.gz
rm pvs-studio.tar.gz
local pvsdir="$(find . -maxdepth 1 -mindepth 1)"
find "$pvsdir" -maxdepth 1 -mindepth 1 -exec mv '{}' . \;
rmdir "$pvsdir"
+)}
- export PATH="$PWD/bin${PATH+:}${PATH}"
+create_compile_commands() {(
+ local tgt="$1" ; shift
+ local deps="$1" ; shift
- cd ..
-}
+ export CC=clang
+ export CFLAGS=' -O0 '
-create_compile_commands() {
- mkdir build
- cd build
- env \
- CC=clang \
- CFLAGS=' -O0 ' \
- cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX="$PWD/root"
- make -j"$(get_jobs_num)"
- find src/nvim/auto -name '*.test-include.c' -delete
-
- cd ..
-}
+ if test -z "$deps" ; then
+ mkdir -p "$tgt/build"
+ (
+ cd "$tgt/build"
-patch_sources() {
- get_pvs_comment
+ cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX="$PWD/root"
+ make -j"$(get_jobs_num)"
+ )
+ else
+ (
+ cd "$tgt"
+
+ make -j"$(get_jobs_num)" CMAKE_EXTRA_FLAGS=" -DCMAKE_INSTALL_PREFIX=$PWD/root -DCMAKE_BUILD_TYPE=Debug "
+ )
+ fi
+ find "$tgt/build/src/nvim/auto" -name '*.test-include.c' -delete
+)}
+
+# Warning: realdir below only cares about directories unlike realpath.
+#
+# realpath is not available in Ubuntu trusty yet.
+realdir() {(
+ local dir="$1"
+ cd "$dir"
+ printf '%s\n' "$PWD"
+)}
+
+patch_sources() {(
+ local tgt="$1" ; shift
+ local only_bulid="${1}" ; shift
+
+ get_pvs_comment "$tgt"
local sh_script='
pvs_comment="$(cat pvs-comment ; echo -n EOS)"
@@ -78,7 +316,9 @@ patch_sources() {
fi
'
- if test "x$1" != "x--only-build" ; then
+ cd "$tgt"
+
+ if test "$only_build" != "--only-build" ; then
find \
src/nvim test/functional/fixtures test/unit/fixtures \
-name '*.c' \
@@ -91,9 +331,13 @@ patch_sources() {
-exec /bin/sh -c "$sh_script" - '{}' \;
rm pvs-comment
-}
+)}
+
+run_analysis() {(
+ local tgt="$1" ; shift
+
+ cd "$tgt"
-run_analysis() {
pvs-studio-analyzer \
analyze \
--threads "$(get_jobs_num)" \
@@ -105,67 +349,88 @@ run_analysis() {
plog-converter -t xml -o PVS-studio.xml PVS-studio.log
plog-converter -t errorfile -o PVS-studio.err PVS-studio.log
plog-converter -t tasklist -o PVS-studio.tsk PVS-studio.log
-}
+)}
do_check() {
- local tgt="${1}"
- local branch="${2}"
+ local tgt="$1" ; shift
+ local branch="$1" ; shift
+ local pvs_url="$1" ; shift
+ local deps="$1" ; shift
git clone --branch="$branch" . "$tgt"
- cd "$tgt"
-
- install_pvs
+ install_pvs "$tgt" "$pvs_url"
- create_compile_commands
-
- run_analysis
+ do_recheck "$tgt" "$deps"
}
do_recheck() {
- local tgt="${1}"
-
- cd "$tgt"
+ local tgt="$1" ; shift
+ local deps="$1" ; shift
- export PATH="$PWD/pvs-studio/bin${PATH+:}${PATH}"
+ create_compile_commands "$tgt" "$deps"
- run_analysis
+ do_analysis "$tgt"
}
-main() {
- local PVS_URL="http://files.viva64.com/pvs-studio-6.14.21446.1-x86_64.tgz"
+do_analysis() {
+ local tgt="$1" ; shift
- if test "x$1" = "x--help" ; then
- help
- return
+ if test -d "$tgt/pvs-studio" ; then
+ local saved_pwd="$PWD"
+ cd "$tgt/pvs-studio"
+ export PATH="$PWD/bin${PATH+:}${PATH}"
+ cd "$saved_pwd"
fi
- set -x
+ run_analysis "$tgt"
+}
- if test "x$1" = "x--patch" ; then
- shift
- if test "x$1" = "x--only-build" ; then
- shift
- patch_sources --only-build
- else
- patch_sources
- fi
- exit $?
+detect_url() {
+ local url="${1:-detect}"
+ if test "$url" = detect ; then
+ curl -L 'https://www.viva64.com/en/pvs-studio-download-linux/' \
+ | grep -o 'https\{0,1\}://[^"<>]\{1,\}/pvs-studio[^/"<>]*\.tgz'
+ else
+ printf '%s' "$url"
fi
+}
- local recheck=
- if test "x$1" = "x--recheck" ; then
- recheck=1
- shift
+main() {
+ local def_pvs_url="http://files.viva64.com/pvs-studio-6.15.21741.1-x86_64.tgz"
+ eval "$(
+ getopts_long \
+ help store_const \
+ pvs 'modify detect_url pvs_url "${def_pvs_url}"' \
+ patch store_const \
+ only-build 'store_const --only-build' \
+ recheck store_const \
+ only-analyse store_const \
+ pvs-install store_const \
+ deps store_const \
+ -- \
+ 'modify realdir tgt "$PWD/../neovim-pvs"' \
+ 'store branch master' \
+ -- "$@"
+ )"
+
+ if test -n "$help" ; then
+ help
+ return 0
fi
- local tgt="${1:-$PWD/../neovim-pvs}"
- local branch="${2:-master}"
+ set -x
- if test "x$recheck" = "x" ; then
- do_check "$tgt" "$branch"
+ if test -n "$patch" ; then
+ patch_sources "$tgt" "$only_build"
+ elif test -n "$pvs_install" ; then
+ install_pvs "$tgt" "$pvs_url"
+ elif test -n "$recheck" ; then
+ do_recheck "$tgt" "$deps"
+ elif test -n "$only_analyse" ; then
+ do_analysis "$tgt"
else
- do_recheck "$tgt"
+ do_check "$tgt" "$branch" "$pvs_url" "$deps"
fi
}
diff --git a/scripts/release.sh b/scripts/release.sh
index dac5e9b177..692b46e921 100755
--- a/scripts/release.sh
+++ b/scripts/release.sh
@@ -18,6 +18,8 @@ set -e
set -u
set -o pipefail
+USE_CURRENT_COMMIT=${1:-no}
+
__sed=$( [ "$(uname)" = Darwin ] && echo 'sed -E' || echo 'sed -r' )
cd "$(git rev-parse --show-toplevel)"
@@ -51,15 +53,18 @@ echo "Release version: ${__VERSION}"
$__sed -i.bk 's/(NVIM_VERSION_PRERELEASE) "-dev"/\1 ""/' CMakeLists.txt
if grep '(NVIM_API_PRERELEASE true)' CMakeLists.txt > /dev/null; then
$__sed -i.bk 's/(NVIM_API_PRERELEASE) true/\1 false/' CMakeLists.txt
- cp build/funcs_data.mpack test/functional/fixtures/api_level_$__API_LEVEL.mpack
+ build/bin/nvim --api-info > test/functional/fixtures/api_level_$__API_LEVEL.mpack
git add test/functional/fixtures/api_level_$__API_LEVEL.mpack
fi
-echo "Building changelog since ${__LAST_TAG}..."
-__CHANGELOG="$(./scripts/git-log-pretty-since.sh "$__LAST_TAG" 'vim-patch:\S')"
+if ! test "$USE_CURRENT_COMMIT" = 'use-current-commit' ; then
+ echo "Building changelog since ${__LAST_TAG}..."
+ __CHANGELOG="$(./scripts/git-log-pretty-since.sh "$__LAST_TAG" 'vim-patch:\S')"
+
+ git add CMakeLists.txt
+ git commit --edit -m "${__RELEASE_MSG} ${__CHANGELOG}"
+fi
-git add CMakeLists.txt
-git commit --edit -m "${__RELEASE_MSG} ${__CHANGELOG}"
git tag --sign -a v"${__VERSION}" -m "NVIM v${__VERSION}"
$__sed -i.bk 's/(NVIM_VERSION_PRERELEASE) ""/\1 "-dev"/' CMakeLists.txt
diff --git a/scripts/vim-patch.sh b/scripts/vim-patch.sh
index 3ade90a65b..63665b9253 100755
--- a/scripts/vim-patch.sh
+++ b/scripts/vim-patch.sh
@@ -136,7 +136,7 @@ preprocess_patch() {
2>/dev/null $nvim --cmd 'set dir=/tmp' +'g@^diff --git a/src/\S*\<\%('${na_src}'\)@norm! d/\v(^diff)|%$ ' +w +q "$file"
# Remove channel.txt, netbeans.txt, os_*.txt, todo.txt, version*.txt, tags
- local na_doc='channel\.txt\|netbeans\.txt\|os_\w\+\.txt\|todo\.txt\|version\d\.txt\|tags'
+ local na_doc='channel\.txt\|netbeans\.txt\|os_\w\+\.txt\|term\.txt\|todo\.txt\|version\d\.txt\|tags'
2>/dev/null $nvim --cmd 'set dir=/tmp' +'g@^diff --git a/runtime/doc/\<\%('${na_doc}'\)\>@norm! d/\v(^diff)|%$ ' +w +q "$file"
# Remove "Last change ..." changes in doc files.
@@ -280,7 +280,7 @@ submit_pr() {
echo "Pushing to 'origin/${checked_out_branch}'."
output="$(git push origin "${checked_out_branch}" 2>&1)" &&
echo "✔ ${output}" ||
- (echo "✘ ${output}"; git reset --soft HEAD^1; false)
+ (echo "✘ ${output}"; false)
echo
fi
diff --git a/src/clint.py b/src/clint.py
index 5174521fb8..69a061d2ab 100755
--- a/src/clint.py
+++ b/src/clint.py
@@ -182,6 +182,7 @@ _ERROR_CATEGORIES = [
'build/include_order',
'build/printf_format',
'build/storage_class',
+ 'build/useless_fattr',
'readability/alt_tokens',
'readability/bool',
'readability/braces',
@@ -1225,6 +1226,10 @@ def CheckForHeaderGuard(filename, lines, error):
lines: An array of strings, each representing a line of the file.
error: The function to call with any errors found.
"""
+ if filename.endswith('.c.h') or FileInfo(filename).RelativePath() in set((
+ 'func_attr.h',
+ )):
+ return
cppvar = GetHeaderGuardCPPVariable(filename)
@@ -2524,6 +2529,8 @@ def CheckSpacing(filename, clean_lines, linenum, nesting_state, error):
r'(?<!\bklist_t)'
r'(?<!\bkliter_t)'
r'(?<!\bkhash_t)'
+ r'(?<!\bkbtree_t)'
+ r'(?<!\bkbitr_t)'
r'\((?:const )?(?:struct )?[a-zA-Z_]\w*(?: *\*(?:const)?)*\)'
r' +'
r'-?(?:\*+|&)?(?:\w+|\+\+|--|\()', cast_line)
@@ -2595,16 +2602,23 @@ def CheckBraces(filename, clean_lines, linenum, error):
else:
func_start_linenum = end_linenum + 1
while not clean_lines.lines[func_start_linenum] == '{':
- if not Match(r'^(?:\s*\b(?:FUNC_ATTR|REAL_FATTR)_\w+\b(?:\(\d+(, \d+)*\))?)+$',
- clean_lines.lines[func_start_linenum]):
+ attrline = Match(r'^((?!# *define).*?)(?:FUNC_ATTR|FUNC_API|REAL_FATTR)_\w+(?:\(\d+(, \d+)*\))?',
+ clean_lines.lines[func_start_linenum])
+ if attrline:
+ if len(attrline.group(1)) != 2:
+ error(filename, func_start_linenum,
+ 'whitespace/indent', 5,
+ 'Function attribute line should have 2-space '
+ 'indent')
+
+ func_start_linenum += 1
+ else:
if clean_lines.lines[func_start_linenum].endswith('{'):
error(filename, func_start_linenum,
'readability/braces', 5,
'Brace starting function body must be placed '
'after the function signature')
break
- else:
- func_start_linenum += 1
# An else clause should be on the same line as the preceding closing brace.
# If there is no preceding closing brace, there should be one.
diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt
index db5e62fd67..c46c0bed6d 100644
--- a/src/nvim/CMakeLists.txt
+++ b/src/nvim/CMakeLists.txt
@@ -11,30 +11,38 @@ endif()
endif()
set(TOUCHES_DIR ${PROJECT_BINARY_DIR}/touches)
+set(GENERATOR_DIR ${CMAKE_CURRENT_LIST_DIR}/generators)
set(GENERATED_DIR ${PROJECT_BINARY_DIR}/src/nvim/auto)
-set(DISPATCH_GENERATOR ${PROJECT_SOURCE_DIR}/scripts/gendispatch.lua)
-file(GLOB API_HEADERS api/*.h)
-file(GLOB MSGPACK_RPC_HEADERS msgpack_rpc/*.h)
+set(API_DISPATCH_GENERATOR ${GENERATOR_DIR}/gen_api_dispatch.lua)
+set(API_UI_EVENTS_GENERATOR ${GENERATOR_DIR}/gen_api_ui_events.lua)
set(API_METADATA ${PROJECT_BINARY_DIR}/api_metadata.mpack)
set(FUNCS_DATA ${PROJECT_BINARY_DIR}/funcs_data.mpack)
-set(HEADER_GENERATOR ${PROJECT_SOURCE_DIR}/scripts/gendeclarations.lua)
+set(MSGPACK_LUA_C_BINDINGS ${GENERATED_DIR}/msgpack_lua_c_bindings.generated.c)
+set(HEADER_GENERATOR ${GENERATOR_DIR}/gen_declarations.lua)
set(GENERATED_INCLUDES_DIR ${PROJECT_BINARY_DIR}/include)
set(GENERATED_API_DISPATCH ${GENERATED_DIR}/api/private/dispatch_wrappers.generated.h)
set(GENERATED_FUNCS_METADATA ${GENERATED_DIR}/api/private/funcs_metadata.generated.h)
+set(GENERATED_UI_EVENTS ${GENERATED_DIR}/ui_events.generated.h)
+set(GENERATED_UI_EVENTS_CALL ${GENERATED_DIR}/ui_events_call.generated.h)
+set(GENERATED_UI_EVENTS_REMOTE ${GENERATED_DIR}/ui_events_remote.generated.h)
+set(GENERATED_UI_EVENTS_BRIDGE ${GENERATED_DIR}/ui_events_bridge.generated.h)
+set(GENERATED_UI_EVENTS_METADATA ${GENERATED_DIR}/api/private/ui_events_metadata.generated.h)
set(GENERATED_EX_CMDS_ENUM ${GENERATED_INCLUDES_DIR}/ex_cmds_enum.generated.h)
set(GENERATED_EX_CMDS_DEFS ${GENERATED_DIR}/ex_cmds_defs.generated.h)
set(GENERATED_FUNCS ${GENERATED_DIR}/funcs.generated.h)
set(GENERATED_EVENTS_ENUM ${GENERATED_INCLUDES_DIR}/auevents_enum.generated.h)
set(GENERATED_EVENTS_NAMES_MAP ${GENERATED_DIR}/auevents_name_map.generated.h)
set(GENERATED_OPTIONS ${GENERATED_DIR}/options.generated.h)
-set(EX_CMDS_GENERATOR ${PROJECT_SOURCE_DIR}/scripts/genex_cmds.lua)
-set(FUNCS_GENERATOR ${PROJECT_SOURCE_DIR}/scripts/geneval.lua)
-set(EVENTS_GENERATOR ${PROJECT_SOURCE_DIR}/scripts/gen_events.lua)
-set(OPTIONS_GENERATOR ${PROJECT_SOURCE_DIR}/scripts/genoptions.lua)
-set(UNICODE_TABLES_GENERATOR ${PROJECT_SOURCE_DIR}/scripts/genunicodetables.lua)
+set(EX_CMDS_GENERATOR ${GENERATOR_DIR}/gen_ex_cmds.lua)
+set(FUNCS_GENERATOR ${GENERATOR_DIR}/gen_eval.lua)
+set(EVENTS_GENERATOR ${GENERATOR_DIR}/gen_events.lua)
+set(OPTIONS_GENERATOR ${GENERATOR_DIR}/gen_options.lua)
+set(UNICODE_TABLES_GENERATOR ${GENERATOR_DIR}/gen_unicode_tables.lua)
set(UNICODE_DIR ${PROJECT_SOURCE_DIR}/unicode)
-file(GLOB UNICODE_FILES ${UNICODE_DIR}/*.txt)
set(GENERATED_UNICODE_TABLES ${GENERATED_DIR}/unicode_tables.generated.h)
+set(VIM_MODULE_FILE ${GENERATED_DIR}/lua/vim_module.generated.h)
+set(VIM_MODULE_SOURCE ${PROJECT_SOURCE_DIR}/src/nvim/lua/vim.lua)
+set(CHAR_BLOB_GENERATOR ${GENERATOR_DIR}/gen_char_blob.lua)
set(LINT_SUPPRESS_FILE ${PROJECT_BINARY_DIR}/errors.json)
set(LINT_SUPPRESS_URL_BASE "https://raw.githubusercontent.com/neovim/doc/gh-pages/reports/clint")
set(LINT_SUPPRESS_URL "${LINT_SUPPRESS_URL_BASE}/errors.json")
@@ -46,6 +54,11 @@ set(LINT_SUPPRESSES_ARCHIVE ${LINT_SUPPRESSES_ROOT}/errors.tar.gz)
set(LINT_SUPPRESSES_TOUCH_FILE "${TOUCHES_DIR}/unpacked-clint-errors-archive")
set(LINT_SUPPRESSES_INSTALL_SCRIPT "${PROJECT_SOURCE_DIR}/cmake/InstallClintErrors.cmake")
+file(GLOB UNICODE_FILES ${UNICODE_DIR}/*.txt)
+file(GLOB API_HEADERS api/*.h)
+list(REMOVE_ITEM API_HEADERS ${CMAKE_CURRENT_LIST_DIR}/api/ui_events.in.h)
+file(GLOB MSGPACK_RPC_HEADERS msgpack_rpc/*.h)
+
include_directories(${GENERATED_DIR})
include_directories(${CACHED_GENERATED_DIR})
include_directories(${GENERATED_INCLUDES_DIR})
@@ -67,6 +80,7 @@ foreach(subdir
tui
event
eval
+ lua
)
if(${subdir} MATCHES "tui" AND NOT FEAT_TUI)
continue()
@@ -157,7 +171,7 @@ if(CLANG_ASAN_UBSAN OR CLANG_MSAN OR CLANG_TSAN)
endif()
get_directory_property(gen_includes INCLUDE_DIRECTORIES)
-foreach(gen_include ${gen_includes})
+foreach(gen_include ${gen_includes} ${LUA_PREFERRED_INCLUDE_DIRS})
list(APPEND gen_cflags "-I${gen_include}")
endforeach()
string(TOUPPER "${CMAKE_BUILD_TYPE}" build_type)
@@ -179,7 +193,11 @@ endfunction()
# These lists must be mutually exclusive.
foreach(sfile ${NVIM_SOURCES}
"${CMAKE_CURRENT_LIST_DIR}/regexp_nfa.c"
- ${GENERATED_API_DISPATCH})
+ ${GENERATED_API_DISPATCH}
+ "${GENERATED_UI_EVENTS_CALL}"
+ "${GENERATED_UI_EVENTS_REMOTE}"
+ "${GENERATED_UI_EVENTS_BRIDGE}"
+ )
get_filename_component(full_d ${sfile} PATH)
file(RELATIVE_PATH d "${CMAKE_CURRENT_LIST_DIR}" "${full_d}")
if(${d} MATCHES "^[.][.]|auto/")
@@ -219,18 +237,52 @@ add_custom_command(OUTPUT ${GENERATED_UNICODE_TABLES}
${UNICODE_FILES}
)
-add_custom_command(OUTPUT ${GENERATED_API_DISPATCH} ${GENERATED_FUNCS_METADATA}
- ${API_METADATA}
- COMMAND ${LUA_PRG} ${DISPATCH_GENERATOR} ${CMAKE_CURRENT_LIST_DIR}
- ${API_HEADERS} ${GENERATED_API_DISPATCH}
+add_custom_command(
+ OUTPUT ${GENERATED_API_DISPATCH} ${GENERATED_FUNCS_METADATA}
+ ${API_METADATA} ${MSGPACK_LUA_C_BINDINGS}
+ COMMAND ${LUA_PRG} ${API_DISPATCH_GENERATOR} ${CMAKE_CURRENT_LIST_DIR}
+ ${GENERATED_API_DISPATCH}
${GENERATED_FUNCS_METADATA} ${API_METADATA}
+ ${MSGPACK_LUA_C_BINDINGS}
+ ${API_HEADERS}
DEPENDS
${API_HEADERS}
${MSGPACK_RPC_HEADERS}
- ${DISPATCH_GENERATOR}
+ ${API_DISPATCH_GENERATOR}
${CMAKE_CURRENT_LIST_DIR}/api/dispatch_deprecated.lua
)
+add_custom_command(
+ OUTPUT ${VIM_MODULE_FILE}
+ COMMAND ${LUA_PRG} ${CHAR_BLOB_GENERATOR} ${VIM_MODULE_SOURCE}
+ ${VIM_MODULE_FILE} vim_module
+ DEPENDS
+ ${CHAR_BLOB_GENERATOR}
+ ${VIM_MODULE_SOURCE}
+)
+
+list(APPEND NVIM_GENERATED_SOURCES
+ "${MSGPACK_LUA_C_BINDINGS}"
+)
+
+add_custom_command(
+ OUTPUT ${GENERATED_UI_EVENTS}
+ ${GENERATED_UI_EVENTS_CALL}
+ ${GENERATED_UI_EVENTS_REMOTE}
+ ${GENERATED_UI_EVENTS_BRIDGE}
+ ${GENERATED_UI_EVENTS_METADATA}
+ COMMAND ${LUA_PRG} ${API_UI_EVENTS_GENERATOR} ${CMAKE_CURRENT_LIST_DIR}
+ ${CMAKE_CURRENT_LIST_DIR}/api/ui_events.in.h
+ ${GENERATED_UI_EVENTS}
+ ${GENERATED_UI_EVENTS_CALL}
+ ${GENERATED_UI_EVENTS_REMOTE}
+ ${GENERATED_UI_EVENTS_BRIDGE}
+ ${GENERATED_UI_EVENTS_METADATA}
+ DEPENDS
+ ${API_UI_EVENTS_GENERATOR}
+ ${CMAKE_CURRENT_LIST_DIR}/api/ui_events.in.h
+)
+
list(APPEND NVIM_GENERATED_FOR_HEADERS
"${GENERATED_EX_CMDS_ENUM}"
"${GENERATED_EVENTS_ENUM}"
@@ -242,6 +294,7 @@ list(APPEND NVIM_GENERATED_FOR_SOURCES
"${GENERATED_EVENTS_NAMES_MAP}"
"${GENERATED_OPTIONS}"
"${GENERATED_UNICODE_TABLES}"
+ "${VIM_MODULE_FILE}"
)
list(APPEND NVIM_GENERATED_SOURCES
@@ -314,7 +367,13 @@ if(UNIX)
)
endif()
-set(NVIM_EXEC_LINK_LIBRARIES ${NVIM_LINK_LIBRARIES})
+set(NVIM_EXEC_LINK_LIBRARIES ${NVIM_LINK_LIBRARIES} ${LUA_PREFERRED_LIBRARIES})
+
+if(CMAKE_VERSION VERSION_LESS "2.8.8")
+ # Use include_directories() because INCLUDE_DIRECTORIES target property
+ # is not supported
+ include_directories(${LUA_PREFERRED_INCLUDE_DIRS})
+endif()
# Don't use jemalloc in the unit test library.
if(JEMALLOC_FOUND)
@@ -326,6 +385,9 @@ add_executable(nvim ${NVIM_GENERATED_FOR_SOURCES} ${NVIM_GENERATED_FOR_HEADERS}
target_link_libraries(nvim ${NVIM_EXEC_LINK_LIBRARIES})
install_helper(TARGETS nvim)
+set_property(TARGET nvim APPEND PROPERTY
+ INCLUDE_DIRECTORIES ${LUA_PREFERRED_INCLUDE_DIRS})
+
if(WIN32)
# Copy DLLs and third-party tools to bin/ and install them along with nvim
add_custom_target(nvim_runtime_deps ALL
@@ -372,6 +434,53 @@ if(WIN32)
add_dependencies(nvim_runtime_deps external_blobs)
endif()
+add_library(
+ libnvim
+ STATIC
+ EXCLUDE_FROM_ALL
+ ${NVIM_SOURCES} ${NVIM_GENERATED_SOURCES}
+ ${NVIM_HEADERS} ${NVIM_GENERATED_FOR_SOURCES} ${NVIM_GENERATED_FOR_HEADERS}
+)
+set_property(TARGET libnvim APPEND PROPERTY
+ INCLUDE_DIRECTORIES ${LUA_PREFERRED_INCLUDE_DIRS})
+set_target_properties(
+ libnvim
+ PROPERTIES
+ POSITION_INDEPENDENT_CODE ON
+ OUTPUT_NAME nvim
+)
+set_property(
+ TARGET libnvim
+ APPEND_STRING PROPERTY COMPILE_FLAGS " -DMAKE_LIB "
+)
+
+if(LUAJIT_FOUND)
+ set(NVIM_TEST_LINK_LIBRARIES ${NVIM_LINK_LIBRARIES} ${LUAJIT_LIBRARIES})
+ add_library(
+ nvim-test
+ MODULE
+ EXCLUDE_FROM_ALL
+ ${NVIM_SOURCES} ${NVIM_GENERATED_SOURCES}
+ ${NVIM_HEADERS} ${NVIM_GENERATED_FOR_SOURCES} ${NVIM_GENERATED_FOR_HEADERS}
+ ${UNIT_TEST_FIXTURES}
+ )
+ target_link_libraries(nvim-test ${NVIM_TEST_LINK_LIBRARIES})
+ target_link_libraries(libnvim ${NVIM_TEST_LINK_LIBRARIES})
+ set_property(
+ TARGET nvim-test
+ APPEND PROPERTY INCLUDE_DIRECTORIES ${LUAJIT_INCLUDE_DIRS}
+ )
+ set_target_properties(
+ nvim-test
+ PROPERTIES
+ POSITION_INDEPENDENT_CODE ON
+ )
+ set_property(
+ TARGET nvim-test
+ APPEND_STRING PROPERTY COMPILE_FLAGS " -DUNIT_TESTING "
+ )
+endif()
+
if(CLANG_ASAN_UBSAN)
message(STATUS "Enabling Clang address sanitizer and undefined behavior sanitizer for nvim.")
check_c_compiler_flag(-fno-sanitize-recover=all SANITIZE_RECOVER_ALL)
@@ -396,19 +505,6 @@ elseif(CLANG_TSAN)
set_property(TARGET nvim APPEND_STRING PROPERTY LINK_FLAGS "-fsanitize=thread ")
endif()
-add_library(libnvim STATIC EXCLUDE_FROM_ALL ${NVIM_GENERATED_FOR_SOURCES} ${NVIM_GENERATED_FOR_HEADERS}
- ${NVIM_GENERATED_SOURCES} ${NVIM_SOURCES} ${NVIM_HEADERS})
-target_link_libraries(libnvim ${NVIM_LINK_LIBRARIES})
-set_target_properties(libnvim PROPERTIES
- POSITION_INDEPENDENT_CODE ON
- OUTPUT_NAME nvim)
-set_property(TARGET libnvim APPEND_STRING PROPERTY COMPILE_FLAGS " -DMAKE_LIB ")
-
-add_library(nvim-test MODULE EXCLUDE_FROM_ALL ${NVIM_GENERATED_FOR_SOURCES} ${NVIM_GENERATED_FOR_HEADERS}
- ${NVIM_GENERATED_SOURCES} ${NVIM_SOURCES} ${UNIT_TEST_FIXTURES} ${NVIM_HEADERS})
-target_link_libraries(nvim-test ${NVIM_LINK_LIBRARIES})
-set_property(TARGET nvim-test APPEND_STRING PROPERTY COMPILE_FLAGS -DUNIT_TESTING)
-
function(get_test_target prefix sfile relative_path_var target_var)
get_filename_component(full_d "${sfile}" PATH)
file(RELATIVE_PATH d "${PROJECT_SOURCE_DIR}/src/nvim" "${full_d}")
@@ -429,38 +525,27 @@ function(get_test_target prefix sfile relative_path_var target_var)
endfunction()
set(NO_SINGLE_CHECK_HEADERS
- if_cscope_defs.h
- misc2.h
- msgpack_rpc/server.h
- option.h
- os/shell.h
- os_unix.h
os/win_defs.h
- popupmnu.h
- quickfix.h
- regexp.h
regexp_defs.h
- sha256.h
- sign_defs.h
- spell.h
- spellfile.h
syntax_defs.h
- tag.h
terminal.h
- tui/tui.h
undo.h
undo_defs.h
)
foreach(hfile ${NVIM_HEADERS})
get_test_target(test-includes "${hfile}" relative_path texe)
- if(NOT ${hfile} MATCHES "[.]c[.]h$")
+ if(NOT ${hfile} MATCHES "[.](c|in)[.]h$")
set(tsource "${GENERATED_DIR}/${relative_path}.test-include.c")
write_file("${tsource}" "#include \"${hfile}\"\nint main(int argc, char **argv) { return 0; }")
add_executable(
${texe}
EXCLUDE_FROM_ALL
${tsource} ${NVIM_HEADERS} ${NVIM_GENERATED_FOR_HEADERS})
+ set_property(
+ TARGET ${texe}
+ APPEND PROPERTY INCLUDE_DIRECTORIES ${LUA_PREFERRED_INCLUDE_DIRS}
+ )
list(FIND NO_SINGLE_CHECK_HEADERS "${relative_path}" hfile_exclude_idx)
if(${hfile_exclude_idx} EQUAL -1)
diff --git a/src/nvim/README.md b/src/nvim/README.md
index f16c6de12f..3032913500 100644
--- a/src/nvim/README.md
+++ b/src/nvim/README.md
@@ -1,22 +1,27 @@
## Source code overview
-Since Neovim has inherited most code from Vim, some information in [its
-README](https://raw.githubusercontent.com/vim/vim/master/src/README.txt) still
-applies.
+This document is an overview of how Nvim works internally, focusing on parts
+that are different from Vim. Since Nvim inherited from Vim, some information in
+[its README](https://raw.githubusercontent.com/vim/vim/master/src/README.txt)
+still applies.
-This document aims to give a high level overview of how Neovim works internally,
-focusing on parts that are different from Vim. Currently this is still a work in
-progress, especially because I have avoided adding too many details about parts
-that are constantly changing. As the code becomes more organized and stable,
-this document will be updated to reflect the changes.
+For module-specific details, read the source code. Some files are extensively
+commented at the top (e.g. terminal.c, screen.c).
-If you are looking for module-specific details, it is best to read the source
-code. Some files are extensively commented at the top (e.g. terminal.c,
-screen.c).
+### Source file name conventions
+
+The source files use extensions to hint about their purpose.
+
+- `*.c`, `*.generated.c` - full C files, with all includes, etc.
+- `*.c.h` - parametrized C files, contain all necessary includes, but require
+ defining macros before actually using. Example: `typval_encode.c.h`
+- `*.h` - full headers, with all includes. Does *not* apply to `*.generated.h`.
+- `*.h.generated.h` - exported functions’ declarations.
+- `*.c.generated.h` - static functions’ declarations.
### Top-level program loops
-First let's understand what a Vim-like program does by analyzing the workflow of
+Let's understand what a Vim-like program does by analyzing the workflow of
a typical editing session:
01. Vim dispays the welcome screen
@@ -41,16 +46,14 @@ a typical editing session:
21. User types: `word<ESC>`
22. Vim inserts "word" at the beginning and returns to normal mode
-Note that we have split user actions into sequences of inputs that change the
-state of the editor. While there's no documentation about a "g command
-mode" (step 16), internally it is implemented similarly to "operator-pending
-mode".
+Note that we split user actions into sequences of inputs that change the state
+of the editor. While there's no documentation about a "g command mode" (step
+16), internally it is implemented similarly to "operator-pending mode".
-From this we can see that Vim has the behavior of a input-driven state
-machine (more specifically, a pushdown automaton since it requires a stack for
+From this we can see that Vim has the behavior of an input-driven state machine
+(more specifically, a pushdown automaton since it requires a stack for
transitioning back from states). Assuming each state has a callback responsible
-for handling keys, this pseudocode (a python-like language) shows a good
-representation of the main program loop:
+for handling keys, this pseudocode represents the main program loop:
```py
def state_enter(state_callback, data):
@@ -126,12 +129,11 @@ def insert_state(data, key):
return true
```
-While the actual code is much more complicated, the above gives an idea of how
-Neovim is organized internally. Some states like the `g_command_state` or
-`get_operator_count_state` do not have a dedicated `state_enter` callback, but
-are implicitly embedded into other states (this will change later as we continue
-the refactoring effort). To start reading the actual code, here's the
-recommended order:
+The above gives an idea of how Nvim is organized internally. Some states like
+the `g_command_state` or `get_operator_count_state` do not have a dedicated
+`state_enter` callback, but are implicitly embedded into other states (this
+will change later as we continue the refactoring effort). To start reading the
+actual code, here's the recommended order:
1. `state_enter()` function (state.c). This is the actual program loop,
note that a `VimState` structure is used, which contains function pointers
@@ -154,14 +156,14 @@ modes managed by the `state_enter` loop:
### Async event support
-One of the features Neovim added is the support for handling arbitrary
+One of the features Nvim added is the support for handling arbitrary
asynchronous events, which can include:
-- msgpack-rpc requests
+- RPC requests
- job control callbacks
-- timers (not implemented yet but the support code is already there)
+- timers
-Neovim implements this functionality by entering another event loop while
+Nvim implements this functionality by entering another event loop while
waiting for characters, so instead of:
```py
@@ -171,7 +173,7 @@ def state_enter(state_callback, data):
while state_callback(data, key) # invoke the callback for the current state
```
-Neovim program loop is more like:
+Nvim program loop is more like:
```py
def state_enter(state_callback, data):
@@ -182,9 +184,9 @@ def state_enter(state_callback, data):
where `event` is something the operating system delivers to us, including (but
not limited to) user input. The `read_next_event()` part is internally
-implemented by libuv, the platform layer used by Neovim.
+implemented by libuv, the platform layer used by Nvim.
-Since Neovim inherited its code from Vim, the states are not prepared to receive
+Since Nvim inherited its code from Vim, the states are not prepared to receive
"arbitrary events", so we use a special key to represent those (When a state
receives an "arbitrary event", it normally doesn't do anything other update the
screen).
diff --git a/src/nvim/api/buffer.c b/src/nvim/api/buffer.c
index ae5728ee21..82de8fd4a2 100644
--- a/src/nvim/api/buffer.c
+++ b/src/nvim/api/buffer.c
@@ -35,7 +35,7 @@
/// @param[out] err Error details, if any
/// @return Line count
Integer nvim_buf_line_count(Buffer buffer, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
buf_T *buf = find_buffer_by_handle(buffer, err);
@@ -157,7 +157,7 @@ ArrayOf(String) nvim_buf_get_lines(uint64_t channel_id,
Integer end,
Boolean strict_indexing,
Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
Array rv = ARRAY_DICT_INIT;
buf_T *buf = find_buffer_by_handle(buffer, err);
@@ -195,7 +195,7 @@ ArrayOf(String) nvim_buf_get_lines(uint64_t channel_id,
Object str = STRING_OBJ(cstr_to_string(bufstr));
// Vim represents NULs as NLs, but this may confuse clients.
- if (channel_id != INTERNAL_CALL) {
+ if (channel_id != VIML_INTERNAL_CALL) {
strchrsub(str.data.string.data, '\n', '\0');
}
@@ -270,7 +270,7 @@ void nvim_buf_set_lines(uint64_t channel_id,
Boolean strict_indexing,
ArrayOf(String) replacement, // NOLINT
Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
buf_T *buf = find_buffer_by_handle(buffer, err);
@@ -295,6 +295,24 @@ void nvim_buf_set_lines(uint64_t channel_id,
return;
}
+ for (size_t i = 0; i < replacement.size; i++) {
+ if (replacement.items[i].type != kObjectTypeString) {
+ api_set_error(err,
+ kErrorTypeValidation,
+ "All items in the replacement array must be strings");
+ return;
+ }
+ // Disallow newlines in the middle of the line.
+ if (channel_id != VIML_INTERNAL_CALL) {
+ const String l = replacement.items[i].data.string;
+ if (memchr(l.data, NL, l.size)) {
+ api_set_error(err, kErrorTypeValidation,
+ "String cannot contain newlines");
+ return;
+ }
+ }
+ }
+
win_T *save_curwin = NULL;
tabpage_T *save_curtab = NULL;
size_t new_len = replacement.size;
@@ -303,31 +321,16 @@ void nvim_buf_set_lines(uint64_t channel_id,
char **lines = (new_len != 0) ? xcalloc(new_len, sizeof(char *)) : NULL;
for (size_t i = 0; i < new_len; i++) {
- if (replacement.items[i].type != kObjectTypeString) {
- api_set_error(err,
- kErrorTypeValidation,
- "All items in the replacement array must be strings");
- goto end;
- }
-
- String l = replacement.items[i].data.string;
+ const String l = replacement.items[i].data.string;
- // Fill lines[i] with l's contents. Disallow newlines in the middle of a
- // line and convert NULs to newlines to avoid truncation.
- lines[i] = xmallocz(l.size);
- for (size_t j = 0; j < l.size; j++) {
- if (l.data[j] == '\n' && channel_id != INTERNAL_CALL) {
- api_set_error(err, kErrorTypeException,
- "String cannot contain newlines");
- new_len = i + 1;
- goto end;
- }
- lines[i][j] = (char) (l.data[j] == '\0' ? '\n' : l.data[j]);
- }
+ // Fill lines[i] with l's contents. Convert NULs to newlines as required by
+ // NL-used-for-NUL.
+ lines[i] = xmemdupz(l.data, l.size);
+ memchrsub(lines[i], NUL, NL, l.size);
}
try_start();
- bufref_T save_curbuf = { NULL, 0 };
+ bufref_T save_curbuf = { NULL, 0, 0 };
switch_to_win_for_buf(buf, &save_curwin, &save_curtab, &save_curbuf);
if (u_save((linenr_T)(start - 1), (linenr_T)end) == FAIL) {
@@ -396,7 +399,7 @@ void nvim_buf_set_lines(uint64_t channel_id,
// Only adjust marks if we managed to switch to a window that holds
// the buffer, otherwise line numbers will be invalid.
if (save_curbuf.br_buf == NULL) {
- mark_adjust((linenr_T)start, (linenr_T)(end - 1), MAXLNUM, extra);
+ mark_adjust((linenr_T)start, (linenr_T)(end - 1), MAXLNUM, extra, false);
}
changed_lines((linenr_T)start, 0, (linenr_T)end, (long)extra);
@@ -422,7 +425,7 @@ end:
/// @param[out] err Error details, if any
/// @return Variable value
Object nvim_buf_get_var(Buffer buffer, String name, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
buf_T *buf = find_buffer_by_handle(buffer, err);
@@ -439,7 +442,7 @@ Object nvim_buf_get_var(Buffer buffer, String name, Error *err)
///
/// @return `b:changedtick` value.
Integer nvim_buf_get_changedtick(Buffer buffer, Error *err)
- FUNC_API_SINCE(2)
+ FUNC_API_SINCE(2)
{
const buf_T *const buf = find_buffer_by_handle(buffer, err);
@@ -450,6 +453,26 @@ Integer nvim_buf_get_changedtick(Buffer buffer, Error *err)
return buf->b_changedtick;
}
+/// Get a list of dictionaries describing buffer-local mappings
+/// Note that the buffer key in the dictionary will represent the buffer
+/// handle where the mapping is present
+///
+/// @param mode The abbreviation for the mode
+/// @param buffer_id Buffer handle
+/// @param[out] err Error details, if any
+/// @returns An array of maparg() like dictionaries describing mappings
+ArrayOf(Dictionary) nvim_buf_get_keymap(Buffer buffer, String mode, Error *err)
+ FUNC_API_SINCE(3)
+{
+ buf_T *buf = find_buffer_by_handle(buffer, err);
+
+ if (!buf) {
+ return (Array)ARRAY_DICT_INIT;
+ }
+
+ return keymap_array(mode, buf);
+}
+
/// Sets a buffer-scoped (b:) variable
///
/// @param buffer Buffer handle
@@ -457,7 +480,7 @@ Integer nvim_buf_get_changedtick(Buffer buffer, Error *err)
/// @param value Variable value
/// @param[out] err Error details, if any
void nvim_buf_set_var(Buffer buffer, String name, Object value, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
buf_T *buf = find_buffer_by_handle(buffer, err);
@@ -474,7 +497,7 @@ void nvim_buf_set_var(Buffer buffer, String name, Object value, Error *err)
/// @param name Variable name
/// @param[out] err Error details, if any
void nvim_buf_del_var(Buffer buffer, String name, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
buf_T *buf = find_buffer_by_handle(buffer, err);
@@ -535,7 +558,7 @@ Object buffer_del_var(Buffer buffer, String name, Error *err)
/// @param[out] err Error details, if any
/// @return Option value
Object nvim_buf_get_option(Buffer buffer, String name, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
buf_T *buf = find_buffer_by_handle(buffer, err);
@@ -554,7 +577,7 @@ Object nvim_buf_get_option(Buffer buffer, String name, Error *err)
/// @param value Option value
/// @param[out] err Error details, if any
void nvim_buf_set_option(Buffer buffer, String name, Object value, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
buf_T *buf = find_buffer_by_handle(buffer, err);
@@ -567,11 +590,15 @@ void nvim_buf_set_option(Buffer buffer, String name, Object value, Error *err)
/// Gets the buffer number
///
+/// @deprecated The buffer number now is equal to the object id,
+/// so there is no need to use this function.
+///
/// @param buffer Buffer handle
/// @param[out] err Error details, if any
/// @return Buffer number
Integer nvim_buf_get_number(Buffer buffer, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
+ FUNC_API_DEPRECATED_SINCE(2)
{
Integer rv = 0;
buf_T *buf = find_buffer_by_handle(buffer, err);
@@ -589,7 +616,7 @@ Integer nvim_buf_get_number(Buffer buffer, Error *err)
/// @param[out] err Error details, if any
/// @return Buffer name
String nvim_buf_get_name(Buffer buffer, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
String rv = STRING_INIT;
buf_T *buf = find_buffer_by_handle(buffer, err);
@@ -607,7 +634,7 @@ String nvim_buf_get_name(Buffer buffer, Error *err)
/// @param name Buffer name
/// @param[out] err Error details, if any
void nvim_buf_set_name(Buffer buffer, String name, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
buf_T *buf = find_buffer_by_handle(buffer, err);
@@ -637,7 +664,7 @@ void nvim_buf_set_name(Buffer buffer, String name, Error *err)
/// @param buffer Buffer handle
/// @return true if the buffer is valid, false otherwise
Boolean nvim_buf_is_valid(Buffer buffer)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
Error stub = ERROR_INIT;
Boolean ret = find_buffer_by_handle(buffer, &stub) != NULL;
@@ -671,7 +698,7 @@ void buffer_insert(Buffer buffer,
/// @param[out] err Error details, if any
/// @return (row, col) tuple
ArrayOf(Integer, 2) nvim_buf_get_mark(Buffer buffer, String name, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
Array rv = ARRAY_DICT_INIT;
buf_T *buf = find_buffer_by_handle(buffer, err);
@@ -747,7 +774,7 @@ Integer nvim_buf_add_highlight(Buffer buffer,
Integer col_start,
Integer col_end,
Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
buf_T *buf = find_buffer_by_handle(buffer, err);
if (!buf) {
@@ -788,7 +815,7 @@ void nvim_buf_clear_highlight(Buffer buffer,
Integer line_start,
Integer line_end,
Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
buf_T *buf = find_buffer_by_handle(buffer, err);
if (!buf) {
diff --git a/src/nvim/api/private/defs.h b/src/nvim/api/private/defs.h
index 60bf38265f..2144c80d6a 100644
--- a/src/nvim/api/private/defs.h
+++ b/src/nvim/api/private/defs.h
@@ -5,6 +5,8 @@
#include <stdbool.h>
#include <string.h>
+#include "nvim/func_attr.h"
+
#define ARRAY_DICT_INIT {.size = 0, .capacity = 0, .items = NULL}
#define STRING_INIT {.data = NULL, .size = 0}
#define OBJECT_INIT { .type = kObjectTypeNil }
@@ -36,8 +38,27 @@ typedef enum {
/// Used as the message ID of notifications.
#define NO_RESPONSE UINT64_MAX
-/// Used as channel_id when the call is local.
-#define INTERNAL_CALL UINT64_MAX
+/// Mask for all internal calls
+#define INTERNAL_CALL_MASK (((uint64_t)1) << (sizeof(uint64_t) * 8 - 1))
+
+/// Internal call from VimL code
+#define VIML_INTERNAL_CALL INTERNAL_CALL_MASK
+
+/// Internal call from lua code
+#define LUA_INTERNAL_CALL (VIML_INTERNAL_CALL + 1)
+
+static inline bool is_internal_call(uint64_t channel_id)
+ REAL_FATTR_ALWAYS_INLINE REAL_FATTR_CONST;
+
+/// Check whether call is internal
+///
+/// @param[in] channel_id Channel id.
+///
+/// @return true if channel_id refers to internal channel.
+static inline bool is_internal_call(const uint64_t channel_id)
+{
+ return !!(channel_id & INTERNAL_CALL_MASK);
+}
typedef struct {
ErrorType type;
@@ -78,16 +99,17 @@ typedef struct {
} Dictionary;
typedef enum {
- kObjectTypeBuffer,
- kObjectTypeWindow,
- kObjectTypeTabpage,
- kObjectTypeNil,
+ kObjectTypeNil = 0,
kObjectTypeBoolean,
kObjectTypeInteger,
kObjectTypeFloat,
kObjectTypeString,
kObjectTypeArray,
kObjectTypeDictionary,
+ // EXT types, cannot be split or reordered, see #EXT_OBJECT_TYPE_SHIFT
+ kObjectTypeBuffer,
+ kObjectTypeWindow,
+ kObjectTypeTabpage,
} ObjectType;
struct object {
diff --git a/src/nvim/api/private/helpers.c b/src/nvim/api/private/helpers.c
index 69cb19c14f..d401ae52a0 100644
--- a/src/nvim/api/private/helpers.c
+++ b/src/nvim/api/private/helpers.c
@@ -24,6 +24,7 @@
#include "nvim/option_defs.h"
#include "nvim/version.h"
#include "nvim/lib/kvec.h"
+#include "nvim/getchar.h"
/// Helper structure for vim_to_object
typedef struct {
@@ -33,6 +34,7 @@ typedef struct {
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "api/private/helpers.c.generated.h"
# include "api/private/funcs_metadata.generated.h"
+# include "api/private/ui_events_metadata.generated.h"
#endif
/// Start block that may cause vimscript exceptions
@@ -353,7 +355,7 @@ void set_option_to(void *to, int type, String name, Object value, Error *err)
#define TYPVAL_ENCODE_CONV_UNSIGNED_NUMBER TYPVAL_ENCODE_CONV_NUMBER
#define TYPVAL_ENCODE_CONV_FLOAT(tv, flt) \
- kv_push(edata->stack, FLOATING_OBJ((Float)(flt)))
+ kv_push(edata->stack, FLOAT_OBJ((Float)(flt)))
#define TYPVAL_ENCODE_CONV_STRING(tv, str, len) \
do { \
@@ -820,6 +822,7 @@ Dictionary api_metadata(void)
if (!metadata.size) {
PUT(metadata, "version", DICTIONARY_OBJ(version_dict()));
init_function_metadata(&metadata);
+ init_ui_event_metadata(&metadata);
init_error_type_metadata(&metadata);
init_type_metadata(&metadata);
}
@@ -843,6 +846,22 @@ static void init_function_metadata(Dictionary *metadata)
PUT(*metadata, "functions", functions);
}
+static void init_ui_event_metadata(Dictionary *metadata)
+{
+ msgpack_unpacked unpacked;
+ msgpack_unpacked_init(&unpacked);
+ if (msgpack_unpack_next(&unpacked,
+ (const char *)ui_events_metadata,
+ sizeof(ui_events_metadata),
+ NULL) != MSGPACK_UNPACK_SUCCESS) {
+ abort();
+ }
+ Object ui_events;
+ msgpack_rpc_to_object(&unpacked.data, &ui_events);
+ msgpack_unpacked_destroy(&unpacked);
+ PUT(*metadata, "ui_events", ui_events);
+}
+
static void init_error_type_metadata(Dictionary *metadata)
{
Dictionary types = ARRAY_DICT_INIT;
@@ -864,15 +883,18 @@ static void init_type_metadata(Dictionary *metadata)
Dictionary types = ARRAY_DICT_INIT;
Dictionary buffer_metadata = ARRAY_DICT_INIT;
- PUT(buffer_metadata, "id", INTEGER_OBJ(kObjectTypeBuffer));
+ PUT(buffer_metadata, "id",
+ INTEGER_OBJ(kObjectTypeBuffer - EXT_OBJECT_TYPE_SHIFT));
PUT(buffer_metadata, "prefix", STRING_OBJ(cstr_to_string("nvim_buf_")));
Dictionary window_metadata = ARRAY_DICT_INIT;
- PUT(window_metadata, "id", INTEGER_OBJ(kObjectTypeWindow));
+ PUT(window_metadata, "id",
+ INTEGER_OBJ(kObjectTypeWindow - EXT_OBJECT_TYPE_SHIFT));
PUT(window_metadata, "prefix", STRING_OBJ(cstr_to_string("nvim_win_")));
Dictionary tabpage_metadata = ARRAY_DICT_INIT;
- PUT(tabpage_metadata, "id", INTEGER_OBJ(kObjectTypeTabpage));
+ PUT(tabpage_metadata, "id",
+ INTEGER_OBJ(kObjectTypeTabpage - EXT_OBJECT_TYPE_SHIFT));
PUT(tabpage_metadata, "prefix", STRING_OBJ(cstr_to_string("nvim_tabpage_")));
PUT(types, "Buffer", DICTIONARY_OBJ(buffer_metadata));
@@ -882,6 +904,24 @@ static void init_type_metadata(Dictionary *metadata)
PUT(*metadata, "types", DICTIONARY_OBJ(types));
}
+String copy_string(String str)
+{
+ if (str.data != NULL) {
+ return (String){ .data = xmemdupz(str.data, str.size), .size = str.size };
+ } else {
+ return (String)STRING_INIT;
+ }
+}
+
+Array copy_array(Array array)
+{
+ Array rv = ARRAY_DICT_INIT;
+ for (size_t i = 0; i < array.size; i++) {
+ ADD(rv, copy_object(array.items[i]));
+ }
+ return rv;
+}
+
/// Creates a deep clone of an object
Object copy_object(Object obj)
{
@@ -893,15 +933,10 @@ Object copy_object(Object obj)
return obj;
case kObjectTypeString:
- return STRING_OBJ(cstr_to_string(obj.data.string.data));
+ return STRING_OBJ(copy_string(obj.data.string));
- case kObjectTypeArray: {
- Array rv = ARRAY_DICT_INIT;
- for (size_t i = 0; i < obj.data.array.size; i++) {
- ADD(rv, copy_object(obj.data.array.items[i]));
- }
- return ARRAY_OBJ(rv);
- }
+ case kObjectTypeArray:
+ return ARRAY_OBJ(copy_array(obj.data.array));
case kObjectTypeDictionary: {
Dictionary rv = ARRAY_DICT_INIT;
@@ -926,7 +961,7 @@ static void set_option_value_for(char *key,
{
win_T *save_curwin = NULL;
tabpage_T *save_curtab = NULL;
- bufref_T save_curbuf = { NULL, 0 };
+ bufref_T save_curbuf = { NULL, 0, 0 };
try_start();
switch (opt_type)
@@ -1000,3 +1035,41 @@ void api_set_error(Error *err, ErrorType errType, const char *format, ...)
err->type = errType;
}
+
+/// Get an array containing dictionaries describing mappings
+/// based on mode and buffer id
+///
+/// @param mode The abbreviation for the mode
+/// @param buf The buffer to get the mapping array. NULL for global
+/// @returns An array of maparg() like dictionaries describing mappings
+ArrayOf(Dictionary) keymap_array(String mode, buf_T *buf)
+{
+ Array mappings = ARRAY_DICT_INIT;
+ dict_T *const dict = tv_dict_alloc();
+
+ // Convert the string mode to the integer mode
+ // that is stored within each mapblock
+ char_u *p = (char_u *)mode.data;
+ int int_mode = get_map_mode(&p, 0);
+
+ // Determine the desired buffer value
+ long buffer_value = (buf == NULL) ? 0 : buf->handle;
+
+ for (int i = 0; i < MAX_MAPHASH; i++) {
+ for (const mapblock_T *current_maphash = get_maphash(i, buf);
+ current_maphash;
+ current_maphash = current_maphash->m_next) {
+ // Check for correct mode
+ if (int_mode & current_maphash->m_mode) {
+ mapblock_fill_dict(dict, current_maphash, buffer_value, false);
+ ADD(mappings, vim_to_object(
+ (typval_T[]) { { .v_type = VAR_DICT, .vval.v_dict = dict } }));
+
+ tv_dict_clear(dict);
+ }
+ }
+ }
+ tv_dict_free(dict);
+
+ return mappings;
+}
diff --git a/src/nvim/api/private/helpers.h b/src/nvim/api/private/helpers.h
index 681945ac9c..159b9d5c2a 100644
--- a/src/nvim/api/private/helpers.h
+++ b/src/nvim/api/private/helpers.h
@@ -18,7 +18,7 @@
.type = kObjectTypeInteger, \
.data.integer = i })
-#define FLOATING_OBJ(f) ((Object) { \
+#define FLOAT_OBJ(f) ((Object) { \
.type = kObjectTypeFloat, \
.data.floating = f })
diff --git a/src/nvim/api/tabpage.c b/src/nvim/api/tabpage.c
index 6f2f9e1d2a..b6830d9fcf 100644
--- a/src/nvim/api/tabpage.c
+++ b/src/nvim/api/tabpage.c
@@ -18,7 +18,7 @@
/// @param[out] err Error details, if any
/// @return List of windows in `tabpage`
ArrayOf(Window) nvim_tabpage_list_wins(Tabpage tabpage, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
Array rv = ARRAY_DICT_INIT;
tabpage_T *tab = find_tab_by_handle(tabpage, err);
@@ -48,7 +48,7 @@ ArrayOf(Window) nvim_tabpage_list_wins(Tabpage tabpage, Error *err)
/// @param[out] err Error details, if any
/// @return Variable value
Object nvim_tabpage_get_var(Tabpage tabpage, String name, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
tabpage_T *tab = find_tab_by_handle(tabpage, err);
@@ -69,7 +69,7 @@ void nvim_tabpage_set_var(Tabpage tabpage,
String name,
Object value,
Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
tabpage_T *tab = find_tab_by_handle(tabpage, err);
@@ -86,7 +86,7 @@ void nvim_tabpage_set_var(Tabpage tabpage,
/// @param name Variable name
/// @param[out] err Error details, if any
void nvim_tabpage_del_var(Tabpage tabpage, String name, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
tabpage_T *tab = find_tab_by_handle(tabpage, err);
@@ -145,7 +145,7 @@ Object tabpage_del_var(Tabpage tabpage, String name, Error *err)
/// @param[out] err Error details, if any
/// @return Window handle
Window nvim_tabpage_get_win(Tabpage tabpage, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
Window rv = 0;
tabpage_T *tab = find_tab_by_handle(tabpage, err);
@@ -173,7 +173,7 @@ Window nvim_tabpage_get_win(Tabpage tabpage, Error *err)
/// @param[out] err Error details, if any
/// @return Tabpage number
Integer nvim_tabpage_get_number(Tabpage tabpage, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
Integer rv = 0;
tabpage_T *tab = find_tab_by_handle(tabpage, err);
@@ -190,7 +190,7 @@ Integer nvim_tabpage_get_number(Tabpage tabpage, Error *err)
/// @param tabpage Tabpage handle
/// @return true if the tabpage is valid, false otherwise
Boolean nvim_tabpage_is_valid(Tabpage tabpage)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
Error stub = ERROR_INIT;
Boolean ret = find_tab_by_handle(tabpage, &stub) != NULL;
diff --git a/src/nvim/api/ui.c b/src/nvim/api/ui.c
index f0da0d1812..573be23d8e 100644
--- a/src/nvim/api/ui.c
+++ b/src/nvim/api/ui.c
@@ -19,6 +19,7 @@
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "api/ui.c.generated.h"
+# include "ui_events_remote.generated.h"
#endif
typedef struct {
@@ -29,13 +30,13 @@ typedef struct {
static PMap(uint64_t) *connected_uis = NULL;
void remote_ui_init(void)
- FUNC_API_NOEXPORT
+ FUNC_API_NOEXPORT
{
connected_uis = pmap_new(uint64_t)();
}
void remote_ui_disconnect(uint64_t channel_id)
- FUNC_API_NOEXPORT
+ FUNC_API_NOEXPORT
{
UI *ui = pmap_get(uint64_t)(connected_uis, channel_id);
if (!ui) {
@@ -52,7 +53,7 @@ void remote_ui_disconnect(uint64_t channel_id)
void nvim_ui_attach(uint64_t channel_id, Integer width, Integer height,
Dictionary options, Error *err)
- FUNC_API_SINCE(1) FUNC_API_NOEVAL
+ FUNC_API_SINCE(1) FUNC_API_REMOTE_ONLY
{
if (pmap_has(uint64_t)(connected_uis, channel_id)) {
api_set_error(err, kErrorTypeException, "UI already attached for channel");
@@ -68,7 +69,6 @@ void nvim_ui_attach(uint64_t channel_id, Integer width, Integer height,
ui->width = (int)width;
ui->height = (int)height;
ui->rgb = true;
- ui->pum_external = false;
ui->resize = remote_ui_resize;
ui->clear = remote_ui_clear;
ui->eol_clear = remote_ui_eol_clear;
@@ -95,6 +95,8 @@ void nvim_ui_attach(uint64_t channel_id, Integer width, Integer height,
ui->set_icon = remote_ui_set_icon;
ui->event = remote_ui_event;
+ memset(ui->ui_ext, 0, sizeof(ui->ui_ext));
+
for (size_t i = 0; i < options.size; i++) {
ui_set_option(ui, options.items[i].key, options.items[i].value, err);
if (ERROR_SET(err)) {
@@ -123,7 +125,7 @@ void ui_attach(uint64_t channel_id, Integer width, Integer height,
}
void nvim_ui_detach(uint64_t channel_id, Error *err)
- FUNC_API_SINCE(1) FUNC_API_NOEVAL
+ FUNC_API_SINCE(1) FUNC_API_REMOTE_ONLY
{
if (!pmap_has(uint64_t)(connected_uis, channel_id)) {
api_set_error(err, kErrorTypeException, "UI is not attached for channel");
@@ -135,7 +137,7 @@ void nvim_ui_detach(uint64_t channel_id, Error *err)
void nvim_ui_try_resize(uint64_t channel_id, Integer width,
Integer height, Error *err)
- FUNC_API_SINCE(1) FUNC_API_NOEVAL
+ FUNC_API_SINCE(1) FUNC_API_REMOTE_ONLY
{
if (!pmap_has(uint64_t)(connected_uis, channel_id)) {
api_set_error(err, kErrorTypeException, "UI is not attached for channel");
@@ -156,7 +158,7 @@ void nvim_ui_try_resize(uint64_t channel_id, Integer width,
void nvim_ui_set_option(uint64_t channel_id, String name,
Object value, Error *error)
- FUNC_API_SINCE(1) FUNC_API_NOEVAL
+ FUNC_API_SINCE(1) FUNC_API_REMOTE_ONLY
{
if (!pmap_has(uint64_t)(connected_uis, channel_id)) {
api_set_error(error, kErrorTypeException, "UI is not attached for channel");
@@ -170,23 +172,47 @@ void nvim_ui_set_option(uint64_t channel_id, String name,
}
}
-static void ui_set_option(UI *ui, String name, Object value, Error *error) {
- if (strcmp(name.data, "rgb") == 0) {
+static void ui_set_option(UI *ui, String name, Object value, Error *error)
+{
+#define UI_EXT_OPTION(o, e) \
+ do { \
+ if (strequal(name.data, #o)) { \
+ if (value.type != kObjectTypeBoolean) { \
+ api_set_error(error, kErrorTypeValidation, #o " must be a Boolean"); \
+ return; \
+ } \
+ ui->ui_ext[(e)] = value.data.boolean; \
+ return; \
+ } \
+ } while (0)
+
+ if (strequal(name.data, "rgb")) {
if (value.type != kObjectTypeBoolean) {
api_set_error(error, kErrorTypeValidation, "rgb must be a Boolean");
return;
}
ui->rgb = value.data.boolean;
- } else if (strcmp(name.data, "popupmenu_external") == 0) {
+ return;
+ }
+
+ UI_EXT_OPTION(ext_cmdline, kUICmdline);
+ UI_EXT_OPTION(ext_popupmenu, kUIPopupmenu);
+ UI_EXT_OPTION(ext_tabline, kUITabline);
+ UI_EXT_OPTION(ext_wildmenu, kUIWildmenu);
+
+ if (strequal(name.data, "popupmenu_external")) {
+ // LEGACY: Deprecated option, use `ui_ext` instead.
if (value.type != kObjectTypeBoolean) {
api_set_error(error, kErrorTypeValidation,
"popupmenu_external must be a Boolean");
return;
}
- ui->pum_external = value.data.boolean;
- } else {
- api_set_error(error, kErrorTypeValidation, "No such ui option");
+ ui->ui_ext[kUIPopupmenu] = value.data.boolean;
+ return;
}
+
+ api_set_error(error, kErrorTypeValidation, "No such ui option");
+#undef UI_EXT_OPTION
}
static void push_call(UI *ui, char *name, Array args)
@@ -211,100 +237,6 @@ static void push_call(UI *ui, char *name, Array args)
kv_A(data->buffer, kv_size(data->buffer) - 1).data.array = call;
}
-static void remote_ui_resize(UI *ui, int width, int height)
-{
- Array args = ARRAY_DICT_INIT;
- ADD(args, INTEGER_OBJ(width));
- ADD(args, INTEGER_OBJ(height));
- push_call(ui, "resize", args);
-}
-
-static void remote_ui_clear(UI *ui)
-{
- Array args = ARRAY_DICT_INIT;
- push_call(ui, "clear", args);
-}
-
-static void remote_ui_eol_clear(UI *ui)
-{
- Array args = ARRAY_DICT_INIT;
- push_call(ui, "eol_clear", args);
-}
-
-static void remote_ui_cursor_goto(UI *ui, int row, int col)
-{
- Array args = ARRAY_DICT_INIT;
- ADD(args, INTEGER_OBJ(row));
- ADD(args, INTEGER_OBJ(col));
- push_call(ui, "cursor_goto", args);
-}
-
-static void remote_ui_update_menu(UI *ui)
-{
- Array args = ARRAY_DICT_INIT;
- push_call(ui, "update_menu", args);
-}
-
-static void remote_ui_busy_start(UI *ui)
-{
- Array args = ARRAY_DICT_INIT;
- push_call(ui, "busy_start", args);
-}
-
-static void remote_ui_busy_stop(UI *ui)
-{
- Array args = ARRAY_DICT_INIT;
- push_call(ui, "busy_stop", args);
-}
-
-static void remote_ui_mouse_on(UI *ui)
-{
- Array args = ARRAY_DICT_INIT;
- push_call(ui, "mouse_on", args);
-}
-
-static void remote_ui_mouse_off(UI *ui)
-{
- Array args = ARRAY_DICT_INIT;
- push_call(ui, "mouse_off", args);
-}
-
-static void remote_ui_mode_change(UI *ui, int mode_idx)
-{
- Array args = ARRAY_DICT_INIT;
-
- char *full_name = shape_table[mode_idx].full_name;
- ADD(args, STRING_OBJ(cstr_to_string(full_name)));
-
- ADD(args, INTEGER_OBJ(mode_idx));
- push_call(ui, "mode_change", args);
-}
-
-static void remote_ui_set_scroll_region(UI *ui, int top, int bot, int left,
- int right)
-{
- Array args = ARRAY_DICT_INIT;
- ADD(args, INTEGER_OBJ(top));
- ADD(args, INTEGER_OBJ(bot));
- ADD(args, INTEGER_OBJ(left));
- ADD(args, INTEGER_OBJ(right));
- push_call(ui, "set_scroll_region", args);
-}
-
-static void remote_ui_scroll(UI *ui, int count)
-{
- Array args = ARRAY_DICT_INIT;
- ADD(args, INTEGER_OBJ(count));
- push_call(ui, "scroll", args);
-}
-
-static void remote_ui_mode_info_set(UI *ui, bool guicursor_enabled, Array data)
-{
- Array args = ARRAY_DICT_INIT;
- ADD(args, BOOLEAN_OBJ(guicursor_enabled));
- ADD(args, copy_object(ARRAY_OBJ(data)));
- push_call(ui, "mode_info_set", args);
-}
static void remote_ui_highlight_set(UI *ui, HlAttrs attrs)
{
@@ -347,47 +279,6 @@ static void remote_ui_highlight_set(UI *ui, HlAttrs attrs)
push_call(ui, "highlight_set", args);
}
-static void remote_ui_put(UI *ui, uint8_t *data, size_t size)
-{
- Array args = ARRAY_DICT_INIT;
- String str = { .data = xmemdupz(data, size), .size = size };
- ADD(args, STRING_OBJ(str));
- push_call(ui, "put", args);
-}
-
-static void remote_ui_bell(UI *ui)
-{
- Array args = ARRAY_DICT_INIT;
- push_call(ui, "bell", args);
-}
-
-static void remote_ui_visual_bell(UI *ui)
-{
- Array args = ARRAY_DICT_INIT;
- push_call(ui, "visual_bell", args);
-}
-
-static void remote_ui_update_fg(UI *ui, int fg)
-{
- Array args = ARRAY_DICT_INIT;
- ADD(args, INTEGER_OBJ(fg));
- push_call(ui, "update_fg", args);
-}
-
-static void remote_ui_update_bg(UI *ui, int bg)
-{
- Array args = ARRAY_DICT_INIT;
- ADD(args, INTEGER_OBJ(bg));
- push_call(ui, "update_bg", args);
-}
-
-static void remote_ui_update_sp(UI *ui, int sp)
-{
- Array args = ARRAY_DICT_INIT;
- ADD(args, INTEGER_OBJ(sp));
- push_call(ui, "update_sp", args);
-}
-
static void remote_ui_flush(UI *ui)
{
UIData *data = ui->data;
@@ -397,26 +288,6 @@ static void remote_ui_flush(UI *ui)
}
}
-static void remote_ui_suspend(UI *ui)
-{
- Array args = ARRAY_DICT_INIT;
- push_call(ui, "suspend", args);
-}
-
-static void remote_ui_set_title(UI *ui, char *title)
-{
- Array args = ARRAY_DICT_INIT;
- ADD(args, STRING_OBJ(cstr_to_string(title)));
- push_call(ui, "set_title", args);
-}
-
-static void remote_ui_set_icon(UI *ui, char *icon)
-{
- Array args = ARRAY_DICT_INIT;
- ADD(args, STRING_OBJ(cstr_to_string(icon)));
- push_call(ui, "set_icon", args);
-}
-
static void remote_ui_event(UI *ui, char *name, Array args, bool *args_consumed)
{
Array my_args = ARRAY_DICT_INIT;
diff --git a/src/nvim/api/ui_events.in.h b/src/nvim/api/ui_events.in.h
new file mode 100644
index 0000000000..1b5d17584f
--- /dev/null
+++ b/src/nvim/api/ui_events.in.h
@@ -0,0 +1,71 @@
+#ifndef NVIM_API_UI_EVENTS_IN_H
+#define NVIM_API_UI_EVENTS_IN_H
+
+// This file is not compiled, just parsed for definitons
+#ifdef INCLUDE_GENERATED_DECLARATIONS
+# error "don't include this file, include nvim/ui.h"
+#endif
+
+#include "nvim/api/private/defs.h"
+#include "nvim/func_attr.h"
+#include "nvim/ui.h"
+
+void resize(Integer rows, Integer columns)
+ FUNC_API_SINCE(3);
+void clear(void)
+ FUNC_API_SINCE(3);
+void eol_clear(void)
+ FUNC_API_SINCE(3);
+void cursor_goto(Integer row, Integer col)
+ FUNC_API_SINCE(3);
+void mode_info_set(Boolean enabled, Array cursor_styles)
+ FUNC_API_SINCE(3);
+void update_menu(void)
+ FUNC_API_SINCE(3);
+void busy_start(void)
+ FUNC_API_SINCE(3);
+void busy_stop(void)
+ FUNC_API_SINCE(3);
+void mouse_on(void)
+ FUNC_API_SINCE(3);
+void mouse_off(void)
+ FUNC_API_SINCE(3);
+void mode_change(String mode, Integer mode_idx)
+ FUNC_API_SINCE(3);
+void set_scroll_region(Integer top, Integer bot, Integer left, Integer right)
+ FUNC_API_SINCE(3);
+void scroll(Integer count)
+ FUNC_API_SINCE(3);
+void highlight_set(HlAttrs attrs)
+ FUNC_API_SINCE(3) FUNC_API_REMOTE_IMPL FUNC_API_BRIDGE_IMPL;
+void put(String str)
+ FUNC_API_SINCE(3);
+void bell(void)
+ FUNC_API_SINCE(3);
+void visual_bell(void)
+ FUNC_API_SINCE(3);
+void flush(void)
+ FUNC_API_SINCE(3) FUNC_API_REMOTE_IMPL;
+void update_fg(Integer fg)
+ FUNC_API_SINCE(3);
+void update_bg(Integer bg)
+ FUNC_API_SINCE(3);
+void update_sp(Integer sp)
+ FUNC_API_SINCE(3);
+void suspend(void)
+ FUNC_API_SINCE(3) FUNC_API_BRIDGE_IMPL;
+void set_title(String title)
+ FUNC_API_SINCE(3);
+void set_icon(String icon)
+ FUNC_API_SINCE(3);
+
+void popupmenu_show(Array items, Integer selected, Integer row, Integer col)
+ FUNC_API_SINCE(3) FUNC_API_REMOTE_ONLY;
+void popupmenu_hide(void)
+ FUNC_API_SINCE(3) FUNC_API_REMOTE_ONLY;
+void popupmenu_select(Integer selected)
+ FUNC_API_SINCE(3) FUNC_API_REMOTE_ONLY;
+void tabline_update(Tabpage current, Array tabs)
+ FUNC_API_SINCE(3) FUNC_API_REMOTE_ONLY;
+
+#endif // NVIM_API_UI_EVENTS_IN_H
diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c
index da00fbc6e3..80efe86ea3 100644
--- a/src/nvim/api/vim.c
+++ b/src/nvim/api/vim.c
@@ -13,8 +13,10 @@
#include "nvim/ascii.h"
#include "nvim/api/private/helpers.h"
#include "nvim/api/private/defs.h"
+#include "nvim/api/private/dispatch.h"
#include "nvim/api/buffer.h"
#include "nvim/msgpack_rpc/channel.h"
+#include "nvim/lua/executor.h"
#include "nvim/vim.h"
#include "nvim/buffer.h"
#include "nvim/file_search.h"
@@ -27,6 +29,7 @@
#include "nvim/eval.h"
#include "nvim/eval/typval.h"
#include "nvim/option.h"
+#include "nvim/state.h"
#include "nvim/syntax.h"
#include "nvim/getchar.h"
#include "nvim/os/input.h"
@@ -43,7 +46,7 @@
/// @param command Ex-command string
/// @param[out] err Error details (including actual VimL error), if any
void nvim_command(String command, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
// Run the command
try_start();
@@ -61,7 +64,7 @@ void nvim_command(String command, Error *err)
/// @see feedkeys()
/// @see vim_strsave_escape_csi
void nvim_feedkeys(String keys, String mode, Boolean escape_csi)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
bool remap = true;
bool insert = false;
@@ -128,22 +131,23 @@ void nvim_feedkeys(String keys, String mode, Boolean escape_csi)
/// @return Number of bytes actually written (can be fewer than
/// requested if the buffer becomes full).
Integer nvim_input(String keys)
- FUNC_API_SINCE(1) FUNC_API_ASYNC
+ FUNC_API_SINCE(1) FUNC_API_ASYNC
{
return (Integer)input_enqueue(keys);
}
-/// Replaces any terminal codes with the internal representation
+/// Replaces terminal codes and key codes (<CR>, <Esc>, ...) in a string with
+/// the internal representation.
///
/// @see replace_termcodes
/// @see cpoptions
String nvim_replace_termcodes(String str, Boolean from_part, Boolean do_lt,
Boolean special)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
if (str.size == 0) {
// Empty string
- return str;
+ return (String) { .data = NULL, .size = 0 };
}
char *ptr = NULL;
@@ -159,7 +163,7 @@ String nvim_replace_termcodes(String str, Boolean from_part, Boolean do_lt,
}
String nvim_command_output(String str, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
do_cmdline_cmd("redir => v:command_output");
nvim_command(str, err);
@@ -180,7 +184,7 @@ String nvim_command_output(String str, Error *err)
/// @param[out] err Error details, if any
/// @return Evaluation result or expanded object
Object nvim_eval(String expr, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
Object rv = OBJECT_INIT;
// Evaluate the expression
@@ -202,7 +206,8 @@ Object nvim_eval(String expr, Error *err)
return rv;
}
-/// Calls a VimL function with the given arguments.
+/// Calls a VimL function with the given arguments
+///
/// On VimL error: Returns a generic error; v:errmsg is not updated.
///
/// @param fname Function to call
@@ -210,7 +215,7 @@ Object nvim_eval(String expr, Error *err)
/// @param[out] err Error details, if any
/// @return Result of the function call
Object nvim_call_function(String fname, Array args, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
Object rv = OBJECT_INIT;
if (args.size > MAX_FUNC_ARGS) {
@@ -252,6 +257,25 @@ free_vim_args:
return rv;
}
+/// Execute lua code. Parameters might be passed, they are available inside
+/// the chunk as `...`. The chunk can return a value.
+///
+/// To evaluate an expression, it must be prefixed with "return ". For
+/// instance, to call a lua function with arguments sent in and get its
+/// return value back, use the code "return my_function(...)".
+///
+/// @param code lua code to execute
+/// @param args Arguments to the code
+/// @param[out] err Details of an error encountered while parsing
+/// or executing the lua code.
+///
+/// @return Return value of lua code if present or NIL.
+Object nvim_execute_lua(String code, Array args, Error *err)
+ FUNC_API_SINCE(3) FUNC_API_REMOTE_ONLY
+{
+ return executor_exec_lua_api(code, args, err);
+}
+
/// Calculates the number of display cells occupied by `text`.
/// <Tab> counts as one cell.
///
@@ -259,7 +283,7 @@ free_vim_args:
/// @param[out] err Error details, if any
/// @return Number of cells
Integer nvim_strwidth(String str, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
if (str.size > INT_MAX) {
api_set_error(err, kErrorTypeValidation, "String length is too high");
@@ -273,10 +297,10 @@ Integer nvim_strwidth(String str, Error *err)
///
/// @return List of paths
ArrayOf(String) nvim_list_runtime_paths(void)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
Array rv = ARRAY_DICT_INIT;
- uint8_t *rtp = p_rtp;
+ char_u *rtp = p_rtp;
if (*rtp == NUL) {
// No paths
@@ -290,13 +314,14 @@ ArrayOf(String) nvim_list_runtime_paths(void)
}
rtp++;
}
+ rv.size++;
// Allocate memory for the copies
- rv.items = xmalloc(sizeof(Object) * rv.size);
+ rv.items = xmalloc(sizeof(*rv.items) * rv.size);
// Reset the position
rtp = p_rtp;
// Start copying
- for (size_t i = 0; i < rv.size && *rtp != NUL; i++) {
+ for (size_t i = 0; i < rv.size; i++) {
rv.items[i].type = kObjectTypeString;
rv.items[i].data.string.data = xmalloc(MAXPATHL);
// Copy the path from 'runtimepath' to rv.items[i]
@@ -315,7 +340,7 @@ ArrayOf(String) nvim_list_runtime_paths(void)
/// @param dir Directory path
/// @param[out] err Error details, if any
void nvim_set_current_dir(String dir, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
if (dir.size >= MAXPATHL) {
api_set_error(err, kErrorTypeValidation, "Directory string is too long");
@@ -344,7 +369,7 @@ void nvim_set_current_dir(String dir, Error *err)
/// @param[out] err Error details, if any
/// @return Current line string
String nvim_get_current_line(Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
return buffer_get_line(curbuf->handle, curwin->w_cursor.lnum - 1, err);
}
@@ -354,7 +379,7 @@ String nvim_get_current_line(Error *err)
/// @param line Line contents
/// @param[out] err Error details, if any
void nvim_set_current_line(String line, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
buffer_set_line(curbuf->handle, curwin->w_cursor.lnum - 1, line, err);
}
@@ -363,7 +388,7 @@ void nvim_set_current_line(String line, Error *err)
///
/// @param[out] err Error details, if any
void nvim_del_current_line(Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
buffer_del_line(curbuf->handle, curwin->w_cursor.lnum - 1, err);
}
@@ -374,7 +399,7 @@ void nvim_del_current_line(Error *err)
/// @param[out] err Error details, if any
/// @return Variable value
Object nvim_get_var(String name, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
return dict_get_value(&globvardict, name, err);
}
@@ -385,7 +410,7 @@ Object nvim_get_var(String name, Error *err)
/// @param value Variable value
/// @param[out] err Error details, if any
void nvim_set_var(String name, Object value, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
dict_set_var(&globvardict, name, value, false, false, err);
}
@@ -395,7 +420,7 @@ void nvim_set_var(String name, Object value, Error *err)
/// @param name Variable name
/// @param[out] err Error details, if any
void nvim_del_var(String name, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
dict_set_var(&globvardict, name, NIL, true, false, err);
}
@@ -434,7 +459,7 @@ Object vim_del_var(String name, Error *err)
/// @param[out] err Error details, if any
/// @return Variable value
Object nvim_get_vvar(String name, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
return dict_get_value(&vimvardict, name, err);
}
@@ -445,7 +470,7 @@ Object nvim_get_vvar(String name, Error *err)
/// @param[out] err Error details, if any
/// @return Option value (global)
Object nvim_get_option(String name, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
return get_option_from(NULL, SREQ_GLOBAL, name, err);
}
@@ -456,7 +481,7 @@ Object nvim_get_option(String name, Error *err)
/// @param value New option value
/// @param[out] err Error details, if any
void nvim_set_option(String name, Object value, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
set_option_to(NULL, SREQ_GLOBAL, name, value, err);
}
@@ -465,7 +490,7 @@ void nvim_set_option(String name, Object value, Error *err)
///
/// @param str Message
void nvim_out_write(String str)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
write_msg(str, false);
}
@@ -474,7 +499,7 @@ void nvim_out_write(String str)
///
/// @param str Message
void nvim_err_write(String str)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
write_msg(str, true);
}
@@ -485,7 +510,7 @@ void nvim_err_write(String str)
/// @param str Message
/// @see nvim_err_write()
void nvim_err_writeln(String str)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
nvim_err_write(str);
nvim_err_write((String) { .data = "\n", .size = 1 });
@@ -495,7 +520,7 @@ void nvim_err_writeln(String str)
///
/// @return List of buffer handles
ArrayOf(Buffer) nvim_list_bufs(void)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
Array rv = ARRAY_DICT_INIT;
@@ -517,7 +542,7 @@ ArrayOf(Buffer) nvim_list_bufs(void)
///
/// @return Buffer handle
Buffer nvim_get_current_buf(void)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
return curbuf->handle;
}
@@ -527,7 +552,7 @@ Buffer nvim_get_current_buf(void)
/// @param id Buffer handle
/// @param[out] err Error details, if any
void nvim_set_current_buf(Buffer buffer, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
buf_T *buf = find_buffer_by_handle(buffer, err);
@@ -549,7 +574,7 @@ void nvim_set_current_buf(Buffer buffer, Error *err)
///
/// @return List of window handles
ArrayOf(Window) nvim_list_wins(void)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
Array rv = ARRAY_DICT_INIT;
@@ -571,7 +596,7 @@ ArrayOf(Window) nvim_list_wins(void)
///
/// @return Window handle
Window nvim_get_current_win(void)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
return curwin->handle;
}
@@ -580,7 +605,7 @@ Window nvim_get_current_win(void)
///
/// @param handle Window handle
void nvim_set_current_win(Window window, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
win_T *win = find_window_by_handle(window, err);
@@ -602,7 +627,7 @@ void nvim_set_current_win(Window window, Error *err)
///
/// @return List of tabpage handles
ArrayOf(Tabpage) nvim_list_tabpages(void)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
Array rv = ARRAY_DICT_INIT;
@@ -624,7 +649,7 @@ ArrayOf(Tabpage) nvim_list_tabpages(void)
///
/// @return Tabpage handle
Tabpage nvim_get_current_tabpage(void)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
return curtab->handle;
}
@@ -634,7 +659,7 @@ Tabpage nvim_get_current_tabpage(void)
/// @param handle Tabpage handle
/// @param[out] err Error details, if any
void nvim_set_current_tabpage(Tabpage tabpage, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
tabpage_T *tp = find_tab_by_handle(tabpage, err);
@@ -657,7 +682,7 @@ void nvim_set_current_tabpage(Tabpage tabpage, Error *err)
/// @param channel_id Channel id (passed automatically by the dispatcher)
/// @param event Event type string
void nvim_subscribe(uint64_t channel_id, String event)
- FUNC_API_SINCE(1) FUNC_API_NOEVAL
+ FUNC_API_SINCE(1) FUNC_API_REMOTE_ONLY
{
size_t length = (event.size < METHOD_MAXLEN ? event.size : METHOD_MAXLEN);
char e[METHOD_MAXLEN + 1];
@@ -671,7 +696,7 @@ void nvim_subscribe(uint64_t channel_id, String event)
/// @param channel_id Channel id (passed automatically by the dispatcher)
/// @param event Event type string
void nvim_unsubscribe(uint64_t channel_id, String event)
- FUNC_API_SINCE(1) FUNC_API_NOEVAL
+ FUNC_API_SINCE(1) FUNC_API_REMOTE_ONLY
{
size_t length = (event.size < METHOD_MAXLEN ?
event.size :
@@ -683,13 +708,13 @@ void nvim_unsubscribe(uint64_t channel_id, String event)
}
Integer nvim_get_color_by_name(String name)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
- return name_to_color((uint8_t *)name.data);
+ return name_to_color((char_u *)name.data);
}
Dictionary nvim_get_color_map(void)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
Dictionary colors = ARRAY_DICT_INIT;
@@ -701,8 +726,37 @@ Dictionary nvim_get_color_map(void)
}
+/// Gets the current mode.
+/// mode: Mode string. |mode()|
+/// blocking: true if Nvim is waiting for input.
+///
+/// @returns Dictionary { "mode": String, "blocking": Boolean }
+Dictionary nvim_get_mode(void)
+ FUNC_API_SINCE(2) FUNC_API_ASYNC
+{
+ Dictionary rv = ARRAY_DICT_INIT;
+ char *modestr = get_mode();
+ bool blocked = input_blocking();
+
+ PUT(rv, "mode", STRING_OBJ(cstr_as_string(modestr)));
+ PUT(rv, "blocking", BOOLEAN_OBJ(blocked));
+
+ return rv;
+}
+
+/// Get a list of dictionaries describing global (i.e. non-buffer) mappings
+/// Note that the "buffer" key will be 0 to represent false.
+///
+/// @param mode The abbreviation for the mode
+/// @returns An array of maparg() like dictionaries describing mappings
+ArrayOf(Dictionary) nvim_get_keymap(String mode)
+ FUNC_API_SINCE(3)
+{
+ return keymap_array(mode, NULL);
+}
+
Array nvim_get_api_info(uint64_t channel_id)
- FUNC_API_SINCE(1) FUNC_API_ASYNC FUNC_API_NOEVAL
+ FUNC_API_SINCE(1) FUNC_API_ASYNC FUNC_API_REMOTE_ONLY
{
Array rv = ARRAY_DICT_INIT;
@@ -735,7 +789,7 @@ Array nvim_get_api_info(uint64_t channel_id)
/// which resulted in an error, the error type and the error message. If an
/// error ocurred, the values from all preceding calls will still be returned.
Array nvim_call_atomic(uint64_t channel_id, Array calls, Error *err)
- FUNC_API_SINCE(1) FUNC_API_NOEVAL
+ FUNC_API_SINCE(1) FUNC_API_REMOTE_ONLY
{
Array rv = ARRAY_DICT_INIT;
Array results = ARRAY_DICT_INIT;
@@ -818,7 +872,7 @@ static void write_msg(String message, bool to_err)
#define PUSH_CHAR(i, pos, line_buf, msg) \
if (message.data[i] == NL || pos == LINE_BUFFER_SIZE - 1) { \
line_buf[pos] = NUL; \
- msg((uint8_t *)line_buf); \
+ msg((char_u *)line_buf); \
pos = 0; \
continue; \
} \
@@ -836,3 +890,57 @@ static void write_msg(String message, bool to_err)
--no_wait_return;
msg_end();
}
+
+// Functions used for testing purposes
+
+/// Returns object given as argument
+///
+/// This API function is used for testing. One should not rely on its presence
+/// in plugins.
+///
+/// @param[in] obj Object to return.
+///
+/// @return its argument.
+Object nvim__id(Object obj)
+{
+ return copy_object(obj);
+}
+
+/// Returns array given as argument
+///
+/// This API function is used for testing. One should not rely on its presence
+/// in plugins.
+///
+/// @param[in] arr Array to return.
+///
+/// @return its argument.
+Array nvim__id_array(Array arr)
+{
+ return copy_object(ARRAY_OBJ(arr)).data.array;
+}
+
+/// Returns dictionary given as argument
+///
+/// This API function is used for testing. One should not rely on its presence
+/// in plugins.
+///
+/// @param[in] dct Dictionary to return.
+///
+/// @return its argument.
+Dictionary nvim__id_dictionary(Dictionary dct)
+{
+ return copy_object(DICTIONARY_OBJ(dct)).data.dictionary;
+}
+
+/// Returns floating-point value given as argument
+///
+/// This API function is used for testing. One should not rely on its presence
+/// in plugins.
+///
+/// @param[in] flt Value to return.
+///
+/// @return its argument.
+Float nvim__id_float(Float flt)
+{
+ return flt;
+}
diff --git a/src/nvim/api/window.c b/src/nvim/api/window.c
index 859bf88398..9bc91ef8fb 100644
--- a/src/nvim/api/window.c
+++ b/src/nvim/api/window.c
@@ -22,7 +22,7 @@
/// @param[out] err Error details, if any
/// @return Buffer handle
Buffer nvim_win_get_buf(Window window, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
win_T *win = find_window_by_handle(window, err);
@@ -39,7 +39,7 @@ Buffer nvim_win_get_buf(Window window, Error *err)
/// @param[out] err Error details, if any
/// @return (row, col) tuple
ArrayOf(Integer, 2) nvim_win_get_cursor(Window window, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
Array rv = ARRAY_DICT_INIT;
win_T *win = find_window_by_handle(window, err);
@@ -58,10 +58,14 @@ ArrayOf(Integer, 2) nvim_win_get_cursor(Window window, Error *err)
/// @param pos (row, col) tuple representing the new position
/// @param[out] err Error details, if any
void nvim_win_set_cursor(Window window, ArrayOf(Integer, 2) pos, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
win_T *win = find_window_by_handle(window, err);
+ if (!win) {
+ return;
+ }
+
if (pos.size != 2 || pos.items[0].type != kObjectTypeInteger
|| pos.items[1].type != kObjectTypeInteger) {
api_set_error(err,
@@ -70,10 +74,6 @@ void nvim_win_set_cursor(Window window, ArrayOf(Integer, 2) pos, Error *err)
return;
}
- if (!win) {
- return;
- }
-
int64_t row = pos.items[0].data.integer;
int64_t col = pos.items[1].data.integer;
@@ -105,7 +105,7 @@ void nvim_win_set_cursor(Window window, ArrayOf(Integer, 2) pos, Error *err)
/// @param[out] err Error details, if any
/// @return Height as a count of rows
Integer nvim_win_get_height(Window window, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
win_T *win = find_window_by_handle(window, err);
@@ -123,7 +123,7 @@ Integer nvim_win_get_height(Window window, Error *err)
/// @param height Height as a count of rows
/// @param[out] err Error details, if any
void nvim_win_set_height(Window window, Integer height, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
win_T *win = find_window_by_handle(window, err);
@@ -150,7 +150,7 @@ void nvim_win_set_height(Window window, Integer height, Error *err)
/// @param[out] err Error details, if any
/// @return Width as a count of columns
Integer nvim_win_get_width(Window window, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
win_T *win = find_window_by_handle(window, err);
@@ -168,7 +168,7 @@ Integer nvim_win_get_width(Window window, Error *err)
/// @param width Width as a count of columns
/// @param[out] err Error details, if any
void nvim_win_set_width(Window window, Integer width, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
win_T *win = find_window_by_handle(window, err);
@@ -196,7 +196,7 @@ void nvim_win_set_width(Window window, Integer width, Error *err)
/// @param[out] err Error details, if any
/// @return Variable value
Object nvim_win_get_var(Window window, String name, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
win_T *win = find_window_by_handle(window, err);
@@ -214,7 +214,7 @@ Object nvim_win_get_var(Window window, String name, Error *err)
/// @param value Variable value
/// @param[out] err Error details, if any
void nvim_win_set_var(Window window, String name, Object value, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
win_T *win = find_window_by_handle(window, err);
@@ -231,7 +231,7 @@ void nvim_win_set_var(Window window, String name, Object value, Error *err)
/// @param name Variable name
/// @param[out] err Error details, if any
void nvim_win_del_var(Window window, String name, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
win_T *win = find_window_by_handle(window, err);
@@ -291,7 +291,7 @@ Object window_del_var(Window window, String name, Error *err)
/// @param[out] err Error details, if any
/// @return Option value
Object nvim_win_get_option(Window window, String name, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
win_T *win = find_window_by_handle(window, err);
@@ -310,7 +310,7 @@ Object nvim_win_get_option(Window window, String name, Error *err)
/// @param value Option value
/// @param[out] err Error details, if any
void nvim_win_set_option(Window window, String name, Object value, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
win_T *win = find_window_by_handle(window, err);
@@ -327,7 +327,7 @@ void nvim_win_set_option(Window window, String name, Object value, Error *err)
/// @param[out] err Error details, if any
/// @return (row, col) tuple with the window position
ArrayOf(Integer, 2) nvim_win_get_position(Window window, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
Array rv = ARRAY_DICT_INIT;
win_T *win = find_window_by_handle(window, err);
@@ -346,7 +346,7 @@ ArrayOf(Integer, 2) nvim_win_get_position(Window window, Error *err)
/// @param[out] err Error details, if any
/// @return Tabpage that contains the window
Tabpage nvim_win_get_tabpage(Window window, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
Tabpage rv = 0;
win_T *win = find_window_by_handle(window, err);
@@ -364,7 +364,7 @@ Tabpage nvim_win_get_tabpage(Window window, Error *err)
/// @param[out] err Error details, if any
/// @return Window number
Integer nvim_win_get_number(Window window, Error *err)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
int rv = 0;
win_T *win = find_window_by_handle(window, err);
@@ -384,7 +384,7 @@ Integer nvim_win_get_number(Window window, Error *err)
/// @param window Window handle
/// @return true if the window is valid, false otherwise
Boolean nvim_win_is_valid(Window window)
- FUNC_API_SINCE(1)
+ FUNC_API_SINCE(1)
{
Error stub = ERROR_INIT;
Boolean ret = find_window_by_handle(window, &stub) != NULL;
diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c
index 46f2cdac79..b5ca6543c5 100644
--- a/src/nvim/buffer.c
+++ b/src/nvim/buffer.c
@@ -24,6 +24,7 @@
#include <inttypes.h>
#include "nvim/api/private/handle.h"
+#include "nvim/api/private/helpers.h"
#include "nvim/ascii.h"
#include "nvim/assert.h"
#include "nvim/vim.h"
@@ -73,6 +74,12 @@
#include "nvim/os/time.h"
#include "nvim/os/input.h"
+typedef enum {
+ kBLSUnchanged = 0,
+ kBLSChanged = 1,
+ kBLSDeleted = 2,
+} BufhlLineStatus;
+
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "buffer.c.generated.h"
#endif
@@ -280,19 +287,22 @@ open_buffer (
void set_bufref(bufref_T *bufref, buf_T *buf)
{
bufref->br_buf = buf;
+ bufref->br_fnum = buf->b_fnum;
bufref->br_buf_free_count = buf_free_count;
}
-/// Check if "bufref" points to a valid buffer.
-///
+/// Return true if "bufref->br_buf" points to the same buffer as when
+/// set_bufref() was called and it is a valid buffer.
/// Only goes through the buffer list if buf_free_count changed.
+/// Also checks if b_fnum is still the same, a :bwipe followed by :new might get
+/// the same allocated memory, but it's a different buffer.
///
/// @param bufref Buffer reference to check for.
bool bufref_valid(bufref_T *bufref)
{
return bufref->br_buf_free_count == buf_free_count
? true
- : buf_valid(bufref->br_buf);
+ : buf_valid(bufref->br_buf) && bufref->br_fnum == bufref->br_buf->b_fnum;
}
/// Check that "buf" points to a valid buffer in the buffer list.
@@ -449,7 +459,7 @@ void close_buffer(win_T *win, buf_T *buf, int action, int abort_if_last)
if (buf->terminal) {
terminal_close(buf->terminal, NULL);
- }
+ }
/* Always remove the buffer when there is no file name. */
if (buf->b_ffname == NULL)
@@ -827,7 +837,7 @@ void handle_swap_exists(bufref_T *old_curbuf)
* new aborting error, interrupt, or uncaught exception. */
leave_cleanup(&cs);
}
- swap_exists_action = SEA_NONE;
+ swap_exists_action = SEA_NONE; // -V519
}
/*
@@ -1752,16 +1762,15 @@ void free_buf_options(buf_T *buf, int free_p_ff)
clear_string_option(&buf->b_p_bkc);
}
-/*
- * get alternate file n
- * set linenr to lnum or altfpos.lnum if lnum == 0
- * also set cursor column to altfpos.col if 'startofline' is not set.
- * if (options & GETF_SETMARK) call setpcmark()
- * if (options & GETF_ALT) we are jumping to an alternate file.
- * if (options & GETF_SWITCH) respect 'switchbuf' settings when jumping
- *
- * return FAIL for failure, OK for success
- */
+
+/// Get alternate file "n".
+/// Set linenr to "lnum" or altfpos.lnum if "lnum" == 0.
+/// Also set cursor column to altfpos.col if 'startofline' is not set.
+/// if (options & GETF_SETMARK) call setpcmark()
+/// if (options & GETF_ALT) we are jumping to an alternate file.
+/// if (options & GETF_SWITCH) respect 'switchbuf' settings when jumping
+///
+/// Return FAIL for failure, OK for success.
int buflist_getfile(int n, linenr_T lnum, int options, int forceit)
{
buf_T *buf;
@@ -2316,7 +2325,7 @@ void get_winopts(buf_T *buf)
/* Set 'foldlevel' to 'foldlevelstart' if it's not negative. */
if (p_fdls >= 0)
curwin->w_p_fdl = p_fdls;
- check_colorcolumn(curwin);
+ didset_window_options(curwin);
}
/*
@@ -2365,12 +2374,17 @@ void buflist_list(exarg_T *eap)
&& (buf == curbuf || curwin->w_alt_fnum != buf->b_fnum))) {
continue;
}
- msg_putchar('\n');
- if (buf_spname(buf) != NULL)
+ if (buf_spname(buf) != NULL) {
STRLCPY(NameBuff, buf_spname(buf), MAXPATHL);
- else
- home_replace(buf, buf->b_fname, NameBuff, MAXPATHL, TRUE);
+ } else {
+ home_replace(buf, buf->b_fname, NameBuff, MAXPATHL, true);
+ }
+
+ if (message_filtered(NameBuff)) {
+ continue;
+ }
+ msg_putchar('\n');
len = vim_snprintf((char *)IObuff, IOSIZE - 20, "%3d%c%c%c%c%c \"%s\"",
buf->b_fnum,
buf->b_p_bl ? ' ' : 'u',
@@ -2996,13 +3010,13 @@ static bool ti_change(char_u *str, char_u **last)
return false;
}
-/*
- * Put current window title back (used after calling a shell)
- */
+
+/// Set current window title
void resettitle(void)
{
- ui_set_title((char *)lasttitle);
- ui_set_icon((char *)lasticon);
+ ui_call_set_title(cstr_as_string((char *)lasttitle));
+ ui_call_set_icon(cstr_as_string((char *)lasticon));
+ ui_flush();
}
# if defined(EXITFREE)
@@ -3060,7 +3074,7 @@ int build_stl_str_hl(
StlClickRecord *tabtab
)
{
- int groupitem[STL_MAX_ITEM];
+ int groupitems[STL_MAX_ITEM];
struct stl_item {
// Where the item starts in the status line output buffer
char_u *start;
@@ -3080,7 +3094,7 @@ int build_stl_str_hl(
ClickFunc,
Trunc
} type;
- } item[STL_MAX_ITEM];
+ } items[STL_MAX_ITEM];
#define TMPLEN 70
char_u tmp[TMPLEN];
char_u *usefmt = fmt;
@@ -3182,16 +3196,16 @@ int build_stl_str_hl(
if (groupdepth > 0) {
continue;
}
- item[curitem].type = Separate;
- item[curitem++].start = out_p;
+ items[curitem].type = Separate;
+ items[curitem++].start = out_p;
continue;
}
// STL_TRUNCMARK: Where to begin truncating if the statusline is too long.
if (*fmt_p == STL_TRUNCMARK) {
fmt_p++;
- item[curitem].type = Trunc;
- item[curitem++].start = out_p;
+ items[curitem].type = Trunc;
+ items[curitem++].start = out_p;
continue;
}
@@ -3207,7 +3221,7 @@ int build_stl_str_hl(
// Determine how long the group is.
// Note: We set the current output position to null
// so `vim_strsize` will work.
- char_u *t = item[groupitem[groupdepth]].start;
+ char_u *t = items[groupitems[groupdepth]].start;
*out_p = NUL;
long group_len = vim_strsize(t);
@@ -3217,11 +3231,11 @@ int build_stl_str_hl(
// move the output pointer back to where the group started.
// Note: This erases any non-item characters that were in the group.
// Otherwise there would be no reason to do this step.
- if (curitem > groupitem[groupdepth] + 1
- && item[groupitem[groupdepth]].minwid == 0) {
+ if (curitem > groupitems[groupdepth] + 1
+ && items[groupitems[groupdepth]].minwid == 0) {
bool has_normal_items = false;
- for (long n = groupitem[groupdepth] + 1; n < curitem; n++) {
- if (item[n].type == Normal || item[n].type == Highlight) {
+ for (long n = groupitems[groupdepth] + 1; n < curitem; n++) {
+ if (items[n].type == Normal || items[n].type == Highlight) {
has_normal_items = true;
break;
}
@@ -3235,18 +3249,18 @@ int build_stl_str_hl(
// If the group is longer than it is allowed to be
// truncate by removing bytes from the start of the group text.
- if (group_len > item[groupitem[groupdepth]].maxwid) {
+ if (group_len > items[groupitems[groupdepth]].maxwid) {
// { Determine the number of bytes to remove
long n;
if (has_mbyte) {
/* Find the first character that should be included. */
n = 0;
- while (group_len >= item[groupitem[groupdepth]].maxwid) {
+ while (group_len >= items[groupitems[groupdepth]].maxwid) {
group_len -= ptr2cells(t + n);
n += (*mb_ptr2len)(t + n);
}
} else {
- n = (long)(out_p - t) - item[groupitem[groupdepth]].maxwid + 1;
+ n = (long)(out_p - t) - items[groupitems[groupdepth]].maxwid + 1;
}
// }
@@ -3256,25 +3270,26 @@ int build_stl_str_hl(
// { Move the truncated output
memmove(t + 1, t + n, (size_t)(out_p - (t + n)));
out_p = out_p - n + 1;
- /* Fill up space left over by half a double-wide char. */
- while (++group_len < item[groupitem[groupdepth]].minwid)
+ // Fill up space left over by half a double-wide char.
+ while (++group_len < items[groupitems[groupdepth]].minwid) {
*out_p++ = fillchar;
+ }
// }
- /* correct the start of the items for the truncation */
- for (int idx = groupitem[groupdepth] + 1; idx < curitem; idx++) {
+ // correct the start of the items for the truncation
+ for (int idx = groupitems[groupdepth] + 1; idx < curitem; idx++) {
// Shift everything back by the number of removed bytes
- item[idx].start -= n;
+ items[idx].start -= n;
// If the item was partially or completely truncated, set its
// start to the start of the group
- if (item[idx].start < t) {
- item[idx].start = t;
+ if (items[idx].start < t) {
+ items[idx].start = t;
}
}
// If the group is shorter than the minimum width, add padding characters.
- } else if (abs(item[groupitem[groupdepth]].minwid) > group_len) {
- long min_group_width = item[groupitem[groupdepth]].minwid;
+ } else if (abs(items[groupitems[groupdepth]].minwid) > group_len) {
+ long min_group_width = items[groupitems[groupdepth]].minwid;
// If the group is left-aligned, add characters to the right.
if (min_group_width < 0) {
min_group_width = 0 - min_group_width;
@@ -3293,8 +3308,8 @@ int build_stl_str_hl(
// }
// Adjust item start positions
- for (int n = groupitem[groupdepth] + 1; n < curitem; n++) {
- item[n].start += group_len;
+ for (int n = groupitems[groupdepth] + 1; n < curitem; n++) {
+ items[n].start += group_len;
}
// Prepend the fill characters
@@ -3332,9 +3347,9 @@ int build_stl_str_hl(
// User highlight groups override the min width field
// to denote the styling to use.
if (*fmt_p == STL_USER_HL) {
- item[curitem].type = Highlight;
- item[curitem].start = out_p;
- item[curitem].minwid = minwid > 9 ? 1 : minwid;
+ items[curitem].type = Highlight;
+ items[curitem].start = out_p;
+ items[curitem].minwid = minwid > 9 ? 1 : minwid;
fmt_p++;
curitem++;
continue;
@@ -3366,20 +3381,21 @@ int build_stl_str_hl(
if (*fmt_p == STL_TABPAGENR || *fmt_p == STL_TABCLOSENR) {
if (*fmt_p == STL_TABCLOSENR) {
if (minwid == 0) {
- /* %X ends the close label, go back to the previously
- * define tab label nr. */
- for (long n = curitem - 1; n >= 0; --n)
- if (item[n].type == TabPage && item[n].minwid >= 0) {
- minwid = item[n].minwid;
+ // %X ends the close label, go back to the previous tab label nr.
+ for (long n = curitem - 1; n >= 0; n--) {
+ if (items[n].type == TabPage && items[n].minwid >= 0) {
+ minwid = items[n].minwid;
break;
}
- } else
- /* close nrs are stored as negative values */
+ }
+ } else {
+ // close nrs are stored as negative values
minwid = -minwid;
+ }
}
- item[curitem].type = TabPage;
- item[curitem].start = out_p;
- item[curitem].minwid = minwid;
+ items[curitem].type = TabPage;
+ items[curitem].start = out_p;
+ items[curitem].minwid = minwid;
fmt_p++;
curitem++;
continue;
@@ -3394,10 +3410,10 @@ int build_stl_str_hl(
if (*fmt_p != STL_CLICK_FUNC) {
break;
}
- item[curitem].type = ClickFunc;
- item[curitem].start = out_p;
- item[curitem].cmd = xmemdupz(t, (size_t) (((char *) fmt_p - t)));
- item[curitem].minwid = minwid;
+ items[curitem].type = ClickFunc;
+ items[curitem].start = out_p;
+ items[curitem].cmd = xmemdupz(t, (size_t)(((char *)fmt_p - t)));
+ items[curitem].minwid = minwid;
fmt_p++;
curitem++;
continue;
@@ -3420,11 +3436,11 @@ int build_stl_str_hl(
// Denotes the start of a new group
if (*fmt_p == '(') {
- groupitem[groupdepth++] = curitem;
- item[curitem].type = Group;
- item[curitem].start = out_p;
- item[curitem].minwid = minwid;
- item[curitem].maxwid = maxwid;
+ groupitems[groupdepth++] = curitem;
+ items[curitem].type = Group;
+ items[curitem].start = out_p;
+ items[curitem].minwid = minwid;
+ items[curitem].maxwid = maxwid;
fmt_p++;
curitem++;
continue;
@@ -3451,7 +3467,7 @@ int build_stl_str_hl(
case STL_FULLPATH:
case STL_FILENAME:
{
- // Set fillable to false to that ' ' in the filename will not
+ // Set fillable to false so that ' ' in the filename will not
// get replaced with the fillchar
fillable = false;
if (buf_spname(wp->w_buffer) != NULL) {
@@ -3599,6 +3615,7 @@ int build_stl_str_hl(
case STL_OFFSET_X:
base = kNumBaseHexadecimal;
+ // fallthrough
case STL_OFFSET:
{
long l = ml_find_line_or_offset(wp->w_buffer, wp->w_cursor.lnum, NULL);
@@ -3609,6 +3626,7 @@ int build_stl_str_hl(
}
case STL_BYTEVAL_X:
base = kNumBaseHexadecimal;
+ // fallthrough
case STL_BYTEVAL:
num = byteval;
if (num == NL)
@@ -3703,9 +3721,9 @@ int build_stl_str_hl(
// Create a highlight item based on the name
if (*fmt_p == '#') {
- item[curitem].type = Highlight;
- item[curitem].start = out_p;
- item[curitem].minwid = -syn_namen2id(t, (int)(fmt_p - t));
+ items[curitem].type = Highlight;
+ items[curitem].start = out_p;
+ items[curitem].minwid = -syn_namen2id(t, (int)(fmt_p - t));
curitem++;
fmt_p++;
}
@@ -3716,8 +3734,8 @@ int build_stl_str_hl(
// If we made it this far, the item is normal and starts at
// our current position in the output buffer.
// Non-normal items would have `continued`.
- item[curitem].start = out_p;
- item[curitem].type = Normal;
+ items[curitem].start = out_p;
+ items[curitem].type = Normal;
// Copy the item string into the output buffer
if (str != NULL && *str) {
@@ -3874,7 +3892,7 @@ int build_stl_str_hl(
// Otherwise, there was nothing to print so mark the item as empty
} else {
- item[curitem].type = Empty;
+ items[curitem].type = Empty;
}
// Only free the string buffer if we allocated it.
@@ -3899,8 +3917,7 @@ int build_stl_str_hl(
}
// We have now processed the entire statusline format string.
- // What follows is post-processing to handle alignment and
- // highlighting factors.
+ // What follows is post-processing to handle alignment and highlighting.
int width = vim_strsize(out);
if (maxwidth > 0 && width > maxwidth) {
@@ -3915,16 +3932,17 @@ int build_stl_str_hl(
// Otherwise, look for the truncation item
} else {
// Default to truncating at the first item
- trunc_p = item[0].start;
+ trunc_p = items[0].start;
item_idx = 0;
- for (int i = 0; i < itemcnt; i++)
- if (item[i].type == Trunc) {
- // Truncate at %< item.
- trunc_p = item[i].start;
+ for (int i = 0; i < itemcnt; i++) {
+ if (items[i].type == Trunc) {
+ // Truncate at %< items.
+ trunc_p = items[i].start;
item_idx = i;
break;
}
+ }
}
// If the truncation point we found is beyond the maximum
@@ -3954,7 +3972,7 @@ int build_stl_str_hl(
// Ignore any items in the statusline that occur after
// the truncation point
for (int i = 0; i < itemcnt; i++) {
- if (item[i].start > trunc_p) {
+ if (items[i].start > trunc_p) {
itemcnt = i;
break;
}
@@ -4009,12 +4027,12 @@ int build_stl_str_hl(
for (int i = item_idx; i < itemcnt; i++) {
// Items starting at or after the end of the truncated section need
// to be moved backwards.
- if (item[i].start >= trunc_end_p) {
- item[i].start -= item_offset;
+ if (items[i].start >= trunc_end_p) {
+ items[i].start -= item_offset;
// Anything inside the truncated area is set to start
// at the `<` truncation character.
} else {
- item[i].start = trunc_p;
+ items[i].start = trunc_p;
}
}
// }
@@ -4030,7 +4048,7 @@ int build_stl_str_hl(
// figuring out how many groups there are.
int num_separators = 0;
for (int i = 0; i < itemcnt; i++) {
- if (item[i].type == Separate) {
+ if (items[i].type == Separate) {
num_separators++;
}
}
@@ -4042,7 +4060,7 @@ int build_stl_str_hl(
int separator_locations[STL_MAX_ITEM];
int index = 0;
for (int i = 0; i < itemcnt; i++) {
- if (item[i].type == Separate) {
+ if (items[i].type == Separate) {
separator_locations[index] = i;
index++;
}
@@ -4053,18 +4071,18 @@ int build_stl_str_hl(
standard_spaces * (num_separators - 1);
for (int i = 0; i < num_separators; i++) {
- int dislocation = (i == (num_separators - 1)) ?
- final_spaces : standard_spaces;
- char_u *sep_loc = item[separator_locations[i]].start + dislocation;
- STRMOVE(sep_loc, item[separator_locations[i]].start);
- for (char_u *s = item[separator_locations[i]].start; s < sep_loc; s++) {
+ int dislocation = (i == (num_separators - 1))
+ ? final_spaces : standard_spaces;
+ char_u *seploc = items[separator_locations[i]].start + dislocation;
+ STRMOVE(seploc, items[separator_locations[i]].start);
+ for (char_u *s = items[separator_locations[i]].start; s < seploc; s++) {
*s = fillchar;
}
for (int item_idx = separator_locations[i] + 1;
item_idx < itemcnt;
item_idx++) {
- item[item_idx].start += dislocation;
+ items[item_idx].start += dislocation;
}
}
@@ -4076,9 +4094,9 @@ int build_stl_str_hl(
if (hltab != NULL) {
struct stl_hlrec *sp = hltab;
for (long l = 0; l < itemcnt; l++) {
- if (item[l].type == Highlight) {
- sp->start = item[l].start;
- sp->userhl = item[l].minwid;
+ if (items[l].type == Highlight) {
+ sp->start = items[l].start;
+ sp->userhl = items[l].minwid;
sp++;
}
}
@@ -4090,14 +4108,14 @@ int build_stl_str_hl(
if (tabtab != NULL) {
StlClickRecord *cur_tab_rec = tabtab;
for (long l = 0; l < itemcnt; l++) {
- if (item[l].type == TabPage) {
- cur_tab_rec->start = (char *) item[l].start;
- if (item[l].minwid == 0) {
+ if (items[l].type == TabPage) {
+ cur_tab_rec->start = (char *)items[l].start;
+ if (items[l].minwid == 0) {
cur_tab_rec->def.type = kStlClickDisabled;
cur_tab_rec->def.tabnr = 0;
} else {
- int tabnr = item[l].minwid;
- if (item[l].minwid > 0) {
+ int tabnr = items[l].minwid;
+ if (items[l].minwid > 0) {
cur_tab_rec->def.type = kStlClickTabSwitch;
} else {
cur_tab_rec->def.type = kStlClickTabClose;
@@ -4107,11 +4125,11 @@ int build_stl_str_hl(
}
cur_tab_rec->def.func = NULL;
cur_tab_rec++;
- } else if (item[l].type == ClickFunc) {
- cur_tab_rec->start = (char *) item[l].start;
+ } else if (items[l].type == ClickFunc) {
+ cur_tab_rec->start = (char *)items[l].start;
cur_tab_rec->def.type = kStlClickFuncRun;
- cur_tab_rec->def.tabnr = item[l].minwid;
- cur_tab_rec->def.func = item[l].cmd;
+ cur_tab_rec->def.tabnr = items[l].minwid;
+ cur_tab_rec->def.func = items[l].cmd;
cur_tab_rec++;
}
}
@@ -5126,6 +5144,30 @@ void sign_mark_adjust(linenr_T line1, linenr_T line2, long amount, long amount_a
// bufhl: plugin highlights associated with a buffer
+/// Get reference to line in kbtree_t
+///
+/// @param b the three
+/// @param line the linenumber to lookup
+/// @param put if true, put a new line when not found
+/// if false, return NULL when not found
+BufhlLine *bufhl_tree_ref(BufhlInfo *b, linenr_T line, bool put)
+{
+ BufhlLine t = BUFHLLINE_INIT(line);
+
+ // kp_put() only works if key is absent, try get first
+ BufhlLine **pp = kb_get(bufhl, b, &t);
+ if (pp) {
+ return *pp;
+ } else if (!put) {
+ return NULL;
+ }
+
+ BufhlLine *p = xmalloc(sizeof(*p));
+ *p = (BufhlLine)BUFHLLINE_INIT(line);
+ kb_put(bufhl, b, p);
+ return p;
+}
+
/// Adds a highlight to buffer.
///
/// Unlike matchaddpos() highlights follow changes to line numbering (as lines
@@ -5163,13 +5205,10 @@ int bufhl_add_hl(buf_T *buf,
// no highlight group or invalid line, just return src_id
return src_id;
}
- if (!buf->b_bufhl_info) {
- buf->b_bufhl_info = map_new(linenr_T, bufhl_vec_T)();
- }
- bufhl_vec_T* lineinfo = map_ref(linenr_T, bufhl_vec_T)(buf->b_bufhl_info,
- lnum, true);
- bufhl_hl_item_T *hlentry = kv_pushp(*lineinfo);
+ BufhlLine *lineinfo = bufhl_tree_ref(&buf->b_bufhl_info, lnum, true);
+
+ BufhlItem *hlentry = kv_pushp(lineinfo->items);
hlentry->src_id = src_id;
hlentry->hl_id = hl_id;
hlentry->start = col_start;
@@ -5191,20 +5230,24 @@ int bufhl_add_hl(buf_T *buf,
void bufhl_clear_line_range(buf_T *buf,
int src_id,
linenr_T line_start,
- linenr_T line_end) {
- if (!buf->b_bufhl_info) {
- return;
- }
- linenr_T line;
+ linenr_T line_end)
+{
linenr_T first_changed = MAXLNUM, last_changed = -1;
- // In the case line_start - line_end << bufhl_info->size
- // it might be better to reverse this, i e loop over the lines
- // to clear on.
- bufhl_vec_T unused;
- map_foreach(buf->b_bufhl_info, line, unused, {
- (void)unused;
+
+ kbitr_t(bufhl) itr;
+ BufhlLine *l, t = BUFHLLINE_INIT(line_start);
+ if (!kb_itr_get(bufhl, &buf->b_bufhl_info, &t, &itr)) {
+ kb_itr_next(bufhl, &buf->b_bufhl_info, &itr);
+ }
+ for (; kb_itr_valid(&itr); kb_itr_next(bufhl, &buf->b_bufhl_info, &itr)) {
+ l = kb_itr_key(&itr);
+ linenr_T line = l->line;
+ if (line > line_end) {
+ break;
+ }
if (line_start <= line && line <= line_end) {
- if (bufhl_clear_line(buf->b_bufhl_info, src_id, line)) {
+ BufhlLineStatus status = bufhl_clear_line(l, src_id, line);
+ if (status != kBLSUnchanged) {
if (line > last_changed) {
last_changed = line;
}
@@ -5212,8 +5255,12 @@ void bufhl_clear_line_range(buf_T *buf,
first_changed = line;
}
}
+ if (status == kBLSDeleted) {
+ kb_del_itr(bufhl, &buf->b_bufhl_info, &itr);
+ xfree(l);
+ }
}
- })
+ }
if (last_changed != -1) {
changed_lines_buf(buf, first_changed, last_changed+1, 0);
@@ -5226,42 +5273,40 @@ void bufhl_clear_line_range(buf_T *buf,
/// @param bufhl_info The highlight info for the buffer
/// @param src_id Highlight source group to clear, or -1 to clear all groups.
/// @param lnum Linenr where the highlight should be cleared
-static bool bufhl_clear_line(bufhl_info_T *bufhl_info, int src_id,
- linenr_T lnum)
+static BufhlLineStatus bufhl_clear_line(BufhlLine *lineinfo, int src_id,
+ linenr_T lnum)
{
- bufhl_vec_T *lineinfo = map_ref(linenr_T, bufhl_vec_T)(bufhl_info,
- lnum, false);
- size_t oldsize = kv_size(*lineinfo);
+ size_t oldsize = kv_size(lineinfo->items);
if (src_id < 0) {
- kv_size(*lineinfo) = 0;
+ kv_size(lineinfo->items) = 0;
} else {
- size_t newind = 0;
- for (size_t i = 0; i < kv_size(*lineinfo); i++) {
- if (kv_A(*lineinfo, i).src_id != src_id) {
- if (i != newind) {
- kv_A(*lineinfo, newind) = kv_A(*lineinfo, i);
+ size_t newidx = 0;
+ for (size_t i = 0; i < kv_size(lineinfo->items); i++) {
+ if (kv_A(lineinfo->items, i).src_id != src_id) {
+ if (i != newidx) {
+ kv_A(lineinfo->items, newidx) = kv_A(lineinfo->items, i);
}
- newind++;
+ newidx++;
}
}
- kv_size(*lineinfo) = newind;
+ kv_size(lineinfo->items) = newidx;
}
- if (kv_size(*lineinfo) == 0) {
- kv_destroy(*lineinfo);
- map_del(linenr_T, bufhl_vec_T)(bufhl_info, lnum);
+ if (kv_size(lineinfo->items) == 0) {
+ kv_destroy(lineinfo->items);
+ return kBLSDeleted;
}
- return kv_size(*lineinfo) != oldsize;
+ return kv_size(lineinfo->items) != oldsize ? kBLSChanged : kBLSUnchanged;
}
/// Remove all highlights and free the highlight data
-void bufhl_clear_all(buf_T* buf) {
- if (!buf->b_bufhl_info) {
- return;
- }
+void bufhl_clear_all(buf_T *buf)
+{
bufhl_clear_line_range(buf, -1, 1, MAXLNUM);
- map_free(linenr_T, bufhl_vec_T)(buf->b_bufhl_info);
- buf->b_bufhl_info = NULL;
+ kb_destroy(bufhl, (&buf->b_bufhl_info));
+ kb_init(&buf->b_bufhl_info);
+ kv_destroy(buf->b_bufhl_move_space);
+ kv_init(buf->b_bufhl_move_space);
}
/// Adjust a placed highlight for inserted/deleted lines.
@@ -5269,29 +5314,49 @@ void bufhl_mark_adjust(buf_T* buf,
linenr_T line1,
linenr_T line2,
long amount,
- long amount_after) {
- if (!buf->b_bufhl_info) {
+ long amount_after,
+ bool end_temp)
+{
+ kbitr_t(bufhl) itr;
+ BufhlLine *l, t = BUFHLLINE_INIT(line1);
+ if (end_temp && amount < 0) {
+ // Move all items from b_bufhl_move_space to the btree.
+ for (size_t i = 0; i < kv_size(buf->b_bufhl_move_space); i++) {
+ l = kv_A(buf->b_bufhl_move_space, i);
+ l->line += amount;
+ kb_put(bufhl, &buf->b_bufhl_info, l);
+ }
+ kv_size(buf->b_bufhl_move_space) = 0;
return;
}
- bufhl_info_T *newmap = map_new(linenr_T, bufhl_vec_T)();
- linenr_T line;
- bufhl_vec_T lineinfo;
- map_foreach(buf->b_bufhl_info, line, lineinfo, {
- if (line >= line1 && line <= line2) {
+ if (!kb_itr_get(bufhl, &buf->b_bufhl_info, &t, &itr)) {
+ kb_itr_next(bufhl, &buf->b_bufhl_info, &itr);
+ }
+ for (; kb_itr_valid(&itr); kb_itr_next(bufhl, &buf->b_bufhl_info, &itr)) {
+ l = kb_itr_key(&itr);
+ if (l->line >= line1 && l->line <= line2) {
+ if (end_temp && amount > 0) {
+ kb_del_itr(bufhl, &buf->b_bufhl_info, &itr);
+ kv_push(buf->b_bufhl_move_space, l);
+ }
if (amount == MAXLNUM) {
- bufhl_clear_line(buf->b_bufhl_info, -1, line);
- continue;
+ if (bufhl_clear_line(l, -1, l->line) == kBLSDeleted) {
+ kb_del_itr(bufhl, &buf->b_bufhl_info, &itr);
+ xfree(l);
+ } else {
+ assert(false);
+ }
} else {
- line += amount;
+ l->line += amount;
+ }
+ } else if (l->line > line2) {
+ if (amount_after == 0) {
+ break;
}
- } else if (line > line2) {
- line += amount_after;
+ l->line += amount_after;
}
- map_put(linenr_T, bufhl_vec_T)(newmap, line, lineinfo);
- });
- map_free(linenr_T, bufhl_vec_T)(buf->b_bufhl_info);
- buf->b_bufhl_info = newmap;
+ }
}
@@ -5301,13 +5366,14 @@ void bufhl_mark_adjust(buf_T* buf,
/// @param lnum The line number
/// @param[out] info The highligts for the line
/// @return true if there was highlights to display
-bool bufhl_start_line(buf_T *buf, linenr_T lnum, bufhl_lineinfo_T *info) {
- if (!buf->b_bufhl_info) {
+bool bufhl_start_line(buf_T *buf, linenr_T lnum, BufhlLineInfo *info)
+{
+ BufhlLine *lineinfo = bufhl_tree_ref(&buf->b_bufhl_info, lnum, false);
+ if (!lineinfo) {
return false;
}
-
info->valid_to = -1;
- info->entries = map_get(linenr_T, bufhl_vec_T)(buf->b_bufhl_info, lnum);
+ info->entries = lineinfo->items;
return kv_size(info->entries) > 0;
}
@@ -5321,14 +5387,15 @@ bool bufhl_start_line(buf_T *buf, linenr_T lnum, bufhl_lineinfo_T *info) {
/// @param info The info returned by bufhl_start_line
/// @param col The column to get the attr for
/// @return The highilight attr to display at the column
-int bufhl_get_attr(bufhl_lineinfo_T *info, colnr_T col) {
+int bufhl_get_attr(BufhlLineInfo *info, colnr_T col)
+{
if (col <= info->valid_to) {
return info->current;
}
int attr = 0;
info->valid_to = MAXCOL;
for (size_t i = 0; i < kv_size(info->entries); i++) {
- bufhl_hl_item_T entry = kv_A(info->entries, i);
+ BufhlItem entry = kv_A(info->entries, i);
if (entry.start <= col && col <= entry.stop) {
int entry_attr = syn_id2attr(entry.hl_id);
attr = hl_combine_attr(attr, entry_attr);
diff --git a/src/nvim/buffer.h b/src/nvim/buffer.h
index 39b9faf8b1..faeeed121c 100644
--- a/src/nvim/buffer.h
+++ b/src/nvim/buffer.h
@@ -83,14 +83,16 @@ static inline void restore_win_for_buf(win_T *save_curwin,
}
}
-static inline void buf_set_changedtick(buf_T *const buf, const int changedtick)
+static inline void buf_set_changedtick(buf_T *const buf,
+ const varnumber_T changedtick)
REAL_FATTR_NONNULL_ALL REAL_FATTR_ALWAYS_INLINE;
/// Set b_changedtick and corresponding variable
///
/// @param[out] buf Buffer to set changedtick in.
/// @param[in] changedtick New value.
-static inline void buf_set_changedtick(buf_T *const buf, const int changedtick)
+static inline void buf_set_changedtick(buf_T *const buf,
+ const varnumber_T changedtick)
{
#ifndef NDEBUG
dictitem_T *const changedtick_di = tv_dict_find(
@@ -113,7 +115,7 @@ static inline void buf_set_changedtick(buf_T *const buf, const int changedtick)
do { \
win_T *save_curwin = NULL; \
tabpage_T *save_curtab = NULL; \
- bufref_T save_curbuf = { NULL, 0 }; \
+ bufref_T save_curbuf = { NULL, 0, 0 }; \
switch_to_win_for_buf(b, &save_curwin, &save_curtab, &save_curbuf); \
code; \
restore_win_for_buf(save_curwin, save_curtab, &save_curbuf); \
diff --git a/src/nvim/buffer_defs.h b/src/nvim/buffer_defs.h
index 20a2b931bd..559dffb945 100644
--- a/src/nvim/buffer_defs.h
+++ b/src/nvim/buffer_defs.h
@@ -12,11 +12,14 @@ typedef struct file_buffer buf_T; // Forward declaration
// bufref_valid() only needs to check "buf" when the count differs.
typedef struct {
buf_T *br_buf;
+ int br_fnum;
int br_buf_free_count;
} bufref_T;
// for garray_T
#include "nvim/garray.h"
+// for HLF_COUNT
+#include "nvim/highlight_defs.h"
// for pos_T, lpos_T and linenr_T
#include "nvim/pos.h"
// for the number window-local and buffer-local options
@@ -103,8 +106,6 @@ typedef struct frame_S frame_T;
// for bufhl_*_T
#include "nvim/bufhl_defs.h"
-typedef Map(linenr_T, bufhl_vec_T) bufhl_info_T;
-
#include "nvim/os/fs_defs.h" // for FileID
#include "nvim/terminal.h" // for Terminal
@@ -233,6 +234,8 @@ typedef struct {
# define w_p_crb_save w_onebuf_opt.wo_crb_save
char_u *wo_scl;
# define w_p_scl w_onebuf_opt.wo_scl // 'signcolumn'
+ char_u *wo_winhl;
+# define w_p_winhl w_onebuf_opt.wo_winhl // 'winhighlight'
int wo_scriptID[WV_COUNT]; /* SIDs for window-local options */
# define w_p_scriptID w_onebuf_opt.wo_scriptID
@@ -436,6 +439,9 @@ typedef TV_DICTITEM_STRUCT(sizeof("changedtick")) ChangedtickDictItem;
#define BUF_HAS_QF_ENTRY 1
#define BUF_HAS_LL_ENTRY 2
+// Maximum number of maphash blocks we will have
+#define MAX_MAPHASH 256
+
/*
* buffer: structure that holds information about one file
*
@@ -524,8 +530,8 @@ struct file_buffer {
*/
uint64_t b_chartab[4];
- /* Table used for mappings local to a buffer. */
- mapblock_T *(b_maphash[256]);
+ // Table used for mappings local to a buffer.
+ mapblock_T *(b_maphash[MAX_MAPHASH]);
/* First abbreviation local to a buffer. */
mapblock_T *b_first_abbr;
@@ -754,7 +760,9 @@ struct file_buffer {
int b_mapped_ctrl_c; // modes where CTRL-C is mapped
- bufhl_info_T *b_bufhl_info; // buffer stored highlights
+ BufhlInfo b_bufhl_info; // buffer stored highlights
+
+ kvec_t(BufhlLine *) b_bufhl_move_space; // temporary space for highlights
};
/*
@@ -930,6 +938,14 @@ struct window_S {
synblock_T *w_s; /* for :ownsyntax */
+ int w_hl_id_normal; ///< 'winhighlight' normal id
+ int w_hl_attr_normal; ///< 'winhighlight' normal final attrs
+
+ int w_hl_ids[HLF_COUNT]; ///< 'winhighlight' id
+ int w_hl_attrs[HLF_COUNT]; ///< 'winhighlight' final attrs
+
+ int w_hl_needs_update; ///< attrs need to be recalculated
+
win_T *w_prev; /* link to previous window */
win_T *w_next; /* link to next window */
bool w_closing; /* window is being closed, don't let
@@ -1159,4 +1175,9 @@ struct window_S {
qf_info_T *w_llist_ref;
};
+static inline int win_hl_attr(win_T *wp, int hlf)
+{
+ return wp->w_hl_attrs[hlf];
+}
+
#endif // NVIM_BUFFER_DEFS_H
diff --git a/src/nvim/bufhl_defs.h b/src/nvim/bufhl_defs.h
index e47bb2a238..24bd6b7f29 100644
--- a/src/nvim/bufhl_defs.h
+++ b/src/nvim/bufhl_defs.h
@@ -3,23 +3,32 @@
#include "nvim/pos.h"
#include "nvim/lib/kvec.h"
+#include "nvim/lib/kbtree.h"
+
// bufhl: buffer specific highlighting
-struct bufhl_hl_item
-{
+typedef struct {
int src_id;
int hl_id; // highlight group
colnr_T start; // first column to highlight
colnr_T stop; // last column to highlight
-};
-typedef struct bufhl_hl_item bufhl_hl_item_T;
+} BufhlItem;
-typedef kvec_t(struct bufhl_hl_item) bufhl_vec_T;
+typedef kvec_t(BufhlItem) BufhlItemVec;
+
+typedef struct {
+ linenr_T line;
+ BufhlItemVec items;
+} BufhlLine;
+#define BUFHLLINE_INIT(l) { l, KV_INITIAL_VALUE }
typedef struct {
- bufhl_vec_T entries;
+ BufhlItemVec entries;
int current;
colnr_T valid_to;
-} bufhl_lineinfo_T;
+} BufhlLineInfo;
+#define BUFHL_CMP(a, b) ((int)(((a)->line - (b)->line)))
+KBTREE_INIT(bufhl, BufhlLine *, BUFHL_CMP, 10)
+typedef kbtree_t(bufhl) BufhlInfo;
#endif // NVIM_BUFHL_DEFS_H
diff --git a/src/nvim/charset.c b/src/nvim/charset.c
index ee58e0af91..48db1030a6 100644
--- a/src/nvim/charset.c
+++ b/src/nvim/charset.c
@@ -545,18 +545,8 @@ void transchar_nonprint(char_u *buf, int c)
buf[1] = (char_u)(c ^ 0x40);
buf[2] = NUL;
- } else if (c >= 0x80) {
- transchar_hex(buf, c);
- } else if ((c >= ' ' + 0x80) && (c <= '~' + 0x80)) {
- // 0xa0 - 0xfe
- buf[0] = '|';
- buf[1] = (char_u)(c - 0x80);
- buf[2] = NUL;
} else {
- // 0x80 - 0x9f and 0xff
- buf[0] = '~';
- buf[1] = (char_u)((c - 0x80) ^ 0x40);
- buf[2] = NUL;
+ transchar_hex(buf, c);
}
}
@@ -1631,13 +1621,13 @@ bool vim_isblankline(char_u *lbuf)
/// @param unptr Returns the unsigned result.
/// @param maxlen Max length of string to check.
void vim_str2nr(const char_u *const start, int *const prep, int *const len,
- const int what, long *const nptr, unsigned long *const unptr,
- const int maxlen)
+ const int what, varnumber_T *const nptr,
+ uvarnumber_T *const unptr, const int maxlen)
{
const char_u *ptr = start;
int pre = 0; // default is decimal
bool negative = false;
- unsigned long un = 0;
+ uvarnumber_T un = 0;
if (ptr[0] == '-') {
negative = true;
@@ -1693,7 +1683,12 @@ void vim_str2nr(const char_u *const start, int *const prep, int *const len,
n += 2; // skip over "0b"
}
while ('0' <= *ptr && *ptr <= '1') {
- un = 2 * un + (unsigned long)(*ptr - '0');
+ // avoid ubsan error for overflow
+ if (un < UVARNUMBER_MAX / 2) {
+ un = 2 * un + (uvarnumber_T)(*ptr - '0');
+ } else {
+ un = UVARNUMBER_MAX;
+ }
ptr++;
if (n++ == maxlen) {
break;
@@ -1702,7 +1697,12 @@ void vim_str2nr(const char_u *const start, int *const prep, int *const len,
} else if ((pre == '0') || what == STR2NR_OCT + STR2NR_FORCE) {
// octal
while ('0' <= *ptr && *ptr <= '7') {
- un = 8 * un + (unsigned long)(*ptr - '0');
+ // avoid ubsan error for overflow
+ if (un < UVARNUMBER_MAX / 8) {
+ un = 8 * un + (uvarnumber_T)(*ptr - '0');
+ } else {
+ un = UVARNUMBER_MAX;
+ }
ptr++;
if (n++ == maxlen) {
break;
@@ -1715,7 +1715,12 @@ void vim_str2nr(const char_u *const start, int *const prep, int *const len,
n += 2; // skip over "0x"
}
while (ascii_isxdigit(*ptr)) {
- un = 16 * un + (unsigned long)hex2nr(*ptr);
+ // avoid ubsan error for overflow
+ if (un < UVARNUMBER_MAX / 16) {
+ un = 16 * un + (uvarnumber_T)hex2nr(*ptr);
+ } else {
+ un = UVARNUMBER_MAX;
+ }
ptr++;
if (n++ == maxlen) {
break;
@@ -1724,7 +1729,12 @@ void vim_str2nr(const char_u *const start, int *const prep, int *const len,
} else {
// decimal
while (ascii_isdigit(*ptr)) {
- un = 10 * un + (unsigned long)(*ptr - '0');
+ // avoid ubsan error for overflow
+ if (un < UVARNUMBER_MAX / 10) {
+ un = 10 * un + (uvarnumber_T)(*ptr - '0');
+ } else {
+ un = UVARNUMBER_MAX;
+ }
ptr++;
if (n++ == maxlen) {
break;
@@ -1741,11 +1751,18 @@ void vim_str2nr(const char_u *const start, int *const prep, int *const len,
}
if (nptr != NULL) {
- if (negative) {
- // account for leading '-' for decimal numbers
- *nptr = -(long)un;
+ if (negative) { // account for leading '-' for decimal numbers
+ // avoid ubsan error for overflow
+ if (un > VARNUMBER_MAX) {
+ *nptr = VARNUMBER_MIN;
+ } else {
+ *nptr = -(varnumber_T)un;
+ }
} else {
- *nptr = (long)un;
+ if (un > VARNUMBER_MAX) {
+ un = VARNUMBER_MAX;
+ }
+ *nptr = (varnumber_T)un;
}
}
diff --git a/src/nvim/cursor_shape.c b/src/nvim/cursor_shape.c
index dcc680f806..97fc3a3ca3 100644
--- a/src/nvim/cursor_shape.c
+++ b/src/nvim/cursor_shape.c
@@ -142,9 +142,9 @@ char_u *parse_shape_opt(int what)
{
// Set the defaults, for the missing parts
shape_table[idx].shape = SHAPE_BLOCK;
- shape_table[idx].blinkwait = 700L;
- shape_table[idx].blinkon = 400L;
- shape_table[idx].blinkoff = 250L;
+ shape_table[idx].blinkwait = 0L;
+ shape_table[idx].blinkon = 0L;
+ shape_table[idx].blinkoff = 0L;
}
}
@@ -260,7 +260,7 @@ int cursor_mode_str2int(const char *mode)
return current_mode;
}
}
- ELOG("Unknown mode %s", mode);
+ WLOG("Unknown mode %s", mode);
return -1;
}
diff --git a/src/nvim/diff.c b/src/nvim/diff.c
index 0bd3f59cf2..7da6665cb7 100644
--- a/src/nvim/diff.c
+++ b/src/nvim/diff.c
@@ -2311,7 +2311,7 @@ void ex_diffgetput(exarg_T *eap)
// Adjust marks. This will change the following entries!
if (added != 0) {
- mark_adjust(lnum, lnum + count - 1, (long)MAXLNUM, (long)added);
+ mark_adjust(lnum, lnum + count - 1, (long)MAXLNUM, (long)added, false);
if (curwin->w_cursor.lnum >= lnum) {
// Adjust the cursor position if it's in/after the changed
// lines.
diff --git a/src/nvim/edit.c b/src/nvim/edit.c
index 678fa851eb..08a2f42f74 100644
--- a/src/nvim/edit.c
+++ b/src/nvim/edit.c
@@ -3422,7 +3422,6 @@ static void ins_compl_fixRedoBufForLeader(char_u *ptr_arg)
else
return; /* nothing to do */
}
- assert(ptr != NULL);
if (compl_orig_text != NULL) {
p = compl_orig_text;
for (len = 0; p[len] != NUL && p[len] == ptr[len]; ++len)
@@ -3434,7 +3433,6 @@ static void ins_compl_fixRedoBufForLeader(char_u *ptr_arg)
} else {
len = 0;
}
- assert(ptr != NULL);
AppendToRedobuffLit(ptr + len, -1);
}
@@ -4916,14 +4914,17 @@ static unsigned quote_meta(char_u *dest, char_u *src, int len)
if (ctrl_x_mode == CTRL_X_DICTIONARY
|| ctrl_x_mode == CTRL_X_THESAURUS)
break;
+ // fallthrough
case '~':
if (!p_magic) /* quote these only if magic is set */
break;
+ // fallthrough
case '\\':
if (ctrl_x_mode == CTRL_X_DICTIONARY
|| ctrl_x_mode == CTRL_X_THESAURUS)
break;
- case '^': /* currently it's not needed. */
+ // fallthrough
+ case '^': // currently it's not needed.
case '$':
m++;
if (dest != NULL)
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index d7feed8bfd..18aa5bf763 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -6,6 +6,7 @@
*/
#include <assert.h>
+#include <float.h>
#include <inttypes.h>
#include <stdarg.h>
#include <string.h>
@@ -97,6 +98,7 @@
#include "nvim/lib/kvec.h"
#include "nvim/lib/khash.h"
#include "nvim/lib/queue.h"
+#include "nvim/lua/executor.h"
#include "nvim/eval/typval.h"
#include "nvim/eval/executor.h"
#include "nvim/eval/gc.h"
@@ -445,7 +447,7 @@ typedef struct {
bool rpc;
int refcount;
Callback on_stdout, on_stderr, on_exit;
- int *status_ptr;
+ varnumber_T *status_ptr;
uint64_t id;
MultiQueue *events;
} TerminalJobData;
@@ -1080,10 +1082,10 @@ char_u *eval_to_string_safe(char_u *arg, char_u **nextcmd, int use_sandbox)
* Evaluates "expr" silently.
* Returns -1 for an error.
*/
-int eval_to_number(char_u *expr)
+varnumber_T eval_to_number(char_u *expr)
{
typval_T rettv;
- int retval;
+ varnumber_T retval;
char_u *p = skipwhite(expr);
++emsg_off;
@@ -1188,7 +1190,7 @@ int get_spellword(list_T *list, const char **pp)
}
-// Call some vimL function and return the result in "*rettv".
+// Call some vim script function and return the result in "*rettv".
// Uses argv[argc] for the function arguments. Only Number and String
// arguments are currently supported.
//
@@ -1202,7 +1204,7 @@ int call_vim_function(
typval_T *rettv
)
{
- long n;
+ varnumber_T n;
int len;
int doesrange;
void *save_funccalp = NULL;
@@ -1255,21 +1257,19 @@ int call_vim_function(
return ret;
}
-/*
- * Call vimL function "func" and return the result as a number.
- * Returns -1 when calling the function fails.
- * Uses argv[argc] for the function arguments.
- */
-long
-call_func_retnr (
- char_u *func,
- int argc,
- const char_u *const *const argv,
- int safe // use the sandbox
-)
+/// Call Vim script function and return the result as a number
+///
+/// @param[in] func Function name.
+/// @param[in] argc Number of arguments.
+/// @param[in] argv Array with string arguments.
+/// @param[in] safe Use with sandbox.
+///
+/// @return -1 when calling function fails, result of function otherwise.
+varnumber_T call_func_retnr(char_u *func, int argc,
+ const char_u *const *const argv, int safe)
{
typval_T rettv;
- long retval;
+ varnumber_T retval;
/* All arguments are passed as strings, no conversion to number. */
if (call_vim_function(func, argc, argv, safe, TRUE, &rettv) == FAIL)
@@ -1280,14 +1280,14 @@ call_func_retnr (
return retval;
}
-/// Call VimL function and return the result as a string
+/// Call Vim script function and return the result as a string
///
/// @param[in] func Function name.
/// @param[in] argc Number of arguments.
/// @param[in] argv Array with string arguments.
/// @param[in] safe Use the sandbox.
///
-/// @return [allocated] NULL when calling function failes, allocated string
+/// @return [allocated] NULL when calling function fails, allocated string
/// otherwise.
char *call_func_retstr(const char *const func, const int argc,
const char_u *const *const argv,
@@ -1306,18 +1306,17 @@ char *call_func_retstr(const char *const func, const int argc,
return retval;
}
-/*
- * Call vimL function "func" and return the result as a List.
- * Uses argv[argc] for the function arguments.
- * Returns NULL when there is something wrong.
- */
-void *
-call_func_retlist (
- char_u *func,
- int argc,
- const char_u *const *const argv,
- int safe // use the sandbox
-)
+/// Call Vim script function and return the result as a List
+///
+/// @param[in] func Function name.
+/// @param[in] argc Number of arguments.
+/// @param[in] argv Array with string arguments.
+/// @param[in] safe Use the sandbox.
+///
+/// @return [allocated] NULL when calling function fails or return tv is not a
+/// List, allocated List otherwise.
+void *call_func_retlist(char_u *func, int argc, const char_u *const *const argv,
+ int safe)
{
typval_T rettv;
@@ -1398,7 +1397,7 @@ void prof_child_exit(proftime_T *tm /* where waittime was stored */
int eval_foldexpr(char_u *arg, int *cp)
{
typval_T tv;
- int retval;
+ varnumber_T retval;
char_u *s;
int use_sandbox = was_set_insecurely((char_u *)"foldexpr",
OPT_LOCAL);
@@ -1431,7 +1430,7 @@ int eval_foldexpr(char_u *arg, int *cp)
--sandbox;
--textlock;
- return retval;
+ return (int)retval;
}
/*
@@ -2285,7 +2284,7 @@ static char_u *get_lval(char_u *const name, typval_T *const rettv,
if (empty1) {
lp->ll_n1 = 0;
} else {
- lp->ll_n1 = tv_get_number(&var1); // Is number or string.
+ lp->ll_n1 = (long)tv_get_number(&var1); // Is number or string.
tv_clear(&var1);
}
lp->ll_dict = NULL;
@@ -2314,7 +2313,7 @@ static char_u *get_lval(char_u *const name, typval_T *const rettv,
* Otherwise "lp->ll_n2" is set to the second index.
*/
if (lp->ll_range && !lp->ll_empty2) {
- lp->ll_n2 = tv_get_number(&var2); // Is number or string.
+ lp->ll_n2 = (long)tv_get_number(&var2); // Is number or string.
tv_clear(&var2);
if (lp->ll_n2 < 0) {
ni = tv_list_find(lp->ll_list, lp->ll_n2);
@@ -3524,7 +3523,7 @@ static int eval4(char_u **arg, typval_T *rettv, int evaluate)
exptype_T type = TYPE_UNKNOWN;
int type_is = FALSE; /* TRUE for "is" and "isnot" */
int len = 2;
- long n1, n2;
+ varnumber_T n1, n2;
int ic;
/*
@@ -3786,7 +3785,7 @@ static int eval5(char_u **arg, typval_T *rettv, int evaluate)
typval_T var2;
typval_T var3;
int op;
- long n1, n2;
+ varnumber_T n1, n2;
float_T f1 = 0, f2 = 0;
char_u *p;
@@ -3916,29 +3915,26 @@ static int eval5(char_u **arg, typval_T *rettv, int evaluate)
// TODO(ZyX-I): move to eval/expressions
-/*
- * Handle fifth level expression:
- * * number multiplication
- * / number division
- * % number modulo
- *
- * "arg" must point to the first non-white of the expression.
- * "arg" is advanced to the next non-white after the recognized expression.
- *
- * Return OK or FAIL.
- */
-static int
-eval6 (
- char_u **arg,
- typval_T *rettv,
- int evaluate,
- int want_string /* after "." operator */
-)
+/// Handle fifth level expression:
+/// - * number multiplication
+/// - / number division
+/// - % number modulo
+///
+/// @param[in,out] arg Points to the first non-whitespace character of the
+/// expression. Is advanced to the next non-whitespace
+/// character after the recognized expression.
+/// @param[out] rettv Location where result is saved.
+/// @param[in] evaluate If not true, rettv is not populated.
+/// @param[in] want_string True if "." is string_concatenation, otherwise
+/// float
+/// @return OK or FAIL.
+static int eval6(char_u **arg, typval_T *rettv, int evaluate, int want_string)
+ FUNC_ATTR_NO_SANITIZE_UNDEFINED
{
typval_T var2;
int op;
- long n1, n2;
- int use_float = FALSE;
+ varnumber_T n1, n2;
+ bool use_float = false;
float_T f1 = 0, f2;
bool error = false;
@@ -3959,7 +3955,7 @@ eval6 (
if (evaluate) {
if (rettv->v_type == VAR_FLOAT) {
f1 = rettv->vval.v_float;
- use_float = TRUE;
+ use_float = true;
n1 = 0;
} else {
n1 = tv_get_number_chk(rettv, &error);
@@ -3983,7 +3979,7 @@ eval6 (
if (var2.v_type == VAR_FLOAT) {
if (!use_float) {
f1 = n1;
- use_float = TRUE;
+ use_float = true;
}
f2 = var2.vval.v_float;
n2 = 0;
@@ -4026,18 +4022,20 @@ eval6 (
rettv->v_type = VAR_FLOAT;
rettv->vval.v_float = f1;
} else {
- if (op == '*')
+ if (op == '*') {
n1 = n1 * n2;
- else if (op == '/') {
- if (n2 == 0) { /* give an error message? */
- if (n1 == 0)
- n1 = -0x7fffffffL - 1L; /* similar to NaN */
- else if (n1 < 0)
- n1 = -0x7fffffffL;
- else
- n1 = 0x7fffffffL;
- } else
+ } else if (op == '/') {
+ if (n2 == 0) { // give an error message?
+ if (n1 == 0) {
+ n1 = VARNUMBER_MIN; // similar to NaN
+ } else if (n1 < 0) {
+ n1 = -VARNUMBER_MAX;
+ } else {
+ n1 = VARNUMBER_MAX;
+ }
+ } else {
n1 = n1 / n2;
+ }
} else {
if (n2 == 0) /* give an error message? */
n1 = 0;
@@ -4086,7 +4084,7 @@ static int eval7(
int want_string // after "." operator
)
{
- long n;
+ varnumber_T n;
int len;
char_u *s;
char_u *start_leader, *end_leader;
@@ -4284,7 +4282,7 @@ static int eval7(
// Apply logical NOT and unary '-', from right to left, ignore '+'.
if (ret == OK && evaluate && end_leader > start_leader) {
bool error = false;
- int val = 0;
+ varnumber_T val = 0;
float_T f = 0.0;
if (rettv->v_type == VAR_FLOAT) {
@@ -5099,7 +5097,8 @@ bool garbage_collect(bool testing)
do {
yankreg_T reg;
char name = NUL;
- reg_iter = op_register_iter(reg_iter, &name, &reg);
+ bool is_unnamed = false;
+ reg_iter = op_register_iter(reg_iter, &name, &reg, &is_unnamed);
if (name != NUL) {
ABORTING(set_ref_dict)(reg.additional_data, copyID);
}
@@ -5896,6 +5895,19 @@ size_t string2float(const char *const text, float_T *const ret_value)
{
char *s = NULL;
+ // MS-Windows does not deal with "inf" and "nan" properly
+ if (STRNICMP(text, "inf", 3) == 0) {
+ *ret_value = INFINITY;
+ return 3;
+ }
+ if (STRNICMP(text, "-inf", 3) == 0) {
+ *ret_value = -INFINITY;
+ return 4;
+ }
+ if (STRNICMP(text, "nan", 3) == 0) {
+ *ret_value = NAN;
+ return 3;
+ }
*ret_value = strtod(text, &s);
return (size_t) (s - text);
}
@@ -6009,7 +6021,7 @@ char_u *get_expr_name(expand_T *xp, int idx)
/// @param[in] name Name of the function.
///
/// Returns pointer to the function definition or NULL if not found.
-static VimLFuncDef *find_internal_func(const char *const name)
+static const VimLFuncDef *find_internal_func(const char *const name)
FUNC_ATTR_WARN_UNUSED_RESULT FUNC_ATTR_PURE FUNC_ATTR_NONNULL_ALL
{
size_t len = strlen(name);
@@ -6378,7 +6390,7 @@ call_func(
}
} else {
// Find the function name in the table, call its implementation.
- VimLFuncDef *const fdef = find_internal_func((const char *)fname);
+ const VimLFuncDef *const fdef = find_internal_func((const char *)fname);
if (fdef != NULL) {
if (argcount < fdef->min_argc) {
error = ERROR_TOOFEW;
@@ -6510,7 +6522,7 @@ static void api_wrapper(typval_T *argvars, typval_T *rettv, FunPtr fptr)
}
Error err = ERROR_INIT;
- Object result = fn(INTERNAL_CALL, args, &err);
+ Object result = fn(VIML_INTERNAL_CALL, args, &err);
if (ERROR_SET(&err)) {
nvim_err_writeln(cstr_as_string(err.msg));
@@ -6676,7 +6688,7 @@ static void f_argv(typval_T *argvars, typval_T *rettv, FunPtr fptr)
int idx;
if (argvars[0].v_type != VAR_UNKNOWN) {
- idx = tv_get_number_chk(&argvars[0], NULL);
+ idx = (int)tv_get_number_chk(&argvars[0], NULL);
if (idx >= 0 && idx < ARGCOUNT) {
rettv->vval.v_string = (char_u *)xstrdup(
(const char *)alist_name(&ARGLIST[idx]));
@@ -6792,6 +6804,17 @@ static void f_assert_notequal(typval_T *argvars, typval_T *rettv, FunPtr fptr)
assert_equal_common(argvars, ASSERT_NOTEQUAL);
}
+/// "assert_report(msg)
+static void f_assert_report(typval_T *argvars, typval_T *rettv, FunPtr fptr)
+{
+ garray_T ga;
+
+ prepare_assert_error(&ga);
+ ga_concat(&ga, (const char_u *)tv_get_string(&argvars[0]));
+ assert_error(&ga);
+ ga_clear(&ga);
+}
+
/// "assert_exception(string[, msg])" function
static void f_assert_exception(typval_T *argvars, typval_T *rettv, FunPtr fptr)
{
@@ -7401,7 +7424,7 @@ static void f_complete(typval_T *argvars, typval_T *rettv, FunPtr fptr)
return;
}
- const int startcol = tv_get_number_chk(&argvars[0], NULL);
+ const colnr_T startcol = tv_get_number_chk(&argvars[0], NULL);
if (startcol <= 0) {
return;
}
@@ -7612,9 +7635,9 @@ static void f_cursor(typval_T *argvars, typval_T *rettv, FunPtr fptr)
}
} else {
line = tv_get_lnum(argvars);
- col = tv_get_number_chk(&argvars[1], NULL);
+ col = (long)tv_get_number_chk(&argvars[1], NULL);
if (argvars[2].v_type != VAR_UNKNOWN) {
- coladd = tv_get_number_chk(&argvars[2], NULL);
+ coladd = (long)tv_get_number_chk(&argvars[2], NULL);
}
}
if (line < 0 || col < 0
@@ -8168,7 +8191,7 @@ static void f_extend(typval_T *argvars, typval_T *rettv, FunPtr fptr)
} else if (!tv_check_lock(l1->lv_lock, arg_errmsg, TV_TRANSLATE)) {
listitem_T *item;
if (argvars[2].v_type != VAR_UNKNOWN) {
- before = tv_get_number_chk(&argvars[2], &error);
+ before = (long)tv_get_number_chk(&argvars[2], &error);
if (error) {
return; // Type error; errmsg already given.
}
@@ -8537,9 +8560,9 @@ static void f_float2nr(typval_T *argvars, typval_T *rettv, FunPtr fptr)
float_T f;
if (tv_get_float_chk(argvars, &f)) {
- if (f < VARNUMBER_MIN) {
- rettv->vval.v_number = VARNUMBER_MIN;
- } else if (f > VARNUMBER_MAX) {
+ if (f <= -VARNUMBER_MAX + DBL_EPSILON) {
+ rettv->vval.v_number = -VARNUMBER_MAX;
+ } else if (f >= VARNUMBER_MAX - DBL_EPSILON) {
rettv->vval.v_number = VARNUMBER_MAX;
} else {
rettv->vval.v_number = (varnumber_T)f;
@@ -9595,13 +9618,15 @@ static void f_getcwd(typval_T *argvars, typval_T *rettv, FunPtr fptr)
if (from) {
break;
}
- case kCdScopeTab: // FALLTHROUGH
+ // fallthrough
+ case kCdScopeTab:
assert(tp);
from = tp->tp_localdir;
if (from) {
break;
}
- case kCdScopeGlobal: // FALLTHROUGH
+ // fallthrough
+ case kCdScopeGlobal:
if (globaldir) { // `globaldir` is not always set.
from = globaldir;
} else if (os_dirname(cwd, MAXPATHL) == FAIL) { // Get the OS CWD.
@@ -10512,6 +10537,7 @@ static void f_has(typval_T *argvars, typval_T *rettv, FunPtr fptr)
"mouse",
"multi_byte",
"multi_lang",
+ "num64",
"packages",
"path_extra",
"persistent_undo",
@@ -10973,83 +10999,126 @@ static int inputsecret_flag = 0;
* prompt. The third argument to f_inputdialog() specifies the value to return
* when the user cancels the prompt.
*/
-static void get_user_input(typval_T *argvars, typval_T *rettv, int inputdialog)
+void get_user_input(const typval_T *const argvars,
+ typval_T *const rettv, const bool inputdialog)
+ FUNC_ATTR_NONNULL_ALL
{
- const char *prompt = tv_get_string_chk(&argvars[0]);
- int cmd_silent_save = cmd_silent;
- int xp_type = EXPAND_NOTHING;
- char_u *xp_arg = NULL;
-
rettv->v_type = VAR_STRING;
rettv->vval.v_string = NULL;
- cmd_silent = FALSE; /* Want to see the prompt. */
- if (prompt != NULL) {
- // Only the part of the message after the last NL is considered as
- // prompt for the command line.
- const char *p = strrchr(prompt, '\n');
- if (p == NULL) {
- p = prompt;
- } else {
- p++;
- msg_start();
- msg_clr_eos();
- msg_puts_attr_len(prompt, p - prompt, echo_attr);
- msg_didout = false;
- msg_starthere();
+ const char *prompt = "";
+ const char *defstr = "";
+ const char *cancelreturn = NULL;
+ const char *xp_name = NULL;
+ char prompt_buf[NUMBUFLEN];
+ char defstr_buf[NUMBUFLEN];
+ char cancelreturn_buf[NUMBUFLEN];
+ char xp_name_buf[NUMBUFLEN];
+ if (argvars[0].v_type == VAR_DICT) {
+ if (argvars[1].v_type != VAR_UNKNOWN) {
+ emsgf(_("E5050: {opts} must be the only argument"));
+ return;
+ }
+ const dict_T *const dict = argvars[0].vval.v_dict;
+ prompt = tv_dict_get_string_buf_chk(dict, S_LEN("prompt"), prompt_buf, "");
+ if (prompt == NULL) {
+ return;
+ }
+ defstr = tv_dict_get_string_buf_chk(dict, S_LEN("default"), defstr_buf, "");
+ if (defstr == NULL) {
+ return;
+ }
+ char def[1] = { 0 };
+ cancelreturn = tv_dict_get_string_buf_chk(dict, S_LEN("cancelreturn"),
+ cancelreturn_buf, def);
+ if (cancelreturn == NULL) { // error
+ return;
+ }
+ if (*cancelreturn == NUL) {
+ cancelreturn = NULL;
+ }
+ xp_name = tv_dict_get_string_buf_chk(dict, S_LEN("completion"),
+ xp_name_buf, def);
+ if (xp_name == NULL) { // error
+ return;
+ }
+ if (xp_name == def) { // default to NULL
+ xp_name = NULL;
+ }
+ } else {
+ prompt = tv_get_string_buf_chk(&argvars[0], prompt_buf);
+ if (prompt == NULL) {
+ return;
}
- cmdline_row = msg_row;
-
- const char *defstr = "";
- char buf[NUMBUFLEN];
if (argvars[1].v_type != VAR_UNKNOWN) {
- defstr = tv_get_string_buf_chk(&argvars[1], buf);
- if (defstr != NULL) {
- stuffReadbuffSpec(defstr);
+ defstr = tv_get_string_buf_chk(&argvars[1], defstr_buf);
+ if (defstr == NULL) {
+ return;
}
-
- if (!inputdialog && argvars[2].v_type != VAR_UNKNOWN) {
- char buf2[NUMBUFLEN];
- // input() with a third argument: completion
- rettv->vval.v_string = NULL;
-
- const char *const xp_name = tv_get_string_buf_chk(&argvars[2], buf2);
- if (xp_name == NULL) {
+ if (argvars[2].v_type != VAR_UNKNOWN) {
+ const char *const arg2 = tv_get_string_buf_chk(&argvars[2],
+ cancelreturn_buf);
+ if (arg2 == NULL) {
return;
}
-
- const int xp_namelen = (int)strlen(xp_name);
-
- uint32_t argt;
- if (parse_compl_arg((char_u *)xp_name, xp_namelen, &xp_type, &argt,
- &xp_arg) == FAIL) {
- return;
+ if (inputdialog) {
+ cancelreturn = arg2;
+ } else {
+ xp_name = arg2;
}
}
}
+ }
- if (defstr != NULL) {
- int save_ex_normal_busy = ex_normal_busy;
- ex_normal_busy = 0;
- rettv->vval.v_string =
- getcmdline_prompt(inputsecret_flag ? NUL : '@', (char_u *)p, echo_attr,
- xp_type, xp_arg);
- ex_normal_busy = save_ex_normal_busy;
- }
- if (inputdialog && rettv->vval.v_string == NULL
- && argvars[1].v_type != VAR_UNKNOWN
- && argvars[2].v_type != VAR_UNKNOWN) {
- char buf[NUMBUFLEN];
- rettv->vval.v_string = (char_u *)xstrdup(tv_get_string_buf(
- &argvars[2], buf));
+ int xp_type = EXPAND_NOTHING;
+ char *xp_arg = NULL;
+ if (xp_name != NULL) {
+ // input() with a third argument: completion
+ const int xp_namelen = (int)strlen(xp_name);
+
+ uint32_t argt;
+ if (parse_compl_arg((char_u *)xp_name, xp_namelen, &xp_type,
+ &argt, (char_u **)&xp_arg) == FAIL) {
+ return;
}
+ }
- xfree(xp_arg);
+ int cmd_silent_save = cmd_silent;
- /* since the user typed this, no need to wait for return */
- need_wait_return = FALSE;
- msg_didout = FALSE;
+ cmd_silent = false; // Want to see the prompt.
+ // Only the part of the message after the last NL is considered as
+ // prompt for the command line.
+ const char *p = strrchr(prompt, '\n');
+ if (p == NULL) {
+ p = prompt;
+ } else {
+ p++;
+ msg_start();
+ msg_clr_eos();
+ msg_puts_attr_len(prompt, p - prompt, echo_attr);
+ msg_didout = false;
+ msg_starthere();
}
+ cmdline_row = msg_row;
+
+ stuffReadbuffSpec(defstr);
+
+ int save_ex_normal_busy = ex_normal_busy;
+ ex_normal_busy = 0;
+ rettv->vval.v_string =
+ getcmdline_prompt(inputsecret_flag ? NUL : '@', (char_u *)p, echo_attr,
+ xp_type, (char_u *)xp_arg);
+ ex_normal_busy = save_ex_normal_busy;
+
+ if (rettv->vval.v_string == NULL && cancelreturn != NULL) {
+ rettv->vval.v_string = (char_u *)xstrdup(cancelreturn);
+ }
+
+ xfree(xp_arg);
+
+ // Since the user typed this, no need to wait for return.
+ need_wait_return = false;
+ msg_didout = false;
cmd_silent = cmd_silent_save;
}
@@ -12056,24 +12125,61 @@ static void get_maparg(typval_T *argvars, typval_T *rettv, int exact)
tv_dict_alloc_ret(rettv);
if (rhs != NULL) {
// Return a dictionary.
- char_u *lhs = str2special_save(mp->m_keys, true);
- char *const mapmode = map_mode_to_chars(mp->m_mode);
- dict_T *dict = rettv->vval.v_dict;
+ mapblock_fill_dict(rettv->vval.v_dict, mp, buffer_local, true);
+ }
+ }
+}
- tv_dict_add_str(dict, S_LEN("lhs"), (const char *)lhs);
- tv_dict_add_str(dict, S_LEN("rhs"), (const char *)mp->m_orig_str);
- tv_dict_add_nr(dict, S_LEN("noremap"), mp->m_noremap ? 1 : 0);
- tv_dict_add_nr(dict, S_LEN("expr"), mp->m_expr ? 1 : 0);
- tv_dict_add_nr(dict, S_LEN("silent"), mp->m_silent ? 1 : 0);
- tv_dict_add_nr(dict, S_LEN("sid"), (varnumber_T)mp->m_script_ID);
- tv_dict_add_nr(dict, S_LEN("buffer"), (varnumber_T)buffer_local);
- tv_dict_add_nr(dict, S_LEN("nowait"), mp->m_nowait ? 1 : 0);
- tv_dict_add_str(dict, S_LEN("mode"), mapmode);
+/// luaeval() function implementation
+static void f_luaeval(typval_T *argvars, typval_T *rettv, FunPtr fptr)
+ FUNC_ATTR_NONNULL_ALL
+{
+ const char *const str = (const char *)tv_get_string_chk(&argvars[0]);
+ if (str == NULL) {
+ return;
+ }
- xfree(lhs);
- xfree(mapmode);
- }
+ executor_eval_lua(cstr_as_string((char *)str), &argvars[1], rettv);
+}
+
+/// Fill a dictionary with all applicable maparg() like dictionaries
+///
+/// @param dict The dictionary to be filled
+/// @param mp The maphash that contains the mapping information
+/// @param buffer_value The "buffer" value
+/// @param compatible True for compatible with old maparg() dict
+void mapblock_fill_dict(dict_T *const dict,
+ const mapblock_T *const mp,
+ long buffer_value,
+ bool compatible)
+ FUNC_ATTR_NONNULL_ALL
+{
+ char_u *lhs = str2special_save(mp->m_keys, true);
+ char *const mapmode = map_mode_to_chars(mp->m_mode);
+ varnumber_T noremap_value;
+
+ if (compatible) {
+ // Keep old compatible behavior
+ // This is unable to determine whether a mapping is a <script> mapping
+ noremap_value = !!mp->m_noremap;
+ } else {
+ // Distinguish between <script> mapping
+ // If it's not a <script> mapping, check if it's a noremap
+ noremap_value = mp->m_noremap == REMAP_SCRIPT ? 2 : !!mp->m_noremap;
}
+
+ tv_dict_add_str(dict, S_LEN("lhs"), (const char *)lhs);
+ tv_dict_add_str(dict, S_LEN("rhs"), (const char *)mp->m_orig_str);
+ tv_dict_add_nr(dict, S_LEN("noremap"), noremap_value);
+ tv_dict_add_nr(dict, S_LEN("expr"), mp->m_expr ? 1 : 0);
+ tv_dict_add_nr(dict, S_LEN("silent"), mp->m_silent ? 1 : 0);
+ tv_dict_add_nr(dict, S_LEN("sid"), (varnumber_T)mp->m_script_ID);
+ tv_dict_add_nr(dict, S_LEN("buffer"), (varnumber_T)buffer_value);
+ tv_dict_add_nr(dict, S_LEN("nowait"), mp->m_nowait ? 1 : 0);
+ tv_dict_add_str(dict, S_LEN("mode"), mapmode);
+
+ xfree(lhs);
+ xfree(mapmode);
}
/*
@@ -12575,59 +12681,18 @@ static void f_mkdir(typval_T *argvars, typval_T *rettv, FunPtr fptr)
}
}
-/*
- * "mode()" function
- */
+/// "mode()" function
static void f_mode(typval_T *argvars, typval_T *rettv, FunPtr fptr)
{
- char_u buf[3];
-
- buf[1] = NUL;
- buf[2] = NUL;
+ char *mode = get_mode();
- if (VIsual_active) {
- if (VIsual_select)
- buf[0] = VIsual_mode + 's' - 'v';
- else
- buf[0] = VIsual_mode;
- } else if (State == HITRETURN || State == ASKMORE || State == SETWSIZE
- || State == CONFIRM) {
- buf[0] = 'r';
- if (State == ASKMORE)
- buf[1] = 'm';
- else if (State == CONFIRM)
- buf[1] = '?';
- } else if (State == EXTERNCMD)
- buf[0] = '!';
- else if (State & INSERT) {
- if (State & VREPLACE_FLAG) {
- buf[0] = 'R';
- buf[1] = 'v';
- } else if (State & REPLACE_FLAG)
- buf[0] = 'R';
- else
- buf[0] = 'i';
- } else if (State & CMDLINE) {
- buf[0] = 'c';
- if (exmode_active)
- buf[1] = 'v';
- } else if (exmode_active) {
- buf[0] = 'c';
- buf[1] = 'e';
- } else if (State & TERM_FOCUS) {
- buf[0] = 't';
- } else {
- buf[0] = 'n';
- if (finish_op)
- buf[1] = 'o';
+ // Clear out the minor mode when the argument is not a non-zero number or
+ // non-empty string.
+ if (!non_zero_arg(&argvars[0])) {
+ mode[1] = NUL;
}
- /* Clear out the minor mode when the argument is not a non-zero number or
- * non-empty string. */
- if (!non_zero_arg(&argvars[0]))
- buf[1] = NUL;
-
- rettv->vval.v_string = vim_strsave(buf);
+ rettv->vval.v_string = (char_u *)mode;
rettv->v_type = VAR_STRING;
}
@@ -12902,7 +12967,7 @@ static void f_range(typval_T *argvars, typval_T *rettv, FunPtr fptr)
varnumber_T start;
varnumber_T end;
varnumber_T stride = 1;
- long i;
+ varnumber_T i;
bool error = false;
start = tv_get_number_chk(&argvars[0], &error);
@@ -13041,8 +13106,9 @@ static void f_readfile(typval_T *argvars, typval_T *rettv, FunPtr fptr)
/* have to shuffle buf to close gap */
int adjust_prevlen = 0;
- if (dest < buf) {
- adjust_prevlen = (int)(buf - dest); /* must be 1 or 2 */
+ if (dest < buf) { // -V782
+ adjust_prevlen = (int)(buf - dest); // -V782
+ // adjust_prevlen must be 1 or 2.
dest = buf;
}
if (readlen > p - buf + 1)
@@ -13119,7 +13185,7 @@ static int list2proftime(typval_T *arg, proftime_T *tm) FUNC_ATTR_NONNULL_ALL
// in f_reltime() we split up the 64-bit proftime_T into two 32-bit
// values, now we combine them again.
union {
- struct { varnumber_T low, high; } split;
+ struct { int32_t low, high; } split;
proftime_T prof;
} u = { .split.high = n1, .split.low = n2 };
@@ -13160,7 +13226,7 @@ static void f_reltime(typval_T *argvars, typval_T *rettv, FunPtr fptr)
// (varnumber_T is defined as int). For all our supported platforms, int's
// are at least 32-bits wide. So we'll use two 32-bit values to store it.
union {
- struct { varnumber_T low, high; } split;
+ struct { int32_t low, high; } split;
proftime_T prof;
} u = { .prof = res };
@@ -14278,22 +14344,39 @@ static void f_serverstart(typval_T *argvars, typval_T *rettv, FunPtr fptr)
return;
}
+ char *address;
// If the user supplied an address, use it, otherwise use a temp.
if (argvars[0].v_type != VAR_UNKNOWN) {
if (argvars[0].v_type != VAR_STRING) {
EMSG(_(e_invarg));
return;
} else {
- rettv->vval.v_string = (char_u *)xstrdup(tv_get_string(argvars));
+ address = xstrdup(tv_get_string(argvars));
}
} else {
- rettv->vval.v_string = (char_u *)server_address_new();
+ address = server_address_new();
}
- int result = server_start((char *) rettv->vval.v_string);
+ int result = server_start(address);
+ xfree(address);
+
if (result != 0) {
- EMSG2("Failed to start server: %s", uv_strerror(result));
+ EMSG2("Failed to start server: %s",
+ result > 0 ? "Unknown system error" : uv_strerror(result));
+ return;
}
+
+ // Since it's possible server_start adjusted the given {address} (e.g.,
+ // "localhost:" will now have a port), return the final value to the user.
+ size_t n;
+ char **addrs = server_address_list(&n);
+ rettv->vval.v_string = (char_u *)addrs[n - 1];
+
+ n--;
+ for (size_t i = 0; i < n; i++) {
+ xfree(addrs[i]);
+ }
+ xfree(addrs);
}
/// "serverstop()" function
@@ -14774,6 +14857,7 @@ static void f_setreg(typval_T *argvars, typval_T *rettv, FunPtr fptr)
regname = '"';
}
+ bool set_unnamed = false;
if (argvars[2].v_type != VAR_UNKNOWN) {
const char *stropt = tv_get_string_chk(&argvars[2]);
if (stropt == NULL) {
@@ -14802,6 +14886,10 @@ static void f_setreg(typval_T *argvars, typval_T *rettv, FunPtr fptr)
}
break;
}
+ case 'u': case '"': { // unnamed register
+ set_unnamed = true;
+ break;
+ }
}
}
}
@@ -14854,6 +14942,11 @@ free_lstval:
append, yank_type, block_len);
}
rettv->vval.v_number = 0;
+
+ if (set_unnamed) {
+ // Discard the result. We already handle the error case.
+ if (op_register_set_previous(regname)) { }
+ }
}
/*
@@ -14998,6 +15091,54 @@ static void f_simplify(typval_T *argvars, typval_T *rettv, FunPtr fptr)
rettv->v_type = VAR_STRING;
}
+/// "sockconnect()" function
+static void f_sockconnect(typval_T *argvars, typval_T *rettv, FunPtr fptr)
+{
+ if (argvars[0].v_type != VAR_STRING || argvars[1].v_type != VAR_STRING) {
+ EMSG(_(e_invarg));
+ return;
+ }
+ if (argvars[2].v_type != VAR_DICT && argvars[2].v_type != VAR_UNKNOWN) {
+ // Wrong argument types
+ EMSG2(_(e_invarg2), "expected dictionary");
+ return;
+ }
+
+ const char *mode = tv_get_string(&argvars[0]);
+ const char *address = tv_get_string(&argvars[1]);
+
+ bool tcp;
+ if (strcmp(mode, "tcp") == 0) {
+ tcp = true;
+ } else if (strcmp(mode, "pipe") == 0) {
+ tcp = false;
+ } else {
+ EMSG2(_(e_invarg2), "invalid mode");
+ return;
+ }
+
+ bool rpc = false;
+ if (argvars[2].v_type == VAR_DICT) {
+ dict_T *opts = argvars[2].vval.v_dict;
+ rpc = tv_dict_get_number(opts, "rpc") != 0;
+ }
+
+ if (!rpc) {
+ EMSG2(_(e_invarg2), "rpc option must be true");
+ return;
+ }
+
+ const char *error = NULL;
+ uint64_t id = channel_connect(tcp, address, 50, &error);
+
+ if (error) {
+ EMSG2(_("connection failed: %s"), error);
+ }
+
+ rettv->vval.v_number = (varnumber_T)id;
+ rettv->v_type = VAR_NUMBER;
+}
+
/// struct used in the array that's given to qsort()
typedef struct {
listitem_T *item;
@@ -15033,8 +15174,8 @@ static int item_compare(const void *s1, const void *s2, bool keep_zero)
int res;
if (sortinfo->item_compare_numbers) {
- const long v1 = tv_get_number(tv1);
- const long v2 = tv_get_number(tv2);
+ const varnumber_T v1 = tv_get_number(tv1);
+ const varnumber_T v2 = tv_get_number(tv2);
res = v1 == v2 ? 0 : v1 > v2 ? 1 : -1;
goto item_compare_end;
@@ -15566,11 +15707,15 @@ static void f_split(typval_T *argvars, typval_T *rettv, FunPtr fptr)
static void f_str2float(typval_T *argvars, typval_T *rettv, FunPtr fptr)
{
char_u *p = skipwhite((const char_u *)tv_get_string(&argvars[0]));
+ bool isneg = (*p == '-');
- if (*p == '+') {
+ if (*p == '+' || *p == '-') {
p = skipwhite(p + 1);
}
(void)string2float((char *)p, &rettv->vval.v_float);
+ if (isneg) {
+ rettv->vval.v_float *= -1;
+ }
rettv->v_type = VAR_FLOAT;
}
@@ -15578,7 +15723,7 @@ static void f_str2float(typval_T *argvars, typval_T *rettv, FunPtr fptr)
static void f_str2nr(typval_T *argvars, typval_T *rettv, FunPtr fptr)
{
int base = 10;
- long n;
+ varnumber_T n;
int what;
if (argvars[1].v_type != VAR_UNKNOWN) {
@@ -15590,7 +15735,8 @@ static void f_str2nr(typval_T *argvars, typval_T *rettv, FunPtr fptr)
}
char_u *p = skipwhite((const char_u *)tv_get_string(&argvars[0]));
- if (*p == '+') {
+ bool isneg = (*p == '-');
+ if (*p == '+' || *p == '-') {
p = skipwhite(p + 1);
}
switch (base) {
@@ -15611,7 +15757,11 @@ static void f_str2nr(typval_T *argvars, typval_T *rettv, FunPtr fptr)
}
}
vim_str2nr(p, NULL, NULL, what, &n, NULL, 0);
- rettv->vval.v_number = n;
+ if (isneg) {
+ rettv->vval.v_number = -n;
+ } else {
+ rettv->vval.v_number = n;
+ }
}
/*
@@ -17989,7 +18139,7 @@ static int eval_isnamec1(int c)
/*
* Get number v: variable value.
*/
-long get_vim_var_nr(int idx) FUNC_ATTR_PURE
+varnumber_T get_vim_var_nr(int idx) FUNC_ATTR_PURE
{
return vimvars[idx].vv_nr;
}
@@ -19615,10 +19765,12 @@ void ex_function(exarg_T *eap)
/* When there is a line break use what follows for the function body.
* Makes 'exe "func Test()\n...\nendfunc"' work. */
- if (*p == '\n')
+ const char *const end = (const char *)p + STRLEN(p);
+ if (*p == '\n') {
line_arg = p + 1;
- else if (*p != NUL && *p != '"' && !eap->skip && !did_emsg)
- EMSG(_(e_trailing));
+ } else if (*p != NUL && *p != '"' && !eap->skip && !did_emsg) {
+ emsgf(_(e_trailing));
+ }
/*
* Read the body of the function, until ":endfunction" is found.
@@ -19692,8 +19844,30 @@ void ex_function(exarg_T *eap)
/* Check for "endfunction". */
if (checkforcmd(&p, "endfunction", 4) && nesting-- == 0) {
- if (line_arg == NULL)
+ if (*p == '!') {
+ p++;
+ }
+ const char *const comment_start = strchr((const char *)p, '"');
+ const char *const endfunc_end = (comment_start
+ ? strchr(comment_start, '\n')
+ : strpbrk((const char *)p, "\n|"));
+ p = (endfunc_end
+ ? (char_u *)endfunc_end
+ : p + STRLEN(p));
+ if (*p == '|') {
+ emsgf(_(e_trailing2), p);
+ if (line_arg == NULL) {
+ xfree(theline);
+ }
+ goto erret;
+ }
+ if (line_arg == NULL) {
xfree(theline);
+ } else {
+ if ((const char *)p < end) {
+ eap->nextcmd = p + 1;
+ }
+ }
break;
}
@@ -19720,9 +19894,15 @@ void ex_function(exarg_T *eap)
}
}
- /* Check for ":append" or ":insert". */
+ // Check for ":append", ":change", ":insert".
p = skip_range(p, NULL);
if ((p[0] == 'a' && (!ASCII_ISALPHA(p[1]) || p[1] == 'p'))
+ || (p[0] == 'c'
+ && (!ASCII_ISALPHA(p[1])
+ || (p[1] == 'h' && (!ASCII_ISALPHA(p[2])
+ || (p[2] == 'a'
+ && (STRNCMP(&p[3], "nge", 3) != 0
+ || !ASCII_ISALPHA(p[6])))))))
|| (p[0] == 'i'
&& (!ASCII_ISALPHA(p[1]) || (p[1] == 'n'
&& (!ASCII_ISALPHA(p[2])
@@ -21076,9 +21256,9 @@ void call_user_func(ufunc_T *fp, int argcount, typval_T *argvars,
// Do not want errors such as E724 here.
emsg_off++;
char *tofree = encode_tv2string(&argvars[i], NULL);
- char *s = tofree;
emsg_off--;
- if (s != NULL) {
+ if (tofree != NULL) {
+ char *s = tofree;
char buf[MSG_BUF_LEN];
if (vim_strsize((char_u *)s) > MSG_BUF_CLEN) {
trunc_string((char_u *)s, (char_u *)buf, MSG_BUF_CLEN,
@@ -21142,7 +21322,7 @@ void call_user_func(ufunc_T *fp, int argcount, typval_T *argvars,
if (func_or_func_caller_profiling) {
call_start = profile_end(call_start);
- call_start = profile_sub_wait(wait_start, call_start);
+ call_start = profile_sub_wait(wait_start, call_start); // -V614
fp->uf_tm_total = profile_add(fp->uf_tm_total, call_start);
fp->uf_tm_self = profile_self(fp->uf_tm_self, call_start,
fp->uf_tm_children);
@@ -21820,52 +22000,6 @@ void last_set_msg(scid_T scriptID)
}
}
-/*
- * List v:oldfiles in a nice way.
- */
-void ex_oldfiles(exarg_T *eap)
-{
- list_T *l = get_vim_var_list(VV_OLDFILES);
- listitem_T *li;
- long nr = 0;
-
- if (l == NULL)
- msg((char_u *)_("No old files"));
- else {
- msg_start();
- msg_scroll = TRUE;
- for (li = l->lv_first; li != NULL && !got_int; li = li->li_next) {
- msg_outnum(++nr);
- MSG_PUTS(": ");
- msg_outtrans((char_u *)tv_get_string(&li->li_tv));
- msg_clr_eos();
- msg_putchar('\n');
- ui_flush(); /* output one line at a time */
- os_breakcheck();
- }
- /* Assume "got_int" was set to truncate the listing. */
- got_int = FALSE;
-
- // File selection prompt on ":browse oldfiles"
- if (cmdmod.browse) {
- quit_more = false;
- nr = prompt_for_number(false);
- msg_starthere();
- if (nr > 0 && nr <= l->lv_len) {
- const char *const p = tv_list_find_str(l, nr - 1);
- if (p == NULL) {
- return;
- }
- char *const s = (char *)expand_env_save((char_u *)p);
- eap->arg = (char_u *)s;
- eap->cmdidx = CMD_edit;
- do_exedit(eap, NULL);
- xfree(s);
- }
- }
- }
-}
-
// reset v:option_new, v:option_old and v:option_type
void reset_v_option_vars(void)
{
diff --git a/src/nvim/eval.lua b/src/nvim/eval.lua
index 21b5bbb139..30766a0734 100644
--- a/src/nvim/eval.lua
+++ b/src/nvim/eval.lua
@@ -33,6 +33,7 @@ return {
assert_match={args={2, 3}},
assert_notequal={args={2, 3}},
assert_notmatch={args={2, 3}},
+ assert_report={args=1},
assert_true={args={1, 2}},
atan={args=1, func="float_op_wrapper", data="&atan"},
atan2={args=2},
@@ -193,6 +194,7 @@ return {
localtime={},
log={args=1, func="float_op_wrapper", data="&log"},
log10={args=1, func="float_op_wrapper", data="&log10"},
+ luaeval={args={1, 2}},
map={args=2},
maparg={args={1, 4}},
mapcheck={args={1, 3}},
@@ -267,6 +269,7 @@ return {
simplify={args=1},
sin={args=1, func="float_op_wrapper", data="&sin"},
sinh={args=1, func="float_op_wrapper", data="&sinh"},
+ sockconnect={args={2,3}},
sort={args={1, 3}},
soundfold={args=1},
spellbadword={args={0, 1}},
diff --git a/src/nvim/eval/decode.c b/src/nvim/eval/decode.c
index 8905317f15..9c9c2c2dc8 100644
--- a/src/nvim/eval/decode.c
+++ b/src/nvim/eval/decode.c
@@ -11,6 +11,7 @@
#include "nvim/ascii.h"
#include "nvim/macros.h"
#include "nvim/message.h"
+#include "nvim/globals.h"
#include "nvim/charset.h" // vim_str2nr
#include "nvim/lib/kvec.h"
#include "nvim/vim.h" // OK, FAIL
@@ -223,6 +224,78 @@ static inline int json_decoder_pop(ValuesStackItem obj,
} \
} while (0)
+/// Create a new special dictionary that ought to represent a MAP
+///
+/// @param[out] ret_tv Address where new special dictionary is saved.
+///
+/// @return [allocated] list which should contain key-value pairs. Return value
+/// may be safely ignored.
+list_T *decode_create_map_special_dict(typval_T *const ret_tv)
+ FUNC_ATTR_NONNULL_ALL
+{
+ list_T *const list = tv_list_alloc();
+ list->lv_refcount++;
+ create_special_dict(ret_tv, kMPMap, ((typval_T) {
+ .v_type = VAR_LIST,
+ .v_lock = VAR_UNLOCKED,
+ .vval = { .v_list = list },
+ }));
+ return list;
+}
+
+/// Convert char* string to typval_T
+///
+/// Depending on whether string has (no) NUL bytes, it may use a special
+/// dictionary or decode string to VAR_STRING.
+///
+/// @param[in] s String to decode.
+/// @param[in] len String length.
+/// @param[in] hasnul Whether string has NUL byte, not or it was not yet
+/// determined.
+/// @param[in] binary If true, save special string type as kMPBinary,
+/// otherwise kMPString.
+/// @param[in] s_allocated If true, then `s` was allocated and can be saved in
+/// a returned structure. If it is not saved there, it
+/// will be freed.
+///
+/// @return Decoded string.
+typval_T decode_string(const char *const s, const size_t len,
+ const TriState hasnul, const bool binary,
+ const bool s_allocated)
+ FUNC_ATTR_WARN_UNUSED_RESULT
+{
+ assert(s != NULL || len == 0);
+ const bool really_hasnul = (hasnul == kNone
+ ? memchr(s, NUL, len) != NULL
+ : (bool)hasnul);
+ if (really_hasnul) {
+ list_T *const list = tv_list_alloc();
+ list->lv_refcount++;
+ typval_T tv;
+ create_special_dict(&tv, binary ? kMPBinary : kMPString, ((typval_T) {
+ .v_type = VAR_LIST,
+ .v_lock = VAR_UNLOCKED,
+ .vval = { .v_list = list },
+ }));
+ const int elw_ret = encode_list_write((void *)list, s, len);
+ if (s_allocated) {
+ xfree((void *)s);
+ }
+ if (elw_ret == -1) {
+ tv_clear(&tv);
+ return (typval_T) { .v_type = VAR_UNKNOWN, .v_lock = VAR_UNLOCKED };
+ }
+ return tv;
+ } else {
+ return (typval_T) {
+ .v_type = VAR_STRING,
+ .v_lock = VAR_UNLOCKED,
+ .vval = { .v_string = (char_u *)(
+ s_allocated ? (char *)s : xmemdupz(s, len)) },
+ };
+ }
+}
+
/// Parse JSON double-quoted string
///
/// @param[in] buf Buffer being converted.
@@ -362,8 +435,8 @@ static inline int parse_json_string(const char *const buf, const size_t buf_len,
case 'u': {
const char ubuf[] = { t[1], t[2], t[3], t[4] };
t += 4;
- unsigned long ch;
- vim_str2nr((char_u *) ubuf, NULL, NULL,
+ uvarnumber_T ch;
+ vim_str2nr((char_u *)ubuf, NULL, NULL,
STR2NR_HEX | STR2NR_FORCE, NULL, &ch, 4);
if (ch == 0) {
hasnul = true;
@@ -416,29 +489,13 @@ static inline int parse_json_string(const char *const buf, const size_t buf_len,
}
PUT_FST_IN_PAIR(fst_in_pair, str_end);
#undef PUT_FST_IN_PAIR
- if (hasnul) {
- typval_T obj;
- list_T *const list = tv_list_alloc();
- list->lv_refcount++;
- create_special_dict(&obj, kMPString, ((typval_T) {
- .v_type = VAR_LIST,
- .v_lock = VAR_UNLOCKED,
- .vval = { .v_list = list },
- }));
- if (encode_list_write((void *) list, str, (size_t) (str_end - str))
- == -1) {
- tv_clear(&obj);
- goto parse_json_string_fail;
- }
- xfree(str);
- POP(obj, true);
- } else {
- *str_end = NUL;
- POP(((typval_T) {
- .v_type = VAR_STRING,
- .vval = { .v_string = (char_u *) str },
- }), false);
+ *str_end = NUL;
+ typval_T obj = decode_string(
+ str, (size_t)(str_end - str), hasnul ? kTrue : kFalse, false, true);
+ if (obj.v_type == VAR_UNKNOWN) {
+ goto parse_json_string_fail;
}
+ POP(obj, obj.v_type != VAR_STRING);
goto parse_json_string_ret;
parse_json_string_fail:
ret = FAIL;
@@ -552,7 +609,7 @@ parse_json_number_check:
tv.v_type = VAR_FLOAT;
} else {
// Convert integer
- long nr;
+ varnumber_T nr;
int num_len;
vim_str2nr((char_u *) s, NULL, &num_len, 0, &nr, NULL, (int) (p - s));
if ((int) exp_num_len != num_len) {
@@ -560,7 +617,7 @@ parse_json_number_check:
"to integer vim_str2nr consumed %i bytes in place of %zu"),
(int) exp_num_len, s, num_len, exp_num_len);
}
- tv.vval.v_number = (varnumber_T) nr;
+ tv.vval.v_number = nr;
}
if (json_decoder_pop(OBJ(tv, false, *didcomma, *didcolon),
stack, container_stack,
@@ -812,13 +869,7 @@ json_decode_string_cycle_start:
list_T *val_list = NULL;
if (next_map_special) {
next_map_special = false;
- val_list = tv_list_alloc();
- val_list->lv_refcount++;
- create_special_dict(&tv, kMPMap, ((typval_T) {
- .v_type = VAR_LIST,
- .v_lock = VAR_UNLOCKED,
- .vval = { .v_list = val_list },
- }));
+ val_list = decode_create_map_special_dict(&tv);
} else {
dict_T *dict = tv_dict_alloc();
dict->dv_refcount++;
@@ -971,37 +1022,17 @@ int msgpack_to_vim(const msgpack_object mobj, typval_T *const rettv)
break;
}
case MSGPACK_OBJECT_STR: {
- list_T *const list = tv_list_alloc();
- list->lv_refcount++;
- create_special_dict(rettv, kMPString, ((typval_T) {
- .v_type = VAR_LIST,
- .v_lock = VAR_UNLOCKED,
- .vval = { .v_list = list },
- }));
- if (encode_list_write((void *) list, mobj.via.str.ptr, mobj.via.str.size)
- == -1) {
+ *rettv = decode_string(mobj.via.bin.ptr, mobj.via.bin.size, kTrue, false,
+ false);
+ if (rettv->v_type == VAR_UNKNOWN) {
return FAIL;
}
break;
}
case MSGPACK_OBJECT_BIN: {
- if (memchr(mobj.via.bin.ptr, NUL, mobj.via.bin.size) == NULL) {
- *rettv = (typval_T) {
- .v_type = VAR_STRING,
- .v_lock = VAR_UNLOCKED,
- .vval = { .v_string = xmemdupz(mobj.via.bin.ptr, mobj.via.bin.size) },
- };
- break;
- }
- list_T *const list = tv_list_alloc();
- list->lv_refcount++;
- create_special_dict(rettv, kMPBinary, ((typval_T) {
- .v_type = VAR_LIST,
- .v_lock = VAR_UNLOCKED,
- .vval = { .v_list = list },
- }));
- if (encode_list_write((void *) list, mobj.via.bin.ptr, mobj.via.bin.size)
- == -1) {
+ *rettv = decode_string(mobj.via.bin.ptr, mobj.via.bin.size, kNone, true,
+ false);
+ if (rettv->v_type == VAR_UNKNOWN) {
return FAIL;
}
break;
@@ -1058,13 +1089,7 @@ int msgpack_to_vim(const msgpack_object mobj, typval_T *const rettv)
}
break;
msgpack_to_vim_generic_map: {}
- list_T *const list = tv_list_alloc();
- list->lv_refcount++;
- create_special_dict(rettv, kMPMap, ((typval_T) {
- .v_type = VAR_LIST,
- .v_lock = VAR_UNLOCKED,
- .vval = { .v_list = list },
- }));
+ list_T *const list = decode_create_map_special_dict(rettv);
for (size_t i = 0; i < mobj.via.map.size; i++) {
list_T *const kv_pair = tv_list_alloc();
tv_list_append_list(list, kv_pair);
diff --git a/src/nvim/eval/decode.h b/src/nvim/eval/decode.h
index c8e7a189e3..77fc4c78c2 100644
--- a/src/nvim/eval/decode.h
+++ b/src/nvim/eval/decode.h
@@ -6,6 +6,7 @@
#include <msgpack.h>
#include "nvim/eval/typval.h"
+#include "nvim/globals.h"
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "eval/decode.h.generated.h"
diff --git a/src/nvim/eval/encode.c b/src/nvim/eval/encode.c
index 742497c1ca..ef647b3ee4 100644
--- a/src/nvim/eval/encode.c
+++ b/src/nvim/eval/encode.c
@@ -253,9 +253,11 @@ int encode_read_from_list(ListReaderState *const state, char *const buf,
char *const buf_end = buf + nbuf;
char *p = buf;
while (p < buf_end) {
+ assert(state->li_length == 0 || state->li->li_tv.vval.v_string != NULL);
for (size_t i = state->offset; i < state->li_length && p < buf_end; i++) {
- const char ch = (char) state->li->li_tv.vval.v_string[state->offset++];
- *p++ = (char) ((char) ch == (char) NL ? (char) NUL : (char) ch);
+ assert(state->li->li_tv.vval.v_string != NULL);
+ const char ch = (char)state->li->li_tv.vval.v_string[state->offset++];
+ *p++ = (char)((char)ch == (char)NL ? (char)NUL : (char)ch);
}
if (p < buf_end) {
state->li = state->li->li_next;
diff --git a/src/nvim/eval/executor.c b/src/nvim/eval/executor.c
index 91bb61323f..99298cbbcf 100644
--- a/src/nvim/eval/executor.c
+++ b/src/nvim/eval/executor.c
@@ -25,7 +25,7 @@ char *e_listidx = N_("E684: list index out of range: %" PRId64);
/// @return OK or FAIL.
int eexe_mod_op(typval_T *const tv1, const typval_T *const tv2,
const char *const op)
- FUNC_ATTR_NONNULL_ALL
+ FUNC_ATTR_NONNULL_ALL FUNC_ATTR_NO_SANITIZE_UNDEFINED
{
// Can't do anything with a Funcref, a Dict or special value on the right.
if (tv2->v_type != VAR_FUNC && tv2->v_type != VAR_DICT) {
@@ -55,7 +55,7 @@ int eexe_mod_op(typval_T *const tv1, const typval_T *const tv2,
// nr += nr or nr -= nr
varnumber_T n = tv_get_number(tv1);
if (tv2->v_type == VAR_FLOAT) {
- float_T f = n;
+ float_T f = (float_T)n;
if (*op == '+') {
f += tv2->vval.v_float;
@@ -99,7 +99,7 @@ int eexe_mod_op(typval_T *const tv1, const typval_T *const tv2,
}
const float_T f = (tv2->v_type == VAR_FLOAT
? tv2->vval.v_float
- : tv_get_number(tv2));
+ : (float_T)tv_get_number(tv2));
if (*op == '+') {
tv1->vval.v_float += f;
} else {
diff --git a/src/nvim/eval/typval.c b/src/nvim/eval/typval.c
index 786b766689..4521085519 100644
--- a/src/nvim/eval/typval.c
+++ b/src/nvim/eval/typval.c
@@ -1210,7 +1210,8 @@ char *tv_dict_get_string(const dict_T *const d, const char *const key,
///
/// @param[in] d Dictionary to get item from.
/// @param[in] key Dictionary key.
-/// @param[in] numbuf Numbuf for.
+/// @param[in] numbuf Buffer for non-string items converted to strings, at
+/// least of #NUMBUFLEN length.
///
/// @return NULL if key does not exist, empty string in case of type error,
/// string item value otherwise.
@@ -1225,6 +1226,32 @@ const char *tv_dict_get_string_buf(const dict_T *const d, const char *const key,
return tv_get_string_buf(&di->di_tv, numbuf);
}
+/// Get a string item from a dictionary
+///
+/// @param[in] d Dictionary to get item from.
+/// @param[in] key Dictionary key.
+/// @param[in] key_len Key length.
+/// @param[in] numbuf Buffer for non-string items converted to strings, at
+/// least of #NUMBUFLEN length.
+/// @param[in] def Default return when key does not exist.
+///
+/// @return `def` when key does not exist,
+/// NULL in case of type error,
+/// string item value in case of success.
+const char *tv_dict_get_string_buf_chk(const dict_T *const d,
+ const char *const key,
+ const ptrdiff_t key_len,
+ char *const numbuf,
+ const char *const def)
+ FUNC_ATTR_WARN_UNUSED_RESULT
+{
+ const dictitem_T *const di = tv_dict_find(d, key, key_len);
+ if (di == NULL) {
+ return def;
+ }
+ return tv_get_string_buf_chk(&di->di_tv, numbuf);
+}
+
/// Get a function from a dictionary
///
/// @param[in] d Dictionary to get callback from.
@@ -1869,7 +1896,7 @@ void tv_free(typval_T *tv)
}
case VAR_FUNC: {
func_unref(tv->vval.v_string);
- // FALLTHROUGH
+ FALLTHROUGH;
}
case VAR_STRING: {
xfree(tv->vval.v_string);
@@ -2378,9 +2405,7 @@ varnumber_T tv_get_number_chk(const typval_T *const tv, bool *const ret_error)
case VAR_STRING: {
varnumber_T n = 0;
if (tv->vval.v_string != NULL) {
- long nr;
- vim_str2nr(tv->vval.v_string, NULL, NULL, STR2NR_ALL, &nr, NULL, 0);
- n = (varnumber_T)nr;
+ vim_str2nr(tv->vval.v_string, NULL, NULL, STR2NR_ALL, &n, NULL, 0);
}
return n;
}
@@ -2417,7 +2442,7 @@ varnumber_T tv_get_number_chk(const typval_T *const tv, bool *const ret_error)
linenr_T tv_get_lnum(const typval_T *const tv)
FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT
{
- linenr_T lnum = tv_get_number_chk(tv, NULL);
+ linenr_T lnum = (linenr_T)tv_get_number_chk(tv, NULL);
if (lnum == 0) { // No valid number, try using same function as line() does.
int fnum;
pos_T *const fp = var2fpos(tv, true, &fnum);
diff --git a/src/nvim/eval/typval.h b/src/nvim/eval/typval.h
index 0f659727ee..3f8ed3b3f9 100644
--- a/src/nvim/eval/typval.h
+++ b/src/nvim/eval/typval.h
@@ -1,7 +1,7 @@
#ifndef NVIM_EVAL_TYPVAL_H
#define NVIM_EVAL_TYPVAL_H
-#include <limits.h>
+#include <inttypes.h>
#include <stddef.h>
#include <stdint.h>
#include <string.h>
@@ -20,20 +20,21 @@
#include "nvim/macros.h"
/// Type used for VimL VAR_NUMBER values
-typedef int varnumber_T;
+typedef int64_t varnumber_T;
+typedef uint64_t uvarnumber_T;
/// Type used for VimL VAR_FLOAT values
typedef double float_T;
/// Maximal possible value of varnumber_T variable
-#define VARNUMBER_MAX INT_MAX
+#define VARNUMBER_MAX INT64_MAX
+#define UVARNUMBER_MAX UINT64_MAX
/// Mimimal possible value of varnumber_T variable
-#define VARNUMBER_MIN INT_MIN
-#define PRIdVARNUMBER "d"
+#define VARNUMBER_MIN INT64_MIN
/// %d printf format specifier for varnumber_T
-#define PRIdVARNUMBER "d"
+#define PRIdVARNUMBER PRId64
typedef struct listvar_S list_T;
typedef struct dictvar_S dict_T;
diff --git a/src/nvim/eval/typval_encode.c.h b/src/nvim/eval/typval_encode.c.h
index b4a70fb188..a93ad2dbba 100644
--- a/src/nvim/eval/typval_encode.c.h
+++ b/src/nvim/eval/typval_encode.c.h
@@ -233,10 +233,6 @@
///
/// This name will only be used by one of the above macros which are defined by
/// the caller. Functions defined here do not use first argument directly.
-#ifndef NVIM_EVAL_TYPVAL_ENCODE_C_H
-#define NVIM_EVAL_TYPVAL_ENCODE_C_H
-#undef NVIM_EVAL_TYPVAL_ENCODE_C_H
-
#include <stddef.h>
#include <inttypes.h>
#include <assert.h>
@@ -816,4 +812,3 @@ encode_vim_to__error_ret:
// Prevent “unused label” warnings.
goto typval_encode_stop_converting_one_item; // -V779
}
-#endif // NVIM_EVAL_TYPVAL_ENCODE_C_H
diff --git a/src/nvim/event/defs.h b/src/nvim/event/defs.h
index e5335d9f25..cc875d74b9 100644
--- a/src/nvim/event/defs.h
+++ b/src/nvim/event/defs.h
@@ -8,16 +8,14 @@
typedef void (*argv_callback)(void **argv);
typedef struct message {
- int priority;
argv_callback handler;
void *argv[EVENT_HANDLER_MAX_ARGC];
} Event;
typedef void(*event_scheduler)(Event event, void *data);
-#define VA_EVENT_INIT(event, p, h, a) \
+#define VA_EVENT_INIT(event, h, a) \
do { \
assert(a <= EVENT_HANDLER_MAX_ARGC); \
- (event)->priority = p; \
(event)->handler = h; \
if (a) { \
va_list args; \
@@ -29,11 +27,11 @@ typedef void(*event_scheduler)(Event event, void *data);
} \
} while (0)
-static inline Event event_create(int priority, argv_callback cb, int argc, ...)
+static inline Event event_create(argv_callback cb, int argc, ...)
{
assert(argc <= EVENT_HANDLER_MAX_ARGC);
Event event;
- VA_EVENT_INIT(&event, priority, cb, argc);
+ VA_EVENT_INIT(&event, cb, argc);
return event;
}
diff --git a/src/nvim/event/libuv_process.c b/src/nvim/event/libuv_process.c
index 3116adbde8..f6a567a520 100644
--- a/src/nvim/event/libuv_process.c
+++ b/src/nvim/event/libuv_process.c
@@ -11,6 +11,7 @@
#include "nvim/event/process.h"
#include "nvim/event/libuv_process.h"
#include "nvim/log.h"
+#include "nvim/macros.h"
#include "nvim/os/os.h"
#ifdef INCLUDE_GENERATED_DECLARATIONS
@@ -47,17 +48,20 @@ int libuv_process_spawn(LibuvProcess *uvproc)
if (proc->in) {
uvproc->uvstdio[0].flags = UV_CREATE_PIPE | UV_READABLE_PIPE;
- uvproc->uvstdio[0].data.stream = (uv_stream_t *)&proc->in->uv.pipe;
+ uvproc->uvstdio[0].data.stream = STRUCT_CAST(uv_stream_t,
+ &proc->in->uv.pipe);
}
if (proc->out) {
uvproc->uvstdio[1].flags = UV_CREATE_PIPE | UV_WRITABLE_PIPE;
- uvproc->uvstdio[1].data.stream = (uv_stream_t *)&proc->out->uv.pipe;
+ uvproc->uvstdio[1].data.stream = STRUCT_CAST(uv_stream_t,
+ &proc->out->uv.pipe);
}
if (proc->err) {
uvproc->uvstdio[2].flags = UV_CREATE_PIPE | UV_WRITABLE_PIPE;
- uvproc->uvstdio[2].data.stream = (uv_stream_t *)&proc->err->uv.pipe;
+ uvproc->uvstdio[2].data.stream = STRUCT_CAST(uv_stream_t,
+ &proc->err->uv.pipe);
}
int status;
diff --git a/src/nvim/event/loop.c b/src/nvim/event/loop.c
index 6963978581..25701a1621 100644
--- a/src/nvim/event/loop.c
+++ b/src/nvim/event/loop.c
@@ -8,6 +8,7 @@
#include "nvim/event/loop.h"
#include "nvim/event/process.h"
+#include "nvim/log.h"
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "event/loop.c.generated.h"
@@ -44,8 +45,7 @@ void loop_poll_events(Loop *loop, int ms)
// we do not block indefinitely for I/O.
uv_timer_start(&loop->poll_timer, timer_cb, (uint64_t)ms, (uint64_t)ms);
} else if (ms == 0) {
- // For ms == 0, we need to do a non-blocking event poll by
- // setting the run mode to UV_RUN_NOWAIT.
+ // For ms == 0, do a non-blocking event poll.
mode = UV_RUN_NOWAIT;
}
@@ -79,20 +79,34 @@ void loop_on_put(MultiQueue *queue, void *data)
uv_stop(&loop->uv);
}
-void loop_close(Loop *loop, bool wait)
+/// @returns false if the loop could not be closed gracefully
+bool loop_close(Loop *loop, bool wait)
{
+ bool rv = true;
uv_mutex_destroy(&loop->mutex);
uv_close((uv_handle_t *)&loop->children_watcher, NULL);
uv_close((uv_handle_t *)&loop->children_kill_timer, NULL);
uv_close((uv_handle_t *)&loop->poll_timer, NULL);
uv_close((uv_handle_t *)&loop->async, NULL);
- do {
+ uint64_t start = wait ? os_hrtime() : 0;
+ while (true) {
uv_run(&loop->uv, wait ? UV_RUN_DEFAULT : UV_RUN_NOWAIT);
- } while (uv_loop_close(&loop->uv) && wait);
+ if (!uv_loop_close(&loop->uv) || !wait) {
+ break;
+ }
+ if (os_hrtime() - start >= 2 * 1000000000) {
+ // Some libuv resource was not correctly deref'd. Log and bail.
+ rv = false;
+ ELOG("uv_loop_close() hang?");
+ log_uv_handles(&loop->uv);
+ break;
+ }
+ }
multiqueue_free(loop->fast_events);
multiqueue_free(loop->thread_events);
multiqueue_free(loop->events);
kl_destroy(WatcherPtr, loop->children);
+ return rv;
}
void loop_purge(Loop *loop)
diff --git a/src/nvim/event/multiqueue.c b/src/nvim/event/multiqueue.c
index a17bae31e3..ef9f3f1870 100644
--- a/src/nvim/event/multiqueue.c
+++ b/src/nvim/event/multiqueue.c
@@ -126,6 +126,7 @@ void multiqueue_free(MultiQueue *this)
xfree(this);
}
+/// Removes the next item and returns its Event.
Event multiqueue_get(MultiQueue *this)
{
return multiqueue_empty(this) ? NILEVENT : multiqueue_remove(this);
@@ -144,7 +145,7 @@ void multiqueue_process_events(MultiQueue *this)
{
assert(this);
while (!multiqueue_empty(this)) {
- Event event = multiqueue_get(this);
+ Event event = multiqueue_remove(this);
if (event.handler) {
event.handler(event.argv);
}
@@ -178,36 +179,48 @@ size_t multiqueue_size(MultiQueue *this)
return this->size;
}
-static Event multiqueue_remove(MultiQueue *this)
+/// Gets an Event from an item.
+///
+/// @param remove Remove the node from its queue, and free it.
+static Event multiqueueitem_get_event(MultiQueueItem *item, bool remove)
{
- assert(!multiqueue_empty(this));
- QUEUE *h = QUEUE_HEAD(&this->headtail);
- QUEUE_REMOVE(h);
- MultiQueueItem *item = multiqueue_node_data(h);
- Event rv;
-
+ assert(item != NULL);
+ Event ev;
if (item->link) {
- assert(!this->parent);
- // remove the next node in the linked queue
+ // get the next node in the linked queue
MultiQueue *linked = item->data.queue;
assert(!multiqueue_empty(linked));
MultiQueueItem *child =
multiqueue_node_data(QUEUE_HEAD(&linked->headtail));
- QUEUE_REMOVE(&child->node);
- rv = child->data.item.event;
- xfree(child);
+ ev = child->data.item.event;
+ // remove the child node
+ if (remove) {
+ QUEUE_REMOVE(&child->node);
+ xfree(child);
+ }
} else {
- if (this->parent) {
- // remove the corresponding link node in the parent queue
+ // remove the corresponding link node in the parent queue
+ if (remove && item->data.item.parent_item) {
QUEUE_REMOVE(&item->data.item.parent_item->node);
xfree(item->data.item.parent_item);
+ item->data.item.parent_item = NULL;
}
- rv = item->data.item.event;
+ ev = item->data.item.event;
}
+ return ev;
+}
+static Event multiqueue_remove(MultiQueue *this)
+{
+ assert(!multiqueue_empty(this));
+ QUEUE *h = QUEUE_HEAD(&this->headtail);
+ QUEUE_REMOVE(h);
+ MultiQueueItem *item = multiqueue_node_data(h);
+ assert(!item->link || !this->parent); // Only a parent queue has link-nodes
+ Event ev = multiqueueitem_get_event(item, true);
this->size--;
xfree(item);
- return rv;
+ return ev;
}
static void multiqueue_push(MultiQueue *this, Event event)
@@ -215,6 +228,7 @@ static void multiqueue_push(MultiQueue *this, Event event)
MultiQueueItem *item = xmalloc(sizeof(MultiQueueItem));
item->link = false;
item->data.item.event = event;
+ item->data.item.parent_item = NULL;
QUEUE_INSERT_TAIL(&this->headtail, &item->node);
if (this->parent) {
// push link node to the parent queue
diff --git a/src/nvim/event/multiqueue.h b/src/nvim/event/multiqueue.h
index def6b95a10..a688107665 100644
--- a/src/nvim/event/multiqueue.h
+++ b/src/nvim/event/multiqueue.h
@@ -10,7 +10,7 @@ typedef struct multiqueue MultiQueue;
typedef void (*put_callback)(MultiQueue *multiq, void *data);
#define multiqueue_put(q, h, ...) \
- multiqueue_put_event(q, event_create(1, h, __VA_ARGS__));
+ multiqueue_put_event(q, event_create(h, __VA_ARGS__));
#ifdef INCLUDE_GENERATED_DECLARATIONS
diff --git a/src/nvim/event/process.c b/src/nvim/event/process.c
index ffda10a494..cad49e2007 100644
--- a/src/nvim/event/process.c
+++ b/src/nvim/event/process.c
@@ -14,6 +14,7 @@
#include "nvim/event/libuv_process.h"
#include "nvim/os/pty_process.h"
#include "nvim/globals.h"
+#include "nvim/macros.h"
#include "nvim/log.h"
#ifdef INCLUDE_GENERATED_DECLARATIONS
@@ -82,7 +83,8 @@ int process_spawn(Process *proc) FUNC_ATTR_NONNULL_ALL
}
if (proc->in) {
- stream_init(NULL, proc->in, -1, (uv_stream_t *)&proc->in->uv.pipe);
+ stream_init(NULL, proc->in, -1,
+ STRUCT_CAST(uv_stream_t, &proc->in->uv.pipe));
proc->in->events = proc->events;
proc->in->internal_data = proc;
proc->in->internal_close_cb = on_process_stream_close;
@@ -90,7 +92,8 @@ int process_spawn(Process *proc) FUNC_ATTR_NONNULL_ALL
}
if (proc->out) {
- stream_init(NULL, proc->out, -1, (uv_stream_t *)&proc->out->uv.pipe);
+ stream_init(NULL, proc->out, -1,
+ STRUCT_CAST(uv_stream_t, &proc->out->uv.pipe));
proc->out->events = proc->events;
proc->out->internal_data = proc;
proc->out->internal_close_cb = on_process_stream_close;
@@ -98,7 +101,8 @@ int process_spawn(Process *proc) FUNC_ATTR_NONNULL_ALL
}
if (proc->err) {
- stream_init(NULL, proc->err, -1, (uv_stream_t *)&proc->err->uv.pipe);
+ stream_init(NULL, proc->err, -1,
+ STRUCT_CAST(uv_stream_t, &proc->err->uv.pipe));
proc->err->events = proc->events;
proc->err->internal_data = proc;
proc->err->internal_close_cb = on_process_stream_close;
diff --git a/src/nvim/event/socket.c b/src/nvim/event/socket.c
index e536d79a2a..a796f303ab 100644
--- a/src/nvim/event/socket.c
+++ b/src/nvim/event/socket.c
@@ -15,99 +15,122 @@
#include "nvim/vim.h"
#include "nvim/strings.h"
#include "nvim/path.h"
+#include "nvim/main.h"
#include "nvim/memory.h"
+#include "nvim/macros.h"
+#include "nvim/charset.h"
+#include "nvim/log.h"
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "event/socket.c.generated.h"
#endif
-#define NVIM_DEFAULT_TCP_PORT 7450
-
-void socket_watcher_init(Loop *loop, SocketWatcher *watcher,
- const char *endpoint, void *data)
- FUNC_ATTR_NONNULL_ARG(1) FUNC_ATTR_NONNULL_ARG(2) FUNC_ATTR_NONNULL_ARG(3)
+int socket_watcher_init(Loop *loop, SocketWatcher *watcher,
+ const char *endpoint)
+ FUNC_ATTR_NONNULL_ALL
{
- // Trim to `ADDRESS_MAX_SIZE`
- if (xstrlcpy(watcher->addr, endpoint, sizeof(watcher->addr))
- >= sizeof(watcher->addr)) {
- // TODO(aktau): since this is not what the user wanted, perhaps we
- // should return an error here
- WLOG("Address was too long, truncated to %s", watcher->addr);
- }
+ xstrlcpy(watcher->addr, endpoint, sizeof(watcher->addr));
+ char *addr = watcher->addr;
+ char *host_end = strrchr(addr, ':');
- bool tcp = true;
- char ip[16], *ip_end = xstrchrnul(watcher->addr, ':');
+ if (host_end && addr != host_end) {
+ // Split user specified address into two strings, addr(hostname) and port.
+ // The port part in watcher->addr will be updated later.
+ *host_end = '\0';
+ char *port = host_end + 1;
+ intmax_t iport;
- // (ip_end - addr) is always > 0, so convert to size_t
- size_t addr_len = (size_t)(ip_end - watcher->addr);
-
- if (addr_len > sizeof(ip) - 1) {
- // Maximum length of an IPv4 address buffer is 15 (eg: 255.255.255.255)
- addr_len = sizeof(ip) - 1;
- }
+ int ret = getdigits_safe(&(char_u *){ (char_u *)port }, &iport);
+ if (ret == FAIL || iport < 0 || iport > UINT16_MAX) {
+ ELOG("Invalid port: %s", port);
+ return UV_EINVAL;
+ }
- // Extract the address part
- xstrlcpy(ip, watcher->addr, addr_len + 1);
- int port = NVIM_DEFAULT_TCP_PORT;
-
- if (*ip_end == ':') {
- // Extract the port
- long lport = strtol(ip_end + 1, NULL, 10); // NOLINT
- if (lport <= 0 || lport > 0xffff) {
- // Invalid port, treat as named pipe or unix socket
- tcp = false;
- } else {
- port = (int) lport;
+ if (*port == NUL) {
+ // When no port is given, (uv_)getaddrinfo expects NULL otherwise the
+ // implementation may attempt to lookup the service by name (and fail)
+ port = NULL;
}
- }
- if (tcp) {
- // Try to parse ip address
- if (uv_ip4_addr(ip, port, &watcher->uv.tcp.addr)) {
- // Invalid address, treat as named pipe or unix socket
- tcp = false;
+ uv_getaddrinfo_t request;
+
+ int retval = uv_getaddrinfo(&loop->uv, &request, NULL, addr, port,
+ &(struct addrinfo){
+ .ai_family = AF_UNSPEC,
+ .ai_socktype = SOCK_STREAM,
+ });
+ if (retval != 0) {
+ ELOG("Host lookup failed: %s", endpoint);
+ return retval;
}
- }
+ watcher->uv.tcp.addrinfo = request.addrinfo;
- if (tcp) {
uv_tcp_init(&loop->uv, &watcher->uv.tcp.handle);
- watcher->stream = (uv_stream_t *)&watcher->uv.tcp.handle;
+ uv_tcp_nodelay(&watcher->uv.tcp.handle, true);
+ watcher->stream = STRUCT_CAST(uv_stream_t, &watcher->uv.tcp.handle);
} else {
uv_pipe_init(&loop->uv, &watcher->uv.pipe.handle, 0);
- watcher->stream = (uv_stream_t *)&watcher->uv.pipe.handle;
+ watcher->stream = STRUCT_CAST(uv_stream_t, &watcher->uv.pipe.handle);
}
watcher->stream->data = watcher;
watcher->cb = NULL;
watcher->close_cb = NULL;
watcher->events = NULL;
+ watcher->data = NULL;
+
+ return 0;
}
int socket_watcher_start(SocketWatcher *watcher, int backlog, socket_cb cb)
FUNC_ATTR_NONNULL_ALL
{
watcher->cb = cb;
- int result;
+ int result = UV_EINVAL;
if (watcher->stream->type == UV_TCP) {
- result = uv_tcp_bind(&watcher->uv.tcp.handle,
- (const struct sockaddr *)&watcher->uv.tcp.addr, 0);
+ struct addrinfo *ai = watcher->uv.tcp.addrinfo;
+
+ for (; ai; ai = ai->ai_next) {
+ result = uv_tcp_bind(&watcher->uv.tcp.handle, ai->ai_addr, 0);
+ if (result != 0) {
+ continue;
+ }
+ result = uv_listen(watcher->stream, backlog, connection_cb);
+ if (result == 0) {
+ struct sockaddr_storage sas;
+
+ // When the endpoint in socket_watcher_init() didn't specify a port
+ // number, a free random port number will be assigned. sin_port will
+ // contain 0 in this case, unless uv_tcp_getsockname() is used first.
+ uv_tcp_getsockname(&watcher->uv.tcp.handle, (struct sockaddr *)&sas,
+ &(int){ sizeof(sas) });
+ uint16_t port = (uint16_t)((sas.ss_family == AF_INET)
+ ? ((struct sockaddr_in *)&sas)->sin_port
+ : ((struct sockaddr_in6 *)&sas)->sin6_port);
+ // v:servername uses the string from watcher->addr
+ size_t len = strlen(watcher->addr);
+ snprintf(watcher->addr+len, sizeof(watcher->addr)-len, ":%" PRIu16,
+ ntohs(port));
+ break;
+ }
+ }
+ uv_freeaddrinfo(watcher->uv.tcp.addrinfo);
} else {
result = uv_pipe_bind(&watcher->uv.pipe.handle, watcher->addr);
- }
-
- if (result == 0) {
- result = uv_listen(watcher->stream, backlog, connection_cb);
+ if (result == 0) {
+ result = uv_listen(watcher->stream, backlog, connection_cb);
+ }
}
assert(result <= 0); // libuv should return negative error code or zero.
if (result < 0) {
- if (result == -EACCES) {
+ if (result == UV_EACCES) {
// Libuv converts ENOENT to EACCES for Windows compatibility, but if
// the parent directory does not exist, ENOENT would be more accurate.
*path_tail((char_u *)watcher->addr) = NUL;
if (!os_path_exists((char_u *)watcher->addr)) {
- result = -ENOENT;
+ result = UV_ENOENT;
}
}
return result;
@@ -122,10 +145,11 @@ int socket_watcher_accept(SocketWatcher *watcher, Stream *stream)
uv_stream_t *client;
if (watcher->stream->type == UV_TCP) {
- client = (uv_stream_t *)&stream->uv.tcp;
+ client = STRUCT_CAST(uv_stream_t, &stream->uv.tcp);
uv_tcp_init(watcher->uv.tcp.handle.loop, (uv_tcp_t *)client);
+ uv_tcp_nodelay((uv_tcp_t *)client, true);
} else {
- client = (uv_stream_t *)&stream->uv.pipe;
+ client = STRUCT_CAST(uv_stream_t, &stream->uv.pipe);
uv_pipe_init(watcher->uv.pipe.handle.loop, (uv_pipe_t *)client, 0);
}
@@ -168,3 +192,77 @@ static void close_cb(uv_handle_t *handle)
watcher->close_cb(watcher, watcher->data);
}
}
+
+static void connect_cb(uv_connect_t *req, int status)
+{
+ int *ret_status = req->data;
+ *ret_status = status;
+ if (status != 0) {
+ uv_close((uv_handle_t *)req->handle, NULL);
+ }
+}
+
+bool socket_connect(Loop *loop, Stream *stream,
+ bool is_tcp, const char *address,
+ int timeout, const char **error)
+{
+ bool success = false;
+ int status;
+ uv_connect_t req;
+ req.data = &status;
+ uv_stream_t *uv_stream;
+
+ uv_tcp_t *tcp = &stream->uv.tcp;
+ uv_getaddrinfo_t addr_req;
+ addr_req.addrinfo = NULL;
+ const struct addrinfo *addrinfo = NULL;
+ char *addr = NULL;
+ if (is_tcp) {
+ addr = xstrdup(address);
+ char *host_end = strrchr(addr, ':');
+ if (!host_end) {
+ *error = _("tcp address must be host:port");
+ goto cleanup;
+ }
+ *host_end = NUL;
+
+ const struct addrinfo hints = { .ai_family = AF_UNSPEC,
+ .ai_socktype = SOCK_STREAM,
+ .ai_flags = AI_NUMERICSERV };
+ int retval = uv_getaddrinfo(&loop->uv, &addr_req, NULL,
+ addr, host_end+1, &hints);
+ if (retval != 0) {
+ *error = _("failed to lookup host or port");
+ goto cleanup;
+ }
+ addrinfo = addr_req.addrinfo;
+
+tcp_retry:
+ uv_tcp_init(&loop->uv, tcp);
+ uv_tcp_nodelay(tcp, true);
+ uv_tcp_connect(&req, tcp, addrinfo->ai_addr, connect_cb);
+ uv_stream = (uv_stream_t *)tcp;
+
+ } else {
+ uv_pipe_t *pipe = &stream->uv.pipe;
+ uv_pipe_init(&loop->uv, pipe, 0);
+ uv_pipe_connect(&req, pipe, address, connect_cb);
+ uv_stream = (uv_stream_t *)pipe;
+ }
+ status = 1;
+ LOOP_PROCESS_EVENTS_UNTIL(&main_loop, NULL, timeout, status != 1);
+ if (status == 0) {
+ stream_init(NULL, stream, -1, uv_stream);
+ success = true;
+ } else if (is_tcp && addrinfo->ai_next) {
+ addrinfo = addrinfo->ai_next;
+ goto tcp_retry;
+ } else {
+ *error = _("connection refused");
+ }
+
+cleanup:
+ xfree(addr);
+ uv_freeaddrinfo(addr_req.addrinfo);
+ return success;
+}
diff --git a/src/nvim/event/socket.h b/src/nvim/event/socket.h
index eb0823c76d..d30ae45502 100644
--- a/src/nvim/event/socket.h
+++ b/src/nvim/event/socket.h
@@ -20,7 +20,7 @@ struct socket_watcher {
union {
struct {
uv_tcp_t handle;
- struct sockaddr_in addr;
+ struct addrinfo *addrinfo;
} tcp;
struct {
uv_pipe_t handle;
diff --git a/src/nvim/event/stream.c b/src/nvim/event/stream.c
index 860a957b3e..60ceff9b24 100644
--- a/src/nvim/event/stream.c
+++ b/src/nvim/event/stream.c
@@ -8,6 +8,7 @@
#include <uv.h>
#include "nvim/rbuffer.h"
+#include "nvim/macros.h"
#include "nvim/event/stream.h"
#ifdef INCLUDE_GENERATED_DECLARATIONS
@@ -26,8 +27,9 @@ int stream_set_blocking(int fd, bool blocking)
uv_loop_init(&loop);
uv_pipe_init(&loop, &stream, 0);
uv_pipe_open(&stream, fd);
- int retval = uv_stream_set_blocking((uv_stream_t *)&stream, blocking);
- uv_close((uv_handle_t *)&stream, NULL);
+ int retval = uv_stream_set_blocking(STRUCT_CAST(uv_stream_t, &stream),
+ blocking);
+ uv_close(STRUCT_CAST(uv_handle_t, &stream), NULL);
uv_run(&loop, UV_RUN_NOWAIT); // not necessary, but couldn't hurt.
uv_loop_close(&loop);
return retval;
@@ -52,7 +54,7 @@ void stream_init(Loop *loop, Stream *stream, int fd, uv_stream_t *uvstream)
assert(type == UV_NAMED_PIPE || type == UV_TTY);
uv_pipe_init(&loop->uv, &stream->uv.pipe, 0);
uv_pipe_open(&stream->uv.pipe, fd);
- stream->uvstream = (uv_stream_t *)&stream->uv.pipe;
+ stream->uvstream = STRUCT_CAST(uv_stream_t, &stream->uv.pipe);
}
}
diff --git a/src/nvim/ex_cmds.c b/src/nvim/ex_cmds.c
index 7726e0fc6d..8dcb3ac449 100644
--- a/src/nvim/ex_cmds.c
+++ b/src/nvim/ex_cmds.c
@@ -318,14 +318,12 @@ static int sort_abort; ///< flag to indicate if sorting has been interrupted
/// Struct to store info to be sorted.
typedef struct {
linenr_T lnum; ///< line number
- long start_col_nr; ///< starting column number or number
- long end_col_nr; ///< ending column number
union {
struct {
- long start_col_nr; ///< starting column number
- long end_col_nr; ///< ending column number
+ varnumber_T start_col_nr; ///< starting column number
+ varnumber_T end_col_nr; ///< ending column number
} line;
- long value; ///< value if sorting by integer
+ varnumber_T value; ///< value if sorting by integer
float_T value_flt; ///< value if sorting by float
} st_u;
} sorti_T;
@@ -599,9 +597,10 @@ void ex_sort(exarg_T *eap)
// Adjust marks for deleted (or added) lines and prepare for displaying.
deleted = (long)(count - (lnum - eap->line2));
if (deleted > 0) {
- mark_adjust(eap->line2 - deleted, eap->line2, (long)MAXLNUM, -deleted);
+ mark_adjust(eap->line2 - deleted, eap->line2, (long)MAXLNUM, -deleted,
+ false);
} else if (deleted < 0) {
- mark_adjust(eap->line2, MAXLNUM, -deleted, 0L);
+ mark_adjust(eap->line2, MAXLNUM, -deleted, 0L, false);
}
changed_lines(eap->line1, 0, eap->line2 + 1, -deleted);
@@ -796,9 +795,9 @@ int do_move(linenr_T line1, linenr_T line2, linenr_T dest)
* their final destination at the new text position -- webb
*/
last_line = curbuf->b_ml.ml_line_count;
- mark_adjust_nofold(line1, line2, last_line - line2, 0L);
+ mark_adjust_nofold(line1, line2, last_line - line2, 0L, true);
if (dest >= line2) {
- mark_adjust_nofold(line2 + 1, dest, -num_lines, 0L);
+ mark_adjust_nofold(line2 + 1, dest, -num_lines, 0L, false);
FOR_ALL_TAB_WINDOWS(tab, win) {
if (win->w_buffer == curbuf) {
foldMoveRange(&win->w_folds, line1, line2, dest);
@@ -807,7 +806,7 @@ int do_move(linenr_T line1, linenr_T line2, linenr_T dest)
curbuf->b_op_start.lnum = dest - num_lines + 1;
curbuf->b_op_end.lnum = dest;
} else {
- mark_adjust_nofold(dest + 1, line1 - 1, num_lines, 0L);
+ mark_adjust_nofold(dest + 1, line1 - 1, num_lines, 0L, false);
FOR_ALL_TAB_WINDOWS(tab, win) {
if (win->w_buffer == curbuf) {
foldMoveRange(&win->w_folds, dest + 1, line1 - 1, line2);
@@ -818,7 +817,7 @@ int do_move(linenr_T line1, linenr_T line2, linenr_T dest)
}
curbuf->b_op_start.col = curbuf->b_op_end.col = 0;
mark_adjust_nofold(last_line - num_lines + 1, last_line,
- -(last_line - dest - extra), 0L);
+ -(last_line - dest - extra), 0L, true);
/*
* Now we delete the original text -- webb
@@ -1214,15 +1213,14 @@ static void do_filter(
if (do_in) {
if (cmdmod.keepmarks || vim_strchr(p_cpo, CPO_REMMARK) == NULL) {
- if (read_linecount >= linecount)
- /* move all marks from old lines to new lines */
- mark_adjust(line1, line2, linecount, 0L);
- else {
- /* move marks from old lines to new lines, delete marks
- * that are in deleted lines */
- mark_adjust(line1, line1 + read_linecount - 1,
- linecount, 0L);
- mark_adjust(line1 + read_linecount, line2, MAXLNUM, 0L);
+ if (read_linecount >= linecount) {
+ // move all marks from old lines to new lines
+ mark_adjust(line1, line2, linecount, 0L, false);
+ } else {
+ // move marks from old lines to new lines, delete marks
+ // that are in deleted lines
+ mark_adjust(line1, line1 + read_linecount - 1, linecount, 0L, false);
+ mark_adjust(line1 + read_linecount, line2, MAXLNUM, 0L, false);
}
}
@@ -1490,6 +1488,11 @@ void print_line(linenr_T lnum, int use_number, int list)
{
int save_silent = silent_mode;
+ // apply :filter /pat/
+ if (message_filtered(ml_get(lnum))) {
+ return;
+ }
+
msg_start();
silent_mode = FALSE;
info_message = TRUE; /* use mch_msg(), not mch_errmsg() */
@@ -3755,7 +3758,7 @@ static buf_T *do_sub(exarg_T *eap, proftime_T timeout)
*p1 = NUL; // truncate up to the CR
ml_append(lnum - 1, new_start,
(colnr_T)(p1 - new_start + 1), false);
- mark_adjust(lnum + 1, (linenr_T)MAXLNUM, 1L, 0L);
+ mark_adjust(lnum + 1, (linenr_T)MAXLNUM, 1L, 0L, false);
if (subflags.do_ask) {
appended_lines(lnum - 1, 1L);
} else {
@@ -3844,7 +3847,7 @@ skip:
for (i = 0; i < nmatch_tl; ++i)
ml_delete(lnum, (int)FALSE);
mark_adjust(lnum, lnum + nmatch_tl - 1,
- (long)MAXLNUM, -nmatch_tl);
+ (long)MAXLNUM, -nmatch_tl, false);
if (subflags.do_ask) {
deleted_lines(lnum, nmatch_tl);
}
@@ -4873,8 +4876,9 @@ void fix_help_buffer(void)
continue;
e1 = vim_strrchr(t1, '.');
e2 = vim_strrchr(path_tail(f2), '.');
- if (e1 == NUL || e2 == NUL)
+ if (e1 == NULL || e2 == NULL) {
continue;
+ }
if (fnamecmp(e1, ".txt") != 0
&& fnamecmp(e1, fname + 4) != 0) {
/* Not .txt and not .abx, remove it. */
@@ -5096,14 +5100,13 @@ static void helptags_one(char_u *dir, char_u *ext, char_u *tagfname,
}
p1 = vim_strchr(IObuff, '*'); /* find first '*' */
while (p1 != NULL) {
- /* Use vim_strbyte() instead of vim_strchr() so that when
- * 'encoding' is dbcs it still works, don't find '*' in the
- * second byte. */
- p2 = vim_strbyte(p1 + 1, '*'); /* find second '*' */
- if (p2 != NULL && p2 > p1 + 1) { /* skip "*" and "**" */
- for (s = p1 + 1; s < p2; ++s)
- if (*s == ' ' || *s == '\t' || *s == '|')
+ p2 = (char_u *)strchr((const char *)p1 + 1, '*'); // Find second '*'.
+ if (p2 != NULL && p2 > p1 + 1) { // Skip "*" and "**".
+ for (s = p1 + 1; s < p2; s++) {
+ if (*s == ' ' || *s == '\t' || *s == '|') {
break;
+ }
+ }
/*
* Only accept a *tag* when it consists of valid
@@ -5945,9 +5948,8 @@ void set_context_in_sign_cmd(expand_T *xp, char_u *arg)
// :sign define {name} {args}... {last}=
// | |
// last p
- if (p == NUL)
- {
- /* Expand last argument name (before equal sign). */
+ if (p == NULL) {
+ // Expand last argument name (before equal sign).
xp->xp_pattern = last;
switch (cmd_idx)
{
@@ -6158,3 +6160,103 @@ void ex_substitute(exarg_T *eap)
ga_clear(&save_view);
unblock_autocmds();
}
+
+/// Skip over the pattern argument of ":vimgrep /pat/[g][j]".
+/// Put the start of the pattern in "*s", unless "s" is NULL.
+/// If "flags" is not NULL put the flags in it: VGR_GLOBAL, VGR_NOJUMP.
+/// If "s" is not NULL terminate the pattern with a NUL.
+/// Return a pointer to the char just past the pattern plus flags.
+char_u *skip_vimgrep_pat(char_u *p, char_u **s, int *flags)
+{
+ int c;
+
+ if (vim_isIDc(*p)) {
+ // ":vimgrep pattern fname"
+ if (s != NULL) {
+ *s = p;
+ }
+ p = skiptowhite(p);
+ if (s != NULL && *p != NUL) {
+ *p++ = NUL;
+ }
+ } else {
+ // ":vimgrep /pattern/[g][j] fname"
+ if (s != NULL) {
+ *s = p + 1;
+ }
+ c = *p;
+ p = skip_regexp(p + 1, c, true, NULL);
+ if (*p != c) {
+ return NULL;
+ }
+
+ // Truncate the pattern.
+ if (s != NULL) {
+ *p = NUL;
+ }
+ p++;
+
+ // Find the flags
+ while (*p == 'g' || *p == 'j') {
+ if (flags != NULL) {
+ if (*p == 'g') {
+ *flags |= VGR_GLOBAL;
+ } else {
+ *flags |= VGR_NOJUMP;
+ }
+ }
+ p++;
+ }
+ }
+ return p;
+}
+
+/// List v:oldfiles in a nice way.
+void ex_oldfiles(exarg_T *eap)
+{
+ list_T *l = get_vim_var_list(VV_OLDFILES);
+ listitem_T *li;
+ long nr = 0;
+
+ if (l == NULL) {
+ msg((char_u *)_("No old files"));
+ } else {
+ msg_start();
+ msg_scroll = true;
+ for (li = l->lv_first; li != NULL && !got_int; li = li->li_next) {
+ nr++;
+ const char *fname = tv_get_string(&li->li_tv);
+ if (!message_filtered((char_u *)fname)) {
+ msg_outnum(nr);
+ MSG_PUTS(": ");
+ msg_outtrans((char_u *)tv_get_string(&li->li_tv));
+ msg_clr_eos();
+ msg_putchar('\n');
+ ui_flush(); // output one line at a time
+ os_breakcheck();
+ }
+ }
+
+ // Assume "got_int" was set to truncate the listing.
+ got_int = false;
+
+ // File selection prompt on ":browse oldfiles"
+ if (cmdmod.browse) {
+ quit_more = false;
+ nr = prompt_for_number(false);
+ msg_starthere();
+ if (nr > 0 && nr <= l->lv_len) {
+ const char *const p = tv_list_find_str(l, nr - 1);
+ if (p == NULL) {
+ return;
+ }
+ char *const s = (char *)expand_env_save((char_u *)p);
+ eap->arg = (char_u *)s;
+ eap->cmdidx = CMD_edit;
+ cmdmod.browse = false;
+ do_exedit(eap, NULL);
+ xfree(s);
+ }
+ }
+ }
+}
diff --git a/src/nvim/ex_cmds.lua b/src/nvim/ex_cmds.lua
index 92f0669422..7203fbd97d 100644
--- a/src/nvim/ex_cmds.lua
+++ b/src/nvim/ex_cmds.lua
@@ -931,6 +931,12 @@ return {
func='ex_filetype',
},
{
+ command='filter',
+ flags=bit.bor(BANG, NEEDARG, EXTRA, NOTRLCOM),
+ addr_type=ADDR_LINES,
+ func='ex_wrongmodifier',
+ },
+ {
command='find',
flags=bit.bor(RANGE, NOTADR, BANG, FILE1, EDITCMD, ARGOPT, TRLBAR),
addr_type=ADDR_LINES,
@@ -1542,19 +1548,19 @@ return {
command='lua',
flags=bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN),
addr_type=ADDR_LINES,
- func='ex_script_ni',
+ func='ex_lua',
},
{
command='luado',
flags=bit.bor(RANGE, DFLALL, EXTRA, NEEDARG, CMDWIN),
addr_type=ADDR_LINES,
- func='ex_ni',
+ func='ex_luado',
},
{
command='luafile',
flags=bit.bor(RANGE, FILE1, NEEDARG, CMDWIN),
addr_type=ADDR_LINES,
- func='ex_ni',
+ func='ex_luafile',
},
{
command='lvimgrep',
diff --git a/src/nvim/ex_cmds2.c b/src/nvim/ex_cmds2.c
index a1a32d9f52..1a728647ca 100644
--- a/src/nvim/ex_cmds2.c
+++ b/src/nvim/ex_cmds2.c
@@ -3705,19 +3705,18 @@ char_u *get_locales(expand_T *xp, int idx)
static void script_host_execute(char *name, exarg_T *eap)
{
- uint8_t *script = script_get(eap, eap->arg);
+ size_t len;
+ char *const script = script_get(eap, &len);
- if (!eap->skip) {
- list_T *args = tv_list_alloc();
+ if (script != NULL) {
+ list_T *const args = tv_list_alloc();
// script
- tv_list_append_string(args, (const char *)(script ? script : eap->arg), -1);
+ tv_list_append_allocated_string(args, script);
// current range
tv_list_append_number(args, (int)eap->line1);
tv_list_append_number(args, (int)eap->line2);
(void)eval_call_provider(name, "execute", args);
}
-
- xfree(script);
}
static void script_host_execute_file(char *name, exarg_T *eap)
diff --git a/src/nvim/ex_cmds_defs.h b/src/nvim/ex_cmds_defs.h
index 133c37cef4..d72b83404e 100644
--- a/src/nvim/ex_cmds_defs.h
+++ b/src/nvim/ex_cmds_defs.h
@@ -6,6 +6,7 @@
#include "nvim/pos.h" // for linenr_T
#include "nvim/normal.h"
+#include "nvim/regexp_defs.h"
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "ex_cmds_enum.generated.h"
@@ -163,18 +164,20 @@ struct expand {
/// flag. This needs to be saved for recursive commands, put them in a
/// structure for easy manipulation.
typedef struct {
- int split; ///< flags for win_split()
- int tab; ///< > 0 when ":tab" was used
- bool browse; ///< true to invoke file dialog
- bool confirm; ///< true to invoke yes/no dialog
- bool hide; ///< true when ":hide" was used
- bool keepalt; ///< true when ":keepalt" was used
- bool keepjumps; ///< true when ":keepjumps" was used
- bool keepmarks; ///< true when ":keepmarks" was used
- bool keeppatterns; ///< true when ":keeppatterns" was used
- bool lockmarks; ///< true when ":lockmarks" was used
- bool noswapfile; ///< true when ":noswapfile" was used
- char_u *save_ei; ///< saved value of 'eventignore'
+ int split; ///< flags for win_split()
+ int tab; ///< > 0 when ":tab" was used
+ bool browse; ///< true to invoke file dialog
+ bool confirm; ///< true to invoke yes/no dialog
+ bool hide; ///< true when ":hide" was used
+ bool keepalt; ///< true when ":keepalt" was used
+ bool keepjumps; ///< true when ":keepjumps" was used
+ bool keepmarks; ///< true when ":keepmarks" was used
+ bool keeppatterns; ///< true when ":keeppatterns" was used
+ bool lockmarks; ///< true when ":lockmarks" was used
+ bool noswapfile; ///< true when ":noswapfile" was used
+ char_u *save_ei; ///< saved value of 'eventignore'
+ regmatch_T filter_regmatch; ///< set by :filter /pat/
+ bool filter_force; ///< set for :filter!
} cmdmod_T;
#endif // NVIM_EX_CMDS_DEFS_H
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c
index 7568d71ac0..af8845de87 100644
--- a/src/nvim/ex_docmd.c
+++ b/src/nvim/ex_docmd.c
@@ -70,6 +70,7 @@
#include "nvim/event/rstream.h"
#include "nvim/event/wstream.h"
#include "nvim/shada.h"
+#include "nvim/lua/executor.h"
#include "nvim/globals.h"
static int quitmore = 0;
@@ -1350,6 +1351,31 @@ static char_u * do_one_cmd(char_u **cmdlinep,
cmdmod.keepjumps = true;
continue;
+ case 'f': { // only accept ":filter {pat} cmd"
+ char_u *reg_pat;
+
+ if (!checkforcmd(&p, "filter", 4) || *p == NUL || ends_excmd(*p)) {
+ break;
+ }
+ if (*p == '!') {
+ cmdmod.filter_force = true;
+ p = skipwhite(p + 1);
+ if (*p == NUL || ends_excmd(*p)) {
+ break;
+ }
+ }
+ p = skip_vimgrep_pat(p, &reg_pat, NULL);
+ if (p == NULL || *p == NUL) {
+ break;
+ }
+ cmdmod.filter_regmatch.regprog = vim_regcomp(reg_pat, RE_MAGIC);
+ if (cmdmod.filter_regmatch.regprog == NULL) {
+ break;
+ }
+ ea.cmd = p;
+ continue;
+ }
+
/* ":hide" and ":hide | cmd" are not modifiers */
case 'h': if (p != ea.cmd || !checkforcmd(&p, "hide", 3)
|| *p == NUL || ends_excmd(*p))
@@ -1452,6 +1478,7 @@ static char_u * do_one_cmd(char_u **cmdlinep,
}
break;
}
+ char_u *after_modifier = ea.cmd;
ea.skip = did_emsg || got_int || did_throw || (cstack->cs_idx >= 0
&& !(cstack->cs_flags[cstack->
@@ -1734,7 +1761,13 @@ static char_u * do_one_cmd(char_u **cmdlinep,
if (!ea.skip) {
STRCPY(IObuff, _("E492: Not an editor command"));
if (!(flags & DOCMD_VERBOSE)) {
- append_command(*cmdlinep);
+ // If the modifier was parsed OK the error must be in the following
+ // command
+ if (after_modifier != NULL) {
+ append_command(after_modifier);
+ } else {
+ append_command(*cmdlinep);
+ }
}
errormsg = IObuff;
did_emsg_syntax = TRUE;
@@ -2104,6 +2137,7 @@ static char_u * do_one_cmd(char_u **cmdlinep,
case CMD_echomsg:
case CMD_echon:
case CMD_execute:
+ case CMD_filter:
case CMD_help:
case CMD_hide:
case CMD_ijump:
@@ -2255,6 +2289,10 @@ doend:
free_string_option(cmdmod.save_ei);
}
+ if (cmdmod.filter_regmatch.regprog != NULL) {
+ vim_regfree(cmdmod.filter_regmatch.regprog);
+ }
+
cmdmod = save_cmdmod;
if (save_msg_silent != -1) {
@@ -2540,28 +2578,29 @@ static struct cmdmod {
int minlen;
int has_count; /* :123verbose :3tab */
} cmdmods[] = {
- {"aboveleft", 3, FALSE},
- {"belowright", 3, FALSE},
- {"botright", 2, FALSE},
- {"browse", 3, FALSE},
- {"confirm", 4, FALSE},
- {"hide", 3, FALSE},
- {"keepalt", 5, FALSE},
- {"keepjumps", 5, FALSE},
- {"keepmarks", 3, FALSE},
- {"keeppatterns", 5, FALSE},
- {"leftabove", 5, FALSE},
- {"lockmarks", 3, FALSE},
- {"noautocmd", 3, FALSE},
- {"noswapfile", 3, FALSE},
- {"rightbelow", 6, FALSE},
- {"sandbox", 3, FALSE},
- {"silent", 3, FALSE},
- {"tab", 3, TRUE},
- {"topleft", 2, FALSE},
- {"unsilent", 3, FALSE},
- {"verbose", 4, TRUE},
- {"vertical", 4, FALSE},
+ { "aboveleft", 3, false },
+ { "belowright", 3, false },
+ { "botright", 2, false },
+ { "browse", 3, false },
+ { "confirm", 4, false },
+ { "filter", 4, false },
+ { "hide", 3, false },
+ { "keepalt", 5, false },
+ { "keepjumps", 5, false },
+ { "keepmarks", 3, false },
+ { "keeppatterns", 5, false },
+ { "leftabove", 5, false },
+ { "lockmarks", 3, false },
+ { "noautocmd", 3, false },
+ { "noswapfile", 3, false },
+ { "rightbelow", 6, false },
+ { "sandbox", 3, false },
+ { "silent", 3, false },
+ { "tab", 3, true },
+ { "topleft", 2, false },
+ { "unsilent", 3, false },
+ { "verbose", 4, true },
+ { "vertical", 4, false },
};
/*
@@ -2649,7 +2688,7 @@ const char * set_one_cmd_context(
// 2. skip comment lines and leading space, colons or bars
const char *cmd;
- for (cmd = buff; strchr(" \t:|", *cmd) != NULL; cmd++) {
+ for (cmd = buff; vim_strchr((const char_u *)" \t:|", *cmd) != NULL; cmd++) {
}
xp->xp_pattern = (char_u *)cmd;
@@ -2710,7 +2749,7 @@ const char * set_one_cmd_context(
}
}
// check for non-alpha command
- if (p == cmd && strchr("@*!=><&~#", *p) != NULL) {
+ if (p == cmd && vim_strchr((const char_u *)"@*!=><&~#", *p) != NULL) {
p++;
}
len = (size_t)(p - cmd);
@@ -2741,7 +2780,7 @@ const char * set_one_cmd_context(
return NULL;
if (ea.cmdidx == CMD_SIZE) {
- if (*cmd == 's' && strchr("cgriI", cmd[1]) != NULL) {
+ if (*cmd == 's' && vim_strchr((const char_u *)"cgriI", cmd[1]) != NULL) {
ea.cmdidx = CMD_substitute;
p = cmd + 1;
} else if (cmd[0] >= 'A' && cmd[0] <= 'Z') {
@@ -3031,6 +3070,16 @@ const char * set_one_cmd_context(
case CMD_windo:
return arg;
+ case CMD_filter:
+ if (*arg != NUL) {
+ arg = (const char *)skip_vimgrep_pat((char_u *)arg, NULL, NULL);
+ }
+ if (arg == NULL || *arg == NUL) {
+ xp->xp_context = EXPAND_NOTHING;
+ return NULL;
+ }
+ return (const char *)skipwhite((const char_u *)arg);
+
case CMD_match:
if (*arg == NUL || !ends_excmd(*arg)) {
/* also complete "None" */
@@ -3759,10 +3808,12 @@ void ex_ni(exarg_T *eap)
/// Skips over ":perl <<EOF" constructs.
static void ex_script_ni(exarg_T *eap)
{
- if (!eap->skip)
+ if (!eap->skip) {
ex_ni(eap);
- else
- xfree(script_get(eap, eap->arg));
+ } else {
+ size_t len;
+ xfree(script_get(eap, &len));
+ }
}
/*
@@ -4851,9 +4902,12 @@ static void uc_list(char_u *name, size_t name_len)
cmd = USER_CMD_GA(gap, i);
a = cmd->uc_argt;
- /* Skip commands which don't match the requested prefix */
- if (STRNCMP(name, cmd->uc_name, name_len) != 0)
+ // Skip commands which don't match the requested prefix and
+ // commands filtered out.
+ if (STRNCMP(name, cmd->uc_name, name_len) != 0
+ || message_filtered(cmd->uc_name)) {
continue;
+ }
/* Put out the title first time */
if (!found)
@@ -5765,10 +5819,10 @@ int parse_addr_type_arg(char_u *value, int vallen, uint32_t *argt,
* copied to allocated memory and stored in "*compl_arg".
* Returns FAIL if something is wrong.
*/
-int parse_compl_arg(char_u *value, int vallen, int *complp,
+int parse_compl_arg(const char_u *value, int vallen, int *complp,
uint32_t *argt, char_u **compl_arg)
{
- char_u *arg = NULL;
+ const char_u *arg = NULL;
size_t arglen = 0;
int i;
int valend = vallen;
@@ -6231,13 +6285,14 @@ static void ex_stop(exarg_T *eap)
autowrite_all();
}
ui_cursor_goto((int)Rows - 1, 0);
- ui_putc('\n');
+ ui_linefeed();
+ ui_flush();
+ ui_call_suspend(); // call machine specific function
ui_flush();
- ui_suspend(); /* call machine specific function */
maketitle();
- resettitle(); /* force updating the title */
+ resettitle(); // force updating the title
redraw_later_clear();
- ui_refresh(); /* may have resized window */
+ ui_refresh(); // may have resized window
}
}
@@ -8792,15 +8847,16 @@ makeopens (
*/
tab_firstwin = firstwin; /* first window in tab page "tabnr" */
tab_topframe = topframe;
- for (tabnr = 1;; ++tabnr) {
+ for (tabnr = 1;; tabnr++) {
+ tabpage_T *tp = find_tabpage(tabnr);
+ if (tp == NULL) {
+ break; // done all tab pages
+ }
+
int need_tabnew = false;
int cnr = 1;
if ((ssop_flags & SSOP_TABPAGES)) {
- tabpage_T *tp = find_tabpage(tabnr);
-
- if (tp == NULL)
- break; /* done all tab pages */
if (tp == curtab) {
tab_firstwin = firstwin;
tab_topframe = topframe;
@@ -8913,6 +8969,16 @@ makeopens (
if (nr > 1 && ses_winsizes(fd, restore_size, tab_firstwin) == FAIL)
return FAIL;
+ // Take care of tab-local working directories if applicable
+ if (tp->tp_localdir) {
+ if (fputs("if has('nvim') | tcd ", fd) < 0
+ || ses_put_fname(fd, tp->tp_localdir, &ssop_flags) == FAIL
+ || fputs(" | endif", fd) < 0
+ || put_eol(fd) == FAIL) {
+ return FAIL;
+ }
+ }
+
/* Don't continue in another tab page when doing only the current one
* or when at the last tab page. */
if (!(ssop_flags & SSOP_TABPAGES))
diff --git a/src/nvim/ex_getln.c b/src/nvim/ex_getln.c
index eed4bf6066..7793081957 100644
--- a/src/nvim/ex_getln.c
+++ b/src/nvim/ex_getln.c
@@ -100,12 +100,20 @@ typedef struct command_line_state {
char_u *lookfor; // string to match
int hiscnt; // current history line in use
int histype; // history type to be used
- pos_T old_cursor;
+ pos_T search_start; // where 'incsearch' starts searching
+ pos_T save_cursor;
colnr_T old_curswant;
+ colnr_T init_curswant;
colnr_T old_leftcol;
+ colnr_T init_leftcol;
linenr_T old_topline;
+ linenr_T init_topline;
int old_topfill;
+ int init_topfill;
linenr_T old_botline;
+ linenr_T init_botline;
+ pos_T match_start;
+ pos_T match_end;
int did_incsearch;
int incsearch_postponed;
int did_wild_list; // did wild_list() recently
@@ -167,6 +175,12 @@ static uint8_t *command_line_enter(int firstc, long count, int indent)
s->save_State = State;
s->save_p_icm = vim_strsave(p_icm);
s->ignore_drag_release = true;
+ s->match_start = curwin->w_cursor;
+ s->init_curswant = curwin->w_curswant;
+ s->init_leftcol = curwin->w_leftcol;
+ s->init_topline = curwin->w_topline;
+ s->init_topfill = curwin->w_topfill;
+ s->init_botline = curwin->w_botline;
if (s->firstc == -1) {
s->firstc = NUL;
@@ -179,7 +193,9 @@ static uint8_t *command_line_enter(int firstc, long count, int indent)
}
ccline.overstrike = false; // always start in insert mode
- s->old_cursor = curwin->w_cursor; // needs to be restored later
+ clearpos(&s->match_end);
+ s->save_cursor = curwin->w_cursor; // may be restored later
+ s->search_start = curwin->w_cursor;
s->old_curswant = curwin->w_curswant;
s->old_leftcol = curwin->w_leftcol;
s->old_topline = curwin->w_topline;
@@ -282,7 +298,16 @@ static uint8_t *command_line_enter(int firstc, long count, int indent)
ccline.xpc = NULL;
if (s->did_incsearch) {
- curwin->w_cursor = s->old_cursor;
+ if (s->gotesc) {
+ curwin->w_cursor = s->save_cursor;
+ } else {
+ if (!equalpos(s->save_cursor, s->search_start)) {
+ // put the '" mark at the original position
+ curwin->w_cursor = s->save_cursor;
+ setpcmark();
+ }
+ curwin->w_cursor = s->search_start;
+ }
curwin->w_curswant = s->old_curswant;
curwin->w_leftcol = s->old_leftcol;
curwin->w_topline = s->old_topline;
@@ -584,7 +609,7 @@ static int command_line_execute(VimState *state, int key)
}
if (vim_ispathsep(ccline.cmdbuff[s->j])
#ifdef BACKSLASH_IN_FILENAME
- && strchr(" *?[{`$%#", ccline.cmdbuff[s->j + 1])
+ && vim_strchr(" *?[{`$%#", ccline.cmdbuff[s->j + 1])
== NULL
#endif
) {
@@ -857,6 +882,118 @@ static int command_line_execute(VimState *state, int key)
return command_line_handle_key(s);
}
+static void command_line_next_incsearch(CommandLineState *s, bool next_match)
+{
+ ui_busy_start();
+ ui_flush();
+
+ pos_T t;
+ int search_flags = SEARCH_KEEP + SEARCH_NOOF + SEARCH_PEEK;
+ if (next_match) {
+ t = s->match_end;
+ search_flags += SEARCH_COL;
+ } else {
+ t = s->match_start;
+ }
+ emsg_off++;
+ s->i = searchit(curwin, curbuf, &t,
+ next_match ? FORWARD : BACKWARD,
+ ccline.cmdbuff, s->count, search_flags,
+ RE_SEARCH, 0, NULL);
+ emsg_off--;
+ ui_busy_stop();
+ if (s->i) {
+ s->search_start = s->match_start;
+ s->match_end = t;
+ s->match_start = t;
+ if (!next_match && s->firstc == '/') {
+ // move just before the current match, so that
+ // when nv_search finishes the cursor will be
+ // put back on the match
+ s->search_start = t;
+ (void)decl(&s->search_start);
+ }
+ if (lt(t, s->search_start) && next_match) {
+ // wrap around
+ s->search_start = t;
+ if (s->firstc == '?') {
+ (void)incl(&s->search_start);
+ } else {
+ (void)decl(&s->search_start);
+ }
+ }
+
+ set_search_match(&s->match_end);
+ curwin->w_cursor = s->match_start;
+ changed_cline_bef_curs();
+ update_topline();
+ validate_cursor();
+ highlight_match = true;
+ s->old_curswant = curwin->w_curswant;
+ s->old_leftcol = curwin->w_leftcol;
+ s->old_topline = curwin->w_topline;
+ s->old_topfill = curwin->w_topfill;
+ s->old_botline = curwin->w_botline;
+ update_screen(NOT_VALID);
+ redrawcmdline();
+ } else {
+ vim_beep(BO_ERROR);
+ }
+ return;
+}
+
+static void command_line_next_histidx(CommandLineState *s, bool next_match)
+{
+ s->j = (int)STRLEN(s->lookfor);
+ for (;; ) {
+ // one step backwards
+ if (!next_match) {
+ if (s->hiscnt == hislen) {
+ // first time
+ s->hiscnt = hisidx[s->histype];
+ } else if (s->hiscnt == 0 && hisidx[s->histype] != hislen - 1) {
+ s->hiscnt = hislen - 1;
+ } else if (s->hiscnt != hisidx[s->histype] + 1) {
+ s->hiscnt--;
+ } else {
+ // at top of list
+ s->hiscnt = s->i;
+ break;
+ }
+ } else { // one step forwards
+ // on last entry, clear the line
+ if (s->hiscnt == hisidx[s->histype]) {
+ s->hiscnt = hislen;
+ break;
+ }
+
+ // not on a history line, nothing to do
+ if (s->hiscnt == hislen) {
+ break;
+ }
+
+ if (s->hiscnt == hislen - 1) {
+ // wrap around
+ s->hiscnt = 0;
+ } else {
+ s->hiscnt++;
+ }
+ }
+
+ if (s->hiscnt < 0 || history[s->histype][s->hiscnt].hisstr == NULL) {
+ s->hiscnt = s->i;
+ break;
+ }
+
+ if ((s->c != K_UP && s->c != K_DOWN)
+ || s->hiscnt == s->i
+ || STRNCMP(history[s->histype][s->hiscnt].hisstr,
+ s->lookfor, (size_t)s->j) == 0) {
+ break;
+ }
+ }
+}
+
static int command_line_handle_key(CommandLineState *s)
{
// Big switch for a typed command line character.
@@ -929,6 +1066,16 @@ static int command_line_handle_key(CommandLineState *s)
// Truncate at the end, required for multi-byte chars.
ccline.cmdbuff[ccline.cmdlen] = NUL;
+ if (ccline.cmdlen == 0) {
+ s->search_start = s->save_cursor;
+ // save view settings, so that the screen won't be restored at the
+ // wrong position
+ s->old_curswant = s->init_curswant;
+ s->old_leftcol = s->init_leftcol;
+ s->old_topline = s->init_topline;
+ s->old_topfill = s->init_topfill;
+ s->old_botline = s->init_botline;
+ }
redrawcmd();
} else if (ccline.cmdlen == 0 && s->c != Ctrl_W
&& ccline.cmdprompt == NULL && s->indent == 0) {
@@ -947,6 +1094,7 @@ static int command_line_handle_key(CommandLineState *s)
}
msg_putchar(' '); // delete ':'
}
+ s->search_start = s->save_cursor;
redraw_cmdline = true;
return 0; // back to cmd mode
}
@@ -1001,6 +1149,9 @@ static int command_line_handle_key(CommandLineState *s)
// Truncate at the end, required for multi-byte chars.
ccline.cmdbuff[ccline.cmdlen] = NUL;
+ if (ccline.cmdlen == 0) {
+ s->search_start = s->save_cursor;
+ }
redrawcmd();
return command_line_changed(s);
@@ -1230,24 +1381,27 @@ static int command_line_handle_key(CommandLineState *s)
case Ctrl_L:
if (p_is && !cmd_silent && (s->firstc == '/' || s->firstc == '?')) {
// Add a character from under the cursor for 'incsearch'
- if (s->did_incsearch && !equalpos(curwin->w_cursor, s->old_cursor)) {
- s->c = gchar_cursor();
- // If 'ignorecase' and 'smartcase' are set and the
- // command line has no uppercase characters, convert
- // the character to lowercase
- if (p_ic && p_scs && !pat_has_uppercase(ccline.cmdbuff)) {
- s->c = mb_tolower(s->c);
- }
-
- if (s->c != NUL) {
- if (s->c == s->firstc
- || vim_strchr((char_u *)(p_magic ? "\\^$.*[" : "\\^$"), s->c)
- != NULL) {
- // put a backslash before special characters
- stuffcharReadbuff(s->c);
- s->c = '\\';
+ if (s->did_incsearch) {
+ curwin->w_cursor = s->match_end;
+ if (!equalpos(curwin->w_cursor, s->search_start)) {
+ s->c = gchar_cursor();
+ // If 'ignorecase' and 'smartcase' are set and the
+ // command line has no uppercase characters, convert
+ // the character to lowercase
+ if (p_ic && p_scs
+ && !pat_has_uppercase(ccline.cmdbuff)) {
+ s->c = mb_tolower(s->c);
+ }
+ if (s->c != NUL) {
+ if (s->c == s->firstc
+ || vim_strchr((char_u *)(p_magic ? "\\^$.*[" : "\\^$"), s->c)
+ != NULL) {
+ // put a backslash before special characters
+ stuffcharReadbuff(s->c);
+ s->c = '\\';
+ }
+ break;
}
- break;
}
}
return command_line_not_changed(s);
@@ -1266,8 +1420,9 @@ static int command_line_handle_key(CommandLineState *s)
0, s->firstc != '@') == FAIL) {
break;
}
- return command_line_changed(s);
+ return command_line_not_changed(s);
}
+ // fallthrough
case K_UP:
case K_DOWN:
@@ -1290,55 +1445,9 @@ static int command_line_handle_key(CommandLineState *s)
s->lookfor[ccline.cmdpos] = NUL;
}
- s->j = (int)STRLEN(s->lookfor);
- for (;; ) {
- // one step backwards
- if (s->c == K_UP|| s->c == K_S_UP || s->c == Ctrl_P
- || s->c == K_PAGEUP || s->c == K_KPAGEUP) {
- if (s->hiscnt == hislen) {
- // first time
- s->hiscnt = hisidx[s->histype];
- } else if (s->hiscnt == 0 && hisidx[s->histype] != hislen - 1) {
- s->hiscnt = hislen - 1;
- } else if (s->hiscnt != hisidx[s->histype] + 1) {
- --s->hiscnt;
- } else {
- // at top of list
- s->hiscnt = s->i;
- break;
- }
- } else { // one step forwards
- // on last entry, clear the line
- if (s->hiscnt == hisidx[s->histype]) {
- s->hiscnt = hislen;
- break;
- }
-
- // not on a history line, nothing to do
- if (s->hiscnt == hislen) {
- break;
- }
-
- if (s->hiscnt == hislen - 1) {
- // wrap around
- s->hiscnt = 0;
- } else {
- ++s->hiscnt;
- }
- }
-
- if (s->hiscnt < 0 || history[s->histype][s->hiscnt].hisstr == NULL) {
- s->hiscnt = s->i;
- break;
- }
-
- if ((s->c != K_UP && s->c != K_DOWN)
- || s->hiscnt == s->i
- || STRNCMP(history[s->histype][s->hiscnt].hisstr,
- s->lookfor, (size_t)s->j) == 0) {
- break;
- }
- }
+ bool next_match = (s->c == K_DOWN || s->c == K_S_DOWN || s->c == Ctrl_N
+ || s->c == K_PAGEDOWN || s->c == K_KPAGEDOWN);
+ command_line_next_histidx(s, next_match);
if (s->hiscnt != s->i) {
// jumped to other entry
@@ -1406,6 +1515,17 @@ static int command_line_handle_key(CommandLineState *s)
beep_flush();
return command_line_not_changed(s);
+ case Ctrl_G: // next match
+ case Ctrl_T: // previous match
+ if (p_is && !cmd_silent && (s->firstc == '/' || s->firstc == '?')) {
+ if (char_avail()) {
+ return 1;
+ }
+ command_line_next_incsearch(s, s->c == Ctrl_G);
+ return command_line_not_changed(s);
+ }
+ break;
+
case Ctrl_V:
case Ctrl_Q:
s->ignore_drag_release = true;
@@ -1520,7 +1640,7 @@ static int command_line_changed(CommandLineState *s)
return 1;
}
s->incsearch_postponed = false;
- curwin->w_cursor = s->old_cursor; // start at old position
+ curwin->w_cursor = s->search_start; // start at old position
// If there is no command line, don't do anything
if (ccline.cmdlen == 0) {
@@ -1565,16 +1685,11 @@ static int command_line_changed(CommandLineState *s)
if (s->i != 0) {
pos_T save_pos = curwin->w_cursor;
- // First move cursor to end of match, then to the start. This
- // moves the whole match onto the screen when 'nowrap' is set.
- curwin->w_cursor.lnum += search_match_lines;
- curwin->w_cursor.col = search_match_endcol;
- if (curwin->w_cursor.lnum > curbuf->b_ml.ml_line_count) {
- curwin->w_cursor.lnum = curbuf->b_ml.ml_line_count;
- coladvance((colnr_T)MAXCOL);
- }
+ s->match_start = curwin->w_cursor;
+ set_search_match(&curwin->w_cursor);
validate_cursor();
end_pos = curwin->w_cursor;
+ s->match_end = end_pos;
curwin->w_cursor = save_pos;
} else {
end_pos = curwin->w_cursor; // shutup gcc 4
@@ -1616,7 +1731,7 @@ static int command_line_changed(CommandLineState *s)
emsg_silent--; // Unblock error reporting
// Restore the window "view".
- curwin->w_cursor = s->old_cursor;
+ curwin->w_cursor = s->save_cursor;
curwin->w_curswant = s->old_curswant;
curwin->w_leftcol = s->old_leftcol;
curwin->w_topline = s->old_topline;
@@ -4072,7 +4187,7 @@ void ExpandGeneric(
/// @param flagsarg is a combination of EW_* flags.
static void expand_shellcmd(char_u *filepat, int *num_file, char_u ***file,
int flagsarg)
- FUNC_ATTR_NONNULL_ALL
+ FUNC_ATTR_NONNULL_ALL
{
char_u *pat;
int i;
@@ -4173,10 +4288,8 @@ static void expand_shellcmd(char_u *filepat, int *num_file, char_u ***file,
}
}
-/*
- * Call "user_expand_func()" to invoke a user defined VimL function and return
- * the result (either a string or a List).
- */
+/// Call "user_expand_func()" to invoke a user defined Vim script function and
+/// return the result (either a string or a List).
static void * call_user_expand_func(user_expand_func_T user_expand_func,
expand_T *xp, int *num_file, char_u ***file)
{
@@ -5003,7 +5116,7 @@ int get_list_range(char_u **str, int *num1, int *num2)
{
int len;
int first = false;
- long num;
+ varnumber_T num;
*str = skipwhite(*str);
if (**str == '-' || ascii_isdigit(**str)) { // parse "from" part of range
@@ -5380,47 +5493,61 @@ static int ex_window(void)
return cmdwin_result;
}
-/*
- * Used for commands that either take a simple command string argument, or:
- * cmd << endmarker
- * {script}
- * endmarker
- * Returns a pointer to allocated memory with {script} or NULL.
- */
-char_u *script_get(exarg_T *eap, char_u *cmd)
+/// Get script string
+///
+/// Used for commands which accept either `:command script` or
+///
+/// :command << endmarker
+/// script
+/// endmarker
+///
+/// @param eap Command being run.
+/// @param[out] lenp Location where length of resulting string is saved. Will
+/// be set to zero when skipping.
+///
+/// @return [allocated] NULL or script. Does not show any error messages.
+/// NULL is returned when skipping and on error.
+char *script_get(exarg_T *const eap, size_t *const lenp)
+ FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT FUNC_ATTR_MALLOC
{
- char_u *theline;
- char *end_pattern = NULL;
- char dot[] = ".";
- garray_T ga;
-
- if (cmd[0] != '<' || cmd[1] != '<' || eap->getline == NULL)
- return NULL;
+ const char *const cmd = (const char *)eap->arg;
- ga_init(&ga, 1, 0x400);
+ if (cmd[0] != '<' || cmd[1] != '<' || eap->getline == NULL) {
+ *lenp = STRLEN(eap->arg);
+ return eap->skip ? NULL : xmemdupz(eap->arg, *lenp);
+ }
- if (cmd[2] != NUL)
- end_pattern = (char *)skipwhite(cmd + 2);
- else
- end_pattern = dot;
+ garray_T ga = { .ga_data = NULL, .ga_len = 0 };
+ if (!eap->skip) {
+ ga_init(&ga, 1, 0x400);
+ }
- for (;; ) {
- theline = eap->getline(
+ const char *const end_pattern = (
+ cmd[2] != NUL
+ ? (const char *)skipwhite((const char_u *)cmd + 2)
+ : ".");
+ for (;;) {
+ char *const theline = (char *)eap->getline(
eap->cstack->cs_looplevel > 0 ? -1 :
NUL, eap->cookie, 0);
- if (theline == NULL || STRCMP(end_pattern, theline) == 0) {
+ if (theline == NULL || strcmp(end_pattern, theline) == 0) {
xfree(theline);
break;
}
- ga_concat(&ga, theline);
- ga_append(&ga, '\n');
+ if (!eap->skip) {
+ ga_concat(&ga, (const char_u *)theline);
+ ga_append(&ga, '\n');
+ }
xfree(theline);
}
- ga_append(&ga, NUL);
+ *lenp = (size_t)ga.ga_len; // Set length without trailing NUL.
+ if (!eap->skip) {
+ ga_append(&ga, NUL);
+ }
- return (char_u *)ga.ga_data;
+ return (char *)ga.ga_data;
}
/// Iterate over history items
@@ -5506,3 +5633,15 @@ histentry_T *hist_get_array(const uint8_t history_type, int **const new_hisidx,
*new_hisnum = &(hisnum[history_type]);
return history[history_type];
}
+
+static void set_search_match(pos_T *t)
+{
+ // First move cursor to end of match, then to the start. This
+ // moves the whole match onto the screen when 'nowrap' is set.
+ t->lnum += search_match_lines;
+ t->col = search_match_endcol;
+ if (t->lnum > curbuf->b_ml.ml_line_count) {
+ t->lnum = curbuf->b_ml.ml_line_count;
+ coladvance((colnr_T)MAXCOL);
+ }
+}
diff --git a/src/nvim/fileio.c b/src/nvim/fileio.c
index 3e062aecc0..be4188c4df 100644
--- a/src/nvim/fileio.c
+++ b/src/nvim/fileio.c
@@ -281,8 +281,8 @@ readfile (
colnr_T len;
long size = 0;
char_u *p = NULL;
- off_t filesize = 0;
- int skip_read = FALSE;
+ off_T filesize = 0;
+ int skip_read = false;
context_sha256_T sha_ctx;
int read_undo_file = FALSE;
int split = 0; /* number of split lines */
@@ -777,9 +777,9 @@ retry:
if (read_buffer) {
read_buf_lnum = 1;
read_buf_col = 0;
- } else if (read_stdin || lseek(fd, (off_t)0L, SEEK_SET) != 0) {
- /* Can't rewind the file, give up. */
- error = TRUE;
+ } else if (read_stdin || vim_lseek(fd, (off_T)0L, SEEK_SET) != 0) {
+ // Can't rewind the file, give up.
+ error = true;
goto failed;
}
/* Delete the previously read lines. */
@@ -1614,19 +1614,16 @@ rewind_retry:
if (fileformat == EOL_DOS) {
if (ptr[-1] == CAR) { /* remove CR */
ptr[-1] = NUL;
- --len;
- }
- /*
- * Reading in Dos format, but no CR-LF found!
- * When 'fileformats' includes "unix", delete all
- * the lines read so far and start all over again.
- * Otherwise give an error message later.
- */
- else if (ff_error != EOL_DOS) {
- if ( try_unix
- && !read_stdin
- && (read_buffer
- || lseek(fd, (off_t)0L, SEEK_SET) == 0)) {
+ len--;
+ } else if (ff_error != EOL_DOS) {
+ // Reading in Dos format, but no CR-LF found!
+ // When 'fileformats' includes "unix", delete all
+ // the lines read so far and start all over again.
+ // Otherwise give an error message later.
+ if (try_unix
+ && !read_stdin
+ && (read_buffer
+ || vim_lseek(fd, (off_T)0L, SEEK_SET) == 0)) {
fileformat = EOL_UNIX;
if (set_options)
set_fileformat(EOL_UNIX, OPT_LOCAL);
@@ -3833,7 +3830,7 @@ static bool msg_add_fileformat(int eol_type)
/*
* Append line and character count to IObuff.
*/
-void msg_add_lines(int insert_space, long lnum, off_t nchars)
+void msg_add_lines(int insert_space, long lnum, off_T nchars)
{
char_u *p;
@@ -4659,7 +4656,7 @@ int vim_rename(const char_u *from, const char_u *to)
return -1;
}
- // Avoid xmalloc() here as vim_rename() is called by buf_write() when neovim
+ // Avoid xmalloc() here as vim_rename() is called by buf_write() when nvim
// is `preserve_exit()`ing.
buffer = try_malloc(BUFSIZE);
if (buffer == NULL) {
@@ -6870,8 +6867,8 @@ static bool apply_autocmds_group(event_T event, char_u *fname, char_u *fname_io,
patcmd.next = active_apc_list;
active_apc_list = &patcmd;
- /* set v:cmdarg (only when there is a matching pattern) */
- save_cmdbang = get_vim_var_nr(VV_CMDBANG);
+ // set v:cmdarg (only when there is a matching pattern)
+ save_cmdbang = (long)get_vim_var_nr(VV_CMDBANG);
if (eap != NULL) {
save_cmdarg = set_cmdarg(eap, NULL);
set_vim_var_nr(VV_CMDBANG, (long)eap->forceit);
diff --git a/src/nvim/fold.c b/src/nvim/fold.c
index 9c44e89eed..db88791967 100644
--- a/src/nvim/fold.c
+++ b/src/nvim/fold.c
@@ -2894,7 +2894,7 @@ static void foldlevelExpr(fline_T *flp)
/* KeyTyped may be reset to 0 when calling a function which invokes
* do_cmdline(). To make 'foldopen' work correctly restore KeyTyped. */
save_keytyped = KeyTyped;
- n = eval_foldexpr(flp->wp->w_p_fde, &c);
+ n = (int)eval_foldexpr(flp->wp->w_p_fde, &c);
KeyTyped = save_keytyped;
switch (c) {
diff --git a/src/nvim/func_attr.h b/src/nvim/func_attr.h
index 18410445e1..bd26205d6d 100644
--- a/src/nvim/func_attr.h
+++ b/src/nvim/func_attr.h
@@ -41,9 +41,7 @@
// $ gcc -E -dM - </dev/null
// $ echo | clang -dM -E -
-#ifndef NVIM_FUNC_ATTR_H
-#define NVIM_FUNC_ATTR_H
-#undef NVIM_FUNC_ATTR_H
+#include "nvim/macros.h"
#ifdef FUNC_ATTR_MALLOC
# undef FUNC_ATTR_MALLOC
@@ -93,11 +91,18 @@
# undef FUNC_ATTR_NONNULL_RET
#endif
+#ifdef FUNC_ATTR_NORETURN
+# undef FUNC_ATTR_NORETURN
+#endif
+
+#ifdef FUNC_ATTR_NO_SANITIZE_UNDEFINED
+# undef FUNC_ATTR_NO_SANITIZE_UNDEFINED
+#endif
+
#ifndef DID_REAL_ATTR
# define DID_REAL_ATTR
# ifdef __GNUC__
-// place defines for all gnulikes here, for now that's gcc, clang and
-// intel.
+// For all gnulikes: gcc, clang, intel.
// place these after the argument list of the function declaration
// (not definition), like so:
@@ -111,27 +116,27 @@
# define REAL_FATTR_UNUSED __attribute__((unused))
# define REAL_FATTR_NONNULL_ALL __attribute__((nonnull))
# define REAL_FATTR_NONNULL_ARG(...) __attribute__((nonnull(__VA_ARGS__)))
+# define REAL_FATTR_NORETURN __attribute__((noreturn))
+
+# if NVIM_HAS_ATTRIBUTE(returns_nonnull)
+# define REAL_FATTR_NONNULL_RET __attribute__((returns_nonnull))
+# endif
-# ifdef __clang__
-// clang only
-# elif defined(__INTEL_COMPILER)
-// intel only
-# else
-# define GCC_VERSION \
- (__GNUC__ * 10000 + \
- __GNUC_MINOR__ * 100 + \
- __GNUC_PATCHLEVEL__)
-// gcc only
+# if NVIM_HAS_ATTRIBUTE(alloc_size)
# define REAL_FATTR_ALLOC_SIZE(x) __attribute__((alloc_size(x)))
# define REAL_FATTR_ALLOC_SIZE_PROD(x, y) __attribute__((alloc_size(x, y)))
-# if GCC_VERSION >= 40900
-# define REAL_FATTR_NONNULL_RET __attribute__((returns_nonnull))
-# endif
+# endif
+
+# if NVIM_HAS_ATTRIBUTE(no_sanitize_undefined)
+# define REAL_FATTR_NO_SANITIZE_UNDEFINED \
+ __attribute__((no_sanitize_undefined))
+# elif NVIM_HAS_ATTRIBUTE(no_sanitize)
+# define REAL_FATTR_NO_SANITIZE_UNDEFINED \
+ __attribute__((no_sanitize("undefined")))
# endif
# endif
-// define function attributes that haven't been defined for this specific
-// compiler.
+// Define attributes that are not defined for this compiler.
# ifndef REAL_FATTR_MALLOC
# define REAL_FATTR_MALLOC
@@ -180,13 +185,22 @@
# ifndef REAL_FATTR_NONNULL_RET
# define REAL_FATTR_NONNULL_RET
# endif
+
+# ifndef REAL_FATTR_NORETURN
+# define REAL_FATTR_NORETURN
+# endif
+
+# ifndef REAL_FATTR_NO_SANITIZE_UNDEFINED
+# define REAL_FATTR_NO_SANITIZE_UNDEFINED
+# endif
#endif
#ifdef DEFINE_FUNC_ATTRIBUTES
# define FUNC_API_ASYNC
# define FUNC_API_NOEXPORT
-# define FUNC_API_NOEVAL
+# define FUNC_API_REMOTE_ONLY
# define FUNC_API_SINCE(X)
+# define FUNC_API_DEPRECATED_SINCE(X)
# define FUNC_ATTR_MALLOC REAL_FATTR_MALLOC
# define FUNC_ATTR_ALLOC_SIZE(x) REAL_FATTR_ALLOC_SIZE(x)
# define FUNC_ATTR_ALLOC_SIZE_PROD(x, y) REAL_FATTR_ALLOC_SIZE_PROD(x, y)
@@ -199,6 +213,8 @@
# define FUNC_ATTR_NONNULL_ALL REAL_FATTR_NONNULL_ALL
# define FUNC_ATTR_NONNULL_ARG(...) REAL_FATTR_NONNULL_ARG(__VA_ARGS__)
# define FUNC_ATTR_NONNULL_RET REAL_FATTR_NONNULL_RET
+# define FUNC_ATTR_NORETURN REAL_FATTR_NORETURN
+# define FUNC_ATTR_NO_SANITIZE_UNDEFINED REAL_FATTR_NO_SANITIZE_UNDEFINED
#elif !defined(DO_NOT_DEFINE_EMPTY_ATTRIBUTES)
# define FUNC_ATTR_MALLOC
# define FUNC_ATTR_ALLOC_SIZE(x)
@@ -212,5 +228,6 @@
# define FUNC_ATTR_NONNULL_ALL
# define FUNC_ATTR_NONNULL_ARG(...)
# define FUNC_ATTR_NONNULL_RET
+# define FUNC_ATTR_NORETURN
+# define FUNC_ATTR_NO_SANITIZE_UNDEFINED
#endif
-#endif // NVIM_FUNC_ATTR_H
diff --git a/src/nvim/garray.h b/src/nvim/garray.h
index 5d7806bbfa..94e1b61671 100644
--- a/src/nvim/garray.h
+++ b/src/nvim/garray.h
@@ -37,7 +37,7 @@ typedef struct growarray {
static inline void *ga_append_via_ptr(garray_T *gap, size_t item_size)
{
if ((int)item_size != gap->ga_itemsize) {
- ELOG("wrong item size in garray(%d), should be %d", item_size);
+ WLOG("wrong item size (%d), should be %d", item_size, gap->ga_itemsize);
}
ga_grow(gap, 1);
return ((char *)gap->ga_data) + (item_size * (size_t)gap->ga_len++);
diff --git a/src/nvim/generators/c_grammar.lua b/src/nvim/generators/c_grammar.lua
new file mode 100644
index 0000000000..d3047e1a9c
--- /dev/null
+++ b/src/nvim/generators/c_grammar.lua
@@ -0,0 +1,50 @@
+lpeg = require('lpeg')
+
+-- lpeg grammar for building api metadata from a set of header files. It
+-- ignores comments and preprocessor commands and parses a very small subset
+-- of C prototypes with a limited set of types
+local P, R, S = lpeg.P, lpeg.R, lpeg.S
+local C, Ct, Cc, Cg = lpeg.C, lpeg.Ct, lpeg.Cc, lpeg.Cg
+
+local any = P(1) -- (consume one character)
+local letter = R('az', 'AZ') + S('_$')
+local num = R('09')
+local alpha = letter + num
+local nl = P('\r\n') + P('\n')
+local not_nl = any - nl
+local ws = S(' \t') + nl
+local fill = ws ^ 0
+local c_comment = P('//') * (not_nl ^ 0)
+local c_preproc = P('#') * (not_nl ^ 0)
+local typed_container =
+ (P('ArrayOf(') + P('DictionaryOf(')) * ((any - P(')')) ^ 1) * P(')')
+local c_id = (
+ typed_container +
+ (letter * (alpha ^ 0))
+)
+local c_void = P('void')
+local c_param_type = (
+ ((P('Error') * fill * P('*') * fill) * Cc('error')) +
+ (C(c_id) * (ws ^ 1))
+ )
+local c_type = (C(c_void) * (ws ^ 1)) + c_param_type
+local c_param = Ct(c_param_type * C(c_id))
+local c_param_list = c_param * (fill * (P(',') * fill * c_param) ^ 0)
+local c_params = Ct(c_void + c_param_list)
+local c_proto = Ct(
+ Cg(c_type, 'return_type') * Cg(c_id, 'name') *
+ fill * P('(') * fill * Cg(c_params, 'parameters') * fill * P(')') *
+ Cg(Cc(false), 'async') *
+ (fill * Cg((P('FUNC_API_SINCE(') * C(num ^ 1)) * P(')'), 'since') ^ -1) *
+ (fill * Cg((P('FUNC_API_DEPRECATED_SINCE(') * C(num ^ 1)) * P(')'),
+ 'deprecated_since') ^ -1) *
+ (fill * Cg((P('FUNC_API_ASYNC') * Cc(true)), 'async') ^ -1) *
+ (fill * Cg((P('FUNC_API_NOEXPORT') * Cc(true)), 'noexport') ^ -1) *
+ (fill * Cg((P('FUNC_API_REMOTE_ONLY') * Cc(true)), 'remote_only') ^ -1) *
+ (fill * Cg((P('FUNC_API_REMOTE_IMPL') * Cc(true)), 'remote_impl') ^ -1) *
+ (fill * Cg((P('FUNC_API_BRIDGE_IMPL') * Cc(true)), 'bridge_impl') ^ -1) *
+ fill * P(';')
+ )
+
+local grammar = Ct((c_proto + c_comment + c_preproc + ws) ^ 1)
+return {grammar=grammar, typed_container=typed_container}
diff --git a/src/nvim/generators/dump_bin_array.lua b/src/nvim/generators/dump_bin_array.lua
new file mode 100644
index 0000000000..bee5aba73f
--- /dev/null
+++ b/src/nvim/generators/dump_bin_array.lua
@@ -0,0 +1,17 @@
+local function dump_bin_array(output, name, data)
+ output:write([[
+ static const uint8_t ]]..name..[[[] = {
+]])
+
+ for i = 1, #data do
+ output:write(string.byte(data, i)..', ')
+ if i % 10 == 0 then
+ output:write('\n ')
+ end
+ end
+ output:write([[
+};
+]])
+end
+
+return dump_bin_array
diff --git a/scripts/gendispatch.lua b/src/nvim/generators/gen_api_dispatch.lua
index 0ee3ae6475..b01321e713 100644
--- a/scripts/gendispatch.lua
+++ b/src/nvim/generators/gen_api_dispatch.lua
@@ -1,72 +1,40 @@
-lpeg = require('lpeg')
mpack = require('mpack')
--- lpeg grammar for building api metadata from a set of header files. It
--- ignores comments and preprocessor commands and parses a very small subset
--- of C prototypes with a limited set of types
-P, R, S = lpeg.P, lpeg.R, lpeg.S
-C, Ct, Cc, Cg = lpeg.C, lpeg.Ct, lpeg.Cc, lpeg.Cg
-
-any = P(1) -- (consume one character)
-letter = R('az', 'AZ') + S('_$')
-num = R('09')
-alpha = letter + num
-nl = P('\r\n') + P('\n')
-not_nl = any - nl
-ws = S(' \t') + nl
-fill = ws ^ 0
-c_comment = P('//') * (not_nl ^ 0)
-c_preproc = P('#') * (not_nl ^ 0)
-typed_container =
- (P('ArrayOf(') + P('DictionaryOf(')) * ((any - P(')')) ^ 1) * P(')')
-c_id = (
- typed_container +
- (letter * (alpha ^ 0))
-)
-c_void = P('void')
-c_param_type = (
- ((P('Error') * fill * P('*') * fill) * Cc('error')) +
- (C(c_id) * (ws ^ 1))
- )
-c_type = (C(c_void) * (ws ^ 1)) + c_param_type
-c_param = Ct(c_param_type * C(c_id))
-c_param_list = c_param * (fill * (P(',') * fill * c_param) ^ 0)
-c_params = Ct(c_void + c_param_list)
-c_proto = Ct(
- Cg(c_type, 'return_type') * Cg(c_id, 'name') *
- fill * P('(') * fill * Cg(c_params, 'parameters') * fill * P(')') *
- Cg(Cc(false), 'async') *
- (fill * Cg((P('FUNC_API_SINCE(') * C(num ^ 1)) * P(')'), 'since') ^ -1) *
- (fill * Cg((P('FUNC_API_ASYNC') * Cc(true)), 'async') ^ -1) *
- (fill * Cg((P('FUNC_API_NOEXPORT') * Cc(true)), 'noexport') ^ -1) *
- (fill * Cg((P('FUNC_API_NOEVAL') * Cc(true)), 'noeval') ^ -1) *
- fill * P(';')
- )
-grammar = Ct((c_proto + c_comment + c_preproc + ws) ^ 1)
-
-- we need at least 4 arguments since the last two are output files
-assert(#arg >= 3)
+if arg[1] == '--help' then
+ print('Usage: genmsgpack.lua args')
+ print('Args: 1: source directory')
+ print(' 2: dispatch output file (dispatch_wrappers.generated.h)')
+ print(' 3: functions metadata output file (funcs_metadata.generated.h)')
+ print(' 4: API metadata output file (api_metadata.mpack)')
+ print(' 5: lua C bindings output file (msgpack_lua_c_bindings.generated.c)')
+ print(' rest: C files where API functions are defined')
+end
+assert(#arg >= 4)
functions = {}
-local nvimsrcdir = arg[1]
-package.path = nvimsrcdir .. '/?.lua;' .. package.path
+local nvimdir = arg[1]
+package.path = nvimdir .. '/?.lua;' .. package.path
-- names of all headers relative to the source root (for inclusion in the
-- generated file)
headers = {}
-- output h file with generated dispatch functions
-dispatch_outputf = arg[#arg-2]
+dispatch_outputf = arg[2]
-- output h file with packed metadata
-funcs_metadata_outputf = arg[#arg-1]
+funcs_metadata_outputf = arg[3]
-- output metadata mpack file, for use by other build scripts
-mpack_outputf = arg[#arg]
+mpack_outputf = arg[4]
+lua_c_bindings_outputf = arg[5]
-- set of function names, used to detect duplicates
function_names = {}
+c_grammar = require('generators.c_grammar')
+
-- read each input file, parse and append to the api metadata
-for i = 2, #arg - 3 do
+for i = 6, #arg do
local full_path = arg[i]
local parts = {}
for part in string.gmatch(full_path, '[^/]+') do
@@ -75,7 +43,8 @@ for i = 2, #arg - 3 do
headers[#headers + 1] = parts[#parts - 1]..'/'..parts[#parts]
local input = io.open(full_path, 'rb')
- local tmp = grammar:match(input:read('*all'))
+
+ local tmp = c_grammar.grammar:match(input:read('*all'))
for i = 1, #tmp do
local fn = tmp[i]
if not fn.noexport then
@@ -117,11 +86,17 @@ local deprecated_aliases = require("api.dispatch_deprecated")
for i,f in ipairs(shallowcopy(functions)) do
local ismethod = false
if startswith(f.name, "nvim_") then
- if f.since == nil then
+ if startswith(f.name, "nvim__") then
+ f.since = -1
+ elseif f.since == nil then
print("Function "..f.name.." lacks since field.\n")
os.exit(1)
end
f.since = tonumber(f.since)
+ if f.deprecated_since ~= nil then
+ f.deprecated_since = tonumber(f.deprecated_since)
+ end
+
if startswith(f.name, "nvim_buf_") then
ismethod = true
elseif startswith(f.name, "nvim_win_") then
@@ -130,7 +105,7 @@ for i,f in ipairs(shallowcopy(functions)) do
ismethod = true
end
else
- f.noeval = true
+ f.remote_only = true
f.since = 0
f.deprecated_since = 1
end
@@ -152,7 +127,7 @@ for i,f in ipairs(shallowcopy(functions)) do
newf.return_type = "Object"
end
newf.impl_name = f.name
- newf.noeval = true
+ newf.remote_only = true
newf.since = 0
newf.deprecated_since = 1
functions[#functions+1] = newf
@@ -164,31 +139,22 @@ exported_attributes = {'name', 'parameters', 'return_type', 'method',
'since', 'deprecated_since'}
exported_functions = {}
for _,f in ipairs(functions) do
- local f_exported = {}
- for _,attr in ipairs(exported_attributes) do
- f_exported[attr] = f[attr]
+ if not startswith(f.name, "nvim__") then
+ local f_exported = {}
+ for _,attr in ipairs(exported_attributes) do
+ f_exported[attr] = f[attr]
+ end
+ exported_functions[#exported_functions+1] = f_exported
end
- exported_functions[#exported_functions+1] = f_exported
end
-funcs_metadata_output = io.open(funcs_metadata_outputf, 'wb')
-funcs_metadata_output:write([[
-static const uint8_t funcs_metadata[] = {
-]])
-
-- serialize the API metadata using msgpack and embed into the resulting
-- binary for easy querying by clients
-packed_exported_functions = mpack.pack(exported_functions)
-for i = 1, #packed_exported_functions do
- funcs_metadata_output:write(string.byte(packed_exported_functions, i)..', ')
- if i % 10 == 0 then
- funcs_metadata_output:write('\n ')
- end
-end
-funcs_metadata_output:write([[
-};
-]])
+funcs_metadata_output = io.open(funcs_metadata_outputf, 'wb')
+packed = mpack.pack(exported_functions)
+dump_bin_array = require("generators.dump_bin_array")
+dump_bin_array(funcs_metadata_output, 'funcs_metadata', packed)
funcs_metadata_output:close()
-- start building the dispatch wrapper output
@@ -196,7 +162,7 @@ output = io.open(dispatch_outputf, 'wb')
local function real_type(type)
local rv = type
- if typed_container:match(rv) then
+ if c_grammar.typed_container:match(rv) then
if rv:match('Array') then
rv = 'Array'
else
@@ -206,6 +172,14 @@ local function real_type(type)
return rv
end
+local function attr_name(rt)
+ if rt == 'Float' then
+ return 'floating'
+ else
+ return rt:lower()
+ end
+end
+
-- start the handler functions. Visit each function metadata to build the
-- handler function with code generated for validating arguments and calling to
-- the real API.
@@ -242,7 +216,7 @@ for i = 1, #functions do
output:write('\n '..converted..' = (handle_T)args.items['..(j - 1)..'].data.integer;')
else
output:write('\n if (args.items['..(j - 1)..'].type == kObjectType'..rt..') {')
- output:write('\n '..converted..' = args.items['..(j - 1)..'].data.'..rt:lower()..';')
+ output:write('\n '..converted..' = args.items['..(j - 1)..'].data.'..attr_name(rt)..';')
end
if rt:match('^Buffer$') or rt:match('^Window$') or rt:match('^Tabpage$') or rt:match('^Boolean$') then
-- accept nonnegative integers for Booleans, Buffers, Windows and Tabpages
@@ -330,3 +304,155 @@ output:close()
mpack_output = io.open(mpack_outputf, 'wb')
mpack_output:write(mpack.pack(functions))
mpack_output:close()
+
+local function include_headers(output, headers)
+ for i = 1, #headers do
+ if headers[i]:sub(-12) ~= '.generated.h' then
+ output:write('\n#include "nvim/'..headers[i]..'"')
+ end
+ end
+end
+
+local function write_shifted_output(output, str)
+ str = str:gsub('\n ', '\n')
+ str = str:gsub('^ ', '')
+ str = str:gsub(' +$', '')
+ output:write(str)
+end
+
+-- start building lua output
+output = io.open(lua_c_bindings_outputf, 'wb')
+
+output:write([[
+#include <lua.h>
+#include <lualib.h>
+#include <lauxlib.h>
+
+#include "nvim/func_attr.h"
+#include "nvim/api/private/defs.h"
+#include "nvim/api/private/helpers.h"
+#include "nvim/lua/converter.h"
+]])
+include_headers(output, headers)
+output:write('\n')
+
+lua_c_functions = {}
+
+local function process_function(fn)
+ lua_c_function_name = ('nlua_msgpack_%s'):format(fn.name)
+ write_shifted_output(output, string.format([[
+
+ static int %s(lua_State *lstate)
+ {
+ Error err = ERROR_INIT;
+ if (lua_gettop(lstate) != %i) {
+ api_set_error(&err, kErrorTypeValidation, "Expected %i argument%s");
+ goto exit_0;
+ }
+ ]], lua_c_function_name, #fn.parameters, #fn.parameters,
+ (#fn.parameters == 1) and '' or 's'))
+ lua_c_functions[#lua_c_functions + 1] = {
+ binding=lua_c_function_name,
+ api=fn.name
+ }
+ local cparams = ''
+ local free_code = {}
+ for j = #fn.parameters,1,-1 do
+ param = fn.parameters[j]
+ cparam = string.format('arg%u', j)
+ param_type = real_type(param[1])
+ lc_param_type = param_type:lower()
+ write_shifted_output(output, string.format([[
+ const %s %s = nlua_pop_%s(lstate, &err);
+
+ if (ERROR_SET(&err)) {
+ goto exit_%u;
+ }
+ ]], param[1], cparam, param_type, #fn.parameters - j))
+ free_code[#free_code + 1] = ('api_free_%s(%s);'):format(
+ lc_param_type, cparam)
+ cparams = cparam .. ', ' .. cparams
+ end
+ if fn.receives_channel_id then
+ cparams = 'LUA_INTERNAL_CALL, ' .. cparams
+ end
+ if fn.can_fail then
+ cparams = cparams .. '&err'
+ else
+ cparams = cparams:gsub(', $', '')
+ end
+ local free_at_exit_code = ''
+ for i = 1, #free_code do
+ local rev_i = #free_code - i + 1
+ local code = free_code[rev_i]
+ if i == 1 then
+ free_at_exit_code = free_at_exit_code .. ('\n %s'):format(code)
+ else
+ free_at_exit_code = free_at_exit_code .. ('\n exit_%u:\n %s'):format(
+ rev_i, code)
+ end
+ end
+ local err_throw_code = [[
+
+ exit_0:
+ if (ERROR_SET(&err)) {
+ luaL_where(lstate, 1);
+ lua_pushstring(lstate, err.msg);
+ api_clear_error(&err);
+ lua_concat(lstate, 2);
+ return lua_error(lstate);
+ }
+ ]]
+ if fn.return_type ~= 'void' then
+ if fn.return_type:match('^ArrayOf') then
+ return_type = 'Array'
+ else
+ return_type = fn.return_type
+ end
+ write_shifted_output(output, string.format([[
+ const %s ret = %s(%s);
+ nlua_push_%s(lstate, ret);
+ api_free_%s(ret);
+ %s
+ %s
+ return 1;
+ ]], fn.return_type, fn.name, cparams, return_type, return_type:lower(),
+ free_at_exit_code, err_throw_code))
+ else
+ write_shifted_output(output, string.format([[
+ %s(%s);
+ %s
+ %s
+ return 0;
+ ]], fn.name, cparams, free_at_exit_code, err_throw_code))
+ end
+ write_shifted_output(output, [[
+ }
+ ]])
+end
+
+for _, fn in ipairs(functions) do
+ if not fn.remote_only or fn.name:sub(1, 4) == '_vim' then
+ process_function(fn)
+ end
+end
+
+output:write(string.format([[
+void nlua_add_api_functions(lua_State *lstate)
+ FUNC_ATTR_NONNULL_ALL
+{
+ lua_createtable(lstate, 0, %u);
+]], #lua_c_functions))
+for _, func in ipairs(lua_c_functions) do
+ output:write(string.format([[
+
+ lua_pushcfunction(lstate, &%s);
+ lua_setfield(lstate, -2, "%s");]], func.binding, func.api))
+end
+output:write([[
+
+ lua_setfield(lstate, -2, "api");
+}
+]])
+
+output:close()
diff --git a/src/nvim/generators/gen_api_ui_events.lua b/src/nvim/generators/gen_api_ui_events.lua
new file mode 100644
index 0000000000..acdb25ca67
--- /dev/null
+++ b/src/nvim/generators/gen_api_ui_events.lua
@@ -0,0 +1,165 @@
+mpack = require('mpack')
+
+local nvimdir = arg[1]
+package.path = nvimdir .. '/?.lua;' .. package.path
+
+assert(#arg == 7)
+input = io.open(arg[2], 'rb')
+proto_output = io.open(arg[3], 'wb')
+call_output = io.open(arg[4], 'wb')
+remote_output = io.open(arg[5], 'wb')
+bridge_output = io.open(arg[6], 'wb')
+metadata_output = io.open(arg[7], 'wb')
+
+c_grammar = require('generators.c_grammar')
+local events = c_grammar.grammar:match(input:read('*all'))
+
+function write_signature(output, ev, prefix, notype)
+ output:write('('..prefix)
+ if prefix == "" and #ev.parameters == 0 then
+ output:write('void')
+ end
+ for j = 1, #ev.parameters do
+ if j > 1 or prefix ~= '' then
+ output:write(', ')
+ end
+ local param = ev.parameters[j]
+ if not notype then
+ output:write(param[1]..' ')
+ end
+ output:write(param[2])
+ end
+ output:write(')')
+end
+
+function write_arglist(output, ev, need_copy)
+ output:write(' Array args = ARRAY_DICT_INIT;\n')
+ for j = 1, #ev.parameters do
+ local param = ev.parameters[j]
+ local kind = string.upper(param[1])
+ local do_copy = need_copy and (kind == "ARRAY" or kind == "DICTIONARY" or kind == "STRING")
+ output:write(' ADD(args, ')
+ if do_copy then
+ output:write('copy_object(')
+ end
+ output:write(kind..'_OBJ('..param[2]..')')
+ if do_copy then
+ output:write(')')
+ end
+ output:write(');\n')
+ end
+end
+
+for i = 1, #events do
+ ev = events[i]
+ assert(ev.return_type == 'void')
+
+ if ev.since == nil then
+ print("Ui event "..ev.name.." lacks since field.\n")
+ os.exit(1)
+ end
+ ev.since = tonumber(ev.since)
+
+ if not ev.remote_only then
+ proto_output:write(' void (*'..ev.name..')')
+ write_signature(proto_output, ev, 'UI *ui')
+ proto_output:write(';\n')
+
+ if not ev.remote_impl then
+ remote_output:write('static void remote_ui_'..ev.name)
+ write_signature(remote_output, ev, 'UI *ui')
+ remote_output:write('\n{\n')
+ write_arglist(remote_output, ev, true)
+ remote_output:write(' push_call(ui, "'..ev.name..'", args);\n')
+ remote_output:write('}\n\n')
+ end
+
+ if not ev.bridge_impl then
+
+ send, argv, recv, recv_argv, recv_cleanup = '', '', '', '', ''
+ argc = 1
+ for j = 1, #ev.parameters do
+ local param = ev.parameters[j]
+ copy = 'copy_'..param[2]
+ if param[1] == 'String' then
+ send = send..' String copy_'..param[2]..' = copy_string('..param[2]..');\n'
+ argv = argv..', '..copy..'.data, INT2PTR('..copy..'.size)'
+ recv = (recv..' String '..param[2]..
+ ' = (String){.data = argv['..argc..'],'..
+ '.size = (size_t)argv['..(argc+1)..']};\n')
+ recv_argv = recv_argv..', '..param[2]
+ recv_cleanup = recv_cleanup..' api_free_string('..param[2]..');\n'
+ argc = argc+2
+ elseif param[1] == 'Array' then
+ send = send..' Array copy_'..param[2]..' = copy_array('..param[2]..');\n'
+ argv = argv..', '..copy..'.items, INT2PTR('..copy..'.size)'
+ recv = (recv..' Array '..param[2]..
+ ' = (Array){.items = argv['..argc..'],'..
+ '.size = (size_t)argv['..(argc+1)..']};\n')
+ recv_argv = recv_argv..', '..param[2]
+ recv_cleanup = recv_cleanup..' api_free_array('..param[2]..');\n'
+ argc = argc+2
+ elseif param[1] == 'Integer' or param[1] == 'Boolean' then
+ argv = argv..', INT2PTR('..param[2]..')'
+ recv_argv = recv_argv..', PTR2INT(argv['..argc..'])'
+ argc = argc+1
+ else
+ assert(false)
+ end
+ end
+ bridge_output:write('static void ui_bridge_'..ev.name..
+ '_event(void **argv)\n{\n')
+ bridge_output:write(' UI *ui = UI(argv[0]);\n')
+ bridge_output:write(recv)
+ bridge_output:write(' ui->'..ev.name..'(ui'..recv_argv..');\n')
+ bridge_output:write(recv_cleanup)
+ bridge_output:write('}\n\n')
+
+ bridge_output:write('static void ui_bridge_'..ev.name)
+ write_signature(bridge_output, ev, 'UI *ui')
+ bridge_output:write('\n{\n')
+ bridge_output:write(send)
+ bridge_output:write(' UI_CALL(ui, '..ev.name..', '..argc..', ui'..argv..');\n}\n')
+ end
+ end
+
+ call_output:write('void ui_call_'..ev.name)
+ write_signature(call_output, ev, '')
+ call_output:write('\n{\n')
+ if ev.remote_only then
+ write_arglist(call_output, ev, false)
+ call_output:write(' ui_event("'..ev.name..'", args);\n')
+ else
+ call_output:write(' UI_CALL')
+ write_signature(call_output, ev, ev.name, true)
+ call_output:write(";\n")
+ end
+ call_output:write("}\n\n")
+
+end
+
+proto_output:close()
+call_output:close()
+remote_output:close()
+
+-- don't expose internal attributes like "impl_name" in public metadata
+exported_attributes = {'name', 'parameters',
+ 'since', 'deprecated_since'}
+exported_events = {}
+for _,ev in ipairs(events) do
+ local ev_exported = {}
+ for _,attr in ipairs(exported_attributes) do
+ ev_exported[attr] = ev[attr]
+ end
+ for _,p in ipairs(ev_exported.parameters) do
+ if p[1] == 'HlAttrs' then
+ p[1] = 'Dictionary'
+ end
+ end
+ exported_events[#exported_events+1] = ev_exported
+end
+
+packed = mpack.pack(exported_events)
+dump_bin_array = require("generators.dump_bin_array")
+dump_bin_array(metadata_output, 'ui_events_metadata', packed)
+metadata_output:close()
diff --git a/src/nvim/generators/gen_char_blob.lua b/src/nvim/generators/gen_char_blob.lua
new file mode 100644
index 0000000000..d860375e26
--- /dev/null
+++ b/src/nvim/generators/gen_char_blob.lua
@@ -0,0 +1,48 @@
+if arg[1] == '--help' then
+ print('Usage:')
+ print(' gencharblob.lua source target varname')
+ print('')
+ print('Generates C file with big uint8_t blob.')
+ print('Blob will be stored in a static const array named varname.')
+ os.exit()
+end
+
+assert(#arg == 3)
+
+local source_file = arg[1]
+local target_file = arg[2]
+local varname = arg[3]
+
+source = io.open(source_file, 'r')
+target = io.open(target_file, 'w')
+
+target:write('#include <stdint.h>\n\n')
+target:write(('static const uint8_t %s[] = {\n'):format(varname))
+
+num_bytes = 0
+MAX_NUM_BYTES = 15 -- 78 / 5: maximum number of bytes on one line
+target:write(' ')
+
+increase_num_bytes = function()
+ num_bytes = num_bytes + 1
+ if num_bytes == MAX_NUM_BYTES then
+ num_bytes = 0
+ target:write('\n ')
+ end
+end
+
+for line in source:lines() do
+ for i = 1,string.len(line) do
+ byte = string.byte(line, i)
+ assert(byte ~= 0)
+ target:write(string.format(' %3u,', byte))
+ increase_num_bytes()
+ end
+ target:write(string.format(' %3u,', string.byte('\n', 1)))
+ increase_num_bytes()
+end
+
+target:write(' 0};\n')
+
+source:close()
+target:close()
diff --git a/scripts/gendeclarations.lua b/src/nvim/generators/gen_declarations.lua
index ff69b18ae4..e999e53e4a 100755
--- a/scripts/gendeclarations.lua
+++ b/src/nvim/generators/gen_declarations.lua
@@ -69,17 +69,18 @@ local word = branch(
right_word
)
)
+local inline_comment = concat(
+ lit('/*'),
+ any_amount(concat(
+ neg_look_ahead(lit('*/')),
+ any_character
+ )),
+ lit('*/')
+)
local spaces = any_amount(branch(
s,
-- Comments are really handled by preprocessor, so the following is not needed
- concat(
- lit('/*'),
- any_amount(concat(
- neg_look_ahead(lit('*/')),
- any_character
- )),
- lit('*/')
- ),
+ inline_comment,
concat(
lit('//'),
any_amount(concat(
@@ -110,6 +111,7 @@ local typ = one_or_more(typ_part)
local typ_id = two_or_more(typ_part)
local arg = typ_id -- argument name is swallowed by typ
local pattern = concat(
+ any_amount(branch(set(' ', '\t'), inline_comment)),
typ_id, -- return type with function name
spaces,
lit('('),
@@ -188,24 +190,44 @@ local footer = [[
local non_static = header
local static = header
-local filepattern = '^#%a* %d+ "[^"]-/?([^"/]+)"'
+local filepattern = '^#%a* (%d+) "([^"]-)/?([^"/]+)"'
local curfile
-init = 0
-curfile = nil
-neededfile = fname:match('[^/]+$')
+local init = 0
+local curfile = nil
+local neededfile = fname:match('[^/]+$')
+local declline = 0
+local declendpos = 0
+local curdir = nil
+local is_needed_file = false
while init ~= nil do
- init = text:find('\n', init)
+ init = text:find('[\n;}]', init)
if init == nil then
break
end
+ local init_is_nl = text:sub(init, init) == '\n'
init = init + 1
- if text:sub(init, init) == '#' then
- file = text:match(filepattern, init)
+ if init_is_nl and is_needed_file then
+ declline = declline + 1
+ end
+ if init_is_nl and text:sub(init, init) == '#' then
+ local line, dir, file = text:match(filepattern, init)
if file ~= nil then
curfile = file
+ is_needed_file = (curfile == neededfile)
+ declline = tonumber(line) - 1
+ local curdir_start = dir:find('src/nvim/')
+ if curdir_start ~= nil then
+ curdir = dir:sub(curdir_start + #('src/nvim/'))
+ else
+ curdir = dir
+ end
+ else
+ declline = declline - 1
end
- elseif curfile == neededfile then
+ elseif init < declendpos then
+ -- Skipping over declaration
+ elseif is_needed_file then
s = init
e = pattern:match(text, init)
if e ~= nil then
@@ -225,13 +247,17 @@ while init ~= nil do
declaration = declaration:gsub(' ?(%*+) ?', ' %1')
declaration = declaration:gsub(' ?(FUNC_ATTR_)', ' %1')
declaration = declaration:gsub(' $', '')
- declaration = declaration .. ';\n'
- if text:sub(s, s + 5) == 'static' then
+ declaration = declaration:gsub('^ ', '')
+ declaration = declaration .. ';'
+ declaration = declaration .. (' // %s/%s:%u'):format(
+ curdir, curfile, declline)
+ declaration = declaration .. '\n'
+ if declaration:sub(1, 6) == 'static' then
static = static .. declaration
else
non_static = non_static .. declaration
end
- init = e
+ declendpos = e
end
end
end
diff --git a/scripts/geneval.lua b/src/nvim/generators/gen_eval.lua
index b1ba76296c..23435a1d0b 100644
--- a/scripts/geneval.lua
+++ b/src/nvim/generators/gen_eval.lua
@@ -25,7 +25,7 @@ local gperfpipe = io.open(funcsfname .. '.gperf', 'wb')
local funcs = require('eval').funcs
local metadata = mpack.unpack(io.open(arg[3], 'rb'):read("*all"))
for i,fun in ipairs(metadata) do
- if not fun.noeval then
+ if not fun.remote_only then
funcs[fun.name] = {
args=#fun.parameters,
func='api_wrapper',
@@ -41,6 +41,7 @@ funcsdata:close()
gperfpipe:write([[
%language=ANSI-C
%global-table
+%readonly-tables
%define initializer-suffix ,0,0,NULL,NULL
%define word-array-name functions
%define hash-function-name hash_internal_func_gperf
diff --git a/scripts/gen_events.lua b/src/nvim/generators/gen_events.lua
index 75e0b3da3a..75e0b3da3a 100644
--- a/scripts/gen_events.lua
+++ b/src/nvim/generators/gen_events.lua
diff --git a/scripts/genex_cmds.lua b/src/nvim/generators/gen_ex_cmds.lua
index cb566d46ca..cb566d46ca 100644
--- a/scripts/genex_cmds.lua
+++ b/src/nvim/generators/gen_ex_cmds.lua
diff --git a/scripts/genoptions.lua b/src/nvim/generators/gen_options.lua
index 9d7f235a3b..ca0134043c 100644
--- a/scripts/genoptions.lua
+++ b/src/nvim/generators/gen_options.lua
@@ -118,7 +118,7 @@ local get_value = function(v)
end
local get_defaults = function(d)
- return '{' .. get_value(d.vi) .. ', ' .. get_value(d.vim) .. '}'
+ return ('{' .. get_value(d.vi) .. ', ' .. get_value(d.vim) .. '}')
end
local defines = {}
diff --git a/scripts/genunicodetables.lua b/src/nvim/generators/gen_unicode_tables.lua
index 66430ba26e..66430ba26e 100644
--- a/scripts/genunicodetables.lua
+++ b/src/nvim/generators/gen_unicode_tables.lua
diff --git a/src/nvim/getchar.c b/src/nvim/getchar.c
index 9d32df5a68..4e42042959 100644
--- a/src/nvim/getchar.c
+++ b/src/nvim/getchar.c
@@ -18,6 +18,7 @@
#include "nvim/vim.h"
#include "nvim/ascii.h"
#include "nvim/getchar.h"
+#include "nvim/buffer_defs.h"
#include "nvim/charset.h"
#include "nvim/cursor.h"
#include "nvim/edit.h"
@@ -47,6 +48,7 @@
#include "nvim/event/loop.h"
#include "nvim/os/input.h"
#include "nvim/os/os.h"
+#include "nvim/api/private/handle.h"
/*
* These buffers are used for storing:
@@ -102,11 +104,10 @@ static int block_redo = FALSE;
(NORMAL + VISUAL + SELECTMODE + \
OP_PENDING)) ? (c1) : ((c1) ^ 0x80))
-/*
- * Each mapping is put in one of the 256 hash lists, to speed up finding it.
- */
-static mapblock_T *(maphash[256]);
-static int maphash_valid = FALSE;
+// Each mapping is put in one of the MAX_MAPHASH hash lists,
+// to speed up finding it.
+static mapblock_T *(maphash[MAX_MAPHASH]);
+static bool maphash_valid = false;
/*
* List used for abbreviations.
@@ -1592,7 +1593,7 @@ vungetc ( /* unget one character (can only be done once!) */
/// This may do a blocking wait if "advance" is TRUE.
///
/// if "advance" is TRUE (vgetc()):
-/// really get the character.
+/// Really get the character.
/// KeyTyped is set to TRUE in the case the user typed the key.
/// KeyStuffed is TRUE if the character comes from the stuff buffer.
/// if "advance" is FALSE (vpeekc()):
@@ -1907,7 +1908,7 @@ static int vgetorpeek(int advance)
}
if ((mp == NULL || max_mlen >= mp_match_len)
- && keylen != KEYLEN_PART_MAP && keylen != KEYLEN_PART_KEY) {
+ && keylen != KEYLEN_PART_MAP) {
// No matching mapping found or found a non-matching mapping that
// matches at least what the matching mapping matched
keylen = 0;
@@ -3168,6 +3169,10 @@ showmap (
{
size_t len = 1;
+ if (message_filtered(mp->m_keys) && message_filtered(mp->m_str)) {
+ return;
+ }
+
if (msg_didout || msg_silent != 0) {
msg_putchar('\n');
if (got_int) /* 'q' typed at MORE prompt */
@@ -3592,8 +3597,8 @@ int check_abbr(int c, char_u *ptr, int col, int mincol)
char_u *q = mp->m_keys;
int match;
- if (vim_strbyte(mp->m_keys, K_SPECIAL) != NULL) {
- /* might have CSI escaped mp->m_keys */
+ if (strchr((const char *)mp->m_keys, K_SPECIAL) != NULL) {
+ // Might have CSI escaped mp->m_keys.
q = vim_strsave(mp->m_keys);
vim_unescape_csi(q);
qlen = (int)STRLEN(q);
@@ -3790,8 +3795,7 @@ makemap (
char *cmd;
int abbr;
int hash;
- int did_cpo = FALSE;
- int i;
+ bool did_cpo = false;
validate_maphash();
@@ -3919,13 +3923,15 @@ makemap (
/* When outputting <> form, need to make sure that 'cpo'
* is set to the Vim default. */
if (!did_cpo) {
- if (*mp->m_str == NUL) /* will use <Nop> */
- did_cpo = TRUE;
- else
- for (i = 0; i < 2; ++i)
- for (p = (i ? mp->m_str : mp->m_keys); *p; ++p)
- if (*p == K_SPECIAL || *p == NL)
- did_cpo = TRUE;
+ if (*mp->m_str == NUL) { // Will use <Nop>.
+ did_cpo = true;
+ } else {
+ const char specials[] = { (char)(uint8_t)K_SPECIAL, NL, NUL };
+ if (strpbrk((const char *)mp->m_str, specials) != NULL
+ || strpbrk((const char *)mp->m_keys, specials) != NULL) {
+ did_cpo = true;
+ }
+ }
if (did_cpo) {
if (fprintf(fd, "let s:cpo_save=&cpo") < 0
|| put_eol(fd) < 0
@@ -4232,3 +4238,17 @@ static bool typebuf_match_len(const uint8_t *str, int *mlen)
*mlen = i;
return str[i] == NUL; // matched the whole string
}
+
+/// Retrieve the mapblock at the index either globally or for a certain buffer
+///
+/// @param index The index in the maphash[]
+/// @param buf The buffer to get the maphash from. NULL for global
+mapblock_T *get_maphash(int index, buf_T *buf)
+ FUNC_ATTR_PURE
+{
+ if (index > MAX_MAPHASH) {
+ return NULL;
+ }
+
+ return (buf == NULL) ? maphash[index] : buf->b_maphash[index];
+}
diff --git a/src/nvim/globals.h b/src/nvim/globals.h
index df9f418951..6d1bd1de12 100644
--- a/src/nvim/globals.h
+++ b/src/nvim/globals.h
@@ -97,6 +97,34 @@ typedef enum {
EXTERN long Rows INIT(= DFLT_ROWS); // nr of rows in the screen
EXTERN long Columns INIT(= DFLT_COLS); // nr of columns in the screen
+// We use 64-bit file functions here, if available. E.g. ftello() returns
+// off_t instead of long, which helps if long is 32 bit and off_t is 64 bit.
+// We assume that when fseeko() is available then ftello() is too.
+// Note that Windows has different function names.
+#if (defined(_MSC_VER) && (_MSC_VER >= 1300)) || defined(__MINGW32__)
+typedef __int64 off_T;
+# ifdef __MINGW32__
+# define vim_lseek lseek64
+# define vim_fseek fseeko64
+# define vim_ftell ftello64
+# else
+# define vim_lseek _lseeki64
+# define vim_fseek _fseeki64
+# define vim_ftell _ftelli64
+# endif
+#else
+typedef off_t off_T;
+# ifdef HAVE_FSEEKO
+# define vim_lseek lseek
+# define vim_ftell ftello
+# define vim_fseek fseeko
+# else
+# define vim_lseek lseek
+# define vim_ftell ftell
+# define vim_fseek(a, b, c) fseek(a, (long)b, c)
+# endif
+#endif
+
/*
* The characters and attributes cached for the screen.
*/
@@ -411,80 +439,6 @@ EXTERN int did_check_timestamps INIT(= FALSE); /* did check timestamps
recently */
EXTERN int no_check_timestamps INIT(= 0); /* Don't check timestamps */
-/*
- * Values for index in highlight_attr[].
- * When making changes, also update HL_FLAGS below! And update the default
- * value of 'highlight' in option.c.
- */
-typedef enum {
- HLF_8 = 0 /* Meta & special keys listed with ":map", text that is
- displayed different from what it is */
- , HLF_EOB // after the last line in the buffer
- , HLF_TERM // terminal cursor focused
- , HLF_TERMNC // terminal cursor unfocused
- , HLF_AT // @ characters at end of screen, characters that
- // don't really exist in the text
- , HLF_D // directories in CTRL-D listing
- , HLF_E // error messages
- , HLF_I // incremental search
- , HLF_L // last search string
- , HLF_M // "--More--" message
- , HLF_CM // Mode (e.g., "-- INSERT --")
- , HLF_N // line number for ":number" and ":#" commands
- , HLF_CLN // current line number
- , HLF_R // return to continue message and yes/no questions
- , HLF_S // status lines
- , HLF_SNC // status lines of not-current windows
- , HLF_C // column to separate vertically split windows
- , HLF_T // Titles for output from ":set all", ":autocmd" etc.
- , HLF_V // Visual mode
- , HLF_VNC // Visual mode, autoselecting and not clipboard owner
- , HLF_W // warning messages
- , HLF_WM // Wildmenu highlight
- , HLF_FL // Folded line
- , HLF_FC // Fold column
- , HLF_ADD // Added diff line
- , HLF_CHD // Changed diff line
- , HLF_DED // Deleted diff line
- , HLF_TXD // Text Changed in diff line
- , HLF_CONCEAL // Concealed text
- , HLF_SC // Sign column
- , HLF_SPB // SpellBad
- , HLF_SPC // SpellCap
- , HLF_SPR // SpellRare
- , HLF_SPL // SpellLocal
- , HLF_PNI // popup menu normal item
- , HLF_PSI // popup menu selected item
- , HLF_PSB // popup menu scrollbar
- , HLF_PST // popup menu scrollbar thumb
- , HLF_TP // tabpage line
- , HLF_TPS // tabpage line selected
- , HLF_TPF // tabpage line filler
- , HLF_CUC // 'cursurcolumn'
- , HLF_CUL // 'cursurline'
- , HLF_MC // 'colorcolumn'
- , HLF_QFL // selected quickfix line
- , HLF_0 // Whitespace
- , HLF_COUNT // MUST be the last one
-} hlf_T;
-
-/* The HL_FLAGS must be in the same order as the HLF_ enums!
- * When changing this also adjust the default for 'highlight'. */
-#define HL_FLAGS { '8', '~', 'z', 'Z', '@', 'd', 'e', 'i', 'l', 'm', 'M', 'n', \
- 'N', 'r', 's', 'S', 'c', 't', 'v', 'V', 'w', 'W', 'f', 'F', \
- 'A', 'C', 'D', 'T', '-', '>', 'B', 'P', 'R', 'L', '+', '=', \
- 'x', 'X', '*', '#', '_', '!', '.', 'o', 'q', '0' }
-
-EXTERN int highlight_attr[HLF_COUNT]; /* Highl. attr for each context. */
-EXTERN int highlight_user[9]; /* User[1-9] attributes */
-EXTERN int highlight_stlnc[9]; /* On top of user */
-EXTERN int cterm_normal_fg_color INIT(= 0);
-EXTERN int cterm_normal_fg_bold INIT(= 0);
-EXTERN int cterm_normal_bg_color INIT(= 0);
-EXTERN RgbValue normal_fg INIT(= -1);
-EXTERN RgbValue normal_bg INIT(= -1);
-EXTERN RgbValue normal_sp INIT(= -1);
-
EXTERN int autocmd_busy INIT(= FALSE); /* Is apply_autocmds() busy? */
EXTERN int autocmd_no_enter INIT(= FALSE); /* *Enter autocmds disabled */
EXTERN int autocmd_no_leave INIT(= FALSE); /* *Leave autocmds disabled */
@@ -496,7 +450,7 @@ EXTERN int keep_filetype INIT(= FALSE); /* value for did_filetype when
// When deleting the current buffer, another one must be loaded.
// If we know which one is preferred, au_new_curbuf is set to it.
-EXTERN bufref_T au_new_curbuf INIT(= { NULL, 0 });
+EXTERN bufref_T au_new_curbuf INIT(= { NULL, 0, 0 });
// When deleting a buffer/window and autocmd_busy is TRUE, do not free the
// buffer/window. but link it in the list starting with
@@ -943,7 +897,7 @@ EXTERN int did_cursorhold INIT(= false); // set when CursorHold t'gerd
// for CursorMoved event
EXTERN pos_T last_cursormoved INIT(= INIT_POS_T(0, 0, 0));
-EXTERN int last_changedtick INIT(= 0); // for TextChanged event
+EXTERN varnumber_T last_changedtick INIT(= 0); // for TextChanged event
EXTERN buf_T *last_changedtick_buf INIT(= NULL);
EXTERN int postponed_split INIT(= 0); /* for CTRL-W CTRL-] command */
@@ -1177,6 +1131,7 @@ EXTERN char_u e_longname[] INIT(= N_("E75: Name too long"));
EXTERN char_u e_toomsbra[] INIT(= N_("E76: Too many ["));
EXTERN char_u e_toomany[] INIT(= N_("E77: Too many file names"));
EXTERN char_u e_trailing[] INIT(= N_("E488: Trailing characters"));
+EXTERN char_u e_trailing2[] INIT(= N_("E488: Trailing characters: %s"));
EXTERN char_u e_umark[] INIT(= N_("E78: Unknown mark"));
EXTERN char_u e_wildexpand[] INIT(= N_("E79: Cannot expand wildcards"));
EXTERN char_u e_winheight[] INIT(= N_(
diff --git a/src/nvim/highlight_defs.h b/src/nvim/highlight_defs.h
new file mode 100644
index 0000000000..927fc94bbe
--- /dev/null
+++ b/src/nvim/highlight_defs.h
@@ -0,0 +1,126 @@
+#ifndef NVIM_HIGHLIGHT_DEFS_H
+#define NVIM_HIGHLIGHT_DEFS_H
+
+#include <inttypes.h>
+
+#include "nvim/macros.h"
+
+typedef int32_t RgbValue;
+
+/// Values for index in highlight_attr[].
+/// When making changes, also update hlf_names below!
+typedef enum {
+ HLF_8 = 0 // Meta & special keys listed with ":map", text that is
+ // displayed different from what it is
+ , HLF_EOB // after the last line in the buffer
+ , HLF_TERM // terminal cursor focused
+ , HLF_TERMNC // terminal cursor unfocused
+ , HLF_AT // @ characters at end of screen, characters that
+ // don't really exist in the text
+ , HLF_D // directories in CTRL-D listing
+ , HLF_E // error messages
+ , HLF_I // incremental search
+ , HLF_L // last search string
+ , HLF_M // "--More--" message
+ , HLF_CM // Mode (e.g., "-- INSERT --")
+ , HLF_N // line number for ":number" and ":#" commands
+ , HLF_CLN // current line number
+ , HLF_R // return to continue message and yes/no questions
+ , HLF_S // status lines
+ , HLF_SNC // status lines of not-current windows
+ , HLF_C // column to separate vertically split windows
+ , HLF_T // Titles for output from ":set all", ":autocmd" etc.
+ , HLF_V // Visual mode
+ , HLF_VNC // Visual mode, autoselecting and not clipboard owner
+ , HLF_W // warning messages
+ , HLF_WM // Wildmenu highlight
+ , HLF_FL // Folded line
+ , HLF_FC // Fold column
+ , HLF_ADD // Added diff line
+ , HLF_CHD // Changed diff line
+ , HLF_DED // Deleted diff line
+ , HLF_TXD // Text Changed in diff line
+ , HLF_SC // Sign column
+ , HLF_CONCEAL // Concealed text
+ , HLF_SPB // SpellBad
+ , HLF_SPC // SpellCap
+ , HLF_SPR // SpellRare
+ , HLF_SPL // SpellLocal
+ , HLF_PNI // popup menu normal item
+ , HLF_PSI // popup menu selected item
+ , HLF_PSB // popup menu scrollbar
+ , HLF_PST // popup menu scrollbar thumb
+ , HLF_TP // tabpage line
+ , HLF_TPS // tabpage line selected
+ , HLF_TPF // tabpage line filler
+ , HLF_CUC // 'cursurcolumn'
+ , HLF_CUL // 'cursurline'
+ , HLF_MC // 'colorcolumn'
+ , HLF_QFL // selected quickfix line
+ , HLF_0 // Whitespace
+ , HLF_INACTIVE // NormalNC: Normal text in non-current windows
+ , HLF_COUNT // MUST be the last one
+} hlf_T;
+
+EXTERN const char *hlf_names[] INIT(= {
+ [HLF_8] = "SpecialKey",
+ [HLF_EOB] = "EndOfBuffer",
+ [HLF_TERM] = "TermCursor",
+ [HLF_TERMNC] = "TermCursorNC",
+ [HLF_AT] = "NonText",
+ [HLF_D] = "Directory",
+ [HLF_E] = "ErrorMsg",
+ [HLF_I] = "IncSearch",
+ [HLF_L] = "Search",
+ [HLF_M] = "MoreMsg",
+ [HLF_CM] = "ModeMsg",
+ [HLF_N] = "LineNr",
+ [HLF_CLN] = "CursorLineNr",
+ [HLF_R] = "Question",
+ [HLF_S] = "StatusLine",
+ [HLF_SNC] = "StatusLineNC",
+ [HLF_C] = "VertSplit",
+ [HLF_T] = "Title",
+ [HLF_V] = "Visual",
+ [HLF_VNC] = "VisualNC",
+ [HLF_W] = "WarningMsg",
+ [HLF_WM] = "WildMenu",
+ [HLF_FL] = "Folded",
+ [HLF_FC] = "FoldColumn",
+ [HLF_ADD] = "DiffAdd",
+ [HLF_CHD] = "DiffChange",
+ [HLF_DED] = "DiffDelete",
+ [HLF_TXD] = "DiffText",
+ [HLF_SC] = "SignColumn",
+ [HLF_CONCEAL] = "Conceal",
+ [HLF_SPB] = "SpellBad",
+ [HLF_SPC] = "SpellCap",
+ [HLF_SPR] = "SpellRare",
+ [HLF_SPL] = "SpellLocal",
+ [HLF_PNI] = "Pmenu",
+ [HLF_PSI] = "PmenuSel",
+ [HLF_PSB] = "PmenuSbar",
+ [HLF_PST] = "PmenuThumb",
+ [HLF_TP] = "TabLine",
+ [HLF_TPS] = "TabLineSel",
+ [HLF_TPF] = "TabLineFill",
+ [HLF_CUC] = "CursorColumn",
+ [HLF_CUL] = "CursorLine",
+ [HLF_MC] = "ColorColumn",
+ [HLF_QFL] = "QuickFixLine",
+ [HLF_0] = "Whitespace",
+ [HLF_INACTIVE] = "NormalNC"
+});
+
+
+EXTERN int highlight_attr[HLF_COUNT]; // Highl. attr for each context.
+EXTERN int highlight_user[9]; // User[1-9] attributes
+EXTERN int highlight_stlnc[9]; // On top of user
+EXTERN int cterm_normal_fg_color INIT(= 0);
+EXTERN int cterm_normal_fg_bold INIT(= 0);
+EXTERN int cterm_normal_bg_color INIT(= 0);
+EXTERN RgbValue normal_fg INIT(= -1);
+EXTERN RgbValue normal_bg INIT(= -1);
+EXTERN RgbValue normal_sp INIT(= -1);
+
+#endif // NVIM_HIGHLIGHT_DEFS_H
diff --git a/src/nvim/if_cscope.c b/src/nvim/if_cscope.c
index e1c7df9175..f7706f5a0d 100644
--- a/src/nvim/if_cscope.c
+++ b/src/nvim/if_cscope.c
@@ -1972,7 +1972,7 @@ static void cs_release_csp(size_t i, int freefnpp)
static int cs_reset(exarg_T *eap)
{
char **dblist = NULL, **pplist = NULL, **fllist = NULL;
- char buf[20]; /* for snprintf " (#%zu)" */
+ char buf[25]; // for snprintf " (#%zu)"
if (csinfo_size == 0)
return CSCOPE_SUCCESS;
diff --git a/src/nvim/if_cscope_defs.h b/src/nvim/if_cscope_defs.h
index f9d06eaea3..fa18866840 100644
--- a/src/nvim/if_cscope_defs.h
+++ b/src/nvim/if_cscope_defs.h
@@ -18,6 +18,7 @@
#include "nvim/os/os_defs.h"
#include "nvim/os/fs_defs.h"
+#include "nvim/ex_cmds_defs.h"
#define CSCOPE_SUCCESS 0
#define CSCOPE_FAILURE -1
diff --git a/src/nvim/indent.c b/src/nvim/indent.c
index 5471b41b2c..efca739c2d 100644
--- a/src/nvim/indent.c
+++ b/src/nvim/indent.c
@@ -471,7 +471,7 @@ int get_breakindent_win(win_T *wp, char_u *line) {
|| prev_tick != wp->w_buffer->b_changedtick) {
prev_line = line;
prev_ts = wp->w_buffer->b_p_ts;
- prev_tick = wp->w_buffer->b_changedtick;
+ prev_tick = (int)wp->w_buffer->b_changedtick;
prev_indent = get_indent_str(line,
(int)wp->w_buffer->b_p_ts, wp->w_p_list);
}
@@ -538,7 +538,7 @@ int get_expr_indent(void)
sandbox++;
}
textlock++;
- indent = eval_to_number(curbuf->b_p_inde);
+ indent = (int)eval_to_number(curbuf->b_p_inde);
if (use_sandbox) {
sandbox--;
diff --git a/src/nvim/indent_c.c b/src/nvim/indent_c.c
index 4806f46705..fd194a4080 100644
--- a/src/nvim/indent_c.c
+++ b/src/nvim/indent_c.c
@@ -822,21 +822,22 @@ cin_isterminated (
return found_start;
}
-/*
- * Recognize the basic picture of a function declaration -- it needs to
- * have an open paren somewhere and a close paren at the end of the line and
- * no semicolons anywhere.
- * When a line ends in a comma we continue looking in the next line.
- * "sp" points to a string with the line. When looking at other lines it must
- * be restored to the line. When it's NULL fetch lines here.
- * "lnum" is where we start looking.
- * "min_lnum" is the line before which we will not be looking.
- */
+/// Recognizes the basic picture of a function declaration -- it needs to
+/// have an open paren somewhere and a close paren at the end of the line and
+/// no semicolons anywhere.
+/// When a line ends in a comma we continue looking in the next line.
+///
+/// @param[in] sp Points to a string with the line. When looking at other
+/// lines it must be restored to the line. When it's NULL fetch
+/// lines here.
+/// @param[in] first_lnum Where to start looking.
+/// @param[in] min_lnum The line before which we will not be looking.
static int cin_isfuncdecl(char_u **sp, linenr_T first_lnum, linenr_T min_lnum)
{
char_u *s;
linenr_T lnum = first_lnum;
- int retval = FALSE;
+ linenr_T save_lnum = curwin->w_cursor.lnum;
+ int retval = false;
pos_T *trypos;
int just_started = TRUE;
@@ -845,18 +846,22 @@ static int cin_isfuncdecl(char_u **sp, linenr_T first_lnum, linenr_T min_lnum)
else
s = *sp;
+ curwin->w_cursor.lnum = lnum;
if (find_last_paren(s, '(', ')')
&& (trypos = find_match_paren(curbuf->b_ind_maxparen)) != NULL) {
lnum = trypos->lnum;
- if (lnum < min_lnum)
- return FALSE;
-
+ if (lnum < min_lnum) {
+ curwin->w_cursor.lnum = save_lnum;
+ return false;
+ }
s = ml_get(lnum);
}
- /* Ignore line starting with #. */
- if (cin_ispreproc(s))
- return FALSE;
+ curwin->w_cursor.lnum = save_lnum;
+ // Ignore line starting with #.
+ if (cin_ispreproc(s)) {
+ return false;
+ }
while (*s && *s != '(' && *s != ';' && *s != '\'' && *s != '"') {
// ignore comments
diff --git a/src/nvim/keymap.c b/src/nvim/keymap.c
index 9c5fe78c7c..ee67b4c19d 100644
--- a/src/nvim/keymap.c
+++ b/src/nvim/keymap.c
@@ -557,7 +557,7 @@ int find_special_key(const char_u **srcp, const size_t src_len, int *const modp,
int modifiers;
int bit;
int key;
- unsigned long n;
+ uvarnumber_T n;
int l;
if (src_len == 0) {
diff --git a/src/nvim/lib/kbtree.h b/src/nvim/lib/kbtree.h
new file mode 100644
index 0000000000..a3943054e6
--- /dev/null
+++ b/src/nvim/lib/kbtree.h
@@ -0,0 +1,451 @@
+/*-
+ * Copyright 1997-1999, 2001, John-Mark Gurney.
+ * 2008-2009, Attractive Chaos <attractor@live.co.uk>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef NVIM_LIB_KBTREE_H
+#define NVIM_LIB_KBTREE_H
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdint.h>
+
+#include "nvim/memory.h"
+
+#define KB_MAX_DEPTH 64
+
+#define __KB_KEY(type, x) (x->key)
+#define __KB_PTR(btr, x) (x->ptr)
+
+#define __KB_TREE_T(name,key_t,T) \
+ typedef struct kbnode_##name##_s kbnode_##name##_t; \
+ struct kbnode_##name##_s { \
+ int32_t n; \
+ bool is_internal; \
+ key_t key[2*T-1]; \
+ kbnode_##name##_t *ptr[]; \
+ } ; \
+ \
+ typedef struct { \
+ kbnode_##name##_t *root; \
+ int n_keys, n_nodes; \
+ } kbtree_##name##_t; \
+ \
+ typedef struct { \
+ kbnode_##name##_t *x; \
+ int i; \
+ } kbpos_##name##_t; \
+ typedef struct { \
+ kbpos_##name##_t stack[KB_MAX_DEPTH], *p; \
+ } kbitr_##name##_t; \
+
+
+#define __kb_destroy(kbnode_t,b) do { \
+ int i; \
+ unsigned int max = 8; \
+ kbnode_t *x, **top, **stack = 0; \
+ if (b->root) { \
+ top = stack = (kbnode_t**)xcalloc(max, sizeof(kbnode_t*)); \
+ *top++ = (b)->root; \
+ while (top != stack) { \
+ x = *--top; \
+ if (x->is_internal == 0) { xfree(x); continue; } \
+ for (i = 0; i <= x->n; ++i) \
+ if (__KB_PTR(b, x)[i]) { \
+ if (top - stack == (int)max) { \
+ max <<= 1; \
+ stack = (kbnode_t**)xrealloc(stack, max * sizeof(kbnode_t*)); \
+ top = stack + (max>>1); \
+ } \
+ *top++ = __KB_PTR(b, x)[i]; \
+ } \
+ xfree(x); \
+ } \
+ } \
+ xfree(stack); \
+ } while (0)
+
+#define __KB_GET_AUX1(name, key_t, kbnode_t, __cmp) \
+ static inline int __kb_getp_aux_##name(const kbnode_t * __restrict x, key_t * __restrict k, int *r) \
+ { \
+ int tr, *rr, begin = 0, end = x->n; \
+ if (x->n == 0) return -1; \
+ rr = r? r : &tr; \
+ while (begin < end) { \
+ int mid = (begin + end) >> 1; \
+ if (__cmp(__KB_KEY(key_t, x)[mid], *k) < 0) begin = mid + 1; \
+ else end = mid; \
+ } \
+ if (begin == x->n) { *rr = 1; return x->n - 1; } \
+ if ((*rr = __cmp(*k, __KB_KEY(key_t, x)[begin])) < 0) --begin; \
+ return begin; \
+ }
+
+#define __KB_GET(name, key_t, kbnode_t) \
+ static key_t *kb_getp_##name(kbtree_##name##_t *b, key_t * __restrict k) \
+ { \
+ if (!b->root) { \
+ return 0; \
+ } \
+ int i, r = 0; \
+ kbnode_t *x = b->root; \
+ while (x) { \
+ i = __kb_getp_aux_##name(x, k, &r); \
+ if (i >= 0 && r == 0) return &__KB_KEY(key_t, x)[i]; \
+ if (x->is_internal == 0) return 0; \
+ x = __KB_PTR(b, x)[i + 1]; \
+ } \
+ return 0; \
+ } \
+ static inline key_t *kb_get_##name(kbtree_##name##_t *b, key_t k) \
+ { \
+ return kb_getp_##name(b, &k); \
+ }
+
+#define __KB_INTERVAL(name, key_t, kbnode_t) \
+ static inline void kb_intervalp_##name(kbtree_##name##_t *b, key_t * __restrict k, key_t **lower, key_t **upper) \
+ { \
+ if (!b->root) { \
+ return; \
+ } \
+ int i, r = 0; \
+ kbnode_t *x = b->root; \
+ *lower = *upper = 0; \
+ while (x) { \
+ i = __kb_getp_aux_##name(x, k, &r); \
+ if (i >= 0 && r == 0) { \
+ *lower = *upper = &__KB_KEY(key_t, x)[i]; \
+ return; \
+ } \
+ if (i >= 0) *lower = &__KB_KEY(key_t, x)[i]; \
+ if (i < x->n - 1) *upper = &__KB_KEY(key_t, x)[i + 1]; \
+ if (x->is_internal == 0) return; \
+ x = __KB_PTR(b, x)[i + 1]; \
+ } \
+ } \
+ static inline void kb_interval_##name(kbtree_##name##_t *b, key_t k, key_t **lower, key_t **upper) \
+ { \
+ kb_intervalp_##name(b, &k, lower, upper); \
+ }
+
+#define __KB_PUT(name, key_t, kbnode_t, __cmp, T, ILEN) \
+ /* x must be an internal node */ \
+ static inline void __kb_split_##name(kbtree_##name##_t *b, kbnode_t *x, int i, kbnode_t *y) \
+ { \
+ kbnode_t *z; \
+ z = (kbnode_t*)xcalloc(1, y->is_internal? ILEN : sizeof(kbnode_##name##_t)); \
+ ++b->n_nodes; \
+ z->is_internal = y->is_internal; \
+ z->n = T - 1; \
+ memcpy(__KB_KEY(key_t, z), &__KB_KEY(key_t, y)[T], sizeof(key_t) * (T - 1)); \
+ if (y->is_internal) memcpy(__KB_PTR(b, z), &__KB_PTR(b, y)[T], sizeof(void*) * T); \
+ y->n = T - 1; \
+ memmove(&__KB_PTR(b, x)[i + 2], &__KB_PTR(b, x)[i + 1], sizeof(void*) * (unsigned int)(x->n - i)); \
+ __KB_PTR(b, x)[i + 1] = z; \
+ memmove(&__KB_KEY(key_t, x)[i + 1], &__KB_KEY(key_t, x)[i], sizeof(key_t) * (unsigned int)(x->n - i)); \
+ __KB_KEY(key_t, x)[i] = __KB_KEY(key_t, y)[T - 1]; \
+ ++x->n; \
+ } \
+ static inline key_t *__kb_putp_aux_##name(kbtree_##name##_t *b, kbnode_t *x, key_t * __restrict k) \
+ { \
+ int i = x->n - 1; \
+ key_t *ret; \
+ if (x->is_internal == 0) { \
+ i = __kb_getp_aux_##name(x, k, 0); \
+ if (i != x->n - 1) \
+ memmove(&__KB_KEY(key_t, x)[i + 2], &__KB_KEY(key_t, x)[i + 1], (unsigned int)(x->n - i - 1) * sizeof(key_t)); \
+ ret = &__KB_KEY(key_t, x)[i + 1]; \
+ *ret = *k; \
+ ++x->n; \
+ } else { \
+ i = __kb_getp_aux_##name(x, k, 0) + 1; \
+ if (__KB_PTR(b, x)[i]->n == 2 * T - 1) { \
+ __kb_split_##name(b, x, i, __KB_PTR(b, x)[i]); \
+ if (__cmp(*k, __KB_KEY(key_t, x)[i]) > 0) ++i; \
+ } \
+ ret = __kb_putp_aux_##name(b, __KB_PTR(b, x)[i], k); \
+ } \
+ return ret; \
+ } \
+ static inline key_t *kb_putp_##name(kbtree_##name##_t *b, key_t * __restrict k) \
+ { \
+ if (!b->root) { \
+ b->root = (kbnode_t*)xcalloc(1, ILEN); \
+ ++b->n_nodes; \
+ } \
+ kbnode_t *r, *s; \
+ ++b->n_keys; \
+ r = b->root; \
+ if (r->n == 2 * T - 1) { \
+ ++b->n_nodes; \
+ s = (kbnode_t*)xcalloc(1, ILEN); \
+ b->root = s; s->is_internal = 1; s->n = 0; \
+ __KB_PTR(b, s)[0] = r; \
+ __kb_split_##name(b, s, 0, r); \
+ r = s; \
+ } \
+ return __kb_putp_aux_##name(b, r, k); \
+ } \
+ static inline void kb_put_##name(kbtree_##name##_t *b, key_t k) \
+ { \
+ kb_putp_##name(b, &k); \
+ }
+
+
+#define __KB_DEL(name, key_t, kbnode_t, T) \
+ static inline key_t __kb_delp_aux_##name(kbtree_##name##_t *b, kbnode_t *x, key_t * __restrict k, int s) \
+ { \
+ int yn, zn, i, r = 0; \
+ kbnode_t *xp, *y, *z; \
+ key_t kp; \
+ if (x == 0) return *k; \
+ if (s) { /* s can only be 0, 1 or 2 */ \
+ r = x->is_internal == 0? 0 : s == 1? 1 : -1; \
+ i = s == 1? x->n - 1 : -1; \
+ } else i = __kb_getp_aux_##name(x, k, &r); \
+ if (x->is_internal == 0) { \
+ if (s == 2) ++i; \
+ kp = __KB_KEY(key_t, x)[i]; \
+ memmove(&__KB_KEY(key_t, x)[i], &__KB_KEY(key_t, x)[i + 1], (unsigned int)(x->n - i - 1) * sizeof(key_t)); \
+ --x->n; \
+ return kp; \
+ } \
+ if (r == 0) { \
+ if ((yn = __KB_PTR(b, x)[i]->n) >= T) { \
+ xp = __KB_PTR(b, x)[i]; \
+ kp = __KB_KEY(key_t, x)[i]; \
+ __KB_KEY(key_t, x)[i] = __kb_delp_aux_##name(b, xp, 0, 1); \
+ return kp; \
+ } else if ((zn = __KB_PTR(b, x)[i + 1]->n) >= T) { \
+ xp = __KB_PTR(b, x)[i + 1]; \
+ kp = __KB_KEY(key_t, x)[i]; \
+ __KB_KEY(key_t, x)[i] = __kb_delp_aux_##name(b, xp, 0, 2); \
+ return kp; \
+ } else if (yn == T - 1 && zn == T - 1) { \
+ y = __KB_PTR(b, x)[i]; z = __KB_PTR(b, x)[i + 1]; \
+ __KB_KEY(key_t, y)[y->n++] = *k; \
+ memmove(&__KB_KEY(key_t, y)[y->n], __KB_KEY(key_t, z), (unsigned int)z->n * sizeof(key_t)); \
+ if (y->is_internal) memmove(&__KB_PTR(b, y)[y->n], __KB_PTR(b, z), (unsigned int)(z->n + 1) * sizeof(void*)); \
+ y->n += z->n; \
+ memmove(&__KB_KEY(key_t, x)[i], &__KB_KEY(key_t, x)[i + 1], (unsigned int)(x->n - i - 1) * sizeof(key_t)); \
+ memmove(&__KB_PTR(b, x)[i + 1], &__KB_PTR(b, x)[i + 2], (unsigned int)(x->n - i - 1) * sizeof(void*)); \
+ --x->n; \
+ xfree(z); \
+ return __kb_delp_aux_##name(b, y, k, s); \
+ } \
+ } \
+ ++i; \
+ if ((xp = __KB_PTR(b, x)[i])->n == T - 1) { \
+ if (i > 0 && (y = __KB_PTR(b, x)[i - 1])->n >= T) { \
+ memmove(&__KB_KEY(key_t, xp)[1], __KB_KEY(key_t, xp), (unsigned int)xp->n * sizeof(key_t)); \
+ if (xp->is_internal) memmove(&__KB_PTR(b, xp)[1], __KB_PTR(b, xp), (unsigned int)(xp->n + 1) * sizeof(void*)); \
+ __KB_KEY(key_t, xp)[0] = __KB_KEY(key_t, x)[i - 1]; \
+ __KB_KEY(key_t, x)[i - 1] = __KB_KEY(key_t, y)[y->n - 1]; \
+ if (xp->is_internal) __KB_PTR(b, xp)[0] = __KB_PTR(b, y)[y->n]; \
+ --y->n; ++xp->n; \
+ } else if (i < x->n && (y = __KB_PTR(b, x)[i + 1])->n >= T) { \
+ __KB_KEY(key_t, xp)[xp->n++] = __KB_KEY(key_t, x)[i]; \
+ __KB_KEY(key_t, x)[i] = __KB_KEY(key_t, y)[0]; \
+ if (xp->is_internal) __KB_PTR(b, xp)[xp->n] = __KB_PTR(b, y)[0]; \
+ --y->n; \
+ memmove(__KB_KEY(key_t, y), &__KB_KEY(key_t, y)[1], (unsigned int)y->n * sizeof(key_t)); \
+ if (y->is_internal) memmove(__KB_PTR(b, y), &__KB_PTR(b, y)[1], (unsigned int)(y->n + 1) * sizeof(void*)); \
+ } else if (i > 0 && (y = __KB_PTR(b, x)[i - 1])->n == T - 1) { \
+ __KB_KEY(key_t, y)[y->n++] = __KB_KEY(key_t, x)[i - 1]; \
+ memmove(&__KB_KEY(key_t, y)[y->n], __KB_KEY(key_t, xp), (unsigned int)xp->n * sizeof(key_t)); \
+ if (y->is_internal) memmove(&__KB_PTR(b, y)[y->n], __KB_PTR(b, xp), (unsigned int)(xp->n + 1) * sizeof(void*)); \
+ y->n += xp->n; \
+ memmove(&__KB_KEY(key_t, x)[i - 1], &__KB_KEY(key_t, x)[i], (unsigned int)(x->n - i) * sizeof(key_t)); \
+ memmove(&__KB_PTR(b, x)[i], &__KB_PTR(b, x)[i + 1], (unsigned int)(x->n - i) * sizeof(void*)); \
+ --x->n; \
+ xfree(xp); \
+ xp = y; \
+ } else if (i < x->n && (y = __KB_PTR(b, x)[i + 1])->n == T - 1) { \
+ __KB_KEY(key_t, xp)[xp->n++] = __KB_KEY(key_t, x)[i]; \
+ memmove(&__KB_KEY(key_t, xp)[xp->n], __KB_KEY(key_t, y), (unsigned int)y->n * sizeof(key_t)); \
+ if (xp->is_internal) memmove(&__KB_PTR(b, xp)[xp->n], __KB_PTR(b, y), (unsigned int)(y->n + 1) * sizeof(void*)); \
+ xp->n += y->n; \
+ memmove(&__KB_KEY(key_t, x)[i], &__KB_KEY(key_t, x)[i + 1], (unsigned int)(x->n - i - 1) * sizeof(key_t)); \
+ memmove(&__KB_PTR(b, x)[i + 1], &__KB_PTR(b, x)[i + 2], (unsigned int)(x->n - i - 1) * sizeof(void*)); \
+ --x->n; \
+ xfree(y); \
+ } \
+ } \
+ return __kb_delp_aux_##name(b, xp, k, s); \
+ } \
+ static inline key_t kb_delp_##name(kbtree_##name##_t *b, key_t * __restrict k) \
+ { \
+ kbnode_t *x; \
+ key_t ret; \
+ ret = __kb_delp_aux_##name(b, b->root, k, 0); \
+ --b->n_keys; \
+ if (b->root->n == 0 && b->root->is_internal) { \
+ --b->n_nodes; \
+ x = b->root; \
+ b->root = __KB_PTR(b, x)[0]; \
+ xfree(x); \
+ } \
+ return ret; \
+ } \
+ static inline key_t kb_del_##name(kbtree_##name##_t *b, key_t k) \
+ { \
+ return kb_delp_##name(b, &k); \
+ }
+
+#define __KB_ITR(name, key_t, kbnode_t) \
+ static inline void kb_itr_first_##name(kbtree_##name##_t *b, kbitr_##name##_t *itr) \
+ { \
+ itr->p = 0; \
+ if (b->n_keys == 0) return; \
+ itr->p = itr->stack; \
+ itr->p->x = b->root; itr->p->i = 0; \
+ while (itr->p->x->is_internal && __KB_PTR(b, itr->p->x)[0] != 0) { \
+ kbnode_t *x = itr->p->x; \
+ ++itr->p; \
+ itr->p->x = __KB_PTR(b, x)[0]; itr->p->i = 0; \
+ } \
+ } \
+ static inline int kb_itr_next_##name(kbtree_##name##_t *b, kbitr_##name##_t *itr) \
+ { \
+ if (itr->p < itr->stack) return 0; \
+ for (;;) { \
+ ++itr->p->i; \
+ while (itr->p->x && itr->p->i <= itr->p->x->n) { \
+ itr->p[1].i = 0; \
+ itr->p[1].x = itr->p->x->is_internal? __KB_PTR(b, itr->p->x)[itr->p->i] : 0; \
+ ++itr->p; \
+ } \
+ --itr->p; \
+ if (itr->p < itr->stack) return 0; \
+ if (itr->p->x && itr->p->i < itr->p->x->n) return 1; \
+ } \
+ } \
+ static inline int kb_itr_prev_##name(kbtree_##name##_t *b, kbitr_##name##_t *itr) \
+ { \
+ if (itr->p < itr->stack) return 0; \
+ for (;;) { \
+ while (itr->p->x && itr->p->i >= 0) { \
+ itr->p[1].x = itr->p->x->is_internal? __KB_PTR(b, itr->p->x)[itr->p->i] : 0; \
+ itr->p[1].i = itr->p[1].x ? itr->p[1].x->n : -1; \
+ ++itr->p; \
+ } \
+ --itr->p; \
+ if (itr->p < itr->stack) return 0; \
+ --itr->p->i; \
+ if (itr->p->x && itr->p->i >= 0) return 1; \
+ } \
+ } \
+ static inline int kb_itr_getp_##name(kbtree_##name##_t *b, key_t * __restrict k, kbitr_##name##_t *itr) \
+ { \
+ if (b->n_keys == 0) { \
+ itr->p = NULL; \
+ return 0; \
+ } \
+ int i, r = 0; \
+ itr->p = itr->stack; \
+ itr->p->x = b->root; \
+ while (itr->p->x) { \
+ i = __kb_getp_aux_##name(itr->p->x, k, &r); \
+ itr->p->i = i; \
+ if (i >= 0 && r == 0) return 1; \
+ ++itr->p->i; \
+ itr->p[1].x = itr->p->x->is_internal? __KB_PTR(b, itr->p->x)[i + 1] : 0; \
+ ++itr->p; \
+ } \
+ return 0; \
+ } \
+ static inline int kb_itr_get_##name(kbtree_##name##_t *b, key_t k, kbitr_##name##_t *itr) \
+ { \
+ return kb_itr_getp_##name(b,&k,itr); \
+ } \
+ static inline void kb_del_itr_##name(kbtree_##name##_t *b, kbitr_##name##_t *itr) \
+ { \
+ key_t k = kb_itr_key(itr); \
+ kb_delp_##name(b, &k); \
+ kb_itr_getp_##name(b, &k, itr); \
+ }
+
+#define KBTREE_INIT(name, key_t, __cmp, T) \
+ KBTREE_INIT_IMPL(name, key_t, kbnode_##name##_t, __cmp, T, (sizeof(kbnode_##name##_t)+(2*T)*sizeof(void *)))
+
+#if (!defined(__clang__) && !defined(__INTEL_COMPILER)) && (__GNUC__ > 4 )
+
+// The index trickery shouldn't be UB anymore,
+// still it is to much for gcc:s -Werror=array-bounds
+# define __KB_PRAGMA_START \
+ _Pragma("GCC diagnostic push") \
+ _Pragma("GCC diagnostic ignored \"-Warray-bounds\"")
+
+# define __KB_PRAGMA_END \
+ _Pragma("GCC diagnostic pop") \
+
+#else
+
+# define __KB_PRAGMA_START
+# define __KB_PRAGMA_END
+
+#endif
+
+#define KBTREE_INIT_IMPL(name, key_t, kbnode_t, __cmp, T, ILEN) \
+ __KB_PRAGMA_START \
+ __KB_TREE_T(name, key_t, T) \
+ __KB_GET_AUX1(name, key_t, kbnode_t, __cmp) \
+ __KB_GET(name, key_t, kbnode_t) \
+ __KB_INTERVAL(name, key_t, kbnode_t) \
+ __KB_PUT(name, key_t, kbnode_t, __cmp, T, ILEN) \
+ __KB_DEL(name, key_t, kbnode_t, T) \
+ __KB_ITR(name, key_t, kbnode_t) \
+ __KB_PRAGMA_END
+
+#define KB_DEFAULT_SIZE 512
+
+#define kbtree_t(name) kbtree_##name##_t
+#define kbitr_t(name) kbitr_##name##_t
+#define kb_init(b) ((b)->n_keys = (b)->n_nodes = 0, (b)->root = 0)
+#define kb_destroy(name, b) __kb_destroy(kbnode_##name##_t, b)
+#define kb_get(name, b, k) kb_get_##name(b, k)
+#define kb_put(name, b, k) kb_put_##name(b, k)
+#define kb_del(name, b, k) kb_del_##name(b, k)
+#define kb_interval(name, b, k, l, u) kb_interval_##name(b, k, l, u)
+#define kb_getp(name, b, k) kb_getp_##name(b, k)
+#define kb_putp(name, b, k) kb_putp_##name(b, k)
+#define kb_delp(name, b, k) kb_delp_##name(b, k)
+#define kb_intervalp(name, b, k, l, u) kb_intervalp_##name(b, k, l, u)
+
+#define kb_itr_first(name, b, i) kb_itr_first_##name(b, i)
+#define kb_itr_get(name, b, k, i) kb_itr_get_##name(b, k, i)
+#define kb_itr_getp(name, b, k, i) kb_itr_getp_##name(b, k, i)
+#define kb_itr_next(name, b, i) kb_itr_next_##name(b, i)
+#define kb_itr_prev(name, b, i) kb_itr_prev_##name(b, i)
+#define kb_del_itr(name, b, i) kb_del_itr_##name(b, i)
+#define kb_itr_key(itr) __KB_KEY(dummy, (itr)->p->x)[(itr)->p->i]
+#define kb_itr_valid(itr) ((itr)->p >= (itr)->stack)
+
+#define kb_size(b) ((b)->n_keys)
+
+#define kb_generic_cmp(a, b) (((b) < (a)) - ((a) < (b)))
+#define kb_str_cmp(a, b) strcmp(a, b)
+
+#endif // NVIM_LIB_KBTREE_H
diff --git a/src/nvim/log.c b/src/nvim/log.c
index d059e28d5d..f1dbe61dda 100644
--- a/src/nvim/log.c
+++ b/src/nvim/log.c
@@ -7,20 +7,17 @@
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
+#include <uv.h>
#include "nvim/log.h"
#include "nvim/types.h"
#include "nvim/os/os.h"
#include "nvim/os/time.h"
-/// First location of the log file used by log_path_init()
-#define USR_LOG_FILE "$NVIM_LOG_FILE"
+#define LOG_FILE_ENV "NVIM_LOG_FILE"
-/// Fall back location of the log file used by log_path_init()
-#define USR_LOG_FILE_2 "$HOME" _PATHSEPSTR ".nvimlog"
-
-/// Cached location of the log file set by log_path_init()
-static char expanded_log_file_path[MAXPATHL + 1] = { 0 };
+/// Cached location of the expanded log file path decided by log_path_init().
+static char log_file_path[MAXPATHL + 1] = { 0 };
static uv_mutex_t mutex;
@@ -28,31 +25,53 @@ static uv_mutex_t mutex;
# include "log.c.generated.h"
#endif
-/// Initialize path to log file
+static bool log_try_create(char *fname)
+{
+ if (fname == NULL || fname[0] == '\0') {
+ return false;
+ }
+ FILE *log_file = fopen(fname, "a");
+ if (log_file == NULL) {
+ return false;
+ }
+ fclose(log_file);
+ return true;
+}
+
+/// Initializes path to log file. Sets $NVIM_LOG_FILE if empty.
///
-/// Tries to use #USR_LOG_FILE, then falls back #USR_LOG_FILE_2. Path to log
+/// Tries $NVIM_LOG_FILE, or falls back to $XDG_DATA_HOME/nvim/log. Path to log
/// file is cached, so only the first call has effect, unless first call was not
-/// successful. To make initialization not succeed either a bug in expand_env()
-/// is needed or both `$NVIM_LOG_FILE` and `$HOME` environment variables
-/// undefined.
+/// successful. Failed initialization indicates either a bug in expand_env()
+/// or both $NVIM_LOG_FILE and $HOME environment variables are undefined.
///
/// @return true if path was initialized, false otherwise.
static bool log_path_init(void)
{
- if (expanded_log_file_path[0]) {
+ if (log_file_path[0]) {
return true;
}
- expand_env((char_u *)USR_LOG_FILE, (char_u *)expanded_log_file_path,
- sizeof(expanded_log_file_path) - 1);
- // if the log file path expansion failed then fall back to stderr
- if (strcmp(USR_LOG_FILE, expanded_log_file_path) == 0) {
- memset(expanded_log_file_path, 0, sizeof(expanded_log_file_path));
- expand_env((char_u *)USR_LOG_FILE_2, (char_u *)expanded_log_file_path,
- sizeof(expanded_log_file_path) - 1);
- if (strcmp(USR_LOG_FILE_2, expanded_log_file_path) == 0) {
- memset(expanded_log_file_path, 0, sizeof(expanded_log_file_path));
+ size_t size = sizeof(log_file_path);
+ expand_env((char_u *)"$" LOG_FILE_ENV, (char_u *)log_file_path,
+ (int)size - 1);
+ if (strequal("$" LOG_FILE_ENV, log_file_path)
+ || log_file_path[0] == '\0'
+ || os_isdir((char_u *)log_file_path)
+ || !log_try_create(log_file_path)) {
+ // Invalid $NVIM_LOG_FILE or failed to expand; fall back to default.
+ char *defaultpath = stdpaths_user_data_subpath("log", 0, true);
+ size_t len = xstrlcpy(log_file_path, defaultpath, size);
+ xfree(defaultpath);
+ // Fall back to .nvimlog
+ if (len >= size || !log_try_create(log_file_path)) {
+ len = xstrlcpy(log_file_path, ".nvimlog", size);
+ }
+ // Fall back to stderr
+ if (len >= size || !log_try_create(log_file_path)) {
+ log_file_path[0] = '\0';
return false;
}
+ os_setenv(LOG_FILE_ENV, log_file_path, true);
}
return true;
}
@@ -75,6 +94,10 @@ void log_unlock(void)
bool do_log(int log_level, const char *func_name, int line_num, bool eol,
const char* fmt, ...) FUNC_ATTR_UNUSED
{
+ if (log_level < MIN_LOG_LEVEL) {
+ return false;
+ }
+
log_lock();
bool ret = false;
FILE *log_file = open_log_file();
@@ -97,26 +120,42 @@ end:
return ret;
}
+void log_uv_handles(void *loop)
+{
+ uv_loop_t *l = loop;
+ log_lock();
+ FILE *log_file = open_log_file();
+
+ if (log_file == NULL) {
+ goto end;
+ }
+
+ uv_print_all_handles(l, log_file);
+
+ if (log_file != stderr && log_file != stdout) {
+ fclose(log_file);
+ }
+end:
+ log_unlock();
+}
+
/// Open the log file for appending.
///
-/// @return The FILE* specified by the USR_LOG_FILE path or stderr in case of
-/// error
+/// @return FILE* decided by log_path_init() or stderr in case of error
FILE *open_log_file(void)
{
static bool opening_log_file = false;
-
// check if it's a recursive call
if (opening_log_file) {
do_log_to_file(stderr, ERROR_LOG_LEVEL, __func__, __LINE__, true,
- "Trying to LOG() recursively! Please fix it.");
+ "Cannot LOG() recursively.");
return stderr;
}
- // expand USR_LOG_FILE if needed and open the file
FILE *log_file = NULL;
opening_log_file = true;
if (log_path_init()) {
- log_file = fopen(expanded_log_file_path, "a");
+ log_file = fopen(log_file_path, "a");
}
opening_log_file = false;
@@ -124,10 +163,13 @@ FILE *open_log_file(void)
return log_file;
}
+ // May happen if:
+ // - LOG() is called before early_init()
+ // - Directory does not exist
+ // - File is not writable
do_log_to_file(stderr, ERROR_LOG_LEVEL, __func__, __LINE__, true,
- "Couldn't open USR_LOG_FILE, logging to stderr! This may be "
- "caused by attempting to LOG() before initialization "
- "functions are called (e.g. init_homedir()).");
+ "Logging to stderr, failed to open $" LOG_FILE_ENV ": %s",
+ log_file_path);
return stderr;
}
@@ -152,7 +194,7 @@ static bool v_do_log_to_file(FILE *log_file, int log_level,
[DEBUG_LOG_LEVEL] = "DEBUG",
[INFO_LOG_LEVEL] = "INFO ",
[WARNING_LOG_LEVEL] = "WARN ",
- [ERROR_LOG_LEVEL] = "ERROR"
+ [ERROR_LOG_LEVEL] = "ERROR",
};
assert(log_level >= DEBUG_LOG_LEVEL && log_level <= ERROR_LOG_LEVEL);
diff --git a/src/nvim/log.h b/src/nvim/log.h
index 32b7276f14..221f0bbaf6 100644
--- a/src/nvim/log.h
+++ b/src/nvim/log.h
@@ -18,55 +18,47 @@
#define ELOG(...)
#define ELOGN(...)
-// Logging is disabled if NDEBUG or DISABLE_LOG is defined.
-#if !defined(DISABLE_LOG) && defined(NDEBUG)
-# define DISABLE_LOG
-#endif
-
-// MIN_LOG_LEVEL can be defined during compilation to adjust the desired level
-// of logging. INFO_LOG_LEVEL is used by default.
#ifndef MIN_LOG_LEVEL
# define MIN_LOG_LEVEL INFO_LOG_LEVEL
#endif
-#ifndef DISABLE_LOG
-
-# if MIN_LOG_LEVEL <= DEBUG_LOG_LEVEL
-# undef DLOG
-# undef DLOGN
-# define DLOG(...) do_log(DEBUG_LOG_LEVEL, __func__, __LINE__, true, \
- __VA_ARGS__)
-# define DLOGN(...) do_log(DEBUG_LOG_LEVEL, __func__, __LINE__, false, \
- __VA_ARGS__)
-# endif
+#define LOG(level, ...) do_log((level), __func__, __LINE__, true, \
+ __VA_ARGS__)
-# if MIN_LOG_LEVEL <= INFO_LOG_LEVEL
-# undef ILOG
-# undef ILOGN
-# define ILOG(...) do_log(INFO_LOG_LEVEL, __func__, __LINE__, true, \
- __VA_ARGS__)
-# define ILOGN(...) do_log(INFO_LOG_LEVEL, __func__, __LINE__, false, \
- __VA_ARGS__)
-# endif
+#if MIN_LOG_LEVEL <= DEBUG_LOG_LEVEL
+# undef DLOG
+# undef DLOGN
+# define DLOG(...) do_log(DEBUG_LOG_LEVEL, __func__, __LINE__, true, \
+ __VA_ARGS__)
+# define DLOGN(...) do_log(DEBUG_LOG_LEVEL, __func__, __LINE__, false, \
+ __VA_ARGS__)
+#endif
-# if MIN_LOG_LEVEL <= WARNING_LOG_LEVEL
-# undef WLOG
-# undef WLOGN
-# define WLOG(...) do_log(WARNING_LOG_LEVEL, __func__, __LINE__, true, \
- __VA_ARGS__)
-# define WLOGN(...) do_log(WARNING_LOG_LEVEL, __func__, __LINE__, false, \
- __VA_ARGS__)
-# endif
+#if MIN_LOG_LEVEL <= INFO_LOG_LEVEL
+# undef ILOG
+# undef ILOGN
+# define ILOG(...) do_log(INFO_LOG_LEVEL, __func__, __LINE__, true, \
+ __VA_ARGS__)
+# define ILOGN(...) do_log(INFO_LOG_LEVEL, __func__, __LINE__, false, \
+ __VA_ARGS__)
+#endif
-# if MIN_LOG_LEVEL <= ERROR_LOG_LEVEL
-# undef ELOG
-# undef ELOGN
-# define ELOG(...) do_log(ERROR_LOG_LEVEL, __func__, __LINE__, true, \
- __VA_ARGS__)
-# define ELOGN(...) do_log(ERROR_LOG_LEVEL, __func__, __LINE__, false, \
- __VA_ARGS__)
-# endif
+#if MIN_LOG_LEVEL <= WARNING_LOG_LEVEL
+# undef WLOG
+# undef WLOGN
+# define WLOG(...) do_log(WARNING_LOG_LEVEL, __func__, __LINE__, true, \
+ __VA_ARGS__)
+# define WLOGN(...) do_log(WARNING_LOG_LEVEL, __func__, __LINE__, false, \
+ __VA_ARGS__)
+#endif
+#if MIN_LOG_LEVEL <= ERROR_LOG_LEVEL
+# undef ELOG
+# undef ELOGN
+# define ELOG(...) do_log(ERROR_LOG_LEVEL, __func__, __LINE__, true, \
+ __VA_ARGS__)
+# define ELOGN(...) do_log(ERROR_LOG_LEVEL, __func__, __LINE__, false, \
+ __VA_ARGS__)
#endif
#ifdef INCLUDE_GENERATED_DECLARATIONS
diff --git a/src/nvim/lua/converter.c b/src/nvim/lua/converter.c
new file mode 100644
index 0000000000..cacba3ce87
--- /dev/null
+++ b/src/nvim/lua/converter.c
@@ -0,0 +1,1189 @@
+// This is an open source non-commercial project. Dear PVS-Studio, please check
+// it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
+
+#include <lua.h>
+#include <lualib.h>
+#include <lauxlib.h>
+#include <assert.h>
+#include <stdint.h>
+#include <stdbool.h>
+
+#include "nvim/api/private/defs.h"
+#include "nvim/api/private/helpers.h"
+#include "nvim/func_attr.h"
+#include "nvim/memory.h"
+#include "nvim/assert.h"
+// FIXME: vim.h is not actually needed, but otherwise it states MAXPATHL is
+// redefined
+#include "nvim/vim.h"
+#include "nvim/globals.h"
+#include "nvim/message.h"
+#include "nvim/eval/typval.h"
+#include "nvim/ascii.h"
+#include "nvim/macros.h"
+
+#include "nvim/lib/kvec.h"
+#include "nvim/eval/decode.h"
+
+#include "nvim/lua/converter.h"
+#include "nvim/lua/executor.h"
+
+/// Determine, which keys lua table contains
+typedef struct {
+ size_t maxidx; ///< Maximum positive integral value found.
+ size_t string_keys_num; ///< Number of string keys.
+ bool has_string_with_nul; ///< True if there is string key with NUL byte.
+ ObjectType type; ///< If has_type_key is true then attached value. Otherwise
+ ///< either kObjectTypeNil, kObjectTypeDictionary or
+ ///< kObjectTypeArray, depending on other properties.
+ lua_Number val; ///< If has_val_key and val_type == LUA_TNUMBER: value.
+ bool has_type_key; ///< True if type key is present.
+} LuaTableProps;
+
+#ifdef INCLUDE_GENERATED_DECLARATIONS
+# include "lua/converter.c.generated.h"
+#endif
+
+#define TYPE_IDX_VALUE true
+#define VAL_IDX_VALUE false
+
+#define LUA_PUSH_STATIC_STRING(lstate, s) \
+ lua_pushlstring(lstate, s, sizeof(s) - 1)
+
+static LuaTableProps nlua_traverse_table(lua_State *const lstate)
+ FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT
+{
+ size_t tsize = 0; // Total number of keys.
+ int val_type = 0; // If has_val_key: lua type of the value.
+ bool has_val_key = false; // True if val key was found,
+ // @see nlua_push_val_idx().
+ size_t other_keys_num = 0; // Number of keys that are not string, integral
+ // or type keys.
+ LuaTableProps ret;
+ memset(&ret, 0, sizeof(ret));
+ if (!lua_checkstack(lstate, lua_gettop(lstate) + 3)) {
+ emsgf(_("E1502: Lua failed to grow stack to %i"), lua_gettop(lstate) + 2);
+ ret.type = kObjectTypeNil;
+ return ret;
+ }
+ lua_pushnil(lstate);
+ while (lua_next(lstate, -2)) {
+ switch (lua_type(lstate, -2)) {
+ case LUA_TSTRING: {
+ size_t len;
+ const char *s = lua_tolstring(lstate, -2, &len);
+ if (memchr(s, NUL, len) != NULL) {
+ ret.has_string_with_nul = true;
+ }
+ ret.string_keys_num++;
+ break;
+ }
+ case LUA_TNUMBER: {
+ const lua_Number n = lua_tonumber(lstate, -2);
+ if (n > (lua_Number)SIZE_MAX || n <= 0
+ || ((lua_Number)((size_t)n)) != n) {
+ other_keys_num++;
+ } else {
+ const size_t idx = (size_t)n;
+ if (idx > ret.maxidx) {
+ ret.maxidx = idx;
+ }
+ }
+ break;
+ }
+ case LUA_TBOOLEAN: {
+ const bool b = lua_toboolean(lstate, -2);
+ if (b == TYPE_IDX_VALUE) {
+ if (lua_type(lstate, -1) == LUA_TNUMBER) {
+ lua_Number n = lua_tonumber(lstate, -1);
+ if (n == (lua_Number)kObjectTypeFloat
+ || n == (lua_Number)kObjectTypeArray
+ || n == (lua_Number)kObjectTypeDictionary) {
+ ret.has_type_key = true;
+ ret.type = (ObjectType)n;
+ } else {
+ other_keys_num++;
+ }
+ } else {
+ other_keys_num++;
+ }
+ } else {
+ has_val_key = true;
+ val_type = lua_type(lstate, -1);
+ if (val_type == LUA_TNUMBER) {
+ ret.val = lua_tonumber(lstate, -1);
+ }
+ }
+ break;
+ }
+ default: {
+ other_keys_num++;
+ break;
+ }
+ }
+ tsize++;
+ lua_pop(lstate, 1);
+ }
+ if (ret.has_type_key) {
+ if (ret.type == kObjectTypeFloat
+ && (!has_val_key || val_type != LUA_TNUMBER)) {
+ ret.type = kObjectTypeNil;
+ } else if (ret.type == kObjectTypeArray) {
+ // Determine what is the last number in a *sequence* of keys.
+ // This condition makes sure that Neovim will not crash when it gets table
+ // {[vim.type_idx]=vim.types.array, [SIZE_MAX]=1}: without it maxidx will
+ // be SIZE_MAX, with this condition it should be zero and [SIZE_MAX] key
+ // should be ignored.
+ if (ret.maxidx != 0
+ && ret.maxidx != (tsize
+ - ret.has_type_key
+ - other_keys_num
+ - has_val_key
+ - ret.string_keys_num)) {
+ for (ret.maxidx = 0;; ret.maxidx++) {
+ lua_rawgeti(lstate, -1, (int)ret.maxidx + 1);
+ if (lua_isnil(lstate, -1)) {
+ lua_pop(lstate, 1);
+ break;
+ }
+ lua_pop(lstate, 1);
+ }
+ }
+ }
+ } else {
+ if (tsize == 0
+ || (tsize == ret.maxidx
+ && other_keys_num == 0
+ && ret.string_keys_num == 0)) {
+ ret.type = kObjectTypeArray;
+ } else if (ret.string_keys_num == tsize) {
+ ret.type = kObjectTypeDictionary;
+ } else {
+ ret.type = kObjectTypeNil;
+ }
+ }
+ return ret;
+}
+
+/// Helper structure for nlua_pop_typval
+typedef struct {
+ typval_T *tv; ///< Location where conversion result is saved.
+ bool container; ///< True if tv is a container.
+ bool special; ///< If true then tv is a _VAL part of special dictionary
+ ///< that represents mapping.
+ int idx; ///< Container index (used to detect self-referencing structures).
+} TVPopStackItem;
+
+/// Convert lua object to VimL typval_T
+///
+/// Should pop exactly one value from lua stack.
+///
+/// @param lstate Lua state.
+/// @param[out] ret_tv Where to put the result.
+///
+/// @return `true` in case of success, `false` in case of failure. Error is
+/// reported automatically.
+bool nlua_pop_typval(lua_State *lstate, typval_T *ret_tv)
+{
+ bool ret = true;
+ const int initial_size = lua_gettop(lstate);
+ kvec_t(TVPopStackItem) stack = KV_INITIAL_VALUE;
+ kv_push(stack, ((TVPopStackItem) { ret_tv, false, false, 0 }));
+ while (ret && kv_size(stack)) {
+ if (!lua_checkstack(lstate, lua_gettop(lstate) + 3)) {
+ emsgf(_("E1502: Lua failed to grow stack to %i"), lua_gettop(lstate) + 3);
+ ret = false;
+ break;
+ }
+ TVPopStackItem cur = kv_pop(stack);
+ if (cur.container) {
+ if (cur.special || cur.tv->v_type == VAR_DICT) {
+ assert(cur.tv->v_type == (cur.special ? VAR_LIST : VAR_DICT));
+ bool next_key_found = false;
+ while (lua_next(lstate, -2)) {
+ if (lua_type(lstate, -2) == LUA_TSTRING) {
+ next_key_found = true;
+ break;
+ }
+ lua_pop(lstate, 1);
+ }
+ if (next_key_found) {
+ size_t len;
+ const char *s = lua_tolstring(lstate, -2, &len);
+ if (cur.special) {
+ list_T *const kv_pair = tv_list_alloc();
+ tv_list_append_list(cur.tv->vval.v_list, kv_pair);
+ listitem_T *const key = tv_list_item_alloc();
+ key->li_tv = decode_string(s, len, kTrue, false, false);
+ tv_list_append(kv_pair, key);
+ if (key->li_tv.v_type == VAR_UNKNOWN) {
+ ret = false;
+ tv_list_unref(kv_pair);
+ continue;
+ }
+ listitem_T *const val = tv_list_item_alloc();
+ tv_list_append(kv_pair, val);
+ kv_push(stack, cur);
+ cur = (TVPopStackItem) { &val->li_tv, false, false, 0 };
+ } else {
+ dictitem_T *const di = tv_dict_item_alloc_len(s, len);
+ if (tv_dict_add(cur.tv->vval.v_dict, di) == FAIL) {
+ assert(false);
+ }
+ kv_push(stack, cur);
+ cur = (TVPopStackItem) { &di->di_tv, false, false, 0 };
+ }
+ } else {
+ lua_pop(lstate, 1);
+ continue;
+ }
+ } else {
+ assert(cur.tv->v_type == VAR_LIST);
+ lua_rawgeti(lstate, -1, cur.tv->vval.v_list->lv_len + 1);
+ if (lua_isnil(lstate, -1)) {
+ lua_pop(lstate, 2);
+ continue;
+ }
+ listitem_T *const li = tv_list_item_alloc();
+ tv_list_append(cur.tv->vval.v_list, li);
+ kv_push(stack, cur);
+ cur = (TVPopStackItem) { &li->li_tv, false, false, 0 };
+ }
+ }
+ assert(!cur.container);
+ *cur.tv = (typval_T) {
+ .v_type = VAR_NUMBER,
+ .v_lock = VAR_UNLOCKED,
+ .vval = { .v_number = 0 },
+ };
+ switch (lua_type(lstate, -1)) {
+ case LUA_TNIL: {
+ cur.tv->v_type = VAR_SPECIAL;
+ cur.tv->vval.v_special = kSpecialVarNull;
+ break;
+ }
+ case LUA_TBOOLEAN: {
+ cur.tv->v_type = VAR_SPECIAL;
+ cur.tv->vval.v_special = (lua_toboolean(lstate, -1)
+ ? kSpecialVarTrue
+ : kSpecialVarFalse);
+ break;
+ }
+ case LUA_TSTRING: {
+ size_t len;
+ const char *s = lua_tolstring(lstate, -1, &len);
+ *cur.tv = decode_string(s, len, kNone, true, false);
+ if (cur.tv->v_type == VAR_UNKNOWN) {
+ ret = false;
+ }
+ break;
+ }
+ case LUA_TNUMBER: {
+ const lua_Number n = lua_tonumber(lstate, -1);
+ if (n > (lua_Number)VARNUMBER_MAX || n < (lua_Number)VARNUMBER_MIN
+ || ((lua_Number)((varnumber_T)n)) != n) {
+ cur.tv->v_type = VAR_FLOAT;
+ cur.tv->vval.v_float = (float_T)n;
+ } else {
+ cur.tv->v_type = VAR_NUMBER;
+ cur.tv->vval.v_number = (varnumber_T)n;
+ }
+ break;
+ }
+ case LUA_TTABLE: {
+ const LuaTableProps table_props = nlua_traverse_table(lstate);
+
+ for (size_t i = 0; i < kv_size(stack); i++) {
+ const TVPopStackItem item = kv_A(stack, i);
+ if (item.container && lua_rawequal(lstate, -1, item.idx)) {
+ tv_copy(item.tv, cur.tv);
+ cur.container = false;
+ goto nlua_pop_typval_table_processing_end;
+ }
+ }
+
+ switch (table_props.type) {
+ case kObjectTypeArray: {
+ cur.tv->v_type = VAR_LIST;
+ cur.tv->vval.v_list = tv_list_alloc();
+ cur.tv->vval.v_list->lv_refcount++;
+ if (table_props.maxidx != 0) {
+ cur.container = true;
+ cur.idx = lua_gettop(lstate);
+ kv_push(stack, cur);
+ }
+ break;
+ }
+ case kObjectTypeDictionary: {
+ if (table_props.string_keys_num == 0) {
+ cur.tv->v_type = VAR_DICT;
+ cur.tv->vval.v_dict = tv_dict_alloc();
+ cur.tv->vval.v_dict->dv_refcount++;
+ } else {
+ cur.special = table_props.has_string_with_nul;
+ if (table_props.has_string_with_nul) {
+ decode_create_map_special_dict(cur.tv);
+ assert(cur.tv->v_type == VAR_DICT);
+ dictitem_T *const val_di = tv_dict_find(cur.tv->vval.v_dict,
+ S_LEN("_VAL"));
+ assert(val_di != NULL);
+ cur.tv = &val_di->di_tv;
+ assert(cur.tv->v_type == VAR_LIST);
+ } else {
+ cur.tv->v_type = VAR_DICT;
+ cur.tv->vval.v_dict = tv_dict_alloc();
+ cur.tv->vval.v_dict->dv_refcount++;
+ }
+ cur.container = true;
+ cur.idx = lua_gettop(lstate);
+ kv_push(stack, cur);
+ lua_pushnil(lstate);
+ }
+ break;
+ }
+ case kObjectTypeFloat: {
+ cur.tv->v_type = VAR_FLOAT;
+ cur.tv->vval.v_float = (float_T)table_props.val;
+ break;
+ }
+ case kObjectTypeNil: {
+ EMSG(_("E5100: Cannot convert given lua table: table "
+ "should either have a sequence of positive integer keys "
+ "or contain only string keys"));
+ ret = false;
+ break;
+ }
+ default: {
+ assert(false);
+ }
+ }
+nlua_pop_typval_table_processing_end:
+ break;
+ }
+ default: {
+ EMSG(_("E5101: Cannot convert given lua type"));
+ ret = false;
+ break;
+ }
+ }
+ if (!cur.container) {
+ lua_pop(lstate, 1);
+ }
+ }
+ kv_destroy(stack);
+ if (!ret) {
+ tv_clear(ret_tv);
+ *ret_tv = (typval_T) {
+ .v_type = VAR_NUMBER,
+ .v_lock = VAR_UNLOCKED,
+ .vval = { .v_number = 0 },
+ };
+ lua_pop(lstate, lua_gettop(lstate) - initial_size + 1);
+ }
+ assert(lua_gettop(lstate) == initial_size - 1);
+ return ret;
+}
+
+#define TYPVAL_ENCODE_ALLOW_SPECIALS true
+
+#define TYPVAL_ENCODE_CONV_NIL(tv) \
+ lua_pushnil(lstate)
+
+#define TYPVAL_ENCODE_CONV_BOOL(tv, num) \
+ lua_pushboolean(lstate, (bool)(num))
+
+#define TYPVAL_ENCODE_CONV_NUMBER(tv, num) \
+ lua_pushnumber(lstate, (lua_Number)(num))
+
+#define TYPVAL_ENCODE_CONV_UNSIGNED_NUMBER TYPVAL_ENCODE_CONV_NUMBER
+
+#define TYPVAL_ENCODE_CONV_FLOAT(tv, flt) \
+ TYPVAL_ENCODE_CONV_NUMBER(tv, flt)
+
+#define TYPVAL_ENCODE_CONV_STRING(tv, str, len) \
+ lua_pushlstring(lstate, (const char *)(str), (len))
+
+#define TYPVAL_ENCODE_CONV_STR_STRING TYPVAL_ENCODE_CONV_STRING
+
+#define TYPVAL_ENCODE_CONV_EXT_STRING(tv, str, len, type) \
+ TYPVAL_ENCODE_CONV_NIL()
+
+#define TYPVAL_ENCODE_CONV_FUNC_START(tv, fun) \
+ do { \
+ TYPVAL_ENCODE_CONV_NIL(tv); \
+ goto typval_encode_stop_converting_one_item; \
+ } while (0)
+
+#define TYPVAL_ENCODE_CONV_FUNC_BEFORE_ARGS(tv, len)
+#define TYPVAL_ENCODE_CONV_FUNC_BEFORE_SELF(tv, len)
+#define TYPVAL_ENCODE_CONV_FUNC_END(tv)
+
+#define TYPVAL_ENCODE_CONV_EMPTY_LIST(tv) \
+ lua_createtable(lstate, 0, 0)
+
+#define TYPVAL_ENCODE_CONV_EMPTY_DICT(tv, dict) \
+ nlua_create_typed_table(lstate, 0, 0, kObjectTypeDictionary)
+
+#define TYPVAL_ENCODE_CONV_LIST_START(tv, len) \
+ do { \
+ if (!lua_checkstack(lstate, lua_gettop(lstate) + 3)) { \
+ emsgf(_("E5102: Lua failed to grow stack to %i"), \
+ lua_gettop(lstate) + 3); \
+ return false; \
+ } \
+ lua_createtable(lstate, (int)(len), 0); \
+ lua_pushnumber(lstate, 1); \
+ } while (0)
+
+#define TYPVAL_ENCODE_CONV_REAL_LIST_AFTER_START(tv, mpsv)
+
+#define TYPVAL_ENCODE_CONV_LIST_BETWEEN_ITEMS(tv) \
+ do { \
+ lua_Number idx = lua_tonumber(lstate, -2); \
+ lua_rawset(lstate, -3); \
+ lua_pushnumber(lstate, idx + 1); \
+ } while (0)
+
+#define TYPVAL_ENCODE_CONV_LIST_END(tv) \
+ lua_rawset(lstate, -3)
+
+#define TYPVAL_ENCODE_CONV_DICT_START(tv, dict, len) \
+ do { \
+ if (!lua_checkstack(lstate, lua_gettop(lstate) + 3)) { \
+ emsgf(_("E5102: Lua failed to grow stack to %i"), \
+ lua_gettop(lstate) + 3); \
+ return false; \
+ } \
+ lua_createtable(lstate, 0, (int)(len)); \
+ } while (0)
+
+#define TYPVAL_ENCODE_SPECIAL_DICT_KEY_CHECK(label, kv_pair)
+
+#define TYPVAL_ENCODE_CONV_REAL_DICT_AFTER_START(tv, dict, mpsv)
+
+#define TYPVAL_ENCODE_CONV_DICT_AFTER_KEY(tv, dict)
+
+#define TYPVAL_ENCODE_CONV_DICT_BETWEEN_ITEMS(tv, dict) \
+ lua_rawset(lstate, -3)
+
+#define TYPVAL_ENCODE_CONV_DICT_END(tv, dict) \
+ TYPVAL_ENCODE_CONV_DICT_BETWEEN_ITEMS(tv, dict)
+
+#define TYPVAL_ENCODE_CONV_RECURSE(val, conv_type) \
+ do { \
+ for (size_t backref = kv_size(*mpstack); backref; backref--) { \
+ const MPConvStackVal mpval = kv_A(*mpstack, backref - 1); \
+ if (mpval.type == conv_type) { \
+ if (conv_type == kMPConvDict \
+ ? (void *)mpval.data.d.dict == (void *)(val) \
+ : (void *)mpval.data.l.list == (void *)(val)) { \
+ lua_pushvalue(lstate, \
+ -((int)((kv_size(*mpstack) - backref + 1) * 2))); \
+ break; \
+ } \
+ } \
+ } \
+ } while (0)
+
+#define TYPVAL_ENCODE_SCOPE static
+#define TYPVAL_ENCODE_NAME lua
+#define TYPVAL_ENCODE_FIRST_ARG_TYPE lua_State *const
+#define TYPVAL_ENCODE_FIRST_ARG_NAME lstate
+#include "nvim/eval/typval_encode.c.h"
+#undef TYPVAL_ENCODE_SCOPE
+#undef TYPVAL_ENCODE_NAME
+#undef TYPVAL_ENCODE_FIRST_ARG_TYPE
+#undef TYPVAL_ENCODE_FIRST_ARG_NAME
+
+#undef TYPVAL_ENCODE_CONV_STRING
+#undef TYPVAL_ENCODE_CONV_STR_STRING
+#undef TYPVAL_ENCODE_CONV_EXT_STRING
+#undef TYPVAL_ENCODE_CONV_NUMBER
+#undef TYPVAL_ENCODE_CONV_FLOAT
+#undef TYPVAL_ENCODE_CONV_FUNC_START
+#undef TYPVAL_ENCODE_CONV_FUNC_BEFORE_ARGS
+#undef TYPVAL_ENCODE_CONV_FUNC_BEFORE_SELF
+#undef TYPVAL_ENCODE_CONV_FUNC_END
+#undef TYPVAL_ENCODE_CONV_EMPTY_LIST
+#undef TYPVAL_ENCODE_CONV_LIST_START
+#undef TYPVAL_ENCODE_CONV_REAL_LIST_AFTER_START
+#undef TYPVAL_ENCODE_CONV_EMPTY_DICT
+#undef TYPVAL_ENCODE_CONV_NIL
+#undef TYPVAL_ENCODE_CONV_BOOL
+#undef TYPVAL_ENCODE_CONV_UNSIGNED_NUMBER
+#undef TYPVAL_ENCODE_CONV_DICT_START
+#undef TYPVAL_ENCODE_CONV_REAL_DICT_AFTER_START
+#undef TYPVAL_ENCODE_CONV_DICT_END
+#undef TYPVAL_ENCODE_CONV_DICT_AFTER_KEY
+#undef TYPVAL_ENCODE_CONV_DICT_BETWEEN_ITEMS
+#undef TYPVAL_ENCODE_SPECIAL_DICT_KEY_CHECK
+#undef TYPVAL_ENCODE_CONV_LIST_END
+#undef TYPVAL_ENCODE_CONV_LIST_BETWEEN_ITEMS
+#undef TYPVAL_ENCODE_CONV_RECURSE
+#undef TYPVAL_ENCODE_ALLOW_SPECIALS
+
+/// Convert VimL typval_T to lua value
+///
+/// Should leave single value in lua stack. May only fail if lua failed to grow
+/// stack.
+///
+/// @param lstate Lua interpreter state.
+/// @param[in] tv typval_T to convert.
+///
+/// @return true in case of success, false otherwise.
+bool nlua_push_typval(lua_State *lstate, typval_T *const tv)
+{
+ const int initial_size = lua_gettop(lstate);
+ if (!lua_checkstack(lstate, initial_size + 2)) {
+ emsgf(_("E1502: Lua failed to grow stack to %i"), initial_size + 4);
+ return false;
+ }
+ if (encode_vim_to_lua(lstate, tv, "nlua_push_typval argument") == FAIL) {
+ return false;
+ }
+ assert(lua_gettop(lstate) == initial_size + 1);
+ return true;
+}
+
+/// Push value which is a type index
+///
+/// Used for all “typed” tables: i.e. for all tables which represent VimL
+/// values.
+static inline void nlua_push_type_idx(lua_State *lstate)
+ FUNC_ATTR_NONNULL_ALL
+{
+ lua_pushboolean(lstate, TYPE_IDX_VALUE);
+}
+
+/// Push value which is a value index
+///
+/// Used for tables which represent scalar values, like float value.
+static inline void nlua_push_val_idx(lua_State *lstate)
+ FUNC_ATTR_NONNULL_ALL
+{
+ lua_pushboolean(lstate, VAL_IDX_VALUE);
+}
+
+/// Push type
+///
+/// Type is a value in vim.types table.
+///
+/// @param[out] lstate Lua state.
+/// @param[in] type Type to push.
+static inline void nlua_push_type(lua_State *lstate, ObjectType type)
+ FUNC_ATTR_NONNULL_ALL
+{
+ lua_pushnumber(lstate, (lua_Number)type);
+}
+
+/// Create lua table which has an entry that determines its VimL type
+///
+/// @param[out] lstate Lua state.
+/// @param[in] narr Number of “array” entries to be populated later.
+/// @param[in] nrec Number of “dictionary” entries to be populated later.
+/// @param[in] type Type of the table.
+static inline void nlua_create_typed_table(lua_State *lstate,
+ const size_t narr,
+ const size_t nrec,
+ const ObjectType type)
+ FUNC_ATTR_NONNULL_ALL
+{
+ lua_createtable(lstate, (int)narr, (int)(1 + nrec));
+ nlua_push_type_idx(lstate);
+ nlua_push_type(lstate, type);
+ lua_rawset(lstate, -3);
+}
+
+
+/// Convert given String to lua string
+///
+/// Leaves converted string on top of the stack.
+void nlua_push_String(lua_State *lstate, const String s)
+ FUNC_ATTR_NONNULL_ALL
+{
+ lua_pushlstring(lstate, s.data, s.size);
+}
+
+/// Convert given Integer to lua number
+///
+/// Leaves converted number on top of the stack.
+void nlua_push_Integer(lua_State *lstate, const Integer n)
+ FUNC_ATTR_NONNULL_ALL
+{
+ lua_pushnumber(lstate, (lua_Number)n);
+}
+
+/// Convert given Float to lua table
+///
+/// Leaves converted table on top of the stack.
+void nlua_push_Float(lua_State *lstate, const Float f)
+ FUNC_ATTR_NONNULL_ALL
+{
+ nlua_create_typed_table(lstate, 0, 1, kObjectTypeFloat);
+ nlua_push_val_idx(lstate);
+ lua_pushnumber(lstate, (lua_Number)f);
+ lua_rawset(lstate, -3);
+}
+
+/// Convert given Float to lua boolean
+///
+/// Leaves converted value on top of the stack.
+void nlua_push_Boolean(lua_State *lstate, const Boolean b)
+ FUNC_ATTR_NONNULL_ALL
+{
+ lua_pushboolean(lstate, b);
+}
+
+/// Convert given Dictionary to lua table
+///
+/// Leaves converted table on top of the stack.
+void nlua_push_Dictionary(lua_State *lstate, const Dictionary dict)
+ FUNC_ATTR_NONNULL_ALL
+{
+ if (dict.size == 0) {
+ nlua_create_typed_table(lstate, 0, 0, kObjectTypeDictionary);
+ } else {
+ lua_createtable(lstate, 0, (int)dict.size);
+ }
+ for (size_t i = 0; i < dict.size; i++) {
+ nlua_push_String(lstate, dict.items[i].key);
+ nlua_push_Object(lstate, dict.items[i].value);
+ lua_rawset(lstate, -3);
+ }
+}
+
+/// Convert given Array to lua table
+///
+/// Leaves converted table on top of the stack.
+void nlua_push_Array(lua_State *lstate, const Array array)
+ FUNC_ATTR_NONNULL_ALL
+{
+ lua_createtable(lstate, (int)array.size, 0);
+ for (size_t i = 0; i < array.size; i++) {
+ nlua_push_Object(lstate, array.items[i]);
+ lua_rawseti(lstate, -2, (int)i + 1);
+ }
+}
+
+#define GENERATE_INDEX_FUNCTION(type) \
+void nlua_push_##type(lua_State *lstate, const type item) \
+ FUNC_ATTR_NONNULL_ALL \
+{ \
+ lua_pushnumber(lstate, (lua_Number)(item)); \
+}
+
+GENERATE_INDEX_FUNCTION(Buffer)
+GENERATE_INDEX_FUNCTION(Window)
+GENERATE_INDEX_FUNCTION(Tabpage)
+
+#undef GENERATE_INDEX_FUNCTION
+
+/// Convert given Object to lua value
+///
+/// Leaves converted value on top of the stack.
+void nlua_push_Object(lua_State *lstate, const Object obj)
+ FUNC_ATTR_NONNULL_ALL
+{
+ switch (obj.type) {
+ case kObjectTypeNil: {
+ lua_pushnil(lstate);
+ break;
+ }
+#define ADD_TYPE(type, data_key) \
+ case kObjectType##type: { \
+ nlua_push_##type(lstate, obj.data.data_key); \
+ break; \
+ }
+ ADD_TYPE(Boolean, boolean)
+ ADD_TYPE(Integer, integer)
+ ADD_TYPE(Float, floating)
+ ADD_TYPE(String, string)
+ ADD_TYPE(Array, array)
+ ADD_TYPE(Dictionary, dictionary)
+#undef ADD_TYPE
+#define ADD_REMOTE_TYPE(type) \
+ case kObjectType##type: { \
+ nlua_push_##type(lstate, (type)obj.data.integer); \
+ break; \
+ }
+ ADD_REMOTE_TYPE(Buffer)
+ ADD_REMOTE_TYPE(Window)
+ ADD_REMOTE_TYPE(Tabpage)
+#undef ADD_REMOTE_TYPE
+ }
+}
+
+
+/// Convert lua value to string
+///
+/// Always pops one value from the stack.
+String nlua_pop_String(lua_State *lstate, Error *err)
+ FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT
+{
+ if (lua_type(lstate, -1) != LUA_TSTRING) {
+ lua_pop(lstate, 1);
+ api_set_error(err, kErrorTypeValidation, "Expected lua string");
+ return (String) { .size = 0, .data = NULL };
+ }
+ String ret;
+
+ ret.data = (char *)lua_tolstring(lstate, -1, &(ret.size));
+ assert(ret.data != NULL);
+ ret.data = xmemdupz(ret.data, ret.size);
+ lua_pop(lstate, 1);
+
+ return ret;
+}
+
+/// Convert lua value to integer
+///
+/// Always pops one value from the stack.
+Integer nlua_pop_Integer(lua_State *lstate, Error *err)
+ FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT
+{
+ if (lua_type(lstate, -1) != LUA_TNUMBER) {
+ lua_pop(lstate, 1);
+ api_set_error(err, kErrorTypeValidation, "Expected lua number");
+ return 0;
+ }
+ const lua_Number n = lua_tonumber(lstate, -1);
+ lua_pop(lstate, 1);
+ if (n > (lua_Number)API_INTEGER_MAX || n < (lua_Number)API_INTEGER_MIN
+ || ((lua_Number)((Integer)n)) != n) {
+ api_set_error(err, kErrorTypeException, "Number is not integral");
+ return 0;
+ }
+ return (Integer)n;
+}
+
+/// Convert lua value to boolean
+///
+/// Always pops one value from the stack.
+Boolean nlua_pop_Boolean(lua_State *lstate, Error *err)
+ FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT
+{
+ const Boolean ret = lua_toboolean(lstate, -1);
+ lua_pop(lstate, 1);
+ return ret;
+}
+
+/// Check whether typed table on top of the stack has given type
+///
+/// @param[in] lstate Lua state.
+/// @param[out] err Location where error will be saved. May be NULL.
+/// @param[in] type Type to check.
+///
+/// @return @see nlua_traverse_table().
+static inline LuaTableProps nlua_check_type(lua_State *const lstate,
+ Error *const err,
+ const ObjectType type)
+ FUNC_ATTR_NONNULL_ARG(1) FUNC_ATTR_WARN_UNUSED_RESULT
+{
+ if (lua_type(lstate, -1) != LUA_TTABLE) {
+ if (err) {
+ api_set_error(err, kErrorTypeValidation, "Expected lua table");
+ }
+ return (LuaTableProps) { .type = kObjectTypeNil };
+ }
+ LuaTableProps table_props = nlua_traverse_table(lstate);
+
+ if (type == kObjectTypeDictionary && table_props.type == kObjectTypeArray
+ && table_props.maxidx == 0 && !table_props.has_type_key) {
+ table_props.type = kObjectTypeDictionary;
+ }
+
+ if (table_props.type != type) {
+ if (err) {
+ api_set_error(err, kErrorTypeValidation, "Unexpected type");
+ }
+ }
+
+ return table_props;
+}
+
+/// Convert lua table to float
+///
+/// Always pops one value from the stack.
+Float nlua_pop_Float(lua_State *lstate, Error *err)
+ FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT
+{
+ if (lua_type(lstate, -1) == LUA_TNUMBER) {
+ const Float ret = (Float)lua_tonumber(lstate, -1);
+ lua_pop(lstate, 1);
+ return ret;
+ }
+
+ const LuaTableProps table_props = nlua_check_type(lstate, err,
+ kObjectTypeFloat);
+ lua_pop(lstate, 1);
+ if (table_props.type != kObjectTypeFloat) {
+ return 0;
+ } else {
+ return (Float)table_props.val;
+ }
+}
+
+/// Convert lua table to array without determining whether it is array
+///
+/// @param lstate Lua state.
+/// @param[in] table_props nlua_traverse_table() output.
+/// @param[out] err Location where error will be saved.
+static Array nlua_pop_Array_unchecked(lua_State *const lstate,
+ const LuaTableProps table_props,
+ Error *const err)
+{
+ Array ret = { .size = table_props.maxidx, .items = NULL };
+
+ if (ret.size == 0) {
+ lua_pop(lstate, 1);
+ return ret;
+ }
+
+ ret.items = xcalloc(ret.size, sizeof(*ret.items));
+ for (size_t i = 1; i <= ret.size; i++) {
+ Object val;
+
+ lua_rawgeti(lstate, -1, (int)i);
+
+ val = nlua_pop_Object(lstate, err);
+ if (ERROR_SET(err)) {
+ ret.size = i - 1;
+ lua_pop(lstate, 1);
+ api_free_array(ret);
+ return (Array) { .size = 0, .items = NULL };
+ }
+ ret.items[i - 1] = val;
+ }
+ lua_pop(lstate, 1);
+
+ return ret;
+}
+
+/// Convert lua table to array
+///
+/// Always pops one value from the stack.
+Array nlua_pop_Array(lua_State *lstate, Error *err)
+ FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT
+{
+ const LuaTableProps table_props = nlua_check_type(lstate, err,
+ kObjectTypeArray);
+ if (table_props.type != kObjectTypeArray) {
+ return (Array) { .size = 0, .items = NULL };
+ }
+ return nlua_pop_Array_unchecked(lstate, table_props, err);
+}
+
+/// Convert lua table to dictionary
+///
+/// Always pops one value from the stack. Does not check whether whether topmost
+/// value on the stack is a table.
+///
+/// @param lstate Lua interpreter state.
+/// @param[in] table_props nlua_traverse_table() output.
+/// @param[out] err Location where error will be saved.
+static Dictionary nlua_pop_Dictionary_unchecked(lua_State *lstate,
+ const LuaTableProps table_props,
+ Error *err)
+ FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT
+{
+ Dictionary ret = { .size = table_props.string_keys_num, .items = NULL };
+
+ if (ret.size == 0) {
+ lua_pop(lstate, 1);
+ return ret;
+ }
+ ret.items = xcalloc(ret.size, sizeof(*ret.items));
+
+ lua_pushnil(lstate);
+ for (size_t i = 0; lua_next(lstate, -2) && i < ret.size;) {
+ // stack: dict, key, value
+
+ if (lua_type(lstate, -2) == LUA_TSTRING) {
+ lua_pushvalue(lstate, -2);
+ // stack: dict, key, value, key
+
+ ret.items[i].key = nlua_pop_String(lstate, err);
+ // stack: dict, key, value
+
+ if (!ERROR_SET(err)) {
+ ret.items[i].value = nlua_pop_Object(lstate, err);
+ // stack: dict, key
+ } else {
+ lua_pop(lstate, 1);
+ // stack: dict, key
+ }
+
+ if (ERROR_SET(err)) {
+ ret.size = i;
+ api_free_dictionary(ret);
+ lua_pop(lstate, 2);
+ // stack:
+ return (Dictionary) { .size = 0, .items = NULL };
+ }
+ i++;
+ } else {
+ lua_pop(lstate, 1);
+ // stack: dict, key
+ }
+ }
+ lua_pop(lstate, 1);
+
+ return ret;
+}
+
+/// Convert lua table to dictionary
+///
+/// Always pops one value from the stack.
+Dictionary nlua_pop_Dictionary(lua_State *lstate, Error *err)
+ FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT
+{
+ const LuaTableProps table_props = nlua_check_type(lstate, err,
+ kObjectTypeDictionary);
+ if (table_props.type != kObjectTypeDictionary) {
+ lua_pop(lstate, 1);
+ return (Dictionary) { .size = 0, .items = NULL };
+ }
+
+ return nlua_pop_Dictionary_unchecked(lstate, table_props, err);
+}
+
+/// Helper structure for nlua_pop_Object
+typedef struct {
+ Object *obj; ///< Location where conversion result is saved.
+ bool container; ///< True if tv is a container.
+} ObjPopStackItem;
+
+/// Convert lua table to object
+///
+/// Always pops one value from the stack.
+Object nlua_pop_Object(lua_State *const lstate, Error *const err)
+{
+ Object ret = NIL;
+ const int initial_size = lua_gettop(lstate);
+ kvec_t(ObjPopStackItem) stack = KV_INITIAL_VALUE;
+ kv_push(stack, ((ObjPopStackItem) { &ret, false }));
+ while (!ERROR_SET(err) && kv_size(stack)) {
+ if (!lua_checkstack(lstate, lua_gettop(lstate) + 3)) {
+ api_set_error(err, kErrorTypeException, "Lua failed to grow stack");
+ break;
+ }
+ ObjPopStackItem cur = kv_pop(stack);
+ if (cur.container) {
+ if (cur.obj->type == kObjectTypeDictionary) {
+ // stack: …, dict, key
+ if (cur.obj->data.dictionary.size
+ == cur.obj->data.dictionary.capacity) {
+ lua_pop(lstate, 2);
+ continue;
+ }
+ bool next_key_found = false;
+ while (lua_next(lstate, -2)) {
+ // stack: …, dict, new key, val
+ if (lua_type(lstate, -2) == LUA_TSTRING) {
+ next_key_found = true;
+ break;
+ }
+ lua_pop(lstate, 1);
+ // stack: …, dict, new key
+ }
+ if (next_key_found) {
+ // stack: …, dict, new key, val
+ size_t len;
+ const char *s = lua_tolstring(lstate, -2, &len);
+ const size_t idx = cur.obj->data.dictionary.size++;
+ cur.obj->data.dictionary.items[idx].key = (String) {
+ .data = xmemdupz(s, len),
+ .size = len,
+ };
+ kv_push(stack, cur);
+ cur = (ObjPopStackItem) {
+ .obj = &cur.obj->data.dictionary.items[idx].value,
+ .container = false,
+ };
+ } else {
+ // stack: …, dict
+ lua_pop(lstate, 1);
+ // stack: …
+ continue;
+ }
+ } else {
+ if (cur.obj->data.array.size == cur.obj->data.array.capacity) {
+ lua_pop(lstate, 1);
+ continue;
+ }
+ const size_t idx = cur.obj->data.array.size++;
+ lua_rawgeti(lstate, -1, (int)idx + 1);
+ if (lua_isnil(lstate, -1)) {
+ lua_pop(lstate, 2);
+ continue;
+ }
+ kv_push(stack, cur);
+ cur = (ObjPopStackItem) {
+ .obj = &cur.obj->data.array.items[idx],
+ .container = false,
+ };
+ }
+ }
+ assert(!cur.container);
+ *cur.obj = NIL;
+ switch (lua_type(lstate, -1)) {
+ case LUA_TNIL: {
+ break;
+ }
+ case LUA_TBOOLEAN: {
+ *cur.obj = BOOLEAN_OBJ(lua_toboolean(lstate, -1));
+ break;
+ }
+ case LUA_TSTRING: {
+ size_t len;
+ const char *s = lua_tolstring(lstate, -1, &len);
+ *cur.obj = STRING_OBJ(((String) {
+ .data = xmemdupz(s, len),
+ .size = len,
+ }));
+ break;
+ }
+ case LUA_TNUMBER: {
+ const lua_Number n = lua_tonumber(lstate, -1);
+ if (n > (lua_Number)API_INTEGER_MAX || n < (lua_Number)API_INTEGER_MIN
+ || ((lua_Number)((Integer)n)) != n) {
+ *cur.obj = FLOAT_OBJ((Float)n);
+ } else {
+ *cur.obj = INTEGER_OBJ((Integer)n);
+ }
+ break;
+ }
+ case LUA_TTABLE: {
+ const LuaTableProps table_props = nlua_traverse_table(lstate);
+
+ switch (table_props.type) {
+ case kObjectTypeArray: {
+ *cur.obj = ARRAY_OBJ(((Array) {
+ .items = NULL,
+ .size = 0,
+ .capacity = 0,
+ }));
+ if (table_props.maxidx != 0) {
+ cur.obj->data.array.items =
+ xcalloc(table_props.maxidx,
+ sizeof(cur.obj->data.array.items[0]));
+ cur.obj->data.array.capacity = table_props.maxidx;
+ cur.container = true;
+ kv_push(stack, cur);
+ }
+ break;
+ }
+ case kObjectTypeDictionary: {
+ *cur.obj = DICTIONARY_OBJ(((Dictionary) {
+ .items = NULL,
+ .size = 0,
+ .capacity = 0,
+ }));
+ if (table_props.string_keys_num != 0) {
+ cur.obj->data.dictionary.items =
+ xcalloc(table_props.string_keys_num,
+ sizeof(cur.obj->data.dictionary.items[0]));
+ cur.obj->data.dictionary.capacity = table_props.string_keys_num;
+ cur.container = true;
+ kv_push(stack, cur);
+ lua_pushnil(lstate);
+ }
+ break;
+ }
+ case kObjectTypeFloat: {
+ *cur.obj = FLOAT_OBJ((Float)table_props.val);
+ break;
+ }
+ case kObjectTypeNil: {
+ api_set_error(err, kErrorTypeValidation,
+ "Cannot convert given lua table");
+ break;
+ }
+ default: {
+ assert(false);
+ }
+ }
+ break;
+ }
+ default: {
+ api_set_error(err, kErrorTypeValidation,
+ "Cannot convert given lua type");
+ break;
+ }
+ }
+ if (!cur.container) {
+ lua_pop(lstate, 1);
+ }
+ }
+ kv_destroy(stack);
+ if (ERROR_SET(err)) {
+ api_free_object(ret);
+ ret = NIL;
+ lua_pop(lstate, lua_gettop(lstate) - initial_size + 1);
+ }
+ assert(lua_gettop(lstate) == initial_size - 1);
+ return ret;
+}
+
+#define GENERATE_INDEX_FUNCTION(type) \
+type nlua_pop_##type(lua_State *lstate, Error *err) \
+ FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT \
+{ \
+ type ret; \
+ ret = (type)lua_tonumber(lstate, -1); \
+ lua_pop(lstate, 1); \
+ return ret; \
+}
+
+GENERATE_INDEX_FUNCTION(Buffer)
+GENERATE_INDEX_FUNCTION(Window)
+GENERATE_INDEX_FUNCTION(Tabpage)
+
+#undef GENERATE_INDEX_FUNCTION
+
+/// Record some auxilary values in vim module
+///
+/// Assumes that module table is on top of the stack.
+///
+/// Recorded values:
+///
+/// `vim.type_idx`: @see nlua_push_type_idx()
+/// `vim.val_idx`: @see nlua_push_val_idx()
+/// `vim.types`: table mapping possible values of `vim.type_idx` to string
+/// names (i.e. `array`, `float`, `dictionary`) and back.
+void nlua_init_types(lua_State *const lstate)
+{
+ LUA_PUSH_STATIC_STRING(lstate, "type_idx");
+ nlua_push_type_idx(lstate);
+ lua_rawset(lstate, -3);
+
+ LUA_PUSH_STATIC_STRING(lstate, "val_idx");
+ nlua_push_val_idx(lstate);
+ lua_rawset(lstate, -3);
+
+ LUA_PUSH_STATIC_STRING(lstate, "types");
+ lua_createtable(lstate, 0, 3);
+
+ LUA_PUSH_STATIC_STRING(lstate, "float");
+ lua_pushnumber(lstate, (lua_Number)kObjectTypeFloat);
+ lua_rawset(lstate, -3);
+ lua_pushnumber(lstate, (lua_Number)kObjectTypeFloat);
+ LUA_PUSH_STATIC_STRING(lstate, "float");
+ lua_rawset(lstate, -3);
+
+ LUA_PUSH_STATIC_STRING(lstate, "array");
+ lua_pushnumber(lstate, (lua_Number)kObjectTypeArray);
+ lua_rawset(lstate, -3);
+ lua_pushnumber(lstate, (lua_Number)kObjectTypeArray);
+ LUA_PUSH_STATIC_STRING(lstate, "array");
+ lua_rawset(lstate, -3);
+
+ LUA_PUSH_STATIC_STRING(lstate, "dictionary");
+ lua_pushnumber(lstate, (lua_Number)kObjectTypeDictionary);
+ lua_rawset(lstate, -3);
+ lua_pushnumber(lstate, (lua_Number)kObjectTypeDictionary);
+ LUA_PUSH_STATIC_STRING(lstate, "dictionary");
+ lua_rawset(lstate, -3);
+
+ lua_rawset(lstate, -3);
+}
diff --git a/src/nvim/lua/converter.h b/src/nvim/lua/converter.h
new file mode 100644
index 0000000000..542c56ea3e
--- /dev/null
+++ b/src/nvim/lua/converter.h
@@ -0,0 +1,15 @@
+#ifndef NVIM_LUA_CONVERTER_H
+#define NVIM_LUA_CONVERTER_H
+
+#include <lua.h>
+#include <stdbool.h>
+#include <stdint.h>
+
+#include "nvim/api/private/defs.h"
+#include "nvim/func_attr.h"
+#include "nvim/eval.h"
+
+#ifdef INCLUDE_GENERATED_DECLARATIONS
+# include "lua/converter.h.generated.h"
+#endif
+#endif // NVIM_LUA_CONVERTER_H
diff --git a/src/nvim/lua/executor.c b/src/nvim/lua/executor.c
new file mode 100644
index 0000000000..9ec5bfb8ad
--- /dev/null
+++ b/src/nvim/lua/executor.c
@@ -0,0 +1,662 @@
+// This is an open source non-commercial project. Dear PVS-Studio, please check
+// it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
+
+#include <lua.h>
+#include <lualib.h>
+#include <lauxlib.h>
+
+#include "nvim/misc1.h"
+#include "nvim/getchar.h"
+#include "nvim/garray.h"
+#include "nvim/func_attr.h"
+#include "nvim/api/private/defs.h"
+#include "nvim/api/private/helpers.h"
+#include "nvim/api/vim.h"
+#include "nvim/vim.h"
+#include "nvim/ex_getln.h"
+#include "nvim/ex_cmds2.h"
+#include "nvim/message.h"
+#include "nvim/memline.h"
+#include "nvim/buffer_defs.h"
+#include "nvim/macros.h"
+#include "nvim/screen.h"
+#include "nvim/cursor.h"
+#include "nvim/undo.h"
+#include "nvim/ascii.h"
+
+#include "nvim/lua/executor.h"
+#include "nvim/lua/converter.h"
+
+typedef struct {
+ Error err;
+ String lua_err_str;
+} LuaError;
+
+#ifdef INCLUDE_GENERATED_DECLARATIONS
+# include "lua/vim_module.generated.h"
+# include "lua/executor.c.generated.h"
+#endif
+
+/// Name of the run code for use in messages
+#define NLUA_EVAL_NAME "<VimL compiled string>"
+
+/// Call C function which does not expect any arguments
+///
+/// @param function Called function
+/// @param numret Number of returned arguments
+#define NLUA_CALL_C_FUNCTION_0(lstate, function, numret) \
+ do { \
+ lua_pushcfunction(lstate, &function); \
+ lua_call(lstate, 0, numret); \
+ } while (0)
+/// Call C function which expects one argument
+///
+/// @param function Called function
+/// @param numret Number of returned arguments
+/// @param a… Supplied argument (should be a void* pointer)
+#define NLUA_CALL_C_FUNCTION_1(lstate, function, numret, a1) \
+ do { \
+ lua_pushcfunction(lstate, &function); \
+ lua_pushlightuserdata(lstate, a1); \
+ lua_call(lstate, 1, numret); \
+ } while (0)
+/// Call C function which expects two arguments
+///
+/// @param function Called function
+/// @param numret Number of returned arguments
+/// @param a… Supplied argument (should be a void* pointer)
+#define NLUA_CALL_C_FUNCTION_2(lstate, function, numret, a1, a2) \
+ do { \
+ lua_pushcfunction(lstate, &function); \
+ lua_pushlightuserdata(lstate, a1); \
+ lua_pushlightuserdata(lstate, a2); \
+ lua_call(lstate, 2, numret); \
+ } while (0)
+/// Call C function which expects three arguments
+///
+/// @param function Called function
+/// @param numret Number of returned arguments
+/// @param a… Supplied argument (should be a void* pointer)
+#define NLUA_CALL_C_FUNCTION_3(lstate, function, numret, a1, a2, a3) \
+ do { \
+ lua_pushcfunction(lstate, &function); \
+ lua_pushlightuserdata(lstate, a1); \
+ lua_pushlightuserdata(lstate, a2); \
+ lua_pushlightuserdata(lstate, a3); \
+ lua_call(lstate, 3, numret); \
+ } while (0)
+/// Call C function which expects five arguments
+///
+/// @param function Called function
+/// @param numret Number of returned arguments
+/// @param a… Supplied argument (should be a void* pointer)
+#define NLUA_CALL_C_FUNCTION_4(lstate, function, numret, a1, a2, a3, a4) \
+ do { \
+ lua_pushcfunction(lstate, &function); \
+ lua_pushlightuserdata(lstate, a1); \
+ lua_pushlightuserdata(lstate, a2); \
+ lua_pushlightuserdata(lstate, a3); \
+ lua_pushlightuserdata(lstate, a4); \
+ lua_call(lstate, 4, numret); \
+ } while (0)
+
+/// Convert lua error into a Vim error message
+///
+/// @param lstate Lua interpreter state.
+/// @param[in] msg Message base, must contain one `%s`.
+static void nlua_error(lua_State *const lstate, const char *const msg)
+ FUNC_ATTR_NONNULL_ALL
+{
+ size_t len;
+ const char *const str = lua_tolstring(lstate, -1, &len);
+
+ emsgf(msg, (int)len, str);
+
+ lua_pop(lstate, 1);
+}
+
+/// Compare two strings, ignoring case
+///
+/// Expects two values on the stack: compared strings. Returns one of the
+/// following numbers: 0, -1 or 1.
+///
+/// Does no error handling: never call it with non-string or with some arguments
+/// omitted.
+static int nlua_stricmp(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL
+{
+ const char *s1 = luaL_checklstring(lstate, 1, NULL);
+ const char *s2 = luaL_checklstring(lstate, 2, NULL);
+ const int ret = STRICMP(s1, s2);
+ lua_pop(lstate, 2);
+ lua_pushnumber(lstate, (lua_Number)((ret > 0) - (ret < 0)));
+ return 1;
+}
+
+/// Evaluate lua string
+///
+/// Expects two values on the stack: string to evaluate, pointer to the
+/// location where result is saved. Always returns nothing (from the lua point
+/// of view).
+static int nlua_exec_lua_string(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL
+{
+ const String *const str = (const String *)lua_touserdata(lstate, 1);
+ typval_T *const ret_tv = (typval_T *)lua_touserdata(lstate, 2);
+ lua_pop(lstate, 2);
+
+ if (luaL_loadbuffer(lstate, str->data, str->size, NLUA_EVAL_NAME)) {
+ nlua_error(lstate, _("E5104: Error while creating lua chunk: %.*s"));
+ return 0;
+ }
+ if (lua_pcall(lstate, 0, 1, 0)) {
+ nlua_error(lstate, _("E5105: Error while calling lua chunk: %.*s"));
+ return 0;
+ }
+ if (!nlua_pop_typval(lstate, ret_tv)) {
+ return 0;
+ }
+ return 0;
+}
+
+/// Evaluate lua string for each line in range
+///
+/// Expects two values on the stack: string to evaluate and pointer to integer
+/// array with line range. Always returns nothing (from the lua point of view).
+static int nlua_exec_luado_string(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL
+{
+ const String *const str = (const String *)lua_touserdata(lstate, 1);
+ const linenr_T *const range = (const linenr_T *)lua_touserdata(lstate, 2);
+ lua_pop(lstate, 2);
+
+#define DOSTART "return function(line, linenr) "
+#define DOEND " end"
+ const size_t lcmd_len = (str->size
+ + (sizeof(DOSTART) - 1)
+ + (sizeof(DOEND) - 1));
+ char *lcmd;
+ if (lcmd_len < IOSIZE) {
+ lcmd = (char *)IObuff;
+ } else {
+ lcmd = xmalloc(lcmd_len + 1);
+ }
+ memcpy(lcmd, DOSTART, sizeof(DOSTART) - 1);
+ memcpy(lcmd + sizeof(DOSTART) - 1, str->data, str->size);
+ memcpy(lcmd + sizeof(DOSTART) - 1 + str->size, DOEND, sizeof(DOEND) - 1);
+#undef DOSTART
+#undef DOEND
+
+ if (luaL_loadbuffer(lstate, lcmd, lcmd_len, NLUA_EVAL_NAME)) {
+ nlua_error(lstate, _("E5109: Error while creating lua chunk: %.*s"));
+ if (lcmd_len >= IOSIZE) {
+ xfree(lcmd);
+ }
+ return 0;
+ }
+ if (lcmd_len >= IOSIZE) {
+ xfree(lcmd);
+ }
+ if (lua_pcall(lstate, 0, 1, 0)) {
+ nlua_error(lstate, _("E5110: Error while creating lua function: %.*s"));
+ return 0;
+ }
+ for (linenr_T l = range[0]; l <= range[1]; l++) {
+ if (l > curbuf->b_ml.ml_line_count) {
+ break;
+ }
+ lua_pushvalue(lstate, -1);
+ lua_pushstring(lstate, (const char *)ml_get_buf(curbuf, l, false));
+ lua_pushnumber(lstate, (lua_Number)l);
+ if (lua_pcall(lstate, 2, 1, 0)) {
+ nlua_error(lstate, _("E5111: Error while calling lua function: %.*s"));
+ break;
+ }
+ if (lua_isstring(lstate, -1)) {
+ size_t new_line_len;
+ const char *const new_line = lua_tolstring(lstate, -1, &new_line_len);
+ char *const new_line_transformed = xmemdupz(new_line, new_line_len);
+ for (size_t i = 0; i < new_line_len; i++) {
+ if (new_line_transformed[i] == NUL) {
+ new_line_transformed[i] = '\n';
+ }
+ }
+ ml_replace(l, (char_u *)new_line_transformed, false);
+ changed_bytes(l, 0);
+ }
+ lua_pop(lstate, 1);
+ }
+ lua_pop(lstate, 1);
+ check_cursor();
+ update_screen(NOT_VALID);
+ return 0;
+}
+
+/// Evaluate lua file
+///
+/// Expects one value on the stack: file to evaluate. Always returns nothing
+/// (from the lua point of view).
+static int nlua_exec_lua_file(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL
+{
+ const char *const filename = (const char *)lua_touserdata(lstate, 1);
+ lua_pop(lstate, 1);
+
+ if (luaL_loadfile(lstate, filename)) {
+ nlua_error(lstate, _("E5112: Error while creating lua chunk: %.*s"));
+ return 0;
+ }
+ if (lua_pcall(lstate, 0, 0, 0)) {
+ nlua_error(lstate, _("E5113: Error while calling lua chunk: %.*s"));
+ return 0;
+ }
+ return 0;
+}
+
+/// Initialize lua interpreter state
+///
+/// Called by lua interpreter itself to initialize state.
+static int nlua_state_init(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL
+{
+ // stricmp
+ lua_pushcfunction(lstate, &nlua_stricmp);
+ lua_setglobal(lstate, "stricmp");
+
+ // print
+ lua_pushcfunction(lstate, &nlua_print);
+ lua_setglobal(lstate, "print");
+
+ // debug.debug
+ lua_getglobal(lstate, "debug");
+ lua_pushcfunction(lstate, &nlua_debug);
+ lua_setfield(lstate, -2, "debug");
+ lua_pop(lstate, 1);
+
+ // vim
+ if (luaL_dostring(lstate, (char *)&vim_module[0])) {
+ nlua_error(lstate, _("E5106: Error while creating vim module: %.*s"));
+ return 1;
+ }
+ // vim.api
+ nlua_add_api_functions(lstate);
+ // vim.types, vim.type_idx, vim.val_idx
+ nlua_init_types(lstate);
+ lua_setglobal(lstate, "vim");
+ return 0;
+}
+
+/// Initialize lua interpreter
+///
+/// Crashes NeoVim if initialization fails. Should be called once per lua
+/// interpreter instance.
+///
+/// @return New lua interpreter instance.
+static lua_State *nlua_init(void)
+ FUNC_ATTR_NONNULL_RET FUNC_ATTR_WARN_UNUSED_RESULT
+{
+ lua_State *lstate = luaL_newstate();
+ if (lstate == NULL) {
+ EMSG(_("E970: Failed to initialize lua interpreter"));
+ preserve_exit();
+ }
+ luaL_openlibs(lstate);
+ NLUA_CALL_C_FUNCTION_0(lstate, nlua_state_init, 0);
+ return lstate;
+}
+
+/// Enter lua interpreter
+///
+/// Calls nlua_init() if needed. Is responsible for pre-lua call initalization
+/// like updating `package.[c]path` with directories derived from &runtimepath.
+///
+/// @return Interprter instance to use. Will either be initialized now or taken
+/// from previous initalization.
+static lua_State *nlua_enter(void)
+ FUNC_ATTR_NONNULL_RET FUNC_ATTR_WARN_UNUSED_RESULT
+{
+ static lua_State *global_lstate = NULL;
+ if (global_lstate == NULL) {
+ global_lstate = nlua_init();
+ }
+ lua_State *const lstate = global_lstate;
+ // Last used p_rtp value. Must not be dereferenced because value pointed to
+ // may already be freed. Used to check whether &runtimepath option value
+ // changed.
+ static const void *last_p_rtp = NULL;
+ if (last_p_rtp != (const void *)p_rtp) {
+ // stack: (empty)
+ lua_getglobal(lstate, "vim");
+ // stack: vim
+ lua_getfield(lstate, -1, "_update_package_paths");
+ // stack: vim, vim._update_package_paths
+ if (lua_pcall(lstate, 0, 0, 0)) {
+ // stack: vim, error
+ nlua_error(lstate, _("E5117: Error while updating package paths: %.*s"));
+ // stack: vim
+ }
+ // stack: vim
+ lua_pop(lstate, 1);
+ // stack: (empty)
+ last_p_rtp = (const void *)p_rtp;
+ }
+ return lstate;
+}
+
+/// Execute lua string
+///
+/// @param[in] str String to execute.
+/// @param[out] ret_tv Location where result will be saved.
+///
+/// @return Result of the execution.
+void executor_exec_lua(const String str, typval_T *const ret_tv)
+ FUNC_ATTR_NONNULL_ALL
+{
+ NLUA_CALL_C_FUNCTION_2(nlua_enter(), nlua_exec_lua_string, 0,
+ (void *)&str, ret_tv);
+}
+
+/// Evaluate lua string
+///
+/// Used for luaeval(). Expects three values on the stack:
+///
+/// 1. String to evaluate.
+/// 2. _A value.
+/// 3. Pointer to location where result is saved.
+///
+/// @param[in,out] lstate Lua interpreter state.
+static int nlua_eval_lua_string(lua_State *const lstate)
+ FUNC_ATTR_NONNULL_ALL
+{
+ const String *const str = (const String *)lua_touserdata(lstate, 1);
+ typval_T *const arg = (typval_T *)lua_touserdata(lstate, 2);
+ typval_T *const ret_tv = (typval_T *)lua_touserdata(lstate, 3);
+ lua_pop(lstate, 3);
+
+ garray_T str_ga;
+ ga_init(&str_ga, 1, 80);
+#define EVALHEADER "local _A=select(1,...) return ("
+ const size_t lcmd_len = sizeof(EVALHEADER) - 1 + str->size + 1;
+ char *lcmd;
+ if (lcmd_len < IOSIZE) {
+ lcmd = (char *)IObuff;
+ } else {
+ lcmd = xmalloc(lcmd_len);
+ }
+ memcpy(lcmd, EVALHEADER, sizeof(EVALHEADER) - 1);
+ memcpy(lcmd + sizeof(EVALHEADER) - 1, str->data, str->size);
+ lcmd[lcmd_len - 1] = ')';
+#undef EVALHEADER
+ if (luaL_loadbuffer(lstate, lcmd, lcmd_len, NLUA_EVAL_NAME)) {
+ nlua_error(lstate,
+ _("E5107: Error while creating lua chunk for luaeval(): %.*s"));
+ if (lcmd != (char *)IObuff) {
+ xfree(lcmd);
+ }
+ return 0;
+ }
+ if (lcmd != (char *)IObuff) {
+ xfree(lcmd);
+ }
+
+ if (arg == NULL || arg->v_type == VAR_UNKNOWN) {
+ lua_pushnil(lstate);
+ } else {
+ nlua_push_typval(lstate, arg);
+ }
+ if (lua_pcall(lstate, 1, 1, 0)) {
+ nlua_error(lstate,
+ _("E5108: Error while calling lua chunk for luaeval(): %.*s"));
+ return 0;
+ }
+ if (!nlua_pop_typval(lstate, ret_tv)) {
+ return 0;
+ }
+
+ return 0;
+}
+
+/// Evaluate lua string
+///
+/// Expects four values on the stack: string to evaluate, pointer to args array,
+/// and locations where result and error are saved, respectively. Always
+/// returns nothing (from the lua point of view).
+static int nlua_exec_lua_string_api(lua_State *const lstate)
+ FUNC_ATTR_NONNULL_ALL
+{
+ const String *str = (const String *)lua_touserdata(lstate, 1);
+ const Array *args = (const Array *)lua_touserdata(lstate, 2);
+ Object *retval = (Object *)lua_touserdata(lstate, 3);
+ Error *err = (Error *)lua_touserdata(lstate, 4);
+
+ lua_pop(lstate, 4);
+
+ if (luaL_loadbuffer(lstate, str->data, str->size, "<nvim>")) {
+ size_t len;
+ const char *str = lua_tolstring(lstate, -1, &len);
+ api_set_error(err, kErrorTypeValidation,
+ "Error loading lua: %.*s", (int)len, str);
+ return 0;
+ }
+
+ for (size_t i = 0; i < args->size; i++) {
+ nlua_push_Object(lstate, args->items[i]);
+ }
+
+ if (lua_pcall(lstate, (int)args->size, 1, 0)) {
+ size_t len;
+ const char *str = lua_tolstring(lstate, -1, &len);
+ api_set_error(err, kErrorTypeException,
+ "Error executing lua: %.*s", (int)len, str);
+ return 0;
+ }
+
+ *retval = nlua_pop_Object(lstate, err);
+
+ return 0;
+}
+
+/// Print as a Vim message
+///
+/// @param lstate Lua interpreter state.
+static int nlua_print(lua_State *const lstate)
+ FUNC_ATTR_NONNULL_ALL
+{
+#define PRINT_ERROR(msg) \
+ do { \
+ errmsg = msg; \
+ errmsg_len = sizeof(msg) - 1; \
+ goto nlua_print_error; \
+ } while (0)
+ const int nargs = lua_gettop(lstate);
+ lua_getglobal(lstate, "tostring");
+ const char *errmsg = NULL;
+ size_t errmsg_len = 0;
+ garray_T msg_ga;
+ ga_init(&msg_ga, 1, 80);
+ int curargidx = 1;
+ for (; curargidx <= nargs; curargidx++) {
+ lua_pushvalue(lstate, -1); // tostring
+ lua_pushvalue(lstate, curargidx); // arg
+ if (lua_pcall(lstate, 1, 1, 0)) {
+ errmsg = lua_tolstring(lstate, -1, &errmsg_len);
+ goto nlua_print_error;
+ }
+ size_t len;
+ const char *const s = lua_tolstring(lstate, -1, &len);
+ if (s == NULL) {
+ PRINT_ERROR(
+ "<Unknown error: lua_tolstring returned NULL for tostring result>");
+ }
+ ga_concat_len(&msg_ga, s, len);
+ if (curargidx < nargs) {
+ ga_append(&msg_ga, ' ');
+ }
+ lua_pop(lstate, 1);
+ }
+#undef PRINT_ERROR
+ lua_pop(lstate, nargs + 1);
+ ga_append(&msg_ga, NUL);
+ {
+ const size_t len = (size_t)msg_ga.ga_len - 1;
+ char *const str = (char *)msg_ga.ga_data;
+
+ for (size_t i = 0; i < len;) {
+ const size_t start = i;
+ while (i < len) {
+ switch (str[i]) {
+ case NUL: {
+ str[i] = NL;
+ i++;
+ continue;
+ }
+ case NL: {
+ str[i] = NUL;
+ i++;
+ break;
+ }
+ default: {
+ i++;
+ continue;
+ }
+ }
+ break;
+ }
+ msg((char_u *)str + start);
+ }
+ if (str[len - 1] == NUL) { // Last was newline
+ msg((char_u *)"");
+ }
+ }
+ ga_clear(&msg_ga);
+ return 0;
+nlua_print_error:
+ emsgf(_("E5114: Error while converting print argument #%i: %.*s"),
+ curargidx, errmsg_len, errmsg);
+ ga_clear(&msg_ga);
+ lua_pop(lstate, lua_gettop(lstate));
+ return 0;
+}
+
+/// debug.debug implementation: interaction with user while debugging
+///
+/// @param lstate Lua interpreter state.
+int nlua_debug(lua_State *lstate)
+ FUNC_ATTR_NONNULL_ALL
+{
+ const typval_T input_args[] = {
+ {
+ .v_lock = VAR_FIXED,
+ .v_type = VAR_STRING,
+ .vval.v_string = (char_u *)"lua_debug> ",
+ },
+ {
+ .v_type = VAR_UNKNOWN,
+ },
+ };
+ for (;;) {
+ lua_settop(lstate, 0);
+ typval_T input;
+ get_user_input(input_args, &input, false);
+ msg_putchar('\n'); // Avoid outputting on input line.
+ if (input.v_type != VAR_STRING
+ || input.vval.v_string == NULL
+ || *input.vval.v_string == NUL
+ || STRCMP(input.vval.v_string, "cont") == 0) {
+ tv_clear(&input);
+ return 0;
+ }
+ if (luaL_loadbuffer(lstate, (const char *)input.vval.v_string,
+ STRLEN(input.vval.v_string), "=(debug command)")) {
+ nlua_error(lstate, _("E5115: Error while loading debug string: %.*s"));
+ }
+ tv_clear(&input);
+ if (lua_pcall(lstate, 0, 0, 0)) {
+ nlua_error(lstate, _("E5116: Error while calling debug string: %.*s"));
+ }
+ }
+ return 0;
+}
+
+/// Evaluate lua string
+///
+/// Used for luaeval().
+///
+/// @param[in] str String to execute.
+/// @param[in] arg Second argument to `luaeval()`.
+/// @param[out] ret_tv Location where result will be saved.
+///
+/// @return Result of the execution.
+void executor_eval_lua(const String str, typval_T *const arg,
+ typval_T *const ret_tv)
+ FUNC_ATTR_NONNULL_ALL
+{
+ NLUA_CALL_C_FUNCTION_3(nlua_enter(), nlua_eval_lua_string, 0,
+ (void *)&str, arg, ret_tv);
+}
+
+/// Execute lua string
+///
+/// Used for nvim_execute_lua().
+///
+/// @param[in] str String to execute.
+/// @param[in] args array of ... args
+/// @param[out] err Location where error will be saved.
+///
+/// @return Return value of the execution.
+Object executor_exec_lua_api(const String str, const Array args, Error *err)
+{
+ Object retval = NIL;
+ NLUA_CALL_C_FUNCTION_4(nlua_enter(), nlua_exec_lua_string_api, 0,
+ (void *)&str, (void *)&args, &retval, err);
+ return retval;
+}
+
+
+/// Run lua string
+///
+/// Used for :lua.
+///
+/// @param eap VimL command being run.
+void ex_lua(exarg_T *const eap)
+ FUNC_ATTR_NONNULL_ALL
+{
+ size_t len;
+ char *const code = script_get(eap, &len);
+ if (eap->skip) {
+ xfree(code);
+ return;
+ }
+ typval_T tv = { .v_type = VAR_UNKNOWN };
+ executor_exec_lua((String) { .data = code, .size = len }, &tv);
+ tv_clear(&tv);
+ xfree(code);
+}
+
+/// Run lua string for each line in range
+///
+/// Used for :luado.
+///
+/// @param eap VimL command being run.
+void ex_luado(exarg_T *const eap)
+ FUNC_ATTR_NONNULL_ALL
+{
+ if (u_save(eap->line1 - 1, eap->line2 + 1) == FAIL) {
+ EMSG(_("cannot save undo information"));
+ return;
+ }
+ const String cmd = {
+ .size = STRLEN(eap->arg),
+ .data = (char *)eap->arg,
+ };
+ const linenr_T range[] = { eap->line1, eap->line2 };
+ NLUA_CALL_C_FUNCTION_2(nlua_enter(), nlua_exec_luado_string, 0,
+ (void *)&cmd, (void *)range);
+}
+
+/// Run lua file
+///
+/// Used for :luafile.
+///
+/// @param eap VimL command being run.
+void ex_luafile(exarg_T *const eap)
+ FUNC_ATTR_NONNULL_ALL
+{
+ NLUA_CALL_C_FUNCTION_1(nlua_enter(), nlua_exec_lua_file, 0,
+ (void *)eap->arg);
+}
diff --git a/src/nvim/lua/executor.h b/src/nvim/lua/executor.h
new file mode 100644
index 0000000000..0cbf290f64
--- /dev/null
+++ b/src/nvim/lua/executor.h
@@ -0,0 +1,25 @@
+#ifndef NVIM_LUA_EXECUTOR_H
+#define NVIM_LUA_EXECUTOR_H
+
+#include <lua.h>
+
+#include "nvim/api/private/defs.h"
+#include "nvim/func_attr.h"
+#include "nvim/eval/typval.h"
+#include "nvim/ex_cmds_defs.h"
+
+// Generated by msgpack-gen.lua
+void nlua_add_api_functions(lua_State *lstate) REAL_FATTR_NONNULL_ALL;
+
+#define set_api_error(s, err) \
+ do { \
+ Error *err_ = (err); \
+ err_->type = kErrorTypeException; \
+ err_->set = true; \
+ memcpy(&err_->msg[0], s, sizeof(s)); \
+ } while (0)
+
+#ifdef INCLUDE_GENERATED_DECLARATIONS
+# include "lua/executor.h.generated.h"
+#endif
+#endif // NVIM_LUA_EXECUTOR_H
diff --git a/src/nvim/lua/vim.lua b/src/nvim/lua/vim.lua
new file mode 100644
index 0000000000..c7952520b0
--- /dev/null
+++ b/src/nvim/lua/vim.lua
@@ -0,0 +1,64 @@
+-- TODO(ZyX-I): Create compatibility layer.
+--{{{1 package.path updater function
+-- Last inserted paths. Used to clear out items from package.[c]path when they
+-- are no longer in &runtimepath.
+local last_nvim_paths = {}
+local function _update_package_paths()
+ local cur_nvim_paths = {}
+ local rtps = vim.api.nvim_list_runtime_paths()
+ local sep = package.config:sub(1, 1)
+ for _, key in ipairs({'path', 'cpath'}) do
+ local orig_str = package[key] .. ';'
+ local pathtrails_ordered = {}
+ local orig = {}
+ -- Note: ignores trailing item without trailing `;`. Not using something
+ -- simpler in order to preserve empty items (stand for default path).
+ for s in orig_str:gmatch('[^;]*;') do
+ s = s:sub(1, -2) -- Strip trailing semicolon
+ orig[#orig + 1] = s
+ end
+ if key == 'path' then
+ -- /?.lua and /?/init.lua
+ pathtrails_ordered = {sep .. '?.lua', sep .. '?' .. sep .. 'init.lua'}
+ else
+ local pathtrails = {}
+ for _, s in ipairs(orig) do
+ -- Find out path patterns. pathtrail should contain something like
+ -- /?.so, \?.dll. This allows not to bother determining what correct
+ -- suffixes are.
+ local pathtrail = s:match('[/\\][^/\\]*%?.*$')
+ if pathtrail and not pathtrails[pathtrail] then
+ pathtrails[pathtrail] = true
+ pathtrails_ordered[#pathtrails_ordered + 1] = pathtrail
+ end
+ end
+ end
+ local new = {}
+ for _, rtp in ipairs(rtps) do
+ if not rtp:match(';') then
+ for _, pathtrail in pairs(pathtrails_ordered) do
+ local new_path = rtp .. sep .. 'lua' .. pathtrail
+ -- Always keep paths from &runtimepath at the start:
+ -- append them here disregarding orig possibly containing one of them.
+ new[#new + 1] = new_path
+ cur_nvim_paths[new_path] = true
+ end
+ end
+ end
+ for _, orig_path in ipairs(orig) do
+ -- Handle removing obsolete paths originating from &runtimepath: such
+ -- paths either belong to cur_nvim_paths and were already added above or
+ -- to last_nvim_paths and should not be added at all if corresponding
+ -- entry was removed from &runtimepath list.
+ if not (cur_nvim_paths[orig_path] or last_nvim_paths[orig_path]) then
+ new[#new + 1] = orig_path
+ end
+ end
+ package[key] = table.concat(new, ';')
+ end
+ last_nvim_paths = cur_nvim_paths
+end
+--{{{1 Module definition
+return {
+ _update_package_paths = _update_package_paths,
+}
diff --git a/src/nvim/macros.h b/src/nvim/macros.h
index 214af82422..26d4f74b6a 100644
--- a/src/nvim/macros.h
+++ b/src/nvim/macros.h
@@ -153,4 +153,34 @@
#define STR_(x) #x
#define STR(x) STR_(x)
+#ifndef __has_attribute
+# define NVIM_HAS_ATTRIBUTE(x) 0
+#elif defined(__clang__) && __clang__ == 1 \
+ && (__clang_major__ < 3 || (__clang_major__ == 3 && __clang_minor__ <= 5))
+// Starting in Clang 3.6, __has_attribute was fixed to only report true for
+// GNU-style attributes. Prior to that, it reported true if _any_ backend
+// supported the attribute.
+# define NVIM_HAS_ATTRIBUTE(x) 0
+#else
+# define NVIM_HAS_ATTRIBUTE __has_attribute
+#endif
+
+#if NVIM_HAS_ATTRIBUTE(fallthrough)
+# define FALLTHROUGH __attribute__((fallthrough))
+#else
+# define FALLTHROUGH
+#endif
+
+// -V:STRUCT_CAST:641
+
+/// Change type of structure pointers: cast `struct a *` to `struct b *`
+///
+/// Used to silence PVS errors.
+///
+/// @param Type Structure to cast to.
+/// @param obj Object to cast.
+///
+/// @return ((Type *)obj).
+#define STRUCT_CAST(Type, obj) ((Type *)(obj))
+
#endif // NVIM_MACROS_H
diff --git a/src/nvim/main.c b/src/nvim/main.c
index 1095d4d3b5..19a661d7db 100644
--- a/src/nvim/main.c
+++ b/src/nvim/main.c
@@ -124,7 +124,7 @@ typedef struct {
Loop main_loop;
-static char *argv0;
+static char *argv0 = NULL;
// Error messages
static const char *err_arg_missing = N_("Argument missing after");
@@ -153,10 +153,11 @@ void event_init(void)
terminal_init();
}
-void event_teardown(void)
+/// @returns false if main_loop could not be closed gracefully
+bool event_teardown(void)
{
if (!main_loop.events) {
- return;
+ return true;
}
multiqueue_process_events(main_loop.events);
@@ -168,7 +169,7 @@ void event_teardown(void)
signal_teardown();
terminal_teardown();
- loop_close(&main_loop, true);
+ return loop_close(&main_loop, true);
}
/// Performs early initialization.
@@ -179,11 +180,9 @@ void early_init(void)
log_init();
fs_init();
handle_init();
-
eval_init(); // init global variables
-
- // Init the table of Normal mode commands.
- init_normal_cmds();
+ init_path(argv0 ? argv0 : "nvim");
+ init_normal_cmds(); // Init the table of Normal mode commands.
#if defined(HAVE_LOCALE_H)
// Setup to use the current locale (for ctype() and many other things).
@@ -221,7 +220,7 @@ int nvim_main(int argc, char **argv)
int main(int argc, char **argv)
#endif
{
- argv0 = (char *)path_tail((char_u *)argv[0]);
+ argv0 = argv[0];
char_u *fname = NULL; // file name from command line
mparm_T params; // various parameters passed between
@@ -241,8 +240,6 @@ int main(int argc, char **argv)
// Check if we have an interactive window.
check_and_set_isatty(&params);
- init_path(argv[0]);
-
event_init();
/*
* Process the command line arguments. File names are put in the global
@@ -660,8 +657,9 @@ void getout(int exitval)
///
/// @return argument's numeric value otherwise
static int get_number_arg(const char *p, int *idx, int def)
+ FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT
{
- if (ascii_isdigit(p[*idx])) {
+ if (ascii_isdigit(p[*idx])) { // -V522
def = atoi(&(p[*idx]));
while (ascii_isdigit(p[*idx])) {
*idx = *idx + 1;
@@ -1217,13 +1215,15 @@ static void check_and_set_isatty(mparm_T *paramp)
}
// Sets v:progname and v:progpath. Also modifies $PATH on Windows.
-static void init_path(char *exename)
+static void init_path(const char *exename)
+ FUNC_ATTR_NONNULL_ALL
{
char exepath[MAXPATHL] = { 0 };
size_t exepathlen = MAXPATHL;
// Make v:progpath absolute.
if (os_exepath(exepath, &exepathlen) != 0) {
- EMSG2(e_intern2, "init_path()");
+ // Fall back to argv[0]. Missing procfs? #6734
+ path_guess_exepath(exename, exepath, sizeof(exepath));
}
set_vim_var_string(VV_PROGPATH, exepath, -1);
set_vim_var_string(VV_PROGNAME, (char *)path_tail((char_u *)exename), -1);
@@ -1303,8 +1303,8 @@ static void handle_quickfix(mparm_T *paramp)
set_string_option_direct((char_u *)"ef", -1,
paramp->use_ef, OPT_FREE, SID_CARG);
vim_snprintf((char *)IObuff, IOSIZE, "cfile %s", p_ef);
- if (qf_init(NULL, p_ef, p_efm, TRUE, IObuff) < 0) {
- ui_putc('\n');
+ if (qf_init(NULL, p_ef, p_efm, true, IObuff) < 0) {
+ ui_linefeed();
mch_exit(3);
}
TIME_MSG("reading errorfile");
@@ -1684,7 +1684,7 @@ static bool do_user_initialization(void)
do {
const char *dir;
size_t dir_len;
- iter = vim_colon_env_iter(config_dirs, iter, &dir, &dir_len);
+ iter = vim_env_iter(':', config_dirs, iter, &dir, &dir_len);
if (dir == NULL || dir_len == 0) {
break;
}
@@ -1833,9 +1833,11 @@ static bool file_owned(const char *fname)
/// @param str string to append to the primary error message, or NULL
static void mainerr(const char *errstr, const char *str)
{
+ char *prgname = (char *)path_tail((char_u *)argv0);
+
signal_stop(); // kill us with CTRL-C here, if you like
- mch_errmsg(argv0);
+ mch_errmsg(prgname);
mch_errmsg(": ");
mch_errmsg(_(errstr));
if (str != NULL) {
@@ -1844,7 +1846,7 @@ static void mainerr(const char *errstr, const char *str)
mch_errmsg("\"");
}
mch_errmsg(_("\nMore info with \""));
- mch_errmsg(argv0);
+ mch_errmsg(prgname);
mch_errmsg(" -h\"\n");
mch_exit(1);
diff --git a/src/nvim/map.c b/src/nvim/map.c
index 366b286d14..537b6751e2 100644
--- a/src/nvim/map.c
+++ b/src/nvim/map.c
@@ -149,4 +149,3 @@ MAP_IMPL(handle_T, ptr_t, DEFAULT_INITIALIZER)
#define MSGPACK_HANDLER_INITIALIZER { .fn = NULL, .async = false }
MAP_IMPL(String, MsgpackRpcRequestHandler, MSGPACK_HANDLER_INITIALIZER)
#define KVEC_INITIALIZER { .size = 0, .capacity = 0, .items = NULL }
-MAP_IMPL(linenr_T, bufhl_vec_T, KVEC_INITIALIZER)
diff --git a/src/nvim/map.h b/src/nvim/map.h
index a4fccf47f9..047aa163ce 100644
--- a/src/nvim/map.h
+++ b/src/nvim/map.h
@@ -30,7 +30,6 @@ MAP_DECLS(ptr_t, ptr_t)
MAP_DECLS(uint64_t, ptr_t)
MAP_DECLS(handle_T, ptr_t)
MAP_DECLS(String, MsgpackRpcRequestHandler)
-MAP_DECLS(linenr_T, bufhl_vec_T)
#define map_new(T, U) map_##T##_##U##_new
#define map_free(T, U) map_##T##_##U##_free
diff --git a/src/nvim/mark.c b/src/nvim/mark.c
index 675fe4d57f..7889fabd45 100644
--- a/src/nvim/mark.c
+++ b/src/nvim/mark.c
@@ -888,9 +888,13 @@ void ex_changes(exarg_T *eap)
* Example: Insert two lines below 55: mark_adjust(56, MAXLNUM, 2, 0);
* or: mark_adjust(56, 55, MAXLNUM, 2);
*/
-void mark_adjust(linenr_T line1, linenr_T line2, long amount, long amount_after)
+void mark_adjust(linenr_T line1,
+ linenr_T line2,
+ long amount,
+ long amount_after,
+ bool end_temp)
{
- mark_adjust_internal(line1, line2, amount, amount_after, true);
+ mark_adjust_internal(line1, line2, amount, amount_after, true, end_temp);
}
// mark_adjust_nofold() does the same as mark_adjust() but without adjusting
@@ -899,13 +903,14 @@ void mark_adjust(linenr_T line1, linenr_T line2, long amount, long amount_after)
// calling foldMarkAdjust() with arguments line1, line2, amount, amount_after,
// for an example of why this may be necessary, see do_move().
void mark_adjust_nofold(linenr_T line1, linenr_T line2, long amount,
- long amount_after)
+ long amount_after, bool end_temp)
{
- mark_adjust_internal(line1, line2, amount, amount_after, false);
+ mark_adjust_internal(line1, line2, amount, amount_after, false, end_temp);
}
-static void mark_adjust_internal(linenr_T line1, linenr_T line2, long amount,
- long amount_after, bool adjust_folds)
+static void mark_adjust_internal(linenr_T line1, linenr_T line2,
+ long amount, long amount_after,
+ bool adjust_folds, bool end_temp)
{
int i;
int fnum = curbuf->b_fnum;
@@ -954,7 +959,7 @@ static void mark_adjust_internal(linenr_T line1, linenr_T line2, long amount,
}
sign_mark_adjust(line1, line2, amount, amount_after);
- bufhl_mark_adjust(curbuf, line1, line2, amount, amount_after);
+ bufhl_mark_adjust(curbuf, line1, line2, amount, amount_after, end_temp);
}
/* previous context mark */
diff --git a/src/nvim/mark.h b/src/nvim/mark.h
index a356c1f398..ed4e47907b 100644
--- a/src/nvim/mark.h
+++ b/src/nvim/mark.h
@@ -81,7 +81,8 @@ static inline bool equalpos(pos_T, pos_T)
REAL_FATTR_CONST REAL_FATTR_ALWAYS_INLINE;
static inline bool ltoreq(pos_T, pos_T)
REAL_FATTR_CONST REAL_FATTR_ALWAYS_INLINE;
-static inline void clearpos(pos_T *) REAL_FATTR_ALWAYS_INLINE;
+static inline void clearpos(pos_T *)
+ REAL_FATTR_ALWAYS_INLINE;
/// Return true if position a is before (less than) position b.
static inline bool lt(pos_T a, pos_T b)
diff --git a/src/nvim/mbyte.c b/src/nvim/mbyte.c
index b21ec944c1..d5907da2ed 100644
--- a/src/nvim/mbyte.c
+++ b/src/nvim/mbyte.c
@@ -359,10 +359,10 @@ int bomb_size(void)
*/
void remove_bom(char_u *s)
{
- char_u *p = s;
+ char *p = (char *)s;
- while ((p = vim_strbyte(p, 0xef)) != NULL) {
- if (p[1] == 0xbb && p[2] == 0xbf) {
+ while ((p = strchr(p, 0xef)) != NULL) {
+ if ((uint8_t)p[1] == 0xbb && (uint8_t)p[2] == 0xbf) {
STRMOVE(p, p + 3);
} else {
p++;
@@ -1367,7 +1367,7 @@ int utf16_to_utf8(const WCHAR *strw, char **str)
return GetLastError();
}
- *str = xmalloc(utf8_len);
+ *str = xmallocz(utf8_len);
// Convert to UTF-8.
utf8_len = WideCharToMultiByte(CP_UTF8,
diff --git a/src/nvim/memfile.c b/src/nvim/memfile.c
index efaf1f94c5..9429703620 100644
--- a/src/nvim/memfile.c
+++ b/src/nvim/memfile.c
@@ -54,6 +54,7 @@
#include "nvim/memory.h"
#include "nvim/os_unix.h"
#include "nvim/path.h"
+#include "nvim/assert.h"
#include "nvim/os/os.h"
#include "nvim/os/input.h"
@@ -108,23 +109,24 @@ memfile_T *mf_open(char_u *fname, int flags)
if (mfp->mf_fd >= 0 && os_fileinfo_fd(mfp->mf_fd, &file_info)) {
uint64_t blocksize = os_fileinfo_blocksize(&file_info);
if (blocksize >= MIN_SWAP_PAGE_SIZE && blocksize <= MAX_SWAP_PAGE_SIZE) {
- assert(blocksize <= UINT_MAX);
+ STATIC_ASSERT(MAX_SWAP_PAGE_SIZE <= UINT_MAX,
+ "MAX_SWAP_PAGE_SIZE must fit into an unsigned");
mfp->mf_page_size = (unsigned)blocksize;
}
}
- off_t size;
+ off_T size;
// When recovering, the actual block size will be retrieved from block 0
// in ml_recover(). The size used here may be wrong, therefore mf_blocknr_max
// must be rounded up.
if (mfp->mf_fd < 0
|| (flags & (O_TRUNC|O_EXCL))
- || (size = lseek(mfp->mf_fd, (off_t)0L, SEEK_END)) <= 0) {
+ || (size = vim_lseek(mfp->mf_fd, 0L, SEEK_END)) <= 0) {
// no file or empty file
mfp->mf_blocknr_max = 0;
} else {
- assert(sizeof(off_t) <= sizeof(blocknr_T)
+ assert(sizeof(off_T) <= sizeof(blocknr_T)
&& mfp->mf_page_size > 0
&& mfp->mf_page_size - 1 <= INT64_MAX - size);
mfp->mf_blocknr_max = (((blocknr_T)size + mfp->mf_page_size - 1)
@@ -687,9 +689,9 @@ static int mf_read(memfile_T *mfp, bhdr_T *hp)
return FAIL;
unsigned page_size = mfp->mf_page_size;
- // TODO(elmart): Check (page_size * hp->bh_bnum) within off_t bounds.
- off_t offset = (off_t)(page_size * hp->bh_bnum);
- if (lseek(mfp->mf_fd, offset, SEEK_SET) != offset) {
+ // TODO(elmart): Check (page_size * hp->bh_bnum) within off_T bounds.
+ off_T offset = (off_T)(page_size * hp->bh_bnum);
+ if (vim_lseek(mfp->mf_fd, offset, SEEK_SET) != offset) {
PERROR(_("E294: Seek error in swap file read"));
return FAIL;
}
@@ -714,7 +716,7 @@ static int mf_read(memfile_T *mfp, bhdr_T *hp)
/// - Write error in swap file.
static int mf_write(memfile_T *mfp, bhdr_T *hp)
{
- off_t offset; // offset in the file
+ off_T offset; // offset in the file
blocknr_T nr; // block nr which is being written
bhdr_T *hp2;
unsigned page_size; // number of bytes in a page
@@ -743,9 +745,9 @@ static int mf_write(memfile_T *mfp, bhdr_T *hp)
hp2 = hp;
}
- // TODO(elmart): Check (page_size * nr) within off_t bounds.
- offset = (off_t)(page_size * nr);
- if (lseek(mfp->mf_fd, offset, SEEK_SET) != offset) {
+ // TODO(elmart): Check (page_size * nr) within off_T bounds.
+ offset = (off_T)(page_size * nr);
+ if (vim_lseek(mfp->mf_fd, offset, SEEK_SET) != offset) {
PERROR(_("E296: Seek error in swap file write"));
return FAIL;
}
diff --git a/src/nvim/memline.c b/src/nvim/memline.c
index 40a6761225..55e7e01825 100644
--- a/src/nvim/memline.c
+++ b/src/nvim/memline.c
@@ -763,7 +763,7 @@ void ml_recover(void)
int idx;
int top;
int txt_start;
- off_t size;
+ off_T size;
int called_from_main;
int serious_error = TRUE;
long mtime;
@@ -914,10 +914,11 @@ void ml_recover(void)
msg_end();
goto theend;
}
- if ((size = lseek(mfp->mf_fd, (off_t)0L, SEEK_END)) <= 0)
- mfp->mf_blocknr_max = 0; /* no file or empty file */
- else
+ if ((size = vim_lseek(mfp->mf_fd, (off_T)0L, SEEK_END)) <= 0) {
+ mfp->mf_blocknr_max = 0; // no file or empty file
+ } else {
mfp->mf_blocknr_max = size / mfp->mf_page_size;
+ }
mfp->mf_infile_count = mfp->mf_blocknr_max;
/* need to reallocate the memory used to store the data */
diff --git a/src/nvim/memory.c b/src/nvim/memory.c
index 0ee4776581..74c58fb203 100644
--- a/src/nvim/memory.c
+++ b/src/nvim/memory.c
@@ -345,10 +345,6 @@ char *xstpcpy(char *restrict dst, const char *restrict src)
/// WARNING: xstpncpy will ALWAYS write maxlen bytes. If src is shorter than
/// maxlen, zeroes will be written to the remaining bytes.
///
-/// TODO(aktau): I don't see a good reason to have this last behaviour, and
-/// it is potentially wasteful. Could we perhaps deviate from the standard
-/// and not zero the rest of the buffer?
-///
/// @param dst
/// @param src
/// @param maxlen
diff --git a/src/nvim/menu.c b/src/nvim/menu.c
index 4e621b49c1..7e9e9e9e5c 100644
--- a/src/nvim/menu.c
+++ b/src/nvim/menu.c
@@ -247,7 +247,7 @@ ex_menu (
xfree(map_buf);
}
- ui_update_menu();
+ ui_call_update_menu();
theend:
;
diff --git a/src/nvim/message.c b/src/nvim/message.c
index 146937c25a..057ce75f79 100644
--- a/src/nvim/message.c
+++ b/src/nvim/message.c
@@ -31,6 +31,7 @@
#include "nvim/ops.h"
#include "nvim/option.h"
#include "nvim/normal.h"
+#include "nvim/regexp.h"
#include "nvim/screen.h"
#include "nvim/strings.h"
#include "nvim/ui.h"
@@ -148,6 +149,12 @@ msg_attr_keep (
int retval;
char_u *buf = NULL;
+ // Skip messages not match ":filter pattern".
+ // Don't filter when there is an error.
+ if (!emsg_on_display && message_filtered(s)) {
+ return true;
+ }
+
if (attr == 0) {
set_vim_var_string(VV_STATUSMSG, (char *) s, -1);
}
@@ -604,7 +611,7 @@ void msg_schedule_emsgf(const char *const fmt, ...)
va_end(ap);
char *s = xstrdup((char *)IObuff);
- loop_schedule(&main_loop, event_create(1, msg_emsgf_event, 1, s));
+ loop_schedule(&main_loop, event_create(msg_emsgf_event, 1, s));
}
/*
@@ -1783,6 +1790,18 @@ static void msg_puts_display(const char_u *str, int maxlen, int attr,
msg_check();
}
+/// Return true when ":filter pattern" was used and "msg" does not match
+/// "pattern".
+bool message_filtered(char_u *msg)
+{
+ if (cmdmod.filter_regmatch.regprog == NULL) {
+ return false;
+ }
+
+ bool match = vim_regexec(&cmdmod.filter_regmatch, msg, (colnr_T)0);
+ return cmdmod.filter_force ? match : !match;
+}
+
/*
* Scroll the screen up one line for displaying the next message line.
*/
diff --git a/src/nvim/misc1.c b/src/nvim/misc1.c
index 6de74fddf2..835b9c7b20 100644
--- a/src/nvim/misc1.c
+++ b/src/nvim/misc1.c
@@ -751,7 +751,7 @@ open_line (
// Skip mark_adjust when adding a line after the last one, there can't
// be marks there.
if (curwin->w_cursor.lnum + 1 < curbuf->b_ml.ml_line_count) {
- mark_adjust(curwin->w_cursor.lnum + 1, (linenr_T)MAXLNUM, 1L, 0L);
+ mark_adjust(curwin->w_cursor.lnum + 1, (linenr_T)MAXLNUM, 1L, 0L, false);
}
did_append = true;
} else {
@@ -1866,7 +1866,7 @@ void appended_lines_mark(linenr_T lnum, long count)
// Skip mark_adjust when adding a line after the last one, there can't
// be marks there.
if (lnum + count < curbuf->b_ml.ml_line_count) {
- mark_adjust(lnum + 1, (linenr_T)MAXLNUM, count, 0L);
+ mark_adjust(lnum + 1, (linenr_T)MAXLNUM, count, 0L, false);
}
changed_lines(lnum + 1, 0, lnum + 1, count);
}
@@ -1888,7 +1888,7 @@ void deleted_lines(linenr_T lnum, long count)
*/
void deleted_lines_mark(linenr_T lnum, long count)
{
- mark_adjust(lnum, (linenr_T)(lnum + count - 1), (long)MAXLNUM, -count);
+ mark_adjust(lnum, (linenr_T)(lnum + count - 1), (long)MAXLNUM, -count, false);
changed_lines(lnum, 0, lnum + count, -count);
}
@@ -2536,9 +2536,9 @@ void vim_beep(unsigned val)
if (emsg_silent == 0) {
if (!((bo_flags & val) || (bo_flags & BO_ALL))) {
if (p_vb) {
- ui_visual_bell();
+ ui_call_visual_bell();
} else {
- ui_putc(BELL);
+ ui_call_bell();
}
}
@@ -2691,7 +2691,7 @@ int call_shell(char_u *cmd, ShellOpts opts, char_u *extra_shell_arg)
if (p_verbose > 3) {
verbose_enter();
smsg(_("Calling shell to execute: \"%s\""), cmd == NULL ? p_sh : cmd);
- ui_putc('\n');
+ ui_linefeed();
verbose_leave();
}
diff --git a/src/nvim/mouse.c b/src/nvim/mouse.c
index b1c146d406..d908a022f1 100644
--- a/src/nvim/mouse.c
+++ b/src/nvim/mouse.c
@@ -479,9 +479,9 @@ void setmouse(void)
checkfor = MOUSE_NORMAL; /* assume normal mode */
if (mouse_has(checkfor)) {
- ui_mouse_on();
+ ui_call_mouse_on();
} else {
- ui_mouse_off();
+ ui_call_mouse_off();
}
}
diff --git a/src/nvim/msgpack_rpc/channel.c b/src/nvim/msgpack_rpc/channel.c
index 59594357de..68ac35bc4e 100644
--- a/src/nvim/msgpack_rpc/channel.c
+++ b/src/nvim/msgpack_rpc/channel.c
@@ -12,6 +12,7 @@
#include "nvim/api/vim.h"
#include "nvim/api/ui.h"
#include "nvim/msgpack_rpc/channel.h"
+#include "nvim/msgpack_rpc/server.h"
#include "nvim/event/loop.h"
#include "nvim/event/libuv_process.h"
#include "nvim/event/rstream.h"
@@ -28,7 +29,9 @@
#include "nvim/map.h"
#include "nvim/log.h"
#include "nvim/misc1.h"
+#include "nvim/path.h"
#include "nvim/lib/kvec.h"
+#include "nvim/os/input.h"
#define CHANNEL_BUFFER_SIZE 0xffff
@@ -40,7 +43,8 @@
typedef enum {
kChannelTypeSocket,
kChannelTypeProc,
- kChannelTypeStdio
+ kChannelTypeStdio,
+ kChannelTypeInternal
} ChannelType;
typedef struct {
@@ -89,6 +93,7 @@ static msgpack_sbuffer out_buffer;
/// Initializes the module
void channel_init(void)
{
+ ch_before_blocking_events = multiqueue_new_child(main_loop.events);
channels = pmap_new(uint64_t)();
event_strings = pmap_new(cstr_t)();
msgpack_sbuffer_init(&out_buffer);
@@ -123,7 +128,7 @@ uint64_t channel_from_process(Process *proc, uint64_t id)
wstream_init(proc->in, 0);
rstream_init(proc->out, 0);
- rstream_start(proc->out, parse_msgpack, channel);
+ rstream_start(proc->out, receive_msgpack, channel);
return channel->id;
}
@@ -140,7 +145,36 @@ void channel_from_connection(SocketWatcher *watcher)
channel->data.stream.internal_data = channel;
wstream_init(&channel->data.stream, 0);
rstream_init(&channel->data.stream, CHANNEL_BUFFER_SIZE);
- rstream_start(&channel->data.stream, parse_msgpack, channel);
+ rstream_start(&channel->data.stream, receive_msgpack, channel);
+}
+
+uint64_t channel_connect(bool tcp, const char *address,
+ int timeout, const char **error)
+{
+ if (!tcp) {
+ char *path = fix_fname(address);
+ if (server_owns_pipe_address(path)) {
+ // avoid deadlock
+ xfree(path);
+ return channel_create_internal();
+ }
+ xfree(path);
+ }
+
+ Channel *channel = register_channel(kChannelTypeSocket, 0, NULL);
+ if (!socket_connect(&main_loop, &channel->data.stream,
+ tcp, address, timeout, error)) {
+ decref(channel);
+ return 0;
+ }
+
+ incref(channel); // close channel only after the stream is closed
+ channel->data.stream.internal_close_cb = close_cb;
+ channel->data.stream.internal_data = channel;
+ wstream_init(&channel->data.stream, 0);
+ rstream_init(&channel->data.stream, CHANNEL_BUFFER_SIZE);
+ rstream_start(&channel->data.stream, receive_msgpack, channel);
+ return channel->id;
}
/// Sends event/arguments to channel
@@ -303,11 +337,20 @@ void channel_from_stdio(void)
incref(channel); // stdio channels are only closed on exit
// read stream
rstream_init_fd(&main_loop, &channel->data.std.in, 0, CHANNEL_BUFFER_SIZE);
- rstream_start(&channel->data.std.in, parse_msgpack, channel);
+ rstream_start(&channel->data.std.in, receive_msgpack, channel);
// write stream
wstream_init_fd(&main_loop, &channel->data.std.out, 1, 0);
}
+/// Creates a loopback channel. This is used to avoid deadlock
+/// when an instance connects to its own named pipe.
+uint64_t channel_create_internal(void)
+{
+ Channel *channel = register_channel(kChannelTypeInternal, 0, NULL);
+ incref(channel); // internal channel lives until process exit
+ return channel->id;
+}
+
void channel_process_exit(uint64_t id, int status)
{
Channel *channel = pmap_get(uint64_t)(channels, id);
@@ -316,8 +359,8 @@ void channel_process_exit(uint64_t id, int status)
decref(channel);
}
-static void parse_msgpack(Stream *stream, RBuffer *rbuf, size_t c, void *data,
- bool eof)
+static void receive_msgpack(Stream *stream, RBuffer *rbuf, size_t c,
+ void *data, bool eof)
{
Channel *channel = data;
incref(channel);
@@ -327,7 +370,7 @@ static void parse_msgpack(Stream *stream, RBuffer *rbuf, size_t c, void *data,
char buf[256];
snprintf(buf, sizeof(buf), "ch %" PRIu64 " was closed by the client",
channel->id);
- call_set_error(channel, buf);
+ call_set_error(channel, buf, WARNING_LOG_LEVEL);
goto end;
}
@@ -339,6 +382,14 @@ static void parse_msgpack(Stream *stream, RBuffer *rbuf, size_t c, void *data,
rbuffer_read(rbuf, msgpack_unpacker_buffer(channel->unpacker), count);
msgpack_unpacker_buffer_consumed(channel->unpacker, count);
+ parse_msgpack(channel);
+
+end:
+ decref(channel);
+}
+
+static void parse_msgpack(Channel *channel)
+{
msgpack_unpacked unpacked;
msgpack_unpacked_init(&unpacked);
msgpack_unpack_return result;
@@ -358,11 +409,11 @@ static void parse_msgpack(Stream *stream, RBuffer *rbuf, size_t c, void *data,
"ch %" PRIu64 " returned a response with an unknown request "
"id. Ensure the client is properly synchronized",
channel->id);
- call_set_error(channel, buf);
+ call_set_error(channel, buf, ERROR_LOG_LEVEL);
}
msgpack_unpacked_destroy(&unpacked);
// Bail out from this event loop iteration
- goto end;
+ return;
}
handle_request(channel, &unpacked.data);
@@ -386,11 +437,9 @@ static void parse_msgpack(Stream *stream, RBuffer *rbuf, size_t c, void *data,
"This error can also happen when deserializing "
"an object with high level of nesting");
}
-
-end:
- decref(channel);
}
+
static void handle_request(Channel *channel, msgpack_object *request)
FUNC_ATTR_NONNULL_ALL
{
@@ -410,7 +459,7 @@ static void handle_request(Channel *channel, msgpack_object *request)
snprintf(buf, sizeof(buf),
"ch %" PRIu64 " sent an invalid message, closed.",
channel->id);
- call_set_error(channel, buf);
+ call_set_error(channel, buf, ERROR_LOG_LEVEL);
}
api_clear_error(&error);
return;
@@ -433,16 +482,24 @@ static void handle_request(Channel *channel, msgpack_object *request)
handler.async = true;
}
- RequestEvent *event_data = xmalloc(sizeof(RequestEvent));
- event_data->channel = channel;
- event_data->handler = handler;
- event_data->args = args;
- event_data->request_id = request_id;
+ RequestEvent *evdata = xmalloc(sizeof(RequestEvent));
+ evdata->channel = channel;
+ evdata->handler = handler;
+ evdata->args = args;
+ evdata->request_id = request_id;
incref(channel);
if (handler.async) {
- on_request_event((void **)&event_data);
+ bool is_get_mode = handler.fn == handle_nvim_get_mode;
+
+ if (is_get_mode && !input_blocking()) {
+ // Defer the event to a special queue used by os/input.c. #6247
+ multiqueue_put(ch_before_blocking_events, on_request_event, 1, evdata);
+ } else {
+ // Invoke immediately.
+ on_request_event((void **)&evdata);
+ }
} else {
- multiqueue_put(channel->events, on_request_event, 1, event_data);
+ multiqueue_put(channel->events, on_request_event, 1, evdata);
}
}
@@ -475,7 +532,7 @@ static void on_request_event(void **argv)
static bool channel_write(Channel *channel, WBuffer *buffer)
{
- bool success;
+ bool success = false;
if (channel->closed) {
wstream_release_wbuffer(buffer);
@@ -492,8 +549,11 @@ static bool channel_write(Channel *channel, WBuffer *buffer)
case kChannelTypeStdio:
success = wstream_write(&channel->data.std.out, buffer);
break;
- default:
- abort();
+ case kChannelTypeInternal:
+ incref(channel);
+ CREATE_EVENT(channel->events, internal_read_event, 2, channel, buffer);
+ success = true;
+ break;
}
if (!success) {
@@ -504,12 +564,28 @@ static bool channel_write(Channel *channel, WBuffer *buffer)
"Before returning from a RPC call, ch %" PRIu64 " was "
"closed due to a failed write",
channel->id);
- call_set_error(channel, buf);
+ call_set_error(channel, buf, ERROR_LOG_LEVEL);
}
return success;
}
+static void internal_read_event(void **argv)
+{
+ Channel *channel = argv[0];
+ WBuffer *buffer = argv[1];
+
+ msgpack_unpacker_reserve_buffer(channel->unpacker, buffer->size);
+ memcpy(msgpack_unpacker_buffer(channel->unpacker),
+ buffer->data, buffer->size);
+ msgpack_unpacker_buffer_consumed(channel->unpacker, buffer->size);
+
+ parse_msgpack(channel);
+
+ decref(channel);
+ wstream_release_wbuffer(buffer);
+}
+
static void send_error(Channel *channel, uint64_t id, char *err)
{
Error e = ERROR_INIT;
@@ -626,8 +702,9 @@ static void close_channel(Channel *channel)
stream_close(&channel->data.std.out, NULL, NULL);
multiqueue_put(main_loop.fast_events, exit_event, 1, channel);
return;
- default:
- abort();
+ case kChannelTypeInternal:
+ // nothing to free.
+ break;
}
decref(channel);
@@ -718,9 +795,9 @@ static void complete_call(msgpack_object *obj, Channel *channel)
}
}
-static void call_set_error(Channel *channel, char *msg)
+static void call_set_error(Channel *channel, char *msg, int loglevel)
{
- ELOG("RPC: %s", msg);
+ LOG(loglevel, "RPC: %s", msg);
for (size_t i = 0; i < kv_size(channel->call_stack); i++) {
ChannelCallFrame *frame = kv_A(channel->call_stack, i);
frame->returned = true;
diff --git a/src/nvim/msgpack_rpc/channel.h b/src/nvim/msgpack_rpc/channel.h
index 0d92976d02..f8fe6f129b 100644
--- a/src/nvim/msgpack_rpc/channel.h
+++ b/src/nvim/msgpack_rpc/channel.h
@@ -11,6 +11,11 @@
#define METHOD_MAXLEN 512
+/// HACK: os/input.c drains this queue immediately before blocking for input.
+/// Events on this queue are async-safe, but they need the resolved state
+/// of os_inchar(), so they are processed "just-in-time".
+MultiQueue *ch_before_blocking_events;
+
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "msgpack_rpc/channel.h.generated.h"
#endif
diff --git a/src/nvim/msgpack_rpc/helpers.c b/src/nvim/msgpack_rpc/helpers.c
index 0228582d37..444c6cc256 100644
--- a/src/nvim/msgpack_rpc/helpers.c
+++ b/src/nvim/msgpack_rpc/helpers.c
@@ -24,12 +24,12 @@ static msgpack_zone zone;
static msgpack_sbuffer sbuffer;
#define HANDLE_TYPE_CONVERSION_IMPL(t, lt) \
- bool msgpack_rpc_to_##lt(const msgpack_object *const obj, \
- Integer *const arg) \
- FUNC_ATTR_NONNULL_ALL \
+ static bool msgpack_rpc_to_##lt(const msgpack_object *const obj, \
+ Integer *const arg) \
+ FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT \
{ \
if (obj->type != MSGPACK_OBJECT_EXT \
- || obj->via.ext.type != kObjectType##t) { \
+ || obj->via.ext.type + EXT_OBJECT_TYPE_SHIFT != kObjectType##t) { \
return false; \
} \
\
@@ -48,13 +48,14 @@ static msgpack_sbuffer sbuffer;
return true; \
} \
\
- void msgpack_rpc_from_##lt(Integer o, msgpack_packer *res) \
+ static void msgpack_rpc_from_##lt(Integer o, msgpack_packer *res) \
FUNC_ATTR_NONNULL_ARG(2) \
{ \
msgpack_packer pac; \
msgpack_packer_init(&pac, &sbuffer, msgpack_sbuffer_write); \
msgpack_pack_int64(&pac, (handle_T)o); \
- msgpack_pack_ext(res, sbuffer.size, kObjectType##t); \
+ msgpack_pack_ext(res, sbuffer.size, \
+ kObjectType##t - EXT_OBJECT_TYPE_SHIFT); \
msgpack_pack_ext_body(res, sbuffer.data, sbuffer.size); \
msgpack_sbuffer_clear(&sbuffer); \
}
@@ -76,7 +77,7 @@ typedef struct {
size_t idx;
} MPToAPIObjectStackItem;
-/// Convert type used by msgpack parser to Neovim own API type
+/// Convert type used by msgpack parser to Nvim API type.
///
/// @param[in] obj Msgpack value to convert.
/// @param[out] arg Location where result of conversion will be saved.
@@ -126,7 +127,7 @@ bool msgpack_rpc_to_object(const msgpack_object *const obj, Object *const arg)
{
STATIC_ASSERT(sizeof(Float) == sizeof(cur.mobj->via.f64),
"Msgpack floating-point size does not match API integer");
- *cur.aobj = FLOATING_OBJ(cur.mobj->via.f64);
+ *cur.aobj = FLOAT_OBJ(cur.mobj->via.f64);
break;
}
#define STR_CASE(type, attr, obj, dest, conv) \
@@ -225,7 +226,7 @@ bool msgpack_rpc_to_object(const msgpack_object *const obj, Object *const arg)
break;
}
case MSGPACK_OBJECT_EXT: {
- switch (cur.mobj->via.ext.type) {
+ switch ((ObjectType)(cur.mobj->via.ext.type + EXT_OBJECT_TYPE_SHIFT)) {
case kObjectTypeBuffer: {
cur.aobj->type = kObjectTypeBuffer;
ret = msgpack_rpc_to_buffer(cur.mobj, &cur.aobj->data.integer);
@@ -241,6 +242,15 @@ bool msgpack_rpc_to_object(const msgpack_object *const obj, Object *const arg)
ret = msgpack_rpc_to_tabpage(cur.mobj, &cur.aobj->data.integer);
break;
}
+ case kObjectTypeNil:
+ case kObjectTypeBoolean:
+ case kObjectTypeInteger:
+ case kObjectTypeFloat:
+ case kObjectTypeString:
+ case kObjectTypeArray:
+ case kObjectTypeDictionary: {
+ break;
+ }
}
break;
}
@@ -364,6 +374,9 @@ void msgpack_rpc_from_object(const Object result, msgpack_packer *const res)
kv_push(stack, ((APIToMPObjectStackItem) { &result, false, 0 }));
while (kv_size(stack)) {
APIToMPObjectStackItem cur = kv_last(stack);
+ STATIC_ASSERT(kObjectTypeWindow == kObjectTypeBuffer + 1
+ && kObjectTypeTabpage == kObjectTypeWindow + 1,
+ "Buffer, window and tabpage enum items are in order");
switch (cur.aobj->type) {
case kObjectTypeNil: {
msgpack_pack_nil(res);
diff --git a/src/nvim/msgpack_rpc/helpers.h b/src/nvim/msgpack_rpc/helpers.h
index 7d9f114140..0e4cd1be6d 100644
--- a/src/nvim/msgpack_rpc/helpers.h
+++ b/src/nvim/msgpack_rpc/helpers.h
@@ -9,6 +9,13 @@
#include "nvim/event/wstream.h"
#include "nvim/api/private/defs.h"
+/// Value by which objects represented as EXT type are shifted
+///
+/// Subtracted when packing, added when unpacking. Used to allow moving
+/// buffer/window/tabpage block inside ObjectType enum. This block yet cannot be
+/// split or reordered.
+#define EXT_OBJECT_TYPE_SHIFT kObjectTypeBuffer
+
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "msgpack_rpc/helpers.h.generated.h"
#endif
diff --git a/src/nvim/msgpack_rpc/server.c b/src/nvim/msgpack_rpc/server.c
index b6958088ca..1e0cc27886 100644
--- a/src/nvim/msgpack_rpc/server.c
+++ b/src/nvim/msgpack_rpc/server.c
@@ -97,39 +97,61 @@ char *server_address_new(void)
#endif
}
-/// Starts listening for API calls on the TCP address or pipe path `endpoint`.
+/// Check if this instance owns a pipe address.
+/// The argument must already be resolved to an absolute path!
+bool server_owns_pipe_address(const char *path)
+{
+ for (int i = 0; i < watchers.ga_len; i++) {
+ if (!strcmp(path, ((SocketWatcher **)watchers.ga_data)[i]->addr)) {
+ return true;
+ }
+ }
+ return false;
+}
+
+/// Starts listening for API calls.
+///
/// The socket type is determined by parsing `endpoint`: If it's a valid IPv4
-/// address in 'ip[:port]' format, then it will be TCP socket. The port is
-/// optional and if omitted defaults to NVIM_DEFAULT_TCP_PORT. Otherwise it
-/// will be a unix socket or named pipe.
+/// or IPv6 address in 'ip:[port]' format, then it will be a TCP socket.
+/// Otherwise it will be a Unix socket or named pipe (Windows).
+///
+/// If no port is given, a random one will be assigned.
///
-/// @param endpoint Address of the server. Either a 'ip[:port]' string or an
-/// arbitrary identifier (trimmed to 256 bytes) for the unix socket or
-/// named pipe.
+/// @param endpoint Address of the server. Either a 'ip:[port]' string or an
+/// arbitrary identifier (trimmed to 256 bytes) for the Unix
+/// socket or named pipe.
/// @returns 0 on success, 1 on a regular error, and negative errno
-/// on failure to bind or connect.
+/// on failure to bind or listen.
int server_start(const char *endpoint)
{
- if (endpoint == NULL) {
- ELOG("Attempting to start server on NULL endpoint");
+ if (endpoint == NULL || endpoint[0] == '\0') {
+ WLOG("Empty or NULL endpoint");
return 1;
}
SocketWatcher *watcher = xmalloc(sizeof(SocketWatcher));
- socket_watcher_init(&main_loop, watcher, endpoint, NULL);
+
+ int result = socket_watcher_init(&main_loop, watcher, endpoint);
+ if (result < 0) {
+ xfree(watcher);
+ return result;
+ }
// Check if a watcher for the endpoint already exists
for (int i = 0; i < watchers.ga_len; i++) {
if (!strcmp(watcher->addr, ((SocketWatcher **)watchers.ga_data)[i]->addr)) {
ELOG("Already listening on %s", watcher->addr);
+ if (watcher->stream->type == UV_TCP) {
+ uv_freeaddrinfo(watcher->uv.tcp.addrinfo);
+ }
socket_watcher_close(watcher, free_server);
return 1;
}
}
- int result = socket_watcher_start(watcher, MAX_CONNECTIONS, connection_cb);
+ result = socket_watcher_start(watcher, MAX_CONNECTIONS, connection_cb);
if (result < 0) {
- ELOG("Failed to start server: %s", uv_strerror(result));
+ WLOG("Failed to start server: %s", uv_strerror(result));
socket_watcher_close(watcher, free_server);
return result;
}
diff --git a/src/nvim/msgpack_rpc/server.h b/src/nvim/msgpack_rpc/server.h
index f1a6703938..5446e40e0b 100644
--- a/src/nvim/msgpack_rpc/server.h
+++ b/src/nvim/msgpack_rpc/server.h
@@ -1,6 +1,8 @@
#ifndef NVIM_MSGPACK_RPC_SERVER_H
#define NVIM_MSGPACK_RPC_SERVER_H
+#include <stdio.h>
+
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "msgpack_rpc/server.h.generated.h"
#endif
diff --git a/src/nvim/normal.c b/src/nvim/normal.c
index 51da9429b6..39cd2c6631 100644
--- a/src/nvim/normal.c
+++ b/src/nvim/normal.c
@@ -541,7 +541,7 @@ static bool normal_handle_special_visual_command(NormalState *s)
return false;
}
-static bool normal_need_aditional_char(NormalState *s)
+static bool normal_need_additional_char(NormalState *s)
{
int flags = nv_cmds[s->idx].cmd_flags;
bool pending_op = s->oa.op_type != OP_NOP;
@@ -1083,7 +1083,7 @@ static int normal_execute(VimState *state, int key)
}
// Get an additional character if we need one.
- if (normal_need_aditional_char(s)) {
+ if (normal_need_additional_char(s)) {
normal_get_additional_char(s);
}
@@ -1861,6 +1861,7 @@ void do_pending_operator(cmdarg_T *cap, int old_col, bool gui_yank)
} else {
bangredo = true; // do_bang() will put cmd in redo buffer.
}
+ // fallthrough
case OP_INDENT:
case OP_COLON:
@@ -5230,6 +5231,7 @@ static void nv_dollar(cmdarg_T *cap)
static void nv_search(cmdarg_T *cap)
{
oparg_T *oap = cap->oap;
+ pos_T save_cursor = curwin->w_cursor;
if (cap->cmdchar == '?' && cap->oap->op_type == OP_ROT13) {
/* Translate "g??" to "g?g?" */
@@ -5239,6 +5241,8 @@ static void nv_search(cmdarg_T *cap)
return;
}
+ // When using 'incsearch' the cursor may be moved to set a different search
+ // start position.
cap->searchbuf = getcmdline(cap->cmdchar, cap->count1, 0);
if (cap->searchbuf == NULL) {
@@ -5247,7 +5251,8 @@ static void nv_search(cmdarg_T *cap)
}
(void)normal_search(cap, cap->cmdchar, cap->searchbuf,
- (cap->arg ? 0 : SEARCH_MARK));
+ (cap->arg || !equalpos(save_cursor, curwin->w_cursor))
+ ? 0 : SEARCH_MARK);
}
/*
diff --git a/src/nvim/ops.c b/src/nvim/ops.c
index c77781b1d1..5c6f4d0d07 100644
--- a/src/nvim/ops.c
+++ b/src/nvim/ops.c
@@ -938,13 +938,11 @@ static int stuff_yank(int regname, char_u *p)
static int execreg_lastc = NUL;
-/*
- * execute a yank register: copy it into the stuff buffer
- *
- * return FAIL for failure, OK otherwise
- */
-int
-do_execreg (
+/// Execute a yank register: copy it into the stuff buffer
+///
+/// Return FAIL for failure, OK otherwise
+int
+do_execreg(
int regname,
int colon, /* insert ':' before each line */
int addcr, /* always add '\n' to end of line */
@@ -1410,6 +1408,9 @@ int op_delete(oparg_T *oap)
}
if (oap->regname == 0) {
+ if (reg == NULL) {
+ abort();
+ }
set_clipboard(0, reg);
do_autocmd_textyankpost(oap, reg);
}
@@ -3181,7 +3182,7 @@ error:
if (curbuf->b_op_start.lnum + (y_type == kMTCharWise) - 1 + nr_lines
< curbuf->b_ml.ml_line_count) {
mark_adjust(curbuf->b_op_start.lnum + (y_type == kMTCharWise),
- (linenr_T)MAXLNUM, nr_lines, 0L);
+ (linenr_T)MAXLNUM, nr_lines, 0L, false);
}
// note changed text for displaying and folding
@@ -4439,8 +4440,8 @@ int do_addsub(int op_type, pos_T *pos, int length, linenr_T Prenum1)
char_u buf2[NUMBUFLEN];
int pre; // 'X' or 'x': hex; '0': octal; 'B' or 'b': bin
static bool hexupper = false; // 0xABC
- unsigned long n;
- unsigned long oldn;
+ uvarnumber_T n;
+ uvarnumber_T oldn;
char_u *ptr;
int c;
int todel;
@@ -4635,20 +4636,20 @@ int do_addsub(int op_type, pos_T *pos, int length, linenr_T Prenum1)
oldn = n;
- n = subtract ? n - (unsigned long) Prenum1
- : n + (unsigned long) Prenum1;
+ n = subtract ? n - (uvarnumber_T)Prenum1
+ : n + (uvarnumber_T)Prenum1;
// handle wraparound for decimal numbers
if (!pre) {
if (subtract) {
if (n > oldn) {
- n = 1 + (n ^ (unsigned long)-1);
+ n = 1 + (n ^ (uvarnumber_T)-1);
negative ^= true;
}
} else {
// add
if (n < oldn) {
- n = (n ^ (unsigned long)-1);
+ n = (n ^ (uvarnumber_T)-1);
negative ^= true;
}
}
@@ -5238,11 +5239,13 @@ void clear_oparg(oparg_T *oap)
* case, eol_size will be added to the character count to account for
* the size of the EOL character.
*/
-static long line_count_info(char_u *line, long *wc, long *cc, long limit, int eol_size)
+static varnumber_T line_count_info(char_u *line, varnumber_T *wc,
+ varnumber_T *cc, varnumber_T limit,
+ int eol_size)
{
- long i;
- long words = 0;
- long chars = 0;
+ varnumber_T i;
+ varnumber_T words = 0;
+ varnumber_T chars = 0;
int is_word = 0;
for (i = 0; i < limit && line[i] != NUL; ) {
@@ -5280,15 +5283,15 @@ void cursor_pos_info(dict_T *dict)
char_u buf1[50];
char_u buf2[40];
linenr_T lnum;
- long byte_count = 0;
- long bom_count = 0;
- long byte_count_cursor = 0;
- long char_count = 0;
- long char_count_cursor = 0;
- long word_count = 0;
- long word_count_cursor = 0;
+ varnumber_T byte_count = 0;
+ varnumber_T bom_count = 0;
+ varnumber_T byte_count_cursor = 0;
+ varnumber_T char_count = 0;
+ varnumber_T char_count_cursor = 0;
+ varnumber_T word_count = 0;
+ varnumber_T word_count_cursor = 0;
int eol_size;
- long last_check = 100000L;
+ varnumber_T last_check = 100000L;
long line_count_selected = 0;
pos_T min_pos, max_pos;
oparg_T oparg;
@@ -5395,15 +5398,16 @@ void cursor_pos_info(dict_T *dict)
if (lnum == curwin->w_cursor.lnum) {
word_count_cursor += word_count;
char_count_cursor += char_count;
- byte_count_cursor = byte_count +
- line_count_info(ml_get(lnum),
- &word_count_cursor, &char_count_cursor,
- (long)(curwin->w_cursor.col + 1), eol_size);
+ byte_count_cursor = byte_count
+ + line_count_info(ml_get(lnum), &word_count_cursor,
+ &char_count_cursor,
+ (varnumber_T)(curwin->w_cursor.col + 1),
+ eol_size);
}
}
- /* Add to the running totals */
- byte_count += line_count_info(ml_get(lnum), &word_count,
- &char_count, (long)MAXCOL, eol_size);
+ // Add to the running totals
+ byte_count += line_count_info(ml_get(lnum), &word_count, &char_count,
+ (varnumber_T)MAXCOL, eol_size);
}
// Correction for when last line doesn't have an EOL.
@@ -5780,7 +5784,7 @@ static inline bool reg_empty(const yankreg_T *const reg)
/// @return Pointer that needs to be passed to next `op_register_iter` call or
/// NULL if iteration is over.
const void *op_register_iter(const void *const iter, char *const name,
- yankreg_T *const reg)
+ yankreg_T *const reg, bool *is_unnamed)
FUNC_ATTR_NONNULL_ARG(2, 3) FUNC_ATTR_WARN_UNUSED_RESULT
{
*name = NUL;
@@ -5796,6 +5800,7 @@ const void *op_register_iter(const void *const iter, char *const name,
int iter_off = (int)(iter_reg - &(y_regs[0]));
*name = (char)get_register_name(iter_off);
*reg = *iter_reg;
+ *is_unnamed = (iter_reg == y_previous);
while (++iter_reg - &(y_regs[0]) < NUM_SAVED_REGISTERS) {
if (!reg_empty(iter_reg)) {
return (void *) iter_reg;
@@ -5820,10 +5825,11 @@ size_t op_register_amount(void)
/// Set register to a given value
///
/// @param[in] name Register name.
-/// @param[in] reg Register value.
+/// @param[in] reg Register value.
+/// @param[in] is_unnamed Whether to set the unnamed regiseter to reg
///
/// @return true on success, false on failure.
-bool op_register_set(const char name, const yankreg_T reg)
+bool op_register_set(const char name, const yankreg_T reg, bool is_unnamed)
{
int i = op_reg_index(name);
if (i == -1) {
@@ -5831,6 +5837,10 @@ bool op_register_set(const char name, const yankreg_T reg)
}
free_register(&y_regs[i]);
y_regs[i] = reg;
+
+ if (is_unnamed) {
+ y_previous = &y_regs[i];
+ }
return true;
}
@@ -5847,3 +5857,20 @@ const yankreg_T *op_register_get(const char name)
}
return &y_regs[i];
}
+
+/// Set the previous yank register
+///
+/// @param[in] name Register name.
+///
+/// @return true on success, false on failure.
+bool op_register_set_previous(const char name)
+ FUNC_ATTR_WARN_UNUSED_RESULT
+{
+ int i = op_reg_index(name);
+ if (i == -1) {
+ return false;
+ }
+
+ y_previous = &y_regs[i];
+ return true;
+}
diff --git a/src/nvim/option.c b/src/nvim/option.c
index 74392ccfb5..a4be2abf9a 100644
--- a/src/nvim/option.c
+++ b/src/nvim/option.c
@@ -8,6 +8,9 @@
// - Add a BV_XX or WV_XX entry to option_defs.h
// - Add a variable to the window or buffer struct in buffer_defs.h.
// - For a window option, add some code to copy_winopt().
+// - For a window string option, add code to check_winopt()
+// and clear_winopt(). If setting the option needs parsing,
+// add some code to didset_window_options().
// - For a buffer option, add some code to buf_copy_options().
// - For a buffer string option, add code to check_buf_options().
// - If it's a numeric option, add any necessary bounds checks to
@@ -245,12 +248,12 @@ typedef struct vimoption {
"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," \
+ "v:Visual,V:VisualNOS,w:WarningMsg,W:WildMenu,f:Folded,F:FoldColumn," \
"A:DiffAdd,C:DiffChange,D:DiffDelete,T:DiffText,>:SignColumn,-:Conceal," \
"B:SpellBad,P:SpellCap,R:SpellRare,L:SpellLocal,+:Pmenu,=:PmenuSel," \
"x:PmenuSbar,X:PmenuThumb,*:TabLine,#:TabLineSel,_:TabLineFill," \
"!:CursorColumn,.:CursorLine,o:ColorColumn,q:QuickFixLine," \
- "0:Whitespace"
+ "0:Whitespace,I:NormalNC"
/*
* options[] is initialized here.
@@ -339,7 +342,7 @@ static inline size_t compute_double_colon_len(const char *const val,
do {
size_t dir_len;
const char *dir;
- iter = vim_colon_env_iter(val, iter, &dir, &dir_len);
+ iter = vim_env_iter(':', val, iter, &dir, &dir_len);
if (dir != NULL && dir_len > 0) {
ret += ((dir_len + memcnt(dir, ',', dir_len) + common_suf_len
+ !after_pathsep(dir, dir + dir_len)) * 2
@@ -383,8 +386,8 @@ static inline char *add_colon_dirs(char *dest, const char *const val,
do {
size_t dir_len;
const char *dir;
- iter = (forward ? vim_colon_env_iter : vim_colon_env_iter_rev)(
- val, iter, &dir, &dir_len);
+ iter = (forward ? vim_env_iter : vim_env_iter_rev)(':', val, iter, &dir,
+ &dir_len);
if (dir != NULL && dir_len > 0) {
dest = strcpy_comma_escaped(dest, dir, dir_len);
if (!after_pathsep(dest - 1, dest)) {
@@ -1142,7 +1145,7 @@ do_set (
int afterchar; /* character just after option name */
int len;
int i;
- long value;
+ varnumber_T value;
int key;
uint32_t flags; /* flags for current option */
char_u *varp = NULL; /* pointer to variable for current option */
@@ -1412,7 +1415,8 @@ do_set (
errmsg = (char_u *)set_bool_option(opt_idx, varp, (int)value,
opt_flags);
} else { // Numeric or string.
- if (strchr("=:&<", nextchar) == NULL || prefix != 1) {
+ if (vim_strchr((const char_u *)"=:&<", nextchar) == NULL
+ || prefix != 1) {
errmsg = e_invarg;
goto skip;
}
@@ -1473,7 +1477,7 @@ do_set (
if (removing) {
value = *(long *)varp - value;
}
- errmsg = (char_u *)set_num_option(opt_idx, varp, value,
+ errmsg = (char_u *)set_num_option(opt_idx, varp, (long)value,
errbuf, sizeof(errbuf),
opt_flags);
} else if (opt_idx >= 0) { // String.
@@ -1948,15 +1952,7 @@ did_set_title (
{
if (starting != NO_SCREEN) {
maketitle();
- if (icon) {
- if (!p_icon) {
- ui_set_icon(NULL);
- }
- } else {
- if (!p_title) {
- ui_set_title(NULL);
- }
- }
+ resettitle();
}
}
@@ -2128,7 +2124,7 @@ static void didset_options(void)
static void didset_options2(void)
{
// Initialize the highlight_attr[] table.
- (void)highlight_changed();
+ highlight_changed();
// Parse default for 'clipboard'.
(void)opt_strings_flags(p_cb, p_cb_values, &cb_flags, true);
@@ -2542,11 +2538,11 @@ did_set_string_option (
if (s[2] == NUL)
break;
}
- }
- /* 'highlight' */
- else if (varp == &p_hl) {
- if (highlight_changed() == FAIL)
- errmsg = e_invarg; /* invalid flags */
+ } else if (varp == &p_hl) {
+ // 'highlight'
+ if (strcmp((char *)(*varp), HIGHLIGHT_INIT) != 0) {
+ errmsg = e_unsupportedoption;
+ }
}
/* 'nrformats' */
else if (gvarp == &p_nf) {
@@ -2643,7 +2639,7 @@ did_set_string_option (
if (varp == &p_enc) {
// only encoding=utf-8 allowed
if (STRCMP(p_enc, "utf-8") != 0) {
- errmsg = e_invarg;
+ errmsg = e_unsupportedoption;
}
}
}
@@ -3170,6 +3166,10 @@ did_set_string_option (
if (!valid_filetype(*varp)) {
errmsg = e_invarg;
}
+ } else if (varp == &curwin->w_p_winhl) {
+ if (!parse_winhl_opt(curwin)) {
+ errmsg = e_invarg;
+ }
} else {
// Options that are a list of flags.
p = NULL;
@@ -3207,8 +3207,6 @@ did_set_string_option (
*/
if (did_chartab)
(void)init_chartab();
- if (varp == &p_hl)
- (void)highlight_changed();
} else {
/* Remember where the option was set. */
set_option_scriptID_idx(opt_idx, opt_flags, current_SID);
@@ -3274,7 +3272,7 @@ did_set_string_option (
if (varp == &p_mouse) {
if (*p_mouse == NUL) {
- ui_mouse_off();
+ ui_call_mouse_off();
} else {
setmouse(); // in case 'mouse' changed
}
@@ -3578,6 +3576,47 @@ static char_u *compile_cap_prog(synblock_T *synblock)
return NULL;
}
+/// Handle setting `winhighlight' in window "wp"
+static bool parse_winhl_opt(win_T *wp)
+{
+ int w_hl_id_normal = 0;
+ int w_hl_ids[HLF_COUNT] = { 0 };
+ int hlf;
+
+ const char *p = (const char *)wp->w_p_winhl;
+ while (*p) {
+ char *colon = strchr(p, ':');
+ if (!colon) {
+ return false;
+ }
+ size_t nlen = (size_t)(colon-p);
+ char *hi = colon+1;
+ char *commap = xstrchrnul(hi, ',');
+ int hl_id = syn_check_group((char_u *)hi, (int)(commap-hi));
+
+ if (strncmp("Normal", p, nlen) == 0) {
+ w_hl_id_normal = hl_id;
+ } else {
+ for (hlf = 0; hlf < (int)HLF_COUNT; hlf++) {
+ if (strncmp(hlf_names[hlf], p, nlen) == 0) {
+ w_hl_ids[hlf] = hl_id;
+ break;
+ }
+ }
+ if (hlf == HLF_COUNT) {
+ return false;
+ }
+ }
+
+ p = *commap ? commap+1 : "";
+ }
+
+ wp->w_hl_id_normal = w_hl_id_normal;
+ memcpy(wp->w_hl_ids, w_hl_ids, sizeof(w_hl_ids));
+ wp->w_hl_needs_update = true;
+ return true;
+}
+
/*
* Set the scriptID for an option, taking care of setting the buffer- or
* window-local value.
@@ -4574,7 +4613,7 @@ get_option_value (
if ((int *)varp == &curbuf->b_changed) {
*numval = curbufIsChanged();
} else {
- *numval = *(int *)varp;
+ *numval = (long) *(int *)varp; // NOLINT(whitespace/cast)
}
}
return 1;
@@ -4769,17 +4808,6 @@ char *set_option_value(const char *const name, const long number,
return NULL;
}
-char_u *get_highlight_default(void)
-{
- int i;
-
- i = findoption("hl");
- if (i >= 0) {
- return options[i].def_val[VI_DEFAULT];
- }
- return (char_u *)NULL;
-}
-
/*
* Translate a string like "t_xx", "<t_xx>" or "<S-Tab>" to a key number.
*/
@@ -5461,6 +5489,7 @@ static char_u *get_varp(vimoption_T *p)
case PV_WM: return (char_u *)&(curbuf->b_p_wm);
case PV_KMAP: return (char_u *)&(curbuf->b_p_keymap);
case PV_SCL: return (char_u *)&(curwin->w_p_scl);
+ case PV_WINHL: return (char_u *)&(curwin->w_p_winhl);
default: EMSG(_("E356: get_varp ERROR"));
}
/* always return a valid pointer to avoid a crash! */
@@ -5487,7 +5516,6 @@ void win_copy_options(win_T *wp_from, win_T *wp_to)
copy_winopt(&wp_from->w_allbuf_opt, &wp_to->w_allbuf_opt);
/* Is this right? */
wp_to->w_farsi = wp_from->w_farsi;
- briopt_check(wp_to);
}
/*
@@ -5539,6 +5567,7 @@ void copy_winopt(winopt_T *from, winopt_T *to)
to->wo_fdt = vim_strsave(from->wo_fdt);
to->wo_fmr = vim_strsave(from->wo_fmr);
to->wo_scl = vim_strsave(from->wo_scl);
+ to->wo_winhl = vim_strsave(from->wo_winhl);
check_winopt(to); // don't want NULL pointers
}
@@ -5568,6 +5597,7 @@ static void check_winopt(winopt_T *wop)
check_string_option(&wop->wo_cc);
check_string_option(&wop->wo_cocu);
check_string_option(&wop->wo_briopt);
+ check_string_option(&wop->wo_winhl);
}
/*
@@ -5587,8 +5617,17 @@ void clear_winopt(winopt_T *wop)
clear_string_option(&wop->wo_cc);
clear_string_option(&wop->wo_cocu);
clear_string_option(&wop->wo_briopt);
+ clear_string_option(&wop->wo_winhl);
}
+void didset_window_options(win_T *wp)
+{
+ check_colorcolumn(wp);
+ briopt_check(wp);
+ parse_winhl_opt(wp);
+}
+
+
/*
* Copy global option values to local options for one buffer.
* Used when creating a new buffer and sometimes when entering a buffer.
diff --git a/src/nvim/option_defs.h b/src/nvim/option_defs.h
index 4ee0f4f225..e68dba734e 100644
--- a/src/nvim/option_defs.h
+++ b/src/nvim/option_defs.h
@@ -807,6 +807,7 @@ enum {
, WV_WFW
, WV_WRAP
, WV_SCL
+ , WV_WINHL
, WV_COUNT // must be the last one
};
diff --git a/src/nvim/options.lua b/src/nvim/options.lua
index 4e7be63b63..c2778a6329 100644
--- a/src/nvim/options.lua
+++ b/src/nvim/options.lua
@@ -34,6 +34,11 @@ local macros=function(s)
return s
end
end
+local imacros=function(s)
+ return function()
+ return '(intptr_t)' .. s
+ end
+end
local N_=function(s)
return function()
return 'N_(' .. cstr(s) .. ')'
@@ -1000,7 +1005,7 @@ return {
deny_duplicates=true,
vi_def=true,
varname='p_guicursor',
- defaults={if_true={vi="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"}}
+ defaults={if_true={vi="n-v-c-sm:block,i-ci-ve:ver25,r-cr-o:hor20"}}
},
{
full_name='guifont', abbreviation='gfn',
@@ -2648,7 +2653,7 @@ return {
type='number', scope={'global'},
vim=true,
varname='p_wc',
- defaults={if_true={vi=macros('Ctrl_E'), vim=macros('TAB')}}
+ defaults={if_true={vi=imacros('Ctrl_E'), vim=imacros('TAB')}}
},
{
full_name='wildcharm', abbreviation='wcm',
@@ -2702,6 +2707,14 @@ return {
defaults={if_true={vi="menu"}}
},
{
+ full_name='winhighlight', abbreviation='winhl',
+ type='string', scope={'window'},
+ vi_def=true,
+ alloced=true,
+ redraw={'current_window'},
+ defaults={if_true={vi=""}}
+ },
+ {
full_name='window', abbreviation='wi',
type='number', scope={'global'},
vi_def=true,
diff --git a/src/nvim/os/env.c b/src/nvim/os/env.c
index 8f7a6e72b5..de0cd10d9c 100644
--- a/src/nvim/os/env.c
+++ b/src/nvim/os/env.c
@@ -521,10 +521,11 @@ static char *remove_tail(char *path, char *pend, char *dirname)
return pend;
}
-/// Iterate over colon-separated list
+/// Iterate over a delimited list.
///
/// @note Environment variables must not be modified during iteration.
///
+/// @param[in] delim Delimiter character.
/// @param[in] val Value of the environment variable to iterate over.
/// @param[in] iter Pointer used for iteration. Must be NULL on first
/// iteration.
@@ -533,18 +534,19 @@ static char *remove_tail(char *path, char *pend, char *dirname)
/// @param[out] len Location where current directory length should be saved.
///
/// @return Next iter argument value or NULL when iteration should stop.
-const void *vim_colon_env_iter(const char *const val,
- const void *const iter,
- const char **const dir,
- size_t *const len)
- FUNC_ATTR_NONNULL_ARG(1, 3, 4) FUNC_ATTR_WARN_UNUSED_RESULT
+const void *vim_env_iter(const char delim,
+ const char *const val,
+ const void *const iter,
+ const char **const dir,
+ size_t *const len)
+ FUNC_ATTR_NONNULL_ARG(2, 4, 5) FUNC_ATTR_WARN_UNUSED_RESULT
{
const char *varval = (const char *) iter;
if (varval == NULL) {
varval = val;
}
*dir = varval;
- const char *const dirend = strchr(varval, ':');
+ const char *const dirend = strchr(varval, delim);
if (dirend == NULL) {
*len = strlen(varval);
return NULL;
@@ -554,10 +556,11 @@ const void *vim_colon_env_iter(const char *const val,
}
}
-/// Iterate over colon-separated list in reverse order
+/// Iterate over a delimited list in reverse order.
///
/// @note Environment variables must not be modified during iteration.
///
+/// @param[in] delim Delimiter character.
/// @param[in] val Value of the environment variable to iterate over.
/// @param[in] iter Pointer used for iteration. Must be NULL on first
/// iteration.
@@ -566,18 +569,19 @@ const void *vim_colon_env_iter(const char *const val,
/// @param[out] len Location where current directory length should be saved.
///
/// @return Next iter argument value or NULL when iteration should stop.
-const void *vim_colon_env_iter_rev(const char *const val,
- const void *const iter,
- const char **const dir,
- size_t *const len)
- FUNC_ATTR_NONNULL_ARG(1, 3, 4) FUNC_ATTR_WARN_UNUSED_RESULT
+const void *vim_env_iter_rev(const char delim,
+ const char *const val,
+ const void *const iter,
+ const char **const dir,
+ size_t *const len)
+ FUNC_ATTR_NONNULL_ARG(2, 4, 5) FUNC_ATTR_WARN_UNUSED_RESULT
{
const char *varend = (const char *) iter;
if (varend == NULL) {
varend = val + strlen(val) - 1;
}
- const size_t varlen = (size_t) (varend - val) + 1;
- const char *const colon = xmemrchr(val, ':', varlen);
+ const size_t varlen = (size_t)(varend - val) + 1;
+ const char *const colon = xmemrchr(val, (uint8_t)delim, varlen);
if (colon == NULL) {
*len = varlen;
*dir = val;
@@ -596,6 +600,9 @@ const void *vim_colon_env_iter_rev(const char *const val,
/// @param name Environment variable to expand
char *vim_getenv(const char *name)
{
+ // init_path() should have been called before now.
+ assert(get_vim_var_str(VV_PROGPATH)[0] != NUL);
+
const char *kos_env_path = os_getenv(name);
if (kos_env_path != NULL) {
return xstrdup(kos_env_path);
@@ -634,18 +641,17 @@ char *vim_getenv(const char *name)
char exe_name[MAXPATHL];
// Find runtime path relative to the nvim binary: ../share/nvim/runtime
if (vim_path == NULL) {
- size_t exe_name_len = MAXPATHL;
- if (os_exepath(exe_name, &exe_name_len) == 0) {
- char *path_end = (char *)path_tail_with_sep((char_u *)exe_name);
- *path_end = '\0'; // remove the trailing "nvim.exe"
- path_end = (char *)path_tail((char_u *)exe_name);
- *path_end = '\0'; // remove the trailing "bin/"
- if (append_path(
- exe_name,
- "share" _PATHSEPSTR "nvim" _PATHSEPSTR "runtime" _PATHSEPSTR,
- MAXPATHL) == OK) {
- vim_path = exe_name; // -V507
- }
+ xstrlcpy(exe_name, (char *)get_vim_var_str(VV_PROGPATH),
+ sizeof(exe_name));
+ char *path_end = (char *)path_tail_with_sep((char_u *)exe_name);
+ *path_end = '\0'; // remove the trailing "nvim.exe"
+ path_end = (char *)path_tail((char_u *)exe_name);
+ *path_end = '\0'; // remove the trailing "bin/"
+ if (append_path(
+ exe_name,
+ "share" _PATHSEPSTR "nvim" _PATHSEPSTR "runtime" _PATHSEPSTR,
+ MAXPATHL) == OK) {
+ vim_path = exe_name; // -V507
}
}
diff --git a/src/nvim/os/fs.c b/src/nvim/os/fs.c
index c39ff5d358..14dacd97c4 100644
--- a/src/nvim/os/fs.c
+++ b/src/nvim/os/fs.c
@@ -61,9 +61,9 @@ void fs_init(void)
}
-/// Change to the given directory.
+/// Changes the current directory to `path`.
///
-/// @return `0` on success, a libuv error code on failure.
+/// @return 0 on success, or negative error code.
int os_chdir(const char *path)
FUNC_ATTR_NONNULL_ALL
{
@@ -171,6 +171,10 @@ int os_nodetype(const char *name)
| O_NONBLOCK
#endif
, 0);
+ if (fd == -1) {
+ return NODE_OTHER; // open() failed.
+ }
+
switch (uv_guess_handle(fd)) {
case UV_TTY: // FILE_TYPE_CHAR
nodetype = NODE_WRITABLE;
@@ -196,11 +200,13 @@ int os_nodetype(const char *name)
}
/// Gets the absolute path of the currently running executable.
+/// May fail if procfs is missing. #6734
+/// @see path_exepath
///
-/// @param[out] buffer Returns the path string.
+/// @param[out] buffer Full path to the executable.
/// @param[in] size Size of `buffer`.
///
-/// @return `0` on success, or libuv error code on failure.
+/// @return 0 on success, or libuv error code.
int os_exepath(char *buffer, size_t *size)
FUNC_ATTR_NONNULL_ALL
{
diff --git a/src/nvim/os/input.c b/src/nvim/os/input.c
index 7b5e14dd19..31e06ce404 100644
--- a/src/nvim/os/input.c
+++ b/src/nvim/os/input.c
@@ -23,6 +23,7 @@
#include "nvim/main.h"
#include "nvim/misc1.h"
#include "nvim/state.h"
+#include "nvim/msgpack_rpc/channel.h"
#define READ_BUFFER_SIZE 0xfff
#define INPUT_BUFFER_SIZE (READ_BUFFER_SIZE * 4)
@@ -38,6 +39,7 @@ static RBuffer *input_buffer = NULL;
static bool input_eof = false;
static int global_fd = 0;
static int events_enabled = 0;
+static bool blocking = false;
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "os/input.c.generated.h"
@@ -327,13 +329,25 @@ static unsigned int handle_mouse_event(char **ptr, uint8_t *buf,
return bufsize;
}
+/// @return true if the main loop is blocked and waiting for input.
+bool input_blocking(void)
+{
+ return blocking;
+}
+
static bool input_poll(int ms)
{
if (do_profiling == PROF_YES && ms) {
prof_inchar_enter();
}
+ if ((ms == - 1 || ms > 0) && !events_enabled && !input_eof) {
+ // The pending input provoked a blocking wait. Do special events now. #6247
+ blocking = true;
+ multiqueue_process_events(ch_before_blocking_events);
+ }
LOOP_PROCESS_EVENTS_UNTIL(&main_loop, NULL, ms, input_ready() || input_eof);
+ blocking = false;
if (do_profiling == PROF_YES && ms) {
prof_inchar_exit();
diff --git a/src/nvim/os/pty_process_unix.c b/src/nvim/os/pty_process_unix.c
index eb9335b03c..ee3ab96a83 100644
--- a/src/nvim/os/pty_process_unix.c
+++ b/src/nvim/os/pty_process_unix.c
@@ -12,7 +12,7 @@
#include <sys/ioctl.h>
// forkpty is not in POSIX, so headers are platform-specific
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined (__DragonFly__)
# include <libutil.h>
#elif defined(__OpenBSD__) || defined(__NetBSD__) || defined(__APPLE__)
# include <util.h>
diff --git a/src/nvim/os/shell.c b/src/nvim/os/shell.c
index fc8ab7dc8f..9d80a43718 100644
--- a/src/nvim/os/shell.c
+++ b/src/nvim/os/shell.c
@@ -464,9 +464,10 @@ static void out_data_append_to_screen(char *output, size_t remaining,
continue;
}
- // Translate NUL to SOH
- if (output[off] == NUL) {
- output[off] = 1;
+ // TODO(bfredl): using msg_puts would be better until
+ // terminal emulation is implemented.
+ if (output[off] < 0x20) {
+ output[off] = ' ';
}
off++;
@@ -495,8 +496,12 @@ static void out_data_cb(Stream *stream, RBuffer *buf, size_t count, void *data,
size_t cnt;
char *ptr = rbuffer_read_ptr(buf, &cnt);
- if (ptr != NULL && cnt > 0
- && out_data_decide_throttle(cnt)) { // Skip output above a threshold.
+ if (ptr == NULL || cnt == 0) {
+ // Nothing to read;
+ return;
+ }
+
+ if (out_data_decide_throttle(cnt)) { // Skip output above a threshold.
// Save the skipped output. If it is the final chunk, we display it later.
out_data_ring(ptr, cnt);
} else {
@@ -684,7 +689,7 @@ static void shell_write_cb(Stream *stream, void *data, int status)
uv_err_name(status));
}
if (stream->closed) { // Process may have exited before this write.
- ELOG("stream was already closed");
+ WLOG("stream was already closed");
return;
}
stream_close(stream, NULL, NULL);
diff --git a/src/nvim/os/shell.h b/src/nvim/os/shell.h
index 58960db157..48503f2601 100644
--- a/src/nvim/os/shell.h
+++ b/src/nvim/os/shell.h
@@ -1,6 +1,8 @@
#ifndef NVIM_OS_SHELL_H
#define NVIM_OS_SHELL_H
+#include <stdio.h>
+
#include "nvim/types.h"
// Flags for os_call_shell() second argument
diff --git a/src/nvim/os_unix.c b/src/nvim/os_unix.c
index c5a42204be..692bcc97f4 100644
--- a/src/nvim/os_unix.c
+++ b/src/nvim/os_unix.c
@@ -133,7 +133,7 @@ void mch_free_acl(vim_acl_T aclent)
}
#endif
-void mch_exit(int r)
+void mch_exit(int r) FUNC_ATTR_NORETURN
{
exiting = true;
@@ -141,7 +141,9 @@ void mch_exit(int r)
ui_flush();
ml_close_all(true); // remove all memfiles
- event_teardown();
+ if (!event_teardown() && r == 0) {
+ r = 1; // Exit with error if main_loop did not teardown gracefully.
+ }
stream_set_blocking(input_global_fd(), true); // normalize stream (#2598)
#ifdef EXITFREE
@@ -173,7 +175,7 @@ void mch_exit(int r)
/// @returns OK for success or FAIL for error.
int mch_expand_wildcards(int num_pat, char_u **pat, int *num_file,
char_u ***file, int flags) FUNC_ATTR_NONNULL_ARG(3)
- FUNC_ATTR_NONNULL_ARG(4)
+ FUNC_ATTR_NONNULL_ARG(4)
{
int i;
size_t len;
diff --git a/src/nvim/path.c b/src/nvim/path.c
index 12952f49db..f2339c8046 100644
--- a/src/nvim/path.c
+++ b/src/nvim/path.c
@@ -435,7 +435,7 @@ bool add_pathsep(char *p)
/// @return [allocated] Copy of absolute path to `fname` or NULL when
/// `fname` is NULL.
char *FullName_save(const char *fname, bool force)
- FUNC_ATTR_NONNULL_RET FUNC_ATTR_MALLOC
+ FUNC_ATTR_MALLOC
{
if (fname == NULL) {
return NULL;
@@ -453,7 +453,7 @@ char *FullName_save(const char *fname, bool force)
/// @param name An absolute or relative path.
/// @return The absolute path of `name`.
char_u *save_absolute_path(const char_u *name)
- FUNC_ATTR_MALLOC FUNC_ATTR_NONNULL_RET FUNC_ATTR_NONNULL_ALL
+ FUNC_ATTR_MALLOC FUNC_ATTR_NONNULL_ALL
{
if (!path_is_absolute_path(name)) {
return (char_u *)FullName_save((char *)name, true);
@@ -1715,7 +1715,7 @@ int vim_FullName(const char *fname, char *buf, size_t len, bool force)
///
/// @param fname is the filename to expand
/// @return [allocated] Full path (NULL for failure).
-char *fix_fname(char *fname)
+char *fix_fname(const char *fname)
{
#ifdef UNIX
return FullName_save(fname, true);
@@ -2237,3 +2237,50 @@ int path_is_absolute_path(const char_u *fname)
return *fname == '/' || *fname == '~';
#endif
}
+
+/// Builds a full path from an invocation name `argv0`, based on heuristics.
+///
+/// @param[in] argv0 Name by which Nvim was invoked.
+/// @param[out] buf Guessed full path to `argv0`.
+/// @param[in] bufsize Size of `buf`.
+///
+/// @see os_exepath
+void path_guess_exepath(const char *argv0, char *buf, size_t bufsize)
+ FUNC_ATTR_NONNULL_ALL
+{
+ char *path = getenv("PATH");
+
+ if (path == NULL || path_is_absolute_path((char_u *)argv0)) {
+ xstrlcpy(buf, argv0, bufsize);
+ } else if (argv0[0] == '.' || strchr(argv0, PATHSEP)) {
+ // Relative to CWD.
+ if (os_dirname((char_u *)buf, MAXPATHL) != OK) {
+ buf[0] = NUL;
+ }
+ xstrlcat(buf, PATHSEPSTR, bufsize);
+ xstrlcat(buf, argv0, bufsize);
+ } else {
+ // Search $PATH for plausible location.
+ const void *iter = NULL;
+ do {
+ const char *dir;
+ size_t dir_len;
+ iter = vim_env_iter(ENV_SEPCHAR, path, iter, &dir, &dir_len);
+ if (dir == NULL || dir_len == 0) {
+ break;
+ }
+ if (dir_len + 1 > sizeof(NameBuff)) {
+ continue;
+ }
+ xstrlcpy((char *)NameBuff, dir, dir_len + 1);
+ xstrlcat((char *)NameBuff, PATHSEPSTR, sizeof(NameBuff));
+ xstrlcat((char *)NameBuff, argv0, sizeof(NameBuff));
+ if (os_can_exe(NameBuff, NULL, false)) {
+ xstrlcpy(buf, (char *)NameBuff, bufsize);
+ return;
+ }
+ } while (iter != NULL);
+ // Not found in $PATH, fall back to argv0.
+ xstrlcpy(buf, argv0, bufsize);
+ }
+}
diff --git a/src/nvim/po/eo.po b/src/nvim/po/eo.po
index b7bc6397ef..3fb300c63f 100644
--- a/src/nvim/po/eo.po
+++ b/src/nvim/po/eo.po
@@ -5,7 +5,7 @@
#
# UNUA TRADUKISTO Dominique PELLE <dominique.pelle ĉe gmail.com>
# PROVLEGANTO(J) Felipe CASTRO <fefcas ĉe gmail.com>
-# Antono MECHELYNCK <antoine.mechelynck ĉe skynet.be>
+# Antono MECHELYNCK <antoine.mechelynck ĉe gmail.com>
# Yves NEVELSTEEN
#
# Uzitaj vortaroj kaj fakvortaroj:
@@ -23,8 +23,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Vim(Esperanto)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-07-02 16:21+0200\n"
-"PO-Revision-Date: 2016-07-02 17:05+0200\n"
+"POT-Creation-Date: 2017-01-16 00:30+0100\n"
+"PO-Revision-Date: 2017-01-16 01:14+0100\n"
"Last-Translator: Dominique PELLÉ <dominique.pelle@gmail.com>\n"
"Language-Team: \n"
"Language: eo\n"
@@ -32,13 +32,20 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#, fuzzy
-#~ msgid "Unable to get option value"
-#~ msgstr "fiaskis akiri valoron de opcio"
+msgid "E831: bf_key_init() called with empty password"
+msgstr "E831: bf_key_init() alvokita kun malplena pasvorto"
-#, fuzzy
-#~ msgid "internal error: unknown option type"
-#~ msgstr "interna eraro: neniu vim-a listero"
+msgid "E820: sizeof(uint32_t) != 4"
+msgstr "E820: sizeof(uint32_t) != 4"
+
+msgid "E817: Blowfish big/little endian use wrong"
+msgstr "E817: Misuzo de pezkomenca/pezfina en blowfish"
+
+msgid "E818: sha256 test failed"
+msgstr "E818: Testo de sha256 malsukcesis"
+
+msgid "E819: Blowfish test failed"
+msgstr "E819: Testo de blowfish malsukcesis"
msgid "[Location List]"
msgstr "[Listo de lokoj]"
@@ -56,6 +63,12 @@ msgstr "E82: Ne eblas disponigi iun ajn bufron, nun eliras..."
msgid "E83: Cannot allocate buffer, using other one..."
msgstr "E83: Ne eblas disponigi bufron, nun uzas alian..."
+msgid "E931: Buffer cannot be registered"
+msgstr "E931: Bufro ne povas esti registrita"
+
+msgid "E937: Attempt to delete a buffer that is in use"
+msgstr "E937: Provo de forviŝo de bufro, kiu estas uzanta"
+
msgid "E515: No buffers were unloaded"
msgstr "E515: Neniu bufro estis malŝargita"
@@ -103,19 +116,17 @@ msgid "E88: Cannot go before first buffer"
msgstr "E88: Ne eblas iri antaŭ la unuan bufron"
#, c-format
-msgid ""
-"E89: No write since last change for buffer %<PRId64> (add ! to override)"
+msgid "E89: No write since last change for buffer %ld (add ! to override)"
msgstr ""
-"E89: Neniu skribo de post la lasta ŝanĝo de la bufro %<PRId64> (aldonu ! por "
+"E89: Neniu skribo de post la lasta ŝanĝo de la bufro %ld (aldonu ! por "
"transpasi)"
-#. wrap around (may cause duplicates)
msgid "W14: Warning: List of file names overflow"
msgstr "W14: Averto: Listo de dosiernomoj troas"
#, c-format
-msgid "E92: Buffer %<PRId64> not found"
-msgstr "E92: Bufro %<PRId64> ne trovita"
+msgid "E92: Buffer %ld not found"
+msgstr "E92: Bufro %ld ne trovita"
#, c-format
msgid "E93: More than one match for %s"
@@ -126,8 +137,8 @@ msgid "E94: No matching buffer for %s"
msgstr "E94: Neniu bufro kongruas kun %s"
#, c-format
-msgid "line %<PRId64>"
-msgstr "linio %<PRId64>"
+msgid "line %ld"
+msgstr "linio %ld"
msgid "E95: Buffer with this name already exists"
msgstr "E95: Bufro kun tiu nomo jam ekzistas"
@@ -155,12 +166,12 @@ msgid "1 line --%d%%--"
msgstr "1 linio --%d%%--"
#, c-format
-msgid "%<PRId64> lines --%d%%--"
-msgstr "%<PRId64> linioj --%d%%--"
+msgid "%ld lines --%d%%--"
+msgstr "%ld linioj --%d%%--"
#, c-format
-msgid "line %<PRId64> of %<PRId64> --%d%%-- col "
-msgstr "linio %<PRId64> de %<PRId64> --%d%%-- kol "
+msgid "line %ld of %ld --%d%%-- col "
+msgstr "linio %ld de %ld --%d%%-- kol "
msgid "[No Name]"
msgstr "[Neniu nomo]"
@@ -207,24 +218,103 @@ msgid "Signs for %s:"
msgstr "Emfazaj simbolaĵoj de %s:"
#, c-format
-msgid " line=%<PRId64> id=%d name=%s"
-msgstr " linio=%<PRId64> id=%d nomo=%s"
+msgid " line=%ld id=%d name=%s"
+msgstr " linio=%ld id=%d nomo=%s"
-msgid "E545: Missing colon"
-msgstr "E545: Mankas dupunkto"
+msgid "E902: Cannot connect to port"
+msgstr "E902: Ne eblas konekti al pordo"
-msgid "E546: Illegal mode"
-msgstr "E546: Reĝimo nepermesata"
+msgid "E901: gethostbyname() in channel_open()"
+msgstr "E901: gethostbyname() en channel_open()"
-msgid "E548: digit expected"
-msgstr "E548: cifero atendata"
+msgid "E898: socket() in channel_open()"
+msgstr "E898: gethostbyname() en channel_open()"
-msgid "E549: Illegal percentage"
-msgstr "E549: Nevalida procento"
+msgid "E903: received command with non-string argument"
+msgstr "E903: ricevis komandon kun argumento, kiu ne estas ĉeno"
+
+msgid "E904: last argument for expr/call must be a number"
+msgstr "E904: lasta argumento de \"expr/call\" devas esti nombro"
+
+msgid "E904: third argument for call must be a list"
+msgstr "E904: tria argumento de \"call\" devas esti listo"
+
+#, c-format
+msgid "E905: received unknown command: %s"
+msgstr "E905: nekonata komando ricevita: %s"
+
+#, c-format
+msgid "E630: %s(): write while not connected"
+msgstr "E630: %s(): konservo dum nekonektita"
+
+#, c-format
+msgid "E631: %s(): write failed"
+msgstr "E631: %s(): Konservo malsukcesis"
+
+#, c-format
+msgid "E917: Cannot use a callback with %s()"
+msgstr "E917: Ne eblas uzi reagfunkcion kun %s()"
+
+msgid "E912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channel"
+msgstr "E912: ne eblas uzi ch_evalexpr()/ch_sendexpr() kun kruda aŭ nl kanalo"
+
+msgid "E906: not an open channel"
+msgstr "E906: ne estas malfermita kanalo"
+
+msgid "E920: _io file requires _name to be set"
+msgstr "E920: dosiero _io bezonas _name"
+
+msgid "E915: in_io buffer requires in_buf or in_name to be set"
+msgstr "E915: bufro in_io bezonas in_buf aŭ in_name"
+
+#, c-format
+msgid "E918: buffer must be loaded: %s"
+msgstr "E918: bufro devas esti ŝargita: %s"
+
+msgid "E821: File is encrypted with unknown method"
+msgstr "E821: Dosiero estas ĉifrita per nekonata metodo"
+
+msgid "Warning: Using a weak encryption method; see :help 'cm'"
+msgstr "Averto: uzo de malfortika ĉifrada metodo; vidu :help 'cm'"
+
+msgid "Enter encryption key: "
+msgstr "Tajpu la ŝlosilon de ĉifrado: "
+
+msgid "Enter same key again: "
+msgstr "Tajpu la ŝlosilon denove: "
+
+msgid "Keys don't match!"
+msgstr "Ŝlosiloj ne kongruas!"
+
+msgid "[crypted]"
+msgstr "[ĉifrita]"
+
+#, c-format
+msgid "E720: Missing colon in Dictionary: %s"
+msgstr "E720: Mankas dupunkto en la vortaro: %s"
+
+#, c-format
+msgid "E721: Duplicate key in Dictionary: \"%s\""
+msgstr "E721: Ripetita ŝlosilo en la vortaro: \"%s\""
+
+#, c-format
+msgid "E722: Missing comma in Dictionary: %s"
+msgstr "E722: Mankas komo en la vortaro: %s"
#, c-format
-msgid "E96: Can not diff more than %<PRId64> buffers"
-msgstr "E96: Ne eblas dosierdiferenci pli ol %<PRId64> bufrojn"
+msgid "E723: Missing end of Dictionary '}': %s"
+msgstr "E723: Mankas fino de vortaro '}': %s"
+
+msgid "extend() argument"
+msgstr "argumento de extend()"
+
+#, c-format
+msgid "E737: Key already exists: %s"
+msgstr "E737: Ŝlosilo jam ekzistas: %s"
+
+#, c-format
+msgid "E96: Cannot diff more than %ld buffers"
+msgstr "E96: Ne eblas dosierdiferenci pli ol %ld bufrojn"
msgid "E810: Cannot read or write temp files"
msgstr "E810: Ne eblas legi aŭ skribi provizorajn dosierojn"
@@ -232,6 +322,9 @@ msgstr "E810: Ne eblas legi aŭ skribi provizorajn dosierojn"
msgid "E97: Cannot create diffs"
msgstr "E97: Ne eblas krei dosierdiferencojn"
+msgid "Patch file"
+msgstr "Flika dosiero"
+
msgid "E816: Cannot read patch output"
msgstr "E816: Ne eblas legi eliron de flikilo \"patch\""
@@ -376,55 +469,17 @@ msgstr "kongruo %d de %d"
msgid "match %d"
msgstr "kongruo %d"
+#. maximum nesting of lists and dicts
msgid "E18: Unexpected characters in :let"
msgstr "E18: Neatenditaj signoj en \":let\""
#, c-format
-msgid "E684: list index out of range: %<PRId64>"
-msgstr "E684: indekso de listo ekster limoj: %<PRId64>"
-
-#, c-format
msgid "E121: Undefined variable: %s"
msgstr "E121: Nedifinita variablo: %s"
msgid "E111: Missing ']'"
msgstr "E111: Mankas ']'"
-#, c-format
-msgid "E686: Argument of %s must be a List"
-msgstr "E686: Argumento de %s devas esti Listo"
-
-#, c-format
-msgid "E712: Argument of %s must be a List or Dictionary"
-msgstr "E712: Argumento de %s devas esti Listo aŭ Vortaro"
-
-msgid "E714: List required"
-msgstr "E714: Listo bezonata"
-
-msgid "E715: Dictionary required"
-msgstr "E715: Vortaro bezonata"
-
-msgid "E928: String required"
-msgstr "E928: Ĉeno bezonata"
-
-#, c-format
-msgid "E118: Too many arguments for function: %s"
-msgstr "E118: Tro da argumentoj por funkcio: %s"
-
-#, c-format
-msgid "E716: Key not present in Dictionary: %s"
-msgstr "E716: Ŝlosilo malekzistas en Vortaro: %s"
-
-#, c-format
-msgid "E122: Function %s already exists, add ! to replace it"
-msgstr "E122: La funkcio %s jam ekzistas (aldonu ! por anstataŭigi ĝin)"
-
-msgid "E717: Dictionary entry already exists"
-msgstr "E717: Rikordo de vortaro jam ekzistas"
-
-msgid "E718: Funcref required"
-msgstr "E718: Funcref bezonata"
-
msgid "E719: Cannot use [:] with a Dictionary"
msgstr "E719: Uzo de [:] ne eblas kun Vortaro"
@@ -433,10 +488,6 @@ msgid "E734: Wrong variable type for %s="
msgstr "E734: Nevalida datumtipo de variablo de %s="
#, c-format
-msgid "E130: Unknown function: %s"
-msgstr "E130: Nekonata funkcio: %s"
-
-#, c-format
msgid "E461: Illegal variable name: %s"
msgstr "E461: Nevalida nomo de variablo: %s"
@@ -475,10 +526,6 @@ msgid "E690: Missing \"in\" after :for"
msgstr "E690: \"in\" mankas post \":for\""
#, c-format
-msgid "E107: Missing parentheses: %s"
-msgstr "E107: Mankas krampoj: %s"
-
-#, c-format
msgid "E108: No such variable: \"%s\""
msgstr "E108: Ne estas tia variablo: \"%s\""
@@ -491,7 +538,7 @@ msgstr "E109: Mankas ':' post '?'"
msgid "E691: Can only compare List with List"
msgstr "E691: Eblas nur kompari Liston kun Listo"
-msgid "E692: Invalid operation for Lists"
+msgid "E692: Invalid operation for List"
msgstr "E692: Nevalida operacio de Listoj"
msgid "E735: Can only compare Dictionary with Dictionary"
@@ -500,9 +547,6 @@ msgstr "E735: Eblas nur kompari Vortaron kun Vortaro"
msgid "E736: Invalid operation for Dictionary"
msgstr "E736: Nevalida operacio de Vortaro"
-msgid "E693: Can only compare Funcref with Funcref"
-msgstr "E693: Eblas nur kompari Funcref kun Funcref"
-
msgid "E694: Invalid operation for Funcrefs"
msgstr "E694: Nevalida operacio de Funcref-oj"
@@ -534,150 +578,12 @@ msgstr "E114: Mankas citilo: %s"
msgid "E115: Missing quote: %s"
msgstr "E115: Mankas citilo: %s"
-#, c-format
-msgid "E696: Missing comma in List: %s"
-msgstr "E696: Mankas komo en Listo: %s"
-
-#, c-format
-msgid "E697: Missing end of List ']': %s"
-msgstr "E697: Mankas fino de Listo ']': %s"
-
msgid "Not enough memory to set references, garbage collection aborted!"
msgstr "Ne sufiĉa memoro por valorigi referencojn, senrubigado ĉesigita!"
-#, c-format
-msgid "E720: Missing colon in Dictionary: %s"
-msgstr "E720: Mankas dupunkto en la vortaro: %s"
-
-#, c-format
-msgid "E721: Duplicate key in Dictionary: \"%s\""
-msgstr "E721: Ripetita ŝlosilo en la vortaro: \"%s\""
-
-#, c-format
-msgid "E722: Missing comma in Dictionary: %s"
-msgstr "E722: Mankas komo en la vortaro: %s"
-
-#, c-format
-msgid "E723: Missing end of Dictionary '}': %s"
-msgstr "E723: Mankas fino de vortaro '}': %s"
-
msgid "E724: variable nested too deep for displaying"
msgstr "E724: variablo ingita tro profunde por vidigi"
-#, c-format
-msgid "E740: Too many arguments for function %s"
-msgstr "E740: Tro da argumentoj por funkcio: %s"
-
-#, c-format
-msgid "E116: Invalid arguments for function %s"
-msgstr "E116: Nevalidaj argumentoj por funkcio: %s"
-
-#, c-format
-msgid "E117: Unknown function: %s"
-msgstr "E117: Nekonata funkcio: %s"
-
-#, c-format
-msgid "E119: Not enough arguments for function: %s"
-msgstr "E119: Ne sufiĉe da argumentoj por funkcio: %s"
-
-#, c-format
-msgid "E120: Using <SID> not in a script context: %s"
-msgstr "E120: <SID> estas uzata ekster kunteksto de skripto: %s"
-
-#, c-format
-msgid "E725: Calling dict function without Dictionary: %s"
-msgstr "E725: Alvoko de funkcio dict sen Vortaro: %s"
-
-msgid "E808: Number or Float required"
-msgstr "E808: Nombro aŭ Glitpunktnombro bezonata"
-
-msgid "add() argument"
-msgstr "argumento de add()"
-
-msgid "E699: Too many arguments"
-msgstr "E699: Tro da argumentoj"
-
-msgid "E785: complete() can only be used in Insert mode"
-msgstr "E785: complete() uzeblas nur en Enmeta reĝimo"
-
-msgid "&Ok"
-msgstr "&Bone"
-
-#, c-format
-msgid "E737: Key already exists: %s"
-msgstr "E737: Ŝlosilo jam ekzistas: %s"
-
-msgid "extend() argument"
-msgstr "argumento de extend()"
-
-msgid "map() argument"
-msgstr "argumento de map()"
-
-msgid "filter() argument"
-msgstr "argumento de filter()"
-
-#, c-format
-msgid "+-%s%3ld lines: "
-msgstr "+-%s%3ld linioj: "
-
-#, c-format
-msgid "E700: Unknown function: %s"
-msgstr "E700: Nekonata funkcio: %s"
-
-msgid "called inputrestore() more often than inputsave()"
-msgstr "alvokis inputrestore() pli ofte ol inputsave()"
-
-msgid "insert() argument"
-msgstr "argumento de insert()"
-
-msgid "E786: Range not allowed"
-msgstr "E786: Amplekso nepermesebla"
-
-msgid "E701: Invalid type for len()"
-msgstr "E701: Nevalida datumtipo de len()"
-
-msgid "E726: Stride is zero"
-msgstr "E726: Paŝo estas nul"
-
-msgid "E727: Start past end"
-msgstr "E727: Komenco preter fino"
-
-msgid "<empty>"
-msgstr "<malplena>"
-
-msgid "remove() argument"
-msgstr "argumento de remove()"
-
-msgid "E655: Too many symbolic links (cycle?)"
-msgstr "E655: Tro da simbolaj ligiloj (ĉu estas ciklo?)"
-
-msgid "reverse() argument"
-msgstr "argumento de reverse()"
-
-#, c-format
-msgid "E927: Invalid action: '%s'"
-msgstr "E927: Nevalida ago: '%s'"
-
-msgid "sort() argument"
-msgstr "argumento de sort()"
-
-#, fuzzy
-#~ msgid "uniq() argument"
-#~ msgstr "argumento de add()"
-
-msgid "E702: Sort compare function failed"
-msgstr "E702: Ordiga funkcio fiaskis"
-
-#, fuzzy
-#~ msgid "E882: Uniq compare function failed"
-#~ msgstr "E702: Ordiga funkcio fiaskis"
-
-msgid "(Invalid)"
-msgstr "(Nevalida)"
-
-msgid "E677: Error writing temp file"
-msgstr "E677: Eraro dum skribo de provizora dosiero"
-
msgid "E805: Using a Float as a Number"
msgstr "E805: Uzo de Glitpunktnombro kiel Nombro"
@@ -690,6 +596,12 @@ msgstr "E745: Uzo de Listo kiel Nombro"
msgid "E728: Using a Dictionary as a Number"
msgstr "E728: Uzo de Vortaro kiel Nombro"
+msgid "E910: Using a Job as a Number"
+msgstr "E910: Uzo de Tasko kiel Nombro"
+
+msgid "E913: Using a Channel as a Number"
+msgstr "E913: Uzo de Kanalo kiel Nombro"
+
msgid "E891: Using a Funcref as a Float"
msgstr "E891: Uzo de Funcref kiel Glitpunktnombro"
@@ -702,6 +614,15 @@ msgstr "E893: Uzo de Listo kiel Glitpunktnombro"
msgid "E894: Using a Dictionary as a Float"
msgstr "E894: Uzo de Vortaro kiel Glitpunktnombro"
+msgid "E907: Using a special value as a Float"
+msgstr "E907: Uzo de speciala valoro kiel Glitpunktnombro"
+
+msgid "E911: Using a Job as a Float"
+msgstr "E911: Uzo de Tasko kiel Glitpunktnombro"
+
+msgid "E914: Using a Channel as a Float"
+msgstr "E914: Uzo de Kanalo kiel Glitpunktnombro"
+
msgid "E729: using Funcref as a String"
msgstr "E729: uzo de Funcref kiel Ĉeno"
@@ -715,10 +636,6 @@ msgid "E908: using an invalid value as a String"
msgstr "E908: uzo de nevalida valoro kiel Ĉeno"
#, c-format
-msgid "E706: Variable type mismatch for: %s"
-msgstr "E706: Nekongrua datumtipo de variablo: %s"
-
-#, c-format
msgid "E795: Cannot delete variable %s"
msgstr "E795: Ne eblas forviŝi variablon %s"
@@ -744,97 +661,151 @@ msgstr "E742: Ne eblas ŝanĝi valoron de %s"
msgid "E698: variable nested too deep for making a copy"
msgstr "E698: variablo ingita tro profunde por fari kopion"
-#, c-format
-msgid "E123: Undefined function: %s"
-msgstr "E123: Nedifinita funkcio: %s"
+msgid ""
+"\n"
+"# global variables:\n"
+msgstr ""
+"\n"
+"# mallokaj variabloj:\n"
-#, c-format
-msgid "E124: Missing '(': %s"
-msgstr "E124: Mankas '(': %s"
+msgid ""
+"\n"
+"\tLast set from "
+msgstr ""
+"\n"
+"\tLaste ŝaltita de "
-msgid "E862: Cannot use g: here"
-msgstr "E862: Ne eblas uzi g: ĉi tie"
+msgid "map() argument"
+msgstr "argumento de map()"
-#, c-format
-msgid "E125: Illegal argument: %s"
-msgstr "E125: Nevalida argumento: %s"
+msgid "filter() argument"
+msgstr "argumento de filter()"
#, c-format
-msgid "E853: Duplicate argument name: %s"
-msgstr "E853: Ripetita nomo de argumento: %s"
+msgid "E686: Argument of %s must be a List"
+msgstr "E686: Argumento de %s devas esti Listo"
-msgid "E126: Missing :endfunction"
-msgstr "E126: Mankas \":endfunction\""
+msgid "E928: String required"
+msgstr "E928: Ĉeno bezonata"
-#, c-format
-msgid "E707: Function name conflicts with variable: %s"
-msgstr "E707: Nomo de funkcio konfliktas kun variablo: %s"
+msgid "E808: Number or Float required"
+msgstr "E808: Nombro aŭ Glitpunktnombro bezonata"
+
+msgid "add() argument"
+msgstr "argumento de add()"
+
+msgid "E785: complete() can only be used in Insert mode"
+msgstr "E785: complete() uzeblas nur en Enmeta reĝimo"
+
+#.
+#. * Yes this is ugly, I don't particularly like it either. But doing it
+#. * this way has the compelling advantage that translations need not to
+#. * be touched at all. See below what 'ok' and 'ync' are used for.
+#.
+msgid "&Ok"
+msgstr "&Bone"
#, c-format
-msgid "E127: Cannot redefine function %s: It is in use"
-msgstr "E127: Ne eblas redifini funkcion %s: Estas nuntempe uzata"
+msgid "+-%s%3ld line: "
+msgid_plural "+-%s%3ld lines: "
+msgstr[0] "+-%s%3ld linio: "
+msgstr[1] "+-%s%3ld linioj: "
#, c-format
-msgid "E746: Function name does not match script file name: %s"
-msgstr "E746: Nomo de funkcio ne kongruas kun dosiernomo de skripto: %s"
+msgid "E700: Unknown function: %s"
+msgstr "E700: Nekonata funkcio: %s"
-msgid "E129: Function name required"
-msgstr "E129: Nomo de funkcio bezonata"
+msgid "E922: expected a dict"
+msgstr "E922: vortaro atendita"
-#, fuzzy, c-format
-#~ msgid "E128: Function name must start with a capital or \"s:\": %s"
-#~ msgstr "E128: Nomo de funkcio devas eki per majusklo aŭ enhavi dupunkton: %s"
+msgid "E923: Second argument of function() must be a list or a dict"
+msgstr "E923: Dua argumento de function() devas esti listo aŭ Vortaro"
-#, fuzzy, c-format
-#~ msgid "E884: Function name cannot contain a colon: %s"
-#~ msgstr "E128: Nomo de funkcio devas eki per majusklo aŭ enhavi dupunkton: %s"
+msgid ""
+"&OK\n"
+"&Cancel"
+msgstr ""
+"&Bone\n"
+"&Rezigni"
-#, c-format
-msgid "E131: Cannot delete function %s: It is in use"
-msgstr "E131: Ne eblas forviŝi funkcion %s: Estas nuntempe uzata"
+msgid "called inputrestore() more often than inputsave()"
+msgstr "alvokis inputrestore() pli ofte ol inputsave()"
-msgid "E132: Function call depth is higher than 'maxfuncdepth'"
-msgstr "E132: Profundo de funkcia alvoko superas 'maxfuncdepth'"
+msgid "insert() argument"
+msgstr "argumento de insert()"
-#, c-format
-msgid "calling %s"
-msgstr "alvokas %s"
+msgid "E786: Range not allowed"
+msgstr "E786: Amplekso nepermesebla"
-#, c-format
-msgid "%s aborted"
-msgstr "%s ĉesigita"
+msgid "E916: not a valid job"
+msgstr "E916: nevalida tasko"
+
+msgid "E701: Invalid type for len()"
+msgstr "E701: Nevalida datumtipo de len()"
#, c-format
-msgid "%s returning #%<PRId64>"
-msgstr "%s liveras #%<PRId64>"
+msgid "E798: ID is reserved for \":match\": %ld"
+msgstr "E798: ID estas rezervita por \":match\": %ld"
+
+msgid "E726: Stride is zero"
+msgstr "E726: Paŝo estas nul"
+
+msgid "E727: Start past end"
+msgstr "E727: Komenco preter fino"
+
+msgid "<empty>"
+msgstr "<malplena>"
+
+msgid "E240: No connection to Vim server"
+msgstr "E240: Neniu konekto al Vim-servilo"
#, c-format
-msgid "%s returning %s"
-msgstr "%s liveras %s"
+msgid "E241: Unable to send to %s"
+msgstr "E241: Ne eblas sendi al %s"
+
+msgid "E277: Unable to read a server reply"
+msgstr "E277: Ne eblas legi respondon de servilo"
+
+msgid "remove() argument"
+msgstr "argumento de remove()"
+
+msgid "E655: Too many symbolic links (cycle?)"
+msgstr "E655: Tro da simbolaj ligiloj (ĉu estas ciklo?)"
+
+msgid "reverse() argument"
+msgstr "argumento de reverse()"
+
+msgid "E258: Unable to send to client"
+msgstr "E258: Ne eblas sendi al kliento"
#, c-format
-msgid "continuing in %s"
-msgstr "daŭrigas en %s"
+msgid "E927: Invalid action: '%s'"
+msgstr "E927: Nevalida ago: '%s'"
-msgid "E133: :return not inside a function"
-msgstr "E133: \":return\" ekster funkcio"
+msgid "sort() argument"
+msgstr "argumento de sort()"
-msgid ""
-"\n"
-"# global variables:\n"
-msgstr ""
-"\n"
-"# mallokaj variabloj:\n"
+msgid "uniq() argument"
+msgstr "argumento de uniq()"
-msgid ""
-"\n"
-"\tLast set from "
-msgstr ""
-"\n"
-"\tLaste ŝaltita de "
+msgid "E702: Sort compare function failed"
+msgstr "E702: Ordiga funkcio malsukcesis"
-msgid "No old files"
-msgstr "Neniu malnova dosiero"
+msgid "E882: Uniq compare function failed"
+msgstr "E882: kompara funkcio de uniq() malsukcesis"
+
+msgid "(Invalid)"
+msgstr "(Nevalida)"
+
+#, c-format
+msgid "E935: invalid submatch number: %d"
+msgstr "E935: nevalida indekso de \"submatch\": %d"
+
+msgid "E677: Error writing temp file"
+msgstr "E677: Eraro dum skribo de provizora dosiero"
+
+msgid "E921: Invalid callback argument"
+msgstr "E921: Nevalida argumento de reagfunctio"
#, c-format
msgid "<%s>%s%s %d, Hex %02x, Octal %03o"
@@ -855,12 +826,12 @@ msgid "1 line moved"
msgstr "1 linio movita"
#, c-format
-msgid "%<PRId64> lines moved"
-msgstr "%<PRId64> linioj movitaj"
+msgid "%ld lines moved"
+msgstr "%ld linioj movitaj"
#, c-format
-msgid "%<PRId64> lines filtered"
-msgstr "%<PRId64> linioj filtritaj"
+msgid "%ld lines filtered"
+msgstr "%ld linioj filtritaj"
msgid "E135: *Filter* Autocommands must not change current buffer"
msgstr "E135: *Filtraj* Aŭtokomandoj ne rajtas ŝanĝi aktualan bufron"
@@ -889,7 +860,7 @@ msgid " oldfiles"
msgstr " malnovaj dosieroj"
msgid " FAILED"
-msgstr " FIASKIS"
+msgstr " MALSUKCESIS"
#. avoid a wait_return for this message, it's annoying
#, c-format
@@ -897,6 +868,10 @@ msgid "E137: Viminfo file is not writable: %s"
msgstr "E137: Dosiero viminfo ne skribeblas: %s"
#, c-format
+msgid "E929: Too many viminfo temp files, like %s!"
+msgstr "E929: Tro da provizoraj dosieroj viminfo, kiel %s!"
+
+#, c-format
msgid "E138: Can't write viminfo file %s!"
msgstr "E138: Ne eblas skribi dosieron viminfo %s!"
@@ -904,6 +879,10 @@ msgstr "E138: Ne eblas skribi dosieron viminfo %s!"
msgid "Writing viminfo file \"%s\""
msgstr "Skribas dosieron viminfo \"%s\""
+#, c-format
+msgid "E886: Can't rename viminfo file to %s!"
+msgstr "E886: Ne eblas renomi dosieron viminfo al %s!"
+
#. Write the info:
#, c-format
msgid "# This viminfo file was generated by Vim %s.\n"
@@ -922,6 +901,16 @@ msgstr "# Valoro de 'encoding' kiam tiu dosiero estis kreita\n"
msgid "Illegal starting char"
msgstr "Nevalida eka signo"
+msgid ""
+"\n"
+"# Bar lines, copied verbatim:\n"
+msgstr ""
+"\n"
+"# Linioj komencantaj per |, kopiitaj sen ŝanĝo:\n"
+
+msgid "Save As"
+msgstr "Konservi kiel"
+
msgid "Write partial file?"
msgstr "Ĉu skribi partan dosieron?"
@@ -941,8 +930,8 @@ msgid "E768: Swap file exists: %s (:silent! overrides)"
msgstr "E768: Permutodosiero .swp ekzistas: %s (:silent! por transpasi)"
#, c-format
-msgid "E141: No file name for buffer %<PRId64>"
-msgstr "E141: Neniu dosiernomo de bufro %<PRId64>"
+msgid "E141: No file name for buffer %ld"
+msgstr "E141: Neniu dosiernomo de bufro %ld"
msgid "E142: File not written: Writing is disabled by 'write' option"
msgstr "E142: Dosiero ne skribita: Skribo malŝaltita per la opcio 'write'"
@@ -969,6 +958,9 @@ msgstr ""
msgid "E505: \"%s\" is read-only (add ! to override)"
msgstr "E505: \"%s\" estas nurlegebla (aldonu ! por transpasi)"
+msgid "Edit File"
+msgstr "Redakti dosieron"
+
#, c-format
msgid "E143: Autocommands unexpectedly deleted new buffer %s"
msgstr "E143: Aŭtokomandoj neatendite forviŝis novan bufron %s"
@@ -996,19 +988,19 @@ msgid "1 substitution"
msgstr "1 anstataŭigo"
#, c-format
-msgid "%<PRId64> matches"
-msgstr "%<PRId64> kongruoj"
+msgid "%ld matches"
+msgstr "%ld kongruoj"
#, c-format
-msgid "%<PRId64> substitutions"
-msgstr "%<PRId64> anstataŭigoj"
+msgid "%ld substitutions"
+msgstr "%ld anstataŭigoj"
msgid " on 1 line"
msgstr " en 1 linio"
#, c-format
-msgid " on %<PRId64> lines"
-msgstr " en %<PRId64> linioj"
+msgid " on %ld lines"
+msgstr " en %ld linioj"
msgid "E147: Cannot do :global recursive"
msgstr "E147: Ne eblas fari \":global\" rekursie"
@@ -1051,8 +1043,8 @@ msgid "Sorry, help file \"%s\" not found"
msgstr "Bedaŭrinde, la helpdosiero \"%s\" ne troveblas"
#, c-format
-msgid "E150: Not a directory: %s"
-msgstr "E150: Ne estas dosierujo: %s"
+msgid "E151: No match: %s"
+msgstr "E151: Neniu kongruo: %s"
#, c-format
msgid "E152: Cannot open %s for writing"
@@ -1071,6 +1063,10 @@ msgid "E154: Duplicate tag \"%s\" in file %s/%s"
msgstr "E154: Ripetita etikedo \"%s\" en dosiero %s/%s"
#, c-format
+msgid "E150: Not a directory: %s"
+msgstr "E150: Ne estas dosierujo: %s"
+
+#, c-format
msgid "E160: Unknown sign command: %s"
msgstr "E160: Nekonata simbola komando: %s"
@@ -1095,9 +1091,19 @@ msgstr "E159: Mankas numero de simbolo"
msgid "E158: Invalid buffer name: %s"
msgstr "E158: Nevalida nomo de bufro: %s"
+msgid "E934: Cannot jump to a buffer that does not have a name"
+msgstr "E934: Ne eblas salti al sennoma bufro"
+
+#, c-format
+msgid "E157: Invalid sign ID: %ld"
+msgstr "E157: Nevalida identigilo de simbolo: %ld"
+
#, c-format
-msgid "E157: Invalid sign ID: %<PRId64>"
-msgstr "E157: Nevalida identigilo de simbolo: %<PRId64>"
+msgid "E885: Not possible to change sign %s"
+msgstr "E885: Ne eblas ŝanĝi simbolon %s"
+
+msgid " (NOT FOUND)"
+msgstr " (NETROVITA)"
msgid " (not supported)"
msgstr " (nesubtenata)"
@@ -1105,12 +1111,15 @@ msgstr " (nesubtenata)"
msgid "[Deleted]"
msgstr "[Forviŝita]"
+msgid "No old files"
+msgstr "Neniu malnova dosiero"
+
msgid "Entering Debug mode. Type \"cont\" to continue."
msgstr "Eniras sencimigan reĝimon. Tajpu \"cont\" por daŭrigi."
#, c-format
-msgid "line %<PRId64>: %s"
-msgstr "linio %<PRId64>: %s"
+msgid "line %ld: %s"
+msgstr "linio %ld: %s"
#, c-format
msgid "cmd: %s"
@@ -1124,8 +1133,8 @@ msgid "frame at highest level: %d"
msgstr "kadro je la plej alta nivelo: %d"
#, c-format
-msgid "Breakpoint in \"%s%s\" line %<PRId64>"
-msgstr "Kontrolpunkto en \"%s%s\" linio %<PRId64>"
+msgid "Breakpoint in \"%s%s\" line %ld"
+msgstr "Kontrolpunkto en \"%s%s\" linio %ld"
#, c-format
msgid "E161: Breakpoint not found: %s"
@@ -1135,8 +1144,8 @@ msgid "No breakpoints defined"
msgstr "Neniu kontrolpunkto estas difinita"
#, c-format
-msgid "%3d %s %s line %<PRId64>"
-msgstr "%3d %s %s linio %<PRId64>"
+msgid "%3d %s %s line %ld"
+msgstr "%3d %s %s linio %ld"
msgid "E750: First use \":profile start {fname}\""
msgstr "E750: Uzu unue \":profile start {dosiernomo}\""
@@ -1180,6 +1189,9 @@ msgstr "Serĉado de \"%s\""
msgid "not found in '%s': \"%s\""
msgstr "ne trovita en '%s: \"%s\""
+msgid "Source Vim script"
+msgstr "Ruli Vim-skripton"
+
#, c-format
msgid "Cannot source a directory: \"%s\""
msgstr "Ne eblas ruli dosierujon: \"%s\""
@@ -1189,21 +1201,25 @@ msgid "could not source \"%s\""
msgstr "ne eblis ruli \"%s\""
#, c-format
-msgid "line %<PRId64>: could not source \"%s\""
-msgstr "linio %<PRId64>: ne eblis ruli \"%s\""
+msgid "line %ld: could not source \"%s\""
+msgstr "linio %ld: ne eblis ruli \"%s\""
#, c-format
msgid "sourcing \"%s\""
msgstr "rulas \"%s\""
#, c-format
-msgid "line %<PRId64>: sourcing \"%s\""
-msgstr "linio %<PRId64>: rulas \"%s\""
+msgid "line %ld: sourcing \"%s\""
+msgstr "linio %ld: rulas \"%s\""
#, c-format
msgid "finished sourcing %s"
msgstr "finis ruli %s"
+#, c-format
+msgid "continuing in %s"
+msgstr "daŭrigas en %s"
+
msgid "modeline"
msgstr "reĝimlinio"
@@ -1236,8 +1252,6 @@ msgstr "Aktuala %slingvo: \"%s\""
msgid "E197: Cannot set language to \"%s\""
msgstr "E197: Ne eblas ŝanĝi la lingvon al \"%s\""
-#. don't redisplay the window
-#. don't wait for return
msgid "Entering Ex mode. Type \"visual\" to go to Normal mode."
msgstr "Eniras reĝimon Ex. Tajpu \"visual\" por iri al reĝimo Normala."
@@ -1269,12 +1283,10 @@ msgstr "E493: Inversa amplekso donita"
msgid "Backwards range given, OK to swap"
msgstr "Inversa amplekso donita, permuteblas"
-#. append
-#. typed wrong
msgid "E494: Use w or w>>"
msgstr "E494: Uzu w aŭ w>>"
-msgid "E319: The command is not available in this version"
+msgid "E319: Sorry, the command is not available in this version"
msgstr "E319: Bedaŭrinde, tiu komando ne haveblas en tiu versio"
msgid "E172: Only one file name allowed"
@@ -1291,8 +1303,8 @@ msgid "E173: 1 more file to edit"
msgstr "E173: 1 plia redaktenda dosiero"
#, c-format
-msgid "E173: %<PRId64> more files to edit"
-msgstr "E173: %<PRId64> pliaj redaktendaj dosieroj"
+msgid "E173: %ld more files to edit"
+msgstr "E173: %ld pliaj redaktendaj dosieroj"
msgid "E174: Command already exists: add ! to replace it"
msgstr "E174: La komando jam ekzistas: aldonu ! por anstataŭigi ĝin"
@@ -1358,6 +1370,9 @@ msgstr ""
msgid "E467: Custom completion requires a function argument"
msgstr "E467: Uzula kompletigo bezonas funkcian argumenton"
+msgid "unknown"
+msgstr "nekonata"
+
#, c-format
msgid "E185: Cannot find color scheme '%s'"
msgstr "E185: Ne eblas trovi agordaron de koloroj '%s'"
@@ -1371,6 +1386,9 @@ msgstr "E784: Ne eblas fermi lastan langeton"
msgid "Already only one tab page"
msgstr "Jam nur unu langeto"
+msgid "Edit File in new window"
+msgstr "Redakti Dosieron en nova fenestro"
+
#, c-format
msgid "Tab page %d"
msgstr "Langeto %d"
@@ -1378,6 +1396,9 @@ msgstr "Langeto %d"
msgid "No swap file"
msgstr "Neniu permutodosiero .swp"
+msgid "Append File"
+msgstr "Postaldoni dosieron"
+
msgid "E747: Cannot change directory, buffer is modified (add ! to override)"
msgstr ""
"E747: Ne eblas ŝanĝi dosierujon, bufro estas ŝanĝita (aldonu ! por transpasi)"
@@ -1391,6 +1412,10 @@ msgstr "E187: Nekonata"
msgid "E465: :winsize requires two number arguments"
msgstr "E465: \":winsize\" bezonas du numerajn argumentojn"
+#, c-format
+msgid "Window position: X %d, Y %d"
+msgstr "Pozicio de fenestro: X %d, Y %d"
+
msgid "E188: Obtaining window position not implemented for this platform"
msgstr ""
"E188: Akiro de pozicio de fenestro ne estas realigita por tiu platformo"
@@ -1398,6 +1423,22 @@ msgstr ""
msgid "E466: :winpos requires two number arguments"
msgstr "E466: \":winpos\" bezonas du numerajn argumentojn"
+msgid "E930: Cannot use :redir inside execute()"
+msgstr "E930: Ne eblas uzi :redir en execute()"
+
+msgid "Save Redirection"
+msgstr "Konservi alidirekton"
+
+# DP: mi ne certas pri superflugo
+msgid "Save View"
+msgstr "Konservi superflugon"
+
+msgid "Save Session"
+msgstr "Konservi seancon"
+
+msgid "Save Setup"
+msgstr "Konservi agordaron"
+
#, c-format
msgid "E739: Cannot create directory: %s"
msgstr "E739: Ne eblas krei dosierujon %s"
@@ -1417,6 +1458,9 @@ msgstr "E191: Argumento devas esti litero, citilo aŭ retrocitilo"
msgid "E192: Recursive use of :normal too deep"
msgstr "E192: Tro profunda rekursia alvoko de \":normal\""
+msgid "E809: #< is not available without the +eval feature"
+msgstr "E809: #< ne haveblas sen la eblo +eval"
+
msgid "E194: No alternate file name to substitute for '#'"
msgstr "E194: Neniu alterna dosiernomo por anstataŭigi al '#'"
@@ -1439,9 +1483,9 @@ msgstr "E498: neniu dosiernomo \":source\" por anstataŭigi al \"<sfile>\""
msgid "E842: no line number to use for \"<slnum>\""
msgstr "E842: neniu uzebla numero de linio por \"<slnum>\""
-#, fuzzy, c-format
-#~ msgid "E499: Empty file name for '%' or '#', only works with \":p:h\""
-#~ msgstr "E499: Malplena dosiernomo por '%' aŭ '#', nur funkcias kun \":p:h\""
+#, no-c-format
+msgid "E499: Empty file name for '%' or '#', only works with \":p:h\""
+msgstr "E499: Malplena dosiernomo por '%' aŭ '#', nur funkcias kun \":p:h\""
msgid "E500: Evaluates to an empty string"
msgstr "E500: Liveras malplenan ĉenon"
@@ -1449,6 +1493,9 @@ msgstr "E500: Liveras malplenan ĉenon"
msgid "E195: Cannot open viminfo file for reading"
msgstr "E195: Ne eblas malfermi dosieron viminfo en lega reĝimo"
+msgid "E196: No digraphs in this version"
+msgstr "E196: Neniu duliteraĵo en tiu versio"
+
msgid "E608: Cannot :throw exceptions with 'Vim' prefix"
msgstr "E608: Ne eblas lanĉi (:throw) escepton kun prefikso 'Vim'"
@@ -1466,8 +1513,8 @@ msgid "Exception discarded: %s"
msgstr "Escepto ne konservita: %s"
#, c-format
-msgid "%s, line %<PRId64>"
-msgstr "%s, linio %<PRId64>"
+msgid "%s, line %ld"
+msgstr "%s, linio %ld"
#. always scroll up, don't overwrite
#, c-format
@@ -1600,33 +1647,6 @@ msgstr "E198: cmd_pchar preter la longo de komando"
msgid "E199: Active window or buffer deleted"
msgstr "E199: Aktiva fenestro aŭ bufro forviŝita"
-msgid "E854: path too long for completion"
-msgstr "E854: tro longa vojo por kompletigo"
-
-#, c-format
-msgid ""
-"E343: Invalid path: '**[number]' must be at the end of the path or be "
-"followed by '%s'."
-msgstr ""
-"E343: Nevalida vojo: '**[nombro]' devas esti ĉe la fino de la vojo aŭ "
-"sekvita de '%s'."
-
-#, c-format
-msgid "E344: Can't find directory \"%s\" in cdpath"
-msgstr "E344: Ne eblas trovi dosierujon \"%s\" en cdpath"
-
-#, c-format
-msgid "E345: Can't find file \"%s\" in path"
-msgstr "E345: Ne eblas trovi dosieron \"%s\" en serĉvojo"
-
-#, c-format
-msgid "E346: No more directory \"%s\" found in cdpath"
-msgstr "E346: Ne plu trovis dosierujon \"%s\" en cdpath"
-
-#, c-format
-msgid "E347: No more file \"%s\" found in path"
-msgstr "E347: Ne plu trovis dosieron \"%s\" en serĉvojo"
-
msgid "E812: Autocommands changed buffer or buffer name"
msgstr "E812: Aŭtokomandoj ŝanĝis bufron aŭ nomon de bufro"
@@ -1639,6 +1659,9 @@ msgstr "estas dosierujo"
msgid "is not a file"
msgstr "ne estas dosiero"
+msgid "is a device (disabled with 'opendevice' option)"
+msgstr "estas aparatdosiero (malŝaltita per la opcio 'opendevice')"
+
msgid "[New File]"
msgstr "[Nova dosiero]"
@@ -1657,26 +1680,25 @@ msgstr "E200: La aŭtokomandoj *ReadPre igis la dosieron nelegebla"
msgid "E201: *ReadPre autocommands must not change current buffer"
msgstr "E201: La aŭtokomandoj *ReadPre ne rajtas ŝanĝi la aktualan bufron"
-msgid "Nvim: Reading from stdin...\n"
+msgid "Vim: Reading from stdin...\n"
msgstr "Vim: Legado el stdin...\n"
+msgid "Reading from stdin..."
+msgstr "Legado el stdin..."
+
#. Re-opening the original file failed!
msgid "E202: Conversion made file unreadable!"
msgstr "E202: Konverto igis la dosieron nelegebla!"
-#. fifo or socket
msgid "[fifo/socket]"
msgstr "[rektvica memoro/kontaktoskatolo]"
-#. fifo
msgid "[fifo]"
msgstr "[rektvica memoro]"
-#. or socket
msgid "[socket]"
msgstr "[kontaktoskatolo]"
-#. or character special
msgid "[character special]"
msgstr "[speciala signo]"
@@ -1693,12 +1715,12 @@ msgid "[converted]"
msgstr "[konvertita]"
#, c-format
-msgid "[CONVERSION ERROR in line %<PRId64>]"
-msgstr "[ERARO DE KONVERTO en linio %<PRId64>]"
+msgid "[CONVERSION ERROR in line %ld]"
+msgstr "[ERARO DE KONVERTO en linio %ld]"
#, c-format
-msgid "[ILLEGAL BYTE in line %<PRId64>]"
-msgstr "[NEVALIDA BAJTO en linio %<PRId64>]"
+msgid "[ILLEGAL BYTE in line %ld]"
+msgstr "[NEVALIDA BAJTO en linio %ld]"
msgid "[READ ERRORS]"
msgstr "[ERAROJ DE LEGADO]"
@@ -1707,7 +1729,7 @@ msgid "Can't find temp file for conversion"
msgstr "Ne eblas trovi provizoran dosieron por konverti"
msgid "Conversion with 'charconvert' failed"
-msgstr "Konverto kun 'charconvert' fiaskis"
+msgstr "Konverto kun 'charconvert' malsukcesis"
msgid "can't read output of 'charconvert'"
msgstr "ne eblas legi la eligon de 'charconvert'"
@@ -1721,9 +1743,18 @@ msgstr "E203: Aŭtokomandoj forviŝis aŭ malŝargis la skribendan bufron"
msgid "E204: Autocommand changed number of lines in unexpected way"
msgstr "E204: Aŭtokomando ŝanĝis la nombron de linioj neatendite"
+msgid "NetBeans disallows writes of unmodified buffers"
+msgstr "NetBeans malpermesas skribojn de neŝanĝitaj bufroj"
+
+msgid "Partial writes disallowed for NetBeans buffers"
+msgstr "Partaj skriboj malpermesitaj ĉe bufroj NetBeans"
+
msgid "is not a file or writable device"
msgstr "ne estas dosiero aŭ skribebla aparatdosiero"
+msgid "writing to device disabled with 'opendevice' option"
+msgstr "skribo al aparatdosiero malŝaltita per la opcio 'opendevice'"
+
msgid "is read-only (add ! to override)"
msgstr "estas nurlegebla (aldonu ! por transpasi)"
@@ -1742,7 +1773,9 @@ msgstr "E509: Ne eblas krei restaŭrkopion (aldonu ! por transpasi)"
msgid "E510: Can't make backup file (add ! to override)"
msgstr "E510: Ne eblas krei restaŭrkopion (aldonu ! por transpasi)"
-#. Can't write without a tempfile!
+msgid "E460: The resource fork would be lost (add ! to override)"
+msgstr "E460: La rimeda forko estus perdita (aldonu ! por transpasi)"
+
msgid "E214: Can't find temp file for writing"
msgstr "E214: Ne eblas trovi provizoran dosieron por skribi"
@@ -1757,20 +1790,21 @@ msgstr "E212: Ne eblas malfermi la dosieron por skribi"
# AM: fsync: ne traduku (nomo de C-komando)
msgid "E667: Fsync failed"
-msgstr "E667: Fsync fiaskis"
+msgstr "E667: Fsync malsukcesis"
msgid "E512: Close failed"
-msgstr "E512: Fermo fiaskis"
+msgstr "E512: Fermo malsukcesis"
msgid "E513: write error, conversion failed (make 'fenc' empty to override)"
-msgstr "E513: skriberaro, konverto fiaskis (igu 'fenc' malplena por transpasi)"
+msgstr ""
+"E513: skriberaro, konverto malsukcesis (igu 'fenc' malplena por transpasi)"
#, c-format
msgid ""
-"E513: write error, conversion failed in line %<PRId64> (make 'fenc' empty to "
+"E513: write error, conversion failed in line %ld (make 'fenc' empty to "
"override)"
msgstr ""
-"E513: skriberaro, konverto fiaskis en linio %<PRId64> (igu 'fenc' malplena "
+"E513: skriberaro, konverto malsukcesis en linio %ld (igu 'fenc' malplena "
"por transpasi)"
msgid "E514: write error (file system full?)"
@@ -1780,8 +1814,8 @@ msgid " CONVERSION ERROR"
msgstr " ERARO DE KONVERTO"
#, c-format
-msgid " in line %<PRId64>;"
-msgstr " en linio %<PRId64>;"
+msgid " in line %ld;"
+msgstr " en linio %ld;"
msgid "[Device]"
msgstr "[Aparatdosiero]"
@@ -1842,15 +1876,15 @@ msgid "1 line, "
msgstr "1 linio, "
#, c-format
-msgid "%<PRId64> lines, "
-msgstr "%<PRId64> linioj, "
+msgid "%ld lines, "
+msgstr "%ld linioj, "
msgid "1 character"
msgstr "1 signo"
#, c-format
-msgid "%<PRId64> characters"
-msgstr "%<PRId64> signoj"
+msgid "%lld characters"
+msgstr "%lld signoj"
msgid "[noeol]"
msgstr "[sen EOL]"
@@ -1944,6 +1978,12 @@ msgstr "aŭto-forviŝas aŭtokomandon: %s <bufro=%d>"
msgid "E367: No such group: \"%s\""
msgstr "E367: Ne ekzistas tia grupo: \"%s\""
+msgid "E936: Cannot delete the current group"
+msgstr "E936: Ne eblas forviŝi la aktualan grupon"
+
+msgid "W19: Deleting augroup that is still in use"
+msgstr "W19: Forviŝo de augroup kiu estas ankoraŭ uzata"
+
#, c-format
msgid "E215: Illegal character after *: %s"
msgstr "E215: Nevalida signo post *: %s"
@@ -2005,10 +2045,11 @@ msgid "E351: Cannot delete fold with current 'foldmethod'"
msgstr "E351: Ne eblas forviŝi faldon per la aktuala 'foldmethod'"
#, c-format
-msgid "+--%3ld lines folded "
-msgstr "+--%3ld linioj falditaj "
+msgid "+--%3ld line folded "
+msgid_plural "+--%3ld lines folded "
+msgstr[0] "+--%3ld linio faldita "
+msgstr[1] "+--%3ld linioj falditaj "
-#. buffer has already been read
msgid "E222: Add to read buffer"
msgstr "E222: Aldoni al lega bufro"
@@ -2040,329 +2081,294 @@ msgstr "Neniu mapo trovita"
msgid "E228: makemap: Illegal mode"
msgstr "E228: makemap: Nevalida reĝimo"
-#. key value of 'cedit' option
-#. type of cmdline window or 0
-#. result of cmdline window or 0
-msgid "--No lines in buffer--"
-msgstr "--Neniu linio en bufro--"
-
-#.
-#. * The error messages that can be shared are included here.
-#. * Excluded are errors that are only used once and debugging messages.
-#.
-msgid "E470: Command aborted"
-msgstr "E470: komando ĉesigita"
+msgid "E851: Failed to create a new process for the GUI"
+msgstr "E851: Malsukcesis krei novan procezon por la grafika interfaco"
-msgid "E471: Argument required"
-msgstr "E471: Argumento bezonata"
+msgid "E852: The child process failed to start the GUI"
+msgstr "E852: La ida procezo malsukcesis startigi la grafikan interfacon"
-msgid "E10: \\ should be followed by /, ? or &"
-msgstr "E10: \\ devus esti sekvita de /, ? aŭ &"
+msgid "E229: Cannot start the GUI"
+msgstr "E229: Ne eblas lanĉi la grafikan interfacon"
-msgid "E11: Invalid in command-line window; <CR> executes, CTRL-C quits"
-msgstr ""
-"E11: Nevalida en fenestro de komanda linio; <CR> plenumas, CTRL-C eliras"
+#, c-format
+msgid "E230: Cannot read from \"%s\""
+msgstr "E230: Ne eblas legi el \"%s\""
-msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search"
+msgid "E665: Cannot start GUI, no valid font found"
msgstr ""
-"E12: Nepermesebla komando el exrc/vimrc en aktuala dosierujo aŭ etikeda serĉo"
-
-msgid "E171: Missing :endif"
-msgstr "E171: Mankas \":endif\""
-
-msgid "E600: Missing :endtry"
-msgstr "E600: Mankas \":endtry\""
-
-msgid "E170: Missing :endwhile"
-msgstr "E170: Mankas \":endwhile\""
-
-msgid "E170: Missing :endfor"
-msgstr "E170: Mankas \":endfor\""
-
-msgid "E588: :endwhile without :while"
-msgstr "E588: \":endwhile\" sen \":while\""
-
-msgid "E588: :endfor without :for"
-msgstr "E588: \":endfor\" sen \":for\""
-
-msgid "E13: File exists (add ! to override)"
-msgstr "E13: Dosiero ekzistas (aldonu ! por transpasi)"
-
-msgid "E472: Command failed"
-msgstr "E472: La komando fiaskis"
-
-msgid "E473: Internal error"
-msgstr "E473: Interna eraro"
+"E665: Ne eblas startigi grafikan interfacon, neniu valida tiparo trovita"
-msgid "Interrupted"
-msgstr "Interrompita"
-
-msgid "E14: Invalid address"
-msgstr "E14: Nevalida adreso"
-
-msgid "E474: Invalid argument"
-msgstr "E474: Nevalida argumento"
+msgid "E231: 'guifontwide' invalid"
+msgstr "E231: 'guifontwide' nevalida"
-#, c-format
-msgid "E475: Invalid argument: %s"
-msgstr "E475: Nevalida argumento: %s"
+msgid "E599: Value of 'imactivatekey' is invalid"
+msgstr "E599: Valoro de 'imactivatekey' estas nevalida"
#, c-format
-msgid "E15: Invalid expression: %s"
-msgstr "E15: Nevalida esprimo: %s"
+msgid "E254: Cannot allocate color %s"
+msgstr "E254: Ne eblas disponigi koloron %s"
-msgid "E16: Invalid range"
-msgstr "E16: Nevalida amplekso"
+msgid "No match at cursor, finding next"
+msgstr "Neniu kongruo ĉe kursorpozicio, trovas sekvan"
-msgid "E476: Invalid command"
-msgstr "E476: Nevalida komando"
+msgid "<cannot open> "
+msgstr "<ne eblas malfermi> "
#, c-format
-msgid "E17: \"%s\" is a directory"
-msgstr "E17: \"%s\" estas dosierujo"
+msgid "E616: vim_SelFile: can't get font %s"
+msgstr "E616: vim_SelFile: ne eblas akiri tiparon %s"
-#, fuzzy
-#~ msgid "E900: Invalid job id"
-#~ msgstr "E49: Nevalida grando de rulumo"
+msgid "E614: vim_SelFile: can't return to current directory"
+msgstr "E614: vim_SelFile: ne eblas reveni al la aktuala dosierujo"
-#~ msgid "E901: Job table is full"
-#~ msgstr ""
+msgid "Pathname:"
+msgstr "Serĉvojo:"
-#, c-format
-msgid "E364: Library call failed for \"%s()\""
-msgstr "E364: Alvoko al biblioteko fiaskis por \"%s()\""
+msgid "E615: vim_SelFile: can't get current directory"
+msgstr "E615: vim_SelFile: ne eblas akiri aktualan dosierujon"
-msgid "E19: Mark has invalid line number"
-msgstr "E19: Marko havas nevalidan numeron de linio"
+msgid "OK"
+msgstr "Bone"
-msgid "E20: Mark not set"
-msgstr "E20: Marko ne estas agordita"
+msgid "Cancel"
+msgstr "Rezigni"
-msgid "E21: Cannot make changes, 'modifiable' is off"
-msgstr "E21: Ne eblas fari ŝanĝojn, 'modifiable' estas malŝaltita"
+msgid "Scrollbar Widget: Could not get geometry of thumb pixmap."
+msgstr ""
+"Fenestraĵo de rulumskalo: Ne eblis akiri geometrion de reduktita rastrumbildo"
-msgid "E22: Scripts nested too deep"
-msgstr "E22: Tro profunde ingitaj skriptoj"
+msgid "Vim dialog"
+msgstr "Vim dialogo"
-msgid "E23: No alternate file"
-msgstr "E23: Neniu alterna dosiero"
+msgid "E232: Cannot create BalloonEval with both message and callback"
+msgstr "E232: Ne eblas krei BalloonEval kun ambaŭ mesaĝo kaj reagfunkcio"
-msgid "E24: No such abbreviation"
-msgstr "E24: Ne estas tia mallongigo"
+msgid "_Cancel"
+msgstr "_Rezigni"
-msgid "E477: No ! allowed"
-msgstr "E477: Neniu ! permesebla"
+msgid "_Save"
+msgstr "_Konservi"
-msgid "E25: Nvim does not have a built-in GUI"
-msgstr "E25: Grafika interfaco ne uzeblas: Malŝaltita dum kompilado"
+msgid "_Open"
+msgstr "_Malfermi"
-#, c-format
-msgid "E28: No such highlight group name: %s"
-msgstr "E28: Neniu grupo de emfazo kiel: %s"
+msgid "_OK"
+msgstr "_Bone"
-msgid "E29: No inserted text yet"
-msgstr "E29: Ankoraŭ neniu enmetita teksto"
+msgid ""
+"&Yes\n"
+"&No\n"
+"&Cancel"
+msgstr ""
+"&Jes\n"
+"&Ne\n"
+"&Rezigni"
-msgid "E30: No previous command line"
-msgstr "E30: Neniu antaŭa komanda linio"
+msgid "Yes"
+msgstr "Jes"
-msgid "E31: No such mapping"
-msgstr "E31: Neniu tiel mapo"
+msgid "No"
+msgstr "Ne"
-msgid "E479: No match"
-msgstr "E479: Neniu kongruo"
+# todo '_' is for hotkey, i guess?
+msgid "Input _Methods"
+msgstr "Enigaj _metodoj"
-#, c-format
-msgid "E480: No match: %s"
-msgstr "E480: Neniu kongruo: %s"
+msgid "VIM - Search and Replace..."
+msgstr "VIM - Serĉi kaj anstataŭigi..."
-msgid "E32: No file name"
-msgstr "E32: Neniu dosiernomo"
+msgid "VIM - Search..."
+msgstr "VIM- Serĉi..."
-msgid "E33: No previous substitute regular expression"
-msgstr "E33: Neniu antaŭa regulesprimo de anstataŭigo"
+msgid "Find what:"
+msgstr "Serĉi kion:"
-msgid "E34: No previous command"
-msgstr "E34: Neniu antaŭa komando"
+msgid "Replace with:"
+msgstr "Anstataŭigi per:"
-msgid "E35: No previous regular expression"
-msgstr "E35: Neniu antaŭa regulesprimo"
+#. whole word only button
+msgid "Match whole word only"
+msgstr "Kongrui kun nur plena vorto"
-msgid "E481: No range allowed"
-msgstr "E481: Amplekso nepermesebla"
+#. match case button
+msgid "Match case"
+msgstr "Uskleca kongruo"
-msgid "E36: Not enough room"
-msgstr "E36: Ne sufiĉe da spaco"
+msgid "Direction"
+msgstr "Direkto"
-#, c-format
-msgid "E482: Can't create file %s"
-msgstr "E482: Ne eblas krei dosieron %s"
+#. 'Up' and 'Down' buttons
+msgid "Up"
+msgstr "Supren"
-msgid "E483: Can't get temp file name"
-msgstr "E483: Ne eblas akiri provizoran dosiernomon"
+msgid "Down"
+msgstr "Suben"
-#, c-format
-msgid "E484: Can't open file %s"
-msgstr "E484: Ne eblas malfermi dosieron %s"
+msgid "Find Next"
+msgstr "Trovi sekvantan"
-#, c-format
-msgid "E485: Can't read file %s"
-msgstr "E485: Ne eblas legi dosieron %s"
+msgid "Replace"
+msgstr "Anstataŭigi"
-msgid "E37: No write since last change (add ! to override)"
-msgstr "E37: Neniu skribo de post lasta ŝanĝo (aldonu ! por transpasi)"
+msgid "Replace All"
+msgstr "Anstataŭigi ĉiujn"
-#, fuzzy
-#~ msgid "E37: No write since last change"
-#~ msgstr "[Neniu skribo de post lasta ŝanĝo]\n"
+msgid "_Close"
+msgstr "_Fermi"
-msgid "E38: Null argument"
-msgstr "E38: Nula argumento"
+msgid "Vim: Received \"die\" request from session manager\n"
+msgstr "Vim: Ricevis peton \"die\" (morti) el la seanca administrilo\n"
-msgid "E39: Number expected"
-msgstr "E39: Nombro atendita"
+msgid "Close tab"
+msgstr "Fermi langeton"
-#, c-format
-msgid "E40: Can't open errorfile %s"
-msgstr "E40: Ne eblas malfermi eraran dosieron %s"
+msgid "New tab"
+msgstr "Nova langeto"
-msgid "E41: Out of memory!"
-msgstr "E41: Ne plu restas memoro!"
+msgid "Open Tab..."
+msgstr "Malfermi langeton..."
-msgid "Pattern not found"
-msgstr "Ŝablono ne trovita"
+msgid "Vim: Main window unexpectedly destroyed\n"
+msgstr "Vim: Ĉefa fenestro neatendite detruiĝis\n"
-#, c-format
-msgid "E486: Pattern not found: %s"
-msgstr "E486: Ŝablono ne trovita: %s"
+msgid "&Filter"
+msgstr "&Filtri"
-msgid "E487: Argument must be positive"
-msgstr "E487: La argumento devas esti pozitiva"
+msgid "&Cancel"
+msgstr "&Rezigni"
-msgid "E459: Cannot go back to previous directory"
-msgstr "E459: Ne eblas reiri al antaŭa dosierujo"
+msgid "Directories"
+msgstr "Dosierujoj"
-msgid "E42: No Errors"
-msgstr "E42: Neniu eraro"
+msgid "Filter"
+msgstr "Filtri"
-msgid "E776: No location list"
-msgstr "E776: Neniu listo de loko"
+msgid "&Help"
+msgstr "&Helpo"
-msgid "E43: Damaged match string"
-msgstr "E43: Difekta kongruenda ĉeno"
+msgid "Files"
+msgstr "Dosieroj"
-msgid "E44: Corrupted regexp program"
-msgstr "E44: Difekta programo de regulesprimo"
+msgid "&OK"
+msgstr "&Bone"
-msgid "E45: 'readonly' option is set (add ! to override)"
-msgstr "E45: La opcio 'readonly' estas ŝaltita '(aldonu ! por transpasi)"
+msgid "Selection"
+msgstr "Apartigo"
-#, c-format
-msgid "E46: Cannot change read-only variable \"%s\""
-msgstr "E46: Ne eblas ŝanĝi nurlegeblan variablon \"%s\""
+msgid "Find &Next"
+msgstr "Trovi &Sekvanta"
-#, c-format
-msgid "E794: Cannot set variable in the sandbox: \"%s\""
-msgstr "E794: Ne eblas agordi variablon en la sabloludejo: \"%s\""
+msgid "&Replace"
+msgstr "&Anstataŭigi"
-msgid "E713: Cannot use empty key for Dictionary"
-msgstr "E713: Ne eblas uzi malplenan ŝlosilon de Vortaro"
+msgid "Replace &All"
+msgstr "Anstataŭigi ĉi&on"
-msgid "E47: Error while reading errorfile"
-msgstr "E47: Eraro dum legado de erardosiero"
+msgid "&Undo"
+msgstr "&Malfari"
-msgid "E48: Not allowed in sandbox"
-msgstr "E48: Nepermesebla en sabloludejo"
-
-msgid "E523: Not allowed here"
-msgstr "E523: Nepermesebla tie"
+msgid "Open tab..."
+msgstr "Malfermi langeton..."
-msgid "E359: Screen mode setting not supported"
-msgstr "E359: Reĝimo de ekrano ne subtenata"
+msgid "Find string (use '\\\\' to find a '\\')"
+msgstr "Trovi ĉenon (uzu '\\\\' por trovi '\\')"
-msgid "E49: Invalid scroll size"
-msgstr "E49: Nevalida grando de rulumo"
+msgid "Find & Replace (use '\\\\' to find a '\\')"
+msgstr "Trovi kaj anstataŭigi (uzu '\\\\' por trovi '\\')"
-msgid "E91: 'shell' option is empty"
-msgstr "E91: La opcio 'shell' estas malplena"
+#. We fake this: Use a filter that doesn't select anything and a default
+#. * file name that won't be used.
+msgid "Not Used"
+msgstr "Ne uzata"
-msgid "E255: Couldn't read in sign data!"
-msgstr "E255: Ne eblis legi datumojn de simboloj!"
+msgid "Directory\t*.nothing\n"
+msgstr "Dosierujo\t*.nenio\n"
-msgid "E72: Close error on swap file"
-msgstr "E72: Eraro dum malfermo de permutodosiero .swp"
+#, c-format
+msgid "E671: Cannot find window title \"%s\""
+msgstr "E671: Ne eblas trovi titolon de fenestro \"%s\""
-msgid "E73: tag stack empty"
-msgstr "E73: malplena stako de etikedo"
+#, c-format
+msgid "E243: Argument not supported: \"-%s\"; Use the OLE version."
+msgstr "E243: Ne subtenata argumento: \"-%s\"; Uzu la version OLE."
-msgid "E74: Command too complex"
-msgstr "E74: Komando tro kompleksa"
+msgid "E672: Unable to open window inside MDI application"
+msgstr "E672: Ne eblas malfermi fenestron interne de aplikaĵo MDI"
-msgid "E75: Name too long"
-msgstr "E75: Nomo tro longa"
+msgid "Vim E458: Cannot allocate colormap entry, some colors may be incorrect"
+msgstr ""
+"Vim E458: Ne eblas disponigi rikordon de kolormapo, iuj koloroj estas eble "
+"neĝustaj"
-msgid "E76: Too many ["
-msgstr "E76: Tro da ["
+#, c-format
+msgid "E250: Fonts for the following charsets are missing in fontset %s:"
+msgstr "E250: Tiparoj de tiuj signaroj mankas en aro de tiparo %s:"
-msgid "E77: Too many file names"
-msgstr "E77: Tro da dosiernomoj"
+#, c-format
+msgid "E252: Fontset name: %s"
+msgstr "E252: Nomo de tiparo: %s"
-msgid "E488: Trailing characters"
-msgstr "E488: Vostaj signoj"
+#, c-format
+msgid "Font '%s' is not fixed-width"
+msgstr "Tiparo '%s' ne estas egallarĝa"
-msgid "E78: Unknown mark"
-msgstr "E78: Nekonata marko"
+#, c-format
+msgid "E253: Fontset name: %s"
+msgstr "E253: Nomo de tiparo: %s"
-msgid "E79: Cannot expand wildcards"
-msgstr "E79: Ne eblas malvolvi ĵokerojn"
+#, c-format
+msgid "Font0: %s"
+msgstr "Font0: %s"
-msgid "E591: 'winheight' cannot be smaller than 'winminheight'"
-msgstr "E591: 'winheight' ne rajtas esti malpli ol 'winminheight'"
+#, c-format
+msgid "Font1: %s"
+msgstr "Font1: %s"
-msgid "E592: 'winwidth' cannot be smaller than 'winminwidth'"
-msgstr "E592: 'winwidth' ne rajtas esti malpli ol 'winminwidth'"
+#, c-format
+msgid "Font%ld width is not twice that of font0"
+msgstr "Font%ld ne estas duoble pli larĝa ol font0"
-msgid "E80: Error while writing"
-msgstr "E80: Eraro dum skribado"
+#, c-format
+msgid "Font0 width: %ld"
+msgstr "Larĝo de font0: %ld"
-msgid "Zero count"
-msgstr "Nul kvantoro"
+#, c-format
+msgid "Font1 width: %ld"
+msgstr "Larĝo de Font1: %ld"
-msgid "E81: Using <SID> not in a script context"
-msgstr "E81: Uzo de <SID> ekster kunteksto de skripto"
+msgid "Invalid font specification"
+msgstr "Nevalida tiparo specifita"
-#, c-format
-msgid "E685: Internal error: %s"
-msgstr "E685: Interna eraro: %s"
+msgid "&Dismiss"
+msgstr "&Forlasi"
-msgid "E363: pattern uses more memory than 'maxmempattern'"
-msgstr "E363: ŝablono uzas pli da memoro ol 'maxmempattern'"
+msgid "no specific match"
+msgstr "Neniu specifa kongruo"
-msgid "E749: empty buffer"
-msgstr "E749: malplena bufro"
+msgid "Vim - Font Selector"
+msgstr "Vim - Elektilo de tiparo"
-#, c-format
-msgid "E86: Buffer %<PRId64> does not exist"
-msgstr "E86: La bufro %<PRId64> ne ekzistas"
+msgid "Name:"
+msgstr "Nomo:"
-msgid "E682: Invalid search pattern or delimiter"
-msgstr "E682: Nevalida serĉa ŝablono aŭ disigilo"
+#. create toggle button
+msgid "Show size in Points"
+msgstr "Montri grandon en punktoj"
-msgid "E139: File is loaded in another buffer"
-msgstr "E139: Dosiero estas ŝargita en alia bufro"
+msgid "Encoding:"
+msgstr "Kodoprezento:"
-#, c-format
-msgid "E764: Option '%s' is not set"
-msgstr "E764: La opcio '%s' ne estas ŝaltita"
+msgid "Font:"
+msgstr "Tiparo:"
-msgid "E850: Invalid register name"
-msgstr "E850: Nevalida nomo de reĝistro"
+msgid "Style:"
+msgstr "Stilo:"
-msgid "search hit TOP, continuing at BOTTOM"
-msgstr "serĉo atingis SUPRON, daŭrigonte al SUBO"
+msgid "Size:"
+msgstr "Grando:"
-msgid "search hit BOTTOM, continuing at TOP"
-msgstr "serĉo atingis SUBON, daŭrigonte al SUPRO"
+msgid "E256: Hangul automata ERROR"
+msgstr "E256: ERARO en aŭtomato de korea alfabeto"
msgid "E550: Missing colon"
msgstr "E550: Mankas dupunkto"
@@ -2453,7 +2459,7 @@ msgid "Sending to printer..."
msgstr "Sendas al presilo..."
msgid "E365: Failed to print PostScript file"
-msgstr "E365: Presado de PostSkripta dosiero fiaskis"
+msgstr "E365: Presado de PostSkripta dosiero malsukcesis"
msgid "Print job sent."
msgstr "Laboro de presado sendita."
@@ -2493,6 +2499,9 @@ msgstr "E257: cstag: etikedo netrovita"
msgid "E563: stat(%s) error: %d"
msgstr "E563: Eraro de stat(%s): %d"
+msgid "E563: stat error"
+msgstr "E563: Eraro de stat"
+
#, c-format
msgid "E564: %s is not a directory or a valid cscope database"
msgstr "E564: %s ne estas dosierujo aŭ valida datumbazo de cscope"
@@ -2502,8 +2511,8 @@ msgid "Added cscope database %s"
msgstr "Aldonis datumbazon de cscope %s"
#, c-format
-msgid "E262: error reading cscope connection %<PRId64>"
-msgstr "E262: eraro dum legado de konekto de cscope %<PRId64>"
+msgid "E262: error reading cscope connection %ld"
+msgstr "E262: eraro dum legado de konekto de cscope %ld"
msgid "E561: unknown cscope search type"
msgstr "E561: nekonata tipo de serĉo de cscope"
@@ -2514,18 +2523,17 @@ msgstr "E566: Ne eblis krei duktojn de cscope"
msgid "E622: Could not fork for cscope"
msgstr "E622: Ne eblis forki cscope"
-#, fuzzy
-#~ msgid "cs_create_connection setpgid failed"
-#~ msgstr "plenumo de cs_create_connection fiaskis"
+msgid "cs_create_connection setpgid failed"
+msgstr "plenumo de cs_create_connection-setgpid malsukcesis"
msgid "cs_create_connection exec failed"
-msgstr "plenumo de cs_create_connection fiaskis"
+msgstr "plenumo de cs_create_connection malsukcesis"
msgid "cs_create_connection: fdopen for to_fp failed"
-msgstr "cs_create_connection: fdopen de to_fp fiaskis"
+msgstr "cs_create_connection: fdopen de to_fp malsukcesis"
msgid "cs_create_connection: fdopen for fr_fp failed"
-msgstr "cs_create_connection: fdopen de fr_fp fiaskis"
+msgstr "cs_create_connection: fdopen de fr_fp malsukcesis"
msgid "E623: Could not spawn cscope process"
msgstr "E623: Ne eblis naskigi procezon cscope"
@@ -2550,6 +2558,7 @@ msgstr "%-5s: %s%*s (Uzo: %s)"
msgid ""
"\n"
+" a: Find assignments to this symbol\n"
" c: Find functions calling this function\n"
" d: Find functions called by this function\n"
" e: Find this egrep pattern\n"
@@ -2558,9 +2567,9 @@ msgid ""
" i: Find files #including this file\n"
" s: Find this C symbol\n"
" t: Find this text string\n"
-" a: Find assignments to this symbol\n"
msgstr ""
"\n"
+" a: Trovi valirizojn al tiu simbolo\n"
" c: Trovi funkciojn, kiuj alvokas tiun funkcion\n"
" d: Trovi funkciojn alvokataj de tiu funkcio\n"
" e: Trovi tiun egrep-ŝablonon\n"
@@ -2569,7 +2578,13 @@ msgstr ""
" i: Trovi dosierojn, kiuj inkluzivas (#include) tiun dosieron\n"
" s: Trovi tiun C-simbolon\n"
" t: Trovi tiun ĉenon\n"
-" a: Trovi valirizojn al tiu simbolo\n"
+
+#, c-format
+msgid "E625: cannot open cscope database: %s"
+msgstr "E625: ne eblas malfermi datumbazon de cscope: %s"
+
+msgid "E626: cannot get cscope database information"
+msgstr "E626: ne eblas akiri informojn pri la datumbazo de cscope"
msgid "E568: duplicate cscope database not added"
msgstr "E568: ripetita datumbazo de cscope ne aldonita"
@@ -2613,6 +2628,230 @@ msgstr "neniu konekto de cscope\n"
msgid " # pid database name prepend path\n"
msgstr " # pid nomo de datumbazo prefiksa vojo\n"
+msgid "Lua library cannot be loaded."
+msgstr "La biblioteko Lua no ŝargeblis."
+
+msgid "cannot save undo information"
+msgstr "ne eblas konservi informojn de malfaro"
+
+msgid ""
+"E815: Sorry, this command is disabled, the MzScheme libraries could not be "
+"loaded."
+msgstr ""
+"E815: Bedaŭrinde, tiu komando estas malŝaltita, ne eblis ŝargi la "
+"bibliotekojn."
+
+msgid ""
+"E895: Sorry, this command is disabled, the MzScheme's racket/base module "
+"could not be loaded."
+msgstr ""
+"E895: Bedaŭrinde, tiu komando estas malŝaltita, ne eblis ŝargi la modulon de "
+"MzScheme racket/base."
+
+msgid "invalid expression"
+msgstr "nevalida esprimo"
+
+msgid "expressions disabled at compile time"
+msgstr "esprimoj malŝaltitaj dum kompilado"
+
+msgid "hidden option"
+msgstr "kaŝita opcio"
+
+msgid "unknown option"
+msgstr "nekonata opcio"
+
+msgid "window index is out of range"
+msgstr "indekso de fenestro estas ekster limoj"
+
+msgid "couldn't open buffer"
+msgstr "ne eblis malfermi bufron"
+
+msgid "cannot delete line"
+msgstr "ne eblas forviŝi linion"
+
+msgid "cannot replace line"
+msgstr "ne eblas anstataŭigi linion"
+
+msgid "cannot insert line"
+msgstr "ne eblas enmeti linion"
+
+msgid "string cannot contain newlines"
+msgstr "ĉeno ne rajtas enhavi liniavancojn"
+
+msgid "error converting Scheme values to Vim"
+msgstr "eraro dum konverto de Scheme-valoro al Vim"
+
+msgid "Vim error: ~a"
+msgstr "Eraro de Vim: ~a"
+
+msgid "Vim error"
+msgstr "Eraro de Vim"
+
+msgid "buffer is invalid"
+msgstr "bufro estas nevalida"
+
+msgid "window is invalid"
+msgstr "fenestro estas nevalida"
+
+msgid "linenr out of range"
+msgstr "numero de linio ekster limoj"
+
+msgid "not allowed in the Vim sandbox"
+msgstr "nepermesebla en sabloludejo de Vim"
+
+msgid "E836: This Vim cannot execute :python after using :py3"
+msgstr "E836: Vim ne povas plenumi :python post uzo de :py3"
+
+msgid ""
+"E263: Sorry, this command is disabled, the Python library could not be "
+"loaded."
+msgstr ""
+"E263: Bedaŭrinde tiu komando estas malŝaltita: la biblioteko de Pitono ne "
+"ŝargeblis."
+
+msgid ""
+"E887: Sorry, this command is disabled, the Python's site module could not be "
+"loaded."
+msgstr ""
+"E887` Bedaŭrinde tiu komando estas malŝaltita: la biblioteko de Pitono ne "
+"ŝargeblis."
+
+msgid "E659: Cannot invoke Python recursively"
+msgstr "E659: Ne eblas alvoki Pitonon rekursie"
+
+msgid "E837: This Vim cannot execute :py3 after using :python"
+msgstr "E837: Vim ne povas plenumi :py3 post uzo de :python"
+
+msgid "E265: $_ must be an instance of String"
+msgstr "E265: $_ devas esti apero de Ĉeno"
+
+msgid ""
+"E266: Sorry, this command is disabled, the Ruby library could not be loaded."
+msgstr ""
+"E266: Bedaŭrinde tiu komando estas malŝaltita, la biblioteko Ruby ne "
+"ŝargeblis."
+
+msgid "E267: unexpected return"
+msgstr "E267: \"return\" neatendita"
+
+msgid "E268: unexpected next"
+msgstr "E268: \"next\" neatendita"
+
+msgid "E269: unexpected break"
+msgstr "E269: \"break\" neatendita"
+
+msgid "E270: unexpected redo"
+msgstr "E270: \"redo\" neatendita"
+
+msgid "E271: retry outside of rescue clause"
+msgstr "E271: \"retry\" ekster klaŭzo \"rescue\""
+
+msgid "E272: unhandled exception"
+msgstr "E272: netraktita escepto"
+
+#, c-format
+msgid "E273: unknown longjmp status %d"
+msgstr "E273: nekonata stato de longjmp: %d"
+
+msgid "invalid buffer number"
+msgstr "nevalida numero de bufro"
+
+msgid "not implemented yet"
+msgstr "ankoraŭ ne realigita"
+
+#. ???
+msgid "cannot set line(s)"
+msgstr "ne eblas meti la linio(j)n"
+
+msgid "invalid mark name"
+msgstr "nevalida nomo de marko"
+
+msgid "mark not set"
+msgstr "marko ne estas metita"
+
+#, c-format
+msgid "row %d column %d"
+msgstr "linio %d kolumno %d"
+
+msgid "cannot insert/append line"
+msgstr "ne eblas enmeti/postaldoni linion"
+
+msgid "line number out of range"
+msgstr "numero de linio ekster limoj"
+
+msgid "unknown flag: "
+msgstr "nekonata flago: "
+
+# DP: ĉu traduki vimOption
+msgid "unknown vimOption"
+msgstr "nekonata vimOption"
+
+msgid "keyboard interrupt"
+msgstr "klavara interrompo"
+
+msgid "vim error"
+msgstr "eraro de Vim"
+
+msgid "cannot create buffer/window command: object is being deleted"
+msgstr "ne eblas krei komandon de bufro/fenestro: objekto estas forviŝiĝanta"
+
+msgid ""
+"cannot register callback command: buffer/window is already being deleted"
+msgstr ""
+"ne eblas registri postalvokan komandon: bufro/fenestro estas jam forviŝiĝanta"
+
+#. This should never happen. Famous last word?
+msgid ""
+"E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim."
+"org"
+msgstr ""
+"E280: NERIPAREBLA TCL-ERARO: reflist difekta!? Bv. retpoŝti al vim-dev@vim."
+"org"
+
+msgid "cannot register callback command: buffer/window reference not found"
+msgstr ""
+"ne eblas registri postalvokan komandon: referenco de bufro/fenestro ne "
+"troveblas"
+
+msgid ""
+"E571: Sorry, this command is disabled: the Tcl library could not be loaded."
+msgstr ""
+"E571: Bedaŭrinde tiu komando estas malŝaltita: la biblioteko Tcl ne "
+"ŝargeblis."
+
+#, c-format
+msgid "E572: exit code %d"
+msgstr "E572: elira kodo %d"
+
+msgid "cannot get line"
+msgstr "ne eblas akiri linion"
+
+msgid "Unable to register a command server name"
+msgstr "Ne eblas registri nomon de komanda servilo"
+
+msgid "E248: Failed to send command to the destination program"
+msgstr "E248: Sendo de komando al cela programo malsukcesis"
+
+#, c-format
+msgid "E573: Invalid server id used: %s"
+msgstr "E573: Nevalida identigilo de servilo uzita: %s"
+
+msgid "E251: VIM instance registry property is badly formed. Deleted!"
+msgstr ""
+"E251: Ecoj de registro de apero de VIM estas nevalide formata. Forviŝita!"
+
+#, c-format
+msgid "E938: Duplicate key in JSON: \"%s\""
+msgstr "E938: Ripetita ŝlosilo en JSON: \"%s\""
+
+#, c-format
+msgid "E696: Missing comma in List: %s"
+msgstr "E696: Mankas komo en Listo: %s"
+
+#, c-format
+msgid "E697: Missing end of List ']': %s"
+msgstr "E697: Mankas fino de Listo ']': %s"
+
msgid "Unknown option argument"
msgstr "Nekonata argumento de opcio"
@@ -2635,6 +2874,15 @@ msgstr "Nevalida argumento por"
msgid "%d files to edit\n"
msgstr "%d redaktendaj dosieroj\n"
+msgid "netbeans is not supported with this GUI\n"
+msgstr "netbeans ne estas subtenata kun tiu grafika interfaco\n"
+
+msgid "'-nb' cannot be used: not enabled at compile time\n"
+msgstr "'-nb' ne uzeblas: malŝaltita dum kompilado\n"
+
+msgid "This Vim was not compiled with the diff feature."
+msgstr "Tiu Vim ne estis kompilita kun la kompara eblo."
+
msgid "Attempt to open script file again: \""
msgstr "Provas malfermi skriptan dosieron denove: \""
@@ -2644,6 +2892,12 @@ msgstr "Ne eblas malfermi en lega reĝimo: \""
msgid "Cannot open for script output: \""
msgstr "Ne eblas malfermi por eligo de skripto: \""
+msgid "Vim: Error: Failure to start gvim from NetBeans\n"
+msgstr "Vim: Eraro: malsukcesis lanĉi gvim el NetBeans\n"
+
+msgid "Vim: Error: This version of Vim does not run in a Cygwin terminal\n"
+msgstr "Vim: Eraro: Tiu versio de Vim ne ruliĝas en terminalo Cygwin\n"
+
msgid "Vim: Warning: Output is not to a terminal\n"
msgstr "Vim: Averto: Eligo ne estas al terminalo\n"
@@ -2699,6 +2953,13 @@ msgstr ""
msgid ""
"\n"
+"Where case is ignored prepend / to make flag upper case"
+msgstr ""
+"\n"
+"Kie uskleco estas ignorita antaŭaldonu / por igi flagon majuskla"
+
+msgid ""
+"\n"
"\n"
"Arguments:\n"
msgstr ""
@@ -2712,6 +2973,18 @@ msgstr "--\t\t\tNur dosiernomoj post tio"
msgid "--literal\t\tDon't expand wildcards"
msgstr "--literal\t\tNe malvolvi ĵokerojn"
+msgid "-register\t\tRegister this gvim for OLE"
+msgstr "-register\t\tRegistri tiun gvim al OLE"
+
+msgid "-unregister\t\tUnregister gvim for OLE"
+msgstr "-unregister\t\tMalregistri gvim de OLE"
+
+msgid "-g\t\t\tRun using GUI (like \"gvim\")"
+msgstr "-g\t\t\tRuli per grafika interfaco (kiel \"gvim\")"
+
+msgid "-f or --nofork\tForeground: Don't fork when starting GUI"
+msgstr "-f aŭ --nofork\tMalfono: ne forki kiam lanĉas grafikan interfacon"
+
msgid "-v\t\t\tVi mode (like \"vi\")"
msgstr "-v\t\t\tReĝimo Vi (kiel \"vi\")"
@@ -2773,6 +3046,12 @@ msgstr "-r (kun dosiernomo)\tRestaŭri kolapsintan seancon"
msgid "-L\t\t\tSame as -r"
msgstr "-L\t\t\tKiel -r"
+msgid "-f\t\t\tDon't use newcli to open window"
+msgstr "-f\t\t\tNe uzi newcli por malfermi fenestrojn"
+
+msgid "-dev <device>\t\tUse <device> for I/O"
+msgstr "-dev <aparatdosiero>\t\tUzi <aparatdosiero>-n por eneligo"
+
msgid "-A\t\t\tstart in Arabic mode"
msgstr "-A\t\t\tKomenci en araba reĝimo"
@@ -2785,9 +3064,20 @@ msgstr "-F\t\t\tKomenci en persa reĝimo"
msgid "-T <terminal>\tSet terminal type to <terminal>"
msgstr "-T <terminalo>\tAgordi terminalon al <terminalo>"
+msgid "--not-a-term\t\tSkip warning for input/output not being a terminal"
+msgstr ""
+"--not-a-term\t\tPreterpasi averton por enigo/eligo, kiu ne estas terminalo"
+
+msgid "--ttyfail\t\tExit if input or output is not a terminal"
+msgstr ""
+"--ttyfail\t\tEliri se le eniro aŭ eliro ne estas terminalo"
+
msgid "-u <vimrc>\t\tUse <vimrc> instead of any .vimrc"
msgstr "-u <vimrc>\t\tUzi <vimrc> anstataŭ iun ajn .vimrc"
+msgid "-U <gvimrc>\t\tUse <gvimrc> instead of any .gvimrc"
+msgstr "-U <gvimrc>\t\tUzi <gvimrc> anstataŭ iun ajn .gvimrc"
+
msgid "--noplugin\t\tDon't load plugin scripts"
msgstr "--noplugin\t\tNe ŝargi kromaĵajn skriptojn"
@@ -2829,6 +3119,50 @@ msgid "-W <scriptout>\tWrite all typed commands to file <scriptout>"
msgstr ""
"-W <eligaskripto>\tSkribi ĉiujn tajpitajn komandojn al dosiero <eligaskripto>"
+msgid "-x\t\t\tEdit encrypted files"
+msgstr "-x\t\t\tRedakti ĉifradan dosieron"
+
+msgid "-display <display>\tConnect vim to this particular X-server"
+msgstr "-display <ekrano>\tKonekti Vim al tiu X-servilo"
+
+msgid "-X\t\t\tDo not connect to X server"
+msgstr "-X\t\t\tNe konekti al X-servilo"
+
+msgid "--remote <files>\tEdit <files> in a Vim server if possible"
+msgstr "--remote <dosieroj>\tRedakti <dosieroj>-n en Vim-servilo se eblas"
+
+msgid "--remote-silent <files> Same, don't complain if there is no server"
+msgstr "--remote-silent <dosieroj> Same, sed ne plendi se ne estas servilo"
+
+msgid ""
+"--remote-wait <files> As --remote but wait for files to have been edited"
+msgstr ""
+"--remote-wait <dosieroj> Kiel --remote sed atendi ĝis dosieroj estas "
+"redaktitaj"
+
+msgid ""
+"--remote-wait-silent <files> Same, don't complain if there is no server"
+msgstr ""
+"--remote-wait-silent <dosieroj> Same, sed ne plendi se ne estas servilo"
+
+msgid ""
+"--remote-tab[-wait][-silent] <files> As --remote but use tab page per file"
+msgstr ""
+"--remote-tab[-wait][-silent] <dosieroj> Kiel --remote sed uzi langeton por "
+"ĉiu dosiero"
+
+msgid "--remote-send <keys>\tSend <keys> to a Vim server and exit"
+msgstr "--remote-send <klavoj> Sendi <klavoj>-n al Vim-servilo kaj eliri"
+
+msgid "--remote-expr <expr>\tEvaluate <expr> in a Vim server and print result"
+msgstr "--remote-expr <espr>\tKomputi <espr> en Vim-servilo kaj afiŝi rezulton"
+
+msgid "--serverlist\t\tList available Vim server names and exit"
+msgstr "--serverlist\t\tListigi haveblajn nomojn de Vim-serviloj kaj eliri"
+
+msgid "--servername <name>\tSend to/become the Vim server <name>"
+msgstr "--servername <nomo>\tSendu al/iĝi la Vim-servilo <nomo>"
+
msgid "--startuptime <file>\tWrite startup timing messages to <file>"
msgstr ""
"--startuptime <dosiero> Skribi mesaĝojn de komenca tempomezurado al "
@@ -2843,6 +3177,118 @@ msgstr "-h aŭ --help\tAfiŝi Helpon (tiun mesaĝon) kaj eliri"
msgid "--version\t\tPrint version information and exit"
msgstr "--version\t\tAfiŝi informon de versio kaj eliri"
+msgid ""
+"\n"
+"Arguments recognised by gvim (Motif version):\n"
+msgstr ""
+"\n"
+"Argumentoj agnoskitaj de gvim (versio Motif):\n"
+
+msgid ""
+"\n"
+"Arguments recognised by gvim (neXtaw version):\n"
+msgstr ""
+"\n"
+"Argumentoj agnoskitaj de gvim (versio neXtaw):\n"
+
+msgid ""
+"\n"
+"Arguments recognised by gvim (Athena version):\n"
+msgstr ""
+"\n"
+"Argumentoj agnoskitaj de gvim (versio Athena):\n"
+
+msgid "-display <display>\tRun vim on <display>"
+msgstr "-display <ekrano>\tLanĉi vim sur <ekrano>"
+
+msgid "-iconic\t\tStart vim iconified"
+msgstr "-iconic\t\tLanĉi vim piktograme"
+
+msgid "-background <color>\tUse <color> for the background (also: -bg)"
+msgstr "-background <koloro>\tUzi <koloro>-n por la fona koloro (ankaŭ: -bg)"
+
+msgid "-foreground <color>\tUse <color> for normal text (also: -fg)"
+msgstr ""
+"-foreground <koloro>\tUzi <koloro>-n por la malfona koloro (ankaŭ: -fg)"
+
+msgid "-font <font>\t\tUse <font> for normal text (also: -fn)"
+msgstr "-font <tiparo>\tUzi <tiparo>-n por normala teksto (ankaŭ: -fn)"
+
+msgid "-boldfont <font>\tUse <font> for bold text"
+msgstr "-boldfont <tiparo>\tUzi <tiparo>-n por grasa teksto"
+
+msgid "-italicfont <font>\tUse <font> for italic text"
+msgstr "-italicfont <tiparo>\tUzi <tiparo>-n por kursiva teksto"
+
+msgid "-geometry <geom>\tUse <geom> for initial geometry (also: -geom)"
+msgstr "-geometry <geom>\tUzi <geom> kiel komenca geometrio (ankaŭ: -geom)"
+
+msgid "-borderwidth <width>\tUse a border width of <width> (also: -bw)"
+msgstr "-borderwidth <larĝo>\tUzi <larĝo>-n kiel larĝo de bordero (ankaŭ: -bw)"
+
+msgid "-scrollbarwidth <width> Use a scrollbar width of <width> (also: -sw)"
+msgstr ""
+"-scrollbarwidth <larĝo> Uzi <larĝo>-n kiel larĝo de rulumskalo (ankaŭ: -sw)"
+
+msgid "-menuheight <height>\tUse a menu bar height of <height> (also: -mh)"
+msgstr ""
+"-menuheight <alto>\tUzi <alto>-n kiel alto de menuzona alto (ankaŭ: -mh)"
+
+msgid "-reverse\t\tUse reverse video (also: -rv)"
+msgstr "-reverse\t\tUzi inversan videon (ankaŭ: -rv)"
+
+msgid "+reverse\t\tDon't use reverse video (also: +rv)"
+msgstr "+reverse\t\tNe uzi inversan videon (ankaŭ: +rv)"
+
+msgid "-xrm <resource>\tSet the specified resource"
+msgstr "-xrm <rimedo>\tAgordi la specifitan <rimedo>-n"
+
+msgid ""
+"\n"
+"Arguments recognised by gvim (GTK+ version):\n"
+msgstr ""
+"\n"
+"Argumentoj agnoskitaj de gvim (versio GTK+):\n"
+
+msgid "-display <display>\tRun vim on <display> (also: --display)"
+msgstr "-display <ekrano>\tLanĉi Vim sur tiu <ekrano> (ankaŭ: --display)"
+
+msgid "--role <role>\tSet a unique role to identify the main window"
+msgstr "--role <rolo>\tDoni unikan rolon por identigi la ĉefan fenestron"
+
+msgid "--socketid <xid>\tOpen Vim inside another GTK widget"
+msgstr "--socketid <xid>\tMalfermi Vim en alia GTK fenestraĵo"
+
+msgid "--echo-wid\t\tMake gvim echo the Window ID on stdout"
+msgstr "--echo-wid\t\tIgas gvim afiŝi la identigilon de vindozo sur stdout"
+
+msgid "-P <parent title>\tOpen Vim inside parent application"
+msgstr "-P <gepatra titolo>\tMalfermi Vim en gepatra aplikaĵo"
+
+msgid "--windowid <HWND>\tOpen Vim inside another win32 widget"
+msgstr "--windowid <HWND>\tMalfermi Vim en alia win32 fenestraĵo"
+
+msgid "No display"
+msgstr "Neniu ekrano"
+
+#. Failed to send, abort.
+msgid ": Send failed.\n"
+msgstr ": Sendo malsukcesis.\n"
+
+#. Let vim start normally.
+msgid ": Send failed. Trying to execute locally\n"
+msgstr ": Sendo malsukcesis. Provo de loka plenumo\n"
+
+#, c-format
+msgid "%d of %d edited"
+msgstr "%d de %d redaktita(j)"
+
+msgid "No display: Send expression failed.\n"
+msgstr "Neniu ekrano: Sendado de esprimo malsukcesis.\n"
+
+msgid ": Send expression failed.\n"
+msgstr ": Sendado de esprimo malsukcesis.\n"
+
msgid "No marks set"
msgstr "Neniu marko"
@@ -2899,6 +3345,28 @@ msgstr ""
msgid "Missing '>'"
msgstr "Mankas '>'"
+msgid "E543: Not a valid codepage"
+msgstr "E543: Nevalida kodpaĝo"
+
+msgid "E284: Cannot set IC values"
+msgstr "E284: Ne eblas agordi valorojn de IC"
+
+msgid "E285: Failed to create input context"
+msgstr "E285: Kreado de eniga kunteksto malsukcesis"
+
+msgid "E286: Failed to open input method"
+msgstr "E286: Malfermo de eniga metodo malsukcesis"
+
+msgid "E287: Warning: Could not set destroy callback to IM"
+msgstr "E287: Averto: Ne eblis agordi detruan reagfunkcion al IM"
+
+msgid "E288: input method doesn't support any style"
+msgstr "E288: eniga metodo subtenas neniun stilon"
+
+# DP: mi ne scias, kio estas "preedit"
+msgid "E289: input method doesn't support my preedit type"
+msgstr "E289: eniga metodo ne subtenas mian antaŭredaktan tipon"
+
msgid "E293: block was not locked"
msgstr "E293: bloko ne estis ŝlosita"
@@ -2926,6 +3394,9 @@ msgstr "E298: Ĉu ne akiris blokon n-ro 1?"
msgid "E298: Didn't get block nr 2?"
msgstr "E298: Ĉu ne akiris blokon n-ro 2?"
+msgid "E843: Error while updating swap file crypt"
+msgstr "E843: Eraro dum ĝisdatigo de ĉifrada permutodosiero .swp"
+
#. could not (re)open the swap file, what can we do????
msgid "E301: Oops, lost the swap file!!!"
msgstr "E301: Ve, perdis la permutodosieron .swp!!!"
@@ -2941,7 +3412,6 @@ msgstr ""
msgid "E304: ml_upd_block0(): Didn't get block 0??"
msgstr "E304: ml_upd_block0(): Ne akiris blokon 0??"
-#. no swap files found
#, c-format
msgid "E305: No swap file found for %s"
msgstr "E305: Neniu permutodosiero .swp trovita por %s"
@@ -2986,6 +3456,11 @@ msgstr ""
",\n"
"aŭ la dosiero estas difekta."
+#, c-format
+msgid ""
+"E833: %s is encrypted and this version of Vim does not support encryption"
+msgstr "E833: %s estas ĉifrata kaj tiu versio de Vim ne subtenas ĉifradon"
+
msgid " has been damaged (page size is smaller than minimum value).\n"
msgstr " difektiĝis (paĝa grando pli malgranda ol minimuma valoro).\n"
@@ -3001,6 +3476,39 @@ msgid "E308: Warning: Original file may have been changed"
msgstr "E308: Averto: Originala dosiero eble ŝanĝiĝis"
#, c-format
+msgid "Swap file is encrypted: \"%s\""
+msgstr "Perumutodosiero .swp estas ĉifrata: \"%s\""
+
+msgid ""
+"\n"
+"If you entered a new crypt key but did not write the text file,"
+msgstr ""
+"\n"
+"Se vi tajpis novan ŝlosilon de ĉifrado sed ne skribis la tekstan dosieron,"
+
+msgid ""
+"\n"
+"enter the new crypt key."
+msgstr ""
+"\n"
+"tajpu la novan ŝlosilon de ĉifrado."
+
+msgid ""
+"\n"
+"If you wrote the text file after changing the crypt key press enter"
+msgstr ""
+"\n"
+"Se vi skribis la tekstan dosieron post ŝanĝo de la ŝlosilo de ĉifrado, premu "
+"enenklavon"
+
+msgid ""
+"\n"
+"to use the same key for text file and swap file"
+msgstr ""
+"\n"
+"por uzi la saman ŝlosilon por la teksta dosiero kaj permuto dosiero .swp"
+
+#, c-format
msgid "E309: Unable to read block 1 from %s"
msgstr "E309: Ne eblas legi blokon 1 de %s"
@@ -3069,6 +3577,10 @@ msgstr ""
"La dosiero .swp nun forviŝindas.\n"
"\n"
+msgid "Using crypt key from swap file for the text file.\n"
+msgstr ""
+"Uzas ŝlosilon de ĉifrado el permuto dosiero .swp por la teksta dosiero.\n"
+
#. use msg() to start the scrolling properly
msgid "Swap files found:"
msgstr "Permutodosiero .swp trovita:"
@@ -3145,6 +3657,13 @@ msgstr " (ankoraŭ ruliĝas)"
msgid ""
"\n"
+" [not usable with this version of Vim]"
+msgstr ""
+"\n"
+" [ne uzebla per tiu versio de Vim]"
+
+msgid ""
+"\n"
" [not usable on this computer]"
msgstr ""
"\n"
@@ -3163,15 +3682,15 @@ msgid "File preserved"
msgstr "Dosiero konservita"
msgid "E314: Preserve failed"
-msgstr "E314: Konservo fiaskis"
+msgstr "E314: Konservo malsukcesis"
#, c-format
-msgid "E315: ml_get: invalid lnum: %<PRId64>"
-msgstr "E315: ml_get: nevalida lnum: %<PRId64>"
+msgid "E315: ml_get: invalid lnum: %ld"
+msgstr "E315: ml_get: nevalida lnum: %ld"
#, c-format
-msgid "E316: ml_get: cannot find line %<PRId64>"
-msgstr "E316: ml_get: ne eblas trovi linion %<PRId64>"
+msgid "E316: ml_get: cannot find line %ld"
+msgstr "E316: ml_get: ne eblas trovi linion %ld"
msgid "E317: pointer block id wrong 3"
msgstr "E317: nevalida referenco de bloko id 3"
@@ -3189,8 +3708,8 @@ msgid "deleted block 1?"
msgstr "ĉu forviŝita bloko 1?"
#, c-format
-msgid "E320: Cannot find line %<PRId64>"
-msgstr "E320: Ne eblas trovi linion %<PRId64>"
+msgid "E320: Cannot find line %ld"
+msgstr "E320: Ne eblas trovi linion %ld"
msgid "E317: pointer block id wrong"
msgstr "E317: nevalida referenco de bloko id"
@@ -3199,12 +3718,12 @@ msgid "pe_line_count is zero"
msgstr "pe_line_count estas nul"
#, c-format
-msgid "E322: line number out of range: %<PRId64> past the end"
-msgstr "E322: numero de linio ekster limoj: %<PRId64> preter la fino"
+msgid "E322: line number out of range: %ld past the end"
+msgstr "E322: numero de linio ekster limoj: %ld preter la fino"
#, c-format
-msgid "E323: line count wrong in block %<PRId64>"
-msgstr "E323: nevalida nombro de linioj en bloko %<PRId64>"
+msgid "E323: line count wrong in block %ld"
+msgstr "E323: nevalida nombro de linioj en bloko %ld"
msgid "Stack size increases"
msgstr "Stako pligrandiĝas"
@@ -3232,6 +3751,8 @@ msgstr "Dum malfermo de dosiero \""
msgid " NEWER than swap file!\n"
msgstr " PLI NOVA ol permutodosiero .swp!\n"
+#. Some of these messages are long to allow translation to
+#. * other languages.
msgid ""
"\n"
"(1) Another program may be editing the same file. If this is the case,\n"
@@ -3243,9 +3764,6 @@ msgstr ""
" por ne havi du malsamajn aperojn de la sama dosiero, kiam vi faros\n"
" ŝanĝojn. Eliru aŭ daŭrigu singarde.\n"
-msgid " Quit, or continue with caution.\n"
-msgstr " Eliru, aŭ daŭrigu singarde.\n"
-
msgid "(2) An edit session for this file crashed.\n"
msgstr "(2) Redakta seanco de tiu dosiero kolapsis.\n"
@@ -3311,21 +3829,9 @@ msgstr ""
"&Eliri\n"
"Ĉe&sigi"
-#.
-#. * Change the ".swp" extension to find another file that can be used.
-#. * First decrement the last char: ".swo", ".swn", etc.
-#. * If that still isn't enough decrement the last but one char: ".svz"
-#. * Can happen when editing many "No Name" buffers.
-#.
-#. ".s?a"
-#. ".saa": tried enough, give up
msgid "E326: Too many swap files found"
msgstr "E326: Tro da dosieroj trovitaj"
-#, c-format
-msgid "E342: Out of memory! (allocating %<PRIu64> bytes)"
-msgstr "E342: Ne plu restas memoro! (disponigo de %<PRIu64> bajtoj)"
-
msgid "E327: Part of menu-item path is not sub-menu"
msgstr "E327: Parto de vojo de menuero ne estas sub-menuo"
@@ -3358,6 +3864,9 @@ msgstr ""
"\n"
"--- Menuoj ---"
+msgid "Tear off this menu"
+msgstr "Disigi tiun menuon"
+
msgid "E333: Menu path must lead to a menu item"
msgstr "E333: Vojo de menuo devas konduki al menuero"
@@ -3387,6 +3896,9 @@ msgstr "linio %4ld:"
msgid "E354: Invalid register name: '%s'"
msgstr "E354: Nevalida nomo de reĝistro: '%s'"
+msgid "Messages maintainer: Bram Moolenaar <Bram@vim.org>"
+msgstr "Flegado de mesaĝoj: Dominique PELLÉ <dominique.pelle@gmail.com>"
+
msgid "Interrupt: "
msgstr "Interrompo: "
@@ -3394,8 +3906,8 @@ msgid "Press ENTER or type command to continue"
msgstr "Premu ENEN-KLAVON aŭ tajpu komandon por daŭrigi"
#, c-format
-msgid "%s line %<PRId64>"
-msgstr "%s linio %<PRId64>"
+msgid "%s line %ld"
+msgstr "%s linio %ld"
msgid "-- More --"
msgstr "-- Pli --"
@@ -3413,15 +3925,6 @@ msgstr ""
"&Jes\n"
"&Ne"
-msgid ""
-"&Yes\n"
-"&No\n"
-"&Cancel"
-msgstr ""
-"&Jes\n"
-"&Ne\n"
-"&Rezigni"
-
# AM: ĉu Vim konvertos unuliterajn respondojn?
# DP: jes, '&' bone funkcias (mi kontrolis)
msgid ""
@@ -3437,11 +3940,24 @@ msgstr ""
"&Forlasi Ĉion\n"
"&Rezigni"
+msgid "Select Directory dialog"
+msgstr "Dialogujo de dosiera elekto"
+
+msgid "Save File dialog"
+msgstr "Dialogujo de dosiera konservo"
+
+msgid "Open File dialog"
+msgstr "Dialogujo de dosiera malfermo"
+
+#. TODO: non-GUI file selector here
+msgid "E338: Sorry, no file browser in console mode"
+msgstr "E338: Bedaŭrinde ne estas dosierfoliumilo en konzola reĝimo"
+
msgid "E766: Insufficient arguments for printf()"
msgstr "E766: Ne sufiĉaj argumentoj por printf()"
msgid "E807: Expected Float argument for printf()"
-msgstr "E807: Atendis Glitpunktnombron kiel argumento de printf()"
+msgstr "E807: Atendis Glitpunktnombron kiel argumenton de printf()"
msgid "E767: Too many arguments to printf()"
msgstr "E767: Tro da argumentoj al printf()"
@@ -3463,12 +3979,12 @@ msgid "1 line less"
msgstr "1 malplia linio"
#, c-format
-msgid "%<PRId64> more lines"
-msgstr "%<PRId64> pliaj linioj"
+msgid "%ld more lines"
+msgstr "%ld pliaj linioj"
#, c-format
-msgid "%<PRId64> fewer lines"
-msgstr "%<PRId64> malpliaj linioj"
+msgid "%ld fewer lines"
+msgstr "%ld malpliaj linioj"
msgid " (Interrupted)"
msgstr " (Interrompita)"
@@ -3476,16 +3992,112 @@ msgstr " (Interrompita)"
msgid "Beep!"
msgstr "Bip!"
+msgid "ERROR: "
+msgstr "ERARO: "
+
+#, c-format
+msgid ""
+"\n"
+"[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu\n"
+msgstr ""
+"\n"
+"[bajtoj] totalaj disponigitaj/maldisponigitaj %lu-%lu, nun uzataj %lu, "
+"kulmina uzo %lu\n"
+
+#, c-format
+msgid ""
+"[calls] total re/malloc()'s %lu, total free()'s %lu\n"
+"\n"
+msgstr ""
+"[alvokoj] totalaj re/malloc() %lu, totalaj free() %lu\n"
+"\n"
+
+msgid "E340: Line is becoming too long"
+msgstr "E340: Linio iĝas tro longa"
+
+#, c-format
+msgid "E341: Internal error: lalloc(%ld, )"
+msgstr "E341: Interna eraro: lalloc(%ld, )"
+
+#, c-format
+msgid "E342: Out of memory! (allocating %lu bytes)"
+msgstr "E342: Ne plu restas memoro! (disponigo de %lu bajtoj)"
+
#, c-format
msgid "Calling shell to execute: \"%s\""
msgstr "Alvokas ŝelon por plenumi: \"%s\""
+msgid "E545: Missing colon"
+msgstr "E545: Mankas dupunkto"
+
+msgid "E546: Illegal mode"
+msgstr "E546: Reĝimo nepermesata"
+
+msgid "E547: Illegal mouseshape"
+msgstr "E547: Nevalida formo de muskursoro"
+
+msgid "E548: digit expected"
+msgstr "E548: cifero atendata"
+
+msgid "E549: Illegal percentage"
+msgstr "E549: Nevalida procento"
+
+msgid "E854: path too long for completion"
+msgstr "E854: tro longa vojo por kompletigo"
+
+#, c-format
+msgid ""
+"E343: Invalid path: '**[number]' must be at the end of the path or be "
+"followed by '%s'."
+msgstr ""
+"E343: Nevalida vojo: '**[nombro]' devas esti ĉe la fino de la vojo aŭ "
+"sekvita de '%s'."
+
+#, c-format
+msgid "E344: Can't find directory \"%s\" in cdpath"
+msgstr "E344: Ne eblas trovi dosierujon \"%s\" en cdpath"
+
+#, c-format
+msgid "E345: Can't find file \"%s\" in path"
+msgstr "E345: Ne eblas trovi dosieron \"%s\" en serĉvojo"
+
+#, c-format
+msgid "E346: No more directory \"%s\" found in cdpath"
+msgstr "E346: Ne plu trovis dosierujon \"%s\" en cdpath"
+
+#, c-format
+msgid "E347: No more file \"%s\" found in path"
+msgstr "E347: Ne plu trovis dosieron \"%s\" en serĉvojo"
+
+#, c-format
+msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
+msgstr ""
+"E668: Nevalida permeso de dosiero de informo de konekto NetBeans: \"%s\""
+
+#, c-format
+msgid "E658: NetBeans connection lost for buffer %ld"
+msgstr "E658: Konekto de NetBeans perdita por bufro %ld"
+
+msgid "E838: netbeans is not supported with this GUI"
+msgstr "E838: netbeans ne estas subtenata kun tiu grafika interfaco"
+
+msgid "E511: netbeans already connected"
+msgstr "E511: nebeans jam konektata"
+
+#, c-format
+msgid "E505: %s is read-only (add ! to override)"
+msgstr "E505: %s estas nurlegebla (aldonu ! por transpasi)"
+
msgid "E349: No identifier under cursor"
msgstr "E349: Neniu identigilo sub la kursoro"
msgid "E774: 'operatorfunc' is empty"
msgstr "E774: 'operatorfunc' estas malplena"
+# DP: ĉu Eval devas esti tradukita?
+msgid "E775: Eval feature not available"
+msgstr "E775: Eval eblo ne disponeblas"
+
msgid "Warning: terminal cannot highlight"
msgstr "Averto: terminalo ne povas emfazi"
@@ -3504,7 +4116,7 @@ msgstr "E662: Ĉe komenco de ŝanĝlisto"
msgid "E663: At end of changelist"
msgstr "E663: Ĉe fino de ŝanĝlisto"
-msgid "Type :quit<Enter> to exit Nvim"
+msgid "Type :quit<Enter> to exit Vim"
msgstr "Tajpu \":quit<Enenklavo>\" por eliri el Vim"
#, c-format
@@ -3516,37 +4128,41 @@ msgid "1 line %sed %d times"
msgstr "1 linio %sita %d foje"
#, c-format
-msgid "%<PRId64> lines %sed 1 time"
-msgstr "%<PRId64> linio %sita 1 foje"
+msgid "%ld lines %sed 1 time"
+msgstr "%ld linio %sita 1 foje"
#, c-format
-msgid "%<PRId64> lines %sed %d times"
-msgstr "%<PRId64> linioj %sitaj %d foje"
+msgid "%ld lines %sed %d times"
+msgstr "%ld linioj %sitaj %d foje"
#, c-format
-msgid "%<PRId64> lines to indent... "
-msgstr "%<PRId64> krommarĝenendaj linioj... "
+msgid "%ld lines to indent... "
+msgstr "%ld krommarĝenendaj linioj... "
msgid "1 line indented "
msgstr "1 linio krommarĝenita "
#, c-format
-msgid "%<PRId64> lines indented "
-msgstr "%<PRId64> linioj krommarĝenitaj "
+msgid "%ld lines indented "
+msgstr "%ld linioj krommarĝenitaj "
msgid "E748: No previously used register"
msgstr "E748: Neniu reĝistro antaŭe uzata"
#. must display the prompt
msgid "cannot yank; delete anyway"
-msgstr "ne eblas kopii; forviŝi tamene"
+msgstr "ne eblas kopii; tamen forviŝi"
msgid "1 line changed"
msgstr "1 linio ŝanĝita"
#, c-format
-msgid "%<PRId64> lines changed"
-msgstr "%<PRId64> linioj ŝanĝitaj"
+msgid "%ld lines changed"
+msgstr "%ld linioj ŝanĝitaj"
+
+#, c-format
+msgid "freeing %ld lines"
+msgstr "malokupas %ld liniojn"
msgid "block of 1 line yanked"
msgstr "bloko de 1 linio kopiita"
@@ -3555,12 +4171,12 @@ msgid "1 line yanked"
msgstr "1 linio kopiita"
#, c-format
-msgid "block of %<PRId64> lines yanked"
-msgstr "bloko de %<PRId64> linioj kopiita"
+msgid "block of %ld lines yanked"
+msgstr "bloko de %ld linioj kopiita"
#, c-format
-msgid "%<PRId64> lines yanked"
-msgstr "%<PRId64> linioj kopiitaj"
+msgid "%ld lines yanked"
+msgstr "%ld linioj kopiitaj"
#, c-format
msgid "E353: Nothing in register %s"
@@ -3588,45 +4204,44 @@ msgstr ""
msgid "E574: Unknown register type %d"
msgstr "E574: Nekonata tipo de reĝistro %d"
+msgid ""
+"E883: search pattern and expression register may not contain two or more "
+"lines"
+msgstr ""
+"E883: serĉa ŝablono kaj esprima reĝistro ne povas enhavi du aŭ pliajn liniojn"
+
#, c-format
-msgid "%<PRId64> Cols; "
-msgstr "%<PRId64> Kolumnoj; "
+msgid "%ld Cols; "
+msgstr "%ld Kolumnoj; "
#, c-format
-msgid ""
-"Selected %s%<PRId64> of %<PRId64> Lines; %<PRId64> of %<PRId64> Words; "
-"%<PRId64> of %<PRId64> Bytes"
+msgid "Selected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Bytes"
msgstr ""
-"Apartigis %s%<PRId64> de %<PRId64> Linioj; %<PRId64> de %<PRId64> Vortoj; "
-"%<PRId64> de %<PRId64> Bajtoj"
+"Apartigis %s%ld de %ld Linioj; %lld de %lld Vortoj; %lld de %lld Bajtoj"
#, c-format
msgid ""
-"Selected %s%<PRId64> of %<PRId64> Lines; %<PRId64> of %<PRId64> Words; "
-"%<PRId64> of %<PRId64> Chars; %<PRId64> of %<PRId64> Bytes"
+"Selected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Chars; %lld of "
+"%lld Bytes"
msgstr ""
-"Apartigis %s%<PRId64> de %<PRId64> Linioj; %<PRId64> de %<PRId64> Vortoj; "
-"%<PRId64> de %<PRId64> Signoj; %<PRId64> de %<PRId64> Bajtoj"
+"Apartigis %s%ld de %ld Linioj; %lld de %lld Vortoj; %lld de %lld Signoj; "
+"%lld de %lld Bajtoj"
#, c-format
-msgid ""
-"Col %s of %s; Line %<PRId64> of %<PRId64>; Word %<PRId64> of %<PRId64>; Byte "
-"%<PRId64> of %<PRId64>"
-msgstr ""
-"Kol %s de %s; Linio %<PRId64> de %<PRId64>; Vorto %<PRId64> de %<PRId64>; "
-"Bajto %<PRId64> de %<PRId64>"
+msgid "Col %s of %s; Line %ld of %ld; Word %lld of %lld; Byte %lld of %lld"
+msgstr "Kol %s de %s; Linio %ld de %ld; Vorto %lld de %lld; Bajto %lld de %lld"
#, c-format
msgid ""
-"Col %s of %s; Line %<PRId64> of %<PRId64>; Word %<PRId64> of %<PRId64>; Char "
-"%<PRId64> of %<PRId64>; Byte %<PRId64> of %<PRId64>"
+"Col %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte "
+"%lld of %lld"
msgstr ""
-"Kol %s de %s; Linio %<PRId64> de %<PRId64>; Vorto %<PRId64> de %<PRId64>; "
-"Signo %<PRId64> de %<PRId64>; Bajto %<PRId64> de %<PRId64>"
+"Kol %s de %s; Linio %ld de %ld; Vorto %lld de %lld; Signo %lld de %lld; "
+"Bajto %lld de %lld"
#, c-format
-msgid "(+%<PRId64> for BOM)"
-msgstr "(+%<PRId64> por BOM)"
+msgid "(+%ld for BOM)"
+msgstr "(+%ld por BOM)"
msgid "%<%f%h%m%=Page %N"
msgstr "%<%f%h%m%=Folio %N"
@@ -3634,7 +4249,6 @@ msgstr "%<%f%h%m%=Folio %N"
msgid "Thanks for flying Vim"
msgstr "Dankon pro flugi per Vim"
-#. found a mismatch: skip
msgid "E518: Unknown option"
msgstr "E518: Nekonata opcio"
@@ -3664,6 +4278,12 @@ msgstr "Por opcio %s"
msgid "E529: Cannot set 'term' to empty string"
msgstr "E529: Ne eblas agordi 'term' al malplena ĉeno"
+msgid "E530: Cannot change term in GUI"
+msgstr "E530: term ne ŝanĝeblas en grafika interfaco"
+
+msgid "E531: Use \":gui\" to start the GUI"
+msgstr "E531: Uzu \":gui\" por lanĉi la grafikan interfacon"
+
msgid "E589: 'backupext' and 'patchmode' are equal"
msgstr "E589: 'backupext' kaj 'patchmode' estas egalaj"
@@ -3673,6 +4293,9 @@ msgstr "E834: Konfliktoj kun la valoro de 'listchars'"
msgid "E835: Conflicts with value of 'fillchars'"
msgstr "E835: Konfliktoj kun la valoro de 'fillchars'"
+msgid "E617: Cannot be changed in the GTK+ 2 GUI"
+msgstr "E617: Ne ŝanĝeblas en la grafika interfaco GTK+ 2"
+
msgid "E524: Missing colon"
msgstr "E524: Mankas dupunkto"
@@ -3692,6 +4315,21 @@ msgstr "E528: Devas specifi ' valoron"
msgid "E595: contains unprintable or wide character"
msgstr "E595: enhavas nepreseblan aŭ plurĉellarĝan signon"
+msgid "E596: Invalid font(s)"
+msgstr "E596: Nevalida(j) tiparo(j)"
+
+msgid "E597: can't select fontset"
+msgstr "E597: ne eblas elekti tiparon"
+
+msgid "E598: Invalid fontset"
+msgstr "E598: Nevalida tiparo"
+
+msgid "E533: can't select wide font"
+msgstr "E533: ne eblas elekti larĝan tiparon"
+
+msgid "E534: Invalid wide font"
+msgstr "E534: Nevalida larĝa tiparo"
+
#, c-format
msgid "E535: Illegal character after <%c>"
msgstr "E535: Nevalida signo post <%c>"
@@ -3703,6 +4341,9 @@ msgstr "E536: komo bezonata"
msgid "E537: 'commentstring' must be empty or contain %s"
msgstr "E537: 'commentstring' devas esti malplena aŭ enhavi %s"
+msgid "E538: No mouse support"
+msgstr "E538: Neniu muso subtenata"
+
msgid "E540: Unclosed expression sequence"
msgstr "E540: '}' mankas"
@@ -3710,7 +4351,7 @@ msgid "E541: too many items"
msgstr "E541: tro da elementoj"
msgid "E542: unbalanced groups"
-msgstr "E542: misekvilibritaj grupoj"
+msgstr "E542: misekvilibraj grupoj"
msgid "E590: A preview window already exists"
msgstr "E590: Antaŭvida fenestro jam ekzistas"
@@ -3776,19 +4417,104 @@ msgstr "E357: 'langmap': Kongrua signo mankas por %s"
msgid "E358: 'langmap': Extra characters after semicolon: %s"
msgstr "E358: 'langmap': Ekstraj signoj post punktokomo: %s"
-msgid ""
-"\n"
-"Cannot execute shell "
-msgstr ""
-"\n"
-"Ne eblas plenumi ŝelon "
+msgid "cannot open "
+msgstr "ne eblas malfermi "
+
+msgid "VIM: Can't open window!\n"
+msgstr "VIM: Ne eblas malfermi fenestron!\n"
+
+msgid "Need Amigados version 2.04 or later\n"
+msgstr "Bezonas version 2.04 de Amigados aŭ pli novan\n"
+
+#, c-format
+msgid "Need %s version %ld\n"
+msgstr "Bezonas %s-on versio %ld\n"
+
+msgid "Cannot open NIL:\n"
+msgstr "Ne eblas malfermi NIL:\n"
+
+msgid "Cannot create "
+msgstr "Ne eblas krei "
+
+#, c-format
+msgid "Vim exiting with %d\n"
+msgstr "Vim eliras kun %d\n"
+
+msgid "cannot change console mode ?!\n"
+msgstr "ne eblas ŝanĝi reĝimon de konzolo?!\n"
+
+msgid "mch_get_shellsize: not a console??\n"
+msgstr "mch_get_shellsize: ne estas konzolo??\n"
+
+#. if Vim opened a window: Executing a shell may cause crashes
+msgid "E360: Cannot execute shell with -f option"
+msgstr "E360: Ne eblas plenumi ŝelon kun opcio -f"
+
+msgid "Cannot execute "
+msgstr "Ne eblas plenumi "
+
+msgid "shell "
+msgstr "ŝelo "
+
+msgid " returned\n"
+msgstr " liveris\n"
+
+msgid "ANCHOR_BUF_SIZE too small."
+msgstr "ANCHOR_BUF_SIZE tro malgranda."
+
+msgid "I/O ERROR"
+msgstr "ERARO DE ENIGO/ELIGO"
+
+msgid "Message"
+msgstr "Mesaĝo"
+
+msgid "E237: Printer selection failed"
+msgstr "E237: Elekto de presilo malsukcesis"
+
+#, c-format
+msgid "to %s on %s"
+msgstr "al %s de %s"
+
+#, c-format
+msgid "E613: Unknown printer font: %s"
+msgstr "E613: Nekonata tiparo de presilo: %s"
+
+#, c-format
+msgid "E238: Print error: %s"
+msgstr "E238: Eraro de presado: %s"
+
+#, c-format
+msgid "Printing '%s'"
+msgstr "Presas '%s'"
+
+#, c-format
+msgid "E244: Illegal charset name \"%s\" in font name \"%s\""
+msgstr "E244: Nevalida nomo de signaro \"%s\" en nomo de tiparo \"%s\""
+
+#, c-format
+msgid "E244: Illegal quality name \"%s\" in font name \"%s\""
+msgstr "E244: Nevalida nomo de kvalito \"%s\" en nomo de tiparo \"%s\""
+
+#, c-format
+msgid "E245: Illegal char '%c' in font name \"%s\""
+msgstr "E245: Nevalida signo '%c' en nomo de tiparo \"%s\""
+
+#, c-format
+msgid "Opening the X display took %ld msec"
+msgstr "Malfermo de vidigo X daŭris %ld msek"
msgid ""
"\n"
-"shell returned "
+"Vim: Got X error\n"
msgstr ""
"\n"
-"ŝelo liveris "
+"Vim: Alvenis X eraro\n"
+
+msgid "Testing the X display failed"
+msgstr "Testo de la vidigo X malsukcesis"
+
+msgid "Opening the X display timed out"
+msgstr "Tempolimo okazis dum malfermo de vidigo X"
msgid ""
"\n"
@@ -3813,13 +4539,115 @@ msgid "Could not get security context %s for %s. Removing it!"
msgstr ""
"Ne povis akiri kuntekston de sekureco %s por %s. Gi nun estas forigata!"
+msgid ""
+"\n"
+"Cannot execute shell sh\n"
+msgstr ""
+"\n"
+"Ne eblas plenumi ŝelon sh\n"
+
+msgid ""
+"\n"
+"shell returned "
+msgstr ""
+"\n"
+"ŝelo liveris "
+
+msgid ""
+"\n"
+"Cannot create pipes\n"
+msgstr ""
+"\n"
+"Ne eblas krei duktojn\n"
+
+msgid ""
+"\n"
+"Cannot fork\n"
+msgstr ""
+"\n"
+"Ne eblas forki\n"
+
+msgid ""
+"\n"
+"Cannot execute shell "
+msgstr ""
+"\n"
+"Ne eblas plenumi ŝelon "
+
+msgid ""
+"\n"
+"Command terminated\n"
+msgstr ""
+"\n"
+"Komando terminigita\n"
+
+msgid "XSMP lost ICE connection"
+msgstr "XSMP perdis la konekton ICE"
+
#, c-format
msgid "dlerror = \"%s\""
msgstr "dlerror = \"%s\""
+msgid "Opening the X display failed"
+msgstr "Malfermo de vidigo X malsukcesis"
+
+msgid "XSMP handling save-yourself request"
+msgstr "XSMP: traktado de peto konservi-mem"
+
+msgid "XSMP opening connection"
+msgstr "XSMP: malfermo de konekto"
+
+msgid "XSMP ICE connection watch failed"
+msgstr "XSMP: kontrolo de konekto ICE malsukcesis"
+
#, c-format
-msgid "E447: Can't find file \"%s\" in path"
-msgstr "E447: Ne eblas trovi dosieron \"%s\" en serĉvojo"
+msgid "XSMP SmcOpenConnection failed: %s"
+msgstr "XSMP: SmcOpenConnection malsukcesis: %s"
+
+msgid "At line"
+msgstr "Ĉe linio"
+
+msgid "Could not load vim32.dll!"
+msgstr "Ne eblis ŝargi vim32.dll!"
+
+msgid "VIM Error"
+msgstr "Eraro de VIM"
+
+msgid "Could not fix up function pointers to the DLL!"
+msgstr "Ne eblis ripari referencojn de funkcioj al la DLL!"
+
+# DP: la eventoj estas tiuj, kiuj estas en la sekvantaj ĉenoj
+#, c-format
+msgid "Vim: Caught %s event\n"
+msgstr "Vim: Kaptis eventon %s\n"
+
+msgid "close"
+msgstr "fermo"
+
+msgid "logoff"
+msgstr "elsaluto"
+
+msgid "shutdown"
+msgstr "sistemfermo"
+
+msgid "E371: Command not found"
+msgstr "E371: Netrovebla komando"
+
+msgid ""
+"VIMRUN.EXE not found in your $PATH.\n"
+"External commands will not pause after completion.\n"
+"See :help win32-vimrun for more information."
+msgstr ""
+"VIMRUN.EXE ne troveblas en via $PATH.\n"
+"Eksteraj komandoj ne paŭzos post kompletigo.\n"
+"Vidu :help win32-vimrun por pliaj informoj."
+
+msgid "Vim Warning"
+msgstr "Averto de Vim"
+
+#, c-format
+msgid "shell returned %d"
+msgstr "la ŝelo liveris %d"
#, c-format
msgid "E372: Too many %%%c in format string"
@@ -3854,6 +4682,15 @@ msgstr "E379: Nomo de dosierujo mankas aŭ estas malplena"
msgid "E553: No more items"
msgstr "E553: Ne plu estas eroj"
+msgid "E924: Current window was closed"
+msgstr "E924: Aktuala vindozo fermiĝis"
+
+msgid "E925: Current quickfix was changed"
+msgstr "E925: Aktuala rapidriparo ŝanĝiĝis"
+
+msgid "E926: Current location list was changed"
+msgstr "E926: Aktuala listo de lokoj ŝanĝiĝis"
+
#, c-format
msgid "(%d of %d)%s%s: "
msgstr "(%d de %d)%s%s: "
@@ -3861,19 +4698,25 @@ msgstr "(%d de %d)%s%s: "
msgid " (line deleted)"
msgstr " (forviŝita linio)"
+#, c-format
+msgid "%serror list %d of %d; %d errors "
+msgstr "%slisto de eraroj %d de %d; %d eraroj"
+
msgid "E380: At bottom of quickfix stack"
msgstr "E380: Ĉe la subo de stako de rapidriparo"
msgid "E381: At top of quickfix stack"
msgstr "E381: Ĉe la supro de stako de rapidriparo"
-#, c-format
-msgid "error list %d of %d; %d errors"
-msgstr "listo de eraroj %d de %d; %d eraroj"
+msgid "No entries"
+msgstr "Neniu ano"
msgid "E382: Cannot write, 'buftype' option is set"
msgstr "E382: Ne eblas skribi, opcio 'buftype' estas ŝaltita"
+msgid "Error file"
+msgstr "Erara Dosiero"
+
msgid "E683: File name missing or invalid pattern"
msgstr "E683: Dosiernomo mankas aŭ nevalida ŝablono"
@@ -3908,7 +4751,7 @@ msgid "E55: Unmatched %s)"
msgstr "E55: Neekvilibra %s"
msgid "E66: \\z( not allowed here"
-msgstr "E66: \\z( estas permesebla tie"
+msgstr "E66: \\z( estas nepermesebla tie"
# DP: vidu http://www.thefreedictionary.com/et+al.
msgid "E67: \\z1 et al. not allowed here"
@@ -3979,6 +4822,10 @@ msgstr "E554: Sintaksa eraro en %s{...}"
msgid "External submatches:\n"
msgstr "Eksteraj subkongruoj:\n"
+#, c-format
+msgid "E888: (NFA regexp) cannot repeat %s"
+msgstr "E888: (NFA-regulesprimo) ne eblas ripeti %s"
+
msgid ""
"E864: \\%#= can only be followed by 0, 1, or 2. The automatic engine will be "
"used "
@@ -3986,6 +4833,9 @@ msgstr ""
"E864: \\%#= povas nur esti sekvita de 0, 1, aŭ 2. La aŭtomata motoro de "
"regulesprimo estos uzata "
+msgid "Switching to backtracking RE engine for pattern: "
+msgstr "Ŝangota al malavanca motoro de regulesprimo por ŝablono: "
+
msgid "E865: (NFA) Regexp end encountered prematurely"
msgstr "E865: (NFA) Trovis finon de regulesprimo tro frue"
@@ -3993,17 +4843,21 @@ msgstr "E865: (NFA) Trovis finon de regulesprimo tro frue"
msgid "E866: (NFA regexp) Misplaced %c"
msgstr "E866: (NFA-regulesprimo) Mispoziciigita %c"
-#, fuzzy, c-format
-#~ msgid "E877: (NFA regexp) Invalid character class: %<PRId64>"
-#~ msgstr "E877: (NFA-regulesprimo) Nevalida klaso de signo "
+#, c-format
+msgid "E877: (NFA regexp) Invalid character class: %ld"
+msgstr "E877: (NFA-regulesprimo) Nevalida klaso de signo: %ld"
#, c-format
msgid "E867: (NFA) Unknown operator '\\z%c'"
msgstr "E867: (NFA) Nekonata operatoro '\\z%c'"
-#, fuzzy, c-format
-#~ msgid "E867: (NFA) Unknown operator '\\%%%c'"
-#~ msgstr "E867: (NFA) Nekonata operatoro '\\z%c'"
+#, c-format
+msgid "E867: (NFA) Unknown operator '\\%%%c'"
+msgstr "E867: (NFA) Nekonata operatoro '\\%%%c'"
+
+#. should never happen
+msgid "E868: Error building NFA with equivalence class!"
+msgstr "E868: Eraro dum prekomputado de NFA kun ekvivalentoklaso!"
#, c-format
msgid "E869: (NFA) Unknown operator '\\@%c'"
@@ -4022,9 +4876,8 @@ msgstr ""
msgid "E872: (NFA regexp) Too many '('"
msgstr "E872: (NFA-regulesprimo) tro da '('"
-#, fuzzy
-#~ msgid "E879: (NFA regexp) Too many \\z("
-#~ msgstr "E872: (NFA-regulesprimo) tro da '('"
+msgid "E879: (NFA regexp) Too many \\z("
+msgstr "E879: (NFA-regulesprimo) tro da \\z("
msgid "E873: (NFA regexp) proper termination error"
msgstr "E873: (NFA-regulesprimo) propra end-eraro"
@@ -4042,6 +4895,9 @@ msgstr ""
msgid "E876: (NFA regexp) Not enough space to store the whole NFA "
msgstr "E876: (NFA-regulesprimo) ne sufiĉa spaco por enmomorigi la tutan NFA "
+msgid "E878: (NFA) Could not allocate memory for branch traversal!"
+msgstr "E878: (NFA) Ne povis asigni memoron por traigi branĉojn!"
+
msgid ""
"Could not open temporary log file for writing, displaying on stderr ... "
msgstr ""
@@ -4082,9 +4938,6 @@ msgstr " hebrea"
msgid " Arabic"
msgstr " araba"
-msgid " (lang)"
-msgstr " (lingvo)"
-
msgid " (paste)"
msgstr " (algluo)"
@@ -4179,8 +5032,47 @@ msgstr ""
"# Lasta serĉa ŝablono %s:\n"
"~"
-msgid "E759: Format error in spell file"
-msgstr "E759: Eraro de formato en literuma dosiero"
+msgid "E756: Spell checking is not enabled"
+msgstr "E756: Literumilo ne estas ŝaltita"
+
+#, c-format
+msgid "Warning: Cannot find word list \"%s_%s.spl\" or \"%s_ascii.spl\""
+msgstr "Averto: Ne eblas trovi vortliston \"%s_%s.spl\" aŭ \"%s_ascii.spl\""
+
+#, c-format
+msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
+msgstr "Averto: Ne eblas trovi vortliston \"%s.%s.spl\" aŭ \"%s.ascii.spl\""
+
+msgid "E797: SpellFileMissing autocommand deleted buffer"
+msgstr "E797: Aŭtokomando SpellFileMissing forviŝis bufron"
+
+#, c-format
+msgid "Warning: region %s not supported"
+msgstr "Averto: regiono %s ne subtenata"
+
+msgid "Sorry, no suggestions"
+msgstr "Bedaŭrinde ne estas sugestoj"
+
+#, c-format
+msgid "Sorry, only %ld suggestions"
+msgstr "Bedaŭrinde estas nur %ld sugestoj"
+
+#. for when 'cmdheight' > 1
+#. avoid more prompt
+#, c-format
+msgid "Change \"%.*s\" to:"
+msgstr "Anstataŭigi \"%.*s\" per:"
+
+#, c-format
+msgid " < \"%.*s\""
+msgstr " < \"%.*s\""
+
+msgid "E752: No previous spell replacement"
+msgstr "E752: Neniu antaŭa literuma anstataŭigo"
+
+#, c-format
+msgid "E753: Not found: %s"
+msgstr "E753: Netrovita: %s"
msgid "E758: Truncated spell file"
msgstr "E758: Trunkita literuma dosiero"
@@ -4202,13 +5094,6 @@ msgstr "E762: Signo en FOL, LOW aŭ UPP estas ekster limoj"
msgid "Compressing word tree..."
msgstr "Densigas arbon de vortoj..."
-msgid "E756: Spell checking is not enabled"
-msgstr "E756: Literumilo ne estas ŝaltita"
-
-#, c-format
-msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
-msgstr "Averto: Ne eblas trovi vortliston \"%s.%s.spl\" aŭ \"%s.ascii.spl\""
-
#, c-format
msgid "Reading spell file \"%s\""
msgstr "Legado de literuma dosiero \"%s\""
@@ -4226,8 +5111,24 @@ msgid "E770: Unsupported section in spell file"
msgstr "E770: Nesubtenata sekcio en literuma dosiero"
#, c-format
-msgid "Warning: region %s not supported"
-msgstr "Averto: regiono %s ne subtenata"
+msgid "E778: This does not look like a .sug file: %s"
+msgstr "E778: Tio ne ŝajnas esti dosiero .sug: %s"
+
+#, c-format
+msgid "E779: Old .sug file, needs to be updated: %s"
+msgstr "E779: Malnova dosiero .sug, bezonas ĝisdatigon: %s"
+
+#, c-format
+msgid "E780: .sug file is for newer version of Vim: %s"
+msgstr "E780: Dosiero .sug estas por pli nova versio de Vim: %s"
+
+#, c-format
+msgid "E781: .sug file doesn't match .spl file: %s"
+msgstr "E781: Dosiero .sug ne kongruas kun dosiero .spl: %s"
+
+#, c-format
+msgid "E782: error while reading .sug file: %s"
+msgstr "E782: eraro dum legado de dosiero .sug: %s"
#, c-format
msgid "Reading affix file %s ..."
@@ -4242,6 +5143,10 @@ msgid "Conversion in %s not supported: from %s to %s"
msgstr "Konverto en %s nesubtenata: de %s al %s"
#, c-format
+msgid "Conversion in %s not supported"
+msgstr "Konverto en %s nesubtenata"
+
+#, c-format
msgid "Invalid value for FLAG in %s line %d: %s"
msgstr "Nevalida valoro de FLAG en %s linio %d: %s"
@@ -4425,6 +5330,9 @@ msgstr "Nekonata flago en %s linio %d: %s"
msgid "Ignored %d words with non-ASCII characters"
msgstr "Ignoris %d vorto(j)n kun neaskiaj signoj"
+msgid "E845: Insufficient memory, word list will be incomplete"
+msgstr "E845: Ne sufiĉe da memoro, vortlisto estos nekompleta."
+
#, c-format
msgid "Compressed %d of %d nodes; %d (%d%%) remaining"
msgstr "Densigis %d de %d nodoj; %d (%d%%) restantaj"
@@ -4432,14 +5340,16 @@ msgstr "Densigis %d de %d nodoj; %d (%d%%) restantaj"
msgid "Reading back spell file..."
msgstr "Relegas la dosieron de literumo..."
-#. Go through the trie of good words, soundfold each word and add it to
-#. the soundfold trie.
+#.
+#. * Go through the trie of good words, soundfold each word and add it to
+#. * the soundfold trie.
+#.
msgid "Performing soundfolding..."
msgstr "Fonetika analizado..."
#, c-format
-msgid "Number of words after soundfolding: %<PRId64>"
-msgstr "Nombro de vortoj post fonetika analizado: %<PRId64>"
+msgid "Number of words after soundfolding: %ld"
+msgstr "Nombro de vortoj post fonetika analizado: %ld"
#, c-format
msgid "Total number of words: %d"
@@ -4474,66 +5384,22 @@ msgid "Done!"
msgstr "Farita!"
#, c-format
-msgid "E765: 'spellfile' does not have %<PRId64> entries"
-msgstr "E765: 'spellfile' ne havas %<PRId64> rikordojn"
-
-#, fuzzy, c-format
-#~ msgid "Word '%.*s' removed from %s"
-#~ msgstr "Vorto fortirita el %s"
-
-#, fuzzy, c-format
-#~ msgid "Word '%.*s' added to %s"
-#~ msgstr "Vorto aldonita al %s"
-
-msgid "E763: Word characters differ between spell files"
-msgstr "E763: Signoj de vorto malsamas tra literumaj dosieroj"
-
-msgid "Sorry, no suggestions"
-msgstr "Bedaŭrinde ne estas sugestoj"
-
-#, c-format
-msgid "Sorry, only %<PRId64> suggestions"
-msgstr "Bedaŭrinde estas nur %<PRId64> sugestoj"
-
-#. for when 'cmdheight' > 1
-#. avoid more prompt
-#, c-format
-msgid "Change \"%.*s\" to:"
-msgstr "Anstataŭigi \"%.*s\" per:"
+msgid "E765: 'spellfile' does not have %ld entries"
+msgstr "E765: 'spellfile' ne havas %ld rikordojn"
#, c-format
-msgid " < \"%.*s\""
-msgstr " < \"%.*s\""
-
-msgid "E752: No previous spell replacement"
-msgstr "E752: Neniu antaŭa literuma anstataŭigo"
+msgid "Word '%.*s' removed from %s"
+msgstr "Vorto '%.*s' fortirita el %s"
#, c-format
-msgid "E753: Not found: %s"
-msgstr "E753: Netrovita: %s"
+msgid "Word '%.*s' added to %s"
+msgstr "Vorto '%.*s' aldonita al %s"
-#, c-format
-msgid "E778: This does not look like a .sug file: %s"
-msgstr "E778: Tio ne ŝajnas esti dosiero .sug: %s"
-
-#, c-format
-msgid "E779: Old .sug file, needs to be updated: %s"
-msgstr "E779: Malnova dosiero .sug, bezonas ĝisdatigon: %s"
-
-#, c-format
-msgid "E780: .sug file is for newer version of Vim: %s"
-msgstr "E780: Dosiero .sug estas por pli nova versio de Vim: %s"
-
-#, c-format
-msgid "E781: .sug file doesn't match .spl file: %s"
-msgstr "E781: Dosiero .sug ne kongruas kun dosiero .spl: %s"
-
-#, c-format
-msgid "E782: error while reading .sug file: %s"
-msgstr "E782: eraro dum legado de dosiero .sug: %s"
+msgid "E763: Word characters differ between spell files"
+msgstr "E763: Signoj de vorto malsamas tra literumaj dosieroj"
#. This should have been checked when generating the .spl
-#. file.
+#. * file.
msgid "E783: duplicate char in MAP entry"
msgstr "E783: ripetita signo en rikordo MAP"
@@ -4641,7 +5507,6 @@ msgstr "E848: Tro da sintaksaj grupoj"
msgid "E400: No cluster specified"
msgstr "E400: Neniu fasko specifita"
-#. end delimiter not found
#, c-format
msgid "E401: Pattern delimiter not found: %s"
msgstr "E401: Disigilo de ŝablono netrovita: %s"
@@ -4681,9 +5546,10 @@ msgstr "E409: Nekonata nomo de grupo: %s"
msgid "E410: Invalid :syntax subcommand: %s"
msgstr "E410: Nevalida \":syntax\" subkomando: %s"
-#~ msgid ""
-#~ " TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN"
-#~ msgstr ""
+msgid ""
+" TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN"
+msgstr ""
+" TOTALO NOMBRO KONGRUO PLEJ MALRAPID MEZA NOMO ŜABLONO"
msgid "E679: recursive loop loading syncolor.vim"
msgstr "E679: rekursia buklo dum ŝargo de syncolor.vim"
@@ -4698,7 +5564,7 @@ msgstr "E412: Ne sufiĉaj argumentoj: \":highlight link %s\""
#, c-format
msgid "E413: Too many arguments: \":highlight link %s\""
-msgstr "E413: Tro argumentoj: \":highlight link %s\""
+msgstr "E413: Tro da argumentoj: \":highlight link %s\""
msgid "E414: group has settings, highlight link ignored"
msgstr "E414: grupo havas agordojn, ligilo de emfazo ignorita"
@@ -4806,6 +5672,10 @@ msgstr ""
msgid "Searching tags file %s"
msgstr "Serĉado de dosiero de etikedoj %s"
+#, c-format
+msgid "E430: Tag file path truncated for %s\n"
+msgstr "E430: Vojo de etikeda dosiero trunkita por %s\n"
+
msgid "Ignoring long line in tags file"
msgstr "Ignoro de longa linio en etikeda dosiero"
@@ -4814,8 +5684,8 @@ msgid "E431: Format error in tags file \"%s\""
msgstr "E431: Eraro de formato en etikeda dosiero \"%s\""
#, c-format
-msgid "Before byte %<PRId64>"
-msgstr "Antaŭ bajto %<PRId64>"
+msgid "Before byte %ld"
+msgstr "Antaŭ bajto %ld"
#, c-format
msgid "E432: Tags file not sorted: %s"
@@ -4865,14 +5735,26 @@ msgstr ""
"\n"
"--- Klavoj de terminalo ---"
+msgid "Cannot open $VIMRUNTIME/rgb.txt"
+msgstr "Ne povas malfermi $VIMRUNTIME/rgb.txt"
+
+msgid "new shell started\n"
+msgstr "nova ŝelo lanĉita\n"
+
msgid "Vim: Error reading input, exiting...\n"
msgstr "Vim: Eraro dum legado de eniro, elironta...\n"
+msgid "Used CUT_BUFFER0 instead of empty selection"
+msgstr "Uzis CUT_BUFFER0 anstataŭ malplenan apartigon"
+
#. This happens when the FileChangedRO autocommand changes the
#. * file in a way it becomes shorter.
-#, fuzzy
-#~ msgid "E881: Line count changed unexpectedly"
-#~ msgstr "E834: Nombro de linioj ŝanĝiĝis neatendite"
+msgid "E881: Line count changed unexpectedly"
+msgstr "E881: Nombro de linioj ŝanĝiĝis neatendite"
+
+#. must display the prompt
+msgid "No undo possible; continue anyway"
+msgstr "Malfaro neebla; tamen daŭrigi"
#, c-format
msgid "E828: Cannot open undo file for writing: %s"
@@ -4921,6 +5803,18 @@ msgid "E823: Not an undo file: %s"
msgstr "E823: Ne estas malfara dosiero: %s"
#, c-format
+msgid "E832: Non-encrypted file has encrypted undo file: %s"
+msgstr "E832: Ne ĉifrata dosiero havas ĉifratan malfaran dosieron: %s"
+
+#, c-format
+msgid "E826: Undo file decryption failed: %s"
+msgstr "E826: Malĉifrado de malfara dosiero malsukcesis: %s"
+
+#, c-format
+msgid "E827: Undo file is encrypted: %s"
+msgstr "E827: Malfara dosiero estas ĉifrata: %s"
+
+#, c-format
msgid "E824: Incompatible undo file: %s"
msgstr "E824: Malkongrua malfara dosiero: %s"
@@ -4938,8 +5832,8 @@ msgid "Already at newest change"
msgstr "Jam al la plej nova ŝanĝo"
#, c-format
-msgid "E830: Undo number %<PRId64> not found"
-msgstr "E830: Malfara numero %<PRId64> netrovita"
+msgid "E830: Undo number %ld not found"
+msgstr "E830: Malfara numero %ld netrovita"
msgid "E438: u_undo: line numbers wrong"
msgstr "E438: u_undo: nevalidaj numeroj de linioj"
@@ -4963,8 +5857,8 @@ msgid "changes"
msgstr "ŝanĝoj"
#, c-format
-msgid "%<PRId64> %s; %s #%<PRId64> %s"
-msgstr "%<PRId64> %s; %s #%<PRId64> %s"
+msgid "%ld %s; %s #%ld %s"
+msgstr "%ld %s; %s #%ld %s"
msgid "before"
msgstr "antaŭ"
@@ -4979,8 +5873,8 @@ msgid "number changes when saved"
msgstr "numero ŝanĝoj tempo konservita"
#, c-format
-msgid "%<PRId64> seconds ago"
-msgstr "antaŭ %<PRId64> sekundoj"
+msgid "%ld seconds ago"
+msgstr "antaŭ %ld sekundoj"
msgid "E790: undojoin is not allowed after undo"
msgstr "E790: undojoin estas nepermesebla post malfaro"
@@ -4991,6 +5885,189 @@ msgstr "E439: listo de malfaro estas difekta"
msgid "E440: undo line missing"
msgstr "E440: linio de malfaro mankas"
+#, c-format
+msgid "E122: Function %s already exists, add ! to replace it"
+msgstr "E122: La funkcio %s jam ekzistas (aldonu ! por anstataŭigi ĝin)"
+
+msgid "E717: Dictionary entry already exists"
+msgstr "E717: Rikordo de vortaro jam ekzistas"
+
+msgid "E718: Funcref required"
+msgstr "E718: Funcref bezonata"
+
+#, c-format
+msgid "E130: Unknown function: %s"
+msgstr "E130: Nekonata funkcio: %s"
+
+#, c-format
+msgid "E125: Illegal argument: %s"
+msgstr "E125: Nevalida argumento: %s"
+
+#, c-format
+msgid "E853: Duplicate argument name: %s"
+msgstr "E853: Ripetita nomo de argumento: %s"
+
+#, c-format
+msgid "E740: Too many arguments for function %s"
+msgstr "E740: Tro da argumentoj por funkcio: %s"
+
+#, c-format
+msgid "E116: Invalid arguments for function %s"
+msgstr "E116: Nevalidaj argumentoj por funkcio: %s"
+
+msgid "E132: Function call depth is higher than 'maxfuncdepth'"
+msgstr "E132: Profundo de funkcia alvoko superas 'maxfuncdepth'"
+
+#, c-format
+msgid "calling %s"
+msgstr "alvokas %s"
+
+#, c-format
+msgid "%s aborted"
+msgstr "%s ĉesigita"
+
+#, c-format
+msgid "%s returning #%ld"
+msgstr "%s liveras #%ld"
+
+#, c-format
+msgid "%s returning %s"
+msgstr "%s liveras %s"
+
+msgid "E699: Too many arguments"
+msgstr "E699: Tro da argumentoj"
+
+#, c-format
+msgid "E117: Unknown function: %s"
+msgstr "E117: Nekonata funkcio: %s"
+
+#, c-format
+msgid "E933: Function was deleted: %s"
+msgstr "E933: funkcio estis forviŝita: %s"
+
+#, c-format
+msgid "E119: Not enough arguments for function: %s"
+msgstr "E119: Ne sufiĉe da argumentoj por funkcio: %s"
+
+#, c-format
+msgid "E120: Using <SID> not in a script context: %s"
+msgstr "E120: <SID> estas uzata ekster kunteksto de skripto: %s"
+
+#, c-format
+msgid "E725: Calling dict function without Dictionary: %s"
+msgstr "E725: Alvoko de funkcio dict sen Vortaro: %s"
+
+msgid "E129: Function name required"
+msgstr "E129: Nomo de funkcio bezonata"
+
+#, c-format
+msgid "E128: Function name must start with a capital or \"s:\": %s"
+msgstr "E128: Nomo de funkcio devas eki per majusklo aŭ per \"s:\": %s"
+
+#, c-format
+msgid "E884: Function name cannot contain a colon: %s"
+msgstr "E884: Nomo de funkcio ne povas enhavi dupunkton: %s"
+
+#, c-format
+msgid "E123: Undefined function: %s"
+msgstr "E123: Nedifinita funkcio: %s"
+
+#, c-format
+msgid "E124: Missing '(': %s"
+msgstr "E124: Mankas '(': %s"
+
+msgid "E862: Cannot use g: here"
+msgstr "E862: Ne eblas uzi g: ĉi tie"
+
+#, c-format
+msgid "E932: Closure function should not be at top level: %s"
+msgstr "E932: Fermo-funkcio devus esti je la plej alta nivelo: %s"
+
+msgid "E126: Missing :endfunction"
+msgstr "E126: Mankas \":endfunction\""
+
+#, c-format
+msgid "E707: Function name conflicts with variable: %s"
+msgstr "E707: Nomo de funkcio konfliktas kun variablo: %s"
+
+#, c-format
+msgid "E127: Cannot redefine function %s: It is in use"
+msgstr "E127: Ne eblas redifini funkcion %s: Estas nuntempe uzata"
+
+#, c-format
+msgid "E746: Function name does not match script file name: %s"
+msgstr "E746: Nomo de funkcio ne kongruas kun dosiernomo de skripto: %s"
+
+#, c-format
+msgid "E131: Cannot delete function %s: It is in use"
+msgstr "E131: Ne eblas forviŝi funkcion %s: Estas nuntempe uzata"
+
+msgid "E133: :return not inside a function"
+msgstr "E133: \":return\" ekster funkcio"
+
+#, c-format
+msgid "E107: Missing parentheses: %s"
+msgstr "E107: Mankas krampoj: %s"
+
+msgid ""
+"\n"
+"MS-Windows 64-bit GUI version"
+msgstr ""
+"\n"
+"Grafika versio MS-Vindozo 64-bitoj"
+
+msgid ""
+"\n"
+"MS-Windows 32-bit GUI version"
+msgstr ""
+"\n"
+"Grafika versio MS-Vindozo 32-bitoj"
+
+msgid " with OLE support"
+msgstr " kun subteno de OLE"
+
+msgid ""
+"\n"
+"MS-Windows 64-bit console version"
+msgstr ""
+"\n"
+"Versio konzola MS-Vindozo 64-bitoj"
+
+msgid ""
+"\n"
+"MS-Windows 32-bit console version"
+msgstr ""
+"\n"
+"Versio konzola MS-Vindozo 32-bitoj"
+
+msgid ""
+"\n"
+"MacOS X (unix) version"
+msgstr ""
+"\n"
+"Versio Mak OS X (unikso)"
+
+msgid ""
+"\n"
+"MacOS X version"
+msgstr ""
+"\n"
+"Versio Mak OS X"
+
+msgid ""
+"\n"
+"MacOS version"
+msgstr ""
+"\n"
+"Versio Mak OS"
+
+msgid ""
+"\n"
+"OpenVMS version"
+msgstr ""
+"\n"
+"Versio OpenVMS"
+
msgid ""
"\n"
"Included patches: "
@@ -5025,9 +6102,70 @@ msgstr ""
"\n"
"Grandega versio "
+msgid ""
+"\n"
+"Big version "
+msgstr ""
+"\n"
+"Granda versio "
+
+msgid ""
+"\n"
+"Normal version "
+msgstr ""
+"\n"
+"Normala versio "
+
+msgid ""
+"\n"
+"Small version "
+msgstr ""
+"\n"
+"Malgranda versio "
+
+msgid ""
+"\n"
+"Tiny version "
+msgstr ""
+"\n"
+"Malgrandega versio "
+
msgid "without GUI."
msgstr "sen grafika interfaco."
+msgid "with GTK3 GUI."
+msgstr "kun grafika interfaco GTK3."
+
+msgid "with GTK2-GNOME GUI."
+msgstr "kun grafika interfaco GTK2-GNOME."
+
+msgid "with GTK2 GUI."
+msgstr "kun grafika interfaco GTK2."
+
+msgid "with X11-Motif GUI."
+msgstr "kun grafika interfaco X11-Motif."
+
+msgid "with X11-neXtaw GUI."
+msgstr "kun grafika interfaco X11-neXtaw."
+
+msgid "with X11-Athena GUI."
+msgstr "kun grafika interfaco X11-Athena."
+
+msgid "with Photon GUI."
+msgstr "kun grafika interfaco Photon."
+
+msgid "with GUI."
+msgstr "sen grafika interfaco."
+
+msgid "with Carbon GUI."
+msgstr "kun grafika interfaco Carbon."
+
+msgid "with Cocoa GUI."
+msgstr "kun grafika interfaco Cocoa."
+
+msgid "with (classic) GUI."
+msgstr "kun (klasika) grafika interfaco."
+
msgid " Features included (+) or not (-):\n"
msgstr " Ebloj inkluzivitaj (+) aŭ ne (-):\n"
@@ -5049,6 +6187,24 @@ msgstr " dosiero exrc de uzanto: \""
msgid " 2nd user exrc file: \""
msgstr " 2-a dosiero exrc de uzanto: \""
+msgid " system gvimrc file: \""
+msgstr " sistema dosiero gvimrc: \""
+
+msgid " user gvimrc file: \""
+msgstr " dosiero gvimrc de uzanto: \""
+
+msgid "2nd user gvimrc file: \""
+msgstr " 2-a dosiero gvimrc de uzanto: \""
+
+msgid "3rd user gvimrc file: \""
+msgstr " 3-a dosiero gvimrc de uzanto: \""
+
+msgid " defaults file: \""
+msgstr " dosiero de defaŭltoj: \""
+
+msgid " system menu file: \""
+msgstr " dosiero de sistema menuo: \""
+
msgid " fall-back for $VIM: \""
msgstr " defaŭlto de $VIM: \""
@@ -5058,6 +6214,9 @@ msgstr " defaŭlto de VIMRUNTIME: \""
msgid "Compilation: "
msgstr "Kompilado: "
+msgid "Compiler: "
+msgstr "Kompililo: "
+
msgid "Linking: "
msgstr "Ligado: "
@@ -5093,8 +6252,8 @@ msgid "type :help<Enter> or <F1> for on-line help"
msgstr "tajpu :help<Enenklavo> aŭ <F1> por aliri la helpon "
# DP: atentu al la spacetoj: ĉiuj ĉenoj devas havi la saman longon
-msgid "type :help version7<Enter> for version info"
-msgstr "tajpu :help version7<Enenklavo> por informo de versio"
+msgid "type :help version8<Enter> for version info"
+msgstr "tajpu :help version8<Enenklavo> por informo de versio"
msgid "Running in Vi compatible mode"
msgstr "Ruliĝas en reĝimo kongrua kun Vi"
@@ -5107,6 +6266,30 @@ msgstr "tajpu :set nocp<Enenklavo> por Vim defaŭltoj "
msgid "type :help cp-default<Enter> for info on this"
msgstr "tajpu :help cp-default<Enenklavo> por pliaj informoj "
+# DP: atentu al la spacetoj: ĉiuj ĉenoj devas havi la saman longon
+msgid "menu Help->Orphans for information "
+msgstr "menuo Help->Orfinoj por pliaj informoj "
+
+msgid "Running modeless, typed text is inserted"
+msgstr "Ruliĝas senreĝime, tajpita teksto estas enmetita"
+
+# DP: atentu al la spacetoj: ĉiuj ĉenoj devas havi la saman longon
+msgid "menu Edit->Global Settings->Toggle Insert Mode "
+msgstr "menuo Redakti->Mallokaj Agordoj->Baskuligi Enmetan Reĝimon"
+
+# DP: atentu al la spacetoj: ĉiuj ĉenoj devas havi la saman longon
+msgid " for two modes "
+msgstr " por du reĝimoj "
+
+# DP: tiu ĉeno pli longas (mi ne volas igi ĉiujn aliajn ĉenojn
+# pli longajn)
+msgid "menu Edit->Global Settings->Toggle Vi Compatible"
+msgstr "menuo Redakti->Mallokaj Agordoj->Baskuligi Reĝimon Kongruan kun Vi"
+
+# DP: atentu al la spacetoj: ĉiuj ĉenoj devas havi la saman longon
+msgid " for Vim defaults "
+msgstr " por defaŭltoj de Vim "
+
msgid "Sponsor Vim development!"
msgstr "Subtenu la programadon de Vim!"
@@ -5152,1737 +6335,703 @@ msgstr "E445: La alia fenestro enhavas ŝanĝojn"
msgid "E446: No file name under cursor"
msgstr "E446: Neniu dosiernomo sub la kursoro"
-#~ msgid "E831: bf_key_init() called with empty password"
-#~ msgstr "E831: bf_key_init() alvokita kun malplena pasvorto"
-
-#~ msgid "E820: sizeof(uint32_t) != 4"
-#~ msgstr "E820: sizeof(uint32_t) != 4"
-
-#~ msgid "E817: Blowfish big/little endian use wrong"
-#~ msgstr "E817: Misuzo de pezkomenca/pezfina en blowfish"
-
-#~ msgid "E818: sha256 test failed"
-#~ msgstr "E818: Testo de sha256 fiaskis"
-
-#~ msgid "E819: Blowfish test failed"
-#~ msgstr "E819: Testo de blowfish fiaskis"
-
-#~ msgid "Patch file"
-#~ msgstr "Flika dosiero"
-
-#~ msgid ""
-#~ "&OK\n"
-#~ "&Cancel"
-#~ msgstr ""
-#~ "&Bone\n"
-#~ "&Rezigni"
-
-#~ msgid "E240: No connection to Vim server"
-#~ msgstr "E240: Neniu konekto al Vim-servilo"
-
-#~ msgid "E241: Unable to send to %s"
-#~ msgstr "E241: Ne eblas sendi al %s"
-
-#~ msgid "E277: Unable to read a server reply"
-#~ msgstr "E277: Ne eblas legi respondon de servilo"
-
-#~ msgid "E258: Unable to send to client"
-#~ msgstr "E258: Ne eblas sendi al kliento"
-
-#~ msgid "Save As"
-#~ msgstr "Konservi kiel"
-
-#~ msgid "Edit File"
-#~ msgstr "Redakti dosieron"
-
-#~ msgid " (NOT FOUND)"
-#~ msgstr " (NETROVITA)"
-
-#~ msgid "Source Vim script"
-#~ msgstr "Ruli Vim-skripton"
-
-#~ msgid "unknown"
-#~ msgstr "nekonata"
-
-#~ msgid "Edit File in new window"
-#~ msgstr "Redakti Dosieron en nova fenestro"
-
-#~ msgid "Append File"
-#~ msgstr "Postaldoni dosieron"
-
-#~ msgid "Window position: X %d, Y %d"
-#~ msgstr "Pozicio de fenestro: X %d, Y %d"
-
-#~ msgid "Save Redirection"
-#~ msgstr "Konservi alidirekton"
-
-# DP: mi ne certas pri superflugo
-#~ msgid "Save View"
-#~ msgstr "Konservi superflugon"
-
-#~ msgid "Save Session"
-#~ msgstr "Konservi seancon"
-
-#~ msgid "Save Setup"
-#~ msgstr "Konservi agordaron"
-
-#~ msgid "E809: #< is not available without the +eval feature"
-#~ msgstr "E809: #< ne haveblas sen la eblo +eval"
-
-#~ msgid "E196: No digraphs in this version"
-#~ msgstr "E196: Neniu duliteraĵo en tiu versio"
-
-#~ msgid "is a device (disabled with 'opendevice' option)"
-#~ msgstr "estas aparatdosiero (malŝaltita per la opcio 'opendevice')"
-
-#~ msgid "Reading from stdin..."
-#~ msgstr "Legado el stdin..."
-
-#~ msgid "[crypted]"
-#~ msgstr "[ĉifrita]"
-
-#~ msgid "E821: File is encrypted with unknown method"
-#~ msgstr "E821: Dosiero estas ĉifrata per nekonata metodo"
-
-#~ msgid "Warning: Using a weak encryption method; see :help 'cm'"
-#~ msgstr "Averto: uzo de malfortika ĉifrada metodo; vidu :help 'cm'"
-
-#~ msgid "NetBeans disallows writes of unmodified buffers"
-#~ msgstr "NetBeans malpermesas skribojn de neŝanĝitaj bufroj"
-
-#~ msgid "Partial writes disallowed for NetBeans buffers"
-#~ msgstr "Partaj skriboj malpermesitaj ĉe bufroj NetBeans"
-
-#~ msgid "writing to device disabled with 'opendevice' option"
-#~ msgstr "skribo al aparatdosiero malŝaltita per la opcio 'opendevice'"
-
-#~ msgid "E460: The resource fork would be lost (add ! to override)"
-#~ msgstr "E460: La rimeda forko estus perdita (aldonu ! por transpasi)"
-
-#~ msgid "E851: Failed to create a new process for the GUI"
-#~ msgstr "E851: Ne sukcesis krei novan procezon por la grafika interfaco"
-
-#~ msgid "E852: The child process failed to start the GUI"
-#~ msgstr "E852: La ida procezo ne sukcesis startigi la grafikan interfacon"
-
-#~ msgid "E229: Cannot start the GUI"
-#~ msgstr "E229: Ne eblas lanĉi la grafikan interfacon"
-
-#~ msgid "E230: Cannot read from \"%s\""
-#~ msgstr "E230: Ne eblas legi el \"%s\""
-
-#~ msgid "E665: Cannot start GUI, no valid font found"
-#~ msgstr ""
-#~ "E665: Ne eblas startigi grafikan interfacon, neniu valida tiparo trovita"
-
-#~ msgid "E231: 'guifontwide' invalid"
-#~ msgstr "E231: 'guifontwide' nevalida"
-
-#~ msgid "E599: Value of 'imactivatekey' is invalid"
-#~ msgstr "E599: Valoro de 'imactivatekey' estas nevalida"
-
-#~ msgid "E254: Cannot allocate color %s"
-#~ msgstr "E254: Ne eblas disponigi koloron %s"
-
-#~ msgid "No match at cursor, finding next"
-#~ msgstr "Neniu kongruo ĉe kursorpozicio, trovas sekvan"
-
-#~ msgid "<cannot open> "
-#~ msgstr "<ne eblas malfermi> "
-
-#~ msgid "E616: vim_SelFile: can't get font %s"
-#~ msgstr "E616: vim_SelFile: ne eblas akiri tiparon %s"
-
-#~ msgid "E614: vim_SelFile: can't return to current directory"
-#~ msgstr "E614: vim_SelFile: ne eblas reveni al la aktuala dosierujo"
-
-#~ msgid "Pathname:"
-#~ msgstr "Serĉvojo:"
-
-#~ msgid "E615: vim_SelFile: can't get current directory"
-#~ msgstr "E615: vim_SelFile: ne eblas akiri aktualan dosierujon"
-
-#~ msgid "OK"
-#~ msgstr "Bone"
-
-#~ msgid "Cancel"
-#~ msgstr "Rezigni"
-
-#~ msgid "Scrollbar Widget: Could not get geometry of thumb pixmap."
-#~ msgstr ""
-#~ "Fenestraĵo de rulumskalo: Ne eblis akiri geometrion de reduktita "
-#~ "rastrumbildo"
-
-#~ msgid "Vim dialog"
-#~ msgstr "Vim dialogo"
-
-#~ msgid "E232: Cannot create BalloonEval with both message and callback"
-#~ msgstr "E232: Ne eblas krei BalloonEval kun ambaŭ mesaĝo kaj reagfunkcio"
-
-msgid "Yes"
-msgstr "Jes"
-
-msgid "No"
-msgstr "Ne"
-
-# todo '_' is for hotkey, i guess?
-#~ msgid "Input _Methods"
-#~ msgstr "Enigaj _metodoj"
-
-#~ msgid "VIM - Search and Replace..."
-#~ msgstr "VIM - Serĉi kaj anstataŭigi..."
-
-#~ msgid "VIM - Search..."
-#~ msgstr "VIM- Serĉi..."
-
-#~ msgid "Find what:"
-#~ msgstr "Serĉi kion:"
-
-#~ msgid "Replace with:"
-#~ msgstr "Anstataŭigi per:"
-
-#~ msgid "Match whole word only"
-#~ msgstr "Kongrui kun nur plena vorto"
-
-#~ msgid "Match case"
-#~ msgstr "Uskleca kongruo"
-
-#~ msgid "Direction"
-#~ msgstr "Direkto"
-
-#~ msgid "Up"
-#~ msgstr "Supren"
-
-#~ msgid "Down"
-#~ msgstr "Suben"
-
-#~ msgid "Find Next"
-#~ msgstr "Trovi sekvantan"
-
-#~ msgid "Replace"
-#~ msgstr "Anstataŭigi"
-
-#~ msgid "Replace All"
-#~ msgstr "Anstataŭigi ĉiujn"
-
-#~ msgid "Vim: Received \"die\" request from session manager\n"
-#~ msgstr "Vim: Ricevis peton \"die\" (morti) el la seanca administrilo\n"
-
-#~ msgid "Close tab"
-#~ msgstr "Fermi langeton"
-
-#~ msgid "New tab"
-#~ msgstr "Nova langeto"
-
-#~ msgid "Open Tab..."
-#~ msgstr "Malfermi langeton..."
-
-#~ msgid "Vim: Main window unexpectedly destroyed\n"
-#~ msgstr "Vim: Ĉefa fenestro neatendite detruiĝis\n"
-
-#~ msgid "&Filter"
-#~ msgstr "&Filtri"
-
-#~ msgid "&Cancel"
-#~ msgstr "&Rezigni"
-
-#~ msgid "Directories"
-#~ msgstr "Dosierujoj"
-
-#~ msgid "Filter"
-#~ msgstr "Filtri"
-
-#~ msgid "&Help"
-#~ msgstr "&Helpo"
-
-#~ msgid "Files"
-#~ msgstr "Dosieroj"
-
-#~ msgid "&OK"
-#~ msgstr "&Bone"
-
-#~ msgid "Selection"
-#~ msgstr "Apartigo"
-
-#~ msgid "Find &Next"
-#~ msgstr "Trovi &Sekvanta"
-
-#~ msgid "&Replace"
-#~ msgstr "&Anstataŭigi"
-
-#~ msgid "Replace &All"
-#~ msgstr "Anstataŭigi ĉi&on"
-
-#~ msgid "&Undo"
-#~ msgstr "&Malfari"
-
-#~ msgid "E671: Cannot find window title \"%s\""
-#~ msgstr "E671: Ne eblas trovi titolon de fenestro \"%s\""
-
-#~ msgid "E243: Argument not supported: \"-%s\"; Use the OLE version."
-#~ msgstr "E243: Ne subtenata argumento: \"-%s\"; Uzu la version OLE."
-
-#~ msgid "E672: Unable to open window inside MDI application"
-#~ msgstr "E672: Ne eblas malfermi fenestron interne de aplikaĵo MDI"
-
-#~ msgid "Open tab..."
-#~ msgstr "Malfermi langeton..."
-
-#~ msgid "Find string (use '\\\\' to find a '\\')"
-#~ msgstr "Trovi ĉenon (uzu '\\\\' por trovi '\\')"
-
-#~ msgid "Find & Replace (use '\\\\' to find a '\\')"
-#~ msgstr "Trovi kaj anstataŭigi (uzu '\\\\' por trovi '\\')"
-
-#~ msgid "Not Used"
-#~ msgstr "Ne uzata"
-
-#~ msgid "Directory\t*.nothing\n"
-#~ msgstr "Dosierujo\t*.nenio\n"
-
-#~ msgid ""
-#~ "Vim E458: Cannot allocate colormap entry, some colors may be incorrect"
-#~ msgstr ""
-#~ "Vim E458: Ne eblas disponigi rikordon de kolormapo, iuj koloroj estas "
-#~ "eble neĝustaj"
-
-#~ msgid "E250: Fonts for the following charsets are missing in fontset %s:"
-#~ msgstr "E250: Tiparoj de tiuj signaroj mankas en aro de tiparo %s:"
-
-#~ msgid "E252: Fontset name: %s"
-#~ msgstr "E252: Nomo de tiparo: %s"
-
-#~ msgid "Font '%s' is not fixed-width"
-#~ msgstr "Tiparo '%s' ne estas egallarĝa"
-
-#~ msgid "E253: Fontset name: %s\n"
-#~ msgstr "E253: Nomo de tiparo: %s\n"
-
-#~ msgid "Font0: %s\n"
-#~ msgstr "Font0: %s\n"
-
-#~ msgid "Font1: %s\n"
-#~ msgstr "Font1: %s\n"
-
-#~ msgid "Font%<PRId64> width is not twice that of font0\n"
-#~ msgstr "Font%<PRId64> ne estas duoble pli larĝa ol font0\n"
-
-#~ msgid "Font0 width: %<PRId64>\n"
-#~ msgstr "Larĝo de font0: %<PRId64>\n"
-
-#~ msgid ""
-#~ "Font1 width: %<PRId64>\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Larĝo de Font1: %<PRId64>\n"
-#~ "\n"
-
-#~ msgid "Invalid font specification"
-#~ msgstr "Nevalida tiparo specifita"
-
-#~ msgid "&Dismiss"
-#~ msgstr "&Forlasi"
-
-#~ msgid "no specific match"
-#~ msgstr "Neniu specifa kongruo"
-
-#~ msgid "Vim - Font Selector"
-#~ msgstr "Vim - Elektilo de tiparo"
-
-#~ msgid "Name:"
-#~ msgstr "Nomo:"
-
-#~ msgid "Show size in Points"
-#~ msgstr "Montri grandon en punktoj"
-
-#~ msgid "Encoding:"
-#~ msgstr "Kodoprezento:"
-
-#~ msgid "Font:"
-#~ msgstr "Tiparo:"
-
-#~ msgid "Style:"
-#~ msgstr "Stilo:"
-
-#~ msgid "Size:"
-#~ msgstr "Grando:"
-
-#~ msgid "E256: Hangul automata ERROR"
-#~ msgstr "E256: ERARO en aŭtomato de korea alfabeto"
-
-#~ msgid "E563: stat error"
-#~ msgstr "E563: Eraro de stat"
-
-#~ msgid "E625: cannot open cscope database: %s"
-#~ msgstr "E625: ne eblas malfermi datumbazon de cscope: %s"
-
-#~ msgid "E626: cannot get cscope database information"
-#~ msgstr "E626: ne eblas akiri informojn pri la datumbazo de cscope"
-
-#~ msgid "Lua library cannot be loaded."
-#~ msgstr "La biblioteko Lua no ŝargeblis."
-
-#~ msgid "cannot save undo information"
-#~ msgstr "ne eblas konservi informojn de malfaro"
-
-#~ msgid ""
-#~ "E815: Sorry, this command is disabled, the MzScheme libraries could not "
-#~ "be loaded."
-#~ msgstr ""
-#~ "E815: Bedaŭrinde, tiu komando estas malŝaltita, ne eblis ŝargi la "
-#~ "bibliotekojn."
-
-#~ msgid "invalid expression"
-#~ msgstr "nevalida esprimo"
-
-#~ msgid "expressions disabled at compile time"
-#~ msgstr "esprimoj malŝaltitaj dum kompilado"
-
-#~ msgid "hidden option"
-#~ msgstr "kaŝita opcio"
-
-#~ msgid "unknown option"
-#~ msgstr "nekonata opcio"
-
-#~ msgid "window index is out of range"
-#~ msgstr "indekso de fenestro estas ekster limoj"
-
-#~ msgid "couldn't open buffer"
-#~ msgstr "ne eblis malfermi bufron"
-
-#~ msgid "cannot delete line"
-#~ msgstr "ne eblas forviŝi linion"
-
-#~ msgid "cannot replace line"
-#~ msgstr "ne eblas anstataŭigi linion"
-
-#~ msgid "cannot insert line"
-#~ msgstr "ne eblas enmeti linion"
-
-#~ msgid "string cannot contain newlines"
-#~ msgstr "ĉeno ne rajtas enhavi liniavancojn"
-
-#~ msgid "error converting Scheme values to Vim"
-#~ msgstr "eraro dum konverto de Scheme-valoro al Vim"
-
-#~ msgid "Vim error: ~a"
-#~ msgstr "Eraro de Vim: ~a"
-
-#~ msgid "Vim error"
-#~ msgstr "Eraro de Vim"
-
-#~ msgid "buffer is invalid"
-#~ msgstr "bufro estas nevalida"
-
-#~ msgid "window is invalid"
-#~ msgstr "fenestro estas nevalida"
-
-#~ msgid "linenr out of range"
-#~ msgstr "numero de linio ekster limoj"
-
-#~ msgid "not allowed in the Vim sandbox"
-#~ msgstr "nepermesebla en sabloludejo de Vim"
-
-#~ msgid "E836: This Vim cannot execute :python after using :py3"
-#~ msgstr "E836: Vim ne povas plenumi :python post uzo de :py3"
-
-#~ msgid "only string keys are allowed"
-#~ msgstr "nur ĉenaj ŝlosiloj estas permeseblaj"
-
-#~ msgid ""
-#~ "E263: Sorry, this command is disabled, the Python library could not be "
-#~ "loaded."
-#~ msgstr ""
-#~ "E263: Bedaŭrinde tiu komando estas malŝaltita: la biblioteko de Pitono ne "
-#~ "ŝargeblis."
-
-#~ msgid "E659: Cannot invoke Python recursively"
-#~ msgstr "E659: Ne eblas alvoki Pitonon rekursie"
-
-#~ msgid "E837: This Vim cannot execute :py3 after using :python"
-#~ msgstr "E837: Vim ne povas plenumi :py3 post uzo de :python"
-
-#~ msgid "index must be int or slice"
-#~ msgstr "indekso devas esti 'int' aŭ 'slice'"
-
-#~ msgid "E265: $_ must be an instance of String"
-#~ msgstr "E265: $_ devas esti apero de Ĉeno"
-
-#~ msgid ""
-#~ "E266: Sorry, this command is disabled, the Ruby library could not be "
-#~ "loaded."
-#~ msgstr ""
-#~ "E266: Bedaŭrinde tiu komando estas malŝaltita, la biblioteko Ruby ne "
-#~ "ŝargeblis."
-
-#~ msgid "E267: unexpected return"
-#~ msgstr "E267: \"return\" neatendita"
-
-#~ msgid "E268: unexpected next"
-#~ msgstr "E268: \"next\" neatendita"
-
-#~ msgid "E269: unexpected break"
-#~ msgstr "E269: \"break\" neatendita"
-
-#~ msgid "E270: unexpected redo"
-#~ msgstr "E270: \"redo\" neatendita"
-
-#~ msgid "E271: retry outside of rescue clause"
-#~ msgstr "E271: \"retry\" ekster klaŭzo \"rescue\""
-
-#~ msgid "E272: unhandled exception"
-#~ msgstr "E272: netraktita escepto"
-
-#~ msgid "E273: unknown longjmp status %d"
-#~ msgstr "E273: nekonata stato de longjmp: %d"
-
-#~ msgid "Toggle implementation/definition"
-#~ msgstr "Baskuligi realigon/difinon"
-
-#~ msgid "Show base class of"
-#~ msgstr "Vidigi bazan klason de"
-
-#~ msgid "Show overridden member function"
-#~ msgstr "Montri anajn homonimigajn funkciojn"
-
-#~ msgid "Retrieve from file"
-#~ msgstr "Rekuperi el dosiero"
-
-#~ msgid "Retrieve from project"
-#~ msgstr "Rekuperi el projekto"
-
-#~ msgid "Retrieve from all projects"
-#~ msgstr "Rekuperi de ĉiuj projektoj"
-
-#~ msgid "Retrieve"
-#~ msgstr "Rekuperi"
-
-#~ msgid "Show source of"
-#~ msgstr "Vidigi fonton de"
-
-#~ msgid "Find symbol"
-#~ msgstr "Trovi simbolon"
-
-#~ msgid "Browse class"
-#~ msgstr "Foliumi klasojn"
-
-#~ msgid "Show class in hierarchy"
-#~ msgstr "Montri klason en hierarkio"
-
-#~ msgid "Show class in restricted hierarchy"
-#~ msgstr "Montri klason en hierarkio restriktita"
-
-# todo
-#~ msgid "Xref refers to"
-#~ msgstr "Xref ligas al"
-
-#~ msgid "Xref referred by"
-#~ msgstr "Xref ligiĝas de"
-
-#~ msgid "Xref has a"
-#~ msgstr "Xref havas"
-
-#~ msgid "Xref used by"
-#~ msgstr "Xref uzita de"
-
-# DP: mi ne certas pri kio temas
-#~ msgid "Show docu of"
-#~ msgstr "Vidigi dokumentaron de"
-
-#~ msgid "Generate docu for"
-#~ msgstr "Krei dokumentaron de"
-
-#~ msgid ""
-#~ "Cannot connect to SNiFF+. Check environment (sniffemacs must be found in "
-#~ "$PATH).\n"
-#~ msgstr ""
-#~ "Konekto al SNiFF+ neeblas. Kontrolu medion (sniffemacs trovendas en "
-#~ "$PATH).\n"
-
-#~ msgid "E274: Sniff: Error during read. Disconnected"
-#~ msgstr "E274: Sniff: Eraro dum lego. Malkonektita"
-
-# DP: Tiuj 3 mesaĝoj estas kune
-#~ msgid "SNiFF+ is currently "
-#~ msgstr "SNiFF+ estas aktuale "
-
-#~ msgid "not "
-#~ msgstr "ne "
-
-#~ msgid "connected"
-#~ msgstr "konektita"
-
-#~ msgid "E275: Unknown SNiFF+ request: %s"
-#~ msgstr "E275: Nekonata peto de SNiFF+: %s"
-
-#~ msgid "E276: Error connecting to SNiFF+"
-#~ msgstr "E276: Eraro dum konekto al SNiFF+"
-
-#~ msgid "E278: SNiFF+ not connected"
-#~ msgstr "E278: SNiFF+ ne estas konektita"
-
-#~ msgid "E279: Not a SNiFF+ buffer"
-#~ msgstr "E279: Ne estas bufro SNiFF+"
-
-#~ msgid "Sniff: Error during write. Disconnected"
-#~ msgstr "Sniff: Eraro dum skribo. Malkonektita"
-
-#~ msgid "invalid buffer number"
-#~ msgstr "nevalida numero de bufro"
-
-#~ msgid "not implemented yet"
-#~ msgstr "ankoraŭ ne realigita"
-
-#~ msgid "cannot set line(s)"
-#~ msgstr "ne eblas meti la linio(j)n"
-
-#~ msgid "invalid mark name"
-#~ msgstr "nevalida nomo de marko"
-
-#~ msgid "mark not set"
-#~ msgstr "marko ne estas metita"
-
-#~ msgid "row %d column %d"
-#~ msgstr "linio %d kolumno %d"
-
-#~ msgid "cannot insert/append line"
-#~ msgstr "ne eblas enmeti/postaldoni linion"
-
-#~ msgid "line number out of range"
-#~ msgstr "numero de linio ekster limoj"
-
-#~ msgid "unknown flag: "
-#~ msgstr "nekonata flago: "
-
-# DP: ĉu traduki vimOption
-#~ msgid "unknown vimOption"
-#~ msgstr "nekonata vimOption"
-
-#~ msgid "keyboard interrupt"
-#~ msgstr "klavara interrompo"
-
-#~ msgid "vim error"
-#~ msgstr "eraro de Vim"
-
-#~ msgid "cannot create buffer/window command: object is being deleted"
-#~ msgstr ""
-#~ "ne eblas krei komandon de bufro/fenestro: objekto estas forviŝiĝanta"
-
-#~ msgid ""
-#~ "cannot register callback command: buffer/window is already being deleted"
-#~ msgstr ""
-#~ "ne eblas registri postalvokan komandon: bufro/fenestro estas jam "
-#~ "forviŝiĝanta"
-
-#~ msgid ""
-#~ "E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-"
-#~ "dev@vim.org"
-#~ msgstr ""
-#~ "E280: NERIPAREBLA TCL-ERARO: reflist difekta!? Bv. retpoŝti al vim-"
-#~ "dev@vim.org"
-
-#~ msgid "cannot register callback command: buffer/window reference not found"
-#~ msgstr ""
-#~ "ne eblas registri postalvokan komandon: referenco de bufro/fenestro ne "
-#~ "troveblas"
-
-#~ msgid ""
-#~ "E571: Sorry, this command is disabled: the Tcl library could not be "
-#~ "loaded."
-#~ msgstr ""
-#~ "E571: Bedaŭrinde tiu komando estas malŝaltita: la biblioteko Tcl ne "
-#~ "ŝargeblis."
-
-#~ msgid "E572: exit code %d"
-#~ msgstr "E572: elira kodo %d"
-
-#~ msgid "cannot get line"
-#~ msgstr "ne eblas akiri linion"
-
-#~ msgid "Unable to register a command server name"
-#~ msgstr "Ne eblas registri nomon de komanda servilo"
-
-#~ msgid "E248: Failed to send command to the destination program"
-#~ msgstr "E248: Sendo de komando al cela programo fiaskis"
-
-#~ msgid "E573: Invalid server id used: %s"
-#~ msgstr "E573: Nevalida identigilo de servilo uzita: %s"
-
-#~ msgid "E251: VIM instance registry property is badly formed. Deleted!"
-#~ msgstr ""
-#~ "E251: Ecoj de registro de apero de VIM estas nevalide formata. Forviŝita!"
-
-#~ msgid "netbeans is not supported with this GUI\n"
-#~ msgstr "netbeans ne estas subtenata kun tiu grafika interfaco\n"
-
-#~ msgid "This Vim was not compiled with the diff feature."
-#~ msgstr "Tiu Vim ne estis kompilita kun la kompara eblo."
-
-#~ msgid "'-nb' cannot be used: not enabled at compile time\n"
-#~ msgstr "'-nb' ne uzeblas: malŝaltita dum kompilado\n"
-
-#~ msgid "Vim: Error: Failure to start gvim from NetBeans\n"
-#~ msgstr "Vim: Eraro: Fiaskis lanĉi gvim el NetBeans\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "Where case is ignored prepend / to make flag upper case"
-#~ msgstr ""
-#~ "\n"
-#~ "Kie uskleco estas ignorita antaŭaldonu / por igi flagon majuskla"
-
-#~ msgid "-register\t\tRegister this gvim for OLE"
-#~ msgstr "-register\t\tRegistri tiun gvim al OLE"
-
-#~ msgid "-unregister\t\tUnregister gvim for OLE"
-#~ msgstr "-unregister\t\tMalregistri gvim de OLE"
-
-#~ msgid "-g\t\t\tRun using GUI (like \"gvim\")"
-#~ msgstr "-g\t\t\tRuli per grafika interfaco (kiel \"gvim\")"
-
-#~ msgid "-f or --nofork\tForeground: Don't fork when starting GUI"
-#~ msgstr "-f aŭ --nofork\tMalfono: ne forki kiam lanĉas grafikan interfacon"
-
-#~ msgid "-f\t\t\tDon't use newcli to open window"
-#~ msgstr "-f\t\t\tNe uzi newcli por malfermi fenestrojn"
-
-#~ msgid "-dev <device>\t\tUse <device> for I/O"
-#~ msgstr "-dev <aparatdosiero>\t\tUzi <aparatdosiero>-n por eneligo"
-
-#~ msgid "-U <gvimrc>\t\tUse <gvimrc> instead of any .gvimrc"
-#~ msgstr "-U <gvimrc>\t\tUzi <gvimrc> anstataŭ iun ajn .gvimrc"
-
-#~ msgid "-x\t\t\tEdit encrypted files"
-#~ msgstr "-x\t\t\tRedakti ĉifradan dosieron"
-
-#~ msgid "-display <display>\tConnect vim to this particular X-server"
-#~ msgstr "-display <ekrano>\tKonekti Vim al tiu X-servilo"
-
-#~ msgid "-X\t\t\tDo not connect to X server"
-#~ msgstr "-X\t\t\tNe konekti al X-servilo"
-
-#~ msgid "--remote <files>\tEdit <files> in a Vim server if possible"
-#~ msgstr "--remote <dosieroj>\tRedakti <dosieroj>-n en Vim-servilo se eblas"
-
-#~ msgid "--remote-silent <files> Same, don't complain if there is no server"
-#~ msgstr "--remote-silent <dosieroj> Same, sed ne plendi se ne estas servilo"
-
-#~ msgid ""
-#~ "--remote-wait <files> As --remote but wait for files to have been edited"
-#~ msgstr ""
-#~ "--remote-wait <dosieroj> Kiel --remote sed atendi ĝis dosieroj estas "
-#~ "redaktitaj"
-
-#~ msgid ""
-#~ "--remote-wait-silent <files> Same, don't complain if there is no server"
-#~ msgstr ""
-#~ "--remote-wait-silent <dosieroj> Same, sed ne plendi se ne estas servilo"
-
-#~ msgid ""
-#~ "--remote-tab[-wait][-silent] <files> As --remote but use tab page per "
-#~ "file"
-#~ msgstr ""
-#~ "--remote-tab[-wait][-silent] <dosieroj> Kiel --remote sed uzi langeton "
-#~ "por ĉiu dosiero"
-
-#~ msgid "--remote-send <keys>\tSend <keys> to a Vim server and exit"
-#~ msgstr "--remote-send <klavoj> Sendi <klavoj>-n al Vim-servilo kaj eliri"
-
-#~ msgid ""
-#~ "--remote-expr <expr>\tEvaluate <expr> in a Vim server and print result"
-#~ msgstr ""
-#~ "--remote-expr <espr>\tKomputi <espr> en Vim-servilo kaj afiŝi rezulton"
-
-#~ msgid "--serverlist\t\tList available Vim server names and exit"
-#~ msgstr "--serverlist\t\tListigi haveblajn nomojn de Vim-serviloj kaj eliri"
-
-#~ msgid "--servername <name>\tSend to/become the Vim server <name>"
-#~ msgstr "--servername <nomo>\tSendu al/iĝi la Vim-servilo <nomo>"
-
-#~ msgid ""
-#~ "\n"
-#~ "Arguments recognised by gvim (Motif version):\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Argumentoj agnoskitaj de gvim (versio Motif):\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "Arguments recognised by gvim (neXtaw version):\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Argumentoj agnoskitaj de gvim (versio neXtaw):\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "Arguments recognised by gvim (Athena version):\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Argumentoj agnoskitaj de gvim (versio Athena):\n"
-
-#~ msgid "-display <display>\tRun vim on <display>"
-#~ msgstr "-display <ekrano>\tLanĉi vim sur <ekrano>"
-
-#~ msgid "-iconic\t\tStart vim iconified"
-#~ msgstr "-iconic\t\tLanĉi vim piktograme"
-
-#~ msgid "-background <color>\tUse <color> for the background (also: -bg)"
-#~ msgstr ""
-#~ "-background <koloro>\tUzi <koloro>-n por la fona koloro (ankaŭ: -bg)"
-
-#~ msgid "-foreground <color>\tUse <color> for normal text (also: -fg)"
-#~ msgstr ""
-#~ "-foreground <koloro>\tUzi <koloro>-n por la malfona koloro (ankaŭ: -fg)"
-
-#~ msgid "-font <font>\t\tUse <font> for normal text (also: -fn)"
-#~ msgstr "-font <tiparo>\tUzi <tiparo>-n por normala teksto (ankaŭ: -fn)"
-
-#~ msgid "-boldfont <font>\tUse <font> for bold text"
-#~ msgstr "-boldfont <tiparo>\tUzi <tiparo>-n por grasa teksto"
-
-#~ msgid "-italicfont <font>\tUse <font> for italic text"
-#~ msgstr "-italicfont <tiparo>\tUzi <tiparo>-n por kursiva teksto"
-
-#~ msgid "-geometry <geom>\tUse <geom> for initial geometry (also: -geom)"
-#~ msgstr "-geometry <geom>\tUzi <geom> kiel komenca geometrio (ankaŭ: -geom)"
-
-#~ msgid "-borderwidth <width>\tUse a border width of <width> (also: -bw)"
-#~ msgstr ""
-#~ "-borderwidth <larĝo>\tUzi <larĝo>-n kiel larĝo de bordero (ankaŭ: -bw)"
-
-#~ msgid ""
-#~ "-scrollbarwidth <width> Use a scrollbar width of <width> (also: -sw)"
-#~ msgstr ""
-#~ "-scrollbarwidth <larĝo> Uzi <larĝo>-n kiel larĝo de rulumskalo (ankaŭ: -"
-#~ "sw)"
-
-#~ msgid "-menuheight <height>\tUse a menu bar height of <height> (also: -mh)"
-#~ msgstr ""
-#~ "-menuheight <alto>\tUzi <alto>-n kiel alto de menuzona alto (ankaŭ: -mh)"
-
-#~ msgid "-reverse\t\tUse reverse video (also: -rv)"
-#~ msgstr "-reverse\t\tUzi inversan videon (ankaŭ: -rv)"
-
-#~ msgid "+reverse\t\tDon't use reverse video (also: +rv)"
-#~ msgstr "+reverse\t\tNe uzi inversan videon (ankaŭ: +rv)"
+#, c-format
+msgid "E447: Can't find file \"%s\" in path"
+msgstr "E447: Ne eblas trovi dosieron \"%s\" en serĉvojo"
-#~ msgid "-xrm <resource>\tSet the specified resource"
-#~ msgstr "-xrm <rimedo>\tAgordi la specifitan <rimedo>-n"
+#, c-format
+msgid "E799: Invalid ID: %ld (must be greater than or equal to 1)"
+msgstr "E799: Nevalida ID: %ld (devas esti egala aŭ pli granda ol 1)"
-#~ msgid ""
-#~ "\n"
-#~ "Arguments recognised by gvim (GTK+ version):\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Argumentoj agnoskitaj de gvim (versio GTK+):\n"
+#, c-format
+msgid "E801: ID already taken: %ld"
+msgstr "E801: ID jam uzata: %ld"
-#~ msgid "-display <display>\tRun vim on <display> (also: --display)"
-#~ msgstr "-display <ekrano>\tLanĉi Vim sur tiu <ekrano> (ankaŭ: --display)"
+msgid "List or number required"
+msgstr "Listo aŭ nombro bezonata"
-#~ msgid "--role <role>\tSet a unique role to identify the main window"
-#~ msgstr "--role <rolo>\tDoni unikan rolon por identigi la ĉefan fenestron"
+#, c-format
+msgid "E802: Invalid ID: %ld (must be greater than or equal to 1)"
+msgstr "E802: Nevalida ID: %ld (devas esti egala aŭ pli granda ol 1)"
-#~ msgid "--socketid <xid>\tOpen Vim inside another GTK widget"
-#~ msgstr "--socketid <xid>\tMalfermi Vim en alia GTK fenestraĵo"
+#, c-format
+msgid "E803: ID not found: %ld"
+msgstr "E803: ID netrovita: %ld"
-#~ msgid "--echo-wid\t\tMake gvim echo the Window ID on stdout"
-#~ msgstr "--echo-wid\t\tIgas gvim afiŝi la identigilon de vindozo sur stdout"
+#, c-format
+msgid "E370: Could not load library %s"
+msgstr "E370: Ne eblis ŝargi bibliotekon %s"
-#~ msgid "-P <parent title>\tOpen Vim inside parent application"
-#~ msgstr "-P <gepatra titolo>\tMalfermi Vim en gepatra aplikaĵo"
+msgid "Sorry, this command is disabled: the Perl library could not be loaded."
+msgstr ""
+"Bedaŭrinde tiu komando estas malŝaltita: la biblioteko de Perl ne ŝargeblis."
-#~ msgid "--windowid <HWND>\tOpen Vim inside another win32 widget"
-#~ msgstr "--windowid <HWND>\tMalfermi Vim en alia win32 fenestraĵo"
+msgid "E299: Perl evaluation forbidden in sandbox without the Safe module"
+msgstr ""
+"E299: Plenumo de Perl esprimoj malpermesata en sabloludejo sen la modulo Safe"
-#~ msgid "No display"
-#~ msgstr "Neniu ekrano"
+msgid "Edit with &multiple Vims"
+msgstr "Redakti per &pluraj Vim-oj"
-#~ msgid ": Send failed.\n"
-#~ msgstr ": Sendo fiaskis.\n"
+msgid "Edit with single &Vim"
+msgstr "Redakti per unuopa &Vim"
-#~ msgid ": Send failed. Trying to execute locally\n"
-#~ msgstr ": Sendo fiaskis. Provo de loka plenumo\n"
+msgid "Diff with Vim"
+msgstr "Kompari per Vim"
-#~ msgid "%d of %d edited"
-#~ msgstr "%d de %d redaktita(j)"
+msgid "Edit with &Vim"
+msgstr "Redakti per &Vim"
-#~ msgid "No display: Send expression failed.\n"
-#~ msgstr "Neniu ekrano: Sendado de esprimo fiaskis.\n"
+#. Now concatenate
+msgid "Edit with existing Vim - "
+msgstr "Redakti per ekzistanta Vim - "
-#~ msgid ": Send expression failed.\n"
-#~ msgstr ": Sendado de esprimo fiaskis.\n"
+msgid "Edits the selected file(s) with Vim"
+msgstr "Redakti la apartigita(j)n dosiero(j)n per Vim"
-#~ msgid "E543: Not a valid codepage"
-#~ msgstr "E543: Nevalida kodpaĝo"
+msgid "Error creating process: Check if gvim is in your path!"
+msgstr "Eraro dum kreo de procezo: Kontrolu ĉu gvim estas en via serĉvojo!"
-#~ msgid "E284: Cannot set IC values"
-#~ msgstr "E284: Ne eblas agordi valorojn de IC"
+msgid "gvimext.dll error"
+msgstr "Eraro de gvimext.dll"
-#~ msgid "E285: Failed to create input context"
-#~ msgstr "E285: Ne eblis krei enigan kuntekston"
+msgid "Path length too long!"
+msgstr "Serĉvojo estas tro longa!"
-#~ msgid "E286: Failed to open input method"
-#~ msgstr "E286: Ne eblis malfermi enigan metodon"
+msgid "--No lines in buffer--"
+msgstr "--Neniu linio en bufro--"
-#~ msgid "E287: Warning: Could not set destroy callback to IM"
-#~ msgstr "E287: Averto: Ne eblis agordi detruan reagfunkcion al IM"
+#.
+#. * The error messages that can be shared are included here.
+#. * Excluded are errors that are only used once and debugging messages.
+#.
+msgid "E470: Command aborted"
+msgstr "E470: komando ĉesigita"
-#~ msgid "E288: input method doesn't support any style"
-#~ msgstr "E288: eniga metodo subtenas neniun stilon"
+msgid "E471: Argument required"
+msgstr "E471: Argumento bezonata"
-# DP: mi ne scias, kio estas "preedit"
-#~ msgid "E289: input method doesn't support my preedit type"
-#~ msgstr "E289: eniga metodo ne subtenas mian antaŭredaktan tipon"
-
-#~ msgid "E843: Error while updating swap file crypt"
-#~ msgstr "E843: Eraro dum ĝisdatigo de ĉifrada permutodosiero .swp"
-
-#~ msgid ""
-#~ "E833: %s is encrypted and this version of Vim does not support encryption"
-#~ msgstr "E833: %s estas ĉifrata kaj tiu versio de Vim ne subtenas ĉifradon"
-
-#~ msgid "Swap file is encrypted: \"%s\""
-#~ msgstr "Perumutodosiero .swp estas ĉifrata: \"%s\""
-
-#~ msgid ""
-#~ "\n"
-#~ "If you entered a new crypt key but did not write the text file,"
-#~ msgstr ""
-#~ "\n"
-#~ "Se vi tajpis novan ŝlosilon de ĉifrado sed ne skribis la tekstan dosieron,"
-
-#~ msgid ""
-#~ "\n"
-#~ "enter the new crypt key."
-#~ msgstr ""
-#~ "\n"
-#~ "tajpu la novan ŝlosilon de ĉifrado."
+msgid "E10: \\ should be followed by /, ? or &"
+msgstr "E10: \\ devus esti sekvita de /, ? aŭ &"
-#~ msgid ""
-#~ "\n"
-#~ "If you wrote the text file after changing the crypt key press enter"
-#~ msgstr ""
-#~ "\n"
-#~ "Se vi skribis la tekstan dosieron post ŝanĝo de la ŝlosilo de ĉifrado, "
-#~ "premu enenklavon"
+msgid "E11: Invalid in command-line window; <CR> executes, CTRL-C quits"
+msgstr ""
+"E11: Nevalida en fenestro de komanda linio; <CR> plenumas, CTRL-C eliras"
-#~ msgid ""
-#~ "\n"
-#~ "to use the same key for text file and swap file"
-#~ msgstr ""
-#~ "\n"
-#~ "por uzi la saman ŝlosilon por la teksta dosiero kaj permuto dosiero .swp"
+msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search"
+msgstr ""
+"E12: Nepermesebla komando el exrc/vimrc en aktuala dosierujo aŭ etikeda serĉo"
-#~ msgid "Using crypt key from swap file for the text file.\n"
-#~ msgstr ""
-#~ "Uzas ŝlosilon de ĉifrado el permuto dosiero .swp por la teksta dosiero.\n"
+msgid "E171: Missing :endif"
+msgstr "E171: Mankas \":endif\""
-#~ msgid ""
-#~ "\n"
-#~ " [not usable with this version of Vim]"
-#~ msgstr ""
-#~ "\n"
-#~ " [ne uzebla per tiu versio de Vim]"
+msgid "E600: Missing :endtry"
+msgstr "E600: Mankas \":endtry\""
-#~ msgid "Tear off this menu"
-#~ msgstr "Disigi tiun menuon"
+msgid "E170: Missing :endwhile"
+msgstr "E170: Mankas \":endwhile\""
-#~ msgid "Select Directory dialog"
-#~ msgstr "Dialogujo de dosiera elekto"
+msgid "E170: Missing :endfor"
+msgstr "E170: Mankas \":endfor\""
-#~ msgid "Save File dialog"
-#~ msgstr "Dialogujo de dosiera konservo"
+msgid "E588: :endwhile without :while"
+msgstr "E588: \":endwhile\" sen \":while\""
-#~ msgid "Open File dialog"
-#~ msgstr "Dialogujo de dosiera malfermo"
+msgid "E588: :endfor without :for"
+msgstr "E588: \":endfor\" sen \":for\""
-#~ msgid "E338: Sorry, no file browser in console mode"
-#~ msgstr "E338: Bedaŭrinde ne estas dosierfoliumilo en konzola reĝimo"
+msgid "E13: File exists (add ! to override)"
+msgstr "E13: Dosiero ekzistas (aldonu ! por transpasi)"
-#~ msgid "Vim: preserving files...\n"
-#~ msgstr "Vim: konservo de dosieroj...\n"
+msgid "E472: Command failed"
+msgstr "E472: La komando malsukcesis"
-#~ msgid "Vim: Finished.\n"
-#~ msgstr "Vim: Finita.\n"
+#, c-format
+msgid "E234: Unknown fontset: %s"
+msgstr "E234: Nekonata familio de tiparo: %s"
-#~ msgid "ERROR: "
-#~ msgstr "ERARO: "
+#, c-format
+msgid "E235: Unknown font: %s"
+msgstr "E235: Nekonata tiparo: %s"
-#~ msgid ""
-#~ "\n"
-#~ "[bytes] total alloc-freed %<PRIu64>-%<PRIu64>, in use %<PRIu64>, peak use "
-#~ "%<PRIu64>\n"
-#~ msgstr ""
-#~ "\n"
-#~ "[bajtoj] totalaj disponigitaj/maldisponigitaj %<PRIu64>-%<PRIu64>, nun "
-#~ "uzataj %<PRIu64>, kulmina uzo %<PRIu64>\n"
+#, c-format
+msgid "E236: Font \"%s\" is not fixed-width"
+msgstr "E236: La tiparo \"%s\" ne estas egallarĝa"
-#~ msgid ""
-#~ "[calls] total re/malloc()'s %<PRIu64>, total free()'s %<PRIu64>\n"
-#~ "\n"
-#~ msgstr ""
-#~ "[alvokoj] totalaj re/malloc() %<PRIu64>, totalaj free() %<PRIu64>\n"
-#~ "\n"
+msgid "E473: Internal error"
+msgstr "E473: Interna eraro"
-#~ msgid "E340: Line is becoming too long"
-#~ msgstr "E340: Linio iĝas tro longa"
+#, c-format
+msgid "E685: Internal error: %s"
+msgstr "E685: Interna eraro: %s"
-#~ msgid "E341: Internal error: lalloc(%<PRId64>, )"
-#~ msgstr "E341: Interna eraro: lalloc(%<PRId64>, )"
+msgid "Interrupted"
+msgstr "Interrompita"
-#~ msgid "E547: Illegal mouseshape"
-#~ msgstr "E547: Nevalida formo de muskursoro"
+msgid "E14: Invalid address"
+msgstr "E14: Nevalida adreso"
-#~ msgid "Enter encryption key: "
-#~ msgstr "Tajpu la ŝlosilon de ĉifrado: "
+msgid "E474: Invalid argument"
+msgstr "E474: Nevalida argumento"
-#~ msgid "Enter same key again: "
-#~ msgstr "Tajpu la ŝlosilon denove: "
+#, c-format
+msgid "E475: Invalid argument: %s"
+msgstr "E475: Nevalida argumento: %s"
-#~ msgid "Keys don't match!"
-#~ msgstr "Ŝlosiloj ne kongruas!"
+#, c-format
+msgid "E15: Invalid expression: %s"
+msgstr "E15: Nevalida esprimo: %s"
-#~ msgid "Cannot connect to Netbeans #2"
-#~ msgstr "Ne eblas konekti al Netbeans n-ro 2"
+msgid "E16: Invalid range"
+msgstr "E16: Nevalida amplekso"
-#~ msgid "Cannot connect to Netbeans"
-#~ msgstr "Ne eblas konekti al Netbeans"
+msgid "E476: Invalid command"
+msgstr "E476: Nevalida komando"
-#~ msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
-#~ msgstr ""
-#~ "E668: Nevalida permeso de dosiero de informo de konekto NetBeans: \"%s\""
+#, c-format
+msgid "E17: \"%s\" is a directory"
+msgstr "E17: \"%s\" estas dosierujo"
-#~ msgid "read from Netbeans socket"
-#~ msgstr "lego el kontaktoskatolo de Netbeans"
+#, c-format
+msgid "E364: Library call failed for \"%s()\""
+msgstr "E364: Alvoko al biblioteko malsukcesis por \"%s()\""
-#~ msgid "E658: NetBeans connection lost for buffer %<PRId64>"
-#~ msgstr "E658: Konekto de NetBeans perdita por bufro %<PRId64>"
+#, c-format
+msgid "E448: Could not load library function %s"
+msgstr "E448: Ne eblis ŝargi bibliotekan funkcion %s"
-#~ msgid "E838: netbeans is not supported with this GUI"
-#~ msgstr "E838: netbeans ne estas subtenata kun tiu grafika interfaco"
+msgid "E19: Mark has invalid line number"
+msgstr "E19: Marko havas nevalidan numeron de linio"
-#~ msgid "E511: netbeans already connected"
-#~ msgstr "E511: nebeans jam konektata"
+msgid "E20: Mark not set"
+msgstr "E20: Marko ne estas agordita"
-#~ msgid "E505: %s is read-only (add ! to override)"
-#~ msgstr "E505: %s estas nurlegebla (aldonu ! por transpasi)"
+msgid "E21: Cannot make changes, 'modifiable' is off"
+msgstr "E21: Ne eblas fari ŝanĝojn, 'modifiable' estas malŝaltita"
-# DP: ĉu Eval devas esti tradukita?
-#~ msgid "E775: Eval feature not available"
-#~ msgstr "E775: Eval eblo ne disponeblas"
+msgid "E22: Scripts nested too deep"
+msgstr "E22: Tro profunde ingitaj skriptoj"
-#~ msgid "freeing %<PRId64> lines"
-#~ msgstr "malokupas %<PRId64> liniojn"
+msgid "E23: No alternate file"
+msgstr "E23: Neniu alterna dosiero"
-#~ msgid "E530: Cannot change term in GUI"
-#~ msgstr "E530: term ne ŝanĝeblas en grafika interfaco"
+msgid "E24: No such abbreviation"
+msgstr "E24: Ne estas tia mallongigo"
-#~ msgid "E531: Use \":gui\" to start the GUI"
-#~ msgstr "E531: Uzu \":gui\" por lanĉi la grafikan interfacon"
+msgid "E477: No ! allowed"
+msgstr "E477: Neniu ! permesebla"
-#~ msgid "E617: Cannot be changed in the GTK+ 2 GUI"
-#~ msgstr "E617: Ne ŝanĝeblas en la grafika interfaco GTK+ 2"
+msgid "E25: GUI cannot be used: Not enabled at compile time"
+msgstr "E25: Grafika interfaco ne uzeblas: Malŝaltita dum kompilado"
-#~ msgid "E596: Invalid font(s)"
-#~ msgstr "E596: Nevalida(j) tiparo(j)"
+msgid "E26: Hebrew cannot be used: Not enabled at compile time\n"
+msgstr "E26: La hebrea ne uzeblas: Malŝaltita dum kompilado\n"
-#~ msgid "E597: can't select fontset"
-#~ msgstr "E597: ne eblas elekti tiparon"
+msgid "E27: Farsi cannot be used: Not enabled at compile time\n"
+msgstr "E27: La persa ne uzeblas: Malŝaltita dum kompilado\n"
-#~ msgid "E598: Invalid fontset"
-#~ msgstr "E598: Nevalida tiparo"
+msgid "E800: Arabic cannot be used: Not enabled at compile time\n"
+msgstr "E800: La araba ne uzeblas: Malŝaltita dum kompilado\n"
-#~ msgid "E533: can't select wide font"
-#~ msgstr "E533: ne eblas elekti larĝan tiparon"
+#, c-format
+msgid "E28: No such highlight group name: %s"
+msgstr "E28: Neniu grupo de emfazo kiel: %s"
-#~ msgid "E534: Invalid wide font"
-#~ msgstr "E534: Nevalida larĝa tiparo"
+msgid "E29: No inserted text yet"
+msgstr "E29: Ankoraŭ neniu enmetita teksto"
-#~ msgid "E538: No mouse support"
-#~ msgstr "E538: Neniu muso subtenata"
+msgid "E30: No previous command line"
+msgstr "E30: Neniu antaŭa komanda linio"
-#~ msgid "cannot open "
-#~ msgstr "ne eblas malfermi "
+msgid "E31: No such mapping"
+msgstr "E31: Neniu tiel mapo"
-#~ msgid "VIM: Can't open window!\n"
-#~ msgstr "VIM: Ne eblas malfermi fenestron!\n"
+msgid "E479: No match"
+msgstr "E479: Neniu kongruo"
-#~ msgid "Need Amigados version 2.04 or later\n"
-#~ msgstr "Bezonas version 2.04 de Amigados aŭ pli novan\n"
+#, c-format
+msgid "E480: No match: %s"
+msgstr "E480: Neniu kongruo: %s"
-#~ msgid "Need %s version %<PRId64>\n"
-#~ msgstr "Bezonas %s-on versio %<PRId64>\n"
+msgid "E32: No file name"
+msgstr "E32: Neniu dosiernomo"
-#~ msgid "Cannot open NIL:\n"
-#~ msgstr "Ne eblas malfermi NIL:\n"
+msgid "E33: No previous substitute regular expression"
+msgstr "E33: Neniu antaŭa regulesprimo de anstataŭigo"
-#~ msgid "Cannot create "
-#~ msgstr "Ne eblas krei "
+msgid "E34: No previous command"
+msgstr "E34: Neniu antaŭa komando"
-#~ msgid "Vim exiting with %d\n"
-#~ msgstr "Vim eliras kun %d\n"
+msgid "E35: No previous regular expression"
+msgstr "E35: Neniu antaŭa regulesprimo"
-#~ msgid "cannot change console mode ?!\n"
-#~ msgstr "ne eblas ŝanĝi reĝimon de konzolo?!\n"
+msgid "E481: No range allowed"
+msgstr "E481: Amplekso nepermesebla"
-#~ msgid "mch_get_shellsize: not a console??\n"
-#~ msgstr "mch_get_shellsize: ne estas konzolo??\n"
+msgid "E36: Not enough room"
+msgstr "E36: Ne sufiĉe da spaco"
-#~ msgid "E360: Cannot execute shell with -f option"
-#~ msgstr "E360: Ne eblas plenumi ŝelon kun opcio -f"
+#, c-format
+msgid "E247: no registered server named \"%s\""
+msgstr "E247: neniu registrita servilo nomita \"%s\""
-#~ msgid "Cannot execute "
-#~ msgstr "Ne eblas plenumi "
+#, c-format
+msgid "E482: Can't create file %s"
+msgstr "E482: Ne eblas krei dosieron %s"
-#~ msgid "shell "
-#~ msgstr "ŝelo "
+msgid "E483: Can't get temp file name"
+msgstr "E483: Ne eblas akiri provizoran dosiernomon"
-#~ msgid " returned\n"
-#~ msgstr " liveris\n"
+#, c-format
+msgid "E484: Can't open file %s"
+msgstr "E484: Ne eblas malfermi dosieron %s"
-#~ msgid "ANCHOR_BUF_SIZE too small."
-#~ msgstr "ANCHOR_BUF_SIZE tro malgranda."
+#, c-format
+msgid "E485: Can't read file %s"
+msgstr "E485: Ne eblas legi dosieron %s"
-#~ msgid "I/O ERROR"
-#~ msgstr "ERARO DE ENIGO/ELIGO"
+msgid "E37: No write since last change (add ! to override)"
+msgstr "E37: Neniu skribo de post lasta ŝanĝo (aldonu ! por transpasi)"
-#~ msgid "Message"
-#~ msgstr "Mesaĝo"
+msgid "E37: No write since last change"
+msgstr "E37: Neniu skribo de post lasta ŝanĝo"
-#~ msgid "'columns' is not 80, cannot execute external commands"
-#~ msgstr "'columns' ne estas 80, ne eblas plenumi eksternajn komandojn"
+msgid "E38: Null argument"
+msgstr "E38: Nula argumento"
-#~ msgid "E237: Printer selection failed"
-#~ msgstr "E237: Elekto de presilo fiaskis"
+msgid "E39: Number expected"
+msgstr "E39: Nombro atendita"
-#~ msgid "to %s on %s"
-#~ msgstr "al %s de %s"
+#, c-format
+msgid "E40: Can't open errorfile %s"
+msgstr "E40: Ne eblas malfermi eraran dosieron %s"
-#~ msgid "E613: Unknown printer font: %s"
-#~ msgstr "E613: Nekonata tiparo de presilo: %s"
+msgid "E233: cannot open display"
+msgstr "E233: ne eblas malfermi vidigon"
-#~ msgid "E238: Print error: %s"
-#~ msgstr "E238: Eraro de presado: %s"
+msgid "E41: Out of memory!"
+msgstr "E41: Ne plu restas memoro!"
-#~ msgid "Printing '%s'"
-#~ msgstr "Presas '%s'"
+msgid "Pattern not found"
+msgstr "Ŝablono ne trovita"
-#~ msgid "E244: Illegal charset name \"%s\" in font name \"%s\""
-#~ msgstr "E244: Nevalida nomo de signaro \"%s\" en nomo de tiparo \"%s\""
+#, c-format
+msgid "E486: Pattern not found: %s"
+msgstr "E486: Ŝablono ne trovita: %s"
-#~ msgid "E245: Illegal char '%c' in font name \"%s\""
-#~ msgstr "E245: Nevalida signo '%c' en nomo de tiparo \"%s\""
+msgid "E487: Argument must be positive"
+msgstr "E487: La argumento devas esti pozitiva"
-#~ msgid "Vim: Double signal, exiting\n"
-#~ msgstr "Vim: Duobla signalo, eliranta\n"
+msgid "E459: Cannot go back to previous directory"
+msgstr "E459: Ne eblas reiri al antaŭa dosierujo"
-#~ msgid "Vim: Caught deadly signal %s\n"
-#~ msgstr "Vim: Kaptis mortigantan signalon %s\n"
+msgid "E42: No Errors"
+msgstr "E42: Neniu eraro"
-#~ msgid "Vim: Caught deadly signal\n"
-#~ msgstr "Vim: Kaptis mortigantan signalon\n"
+msgid "E776: No location list"
+msgstr "E776: Neniu listo de lokoj"
-#~ msgid "Opening the X display took %<PRId64> msec"
-#~ msgstr "Malfermo de vidigo X daŭris %<PRId64> msek"
+msgid "E43: Damaged match string"
+msgstr "E43: Difekta kongruenda ĉeno"
-#~ msgid ""
-#~ "\n"
-#~ "Vim: Got X error\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Vim: Alvenis X eraro\n"
+msgid "E44: Corrupted regexp program"
+msgstr "E44: Difekta programo de regulesprimo"
-#~ msgid "Testing the X display failed"
-#~ msgstr "Testo de la vidigo X fiaskis"
+msgid "E45: 'readonly' option is set (add ! to override)"
+msgstr "E45: La opcio 'readonly' estas ŝaltita '(aldonu ! por transpasi)"
-#~ msgid "Opening the X display timed out"
-#~ msgstr "Tempolimo okazis dum malfermo de vidigo X"
+#, c-format
+msgid "E46: Cannot change read-only variable \"%s\""
+msgstr "E46: Ne eblas ŝanĝi nurlegeblan variablon \"%s\""
-#~ msgid ""
-#~ "\n"
-#~ "Cannot execute shell sh\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Ne eblas plenumi ŝelon sh\n"
+#, c-format
+msgid "E794: Cannot set variable in the sandbox: \"%s\""
+msgstr "E794: Ne eblas agordi variablon en la sabloludejo: \"%s\""
-#~ msgid ""
-#~ "\n"
-#~ "Cannot create pipes\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Ne eblas krei duktojn\n"
+msgid "E713: Cannot use empty key for Dictionary"
+msgstr "E713: Ne eblas uzi malplenan ŝlosilon de Vortaro"
-#~ msgid ""
-#~ "\n"
-#~ "Cannot fork\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Ne eblas forki\n"
+msgid "E715: Dictionary required"
+msgstr "E715: Vortaro bezonata"
-#~ msgid ""
-#~ "\n"
-#~ "Command terminated\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Komando terminigita\n"
+#, c-format
+msgid "E684: list index out of range: %ld"
+msgstr "E684: indekso de listo ekster limoj: %ld"
-#~ msgid "XSMP lost ICE connection"
-#~ msgstr "XSMP perdis la konekton ICE"
+#, c-format
+msgid "E118: Too many arguments for function: %s"
+msgstr "E118: Tro da argumentoj por funkcio: %s"
-#~ msgid "Opening the X display failed"
-#~ msgstr "Malfermo de vidigo X fiaskis"
+#, c-format
+msgid "E716: Key not present in Dictionary: %s"
+msgstr "E716: Ŝlosilo malekzistas en Vortaro: %s"
-#~ msgid "XSMP handling save-yourself request"
-#~ msgstr "XSMP: traktado de peto konservi-mem"
+msgid "E714: List required"
+msgstr "E714: Listo bezonata"
-#~ msgid "XSMP opening connection"
-#~ msgstr "XSMP: malfermo de konekto"
+#, c-format
+msgid "E712: Argument of %s must be a List or Dictionary"
+msgstr "E712: Argumento de %s devas esti Listo aŭ Vortaro"
-#~ msgid "XSMP ICE connection watch failed"
-#~ msgstr "XSMP: kontrolo de konekto ICE fiaskis"
+msgid "E47: Error while reading errorfile"
+msgstr "E47: Eraro dum legado de erardosiero"
-#~ msgid "XSMP SmcOpenConnection failed: %s"
-#~ msgstr "XSMP: SmcOpenConnection fiaskis: %s"
+msgid "E48: Not allowed in sandbox"
+msgstr "E48: Nepermesebla en sabloludejo"
-#~ msgid "At line"
-#~ msgstr "Ĉe linio"
+msgid "E523: Not allowed here"
+msgstr "E523: Nepermesebla tie"
-#~ msgid "Could not load vim32.dll!"
-#~ msgstr "Ne eblis ŝargi vim32.dll!"
+msgid "E359: Screen mode setting not supported"
+msgstr "E359: Reĝimo de ekrano ne subtenata"
-#~ msgid "VIM Error"
-#~ msgstr "Eraro de VIM"
+msgid "E49: Invalid scroll size"
+msgstr "E49: Nevalida grando de rulumo"
-#~ msgid "Could not fix up function pointers to the DLL!"
-#~ msgstr "Ne eblis ripari referencojn de funkcioj al la DLL!"
+msgid "E91: 'shell' option is empty"
+msgstr "E91: La opcio 'shell' estas malplena"
-#~ msgid "shell returned %d"
-#~ msgstr "la ŝelo liveris %d"
+msgid "E255: Couldn't read in sign data!"
+msgstr "E255: Ne eblis legi datumojn de simboloj!"
-# DP: la eventoj estas tiuj, kiuj estas en la sekvantaj ĉenoj
-#~ msgid "Vim: Caught %s event\n"
-#~ msgstr "Vim: Kaptis eventon %s\n"
+msgid "E72: Close error on swap file"
+msgstr "E72: Eraro dum malfermo de permutodosiero .swp"
-#~ msgid "close"
-#~ msgstr "fermo"
+msgid "E73: tag stack empty"
+msgstr "E73: malplena stako de etikedo"
-#~ msgid "logoff"
-#~ msgstr "elsaluto"
+msgid "E74: Command too complex"
+msgstr "E74: Komando tro kompleksa"
-#~ msgid "shutdown"
-#~ msgstr "sistemfermo"
+msgid "E75: Name too long"
+msgstr "E75: Nomo tro longa"
-#~ msgid "E371: Command not found"
-#~ msgstr "E371: Netrovebla komando"
+msgid "E76: Too many ["
+msgstr "E76: Tro da ["
-#~ msgid ""
-#~ "VIMRUN.EXE not found in your $PATH.\n"
-#~ "External commands will not pause after completion.\n"
-#~ "See :help win32-vimrun for more information."
-#~ msgstr ""
-#~ "VIMRUN.EXE ne troveblas en via $PATH.\n"
-#~ "Eksteraj komandoj ne paŭzos post kompletigo.\n"
-#~ "Vidu :help win32-vimrun por pliaj informoj."
-
-#~ msgid "Vim Warning"
-#~ msgstr "Averto de Vim"
-
-#~ msgid "Error file"
-#~ msgstr "Erara Dosiero"
-
-#~ msgid "E868: Error building NFA with equivalence class!"
-#~ msgstr "E868: Eraro dum prekomputado de NFA kun ekvivalentoklaso!"
-
-#~ msgid "E999: (NFA regexp internal error) Should not process NOT node !"
-#~ msgstr ""
-#~ "E999: (interna eraro de NFA-regulesprimo) Ne devus procezi nodon 'NOT'!"
-
-#~ msgid "E878: (NFA) Could not allocate memory for branch traversal!"
-#~ msgstr "E878: (NFA) Ne povis asigni memoron por traigi branĉojn!"
-
-#~ msgid "Warning: Cannot find word list \"%s_%s.spl\" or \"%s_ascii.spl\""
-#~ msgstr "Averto: Ne eblas trovi vortliston \"%s_%s.spl\" aŭ \"%s_ascii.spl\""
-
-#~ msgid "Conversion in %s not supported"
-#~ msgstr "Konverto en %s nesubtenata"
-
-#~ msgid "E845: Insufficient memory, word list will be incomplete"
-#~ msgstr "E845: Ne sufiĉe da memoro, vortlisto estos nekompleta."
-
-#~ msgid "E430: Tag file path truncated for %s\n"
-#~ msgstr "E430: Vojo de etikeda dosiero trunkita por %s\n"
-
-#~ msgid "new shell started\n"
-#~ msgstr "nova ŝelo lanĉita\n"
-
-#~ msgid "Used CUT_BUFFER0 instead of empty selection"
-#~ msgstr "Uzis CUT_BUFFER0 anstataŭ malplenan apartigon"
-
-#~ msgid "No undo possible; continue anyway"
-#~ msgstr "Malfaro neebla; daŭrigi tamene"
-
-#~ msgid "E832: Non-encrypted file has encrypted undo file: %s"
-#~ msgstr "E832: Ne ĉifrata dosiero havas ĉifratan malfaran dosieron: %s"
-
-#~ msgid "E826: Undo file decryption failed: %s"
-#~ msgstr "E826: Malĉifrado de malfara dosiero fiaskis: %s"
-
-#~ msgid "E827: Undo file is encrypted: %s"
-#~ msgstr "E827: Malfara dosiero estas ĉifrata: %s"
-
-#~ msgid ""
-#~ "\n"
-#~ "MS-Windows 16/32-bit GUI version"
-#~ msgstr ""
-#~ "\n"
-#~ "Grafika versio MS-Vindozo 16/32-bitoj"
-
-#~ msgid ""
-#~ "\n"
-#~ "MS-Windows 64-bit GUI version"
-#~ msgstr ""
-#~ "\n"
-#~ "Grafika versio MS-Vindozo 64-bitoj"
-
-#~ msgid ""
-#~ "\n"
-#~ "MS-Windows 32-bit GUI version"
-#~ msgstr ""
-#~ "\n"
-#~ "Grafika versio MS-Vindozo 32-bitoj"
-
-#~ msgid " in Win32s mode"
-#~ msgstr " en reĝimo Win32s"
-
-#~ msgid " with OLE support"
-#~ msgstr " kun subteno de OLE"
-
-#~ msgid ""
-#~ "\n"
-#~ "MS-Windows 64-bit console version"
-#~ msgstr ""
-#~ "\n"
-#~ "Versio konzola MS-Vindozo 64-bitoj"
-
-#~ msgid ""
-#~ "\n"
-#~ "MS-Windows 32-bit console version"
-#~ msgstr ""
-#~ "\n"
-#~ "Versio konzola MS-Vindozo 32-bitoj"
-
-#~ msgid ""
-#~ "\n"
-#~ "MS-Windows 16-bit version"
-#~ msgstr ""
-#~ "\n"
-#~ "Versio MS-Vindozo 16-bitoj"
-
-#~ msgid ""
-#~ "\n"
-#~ "32-bit MS-DOS version"
-#~ msgstr ""
-#~ "\n"
-#~ "Versio MS-DOS 32-bitoj"
-
-#~ msgid ""
-#~ "\n"
-#~ "16-bit MS-DOS version"
-#~ msgstr ""
-#~ "\n"
-#~ "Versio MS-DOS 16-bitoj"
-
-#~ msgid ""
-#~ "\n"
-#~ "MacOS X (unix) version"
-#~ msgstr ""
-#~ "\n"
-#~ "Versio Mak OS X (unikso)"
-
-#~ msgid ""
-#~ "\n"
-#~ "MacOS X version"
-#~ msgstr ""
-#~ "\n"
-#~ "Versio Mak OS X"
-
-#~ msgid ""
-#~ "\n"
-#~ "MacOS version"
-#~ msgstr ""
-#~ "\n"
-#~ "Versio Mak OS"
-
-#~ msgid ""
-#~ "\n"
-#~ "OpenVMS version"
-#~ msgstr ""
-#~ "\n"
-#~ "Versio OpenVMS"
-
-#~ msgid ""
-#~ "\n"
-#~ "Big version "
-#~ msgstr ""
-#~ "\n"
-#~ "Granda versio "
-
-#~ msgid ""
-#~ "\n"
-#~ "Normal version "
-#~ msgstr ""
-#~ "\n"
-#~ "Normala versio "
-
-#~ msgid ""
-#~ "\n"
-#~ "Small version "
-#~ msgstr ""
-#~ "\n"
-#~ "Malgranda versio "
-
-#~ msgid ""
-#~ "\n"
-#~ "Tiny version "
-#~ msgstr ""
-#~ "\n"
-#~ "Malgrandega versio "
-
-#~ msgid "with GTK2-GNOME GUI."
-#~ msgstr "kun grafika interfaco GTK2-GNOME."
-
-#~ msgid "with GTK2 GUI."
-#~ msgstr "kun grafika interfaco GTK2."
-
-#~ msgid "with X11-Motif GUI."
-#~ msgstr "kun grafika interfaco X11-Motif."
-
-#~ msgid "with X11-neXtaw GUI."
-#~ msgstr "kun grafika interfaco X11-neXtaw."
-
-#~ msgid "with X11-Athena GUI."
-#~ msgstr "kun grafika interfaco X11-Athena."
-
-#~ msgid "with Photon GUI."
-#~ msgstr "kun grafika interfaco Photon."
-
-#~ msgid "with GUI."
-#~ msgstr "sen grafika interfaco."
-
-#~ msgid "with Carbon GUI."
-#~ msgstr "kun grafika interfaco Carbon."
-
-#~ msgid "with Cocoa GUI."
-#~ msgstr "kun grafika interfaco Cocoa."
-
-#~ msgid "with (classic) GUI."
-#~ msgstr "kun (klasika) grafika interfaco."
-
-#~ msgid " system gvimrc file: \""
-#~ msgstr " sistema dosiero gvimrc: \""
-
-#~ msgid " user gvimrc file: \""
-#~ msgstr " dosiero gvimrc de uzanto: \""
-
-#~ msgid "2nd user gvimrc file: \""
-#~ msgstr " 2-a dosiero gvimrc de uzanto: \""
-
-#~ msgid "3rd user gvimrc file: \""
-#~ msgstr " 3-a dosiero gvimrc de uzanto: \""
-
-#~ msgid " system menu file: \""
-#~ msgstr " dosiero de sistema menuo: \""
-
-#~ msgid "Compiler: "
-#~ msgstr "Kompililo: "
+msgid "E77: Too many file names"
+msgstr "E77: Tro da dosiernomoj"
-# DP: atentu al la spacetoj: ĉiuj ĉenoj devas havi la saman longon
-#~ msgid "menu Help->Orphans for information "
-#~ msgstr "menuo Help->Orfinoj por pliaj informoj "
+msgid "E488: Trailing characters"
+msgstr "E488: Vostaj signoj"
-#~ msgid "Running modeless, typed text is inserted"
-#~ msgstr "Ruliĝas senreĝime, tajpita teksto estas enmetita"
+msgid "E78: Unknown mark"
+msgstr "E78: Nekonata marko"
-# DP: atentu al la spacetoj: ĉiuj ĉenoj devas havi la saman longon
-#~ msgid "menu Edit->Global Settings->Toggle Insert Mode "
-#~ msgstr "menuo Redakti->Mallokaj Agordoj->Baskuligi Enmetan Reĝimon"
+msgid "E79: Cannot expand wildcards"
+msgstr "E79: Ne eblas malvolvi ĵokerojn"
-# DP: atentu al la spacetoj: ĉiuj ĉenoj devas havi la saman longon
-#~ msgid " for two modes "
-#~ msgstr " por du reĝimoj "
+msgid "E591: 'winheight' cannot be smaller than 'winminheight'"
+msgstr "E591: 'winheight' ne rajtas esti malpli ol 'winminheight'"
-# DP: tiu ĉeno pli longas (mi ne volas igi ĉiujn aliajn ĉenojn
-# pli longajn)
-#~ msgid "menu Edit->Global Settings->Toggle Vi Compatible"
-#~ msgstr "menuo Redakti->Mallokaj Agordoj->Baskuligi Reĝimon Kongruan kun Vi"
+msgid "E592: 'winwidth' cannot be smaller than 'winminwidth'"
+msgstr "E592: 'winwidth' ne rajtas esti malpli ol 'winminwidth'"
-# DP: atentu al la spacetoj: ĉiuj ĉenoj devas havi la saman longon
-#~ msgid " for Vim defaults "
-#~ msgstr " por defaŭltoj de Vim "
+msgid "E80: Error while writing"
+msgstr "E80: Eraro dum skribado"
-#~ msgid "WARNING: Windows 95/98/ME detected"
-#~ msgstr "AVERTO: Trovis Vindozon 95/98/ME"
+msgid "Zero count"
+msgstr "Nul kvantoro"
-# DP: atentu al la spacetoj: ĉiuj ĉenoj devas havi la saman longon
-#~ msgid "type :help windows95<Enter> for info on this"
-#~ msgstr "tajpu :help windows95<Enenklavo> por pliaj informoj "
+msgid "E81: Using <SID> not in a script context"
+msgstr "E81: Uzo de <SID> ekster kunteksto de skripto"
-#~ msgid "E370: Could not load library %s"
-#~ msgstr "E370: Ne eblis ŝargi bibliotekon %s"
+msgid "E449: Invalid expression received"
+msgstr "E449: Nevalida esprimo ricevita"
-#~ msgid ""
-#~ "Sorry, this command is disabled: the Perl library could not be loaded."
-#~ msgstr ""
-#~ "Bedaŭrinde tiu komando estas malŝaltita: la biblioteko de Perl ne "
-#~ "ŝargeblis."
+msgid "E463: Region is guarded, cannot modify"
+msgstr "E463: Regiono estas gardita, ne eblas ŝanĝi"
-#~ msgid "E299: Perl evaluation forbidden in sandbox without the Safe module"
-#~ msgstr ""
-#~ "E299: Plenumo de Perl esprimoj malpermesata en sabloludejo sen la modulo "
-#~ "Safe"
+msgid "E744: NetBeans does not allow changes in read-only files"
+msgstr "E744: NetBeans ne permesas ŝanĝojn en nurlegeblaj dosieroj"
-#~ msgid "Edit with &multiple Vims"
-#~ msgstr "Redakti per &pluraj Vim-oj"
+msgid "E363: pattern uses more memory than 'maxmempattern'"
+msgstr "E363: ŝablono uzas pli da memoro ol 'maxmempattern'"
-#~ msgid "Edit with single &Vim"
-#~ msgstr "Redakti per unuopa &Vim"
+msgid "E749: empty buffer"
+msgstr "E749: malplena bufro"
-#~ msgid "Diff with Vim"
-#~ msgstr "Kompari per Vim"
+#, c-format
+msgid "E86: Buffer %ld does not exist"
+msgstr "E86: La bufro %ld ne ekzistas"
-#~ msgid "Edit with &Vim"
-#~ msgstr "Redakti per &Vim"
+msgid "E682: Invalid search pattern or delimiter"
+msgstr "E682: Nevalida serĉa ŝablono aŭ disigilo"
-#~ msgid "Edit with existing Vim - "
-#~ msgstr "Redakti per ekzistanta Vim - "
+msgid "E139: File is loaded in another buffer"
+msgstr "E139: Dosiero estas ŝargita en alia bufro"
-#~ msgid "Edits the selected file(s) with Vim"
-#~ msgstr "Redakti la apartigita(j)n dosiero(j)n per Vim"
+#, c-format
+msgid "E764: Option '%s' is not set"
+msgstr "E764: La opcio '%s' ne estas ŝaltita"
-#~ msgid "Error creating process: Check if gvim is in your path!"
-#~ msgstr "Eraro dum kreo de procezo: Kontrolu ĉu gvim estas en via serĉvojo!"
+msgid "E850: Invalid register name"
+msgstr "E850: Nevalida nomo de reĝistro"
-#~ msgid "gvimext.dll error"
-#~ msgstr "Eraro de gvimext.dll"
+#, c-format
+msgid "E919: Directory not found in '%s': \"%s\""
+msgstr "E919: Dosierujo ne trovita en '%s': \"%s\""
-#~ msgid "Path length too long!"
-#~ msgstr "Serĉvojo estas tro longa!"
+msgid "search hit TOP, continuing at BOTTOM"
+msgstr "serĉo atingis SUPRON, daŭrigonte al SUBO"
-#~ msgid "E234: Unknown fontset: %s"
-#~ msgstr "E234: Nekonata familio de tiparo: %s"
+msgid "search hit BOTTOM, continuing at TOP"
+msgstr "serĉo atingis SUBON, daŭrigonte al SUPRO"
-#~ msgid "E235: Unknown font: %s"
-#~ msgstr "E235: Nekonata tiparo: %s"
+#, c-format
+msgid "Need encryption key for \"%s\""
+msgstr "Ŝlosilo de ĉifrado bezonata por \"%s\""
-#~ msgid "E236: Font \"%s\" is not fixed-width"
-#~ msgstr "E236: La tiparo \"%s\" ne estas egallarĝa"
+msgid "empty keys are not allowed"
+msgstr "malplenaj ŝlosiloj nepermeseblaj"
-#~ msgid "E448: Could not load library function %s"
-#~ msgstr "E448: Ne eblis ŝargi bibliotekan funkcion %s"
+msgid "dictionary is locked"
+msgstr "vortaro estas ŝlosita"
-#~ msgid "E26: Hebrew cannot be used: Not enabled at compile time\n"
-#~ msgstr "E26: La hebrea ne uzeblas: Malŝaltita dum kompilado\n"
+msgid "list is locked"
+msgstr "listo estas ŝlosita"
-#~ msgid "E27: Farsi cannot be used: Not enabled at compile time\n"
-#~ msgstr "E27: La persa ne uzeblas: Malŝaltita dum kompilado\n"
+#, c-format
+msgid "failed to add key '%s' to dictionary"
+msgstr "aldono de ŝlosilo '%s' al vortaro malsukcesis"
-#~ msgid "E800: Arabic cannot be used: Not enabled at compile time\n"
-#~ msgstr "E800: La araba ne uzeblas: Malŝaltita dum kompilado\n"
+#, c-format
+msgid "index must be int or slice, not %s"
+msgstr "indekso devas esti 'int' aŭ 'slice', ne %s"
-#~ msgid "E247: no registered server named \"%s\""
-#~ msgstr "E247: neniu registrita servilo nomita \"%s\""
+#, c-format
+msgid "expected str() or unicode() instance, but got %s"
+msgstr "atendis aperon de str() aŭ unicode(), sed ricevis %s"
-#~ msgid "E233: cannot open display"
-#~ msgstr "E233: ne eblas malfermi vidigon"
+#, c-format
+msgid "expected bytes() or str() instance, but got %s"
+msgstr "atendis aperon de bytes() aŭ str(), sed ricevis %s"
-#~ msgid "E449: Invalid expression received"
-#~ msgstr "E449: Nevalida esprimo ricevita"
+#, c-format
+msgid ""
+"expected int(), long() or something supporting coercing to long(), but got %s"
+msgstr "atendis int(), long() aŭ ion konverteblan al long(), sed ricevis %s"
-#~ msgid "E463: Region is guarded, cannot modify"
-#~ msgstr "E463: Regiono estas gardita, ne eblas ŝanĝi"
+#, c-format
+msgid "expected int() or something supporting coercing to int(), but got %s"
+msgstr "atendis int() aŭ ion konverteblan al int(), sed ricevis %s"
-#~ msgid "E744: NetBeans does not allow changes in read-only files"
-#~ msgstr "E744: NetBeans ne permesas ŝanĝojn en nurlegeblaj dosieroj"
+msgid "value is too large to fit into C int type"
+msgstr "valoro estas tro grada por C-tipo 'int'"
-#~ msgid "Need encryption key for \"%s\""
-#~ msgstr "Ŝlosilo de ĉifrado bezonata por \"%s\""
+msgid "value is too small to fit into C int type"
+msgstr "valoro estas tro malgranda por C-tipo 'int'"
-#~ msgid "can't delete OutputObject attributes"
-#~ msgstr "ne eblas forviŝi atributojn de OutputObject"
+msgid "number must be greater than zero"
+msgstr "nombro devas esti pli granda ol nul"
-#~ msgid "softspace must be an integer"
-#~ msgstr "malmolspaceto (softspace) devas esti entjero"
+msgid "number must be greater or equal to zero"
+msgstr "nombro devas esti egala aŭ pli granda ol nul"
-#~ msgid "invalid attribute"
-#~ msgstr "nevalida atributo"
+msgid "can't delete OutputObject attributes"
+msgstr "ne eblas forviŝi atributojn de OutputObject"
-#~ msgid "writelines() requires list of strings"
-#~ msgstr "writelines() bezonas liston de ĉenoj"
+#, c-format
+msgid "invalid attribute: %s"
+msgstr "nevalida atributo: %s"
-#~ msgid "E264: Python: Error initialising I/O objects"
-#~ msgstr "E264: Pitono: Eraro de pravalorizo de eneligaj objektoj"
+msgid "E264: Python: Error initialising I/O objects"
+msgstr "E264: Pitono: Eraro de pravalorizo de eneligaj objektoj"
-#~ msgid "empty keys are not allowed"
-#~ msgstr "malplenaj ŝlosiloj nepermeseblaj"
+msgid "failed to change directory"
+msgstr "malsukcesis ŝanĝi dosierujon"
-#~ msgid "Cannot delete DictionaryObject attributes"
-#~ msgstr "ne eblas forviŝi atributojn de DictionaryObject"
+#, c-format
+msgid "expected 3-tuple as imp.find_module() result, but got %s"
+msgstr "atendis 3-opon kiel rezulto de imp.find_module(), sed ricevis %s"
-#~ msgid "Cannot modify fixed dictionary"
-#~ msgstr "Ne eblas ŝanĝi fiksan vortaron"
+#, c-format
+msgid "expected 3-tuple as imp.find_module() result, but got tuple of size %d"
+msgstr "atendis 3-opon kiel rezulto de imp.find_module(), sed ricevis %d-opon"
-#~ msgid "Cannot set this attribute"
-#~ msgstr "Ne eblas agordi tiun atributon"
+msgid "internal error: imp.find_module returned tuple with NULL"
+msgstr "interna eraro: imp.find_module liveris opon kun NULL"
-#~ msgid "dict is locked"
-#~ msgstr "vortaro estas ŝlosita"
+msgid "cannot delete vim.Dictionary attributes"
+msgstr "ne eblas forviŝi atributojn de 'vim.Dictionary'"
-#~ msgid "failed to add key to dictionary"
-#~ msgstr "aldono de ŝlosilo al vortaro fiaskis"
+msgid "cannot modify fixed dictionary"
+msgstr "ne eblas ŝanĝi fiksan vortaron"
-#~ msgid "list index out of range"
-#~ msgstr "indekso de listo ekster limoj"
+#, c-format
+msgid "cannot set attribute %s"
+msgstr "ne eblas agordi atributon %s"
-#~ msgid "internal error: failed to get vim list item"
-#~ msgstr "interna eraro: obteno de vim-a listero fiaskis"
+msgid "hashtab changed during iteration"
+msgstr "hakettabelo ŝanĝiĝis dum iteracio"
-#~ msgid "list is locked"
-#~ msgstr "listo estas ŝlosita"
+#, c-format
+msgid "expected sequence element of size 2, but got sequence of size %d"
+msgstr "atendis 2-longan sekvencon, sed ricevis %d-longan sekvencon"
-#~ msgid "Failed to add item to list"
-#~ msgstr "Aldono de listero fiaskis"
+msgid "list constructor does not accept keyword arguments"
+msgstr "konstruilo de listo ne akceptas ŝlosilvortajn argumentojn"
-#~ msgid "can only assign lists to slice"
-#~ msgstr "nur eblas pravalorizi listojn al segmento"
+msgid "list index out of range"
+msgstr "indekso de listo ekster limoj"
-#~ msgid "internal error: failed to add item to list"
-#~ msgstr "interna eraro: aldono de listero fiaskis"
+#. No more suitable format specifications in python-2.3
+#, c-format
+msgid "internal error: failed to get vim list item %d"
+msgstr "interna eraro: obteno de vim-a listero %d malsukcesis"
-#~ msgid "can only concatenate with lists"
-#~ msgstr "eblas nur kunmeti kun listoj"
+msgid "slice step cannot be zero"
+msgstr "paŝo de sekco ne povas esti nul"
-#~ msgid "cannot delete vim.dictionary attributes"
-#~ msgstr "ne eblas forviŝi atributojn de 'vim.dictionary'"
+#, c-format
+msgid "attempt to assign sequence of size greater than %d to extended slice"
+msgstr "provis valorizi sekvencon kun pli ol %d eroj en etendita sekco"
-#~ msgid "cannot modify fixed list"
-#~ msgstr "ne eblas ŝanĝi fiksan liston"
+#, c-format
+msgid "internal error: no vim list item %d"
+msgstr "interna eraro: neniu vim-a listero %d"
-#~ msgid "cannot set this attribute"
-#~ msgstr "ne eblas agordi tiun atributon"
+msgid "internal error: not enough list items"
+msgstr "interna eraro: ne sufiĉaj listeroj"
-#~ msgid "'self' argument must be a dictionary"
-#~ msgstr "argumento 'self' devas esti vortaro"
+msgid "internal error: failed to add item to list"
+msgstr "interna eraro: aldono de listero malsukcesis"
-#~ msgid "failed to run function"
-#~ msgstr "fiaskis ruli funkcion"
+#, c-format
+msgid "attempt to assign sequence of size %d to extended slice of size %d"
+msgstr "provis valorizi sekvencon kun %d eroj al etendita sekco kun %d eroj"
-#~ msgid "unable to unset global option"
-#~ msgstr "ne povis malŝalti mallokan opcion"
+msgid "failed to add item to list"
+msgstr "aldono de listero malsukcesis"
-#~ msgid "unable to unset option without global value"
-#~ msgstr "ne povis malŝalti opcion sen malloka valoro"
+msgid "cannot delete vim.List attributes"
+msgstr "ne eblas forviŝi atributojn de 'vim.List'"
-#~ msgid "object must be integer"
-#~ msgstr "objekto devas esti entjero."
+msgid "cannot modify fixed list"
+msgstr "ne eblas ŝanĝi fiksan liston"
-#~ msgid "object must be string"
-#~ msgstr "objekto devas esti ĉeno"
+#, c-format
+msgid "unnamed function %s does not exist"
+msgstr "sennoma funkcio %s ne ekzistas"
-#~ msgid "attempt to refer to deleted tab page"
-#~ msgstr "provo de referenco al forviŝita langeto"
+#, c-format
+msgid "function %s does not exist"
+msgstr "funkcio %s ne ekzistas"
-#~ msgid "<tabpage object (deleted) at %p>"
-#~ msgstr "<langeta objekto (forviŝita) ĉe %p>"
+#, c-format
+msgid "failed to run function %s"
+msgstr "malsukcesis ruli funkcion %s"
-#~ msgid "<tabpage object (unknown) at %p>"
-#~ msgstr "<langeta objekto (nekonata) ĉe %p>"
+msgid "unable to get option value"
+msgstr "malsukcesis akiri valoron de opcio"
-#~ msgid "<tabpage %d>"
-#~ msgstr "<langeto %d>"
+msgid "internal error: unknown option type"
+msgstr "interna eraro: nekonata tipo de opcio"
-#~ msgid "no such tab page"
-#~ msgstr "ne estas tia langeto"
+msgid "problem while switching windows"
+msgstr "problemo dum salto al vindozoj"
-#~ msgid "attempt to refer to deleted window"
-#~ msgstr "provo de referenco al forviŝita fenestro"
+#, c-format
+msgid "unable to unset global option %s"
+msgstr "ne povis malŝalti mallokan opcion %s"
-#~ msgid "readonly attribute"
-#~ msgstr "nurlegebla atributo"
+#, c-format
+msgid "unable to unset option %s which does not have global value"
+msgstr "ne povis malŝalti opcion %s, kiu ne havas mallokan valoron"
-#~ msgid "cursor position outside buffer"
-#~ msgstr "kursoro poziciita ekster bufro"
+msgid "attempt to refer to deleted tab page"
+msgstr "provo de referenco al forviŝita langeto"
-#~ msgid "<window object (deleted) at %p>"
-#~ msgstr "<fenestra objekto (forviŝita) ĉe %p>"
+msgid "no such tab page"
+msgstr "ne estas tia langeto"
-#~ msgid "<window object (unknown) at %p>"
-#~ msgstr "<objekta fenestro (nekonata) ĉe %p>"
+msgid "attempt to refer to deleted window"
+msgstr "provo de referenco al forviŝita fenestro"
-#~ msgid "<window %d>"
-#~ msgstr "<fenestro %d>"
+msgid "readonly attribute: buffer"
+msgstr "nurlegebla atributo: buffer"
-#~ msgid "no such window"
-#~ msgstr "ne estas tia fenestro"
+msgid "cursor position outside buffer"
+msgstr "kursoro poziciita ekster bufro"
-#~ msgid "attempt to refer to deleted buffer"
-#~ msgstr "provo de referenco al forviŝita bufro"
+msgid "no such window"
+msgstr "ne estas tia fenestro"
-#~ msgid "<buffer object (deleted) at %p>"
-#~ msgstr "<bufra objekto (forviŝita) ĉe %p>"
+msgid "attempt to refer to deleted buffer"
+msgstr "provo de referenco al forviŝita bufro"
-#~ msgid "key must be integer"
-#~ msgstr "ŝlosilo devas esti entjero."
+msgid "failed to rename buffer"
+msgstr "malsukcesis renomi bufron"
-#~ msgid "expected vim.buffer object"
-#~ msgstr "atendis objekton vim.buffer"
+msgid "mark name must be a single character"
+msgstr "nomo de marko devas esti unuopa signo"
-#~ msgid "failed to switch to given buffer"
-#~ msgstr "ne povis salti al la specifita bufro"
+#, c-format
+msgid "expected vim.Buffer object, but got %s"
+msgstr "atendis objekton vim.Buffer, sed ricevis %s"
-#~ msgid "expected vim.window object"
-#~ msgstr "atendis objekton vim.window"
+#, c-format
+msgid "failed to switch to buffer %d"
+msgstr "salto al la bufro %d malsukcesis"
-#~ msgid "failed to find window in the current tab page"
-#~ msgstr "ne povis trovi vindozon en la nuna langeto"
+#, c-format
+msgid "expected vim.Window object, but got %s"
+msgstr "atendis objekton vim.window, sed ricevis %s"
-#~ msgid "did not switch to the specified window"
-#~ msgstr "ne saltis al la specifita vindozo"
+msgid "failed to find window in the current tab page"
+msgstr "malsukcesis trovi vindozon en la nuna langeto"
-#~ msgid "expected vim.tabpage object"
-#~ msgstr "atendis objekton vim.tabpage"
+msgid "did not switch to the specified window"
+msgstr "ne saltis al la specifita vindozo"
-#~ msgid "did not switch to the specified tab page"
-#~ msgstr "ne saltis al la specifita langeto"
+#, c-format
+msgid "expected vim.TabPage object, but got %s"
+msgstr "atendis objekton vim.TabPage, sed ricevis %s"
-#~ msgid "failed to run the code"
-#~ msgstr "fiaskis ruli la kodon"
+msgid "did not switch to the specified tab page"
+msgstr "ne saltis al la specifita langeto"
-#~ msgid "E858: Eval did not return a valid python object"
-#~ msgstr "E858: Eval ne revenis kun valida python-objekto"
+msgid "failed to run the code"
+msgstr "malsukcesis ruli la kodon"
-#~ msgid "E859: Failed to convert returned python object to vim value"
-#~ msgstr "E859: Konverto de revena python-objekto al vim-valoro fiaskis"
+msgid "E858: Eval did not return a valid python object"
+msgstr "E858: Eval ne revenis kun valida python-objekto"
-#~ msgid "unable to convert to vim structure"
-#~ msgstr "ne povis konverti al vim-strukturo"
+msgid "E859: Failed to convert returned python object to vim value"
+msgstr "E859: Konverto de revena python-objekto al vim-valoro malsukcesis"
-#~ msgid "NULL reference passed"
-#~ msgstr "NULL-referenco argumento"
+#, c-format
+msgid "unable to convert %s to vim dictionary"
+msgstr "ne povis konverti %s al vim-vortaro"
-#~ msgid "internal error: invalid value type"
-#~ msgstr "interna eraro: nevalida tipo de valoro"
+#, c-format
+msgid "unable to convert %s to vim list"
+msgstr "ne povis konverti %s al vim-listo"
-#~ msgid "E863: return value must be an instance of str"
-#~ msgstr "E863: elira valoro devas esti apero de str"
+#, c-format
+msgid "unable to convert %s to vim structure"
+msgstr "ne povis konverti %s al vim-strukturo"
-#~ msgid "E860: Eval did not return a valid python 3 object"
-#~ msgstr "E860: Eval ne revenis kun valida python3-objekto"
+msgid "internal error: NULL reference passed"
+msgstr "interna eraro: NULL-referenco argumento"
-#~ msgid "E861: Failed to convert returned python 3 object to vim value"
-#~ msgstr "E861: Konverto de revena python3-objekto al vim-valoro fiaskis"
+msgid "internal error: invalid value type"
+msgstr "interna eraro: nevalida tipo de valoro"
-#~ msgid "Only boolean objects are allowed"
-#~ msgstr "Nur buleaj objektoj estas permeseblaj"
+msgid ""
+"Failed to set path hook: sys.path_hooks is not a list\n"
+"You should now do the following:\n"
+"- append vim.path_hook to sys.path_hooks\n"
+"- append vim.VIM_SPECIAL_PATH to sys.path\n"
+msgstr ""
+"Valorizo de sys.path_hooks malsukcesis: sys.path_hooks ne estas listo\n"
+"Vi nun devas fari tion:\n"
+"- postaldoni vim.path_hook al sys.path_hooks\n"
+"- postaldoni vim.VIM_SPECIAL_PATH al sys.path\n"
-#~ msgid "no such key in dictionary"
-#~ msgstr "tiu ŝlosilo ne ekzistas en vortaro"
+msgid ""
+"Failed to set path: sys.path is not a list\n"
+"You should now append vim.VIM_SPECIAL_PATH to sys.path"
+msgstr ""
+"Agordo de serĉvojo malsukcesis: sys.path ne estas listo\n"
+"Vi nun devas aldoni vim.VIM_SPECIAL_PATH al sys.path"
diff --git a/src/nvim/po/fr.po b/src/nvim/po/fr.po
index 2d99d67099..c0df5f2170 100644
--- a/src/nvim/po/fr.po
+++ b/src/nvim/po/fr.po
@@ -1,3 +1,4 @@
+
# French Translation for Vim
#
# Do ":help uganda" in Vim to read copying and usage conditions.
@@ -6,7 +7,7 @@
# FIRST AUTHOR DindinX <David.Odin@bigfoot.com> 2000.
# SECOND AUTHOR Adrien Beau <version.francaise@free.fr> 2002, 2003.
# THIRD AUTHOR David Blanchet <david.blanchet@free.fr> 2006, 2008.
-# FOURTH AUTHOR Dominique Pell <dominique.pelle@gmail.com> 2008, 2015.
+# FOURTH AUTHOR Dominique Pell <dominique.pelle@gmail.com> 2008, 2017.
#
# Latest translation available at:
# http://dominique.pelle.free.fr/vim-fr.php
@@ -15,8 +16,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Vim(Franais)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-07-02 16:21+0200\n"
-"PO-Revision-Date: 2016-07-02 17:06+0200\n"
+"POT-Creation-Date: 2017-01-16 00:30+0100\n"
+"PO-Revision-Date: 2017-01-16 00:51+0100\n"
"Last-Translator: Dominique Pell <dominique.pelle@gmail.com>\n"
"Language-Team: \n"
"Language: fr\n"
@@ -24,13 +25,20 @@ msgstr ""
"Content-Type: text/plain; charset=ISO_8859-15\n"
"Content-Transfer-Encoding: 8bit\n"
-#, fuzzy
-#~ msgid "Unable to get option value"
-#~ msgstr "impossible d'obtenir la valeur d'une option"
+msgid "E831: bf_key_init() called with empty password"
+msgstr "E831: bf_key_init() appele avec un mot de passe vide"
+
+msgid "E820: sizeof(uint32_t) != 4"
+msgstr "E820: sizeof(uint32_t) != 4"
+
+msgid "E817: Blowfish big/little endian use wrong"
+msgstr "E817: petit/gros boutisme incorrect dans blowfish"
-#, fuzzy
-#~ msgid "internal error: unknown option type"
-#~ msgstr "erreur interne : pas d'lment de liste vim"
+msgid "E818: sha256 test failed"
+msgstr "E818: le test de sha256 a chou"
+
+msgid "E819: Blowfish test failed"
+msgstr "E819: le test de blowfish a chou"
# DB - TODO : Trouver une traduction valable et atteste pour "location".
msgid "[Location List]"
@@ -53,6 +61,12 @@ msgid "E83: Cannot allocate buffer, using other one..."
msgstr ""
"E83: L'allocation du tampon a chou : arrtez Vim, librez de la mmoire"
+msgid "E931: Buffer cannot be registered"
+msgstr "E931: Le tampon ne peut pas tre enregistr"
+
+msgid "E937: Attempt to delete a buffer that is in use"
+msgstr "E937: Tentative de suppression d'un tampon en cours d'utilisation"
+
msgid "E515: No buffers were unloaded"
msgstr "E515: Aucun tampon n'a t dcharg"
@@ -103,20 +117,18 @@ msgid "E88: Cannot go before first buffer"
msgstr "E88: Impossible d'aller avant le premier tampon"
#, c-format
-msgid ""
-"E89: No write since last change for buffer %<PRId64> (add ! to override)"
+msgid "E89: No write since last change for buffer %ld (add ! to override)"
msgstr ""
-"E89: Le tampon %<PRId64> n'a pas t enregistr (ajoutez ! pour passer outre)"
+"E89: Le tampon %ld n'a pas t enregistr (ajoutez ! pour passer outre)"
-#. wrap around (may cause duplicates)
msgid "W14: Warning: List of file names overflow"
msgstr "W14: Alerte : La liste des noms de fichier dborde"
# AB - Vu le code source, la version franaise est meilleure que la
# version anglaise. Ce message est similaire au message E86.
#, c-format
-msgid "E92: Buffer %<PRId64> not found"
-msgstr "E92: Le tampon %<PRId64> n'existe pas"
+msgid "E92: Buffer %ld not found"
+msgstr "E92: Le tampon %ld n'existe pas"
# AB - Il faut respecter l'esprit plus que la lettre.
#, c-format
@@ -128,8 +140,8 @@ msgid "E94: No matching buffer for %s"
msgstr "E94: Aucun tampon ne correspond %s"
#, c-format
-msgid "line %<PRId64>"
-msgstr "ligne %<PRId64>"
+msgid "line %ld"
+msgstr "ligne %ld"
msgid "E95: Buffer with this name already exists"
msgstr "E95: Un tampon porte dj ce nom"
@@ -160,14 +172,14 @@ msgid "1 line --%d%%--"
msgstr "1 ligne --%d%%--"
#, c-format
-msgid "%<PRId64> lines --%d%%--"
-msgstr "%<PRId64> lignes --%d%%--"
+msgid "%ld lines --%d%%--"
+msgstr "%ld lignes --%d%%--"
# AB - Faut-il remplacer "sur" par "de" ?
# DB - Mon avis : oui.
#, c-format
-msgid "line %<PRId64> of %<PRId64> --%d%%-- col "
-msgstr "ligne %<PRId64> sur %<PRId64> --%d%%-- col "
+msgid "line %ld of %ld --%d%%-- col "
+msgstr "ligne %ld sur %ld --%d%%-- col "
# DB - Je trouvais [Aucun fichier] (VO : [No file]) plus naturel
# lors du lancement de Vim en mode graphique (ce message
@@ -221,28 +233,106 @@ msgid "Signs for %s:"
msgstr "Symboles dans %s :"
#, c-format
-msgid " line=%<PRId64> id=%d name=%s"
-msgstr " ligne=%<PRId64> id=%d nom=%s"
+msgid " line=%ld id=%d name=%s"
+msgstr " ligne=%ld id=%d nom=%s"
-msgid "E545: Missing colon"
-msgstr "E545: ':' manquant"
+msgid "E902: Cannot connect to port"
+msgstr "E902: Impossible de se connecter au port"
-msgid "E546: Illegal mode"
-msgstr "E546: Mode non autoris"
+msgid "E901: gethostbyname() in channel_open()"
+msgstr "E901: gethostbyname() dans channel_open()"
-msgid "E548: digit expected"
-msgstr "E548: chiffre attendu"
+msgid "E898: socket() in channel_open()"
+msgstr "E898: socket() dans channel_open()"
-msgid "E549: Illegal percentage"
-msgstr "E549: Pourcentage non autoris"
+msgid "E903: received command with non-string argument"
+msgstr "E903: commande reue avec un argument qui n'est pas une chane"
+
+msgid "E904: last argument for expr/call must be a number"
+msgstr "E904: le dernier argument de expr/call doit tre un nombre"
+
+msgid "E904: third argument for call must be a list"
+msgstr "E904: le troisime argument de \"call\" doit tre une liste"
+
+#, c-format
+msgid "E905: received unknown command: %s"
+msgstr "E905: commande inconnue reue : %s"
+
+#, c-format
+msgid "E630: %s(): write while not connected"
+msgstr "E630: %s() : criture sans tre connect"
+
+#, c-format
+msgid "E631: %s(): write failed"
+msgstr "E631: %s() : erreur d'criture"
+
+#, c-format
+msgid "E917: Cannot use a callback with %s()"
+msgstr "E917: Impossible d'utiliser un callback avec %s()"
+
+msgid "E912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channel"
+msgstr ""
+"E912: Impossible d'utiliser ch_evalexpr()/ch_sendexpr() avec un canal brut "
+"ou nl"
+
+msgid "E906: not an open channel"
+msgstr "E906: pas un canal ouvert"
+
+msgid "E920: _io file requires _name to be set"
+msgstr "E920: fichier _io ncessite _name"
+
+msgid "E915: in_io buffer requires in_buf or in_name to be set"
+msgstr "E915: tampon in_io ncessite in_buf ou in_name "
+
+#, c-format
+msgid "E918: buffer must be loaded: %s"
+msgstr "E918: le tampon doit tre charg : %s"
+
+msgid "E821: File is encrypted with unknown method"
+msgstr "E821: Le fichier est chiffr avec une mthode inconnue"
+
+msgid "Warning: Using a weak encryption method; see :help 'cm'"
+msgstr ""
+"Alerte : utilisation d'une mthode de chiffrage faible ; consultez :help 'cm'"
+
+msgid "Enter encryption key: "
+msgstr "Tapez la cl de chiffrement : "
+
+msgid "Enter same key again: "
+msgstr "Tapez la cl nouveau : "
+
+msgid "Keys don't match!"
+msgstr "Les cls ne correspondent pas !"
+
+msgid "[crypted]"
+msgstr "[chiffr]"
-# AB - Je n'ai pas trouv de traduction satisfaisante au verbe "diff". Comme
-# Vim fait en pratique appel au programme "diff" pour evaluer les
-# diffrences entre fichiers, "to diff" a t traduit par "utiliser diff"
-# et d'autres expressions appropries.
#, c-format
-msgid "E96: Can not diff more than %<PRId64> buffers"
-msgstr "E96: Impossible d'utiliser diff sur plus de %<PRId64> tampons"
+msgid "E720: Missing colon in Dictionary: %s"
+msgstr "E720: Il manque ':' dans le Dictionnaire %s"
+
+#, c-format
+msgid "E721: Duplicate key in Dictionary: \"%s\""
+msgstr "E721: Cl duplique dans le Dictionnaire : %s"
+
+#, c-format
+msgid "E722: Missing comma in Dictionary: %s"
+msgstr "E722: Il manque une virgule dans le Dictionnaire : %s"
+
+#, c-format
+msgid "E723: Missing end of Dictionary '}': %s"
+msgstr "E723: Il manque '}' la fin du Dictionnaire : %s"
+
+msgid "extend() argument"
+msgstr "argument de extend()"
+
+#, c-format
+msgid "E737: Key already exists: %s"
+msgstr "E737: La cl existe dj : %s"
+
+#, c-format
+msgid "E96: Cannot diff more than %ld buffers"
+msgstr "E96: Impossible d'utiliser diff sur plus de %ld tampons"
msgid "E810: Cannot read or write temp files"
msgstr "E810: Impossible de lire ou crire des fichiers temporaires"
@@ -251,6 +341,9 @@ msgstr "E810: Impossible de lire ou crire des fichiers temporaires"
msgid "E97: Cannot create diffs"
msgstr "E97: diff ne fonctionne pas"
+msgid "Patch file"
+msgstr "Fichier rustine"
+
msgid "E816: Cannot read patch output"
msgstr "E816: Le fichier intermdiaire produit par patch n'a pu tre lu"
@@ -429,59 +522,17 @@ msgstr "Correspondance %d sur %d"
msgid "match %d"
msgstr "Correspondance %d"
+#. maximum nesting of lists and dicts
msgid "E18: Unexpected characters in :let"
msgstr "E18: Caractres inattendus avant '='"
#, c-format
-msgid "E684: list index out of range: %<PRId64>"
-msgstr "E684: index de Liste hors limites : %<PRId64> au-del de la fin"
-
-#, c-format
msgid "E121: Undefined variable: %s"
msgstr "E121: Variable non dfinie : %s"
msgid "E111: Missing ']'"
msgstr "E111: ']' manquant"
-#, c-format
-msgid "E686: Argument of %s must be a List"
-msgstr "E686: L'argument de %s doit tre une Liste"
-
-#, c-format
-msgid "E712: Argument of %s must be a List or Dictionary"
-msgstr "E712: L'argument de %s doit tre une Liste ou un Dictionnaire"
-
-msgid "E713: Cannot use empty key for Dictionary"
-msgstr "E713: Impossible d'utiliser une cl vide dans un Dictionnaire"
-
-msgid "E714: List required"
-msgstr "E714: Liste requise"
-
-msgid "E715: Dictionary required"
-msgstr "E715: Dictionnaire requis"
-
-msgid "E928: String required"
-msgstr "E928: Chaine requis"
-
-# DB : Suggestion
-#, c-format
-msgid "E118: Too many arguments for function: %s"
-msgstr "E118: La fonction %s a reu trop d'arguments"
-
-#, c-format
-msgid "E716: Key not present in Dictionary: %s"
-msgstr "E716: La cl %s n'existe pas dans le Dictionnaire"
-
-#, c-format
-msgid "E122: Function %s already exists, add ! to replace it"
-msgstr "E122: La fonction %s existe dj (ajoutez ! pour la remplacer)"
-
-msgid "E717: Dictionary entry already exists"
-msgstr "E717: Une entre du Dictionnaire porte dj ce nom"
-
-msgid "E718: Funcref required"
-msgstr "E718: Rfrence de fonction (Funcref) requise"
-
msgid "E719: Cannot use [:] with a Dictionary"
msgstr "E719: Utilisation de [:] impossible avec un Dictionnaire"
@@ -490,10 +541,6 @@ msgid "E734: Wrong variable type for %s="
msgstr "E734: Type de variable erron avec %s="
#, c-format
-msgid "E130: Unknown function: %s"
-msgstr "E130: Fonction inconnue : %s"
-
-#, c-format
msgid "E461: Illegal variable name: %s"
msgstr "E461: Nom de variable invalide : %s"
@@ -522,7 +569,7 @@ msgid "E708: [:] must come last"
msgstr "E708: [:] ne peut tre spcifi qu'en dernier"
msgid "E709: [:] requires a List value"
-msgstr "E709: [:] n?cessite une Liste"
+msgstr "E709: [:] ncessite une Liste"
msgid "E710: List value has more items than target"
msgstr "E710: La Liste a plus d'lments que la destination"
@@ -534,10 +581,6 @@ msgid "E690: Missing \"in\" after :for"
msgstr "E690: \"in\" manquant aprs :for"
#, c-format
-msgid "E107: Missing parentheses: %s"
-msgstr "E107: Parenthses manquantes : %s"
-
-#, c-format
msgid "E108: No such variable: \"%s\""
msgstr "E108: Variable inexistante : %s"
@@ -552,8 +595,8 @@ msgstr "E109: Il manque ':' aprs '?'"
msgid "E691: Can only compare List with List"
msgstr "E691: Une Liste ne peut tre compare qu'avec une Liste"
-msgid "E692: Invalid operation for Lists"
-msgstr "E692: Opration invalide avec les Listes"
+msgid "E692: Invalid operation for List"
+msgstr "E692: Opration invalide avec les Liste"
msgid "E735: Can only compare Dictionary with Dictionary"
msgstr "E735: Un Dictionnaire ne peut tre compar qu'avec un Dictionnaire"
@@ -561,10 +604,6 @@ msgstr "E735: Un Dictionnaire ne peut tre compar qu'avec un Dictionnaire"
msgid "E736: Invalid operation for Dictionary"
msgstr "E736: Opration invalide avec les Dictionnaires"
-# DB - todo : Traduction valable (et courte) pour Funcref ?
-msgid "E693: Can only compare Funcref with Funcref"
-msgstr "E693: Une Funcref ne peut tre compare qu' une Funcref"
-
msgid "E694: Invalid operation for Funcrefs"
msgstr "E694: Opration invalide avec les Funcrefs"
@@ -577,6 +616,9 @@ msgstr "E110: ')' manquant"
msgid "E695: Cannot index a Funcref"
msgstr "E695: Impossible d'indexer une Funcref"
+msgid "E909: Cannot index a special variable"
+msgstr "E909: Impossible d'indexer une variable spciale"
+
# AB - La version franaise est meilleure que la version anglaise.
#, c-format
msgid "E112: Option name missing: %s"
@@ -598,60 +640,119 @@ msgstr "E114: Il manque \" la fin de %s"
msgid "E115: Missing quote: %s"
msgstr "E115: Il manque ' la fin de %s"
-#, c-format
-msgid "E696: Missing comma in List: %s"
-msgstr "E696: Il manque une virgule dans la Liste %s"
-
-#, c-format
-msgid "E697: Missing end of List ']': %s"
-msgstr "E697: Il manque ']' la fin de la Liste %s"
-
msgid "Not enough memory to set references, garbage collection aborted!"
msgstr ""
"Pas assez de mmoire pour les rfrences, arrt du ramassage de mites !"
-#, c-format
-msgid "E720: Missing colon in Dictionary: %s"
-msgstr "E720: Il manque ':' dans le Dictionnaire %s"
+msgid "E724: variable nested too deep for displaying"
+msgstr "E724: variable trop imbrique pour tre affiche"
-#, c-format
-msgid "E721: Duplicate key in Dictionary: \"%s\""
-msgstr "E721: Cl \"%s\" duplique dans le Dictionnaire"
+msgid "E805: Using a Float as a Number"
+msgstr "E805: Utilisation d'un Flottant comme un Nombre"
-#, c-format
-msgid "E722: Missing comma in Dictionary: %s"
-msgstr "E722: Il manque une virgule dans le Dictionnaire %s"
+msgid "E703: Using a Funcref as a Number"
+msgstr "E703: Utilisation d'une Funcref comme un Nombre"
-#, c-format
-msgid "E723: Missing end of Dictionary '}': %s"
-msgstr "E723: Il manque '}' la fin du Dictionnaire %s"
+msgid "E745: Using a List as a Number"
+msgstr "E745: Utilisation d'une Liste comme un Nombre"
-msgid "E724: variable nested too deep for displaying"
-msgstr "E724: variable trop imbrique pour tre affiche"
+msgid "E728: Using a Dictionary as a Number"
+msgstr "E728: Utilisation d'un Dictionnaire comme un Nombre"
+
+msgid "E910: Using a Job as a Number"
+msgstr "E910: Utilisation d'une Tche comme un Nombre"
+
+msgid "E913: Using a Channel as a Number"
+msgstr "E913: Utilisation d'un Canal comme un Nombre"
+
+msgid "E891: Using a Funcref as a Float"
+msgstr "E891: Utilisation d'une Funcref comme un Flottant"
+
+msgid "E892: Using a String as a Float"
+msgstr "E892: Utilisation d'une Chane comme un Flottant"
+
+msgid "E893: Using a List as a Float"
+msgstr "E893: Utilisation d'une Liste comme un Flottant"
+
+msgid "E894: Using a Dictionary as a Float"
+msgstr "E894: Utilisation d'un Dictionnaire comme un Flottant"
+
+msgid "E907: Using a special value as a Float"
+msgstr "E907: Utilisation d'une valeur spciale comme un Flottant"
+
+msgid "E911: Using a Job as a Float"
+msgstr "E911: Utilisation d'une Tche comme un Flottant"
+
+msgid "E914: Using a Channel as a Float"
+msgstr "E914: Utilisation d'un Canal comme un Flottant"
+
+msgid "E729: using Funcref as a String"
+msgstr "E729: Utilisation d'une Funcref comme une Chane"
+
+msgid "E730: using List as a String"
+msgstr "E730: Utilisation d'une Liste comme une Chane"
+
+msgid "E731: using Dictionary as a String"
+msgstr "E731: Utilisation d'un Dictionnaire comme une Chane"
+
+msgid "E908: using an invalid value as a String"
+msgstr "E908: Utilisation d'une valeur invalide comme une Chane"
#, c-format
-msgid "E740: Too many arguments for function %s"
-msgstr "E740: Trop d'arguments pour la fonction %s"
+msgid "E795: Cannot delete variable %s"
+msgstr "E795: Impossible de supprimer la variable %s"
#, c-format
-msgid "E116: Invalid arguments for function %s"
-msgstr "E116: Arguments invalides pour la fonction %s"
+msgid "E704: Funcref variable name must start with a capital: %s"
+msgstr "E704: Le nom d'une Funcref doit commencer par une majuscule : %s"
#, c-format
-msgid "E117: Unknown function: %s"
-msgstr "E117: Fonction inconnue : %s"
+msgid "E705: Variable name conflicts with existing function: %s"
+msgstr "E705: Le nom d'une variable entre en conflit avec la fonction %s"
#, c-format
-msgid "E119: Not enough arguments for function: %s"
-msgstr "E119: La fonction %s n'a pas reu assez d'arguments"
+msgid "E741: Value is locked: %s"
+msgstr "E741: La valeur de %s est verrouille"
+
+msgid "Unknown"
+msgstr "Inconnu"
#, c-format
-msgid "E120: Using <SID> not in a script context: %s"
-msgstr "E120: <SID> utilis en dehors d'un script : %s"
+msgid "E742: Cannot change value of %s"
+msgstr "E742: Impossible de modifier la valeur de %s"
+
+msgid "E698: variable nested too deep for making a copy"
+msgstr "E698: variable trop imbrique pour en faire une copie"
+
+# AB - La version franaise est capitalise pour tre en accord avec les autres
+# commentaires enregistrs dans le fichier viminfo.
+msgid ""
+"\n"
+"# global variables:\n"
+msgstr ""
+"\n"
+"# Variables globales:\n"
+
+# DB - Plus prcis ("la dernire fois") ?
+msgid ""
+"\n"
+"\tLast set from "
+msgstr ""
+"\n"
+"\tModifi la dernire fois dans "
+
+msgid "map() argument"
+msgstr "argument de map()"
+
+msgid "filter() argument"
+msgstr "argument de filter()"
#, c-format
-msgid "E725: Calling dict function without Dictionary: %s"
-msgstr "E725: Appel d'une fonction dict sans Dictionnaire : %s"
+msgid "E686: Argument of %s must be a List"
+msgstr "E686: L'argument de %s doit tre une Liste"
+
+msgid "E928: String required"
+msgstr "E928: Chane requis"
msgid "E808: Number or Float required"
msgstr "E808: Nombre ou Flottant requis"
@@ -659,38 +760,44 @@ msgstr "E808: Nombre ou Flottant requis"
msgid "add() argument"
msgstr "argument de add()"
-msgid "E699: Too many arguments"
-msgstr "E699: Trop d'arguments"
-
msgid "E785: complete() can only be used in Insert mode"
msgstr "E785: complete() n'est utilisable que dans le mode Insertion"
# AB - Texte par dfaut du bouton de la bote de dialogue affiche par la
# fonction confirm().
+#.
+#. * Yes this is ugly, I don't particularly like it either. But doing it
+#. * this way has the compelling advantage that translations need not to
+#. * be touched at all. See below what 'ok' and 'ync' are used for.
+#.
msgid "&Ok"
msgstr "&Ok"
-msgid "extend() argument"
-msgstr "argument de extend()"
-
-#, c-format
-msgid "E737: Key already exists: %s"
-msgstr "E737: un mappage existe dj pour %s"
-
-msgid "map() argument"
-msgstr "argument de map()"
-
-msgid "filter() argument"
-msgstr "argument de filter()"
-
#, c-format
-msgid "+-%s%3ld lines: "
-msgstr "+-%s%3ld lignes : "
+msgid "+-%s%3ld line: "
+msgid_plural "+-%s%3ld lines: "
+msgstr[0] "+-%s%3ld ligne : "
+msgstr[1] "+-%s%3ld lignes : "
#, c-format
msgid "E700: Unknown function: %s"
msgstr "E700: Fonction inconnue : %s"
+msgid "E922: expected a dict"
+msgstr "E922: dictionnaire attendu"
+
+msgid "E923: Second argument of function() must be a list or a dict"
+msgstr ""
+"E923: Le second argument de function() doit tre une liste ou un dictionnaire"
+
+# AB - Textes des boutons de la bote de dialogue affiche par inputdialog().
+msgid ""
+"&OK\n"
+"&Cancel"
+msgstr ""
+"&Ok\n"
+"&Annuler"
+
# AB - La version franaise est meilleure que la version anglaise.
msgid "called inputrestore() more often than inputsave()"
msgstr "inputrestore() a t appel plus de fois qu'inputsave()"
@@ -701,9 +808,16 @@ msgstr "argument de insert()"
msgid "E786: Range not allowed"
msgstr "E786: Les plages ne sont pas autorises"
+msgid "E916: not a valid job"
+msgstr "E916: tche invalide"
+
msgid "E701: Invalid type for len()"
msgstr "E701: Type invalide avec len()"
+#, c-format
+msgid "E798: ID is reserved for \":match\": %ld"
+msgstr "E798: ID est rserv pour \":match\": %ld"
+
msgid "E726: Stride is zero"
msgstr "E726: Le pas est nul"
@@ -713,6 +827,19 @@ msgstr "E727: Dbut au-del de la fin"
msgid "<empty>"
msgstr "<vide>"
+# AB - mon avis, la version anglaise est errone.
+# DB : Vrifier
+msgid "E240: No connection to Vim server"
+msgstr "E240: Pas de connexion au serveur X"
+
+# AB - La version franaise est meilleure que la version anglaise.
+#, c-format
+msgid "E241: Unable to send to %s"
+msgstr "E241: L'envoi au serveur %s a chou"
+
+msgid "E277: Unable to read a server reply"
+msgstr "E277: Impossible de lire la rponse du serveur"
+
msgid "remove() argument"
msgstr "argument de remove()"
@@ -722,6 +849,10 @@ msgstr "E655: Trop de liens symboliques (cycle ?)"
msgid "reverse() argument"
msgstr "argument de reverse()"
+# AB - La version franaise est meilleure que la version anglaise.
+msgid "E258: Unable to send to client"
+msgstr "E258: La rponse n'a pas pu tre envoye au client"
+
#, c-format
msgid "E927: Invalid action: '%s'"
msgstr "E927: Action invalide : %s "
@@ -729,185 +860,27 @@ msgstr "E927: Action invalide : %s "
msgid "sort() argument"
msgstr "argument de sort()"
-#, fuzzy
-#~ msgid "uniq() argument"
-#~ msgstr "argument de add()"
+msgid "uniq() argument"
+msgstr "argument de uniq()"
msgid "E702: Sort compare function failed"
msgstr "E702: La fonction de comparaison de sort() a chou"
-#, fuzzy
-#~ msgid "E882: Uniq compare function failed"
-#~ msgstr "E702: La fonction de comparaison de sort() a chou"
+msgid "E882: Uniq compare function failed"
+msgstr "E882: La fonction de comparaison de uniq() a chou"
msgid "(Invalid)"
msgstr "(Invalide)"
-msgid "E677: Error writing temp file"
-msgstr "E677: Erreur lors de l'criture du fichier temporaire"
-
-msgid "E805: Using a Float as a Number"
-msgstr "E805: Utilisation d'un Flottant comme un Nombre"
-
-msgid "E703: Using a Funcref as a Number"
-msgstr "E703: Utilisation d'une Funcref comme un Nombre"
-
-msgid "E745: Using a List as a Number"
-msgstr "E745: Utilisation d'une Liste comme un Nombre"
-
-msgid "E728: Using a Dictionary as a Number"
-msgstr "E728: Utilisation d'un Dictionnaire comme un Nombre"
-
-msgid "E729: using Funcref as a String"
-msgstr "E729: Utilisation d'une Funcref comme une Chane"
-
-msgid "E730: using List as a String"
-msgstr "E730: Utilisation d'une Liste comme une Chane"
-
-msgid "E731: using Dictionary as a String"
-msgstr "E731: Utilisation d'un Dictionnaire comme une Chane"
-
-# DB : On doit pouvoir trouver nettement mieux que a.
-#, c-format
-msgid "E706: Variable type mismatch for: %s"
-msgstr "E706: Type de variable incohrent pour %s"
-
-#, c-format
-msgid "E795: Cannot delete variable %s"
-msgstr "E795: Impossible de supprimer la variable %s"
-
-#, c-format
-msgid "E704: Funcref variable name must start with a capital: %s"
-msgstr "E704: Le nom d'une Funcref doit commencer par une majuscule : %s"
-
-#, c-format
-msgid "E705: Variable name conflicts with existing function: %s"
-msgstr "E705: Le nom d'une variable entre en conflit avec la fonction %s"
-
-#, c-format
-msgid "E741: Value is locked: %s"
-msgstr "E741: La valeur de %s est verrouille"
-
-msgid "Unknown"
-msgstr "Inconnu"
-
-#, c-format
-msgid "E742: Cannot change value of %s"
-msgstr "E742: Impossible de modifier la valeur de %s"
-
-msgid "E698: variable nested too deep for making a copy"
-msgstr "E698: variable trop imbrique pour en faire une copie"
-
#, c-format
-msgid "E123: Undefined function: %s"
-msgstr "E123: Fonction non dfinie : %s"
-
-# AB - La version franaise est plus consistante que la version anglaise.
-# AB - Je suis partag entre la concision d'une traduction assez littrale et
-# la lourdeur d'une traduction plus correcte.
-#, c-format
-msgid "E124: Missing '(': %s"
-msgstr "E124: Il manque '(' aprs %s"
-
-msgid "E862: Cannot use g: here"
-msgstr "E862: Impossible d'utiliser g: ici"
-
-#, c-format
-msgid "E125: Illegal argument: %s"
-msgstr "E125: Argument invalide : %s"
-
-#, c-format
-msgid "E853: Duplicate argument name: %s"
-msgstr "E853: Nom d'argument dupliqu : %s"
-
-msgid "E126: Missing :endfunction"
-msgstr "E126: Il manque :endfunction"
-
-#, c-format
-msgid "E707: Function name conflicts with variable: %s"
-msgstr "E707: Le nom de fonction entre en conflit avec la variable : %s"
-
-#, c-format
-msgid "E127: Cannot redefine function %s: It is in use"
-msgstr "E127: Impossible de redfinir fonction %s : dj utilise"
-
-# DB - Le contenu du "c-format" est le nom de la fonction.
-#, c-format
-msgid "E746: Function name does not match script file name: %s"
-msgstr "E746: Le nom de la fonction %s ne correspond pas le nom du script"
-
-msgid "E129: Function name required"
-msgstr "E129: Nom de fonction requis"
-
-#, fuzzy, c-format
-#~ msgid "E128: Function name must start with a capital or \"s:\": %s"
-#~ msgstr "E128: La fonction %s ne commence pas par une majuscule ou contient ':'"
-
-#, fuzzy, c-format
-#~ msgid "E884: Function name cannot contain a colon: %s"
-#~ msgstr "E128: La fonction %s ne commence pas par une majuscule ou contient ':'"
-
-# AB - Il est difficile de crer une version franaise qui fasse moins de 80
-# caractres de long, nom de la fonction compris : "It is in use" est une
-# expression trs dense. Traductions possibles : "elle est utilise",
-# "elle s'excute" ou "elle est occupe".
-#, c-format
-msgid "E131: Cannot delete function %s: It is in use"
-msgstr "E131: Impossible d'effacer %s : cette fonction est utilise"
-
-# AB - Vrifier dans la littrature technique s'il n'existe pas une meilleure
-# traduction pour "function call depth".
-msgid "E132: Function call depth is higher than 'maxfuncdepth'"
-msgstr ""
-"E132: La profondeur d'appel de fonction est suprieure 'maxfuncdepth'"
-
-# AB - Ce texte fait partie d'un message de dbogage.
-#, c-format
-msgid "calling %s"
-msgstr "appel de %s"
-
-# AB - Vrifier.
-#, c-format
-msgid "%s aborted"
-msgstr "%s annule"
-
-# AB - Ce texte fait partie d'un message de dbogage.
-#, c-format
-msgid "%s returning #%<PRId64>"
-msgstr "%s a retourn #%<PRId64>"
-
-# AB - Ce texte fait partie d'un message de dbogage.
-#, c-format
-msgid "%s returning %s"
-msgstr "%s a retourn \"%s\""
-
-# AB - Ce texte fait partie d'un message de dbogage.
-#, c-format
-msgid "continuing in %s"
-msgstr "de retour dans %s"
-
-msgid "E133: :return not inside a function"
-msgstr "E133: :return en dehors d'une fonction"
-
-# AB - La version franaise est capitalise pour tre en accord avec les autres
-# commentaires enregistrs dans le fichier viminfo.
-msgid ""
-"\n"
-"# global variables:\n"
-msgstr ""
-"\n"
-"# Variables globales:\n"
+msgid "E935: invalid submatch number: %d"
+msgstr "E935: numro de submatch invalide : %d"
-# DB - Plus prcis ("la dernire fois") ?
-msgid ""
-"\n"
-"\tLast set from "
-msgstr ""
-"\n"
-"\tModifi la dernire fois dans "
+msgid "E677: Error writing temp file"
+msgstr "E677: Erreur lors de l'criture du fichier temporaire"
-msgid "No old files"
-msgstr "Aucun vieux fichier"
+msgid "E921: Invalid callback argument"
+msgstr "E921: Argument de callback invalide"
#, c-format
msgid "<%s>%s%s %d, Hex %02x, Octal %03o"
@@ -930,12 +903,12 @@ msgid "1 line moved"
msgstr "1 ligne dplace"
#, c-format
-msgid "%<PRId64> lines moved"
-msgstr "%<PRId64> lignes dplaces"
+msgid "%ld lines moved"
+msgstr "%ld lignes dplaces"
#, c-format
-msgid "%<PRId64> lines filtered"
-msgstr "%<PRId64> lignes filtres"
+msgid "%ld lines filtered"
+msgstr "%ld lignes filtres"
# AB - J'ai volontairement omis l'astrisque initiale car je pense que le
# motif "Filter*" dcrit plus clairement les quatre autocommandes lies
@@ -997,6 +970,10 @@ msgstr " CHEC"
msgid "E137: Viminfo file is not writable: %s"
msgstr "E137: L'criture dans le fichier %s est interdite"
+#, c-format
+msgid "E929: Too many viminfo temp files, like %s!"
+msgstr "E929: Trop de fichiers temporaires viminfo, comme %s!"
+
# AB - Le point d'exclamation est superflu.
# AB - Le mot "viminfo" a t retir pour que le message ne dpasse pas 80
# caractres dans le cas courant o %s = /home/12345678/.viminfo
@@ -1009,6 +986,10 @@ msgstr "E138: Impossible d'crire le fichier %s"
msgid "Writing viminfo file \"%s\""
msgstr "criture du fichier viminfo \"%s\""
+#, c-format
+msgid "E886: Can't rename viminfo file to %s!"
+msgstr "E886: Impossible de renommer viminfo en %s"
+
#. Write the info:
#, c-format
msgid "# This viminfo file was generated by Vim %s.\n"
@@ -1030,6 +1011,19 @@ msgstr "# 'encoding' dans lequel ce fichier a t crit\n"
msgid "Illegal starting char"
msgstr "Caractre initial non valide"
+msgid ""
+"\n"
+"# Bar lines, copied verbatim:\n"
+msgstr ""
+"\n"
+"# Lignes commenant par |, copies littralement :\n"
+
+# AB - Ceci est un titre de bote de dialogue. Vrifier que la version
+# franaise est correcte pour les trois rfrences ; j'ai un doute quant
+# la troisime.
+msgid "Save As"
+msgstr "Enregistrer sous - Vim"
+
# AB - Ceci est un contenu de bote de dialogue (ventuellement en mode texte).
# AB - La version franaise est meilleure que la version anglaise.
msgid "Write partial file?"
@@ -1054,8 +1048,8 @@ msgid "E768: Swap file exists: %s (:silent! overrides)"
msgstr "E768: Le fichier d'change %s existe dj (:silent! pour passer outre)"
#, c-format
-msgid "E141: No file name for buffer %<PRId64>"
-msgstr "E141: Pas de nom de fichier pour le tampon %<PRId64>"
+msgid "E141: No file name for buffer %ld"
+msgstr "E141: Pas de nom de fichier pour le tampon %ld"
# AB - Il faut respecter l'esprit plus que la lettre.
msgid "E142: File not written: Writing is disabled by 'write' option"
@@ -1086,6 +1080,10 @@ msgstr ""
msgid "E505: \"%s\" is read-only (add ! to override)"
msgstr "E505: \"%s\" est en lecture seule (ajoutez ! pour passer outre)"
+# AB - Ceci est un titre de bote de dialogue.
+msgid "Edit File"
+msgstr "Ouvrir un fichier - Vim"
+
# AB - Il faut respecter l'esprit plus que la lettre.
# AB - J'hsite ajouter " sa cration" aprs le nom du tampon. Ce message
# devrait n'tre affich qu'aprs une tentative d'ouverture de fichier,
@@ -1123,19 +1121,19 @@ msgid "1 substitution"
msgstr "1 substitution"
#, c-format
-msgid "%<PRId64> matches"
-msgstr "%<PRId64> correspondances"
+msgid "%ld matches"
+msgstr "%ld correspondances"
#, c-format
-msgid "%<PRId64> substitutions"
-msgstr "%<PRId64> substitutions"
+msgid "%ld substitutions"
+msgstr "%ld substitutions"
msgid " on 1 line"
msgstr " sur 1 ligne"
#, c-format
-msgid " on %<PRId64> lines"
-msgstr " sur %<PRId64> lignes"
+msgid " on %ld lines"
+msgstr " sur %ld lignes"
# AB - Il faut respecter l'esprit plus que la lettre.
# AB - Ce message devrait contenir une rfrence :vglobal.
@@ -1189,18 +1187,16 @@ msgid "Sorry, help file \"%s\" not found"
msgstr "Dsol, le fichier d'aide \"%s\" est introuvable"
#, c-format
-msgid "E150: Not a directory: %s"
-msgstr "E150: %s n'est pas un rpertoire"
+msgid "E151: No match: %s"
+msgstr "E151: Aucune correspondance : %s"
-# AB - La version anglaise est plus prcise, mais trop technique.
#, c-format
msgid "E152: Cannot open %s for writing"
-msgstr "E152: Impossible d'crire %s"
+msgstr "E152: Impossible d'ouvrir %s en criture"
-# AB - La version anglaise est plus prcise, mais trop technique.
#, c-format
msgid "E153: Unable to open %s for reading"
-msgstr "E153: Impossible de lire %s"
+msgstr "E153: Impossible d'ouvrir %s en lecture"
#, c-format
msgid "E670: Mix of help file encodings within a language: %s"
@@ -1215,6 +1211,10 @@ msgstr "E670: Encodages diffrents dans les fichiers d'aide en langue %s"
msgid "E154: Duplicate tag \"%s\" in file %s/%s"
msgstr "E154: Marqueur \"%s\" dupliqu dans le fichier %s/%s"
+#, c-format
+msgid "E150: Not a directory: %s"
+msgstr "E150: %s n'est pas un rpertoire"
+
# AB - Il faut respecter l'esprit plus que la lettre.
#, c-format
msgid "E160: Unknown sign command: %s"
@@ -1247,11 +1247,21 @@ msgstr "E159: Il manque l'ID du symbole"
msgid "E158: Invalid buffer name: %s"
msgstr "E158: Le tampon %s est introuvable"
+msgid "E934: Cannot jump to a buffer that does not have a name"
+msgstr "E934: Impossible de sauter un tampon sans nom"
+
# AB - Vu le code source, la version franaise est meilleure que la
# version anglaise.
#, c-format
-msgid "E157: Invalid sign ID: %<PRId64>"
-msgstr "E157: Le symbole %<PRId64> est introuvable"
+msgid "E157: Invalid sign ID: %ld"
+msgstr "E157: Le symbole %ld est introuvable"
+
+#, c-format
+msgid "E885: Not possible to change sign %s"
+msgstr "E885: Impossible de changer le symbole %s"
+
+msgid " (NOT FOUND)"
+msgstr " (INTROUVABLE)"
msgid " (not supported)"
msgstr " (non support)"
@@ -1259,22 +1269,32 @@ msgstr " (non support)"
msgid "[Deleted]"
msgstr "[Effac]"
+msgid "No old files"
+msgstr "Aucun vieux fichier"
+
# AB - La version franaise de la premire phrase ne me satisfait pas.
# DB - Suggestion.
msgid "Entering Debug mode. Type \"cont\" to continue."
msgstr "Mode dbogage activ. Tapez \"cont\" pour continuer."
#, c-format
-msgid "line %<PRId64>: %s"
-msgstr "ligne %<PRId64> : %s"
+msgid "line %ld: %s"
+msgstr "ligne %ld : %s"
#, c-format
msgid "cmd: %s"
msgstr "cmde : %s"
+msgid "frame is zero"
+msgstr "le cadre de pile est zro"
+
#, c-format
-msgid "Breakpoint in \"%s%s\" line %<PRId64>"
-msgstr "Point d'arrt dans %s%s ligne %<PRId64>"
+msgid "frame at highest level: %d"
+msgstr "cadre de pile au niveau le plus haut : %d"
+
+#, c-format
+msgid "Breakpoint in \"%s%s\" line %ld"
+msgstr "Point d'arrt dans %s%s ligne %ld"
#, c-format
msgid "E161: Breakpoint not found: %s"
@@ -1286,8 +1306,8 @@ msgstr "Aucun point d'arrt n'est dfini"
# AB - Le deuxime %s est remplac par "func" ou "file" sans que l'on puisse
# traduire ces mots.
#, c-format
-msgid "%3d %s %s line %<PRId64>"
-msgstr "%3d %s %s ligne %<PRId64>"
+msgid "%3d %s %s line %ld"
+msgstr "%3d %s %s ligne %ld"
msgid "E750: First use \":profile start {fname}\""
msgstr "E750: Utilisez d'abord \":profile start {nomfichier}\""
@@ -1309,7 +1329,8 @@ msgid "E162: No write since last change for buffer \"%s\""
msgstr "E162: Le tampon %s n'a pas t enregistr"
msgid "Warning: Entered other buffer unexpectedly (check autocommands)"
-msgstr "Alerte : Entre inattendue dans un autre tampon (vrifier autocommandes)"
+msgstr ""
+"Alerte : Entre inattendue dans un autre tampon (vrifier autocommandes)"
msgid "E163: There is only one file to edit"
msgstr "E163: Il n'y a qu'un seul fichier diter"
@@ -1336,6 +1357,9 @@ msgstr "Recherche de \"%s\""
msgid "not found in '%s': \"%s\""
msgstr "introuvable dans '%s' : \"%s\""
+msgid "Source Vim script"
+msgstr "Sourcer un script - Vim"
+
#, c-format
msgid "Cannot source a directory: \"%s\""
msgstr "Impossible de sourcer un rpertoire : \"%s\""
@@ -1345,21 +1369,26 @@ msgid "could not source \"%s\""
msgstr "impossible de sourcer \"%s\""
#, c-format
-msgid "line %<PRId64>: could not source \"%s\""
-msgstr "ligne %<PRId64> : impossible de sourcer \"%s\""
+msgid "line %ld: could not source \"%s\""
+msgstr "ligne %ld : impossible de sourcer \"%s\""
#, c-format
msgid "sourcing \"%s\""
msgstr "sourcement \"%s\""
#, c-format
-msgid "line %<PRId64>: sourcing \"%s\""
-msgstr "ligne %<PRId64> : sourcement de \"%s\""
+msgid "line %ld: sourcing \"%s\""
+msgstr "ligne %ld : sourcement de \"%s\""
#, c-format
msgid "finished sourcing %s"
msgstr "fin du sourcement de %s"
+# AB - Ce texte fait partie d'un message de dbogage.
+#, c-format
+msgid "continuing in %s"
+msgstr "de retour dans %s"
+
msgid "modeline"
msgstr "ligne de mode"
@@ -1394,8 +1423,6 @@ msgstr "Langue courante pour %s : \"%s\""
msgid "E197: Cannot set language to \"%s\""
msgstr "E197: Impossible de choisir la langue \"%s\""
-#. don't redisplay the window
-#. don't wait for return
msgid "Entering Ex mode. Type \"visual\" to go to Normal mode."
msgstr "Mode Ex activ. Tapez \"visual\" pour passer en mode Normal."
@@ -1427,12 +1454,10 @@ msgstr "E493: La plage spcifie est inverse"
msgid "Backwards range given, OK to swap"
msgstr "La plage spcifie est inverse, OK pour l'inverser"
-#. append
-#. typed wrong
msgid "E494: Use w or w>>"
msgstr "E494: Utilisez w ou w>>"
-msgid "E319: The command is not available in this version"
+msgid "E319: Sorry, the command is not available in this version"
msgstr "E319: Dsol, cette commande n'est pas disponible dans cette version"
msgid "E172: Only one file name allowed"
@@ -1449,8 +1474,8 @@ msgid "E173: 1 more file to edit"
msgstr "E173: encore 1 fichier diter"
#, c-format
-msgid "E173: %<PRId64> more files to edit"
-msgstr "E173: encore %<PRId64> fichiers diter"
+msgid "E173: %ld more files to edit"
+msgstr "E173: encore %ld fichiers diter"
msgid "E174: Command already exists: add ! to replace it"
msgstr "E174: La commande existe dj : ajoutez ! pour la redfinir"
@@ -1513,7 +1538,10 @@ msgid "E468: Completion argument only allowed for custom completion"
msgstr "E468: Seul le compltement personnalis accepte un argument"
msgid "E467: Custom completion requires a function argument"
-msgstr "E467: Le compltement personnalis requiert une fonction en argument"
+msgstr "E467: Le compltement personnalis ncessite une fonction en argument"
+
+msgid "unknown"
+msgstr "inconnu"
#, c-format
msgid "E185: Cannot find color scheme '%s'"
@@ -1528,6 +1556,9 @@ msgstr "E784: Impossible de fermer le dernier onglet"
msgid "Already only one tab page"
msgstr "Il ne reste dj plus qu'un seul onglet"
+msgid "Edit File in new window"
+msgstr "Ouvrir un fichier dans une nouvelle fentre - Vim"
+
#, c-format
msgid "Tab page %d"
msgstr "Onglet %d"
@@ -1535,6 +1566,9 @@ msgstr "Onglet %d"
msgid "No swap file"
msgstr "Pas de fichier d'change"
+msgid "Append File"
+msgstr "Ajouter fichier"
+
msgid "E747: Cannot change directory, buffer is modified (add ! to override)"
msgstr ""
"E747: Tampon modifi : impossible de changer de rpertoire (ajoutez ! pour "
@@ -1547,7 +1581,11 @@ msgid "E187: Unknown"
msgstr "E187: Inconnu"
msgid "E465: :winsize requires two number arguments"
-msgstr "E465: :winsize requiert deux arguments numriques"
+msgstr "E465: :winsize ncessite deux arguments numriques"
+
+#, c-format
+msgid "Window position: X %d, Y %d"
+msgstr "Position de la fentre : X %d, Y %d"
# DB : Suggestion, sans doute perfectible.
msgid "E188: Obtaining window position not implemented for this platform"
@@ -1555,7 +1593,22 @@ msgstr ""
"E188: Rcuprer la position de la fentre non implment dans cette version"
msgid "E466: :winpos requires two number arguments"
-msgstr "E466: :winpos requiert deux arguments numriques"
+msgstr "E466: :winpos ncessite deux arguments numriques"
+
+msgid "E930: Cannot use :redir inside execute()"
+msgstr "E930: Impossible d'utiliser :redir dans execute()"
+
+msgid "Save Redirection"
+msgstr "Enregistrer la redirection"
+
+msgid "Save View"
+msgstr "Enregistrer la vue - Vim"
+
+msgid "Save Session"
+msgstr "Enregistrer la session - Vim"
+
+msgid "Save Setup"
+msgstr "Enregistrer les rglages - Vim"
#, c-format
msgid "E739: Cannot create directory: %s"
@@ -1576,6 +1629,9 @@ msgstr "E191: L'argument doit tre une lettre ou une (contre-)apostrophe"
msgid "E192: Recursive use of :normal too deep"
msgstr "E192: Appel rcursif de :normal trop important"
+msgid "E809: #< is not available without the +eval feature"
+msgstr "E809: #< n'est pas disponible sans la fonctionnalit +eval"
+
msgid "E194: No alternate file name to substitute for '#'"
msgstr "E194: Aucun nom de fichier alternatif substituer '#'"
@@ -1594,7 +1650,7 @@ msgstr "E498: Aucun nom de fichier :source substituer \"<sfile>\""
msgid "E842: no line number to use for \"<slnum>\""
msgstr "E842: aucun numro de ligne utiliser pour \"<slnum>\""
-#, c-format
+#, no-c-format
msgid "E499: Empty file name for '%' or '#', only works with \":p:h\""
msgstr "E499: Nom de fichier vide pour '%' ou '#', ne marche qu'avec \":p:h\""
@@ -1604,6 +1660,9 @@ msgstr "E500: valu en une chane vide"
msgid "E195: Cannot open viminfo file for reading"
msgstr "E195: Impossible d'ouvrir le viminfo en lecture"
+msgid "E196: No digraphs in this version"
+msgstr "E196: Pas de digraphes dans cette version"
+
msgid "E608: Cannot :throw exceptions with 'Vim' prefix"
msgstr "E608: Impossible d'mettre des exceptions avec 'Vim' comme prfixe"
@@ -1621,8 +1680,8 @@ msgid "Exception discarded: %s"
msgstr "Exception limine : %s"
#, c-format
-msgid "%s, line %<PRId64>"
-msgstr "%s, ligne %<PRId64>"
+msgid "%s, line %ld"
+msgstr "%s, ligne %ld"
#. always scroll up, don't overwrite
#, c-format
@@ -1762,33 +1821,6 @@ msgstr "E198: cmd_pchar au-del de la longueur de la commande"
msgid "E199: Active window or buffer deleted"
msgstr "E199: Fentre ou tampon actif effac"
-msgid "E854: path too long for completion"
-msgstr "E854: chemin trop long pour compltement"
-
-#, c-format
-msgid ""
-"E343: Invalid path: '**[number]' must be at the end of the path or be "
-"followed by '%s'."
-msgstr ""
-"E343: Chemin invalide : '**[nombre]' doit tre la fin du chemin ou tre "
-"suivi de '%s'."
-
-#, c-format
-msgid "E344: Can't find directory \"%s\" in cdpath"
-msgstr "E344: Rpertoire \"%s\" introuvable dans 'cdpath'"
-
-#, c-format
-msgid "E345: Can't find file \"%s\" in path"
-msgstr "E345: Fichier \"%s\" introuvable dans 'path'"
-
-#, c-format
-msgid "E346: No more directory \"%s\" found in cdpath"
-msgstr "E346: Plus de rpertoire \"%s\" dans 'cdpath'"
-
-#, c-format
-msgid "E347: No more file \"%s\" found in path"
-msgstr "E347: Plus de fichier \"%s\" dans 'path'"
-
msgid "E812: Autocommands changed buffer or buffer name"
msgstr "E812: Des autocommandes ont chang le tampon ou le nom du tampon"
@@ -1801,6 +1833,9 @@ msgstr "est un rpertoire"
msgid "is not a file"
msgstr "n'est pas un fichier"
+msgid "is a device (disabled with 'opendevice' option)"
+msgstr "est un priphrique (dsactiv par l'option 'opendevice')"
+
msgid "[New File]"
msgstr "[Nouveau fichier]"
@@ -1821,26 +1856,25 @@ msgstr ""
"E201: Autocommandes *ReadPre ne doivent pas modifier le contenu du tampon "
"courant"
-msgid "Nvim: Reading from stdin...\n"
+msgid "Vim: Reading from stdin...\n"
msgstr "Vim : Lecture de stdin...\n"
+msgid "Reading from stdin..."
+msgstr "Lecture de stdin..."
+
#. Re-opening the original file failed!
msgid "E202: Conversion made file unreadable!"
msgstr "E202: La conversion a rendu le fichier illisible !"
-#. fifo or socket
msgid "[fifo/socket]"
msgstr "[fifo/socket]"
-#. fifo
msgid "[fifo]"
msgstr "[fifo]"
-#. or socket
msgid "[socket]"
msgstr "[socket]"
-#. or character special
msgid "[character special]"
msgstr "[caractre spcial]"
@@ -1857,12 +1891,12 @@ msgid "[converted]"
msgstr "[converti]"
#, c-format
-msgid "[CONVERSION ERROR in line %<PRId64>]"
-msgstr "[ERREUR DE CONVERSION la ligne %<PRId64>]"
+msgid "[CONVERSION ERROR in line %ld]"
+msgstr "[ERREUR DE CONVERSION la ligne %ld]"
#, c-format
-msgid "[ILLEGAL BYTE in line %<PRId64>]"
-msgstr "[OCTET INVALIDE la ligne %<PRId64>]"
+msgid "[ILLEGAL BYTE in line %ld]"
+msgstr "[OCTET INVALIDE la ligne %ld]"
msgid "[READ ERRORS]"
msgstr "[ERREURS DE LECTURE]"
@@ -1887,9 +1921,18 @@ msgid "E204: Autocommand changed number of lines in unexpected way"
msgstr ""
"E204: L'autocommande a modifi le nombre de lignes de manire inattendue"
+msgid "NetBeans disallows writes of unmodified buffers"
+msgstr "NetBeans interdit l'criture des tampons non modifis"
+
+msgid "Partial writes disallowed for NetBeans buffers"
+msgstr "Netbeans interdit l'criture partielle de ses tampons"
+
msgid "is not a file or writable device"
msgstr "n'est pas un fichier ou un priphrique inscriptible"
+msgid "writing to device disabled with 'opendevice' option"
+msgstr "criture vers un priphrique dsactiv par l'option 'opendevice'"
+
msgid "is read-only (add ! to override)"
msgstr "est en lecture seule (ajoutez ! pour passer outre)"
@@ -1912,7 +1955,10 @@ msgid "E510: Can't make backup file (add ! to override)"
msgstr ""
"E510: Impossible de gnrer la copie de secours (ajoutez ! pour passer outre)"
-#. Can't write without a tempfile!
+msgid "E460: The resource fork would be lost (add ! to override)"
+msgstr ""
+"E460: Les ressources partages seraient perdues (ajoutez ! pour passer outre)"
+
msgid "E214: Can't find temp file for writing"
msgstr "E214: Impossible de gnrer un fichier temporaire pour y crire"
@@ -1937,11 +1983,11 @@ msgstr ""
#, c-format
msgid ""
-"E513: write error, conversion failed in line %<PRId64> (make 'fenc' empty to "
+"E513: write error, conversion failed in line %ld (make 'fenc' empty to "
"override)"
msgstr ""
-"E513: Erreur d'criture, chec de conversion la ligne %<PRId64> (videz "
-"'fenc' pour passer outre)"
+"E513: Erreur d'criture, chec de conversion la ligne %ld (videz 'fenc' "
+"pour passer outre)"
msgid "E514: write error (file system full?)"
msgstr "E514: erreur d'criture (systme de fichiers plein ?)"
@@ -1950,8 +1996,8 @@ msgid " CONVERSION ERROR"
msgstr " ERREUR DE CONVERSION"
#, c-format
-msgid " in line %<PRId64>;"
-msgstr " la ligne %<PRId64>"
+msgid " in line %ld;"
+msgstr " la ligne %ld"
msgid "[Device]"
msgstr "[Priph.]"
@@ -2015,15 +2061,15 @@ msgid "1 line, "
msgstr "1 ligne, "
#, c-format
-msgid "%<PRId64> lines, "
-msgstr "%<PRId64> lignes, "
+msgid "%ld lines, "
+msgstr "%ld lignes, "
msgid "1 character"
msgstr "1 caractre"
#, c-format
-msgid "%<PRId64> characters"
-msgstr "%<PRId64> caractres"
+msgid "%lld characters"
+msgstr "%lld caractres"
msgid "[noeol]"
msgstr "[noeol]"
@@ -2120,6 +2166,12 @@ msgstr "Autocommandes marques pour auto-suppression : %s <tampon=%d>"
msgid "E367: No such group: \"%s\""
msgstr "E367: Aucun groupe \"%s\""
+msgid "E936: Cannot delete the current group"
+msgstr "E936: Impossible de supprimer le groupe courant"
+
+msgid "W19: Deleting augroup that is still in use"
+msgstr "W19: Effacement d'augroup toujours en usage"
+
#, c-format
msgid "E215: Illegal character after *: %s"
msgstr "E215: Caractre non valide aprs * : %s"
@@ -2182,10 +2234,11 @@ msgid "E351: Cannot delete fold with current 'foldmethod'"
msgstr "E351: Impossible de supprimer un repli avec la 'foldmethod'e actuelle"
#, c-format
-msgid "+--%3ld lines folded "
-msgstr "+--%3ld lignes replies "
+msgid "+--%3ld line folded "
+msgid_plural "+--%3ld lines folded "
+msgstr[0] "+--%3ld ligne replie "
+msgstr[1] "+--%3ld lignes replies "
-#. buffer has already been read
msgid "E222: Add to read buffer"
msgstr "E222: Ajout au tampon de lecture"
@@ -2217,333 +2270,308 @@ msgstr "Aucun mappage trouv"
msgid "E228: makemap: Illegal mode"
msgstr "E228: makemap : mode invalide"
-# msgstr "--Pas de lignes dans le tampon--"
-# DB - todo : ou encore : msgstr "--Aucune ligne dans le tampon--"
-#. key value of 'cedit' option
-#. type of cmdline window or 0
-#. result of cmdline window or 0
-msgid "--No lines in buffer--"
-msgstr "--Le tampon est vide--"
-
-#.
-#. * The error messages that can be shared are included here.
-#. * Excluded are errors that are only used once and debugging messages.
-#.
-msgid "E470: Command aborted"
-msgstr "E470: Commande annule"
-
-msgid "E471: Argument required"
-msgstr "E471: Argument requis"
-
-msgid "E10: \\ should be followed by /, ? or &"
-msgstr "E10: \\ devrait tre suivi de /, ? ou &"
-
-msgid "E11: Invalid in command-line window; <CR> executes, CTRL-C quits"
+msgid "E851: Failed to create a new process for the GUI"
msgstr ""
-"E11: Invalide dans la fentre ligne-de-commande ; <CR> excute, CTRL-C quitte"
+"E851: chec lors de la cration d'un nouveau processus pour l'interface "
+"graphique"
-msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search"
+msgid "E852: The child process failed to start the GUI"
msgstr ""
-"E12: commande non autorise depuis un exrc/vimrc dans rpertoire courant ou "
-"une recherche de marqueur"
-
-msgid "E171: Missing :endif"
-msgstr "E171: :endif manquant"
-
-msgid "E600: Missing :endtry"
-msgstr "E600: :endtry manquant"
-
-msgid "E170: Missing :endwhile"
-msgstr "E170: :endwhile manquant"
+"E852: Le processus fils n'a pas russi dmarrer l'interface graphique"
-msgid "E170: Missing :endfor"
-msgstr "E170: :endfor manquant"
-
-msgid "E588: :endwhile without :while"
-msgstr "E588: :endwhile sans :while"
-
-msgid "E588: :endfor without :for"
-msgstr "E588: :endfor sans :for"
-
-msgid "E13: File exists (add ! to override)"
-msgstr "E13: Le fichier existe dj (ajoutez ! pour passer outre)"
-
-msgid "E472: Command failed"
-msgstr "E472: La commande a chou"
-
-msgid "E473: Internal error"
-msgstr "E473: Erreur interne"
+msgid "E229: Cannot start the GUI"
+msgstr "E229: Impossible de dmarrer l'interface graphique"
-msgid "Interrupted"
-msgstr "Interrompu"
+#, c-format
+msgid "E230: Cannot read from \"%s\""
+msgstr "E230: Impossible de lire \"%s\""
-msgid "E14: Invalid address"
-msgstr "E14: Adresse invalide"
+msgid "E665: Cannot start GUI, no valid font found"
+msgstr ""
+"E665: Impossible de dmarrer l'IHM graphique, aucune police valide trouve"
-msgid "E474: Invalid argument"
-msgstr "E474: Argument invalide"
+msgid "E231: 'guifontwide' invalid"
+msgstr "E231: 'guifontwide' est invalide"
-#, c-format
-msgid "E475: Invalid argument: %s"
-msgstr "E475: Argument invalide : %s"
+msgid "E599: Value of 'imactivatekey' is invalid"
+msgstr "E599: Valeur de 'imactivatekey' invalide"
#, c-format
-msgid "E15: Invalid expression: %s"
-msgstr "E15: Expression invalide : %s"
+msgid "E254: Cannot allocate color %s"
+msgstr "E254: Impossible d'allouer la couleur %s"
-msgid "E16: Invalid range"
-msgstr "E16: Plage invalide"
+msgid "No match at cursor, finding next"
+msgstr "Aucune correspondance sous le curseur, recherche de la suivante"
-msgid "E476: Invalid command"
-msgstr "E476: Commande invalide"
+msgid "<cannot open> "
+msgstr "<impossible d'ouvrir> "
#, c-format
-msgid "E17: \"%s\" is a directory"
-msgstr "E17: \"%s\" est un rpertoire"
+msgid "E616: vim_SelFile: can't get font %s"
+msgstr "E616: vim_SelFile : impossible d'obtenir la police %s"
-#, fuzzy
-#~ msgid "E900: Invalid job id"
-#~ msgstr "E49: Valeur de dfilement invalide"
+msgid "E614: vim_SelFile: can't return to current directory"
+msgstr "E614: vim_SelFile : impossible de revenir dans le rpertoire courant"
-#~ msgid "E901: Job table is full"
-#~ msgstr ""
+msgid "Pathname:"
+msgstr "Chemin :"
-#, c-format
-msgid "E364: Library call failed for \"%s()\""
-msgstr "E364: L'appel la bibliothque a chou pour \"%s()\""
+msgid "E615: vim_SelFile: can't get current directory"
+msgstr "E615: vim_SelFile : impossible d'obtenir le rpertoire courant"
-msgid "E19: Mark has invalid line number"
-msgstr "E19: La marque a un numro de ligne invalide"
+msgid "OK"
+msgstr "Ok"
-msgid "E20: Mark not set"
-msgstr "E20: Marque non positionne"
+msgid "Cancel"
+msgstr "Annuler"
-msgid "E21: Cannot make changes, 'modifiable' is off"
-msgstr "E21: Impossible de modifier, 'modifiable' est dsactiv"
+msgid "Scrollbar Widget: Could not get geometry of thumb pixmap."
+msgstr "Widget scrollbar : Impossible d'obtenir la gomtrie du pixmap 'thumb'"
-msgid "E22: Scripts nested too deep"
-msgstr "E22: Trop de rcursion dans les scripts"
+msgid "Vim dialog"
+msgstr "Vim"
-msgid "E23: No alternate file"
-msgstr "E23: Pas de fichier alternatif"
+msgid "E232: Cannot create BalloonEval with both message and callback"
+msgstr "E232: Impossible de crer un BalloonEval avec message ET callback"
-msgid "E24: No such abbreviation"
-msgstr "E24: Cette abrviation n'existe pas"
+msgid "_Cancel"
+msgstr "_Annuler"
-msgid "E477: No ! allowed"
-msgstr "E477: Le ! n'est pas autoris"
+msgid "_Save"
+msgstr "_Enregistrer"
-msgid "E25: Nvim does not have a built-in GUI"
-msgstr "E25: L'interface graphique n'a pas t compile dans cette version"
+msgid "_Open"
+msgstr "_Ouvrir"
-#, c-format
-msgid "E28: No such highlight group name: %s"
-msgstr "E28: Aucun nom de groupe de surbrillance %s"
+msgid "_OK"
+msgstr "_Ok"
-msgid "E29: No inserted text yet"
-msgstr "E29: Pas encore de texte insr"
+msgid ""
+"&Yes\n"
+"&No\n"
+"&Cancel"
+msgstr ""
+"&Oui\n"
+"&Non\n"
+"&Annuler"
-msgid "E30: No previous command line"
-msgstr "E30: Aucune ligne de commande prcdente"
+msgid "Yes"
+msgstr "Oui"
-msgid "E31: No such mapping"
-msgstr "E31: Mappage inexistant"
+msgid "No"
+msgstr "Non"
-msgid "E479: No match"
-msgstr "E479: Aucune correspondance"
+# todo '_' is for hotkey, i guess?
+msgid "Input _Methods"
+msgstr "_Mthodes de saisie"
-#, c-format
-msgid "E480: No match: %s"
-msgstr "E480: Aucune correspondance : %s"
+msgid "VIM - Search and Replace..."
+msgstr "Remplacer - Vim"
-msgid "E32: No file name"
-msgstr "E32: Aucun nom de fichier"
+msgid "VIM - Search..."
+msgstr "Rechercher - Vim"
-msgid "E33: No previous substitute regular expression"
-msgstr "E33: Aucune expression rgulire de substitution prcdente"
+msgid "Find what:"
+msgstr "Rechercher :"
-msgid "E34: No previous command"
-msgstr "E34: Aucune commande prcdente"
+msgid "Replace with:"
+msgstr "Remplacer par :"
-msgid "E35: No previous regular expression"
-msgstr "E35: Aucune expression rgulire prcdente"
+#. whole word only button
+msgid "Match whole word only"
+msgstr "Mots entiers seulement"
-msgid "E481: No range allowed"
-msgstr "E481: Les plages ne sont pas autorises"
+#. match case button
+msgid "Match case"
+msgstr "Respecter la casse"
-msgid "E36: Not enough room"
-msgstr "E36: Pas assez de place"
+msgid "Direction"
+msgstr "Direction"
-#, c-format
-msgid "E482: Can't create file %s"
-msgstr "E482: Impossible de crer le fichier %s"
+#. 'Up' and 'Down' buttons
+msgid "Up"
+msgstr "Haut"
-msgid "E483: Can't get temp file name"
-msgstr "E483: Impossible d'obtenir un nom de fichier temporaire"
+msgid "Down"
+msgstr "Bas"
-#, c-format
-msgid "E484: Can't open file %s"
-msgstr "E484: Impossible d'ouvrir le fichier \"%s\""
+msgid "Find Next"
+msgstr "Suivant"
-#, c-format
-msgid "E485: Can't read file %s"
-msgstr "E485: Impossible de lire le fichier %s"
+msgid "Replace"
+msgstr "Remplacer"
-msgid "E37: No write since last change (add ! to override)"
-msgstr "E37: Modifications non enregistres (ajoutez ! pour passer outre)"
+msgid "Replace All"
+msgstr "Remplacer tout"
-# AB - Il faut respecter l'esprit plus que la lettre. Dans le cas prsent,
-# nettement plus.
-#, fuzzy
-#~ msgid "E37: No write since last change"
-#~ msgstr "[Attention : tout n'est pas enregistr]\n"
+msgid "_Close"
+msgstr "_Fermer"
-msgid "E38: Null argument"
-msgstr "E38: Argument null"
+msgid "Vim: Received \"die\" request from session manager\n"
+msgstr "Vim : Une requte \"die\" a t reue par le gestionnaire de session\n"
-msgid "E39: Number expected"
-msgstr "E39: Nombre attendu"
+msgid "Close tab"
+msgstr "Fermer l'onglet"
-#, c-format
-msgid "E40: Can't open errorfile %s"
-msgstr "E40: Impossible d'ouvrir le fichier d'erreurs %s"
+msgid "New tab"
+msgstr "Nouvel onglet"
-msgid "E41: Out of memory!"
-msgstr "E41: Mmoire puise"
+# DB - todo : un peu long. Cet entre de menu permet d'ouvrir un fichier
+# dans un nouvel onglet via le slecteur de fichiers graphique.
+msgid "Open Tab..."
+msgstr "Ouvrir dans un onglet..."
-msgid "Pattern not found"
-msgstr "Motif introuvable"
+msgid "Vim: Main window unexpectedly destroyed\n"
+msgstr "Vim : Fentre principale dtruite inopinment\n"
-#, c-format
-msgid "E486: Pattern not found: %s"
-msgstr "E486: Motif introuvable : %s"
+msgid "&Filter"
+msgstr "&Filtrer"
-msgid "E487: Argument must be positive"
-msgstr "E487: L'argument doit tre positif"
+msgid "&Cancel"
+msgstr "&Annuler"
-msgid "E459: Cannot go back to previous directory"
-msgstr "E459: Impossible de retourner au rpertoire prcdent"
+msgid "Directories"
+msgstr "Rpertoires"
-msgid "E42: No Errors"
-msgstr "E42: Aucune erreur"
+msgid "Filter"
+msgstr "Filtre"
-# DB - TODO : trouver une traduction valable et atteste pour "location".
-msgid "E776: No location list"
-msgstr "E776: Aucune liste d'emplacements"
+msgid "&Help"
+msgstr "&Aide"
-msgid "E43: Damaged match string"
-msgstr "E43: La chane de recherche est endommage"
+msgid "Files"
+msgstr "Fichiers"
-msgid "E44: Corrupted regexp program"
-msgstr "E44: L'automate de regexp est corrompu"
+msgid "&OK"
+msgstr "&Ok"
-msgid "E45: 'readonly' option is set (add ! to override)"
-msgstr "E45: L'option 'readonly' est active (ajoutez ! pour passer outre)"
+msgid "Selection"
+msgstr "Slection"
-#, c-format
-msgid "E46: Cannot change read-only variable \"%s\""
-msgstr "E46: La variable \"%s\" est en lecture seule"
+msgid "Find &Next"
+msgstr "Suiva&nt"
-#, c-format
-msgid "E794: Cannot set variable in the sandbox: \"%s\""
-msgstr ""
-"E794: Impossible de modifier une variable depuis le bac sable : \"%s\""
+msgid "&Replace"
+msgstr "&Remplacer"
-msgid "E47: Error while reading errorfile"
-msgstr "E47: Erreur lors de la lecture du fichier d'erreurs"
+msgid "Replace &All"
+msgstr "Rempl&acer tout"
-msgid "E48: Not allowed in sandbox"
-msgstr "E48: Opration interdite dans le bac sable"
+msgid "&Undo"
+msgstr "Ann&uler"
-msgid "E523: Not allowed here"
-msgstr "E523: Interdit cet endroit"
+msgid "Open tab..."
+msgstr "Ouvrir dans un onglet..."
-msgid "E359: Screen mode setting not supported"
-msgstr "E359: Choix du mode d'cran non support"
+msgid "Find string (use '\\\\' to find a '\\')"
+msgstr "Chercher une chane (utilisez '\\\\' pour chercher un '\\')"
-msgid "E49: Invalid scroll size"
-msgstr "E49: Valeur de dfilement invalide"
+msgid "Find & Replace (use '\\\\' to find a '\\')"
+msgstr "Chercher et remplacer (utilisez '\\\\' pour trouver un '\\')"
-msgid "E91: 'shell' option is empty"
-msgstr "E91: L'option 'shell' est vide"
+# DB - Traduction non indispensable puisque le code indique qu'il s'agit d'un
+# paramtrage bidon afin de slectionner un rpertoire plutt qu'un
+# fichier.
+#. We fake this: Use a filter that doesn't select anything and a default
+#. * file name that won't be used.
+msgid "Not Used"
+msgstr "Non utilis"
-msgid "E255: Couldn't read in sign data!"
-msgstr "E255: Impossible de lire les donnes du symbole !"
+# DB - Traduction non indispensable puisque le code indique qu'il s'agit d'un
+# paramtrage bidon afin de slectionner un rpertoire plutt qu'un
+# fichier.
+msgid "Directory\t*.nothing\n"
+msgstr "Rpertoire\t*.rien\n"
-msgid "E72: Close error on swap file"
-msgstr "E72: Erreur lors de la fermeture du fichier d'change"
+#, c-format
+msgid "E671: Cannot find window title \"%s\""
+msgstr "E671: Titre de fentre \"%s\" introuvable"
-msgid "E73: tag stack empty"
-msgstr "E73: La pile des marqueurs est vide"
+#, c-format
+msgid "E243: Argument not supported: \"-%s\"; Use the OLE version."
+msgstr "E243: Argument non support : \"-%s\" ; Utilisez la version OLE."
-msgid "E74: Command too complex"
-msgstr "E74: Commande trop complexe"
+msgid "E672: Unable to open window inside MDI application"
+msgstr "E672: Impossible d'ouvrir une fentre dans une application MDI"
-msgid "E75: Name too long"
-msgstr "E75: Nom trop long"
+# DB - todo : perfectible.
+msgid "Vim E458: Cannot allocate colormap entry, some colors may be incorrect"
+msgstr ""
+"Vim E458: Erreur d'allocation de couleurs, couleurs possiblement incorrectes"
-msgid "E76: Too many ["
-msgstr "E76: Trop de ["
+# DB - todo : La VF est-elle comprhensible ?
+#, c-format
+msgid "E250: Fonts for the following charsets are missing in fontset %s:"
+msgstr ""
+"E250: Des polices manquent dans %s pour les jeux de caractres suivants :"
-msgid "E77: Too many file names"
-msgstr "E77: Trop de noms de fichiers"
+#, c-format
+msgid "E252: Fontset name: %s"
+msgstr "E252: Nom du jeu de polices : %s"
-msgid "E488: Trailing characters"
-msgstr "E488: Caractres surnumraires"
+#, c-format
+msgid "Font '%s' is not fixed-width"
+msgstr "La police '%s' n'a pas une largeur fixe"
-msgid "E78: Unknown mark"
-msgstr "E78: Marque inconnue"
+#, c-format
+msgid "E253: Fontset name: %s"
+msgstr "E253: Nom du jeu de polices : %s"
-msgid "E79: Cannot expand wildcards"
-msgstr "E79: Impossible de dvelopper les mtacaractres"
+#, c-format
+msgid "Font0: %s"
+msgstr "Font0: %s"
-msgid "E591: 'winheight' cannot be smaller than 'winminheight'"
-msgstr "E591: 'winheight' ne peut pas tre plus petit que 'winminheight'"
+#, c-format
+msgid "Font1: %s"
+msgstr "Font1: %s"
-msgid "E592: 'winwidth' cannot be smaller than 'winminwidth'"
-msgstr "E592: 'winwidth' ne peut pas tre plus petit que 'winminwidth'"
+#, c-format
+msgid "Font%ld width is not twice that of font0"
+msgstr "La largeur de Font%ld n'est pas le double de celle de Font0"
-msgid "E80: Error while writing"
-msgstr "E80: Erreur lors de l'criture"
+#, c-format
+msgid "Font0 width: %ld"
+msgstr "Largeur de Font0 : %ld"
-msgid "Zero count"
-msgstr "Le quantificateur est nul"
+#, c-format
+msgid "Font1 width: %ld"
+msgstr "Largeur de Font1 : %ld"
-msgid "E81: Using <SID> not in a script context"
-msgstr "E81: <SID> utilis en dehors d'un script"
+# DB - todo : Pas certain de mon coup, ici...
+msgid "Invalid font specification"
+msgstr "La spcification de la police est invalide"
-#, c-format
-msgid "E685: Internal error: %s"
-msgstr "E685: Erreur interne : %s"
+msgid "&Dismiss"
+msgstr "Aban&donner"
-msgid "E363: pattern uses more memory than 'maxmempattern'"
-msgstr "E363: le motif utilise plus de mmoire que 'maxmempattern'"
+# DB - todo : Pas certain de mon coup, ici...
+msgid "no specific match"
+msgstr "aucune correspondance particulire"
-msgid "E749: empty buffer"
-msgstr "E749: tampon vide"
+msgid "Vim - Font Selector"
+msgstr "Choisir une police - Vim"
-#, c-format
-msgid "E86: Buffer %<PRId64> does not exist"
-msgstr "E86: Le tampon %<PRId64> n'existe pas"
+msgid "Name:"
+msgstr "Nom :"
-msgid "E682: Invalid search pattern or delimiter"
-msgstr "E682: Dlimiteur ou motif de recherche invalide"
+#. create toggle button
+msgid "Show size in Points"
+msgstr "Afficher la taille en Points"
-msgid "E139: File is loaded in another buffer"
-msgstr "E139: Le fichier est charg dans un autre tampon"
+msgid "Encoding:"
+msgstr "Encodage :"
-#, c-format
-msgid "E764: Option '%s' is not set"
-msgstr "E764: L'option '%s' n'est pas active"
+msgid "Font:"
+msgstr "Police :"
-msgid "E850: Invalid register name"
-msgstr "E850: Nom de registre invalide"
+msgid "Style:"
+msgstr "Style :"
-msgid "search hit TOP, continuing at BOTTOM"
-msgstr "La recherche a atteint le HAUT, et continue en BAS"
+msgid "Size:"
+msgstr "Taille :"
-msgid "search hit BOTTOM, continuing at TOP"
-msgstr "La recherche a atteint le BAS, et continue en HAUT"
+msgid "E256: Hangul automata ERROR"
+msgstr "E256: ERREUR dans l'automate Hangul"
msgid "E550: Missing colon"
msgstr "E550: ':' manquant"
@@ -2677,6 +2705,9 @@ msgstr "E257: cstag : marqueur introuvable"
msgid "E563: stat(%s) error: %d"
msgstr "E563: Erreur stat(%s) : %d"
+msgid "E563: stat error"
+msgstr "E563: Erreur stat"
+
#, c-format
msgid "E564: %s is not a directory or a valid cscope database"
msgstr "E564: %s n'est pas un rpertoire ou une base de donnes cscope valide"
@@ -2686,8 +2717,8 @@ msgid "Added cscope database %s"
msgstr "Base de donnes cscope %s ajoute"
#, c-format
-msgid "E262: error reading cscope connection %<PRId64>"
-msgstr "E262: erreur lors de la lecture de la connexion cscope %<PRId64>"
+msgid "E262: error reading cscope connection %ld"
+msgstr "E262: erreur lors de la lecture de la connexion cscope %ld"
msgid "E561: unknown cscope search type"
msgstr "E561: type de recherche cscope inconnu"
@@ -2698,9 +2729,8 @@ msgstr "E566: Impossible de crer les tuyaux (pipes) cscope"
msgid "E622: Could not fork for cscope"
msgstr "E622: Impossible de forker pour cscope"
-#, fuzzy
-#~ msgid "cs_create_connection setpgid failed"
-#~ msgstr "exec de cs_create_connection a chou"
+msgid "cs_create_connection setpgid failed"
+msgstr "cs_create_connection setpgid a chou"
msgid "cs_create_connection exec failed"
msgstr "exec de cs_create_connection a chou"
@@ -2735,6 +2765,7 @@ msgstr "%-5s: %s%*s (Utilisation : %s)"
msgid ""
"\n"
+" a: Find assignments to this symbol\n"
" c: Find functions calling this function\n"
" d: Find functions called by this function\n"
" e: Find this egrep pattern\n"
@@ -2743,9 +2774,9 @@ msgid ""
" i: Find files #including this file\n"
" s: Find this C symbol\n"
" t: Find this text string\n"
-" a: Find assignments to this symbol\n"
msgstr ""
"\n"
+" a: Trouver les affectations ce symbole\n"
" c: Trouver les fonctions appelant cette fonction\n"
" d: Trouver les fonctions appeles par cette fonction\n"
" e: Trouver ce motif egrep\n"
@@ -2754,7 +2785,14 @@ msgstr ""
" i: Trouver les fichiers qui #incluent ce fichier\n"
" s: Trouver ce symbole C\n"
" t: Trouver cette chane\n"
-" a: Trouver les assignements ce symbole\n"
+
+#, c-format
+msgid "E625: cannot open cscope database: %s"
+msgstr "E625: impossible d'ouvrir la base de donnes cscope %s"
+
+msgid "E626: cannot get cscope database information"
+msgstr ""
+"E626: impossible d'obtenir des informations sur la base de donnes cscope"
msgid "E568: duplicate cscope database not added"
msgstr "E568: base de donnes cscope redondante non ajoute"
@@ -2799,6 +2837,229 @@ msgstr "aucune connexion cscope\n"
msgid " # pid database name prepend path\n"
msgstr " # pid nom de la base de donnes chemin\n"
+msgid "Lua library cannot be loaded."
+msgstr "La bibliothque Lua n'a pas pu tre charge."
+
+msgid "cannot save undo information"
+msgstr "impossible d'enregistrer les informations d'annulation"
+
+msgid ""
+"E815: Sorry, this command is disabled, the MzScheme libraries could not be "
+"loaded."
+msgstr ""
+"E815: Dsol, cette commande est dsactive : les bibliothques MzScheme "
+"n'ont pas pu tre charges."
+
+msgid ""
+"E895: Sorry, this command is disabled, the MzScheme's racket/base module "
+"could not be loaded."
+msgstr ""
+"E895: Dsol, cette commande est dsactive : le module MzScheme racket/base "
+"ne peut pas tre charg."
+
+msgid "invalid expression"
+msgstr "expression invalide"
+
+msgid "expressions disabled at compile time"
+msgstr "expressions dsactives lors de la compilation"
+
+msgid "hidden option"
+msgstr "option cache"
+
+msgid "unknown option"
+msgstr "option inconnue"
+
+msgid "window index is out of range"
+msgstr "numro de fentre hors limites"
+
+msgid "couldn't open buffer"
+msgstr "impossible d'ouvrir le tampon"
+
+msgid "cannot delete line"
+msgstr "impossible d'effacer la ligne"
+
+msgid "cannot replace line"
+msgstr "impossible de remplacer la ligne"
+
+msgid "cannot insert line"
+msgstr "impossible d'insrer la ligne"
+
+msgid "string cannot contain newlines"
+msgstr "une chane ne peut pas contenir de saut-de-ligne"
+
+msgid "error converting Scheme values to Vim"
+msgstr "erreur lors de la conversion d'une valeur de Scheme Vim"
+
+msgid "Vim error: ~a"
+msgstr "Erreur Vim : ~a"
+
+msgid "Vim error"
+msgstr "Erreur Vim"
+
+msgid "buffer is invalid"
+msgstr "tampon invalide"
+
+msgid "window is invalid"
+msgstr "fentre invalide"
+
+msgid "linenr out of range"
+msgstr "numro de ligne hors limites"
+
+msgid "not allowed in the Vim sandbox"
+msgstr "non autoris dans le bac sable"
+
+msgid "E836: This Vim cannot execute :python after using :py3"
+msgstr "E836: Vim ne peut pas excuter :python aprs avoir utilis :py3"
+
+msgid ""
+"E263: Sorry, this command is disabled, the Python library could not be "
+"loaded."
+msgstr ""
+"E263: Dsol, commande dsactive : la bibliothque Python n'a pas pu tre "
+"charge."
+
+msgid ""
+"E887: Sorry, this command is disabled, the Python's site module could not be "
+"loaded."
+msgstr ""
+"E887: Dsol, commande dsactive : la bibliothque Python n'a pas pu tre "
+"charge."
+
+msgid "E659: Cannot invoke Python recursively"
+msgstr "E659: Impossible d'invoquer Python rcursivement"
+
+msgid "E837: This Vim cannot execute :py3 after using :python"
+msgstr "E837: Vim ne peut pas excuter :py3 aprs avoir utilis :python"
+
+msgid "E265: $_ must be an instance of String"
+msgstr "E265: $_ doit tre une instance de chane (String)"
+
+msgid ""
+"E266: Sorry, this command is disabled, the Ruby library could not be loaded."
+msgstr ""
+"E266: Dsol, commande dsactive : la bibliothque Ruby n'a pas pu tre "
+"charge."
+
+msgid "E267: unexpected return"
+msgstr "E267: return inattendu"
+
+msgid "E268: unexpected next"
+msgstr "E268: next inattendu"
+
+msgid "E269: unexpected break"
+msgstr "E269: break inattendu"
+
+msgid "E270: unexpected redo"
+msgstr "E270: redo inattendu"
+
+msgid "E271: retry outside of rescue clause"
+msgstr "E271: retry hors d'une clause rescue "
+
+msgid "E272: unhandled exception"
+msgstr "E272: Exception non prise en charge"
+
+# DB - todo
+#, c-format
+msgid "E273: unknown longjmp status %d"
+msgstr "E273: contexte de longjmp inconnu : %d"
+
+msgid "invalid buffer number"
+msgstr "numro de tampon invalide"
+
+msgid "not implemented yet"
+msgstr "pas encore implment"
+
+# DB - TODO : le contexte est celui d'une annulation.
+#. ???
+msgid "cannot set line(s)"
+msgstr "Impossible de remettre la/les ligne(s)"
+
+msgid "invalid mark name"
+msgstr "nom de marque invalide"
+
+msgid "mark not set"
+msgstr "marque non positionne"
+
+#, c-format
+msgid "row %d column %d"
+msgstr "ligne %d colonne %d"
+
+msgid "cannot insert/append line"
+msgstr "Impossible d'insrer/ajouter de lignes"
+
+msgid "line number out of range"
+msgstr "numro de ligne hors limites"
+
+msgid "unknown flag: "
+msgstr "drapeau inconnu : "
+
+msgid "unknown vimOption"
+msgstr "vimOption inconnue"
+
+msgid "keyboard interrupt"
+msgstr "interruption clavier"
+
+msgid "vim error"
+msgstr "erreur Vim"
+
+msgid "cannot create buffer/window command: object is being deleted"
+msgstr ""
+"Impossible de crer commande de tampon/fentre : objet en cours d'effacement"
+
+msgid ""
+"cannot register callback command: buffer/window is already being deleted"
+msgstr ""
+"Impossible d'inscrire la commande de rappel : tampon/fentre en effacement"
+
+#. This should never happen. Famous last word?
+msgid ""
+"E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim."
+"org"
+msgstr ""
+"E280: ERREUR FATALE TCL: reflist corrompue ?! Contactez vim-dev@vim.org, SVP."
+
+msgid "cannot register callback command: buffer/window reference not found"
+msgstr ""
+"Impossible d'inscrire la commande de rappel : rf. tampon/fentre introuvable"
+
+msgid ""
+"E571: Sorry, this command is disabled: the Tcl library could not be loaded."
+msgstr ""
+"E571: Dsol, commande dsactive: la bibliothque Tcl n'a pas pu tre "
+"charge."
+
+#, c-format
+msgid "E572: exit code %d"
+msgstr "E572: code de sortie %d"
+
+msgid "cannot get line"
+msgstr "Impossible d'obtenir la ligne"
+
+msgid "Unable to register a command server name"
+msgstr "Impossible d'inscrire un nom de serveur de commande"
+
+msgid "E248: Failed to send command to the destination program"
+msgstr "E248: chec de l'envoi de la commande au programme cible"
+
+#, c-format
+msgid "E573: Invalid server id used: %s"
+msgstr "E573: Id utilis pour le serveur invalide : %s"
+
+msgid "E251: VIM instance registry property is badly formed. Deleted!"
+msgstr "E251: Entre registre de l'instance de Vim mal formate. Suppression !"
+
+#, c-format
+msgid "E938: Duplicate key in JSON: \"%s\""
+msgstr "E938: Cl duplique dans le document JSON : \"%s\""
+
+#, c-format
+msgid "E696: Missing comma in List: %s"
+msgstr "E696: Il manque une virgule dans la Liste %s"
+
+#, c-format
+msgid "E697: Missing end of List ']': %s"
+msgstr "E697: Il manque ']' la fin de la Liste %s"
+
msgid "Unknown option argument"
msgstr "Option inconnue"
@@ -2821,6 +3082,15 @@ msgstr "Argument invalide pour"
msgid "%d files to edit\n"
msgstr "%d fichiers diter\n"
+msgid "netbeans is not supported with this GUI\n"
+msgstr "netbeans n'est pas support avec cette interface graphique\n"
+
+msgid "'-nb' cannot be used: not enabled at compile time\n"
+msgstr "'-nb' ne peut pas tre utilis : dsactiv la compilation\n"
+
+msgid "This Vim was not compiled with the diff feature."
+msgstr "Ce Vim n'a pas t compil avec la fonctionnalit diff"
+
msgid "Attempt to open script file again: \""
msgstr "Nouvelle tentative pour ouvrir le script : \""
@@ -2830,6 +3100,14 @@ msgstr "Impossible d'ouvrir en lecture : \""
msgid "Cannot open for script output: \""
msgstr "Impossible d'ouvrir pour la sortie script : \""
+msgid "Vim: Error: Failure to start gvim from NetBeans\n"
+msgstr "Vim : Erreur : Impossible de dmarrer gvim depuis NetBeans\n"
+
+msgid "Vim: Error: This version of Vim does not run in a Cygwin terminal\n"
+msgstr ""
+"Vim : Erreur : Cette version de Vim ne fonctionne pas dans un terminal "
+"Cygwin\n"
+
msgid "Vim: Warning: Output is not to a terminal\n"
msgstr "Vim : Alerte : La sortie ne s'effectue pas sur un terminal\n"
@@ -2882,6 +3160,15 @@ msgstr ""
"\n"
" ou :"
+# DB - todo (VMS uniquement).
+msgid ""
+"\n"
+"Where case is ignored prepend / to make flag upper case"
+msgstr ""
+"\n"
+"pour lesquels la casse est indiffrente (/ pour que le drapeau soit "
+"majuscule)"
+
msgid ""
"\n"
"\n"
@@ -2897,6 +3184,20 @@ msgstr "--\t\tSeuls des noms de fichier sont spcifis aprs ceci"
msgid "--literal\t\tDon't expand wildcards"
msgstr "--literal\tNe pas dvelopper les mtacaractres"
+msgid "-register\t\tRegister this gvim for OLE"
+msgstr "-register\tInscrire ce gvim pour OLE"
+
+msgid "-unregister\t\tUnregister gvim for OLE"
+msgstr "-unregister\tDsinscrire gvim de OLE"
+
+msgid "-g\t\t\tRun using GUI (like \"gvim\")"
+msgstr "-g\t\tLancer l'interface graphique (comme \"gvim\")"
+
+msgid "-f or --nofork\tForeground: Don't fork when starting GUI"
+msgstr ""
+"-f, --nofork\tPremier-plan : ne pas dtacher l'interface graphique du "
+"terminal"
+
msgid "-v\t\t\tVi mode (like \"vi\")"
msgstr "-v\t\tMode Vi (comme \"vi\")"
@@ -2957,6 +3258,12 @@ msgstr "-r <fichier>\tRcuprer une session plante"
msgid "-L\t\t\tSame as -r"
msgstr "-L\t\tComme -r"
+msgid "-f\t\t\tDon't use newcli to open window"
+msgstr "-f\t\tNe pas utiliser newcli pour l'ouverture des fentres"
+
+msgid "-dev <device>\t\tUse <device> for I/O"
+msgstr "-dev <priph>\tUtiliser <priphrique> pour les E/S"
+
msgid "-A\t\t\tstart in Arabic mode"
msgstr "-A\t\tDmarrer en mode arabe"
@@ -2969,9 +3276,20 @@ msgstr "-F\t\tDmarrer en mode farsi"
msgid "-T <terminal>\tSet terminal type to <terminal>"
msgstr "-T <term>\tRgler le type du terminal sur <terminal>"
+msgid "--not-a-term\t\tSkip warning for input/output not being a terminal"
+msgstr ""
+"--no-a-term\t\tAucun avertissement si l'entre/sortie n'est pas un terminal"
+
+msgid "--ttyfail\t\tExit if input or output is not a terminal"
+msgstr ""
+"--ttyfail\t\tQuitte si l'entre ou la sortie ne sont pas un terminal"
+
msgid "-u <vimrc>\t\tUse <vimrc> instead of any .vimrc"
msgstr "-u <vimrc>\tUtiliser <vimrc> au lieu du vimrc habituel"
+msgid "-U <gvimrc>\t\tUse <gvimrc> instead of any .gvimrc"
+msgstr "-U <gvimrc>\tUtiliser <gvimrc> au lieu du gvimrc habituel"
+
msgid "--noplugin\t\tDon't load plugin scripts"
msgstr "--noplugin\tNe charger aucun greffon"
@@ -3009,6 +3327,53 @@ msgstr "-w <dest>\tAjouter toutes les commandes tapes dans le fichier <dest>"
msgid "-W <scriptout>\tWrite all typed commands to file <scriptout>"
msgstr "-W <dest>\tcrire toutes les commandes tapes dans le fichier <dest>"
+msgid "-x\t\t\tEdit encrypted files"
+msgstr "-x\t\t\tditer des fichiers chiffrs"
+
+msgid "-display <display>\tConnect vim to this particular X-server"
+msgstr "-display <display>\tConnecter Vim au serveur X spcifi"
+
+msgid "-X\t\t\tDo not connect to X server"
+msgstr "-X\t\t\tNe pas se connecter un serveur X"
+
+msgid "--remote <files>\tEdit <files> in a Vim server if possible"
+msgstr "--remote <fich>\tditer les <fichiers> dans un serveur Vim si possible"
+
+msgid "--remote-silent <files> Same, don't complain if there is no server"
+msgstr ""
+"--remote-silent ...\tPareil, mais pas d'erreur s'il n'y a aucun serveur"
+
+msgid ""
+"--remote-wait <files> As --remote but wait for files to have been edited"
+msgstr ""
+"--remote-wait <fich>\tComme --remote mais ne quitter qu' la fin de l'dition"
+
+msgid ""
+"--remote-wait-silent <files> Same, don't complain if there is no server"
+msgstr ""
+"--remote-wait-silent\tPareil, mais pas d'erreur s'il n'y a aucun serveur"
+
+msgid ""
+"--remote-tab[-wait][-silent] <files> As --remote but use tab page per file"
+msgstr ""
+"--remote-tab[-wait][-silent] <fich>\tComme --remote mais ouvrir un onglet "
+"pour chaque fichier"
+
+msgid "--remote-send <keys>\tSend <keys> to a Vim server and exit"
+msgstr "--remote-send <tche>\tEnvoyer <touches> un serveur Vim puis quitter"
+
+msgid "--remote-expr <expr>\tEvaluate <expr> in a Vim server and print result"
+msgstr ""
+"--remote-expr <expr>\tvaluer <expr> dans un serveur Vim, afficher le "
+"rsultat"
+
+msgid "--serverlist\t\tList available Vim server names and exit"
+msgstr ""
+"--serverlist\t\tLister les noms des serveurs Vim disponibles et quitter"
+
+msgid "--servername <name>\tSend to/become the Vim server <name>"
+msgstr "--servername <nom>\tEnvoyer au/devenir le serveur Vim nomm <nom>"
+
msgid "--startuptime <file>\tWrite startup timing messages to <file>"
msgstr ""
"--startuptime <fich>\tcrire les messages d'horodatage au dmarrage dans "
@@ -3023,6 +3388,120 @@ msgstr "-h ou --help\t\tAfficher l'aide (ce message) puis quitter"
msgid "--version\t\tPrint version information and exit"
msgstr "--version\t\tAfficher les informations de version et quitter"
+msgid ""
+"\n"
+"Arguments recognised by gvim (Motif version):\n"
+msgstr ""
+"\n"
+"Arguments reconnus par gvim (version Motif) :\n"
+
+msgid ""
+"\n"
+"Arguments recognised by gvim (neXtaw version):\n"
+msgstr ""
+"\n"
+"Arguments reconnus par gvim (version neXtaw) :\n"
+
+msgid ""
+"\n"
+"Arguments recognised by gvim (Athena version):\n"
+msgstr ""
+"\n"
+"Arguments reconnus par gvim (version Athena) :\n"
+
+msgid "-display <display>\tRun vim on <display>"
+msgstr "-display <cran>\tLancer Vim sur ce <display>"
+
+msgid "-iconic\t\tStart vim iconified"
+msgstr "-iconic\t\tIconifier Vim au dmarrage"
+
+msgid "-background <color>\tUse <color> for the background (also: -bg)"
+msgstr ""
+"-background <coul>\tUtiliser <couleur> pour l'arrire-plan\t (abrv : -bg)"
+
+msgid "-foreground <color>\tUse <color> for normal text (also: -fg)"
+msgstr ""
+"-foreground <coul>\tUtiliser <couleur> pour le texte normal\t (abrv : -fg)"
+
+msgid "-font <font>\t\tUse <font> for normal text (also: -fn)"
+msgstr "-font <fonte>\tUtiliser <fonte> pour le texte normal\t (abrv : -fn)"
+
+msgid "-boldfont <font>\tUse <font> for bold text"
+msgstr "-boldfont <fonte>\tUtiliser <fonte> pour le texte gras"
+
+msgid "-italicfont <font>\tUse <font> for italic text"
+msgstr "-italicfont <fonte>\tUtiliser <fonte> pour le texte italique"
+
+msgid "-geometry <geom>\tUse <geom> for initial geometry (also: -geom)"
+msgstr "-geometry <gom>\tUtiliser cette <gomtrie> initiale\t (abrv : -geom)"
+
+msgid "-borderwidth <width>\tUse a border width of <width> (also: -bw)"
+msgstr ""
+"-borderwidth <pais>\tUtiliser cette <paisseur> de bordure\t (abrv : -bw)"
+
+msgid "-scrollbarwidth <width> Use a scrollbar width of <width> (also: -sw)"
+msgstr ""
+"-scrollbarwidth <lg>\tUtiliser cette <largeur> de barre de dfil. (abrv: -sw)"
+
+msgid "-menuheight <height>\tUse a menu bar height of <height> (also: -mh)"
+msgstr "-menuheight <haut>\tUtiliser cette <hauteur> de menu\t (abrv : -mh)"
+
+msgid "-reverse\t\tUse reverse video (also: -rv)"
+msgstr "-reverse\t\tUtiliser la vido inverse\t\t (abrv : -rv)"
+
+msgid "+reverse\t\tDon't use reverse video (also: +rv)"
+msgstr "+reverse\t\tNe pas utiliser de vido inverse\t (abrv : +rv)"
+
+msgid "-xrm <resource>\tSet the specified resource"
+msgstr "-xrm <ressource>\tConfigurer la <ressource> spcifie"
+
+msgid ""
+"\n"
+"Arguments recognised by gvim (GTK+ version):\n"
+msgstr ""
+"\n"
+"Arguments reconnus par gvim (version GTK+) :\n"
+
+msgid "-display <display>\tRun vim on <display> (also: --display)"
+msgstr ""
+"-display <display>\tLancer Vim sur ce <display>\t(galement : --display)"
+
+msgid "--role <role>\tSet a unique role to identify the main window"
+msgstr "--role <rle>\tDonner un rle pour identifier la fentre principale"
+
+msgid "--socketid <xid>\tOpen Vim inside another GTK widget"
+msgstr "--socketid <xid>\tOuvrir Vim dans un autre widget GTK"
+
+msgid "--echo-wid\t\tMake gvim echo the Window ID on stdout"
+msgstr "--echo-wid\t\tGvim affiche l'ID de la fentre sur stdout"
+
+msgid "-P <parent title>\tOpen Vim inside parent application"
+msgstr "-P <titre parent>\tOuvrir Vim dans une application parente"
+
+msgid "--windowid <HWND>\tOpen Vim inside another win32 widget"
+msgstr "--windowid <HWND>\tOuvrir Vim dans un autre widget win32"
+
+msgid "No display"
+msgstr "Aucun display"
+
+#. Failed to send, abort.
+msgid ": Send failed.\n"
+msgstr " : L'envoi a chou.\n"
+
+#. Let vim start normally.
+msgid ": Send failed. Trying to execute locally\n"
+msgstr " : L'envoi a chou. Tentative d'excution locale\n"
+
+#, c-format
+msgid "%d of %d edited"
+msgstr "%d dits sur %d"
+
+msgid "No display: Send expression failed.\n"
+msgstr "Aucun display : L'envoi de l'expression a chou.\n"
+
+msgid ": Send expression failed.\n"
+msgstr " : L'envoi de l'expression a chou.\n"
+
msgid "No marks set"
msgstr "Aucune marque positionne"
@@ -3079,6 +3558,30 @@ msgstr ""
msgid "Missing '>'"
msgstr "'>' manquant"
+msgid "E543: Not a valid codepage"
+msgstr "E543: Page de codes non valide"
+
+msgid "E284: Cannot set IC values"
+msgstr "E284: Impossible de rgler les valeurs IC"
+
+msgid "E285: Failed to create input context"
+msgstr "E285: chec de la cration du contexte de saisie"
+
+msgid "E286: Failed to open input method"
+msgstr "E286: chec de l'ouverture de la mthode de saisie"
+
+msgid "E287: Warning: Could not set destroy callback to IM"
+msgstr ""
+"E287: Alerte : Impossible d'inscrire le callback de destruction dans la MS"
+
+msgid "E288: input method doesn't support any style"
+msgstr "E288: la mthode de saisie ne supporte aucun style"
+
+msgid "E289: input method doesn't support my preedit type"
+msgstr ""
+"E289: le type de prdition de Vim n'est pas support par la mthode de "
+"saisie"
+
msgid "E293: block was not locked"
msgstr "E293: le bloc n'tait pas verrouill"
@@ -3106,6 +3609,9 @@ msgstr "E298: Bloc n1 non rcupr ?"
msgid "E298: Didn't get block nr 2?"
msgstr "E298: Bloc n2 non rcupr ?"
+msgid "E843: Error while updating swap file crypt"
+msgstr "E843: Erreur lors de la mise jour du fichier d'change crypt"
+
#. could not (re)open the swap file, what can we do????
msgid "E301: Oops, lost the swap file!!!"
msgstr "E301: Oups, le fichier d'change a disparu !"
@@ -3120,7 +3626,6 @@ msgstr "E303: Impossible d'ouvrir fichier .swp pour \"%s\", rcup. impossible"
msgid "E304: ml_upd_block0(): Didn't get block 0??"
msgstr "E304: ml_upd_block0() : bloc 0 non rcupr ?!"
-#. no swap files found
#, c-format
msgid "E305: No swap file found for %s"
msgstr "E305: Aucun fichier d'change trouv pour %s"
@@ -3166,6 +3671,12 @@ msgstr ""
",\n"
"ou le fichier a t endommag."
+#, c-format
+msgid ""
+"E833: %s is encrypted and this version of Vim does not support encryption"
+msgstr ""
+"E833: %s est chiffr et cette version de Vim ne supporte pas le chiffrement"
+
msgid " has been damaged (page size is smaller than minimum value).\n"
msgstr " a t endommag (taille de page infrieure la valeur minimale).\n"
@@ -3181,6 +3692,40 @@ msgid "E308: Warning: Original file may have been changed"
msgstr "E308: Alerte : Le fichier original a pu tre modifi"
#, c-format
+msgid "Swap file is encrypted: \"%s\""
+msgstr "Fichier d'change chiffr : \"%s\""
+
+msgid ""
+"\n"
+"If you entered a new crypt key but did not write the text file,"
+msgstr ""
+"\n"
+"Si vous avez tap une nouvelle cl de chiffrement mais n'avez pas enregistr "
+"le fichier texte,"
+
+msgid ""
+"\n"
+"enter the new crypt key."
+msgstr ""
+"\n"
+"tapez la nouvelle cl de chiffrement."
+
+msgid ""
+"\n"
+"If you wrote the text file after changing the crypt key press enter"
+msgstr ""
+"\n"
+"Si vous avez crit le fichier texte aprs avoir chang la cl de "
+"chiffrement, appuyez sur entre"
+
+msgid ""
+"\n"
+"to use the same key for text file and swap file"
+msgstr ""
+"\n"
+"afin d'utiliser la mme cl pour le fichier texte et le fichier d'change"
+
+#, c-format
msgid "E309: Unable to read block 1 from %s"
msgstr "E309: Impossible de lire le bloc 1 de %s"
@@ -3251,6 +3796,11 @@ msgstr ""
"Il est conseill d'effacer maintenant le fichier .swp.\n"
"\n"
+msgid "Using crypt key from swap file for the text file.\n"
+msgstr ""
+"Utilisation de la cl de chiffrement du fichier d'change pour le fichier "
+"texte.\n"
+
#. use msg() to start the scrolling properly
msgid "Swap files found:"
msgstr "Fichiers d'change trouvs :"
@@ -3327,6 +3877,13 @@ msgstr " (en cours d'excution)"
msgid ""
"\n"
+" [not usable with this version of Vim]"
+msgstr ""
+"\n"
+" [inutilisable avec cette version de Vim]"
+
+msgid ""
+"\n"
" [not usable on this computer]"
msgstr ""
"\n"
@@ -3348,12 +3905,12 @@ msgid "E314: Preserve failed"
msgstr "E314: chec de la prservation"
#, c-format
-msgid "E315: ml_get: invalid lnum: %<PRId64>"
-msgstr "E315: ml_get : numro de ligne invalide : %<PRId64>"
+msgid "E315: ml_get: invalid lnum: %ld"
+msgstr "E315: ml_get : numro de ligne invalide : %ld"
#, c-format
-msgid "E316: ml_get: cannot find line %<PRId64>"
-msgstr "E316: ml_get : ligne %<PRId64> introuvable"
+msgid "E316: ml_get: cannot find line %ld"
+msgstr "E316: ml_get : ligne %ld introuvable"
msgid "E317: pointer block id wrong 3"
msgstr "E317: mauvais id de pointeur de bloc 3"
@@ -3371,8 +3928,8 @@ msgid "deleted block 1?"
msgstr "bloc 1 effac ?"
#, c-format
-msgid "E320: Cannot find line %<PRId64>"
-msgstr "E320: Ligne %<PRId64> introuvable"
+msgid "E320: Cannot find line %ld"
+msgstr "E320: Ligne %ld introuvable"
msgid "E317: pointer block id wrong"
msgstr "E317: mauvais id de pointeur de bloc"
@@ -3381,12 +3938,12 @@ msgid "pe_line_count is zero"
msgstr "pe_line_count vaut zro"
#, c-format
-msgid "E322: line number out of range: %<PRId64> past the end"
-msgstr "E322: numro de ligne hors limites : %<PRId64> au-del de la fin"
+msgid "E322: line number out of range: %ld past the end"
+msgstr "E322: numro de ligne hors limites : %ld au-del de la fin"
#, c-format
-msgid "E323: line count wrong in block %<PRId64>"
-msgstr "E323: nombre de lignes erron dans le bloc %<PRId64>"
+msgid "E323: line count wrong in block %ld"
+msgstr "E323: nombre de lignes erron dans le bloc %ld"
msgid "Stack size increases"
msgstr "La taille de la pile s'accrot"
@@ -3414,19 +3971,19 @@ msgstr "Lors de l'ouverture du fichier \""
msgid " NEWER than swap file!\n"
msgstr " PLUS RCENT que le fichier d'change !\n"
+#. Some of these messages are long to allow translation to
+#. * other languages.
msgid ""
"\n"
"(1) Another program may be editing the same file. If this is the case,\n"
" be careful not to end up with two different instances of the same\n"
-" file when making changes."
+" file when making changes. Quit, or continue with caution.\n"
msgstr ""
"\n"
"(1) Un autre programme est peut-tre en train d'diter ce fichier.\n"
" Si c'est le cas, faites attention ne pas vous retrouver avec\n"
-" deux versions diffrentes du mme fichier en faisant des modifications."
-
-msgid " Quit, or continue with caution.\n"
-msgstr " Quittez, ou continuez prudemment.\n"
+" deux versions diffrentes du mme fichier en faisant des modifications.\n"
+" Quitter ou continuer avec attention.\n"
msgid "(2) An edit session for this file crashed.\n"
msgstr "(2) Une session d'dition de ce fichier a plant.\n"
@@ -3491,21 +4048,9 @@ msgstr ""
"&Quitter\n"
"&Abandonner"
-#.
-#. * Change the ".swp" extension to find another file that can be used.
-#. * First decrement the last char: ".swo", ".swn", etc.
-#. * If that still isn't enough decrement the last but one char: ".svz"
-#. * Can happen when editing many "No Name" buffers.
-#.
-#. ".s?a"
-#. ".saa": tried enough, give up
msgid "E326: Too many swap files found"
msgstr "E326: Trop de fichiers d'change trouvs"
-#, c-format
-msgid "E342: Out of memory! (allocating %<PRIu64> bytes)"
-msgstr "E342: Mmoire puise ! (allocation de %<PRIu64> octets)"
-
msgid "E327: Part of menu-item path is not sub-menu"
msgstr "E327: Une partie du chemin de l'lment de menu n'est pas un sous-menu"
@@ -3540,6 +4085,9 @@ msgstr ""
"\n"
"--- Menus ---"
+msgid "Tear off this menu"
+msgstr "Dtacher ce menu"
+
msgid "E333: Menu path must lead to a menu item"
msgstr "E333: Le chemin du menu doit conduire un lment de menu"
@@ -3570,6 +4118,9 @@ msgid "E354: Invalid register name: '%s'"
msgstr "E354: Nom de registre invalide : '%s'"
# DB - todo : mettre jour ?
+msgid "Messages maintainer: Bram Moolenaar <Bram@vim.org>"
+msgstr "Maintenance des messages : Dominique Pell <dominique.pelle@gmail.com>"
+
msgid "Interrupt: "
msgstr "Interruption : "
@@ -3577,8 +4128,8 @@ msgid "Press ENTER or type command to continue"
msgstr "Appuyez sur ENTRE ou tapez une commande pour continuer"
#, c-format
-msgid "%s line %<PRId64>"
-msgstr "%s, ligne %<PRId64>"
+msgid "%s line %ld"
+msgstr "%s, ligne %ld"
msgid "-- More --"
msgstr "-- Plus --"
@@ -3600,15 +4151,6 @@ msgstr ""
msgid ""
"&Yes\n"
"&No\n"
-"&Cancel"
-msgstr ""
-"&Oui\n"
-"&Non\n"
-"&Annuler"
-
-msgid ""
-"&Yes\n"
-"&No\n"
"Save &All\n"
"&Discard All\n"
"&Cancel"
@@ -3619,6 +4161,21 @@ msgstr ""
"Tout aban&donner\n"
"&Annuler"
+# DB : Les trois messages qui suivent sont des titres de botes
+# de dialogue par dfaut.
+msgid "Select Directory dialog"
+msgstr "Slecteur de rpertoire"
+
+msgid "Save File dialog"
+msgstr "Enregistrer un fichier"
+
+msgid "Open File dialog"
+msgstr "Ouvrir un fichier"
+
+#. TODO: non-GUI file selector here
+msgid "E338: Sorry, no file browser in console mode"
+msgstr "E338: Dsol, pas de slecteur de fichiers en mode console"
+
msgid "E766: Insufficient arguments for printf()"
msgstr "E766: Pas assez d'arguments pour printf()"
@@ -3644,12 +4201,12 @@ msgid "1 line less"
msgstr "1 ligne en moins"
#, c-format
-msgid "%<PRId64> more lines"
-msgstr "%<PRId64> lignes en plus"
+msgid "%ld more lines"
+msgstr "%ld lignes en plus"
#, c-format
-msgid "%<PRId64> fewer lines"
-msgstr "%<PRId64> lignes en moins"
+msgid "%ld fewer lines"
+msgstr "%ld lignes en moins"
msgid " (Interrupted)"
msgstr " (Interrompu)"
@@ -3657,16 +4214,111 @@ msgstr " (Interrompu)"
msgid "Beep!"
msgstr "Bip !"
+msgid "ERROR: "
+msgstr "ERREUR : "
+
+#, c-format
+msgid ""
+"\n"
+"[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu\n"
+msgstr ""
+"\n"
+"[octets] total allou-libr %lu-%lu, utilis %lu, pic %lu\n"
+
+#, c-format
+msgid ""
+"[calls] total re/malloc()'s %lu, total free()'s %lu\n"
+"\n"
+msgstr ""
+"[appels] total re/malloc() %lu, total free() %lu\n"
+"\n"
+
+msgid "E340: Line is becoming too long"
+msgstr "E340: La ligne devient trop longue"
+
+#, c-format
+msgid "E341: Internal error: lalloc(%ld, )"
+msgstr "E341: Erreur interne : lalloc(%ld, )"
+
+#, c-format
+msgid "E342: Out of memory! (allocating %lu bytes)"
+msgstr "E342: Mmoire puise ! (allocation de %lu octets)"
+
#, c-format
msgid "Calling shell to execute: \"%s\""
msgstr "Appel du shell pour excuter : \"%s\""
+msgid "E545: Missing colon"
+msgstr "E545: ':' manquant"
+
+msgid "E546: Illegal mode"
+msgstr "E546: Mode non autoris"
+
+msgid "E547: Illegal mouseshape"
+msgstr "E547: Forme de curseur invalide"
+
+msgid "E548: digit expected"
+msgstr "E548: chiffre attendu"
+
+msgid "E549: Illegal percentage"
+msgstr "E549: Pourcentage non autoris"
+
+msgid "E854: path too long for completion"
+msgstr "E854: chemin trop long pour compltement"
+
+#, c-format
+msgid ""
+"E343: Invalid path: '**[number]' must be at the end of the path or be "
+"followed by '%s'."
+msgstr ""
+"E343: Chemin invalide : '**[nombre]' doit tre la fin du chemin ou tre "
+"suivi de '%s'."
+
+#, c-format
+msgid "E344: Can't find directory \"%s\" in cdpath"
+msgstr "E344: Rpertoire \"%s\" introuvable dans 'cdpath'"
+
+#, c-format
+msgid "E345: Can't find file \"%s\" in path"
+msgstr "E345: Fichier \"%s\" introuvable dans 'path'"
+
+#, c-format
+msgid "E346: No more directory \"%s\" found in cdpath"
+msgstr "E346: Plus de rpertoire \"%s\" dans 'cdpath'"
+
+#, c-format
+msgid "E347: No more file \"%s\" found in path"
+msgstr "E347: Plus de fichier \"%s\" dans 'path'"
+
+#, c-format
+msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
+msgstr ""
+"E668: Mode d'accs incorrect au fichier d'infos de connexion NetBeans : \"%s"
+"\""
+
+#, c-format
+msgid "E658: NetBeans connection lost for buffer %ld"
+msgstr "E658: Connexion NetBeans perdue pour le tampon %ld"
+
+msgid "E838: netbeans is not supported with this GUI"
+msgstr "E838: netbeans n'est pas support avec cette interface graphique"
+
+msgid "E511: netbeans already connected"
+msgstr "E511: netbeans dj connect"
+
+#, c-format
+msgid "E505: %s is read-only (add ! to override)"
+msgstr "E505: %s est en lecture seule (ajoutez ! pour passer outre)"
+
msgid "E349: No identifier under cursor"
msgstr "E349: Aucun identifiant sous le curseur"
msgid "E774: 'operatorfunc' is empty"
msgstr "E774: 'operatorfunc' est vide"
+msgid "E775: Eval feature not available"
+msgstr "E775: La fonctionnalit d'valuation n'est pas disponible"
+
# DB : Il est ici question du mode Visuel.
msgid "Warning: terminal cannot highlight"
msgstr "Alerte : le terminal ne peut pas surligner"
@@ -3686,7 +4338,7 @@ msgstr "E662: Au dbut de la liste des modifications"
msgid "E663: At end of changelist"
msgstr "E663: la fin de la liste des modifications"
-msgid "Type :quit<Enter> to exit Nvim"
+msgid "Type :quit<Enter> to exit Vim"
msgstr "tapez :q<Entre> pour quitter Vim"
#, c-format
@@ -3698,23 +4350,23 @@ msgid "1 line %sed %d times"
msgstr "1 ligne %se %d fois"
#, c-format
-msgid "%<PRId64> lines %sed 1 time"
-msgstr "%<PRId64> lignes %ses 1 fois"
+msgid "%ld lines %sed 1 time"
+msgstr "%ld lignes %ses 1 fois"
#, c-format
-msgid "%<PRId64> lines %sed %d times"
-msgstr "%<PRId64> lignes %ses %d fois"
+msgid "%ld lines %sed %d times"
+msgstr "%ld lignes %ses %d fois"
#, c-format
-msgid "%<PRId64> lines to indent... "
-msgstr "%<PRId64> lignes indenter... "
+msgid "%ld lines to indent... "
+msgstr "%ld lignes indenter... "
msgid "1 line indented "
msgstr "1 ligne indente "
#, c-format
-msgid "%<PRId64> lines indented "
-msgstr "%<PRId64> lignes indentes "
+msgid "%ld lines indented "
+msgstr "%ld lignes indentes "
msgid "E748: No previously used register"
msgstr "E748: Aucun registre n'a t prcdemment utilis"
@@ -3728,8 +4380,12 @@ msgid "1 line changed"
msgstr "1 ligne modifie"
#, c-format
-msgid "%<PRId64> lines changed"
-msgstr "%<PRId64> lignes modifies"
+msgid "%ld lines changed"
+msgstr "%ld lignes modifies"
+
+#, c-format
+msgid "freeing %ld lines"
+msgstr "libration de %ld lignes"
msgid "block of 1 line yanked"
msgstr "bloc de 1 ligne copi"
@@ -3738,12 +4394,12 @@ msgid "1 line yanked"
msgstr "1 ligne copie"
#, c-format
-msgid "block of %<PRId64> lines yanked"
-msgstr "bloc de %<PRId64> lignes copi"
+msgid "block of %ld lines yanked"
+msgstr "bloc de %ld lignes copi"
#, c-format
-msgid "%<PRId64> lines yanked"
-msgstr "%<PRId64> lignes copies"
+msgid "%ld lines yanked"
+msgstr "%ld lignes copies"
#, c-format
msgid "E353: Nothing in register %s"
@@ -3771,45 +4427,47 @@ msgstr ""
msgid "E574: Unknown register type %d"
msgstr "E574: Type de registre %d inconnu"
+msgid ""
+"E883: search pattern and expression register may not contain two or more "
+"lines"
+msgstr ""
+"E883: le motif de recherche et le registre d'expression ne peuvent pas "
+"contenir deux lignes ou plus"
+
#, c-format
-msgid "%<PRId64> Cols; "
-msgstr "%<PRId64> Colonnes ; "
+msgid "%ld Cols; "
+msgstr "%ld Colonnes ; "
#, c-format
-msgid ""
-"Selected %s%<PRId64> of %<PRId64> Lines; %<PRId64> of %<PRId64> Words; "
-"%<PRId64> of %<PRId64> Bytes"
+msgid "Selected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Bytes"
msgstr ""
-"%s%<PRId64> sur %<PRId64> Lignes ; %<PRId64> sur %<PRId64> Mots ; %<PRId64> "
-"sur %<PRId64> Octets slectionns"
+"%s%ld sur %ld Lignes ; %lld sur %lld Mots ; %lld sur %lld Octets slectionns"
#, c-format
msgid ""
-"Selected %s%<PRId64> of %<PRId64> Lines; %<PRId64> of %<PRId64> Words; "
-"%<PRId64> of %<PRId64> Chars; %<PRId64> of %<PRId64> Bytes"
+"Selected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Chars; %lld of "
+"%lld Bytes"
msgstr ""
-"%s%<PRId64> sur %<PRId64> Lignes ; %<PRId64> sur %<PRId64> Mots ; %<PRId64> "
-"sur %<PRId64> Caractres ; %<PRId64> sur %<PRId64> octets slectionns"
+"%s%ld sur %ld Lignes ; %lld sur %lld Mots ; %lld sur %lld Caractres ; %lld "
+"sur %lld octets slectionns"
#, c-format
-msgid ""
-"Col %s of %s; Line %<PRId64> of %<PRId64>; Word %<PRId64> of %<PRId64>; Byte "
-"%<PRId64> of %<PRId64>"
+msgid "Col %s of %s; Line %ld of %ld; Word %lld of %lld; Byte %lld of %lld"
msgstr ""
-"Colonne %s sur %s ; Ligne %<PRId64> sur %<PRId64> ; Mot %<PRId64> sur "
-"%<PRId64> ; Octet %<PRId64> sur %<PRId64>"
+"Colonne %s sur %s ; Ligne %ld sur %ld ; Mot %lld sur %lld ; Octet %lld sur "
+"%lld"
#, c-format
msgid ""
-"Col %s of %s; Line %<PRId64> of %<PRId64>; Word %<PRId64> of %<PRId64>; Char "
-"%<PRId64> of %<PRId64>; Byte %<PRId64> of %<PRId64>"
+"Col %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte "
+"%lld of %lld"
msgstr ""
-"Colonne %s sur %s ; Ligne %<PRId64> sur %<PRId64> ; Mot %<PRId64> sur "
-"%<PRId64> ; Caractre %<PRId64> sur %<PRId64> ; Octet %<PRId64> sur %<PRId64>"
+"Colonne %s sur %s ; Ligne %ld sur %ld ; Mot %lld sur %lld ; Caractre %lld "
+"sur %lld ; Octet %lld sur %lld"
#, c-format
-msgid "(+%<PRId64> for BOM)"
-msgstr "(+%<PRId64> pour le BOM)"
+msgid "(+%ld for BOM)"
+msgstr "(+%ld pour le BOM)"
msgid "%<%f%h%m%=Page %N"
msgstr "%<%f%h%m%=Page %N"
@@ -3817,7 +4475,6 @@ msgstr "%<%f%h%m%=Page %N"
msgid "Thanks for flying Vim"
msgstr "Merci d'avoir choisi Vim"
-#. found a mismatch: skip
msgid "E518: Unknown option"
msgstr "E518: Option inconnue"
@@ -3847,6 +4504,12 @@ msgstr "Pour l'option %s"
msgid "E529: Cannot set 'term' to empty string"
msgstr "E529: 'term' ne doit pas tre une chane vide"
+msgid "E530: Cannot change term in GUI"
+msgstr "E530: Impossible de modifier term dans l'interface graphique"
+
+msgid "E531: Use \":gui\" to start the GUI"
+msgstr "E531: Utilisez \":gui\" pour dmarrer l'interface graphique"
+
msgid "E589: 'backupext' and 'patchmode' are equal"
msgstr "E589: 'backupext' et 'patchmode' sont gaux"
@@ -3856,6 +4519,9 @@ msgstr "E834: Conflits avec la valeur de 'listchars'"
msgid "E835: Conflicts with value of 'fillchars'"
msgstr "E835: Conflits avec la valeur de 'fillchars'"
+msgid "E617: Cannot be changed in the GTK+ 2 GUI"
+msgstr "E617: Non modifiable dans l'interface graphique GTK+ 2"
+
msgid "E524: Missing colon"
msgstr "E524: ':' manquant"
@@ -3875,6 +4541,21 @@ msgstr "E528: Une valeur ' doit tre spcifie"
msgid "E595: contains unprintable or wide character"
msgstr "E595: contient des caractres largeur double non-imprimables"
+msgid "E596: Invalid font(s)"
+msgstr "E596: Police(s) invalide(s)"
+
+msgid "E597: can't select fontset"
+msgstr "E597: Impossible de slectionner un jeu de polices"
+
+msgid "E598: Invalid fontset"
+msgstr "E598: Jeu de polices invalide"
+
+msgid "E533: can't select wide font"
+msgstr "E533: Impossible de slectionner une police largeur double"
+
+msgid "E534: Invalid wide font"
+msgstr "E534: Police largeur double invalide"
+
#, c-format
msgid "E535: Illegal character after <%c>"
msgstr "E535: Caractre invalide aprs <%c>"
@@ -3886,6 +4567,9 @@ msgstr "E536: virgule requise"
msgid "E537: 'commentstring' must be empty or contain %s"
msgstr "E537: 'commentstring' doit tre vide ou contenir %s"
+msgid "E538: No mouse support"
+msgstr "E538: La souris n'est pas supporte"
+
# DB - Le code est sans ambigut sur le caractre manquant.
# dfaut d'une traduction valable, au moins comprend-on
# ce qui se passe.
@@ -3902,7 +4586,7 @@ msgid "E590: A preview window already exists"
msgstr "E590: Il existe dj une fentre de prvisualisation"
msgid "W17: Arabic requires UTF-8, do ':set encoding=utf-8'"
-msgstr "W17: L'arabe requiert l'UTF-8, tapez ':set encoding=utf-8'"
+msgstr "W17: L'arabe ncessite l'UTF-8, tapez ':set encoding=utf-8'"
#, c-format
msgid "E593: Need at least %d lines"
@@ -3962,12 +4646,135 @@ msgstr "E357: 'langmap' : Aucun caractre correspondant pour %s"
msgid "E358: 'langmap': Extra characters after semicolon: %s"
msgstr "E358: 'langmap' : Caractres surnumraires aprs point-virgule : %s"
+msgid "cannot open "
+msgstr "impossible d'ouvrir "
+
+msgid "VIM: Can't open window!\n"
+msgstr "VIM : Impossible d'ouvrir la fentre !\n"
+
+msgid "Need Amigados version 2.04 or later\n"
+msgstr "Amigados version 2.04 ou ultrieure est ncessaire\n"
+
+#, c-format
+msgid "Need %s version %ld\n"
+msgstr "%s version %ld est ncessaire\n"
+
+msgid "Cannot open NIL:\n"
+msgstr "Impossible d'ouvrir NIL :\n"
+
+msgid "Cannot create "
+msgstr "Impossible de crer "
+
+#, c-format
+msgid "Vim exiting with %d\n"
+msgstr "Vim quitte avec %d\n"
+
+msgid "cannot change console mode ?!\n"
+msgstr "Impossible de modifier le mode de la console ?!\n"
+
+msgid "mch_get_shellsize: not a console??\n"
+msgstr "mch_get_shellsize : pas une console ?!\n"
+
+#. if Vim opened a window: Executing a shell may cause crashes
+msgid "E360: Cannot execute shell with -f option"
+msgstr "E360: Impossible d'excuter un shell avec l'option -f"
+
+msgid "Cannot execute "
+msgstr "Impossible d'excuter "
+
+msgid "shell "
+msgstr "le shell "
+
+msgid " returned\n"
+msgstr " a t retourn\n"
+
+msgid "ANCHOR_BUF_SIZE too small."
+msgstr "ANCHOR_BUF_SIZE trop petit."
+
+msgid "I/O ERROR"
+msgstr "ERREUR d'E/S"
+
+msgid "Message"
+msgstr "Message"
+
+msgid "E237: Printer selection failed"
+msgstr "E237: La slection de l'imprimante a chou"
+
+# DB - Contenu des c-formats : Imprimante puis Port.
+#, c-format
+msgid "to %s on %s"
+msgstr "vers %s sur %s"
+
+#, c-format
+msgid "E613: Unknown printer font: %s"
+msgstr "E613: Police d'imprimante inconnue : %s"
+
+#, c-format
+msgid "E238: Print error: %s"
+msgstr "E238: Erreur d'impression : %s"
+
+#, c-format
+msgid "Printing '%s'"
+msgstr "Impression de '%s'"
+
+#, c-format
+msgid "E244: Illegal charset name \"%s\" in font name \"%s\""
+msgstr "E244: Jeu de caractres \"%s\" invalide dans le nom de fonte \"%s\""
+
+#, c-format
+msgid "E244: Illegal quality name \"%s\" in font name \"%s\""
+msgstr "E244: Nom de qualit \"%s\" invalide dans le nom de fonte \"%s\""
+
+#, c-format
+msgid "E245: Illegal char '%c' in font name \"%s\""
+msgstr "E245: Caractre '%c' invalide dans le nom de fonte \"%s\""
+
+#, c-format
+msgid "Opening the X display took %ld msec"
+msgstr "L'ouverture du display X a pris %ld ms"
+
msgid ""
"\n"
-"Cannot execute shell "
+"Vim: Got X error\n"
msgstr ""
"\n"
-"Impossible d'excuter le shell "
+"Vim : Rception d'une erreur X\n"
+
+msgid "Testing the X display failed"
+msgstr "Le test du display X a chou"
+
+msgid "Opening the X display timed out"
+msgstr "L'ouverture du display X a dpass le dlai d'attente"
+
+msgid ""
+"\n"
+"Could not get security context for "
+msgstr ""
+"\n"
+"Impossible d'obtenir le contexte de scurit pour "
+
+msgid ""
+"\n"
+"Could not set security context for "
+msgstr ""
+"\n"
+"Impossible de modifier le contexte de scurit pour "
+
+#, c-format
+msgid "Could not set security context %s for %s"
+msgstr "Impossible d'initialiser le contexte de scurit %s pour %s"
+
+#, c-format
+msgid "Could not get security context %s for %s. Removing it!"
+msgstr ""
+"Impossible d'obtenir le contexte de scurit %s pour %s. Il sera supprim !"
+
+msgid ""
+"\n"
+"Cannot execute shell sh\n"
+msgstr ""
+"\n"
+"Impossible d'excuter le shell sh\n"
msgid ""
"\n"
@@ -3978,25 +4785,99 @@ msgstr ""
msgid ""
"\n"
-"Could not get security context for "
+"Cannot create pipes\n"
msgstr ""
"\n"
-"Impossible d'obtenir le contexte de scurit pour "
+"Impossible de crer des tuyaux (pipes)\n"
msgid ""
"\n"
-"Could not set security context for "
+"Cannot fork\n"
msgstr ""
"\n"
-"Impossible de modifier le contexte de scurit pour "
+"Impossible de forker\n"
+
+msgid ""
+"\n"
+"Cannot execute shell "
+msgstr ""
+"\n"
+"Impossible d'excuter le shell "
+
+msgid ""
+"\n"
+"Command terminated\n"
+msgstr ""
+"\n"
+"Commande interrompue\n"
+
+msgid "XSMP lost ICE connection"
+msgstr "XSMP a perdu la connexion ICE"
#, c-format
msgid "dlerror = \"%s\""
msgstr "dlerror = \"%s\""
+msgid "Opening the X display failed"
+msgstr "L'ouverture du display X a chou"
+
+msgid "XSMP handling save-yourself request"
+msgstr "XSMP : prise en charge d'une requte save-yourself"
+
+msgid "XSMP opening connection"
+msgstr "XSMP : ouverture de la connexion"
+
+msgid "XSMP ICE connection watch failed"
+msgstr "XSMP : chec de la surveillance de connexion ICE"
+
#, c-format
-msgid "E447: Can't find file \"%s\" in path"
-msgstr "E447: Le fichier \"%s\" est introuvable dans 'path'"
+msgid "XSMP SmcOpenConnection failed: %s"
+msgstr "XSMP : SmcOpenConnection a chou : %s"
+
+msgid "At line"
+msgstr " la ligne"
+
+msgid "Could not load vim32.dll!"
+msgstr "Impossible de charger vim32.dll !"
+
+msgid "VIM Error"
+msgstr "Erreur VIM"
+
+msgid "Could not fix up function pointers to the DLL!"
+msgstr "Impossible d'initialiser les pointeurs de fonction vers la DLL !"
+
+# DB - Les vnements en question sont ceux des messages qui suivent.
+#, c-format
+msgid "Vim: Caught %s event\n"
+msgstr "Vim : vnement %s intercept\n"
+
+msgid "close"
+msgstr "de fermeture"
+
+msgid "logoff"
+msgstr "de dconnexion"
+
+msgid "shutdown"
+msgstr "d'arrt"
+
+msgid "E371: Command not found"
+msgstr "E371: Commande introuvable"
+
+msgid ""
+"VIMRUN.EXE not found in your $PATH.\n"
+"External commands will not pause after completion.\n"
+"See :help win32-vimrun for more information."
+msgstr ""
+"VIMRUN.EXE est introuvable votre $PATH.\n"
+"Les commandes externes ne feront pas de pause une fois termines.\n"
+"Consultez :help win32-vimrun pour plus d'informations."
+
+msgid "Vim Warning"
+msgstr "Alerte Vim"
+
+#, c-format
+msgid "shell returned %d"
+msgstr "le shell a retourn %d"
#, c-format
msgid "E372: Too many %%%c in format string"
@@ -4031,6 +4912,15 @@ msgstr "E379: Nom de rpertoire vide ou absent"
msgid "E553: No more items"
msgstr "E553: Plus d'lments"
+msgid "E924: Current window was closed"
+msgstr "E924: La fentre courante doit tre ferme"
+
+msgid "E925: Current quickfix was changed"
+msgstr "E925: Le quickfix courant a chang"
+
+msgid "E926: Current location list was changed"
+msgstr "E926: La liste d'emplacements courante a chang"
+
#, c-format
msgid "(%d of %d)%s%s: "
msgstr "(%d sur %d)%s%s : "
@@ -4038,19 +4928,25 @@ msgstr "(%d sur %d)%s%s : "
msgid " (line deleted)"
msgstr " (ligne efface)"
+#, c-format
+msgid "%serror list %d of %d; %d errors "
+msgstr "%sliste d'erreurs %d sur %d ; %d erreurs"
+
msgid "E380: At bottom of quickfix stack"
msgstr "E380: En bas de la pile quickfix"
msgid "E381: At top of quickfix stack"
msgstr "E381: Au sommet de la pile quickfix"
-#, c-format
-msgid "error list %d of %d; %d errors"
-msgstr "liste d'erreurs %d sur %d ; %d erreurs"
+msgid "No entries"
+msgstr "Aucune entre"
msgid "E382: Cannot write, 'buftype' option is set"
msgstr "E382: criture impossible, l'option 'buftype' est active"
+msgid "Error file"
+msgstr "Fichier d'erreurs"
+
msgid "E683: File name missing or invalid pattern"
msgstr "E683: Nom de fichier manquant ou motif invalide"
@@ -4155,6 +5051,10 @@ msgstr "E554: Erreur de syntaxe dans %s{...}"
msgid "External submatches:\n"
msgstr "Sous-correspondances externes :\n"
+#, c-format
+msgid "E888: (NFA regexp) cannot repeat %s"
+msgstr "E888: (regexp NFA) %s ne peut pas tre rpt"
+
msgid ""
"E864: \\%#= can only be followed by 0, 1, or 2. The automatic engine will be "
"used "
@@ -4162,6 +5062,9 @@ msgstr ""
"E864: \\%#= peut tre suivi uniquement de 0, 1 ou 2. Le moteur automatique "
"sera utilis "
+msgid "Switching to backtracking RE engine for pattern: "
+msgstr "Moteur RE avec backtracking utilis pour le motif : "
+
msgid "E865: (NFA) Regexp end encountered prematurely"
msgstr "E865: (NFA) Fin de regexp rencontre prmaturment"
@@ -4169,17 +5072,21 @@ msgstr "E865: (NFA) Fin de regexp rencontre prmaturment"
msgid "E866: (NFA regexp) Misplaced %c"
msgstr "E866: (regexp NFA) %c au mauvais endroit"
-#, fuzzy, c-format
-#~ msgid "E877: (NFA regexp) Invalid character class: %<PRId64>"
-#~ msgstr "E877: (regexp NFA) Classe de caractre invalide "
+#, c-format
+msgid "E877: (NFA regexp) Invalid character class: %ld"
+msgstr "E877: (regexp NFA) Classe de caractre invalide : %ld"
#, c-format
msgid "E867: (NFA) Unknown operator '\\z%c'"
msgstr "E867: (NFA) Oprateur inconnu '\\z%c'"
-#, fuzzy, c-format
-#~ msgid "E867: (NFA) Unknown operator '\\%%%c'"
-#~ msgstr "E867: (NFA) Oprateur inconnu '\\z%c'"
+#, c-format
+msgid "E867: (NFA) Unknown operator '\\%%%c'"
+msgstr "E867: (NFA) Oprateur inconnu '\\%%%c'"
+
+#. should never happen
+msgid "E868: Error building NFA with equivalence class!"
+msgstr "E868: Erreur lors de la construction du NFA avec classe d'quivalence"
#, c-format
msgid "E869: (NFA) Unknown operator '\\@%c'"
@@ -4196,9 +5103,8 @@ msgstr "E871: (regexp NFA) Un multi ne peut pas suivre un multi !"
msgid "E872: (NFA regexp) Too many '('"
msgstr "E872: (regexp NFA) Trop de '('"
-#, fuzzy
-#~ msgid "E879: (NFA regexp) Too many \\z("
-#~ msgstr "E872: (regexp NFA) Trop de '('"
+msgid "E879: (NFA regexp) Too many \\z("
+msgstr "E879: (regexp NFA) Trop de \\z("
msgid "E873: (NFA regexp) proper termination error"
msgstr "E873: (NFA regexp) erreur de terminaison"
@@ -4216,6 +5122,10 @@ msgstr ""
msgid "E876: (NFA regexp) Not enough space to store the whole NFA "
msgstr "E876: (regexp NFA) Pas assez de mmoire pour stocker le NFA"
+msgid "E878: (NFA) Could not allocate memory for branch traversal!"
+msgstr ""
+"E878: (NFA) Impossible d'allouer la mmoire pour parcourir les branches !"
+
msgid ""
"Could not open temporary log file for writing, displaying on stderr ... "
msgstr ""
@@ -4257,9 +5167,6 @@ msgstr " hbreu"
msgid " Arabic"
msgstr " arabe"
-msgid " (lang)"
-msgstr " (langue)"
-
msgid " (paste)"
msgstr " (collage)"
@@ -4354,8 +5261,48 @@ msgstr ""
"# Dernier motif de recherche %s :\n"
"~"
-msgid "E759: Format error in spell file"
-msgstr "E759: Erreur de format du fichier orthographique"
+msgid "E756: Spell checking is not enabled"
+msgstr "E756: La vrification orthographique n'est pas active"
+
+#, c-format
+msgid "Warning: Cannot find word list \"%s_%s.spl\" or \"%s_ascii.spl\""
+msgstr "Alerte : Liste de mots \"%s_%s.spl\" ou \"%s_ascii.spl\" introuvable"
+
+#, c-format
+msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
+msgstr "Alerte : Liste de mots \"%s.%s.spl\" ou \"%s.ascii.spl\" introuvable"
+
+msgid "E797: SpellFileMissing autocommand deleted buffer"
+msgstr "E797: L'autocommande SpellFileMissing a effac le tampon"
+
+#, c-format
+msgid "Warning: region %s not supported"
+msgstr "Alerte : rgion %s non supporte"
+
+msgid "Sorry, no suggestions"
+msgstr "Dsol, aucune suggestion"
+
+#, c-format
+msgid "Sorry, only %ld suggestions"
+msgstr "Dsol, seulement %ld suggestions"
+
+#. for when 'cmdheight' > 1
+#. avoid more prompt
+#, c-format
+msgid "Change \"%.*s\" to:"
+msgstr "Remplacer \"%.*s\" par :"
+
+# DB - todo : l'intrt de traduire ce message m'chappe.
+#, c-format
+msgid " < \"%.*s\""
+msgstr " < \"%.*s\""
+
+msgid "E752: No previous spell replacement"
+msgstr "E752: Pas de suggestion orthographique prcdente"
+
+#, c-format
+msgid "E753: Not found: %s"
+msgstr "E753: Introuvable : %s"
msgid "E758: Truncated spell file"
msgstr "E758: Fichier orthographique tronqu"
@@ -4377,13 +5324,6 @@ msgstr "E762: Un caractre dans FOL, LOW ou UPP est hors-limites"
msgid "Compressing word tree..."
msgstr "Compression de l'arbre des mots"
-msgid "E756: Spell checking is not enabled"
-msgstr "E756: La vrification orthographique n'est pas active"
-
-#, c-format
-msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
-msgstr "Alerte : Liste de mots \"%s.%s.spl\" ou \"%s.ascii.spl\" introuvable"
-
#, c-format
msgid "Reading spell file \"%s\""
msgstr "Lecture du fichier orthographique \"%s\""
@@ -4401,8 +5341,24 @@ msgid "E770: Unsupported section in spell file"
msgstr "E770: Section non supporte dans le fichier orthographique"
#, c-format
-msgid "Warning: region %s not supported"
-msgstr "Alerte : rgion %s non supporte"
+msgid "E778: This does not look like a .sug file: %s"
+msgstr "E778: %s ne semble pas tre un fichier .sug"
+
+#, c-format
+msgid "E779: Old .sug file, needs to be updated: %s"
+msgstr "E779: Fichier de suggestions obsolte, mise jour ncessaire : %s"
+
+#, c-format
+msgid "E780: .sug file is for newer version of Vim: %s"
+msgstr "E780: Fichier .sug prvu pour une version de Vim plus rcente : %s"
+
+#, c-format
+msgid "E781: .sug file doesn't match .spl file: %s"
+msgstr "E781: Le fichier .sug ne correspond pas au fichier .spl : %s"
+
+#, c-format
+msgid "E782: error while reading .sug file: %s"
+msgstr "E782: Erreur lors de la lecture de fichier de suggestions : %s"
#, c-format
msgid "Reading affix file %s ..."
@@ -4417,6 +5373,10 @@ msgid "Conversion in %s not supported: from %s to %s"
msgstr "La conversion dans %s non supporte : de %s vers %s"
#, c-format
+msgid "Conversion in %s not supported"
+msgstr "La conversion dans %s non supporte"
+
+#, c-format
msgid "Invalid value for FLAG in %s line %d: %s"
msgstr "Valeur de FLAG invalide dans %s ligne %d : %s"
@@ -4604,6 +5564,9 @@ msgstr "Drapeaux non reconnus dans %s ligne %d : %s"
msgid "Ignored %d words with non-ASCII characters"
msgstr "%d mot(s) ignor(s) avec des caractres non-ASCII"
+msgid "E845: Insufficient memory, word list will be incomplete"
+msgstr "E845: mmoire insuffisante, liste de mots peut-tre incomplte"
+
#, c-format
msgid "Compressed %d of %d nodes; %d (%d%%) remaining"
msgstr "%d noeuds compresss sur %d ; %d (%d%%) restants "
@@ -4611,14 +5574,16 @@ msgstr "%d noeuds compresss sur %d ; %d (%d%%) restants "
msgid "Reading back spell file..."
msgstr "Relecture du fichier orthographique"
-#. Go through the trie of good words, soundfold each word and add it to
-#. the soundfold trie.
+#.
+#. * Go through the trie of good words, soundfold each word and add it to
+#. * the soundfold trie.
+#.
msgid "Performing soundfolding..."
msgstr "Analyse phontique en cours..."
#, c-format
-msgid "Number of words after soundfolding: %<PRId64>"
-msgstr "Nombre de mots aprs l'analyse phontique : %<PRId64>"
+msgid "Number of words after soundfolding: %ld"
+msgstr "Nombre de mots aprs l'analyse phontique : %ld"
#, c-format
msgid "Total number of words: %d"
@@ -4654,70 +5619,25 @@ msgstr "Termin !"
# DB - todo : perfectible.
#, c-format
-msgid "E765: 'spellfile' does not have %<PRId64> entries"
-msgstr "E765: 'spellfile' n'a pas %<PRId64> entres"
+msgid "E765: 'spellfile' does not have %ld entries"
+msgstr "E765: 'spellfile' n'a pas %ld entres"
-#, fuzzy, c-format
-#~ msgid "Word '%.*s' removed from %s"
-#~ msgstr "Mot retir de %s"
+#, c-format
+msgid "Word '%.*s' removed from %s"
+msgstr "Mot '%.*s' retir de %s"
-#, fuzzy, c-format
-#~ msgid "Word '%.*s' added to %s"
-#~ msgstr "Mot ajout dans %s"
+#, c-format
+msgid "Word '%.*s' added to %s"
+msgstr "Mot '%.*s' ajout dans %s"
msgid "E763: Word characters differ between spell files"
msgstr ""
"E763: Les caractres de mots diffrent entre les fichiers orthographiques"
-msgid "Sorry, no suggestions"
-msgstr "Dsol, aucune suggestion"
-
-#, c-format
-msgid "Sorry, only %<PRId64> suggestions"
-msgstr "Dsol, seulement %<PRId64> suggestions"
-
-#. for when 'cmdheight' > 1
-#. avoid more prompt
-#, c-format
-msgid "Change \"%.*s\" to:"
-msgstr "Remplacer \"%.*s\" par :"
-
-# DB - todo : l'intrt de traduire ce message m'chappe.
-#, c-format
-msgid " < \"%.*s\""
-msgstr " < \"%.*s\""
-
-msgid "E752: No previous spell replacement"
-msgstr "E752: Pas de suggestion orthographique prcdente"
-
-#, c-format
-msgid "E753: Not found: %s"
-msgstr "E753: Introuvable : %s"
-
-#, c-format
-msgid "E778: This does not look like a .sug file: %s"
-msgstr "E778: %s ne semble pas tre un fichier .sug"
-
-#, c-format
-msgid "E779: Old .sug file, needs to be updated: %s"
-msgstr "E779: Fichier de suggestions obsolte, mise jour ncessaire : %s"
-
-#, c-format
-msgid "E780: .sug file is for newer version of Vim: %s"
-msgstr "E780: Fichier .sug prvu pour une version de Vim plus rcente : %s"
-
-#, c-format
-msgid "E781: .sug file doesn't match .spl file: %s"
-msgstr "E781: Le fichier .sug ne correspond pas au fichier .spl : %s"
-
-#, c-format
-msgid "E782: error while reading .sug file: %s"
-msgstr "E782: Erreur lors de la lecture de fichier de suggestions : %s"
-
#. This should have been checked when generating the .spl
-#. file.
+#. * file.
msgid "E783: duplicate char in MAP entry"
-msgstr "E783: caractres dupliqu dans l'entre MAP"
+msgstr "E783: caractre dupliqu dans l'entre MAP"
msgid "No Syntax items defined for this buffer"
msgstr "Aucun lment de syntaxe dfini pour ce tampon"
@@ -4726,6 +5646,9 @@ msgstr "Aucun lment de syntaxe dfini pour ce tampon"
msgid "E390: Illegal argument: %s"
msgstr "E390: Argument invalide : %s"
+msgid "syntax iskeyword "
+msgstr "syntaxe iskeyword "
+
#, c-format
msgid "E391: No such syntax cluster: %s"
msgstr "E391: Aucune grappe de syntaxe %s"
@@ -4806,6 +5729,10 @@ msgid "E789: Missing ']': %s"
msgstr "E789: ']' manquant : %s"
#, c-format
+msgid "E890: trailing char after ']': %s]%s"
+msgstr "E890: Caractre surnumraire aprs ']': %s]%s"
+
+#, c-format
msgid "E398: Missing '=': %s"
msgstr "E398: '=' manquant : %s"
@@ -4819,7 +5746,6 @@ msgstr "E848: Trop de grappes de syntaxe"
msgid "E400: No cluster specified"
msgstr "E400: Aucune grappe spcifie"
-#. end delimiter not found
#, c-format
msgid "E401: Pattern delimiter not found: %s"
msgstr "E401: Dlimiteur de motif introuvable : %s"
@@ -4860,9 +5786,10 @@ msgstr "E409: Nom de groupe inconnu : %s"
msgid "E410: Invalid :syntax subcommand: %s"
msgstr "E410: Sous-commande de :syntax invalide : %s"
-#~ msgid ""
-#~ " TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN"
-#~ msgstr ""
+msgid ""
+" TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN"
+msgstr ""
+" TOTAL NOMBRE MATCH PLUS LENT MOYEN NOM MOTIF"
msgid "E679: recursive loop loading syncolor.vim"
msgstr "E679: boucle rcursive lors du chargement de syncolor.vim"
@@ -4985,6 +5912,10 @@ msgstr ""
msgid "Searching tags file %s"
msgstr "Examen du fichier de marqueurs %s"
+#, c-format
+msgid "E430: Tag file path truncated for %s\n"
+msgstr "E430: Chemin de fichiers de marqueurs tronqu pour %s\n"
+
msgid "Ignoring long line in tags file"
msgstr "Ignore longue ligne dans le fichier de marqueurs"
@@ -4993,8 +5924,8 @@ msgid "E431: Format error in tags file \"%s\""
msgstr "E431: Erreur de format dans le fichier de marqueurs \"%s\""
#, c-format
-msgid "Before byte %<PRId64>"
-msgstr "Avant l'octet %<PRId64>"
+msgid "Before byte %ld"
+msgstr "Avant l'octet %ld"
#, c-format
msgid "E432: Tags file not sorted: %s"
@@ -5045,14 +5976,28 @@ msgstr ""
"\n"
"--- Touches du terminal ---"
+msgid "Cannot open $VIMRUNTIME/rgb.txt"
+msgstr "Impossible d'ouvrir $VIMRUNTIME/rgb.txt"
+
+msgid "new shell started\n"
+msgstr "nouveau shell dmarr\n"
+
msgid "Vim: Error reading input, exiting...\n"
msgstr "Vim : Erreur lors de la lecture de l'entre, sortie...\n"
+# DB - Message de dbogage.
+msgid "Used CUT_BUFFER0 instead of empty selection"
+msgstr "CUT_BUFFER0 utilis plutt qu'une slection vide"
+
#. This happens when the FileChangedRO autocommand changes the
#. * file in a way it becomes shorter.
-#, fuzzy
-#~ msgid "E881: Line count changed unexpectedly"
-#~ msgstr "E834: Le nombre de lignes a t chang inopinment"
+msgid "E881: Line count changed unexpectedly"
+msgstr "E881: Le nombre de lignes a t chang inopinment"
+
+# DB - Question O/N.
+#. must display the prompt
+msgid "No undo possible; continue anyway"
+msgstr "Annulation impossible ; continuer"
#, c-format
msgid "E828: Cannot open undo file for writing: %s"
@@ -5103,6 +6048,18 @@ msgid "E823: Not an undo file: %s"
msgstr "E823: Ce n'est pas un fichier d'annulations : %s"
#, c-format
+msgid "E832: Non-encrypted file has encrypted undo file: %s"
+msgstr "E832: Fichier non-chiffr a un fichier d'annulations chiffr : %s"
+
+#, c-format
+msgid "E826: Undo file decryption failed: %s"
+msgstr "E826: Dchiffrage du fichier d'annulation a chou : %s"
+
+#, c-format
+msgid "E827: Undo file is encrypted: %s"
+msgstr "E827: Le fichier d'annulations est chiffr : %s"
+
+#, c-format
msgid "E824: Incompatible undo file: %s"
msgstr "E824: Fichier d'annulations incompatible : %s"
@@ -5122,8 +6079,8 @@ msgid "Already at newest change"
msgstr "Dj la modification la plus rcente"
#, c-format
-msgid "E830: Undo number %<PRId64> not found"
-msgstr "E830: Annulation n %<PRId64> introuvable"
+msgid "E830: Undo number %ld not found"
+msgstr "E830: Annulation n %ld introuvable"
msgid "E438: u_undo: line numbers wrong"
msgstr "E438: u_undo : numros de ligne errons"
@@ -5147,8 +6104,8 @@ msgid "changes"
msgstr "modifications"
#, c-format
-msgid "%<PRId64> %s; %s #%<PRId64> %s"
-msgstr "%<PRId64> %s ; %s #%<PRId64> ; %s"
+msgid "%ld %s; %s #%ld %s"
+msgstr "%ld %s ; %s #%ld ; %s"
msgid "before"
msgstr "avant"
@@ -5164,8 +6121,8 @@ msgid "number changes when saved"
msgstr "numro modif. instant enregistr"
#, c-format
-msgid "%<PRId64> seconds ago"
-msgstr "il y a %<PRId64> secondes"
+msgid "%ld seconds ago"
+msgstr "il y a %ld secondes"
msgid "E790: undojoin is not allowed after undo"
msgstr "E790: undojoin n'est pas autoris aprs une annulation"
@@ -5176,6 +6133,208 @@ msgstr "E439: la liste d'annulation est corrompue"
msgid "E440: undo line missing"
msgstr "E440: ligne d'annulation manquante"
+#, c-format
+msgid "E122: Function %s already exists, add ! to replace it"
+msgstr "E122: La fonction %s existe dj (ajoutez ! pour la remplacer)"
+
+msgid "E717: Dictionary entry already exists"
+msgstr "E717: Une entre du Dictionnaire porte dj ce nom"
+
+msgid "E718: Funcref required"
+msgstr "E718: Rfrence de fonction (Funcref) requise"
+
+#, c-format
+msgid "E130: Unknown function: %s"
+msgstr "E130: Fonction inconnue : %s"
+
+#, c-format
+msgid "E125: Illegal argument: %s"
+msgstr "E125: Argument invalide : %s"
+
+#, c-format
+msgid "E853: Duplicate argument name: %s"
+msgstr "E853: Nom d'argument dupliqu : %s"
+
+#, c-format
+msgid "E740: Too many arguments for function %s"
+msgstr "E740: Trop d'arguments pour la fonction %s"
+
+#, c-format
+msgid "E116: Invalid arguments for function %s"
+msgstr "E116: Arguments invalides pour la fonction %s"
+
+# AB - Vrifier dans la littrature technique s'il n'existe pas une meilleure
+# traduction pour "function call depth".
+msgid "E132: Function call depth is higher than 'maxfuncdepth'"
+msgstr ""
+"E132: La profondeur d'appel de fonction est suprieure 'maxfuncdepth'"
+
+# AB - Ce texte fait partie d'un message de dbogage.
+#, c-format
+msgid "calling %s"
+msgstr "appel de %s"
+
+# AB - Vrifier.
+#, c-format
+msgid "%s aborted"
+msgstr "%s annule"
+
+# AB - Ce texte fait partie d'un message de dbogage.
+#, c-format
+msgid "%s returning #%ld"
+msgstr "%s a retourn #%ld"
+
+# AB - Ce texte fait partie d'un message de dbogage.
+#, c-format
+msgid "%s returning %s"
+msgstr "%s a retourn \"%s\""
+
+msgid "E699: Too many arguments"
+msgstr "E699: Trop d'arguments"
+
+#, c-format
+msgid "E117: Unknown function: %s"
+msgstr "E117: Fonction inconnue : %s"
+
+#, c-format
+msgid "E933: Function was deleted: %s"
+msgstr "E933: La fonction a t efface: %s"
+
+#, c-format
+msgid "E119: Not enough arguments for function: %s"
+msgstr "E119: La fonction %s n'a pas reu assez d'arguments"
+
+#, c-format
+msgid "E120: Using <SID> not in a script context: %s"
+msgstr "E120: <SID> utilis en dehors d'un script : %s"
+
+#, c-format
+msgid "E725: Calling dict function without Dictionary: %s"
+msgstr "E725: Appel d'une fonction dict sans Dictionnaire : %s"
+
+msgid "E129: Function name required"
+msgstr "E129: Nom de fonction requis"
+
+#, c-format
+msgid "E128: Function name must start with a capital or \"s:\": %s"
+msgstr ""
+"E128: Le nom de la fonction doit commencer par une majuscule ou \"s:\": %s"
+
+#, c-format
+msgid "E884: Function name cannot contain a colon: %s"
+msgstr ""
+"E884: Le nom de la fonction ne peut pas contenir le caractre deux-points : "
+"%s"
+
+#, c-format
+msgid "E123: Undefined function: %s"
+msgstr "E123: Fonction non dfinie : %s"
+
+# AB - La version franaise est plus consistante que la version anglaise.
+# AB - Je suis partag entre la concision d'une traduction assez littrale et
+# la lourdeur d'une traduction plus correcte.
+#, c-format
+msgid "E124: Missing '(': %s"
+msgstr "E124: Il manque '(' aprs %s"
+
+msgid "E862: Cannot use g: here"
+msgstr "E862: Impossible d'utiliser g: ici"
+
+#, c-format
+msgid "E932: Closure function should not be at top level: %s"
+msgstr ""
+"E932: une fonction fermeture ne devrait pas tre au niveau principal : %s"
+
+msgid "E126: Missing :endfunction"
+msgstr "E126: Il manque :endfunction"
+
+#, c-format
+msgid "E707: Function name conflicts with variable: %s"
+msgstr "E707: Le nom de fonction entre en conflit avec la variable : %s"
+
+#, c-format
+msgid "E127: Cannot redefine function %s: It is in use"
+msgstr "E127: Impossible de redfinir fonction %s : dj utilise"
+
+# DB - Le contenu du "c-format" est le nom de la fonction.
+#, c-format
+msgid "E746: Function name does not match script file name: %s"
+msgstr "E746: Le nom de la fonction %s ne correspond pas le nom du script"
+
+# AB - Il est difficile de crer une version franaise qui fasse moins de 80
+# caractres de long, nom de la fonction compris : "It is in use" est une
+# expression trs dense. Traductions possibles : "elle est utilise",
+# "elle s'excute" ou "elle est occupe".
+#, c-format
+msgid "E131: Cannot delete function %s: It is in use"
+msgstr "E131: Impossible d'effacer %s : cette fonction est utilise"
+
+msgid "E133: :return not inside a function"
+msgstr "E133: :return en dehors d'une fonction"
+
+#, c-format
+msgid "E107: Missing parentheses: %s"
+msgstr "E107: Parenthses manquantes : %s"
+
+msgid ""
+"\n"
+"MS-Windows 64-bit GUI version"
+msgstr ""
+"\n"
+"Version graphique MS-Windows 64 bits"
+
+msgid ""
+"\n"
+"MS-Windows 32-bit GUI version"
+msgstr ""
+"\n"
+"Version graphique MS-Windows 32 bits"
+
+msgid " with OLE support"
+msgstr " supportant l'OLE"
+
+msgid ""
+"\n"
+"MS-Windows 64-bit console version"
+msgstr ""
+"\n"
+"Version console MS-Windows 64 bits"
+
+msgid ""
+"\n"
+"MS-Windows 32-bit console version"
+msgstr ""
+"\n"
+"Version console MS-Windows 32 bits"
+
+msgid ""
+"\n"
+"MacOS X (unix) version"
+msgstr ""
+"\n"
+"Version MaxOS X (unix)"
+
+msgid ""
+"\n"
+"MacOS X version"
+msgstr ""
+"\n"
+"Version MacOS X"
+
+msgid ""
+"\n"
+"MacOS version"
+msgstr ""
+"\n"
+"Version MacOS"
+
+msgid ""
+"\n"
+"OpenVMS version"
+msgstr ""
+"\n"
+"Version OpenVMS"
+
msgid ""
"\n"
"Included patches: "
@@ -5210,9 +6369,70 @@ msgstr ""
"\n"
"norme version "
+msgid ""
+"\n"
+"Big version "
+msgstr ""
+"\n"
+"Grosse version "
+
+msgid ""
+"\n"
+"Normal version "
+msgstr ""
+"\n"
+"Version normale "
+
+msgid ""
+"\n"
+"Small version "
+msgstr ""
+"\n"
+"Petite version "
+
+msgid ""
+"\n"
+"Tiny version "
+msgstr ""
+"\n"
+"Version minuscule "
+
msgid "without GUI."
msgstr "sans interface graphique."
+msgid "with GTK3 GUI."
+msgstr "avec interface graphique GTK3."
+
+msgid "with GTK2-GNOME GUI."
+msgstr "avec interface graphique GTK2-GNOME."
+
+msgid "with GTK2 GUI."
+msgstr "avec interface graphique GTK2."
+
+msgid "with X11-Motif GUI."
+msgstr "avec interface graphique X11-Motif."
+
+msgid "with X11-neXtaw GUI."
+msgstr "avec interface graphique X11-neXtaw."
+
+msgid "with X11-Athena GUI."
+msgstr "avec interface graphique X11-Athena."
+
+msgid "with Photon GUI."
+msgstr "avec interface graphique Photon."
+
+msgid "with GUI."
+msgstr "avec une interface graphique."
+
+msgid "with Carbon GUI."
+msgstr "avec interface graphique Carbon."
+
+msgid "with Cocoa GUI."
+msgstr "avec interface graphique Cocoa."
+
+msgid "with (classic) GUI."
+msgstr "avec interface graphique (classic)."
+
msgid " Features included (+) or not (-):\n"
msgstr " Fonctionnalits incluses (+) ou non (-) :\n"
@@ -5234,6 +6454,24 @@ msgstr " fichier exrc utilisateur : \""
msgid " 2nd user exrc file: \""
msgstr " 2me fichier exrc utilisateur : \""
+msgid " system gvimrc file: \""
+msgstr " fichier gvimrc systme : \""
+
+msgid " user gvimrc file: \""
+msgstr " fichier gvimrc utilisateur : \""
+
+msgid "2nd user gvimrc file: \""
+msgstr "2me fichier gvimrc utilisateur : \""
+
+msgid "3rd user gvimrc file: \""
+msgstr "3me fichier gvimrc utilisateur : \""
+
+msgid " defaults file: \""
+msgstr " fichier de valeurs par dfaut : \""
+
+msgid " system menu file: \""
+msgstr " fichier menu systme : \""
+
msgid " fall-back for $VIM: \""
msgstr " $VIM par dfaut : \""
@@ -5243,6 +6481,9 @@ msgstr " $VIMRUNTIME par dfaut : \""
msgid "Compilation: "
msgstr "Compilation : "
+msgid "Compiler: "
+msgstr "Compilateur : "
+
msgid "Linking: "
msgstr "dition de liens : "
@@ -5264,26 +6505,17 @@ msgstr "Vim est un logiciel libre"
msgid "Help poor children in Uganda!"
msgstr "Aidez les enfants pauvres d'Ouganda !"
-msgid "type :help nvim<Enter> if you are new! "
-msgstr "tapez :help nvim<Entre> si vous tes nouveau! "
-
-msgid "type :CheckHealth<Enter> to optimize Nvim"
-msgstr "tapez :CheckHealth<Entre> pour optimiser Nvim "
+msgid "type :help iccf<Enter> for information "
+msgstr "tapez :help iccf<Entre> pour plus d'informations "
msgid "type :q<Enter> to exit "
msgstr "tapez :q<Entre> pour sortir du programme "
-msgid "type :help<Enter> for help "
-msgstr "tapez :help<Entre> pour obtenir de l'aide "
-
-msgid "type :help iccf<Enter> for information "
-msgstr "tapez :help iccf<Entre> pour plus d'informations "
-
msgid "type :help<Enter> or <F1> for on-line help"
msgstr "tapez :help<Entre> ou <F1> pour accder l'aide en ligne "
-msgid "type :help version7<Enter> for version info"
-msgstr "tapez :help version7<Entre> pour lire les notes de mise jour"
+msgid "type :help version8<Enter> for version info"
+msgstr "tapez :help version8<Entre> pour lire les notes de mise jour"
# DB - Pour les trois messages qui suivent :
# :set cp
@@ -5297,6 +6529,27 @@ msgstr "tapez :set nocp<Entre> pour la dsactiver"
msgid "type :help cp-default<Enter> for info on this"
msgstr "tapez :help cp-default<Entre> pour plus d'info"
+msgid "menu Help->Orphans for information "
+msgstr "menu Aide->Orphelins pour plus d'info"
+
+msgid "Running modeless, typed text is inserted"
+msgstr "Les modes sont dsactivs, le texte saisi est insr"
+
+msgid "menu Edit->Global Settings->Toggle Insert Mode "
+msgstr "menu dition->Rglages Globaux->Insertion Permanente"
+
+# DB - todo
+msgid " for two modes "
+msgstr " pour les modes "
+
+# DB - todo
+msgid "menu Edit->Global Settings->Toggle Vi Compatible"
+msgstr "menu dition->Rglages Globaux->Compatibilit Vi"
+
+# DB - todo
+msgid " for Vim defaults "
+msgstr " pour df. de Vim "
+
msgid "Sponsor Vim development!"
msgstr "Sponsorisez le dveloppement de Vim !"
@@ -5341,1711 +6594,724 @@ msgstr "E445: Les modifications de l'autre fentre n'ont pas t enregistres"
msgid "E446: No file name under cursor"
msgstr "E446: Aucun nom de fichier sous le curseur"
-#~ msgid "E831: bf_key_init() called with empty password"
-#~ msgstr "E831: bf_key_init() appele avec un mot de passe vide"
-
-#~ msgid "E820: sizeof(uint32_t) != 4"
-#~ msgstr "E820: sizeof(uint32_t) != 4"
-
-#~ msgid "E817: Blowfish big/little endian use wrong"
-#~ msgstr "E817: petit/gros boutisme incorrect dans blowfish"
-
-#~ msgid "E818: sha256 test failed"
-#~ msgstr "E818: le test de sha256 a chou"
-
-#~ msgid "E819: Blowfish test failed"
-#~ msgstr "E819: le test de blowfish a chou"
-
-#~ msgid "Patch file"
-#~ msgstr "Fichier rustine"
-
-# AB - Textes des boutons de la bote de dialogue affiche par inputdialog().
-#~ msgid ""
-#~ "&OK\n"
-#~ "&Cancel"
-#~ msgstr ""
-#~ "&Ok\n"
-#~ "&Annuler"
-
-# AB - mon avis, la version anglaise est errone.
-# DB : Vrifier
-#~ msgid "E240: No connection to Vim server"
-#~ msgstr "E240: Pas de connexion au serveur X"
-
-# AB - La version franaise est meilleure que la version anglaise.
-#~ msgid "E241: Unable to send to %s"
-#~ msgstr "E241: L'envoi au serveur %s chou"
-
-#~ msgid "E277: Unable to read a server reply"
-#~ msgstr "E277: Impossible de lire la rponse du serveur"
-
-# AB - La version franaise est meilleure que la version anglaise.
-#~ msgid "E258: Unable to send to client"
-#~ msgstr "E258: La rponse n'a pas pu tre envoye au client"
-
-# AB - Ceci est un titre de bote de dialogue. Vrifier que la version
-# franaise est correcte pour les trois rfrences ; j'ai un doute quant
-# la troisime.
-#~ msgid "Save As"
-#~ msgstr "Enregistrer sous - Vim"
-
-# AB - Ceci est un titre de bote de dialogue.
-#~ msgid "Edit File"
-#~ msgstr "Ouvrir un fichier - Vim"
-
-#~ msgid " (NOT FOUND)"
-#~ msgstr " (INTROUVABLE)"
-
-#~ msgid "Source Vim script"
-#~ msgstr "Sourcer un script - Vim"
-
-#~ msgid "unknown"
-#~ msgstr "inconnu"
-
-#~ msgid "Edit File in new window"
-#~ msgstr "Ouvrir un fichier dans une nouvelle fentre - Vim"
-
-#~ msgid "Append File"
-#~ msgstr "Ajouter fichier"
-
-#~ msgid "Window position: X %d, Y %d"
-#~ msgstr "Position de la fentre : X %d, Y %d"
-
-#~ msgid "Save Redirection"
-#~ msgstr "Enregistrer la redirection"
-
-#~ msgid "Save View"
-#~ msgstr "Enregistrer la vue - Vim"
-
-#~ msgid "Save Session"
-#~ msgstr "Enregistrer la session - Vim"
-
-#~ msgid "Save Setup"
-#~ msgstr "Enregistrer les rglages - Vim"
-
-#~ msgid "E809: #< is not available without the +eval feature"
-#~ msgstr "E809: #< n'est pas disponible sans la fonctionnalit +eval"
-
-#~ msgid "E196: No digraphs in this version"
-#~ msgstr "E196: Pas de digraphes dans cette version"
-
-#~ msgid "is a device (disabled with 'opendevice' option)"
-#~ msgstr "est un priphrique (dsactiv par l'option 'opendevice')"
-
-#~ msgid "Reading from stdin..."
-#~ msgstr "Lecture de stdin..."
-
-#~ msgid "[crypted]"
-#~ msgstr "[chiffr]"
-
-#~ msgid "E821: File is encrypted with unknown method"
-#~ msgstr "E821: Le fichier est chiffr avec une mthode inconnue"
-
-#~ msgid "NetBeans disallows writes of unmodified buffers"
-#~ msgstr "NetBeans interdit l'criture des tampons non modifis"
-
-#~ msgid "Partial writes disallowed for NetBeans buffers"
-#~ msgstr "Netbeans interdit l'criture partielle de ses tampons"
-
-#~ msgid "writing to device disabled with 'opendevice' option"
-#~ msgstr "criture vers un priphrique dsactiv par l'option 'opendevice'"
-
-#~ msgid "E460: The resource fork would be lost (add ! to override)"
-#~ msgstr ""
-#~ "E460: Les ressources partages seraient perdues (ajoutez ! pour passer "
-#~ "outre)"
-
-#~ msgid "E851: Failed to create a new process for the GUI"
-#~ msgstr ""
-#~ "E851: chec lors de la cration d'un nouveau processus pour l'interface "
-#~ "graphique"
-
-#~ msgid "E852: The child process failed to start the GUI"
-#~ msgstr ""
-#~ "E852: Le processus fils n'a pas russi dmarrer l'interface graphique"
-
-#~ msgid "E229: Cannot start the GUI"
-#~ msgstr "E229: Impossible de dmarrer l'interface graphique"
-
-#~ msgid "E230: Cannot read from \"%s\""
-#~ msgstr "E230: Impossible de lire \"%s\""
-
-#~ msgid "E665: Cannot start GUI, no valid font found"
-#~ msgstr ""
-#~ "E665: Impossible de dmarrer l'IHM graphique, aucune police valide trouve"
-
-#~ msgid "E231: 'guifontwide' invalid"
-#~ msgstr "E231: 'guifontwide' est invalide"
-
-#~ msgid "E599: Value of 'imactivatekey' is invalid"
-#~ msgstr "E599: Valeur de 'imactivatekey' invalide"
-
-#~ msgid "E254: Cannot allocate color %s"
-#~ msgstr "E254: Impossible d'allouer la couleur %s"
-
-#~ msgid "No match at cursor, finding next"
-#~ msgstr "Aucune correspondance sous le curseur, recherche de la suivante"
-
-#~ msgid "<cannot open> "
-#~ msgstr "<impossible d'ouvrir> "
-
-#~ msgid "E616: vim_SelFile: can't get font %s"
-#~ msgstr "E616: vim_SelFile : impossible d'obtenir la police %s"
-
-#~ msgid "E614: vim_SelFile: can't return to current directory"
-#~ msgstr ""
-#~ "E614: vim_SelFile : impossible de revenir dans le rpertoire courant"
-
-#~ msgid "Pathname:"
-#~ msgstr "Chemin :"
-
-#~ msgid "E615: vim_SelFile: can't get current directory"
-#~ msgstr "E615: vim_SelFile : impossible d'obtenir le rpertoire courant"
-
-#~ msgid "OK"
-#~ msgstr "Ok"
-
-#~ msgid "Cancel"
-#~ msgstr "Annuler"
-
-#~ msgid "Scrollbar Widget: Could not get geometry of thumb pixmap."
-#~ msgstr ""
-#~ "Widget scrollbar : Impossible d'obtenir la gomtrie du pixmap 'thumb'"
-
-#~ msgid "Vim dialog"
-#~ msgstr "Vim"
-
-#~ msgid "E232: Cannot create BalloonEval with both message and callback"
-#~ msgstr "E232: Impossible de crer un BalloonEval avec message ET callback"
-
-msgid "Yes"
-msgstr "Oui"
-
-msgid "No"
-msgstr "Non"
-
-# todo '_' is for hotkey, i guess?
-#~ msgid "Input _Methods"
-#~ msgstr "_Mthodes de saisie"
-
-#~ msgid "VIM - Search and Replace..."
-#~ msgstr "Remplacer - Vim"
-
-#~ msgid "VIM - Search..."
-#~ msgstr "Rechercher - Vim"
-
-#~ msgid "Find what:"
-#~ msgstr "Rechercher :"
-
-#~ msgid "Replace with:"
-#~ msgstr "Remplacer par :"
-
-#~ msgid "Match whole word only"
-#~ msgstr "Mots entiers seulement"
-
-#~ msgid "Match case"
-#~ msgstr "Respecter la casse"
-
-#~ msgid "Direction"
-#~ msgstr "Direction"
-
-#~ msgid "Up"
-#~ msgstr "Haut"
-
-#~ msgid "Down"
-#~ msgstr "Bas"
-
-#~ msgid "Find Next"
-#~ msgstr "Suivant"
-
-#~ msgid "Replace"
-#~ msgstr "Remplacer"
-
-#~ msgid "Replace All"
-#~ msgstr "Remplacer tout"
-
-#~ msgid "Vim: Received \"die\" request from session manager\n"
-#~ msgstr ""
-#~ "Vim : Une requte \"die\" a t reue par le gestionnaire de session\n"
-
-#~ msgid "Close tab"
-#~ msgstr "Fermer l'onglet"
-
-#~ msgid "New tab"
-#~ msgstr "Nouvel onglet"
-
-# DB - todo : un peu long. Cet entre de menu permet d'ouvrir un fichier
-# dans un nouvel onglet via le slecteur de fichiers graphique.
-#~ msgid "Open Tab..."
-#~ msgstr "Ouvrir dans un onglet..."
-
-#~ msgid "Vim: Main window unexpectedly destroyed\n"
-#~ msgstr "Vim : Fentre principale dtruite inopinment\n"
-
-#~ msgid "&Filter"
-#~ msgstr "&Filtrer"
-
-#~ msgid "&Cancel"
-#~ msgstr "&Annuler"
-
-#~ msgid "Directories"
-#~ msgstr "Rpertoires"
-
-#~ msgid "Filter"
-#~ msgstr "Filtre"
-
-#~ msgid "&Help"
-#~ msgstr "&Aide"
-
-#~ msgid "Files"
-#~ msgstr "Fichiers"
-
-#~ msgid "&OK"
-#~ msgstr "&Ok"
-
-#~ msgid "Selection"
-#~ msgstr "Slection"
-
-#~ msgid "Find &Next"
-#~ msgstr "Suiva&nt"
-
-#~ msgid "&Replace"
-#~ msgstr "&Remplacer"
-
-#~ msgid "Replace &All"
-#~ msgstr "Rempl&acer tout"
-
-#~ msgid "&Undo"
-#~ msgstr "Ann&uler"
-
-#~ msgid "E671: Cannot find window title \"%s\""
-#~ msgstr "E671: Titre de fentre \"%s\" introuvable"
-
-#~ msgid "E243: Argument not supported: \"-%s\"; Use the OLE version."
-#~ msgstr "E243: Argument non support : \"-%s\" ; Utilisez la version OLE."
-
-#~ msgid "E672: Unable to open window inside MDI application"
-#~ msgstr "E672: Impossible d'ouvrir une fentre dans une application MDI"
-
-#~ msgid "Open tab..."
-#~ msgstr "Ouvrir dans un onglet..."
-
-#~ msgid "Find string (use '\\\\' to find a '\\')"
-#~ msgstr "Chercher une chane (utilisez '\\\\' pour chercher un '\\')"
-
-#~ msgid "Find & Replace (use '\\\\' to find a '\\')"
-#~ msgstr "Chercher et remplacer (utilisez '\\\\' pour trouver un '\\')"
-
-# DB - Traduction non indispensable puisque le code indique qu'il s'agit d'un
-# paramtrage bidon afin de slectionner un rpertoire plutt qu'un
-# fichier.
-#~ msgid "Not Used"
-#~ msgstr "Non utilis"
-
-# DB - Traduction non indispensable puisque le code indique qu'il s'agit d'un
-# paramtrage bidon afin de slectionner un rpertoire plutt qu'un
-# fichier.
-#~ msgid "Directory\t*.nothing\n"
-#~ msgstr "Rpertoire\t*.rien\n"
-
-# DB - todo : perfectible.
-#~ msgid ""
-#~ "Vim E458: Cannot allocate colormap entry, some colors may be incorrect"
-#~ msgstr ""
-#~ "Vim E458: Erreur d'allocation de couleurs, couleurs possiblement "
-#~ "incorrectes"
-
-# DB - todo : La VF est-elle comprhensible ?
-#~ msgid "E250: Fonts for the following charsets are missing in fontset %s:"
-#~ msgstr ""
-#~ "E250: Des polices manquent dans %s pour les jeux de caractres suivants :"
-
-#~ msgid "E252: Fontset name: %s"
-#~ msgstr "E252: Nom du jeu de polices : %s"
-
-#~ msgid "Font '%s' is not fixed-width"
-#~ msgstr "La police '%s' n'a pas une largeur fixe"
-
-#~ msgid "E253: Fontset name: %s\n"
-#~ msgstr "E253: Nom du jeu de polices : %s\n"
-
-#~ msgid "Font0: %s\n"
-#~ msgstr "Font0: %s\n"
-
-#~ msgid "Font1: %s\n"
-#~ msgstr "Font1: %s\n"
-
-#~ msgid "Font%<PRId64> width is not twice that of font0\n"
-#~ msgstr "La largeur de Font%<PRId64> n'est pas le double de celle de Font0\n"
-
-#~ msgid "Font0 width: %<PRId64>\n"
-#~ msgstr "Largeur de Font0 : %<PRId64>\n"
-
-#~ msgid ""
-#~ "Font1 width: %<PRId64>\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Largeur de Font1 : %<PRId64>\n"
-#~ "\n"
-
-# DB - todo : Pas certain de mon coup, ici...
-#~ msgid "Invalid font specification"
-#~ msgstr "La spcification de la police est invalide"
-
-#~ msgid "&Dismiss"
-#~ msgstr "Aban&donner"
-
-# DB - todo : Pas certain de mon coup, ici...
-#~ msgid "no specific match"
-#~ msgstr "aucune correspondance particulire"
-
-#~ msgid "Vim - Font Selector"
-#~ msgstr "Choisir une police - Vim"
-
-#~ msgid "Name:"
-#~ msgstr "Nom :"
-
-#~ msgid "Show size in Points"
-#~ msgstr "Afficher la taille en Points"
-
-#~ msgid "Encoding:"
-#~ msgstr "Encodage :"
-
-#~ msgid "Font:"
-#~ msgstr "Police :"
-
-#~ msgid "Style:"
-#~ msgstr "Style :"
-
-#~ msgid "Size:"
-#~ msgstr "Taille :"
-
-#~ msgid "E256: Hangul automata ERROR"
-#~ msgstr "E256: ERREUR dans l'automate Hangul"
-
-#~ msgid "E563: stat error"
-#~ msgstr "E563: Erreur stat"
-
-#~ msgid "E625: cannot open cscope database: %s"
-#~ msgstr "E625: impossible d'ouvrir la base de donnes cscope %s"
-
-#~ msgid "E626: cannot get cscope database information"
-#~ msgstr ""
-#~ "E626: impossible d'obtenir des informations sur la base de donnes cscope"
-
-#~ msgid "Lua library cannot be loaded."
-#~ msgstr "La bibliothque Lua n'a pas pu tre charge."
-
-#~ msgid "cannot save undo information"
-#~ msgstr "impossible d'enregistrer les informations d'annulation"
-
-#~ msgid ""
-#~ "E815: Sorry, this command is disabled, the MzScheme libraries could not "
-#~ "be loaded."
-#~ msgstr ""
-#~ "E815: Dsol, cette commande est dsactive : les bibliothques MzScheme "
-#~ "n'ont pas pu tre charges."
-
-#~ msgid "invalid expression"
-#~ msgstr "expression invalide"
-
-#~ msgid "expressions disabled at compile time"
-#~ msgstr "expressions dsactive lors de la compilation"
-
-#~ msgid "hidden option"
-#~ msgstr "option cache"
-
-#~ msgid "unknown option"
-#~ msgstr "option inconnue"
-
-#~ msgid "window index is out of range"
-#~ msgstr "numro de fentre hors limites"
-
-#~ msgid "couldn't open buffer"
-#~ msgstr "impossible d'ouvrir le tampon"
-
-#~ msgid "cannot delete line"
-#~ msgstr "impossible d'effacer la ligne"
-
-#~ msgid "cannot replace line"
-#~ msgstr "impossible de remplacer la ligne"
-
-#~ msgid "cannot insert line"
-#~ msgstr "impossible d'insrer la ligne"
-
-#~ msgid "string cannot contain newlines"
-#~ msgstr "une chane ne peut pas contenir de saut-de-ligne"
-
-#~ msgid "error converting Scheme values to Vim"
-#~ msgstr "erreur lors de la conversion d'une valeur de Scheme Vim"
-
-#~ msgid "Vim error: ~a"
-#~ msgstr "Erreur Vim : ~a"
-
-#~ msgid "Vim error"
-#~ msgstr "Erreur Vim"
-
-#~ msgid "buffer is invalid"
-#~ msgstr "tampon invalide"
-
-#~ msgid "window is invalid"
-#~ msgstr "fentre invalide"
-
-#~ msgid "linenr out of range"
-#~ msgstr "numro de ligne hors limites"
-
-#~ msgid "not allowed in the Vim sandbox"
-#~ msgstr "non autoris dans le bac sable"
-
-#~ msgid "E836: This Vim cannot execute :python after using :py3"
-#~ msgstr "E836: Vim ne peut pas excuter :python aprs avoir utilis :py3"
-
-#~ msgid ""
-#~ "E263: Sorry, this command is disabled, the Python library could not be "
-#~ "loaded."
-#~ msgstr ""
-#~ "E263: Dsol, commande dsactive : la bibliothque Python n'a pas pu "
-#~ "tre charge."
-
-#~ msgid "E659: Cannot invoke Python recursively"
-#~ msgstr "E659: Impossible d'invoquer Python rcursivement"
-
-#~ msgid "E837: This Vim cannot execute :py3 after using :python"
-#~ msgstr "E837: Vim ne peut pas excuter :py3 aprs avoir utilis :python"
-
-#~ msgid "index must be int or slice"
-#~ msgstr "index doit tre int ou slice"
-
-#~ msgid "E265: $_ must be an instance of String"
-#~ msgstr "E265: $_ doit tre une instance de chane (String)"
-
-#~ msgid ""
-#~ "E266: Sorry, this command is disabled, the Ruby library could not be "
-#~ "loaded."
-#~ msgstr ""
-#~ "E266: Dsol, commande dsactive : la bibliothque Ruby n'a pas pu tre "
-#~ "charge."
-
-#~ msgid "E267: unexpected return"
-#~ msgstr "E267: return inattendu"
-
-#~ msgid "E268: unexpected next"
-#~ msgstr "E268: next inattendu"
-
-#~ msgid "E269: unexpected break"
-#~ msgstr "E269: break inattendu"
-
-#~ msgid "E270: unexpected redo"
-#~ msgstr "E270: redo inattendu"
-
-#~ msgid "E271: retry outside of rescue clause"
-#~ msgstr "E271: retry hors d'une clause rescue "
-
-#~ msgid "E272: unhandled exception"
-#~ msgstr "E272: Exception non prise en charge"
-
-# DB - todo
-#~ msgid "E273: unknown longjmp status %d"
-#~ msgstr "E273: contexte de longjmp inconnu : %d"
-
-#~ msgid "Toggle implementation/definition"
-#~ msgstr "Basculer implmentation/dfinition"
-
-#~ msgid "Show base class of"
-#~ msgstr "Montrer la classe de base de"
-
-#~ msgid "Show overridden member function"
-#~ msgstr "Montrer les fonctions membres surcharges"
-
-#~ msgid "Retrieve from file"
-#~ msgstr "Rcuprer du fichier"
-
-#~ msgid "Retrieve from project"
-#~ msgstr "Rcuprer du projet"
-
-#~ msgid "Retrieve from all projects"
-#~ msgstr "Rcuprer de tous les projets"
-
-#~ msgid "Retrieve"
-#~ msgstr "Rcuprer"
-
-#~ msgid "Show source of"
-#~ msgstr "Montrer source de"
-
-#~ msgid "Find symbol"
-#~ msgstr "Trouver symbole"
-
-#~ msgid "Browse class"
-#~ msgstr "Parcourir classe"
-
-#~ msgid "Show class in hierarchy"
-#~ msgstr "Montrer classe dans hirarchie"
-
-#~ msgid "Show class in restricted hierarchy"
-#~ msgstr "Montrer classe dans hirarchie restreinte"
-
-# todo
-#~ msgid "Xref refers to"
-#~ msgstr "Xref rfrence"
-
-#~ msgid "Xref referred by"
-#~ msgstr "Xref est rfrenc par"
-
-#~ msgid "Xref has a"
-#~ msgstr "Xref a un(e)"
-
-#~ msgid "Xref used by"
-#~ msgstr "Xref utilise par"
-
-#~ msgid "Show docu of"
-#~ msgstr "Montrer doc de"
-
-#~ msgid "Generate docu for"
-#~ msgstr "Gnrer la doc de"
-
-#~ msgid ""
-#~ "Cannot connect to SNiFF+. Check environment (sniffemacs must be found in "
-#~ "$PATH).\n"
-#~ msgstr ""
-#~ "Connexion SNiFF+ impossible. Vrifiez l'environnement (sniffemacs doit "
-#~ "tre dans le $PATH).\n"
-
-#~ msgid "E274: Sniff: Error during read. Disconnected"
-#~ msgstr "E274: Sniff : Erreur de lecture. Dconnexion"
-
-# DB - Les trois messages suivants vont ensembles.
-#~ msgid "SNiFF+ is currently "
-#~ msgstr "SNiFF+ est actuellement "
-
-#~ msgid "not "
-#~ msgstr "d"
-
-#~ msgid "connected"
-#~ msgstr "connect"
-
-#~ msgid "E275: Unknown SNiFF+ request: %s"
-#~ msgstr "E275: Requte SNiFF+ inconnue : %s"
-
-#~ msgid "E276: Error connecting to SNiFF+"
-#~ msgstr "E276: Erreur lors de la connexion SNiFF+"
-
-#~ msgid "E278: SNiFF+ not connected"
-#~ msgstr "E278: SNiFF+ n'est pas connect"
-
-#~ msgid "E279: Not a SNiFF+ buffer"
-#~ msgstr "E279: Ce tampon n'est pas un tampon SNiFF+"
-
-#~ msgid "Sniff: Error during write. Disconnected"
-#~ msgstr "Sniff : Erreur lors d'une criture. Dconnexion"
-
-#~ msgid "invalid buffer number"
-#~ msgstr "numro de tampon invalide"
-
-#~ msgid "not implemented yet"
-#~ msgstr "pas encore implment"
-
-# DB - TODO : le contexte est celui d'une annulation.
-#~ msgid "cannot set line(s)"
-#~ msgstr "Impossible de remettre la/les ligne(s)"
-
-#~ msgid "invalid mark name"
-#~ msgstr "nom de marque invalide"
-
-#~ msgid "mark not set"
-#~ msgstr "marque non positionne"
-
-#~ msgid "row %d column %d"
-#~ msgstr "ligne %d colonne %d"
-
-#~ msgid "cannot insert/append line"
-#~ msgstr "Impossible d'insrer/ajouter de lignes"
-
-#~ msgid "line number out of range"
-#~ msgstr "numro de ligne hors limites"
-
-#~ msgid "unknown flag: "
-#~ msgstr "drapeau inconnu : "
-
-#~ msgid "unknown vimOption"
-#~ msgstr "vimOption inconnue"
+#, c-format
+msgid "E447: Can't find file \"%s\" in path"
+msgstr "E447: Le fichier \"%s\" est introuvable dans 'path'"
-#~ msgid "keyboard interrupt"
-#~ msgstr "interruption clavier"
+#, c-format
+msgid "E799: Invalid ID: %ld (must be greater than or equal to 1)"
+msgstr "E799: ID invalide : %ld (doit tre plus grand ou gal 1)"
-#~ msgid "vim error"
-#~ msgstr "erreur Vim"
+#, c-format
+msgid "E801: ID already taken: %ld"
+msgstr "E801: ID dj pris: %ld"
-#~ msgid "cannot create buffer/window command: object is being deleted"
-#~ msgstr ""
-#~ "Impossible de crer commande de tampon/fentre : objet en cours "
-#~ "d'effacement"
+msgid "List or number required"
+msgstr "Liste ou nombre requis"
-#~ msgid ""
-#~ "cannot register callback command: buffer/window is already being deleted"
-#~ msgstr ""
-#~ "Impossible d'inscrire la commande de rappel : tampon/fentre en effacement"
+#, c-format
+msgid "E802: Invalid ID: %ld (must be greater than or equal to 1)"
+msgstr "E802: ID invalide : %ld (doit tre plus grand ou gal 1)"
-#~ msgid ""
-#~ "E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-"
-#~ "dev@vim.org"
-#~ msgstr ""
-#~ "E280: ERREUR FATALE TCL: reflist corrompue ?! Contactez vim-dev@vim.org, "
-#~ "SVP."
+#, c-format
+msgid "E803: ID not found: %ld"
+msgstr "E803: ID introuvable : %ld"
-#~ msgid "cannot register callback command: buffer/window reference not found"
-#~ msgstr ""
-#~ "Impossible d'inscrire la commande de rappel : rf. tampon/fentre "
-#~ "introuvable"
+#, c-format
+msgid "E370: Could not load library %s"
+msgstr "E370: Impossible de charger la bibliothque %s"
-#~ msgid ""
-#~ "E571: Sorry, this command is disabled: the Tcl library could not be "
-#~ "loaded."
-#~ msgstr ""
-#~ "E571: Dsol, commande dsactive: la bibliothque Tcl n'a pas pu tre "
-#~ "charge."
+msgid "Sorry, this command is disabled: the Perl library could not be loaded."
+msgstr ""
+"Dsol, commande dsactive : la bibliothque Perl n'a pas pu tre charge."
-#~ msgid "E572: exit code %d"
-#~ msgstr "E572: code de sortie %d"
+msgid "E299: Perl evaluation forbidden in sandbox without the Safe module"
+msgstr "E299: valuation Perl interdite dans bac sable sans le module Safe"
-#~ msgid "cannot get line"
-#~ msgstr "Impossible d'obtenir la ligne"
+msgid "Edit with &multiple Vims"
+msgstr "diter dans &plusieurs Vims"
-#~ msgid "Unable to register a command server name"
-#~ msgstr "Impossible d'inscrire un nom de serveur de commande"
+msgid "Edit with single &Vim"
+msgstr "diter dans un seul &Vim"
-#~ msgid "E248: Failed to send command to the destination program"
-#~ msgstr "E248: chec de l'envoi de la commande au programme cible"
+msgid "Diff with Vim"
+msgstr "&Comparer avec Vim"
-#~ msgid "E573: Invalid server id used: %s"
-#~ msgstr "E573: Id utilis pour le serveur invalide : %s"
+msgid "Edit with &Vim"
+msgstr "diter dans &Vim"
-#~ msgid "E251: VIM instance registry property is badly formed. Deleted!"
-#~ msgstr ""
-#~ "E251: Entre registre de l'instance de Vim mal formate. Suppression !"
+#. Now concatenate
+msgid "Edit with existing Vim - "
+msgstr "diter dans le Vim existant - "
-#~ msgid "netbeans is not supported with this GUI\n"
-#~ msgstr "netbeans n'est pas support avec cette interface graphique\n"
+msgid "Edits the selected file(s) with Vim"
+msgstr "dites le(s) fichier(s) slectionn(s) avec Vim"
-#~ msgid "This Vim was not compiled with the diff feature."
-#~ msgstr "Ce Vim n'a pas t compil avec la fonctionnalit diff"
+# DB - MessageBox win32, la longueur n'est pas un problme !
+msgid "Error creating process: Check if gvim is in your path!"
+msgstr ""
+"Erreur de cration du processus : vrifiez que gvim est bien dans votre "
+"chemin !"
-#~ msgid "'-nb' cannot be used: not enabled at compile time\n"
-#~ msgstr "'-nb' ne peut pas tre utilis : dsactiv la compilation\n"
+msgid "gvimext.dll error"
+msgstr "Erreur de gvimext.dll"
-#~ msgid "Vim: Error: Failure to start gvim from NetBeans\n"
-#~ msgstr "Vim : Erreur : Impossible de dmarrer gvim depuis NetBeans\n"
+msgid "Path length too long!"
+msgstr "Le chemin est trop long !"
-# DB - todo (VMS uniquement).
-#~ msgid ""
-#~ "\n"
-#~ "Where case is ignored prepend / to make flag upper case"
-#~ msgstr ""
-#~ "\n"
-#~ "pour lesquels la casse est indiffrente (/ pour que le drapeau soit "
-#~ "majuscule)"
-
-#~ msgid "-register\t\tRegister this gvim for OLE"
-#~ msgstr "-register\tInscrire ce gvim pour OLE"
-
-#~ msgid "-unregister\t\tUnregister gvim for OLE"
-#~ msgstr "-unregister\tDsinscrire gvim de OLE"
-
-#~ msgid "-g\t\t\tRun using GUI (like \"gvim\")"
-#~ msgstr "-g\t\tLancer l'interface graphique (comme \"gvim\")"
-
-#~ msgid "-f or --nofork\tForeground: Don't fork when starting GUI"
-#~ msgstr ""
-#~ "-f, --nofork\tPremier-plan : ne pas dtacher l'interface graphique du "
-#~ "terminal"
-
-#~ msgid "-f\t\t\tDon't use newcli to open window"
-#~ msgstr "-f\t\tNe pas utiliser newcli pour l'ouverture des fentres"
-
-#~ msgid "-dev <device>\t\tUse <device> for I/O"
-#~ msgstr "-dev <priph>\tUtiliser <priphrique> pour les E/S"
-
-#~ msgid "-U <gvimrc>\t\tUse <gvimrc> instead of any .gvimrc"
-#~ msgstr "-U <gvimrc>\tUtiliser <gvimrc> au lieu du gvimrc habituel"
-
-#~ msgid "-x\t\t\tEdit encrypted files"
-#~ msgstr "-x\t\t\tditer des fichiers chiffrs"
-
-#~ msgid "-display <display>\tConnect vim to this particular X-server"
-#~ msgstr "-display <display>\tConnecter Vim au serveur X spcifi"
-
-#~ msgid "-X\t\t\tDo not connect to X server"
-#~ msgstr "-X\t\t\tNe pas se connecter un serveur X"
-
-#~ msgid "--remote <files>\tEdit <files> in a Vim server if possible"
-#~ msgstr ""
-#~ "--remote <fich>\tditer les <fichiers> dans un serveur Vim si possible"
-
-#~ msgid "--remote-silent <files> Same, don't complain if there is no server"
-#~ msgstr ""
-#~ "--remote-silent ...\tPareil, mais pas d'erreur s'il n'y a aucun serveur"
-
-#~ msgid ""
-#~ "--remote-wait <files> As --remote but wait for files to have been edited"
-#~ msgstr ""
-#~ "--remote-wait <fich>\tComme --remote mais ne quitter qu' la fin de "
-#~ "l'dition"
-
-#~ msgid ""
-#~ "--remote-wait-silent <files> Same, don't complain if there is no server"
-#~ msgstr ""
-#~ "--remote-wait-silent\tPareil, mais pas d'erreur s'il n'y a aucun serveur"
-
-#~ msgid ""
-#~ "--remote-tab[-wait][-silent] <files> As --remote but use tab page per "
-#~ "file"
-#~ msgstr ""
-#~ "--remote-tab[-wait][-silent] <fich>\tComme --remote mais ouvrir un onglet "
-#~ "pour chaque fichier"
-
-#~ msgid "--remote-send <keys>\tSend <keys> to a Vim server and exit"
-#~ msgstr ""
-#~ "--remote-send <tche>\tEnvoyer <touches> un serveur Vim puis quitter"
-
-#~ msgid ""
-#~ "--remote-expr <expr>\tEvaluate <expr> in a Vim server and print result"
-#~ msgstr ""
-#~ "--remote-expr <expr>\tvaluer <expr> dans un serveur Vim, afficher le "
-#~ "rsultat"
-
-#~ msgid "--serverlist\t\tList available Vim server names and exit"
-#~ msgstr ""
-#~ "--serverlist\t\tLister les noms des serveurs Vim disponibles et quitter"
-
-#~ msgid "--servername <name>\tSend to/become the Vim server <name>"
-#~ msgstr "--servername <nom>\tEnvoyer au/devenir le serveur Vim nomm <nom>"
-
-#~ msgid ""
-#~ "\n"
-#~ "Arguments recognised by gvim (Motif version):\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Arguments reconnus par gvim (version Motif) :\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "Arguments recognised by gvim (neXtaw version):\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Arguments reconnus par gvim (version neXtaw) :\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "Arguments recognised by gvim (Athena version):\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Arguments reconnus par gvim (version Athena) :\n"
+# msgstr "--Pas de lignes dans le tampon--"
+# DB - todo : ou encore : msgstr "--Aucune ligne dans le tampon--"
+msgid "--No lines in buffer--"
+msgstr "--Le tampon est vide--"
-#~ msgid "-display <display>\tRun vim on <display>"
-#~ msgstr "-display <cran>\tLancer Vim sur ce <display>"
+#.
+#. * The error messages that can be shared are included here.
+#. * Excluded are errors that are only used once and debugging messages.
+#.
+msgid "E470: Command aborted"
+msgstr "E470: Commande annule"
-#~ msgid "-iconic\t\tStart vim iconified"
-#~ msgstr "-iconic\t\tIconifier Vim au dmarrage"
+msgid "E471: Argument required"
+msgstr "E471: Argument requis"
-#~ msgid "-background <color>\tUse <color> for the background (also: -bg)"
-#~ msgstr ""
-#~ "-background <coul>\tUtiliser <couleur> pour l'arrire-plan\t (abrv : -"
-#~ "bg)"
+msgid "E10: \\ should be followed by /, ? or &"
+msgstr "E10: \\ devrait tre suivi de /, ? ou &"
-#~ msgid "-foreground <color>\tUse <color> for normal text (also: -fg)"
-#~ msgstr ""
-#~ "-foreground <coul>\tUtiliser <couleur> pour le texte normal\t (abrv : -"
-#~ "fg)"
+msgid "E11: Invalid in command-line window; <CR> executes, CTRL-C quits"
+msgstr ""
+"E11: Invalide dans la fentre ligne-de-commande ; <CR> excute, CTRL-C quitte"
-#~ msgid "-font <font>\t\tUse <font> for normal text (also: -fn)"
-#~ msgstr ""
-#~ "-font <fonte>\tUtiliser <fonte> pour le texte normal\t (abrv : -fn)"
+msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search"
+msgstr ""
+"E12: commande non autorise depuis un exrc/vimrc dans rpertoire courant ou "
+"une recherche de marqueur"
-#~ msgid "-boldfont <font>\tUse <font> for bold text"
-#~ msgstr "-boldfont <fonte>\tUtiliser <fonte> pour le texte gras"
+msgid "E171: Missing :endif"
+msgstr "E171: :endif manquant"
-#~ msgid "-italicfont <font>\tUse <font> for italic text"
-#~ msgstr "-italicfont <fonte>\tUtiliser <fonte> pour le texte italique"
+msgid "E600: Missing :endtry"
+msgstr "E600: :endtry manquant"
-#~ msgid "-geometry <geom>\tUse <geom> for initial geometry (also: -geom)"
-#~ msgstr ""
-#~ "-geometry <gom>\tUtiliser cette <gomtrie> initiale\t (abrv : -geom)"
+msgid "E170: Missing :endwhile"
+msgstr "E170: :endwhile manquant"
-#~ msgid "-borderwidth <width>\tUse a border width of <width> (also: -bw)"
-#~ msgstr ""
-#~ "-borderwidth <pais>\tUtiliser cette <paisseur> de bordure\t (abrv : -"
-#~ "bw)"
+msgid "E170: Missing :endfor"
+msgstr "E170: :endfor manquant"
-#~ msgid ""
-#~ "-scrollbarwidth <width> Use a scrollbar width of <width> (also: -sw)"
-#~ msgstr ""
-#~ "-scrollbarwidth <lg>\tUtiliser cette <largeur> de barre de dfil. (abrv: -"
-#~ "sw)"
-
-#~ msgid "-menuheight <height>\tUse a menu bar height of <height> (also: -mh)"
-#~ msgstr ""
-#~ "-menuheight <haut>\tUtiliser cette <hauteur> de menu\t (abrv : -mh)"
-
-#~ msgid "-reverse\t\tUse reverse video (also: -rv)"
-#~ msgstr "-reverse\t\tUtiliser la vido inverse\t\t (abrv : -rv)"
-
-#~ msgid "+reverse\t\tDon't use reverse video (also: +rv)"
-#~ msgstr "+reverse\t\tNe pas utiliser de vido inverse\t (abrv : +rv)"
-
-#~ msgid "-xrm <resource>\tSet the specified resource"
-#~ msgstr "-xrm <ressource>\tConfigurer la <ressource> spcifie"
-
-#~ msgid ""
-#~ "\n"
-#~ "Arguments recognised by gvim (GTK+ version):\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Arguments reconnus par gvim (version GTK+) :\n"
-
-#~ msgid "-display <display>\tRun vim on <display> (also: --display)"
-#~ msgstr ""
-#~ "-display <display>\tLancer Vim sur ce <display>\t(galement : --display)"
-
-#~ msgid "--role <role>\tSet a unique role to identify the main window"
-#~ msgstr "--role <rle>\tDonner un rle pour identifier la fentre principale"
-
-#~ msgid "--socketid <xid>\tOpen Vim inside another GTK widget"
-#~ msgstr "--socketid <xid>\tOuvrir Vim dans un autre widget GTK"
-
-#~ msgid "--echo-wid\t\tMake gvim echo the Window ID on stdout"
-#~ msgstr "--echo-wid\t\tGvim affiche l'ID de la fentre sur stdout"
-
-#~ msgid "-P <parent title>\tOpen Vim inside parent application"
-#~ msgstr "-P <titre parent>\tOuvrir Vim dans une application parente"
-
-#~ msgid "--windowid <HWND>\tOpen Vim inside another win32 widget"
-#~ msgstr "--windowid <HWND>\tOuvrir Vim dans un autre widget win32"
-
-#~ msgid "No display"
-#~ msgstr "Aucun display"
-
-#~ msgid ": Send failed.\n"
-#~ msgstr " : L'envoi a chou.\n"
-
-#~ msgid ": Send failed. Trying to execute locally\n"
-#~ msgstr " : L'envoi a chou. Tentative d'excution locale\n"
-
-#~ msgid "%d of %d edited"
-#~ msgstr "%d dits sur %d"
-
-#~ msgid "No display: Send expression failed.\n"
-#~ msgstr "Aucun display : L'envoi de l'expression a chou.\n"
-
-#~ msgid ": Send expression failed.\n"
-#~ msgstr " : L'envoi de l'expression a chou.\n"
+msgid "E588: :endwhile without :while"
+msgstr "E588: :endwhile sans :while"
-#~ msgid "E543: Not a valid codepage"
-#~ msgstr "E543: Page de codes non valide"
+msgid "E588: :endfor without :for"
+msgstr "E588: :endfor sans :for"
-#~ msgid "E284: Cannot set IC values"
-#~ msgstr "E284: Impossible de rgler les valeurs IC"
-
-#~ msgid "E285: Failed to create input context"
-#~ msgstr "E285: chec de la cration du contexte de saisie"
-
-#~ msgid "E286: Failed to open input method"
-#~ msgstr "E286: chec de l'ouverture de la mthode de saisie"
+msgid "E13: File exists (add ! to override)"
+msgstr "E13: Le fichier existe dj (ajoutez ! pour passer outre)"
-#~ msgid "E287: Warning: Could not set destroy callback to IM"
-#~ msgstr ""
-#~ "E287: Alerte : Impossible d'inscrire la callback de destruction dans la MS"
+msgid "E472: Command failed"
+msgstr "E472: La commande a chou"
-#~ msgid "E288: input method doesn't support any style"
-#~ msgstr "E288: la mthode de saisie ne supporte aucun style"
+#, c-format
+msgid "E234: Unknown fontset: %s"
+msgstr "E234: Jeu de police inconnu : %s"
-#~ msgid "E289: input method doesn't support my preedit type"
-#~ msgstr ""
-#~ "E289: le type de prdition de Vim n'est pas support par la mthode de "
-#~ "saisie"
+#, c-format
+msgid "E235: Unknown font: %s"
+msgstr "E235: Police inconnue : %s"
-#~ msgid "E843: Error while updating swap file crypt"
-#~ msgstr "E843: Erreur lors de la mise jour du fichier d'change crypt"
+#, c-format
+msgid "E236: Font \"%s\" is not fixed-width"
+msgstr "E236: La police \"%s\" n'a pas une chasse (largeur) fixe"
-#~ msgid ""
-#~ "E833: %s is encrypted and this version of Vim does not support encryption"
-#~ msgstr ""
-#~ "E833: %s est chiffr et cette version de Vim ne supporte pas le "
-#~ "chiffrement"
-
-#~ msgid "Swap file is encrypted: \"%s\""
-#~ msgstr "Fichier d'change chiffr : \"%s\""
+msgid "E473: Internal error"
+msgstr "E473: Erreur interne"
-#~ msgid ""
-#~ "\n"
-#~ "If you entered a new crypt key but did not write the text file,"
-#~ msgstr ""
-#~ "\n"
-#~ "Si vous avez tap une nouvelle cl de chiffrement mais n'avez pas "
-#~ "enregistr le fichier texte,"
+#, c-format
+msgid "E685: Internal error: %s"
+msgstr "E685: Erreur interne : %s"
-#~ msgid ""
-#~ "\n"
-#~ "enter the new crypt key."
-#~ msgstr ""
-#~ "\n"
-#~ "tapez la nouvelle cl de chiffrement."
+msgid "Interrupted"
+msgstr "Interrompu"
-#~ msgid ""
-#~ "\n"
-#~ "If you wrote the text file after changing the crypt key press enter"
-#~ msgstr ""
-#~ "\n"
-#~ "Si vous avez crit le fichier texte aprs avoir chang la cl de "
-#~ "chiffrement, appuyez sur entre"
+msgid "E14: Invalid address"
+msgstr "E14: Adresse invalide"
-#~ msgid ""
-#~ "\n"
-#~ "to use the same key for text file and swap file"
-#~ msgstr ""
-#~ "\n"
-#~ "afin d'utiliser la mme cl pour le fichier texte et le fichier d'change"
+msgid "E474: Invalid argument"
+msgstr "E474: Argument invalide"
-#~ msgid "Using crypt key from swap file for the text file.\n"
-#~ msgstr ""
-#~ "Utilisation de la cl de chiffrement du fichier d'change pour le fichier "
-#~ "texte.\n"
+#, c-format
+msgid "E475: Invalid argument: %s"
+msgstr "E475: Argument invalide : %s"
-#~ msgid ""
-#~ "\n"
-#~ " [not usable with this version of Vim]"
-#~ msgstr ""
-#~ "\n"
-#~ " [inutilisable avec cette version de Vim]"
-
-#~ msgid "Tear off this menu"
-#~ msgstr "Dtacher ce menu"
+#, c-format
+msgid "E15: Invalid expression: %s"
+msgstr "E15: Expression invalide : %s"
-# DB : Les trois messages qui suivent sont des titres de botes
-# de dialogue par dfaut.
-#~ msgid "Select Directory dialog"
-#~ msgstr "Slecteur de rpertoire"
+msgid "E16: Invalid range"
+msgstr "E16: Plage invalide"
-#~ msgid "Save File dialog"
-#~ msgstr "Enregistrer un fichier"
+msgid "E476: Invalid command"
+msgstr "E476: Commande invalide"
-#~ msgid "Open File dialog"
-#~ msgstr "Ouvrir un fichier"
+#, c-format
+msgid "E17: \"%s\" is a directory"
+msgstr "E17: \"%s\" est un rpertoire"
-#~ msgid "E338: Sorry, no file browser in console mode"
-#~ msgstr "E338: Dsol, pas de slecteur de fichiers en mode console"
+#, c-format
+msgid "E364: Library call failed for \"%s()\""
+msgstr "E364: L'appel la bibliothque a chou pour \"%s()\""
-#~ msgid "ERROR: "
-#~ msgstr "ERREUR : "
+#, c-format
+msgid "E448: Could not load library function %s"
+msgstr "E448: Impossible de charger la fonction %s de la bibliothque"
-#~ msgid ""
-#~ "\n"
-#~ "[bytes] total alloc-freed %<PRIu64>-%<PRIu64>, in use %<PRIu64>, peak use "
-#~ "%<PRIu64>\n"
-#~ msgstr ""
-#~ "\n"
-#~ "[octets] total allou-libr %<PRIu64>-%<PRIu64>, utilis %<PRIu64>, pic "
-#~ "%<PRIu64>\n"
+msgid "E19: Mark has invalid line number"
+msgstr "E19: La marque a un numro de ligne invalide"
-#~ msgid ""
-#~ "[calls] total re/malloc()'s %<PRIu64>, total free()'s %<PRIu64>\n"
-#~ "\n"
-#~ msgstr ""
-#~ "[appels] total re/malloc() %<PRIu64>, total free() %<PRIu64>\n"
-#~ "\n"
+msgid "E20: Mark not set"
+msgstr "E20: Marque non positionne"
-#~ msgid "E340: Line is becoming too long"
-#~ msgstr "E340: La ligne devient trop longue"
+msgid "E21: Cannot make changes, 'modifiable' is off"
+msgstr "E21: Impossible de modifier, 'modifiable' est dsactiv"
-#~ msgid "E341: Internal error: lalloc(%<PRId64>, )"
-#~ msgstr "E341: Erreur interne : lalloc(%<PRId64>, )"
+msgid "E22: Scripts nested too deep"
+msgstr "E22: Trop de rcursion dans les scripts"
-#~ msgid "E547: Illegal mouseshape"
-#~ msgstr "E547: Forme de curseur invalide"
+msgid "E23: No alternate file"
+msgstr "E23: Pas de fichier alternatif"
-#~ msgid "Warning: Using a weak encryption method; see :help 'cm'"
-#~ msgstr ""
-#~ "Alerte : utilisation d'une mthode de chiffrage faible ; consultez :help 'cm'"
+msgid "E24: No such abbreviation"
+msgstr "E24: Cette abrviation n'existe pas"
-#~ msgid "Enter encryption key: "
-#~ msgstr "Tapez la cl de chiffrement : "
+msgid "E477: No ! allowed"
+msgstr "E477: Le ! n'est pas autoris"
-#~ msgid "Enter same key again: "
-#~ msgstr "Tapez la cl nouveau : "
+msgid "E25: GUI cannot be used: Not enabled at compile time"
+msgstr "E25: L'interface graphique n'a pas t compile dans cette version"
-#~ msgid "Keys don't match!"
-#~ msgstr "Les cls ne correspondent pas !"
+msgid "E26: Hebrew cannot be used: Not enabled at compile time\n"
+msgstr "E26: Le support de l'hbreu n'a pas t compil dans cette version\n"
-#~ msgid "Cannot connect to Netbeans #2"
-#~ msgstr "Impossible de se connecter Netbeans n2"
+msgid "E27: Farsi cannot be used: Not enabled at compile time\n"
+msgstr "E27: Le support du farsi n'a pas t compil dans cette version\n"
-#~ msgid "Cannot connect to Netbeans"
-#~ msgstr "Impossible de se connecter Netbeans"
+msgid "E800: Arabic cannot be used: Not enabled at compile time\n"
+msgstr "E800: Le support de l'arabe n'a pas t compil dans cette version\n"
-#~ msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
-#~ msgstr ""
-#~ "E668: Mode d'accs incorrect au fichier d'infos de connexion NetBeans : "
-#~ "\"%s\""
+#, c-format
+msgid "E28: No such highlight group name: %s"
+msgstr "E28: Aucun nom de groupe de surbrillance %s"
-# DB : message d'un appel perror().
-#~ msgid "read from Netbeans socket"
-#~ msgstr "read sur la socket Netbeans"
+msgid "E29: No inserted text yet"
+msgstr "E29: Pas encore de texte insr"
-#~ msgid "E658: NetBeans connection lost for buffer %<PRId64>"
-#~ msgstr "E658: Connexion NetBeans perdue pour le tampon %<PRId64>"
+msgid "E30: No previous command line"
+msgstr "E30: Aucune ligne de commande prcdente"
-#~ msgid "E838: netbeans is not supported with this GUI"
-#~ msgstr "E838: netbeans n'est pas support avec cette interface graphique"
+msgid "E31: No such mapping"
+msgstr "E31: Mappage inexistant"
-#~ msgid "E511: netbeans already connected"
-#~ msgstr "E511: netbeans dj connect"
+msgid "E479: No match"
+msgstr "E479: Aucune correspondance"
-#~ msgid "E505: %s is read-only (add ! to override)"
-#~ msgstr "E505: %s est en lecture seule (ajoutez ! pour passer outre)"
+#, c-format
+msgid "E480: No match: %s"
+msgstr "E480: Aucune correspondance : %s"
-#~ msgid "E775: Eval feature not available"
-#~ msgstr "E775: La fonctionnalit d'valuation n'est pas disponible"
+msgid "E32: No file name"
+msgstr "E32: Aucun nom de fichier"
-#~ msgid "freeing %<PRId64> lines"
-#~ msgstr "libration de %<PRId64> lignes"
+msgid "E33: No previous substitute regular expression"
+msgstr "E33: Aucune expression rgulire de substitution prcdente"
-#~ msgid "E530: Cannot change term in GUI"
-#~ msgstr "E530: Impossible de modifier term dans l'interface graphique"
+msgid "E34: No previous command"
+msgstr "E34: Aucune commande prcdente"
-#~ msgid "E531: Use \":gui\" to start the GUI"
-#~ msgstr "E531: Utilisez \":gui\" pour dmarrer l'interface graphique"
+msgid "E35: No previous regular expression"
+msgstr "E35: Aucune expression rgulire prcdente"
-#~ msgid "E617: Cannot be changed in the GTK+ 2 GUI"
-#~ msgstr "E617: Non modifiable dans l'interface graphique GTK+ 2"
+msgid "E481: No range allowed"
+msgstr "E481: Les plages ne sont pas autorises"
-#~ msgid "E596: Invalid font(s)"
-#~ msgstr "E596: Police(s) invalide(s)"
+msgid "E36: Not enough room"
+msgstr "E36: Pas assez de place"
-#~ msgid "E597: can't select fontset"
-#~ msgstr "E597: Impossible de slectionner un jeu de polices"
+#, c-format
+msgid "E247: no registered server named \"%s\""
+msgstr "E247: aucun serveur nomm \"%s\" n'est enregistr"
-#~ msgid "E598: Invalid fontset"
-#~ msgstr "E598: Jeu de polices invalide"
+#, c-format
+msgid "E482: Can't create file %s"
+msgstr "E482: Impossible de crer le fichier %s"
-#~ msgid "E533: can't select wide font"
-#~ msgstr "E533: Impossible de slectionner une police largeur double"
+msgid "E483: Can't get temp file name"
+msgstr "E483: Impossible d'obtenir un nom de fichier temporaire"
-#~ msgid "E534: Invalid wide font"
-#~ msgstr "E534: Police largeur double invalide"
+#, c-format
+msgid "E484: Can't open file %s"
+msgstr "E484: Impossible d'ouvrir le fichier \"%s\""
-#~ msgid "E538: No mouse support"
-#~ msgstr "E538: La souris n'est pas supporte"
+#, c-format
+msgid "E485: Can't read file %s"
+msgstr "E485: Impossible de lire le fichier %s"
-#~ msgid "cannot open "
-#~ msgstr "impossible d'ouvrir "
+msgid "E37: No write since last change (add ! to override)"
+msgstr "E37: Modifications non enregistres (ajoutez ! pour passer outre)"
-#~ msgid "VIM: Can't open window!\n"
-#~ msgstr "VIM : Impossible d'ouvrir la fentre !\n"
+msgid "E37: No write since last change"
+msgstr "E37: Modifications non enregistres"
-#~ msgid "Need Amigados version 2.04 or later\n"
-#~ msgstr "Amigados version 2.04 ou ultrieure est ncessaire\n"
+msgid "E38: Null argument"
+msgstr "E38: Argument null"
-#~ msgid "Need %s version %<PRId64>\n"
-#~ msgstr "%s version %<PRId64> est ncessaire\n"
+msgid "E39: Number expected"
+msgstr "E39: Nombre attendu"
-#~ msgid "Cannot open NIL:\n"
-#~ msgstr "Impossible d'ouvrir NIL :\n"
+#, c-format
+msgid "E40: Can't open errorfile %s"
+msgstr "E40: Impossible d'ouvrir le fichier d'erreurs %s"
-#~ msgid "Cannot create "
-#~ msgstr "Impossible de crer "
+msgid "E233: cannot open display"
+msgstr "E233: ouverture du display impossible"
-#~ msgid "Vim exiting with %d\n"
-#~ msgstr "Vim quitte avec %d\n"
+msgid "E41: Out of memory!"
+msgstr "E41: Mmoire puise"
-#~ msgid "cannot change console mode ?!\n"
-#~ msgstr "Impossible de modifier le mode de la console ?!\n"
+msgid "Pattern not found"
+msgstr "Motif introuvable"
-#~ msgid "mch_get_shellsize: not a console??\n"
-#~ msgstr "mch_get_shellsize : pas une console ?!\n"
+#, c-format
+msgid "E486: Pattern not found: %s"
+msgstr "E486: Motif introuvable : %s"
-#~ msgid "E360: Cannot execute shell with -f option"
-#~ msgstr "E360: Impossible d'excuter un shell avec l'option -f"
+msgid "E487: Argument must be positive"
+msgstr "E487: L'argument doit tre positif"
-#~ msgid "Cannot execute "
-#~ msgstr "Impossible d'excuter "
+msgid "E459: Cannot go back to previous directory"
+msgstr "E459: Impossible de retourner au rpertoire prcdent"
-#~ msgid "shell "
-#~ msgstr "le shell "
+msgid "E42: No Errors"
+msgstr "E42: Aucune erreur"
-#~ msgid " returned\n"
-#~ msgstr " a t retourn\n"
+# DB - TODO : trouver une traduction valable et atteste pour "location".
+msgid "E776: No location list"
+msgstr "E776: Aucune liste d'emplacements"
-#~ msgid "ANCHOR_BUF_SIZE too small."
-#~ msgstr "ANCHOR_BUF_SIZE trop petit."
+msgid "E43: Damaged match string"
+msgstr "E43: La chane de recherche est endommage"
-#~ msgid "I/O ERROR"
-#~ msgstr "ERREUR d'E/S"
+msgid "E44: Corrupted regexp program"
+msgstr "E44: L'automate de regexp est corrompu"
-#~ msgid "Message"
-#~ msgstr "Message"
+msgid "E45: 'readonly' option is set (add ! to override)"
+msgstr "E45: L'option 'readonly' est active (ajoutez ! pour passer outre)"
-#~ msgid "'columns' is not 80, cannot execute external commands"
-#~ msgstr ""
-#~ "'columns' ne vaut pas 80, impossible d'excuter des commandes externes"
+#, c-format
+msgid "E46: Cannot change read-only variable \"%s\""
+msgstr "E46: La variable \"%s\" est en lecture seule"
-#~ msgid "E237: Printer selection failed"
-#~ msgstr "E237: La slection de l'imprimante a chou"
+#, c-format
+msgid "E794: Cannot set variable in the sandbox: \"%s\""
+msgstr ""
+"E794: Impossible de modifier une variable depuis le bac sable : \"%s\""
-# DB - Contenu des c-formats : Imprimante puis Port.
-#~ msgid "to %s on %s"
-#~ msgstr "vers %s sur %s"
+msgid "E713: Cannot use empty key for Dictionary"
+msgstr "E713: Impossible d'utiliser une cl vide dans un Dictionnaire"
-#~ msgid "E613: Unknown printer font: %s"
-#~ msgstr "E613: Police d'imprimante inconnue : %s"
+msgid "E715: Dictionary required"
+msgstr "E715: Dictionnaire requis"
-#~ msgid "E238: Print error: %s"
-#~ msgstr "E238: Erreur d'impression : %s"
+#, c-format
+msgid "E684: list index out of range: %ld"
+msgstr "E684: index de Liste hors limites : %ld au-del de la fin"
-#~ msgid "Printing '%s'"
-#~ msgstr "Impression de '%s'"
+# DB : Suggestion
+#, c-format
+msgid "E118: Too many arguments for function: %s"
+msgstr "E118: La fonction %s a reu trop d'arguments"
-#~ msgid "E244: Illegal charset name \"%s\" in font name \"%s\""
-#~ msgstr "E244: Jeu de caractres \"%s\" invalide dans le nom de fonte \"%s\""
+#, c-format
+msgid "E716: Key not present in Dictionary: %s"
+msgstr "E716: La cl %s n'existe pas dans le Dictionnaire"
-#~ msgid "E245: Illegal char '%c' in font name \"%s\""
-#~ msgstr "E245: Caractre '%c' invalide dans le nom de fonte \"%s\""
+msgid "E714: List required"
+msgstr "E714: Liste requise"
-#~ msgid "Opening the X display took %<PRId64> msec"
-#~ msgstr "L'ouverture du display X a pris %<PRId64> ms"
+#, c-format
+msgid "E712: Argument of %s must be a List or Dictionary"
+msgstr "E712: L'argument de %s doit tre une Liste ou un Dictionnaire"
-#~ msgid ""
-#~ "\n"
-#~ "Vim: Got X error\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Vim : Rception d'une erreur X\n"
+msgid "E47: Error while reading errorfile"
+msgstr "E47: Erreur lors de la lecture du fichier d'erreurs"
-#~ msgid "Testing the X display failed"
-#~ msgstr "Le test du display X a chou"
+msgid "E48: Not allowed in sandbox"
+msgstr "E48: Opration interdite dans le bac sable"
-#~ msgid "Opening the X display timed out"
-#~ msgstr "L'ouverture du display X a dpass le dlai d'attente"
+msgid "E523: Not allowed here"
+msgstr "E523: Interdit cet endroit"
-#~ msgid ""
-#~ "\n"
-#~ "Cannot execute shell sh\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Impossible d'excuter le shell sh\n"
+msgid "E359: Screen mode setting not supported"
+msgstr "E359: Choix du mode d'cran non support"
-#~ msgid ""
-#~ "\n"
-#~ "Cannot create pipes\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Impossible de crer des tuyaux (pipes)\n"
+msgid "E49: Invalid scroll size"
+msgstr "E49: Valeur de dfilement invalide"
-#~ msgid ""
-#~ "\n"
-#~ "Cannot fork\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Impossible de forker\n"
+msgid "E91: 'shell' option is empty"
+msgstr "E91: L'option 'shell' est vide"
-#~ msgid ""
-#~ "\n"
-#~ "Command terminated\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Commande interrompue\n"
+msgid "E255: Couldn't read in sign data!"
+msgstr "E255: Impossible de lire les donnes du symbole !"
-#~ msgid "XSMP lost ICE connection"
-#~ msgstr "XSMP a perdu la connexion ICE"
+msgid "E72: Close error on swap file"
+msgstr "E72: Erreur lors de la fermeture du fichier d'change"
-#~ msgid "Opening the X display failed"
-#~ msgstr "L'ouverture du display X a chou"
+msgid "E73: tag stack empty"
+msgstr "E73: La pile des marqueurs est vide"
-#~ msgid "XSMP handling save-yourself request"
-#~ msgstr "XSMP : prise en charge d'une requte save-yourself"
+msgid "E74: Command too complex"
+msgstr "E74: Commande trop complexe"
-#~ msgid "XSMP opening connection"
-#~ msgstr "XSMP : ouverture de la connexion"
+msgid "E75: Name too long"
+msgstr "E75: Nom trop long"
-#~ msgid "XSMP ICE connection watch failed"
-#~ msgstr "XSMP : chec de la surveillance de connexion ICE"
+msgid "E76: Too many ["
+msgstr "E76: Trop de ["
-#~ msgid "XSMP SmcOpenConnection failed: %s"
-#~ msgstr "XSMP : SmcOpenConnection a chou : %s"
+msgid "E77: Too many file names"
+msgstr "E77: Trop de noms de fichiers"
-#~ msgid "At line"
-#~ msgstr " la ligne"
+msgid "E488: Trailing characters"
+msgstr "E488: Caractres surnumraires"
-#~ msgid "Could not load vim32.dll!"
-#~ msgstr "Impossible de charger vim32.dll !"
+msgid "E78: Unknown mark"
+msgstr "E78: Marque inconnue"
-#~ msgid "VIM Error"
-#~ msgstr "Erreur VIM"
+msgid "E79: Cannot expand wildcards"
+msgstr "E79: Impossible de dvelopper les mtacaractres"
-#~ msgid "Could not fix up function pointers to the DLL!"
-#~ msgstr "Impossible d'initialiser les pointeurs de fonction vers la DLL !"
+msgid "E591: 'winheight' cannot be smaller than 'winminheight'"
+msgstr "E591: 'winheight' ne peut pas tre plus petit que 'winminheight'"
-#~ msgid "shell returned %d"
-#~ msgstr "le shell a retourn %d"
+msgid "E592: 'winwidth' cannot be smaller than 'winminwidth'"
+msgstr "E592: 'winwidth' ne peut pas tre plus petit que 'winminwidth'"
-# DB - Les vnements en question sont ceux des messages qui suivent.
-#~ msgid "Vim: Caught %s event\n"
-#~ msgstr "Vim : vnement %s intercept\n"
+msgid "E80: Error while writing"
+msgstr "E80: Erreur lors de l'criture"
-#~ msgid "close"
-#~ msgstr "de fermeture"
+msgid "Zero count"
+msgstr "Le quantificateur est nul"
-#~ msgid "logoff"
-#~ msgstr "de dconnexion"
+msgid "E81: Using <SID> not in a script context"
+msgstr "E81: <SID> utilis en dehors d'un script"
-#~ msgid "shutdown"
-#~ msgstr "d'arrt"
+msgid "E449: Invalid expression received"
+msgstr "E449: Expression invalide reue"
-#~ msgid "E371: Command not found"
-#~ msgstr "E371: Commande introuvable"
+msgid "E463: Region is guarded, cannot modify"
+msgstr "E463: Cette zone est verrouille et ne peut pas tre modifie"
-#~ msgid ""
-#~ "VIMRUN.EXE not found in your $PATH.\n"
-#~ "External commands will not pause after completion.\n"
-#~ "See :help win32-vimrun for more information."
-#~ msgstr ""
-#~ "VIMRUN.EXE est introuvable votre $PATH.\n"
-#~ "Les commandes externes ne feront pas de pause une fois termines.\n"
-#~ "Consultez :help win32-vimrun pour plus d'informations."
+msgid "E744: NetBeans does not allow changes in read-only files"
+msgstr ""
+"E744: NetBeans n'autorise pas la modification des fichiers en lecture seule"
-#~ msgid "Vim Warning"
-#~ msgstr "Alerte Vim"
+msgid "E363: pattern uses more memory than 'maxmempattern'"
+msgstr "E363: le motif utilise plus de mmoire que 'maxmempattern'"
-#~ msgid "Error file"
-#~ msgstr "Fichier d'erreurs"
+msgid "E749: empty buffer"
+msgstr "E749: tampon vide"
-#~ msgid "E868: Error building NFA with equivalence class!"
-#~ msgstr ""
-#~ "E868: Erreur lors de la construction du NFA avec classe d'quivalence"
+#, c-format
+msgid "E86: Buffer %ld does not exist"
+msgstr "E86: Le tampon %ld n'existe pas"
-#~ msgid "E878: (NFA) Could not allocate memory for branch traversal!"
-#~ msgstr ""
-#~ "E878: (NFA) Impossible d'allouer la mmoire pour parcourir les branches!"
+msgid "E682: Invalid search pattern or delimiter"
+msgstr "E682: Dlimiteur ou motif de recherche invalide"
-#~ msgid "Warning: Cannot find word list \"%s_%s.spl\" or \"%s_ascii.spl\""
-#~ msgstr ""
-#~ "Alerte : Liste de mots \"%s_%s.spl\" ou \"%s_ascii.spl\" introuvable"
+msgid "E139: File is loaded in another buffer"
+msgstr "E139: Le fichier est charg dans un autre tampon"
-#~ msgid "Conversion in %s not supported"
-#~ msgstr "La conversion dans %s non supporte"
+#, c-format
+msgid "E764: Option '%s' is not set"
+msgstr "E764: L'option '%s' n'est pas active"
-#~ msgid "E845: Insufficient memory, word list will be incomplete"
-#~ msgstr "E845: mmoire insuffisante, liste de mots peut-tre incomplte"
+msgid "E850: Invalid register name"
+msgstr "E850: Nom de registre invalide"
-#~ msgid "E430: Tag file path truncated for %s\n"
-#~ msgstr "E430: Chemin de fichiers de marqueurs tronqu pour %s\n"
+#, c-format
+msgid "E919: Directory not found in '%s': \"%s\""
+msgstr "E919: Rpertoire introuvable dans '%s' : \"%s\""
-#~ msgid "new shell started\n"
-#~ msgstr "nouveau shell dmarr\n"
+msgid "search hit TOP, continuing at BOTTOM"
+msgstr "La recherche a atteint le HAUT, et continue en BAS"
-# DB - Message de dbogage.
-#~ msgid "Used CUT_BUFFER0 instead of empty selection"
-#~ msgstr "CUT_BUFFER0 utilis plutt qu'une slection vide"
+msgid "search hit BOTTOM, continuing at TOP"
+msgstr "La recherche a atteint le BAS, et continue en HAUT"
-# DB - Question O/N.
-#~ msgid "No undo possible; continue anyway"
-#~ msgstr "Annulation impossible ; continuer"
-
-#~ msgid "E832: Non-encrypted file has encrypted undo file: %s"
-#~ msgstr "E832: Fichier non-chiffr a un fichier d'annulations chiffr : %s"
-
-#~ msgid "E826: Undo file decryption failed: %s"
-#~ msgstr "E826: Dchiffrage du fichier d'annulation a chou : %s"
-
-#~ msgid "E827: Undo file is encrypted: %s"
-#~ msgstr "E827: Le fichier d'annulations est chiffr : %s"
-
-#~ msgid ""
-#~ "\n"
-#~ "MS-Windows 16/32-bit GUI version"
-#~ msgstr ""
-#~ "\n"
-#~ "Version graphique MS-Windows 16/32 bits"
-
-#~ msgid ""
-#~ "\n"
-#~ "MS-Windows 64-bit GUI version"
-#~ msgstr ""
-#~ "\n"
-#~ "Version graphique MS-Windows 64 bits"
-
-#~ msgid ""
-#~ "\n"
-#~ "MS-Windows 32-bit GUI version"
-#~ msgstr ""
-#~ "\n"
-#~ "Version graphique MS-Windows 32 bits"
-
-#~ msgid " in Win32s mode"
-#~ msgstr " lance en mode Win32s"
-
-#~ msgid " with OLE support"
-#~ msgstr " supportant l'OLE"
-
-#~ msgid ""
-#~ "\n"
-#~ "MS-Windows 64-bit console version"
-#~ msgstr ""
-#~ "\n"
-#~ "Version console MS-Windows 64 bits"
-
-#~ msgid ""
-#~ "\n"
-#~ "MS-Windows 32-bit console version"
-#~ msgstr ""
-#~ "\n"
-#~ "Version console MS-Windows 32 bits"
-
-#~ msgid ""
-#~ "\n"
-#~ "MS-Windows 16-bit version"
-#~ msgstr ""
-#~ "\n"
-#~ "Version MS-Windows 16 bits"
-
-#~ msgid ""
-#~ "\n"
-#~ "32-bit MS-DOS version"
-#~ msgstr ""
-#~ "\n"
-#~ "Version MS-DOS 32 bits"
-
-#~ msgid ""
-#~ "\n"
-#~ "16-bit MS-DOS version"
-#~ msgstr ""
-#~ "\n"
-#~ "Version MS-DOS 16 bits"
-
-#~ msgid ""
-#~ "\n"
-#~ "MacOS X (unix) version"
-#~ msgstr ""
-#~ "\n"
-#~ "Version MaxOS X (unix)"
-
-#~ msgid ""
-#~ "\n"
-#~ "MacOS X version"
-#~ msgstr ""
-#~ "\n"
-#~ "Version MacOS X"
-
-#~ msgid ""
-#~ "\n"
-#~ "MacOS version"
-#~ msgstr ""
-#~ "\n"
-#~ "Version MacOS"
-
-#~ msgid ""
-#~ "\n"
-#~ "OpenVMS version"
-#~ msgstr ""
-#~ "\n"
-#~ "Version OpenVMS"
-
-#~ msgid ""
-#~ "\n"
-#~ "Big version "
-#~ msgstr ""
-#~ "\n"
-#~ "Grosse version "
-
-#~ msgid ""
-#~ "\n"
-#~ "Normal version "
-#~ msgstr ""
-#~ "\n"
-#~ "Version normale "
-
-#~ msgid ""
-#~ "\n"
-#~ "Small version "
-#~ msgstr ""
-#~ "\n"
-#~ "Petite version "
-
-#~ msgid ""
-#~ "\n"
-#~ "Tiny version "
-#~ msgstr ""
-#~ "\n"
-#~ "Version minuscule "
-
-#~ msgid "with GTK2-GNOME GUI."
-#~ msgstr "avec interface graphique GTK2-GNOME."
-
-#~ msgid "with GTK2 GUI."
-#~ msgstr "avec interface graphique GTK2."
-
-#~ msgid "with X11-Motif GUI."
-#~ msgstr "avec interface graphique X11-Motif."
-
-#~ msgid "with X11-neXtaw GUI."
-#~ msgstr "avec interface graphique X11-neXtaw."
-
-#~ msgid "with X11-Athena GUI."
-#~ msgstr "avec interface graphique X11-Athena."
-
-#~ msgid "with Photon GUI."
-#~ msgstr "avec interface graphique Photon."
-
-#~ msgid "with GUI."
-#~ msgstr "avec une interface graphique."
-
-#~ msgid "with Carbon GUI."
-#~ msgstr "avec interface graphique Carbon."
-
-#~ msgid "with Cocoa GUI."
-#~ msgstr "avec interface graphique Cocoa."
-
-#~ msgid "with (classic) GUI."
-#~ msgstr "avec interface graphique (classic)."
-
-#~ msgid " system gvimrc file: \""
-#~ msgstr " fichier gvimrc systme : \""
-
-#~ msgid " user gvimrc file: \""
-#~ msgstr " fichier gvimrc utilisateur : \""
-
-#~ msgid "2nd user gvimrc file: \""
-#~ msgstr "2me fichier gvimrc utilisateur : \""
-
-#~ msgid "3rd user gvimrc file: \""
-#~ msgstr "3me fichier gvimrc utilisateur : \""
-
-#~ msgid " system menu file: \""
-#~ msgstr " fichier menu systme : \""
-
-#~ msgid "Compiler: "
-#~ msgstr "Compilateur : "
+#, c-format
+msgid "Need encryption key for \"%s\""
+msgstr "Besoin de la cl de chiffrement pour \"%s\""
-#~ msgid "menu Help->Orphans for information "
-#~ msgstr "menu Aide->Orphelins pour plus d'info"
+msgid "empty keys are not allowed"
+msgstr "les cls vides ne sont pas autorises"
-#~ msgid "Running modeless, typed text is inserted"
-#~ msgstr "Les modes sont dsactivs, le texte saisi est insr"
+msgid "dictionary is locked"
+msgstr "dictionnaire est verrouill"
-#~ msgid "menu Edit->Global Settings->Toggle Insert Mode "
-#~ msgstr "menu dition->Rglages Globaux->Insertion Permanente"
+msgid "list is locked"
+msgstr "liste verrouille"
-# DB - todo
-#~ msgid " for two modes "
-#~ msgstr " pour les modes "
+#, c-format
+msgid "failed to add key '%s' to dictionary"
+msgstr "l'ajout de cl '%s' au dictionnaire a chou"
-# DB - todo
-#~ msgid "menu Edit->Global Settings->Toggle Vi Compatible"
-#~ msgstr "menu dition->Rglages Globaux->Compatibilit Vi"
+#, c-format
+msgid "index must be int or slice, not %s"
+msgstr "index doit tre int ou slice, et non %s"
-# DB - todo
-#~ msgid " for Vim defaults "
-#~ msgstr " pour df. de Vim "
+#, c-format
+msgid "expected str() or unicode() instance, but got %s"
+msgstr "attendu instance de str() ou unicode(), mais reu %s"
-#~ msgid "WARNING: Windows 95/98/ME detected"
-#~ msgstr "ALERTE: Windows 95/98/ME dtect"
+#, c-format
+msgid "expected bytes() or str() instance, but got %s"
+msgstr "attendu instance de bytes() ou str(), mais reu %s"
-#~ msgid "type :help windows95<Enter> for info on this"
-#~ msgstr "tapez :help windows95<Entre> pour plus d'information"
+#, c-format
+msgid ""
+"expected int(), long() or something supporting coercing to long(), but got %s"
+msgstr ""
+"attendu int(), long() ou quelque chose qui peut tre transform en long(), "
+"mais reu %s"
-#~ msgid "E370: Could not load library %s"
-#~ msgstr "E370: Impossible de charger la bibliothque %s"
+#, c-format
+msgid "expected int() or something supporting coercing to int(), but got %s"
+msgstr ""
+"attendu int() ou quelque chose qui peut tre transform en int(), mais reu "
+"%s"
-#~ msgid ""
-#~ "Sorry, this command is disabled: the Perl library could not be loaded."
-#~ msgstr ""
-#~ "Dsol, commande dsactive : la bibliothque Perl n'a pas pu tre "
-#~ "charge."
+msgid "value is too large to fit into C int type"
+msgstr "valeur trop grande pour tre stocke dans le type C int"
-#~ msgid "E299: Perl evaluation forbidden in sandbox without the Safe module"
-#~ msgstr ""
-#~ "E299: valuation Perl interdite dans bac sable sans le module Safe"
+msgid "value is too small to fit into C int type"
+msgstr "valeur trop petite pour tre stocke dans le type C int"
-#~ msgid "Edit with &multiple Vims"
-#~ msgstr "diter dans &plusieurs Vims"
+msgid "number must be greater than zero"
+msgstr "le nombre doit tre plus grand que zro"
-#~ msgid "Edit with single &Vim"
-#~ msgstr "diter dans un seul &Vim"
+msgid "number must be greater or equal to zero"
+msgstr "le nombre doit tre plus grand ou gal zro"
-#~ msgid "Diff with Vim"
-#~ msgstr "&Comparer avec Vim"
+msgid "can't delete OutputObject attributes"
+msgstr "impossible d'effacer les attributs d'OutputObject"
-#~ msgid "Edit with &Vim"
-#~ msgstr "diter dans &Vim"
+#, c-format
+msgid "invalid attribute: %s"
+msgstr "attribut invalide : %s"
-#~ msgid "Edit with existing Vim - "
-#~ msgstr "diter dans le Vim existant - "
+msgid "E264: Python: Error initialising I/O objects"
+msgstr "E264: Python : Erreur d'initialisation des objets d'E/S"
-#~ msgid "Edits the selected file(s) with Vim"
-#~ msgstr "dites le(s) fichier(s) slectionn(s) avec Vim"
+msgid "failed to change directory"
+msgstr "changement de rpertoire a chou"
-# DB - MessageBox win32, la longueur n'est pas un problme !
-#~ msgid "Error creating process: Check if gvim is in your path!"
-#~ msgstr ""
-#~ "Erreur de cration du processus : vrifiez que gvim est bien dans votre "
-#~ "chemin !"
+#, c-format
+msgid "expected 3-tuple as imp.find_module() result, but got %s"
+msgstr "attendu un 3-tuple comme rsultat de imp.find_module(), mais reu %s"
-#~ msgid "gvimext.dll error"
-#~ msgstr "Erreur de gvimext.dll"
+#, c-format
+msgid "expected 3-tuple as imp.find_module() result, but got tuple of size %d"
+msgstr ""
+"attendu un 3-tuple comme rsultat de imp.find_module(), mais reu un tuple "
+"de taille %d"
-#~ msgid "Path length too long!"
-#~ msgstr "Le chemin est trop long !"
+msgid "internal error: imp.find_module returned tuple with NULL"
+msgstr "erreur interne : imp.find_module a retourn un tuple contenant NULL"
-#~ msgid "E234: Unknown fontset: %s"
-#~ msgstr "E234: Jeu de police inconnu : %s"
+msgid "cannot delete vim.Dictionary attributes"
+msgstr "impossible d'effacer les attributs de vim.Dictionary"
-#~ msgid "E235: Unknown font: %s"
-#~ msgstr "E235: Police inconnue : %s"
+msgid "cannot modify fixed dictionary"
+msgstr "impossible de modifier un dictionnaire fixe"
-#~ msgid "E236: Font \"%s\" is not fixed-width"
-#~ msgstr "E236: La police \"%s\" n'a pas une chasse (largeur) fixe"
+#, c-format
+msgid "cannot set attribute %s"
+msgstr "impossible d'initialiser l'attribut %s"
-#~ msgid "E448: Could not load library function %s"
-#~ msgstr "E448: Impossible de charger la fonction %s de la bibliothque"
+msgid "hashtab changed during iteration"
+msgstr "la table de hachage a t change pendant une itration"
-#~ msgid "E26: Hebrew cannot be used: Not enabled at compile time\n"
-#~ msgstr ""
-#~ "E26: Le support de l'hbreu n'a pas t compil dans cette version\n"
+#, c-format
+msgid "expected sequence element of size 2, but got sequence of size %d"
+msgstr ""
+"attendu une squence d'lments de taille 2, mais reu une squence de "
+"taille %d"
-#~ msgid "E27: Farsi cannot be used: Not enabled at compile time\n"
-#~ msgstr "E27: Le support du farsi n'a pas t compil dans cette version\n"
+msgid "list constructor does not accept keyword arguments"
+msgstr "le constructeur de liste n'accepte pas les arguments nomms"
-#~ msgid "E800: Arabic cannot be used: Not enabled at compile time\n"
-#~ msgstr ""
-#~ "E800: Le support de l'arabe n'a pas t compil dans cette version\n"
+msgid "list index out of range"
+msgstr "index de liste hors limites"
-#~ msgid "E247: no registered server named \"%s\""
-#~ msgstr "E247: aucun serveur nomm \"%s\" n'est enregistr"
+#. No more suitable format specifications in python-2.3
+#, c-format
+msgid "internal error: failed to get vim list item %d"
+msgstr "erreur interne : accs un lment %d de liste a chou"
-#~ msgid "E233: cannot open display"
-#~ msgstr "E233: ouverture du display impossible"
+msgid "slice step cannot be zero"
+msgstr "le pas du dcoupage en tranche ne peut pas tre zro"
-#~ msgid "E449: Invalid expression received"
-#~ msgstr "E449: Expression invalide reue"
+#, c-format
+msgid "attempt to assign sequence of size greater than %d to extended slice"
+msgstr ""
+"tentative d'assigner une squence de taille plus grande que %d un "
+"dcoupage en tranche tendu "
-#~ msgid "E463: Region is guarded, cannot modify"
-#~ msgstr "E463: Cette zone est verrouille et ne peut pas tre modifie"
+#, c-format
+msgid "internal error: no vim list item %d"
+msgstr "erreur interne : pas d'lment %d de liste vim"
-#~ msgid "E744: NetBeans does not allow changes in read-only files"
-#~ msgstr ""
-#~ "E744: NetBeans n'autorise pas la modification des fichiers en lecture "
-#~ "seule"
+msgid "internal error: not enough list items"
+msgstr "erreur interne : pas assez d'lments de liste"
-#~ msgid "Need encryption key for \"%s\""
-#~ msgstr "Besoin de la cl de chiffrement pour \"%s\""
+msgid "internal error: failed to add item to list"
+msgstr "erreur interne : ajout d'lment la liste a chou"
-#~ msgid "can't delete OutputObject attributes"
-#~ msgstr "impossible d'effacer les attributs d'OutputObject"
+#, c-format
+msgid "attempt to assign sequence of size %d to extended slice of size %d"
+msgstr ""
+"tentative d'assigner une squence de taille %d un dcoupage en tranche "
+"tendu de taille %d"
-#~ msgid "invalid attribute"
-#~ msgstr "attribut invalide"
+msgid "failed to add item to list"
+msgstr "ajout la liste a chou"
-#~ msgid "E264: Python: Error initialising I/O objects"
-#~ msgstr "E264: Python : Erreur d'initialisation des objets d'E/S"
+msgid "cannot delete vim.List attributes"
+msgstr "impossible d'effacer les attributs de vim.List"
-#~ msgid "empty keys are not allowed"
-#~ msgstr "les cls vides ne sont pas autorises"
+msgid "cannot modify fixed list"
+msgstr "impossible de modifier une liste fixe"
-#~ msgid "Cannot modify fixed dictionary"
-#~ msgstr "Impossible de modifier un dictionnaire fixe"
+#, c-format
+msgid "unnamed function %s does not exist"
+msgstr "la fonction sans nom %s n'existe pas"
-#~ msgid "dict is locked"
-#~ msgstr "dictionnaire est verrouill"
+#, c-format
+msgid "function %s does not exist"
+msgstr "la fonction %s n'existe pas"
-#~ msgid "failed to add key to dictionary"
-#~ msgstr "l'ajout de cl au dictionnaire a chou"
+#, c-format
+msgid "failed to run function %s"
+msgstr "excution de la fonction %s a chou"
-#~ msgid "list index out of range"
-#~ msgstr "index de liste hors limites"
+msgid "unable to get option value"
+msgstr "impossible d'obtenir la valeur d'une option"
-#~ msgid "internal error: failed to get vim list item"
-#~ msgstr "erreur interne : accs un lment de liste a chou"
+msgid "internal error: unknown option type"
+msgstr "erreur interne : type d'option inconnu"
-#~ msgid "list is locked"
-#~ msgstr "liste verrouille"
+msgid "problem while switching windows"
+msgstr "problme lors du changement de fentres"
-#~ msgid "Failed to add item to list"
-#~ msgstr "Ajout la liste a chou"
+#, c-format
+msgid "unable to unset global option %s"
+msgstr "impossible de dsactiver une option globale %s"
-#~ msgid "internal error: failed to add item to list"
-#~ msgstr "erreur interne : ajout d'lment la liste a chou"
+#, c-format
+msgid "unable to unset option %s which does not have global value"
+msgstr "impossible de dsactiver l'option %s qui n'a pas de valeur globale"
-#~ msgid "cannot delete vim.dictionary attributes"
-#~ msgstr "impossible d'effacer les attributs de vim.dictionary"
+msgid "attempt to refer to deleted tab page"
+msgstr "tentative de rfrencer un onglet effac"
-#~ msgid "cannot modify fixed list"
-#~ msgstr "impossible de modifier une liste fixe"
+msgid "no such tab page"
+msgstr "cet onglet n'existe pas"
-#~ msgid "cannot set this attribute"
-#~ msgstr "impossible d'initialiser cet attribut"
+msgid "attempt to refer to deleted window"
+msgstr "tentative de rfrencer une fentre efface"
-#~ msgid "failed to run function"
-#~ msgstr "excution de la fonction a chou"
+msgid "readonly attribute: buffer"
+msgstr "attribut en lecture seule : tampon"
-#~ msgid "unable to unset global option"
-#~ msgstr "impossible de dsactiver une option globale"
+msgid "cursor position outside buffer"
+msgstr "curseur positionn en dehors du tampon"
-#~ msgid "unable to unset option without global value"
-#~ msgstr "impossible de dsactiver une option sans une valeur globale"
+msgid "no such window"
+msgstr "Cette fentre n'existe pas"
-#~ msgid "attempt to refer to deleted tab page"
-#~ msgstr "tentative de rfrencer un onglet effac"
+msgid "attempt to refer to deleted buffer"
+msgstr "tentative de rfrencer un tampon effac"
-#~ msgid "no such tab page"
-#~ msgstr "cet onglet n'existe pas"
+msgid "failed to rename buffer"
+msgstr "impossible de renommer le tampon"
-#~ msgid "attempt to refer to deleted window"
-#~ msgstr "tentative de rfrencer une fentre efface"
+msgid "mark name must be a single character"
+msgstr "le nom de marque doit tre un seul caractre"
-#~ msgid "readonly attribute"
-#~ msgstr "attribut en lecture seule"
+#, c-format
+msgid "expected vim.Buffer object, but got %s"
+msgstr "attendu un objet vim.Buffer, mais reu %s"
-#~ msgid "cursor position outside buffer"
-#~ msgstr "curseur positionn en dehors du tampon"
+#, c-format
+msgid "failed to switch to buffer %d"
+msgstr "impossible de se dplacer au tampon %d"
-#~ msgid "no such window"
-#~ msgstr "Cette fentre n'existe pas"
+#, c-format
+msgid "expected vim.Window object, but got %s"
+msgstr "attendu un objet vim.Window, mais reu %s"
-#~ msgid "attempt to refer to deleted buffer"
-#~ msgstr "tentative de rfrencer un tampon effac"
+msgid "failed to find window in the current tab page"
+msgstr "impossible de trouver une fentre dans l'onglet courant"
-#~ msgid "expected vim.buffer object"
-#~ msgstr "objet vim.buffer attendu"
+msgid "did not switch to the specified window"
+msgstr "ne s'est pas dplac la fentre spcifie"
-#~ msgid "failed to switch to given buffer"
-#~ msgstr "impossible de se dplacer au tampon donn"
+#, c-format
+msgid "expected vim.TabPage object, but got %s"
+msgstr "attendu un objet vim.TabPage, mais reu %s"
-#~ msgid "expected vim.window object"
-#~ msgstr "objet vim.window attendu"
+msgid "did not switch to the specified tab page"
+msgstr "impossible de se dplacer l'onglet spcifi"
-#~ msgid "failed to find window in the current tab page"
-#~ msgstr "impossible de trouver une fentre dans l'onglet courant"
+msgid "failed to run the code"
+msgstr "excution du code a chou"
-#~ msgid "did not switch to the specified window"
-#~ msgstr "ne s'est pas dplac la fentre spcifie"
+msgid "E858: Eval did not return a valid python object"
+msgstr "E858: Eval n'a pas retourn un objet python valide"
-#~ msgid "expected vim.tabpage object"
-#~ msgstr "objet vim.tabpage attendu"
+msgid "E859: Failed to convert returned python object to vim value"
+msgstr "E859: Conversion d'objet python une valeur de vim a chou"
-#~ msgid "did not switch to the specified tab page"
-#~ msgstr "impossible de se dplacer l'onglet spcifi"
+#, c-format
+msgid "unable to convert %s to vim dictionary"
+msgstr "impossible de convertir %s un dictionnaire vim"
-#~ msgid "failed to run the code"
-#~ msgstr "excution du code a chou"
+#, c-format
+msgid "unable to convert %s to vim list"
+msgstr "impossible de convertir %s une liste de vim"
-#~ msgid "E858: Eval did not return a valid python object"
-#~ msgstr "E858: Eval n'a pas retourn un objet python valide"
+#, c-format
+msgid "unable to convert %s to vim structure"
+msgstr "impossible de convertir %s une structure de vim"
-#~ msgid "E859: Failed to convert returned python object to vim value"
-#~ msgstr "E859: Conversion d'objet python une valeur de vim a chou"
+msgid "internal error: NULL reference passed"
+msgstr "erreur interne : rfrence NULL passe"
-#~ msgid "unable to convert to vim structure"
-#~ msgstr "conversion une structure vim impossible"
+msgid "internal error: invalid value type"
+msgstr "erreur interne : type de valeur invalide"
-#~ msgid "NULL reference passed"
-#~ msgstr "rfrence NULL passe"
+msgid ""
+"Failed to set path hook: sys.path_hooks is not a list\n"
+"You should now do the following:\n"
+"- append vim.path_hook to sys.path_hooks\n"
+"- append vim.VIM_SPECIAL_PATH to sys.path\n"
+msgstr ""
+"Impossible d'initialiser sys.path_hook qui n'est pas un liste\n"
+"Vous devez maintenant :\n"
+"- ajouter vim.path_hook sys.path_hooks\n"
+"- ajouter vim.VIM_SPECIAL_PATH sys.path\n"
-#~ msgid "internal error: invalid value type"
-#~ msgstr "erreur interne : type de valeur invalide"
+msgid ""
+"Failed to set path: sys.path is not a list\n"
+"You should now append vim.VIM_SPECIAL_PATH to sys.path"
+msgstr ""
+"Impossible d'initialiser le chemin : sys.math n'est pas une liste\n"
+"Vous devez maintenant ajouter vim.VIM_SPECIAL_PATH sys.path"
diff --git a/src/nvim/po/ga.po b/src/nvim/po/ga.po
index 761539039d..abb3565077 100644
--- a/src/nvim/po/ga.po
+++ b/src/nvim/po/ga.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: vim 7.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-05-26 14:21+0200\n"
+"POT-Creation-Date: 2016-10-25 09:31-0500\n"
"PO-Revision-Date: 2010-04-14 10:01-0500\n"
"Last-Translator: Kevin Patrick Scannell <kscanne@gmail.com>\n"
"Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n"
@@ -14,208 +14,171 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : (n>2 && n<7) ? 2 :"
+"(n>6 && n<11) ? 3 : 4;\n"
-#: ../api/private/helpers.c:201
-#, fuzzy
-msgid "Unable to get option value"
-msgstr "Dramhal i ndiaidh arginte rogha"
+msgid "E831: bf_key_init() called with empty password"
+msgstr "E831: cuireadh glaoch ar bf_key_init() le focal faire folamh"
-#: ../api/private/helpers.c:204
-msgid "internal error: unknown option type"
-msgstr ""
+msgid "E820: sizeof(uint32_t) != 4"
+msgstr "E820: sizeof(uint32_t) != 4"
+
+msgid "E817: Blowfish big/little endian use wrong"
+msgstr "E817: sid mhcheart Blowfish mrcheannach/caolcheannach"
+
+msgid "E818: sha256 test failed"
+msgstr "E818: Theip ar thstil sha256"
+
+msgid "E819: Blowfish test failed"
+msgstr "E819: Theip ar thstil Blowfish"
-#: ../buffer.c:92
msgid "[Location List]"
msgstr "[Liosta Suomh]"
-#: ../buffer.c:93
msgid "[Quickfix List]"
-msgstr "[Liosta Ceartchn Tapa]"
+msgstr "[Liosta Mearcheartchn]"
-#: ../buffer.c:94
-#, fuzzy
msgid "E855: Autocommands caused command to abort"
-msgstr "E812: Bh maoln n ainm maolin athraithe ag orduithe uathoibrocha"
+msgstr "E855: Tobscoireadh an t-ord mar gheall ar uathorduithe"
-#: ../buffer.c:135
msgid "E82: Cannot allocate any buffer, exiting..."
msgstr "E82: N fidir maoln a dhileadh, ag scor..."
-#: ../buffer.c:138
msgid "E83: Cannot allocate buffer, using other one..."
msgstr "E83: N fidir maoln a dhileadh, ag sid cinn eile..."
-#: ../buffer.c:763
+msgid "E931: Buffer cannot be registered"
+msgstr "E931: N fidir an maoln a chlr"
+
+msgid "E937: Attempt to delete a buffer that is in use"
+msgstr "E937: Iarracht ar mhaoln in sid a scriosadh"
+
msgid "E515: No buffers were unloaded"
msgstr "E515: N raibh aon mhaoln dluchtaithe"
-#: ../buffer.c:765
msgid "E516: No buffers were deleted"
msgstr "E516: N raibh aon mhaoln scriosta"
-#: ../buffer.c:767
msgid "E517: No buffers were wiped out"
msgstr "E517: N raibh aon mhaoln bnaithe"
-#: ../buffer.c:772
msgid "1 buffer unloaded"
msgstr "Bh maoln amhin dluchtaithe"
-#: ../buffer.c:774
#, c-format
msgid "%d buffers unloaded"
msgstr "%d maoln folmhaithe"
-#: ../buffer.c:777
msgid "1 buffer deleted"
msgstr "Bh maoln amhin scriosta"
-#: ../buffer.c:779
#, c-format
msgid "%d buffers deleted"
msgstr "%d maoln scriosta"
-#: ../buffer.c:782
msgid "1 buffer wiped out"
msgstr "Bh maoln amhin bnaithe"
-#: ../buffer.c:784
#, c-format
msgid "%d buffers wiped out"
msgstr "%d maoln bnaithe"
-#: ../buffer.c:806
msgid "E90: Cannot unload last buffer"
msgstr "E90: N fidir an maoln deireanach a dhlucht"
-#: ../buffer.c:874
msgid "E84: No modified buffer found"
msgstr "E84: Nor aimsodh maoln mionathraithe"
#. back where we started, didn't find anything.
-#: ../buffer.c:903
msgid "E85: There is no listed buffer"
msgstr "E85: Nl aon mhaoln liostaithe ann"
-#: ../buffer.c:913
-#, c-format
-msgid "E86: Buffer %<PRId64> does not exist"
-msgstr "E86: Nl a leithid de mhaoln %<PRId64>"
-
-#: ../buffer.c:915
msgid "E87: Cannot go beyond last buffer"
msgstr "E87: N fidir a dhul thar an maoln deireanach"
-#: ../buffer.c:917
msgid "E88: Cannot go before first buffer"
msgstr "E88: N fidir a dhul roimh an chad mhaoln"
-#: ../buffer.c:945
#, c-format
-msgid ""
-"E89: No write since last change for buffer %<PRId64> (add ! to override)"
+msgid "E89: No write since last change for buffer %ld (add ! to override)"
msgstr ""
-"E89: Athraodh maoln %<PRId64> ach nach bhfuil s sbhilte shin (cuir ! "
-"leis an ord chun sr)"
+"E89: Athraodh maoln %ld ach nach bhfuil s sbhilte shin (cuir ! leis "
+"an ord chun sr)"
-#. wrap around (may cause duplicates)
-#: ../buffer.c:1423
msgid "W14: Warning: List of file names overflow"
msgstr "W14: Rabhadh: Liosta ainmneacha comhaid thar maoil"
-#: ../buffer.c:1555 ../quickfix.c:3361
#, c-format
-msgid "E92: Buffer %<PRId64> not found"
-msgstr "E92: Maoln %<PRId64> gan aimsi"
+msgid "E92: Buffer %ld not found"
+msgstr "E92: Maoln %ld gan aimsi"
-#: ../buffer.c:1798
#, c-format
msgid "E93: More than one match for %s"
msgstr "E93: Nos m n teaghrn amhin comhoirinaithe le %s"
-#: ../buffer.c:1800
#, c-format
msgid "E94: No matching buffer for %s"
msgstr "E94: Nl aon mhaoln comhoirinaithe le %s"
-#: ../buffer.c:2161
#, c-format
-msgid "line %<PRId64>"
-msgstr "lne %<PRId64>:"
+msgid "line %ld"
+msgstr "lne %ld:"
-#: ../buffer.c:2233
msgid "E95: Buffer with this name already exists"
msgstr "E95: T maoln ann leis an ainm seo cheana"
-#: ../buffer.c:2498
msgid " [Modified]"
msgstr " [Mionathraithe]"
-#: ../buffer.c:2501
msgid "[Not edited]"
msgstr "[Gan eagr]"
-#: ../buffer.c:2504
msgid "[New file]"
msgstr "[Comhad nua]"
-#: ../buffer.c:2505
msgid "[Read errors]"
msgstr "[Earrid limh]"
-#: ../buffer.c:2506 ../buffer.c:3217 ../fileio.c:1807 ../screen.c:4895
msgid "[RO]"
msgstr "[L-A]"
-#: ../buffer.c:2507 ../fileio.c:1807
msgid "[readonly]"
msgstr "[inlite amhin]"
-#: ../buffer.c:2524
#, c-format
msgid "1 line --%d%%--"
msgstr "1 lne --%d%%--"
-#: ../buffer.c:2526
#, c-format
-msgid "%<PRId64> lines --%d%%--"
-msgstr "%<PRId64> lne --%d%%--"
+msgid "%ld lines --%d%%--"
+msgstr "%ld lne --%d%%--"
-#: ../buffer.c:2530
#, c-format
-msgid "line %<PRId64> of %<PRId64> --%d%%-- col "
-msgstr "lne %<PRId64> de %<PRId64> --%d%%-- col "
+msgid "line %ld of %ld --%d%%-- col "
+msgstr "lne %ld de %ld --%d%%-- col "
-#: ../buffer.c:2632 ../buffer.c:4292 ../memline.c:1554
msgid "[No Name]"
msgstr "[Gan Ainm]"
#. must be a help buffer
-#: ../buffer.c:2667
msgid "help"
msgstr "cabhair"
-#: ../buffer.c:3225 ../screen.c:4883
msgid "[Help]"
msgstr "[Cabhair]"
-#: ../buffer.c:3254 ../screen.c:4887
msgid "[Preview]"
msgstr "[Ramhamharc]"
-#: ../buffer.c:3528
msgid "All"
msgstr "Uile"
-#: ../buffer.c:3528
msgid "Bot"
msgstr "Bun"
-#: ../buffer.c:3531
msgid "Top"
msgstr "Barr"
-#: ../buffer.c:4244
msgid ""
"\n"
"# Buffer list:\n"
@@ -223,11 +186,9 @@ msgstr ""
"\n"
"# Liosta maolin:\n"
-#: ../buffer.c:4289
msgid "[Scratch]"
msgstr "[Sealadach]"
-#: ../buffer.c:4529
msgid ""
"\n"
"--- Signs ---"
@@ -235,202 +196,236 @@ msgstr ""
"\n"
"--- Comhartha ---"
-#: ../buffer.c:4538
#, c-format
msgid "Signs for %s:"
msgstr "Comhartha do %s:"
-#: ../buffer.c:4543
#, c-format
-msgid " line=%<PRId64> id=%d name=%s"
-msgstr " lne=%<PRId64> id=%d ainm=%s"
+msgid " line=%ld id=%d name=%s"
+msgstr " lne=%ld id=%d ainm=%s"
-#: ../cursor_shape.c:68
-msgid "E545: Missing colon"
-msgstr "E545: Idirstad ar iarraidh"
+msgid "E902: Cannot connect to port"
+msgstr "E902: N fidir ceangal leis an bport"
-#: ../cursor_shape.c:70 ../cursor_shape.c:94
-msgid "E546: Illegal mode"
-msgstr "E546: Md neamhcheadaithe"
+msgid "E901: gethostbyname() in channel_open()"
+msgstr "E901: gethostbyname() in channel_open()"
-#: ../cursor_shape.c:134
-msgid "E548: digit expected"
-msgstr "E548: ag sil le digit"
+msgid "E898: socket() in channel_open()"
+msgstr "E898: socket() in channel_open()"
-#: ../cursor_shape.c:138
-msgid "E549: Illegal percentage"
-msgstr "E549: Catadn neamhcheadaithe"
+msgid "E903: received command with non-string argument"
+msgstr "E903: fuarthas ord le hargint nach bhfuil ina theaghrn"
+
+msgid "E904: last argument for expr/call must be a number"
+msgstr "E904: n mr don argint dheireanach ar expr/call a bheith ina huimhir"
+
+msgid "E904: third argument for call must be a list"
+msgstr "E904: Caithfidh an tr argint a bheith ina liosta"
+
+#, c-format
+msgid "E905: received unknown command: %s"
+msgstr "E905: fuarthas ord anaithnid: %s"
+
+#, c-format
+msgid "E630: %s(): write while not connected"
+msgstr "E630: %s(): scrobh gan ceangal a bheith ann"
+
+#, c-format
+msgid "E631: %s(): write failed"
+msgstr "E631: %s(): theip ar scrobh"
+
+#, c-format
+msgid "E917: Cannot use a callback with %s()"
+msgstr "E917: N fidir aisghlaoch a sid le %s()"
+
+msgid "E912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channel"
+msgstr "E912: n fidir ch_evalexpr()/ch_sendexpr() a sid le cainal raw n nl"
+
+msgid "E906: not an open channel"
+msgstr "E906: n cainal oscailte "
+
+msgid "E920: _io file requires _name to be set"
+msgstr "E920: caithfear _name a shocr chun comhad _io a sid"
+
+msgid "E915: in_io buffer requires in_buf or in_name to be set"
+msgstr "E915: caithfear in_buf n in_name a shocr chun maoln in_io a sid"
+
+#, c-format
+msgid "E918: buffer must be loaded: %s"
+msgstr "E918: n mr an maoln a lucht: %s"
+
+msgid "E821: File is encrypted with unknown method"
+msgstr "E821: Comhad criptithe le modh anaithnid"
+
+msgid "Warning: Using a weak encryption method; see :help 'cm'"
+msgstr "Rabhadh: Criptichn lag; fach :help 'cm'"
+
+msgid "Enter encryption key: "
+msgstr "Iontril eochair chriptichin: "
+
+msgid "Enter same key again: "
+msgstr "Iontril an eochair ars: "
+
+msgid "Keys don't match!"
+msgstr "Nl na heochracha comhoirinach le chile!"
+
+msgid "[crypted]"
+msgstr "[criptithe]"
-#: ../diff.c:146
#, c-format
-msgid "E96: Can not diff more than %<PRId64> buffers"
-msgstr "E96: N fidir diff a dhanamh ar nos m n %<PRId64> maoln"
+msgid "E720: Missing colon in Dictionary: %s"
+msgstr "E720: Idirstad ar iarraidh i bhFoclir: %s"
+
+#, c-format
+msgid "E721: Duplicate key in Dictionary: \"%s\""
+msgstr "E721: Eochair dhblach i bhFoclir: \"%s\""
+
+#, c-format
+msgid "E722: Missing comma in Dictionary: %s"
+msgstr "E722: Camg ar iarraidh i bhFoclir: %s"
+
+#, c-format
+msgid "E723: Missing end of Dictionary '}': %s"
+msgstr "E723: '}' ar iarraidh ag deireadh foclra: %s"
+
+msgid "extend() argument"
+msgstr "argint extend()"
+
+#, c-format
+msgid "E737: Key already exists: %s"
+msgstr "E737: T eochair ann cheana: %s"
+
+#, c-format
+msgid "E96: Cannot diff more than %ld buffers"
+msgstr "E96: N fidir diff a dhanamh ar nos m n %ld maoln"
-#: ../diff.c:753
msgid "E810: Cannot read or write temp files"
msgstr "E810: N fidir comhaid shealadacha a lamh n a scrobh"
-#: ../diff.c:755
msgid "E97: Cannot create diffs"
msgstr "E97: N fidir diffeanna a chruth"
-#: ../diff.c:966
+msgid "Patch file"
+msgstr "Comhad paiste"
+
msgid "E816: Cannot read patch output"
msgstr "E816: N fidir aschur 'patch' a lamh"
-#: ../diff.c:1220
msgid "E98: Cannot read diff output"
msgstr "E98: N fidir aschur 'diff' a lamh"
-#: ../diff.c:2081
msgid "E99: Current buffer is not in diff mode"
msgstr "E99: Nl an maoln reatha sa mhd diff"
-#: ../diff.c:2100
msgid "E793: No other buffer in diff mode is modifiable"
msgstr "E793: N fidir aon mhaoln eile a athr sa mhd diff"
-#: ../diff.c:2102
msgid "E100: No other buffer in diff mode"
msgstr "E100: Nl aon mhaoln eile sa mhd diff"
-#: ../diff.c:2112
msgid "E101: More than two buffers in diff mode, don't know which one to use"
msgstr ""
"E101: T nos m n dh mhaoln sa mhd diff, nl fhios agam c acu ba chir "
"a sid"
-#: ../diff.c:2141
#, c-format
msgid "E102: Can't find buffer \"%s\""
msgstr "E102: T maoln \"%s\" gan aimsi"
-#: ../diff.c:2152
#, c-format
msgid "E103: Buffer \"%s\" is not in diff mode"
msgstr "E103: Nl maoln \"%s\" i md diff"
-#: ../diff.c:2193
msgid "E787: Buffer changed unexpectedly"
msgstr "E787: Athraodh an maoln gan choinne"
-#: ../digraph.c:1598
msgid "E104: Escape not allowed in digraph"
msgstr "E104: N cheadatear carachtair alchin i ndghraf"
-#: ../digraph.c:1760
msgid "E544: Keymap file not found"
msgstr "E544: Comhad eochairmhapla gan aimsi"
-#: ../digraph.c:1785
msgid "E105: Using :loadkeymap not in a sourced file"
msgstr "E105: Ag sid :loadkeymap ach n comhad foinsithe seo"
-#: ../digraph.c:1821
msgid "E791: Empty keymap entry"
msgstr "E791: Iontril fholamh eochairmhapla"
-#: ../edit.c:82
msgid " Keyword completion (^N^P)"
msgstr " Comhln lorgfhocal (^N^P)"
#. ctrl_x_mode == 0, ^P/^N compl.
-#: ../edit.c:83
msgid " ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
msgstr " md ^X (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
-#: ../edit.c:85
msgid " Whole line completion (^L^N^P)"
msgstr " Comhln Lnte Ina Iomln (^L^N^P)"
-#: ../edit.c:86
msgid " File name completion (^F^N^P)"
msgstr " Comhln de na hainmneacha comhaid (^F^N^P)"
-#: ../edit.c:87
msgid " Tag completion (^]^N^P)"
msgstr " Comhln clibeanna (^]/^N/^P)"
-#: ../edit.c:88
msgid " Path pattern completion (^N^P)"
msgstr " Comhln Conaire (^N^P)"
-#: ../edit.c:89
msgid " Definition completion (^D^N^P)"
msgstr " Comhln de na sainmhnithe (^D^N^P)"
-#: ../edit.c:91
msgid " Dictionary completion (^K^N^P)"
msgstr " Comhln foclra (^K^N^P)"
-#: ../edit.c:92
msgid " Thesaurus completion (^T^N^P)"
msgstr " Comhln teasrais (^T^N^P)"
-#: ../edit.c:93
msgid " Command-line completion (^V^N^P)"
msgstr " Comhln den lne ordaithe (^V^N^P)"
-#: ../edit.c:94
msgid " User defined completion (^U^N^P)"
msgstr " Comhln saincheaptha (^U^N^P)"
-#: ../edit.c:95
msgid " Omni completion (^O^N^P)"
msgstr " Comhln Omni (^O^N^P)"
-#: ../edit.c:96
msgid " Spelling suggestion (s^N^P)"
msgstr " Moladh litrithe (s^N^P)"
-#: ../edit.c:97
msgid " Keyword Local completion (^N^P)"
msgstr " Comhln lognta lorgfhocal (^N^P)"
-#: ../edit.c:100
msgid "Hit end of paragraph"
msgstr "Sroicheadh croch an pharagraif"
-#: ../edit.c:101
-#, fuzzy
msgid "E839: Completion function changed window"
-msgstr "E813: N fidir fuinneog autocmd a dhnadh"
+msgstr "E839: D'athraigh an fheidhm chomhlnaithe an fhuinneog"
-#: ../edit.c:102
msgid "E840: Completion function deleted text"
-msgstr ""
+msgstr "E840: Scrios an fheidhm chomhlnaithe roinnt tacs"
-#: ../edit.c:1847
msgid "'dictionary' option is empty"
msgstr "t an rogha 'dictionary' folamh"
-#: ../edit.c:1848
msgid "'thesaurus' option is empty"
msgstr "t an rogha 'thesaurus' folamh"
-#: ../edit.c:2655
#, c-format
msgid "Scanning dictionary: %s"
msgstr "Foclir scanadh: %s"
-#: ../edit.c:3079
msgid " (insert) Scroll (^E/^Y)"
msgstr " (ionsigh) Scrollaigh (^E/^Y)"
-#: ../edit.c:3081
msgid " (replace) Scroll (^E/^Y)"
msgstr " (ionadaigh) Scrollaigh (^E/^Y)"
-#: ../edit.c:3587
#, c-format
msgid "Scanning: %s"
msgstr "%s scanadh"
-#: ../edit.c:3614
msgid "Scanning tags."
msgstr "Clibeanna scanadh."
-#: ../edit.c:4519
msgid " Adding"
msgstr " Mad"
@@ -438,702 +433,451 @@ msgstr " Mad"
#. * be called before line = ml_get(), or when this address is no
#. * longer needed. -- Acevedo.
#.
-#: ../edit.c:4562
msgid "-- Searching..."
msgstr "-- Ag Cuardach..."
-#: ../edit.c:4618
msgid "Back at original"
msgstr "Ar ais ag an mbunit"
-#: ../edit.c:4621
msgid "Word from other line"
msgstr "Focal as lne eile"
-#: ../edit.c:4624
msgid "The only match"
msgstr "An t-aon teaghrn amhin comhoirinaithe"
-#: ../edit.c:4680
#, c-format
msgid "match %d of %d"
msgstr "comhoirin %d as %d"
-#: ../edit.c:4684
#, c-format
msgid "match %d"
msgstr "comhoirin %d"
-#: ../eval.c:137
+#. maximum nesting of lists and dicts
msgid "E18: Unexpected characters in :let"
msgstr "E18: Carachtair gan choinne i :let"
-#: ../eval.c:138
-#, c-format
-msgid "E684: list index out of range: %<PRId64>"
-msgstr "E684: innacs liosta as raon: %<PRId64>"
-
-#: ../eval.c:139
#, c-format
msgid "E121: Undefined variable: %s"
msgstr "E121: Athrg gan sainmhni: %s"
-#: ../eval.c:140
msgid "E111: Missing ']'"
msgstr "E111: `]' ar iarraidh"
-#: ../eval.c:141
-#, c-format
-msgid "E686: Argument of %s must be a List"
-msgstr "E686: Caithfidh argint de %s a bheith ina Liosta"
-
-#: ../eval.c:143
-#, c-format
-msgid "E712: Argument of %s must be a List or Dictionary"
-msgstr "E712: Caithfidh argint de %s a bheith ina Liosta n Foclir"
-
-#: ../eval.c:144
-msgid "E713: Cannot use empty key for Dictionary"
-msgstr "E713: N fidir eochair fholamh a sid le Foclir"
-
-#: ../eval.c:145
-msgid "E714: List required"
-msgstr "E714: T g le liosta"
-
-#: ../eval.c:146
-msgid "E715: Dictionary required"
-msgstr "E715: T g le foclir"
-
-#: ../eval.c:147
-#, c-format
-msgid "E118: Too many arguments for function: %s"
-msgstr "E118: An iomarca argint d'fheidhm: %s"
-
-#: ../eval.c:148
-#, c-format
-msgid "E716: Key not present in Dictionary: %s"
-msgstr "E716: Nl an eochair seo san Fhoclir: %s"
-
-#: ../eval.c:150
-#, c-format
-msgid "E122: Function %s already exists, add ! to replace it"
-msgstr "E122: T feidhm %s ann cheana, cuir ! leis an ord chun a asiti"
-
-#: ../eval.c:151
-msgid "E717: Dictionary entry already exists"
-msgstr "E717: T an iontril foclra seo ann cheana"
-
-#: ../eval.c:152
-msgid "E718: Funcref required"
-msgstr "E718: T g le Funcref"
-
-#: ../eval.c:153
msgid "E719: Cannot use [:] with a Dictionary"
msgstr "E719: N fidir [:] a sid le foclir"
-#: ../eval.c:154
#, c-format
msgid "E734: Wrong variable type for %s="
msgstr "E734: Cinel mcheart athrige le haghaidh %s="
-#: ../eval.c:155
-#, c-format
-msgid "E130: Unknown function: %s"
-msgstr "E130: Feidhm anaithnid: %s"
-
-#: ../eval.c:156
#, c-format
msgid "E461: Illegal variable name: %s"
msgstr "E461: Ainm athrige neamhcheadaithe: %s"
-#: ../eval.c:157
msgid "E806: using Float as a String"
msgstr "E806: Snmhphointe sid mar Theaghrn"
-#: ../eval.c:1830
msgid "E687: Less targets than List items"
msgstr "E687: Nos l spriocanna n mreanna Liosta"
-#: ../eval.c:1834
msgid "E688: More targets than List items"
msgstr "E688: Nos m spriocanna n mreanna Liosta"
-#: ../eval.c:1906
msgid "Double ; in list of variables"
msgstr "; dblach i liosta na n-athrg"
-#: ../eval.c:2078
#, c-format
msgid "E738: Can't list variables for %s"
msgstr "E738: N fidir athrga do %s a thaispeint"
-#: ../eval.c:2391
msgid "E689: Can only index a List or Dictionary"
msgstr "E689: Is fidir Liosta n Foclir amhin a innacs"
-#: ../eval.c:2396
msgid "E708: [:] must come last"
msgstr "E708: caithfidh [:] a bheith ar deireadh"
-#: ../eval.c:2439
msgid "E709: [:] requires a List value"
msgstr "E709: n folir Liosta a thabhairt le [:]"
-#: ../eval.c:2674
msgid "E710: List value has more items than target"
msgstr "E710: T nos m mreanna ag an Liosta n an sprioc"
-#: ../eval.c:2678
msgid "E711: List value has not enough items"
msgstr "E711: Nl go leor mreanna ag an Liosta"
-#: ../eval.c:2867
msgid "E690: Missing \"in\" after :for"
msgstr "E690: \"in\" ar iarraidh i ndiaidh :for"
-#: ../eval.c:3063
-#, c-format
-msgid "E107: Missing parentheses: %s"
-msgstr "E107: Libn ar iarraidh: %s"
-
-#: ../eval.c:3263
#, c-format
msgid "E108: No such variable: \"%s\""
msgstr "E108: Nl a leithid d'athrg: \"%s\""
-#: ../eval.c:3333
msgid "E743: variable nested too deep for (un)lock"
msgstr "E743: athrg neadaithe rdhomhain chun a (d)ghlasil"
-#: ../eval.c:3630
msgid "E109: Missing ':' after '?'"
msgstr "E109: ':' ar iarraidh i ndiaidh '?'"
-#: ../eval.c:3893
msgid "E691: Can only compare List with List"
msgstr "E691: Is fidir Liosta a chur i gcomparid le Liosta eile amhin"
-#: ../eval.c:3895
-msgid "E692: Invalid operation for Lists"
+msgid "E692: Invalid operation for List"
msgstr "E692: Oibrocht neamhbhail ar Liosta"
-#: ../eval.c:3915
msgid "E735: Can only compare Dictionary with Dictionary"
msgstr "E735: Is fidir Foclir a chur i gcomparid le Foclir eile amhin"
-#: ../eval.c:3917
msgid "E736: Invalid operation for Dictionary"
msgstr "E736: Oibrocht neamhbhail ar Fhoclir"
-#: ../eval.c:3932
-msgid "E693: Can only compare Funcref with Funcref"
-msgstr "E693: Is fidir Funcref a chur i gcomparid le Funcref eile amhin"
-
-#: ../eval.c:3934
msgid "E694: Invalid operation for Funcrefs"
msgstr "E694: Oibrocht neamhbhail ar Funcref"
-#: ../eval.c:4277
msgid "E804: Cannot use '%' with Float"
msgstr "E804: N fidir '%' a sid le Snmhphointe"
-#: ../eval.c:4478
msgid "E110: Missing ')'"
msgstr "E110: ')' ar iarraidh"
-#: ../eval.c:4609
msgid "E695: Cannot index a Funcref"
msgstr "E695: N fidir Funcref a innacs"
-#: ../eval.c:4839
+msgid "E909: Cannot index a special variable"
+msgstr "E909: N fidir athrg speisialta a innacs"
+
#, c-format
msgid "E112: Option name missing: %s"
msgstr "E112: Ainm rogha ar iarraidh: %s"
-#: ../eval.c:4855
#, c-format
msgid "E113: Unknown option: %s"
msgstr "E113: Rogha anaithnid: %s"
-#: ../eval.c:4904
#, c-format
msgid "E114: Missing quote: %s"
msgstr "E114: Comhartha athfhriotail ar iarraidh: %s"
-#: ../eval.c:5020
#, c-format
msgid "E115: Missing quote: %s"
msgstr "E115: Comhartha athfhriotail ar iarraidh: %s"
-#: ../eval.c:5084
-#, c-format
-msgid "E696: Missing comma in List: %s"
-msgstr "E696: Camg ar iarraidh i Liosta: %s"
-
-#: ../eval.c:5091
-#, c-format
-msgid "E697: Missing end of List ']': %s"
-msgstr "E697: ']' ar iarraidh ag deireadh liosta: %s"
-
-#: ../eval.c:6475
-#, c-format
-msgid "E720: Missing colon in Dictionary: %s"
-msgstr "E720: Idirstad ar iarraidh i bhFoclir: %s"
-
-#: ../eval.c:6499
-#, c-format
-msgid "E721: Duplicate key in Dictionary: \"%s\""
-msgstr "E721: Eochair dhblach i bhFoclir: \"%s\""
-
-#: ../eval.c:6517
-#, c-format
-msgid "E722: Missing comma in Dictionary: %s"
-msgstr "E722: Camg ar iarraidh i bhFoclir: %s"
-
-#: ../eval.c:6524
-#, c-format
-msgid "E723: Missing end of Dictionary '}': %s"
-msgstr "E723: '}' ar iarraidh ag deireadh foclra: %s"
+msgid "Not enough memory to set references, garbage collection aborted!"
+msgstr ""
+"Nl go leor cuimhne ann le tagairt a shocr; baili dramhaola thobscor!"
-#: ../eval.c:6555
msgid "E724: variable nested too deep for displaying"
msgstr "E724: athrg neadaithe rdhomhain chun a thaispeint"
-#: ../eval.c:7188
-#, c-format
-msgid "E740: Too many arguments for function %s"
-msgstr "E740: An iomarca argint d'fheidhm %s"
-
-#: ../eval.c:7190
-#, c-format
-msgid "E116: Invalid arguments for function %s"
-msgstr "E116: Argint neamhbhail d'fheidhm %s"
-
-#: ../eval.c:7377
-#, c-format
-msgid "E117: Unknown function: %s"
-msgstr "E117: Feidhm anaithnid: %s"
-
-#: ../eval.c:7383
-#, c-format
-msgid "E119: Not enough arguments for function: %s"
-msgstr "E119: Nl go leor feidhmeanna d'fheidhm: %s"
-
-#: ../eval.c:7387
-#, c-format
-msgid "E120: Using <SID> not in a script context: %s"
-msgstr "E120: <SID> sid ach gan a bheith i gcomhthacs scripte: %s"
-
-#: ../eval.c:7391
-#, c-format
-msgid "E725: Calling dict function without Dictionary: %s"
-msgstr "E725: Feidhm 'dict' ghlao gan Foclir: %s"
-
-#: ../eval.c:7453
-msgid "E808: Number or Float required"
-msgstr "E808: Uimhir n Snmhphointe de dhth"
-
-#: ../eval.c:7503
-#, fuzzy
-msgid "add() argument"
-msgstr "argint -c"
-
-#: ../eval.c:7907
-msgid "E699: Too many arguments"
-msgstr "E699: An iomarca argint"
-
-#: ../eval.c:8073
-msgid "E785: complete() can only be used in Insert mode"
-msgstr "E785: is fidir complete() a sid sa mhd Ionsite amhin"
-
-#: ../eval.c:8156
-msgid "&Ok"
-msgstr "&Ok"
-
-#: ../eval.c:8676
-#, c-format
-msgid "E737: Key already exists: %s"
-msgstr "E737: T eochair ann cheana: %s"
-
-#: ../eval.c:8692
-#, fuzzy
-msgid "extend() argument"
-msgstr "argint --cmd"
-
-#: ../eval.c:8915
-#, fuzzy
-msgid "map() argument"
-msgstr "argint -c"
-
-#: ../eval.c:8916
-#, fuzzy
-msgid "filter() argument"
-msgstr "argint -c"
-
-#: ../eval.c:9229
-#, c-format
-msgid "+-%s%3ld lines: "
-msgstr "+-%s%3ld lne: "
-
-#: ../eval.c:9291
-#, c-format
-msgid "E700: Unknown function: %s"
-msgstr "E700: Feidhm anaithnid: %s"
-
-#: ../eval.c:10729
-msgid "called inputrestore() more often than inputsave()"
-msgstr "Glaodh inputrestore() nos minice n inputsave()"
-
-#: ../eval.c:10771
-#, fuzzy
-msgid "insert() argument"
-msgstr "argint -c"
-
-#: ../eval.c:10841
-msgid "E786: Range not allowed"
-msgstr "E786: N cheadatear an raon"
-
-#: ../eval.c:11140
-msgid "E701: Invalid type for len()"
-msgstr "E701: Cinel neamhbhail le haghaidh len()"
-
-#: ../eval.c:11980
-msgid "E726: Stride is zero"
-msgstr "E726: Is nialas an chim"
-
-#: ../eval.c:11982
-msgid "E727: Start past end"
-msgstr "E727: Tosach thar dheireadh"
-
-#: ../eval.c:12024 ../eval.c:15297
-msgid "<empty>"
-msgstr "<folamh>"
-
-#: ../eval.c:12282
-#, fuzzy
-msgid "remove() argument"
-msgstr "argint --cmd"
+msgid "E805: Using a Float as a Number"
+msgstr "E805: Snmhphointe sid mar Uimhir"
-#: ../eval.c:12466
-msgid "E655: Too many symbolic links (cycle?)"
-msgstr "E655: An iomarca naisc shiombalacha (ciogal?)"
+msgid "E703: Using a Funcref as a Number"
+msgstr "E703: Funcref sid mar Uimhir"
-#: ../eval.c:12593
-#, fuzzy
-msgid "reverse() argument"
-msgstr "argint -c"
+msgid "E745: Using a List as a Number"
+msgstr "E745: Liosta sid mar Uimhir"
-#: ../eval.c:13721
-#, fuzzy
-msgid "sort() argument"
-msgstr "argint -c"
+msgid "E728: Using a Dictionary as a Number"
+msgstr "E728: Foclir sid mar Uimhir"
-#: ../eval.c:13721
-#, fuzzy
-msgid "uniq() argument"
-msgstr "argint -c"
+msgid "E910: Using a Job as a Number"
+msgstr "E910: Jab sid mar Uimhir"
-#: ../eval.c:13776
-msgid "E702: Sort compare function failed"
-msgstr "E702: Theip ar fheidhm chomparide le linn srtla"
+msgid "E913: Using a Channel as a Number"
+msgstr "E913: Cainal sid mar Uimhir"
-#: ../eval.c:13806
-#, fuzzy
-msgid "E882: Uniq compare function failed"
-msgstr "E702: Theip ar fheidhm chomparide le linn srtla"
+msgid "E891: Using a Funcref as a Float"
+msgstr "E891: Funcref sid mar Shnmhphointe"
-#: ../eval.c:14085
-msgid "(Invalid)"
-msgstr "(Neamhbhail)"
+msgid "E892: Using a String as a Float"
+msgstr "E892: Teaghrn sid mar Shnmhphointe"
-#: ../eval.c:14590
-msgid "E677: Error writing temp file"
-msgstr "E677: Earrid agus comhad sealadach scrobh"
+msgid "E893: Using a List as a Float"
+msgstr "E893: Liosta sid mar Shnmhphointe"
-#: ../eval.c:16159
-msgid "E805: Using a Float as a Number"
-msgstr "E805: Snmhphointe sid mar Uimhir"
+msgid "E894: Using a Dictionary as a Float"
+msgstr "E894: Foclir sid mar Shnmhphointe"
-#: ../eval.c:16162
-msgid "E703: Using a Funcref as a Number"
-msgstr "E703: Funcref sid mar Uimhir"
+msgid "E907: Using a special value as a Float"
+msgstr "E907: Luach speisialta sid mar Shnmhphointe"
-#: ../eval.c:16170
-msgid "E745: Using a List as a Number"
-msgstr "E745: Liosta sid mar Uimhir"
+msgid "E911: Using a Job as a Float"
+msgstr "E911: Jab sid mar Shnmhphointe"
-#: ../eval.c:16173
-msgid "E728: Using a Dictionary as a Number"
-msgstr "E728: Foclir sid mar Uimhir"
+msgid "E914: Using a Channel as a Float"
+msgstr "E914: Cainal sid mar Shnmhphointe"
-#: ../eval.c:16259
msgid "E729: using Funcref as a String"
msgstr "E729: Funcref sid mar Theaghrn"
-#: ../eval.c:16262
msgid "E730: using List as a String"
msgstr "E730: Liosta sid mar Theaghrn"
-#: ../eval.c:16265
msgid "E731: using Dictionary as a String"
msgstr "E731: Foclir sid mar Theaghrn"
-#: ../eval.c:16619
-#, c-format
-msgid "E706: Variable type mismatch for: %s"
-msgstr "E706: Mmheaitseil idir cinelacha athrige: %s"
+msgid "E908: using an invalid value as a String"
+msgstr "E908: luach neamhbhail sid mar Theaghrn"
-#: ../eval.c:16705
#, c-format
msgid "E795: Cannot delete variable %s"
msgstr "E795: N fidir athrg %s a scriosadh"
-#: ../eval.c:16724
#, c-format
msgid "E704: Funcref variable name must start with a capital: %s"
msgstr "E704: Caithfidh ceannlitir a bheith ar dts ainm Funcref: %s"
-#: ../eval.c:16732
#, c-format
msgid "E705: Variable name conflicts with existing function: %s"
msgstr "E705: Tagann ainm athrige salach ar fheidhm at ann cheana: %s"
-#: ../eval.c:16763
#, c-format
msgid "E741: Value is locked: %s"
msgstr "E741: T an luach faoi ghlas: %s"
-#: ../eval.c:16764 ../eval.c:16769 ../message.c:1839
msgid "Unknown"
msgstr "Anaithnid"
-#: ../eval.c:16768
#, c-format
msgid "E742: Cannot change value of %s"
msgstr "E742: N fidir an luach de %s a athr"
-#: ../eval.c:16838
msgid "E698: variable nested too deep for making a copy"
msgstr "E698: athrg neadaithe rdhomhain chun a chipeil"
-#: ../eval.c:17249
-#, c-format
-msgid "E123: Undefined function: %s"
-msgstr "E123: Feidhm gan sainmhni: %s"
+msgid ""
+"\n"
+"# global variables:\n"
+msgstr ""
+"\n"
+"# athrga comhchoiteanna:\n"
-#: ../eval.c:17260
-#, c-format
-msgid "E124: Missing '(': %s"
-msgstr "E124: '(' ar iarraidh: %s"
+msgid ""
+"\n"
+"\tLast set from "
+msgstr ""
+"\n"
+"\tSocraithe is dana "
-#: ../eval.c:17293
-#, fuzzy
-msgid "E862: Cannot use g: here"
-msgstr "E284: N fidir luachanna IC a shocr"
+msgid "map() argument"
+msgstr "argint map()"
+
+msgid "filter() argument"
+msgstr "argint filter()"
-#: ../eval.c:17312
#, c-format
-msgid "E125: Illegal argument: %s"
-msgstr "E125: Argint neamhcheadaithe: %s"
+msgid "E686: Argument of %s must be a List"
+msgstr "E686: Caithfidh argint de %s a bheith ina Liosta"
-#: ../eval.c:17323
-#, fuzzy, c-format
-msgid "E853: Duplicate argument name: %s"
-msgstr "E125: Argint neamhcheadaithe: %s"
+msgid "E928: String required"
+msgstr "E928: Teaghrn de dhth"
-#: ../eval.c:17416
-msgid "E126: Missing :endfunction"
-msgstr "E126: :endfunction ar iarraidh"
+msgid "E808: Number or Float required"
+msgstr "E808: Uimhir n Snmhphointe de dhth"
-#: ../eval.c:17537
-#, c-format
-msgid "E707: Function name conflicts with variable: %s"
-msgstr "E707: Tagann ainm na feidhme salach ar athrg: %s"
+msgid "add() argument"
+msgstr "argint add()"
+
+msgid "E785: complete() can only be used in Insert mode"
+msgstr "E785: is fidir complete() a sid sa mhd Ionsite amhin"
+
+#.
+#. * Yes this is ugly, I don't particularly like it either. But doing it
+#. * this way has the compelling advantage that translations need not to
+#. * be touched at all. See below what 'ok' and 'ync' are used for.
+#.
+msgid "&Ok"
+msgstr "&Ok"
-#: ../eval.c:17549
#, c-format
-msgid "E127: Cannot redefine function %s: It is in use"
-msgstr ""
-"E127: N fidir sainmhni nua a dhanamh ar fheidhm %s: In sid cheana"
+msgid "+-%s%3ld line: "
+msgid_plural "+-%s%3ld lines: "
+msgstr[0] "+-%s%3ld lne: "
+msgstr[1] "+-%s%3ld lne: "
+msgstr[2] "+-%s%3ld lne: "
+msgstr[3] "+-%s%3ld lne: "
+msgstr[4] "+-%s%3ld lne: "
-#: ../eval.c:17604
#, c-format
-msgid "E746: Function name does not match script file name: %s"
-msgstr ""
-"E746: Nl ainm na feidhme comhoirinach le hainm comhaid na scripte: %s"
+msgid "E700: Unknown function: %s"
+msgstr "E700: Feidhm anaithnid: %s"
-#: ../eval.c:17716
-msgid "E129: Function name required"
-msgstr "E129: T g le hainm feidhme"
+msgid "E922: expected a dict"
+msgstr "E922: bhothas ag sil le foclir"
-#: ../eval.c:17824
-#, fuzzy, c-format
-msgid "E128: Function name must start with a capital or \"s:\": %s"
-msgstr ""
-"E128: Caithfidh ceannlitir a bheith ar dts ainm feidhme, n idirstad a "
-"bheith ann: %s"
+msgid "E923: Second argument of function() must be a list or a dict"
+msgstr "E923: Caithfidh an dara hargint de function() a bheith ina liosta n ina foclir"
-#: ../eval.c:17833
-#, fuzzy, c-format
-msgid "E884: Function name cannot contain a colon: %s"
+msgid ""
+"&OK\n"
+"&Cancel"
msgstr ""
-"E128: Caithfidh ceannlitir a bheith ar dts ainm feidhme, n idirstad a "
-"bheith ann: %s"
+"&OK\n"
+"&Cealaigh"
-#: ../eval.c:18336
-#, c-format
-msgid "E131: Cannot delete function %s: It is in use"
-msgstr "E131: N fidir feidhm %s a scriosadh: T s in sid faoi lthair"
+msgid "called inputrestore() more often than inputsave()"
+msgstr "Glaodh inputrestore() nos minice n inputsave()"
-#: ../eval.c:18441
-msgid "E132: Function call depth is higher than 'maxfuncdepth'"
-msgstr "E132: Doimhneacht na nglaonna nos m n 'maxfuncdepth'"
+msgid "insert() argument"
+msgstr "argint insert()"
-#: ../eval.c:18568
-#, c-format
-msgid "calling %s"
-msgstr "%s glao"
+msgid "E786: Range not allowed"
+msgstr "E786: N cheadatear an raon"
-#: ../eval.c:18651
-#, c-format
-msgid "%s aborted"
-msgstr "%s tobscortha"
+msgid "E916: not a valid job"
+msgstr "E916: n jab bail "
+
+msgid "E701: Invalid type for len()"
+msgstr "E701: Cinel neamhbhail le haghaidh len()"
-#: ../eval.c:18653
#, c-format
-msgid "%s returning #%<PRId64>"
-msgstr "%s ag aisfhilleadh #%<PRId64>"
+msgid "E798: ID is reserved for \":match\": %ld"
+msgstr "E798: Aitheantas in irithe do \":match\": %ld"
+
+msgid "E726: Stride is zero"
+msgstr "E726: Is nialas an chim"
+
+msgid "E727: Start past end"
+msgstr "E727: Tosach thar dheireadh"
+
+msgid "<empty>"
+msgstr "<folamh>"
+
+msgid "E240: No connection to Vim server"
+msgstr "E240: Nl aon nasc le freastala Vim"
-#: ../eval.c:18670
#, c-format
-msgid "%s returning %s"
-msgstr "%s ag aisfhilleadh %s"
+msgid "E241: Unable to send to %s"
+msgstr "E241: N fidir aon rud a sheoladh chuig %s"
+
+msgid "E277: Unable to read a server reply"
+msgstr "E277: N fidir freagra n fhreastala a lamh"
+
+msgid "remove() argument"
+msgstr "argint remove()"
+
+msgid "E655: Too many symbolic links (cycle?)"
+msgstr "E655: An iomarca naisc shiombalacha (ciogal?)"
+
+msgid "reverse() argument"
+msgstr "argint reverse()"
+
+msgid "E258: Unable to send to client"
+msgstr "E258: N fidir aon rud a sheoladh chuig an chliant"
-#: ../eval.c:18691 ../ex_cmds2.c:2695
#, c-format
-msgid "continuing in %s"
-msgstr "ag leanint i %s"
+msgid "E927: Invalid action: '%s'"
+msgstr "E927: Gnomh neamhbhail: '%s'"
-#: ../eval.c:18795
-msgid "E133: :return not inside a function"
-msgstr "E133: Caithfidh :return a bheith isteach i bhfeidhm"
+msgid "sort() argument"
+msgstr "argint sort()"
-#: ../eval.c:19159
-msgid ""
-"\n"
-"# global variables:\n"
-msgstr ""
-"\n"
-"# athrga comhchoiteanna:\n"
+msgid "uniq() argument"
+msgstr "argint uniq()"
-#: ../eval.c:19254
-msgid ""
-"\n"
-"\tLast set from "
-msgstr ""
-"\n"
-"\tSocraithe is dana "
+msgid "E702: Sort compare function failed"
+msgstr "E702: Theip ar fheidhm chomparide le linn srtla"
-#: ../eval.c:19272
-msgid "No old files"
-msgstr "Gan seanchomhaid"
+msgid "E882: Uniq compare function failed"
+msgstr "E882: Theip ar fheidhm chomparide Uniq"
+
+msgid "(Invalid)"
+msgstr "(Neamhbhail)"
+
+#, c-format
+msgid "E935: invalid submatch number: %d"
+msgstr "E935: uimhir fho-mheaitsela neamhbhail: %d"
+
+msgid "E677: Error writing temp file"
+msgstr "E677: Earrid agus comhad sealadach scrobh"
+
+msgid "E921: Invalid callback argument"
+msgstr "E921: Argint neamhbhail ar aisghlaoch"
-#: ../ex_cmds.c:122
#, c-format
msgid "<%s>%s%s %d, Hex %02x, Octal %03o"
msgstr "<%s>%s%s %d, Heics %02x, Ocht %03o"
-#: ../ex_cmds.c:145
#, c-format
msgid "> %d, Hex %04x, Octal %o"
msgstr "> %d, Heics %04x, Ocht %o"
-#: ../ex_cmds.c:146
#, c-format
msgid "> %d, Hex %08x, Octal %o"
msgstr "> %d, Heics %08x, Ocht %o"
-#: ../ex_cmds.c:684
msgid "E134: Move lines into themselves"
msgstr "E134: Bog lnte isteach iontu fin"
-#: ../ex_cmds.c:747
msgid "1 line moved"
msgstr "Bogadh lne amhin"
-#: ../ex_cmds.c:749
#, c-format
-msgid "%<PRId64> lines moved"
-msgstr "Bogadh %<PRId64> lne"
+msgid "%ld lines moved"
+msgstr "Bogadh %ld lne"
-#: ../ex_cmds.c:1175
#, c-format
-msgid "%<PRId64> lines filtered"
-msgstr "Scagadh %<PRId64> lne"
+msgid "%ld lines filtered"
+msgstr "Scagadh %ld lne"
-#: ../ex_cmds.c:1194
msgid "E135: *Filter* Autocommands must not change current buffer"
msgstr ""
"E135: N cheadatear d'uathorduithe *scagaire* an maoln reatha a athr"
-#: ../ex_cmds.c:1244
msgid "[No write since last change]\n"
msgstr "[Athraithe agus nach sbhilte shin]\n"
-#: ../ex_cmds.c:1424
#, c-format
msgid "%sviminfo: %s in line: "
msgstr "%sviminfo: %s i lne: "
-#: ../ex_cmds.c:1431
msgid "E136: viminfo: Too many errors, skipping rest of file"
msgstr ""
"E136: viminfo: An iomarca earrid, ag scipeil an chuid eile den chomhad"
-#: ../ex_cmds.c:1458
#, c-format
msgid "Reading viminfo file \"%s\"%s%s%s"
msgstr "Comhad viminfo \"%s\"%s%s%s lamh"
-#: ../ex_cmds.c:1460
msgid " info"
msgstr " eolas"
-#: ../ex_cmds.c:1461
msgid " marks"
msgstr " marcanna"
-#: ../ex_cmds.c:1462
msgid " oldfiles"
msgstr " seanchomhad"
-#: ../ex_cmds.c:1463
msgid " FAILED"
msgstr " TEIPTHE"
#. avoid a wait_return for this message, it's annoying
-#: ../ex_cmds.c:1541
#, c-format
msgid "E137: Viminfo file is not writable: %s"
msgstr "E137: Nl an comhad Viminfo inscrofa: %s"
-#: ../ex_cmds.c:1626
+#, c-format
+msgid "E929: Too many viminfo temp files, like %s!"
+msgstr "E929: An iomarca comhad sealadach viminfo, mar shampla %s!"
+
#, c-format
msgid "E138: Can't write viminfo file %s!"
msgstr "E138: N fidir comhad viminfo %s a scrobh!"
-#: ../ex_cmds.c:1635
#, c-format
msgid "Writing viminfo file \"%s\""
msgstr "Comhad viminfo \"%s\" scrobh"
+#, c-format
+msgid "E886: Can't rename viminfo file to %s!"
+msgstr "E886: N fidir ainm %s a chur ar an gcomhad viminfo!"
+
#. Write the info:
-#: ../ex_cmds.c:1720
#, c-format
msgid "# This viminfo file was generated by Vim %s.\n"
msgstr "# Chruthaigh Vim an comhad viminfo seo %s.\n"
-#: ../ex_cmds.c:1722
msgid ""
"# You may edit it if you're careful!\n"
"\n"
@@ -1141,47 +885,47 @@ msgstr ""
"# Is fidir leat an comhad seo a chur in eagar ach b cramach!\n"
"\n"
-#: ../ex_cmds.c:1723
msgid "# Value of 'encoding' when this file was written\n"
msgstr "# Luach 'encoding' agus an comhad seo scrobh\n"
-#: ../ex_cmds.c:1800
msgid "Illegal starting char"
msgstr "Carachtar neamhcheadaithe tosaigh"
-#: ../ex_cmds.c:2162
+msgid ""
+"\n"
+"# Bar lines, copied verbatim:\n"
+msgstr ""
+"\n"
+"# Barralnte, cipeilte focal ar fhocal:\n"
+
+msgid "Save As"
+msgstr "Sbhil Mar"
+
msgid "Write partial file?"
msgstr "Scrobh comhad neamhiomln?"
-#: ../ex_cmds.c:2166
msgid "E140: Use ! to write partial buffer"
msgstr "E140: Bain sid as ! chun maoln neamhiomln a scrobh"
-#: ../ex_cmds.c:2281
#, c-format
msgid "Overwrite existing file \"%s\"?"
msgstr "Forscrobh comhad \"%s\" at ann cheana?"
-#: ../ex_cmds.c:2317
#, c-format
msgid "Swap file \"%s\" exists, overwrite anyway?"
msgstr "T comhad babhtla \"%s\" ann cheana; forscrobh mar sin fin?"
-#: ../ex_cmds.c:2326
#, c-format
msgid "E768: Swap file exists: %s (:silent! overrides)"
msgstr "E768: T comhad babhtla ann cheana: %s (sid :silent! chun sr)"
-#: ../ex_cmds.c:2381
#, c-format
-msgid "E141: No file name for buffer %<PRId64>"
-msgstr "E141: Nl aon ainm ar mhaoln %<PRId64>"
+msgid "E141: No file name for buffer %ld"
+msgstr "E141: Nl aon ainm ar mhaoln %ld"
-#: ../ex_cmds.c:2412
msgid "E142: File not written: Writing is disabled by 'write' option"
msgstr "E142: Nor scrobhadh an comhad: dchumasaithe leis an rogha 'write'"
-#: ../ex_cmds.c:2434
#, c-format
msgid ""
"'readonly' option is set for \"%s\".\n"
@@ -1190,7 +934,6 @@ msgstr ""
"t an rogha 'readonly' socraithe do \"%s\".\n"
"Ar mhaith leat a scrobh mar sin fin?"
-#: ../ex_cmds.c:2439
#, c-format
msgid ""
"File permissions of \"%s\" are read-only.\n"
@@ -1201,85 +944,70 @@ msgstr ""
"Seans gurbh fhidir scrobh ann mar sin fin.\n"
"An bhfuil fonn ort triail a bhaint as?"
-#: ../ex_cmds.c:2451
#, c-format
msgid "E505: \"%s\" is read-only (add ! to override)"
msgstr "E505: is inlite amhin \"%s\" (cuir ! leis an ord chun sr)"
-#: ../ex_cmds.c:3120
+msgid "Edit File"
+msgstr "Cuir Comhad in Eagar"
+
#, c-format
msgid "E143: Autocommands unexpectedly deleted new buffer %s"
msgstr "E143: Scrios na huathorduithe maoln nua %s go tobann"
-#: ../ex_cmds.c:3313
msgid "E144: non-numeric argument to :z"
msgstr "E144: argint neamhuimhriil chun :z"
-#: ../ex_cmds.c:3404
msgid "E145: Shell commands not allowed in rvim"
msgstr "E145: N cheadatear orduithe blaoisce i rvim"
-#: ../ex_cmds.c:3498
msgid "E146: Regular expressions can't be delimited by letters"
msgstr ""
"E146: N cheadatear litreacha mar theormharcir ar shloinn ionadaochta"
-#: ../ex_cmds.c:3964
#, c-format
msgid "replace with %s (y/n/a/q/l/^E/^Y)?"
msgstr "cuir %s ina ionad (y/n/a/q/l/^E/^Y)?"
-#: ../ex_cmds.c:4379
msgid "(Interrupted) "
msgstr "(Idirbhriste) "
-#: ../ex_cmds.c:4384
msgid "1 match"
msgstr "1 rud comhoirinach"
-#: ../ex_cmds.c:4384
msgid "1 substitution"
msgstr "1 ionadaocht"
-#: ../ex_cmds.c:4387
#, c-format
-msgid "%<PRId64> matches"
-msgstr "%<PRId64> rud comhoirinach"
+msgid "%ld matches"
+msgstr "%ld rud comhoirinach"
-#: ../ex_cmds.c:4388
#, c-format
-msgid "%<PRId64> substitutions"
-msgstr "%<PRId64> ionadaocht"
+msgid "%ld substitutions"
+msgstr "%ld ionadaocht"
-#: ../ex_cmds.c:4392
msgid " on 1 line"
msgstr " ar lne amhin"
-#: ../ex_cmds.c:4395
#, c-format
-msgid " on %<PRId64> lines"
-msgstr " ar %<PRId64> lne"
+msgid " on %ld lines"
+msgstr " ar %ld lne"
-#: ../ex_cmds.c:4438
msgid "E147: Cannot do :global recursive"
msgstr "E147: N cheadatear :global go hathchrsach"
# should have ":"
-#: ../ex_cmds.c:4467
msgid "E148: Regular expression missing from global"
msgstr "E148: Slonn ionadaochta ar iarraidh :global"
-#: ../ex_cmds.c:4508
#, c-format
msgid "Pattern found in every line: %s"
msgstr "Aimsodh an patrn i ngach lne: %s"
-#: ../ex_cmds.c:4510
-#, fuzzy, c-format
+#, c-format
msgid "Pattern not found: %s"
-msgstr "Patrn gan aimsi"
+msgstr "Patrn gan aimsi: %s"
-#: ../ex_cmds.c:4587
msgid ""
"\n"
"# Last Substitute String:\n"
@@ -1289,682 +1017,599 @@ msgstr ""
"# Teaghrn Ionadach Is Dana:\n"
"$"
-#: ../ex_cmds.c:4679
msgid "E478: Don't panic!"
msgstr "E478: N tigh i scaoll!"
-#: ../ex_cmds.c:4717
#, c-format
msgid "E661: Sorry, no '%s' help for %s"
msgstr "E661: T brn orm, n aon chabhair '%s' do %s"
-#: ../ex_cmds.c:4719
#, c-format
msgid "E149: Sorry, no help for %s"
msgstr "E149: T brn orm, nl aon chabhair do %s"
-#: ../ex_cmds.c:4751
#, c-format
msgid "Sorry, help file \"%s\" not found"
msgstr "T brn orm, comhad cabhrach \"%s\" gan aimsi"
-#: ../ex_cmds.c:5323
#, c-format
-msgid "E150: Not a directory: %s"
-msgstr "E150: N comhadlann : %s"
+msgid "E151: No match: %s"
+msgstr "E151: Gan meaitseil: %s"
-#: ../ex_cmds.c:5446
#, c-format
msgid "E152: Cannot open %s for writing"
msgstr "E152: N fidir %s a oscailt chun scrobh ann"
-#: ../ex_cmds.c:5471
#, c-format
msgid "E153: Unable to open %s for reading"
msgstr "E153: N fidir %s a oscailt chun a lamh"
-#: ../ex_cmds.c:5500
#, c-format
msgid "E670: Mix of help file encodings within a language: %s"
msgstr "E670: Ionchduithe agsla do chomhaid chabhracha i dteanga aonair: %s"
-#: ../ex_cmds.c:5565
#, c-format
msgid "E154: Duplicate tag \"%s\" in file %s/%s"
msgstr "E154: Clib dhblach \"%s\" i gcomhad %s/%s"
-#: ../ex_cmds.c:5687
+#, c-format
+msgid "E150: Not a directory: %s"
+msgstr "E150: N comhadlann : %s"
+
#, c-format
msgid "E160: Unknown sign command: %s"
msgstr "E160: Ord anaithnid comhartha: %s"
-#: ../ex_cmds.c:5704
msgid "E156: Missing sign name"
msgstr "E156: Ainm comhartha ar iarraidh"
-#: ../ex_cmds.c:5746
msgid "E612: Too many signs defined"
msgstr "E612: An iomarca comhartha sainmhnithe"
-#: ../ex_cmds.c:5813
#, c-format
msgid "E239: Invalid sign text: %s"
msgstr "E239: Tacs neamhbhail comhartha: %s"
-#: ../ex_cmds.c:5844 ../ex_cmds.c:6035
#, c-format
msgid "E155: Unknown sign: %s"
msgstr "E155: Comhartha anaithnid: %s"
-#: ../ex_cmds.c:5877
msgid "E159: Missing sign number"
msgstr "E159: Uimhir chomhartha ar iarraidh"
-#: ../ex_cmds.c:5971
#, c-format
msgid "E158: Invalid buffer name: %s"
msgstr "E158: Ainm maolin neamhbhail: %s"
-#: ../ex_cmds.c:6008
+msgid "E934: Cannot jump to a buffer that does not have a name"
+msgstr "E934: N fidir lim go maoln gan ainm"
+
#, c-format
-msgid "E157: Invalid sign ID: %<PRId64>"
-msgstr "E157: ID neamhbhail comhartha: %<PRId64>"
+msgid "E157: Invalid sign ID: %ld"
+msgstr "E157: ID neamhbhail comhartha: %ld"
+
+#, c-format
+msgid "E885: Not possible to change sign %s"
+msgstr "E885: N fidir an comhartha a athr: %s"
+
+msgid " (NOT FOUND)"
+msgstr " (AR IARRAIDH)"
-#: ../ex_cmds.c:6066
msgid " (not supported)"
msgstr " (nl an rogha seo ar fil)"
-#: ../ex_cmds.c:6169
msgid "[Deleted]"
msgstr "[Scriosta]"
-#: ../ex_cmds2.c:139
+msgid "No old files"
+msgstr "Gan seanchomhaid"
+
msgid "Entering Debug mode. Type \"cont\" to continue."
msgstr "Md dfhabhtaithe thos. Clscrobh \"cont\" chun leanint."
-#: ../ex_cmds2.c:143 ../ex_docmd.c:759
#, c-format
-msgid "line %<PRId64>: %s"
-msgstr "lne %<PRId64>: %s"
+msgid "line %ld: %s"
+msgstr "lne %ld: %s"
-#: ../ex_cmds2.c:145
#, c-format
msgid "cmd: %s"
msgstr "ord: %s"
-#: ../ex_cmds2.c:322
+msgid "frame is zero"
+msgstr "is nialas an frma"
+
#, c-format
-msgid "Breakpoint in \"%s%s\" line %<PRId64>"
-msgstr "Brisphointe i \"%s%s\" lne %<PRId64>"
+msgid "frame at highest level: %d"
+msgstr "frma ag an leibhal is airde: %d"
+
+#, c-format
+msgid "Breakpoint in \"%s%s\" line %ld"
+msgstr "Brisphointe i \"%s%s\" lne %ld"
-#: ../ex_cmds2.c:581
#, c-format
msgid "E161: Breakpoint not found: %s"
msgstr "E161: Brisphointe gan aimsi: %s"
-#: ../ex_cmds2.c:611
msgid "No breakpoints defined"
msgstr "Nl aon bhrisphointe socraithe"
-#: ../ex_cmds2.c:617
#, c-format
-msgid "%3d %s %s line %<PRId64>"
-msgstr "%3d %s %s lne %<PRId64>"
+msgid "%3d %s %s line %ld"
+msgstr "%3d %s %s lne %ld"
-#: ../ex_cmds2.c:942
msgid "E750: First use \":profile start {fname}\""
msgstr "E750: sid \":profile start {ainm}\" ar dts"
-#: ../ex_cmds2.c:1269
#, c-format
msgid "Save changes to \"%s\"?"
msgstr "Sbhil athruithe ar \"%s\"?"
-#: ../ex_cmds2.c:1271 ../ex_docmd.c:8851
msgid "Untitled"
msgstr "Gan Teideal"
-#: ../ex_cmds2.c:1421
#, c-format
msgid "E162: No write since last change for buffer \"%s\""
msgstr "E162: Athraodh maoln \"%s\" ach nach bhfuil s sbhilte shin"
-#: ../ex_cmds2.c:1480
msgid "Warning: Entered other buffer unexpectedly (check autocommands)"
msgstr "Rabhadh: Chuathas i maoln eile go tobann (seiceil na huathorduithe)"
-#: ../ex_cmds2.c:1826
msgid "E163: There is only one file to edit"
msgstr "E163: Nl ach aon chomhad amhin le cur in eagar"
-#: ../ex_cmds2.c:1828
msgid "E164: Cannot go before first file"
msgstr "E164: N fidir a dhul roimh an chad chomhad"
-#: ../ex_cmds2.c:1830
msgid "E165: Cannot go beyond last file"
msgstr "E165: N fidir a dhul thar an gcomhad deireanach"
-#: ../ex_cmds2.c:2175
#, c-format
msgid "E666: compiler not supported: %s"
msgstr "E666: n ghlactar leis an tiomsaitheoir: %s"
-#: ../ex_cmds2.c:2257
#, c-format
msgid "Searching for \"%s\" in \"%s\""
msgstr "Ag danamh cuardach ar \"%s\" i \"%s\""
-#: ../ex_cmds2.c:2284
#, c-format
msgid "Searching for \"%s\""
msgstr "Ag danamh cuardach ar \"%s\""
-#: ../ex_cmds2.c:2307
#, c-format
-msgid "not found in 'runtimepath': \"%s\""
-msgstr "gan aimsi i 'runtimepath': \"%s\""
+msgid "not found in '%s': \"%s\""
+msgstr "gan aimsi in '%s': \"%s\""
+
+msgid "Source Vim script"
+msgstr "Foinsigh script Vim"
-#: ../ex_cmds2.c:2472
#, c-format
msgid "Cannot source a directory: \"%s\""
msgstr "N fidir comhadlann a lamh: \"%s\""
-#: ../ex_cmds2.c:2518
#, c-format
msgid "could not source \"%s\""
msgstr "norbh fhidir \"%s\" a lamh"
-#: ../ex_cmds2.c:2520
#, c-format
-msgid "line %<PRId64>: could not source \"%s\""
-msgstr "lne %<PRId64>: norbh fhidir \"%s\" a fhoinsi"
+msgid "line %ld: could not source \"%s\""
+msgstr "lne %ld: norbh fhidir \"%s\" a fhoinsi"
-#: ../ex_cmds2.c:2535
#, c-format
msgid "sourcing \"%s\""
msgstr "\"%s\" fhoinsi"
-#: ../ex_cmds2.c:2537
#, c-format
-msgid "line %<PRId64>: sourcing \"%s\""
-msgstr "lne %<PRId64>: \"%s\" fhoinsi"
+msgid "line %ld: sourcing \"%s\""
+msgstr "lne %ld: \"%s\" fhoinsi"
-#: ../ex_cmds2.c:2693
#, c-format
msgid "finished sourcing %s"
msgstr "deireadh ag foinsi %s"
-#: ../ex_cmds2.c:2765
+#, c-format
+msgid "continuing in %s"
+msgstr "ag leanint i %s"
+
msgid "modeline"
msgstr "mdlne"
-#: ../ex_cmds2.c:2767
msgid "--cmd argument"
msgstr "argint --cmd"
-#: ../ex_cmds2.c:2769
msgid "-c argument"
msgstr "argint -c"
-#: ../ex_cmds2.c:2771
msgid "environment variable"
msgstr "athrg thimpeallachta"
-#: ../ex_cmds2.c:2773
msgid "error handler"
msgstr "limhsela earrid"
-#: ../ex_cmds2.c:3020
msgid "W15: Warning: Wrong line separator, ^M may be missing"
msgstr ""
"W15: Rabhadh: Deighilteoir lnte mcheart, is fidir go bhfuil ^M ar iarraidh"
-#: ../ex_cmds2.c:3139
msgid "E167: :scriptencoding used outside of a sourced file"
msgstr "E167: n sidtear :scriptencoding ach i gcomhad foinsithe"
-#: ../ex_cmds2.c:3166
msgid "E168: :finish used outside of a sourced file"
msgstr "E168: n sidtear :finish ach i gcomhaid foinsithe"
-#: ../ex_cmds2.c:3389
#, c-format
msgid "Current %slanguage: \"%s\""
msgstr "%sTeanga faoi lthair: \"%s\""
-#: ../ex_cmds2.c:3404
#, c-format
msgid "E197: Cannot set language to \"%s\""
msgstr "E197: N fidir an teanga a shocr mar \"%s\""
-#. don't redisplay the window
-#. don't wait for return
-#: ../ex_docmd.c:387
msgid "Entering Ex mode. Type \"visual\" to go to Normal mode."
msgstr "Md Ex thos. Clscrobh \"visual\" le haghaidh an ghnthmhd."
# in FARF -KPS
-#: ../ex_docmd.c:428
msgid "E501: At end-of-file"
msgstr "E501: Ag an chomhadchroch"
-#: ../ex_docmd.c:513
msgid "E169: Command too recursive"
msgstr "E169: Ord r-athchrsach"
-#: ../ex_docmd.c:1006
#, c-format
msgid "E605: Exception not caught: %s"
msgstr "E605: Eisceacht gan limhseil: %s"
-#: ../ex_docmd.c:1085
msgid "End of sourced file"
msgstr "Croch chomhaid foinsithe"
-#: ../ex_docmd.c:1086
msgid "End of function"
msgstr "Croch fheidhme"
-#: ../ex_docmd.c:1628
msgid "E464: Ambiguous use of user-defined command"
msgstr "E464: sid athbhroch d'ord saincheaptha"
-#: ../ex_docmd.c:1638
msgid "E492: Not an editor command"
msgstr "E492: Nl ina ord eagarthra"
-#: ../ex_docmd.c:1729
msgid "E493: Backwards range given"
msgstr "E493: Raon droim ar ais"
-#: ../ex_docmd.c:1733
msgid "Backwards range given, OK to swap"
msgstr "Raon droim ar ais, babhtil"
-#. append
-#. typed wrong
-#: ../ex_docmd.c:1787
msgid "E494: Use w or w>>"
msgstr "E494: Bain sid as w n w>>"
-#: ../ex_docmd.c:3454
-msgid "E319: The command is not available in this version"
+msgid "E319: Sorry, the command is not available in this version"
msgstr "E319: T brn orm, nl an t-ord ar fil sa leagan seo"
-#: ../ex_docmd.c:3752
msgid "E172: Only one file name allowed"
msgstr "E172: N cheadatear ach aon ainm comhaid amhin"
-#: ../ex_docmd.c:4238
msgid "1 more file to edit. Quit anyway?"
msgstr "1 comhad le cur in eagar fs. Scoir mar sin fin?"
-#: ../ex_docmd.c:4242
#, c-format
msgid "%d more files to edit. Quit anyway?"
msgstr "%d comhad le cur in eagar fs. Scoir mar sin fin?"
-#: ../ex_docmd.c:4248
msgid "E173: 1 more file to edit"
msgstr "E173: 1 chomhad le heagr fs"
-#: ../ex_docmd.c:4250
#, c-format
-msgid "E173: %<PRId64> more files to edit"
-msgstr "E173: %<PRId64> comhad le cur in eagar"
+msgid "E173: %ld more files to edit"
+msgstr "E173: %ld comhad le cur in eagar"
-#: ../ex_docmd.c:4320
msgid "E174: Command already exists: add ! to replace it"
msgstr "E174: T an t-ord ann cheana: cuir ! leis chun sr"
-#: ../ex_docmd.c:4432
msgid ""
"\n"
-" Name Args Range Complete Definition"
+" Name Args Address Complete Definition"
msgstr ""
"\n"
-" Ainm Arg Raon Iomln Sainmhni"
+" Ainm Arg Seoladh Iomln Sainmhni"
-#: ../ex_docmd.c:4516
msgid "No user-defined commands found"
msgstr "Nl aon ord aimsithe at sainithe ag an sideoir"
-#: ../ex_docmd.c:4538
msgid "E175: No attribute specified"
msgstr "E175: Nl aon aitreabid sainithe"
-#: ../ex_docmd.c:4583
msgid "E176: Invalid number of arguments"
msgstr "E176: T lon na n-argint mcheart"
-#: ../ex_docmd.c:4594
msgid "E177: Count cannot be specified twice"
msgstr "E177: N cheadatear an t-ireamh a bheith tugtha faoi dh"
-#: ../ex_docmd.c:4603
msgid "E178: Invalid default value for count"
msgstr "E178: Luach ramhshocraithe neamhbhail ar ireamh"
-#: ../ex_docmd.c:4625
msgid "E179: argument required for -complete"
msgstr "E179: t g le hargint i ndiaidh -complete"
-#: ../ex_docmd.c:4635
+msgid "E179: argument required for -addr"
+msgstr "E179: t g le hargint i ndiaidh -addr"
+
#, c-format
msgid "E181: Invalid attribute: %s"
msgstr "E181: Aitreabid neamhbhail: %s"
-#: ../ex_docmd.c:4678
msgid "E182: Invalid command name"
msgstr "E182: Ainm neamhbhail ordaithe"
-#: ../ex_docmd.c:4691
msgid "E183: User defined commands must start with an uppercase letter"
msgstr ""
"E183: Caithfidh ceannlitir a bheith ar dts orduithe at sainithe ag an "
"sideoir"
-#: ../ex_docmd.c:4696
-#, fuzzy
msgid "E841: Reserved name, cannot be used for user defined command"
-msgstr "E464: sid athbhroch d'ord saincheaptha"
+msgstr ""
+"E841: Ainm in irithe, n fidir a chur ar ord sainithe ag an sideoir"
-#: ../ex_docmd.c:4751
#, c-format
msgid "E184: No such user-defined command: %s"
msgstr "E184: Nl a leithid d'ord saincheaptha: %s"
-#: ../ex_docmd.c:5219
+#, c-format
+msgid "E180: Invalid address type value: %s"
+msgstr "E180: Cinel neamhbhail seolta: %s"
+
#, c-format
msgid "E180: Invalid complete value: %s"
msgstr "E180: Luach iomln neamhbhail: %s"
-#: ../ex_docmd.c:5225
msgid "E468: Completion argument only allowed for custom completion"
msgstr ""
"E468: N cheadatear argint chomhlnaithe ach le comhln saincheaptha"
-#: ../ex_docmd.c:5231
msgid "E467: Custom completion requires a function argument"
msgstr "E467: T g le hargint fheidhme le comhln saincheaptha"
-#: ../ex_docmd.c:5257
-#, fuzzy, c-format
+msgid "unknown"
+msgstr "anaithnid"
+
+#, c-format
msgid "E185: Cannot find color scheme '%s'"
-msgstr "E185: Scim dathanna %s gan aimsi"
+msgstr "E185: Scim dathanna '%s' gan aimsi"
-#: ../ex_docmd.c:5263
msgid "Greetings, Vim user!"
msgstr "Dia duit, a sideoir Vim!"
-#: ../ex_docmd.c:5431
msgid "E784: Cannot close last tab page"
-msgstr "E784: N fidir an leathanach cluaisn deiridh a dhnadh"
+msgstr "E784: N fidir an leathanach cluaisn deiridh a dhnadh"
-#: ../ex_docmd.c:5462
msgid "Already only one tab page"
-msgstr "Nl ach leathanach cluaisn amhin cheana fin"
+msgstr "Nl ach leathanach cluaisn amhin cheana fin"
+
+msgid "Edit File in new window"
+msgstr "Cuir comhad in eagar i bhfuinneog nua"
-#: ../ex_docmd.c:6004
#, c-format
msgid "Tab page %d"
msgstr "Leathanach cluaisn %d"
-#: ../ex_docmd.c:6295
msgid "No swap file"
msgstr "Nl aon chomhad babhtla ann"
-#: ../ex_docmd.c:6478
+msgid "Append File"
+msgstr "Cuir Comhad i nDeireadh"
+
msgid "E747: Cannot change directory, buffer is modified (add ! to override)"
msgstr ""
"E747: N fidir an chomhadlann a athr, mionathraodh an maoln (cuir ! leis "
"an ord chun sr)"
-#: ../ex_docmd.c:6485
msgid "E186: No previous directory"
msgstr "E186: Nl aon chomhadlann roimhe seo"
-#: ../ex_docmd.c:6530
msgid "E187: Unknown"
msgstr "E187: Anaithnid"
-#: ../ex_docmd.c:6610
msgid "E465: :winsize requires two number arguments"
msgstr "E465: n folir dh argint uimhrila le :winsize"
-#: ../ex_docmd.c:6655
+#, c-format
+msgid "Window position: X %d, Y %d"
+msgstr "Ionad na fuinneoige: X %d, Y %d"
+
msgid "E188: Obtaining window position not implemented for this platform"
msgstr "E188: N fidir ionad na fuinneoige a fhil amach ar an chras seo"
-#: ../ex_docmd.c:6662
msgid "E466: :winpos requires two number arguments"
msgstr "E466: n folir dh argint uimhrila le :winpos"
-#: ../ex_docmd.c:7241
+msgid "E930: Cannot use :redir inside execute()"
+msgstr "E930: N fidir :redir a sid laistigh de execute()"
+
+msgid "Save Redirection"
+msgstr "Sbhil Atreor"
+
+msgid "Save View"
+msgstr "Sbhil an tAmharc"
+
+msgid "Save Session"
+msgstr "Sbhil an Seisin"
+
+msgid "Save Setup"
+msgstr "Sbhil an Socr"
+
#, c-format
msgid "E739: Cannot create directory: %s"
msgstr "E739: N fidir comhadlann a chruth: %s"
-#: ../ex_docmd.c:7268
#, c-format
msgid "E189: \"%s\" exists (add ! to override)"
msgstr "E189: T \"%s\" ann cheana (cuir ! leis an ord chun sr)"
-#: ../ex_docmd.c:7273
#, c-format
msgid "E190: Cannot open \"%s\" for writing"
msgstr "E190: N fidir \"%s\" a oscailt chun lamh"
#. set mark
-#: ../ex_docmd.c:7294
msgid "E191: Argument must be a letter or forward/backward quote"
msgstr "E191: Caithfidh an argint a bheith litir n comhartha athfhriotal"
-#: ../ex_docmd.c:7333
msgid "E192: Recursive use of :normal too deep"
msgstr "E192: athchrsil :normal rdhomhain"
-#: ../ex_docmd.c:7807
+msgid "E809: #< is not available without the +eval feature"
+msgstr "E809: nl #< ar fil gan ghn +eval"
+
msgid "E194: No alternate file name to substitute for '#'"
msgstr "E194: Nl aon ainm comhaid a chur in ionad '#'"
-#: ../ex_docmd.c:7841
msgid "E495: no autocommand file name to substitute for \"<afile>\""
msgstr "E495: nl aon ainm comhaid uathordaithe le cur in ionad \"<afile>\""
-#: ../ex_docmd.c:7850
msgid "E496: no autocommand buffer number to substitute for \"<abuf>\""
msgstr "E496: nl aon uimhir mhaoln uathordaithe le cur in ionad \"<abuf>\""
-#: ../ex_docmd.c:7861
msgid "E497: no autocommand match name to substitute for \"<amatch>\""
msgstr ""
"E497: nl aon ainm meaitsela uathordaithe le cur in ionad \"<amatch>\""
-#: ../ex_docmd.c:7870
msgid "E498: no :source file name to substitute for \"<sfile>\""
msgstr "E498: nl aon ainm comhaid :source le cur in ionad \"<sfile>\""
-#: ../ex_docmd.c:7876
-#, fuzzy
msgid "E842: no line number to use for \"<slnum>\""
-msgstr "E498: nl aon ainm comhaid :source le cur in ionad \"<sfile>\""
+msgstr "E842: nl aon lne-uimhir ar fil le haghaidh \"<slnum>\""
-#: ../ex_docmd.c:7903
-#, fuzzy, c-format
+#, no-c-format
msgid "E499: Empty file name for '%' or '#', only works with \":p:h\""
msgstr ""
"E499: Ainm comhaid folamh le haghaidh '%' n '#', oibreoidh s le \":p:h\" "
"amhin"
-#: ../ex_docmd.c:7905
msgid "E500: Evaluates to an empty string"
msgstr "E500: Luachiltear seo mar theaghrn folamh"
-#: ../ex_docmd.c:8838
msgid "E195: Cannot open viminfo file for reading"
msgstr "E195: N fidir an comhad viminfo a oscailt chun lamh"
-#: ../ex_eval.c:464
+msgid "E196: No digraphs in this version"
+msgstr "E196: N cheadatear dghraif sa leagan seo"
+
msgid "E608: Cannot :throw exceptions with 'Vim' prefix"
msgstr "E608: N fidir eisceachta a :throw le rimr 'Vim'"
#. always scroll up, don't overwrite
-#: ../ex_eval.c:496
#, c-format
msgid "Exception thrown: %s"
msgstr "Gineadh eisceacht: %s"
-#: ../ex_eval.c:545
#, c-format
msgid "Exception finished: %s"
msgstr "Eisceacht curtha i gcrch: %s"
-#: ../ex_eval.c:546
#, c-format
msgid "Exception discarded: %s"
msgstr "Eisceacht curtha i leataobh: %s"
-#: ../ex_eval.c:588 ../ex_eval.c:634
#, c-format
-msgid "%s, line %<PRId64>"
-msgstr "%s, lne %<PRId64>"
+msgid "%s, line %ld"
+msgstr "%s, lne %ld"
#. always scroll up, don't overwrite
-#: ../ex_eval.c:608
#, c-format
msgid "Exception caught: %s"
msgstr "Limhseladh eisceacht: %s"
-#: ../ex_eval.c:676
#, c-format
msgid "%s made pending"
msgstr "%s ar feitheamh anois"
-#: ../ex_eval.c:679
#, c-format
msgid "%s resumed"
msgstr "atosaodh %s"
-#: ../ex_eval.c:683
#, c-format
msgid "%s discarded"
msgstr "%s curtha i leataobh"
-#: ../ex_eval.c:708
msgid "Exception"
msgstr "Eisceacht"
-#: ../ex_eval.c:713
msgid "Error and interrupt"
msgstr "Earrid agus idirbhriseadh"
-#: ../ex_eval.c:715
msgid "Error"
msgstr "Earrid"
#. if (pending & CSTP_INTERRUPT)
-#: ../ex_eval.c:717
msgid "Interrupt"
msgstr "Idirbhriseadh"
-#: ../ex_eval.c:795
msgid "E579: :if nesting too deep"
msgstr "E579: :if neadaithe rdhomhain"
-#: ../ex_eval.c:830
msgid "E580: :endif without :if"
msgstr "E580: :endif gan :if"
-#: ../ex_eval.c:873
msgid "E581: :else without :if"
msgstr "E581: :else gan :if"
-#: ../ex_eval.c:876
msgid "E582: :elseif without :if"
msgstr "E582: :elseif gan :if"
-#: ../ex_eval.c:880
msgid "E583: multiple :else"
msgstr "E583: :else iomadla"
-#: ../ex_eval.c:883
msgid "E584: :elseif after :else"
msgstr "E584: :elseif i ndiaidh :else"
-#: ../ex_eval.c:941
msgid "E585: :while/:for nesting too deep"
msgstr "E585: :while/:for neadaithe rdhomhain"
-#: ../ex_eval.c:1028
msgid "E586: :continue without :while or :for"
msgstr "E586: :continue gan :while n :for"
-#: ../ex_eval.c:1061
msgid "E587: :break without :while or :for"
msgstr "E587: :break gan :while n :for"
-#: ../ex_eval.c:1102
msgid "E732: Using :endfor with :while"
msgstr "E732: :endfor sid le :while"
-#: ../ex_eval.c:1104
msgid "E733: Using :endwhile with :for"
msgstr "E733: :endwhile sid le :for"
-#: ../ex_eval.c:1247
msgid "E601: :try nesting too deep"
msgstr "E601: :try neadaithe rdhomhain"
-#: ../ex_eval.c:1317
msgid "E603: :catch without :try"
msgstr "E603: :catch gan :try"
#. Give up for a ":catch" after ":finally" and ignore it.
#. * Just parse.
-#: ../ex_eval.c:1332
msgid "E604: :catch after :finally"
msgstr "E604: :catch i ndiaidh :finally"
-#: ../ex_eval.c:1451
msgid "E606: :finally without :try"
msgstr "E606: :finally gan :try"
#. Give up for a multiple ":finally" and ignore it.
-#: ../ex_eval.c:1467
msgid "E607: multiple :finally"
msgstr "E607: :finally iomadla"
-#: ../ex_eval.c:1571
msgid "E602: :endtry without :try"
msgstr "E602: :endtry gan :try"
-#: ../ex_eval.c:2026
msgid "E193: :endfunction not inside a function"
msgstr "E193: Caithfidh :endfunction a bheith isteach i bhfeidhm"
-#: ../ex_getln.c:1643
msgid "E788: Not allowed to edit another buffer now"
msgstr "E788: Nl cead agat maoln eile a chur in eagar anois"
-#: ../ex_getln.c:1656
msgid "E811: Not allowed to change buffer information now"
msgstr "E811: Nl cead agat faisnis an mhaolin a athr anois"
-#: ../ex_getln.c:3178
msgid "tagname"
msgstr "clibainm"
-#: ../ex_getln.c:3181
msgid " kind file\n"
msgstr " cinel comhaid\n"
-#: ../ex_getln.c:4799
msgid "'history' option is zero"
msgstr "t an rogha 'history' nialas"
-#: ../ex_getln.c:5046
#, c-format
msgid ""
"\n"
@@ -1975,310 +1620,230 @@ msgstr ""
# this gets plugged into the %s in the previous string,
# hence the colon
-#: ../ex_getln.c:5047
msgid "Command Line"
msgstr "Lne na nOrduithe:"
-#: ../ex_getln.c:5048
msgid "Search String"
msgstr "Teaghrn Cuardaigh"
-#: ../ex_getln.c:5049
msgid "Expression"
msgstr "Sloinn:"
-#: ../ex_getln.c:5050
msgid "Input Line"
msgstr "Lne an Ionchuir:"
-#: ../ex_getln.c:5117
+msgid "Debug Line"
+msgstr "Lne Dhfhabhtaithe"
+
msgid "E198: cmd_pchar beyond the command length"
msgstr "E198: cmd_pchar os cionn fad an ordaithe"
-#: ../ex_getln.c:5279
msgid "E199: Active window or buffer deleted"
msgstr "E199: Scriosadh an fhuinneog reatha n an maoln reatha"
-#: ../file_search.c:203
-msgid "E854: path too long for completion"
-msgstr ""
-
-#: ../file_search.c:446
-#, c-format
-msgid ""
-"E343: Invalid path: '**[number]' must be at the end of the path or be "
-"followed by '%s'."
-msgstr ""
-"E343: Conair neamhbhail: n mr '**[uimhir]' a bheith ag deireadh na "
-"conaire, n le '%s' ina dhiaidh."
-
-#: ../file_search.c:1505
-#, c-format
-msgid "E344: Can't find directory \"%s\" in cdpath"
-msgstr "E344: N fidir comhadlann \"%s\" a aimsi sa cdpath"
-
-#: ../file_search.c:1508
-#, c-format
-msgid "E345: Can't find file \"%s\" in path"
-msgstr "E345: N fidir comhad \"%s\" a aimsi sa chonair"
-
-#: ../file_search.c:1512
-#, c-format
-msgid "E346: No more directory \"%s\" found in cdpath"
-msgstr "E346: Nl comhadlann \"%s\" sa cdpath a thuilleadh"
-
-#: ../file_search.c:1515
-#, c-format
-msgid "E347: No more file \"%s\" found in path"
-msgstr "E347: Nl comhad \"%s\" sa chonair a thuilleadh"
-
-#: ../fileio.c:137
msgid "E812: Autocommands changed buffer or buffer name"
msgstr "E812: Bh maoln n ainm maolin athraithe ag orduithe uathoibrocha"
-#: ../fileio.c:368
msgid "Illegal file name"
msgstr "Ainm comhaid neamhcheadaithe"
-#: ../fileio.c:395 ../fileio.c:476 ../fileio.c:2543 ../fileio.c:2578
msgid "is a directory"
msgstr "is comhadlann "
-#: ../fileio.c:397
msgid "is not a file"
msgstr "n comhad "
-#: ../fileio.c:508 ../fileio.c:3522
+msgid "is a device (disabled with 'opendevice' option)"
+msgstr "is glas seo (dchumasaithe le rogha 'opendevice')"
+
msgid "[New File]"
msgstr "[Comhad Nua]"
-#: ../fileio.c:511
msgid "[New DIRECTORY]"
msgstr "[COMHADLANN nua]"
-#: ../fileio.c:529 ../fileio.c:532
msgid "[File too big]"
msgstr "[Comhad rmhr]"
-#: ../fileio.c:534
msgid "[Permission Denied]"
msgstr "[Cead Diltaithe]"
-#: ../fileio.c:653
msgid "E200: *ReadPre autocommands made the file unreadable"
msgstr "E200: Rinne uathorduithe *ReadPre praiseach as an chomhad"
-#: ../fileio.c:655
msgid "E201: *ReadPre autocommands must not change current buffer"
msgstr "E201: N cheadatear d'uathorduithe *ReadPre an maoln reatha a athr"
-#: ../fileio.c:672
-msgid "Nvim: Reading from stdin...\n"
+msgid "Vim: Reading from stdin...\n"
msgstr "Vim: Ag lamh n ionchur caighdenach...\n"
+msgid "Reading from stdin..."
+msgstr "Ag lamh n ionchur caighdenach..."
+
#. Re-opening the original file failed!
-#: ../fileio.c:909
msgid "E202: Conversion made file unreadable!"
msgstr "E202: Comhad dolite i ndiaidh an tiontaithe!"
-#. fifo or socket
-#: ../fileio.c:1782
msgid "[fifo/socket]"
msgstr "[fifo/soicad]"
# `TITA' ?! -KPS
-#. fifo
-#: ../fileio.c:1788
msgid "[fifo]"
msgstr "[fifo]"
-#. or socket
-#: ../fileio.c:1794
msgid "[socket]"
msgstr "[soicad]"
-#. or character special
-#: ../fileio.c:1801
msgid "[character special]"
msgstr "[comhad speisialta den chinel carachtar]"
-#: ../fileio.c:1815
msgid "[CR missing]"
msgstr "[CR ar iarraidh]"
-#: ../fileio.c:1819
msgid "[long lines split]"
msgstr "[lnte fada deighilte]"
-#: ../fileio.c:1823 ../fileio.c:3512
msgid "[NOT converted]"
msgstr "[N tiontaithe]"
-#: ../fileio.c:1826 ../fileio.c:3515
msgid "[converted]"
msgstr "[tiontaithe]"
-#: ../fileio.c:1831
#, c-format
-msgid "[CONVERSION ERROR in line %<PRId64>]"
-msgstr "[EARRID TIONTAITHE i lne %<PRId64>]"
+msgid "[CONVERSION ERROR in line %ld]"
+msgstr "[EARRID TIONTAITHE i lne %ld]"
-#: ../fileio.c:1835
#, c-format
-msgid "[ILLEGAL BYTE in line %<PRId64>]"
-msgstr "[BEART NEAMHCHEADAITHE i lne %<PRId64>]"
+msgid "[ILLEGAL BYTE in line %ld]"
+msgstr "[BEART NEAMHCHEADAITHE i lne %ld]"
-#: ../fileio.c:1838
msgid "[READ ERRORS]"
msgstr "[EARRID LIMH]"
-#: ../fileio.c:2104
msgid "Can't find temp file for conversion"
msgstr "N fidir comhad sealadach a aimsi le haghaidh tiontaithe"
-#: ../fileio.c:2110
msgid "Conversion with 'charconvert' failed"
msgstr "Theip ar thiont le 'charconvert'"
-#: ../fileio.c:2113
msgid "can't read output of 'charconvert'"
msgstr "n fidir an t-aschur 'charconvert' a lamh"
-#: ../fileio.c:2437
msgid "E676: No matching autocommands for acwrite buffer"
msgstr "E676: Nl aon uathord comhoirinaithe le haghaidh maolin acwrite"
-#: ../fileio.c:2466
msgid "E203: Autocommands deleted or unloaded buffer to be written"
msgstr "E203: Scrios n dhluchtaigh uathorduithe an maoln le scrobh"
-#: ../fileio.c:2486
msgid "E204: Autocommand changed number of lines in unexpected way"
msgstr "E204: D'athraigh uathord lon na lnte gan choinne"
-#: ../fileio.c:2548 ../fileio.c:2565
+msgid "NetBeans disallows writes of unmodified buffers"
+msgstr "N cheadaonn NetBeans maolin gan athr a bheith scrofa"
+
+msgid "Partial writes disallowed for NetBeans buffers"
+msgstr "N cheadatear maolin NetBeans a bheith scrofa go neamhiomln"
+
msgid "is not a file or writable device"
msgstr "n comhad n glas inscrofa "
-#: ../fileio.c:2601
+msgid "writing to device disabled with 'opendevice' option"
+msgstr "dchumasaodh scrobh chuig glas le rogha 'opendevice'"
+
msgid "is read-only (add ! to override)"
msgstr "is inlite amhin (cuir ! leis an ord chun sr)"
-#: ../fileio.c:2886
msgid "E506: Can't write to backup file (add ! to override)"
msgstr ""
"E506: N fidir scrobh a dhanamh sa chomhad cltaca (sid ! chun sr)"
-#: ../fileio.c:2898
msgid "E507: Close error for backup file (add ! to override)"
msgstr ""
"E507: Earrid agus comhad cltaca dhnadh (cuir ! leis an ord chun sr)"
-#: ../fileio.c:2901
msgid "E508: Can't read file for backup (add ! to override)"
msgstr ""
"E508: N fidir an comhad cltaca a lamh (cuir ! leis an ord chun sr)"
-#: ../fileio.c:2923
msgid "E509: Cannot create backup file (add ! to override)"
msgstr ""
"E509: N fidir comhad cltaca a chruth (cuir ! leis an ord chun sr)"
-#: ../fileio.c:3008
msgid "E510: Can't make backup file (add ! to override)"
msgstr ""
"E510: N fidir comhad cltaca a chruth (cuir ! leis an ord chun sr)"
-#. Can't write without a tempfile!
-#: ../fileio.c:3121
+msgid "E460: The resource fork would be lost (add ! to override)"
+msgstr "E460: Chaillf an forc acmhainne (cuir ! leis an ord chun sr)"
+
msgid "E214: Can't find temp file for writing"
msgstr "E214: N fidir comhad sealadach a aimsi chun scrobh ann"
-#: ../fileio.c:3134
msgid "E213: Cannot convert (add ! to write without conversion)"
msgstr "E213: N fidir tiont (cuir ! leis an ord chun scrobh gan tiont)"
-#: ../fileio.c:3169
msgid "E166: Can't open linked file for writing"
msgstr "E166: N fidir comhad nasctha a oscailt chun scrobh ann"
-#: ../fileio.c:3173
msgid "E212: Can't open file for writing"
msgstr "E212: N fidir comhad a oscailt chun scrobh ann"
-#: ../fileio.c:3363
msgid "E667: Fsync failed"
msgstr "E667: Theip ar fsync"
-#: ../fileio.c:3398
msgid "E512: Close failed"
msgstr "E512: Theip ar dnadh"
-#: ../fileio.c:3436
msgid "E513: write error, conversion failed (make 'fenc' empty to override)"
msgstr ""
"E513: earrid le linn scrobh, theip ar thiont (sid 'fenc' folamh chun "
"sr)"
-#: ../fileio.c:3441
#, c-format
msgid ""
-"E513: write error, conversion failed in line %<PRId64> (make 'fenc' empty to "
+"E513: write error, conversion failed in line %ld (make 'fenc' empty to "
"override)"
msgstr ""
-"E513: earrid le linn scrofa, theip ar thiont ar lne %<PRId64> (sid "
-"'fenc' folamh le sr)"
+"E513: earrid le linn scrofa, theip ar thiont ar lne %ld (sid 'fenc' "
+"folamh le sr)"
-#: ../fileio.c:3448
msgid "E514: write error (file system full?)"
msgstr "E514: earrid le linn scrofa (an bhfuil an cras comhaid ln?)"
-#: ../fileio.c:3506
msgid " CONVERSION ERROR"
msgstr " EARRID TIONTAITHE"
-#: ../fileio.c:3509
#, c-format
-msgid " in line %<PRId64>;"
-msgstr " ar lne %<PRId64>;"
+msgid " in line %ld;"
+msgstr " ar lne %ld;"
-#: ../fileio.c:3519
msgid "[Device]"
msgstr "[Glas]"
-#: ../fileio.c:3522
msgid "[New]"
msgstr "[Nua]"
-#: ../fileio.c:3535
msgid " [a]"
msgstr " [a]"
-#: ../fileio.c:3535
msgid " appended"
msgstr " iarcheangailte"
-#: ../fileio.c:3537
msgid " [w]"
msgstr " [w]"
-#: ../fileio.c:3537
msgid " written"
msgstr " scrofa"
-#: ../fileio.c:3579
msgid "E205: Patchmode: can't save original file"
msgstr "E205: Patchmode: n fidir an comhad bunsach a shbhil"
-#: ../fileio.c:3602
msgid "E206: patchmode: can't touch empty original file"
msgstr "E206: patchmode: n fidir an comhad bunsach folamh a theagmhil"
-#: ../fileio.c:3616
msgid "E207: Can't delete backup file"
msgstr "E207: N fidir an comhad cltaca a scriosadh"
-#: ../fileio.c:3672
msgid ""
"\n"
"WARNING: Original file may be lost or damaged\n"
@@ -2286,96 +1851,75 @@ msgstr ""
"\n"
"RABHADH: Is fidir gur caillte n loite an comhad bunsach\n"
-#: ../fileio.c:3675
msgid "don't quit the editor until the file is successfully written!"
msgstr "n scoir go dt go scrobhfa an comhad!"
-#: ../fileio.c:3795
msgid "[dos]"
msgstr "[dos]"
-#: ../fileio.c:3795
msgid "[dos format]"
msgstr "[formid dos]"
-#: ../fileio.c:3801
msgid "[mac]"
msgstr "[mac]"
-#: ../fileio.c:3801
msgid "[mac format]"
msgstr "[formid mac]"
-#: ../fileio.c:3807
msgid "[unix]"
msgstr "[unix]"
-#: ../fileio.c:3807
msgid "[unix format]"
msgstr "[formid unix]"
-#: ../fileio.c:3831
msgid "1 line, "
msgstr "1 lne, "
-#: ../fileio.c:3833
#, c-format
-msgid "%<PRId64> lines, "
-msgstr "%<PRId64> lne, "
+msgid "%ld lines, "
+msgstr "%ld lne, "
-#: ../fileio.c:3836
msgid "1 character"
msgstr "1 carachtar"
-#: ../fileio.c:3838
#, c-format
-msgid "%<PRId64> characters"
-msgstr "%<PRId64> carachtar"
+msgid "%lld characters"
+msgstr "%lld carachtar"
-#: ../fileio.c:3849
msgid "[noeol]"
msgstr "[ganEOL]"
-#: ../fileio.c:3849
msgid "[Incomplete last line]"
msgstr "[Is neamhiomln an lne dheireanach]"
#. don't overwrite messages here
#. must give this prompt
#. don't use emsg() here, don't want to flush the buffers
-#: ../fileio.c:3865
msgid "WARNING: The file has been changed since reading it!!!"
msgstr "RABHADH: Athraodh an comhad ladh !!!"
-#: ../fileio.c:3867
msgid "Do you really want to write to it"
msgstr "An bhfuil t cinnte gur mhaith leat a scrobh"
-#: ../fileio.c:4648
#, c-format
msgid "E208: Error writing to \"%s\""
msgstr "E208: Earrid agus \"%s\" scrobh"
-#: ../fileio.c:4655
#, c-format
msgid "E209: Error closing \"%s\""
msgstr "E209: Earrid agus \"%s\" dhnadh"
-#: ../fileio.c:4657
#, c-format
msgid "E210: Error reading \"%s\""
msgstr "E210: Earrid agus \"%s\" lamh"
-#: ../fileio.c:4883
msgid "E246: FileChangedShell autocommand deleted buffer"
msgstr "E246: Scrios uathord FileChangedShell an maoln"
-#: ../fileio.c:4894
#, c-format
msgid "E211: File \"%s\" no longer available"
msgstr "E211: Nl comhad \"%s\" ar fil feasta"
-#: ../fileio.c:4906
#, c-format
msgid ""
"W12: Warning: File \"%s\" has changed and the buffer was changed in Vim as "
@@ -2383,39 +1927,31 @@ msgid ""
msgstr ""
"W12: Rabhadh: Athraodh comhad \"%s\" agus athraodh an maoln i Vim fosta"
-#: ../fileio.c:4907
msgid "See \":help W12\" for more info."
msgstr "Bain triail as \":help W12\" chun tuilleadh eolais a fhil."
-#: ../fileio.c:4910
#, c-format
msgid "W11: Warning: File \"%s\" has changed since editing started"
msgstr "W11: Rabhadh: Athraodh comhad \"%s\" tosaodh a chur in eagar"
-#: ../fileio.c:4911
msgid "See \":help W11\" for more info."
msgstr "Bain triail as \":help W11\" chun tuilleadh eolais a fhil."
-#: ../fileio.c:4914
#, c-format
msgid "W16: Warning: Mode of file \"%s\" has changed since editing started"
msgstr ""
"W16: Rabhadh: Athraodh md an chomhaid \"%s\" tosaodh a chur in eagar"
-#: ../fileio.c:4915
msgid "See \":help W16\" for more info."
msgstr "Bain triail as \":help W16\" chun tuilleadh eolais a fhil."
-#: ../fileio.c:4927
#, c-format
msgid "W13: Warning: File \"%s\" has been created after editing started"
msgstr "W13: Rabhadh: Cruthaodh comhad \"%s\" tosaodh a chur in eagar"
-#: ../fileio.c:4947
msgid "Warning"
msgstr "Rabhadh"
-#: ../fileio.c:4948
msgid ""
"&OK\n"
"&Load File"
@@ -2423,48 +1959,45 @@ msgstr ""
"&OK\n"
"&Luchtaigh Comhad"
-#: ../fileio.c:5065
#, c-format
msgid "E462: Could not prepare for reloading \"%s\""
msgstr "E462: N fidir \"%s\" a ullmh le haghaidh athluchtaithe"
-#: ../fileio.c:5078
#, c-format
msgid "E321: Could not reload \"%s\""
msgstr "E321: N fidir \"%s\" a athlucht"
-#: ../fileio.c:5601
msgid "--Deleted--"
msgstr "--Scriosta--"
-#: ../fileio.c:5732
#, c-format
msgid "auto-removing autocommand: %s <buffer=%d>"
msgstr "uathord bhaint go huathoibroch: %s <maoln=%d>"
#. the group doesn't exist
-#: ../fileio.c:5772
#, c-format
msgid "E367: No such group: \"%s\""
msgstr "E367: Nl a leithid de ghrpa: \"%s\""
-#: ../fileio.c:5897
+msgid "E936: Cannot delete the current group"
+msgstr "E936: N fidir an grpa reatha a scriosadh"
+
+msgid "W19: Deleting augroup that is still in use"
+msgstr "W19: Iarracht ar augroup at fs in sid a scriosadh"
+
#, c-format
msgid "E215: Illegal character after *: %s"
msgstr "E215: Carachtar neamhcheadaithe i ndiaidh *: %s"
-#: ../fileio.c:5905
#, c-format
msgid "E216: No such event: %s"
msgstr "E216: Nl a leithid de theagmhas: %s"
-#: ../fileio.c:5907
#, c-format
msgid "E216: No such group or event: %s"
msgstr "E216: Nl a leithid de ghrpa n theagmhas: %s"
#. Highlight title
-#: ../fileio.c:6090
msgid ""
"\n"
"--- Auto-Commands ---"
@@ -2472,765 +2005,567 @@ msgstr ""
"\n"
"--- Uathorduithe ---"
-#: ../fileio.c:6293
#, c-format
msgid "E680: <buffer=%d>: invalid buffer number "
msgstr "E680: <maoln=%d>: uimhir neamhbhail mhaolin "
-#: ../fileio.c:6370
msgid "E217: Can't execute autocommands for ALL events"
msgstr "E217: N fidir uathorduithe a rith i gcomhair teagmhas UILE"
-#: ../fileio.c:6393
msgid "No matching autocommands"
msgstr "Nl aon uathord comhoirinaithe"
-#: ../fileio.c:6831
msgid "E218: autocommand nesting too deep"
msgstr "E218: uathord neadaithe rdhomhain"
-#: ../fileio.c:7143
#, c-format
msgid "%s Auto commands for \"%s\""
msgstr "%s Uathorduithe do \"%s\""
-#: ../fileio.c:7149
#, c-format
msgid "Executing %s"
msgstr "%s rith"
-#: ../fileio.c:7211
#, c-format
msgid "autocommand %s"
msgstr "uathord %s"
-#: ../fileio.c:7795
msgid "E219: Missing {."
msgstr "E219: { ar iarraidh."
-#: ../fileio.c:7797
msgid "E220: Missing }."
msgstr "E220: } ar iarraidh."
-#: ../fold.c:93
msgid "E490: No fold found"
msgstr "E490: Nor aimsodh aon fhilleadh"
-#: ../fold.c:544
msgid "E350: Cannot create fold with current 'foldmethod'"
msgstr "E350: N fidir filleadh a chruth leis an 'foldmethod' reatha"
-#: ../fold.c:546
msgid "E351: Cannot delete fold with current 'foldmethod'"
msgstr "E351: N fidir filleadh a scriosadh leis an 'foldmethod' reatha"
-#: ../fold.c:1784
#, c-format
-msgid "+--%3ld lines folded "
-msgstr "+--%3ld lne fillte "
+msgid "+--%3ld line folded "
+msgid_plural "+--%3ld lines folded "
+msgstr[0] "+--%3ld lne fillte "
+msgstr[1] "+--%3ld lne fillte "
+msgstr[2] "+--%3ld lne fillte "
+msgstr[3] "+--%3ld lne fillte "
+msgstr[4] "+--%3ld lne fillte "
-#. buffer has already been read
-#: ../getchar.c:273
msgid "E222: Add to read buffer"
msgstr "E222: Cuir leis an maoln lite"
-#: ../getchar.c:2040
msgid "E223: recursive mapping"
msgstr "E223: mapil athchrsach"
-#: ../getchar.c:2849
#, c-format
msgid "E224: global abbreviation already exists for %s"
msgstr "E224: t giorrchn comhchoiteann ann cheana le haghaidh %s"
-#: ../getchar.c:2852
#, c-format
msgid "E225: global mapping already exists for %s"
msgstr "E225: t mapil chomhchoiteann ann cheana le haghaidh %s"
-#: ../getchar.c:2952
#, c-format
msgid "E226: abbreviation already exists for %s"
msgstr "E226: t giorrchn ann cheana le haghaidh %s"
-#: ../getchar.c:2955
#, c-format
msgid "E227: mapping already exists for %s"
msgstr "E227: t mapil ann cheana le haghaidh %s"
-#: ../getchar.c:3008
msgid "No abbreviation found"
msgstr "Nor aimsodh aon ghiorrchn"
-#: ../getchar.c:3010
msgid "No mapping found"
msgstr "Nor aimsodh aon mhapil"
-#: ../getchar.c:3974
msgid "E228: makemap: Illegal mode"
msgstr "E228: makemap: Md neamhcheadaithe"
-#. key value of 'cedit' option
-#. type of cmdline window or 0
-#. result of cmdline window or 0
-#: ../globals.h:924
-msgid "--No lines in buffer--"
-msgstr "--T an maoln folamh--"
-
-#.
-#. * The error messages that can be shared are included here.
-#. * Excluded are errors that are only used once and debugging messages.
-#.
-#: ../globals.h:996
-msgid "E470: Command aborted"
-msgstr "E470: Ord tobscortha"
+msgid "E851: Failed to create a new process for the GUI"
+msgstr "E851: Norbh fhidir priseas nua a chruth don GUI"
-#: ../globals.h:997
-msgid "E471: Argument required"
-msgstr "E471: T g le hargint"
+msgid "E852: The child process failed to start the GUI"
+msgstr "E852: Theip ar an macphriseas an GUI a thos"
-#: ../globals.h:998
-msgid "E10: \\ should be followed by /, ? or &"
-msgstr "E10: Ba chir /, ? n & a chur i ndiaidh \\"
+msgid "E229: Cannot start the GUI"
+msgstr "E229: N fidir an GUI a chur ag obair"
-#: ../globals.h:1000
-msgid "E11: Invalid in command-line window; <CR> executes, CTRL-C quits"
-msgstr ""
-"E11: Neamhbhail i bhfuinneog lne na n-orduithe; <CR>=rith, CTRL-C=scoir"
+#, c-format
+msgid "E230: Cannot read from \"%s\""
+msgstr "E230: N fidir lamh \"%s\""
-#: ../globals.h:1002
-msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search"
+msgid "E665: Cannot start GUI, no valid font found"
msgstr ""
-"E12: N cheadatear ord exrc/vimrc sa chomhadlann reatha n chuardach "
-"clibe"
+"E665: N fidir an GUI a chur ag obair, nl aon chlfhoireann bhail ann"
-#: ../globals.h:1003
-msgid "E171: Missing :endif"
-msgstr "E171: :endif ar iarraidh"
+msgid "E231: 'guifontwide' invalid"
+msgstr "E231: 'guifontwide' neamhbhail"
-#: ../globals.h:1004
-msgid "E600: Missing :endtry"
-msgstr "E600: :endtry ar iarraidh"
-
-#: ../globals.h:1005
-msgid "E170: Missing :endwhile"
-msgstr "E170: :endwhile ar iarraidh"
-
-#: ../globals.h:1006
-msgid "E170: Missing :endfor"
-msgstr "E170: :endfor ar iarraidh"
-
-#: ../globals.h:1007
-msgid "E588: :endwhile without :while"
-msgstr "E588: :endwhile gan :while"
-
-#: ../globals.h:1008
-msgid "E588: :endfor without :for"
-msgstr "E588: :endfor gan :for"
+msgid "E599: Value of 'imactivatekey' is invalid"
+msgstr "E599: Luach neamhbhail ar 'imactivatekey'"
-#: ../globals.h:1009
-msgid "E13: File exists (add ! to override)"
-msgstr "E13: T comhad ann cheana (cuir ! leis an ord chun forscrobh)"
-
-#: ../globals.h:1010
-msgid "E472: Command failed"
-msgstr "E472: Theip ar ord"
-
-#: ../globals.h:1011
-msgid "E473: Internal error"
-msgstr "E473: Earrid inmhenach"
+#, c-format
+msgid "E254: Cannot allocate color %s"
+msgstr "E254: N fidir dath %s a dhileadh"
-#: ../globals.h:1012
-msgid "Interrupted"
-msgstr "Idirbhriste"
+msgid "No match at cursor, finding next"
+msgstr "Nl a leithid ag an chrsir, ag cuardach ar an chad cheann eile"
-#: ../globals.h:1013
-msgid "E14: Invalid address"
-msgstr "E14: Drochsheoladh"
+msgid "<cannot open> "
+msgstr "<n fidir a oscailt> "
-#: ../globals.h:1014
-msgid "E474: Invalid argument"
-msgstr "E474: Argint neamhbhail"
-
-#: ../globals.h:1015
#, c-format
-msgid "E475: Invalid argument: %s"
-msgstr "E475: Argint neamhbhail: %s"
+msgid "E616: vim_SelFile: can't get font %s"
+msgstr "E616: vim_SelFile: nl aon fhil ar an chlfhoireann %s"
-#: ../globals.h:1016
-#, c-format
-msgid "E15: Invalid expression: %s"
-msgstr "E15: Slonn neamhbhail: %s"
+msgid "E614: vim_SelFile: can't return to current directory"
+msgstr "E614: vim_SelFile: n fidir dul ar ais go dt an chomhadlann reatha"
-#: ../globals.h:1017
-msgid "E16: Invalid range"
-msgstr "E16: Raon neamhbhail"
+msgid "Pathname:"
+msgstr "Conair:"
-#: ../globals.h:1018
-msgid "E476: Invalid command"
-msgstr "E476: Ord neamhbhail"
+msgid "E615: vim_SelFile: can't get current directory"
+msgstr "E615: vim_SelFile: nl an chomhadlann reatha ar fil"
-#: ../globals.h:1019
-#, c-format
-msgid "E17: \"%s\" is a directory"
-msgstr "E17: is comhadlann \"%s\""
+msgid "OK"
+msgstr "OK"
-#: ../globals.h:1020
-#, fuzzy
-msgid "E900: Invalid job id"
-msgstr "E49: Mid neamhbhail scrollaithe"
+msgid "Cancel"
+msgstr "Cealaigh"
-#: ../globals.h:1021
-msgid "E901: Job table is full"
+msgid "Scrollbar Widget: Could not get geometry of thumb pixmap."
msgstr ""
+"Giuirlid Scrollbharra: N fidir cimseata an mhapa picteiln a fhil."
-#: ../globals.h:1024
-#, c-format
-msgid "E364: Library call failed for \"%s()\""
-msgstr "E364: Theip ar ghlao leabharlainne \"%s()\""
-
-#: ../globals.h:1026
-msgid "E19: Mark has invalid line number"
-msgstr "E19: T lne-uimhir neamhbhail ag an mharc"
+msgid "Vim dialog"
+msgstr "Dialg Vim"
-#: ../globals.h:1027
-msgid "E20: Mark not set"
-msgstr "E20: Marc gan socr"
-
-#: ../globals.h:1029
-msgid "E21: Cannot make changes, 'modifiable' is off"
+msgid "E232: Cannot create BalloonEval with both message and callback"
msgstr ""
-"E21: N fidir athruithe a chur i bhfeidhm, nl an bhratach 'modifiable' "
-"socraithe"
+"E232: N fidir BalloonEval a chruth le teachtaireacht agus aisghlaoch araon"
-#: ../globals.h:1030
-msgid "E22: Scripts nested too deep"
-msgstr "E22: scripteanna neadaithe rdhomhain"
+msgid "_Cancel"
+msgstr "_Cealaigh"
-#: ../globals.h:1031
-msgid "E23: No alternate file"
-msgstr "E23: Nl aon chomhad malartach"
+msgid "_Save"
+msgstr "_Sbhil"
-#: ../globals.h:1032
-msgid "E24: No such abbreviation"
-msgstr "E24: Nl a leithid de ghiorrchn ann"
+msgid "_Open"
+msgstr "_Oscail"
-#: ../globals.h:1033
-msgid "E477: No ! allowed"
-msgstr "E477: N cheadatear !"
+msgid "_OK"
+msgstr "_OK"
-#: ../globals.h:1035
-msgid "E25: Nvim does not have a built-in GUI"
-msgstr "E25: N fidir an GUI a sid: Nor cumasaodh ag am tiomsaithe"
+msgid ""
+"&Yes\n"
+"&No\n"
+"&Cancel"
+msgstr ""
+"&T\n"
+"&Nl\n"
+"&Cealaigh"
-#: ../globals.h:1036
-#, c-format
-msgid "E28: No such highlight group name: %s"
-msgstr "E28: Nl a leithid d'ainm grpa aibhsithe: %s"
+msgid "Yes"
+msgstr "T"
-#: ../globals.h:1037
-msgid "E29: No inserted text yet"
-msgstr "E29: Nl aon tacs ionsite go dt seo"
+msgid "No"
+msgstr "Nl"
-#: ../globals.h:1038
-msgid "E30: No previous command line"
-msgstr "E30: Nl aon lne na n-orduithe roimhe seo"
+msgid "Input _Methods"
+msgstr "_Modhanna ionchuir"
-#: ../globals.h:1039
-msgid "E31: No such mapping"
-msgstr "E31: Nl a leithid de mhapil"
+# in OLT --KPS
+msgid "VIM - Search and Replace..."
+msgstr "VIM - Cuardaigh agus Athchuir..."
-#: ../globals.h:1040
-msgid "E479: No match"
-msgstr "E479: Nl aon rud comhoirinach ann"
+msgid "VIM - Search..."
+msgstr "VIM - Cuardaigh..."
-#: ../globals.h:1041
-#, c-format
-msgid "E480: No match: %s"
-msgstr "E480: Nl aon rud comhoirinach ann: %s"
+msgid "Find what:"
+msgstr "Aimsigh:"
-#: ../globals.h:1042
-msgid "E32: No file name"
-msgstr "E32: Nl aon ainm comhaid"
+msgid "Replace with:"
+msgstr "Le cur in ionad:"
-#: ../globals.h:1044
-msgid "E33: No previous substitute regular expression"
-msgstr "E33: Nl aon slonn ionadaochta roimhe seo"
+#. whole word only button
+msgid "Match whole word only"
+msgstr "Focal iomln amhin"
-#: ../globals.h:1045
-msgid "E34: No previous command"
-msgstr "E34: Nl aon ord roimhe seo"
+#. match case button
+msgid "Match case"
+msgstr "Meaitseil an cs"
-#: ../globals.h:1046
-msgid "E35: No previous regular expression"
-msgstr "E35: Nl aon slonn ionadaochta roimhe seo"
+msgid "Direction"
+msgstr "Treo"
-#: ../globals.h:1047
-msgid "E481: No range allowed"
-msgstr "E481: N cheadatear raon"
+#. 'Up' and 'Down' buttons
+msgid "Up"
+msgstr "Suas"
-#: ../globals.h:1048
-msgid "E36: Not enough room"
-msgstr "E36: Nl sl a dhthain ann"
+msgid "Down"
+msgstr "Sos"
-#: ../globals.h:1049
-#, c-format
-msgid "E482: Can't create file %s"
-msgstr "E482: N fidir comhad %s a chruth"
+msgid "Find Next"
+msgstr "An Chad Cheann Eile"
-#: ../globals.h:1050
-msgid "E483: Can't get temp file name"
-msgstr "E483: Nl aon fhil ar ainm comhaid sealadach"
+msgid "Replace"
+msgstr "Ionadaigh"
-#: ../globals.h:1051
-#, c-format
-msgid "E484: Can't open file %s"
-msgstr "E484: N fidir comhad %s a oscailt"
+msgid "Replace All"
+msgstr "Ionadaigh Uile"
-#: ../globals.h:1052
-#, c-format
-msgid "E485: Can't read file %s"
-msgstr "E485: N fidir comhad %s a lamh"
+msgid "_Close"
+msgstr "_Dn"
-#: ../globals.h:1054
-msgid "E37: No write since last change (add ! to override)"
-msgstr "E37: T athruithe ann gan sbhil (cuir ! leis an ord chun sr)"
+msgid "Vim: Received \"die\" request from session manager\n"
+msgstr "Vim: Fuarthas iarratas \"die\" bhainisteoir an tseisiin\n"
-#: ../globals.h:1055
-#, fuzzy
-msgid "E37: No write since last change"
-msgstr "[Athraithe agus nach sbhilte shin]\n"
+msgid "Close tab"
+msgstr "Dn cluaisn"
-#: ../globals.h:1056
-msgid "E38: Null argument"
-msgstr "E38: Argint nialasach"
-
-#: ../globals.h:1057
-msgid "E39: Number expected"
-msgstr "E39: Ag sil le huimhir"
+msgid "New tab"
+msgstr "Cluaisn nua"
-#: ../globals.h:1058
-#, c-format
-msgid "E40: Can't open errorfile %s"
-msgstr "E40: N fidir an comhad earride %s a oscailt"
+msgid "Open Tab..."
+msgstr "Oscail Cluaisn..."
-#: ../globals.h:1059
-msgid "E41: Out of memory!"
-msgstr "E41: Cuimhne dithe!"
+msgid "Vim: Main window unexpectedly destroyed\n"
+msgstr "Vim: Milleadh an promhfhuinneog gan choinne\n"
-#: ../globals.h:1060
-msgid "Pattern not found"
-msgstr "Patrn gan aimsi"
+msgid "&Filter"
+msgstr "&Scagaire"
-#: ../globals.h:1061
-#, c-format
-msgid "E486: Pattern not found: %s"
-msgstr "E486: Patrn gan aimsi: %s"
+msgid "&Cancel"
+msgstr "&Cealaigh"
-#: ../globals.h:1062
-msgid "E487: Argument must be positive"
-msgstr "E487: N folir argint dheimhneach"
+msgid "Directories"
+msgstr "Comhadlanna"
-#: ../globals.h:1064
-msgid "E459: Cannot go back to previous directory"
-msgstr "E459: N fidir a fhilleadh ar an chomhadlann roimhe seo"
+msgid "Filter"
+msgstr "Scagaire"
-#: ../globals.h:1066
-msgid "E42: No Errors"
-msgstr "E42: Nl Aon Earrid Ann"
+msgid "&Help"
+msgstr "&Cabhair"
-#: ../globals.h:1067
-msgid "E776: No location list"
-msgstr "E776: Gan liosta suomh"
+msgid "Files"
+msgstr "Comhaid"
-#: ../globals.h:1068
-msgid "E43: Damaged match string"
-msgstr "E43: Teaghrn cuardaigh loite"
+msgid "&OK"
+msgstr "&OK"
-#: ../globals.h:1069
-msgid "E44: Corrupted regexp program"
-msgstr "E44: Clr na sloinn ionadaochta truaillithe"
+msgid "Selection"
+msgstr "Roghn"
-#: ../globals.h:1071
-msgid "E45: 'readonly' option is set (add ! to override)"
-msgstr "E45: t an rogha 'readonly' socraithe (cuir ! leis an ord chun sr)"
+msgid "Find &Next"
+msgstr "An Chad Chea&nn Eile"
-#: ../globals.h:1073
-#, c-format
-msgid "E46: Cannot change read-only variable \"%s\""
-msgstr "E46: N fidir athrg inlite amhin \"%s\" a athr"
+msgid "&Replace"
+msgstr "&Ionadaigh"
-#: ../globals.h:1075
-#, c-format
-msgid "E794: Cannot set variable in the sandbox: \"%s\""
-msgstr "E794: N fidir athrg a shocr sa bhosca gainimh: \"%s\""
+msgid "Replace &All"
+msgstr "Ionadaigh &Uile"
-#: ../globals.h:1076
-msgid "E47: Error while reading errorfile"
-msgstr "E47: Earrid agus comhad earride lamh"
+msgid "&Undo"
+msgstr "&Cealaigh"
-#: ../globals.h:1078
-msgid "E48: Not allowed in sandbox"
-msgstr "E48: N cheadatear seo i mbosca gainimh"
+msgid "Open tab..."
+msgstr "Oscail cluaisn..."
-#: ../globals.h:1080
-msgid "E523: Not allowed here"
-msgstr "E523: N cheadatear anseo"
+msgid "Find string (use '\\\\' to find a '\\')"
+msgstr "Aimsigh teaghrn (bain sid as '\\\\' chun '\\' a aimsi)"
-#: ../globals.h:1082
-msgid "E359: Screen mode setting not supported"
-msgstr "E359: N fidir an md scilein a shocr"
+msgid "Find & Replace (use '\\\\' to find a '\\')"
+msgstr "Aimsigh & Athchuir (sid '\\\\' chun '\\' a aimsi)"
-#: ../globals.h:1083
-msgid "E49: Invalid scroll size"
-msgstr "E49: Mid neamhbhail scrollaithe"
+#. We fake this: Use a filter that doesn't select anything and a default
+#. * file name that won't be used.
+msgid "Not Used"
+msgstr "Gan sid"
-#: ../globals.h:1084
-msgid "E91: 'shell' option is empty"
-msgstr "E91: rogha 'shell' folamh"
+msgid "Directory\t*.nothing\n"
+msgstr "Comhadlann\t*.neamhn\n"
-#: ../globals.h:1085
-msgid "E255: Couldn't read in sign data!"
-msgstr "E255: Norbh fhidir na sonra comhartha a lamh!"
+#, c-format
+msgid "E671: Cannot find window title \"%s\""
+msgstr "E671: N fidir teideal na fuinneoige \"%s\" a aimsi"
-#: ../globals.h:1086
-msgid "E72: Close error on swap file"
-msgstr "E72: Earrid agus comhad babhtla dhnadh"
+#, c-format
+msgid "E243: Argument not supported: \"-%s\"; Use the OLE version."
+msgstr "E243: Argint gan tacaocht: \"-%s\"; Bain sid as an leagan OLE."
-#: ../globals.h:1087
-msgid "E73: tag stack empty"
-msgstr "E73: t cruach na gclibeanna folamh"
+msgid "E672: Unable to open window inside MDI application"
+msgstr "E672: N fidir fuinneog a oscailt isteach i bhfeidhmchlr MDI"
-#: ../globals.h:1088
-msgid "E74: Command too complex"
-msgstr "E74: Ord rchasta"
+msgid "Vim E458: Cannot allocate colormap entry, some colors may be incorrect"
+msgstr ""
+"Vim E458: N fidir iontril dathmhapla a dhileadh, is fidir go mbeidh "
+"dathanna mchearta ann"
-#: ../globals.h:1089
-msgid "E75: Name too long"
-msgstr "E75: Ainm rfhada"
+#, c-format
+msgid "E250: Fonts for the following charsets are missing in fontset %s:"
+msgstr ""
+"E250: Clnna ar iarraidh le haghaidh na dtacar carachtar i dtacar cl %s:"
-#: ../globals.h:1090
-msgid "E76: Too many ["
-msgstr "E76: an iomarca ["
+#, c-format
+msgid "E252: Fontset name: %s"
+msgstr "E252: Ainm an tacar cl: %s"
-#: ../globals.h:1091
-msgid "E77: Too many file names"
-msgstr "E77: An iomarca ainmneacha comhaid"
+#, c-format
+msgid "Font '%s' is not fixed-width"
+msgstr "N cl aonleithid '%s'"
-#: ../globals.h:1092
-msgid "E488: Trailing characters"
-msgstr "E488: Carachtair chun deiridh"
+#, c-format
+msgid "E253: Fontset name: %s"
+msgstr "E253: Ainm an tacar cl: %s"
-#: ../globals.h:1093
-msgid "E78: Unknown mark"
-msgstr "E78: Marc anaithnid"
+#, c-format
+msgid "Font0: %s"
+msgstr "Cl0: %s"
-#: ../globals.h:1094
-msgid "E79: Cannot expand wildcards"
-msgstr "E79: N fidir saorga a leathn"
+#, c-format
+msgid "Font1: %s"
+msgstr "Cl1: %s"
-#: ../globals.h:1096
-msgid "E591: 'winheight' cannot be smaller than 'winminheight'"
-msgstr "E591: n cheadatear 'winheight' a bheith nos l n 'winminheight'"
+#, c-format
+msgid "Font%ld width is not twice that of font0"
+msgstr "Nl Cl%ld nos leithne faoi dh n cl0"
-#: ../globals.h:1098
-msgid "E592: 'winwidth' cannot be smaller than 'winminwidth'"
-msgstr "E592: n cheadatear 'winwidth' a bheith nos l n 'winminwidth'"
+#, c-format
+msgid "Font0 width: %ld"
+msgstr "Leithead Cl0: %ld"
-#: ../globals.h:1099
-msgid "E80: Error while writing"
-msgstr "E80: Earrid agus scrobh"
+#, c-format
+msgid "Font1 width: %ld"
+msgstr "Leithead cl1: %ld"
-#: ../globals.h:1100
-msgid "Zero count"
-msgstr "Nialas"
+msgid "Invalid font specification"
+msgstr "Sonr neamhbhail cl"
-#: ../globals.h:1101
-msgid "E81: Using <SID> not in a script context"
-msgstr "E81: <SID> sid nach i gcomhthacs scripte"
+msgid "&Dismiss"
+msgstr "&Ruaig"
-#: ../globals.h:1102
-#, c-format
-msgid "E685: Internal error: %s"
-msgstr "E685: Earrid inmhenach: %s"
+msgid "no specific match"
+msgstr "nl a leithid ann"
-#: ../globals.h:1104
-msgid "E363: pattern uses more memory than 'maxmempattern'"
-msgstr "E363: sideann an patrn nos m cuimhne n 'maxmempattern'"
+msgid "Vim - Font Selector"
+msgstr "Vim - Roghn Cl"
-#: ../globals.h:1105
-msgid "E749: empty buffer"
-msgstr "E749: maoln folamh"
+msgid "Name:"
+msgstr "Ainm:"
-#: ../globals.h:1108
-msgid "E682: Invalid search pattern or delimiter"
-msgstr "E682: Patrn n teormharcir neamhbhail cuardaigh"
+#. create toggle button
+msgid "Show size in Points"
+msgstr "Taispein mid (Point)"
-#: ../globals.h:1109
-msgid "E139: File is loaded in another buffer"
-msgstr "E139: T an comhad luchtaithe i maoln eile"
+msgid "Encoding:"
+msgstr "Ionchd:"
-#: ../globals.h:1110
-#, c-format
-msgid "E764: Option '%s' is not set"
-msgstr "E764: Rogha '%s' gan socr"
+msgid "Font:"
+msgstr "Cl:"
-#: ../globals.h:1111
-#, fuzzy
-msgid "E850: Invalid register name"
-msgstr "E354: Ainm neamhbhail tabhaill: '%s'"
+msgid "Style:"
+msgstr "Stl:"
-#: ../globals.h:1114
-msgid "search hit TOP, continuing at BOTTOM"
-msgstr "Buaileadh an BARR le linn an chuardaigh, ag leanint ag an CHROCH"
+msgid "Size:"
+msgstr "Mid:"
-#: ../globals.h:1115
-msgid "search hit BOTTOM, continuing at TOP"
-msgstr "Buaileadh an BUN le linn an chuardaigh, ag leanint ag an BHARR"
+msgid "E256: Hangul automata ERROR"
+msgstr "E256: EARRID leis na huathoibrein Hangul"
-#: ../hardcopy.c:240
msgid "E550: Missing colon"
msgstr "E550: Idirstad ar iarraidh"
-#: ../hardcopy.c:252
msgid "E551: Illegal component"
msgstr "E551: Comhphirt neamhcheadaithe"
-#: ../hardcopy.c:259
msgid "E552: digit expected"
msgstr "E552: ag sil le digit"
-#: ../hardcopy.c:473
#, c-format
msgid "Page %d"
msgstr "Leathanach %d"
-#: ../hardcopy.c:597
msgid "No text to be printed"
msgstr "Nl aon tacs le priontil"
-#: ../hardcopy.c:668
#, c-format
msgid "Printing page %d (%d%%)"
msgstr "Leathanach %d (%d%%) phriontil"
-#: ../hardcopy.c:680
#, c-format
msgid " Copy %d of %d"
msgstr " Cip %d de %d"
-#: ../hardcopy.c:733
#, c-format
msgid "Printed: %s"
msgstr "Priontilte: %s"
-#: ../hardcopy.c:740
msgid "Printing aborted"
msgstr "Priontil tobscortha"
-#: ../hardcopy.c:1365
msgid "E455: Error writing to PostScript output file"
msgstr "E455: Earrid le linn scrobh chuig aschomhad PostScript"
-#: ../hardcopy.c:1747
#, c-format
msgid "E624: Can't open file \"%s\""
msgstr "E624: N fidir an comhad \"%s\" a oscailt"
-#: ../hardcopy.c:1756 ../hardcopy.c:2470
#, c-format
msgid "E457: Can't read PostScript resource file \"%s\""
msgstr "E457: N fidir comhad acmhainne PostScript \"%s\" a lamh"
-#: ../hardcopy.c:1772
#, c-format
msgid "E618: file \"%s\" is not a PostScript resource file"
msgstr "E618: Nl comhad \"%s\" ina chomhad acmhainne PostScript"
-#: ../hardcopy.c:1788 ../hardcopy.c:1805 ../hardcopy.c:1844
#, c-format
msgid "E619: file \"%s\" is not a supported PostScript resource file"
msgstr "E619: T \"%s\" ina chomhad acmhainne PostScript gan tac"
-#: ../hardcopy.c:1856
#, c-format
msgid "E621: \"%s\" resource file has wrong version"
msgstr "E621: T an leagan mcheart ar an gcomhad acmhainne \"%s\""
-#: ../hardcopy.c:2225
msgid "E673: Incompatible multi-byte encoding and character set."
msgstr "E673: Ionchd agus tacar carachtar ilbhirt neamh-chomhoirinach."
-#: ../hardcopy.c:2238
msgid "E674: printmbcharset cannot be empty with multi-byte encoding."
msgstr ""
"E674: n cheadatear printmbcharset a bheith folamh le hionchd ilbhirt."
-#: ../hardcopy.c:2254
msgid "E675: No default font specified for multi-byte printing."
msgstr "E675: Nor ramhshocraodh cl le haghaidh priontla ilbhirt."
-#: ../hardcopy.c:2426
msgid "E324: Can't open PostScript output file"
msgstr "E324: N fidir aschomhad PostScript a oscailt"
-#: ../hardcopy.c:2458
#, c-format
msgid "E456: Can't open file \"%s\""
msgstr "E456: N fidir an comhad \"%s\" a oscailt"
-#: ../hardcopy.c:2583
msgid "E456: Can't find PostScript resource file \"prolog.ps\""
msgstr "E456: Comhad acmhainne PostScript \"prolog.ps\" gan aimsi"
-#: ../hardcopy.c:2593
msgid "E456: Can't find PostScript resource file \"cidfont.ps\""
msgstr "E456: Comhad acmhainne PostScript \"cidfont.ps\" gan aimsi"
-#: ../hardcopy.c:2622 ../hardcopy.c:2639 ../hardcopy.c:2665
#, c-format
msgid "E456: Can't find PostScript resource file \"%s.ps\""
msgstr "E456: Comhad acmhainne PostScript \"%s.ps\" gan aimsi"
-#: ../hardcopy.c:2654
#, c-format
msgid "E620: Unable to convert to print encoding \"%s\""
msgstr "E620: N fidir an t-ionchd priontla \"%s\" a thiont"
-#: ../hardcopy.c:2877
msgid "Sending to printer..."
msgstr " sheoladh chuig an phrintir..."
-#: ../hardcopy.c:2881
msgid "E365: Failed to print PostScript file"
msgstr "E365: Theip ar phriontil comhaid PostScript"
-#: ../hardcopy.c:2883
msgid "Print job sent."
msgstr "Seoladh jab priontla."
-#: ../if_cscope.c:85
msgid "Add a new database"
msgstr "Bunachar sonra nua"
-#: ../if_cscope.c:87
msgid "Query for a pattern"
msgstr "Iarratas ar phatrn"
-#: ../if_cscope.c:89
msgid "Show this message"
msgstr "Taispein an teachtaireacht seo"
-#: ../if_cscope.c:91
msgid "Kill a connection"
msgstr "Maraigh nasc"
-#: ../if_cscope.c:93
msgid "Reinit all connections"
msgstr "Atsaigh gach nasc"
-#: ../if_cscope.c:95
msgid "Show connections"
msgstr "Taispein naisc"
-#: ../if_cscope.c:101
#, c-format
msgid "E560: Usage: cs[cope] %s"
msgstr "E560: sid: cs[cope] %s"
-#: ../if_cscope.c:225
msgid "This cscope command does not support splitting the window.\n"
msgstr "N fidir fuinneoga a scoilteadh leis an ord seo `cscope'.\n"
-#: ../if_cscope.c:266
msgid "E562: Usage: cstag <ident>"
msgstr "E562: sid: cstag <ident>"
-#: ../if_cscope.c:313
msgid "E257: cstag: tag not found"
msgstr "E257: cstag: clib gan aimsi"
-#: ../if_cscope.c:461
#, c-format
msgid "E563: stat(%s) error: %d"
msgstr "E563: earrid stat(%s): %d"
-#: ../if_cscope.c:551
+msgid "E563: stat error"
+msgstr "E563: earrid stat"
+
#, c-format
msgid "E564: %s is not a directory or a valid cscope database"
msgstr "E564: Nl %s ina comhadlann n bunachar sonra cscope bail"
-#: ../if_cscope.c:566
#, c-format
msgid "Added cscope database %s"
msgstr "Bunachar sonra nua cscope: %s"
-#: ../if_cscope.c:616
#, c-format
-msgid "E262: error reading cscope connection %<PRId64>"
-msgstr "E262: earrid agus an nasc cscope %<PRId64> lamh"
+msgid "E262: error reading cscope connection %ld"
+msgstr "E262: earrid agus an nasc cscope %ld lamh"
-#: ../if_cscope.c:711
msgid "E561: unknown cscope search type"
msgstr "E561: cinel anaithnid cuardaigh cscope"
-#: ../if_cscope.c:752 ../if_cscope.c:789
msgid "E566: Could not create cscope pipes"
msgstr "E566: Norbh fhidir popa cscope a chruth"
-#: ../if_cscope.c:767
msgid "E622: Could not fork for cscope"
msgstr "E622: Norbh fhidir forc a dhanamh le haghaidh cscope"
-#: ../if_cscope.c:849
-#, fuzzy
msgid "cs_create_connection setpgid failed"
-msgstr "theip ar rith cs_create_connection"
+msgstr "theip ar setpgid do cs_create_connection"
-#: ../if_cscope.c:853 ../if_cscope.c:889
msgid "cs_create_connection exec failed"
msgstr "theip ar rith cs_create_connection"
-#: ../if_cscope.c:863 ../if_cscope.c:902
msgid "cs_create_connection: fdopen for to_fp failed"
msgstr "cs_create_connection: theip ar fdopen le haghaidh to_fp"
-#: ../if_cscope.c:865 ../if_cscope.c:906
msgid "cs_create_connection: fdopen for fr_fp failed"
msgstr "cs_create_connection: theip ar fdopen le haghaidh fr_fp"
-#: ../if_cscope.c:890
msgid "E623: Could not spawn cscope process"
msgstr "E623: Norbh fhidir priseas cscope a sceitheadh"
-#: ../if_cscope.c:932
msgid "E567: no cscope connections"
msgstr "E567: nl aon nasc cscope ann"
-#: ../if_cscope.c:1009
#, c-format
msgid "E469: invalid cscopequickfix flag %c for %c"
msgstr "E469: bratach neamhbhail cscopequickfix %c le haghaidh %c"
-#: ../if_cscope.c:1058
#, c-format
msgid "E259: no matches found for cscope query %s of %s"
msgstr ""
"E259: nor aimsodh aon rud comhoirinach leis an iarratas cscope %s de %s"
-#: ../if_cscope.c:1142
msgid "cscope commands:\n"
msgstr "Orduithe cscope:\n"
-#: ../if_cscope.c:1150
#, c-format
msgid "%-5s: %s%*s (Usage: %s)"
msgstr "%-5s: %s%*s (sid: %s)"
-#: ../if_cscope.c:1155
-#, fuzzy
msgid ""
"\n"
+" a: Find assignments to this symbol\n"
" c: Find functions calling this function\n"
" d: Find functions called by this function\n"
" e: Find this egrep pattern\n"
@@ -3241,6 +2576,7 @@ msgid ""
" t: Find this text string\n"
msgstr ""
"\n"
+" a: Aimsigh ritis sannachin leis an tsiombail seo\n"
" c: Aimsigh feidhmeanna a chuireann glaoch ar an bhfeidhm seo\n"
" d: Aimsigh feidhmeanna a gcuireann an fheidhm seo glaoch orthu\n"
" e: Aimsigh an patrn egrep seo\n"
@@ -3248,33 +2584,34 @@ msgstr ""
" g: Aimsigh an sainmhni seo\n"
" i: Aimsigh comhaid a #include-il an comhad seo\n"
" s: Aimsigh an tsiombail C seo\n"
-" t: Aimsigh sannta do\n"
+" t: Aimsigh an teaghrn tacs seo\n"
+
+#, c-format
+msgid "E625: cannot open cscope database: %s"
+msgstr "E625: n fidir bunachar sonra cscope a oscailt: %s"
+
+msgid "E626: cannot get cscope database information"
+msgstr "E626: n fidir eolas a fhil faoin bhunachar sonra cscope"
-#: ../if_cscope.c:1226
msgid "E568: duplicate cscope database not added"
msgstr "E568: nor cuireadh bunachar sonra dblach cscope leis"
-#: ../if_cscope.c:1335
#, c-format
msgid "E261: cscope connection %s not found"
msgstr "E261: nasc cscope %s gan aimsi"
-#: ../if_cscope.c:1364
#, c-format
msgid "cscope connection %s closed"
msgstr "Dnadh nasc cscope %s"
#. should not reach here
-#: ../if_cscope.c:1486
msgid "E570: fatal error in cs_manage_matches"
msgstr "E570: earrid mharfach i cs_manage_matches"
-#: ../if_cscope.c:1693
#, c-format
msgid "Cscope tag: %s"
msgstr "Clib cscope: %s"
-#: ../if_cscope.c:1711
msgid ""
"\n"
" # line"
@@ -3282,88 +2619,301 @@ msgstr ""
"\n"
" # lne"
-#: ../if_cscope.c:1713
msgid "filename / context / line\n"
msgstr "ainm comhaid / comhthacs / lne\n"
-#: ../if_cscope.c:1809
#, c-format
msgid "E609: Cscope error: %s"
msgstr "E609: Earrid cscope: %s"
-#: ../if_cscope.c:2053
msgid "All cscope databases reset"
msgstr "Athshocraodh gach bunachar sonra cscope"
-#: ../if_cscope.c:2123
msgid "no cscope connections\n"
msgstr "nl aon nasc cscope\n"
-#: ../if_cscope.c:2126
msgid " # pid database name prepend path\n"
msgstr " # pid ainm bunachair conair thosaigh\n"
-#: ../main.c:144
+msgid "Lua library cannot be loaded."
+msgstr "N fidir an leabharlann Lua a lucht."
+
+msgid "cannot save undo information"
+msgstr "n fidir eolas cealaithe a shbhil"
+
+msgid ""
+"E815: Sorry, this command is disabled, the MzScheme libraries could not be "
+"loaded."
+msgstr ""
+"E815: T brn orm, bh an t-ord seo dchumasaithe, norbh fhidir "
+"leabharlanna MzScheme a lucht."
+
+msgid ""
+"E895: Sorry, this command is disabled, the MzScheme's racket/base module "
+"could not be loaded."
+msgstr ""
+"E895: r leithscal, t an t-ord seo dchumasaithe; norbh fhidir "
+"modl racket/base MzScheme a lucht."
+
+msgid "invalid expression"
+msgstr "slonn neamhbhail"
+
+msgid "expressions disabled at compile time"
+msgstr "dchumasaodh sloinn ag am an tiomsaithe"
+
+msgid "hidden option"
+msgstr "rogha fholaithe"
+
+msgid "unknown option"
+msgstr "rogha anaithnid"
+
+msgid "window index is out of range"
+msgstr "innacs fuinneoige as raon"
+
+msgid "couldn't open buffer"
+msgstr "n fidir maoln a oscailt"
+
+msgid "cannot delete line"
+msgstr "n fidir an lne a scriosadh"
+
+msgid "cannot replace line"
+msgstr "n fidir an lne a athchur"
+
+msgid "cannot insert line"
+msgstr "n fidir lne a ions"
+
+msgid "string cannot contain newlines"
+msgstr "n cheadatear carachtair lne nua sa teaghrn"
+
+msgid "error converting Scheme values to Vim"
+msgstr "earrid agus luach Scheme thiont go Vim"
+
+msgid "Vim error: ~a"
+msgstr "earrid Vim: ~a"
+
+msgid "Vim error"
+msgstr "earrid Vim"
+
+msgid "buffer is invalid"
+msgstr "maoln neamhbhail"
+
+msgid "window is invalid"
+msgstr "fuinneog neamhbhail"
+
+msgid "linenr out of range"
+msgstr "lne-uimhir as raon"
+
+msgid "not allowed in the Vim sandbox"
+msgstr "n cheadatear seo i mbosca gainimh Vim"
+
+msgid "E836: This Vim cannot execute :python after using :py3"
+msgstr ""
+"E836: N fidir leis an leagan seo de Vim :python a rith tar is :py3 a sid"
+
+msgid ""
+"E263: Sorry, this command is disabled, the Python library could not be "
+"loaded."
+msgstr ""
+"E263: T brn orm, nl an t-ord seo le fil, norbh fhidir an leabharlann "
+"Python a lucht."
+
+msgid ""
+"E887: Sorry, this command is disabled, the Python's site module could not be "
+"loaded."
+msgstr ""
+"E887: r leithscal, nl an t-ord seo le fil, norbh fhidir an modl "
+"Python a lucht."
+
+msgid "E659: Cannot invoke Python recursively"
+msgstr "E659: N fidir Python a rith go hathchrsach"
+
+msgid "E837: This Vim cannot execute :py3 after using :python"
+msgstr ""
+"E837: N fidir leis an leagan seo de Vim :py3 a rith tar is :python a sid"
+
+msgid "E265: $_ must be an instance of String"
+msgstr "E265: caithfidh $_ a bheith cinel Teaghrin"
+
+msgid ""
+"E266: Sorry, this command is disabled, the Ruby library could not be loaded."
+msgstr ""
+"E266: T brn orm, nl an t-ord seo le fil, norbh fhidir an leabharlann "
+"Ruby a lucht."
+
+msgid "E267: unexpected return"
+msgstr "E267: \"return\" gan choinne"
+
+msgid "E268: unexpected next"
+msgstr "E268: \"next\" gan choinne"
+
+msgid "E269: unexpected break"
+msgstr "E269: \"break\" gan choinne"
+
+msgid "E270: unexpected redo"
+msgstr "E270: \"redo\" gan choinne"
+
+msgid "E271: retry outside of rescue clause"
+msgstr "E271: \"retry\" taobh amuigh de chlsal tarrthla"
+
+msgid "E272: unhandled exception"
+msgstr "E272: eisceacht gan limhseil"
+
+#, c-format
+msgid "E273: unknown longjmp status %d"
+msgstr "E273: stdas anaithnid longjmp %d"
+
+msgid "invalid buffer number"
+msgstr "uimhir neamhbhail mhaolin"
+
+msgid "not implemented yet"
+msgstr "nl ar fil"
+
+#. ???
+msgid "cannot set line(s)"
+msgstr "n fidir ln(t)e a shocr"
+
+msgid "invalid mark name"
+msgstr "ainm neamhbhail mairc"
+
+msgid "mark not set"
+msgstr "marc gan socr"
+
+#, c-format
+msgid "row %d column %d"
+msgstr "lne %d coln %d"
+
+msgid "cannot insert/append line"
+msgstr "n fidir lne a ions/iarcheangal"
+
+msgid "line number out of range"
+msgstr "lne-uimhir as raon"
+
+msgid "unknown flag: "
+msgstr "bratach anaithnid: "
+
+msgid "unknown vimOption"
+msgstr "vimOption anaithnid"
+
+msgid "keyboard interrupt"
+msgstr "idirbhriseadh marchlir"
+
+msgid "vim error"
+msgstr "earrid vim"
+
+msgid "cannot create buffer/window command: object is being deleted"
+msgstr "n fidir ord maolin/fuinneoige a chruth: rad scriosadh"
+
+msgid ""
+"cannot register callback command: buffer/window is already being deleted"
+msgstr "n fidir ord aisghlaoch a chlr: maoln/fuinneog scriosadh cheana"
+
+#. This should never happen. Famous last word?
+msgid ""
+"E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim."
+"org"
+msgstr ""
+"E280: EARRID MHARFACH TCL: liosta truaillithe tagartha!? Seol tuairisc "
+"fhabht chuig <vim-dev@vim.org> le do thoil"
+
+msgid "cannot register callback command: buffer/window reference not found"
+msgstr ""
+"n fidir ord aisghlaoch a chlr: tagairt mhaoln/fhuinneoige gan aimsi"
+
+msgid ""
+"E571: Sorry, this command is disabled: the Tcl library could not be loaded."
+msgstr ""
+"E571: T brn orm, nl an t-ord seo le fil: norbh fhidir an leabharlann "
+"Tcl a lucht."
+
+#, c-format
+msgid "E572: exit code %d"
+msgstr "E572: cd scortha %d"
+
+msgid "cannot get line"
+msgstr "n fidir an lne a fhil"
+
+msgid "Unable to register a command server name"
+msgstr "N fidir ainm fhreastala ordaithe a chlr"
+
+msgid "E248: Failed to send command to the destination program"
+msgstr "E248: Theip ar sheoladh ord chuig an sprioc-chlr"
+
+#, c-format
+msgid "E573: Invalid server id used: %s"
+msgstr "E573: Aitheantas neamhbhail freastala in sid: %s"
+
+msgid "E251: VIM instance registry property is badly formed. Deleted!"
+msgstr "E251: Air mchumtha sa chlrlann isc VIM. Scriosta!"
+
+#, c-format
+msgid "E696: Missing comma in List: %s"
+msgstr "E696: Camg ar iarraidh i Liosta: %s"
+
+#, c-format
+msgid "E697: Missing end of List ']': %s"
+msgstr "E697: ']' ar iarraidh ag deireadh liosta: %s"
+
msgid "Unknown option argument"
msgstr "Argint anaithnid rogha"
-#: ../main.c:146
msgid "Too many edit arguments"
msgstr "An iomarca argint eagarthireachta"
-#: ../main.c:148
msgid "Argument missing after"
msgstr "Argint ar iarraidh i ndiaidh"
-#: ../main.c:150
msgid "Garbage after option argument"
msgstr "Dramhal i ndiaidh arginte rogha"
-#: ../main.c:152
msgid "Too many \"+command\", \"-c command\" or \"--cmd command\" arguments"
msgstr ""
"An iomarca argint den chinel \"+ord\", \"-c ord\" n \"--cmd ord\""
-#: ../main.c:154
msgid "Invalid argument for"
msgstr "Argint neamhbhail do"
-#: ../main.c:294
#, c-format
msgid "%d files to edit\n"
msgstr "%d comhad le heagr\n"
-#: ../main.c:1342
+msgid "netbeans is not supported with this GUI\n"
+msgstr "N thacatear le netbeans sa GUI seo\n"
+
+msgid "'-nb' cannot be used: not enabled at compile time\n"
+msgstr "N fidir '-nb' a sid: nor cumasaodh ag am tiomsaithe\n"
+
+msgid "This Vim was not compiled with the diff feature."
+msgstr "Nor tiomsaodh an leagan Vim seo le `diff' ar fil."
+
msgid "Attempt to open script file again: \""
msgstr "Dan iarracht ar oscailt na scripte ars: \""
-#: ../main.c:1350
msgid "Cannot open for reading: \""
msgstr "N fidir a oscailt chun lamh: \""
-#: ../main.c:1393
msgid "Cannot open for script output: \""
msgstr "N fidir a oscailt le haghaidh an aschuir scripte: \""
-#: ../main.c:1622
+msgid "Vim: Error: Failure to start gvim from NetBeans\n"
+msgstr "Vim: Earrid: Theip ar thos gvim NetBeans\n"
+
+msgid "Vim: Error: This version of Vim does not run in a Cygwin terminal\n"
+msgstr "Vim: Earrid: N fidir an leagan seo de Vim a rith i dteirminal Cygwin\n"
+
msgid "Vim: Warning: Output is not to a terminal\n"
msgstr "Vim: Rabhadh: Nl an t-aschur ag dul chuig teirminal\n"
-#: ../main.c:1624
msgid "Vim: Warning: Input is not from a terminal\n"
msgstr "Vim: Rabhadh: Nl an t-ionchur ag teacht theirminal\n"
#. just in case..
-#: ../main.c:1891
msgid "pre-vimrc command line"
msgstr "lne na n-orduithe pre-vimrc"
-#: ../main.c:1964
#, c-format
msgid "E282: Cannot read from \"%s\""
msgstr "E282: N fidir lamh \"%s\""
-#: ../main.c:2149
msgid ""
"\n"
"More info with: \"vim -h\"\n"
@@ -3371,23 +2921,18 @@ msgstr ""
"\n"
"Tuilleadh eolais: \"vim -h\"\n"
-#: ../main.c:2178
msgid "[file ..] edit specified file(s)"
msgstr "[comhad ..] cuir na comhaid ceaptha in eagar"
-#: ../main.c:2179
msgid "- read text from stdin"
msgstr "- scrobh tacs stdin"
-#: ../main.c:2180
msgid "-t tag edit file where tag is defined"
msgstr "-t tag cuir an comhad ina bhfuil an chlib in eagar"
-#: ../main.c:2181
msgid "-q [errorfile] edit file with first error"
msgstr "-q [comhadearr] cuir comhad leis an chad earrid in eagar"
-#: ../main.c:2187
msgid ""
"\n"
"\n"
@@ -3397,11 +2942,9 @@ msgstr ""
"\n"
"sid:"
-#: ../main.c:2189
msgid " vim [arguments] "
msgstr " vim [argint] "
-#: ../main.c:2193
msgid ""
"\n"
" or:"
@@ -3409,7 +2952,14 @@ msgstr ""
"\n"
" n:"
-#: ../main.c:2196
+msgid ""
+"\n"
+"Where case is ignored prepend / to make flag upper case"
+msgstr ""
+"\n"
+"Nuair nach csogair , cuir '/' ag tosach na brata chun a chur sa chs "
+"uachtair"
+
msgid ""
"\n"
"\n"
@@ -3419,194 +2969,338 @@ msgstr ""
"\n"
"Argint:\n"
-#: ../main.c:2197
msgid "--\t\t\tOnly file names after this"
msgstr "--\t\t\tN cheadatear ach ainmneacha comhaid i ndiaidh seo"
-#: ../main.c:2199
msgid "--literal\t\tDon't expand wildcards"
msgstr "--literal\t\tN leathnaigh saorga"
-#: ../main.c:2201
+msgid "-register\t\tRegister this gvim for OLE"
+msgstr "-register\t\tClraigh an gvim seo le haghaidh OLE"
+
+msgid "-unregister\t\tUnregister gvim for OLE"
+msgstr "-unregister\t\tDchlraigh an gvim seo le haghaidh OLE"
+
+msgid "-g\t\t\tRun using GUI (like \"gvim\")"
+msgstr "-g\t\t\tRith agus sid an GUI (mar \"gvim\")"
+
+msgid "-f or --nofork\tForeground: Don't fork when starting GUI"
+msgstr "-f n --nofork\tTulra: N dan forc agus an GUI thos"
+
msgid "-v\t\t\tVi mode (like \"vi\")"
msgstr "-v\t\t\tMd Vi (mar \"vi\")"
-#: ../main.c:2202
msgid "-e\t\t\tEx mode (like \"ex\")"
msgstr "-e\t\t\tMd Ex (mar \"ex\")"
-#: ../main.c:2203
msgid "-E\t\t\tImproved Ex mode"
-msgstr ""
+msgstr "-E\t\t\tMd Ex feabhsaithe"
-#: ../main.c:2204
msgid "-s\t\t\tSilent (batch) mode (only for \"ex\")"
msgstr "-s\t\t\tMd ciin (baiscphrisela) (do \"ex\" amhin)"
-#: ../main.c:2205
msgid "-d\t\t\tDiff mode (like \"vimdiff\")"
msgstr "-d\t\t\tMd diff (mar \"vimdiff\")"
-#: ../main.c:2206
msgid "-y\t\t\tEasy mode (like \"evim\", modeless)"
msgstr "-y\t\t\tMd asca (mar \"evim\", gan mhid)"
-#: ../main.c:2207
msgid "-R\t\t\tReadonly mode (like \"view\")"
msgstr "-R\t\t\tMd inlite amhin (mar \"view\")"
-#: ../main.c:2208
msgid "-Z\t\t\tRestricted mode (like \"rvim\")"
msgstr "-Z\t\t\tMd srianta (mar \"rvim\")"
-#: ../main.c:2209
msgid "-m\t\t\tModifications (writing files) not allowed"
msgstr "-m\t\t\tN cheadatear athruithe (.i. scrobh na gcomhad)"
-#: ../main.c:2210
msgid "-M\t\t\tModifications in text not allowed"
msgstr "-M\t\t\tN cheadatear athruithe sa tacs"
-#: ../main.c:2211
msgid "-b\t\t\tBinary mode"
msgstr "-b\t\t\tMd dnrtha"
-#: ../main.c:2212
msgid "-l\t\t\tLisp mode"
msgstr "-l\t\t\tMd Lisp"
-#: ../main.c:2213
msgid "-C\t\t\tCompatible with Vi: 'compatible'"
msgstr "-C\t\t\tComhoirinach le Vi: 'compatible'"
-#: ../main.c:2214
msgid "-N\t\t\tNot fully Vi compatible: 'nocompatible'"
msgstr "-N\t\t\tN comhoirinaithe le Vi go hiomln: 'nocompatible'"
-#: ../main.c:2215
msgid "-V[N][fname]\t\tBe verbose [level N] [log messages to fname]"
msgstr ""
"-V[N][fname]\t\tB foclach [leibhal N] [logil teachtaireachta i fname]"
-#: ../main.c:2216
msgid "-D\t\t\tDebugging mode"
msgstr "-D\t\t\tMd dfhabhtaithe"
-#: ../main.c:2217
msgid "-n\t\t\tNo swap file, use memory only"
msgstr "-n\t\t\tN hsid comhad babhtla .i. n hsid ach an chuimhne"
-#: ../main.c:2218
msgid "-r\t\t\tList swap files and exit"
msgstr "-r\t\t\tTaispein comhaid bhabhtla agus scoir"
-#: ../main.c:2219
msgid "-r (with file name)\tRecover crashed session"
msgstr "-r (le hainm comhaid)\tAthshlnaigh chliseadh"
-#: ../main.c:2220
msgid "-L\t\t\tSame as -r"
msgstr "-L\t\t\tAr comhbhr le -r"
-#: ../main.c:2221
+msgid "-f\t\t\tDon't use newcli to open window"
+msgstr "-f\t\t\tN hsid newcli chun fuinneog a oscailt"
+
+msgid "-dev <device>\t\tUse <device> for I/O"
+msgstr "-dev <glas>\t\tBain sid as <glas> do I/A"
+
msgid "-A\t\t\tstart in Arabic mode"
msgstr "-A\t\t\ttosaigh sa mhd Araibise"
-#: ../main.c:2222
msgid "-H\t\t\tStart in Hebrew mode"
msgstr "-H\t\t\tTosaigh sa mhd Eabhraise"
-#: ../main.c:2223
msgid "-F\t\t\tStart in Farsi mode"
msgstr "-F\t\t\tTosaigh sa mhd Pheirsise"
-#: ../main.c:2224
msgid "-T <terminal>\tSet terminal type to <terminal>"
msgstr "-T <teirminal>\tSocraigh cinel teirminal"
-#: ../main.c:2225
+msgid "--not-a-term\t\tSkip warning for input/output not being a terminal"
+msgstr "--not-a-term\t\tN bac le rabhadh faoi ionchur/aschur gan a bheith n teirminal"
+
msgid "-u <vimrc>\t\tUse <vimrc> instead of any .vimrc"
msgstr "-u <vimrc>\t\tsid <vimrc> in ionad aon .vimrc"
-#: ../main.c:2226
+msgid "-U <gvimrc>\t\tUse <gvimrc> instead of any .gvimrc"
+msgstr "-U <gvimrc>\t\tBain sid as <gvimrc> in ionad aon .gvimrc"
+
msgid "--noplugin\t\tDon't load plugin scripts"
msgstr "--noplugin\t\tN luchtaigh breisein"
-#: ../main.c:2227
msgid "-p[N]\t\tOpen N tab pages (default: one for each file)"
-msgstr "-p[N]\t\tOscail N leathanach cluaisn (default: ceann do gach comhad)"
+msgstr "-p[N]\t\tOscail N leathanach cluaisn (default: ceann do gach comhad)"
-#: ../main.c:2228
msgid "-o[N]\t\tOpen N windows (default: one for each file)"
msgstr "-o[N]\t\tOscail N fuinneog (ramhshocr: ceann do gach comhad)"
-#: ../main.c:2229
msgid "-O[N]\t\tLike -o but split vertically"
msgstr "-O[N]\t\tMar -o, ach roinn go hingearach"
-#: ../main.c:2230
msgid "+\t\t\tStart at end of file"
msgstr "+\t\t\tTosaigh ag an chomhadchroch"
-#: ../main.c:2231
msgid "+<lnum>\t\tStart at line <lnum>"
msgstr "+<lnum>\t\tTosaigh ar lne <lnum>"
-#: ../main.c:2232
msgid "--cmd <command>\tExecute <command> before loading any vimrc file"
msgstr "--cmd <ord>\tRith <ord> roimh aon chomhad vimrc a lucht"
-#: ../main.c:2233
msgid "-c <command>\t\tExecute <command> after loading the first file"
msgstr "-c <ord>\t\tRith <ord> i ndiaidh lucht an chad chomhad"
-#: ../main.c:2235
msgid "-S <session>\t\tSource file <session> after loading the first file"
msgstr ""
"-S <seisin>\t\tLigh comhad <seisin> i ndiaidh an chad chomhad lamh"
-#: ../main.c:2236
msgid "-s <scriptin>\tRead Normal mode commands from file <scriptin>"
msgstr "-s <script>\tLigh orduithe gnthmhid n chomhad <script>"
-#: ../main.c:2237
msgid "-w <scriptout>\tAppend all typed commands to file <scriptout>"
msgstr ""
"-w <script>\tIarcheangail gach ord iontrilte leis an gcomhad <script>"
-#: ../main.c:2238
msgid "-W <scriptout>\tWrite all typed commands to file <scriptout>"
msgstr "-W <aschur>\tScrobh gach ord clscrofa sa chomhad <aschur>"
-#: ../main.c:2240
+msgid "-x\t\t\tEdit encrypted files"
+msgstr "-x\t\t\tCuir comhaid chriptithe in eagar"
+
+msgid "-display <display>\tConnect vim to this particular X-server"
+msgstr "-display <freastala>\tNasc vim leis an bhfreastala-X seo"
+
+msgid "-X\t\t\tDo not connect to X server"
+msgstr "-X\t\t\tN naisc leis an bhfreastala X"
+
+msgid "--remote <files>\tEdit <files> in a Vim server if possible"
+msgstr ""
+"--remote <comhaid>\tCuir <comhaid> in eagar le freastala Vim ms fidir"
+
+msgid "--remote-silent <files> Same, don't complain if there is no server"
+msgstr ""
+"--remote-silent <comhaid> Mar an gcanna, n dan gearn mura bhfuil "
+"freastala ann"
+
+msgid ""
+"--remote-wait <files> As --remote but wait for files to have been edited"
+msgstr ""
+"--remote-wait <comhaid> Mar --remote ach fan leis na comhaid a bheith "
+"curtha in eagar"
+
+msgid ""
+"--remote-wait-silent <files> Same, don't complain if there is no server"
+msgstr ""
+"--remote-wait-silent <comhaid> Mar an gcanna, n dan gearn mura bhfuil "
+"freastala ann"
+
+msgid ""
+"--remote-tab[-wait][-silent] <files> As --remote but use tab page per file"
+msgstr ""
+"--remote-tab[-wait][-silent] <comhaid> Cosil le --remote ach oscail "
+"cluaisn do gach comhad"
+
+msgid "--remote-send <keys>\tSend <keys> to a Vim server and exit"
+msgstr ""
+"--remote-send <eochracha>\tSeol <eochracha> chuig freastala Vim agus scoir"
+
+msgid "--remote-expr <expr>\tEvaluate <expr> in a Vim server and print result"
+msgstr ""
+"--remote-expr <slonn>\tLuachil <slonn> le freastala Vim agus taispein an "
+"toradh"
+
+msgid "--serverlist\t\tList available Vim server names and exit"
+msgstr "--serverlist\t\tTaispein freastalaithe Vim at ar fil agus scoir"
+
+msgid "--servername <name>\tSend to/become the Vim server <name>"
+msgstr "--servername <ainm>\tSeol chuig/Tigh i do fhreastala Vim <ainm>"
+
msgid "--startuptime <file>\tWrite startup timing messages to <file>"
msgstr ""
"--startuptime <comhad>\tScrobh faisnis maidir le trimhse tosaithe i "
"<comhad>"
-#: ../main.c:2242
msgid "-i <viminfo>\t\tUse <viminfo> instead of .viminfo"
msgstr "-i <viminfo>\t\tsid <viminfo> in ionad .viminfo"
-#: ../main.c:2243
msgid "-h or --help\tPrint Help (this message) and exit"
msgstr "-h n --help\tTaispein an chabhair seo agus scoir"
-#: ../main.c:2244
msgid "--version\t\tPrint version information and exit"
msgstr "--version\t\tTaispein eolas faoin leagan agus scoir"
-#: ../mark.c:676
+msgid ""
+"\n"
+"Arguments recognised by gvim (Motif version):\n"
+msgstr ""
+"\n"
+"Argint ar eolas do gvim (leagan Motif):\n"
+
+msgid ""
+"\n"
+"Arguments recognised by gvim (neXtaw version):\n"
+msgstr ""
+"\n"
+"Argint ar eolas do gvim (leagan neXtaw):\n"
+
+msgid ""
+"\n"
+"Arguments recognised by gvim (Athena version):\n"
+msgstr ""
+"\n"
+"Argint ar eolas do gvim (leagan Athena):\n"
+
+msgid "-display <display>\tRun vim on <display>"
+msgstr "-display <scilen>\tRith vim ar <scilen>"
+
+msgid "-iconic\t\tStart vim iconified"
+msgstr "-iconic\t\tTosaigh vim sa mhd oslaghdaithe"
+
+msgid "-background <color>\tUse <color> for the background (also: -bg)"
+msgstr "-background <dath>\tBain sid as <dath> don chlra (-bg fosta)"
+
+msgid "-foreground <color>\tUse <color> for normal text (also: -fg)"
+msgstr "-foreground <dath>\tsid <dath> le haghaidh gnth-thacs (fosta: -fg)"
+
+msgid "-font <font>\t\tUse <font> for normal text (also: -fn)"
+msgstr "-font <cl>\t\tsid <cl> le haghaidh gnth-thacs (fosta: -fn)"
+
+msgid "-boldfont <font>\tUse <font> for bold text"
+msgstr "-boldfont <cl>\tBain sid as <cl> do chl trom"
+
+msgid "-italicfont <font>\tUse <font> for italic text"
+msgstr "-italicfont <cl>\tsid <cl> le haghaidh tacs iodlach"
+
+msgid "-geometry <geom>\tUse <geom> for initial geometry (also: -geom)"
+msgstr ""
+"-geometry <geoim>\tsid <geoim> le haghaidh na cimseatan tosaigh (fosta: -"
+"geom)"
+
+msgid "-borderwidth <width>\tUse a border width of <width> (also: -bw)"
+msgstr "-borderwidth <leithead>\tSocraigh <leithead> na himlne (-bw fosta)"
+
+msgid "-scrollbarwidth <width> Use a scrollbar width of <width> (also: -sw)"
+msgstr ""
+"-scrollbarwidth <leithead> Socraigh leithead na scrollbharra a bheith "
+"<leithead> (fosta: -sw)"
+
+msgid "-menuheight <height>\tUse a menu bar height of <height> (also: -mh)"
+msgstr ""
+"-menuheight <airde>\tSocraigh airde an bharra roghchlir a bheith <airde> "
+"(fosta: -mh)"
+
+msgid "-reverse\t\tUse reverse video (also: -rv)"
+msgstr "-reverse\t\tsid fs aisiompaithe (fosta: -rv)"
+
+msgid "+reverse\t\tDon't use reverse video (also: +rv)"
+msgstr "+reverse\t\tN hsid fs aisiompaithe (fosta: +rv)"
+
+msgid "-xrm <resource>\tSet the specified resource"
+msgstr "-xrm <acmhainn>\tSocraigh an acmhainn sainithe"
+
+msgid ""
+"\n"
+"Arguments recognised by gvim (GTK+ version):\n"
+msgstr ""
+"\n"
+"Argint ar eolas do gvim (leagan GTK+):\n"
+
+msgid "-display <display>\tRun vim on <display> (also: --display)"
+msgstr "-display <scilen>\tRith vim ar <scilen> (fosta: --display)"
+
+msgid "--role <role>\tSet a unique role to identify the main window"
+msgstr "--role <rl>\tSocraigh rl sainiil chun an phromhfhuinneog a aithint"
+
+msgid "--socketid <xid>\tOpen Vim inside another GTK widget"
+msgstr "--socketid <xid>\tOscail Vim isteach i ngiuirlid GTK eile"
+
+msgid "--echo-wid\t\tMake gvim echo the Window ID on stdout"
+msgstr "--echo-wid\t\tTaispenann gvim aitheantas na fuinneoige ar stdout"
+
+msgid "-P <parent title>\tOpen Vim inside parent application"
+msgstr "-P <mthairchlr>\tOscail Vim isteach sa mhthairchlr"
+
+msgid "--windowid <HWND>\tOpen Vim inside another win32 widget"
+msgstr "--windowid <HWND>\tOscail Vim isteach i ngiuirlid win32 eile"
+
+msgid "No display"
+msgstr "Gan taispeint"
+
+#. Failed to send, abort.
+msgid ": Send failed.\n"
+msgstr ": Theip ar seoladh.\n"
+
+#. Let vim start normally.
+msgid ": Send failed. Trying to execute locally\n"
+msgstr ": Theip ar seoladh. Ag baint triail as go lognta\n"
+
+#, c-format
+msgid "%d of %d edited"
+msgstr "%d as %d danta"
+
+msgid "No display: Send expression failed.\n"
+msgstr "Gan taispeint: Theip ar sheoladh sloinn.\n"
+
+msgid ": Send expression failed.\n"
+msgstr ": Theip ar sheoladh sloinn.\n"
+
msgid "No marks set"
msgstr "Nl aon mharc socraithe"
-#: ../mark.c:678
#, c-format
msgid "E283: No marks matching \"%s\""
msgstr "E283: Nl aon mharc comhoirinaithe le \"%s\""
#. Highlight title
-#: ../mark.c:687
msgid ""
"\n"
"mark line col file/text"
@@ -3615,7 +3309,6 @@ msgstr ""
"marc lne col comhad/tacs"
#. Highlight title
-#: ../mark.c:789
msgid ""
"\n"
" jump line col file/text"
@@ -3624,7 +3317,6 @@ msgstr ""
" lim lne col comhad/tacs"
#. Highlight title
-#: ../mark.c:831
msgid ""
"\n"
"change line col text"
@@ -3632,7 +3324,6 @@ msgstr ""
"\n"
"athr lne col tacs"
-#: ../mark.c:1238
msgid ""
"\n"
"# File marks:\n"
@@ -3641,7 +3332,6 @@ msgstr ""
"# Marcanna comhaid:\n"
#. Write the jumplist with -'
-#: ../mark.c:1271
msgid ""
"\n"
"# Jumplist (newest first):\n"
@@ -3649,7 +3339,6 @@ msgstr ""
"\n"
"# Liosta limeanna (is nua i dtosach):\n"
-#: ../mark.c:1352
msgid ""
"\n"
"# History of marks within files (newest to oldest):\n"
@@ -3657,86 +3346,90 @@ msgstr ""
"\n"
"# Stair na marcanna i gcomhaid (is nua ar dts):\n"
-#: ../mark.c:1431
msgid "Missing '>'"
msgstr "`>' ar iarraidh"
-#: ../memfile.c:426
+msgid "E543: Not a valid codepage"
+msgstr "E543: N cdleathanach bail "
+
+msgid "E284: Cannot set IC values"
+msgstr "E284: N fidir luachanna IC a shocr"
+
+msgid "E285: Failed to create input context"
+msgstr "E285: Theip ar chruth comhthacs ionchuir"
+
+msgid "E286: Failed to open input method"
+msgstr "E286: Theip ar oscailt mhodh ionchuir"
+
+msgid "E287: Warning: Could not set destroy callback to IM"
+msgstr "E287: Rabhadh: Norbh fhidir aisghlaoch lirscriosta a shocr le IM"
+
+msgid "E288: input method doesn't support any style"
+msgstr "E288: N thacaonn an modh ionchuir aon stl"
+
+msgid "E289: input method doesn't support my preedit type"
+msgstr "E289: n thacaonn an modh ionchuir mo chinel ramheagair"
+
msgid "E293: block was not locked"
msgstr "E293: n raibh an bloc faoi ghlas"
-#: ../memfile.c:799
msgid "E294: Seek error in swap file read"
msgstr "E294: Earrid chuardaigh agus comhad babhtla lamh"
-#: ../memfile.c:803
msgid "E295: Read error in swap file"
msgstr "E295: Earrid sa lamh i gcomhad babhtla"
-#: ../memfile.c:849
msgid "E296: Seek error in swap file write"
msgstr "E296: Earrid chuardaigh agus comhad babhtla scrobh"
-#: ../memfile.c:865
msgid "E297: Write error in swap file"
msgstr "E297: Earrid sa scrobh i gcomhad babhtla"
-#: ../memfile.c:1036
msgid "E300: Swap file already exists (symlink attack?)"
msgstr "E300: T comhad babhtla ann cheana (ionsa le naisc shiombalacha?)"
-#: ../memline.c:318
msgid "E298: Didn't get block nr 0?"
msgstr "E298: N bhfuarthas bloc 0?"
-#: ../memline.c:361
msgid "E298: Didn't get block nr 1?"
msgstr "E298: N bhfuarthas bloc a haon?"
-#: ../memline.c:377
msgid "E298: Didn't get block nr 2?"
msgstr "E298: N bhfuarthas bloc a d?"
+msgid "E843: Error while updating swap file crypt"
+msgstr "E843: Earrid agus cripti an chomhaid bhabhtla nuashonr"
+
#. could not (re)open the swap file, what can we do????
-#: ../memline.c:465
msgid "E301: Oops, lost the swap file!!!"
msgstr "E301: ps, cailleadh an comhad babhtla!!!"
-#: ../memline.c:477
msgid "E302: Could not rename swap file"
msgstr "E302: Norbh fhidir an comhad babhtla a athainmni"
-#: ../memline.c:554
#, c-format
msgid "E303: Unable to open swap file for \"%s\", recovery impossible"
msgstr ""
"E303: N fidir comhad babhtla le haghaidh \"%s\" a oscailt, n fidir "
"athshln"
-#: ../memline.c:666
msgid "E304: ml_upd_block0(): Didn't get block 0??"
msgstr "E304: ml_upd_block0(): N bhfuarthas bloc 0??"
-#. no swap files found
-#: ../memline.c:830
#, c-format
msgid "E305: No swap file found for %s"
msgstr "E305: Nor aimsodh comhad babhtla le haghaidh %s"
-#: ../memline.c:839
msgid "Enter number of swap file to use (0 to quit): "
msgstr "Iontril uimhir an chomhaid babhtla le hsid (0 = scoir): "
-#: ../memline.c:879
#, c-format
msgid "E306: Cannot open %s"
msgstr "E306: N fidir %s a oscailt"
-#: ../memline.c:897
msgid "Unable to read block 0 from "
msgstr "N fidir bloc 0 a lamh "
-#: ../memline.c:900
msgid ""
"\n"
"Maybe no changes were made or Vim did not update the swap file."
@@ -3745,28 +3438,22 @@ msgstr ""
"B'fhidir nach raibh aon athr dhanamh, n t an comhad\n"
"babhtla as dta."
-#: ../memline.c:909
msgid " cannot be used with this version of Vim.\n"
msgstr " nl ar fil leis an leagan seo de Vim.\n"
-#: ../memline.c:911
msgid "Use Vim version 3.0.\n"
msgstr "Bain sid as Vim, leagan 3.0.\n"
-#: ../memline.c:916
#, c-format
msgid "E307: %s does not look like a Vim swap file"
msgstr "E307: Nl %s cosil le comhad babhtla Vim"
-#: ../memline.c:922
msgid " cannot be used on this computer.\n"
msgstr " nl ar fil ar an romhaire seo.\n"
-#: ../memline.c:924
msgid "The file was created on "
msgstr "Cruthaodh an comhad seo ar "
-#: ../memline.c:928
msgid ""
",\n"
"or the file has been damaged."
@@ -3774,86 +3461,107 @@ msgstr ""
",\n"
"is sin n rinneadh dochar don chomhad."
-#: ../memline.c:945
+#, c-format
+msgid ""
+"E833: %s is encrypted and this version of Vim does not support encryption"
+msgstr ""
+"E833: t %s criptithe agus n thacaonn an leagan seo de Vim le cripti"
+
msgid " has been damaged (page size is smaller than minimum value).\n"
msgstr " rinneadh dochar d (mid an leathanaigh nos l n an osmhid).\n"
-#: ../memline.c:974
#, c-format
msgid "Using swap file \"%s\""
msgstr "Comhad babhtla \"%s\" sid"
-#: ../memline.c:980
#, c-format
msgid "Original file \"%s\""
msgstr "Comhad bunsach \"%s\""
-#: ../memline.c:995
msgid "E308: Warning: Original file may have been changed"
msgstr "E308: Rabhadh: Is fidir gur athraodh an comhad bunsach"
-#: ../memline.c:1061
+#, c-format
+msgid "Swap file is encrypted: \"%s\""
+msgstr "T an comhad babhtla criptithe: \"%s\""
+
+msgid ""
+"\n"
+"If you entered a new crypt key but did not write the text file,"
+msgstr ""
+"\n"
+"M chuir t eochair nua chriptichin isteach, ach mura scrobh t an "
+"tacschomhad,"
+
+msgid ""
+"\n"
+"enter the new crypt key."
+msgstr ""
+"\n"
+"cuir isteach an eochair nua chriptichin."
+
+msgid ""
+"\n"
+"If you wrote the text file after changing the crypt key press enter"
+msgstr ""
+"\n"
+"M scrobh t an tacschomhad tar is duit an eochair chriptichn a athr, "
+"brigh Enter"
+
+msgid ""
+"\n"
+"to use the same key for text file and swap file"
+msgstr ""
+"\n"
+"chun an eochair channa a sid don tacschomhad agus an comhad babhtla"
+
#, c-format
msgid "E309: Unable to read block 1 from %s"
msgstr "E309: N fidir bloc a haon a lamh %s"
-#: ../memline.c:1065
msgid "???MANY LINES MISSING"
msgstr "???GO LEOR LNTE AR IARRAIDH"
-#: ../memline.c:1076
msgid "???LINE COUNT WRONG"
msgstr "???LON MCHEART NA LNTE"
-#: ../memline.c:1082
msgid "???EMPTY BLOCK"
msgstr "???BLOC FOLAMH"
-#: ../memline.c:1103
msgid "???LINES MISSING"
msgstr "???LNTE AR IARRAIDH"
-#: ../memline.c:1128
#, c-format
msgid "E310: Block 1 ID wrong (%s not a .swp file?)"
msgstr "E310: Aitheantas mcheart ar bhloc a haon (nl %s ina chomhad .swp?)"
-#: ../memline.c:1133
msgid "???BLOCK MISSING"
msgstr "???BLOC AR IARRAIDH"
-#: ../memline.c:1147
msgid "??? from here until ???END lines may be messed up"
msgstr "??? is fidir go ndearnadh praiseach de lnte anseo go ???END"
-#: ../memline.c:1164
msgid "??? from here until ???END lines may have been inserted/deleted"
msgstr "??? is fidir go bhfuil lnte ionsite/scriosta anseo go ???END"
-#: ../memline.c:1181
msgid "???END"
msgstr "???DEIREADH"
-#: ../memline.c:1238
msgid "E311: Recovery Interrupted"
msgstr "E311: Idirbhriseadh an t-athshln"
-#: ../memline.c:1243
msgid ""
"E312: Errors detected while recovering; look for lines starting with ???"
msgstr ""
"E312: Braitheadh earrid le linn athshlnaithe; fach ar na lnte le ??? ar "
"tosach"
-#: ../memline.c:1245
msgid "See \":help E312\" for more information."
msgstr "Bain triail as \":help E312\" chun tuilleadh eolais a fhil."
-#: ../memline.c:1249
msgid "Recovery completed. You should check if everything is OK."
msgstr "Athshlnaodh. Ba chir duit gach rud a sheiceil uair amhin eile."
-#: ../memline.c:1251
msgid ""
"\n"
"(You might want to write out this file under another name\n"
@@ -3861,73 +3569,61 @@ msgstr ""
"\n"
"(B'fhidir gur mian leat an comhad seo a shbhil de rir ainm eile\n"
-#: ../memline.c:1252
-#, fuzzy
msgid "and run diff with the original file to check for changes)"
-msgstr ""
-"agus dan comparid leis an chomhad bhunsach (m.sh. le `diff') chun "
-"athruithe a scrd)\n"
+msgstr "agus dan comparid leis an mbunchomhad chun athruithe a lorg)"
-#: ../memline.c:1254
msgid "Recovery completed. Buffer contents equals file contents."
msgstr ""
+"Athshln crochnaithe. Is ionann an t-bhar sa mhaoln agus an t-bhar sa "
+"chomhad."
-#: ../memline.c:1255
-#, fuzzy
msgid ""
"\n"
"You may want to delete the .swp file now.\n"
"\n"
msgstr ""
-"Scrios an comhad .swp tar is sin.\n"
"\n"
+"B'fhidir gur mhaith leat an comhad .swp a scriosadh anois.\n"
+"\n"
+
+msgid "Using crypt key from swap file for the text file.\n"
+msgstr ""
+"Eochair chriptichin n gcomhad babhtla hsid ar an tacschomhad.\n"
#. use msg() to start the scrolling properly
-#: ../memline.c:1327
msgid "Swap files found:"
msgstr "Comhaid bhabhtla aimsithe:"
-#: ../memline.c:1446
msgid " In current directory:\n"
msgstr " Sa chomhadlann reatha:\n"
-#: ../memline.c:1448
msgid " Using specified name:\n"
msgstr " Ag baint sid as ainm socraithe:\n"
-#: ../memline.c:1450
msgid " In directory "
msgstr " Sa chomhadlann "
-#: ../memline.c:1465
msgid " -- none --\n"
msgstr " -- neamhn --\n"
-#: ../memline.c:1527
msgid " owned by: "
msgstr " inir: "
-#: ../memline.c:1529
msgid " dated: "
msgstr " dtaithe: "
-#: ../memline.c:1532 ../memline.c:3231
msgid " dated: "
msgstr " dtaithe: "
-#: ../memline.c:1548
msgid " [from Vim version 3.0]"
msgstr " [ leagan 3.0 Vim]"
-#: ../memline.c:1550
msgid " [does not look like a Vim swap file]"
msgstr " [n cosil le comhad babhtla Vim]"
-#: ../memline.c:1552
msgid " file name: "
msgstr " ainm comhaid: "
-#: ../memline.c:1558
msgid ""
"\n"
" modified: "
@@ -3935,15 +3631,12 @@ msgstr ""
"\n"
" mionathraithe: "
-#: ../memline.c:1559
msgid "YES"
msgstr "IS SEA"
-#: ../memline.c:1559
msgid "no"
msgstr "n hea"
-#: ../memline.c:1562
msgid ""
"\n"
" user name: "
@@ -3951,11 +3644,9 @@ msgstr ""
"\n"
" sideoir: "
-#: ../memline.c:1568
msgid " host name: "
msgstr " ainm an stromhaire: "
-#: ../memline.c:1570
msgid ""
"\n"
" host name: "
@@ -3963,7 +3654,6 @@ msgstr ""
"\n"
" stainm: "
-#: ../memline.c:1575
msgid ""
"\n"
" process ID: "
@@ -3971,11 +3661,16 @@ msgstr ""
"\n"
" PID: "
-#: ../memline.c:1579
msgid " (still running)"
msgstr " (ag rith fs)"
-#: ../memline.c:1586
+msgid ""
+"\n"
+" [not usable with this version of Vim]"
+msgstr ""
+"\n"
+" [n insidte leis an leagan seo Vim]"
+
msgid ""
"\n"
" [not usable on this computer]"
@@ -3983,97 +3678,75 @@ msgstr ""
"\n"
" [n insidte ar an romhaire seo]"
-#: ../memline.c:1590
msgid " [cannot be read]"
msgstr " [n fidir a lamh]"
-#: ../memline.c:1593
msgid " [cannot be opened]"
msgstr " [n fidir oscailt]"
-#: ../memline.c:1698
msgid "E313: Cannot preserve, there is no swap file"
msgstr "E313: N fidir a chaomhn, nl aon chomhad babhtla ann"
-#: ../memline.c:1747
msgid "File preserved"
msgstr "Caomhnaodh an comhad"
-#: ../memline.c:1749
msgid "E314: Preserve failed"
msgstr "E314: Theip ar chaomhn"
-#: ../memline.c:1819
#, c-format
-msgid "E315: ml_get: invalid lnum: %<PRId64>"
-msgstr "E315: ml_get: lnum neamhbhail: %<PRId64>"
+msgid "E315: ml_get: invalid lnum: %ld"
+msgstr "E315: ml_get: lnum neamhbhail: %ld"
-#: ../memline.c:1851
#, c-format
-msgid "E316: ml_get: cannot find line %<PRId64>"
-msgstr "E316: ml_get: lne %<PRId64> gan aimsi"
+msgid "E316: ml_get: cannot find line %ld"
+msgstr "E316: ml_get: lne %ld gan aimsi"
-#: ../memline.c:2236
msgid "E317: pointer block id wrong 3"
msgstr "E317: aitheantas mcheart ar an mbloc pointeora 3"
-#: ../memline.c:2311
msgid "stack_idx should be 0"
msgstr "ba chir do stack_idx a bheith 0"
-#: ../memline.c:2369
msgid "E318: Updated too many blocks?"
msgstr "E318: An iomarca bloic nuashonraithe?"
-#: ../memline.c:2511
msgid "E317: pointer block id wrong 4"
msgstr "E317: aitheantas mcheart ar an mbloc pointeora 4"
-#: ../memline.c:2536
msgid "deleted block 1?"
msgstr "bloc a haon scriosta?"
-#: ../memline.c:2707
#, c-format
-msgid "E320: Cannot find line %<PRId64>"
-msgstr "E320: Lne %<PRId64> gan aimsi"
+msgid "E320: Cannot find line %ld"
+msgstr "E320: Lne %ld gan aimsi"
-#: ../memline.c:2916
msgid "E317: pointer block id wrong"
msgstr "E317: aitheantas mcheart ar an mbloc pointeora"
-#: ../memline.c:2930
msgid "pe_line_count is zero"
msgstr "is 0 pe_line_count\""
-#: ../memline.c:2955
#, c-format
-msgid "E322: line number out of range: %<PRId64> past the end"
-msgstr "E322: lne-uimhir as raon: %<PRId64> thar dheireadh"
+msgid "E322: line number out of range: %ld past the end"
+msgstr "E322: lne-uimhir as raon: %ld thar dheireadh"
-#: ../memline.c:2959
#, c-format
-msgid "E323: line count wrong in block %<PRId64>"
-msgstr "E323: lon mcheart na lnte i mbloc %<PRId64>"
+msgid "E323: line count wrong in block %ld"
+msgstr "E323: lon mcheart na lnte i mbloc %ld"
-#: ../memline.c:2999
msgid "Stack size increases"
msgstr "Madaonn an chruach"
-#: ../memline.c:3038
msgid "E317: pointer block id wrong 2"
msgstr "E317: aitheantas mcheart ar an mbloc pointeora 2"
-#: ../memline.c:3070
#, c-format
msgid "E773: Symlink loop for \"%s\""
msgstr "E773: Ciogal i naisc shiombalacha le haghaidh \"%s\""
-#: ../memline.c:3221
msgid "E325: ATTENTION"
msgstr "E325: AIRE"
-#: ../memline.c:3222
msgid ""
"\n"
"Found a swap file by the name \""
@@ -4081,45 +3754,31 @@ msgstr ""
"\n"
"Fuarthas comhad babhtla darbh ainm \""
-#: ../memline.c:3226
msgid "While opening file \""
msgstr "Agus an comhad seo oscailt: \""
-#: ../memline.c:3239
msgid " NEWER than swap file!\n"
msgstr " NOS NUA n comhad babhtla!\n"
-#: ../memline.c:3244
-#, fuzzy
+#. Some of these messages are long to allow translation to
+#. * other languages.
msgid ""
"\n"
"(1) Another program may be editing the same file. If this is the case,\n"
" be careful not to end up with two different instances of the same\n"
-" file when making changes."
+" file when making changes. Quit, or continue with caution.\n"
msgstr ""
"\n"
-"(1) Is fidir go bhfuil clr eile ag rochtain an comhad seo.\n"
-" Ms ea, b cramach nach bhfuil dh leagan den chomhad\n"
-" canna.\n"
-
-#: ../memline.c:3245
-#, fuzzy
-msgid " Quit, or continue with caution.\n"
-msgstr " Scoir, n lean ar aghaidh go hairdeallach.\n"
+"(1) Seans go bhfuil an comhad seo chur in eagar ag clr eile. M t,\n"
+" b cramach nach bhfuil dh leagan den chomhad canna agat nuair\n"
+" a athraonn t . Scoir anois, n lean ort go faichilleach.\n"
-#: ../memline.c:3246
-#, fuzzy
msgid "(2) An edit session for this file crashed.\n"
-msgstr ""
-"\n"
-"(2) Rinne Vim thobscor agus an comhad seo\n"
-" idir lmha agat.\n"
+msgstr "(2) Thuairteil seisin eagarthireachta.\n"
-#: ../memline.c:3247
msgid " If this is the case, use \":recover\" or \"vim -r "
msgstr " Ms amhlaidh, bain sid as \":recover\" n \"vim -r "
-#: ../memline.c:3249
msgid ""
"\"\n"
" to recover the changes (see \":help recovery\").\n"
@@ -4127,11 +3786,9 @@ msgstr ""
"\"\n"
" chun na hathruithe a fhil ar ais (fach \":help recovery\").\n"
-#: ../memline.c:3250
msgid " If you did this already, delete the swap file \""
msgstr " M t s seo danta cheana agat, scrios an comhad babhtla \""
-#: ../memline.c:3252
msgid ""
"\"\n"
" to avoid this message.\n"
@@ -4139,23 +3796,18 @@ msgstr ""
"\"\n"
" chun an teachtaireacht seo a sheachaint.\n"
-#: ../memline.c:3450 ../memline.c:3452
msgid "Swap file \""
msgstr "Comhad babhtla \""
-#: ../memline.c:3451 ../memline.c:3455
msgid "\" already exists!"
msgstr "\" t s ann cheana!"
-#: ../memline.c:3457
msgid "VIM - ATTENTION"
msgstr "VIM - AIRE"
-#: ../memline.c:3459
msgid "Swap file already exists!"
msgstr "T comhad babhtla ann cheana!"
-#: ../memline.c:3464
msgid ""
"&Open Read-Only\n"
"&Edit anyway\n"
@@ -4169,7 +3821,6 @@ msgstr ""
"&Scoir\n"
"&Tobscoir"
-#: ../memline.c:3467
msgid ""
"&Open Read-Only\n"
"&Edit anyway\n"
@@ -4185,58 +3836,36 @@ msgstr ""
"&Scoir\n"
"&Tobscoir"
-#.
-#. * Change the ".swp" extension to find another file that can be used.
-#. * First decrement the last char: ".swo", ".swn", etc.
-#. * If that still isn't enough decrement the last but one char: ".svz"
-#. * Can happen when editing many "No Name" buffers.
-#.
-#. ".s?a"
-#. ".saa": tried enough, give up
-#: ../memline.c:3528
msgid "E326: Too many swap files found"
msgstr "E326: Aimsodh an iomarca comhaid bhabhtla"
-#: ../memory.c:227
-#, c-format
-msgid "E342: Out of memory! (allocating %<PRIu64> bytes)"
-msgstr "E342: Cuimhne dithe! (%<PRIu64> beart ndileadh)"
-
-#: ../menu.c:62
msgid "E327: Part of menu-item path is not sub-menu"
msgstr "E327: N fo-roghchlr pirt de chonair roghchlir"
-#: ../menu.c:63
msgid "E328: Menu only exists in another mode"
msgstr "E328: Nl an roghchlr ar fil sa mhd seo"
-#: ../menu.c:64
#, c-format
msgid "E329: No menu \"%s\""
msgstr "E329: Nl aon roghchlr darbh ainm \"%s\""
#. Only a mnemonic or accelerator is not valid.
-#: ../menu.c:329
msgid "E792: Empty menu name"
msgstr "E792: Ainm folamh ar an roghchlr"
-#: ../menu.c:340
msgid "E330: Menu path must not lead to a sub-menu"
msgstr "E330: N cheadatear conair roghchlir a threoraonn go fo-roghchlr"
-#: ../menu.c:365
msgid "E331: Must not add menu items directly to menu bar"
msgstr ""
"E331: N cheadatear mreanna roghchlir a chur le barra roghchlir go "
"dreach"
-#: ../menu.c:370
msgid "E332: Separator cannot be part of a menu path"
msgstr "E332: N cheadatear deighilteoir mar phirt de chonair roghchlir"
#. Now we have found the matching menu, and we list the mappings
#. Highlight title
-#: ../menu.c:762
msgid ""
"\n"
"--- Menus ---"
@@ -4244,69 +3873,61 @@ msgstr ""
"\n"
"--- Roghchlir ---"
-#: ../menu.c:1313
+msgid "Tear off this menu"
+msgstr "Bain an roghchlr seo"
+
msgid "E333: Menu path must lead to a menu item"
msgstr "E333: N mr conair roghchlir a threor chun mr roghchlir"
-#: ../menu.c:1330
#, c-format
msgid "E334: Menu not found: %s"
msgstr "E334: Roghchlr gan aimsi: %s"
-#: ../menu.c:1396
#, c-format
msgid "E335: Menu not defined for %s mode"
msgstr "E335: Nl an roghchlr ar fil sa mhd %s"
-#: ../menu.c:1426
msgid "E336: Menu path must lead to a sub-menu"
msgstr "E336: N mr conair roghchlir a threor chun fo-roghchlr"
-#: ../menu.c:1447
msgid "E337: Menu not found - check menu names"
msgstr "E337: Roghchlr gan aimsi - deimhnigh ainmneacha na roghchlr"
-#: ../message.c:423
#, c-format
msgid "Error detected while processing %s:"
msgstr "Earrid agus %s phriseil:"
-#: ../message.c:445
#, c-format
msgid "line %4ld:"
msgstr "lne %4ld:"
-#: ../message.c:617
#, c-format
msgid "E354: Invalid register name: '%s'"
msgstr "E354: Ainm neamhbhail tabhaill: '%s'"
-#: ../message.c:986
+msgid "Messages maintainer: Bram Moolenaar <Bram@vim.org>"
+msgstr ""
+"Cothaitheoir na dteachtaireachta: Kevin P. Scannell <scannell@slu.edu>"
+
msgid "Interrupt: "
msgstr "Idirbhriseadh: "
-#: ../message.c:988
msgid "Press ENTER or type command to continue"
msgstr "Brigh ENTER n iontril ord le leanint"
-#: ../message.c:1843
#, c-format
-msgid "%s line %<PRId64>"
-msgstr "%s lne %<PRId64>"
+msgid "%s line %ld"
+msgstr "%s lne %ld"
-#: ../message.c:2392
msgid "-- More --"
msgstr "-- Tuilleadh --"
-#: ../message.c:2398
msgid " SPACE/d/j: screen/page/line down, b/u/k: up, q: quit "
msgstr " SPS/d/j: scilen/leathanach/lne sos, b/u/k: suas, q: scoir "
-#: ../message.c:3021 ../message.c:3031
msgid "Question"
msgstr "Ceist"
-#: ../message.c:3023
msgid ""
"&Yes\n"
"&No"
@@ -4314,17 +3935,6 @@ msgstr ""
"&T\n"
"&Nl"
-#: ../message.c:3033
-msgid ""
-"&Yes\n"
-"&No\n"
-"&Cancel"
-msgstr ""
-"&T\n"
-"&Nl\n"
-"&Cealaigh"
-
-#: ../message.c:3045
msgid ""
"&Yes\n"
"&No\n"
@@ -4338,180 +3948,251 @@ msgstr ""
"&Dealaigh Uile\n"
"&Cealaigh"
-#: ../message.c:3058
+msgid "Select Directory dialog"
+msgstr "Dialg `Roghnaigh Comhadlann'"
+
+msgid "Save File dialog"
+msgstr "Dialg `Sbhil Comhad'"
+
+msgid "Open File dialog"
+msgstr "Dialg `Oscail Comhad'"
+
+#. TODO: non-GUI file selector here
+msgid "E338: Sorry, no file browser in console mode"
+msgstr "E338: Nl brabhsla comhaid ar fil sa mhd consil"
+
msgid "E766: Insufficient arguments for printf()"
msgstr "E766: Easpa argint d'fheidhm printf()"
-#: ../message.c:3119
msgid "E807: Expected Float argument for printf()"
msgstr "E807: Bhothas ag sil le hargint Snmhphointe d'fheidhm printf()"
-#: ../message.c:3873
msgid "E767: Too many arguments to printf()"
msgstr "E767: An iomarca argint d'fheidhm printf()"
-#: ../misc1.c:2256
msgid "W10: Warning: Changing a readonly file"
msgstr "W10: Rabhadh: Comhad inlite amhin athr"
-#: ../misc1.c:2537
msgid "Type number and <Enter> or click with mouse (empty cancels): "
msgstr ""
"Clscrobh uimhir agus <Enter> n cliceil leis an luch (fg folamh le "
"ceal): "
-#: ../misc1.c:2539
msgid "Type number and <Enter> (empty cancels): "
msgstr "Clscrobh uimhir agus <Enter> (fg folamh le ceal): "
-#: ../misc1.c:2585
msgid "1 more line"
msgstr "1 lne eile"
-#: ../misc1.c:2588
msgid "1 line less"
msgstr "1 lne nos l"
-#: ../misc1.c:2593
#, c-format
-msgid "%<PRId64> more lines"
-msgstr "%<PRId64> lne eile"
+msgid "%ld more lines"
+msgstr "%ld lne eile"
-#: ../misc1.c:2596
#, c-format
-msgid "%<PRId64> fewer lines"
-msgstr "%<PRId64> lne nos l"
+msgid "%ld fewer lines"
+msgstr "%ld lne nos l"
-#: ../misc1.c:2599
msgid " (Interrupted)"
msgstr " (Idirbhriste)"
-#: ../misc1.c:2635
msgid "Beep!"
msgstr "Bp!"
-#: ../misc2.c:738
+msgid "ERROR: "
+msgstr "EARRID: "
+
+#, c-format
+msgid ""
+"\n"
+"[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu\n"
+msgstr ""
+"\n"
+"[beart] iomln dilte-saor %lu-%lu, in sid %lu, buaic %lu\n"
+
+#, c-format
+msgid ""
+"[calls] total re/malloc()'s %lu, total free()'s %lu\n"
+"\n"
+msgstr ""
+"[glaonna] re/malloc(): %lu, free(): %lu\n"
+"\n"
+
+msgid "E340: Line is becoming too long"
+msgstr "E340: T an lne ag ir rfhada"
+
+#, c-format
+msgid "E341: Internal error: lalloc(%ld, )"
+msgstr "E341: Earrid inmhenach: lalloc(%ld, )"
+
+#, c-format
+msgid "E342: Out of memory! (allocating %lu bytes)"
+msgstr "E342: Cuimhne dithe! (%lu beart ndileadh)"
+
#, c-format
msgid "Calling shell to execute: \"%s\""
msgstr "An t-ord seo rith leis an bhlaosc: \"%s\""
-#: ../normal.c:183
+msgid "E545: Missing colon"
+msgstr "E545: Idirstad ar iarraidh"
+
+msgid "E546: Illegal mode"
+msgstr "E546: Md neamhcheadaithe"
+
+msgid "E547: Illegal mouseshape"
+msgstr "E547: Cruth neamhcheadaithe luiche"
+
+msgid "E548: digit expected"
+msgstr "E548: ag sil le digit"
+
+msgid "E549: Illegal percentage"
+msgstr "E549: Catadn neamhcheadaithe"
+
+msgid "E854: path too long for completion"
+msgstr "E854: conair rfhada le comhln"
+
+#, c-format
+msgid ""
+"E343: Invalid path: '**[number]' must be at the end of the path or be "
+"followed by '%s'."
+msgstr ""
+"E343: Conair neamhbhail: n mr '**[uimhir]' a bheith ag deireadh na "
+"conaire, n le '%s' ina dhiaidh."
+
+#, c-format
+msgid "E344: Can't find directory \"%s\" in cdpath"
+msgstr "E344: N fidir comhadlann \"%s\" a aimsi sa cdpath"
+
+#, c-format
+msgid "E345: Can't find file \"%s\" in path"
+msgstr "E345: N fidir comhad \"%s\" a aimsi sa chonair"
+
+#, c-format
+msgid "E346: No more directory \"%s\" found in cdpath"
+msgstr "E346: Nl comhadlann \"%s\" sa cdpath a thuilleadh"
+
+#, c-format
+msgid "E347: No more file \"%s\" found in path"
+msgstr "E347: Nl comhad \"%s\" sa chonair a thuilleadh"
+
+#, c-format
+msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
+msgstr "E668: Md mcheart rochtana ar an chomhad eolas naisc NetBeans: \"%s\""
+
+#, c-format
+msgid "E658: NetBeans connection lost for buffer %ld"
+msgstr "E658: Cailleadh nasc NetBeans le haghaidh maolin %ld"
+
+msgid "E838: netbeans is not supported with this GUI"
+msgstr "E838: N thacatear le netbeans sa GUI seo"
+
+msgid "E511: netbeans already connected"
+msgstr "E511: T netbeans ceangailte cheana"
+
+#, c-format
+msgid "E505: %s is read-only (add ! to override)"
+msgstr "E505: T %s inlite amhin (cuir ! leis chun sr)"
+
msgid "E349: No identifier under cursor"
msgstr "E349: Nl aitheantir faoin chrsir"
-#: ../normal.c:1866
msgid "E774: 'operatorfunc' is empty"
msgstr "E774: 'operatorfunc' folamh"
-#: ../normal.c:2637
+msgid "E775: Eval feature not available"
+msgstr "E775: Nl an ghn Eval le fil"
+
msgid "Warning: terminal cannot highlight"
msgstr "Rabhadh: n fidir leis an teirminal aibhsi"
-#: ../normal.c:2807
msgid "E348: No string under cursor"
msgstr "E348: Nl teaghrn faoin chrsir"
-#: ../normal.c:3937
msgid "E352: Cannot erase folds with current 'foldmethod'"
msgstr "E352: N fidir fillteacha a lirscriosadh leis an 'foldmethod' reatha"
-#: ../normal.c:5897
msgid "E664: changelist is empty"
msgstr "E664: t liosta na n-athruithe folamh"
-#: ../normal.c:5899
msgid "E662: At start of changelist"
msgstr "E662: Ag tosach liosta na n-athruithe"
-#: ../normal.c:5901
msgid "E663: At end of changelist"
msgstr "E663: Ag deireadh liosta na n-athruithe"
-#: ../normal.c:7053
-msgid "Type :quit<Enter> to exit Nvim"
+msgid "Type :quit<Enter> to exit Vim"
msgstr "Clscrobh :quit<Enter> chun Vim a scor"
# ouch - English -ed ?
-#: ../ops.c:248
#, c-format
msgid "1 line %sed 1 time"
msgstr "1 lne %s uair amhin"
# ouch - English -ed ?
-#: ../ops.c:250
#, c-format
msgid "1 line %sed %d times"
msgstr "1 lne %s %d uair"
# ouch - English -ed ?
-#: ../ops.c:253
#, c-format
-msgid "%<PRId64> lines %sed 1 time"
-msgstr "%<PRId64> lne %sed uair amhin"
+msgid "%ld lines %sed 1 time"
+msgstr "%ld lne %sed uair amhin"
# ouch - English -ed ?
-#: ../ops.c:256
#, c-format
-msgid "%<PRId64> lines %sed %d times"
-msgstr "%<PRId64> lne %sed %d uair"
+msgid "%ld lines %sed %d times"
+msgstr "%ld lne %sed %d uair"
-#: ../ops.c:592
#, c-format
-msgid "%<PRId64> lines to indent... "
-msgstr "%<PRId64> lne le heang... "
+msgid "%ld lines to indent... "
+msgstr "%ld lne le heang... "
-#: ../ops.c:634
msgid "1 line indented "
msgstr "eangaodh lne amhin "
-#: ../ops.c:636
#, c-format
-msgid "%<PRId64> lines indented "
-msgstr "%<PRId64> lne eangaithe "
+msgid "%ld lines indented "
+msgstr "%ld lne eangaithe "
-#: ../ops.c:938
msgid "E748: No previously used register"
msgstr "E748: Nl aon tabhall sidte roimhe seo"
#. must display the prompt
-#: ../ops.c:1433
msgid "cannot yank; delete anyway"
msgstr "n fidir a sracadh; scrios mar sin fin"
-#: ../ops.c:1929
msgid "1 line changed"
msgstr "athraodh lne amhin"
-#: ../ops.c:1931
#, c-format
-msgid "%<PRId64> lines changed"
-msgstr "athraodh %<PRId64> lne"
+msgid "%ld lines changed"
+msgstr "athraodh %ld lne"
+
+#, c-format
+msgid "freeing %ld lines"
+msgstr "%ld lne saoradh"
-#: ../ops.c:2521
msgid "block of 1 line yanked"
msgstr "sracadh bloc de lne amhin"
-#: ../ops.c:2523
msgid "1 line yanked"
msgstr "sracadh lne amhin"
-#: ../ops.c:2525
#, c-format
-msgid "block of %<PRId64> lines yanked"
-msgstr "sracadh bloc de %<PRId64> lne"
+msgid "block of %ld lines yanked"
+msgstr "sracadh bloc de %ld lne"
-#: ../ops.c:2528
#, c-format
-msgid "%<PRId64> lines yanked"
-msgstr "%<PRId64> lne sractha"
+msgid "%ld lines yanked"
+msgstr "%ld lne sractha"
-#: ../ops.c:2710
#, c-format
msgid "E353: Nothing in register %s"
msgstr "E353: Tabhall folamh %s"
#. Highlight title
-#: ../ops.c:3185
msgid ""
"\n"
"--- Registers ---"
@@ -4519,11 +4200,9 @@ msgstr ""
"\n"
"--- Tabhaill ---"
-#: ../ops.c:4455
msgid "Illegal register name"
msgstr "Ainm neamhcheadaithe tabhaill"
-#: ../ops.c:4533
msgid ""
"\n"
"# Registers:\n"
@@ -4531,185 +4210,175 @@ msgstr ""
"\n"
"# Tabhaill:\n"
-#: ../ops.c:4575
#, c-format
msgid "E574: Unknown register type %d"
msgstr "E574: Cinel anaithnid tabhaill %d"
-#: ../ops.c:5089
+msgid ""
+"E883: search pattern and expression register may not contain two or more "
+"lines"
+msgstr ""
+"E883: n cheadatear nos m n lne amhin i bpatrn cuardaigh n sa "
+"slonntabhall"
+
#, c-format
-msgid "%<PRId64> Cols; "
-msgstr "%<PRId64> Coln; "
+msgid "%ld Cols; "
+msgstr "%ld Coln; "
-#: ../ops.c:5097
#, c-format
-msgid ""
-"Selected %s%<PRId64> of %<PRId64> Lines; %<PRId64> of %<PRId64> Words; "
-"%<PRId64> of %<PRId64> Bytes"
-msgstr ""
-"Roghnaodh %s%<PRId64> as %<PRId64> Lne; %<PRId64> as %<PRId64> Focal; "
-"%<PRId64> as %<PRId64> Beart"
+msgid "Selected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Bytes"
+msgstr "Roghnaodh %s%ld as %ld Lne; %lld as %lld Focal; %lld as %lld Beart"
-#: ../ops.c:5105
#, c-format
msgid ""
-"Selected %s%<PRId64> of %<PRId64> Lines; %<PRId64> of %<PRId64> Words; "
-"%<PRId64> of %<PRId64> Chars; %<PRId64> of %<PRId64> Bytes"
+"Selected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Chars; %lld of "
+"%lld Bytes"
msgstr ""
-"Roghnaodh %s%<PRId64> as %<PRId64> Lne; %<PRId64> as %<PRId64> Focal; "
-"%<PRId64> as %<PRId64> Carachtar; %<PRId64> as %<PRId64> Beart"
+"Roghnaodh %s%ld as %ld Lne; %lld as %lld Focal; %lld as %lld Carachtar; %lld as %lld Beart"
-#: ../ops.c:5123
#, c-format
-msgid ""
-"Col %s of %s; Line %<PRId64> of %<PRId64>; Word %<PRId64> of %<PRId64>; Byte "
-"%<PRId64> of %<PRId64>"
-msgstr ""
-"Col %s as %s; Lne %<PRId64> as %<PRId64>; Focal %<PRId64> as %<PRId64>; "
-"Beart %<PRId64> as %<PRId64>"
+msgid "Col %s of %s; Line %ld of %ld; Word %lld of %lld; Byte %lld of %lld"
+msgstr "Col %s as %s; Lne %ld as %ld; Focal %lld as %lld; Beart %lld as %lld"
-#: ../ops.c:5133
#, c-format
msgid ""
-"Col %s of %s; Line %<PRId64> of %<PRId64>; Word %<PRId64> of %<PRId64>; Char "
-"%<PRId64> of %<PRId64>; Byte %<PRId64> of %<PRId64>"
+"Col %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte "
+"%lld of %lld"
msgstr ""
-"Col %s as %s; Lne %<PRId64> as %<PRId64>; Focal %<PRId64> as %<PRId64>; "
-"Carachtar %<PRId64> as %<PRId64>; Beart %<PRId64> as %<PRId64>"
+"Col %s as %s; Lne %ld as %ld; Focal %lld as %lld; Carachtar %lld as %lld; Beart %lld as %lld"
-#: ../ops.c:5146
#, c-format
-msgid "(+%<PRId64> for BOM)"
-msgstr "(+%<PRId64> do BOM)"
+msgid "(+%ld for BOM)"
+msgstr "(+%ld do BOM)"
-#: ../option.c:1238
msgid "%<%f%h%m%=Page %N"
msgstr "%<%f%h%m%=Leathanach %N"
-#: ../option.c:1574
msgid "Thanks for flying Vim"
msgstr "Go raibh mle maith agat as Vim a sid"
-#. found a mismatch: skip
-#: ../option.c:2698
msgid "E518: Unknown option"
msgstr "E518: Rogha anaithnid"
-#: ../option.c:2709
msgid "E519: Option not supported"
msgstr "E519: Nl an rogha seo ar fil"
-#: ../option.c:2740
msgid "E520: Not allowed in a modeline"
msgstr "E520: N cheadaithe i mdlne"
-#: ../option.c:2815
msgid "E846: Key code not set"
-msgstr ""
+msgstr "E846: Cd eochrach gan socr"
-#: ../option.c:2924
msgid "E521: Number required after ="
msgstr "E521: T g le huimhir i ndiaidh ="
-#: ../option.c:3226 ../option.c:3864
msgid "E522: Not found in termcap"
msgstr "E522: Gan aimsi sa termcap"
-#: ../option.c:3335
#, c-format
msgid "E539: Illegal character <%s>"
msgstr "E539: Carachtar neamhcheadaithe <%s>"
-#: ../option.c:3862
+#, c-format
+msgid "For option %s"
+msgstr "Le haghaidh rogha %s"
+
msgid "E529: Cannot set 'term' to empty string"
msgstr "E529: N fidir 'term' a shocr mar theaghrn folamh"
-#: ../option.c:3885
+msgid "E530: Cannot change term in GUI"
+msgstr "E530: N fidir 'term' a athr sa GUI"
+
+msgid "E531: Use \":gui\" to start the GUI"
+msgstr "E531: sid \":gui\" chun an GUI a chur ag obair"
+
msgid "E589: 'backupext' and 'patchmode' are equal"
msgstr "E589: is ionann iad 'backupext' agus 'patchmode'"
-#: ../option.c:3964
msgid "E834: Conflicts with value of 'listchars'"
-msgstr ""
+msgstr "E834: Tagann s salach ar luach de 'listchars'"
-#: ../option.c:3966
msgid "E835: Conflicts with value of 'fillchars'"
-msgstr ""
+msgstr "E835: Tagann s salach ar luach de 'fillchars'"
+
+msgid "E617: Cannot be changed in the GTK+ 2 GUI"
+msgstr "E617: N fidir a athr sa GUI GTK+ 2"
-#: ../option.c:4163
msgid "E524: Missing colon"
msgstr "E524: Idirstad ar iarraidh"
-#: ../option.c:4165
msgid "E525: Zero length string"
msgstr "E525: Teaghrn folamh"
-#: ../option.c:4220
#, c-format
msgid "E526: Missing number after <%s>"
msgstr "E526: Uimhir ar iarraidh i ndiaidh <%s>"
-#: ../option.c:4232
msgid "E527: Missing comma"
msgstr "E527: Camg ar iarraidh"
-#: ../option.c:4239
msgid "E528: Must specify a ' value"
msgstr "E528: Caithfidh luach ' a shonr"
-#: ../option.c:4271
msgid "E595: contains unprintable or wide character"
msgstr "E595: t carachtar neamhghrafach n leathan ann"
-#: ../option.c:4469
+msgid "E596: Invalid font(s)"
+msgstr "E596: Cl(nna) neamhbhail"
+
+msgid "E597: can't select fontset"
+msgstr "E597: n fidir tacar cl a roghn"
+
+msgid "E598: Invalid fontset"
+msgstr "E598: Tacar cl neamhbhail"
+
+msgid "E533: can't select wide font"
+msgstr "E533: n fidir cl leathan a roghn"
+
+msgid "E534: Invalid wide font"
+msgstr "E534: Cl leathan neamhbhail"
+
#, c-format
msgid "E535: Illegal character after <%c>"
msgstr "E535: Carachtar neamhbhail i ndiaidh <%c>"
-#: ../option.c:4534
msgid "E536: comma required"
msgstr "E536: t g le camg"
-#: ../option.c:4543
#, c-format
msgid "E537: 'commentstring' must be empty or contain %s"
msgstr ""
"E537: n mr %s a bheith i 'commentstring', is sin n n mr d a bheith "
"folamh"
-#: ../option.c:4928
+msgid "E538: No mouse support"
+msgstr "E538: Gan tacaocht luiche"
+
msgid "E540: Unclosed expression sequence"
msgstr "E540: Seicheamh gan dnadh"
-#: ../option.c:4932
msgid "E541: too many items"
msgstr "E541: an iomarca mreanna"
-#: ../option.c:4934
msgid "E542: unbalanced groups"
msgstr "E542: grpa neamhchothromaithe"
-#: ../option.c:5148
msgid "E590: A preview window already exists"
msgstr "E590: T fuinneog ramhamhairc ann cheana"
-#: ../option.c:5311
msgid "W17: Arabic requires UTF-8, do ':set encoding=utf-8'"
msgstr ""
"W17: T UTF-8 ag teastil le haghaidh Araibise, socraigh le ':set "
"encoding=utf-8'"
-#: ../option.c:5623
#, c-format
msgid "E593: Need at least %d lines"
msgstr "E593: T g le %d lne ar a laghad"
-#: ../option.c:5631
#, c-format
msgid "E594: Need at least %d columns"
msgstr "E594: T g le %d coln ar a laghad"
-#: ../option.c:6011
#, c-format
msgid "E355: Unknown option: %s"
msgstr "E355: Rogha anaithnid: %s"
@@ -4717,12 +4386,10 @@ msgstr "E355: Rogha anaithnid: %s"
#. There's another character after zeros or the string
#. * is empty. In both cases, we are trying to set a
#. * num option using a string.
-#: ../option.c:6037
#, c-format
msgid "E521: Number required: &%s = '%s'"
msgstr "E521: Uimhir de dhth: &%s = '%s'"
-#: ../option.c:6149
msgid ""
"\n"
"--- Terminal codes ---"
@@ -4730,7 +4397,6 @@ msgstr ""
"\n"
"--- Cid teirminil ---"
-#: ../option.c:6151
msgid ""
"\n"
"--- Global option values ---"
@@ -4738,7 +4404,6 @@ msgstr ""
"\n"
"--- Luachanna na roghanna comhchoiteann ---"
-#: ../option.c:6153
msgid ""
"\n"
"--- Local option values ---"
@@ -4746,7 +4411,6 @@ msgstr ""
"\n"
"--- Luachanna na roghanna lognta ---"
-#: ../option.c:6155
msgid ""
"\n"
"--- Options ---"
@@ -4754,29 +4418,148 @@ msgstr ""
"\n"
"--- Roghanna ---"
-#: ../option.c:6816
msgid "E356: get_varp ERROR"
msgstr "E356: EARRID get_varp"
-#: ../option.c:7696
#, c-format
msgid "E357: 'langmap': Matching character missing for %s"
msgstr "E357: 'langmap': Carachtar comhoirinach ar iarraidh le haghaidh %s"
-#: ../option.c:7715
#, c-format
msgid "E358: 'langmap': Extra characters after semicolon: %s"
msgstr "E358: 'langmap': Carachtair breise i ndiaidh an idirstad: %s"
-#: ../os/shell.c:194
+msgid "cannot open "
+msgstr "n fidir a oscailt: "
+
+msgid "VIM: Can't open window!\n"
+msgstr "VIM: N fidir fuinneog a oscailt!\n"
+
+msgid "Need Amigados version 2.04 or later\n"
+msgstr "T g le Amigados leagan 2.04 n nos dana\n"
+
+#, c-format
+msgid "Need %s version %ld\n"
+msgstr "T g le %s, leagan %ld\n"
+
+msgid "Cannot open NIL:\n"
+msgstr "N fidir NIL a oscailt:\n"
+
+msgid "Cannot create "
+msgstr "N fidir a chruth: "
+
+#, c-format
+msgid "Vim exiting with %d\n"
+msgstr "Vim scor le stdas %d\n"
+
+msgid "cannot change console mode ?!\n"
+msgstr "n fidir md consil a athr ?!\n"
+
+msgid "mch_get_shellsize: not a console??\n"
+msgstr "mch_get_shellsize: n consl seo??\n"
+
+#. if Vim opened a window: Executing a shell may cause crashes
+msgid "E360: Cannot execute shell with -f option"
+msgstr "E360: N fidir blaosc a rith le rogha -f"
+
+msgid "Cannot execute "
+msgstr "N fidir blaosc a rith: "
+
+msgid "shell "
+msgstr "blaosc "
+
+msgid " returned\n"
+msgstr " aisfhilleadh\n"
+
+msgid "ANCHOR_BUF_SIZE too small."
+msgstr "ANCHOR_BUF_SIZE rbheag."
+
+msgid "I/O ERROR"
+msgstr "EARRID I/A"
+
+msgid "Message"
+msgstr "Teachtaireacht"
+
+msgid "E237: Printer selection failed"
+msgstr "E237: Theip ar roghn printara"
+
+#, c-format
+msgid "to %s on %s"
+msgstr "go %s ar %s"
+
+#, c-format
+msgid "E613: Unknown printer font: %s"
+msgstr "E613: Clfhoireann anaithnid printara: %s"
+
+#, c-format
+msgid "E238: Print error: %s"
+msgstr "E238: Earrid phriontla: %s"
+
+#, c-format
+msgid "Printing '%s'"
+msgstr "'%s' phriontil"
+
+#, c-format
+msgid "E244: Illegal charset name \"%s\" in font name \"%s\""
+msgstr ""
+"E244: Ainm neamhcheadaithe ar thacar carachtar \"%s\" mar phirt d'ainm cl "
+"\"%s\""
+
+#, c-format
+msgid "E244: Illegal quality name \"%s\" in font name \"%s\""
+msgstr ""
+"E244: Ainm neamhcheadaithe ar chilocht \"%s\" in ainm cl \"%s\""
+
+#, c-format
+msgid "E245: Illegal char '%c' in font name \"%s\""
+msgstr "E245: Carachtar neamhcheadaithe '%c' mar phirt d'ainm cl \"%s\""
+
+#, c-format
+msgid "Opening the X display took %ld msec"
+msgstr "Thg %ld ms chun an scilen X a oscailt"
+
msgid ""
"\n"
-"Cannot execute shell "
+"Vim: Got X error\n"
msgstr ""
"\n"
-"N fidir blaosc a rith "
+"Vim: Fuarthas earrid X\n"
+
+msgid "Testing the X display failed"
+msgstr "Theip ar thstil an scilein X"
+
+msgid "Opening the X display timed out"
+msgstr "Oscailt an scilein X thar am"
+
+msgid ""
+"\n"
+"Could not get security context for "
+msgstr ""
+"\n"
+"Norbh fhidir comhthacs slndla a fhil le haghaidh "
+
+msgid ""
+"\n"
+"Could not set security context for "
+msgstr ""
+"\n"
+"Norbh fhidir comhthacs slndla a shocr le haghaidh "
+
+#, c-format
+msgid "Could not set security context %s for %s"
+msgstr "Norbh fhidir comhthacs slndla %s a shocr le haghaidh %s"
+
+#, c-format
+msgid "Could not get security context %s for %s. Removing it!"
+msgstr "Norbh fhidir comhthacs slndla %s a fhil le haghaidh %s. bhaint!"
+
+msgid ""
+"\n"
+"Cannot execute shell sh\n"
+msgstr ""
+"\n"
+"N fidir an bhlaosc sh a rith\n"
-#: ../os/shell.c:439
msgid ""
"\n"
"shell returned "
@@ -4784,472 +4567,476 @@ msgstr ""
"\n"
"d'aisfhill an bhlaosc "
-#: ../os_unix.c:465 ../os_unix.c:471
msgid ""
"\n"
-"Could not get security context for "
+"Cannot create pipes\n"
msgstr ""
"\n"
-"Norbh fhidir comhthacs slndla a fhil le haghaidh "
+"N fidir popa a chruth\n"
-#: ../os_unix.c:479
+# "fork" not in standard refs/corpus. Maybe want a "gabhl*" word instead? -KPS
msgid ""
"\n"
-"Could not set security context for "
+"Cannot fork\n"
msgstr ""
"\n"
-"Norbh fhidir comhthacs slndla a shocr le haghaidh "
+"N fidir forc a dhanamh\n"
+
+msgid ""
+"\n"
+"Cannot execute shell "
+msgstr ""
+"\n"
+"N fidir blaosc a rith "
+
+msgid ""
+"\n"
+"Command terminated\n"
+msgstr ""
+"\n"
+"Ord crochnaithe\n"
+
+msgid "XSMP lost ICE connection"
+msgstr "Chaill XSMP an nasc ICE"
-#: ../os_unix.c:1558 ../os_unix.c:1647
#, c-format
msgid "dlerror = \"%s\""
msgstr "dlerror = \"%s\""
-#: ../path.c:1449
+msgid "Opening the X display failed"
+msgstr "Theip ar oscailt an scilein X"
+
+msgid "XSMP handling save-yourself request"
+msgstr "Iarratas sbhil-do-fin limhseil ag XSMP"
+
+msgid "XSMP opening connection"
+msgstr "Nasc oscailt ag XSMP"
+
+msgid "XSMP ICE connection watch failed"
+msgstr "Theip ar fhaire nasc ICE XSMP"
+
#, c-format
-msgid "E447: Can't find file \"%s\" in path"
-msgstr "E447: Nl aon fhil ar chomhad \"%s\" sa chonair"
+msgid "XSMP SmcOpenConnection failed: %s"
+msgstr "Theip ar XSMP SmcOpenConnection: %s"
+
+msgid "At line"
+msgstr "Ag lne"
+
+msgid "Could not load vim32.dll!"
+msgstr "Norbh fhidir vim32.dll a lucht!"
+
+msgid "VIM Error"
+msgstr "Earrid VIM"
+
+msgid "Could not fix up function pointers to the DLL!"
+msgstr "Norbh fhidir pointeoir feidhme a chiri i gcomhair an DLL!"
+
+#, c-format
+msgid "Vim: Caught %s event\n"
+msgstr "Vim: Fuarthas teagmhas %s\n"
+
+msgid "close"
+msgstr "dn"
+
+msgid "logoff"
+msgstr "logil amach"
+
+msgid "shutdown"
+msgstr "mchadh"
+
+msgid "E371: Command not found"
+msgstr "E371: N bhfuarthas an t-ord"
+
+msgid ""
+"VIMRUN.EXE not found in your $PATH.\n"
+"External commands will not pause after completion.\n"
+"See :help win32-vimrun for more information."
+msgstr ""
+"Nor aimsodh VIMRUN.EXE i do $PATH.\n"
+"N mhoilleoidh orduithe seachtracha agus iad curtha i gcrch.\n"
+"Fach ar :help win32-vimrun chun nos m eolas a fhil."
+
+msgid "Vim Warning"
+msgstr "Rabhadh Vim"
+
+#, c-format
+msgid "shell returned %d"
+msgstr "d'aisfhill an bhlaosc %d"
-#: ../quickfix.c:359
#, c-format
msgid "E372: Too many %%%c in format string"
msgstr "E372: An iomarca %%%c i dteaghrn formide"
-#: ../quickfix.c:371
#, c-format
msgid "E373: Unexpected %%%c in format string"
msgstr "E373: %%%c gan choinne i dteaghrn formide"
-#: ../quickfix.c:420
msgid "E374: Missing ] in format string"
msgstr "E374: ] ar iarraidh i dteaghrn formide"
-#: ../quickfix.c:431
#, c-format
msgid "E375: Unsupported %%%c in format string"
msgstr "E375: %%%c gan tacaocht i dteaghrn formide"
-#: ../quickfix.c:448
#, c-format
msgid "E376: Invalid %%%c in format string prefix"
msgstr "E376: %%%c neamhbhail i rimr an teaghrin formide"
-#: ../quickfix.c:454
#, c-format
msgid "E377: Invalid %%%c in format string"
msgstr "E377: %%%c neamhbhail i dteaghrn formide"
#. nothing found
-#: ../quickfix.c:477
msgid "E378: 'errorformat' contains no pattern"
msgstr "E378: Nl aon phatrn i 'errorformat'"
-#: ../quickfix.c:695
msgid "E379: Missing or empty directory name"
msgstr "E379: Ainm comhadlainne ar iarraidh, n folamh"
-#: ../quickfix.c:1305
msgid "E553: No more items"
msgstr "E553: Nl aon mhr eile"
-#: ../quickfix.c:1674
+msgid "E924: Current window was closed"
+msgstr "E924: Dnadh an fhuinneog reatha"
+
+msgid "E925: Current quickfix was changed"
+msgstr "E925: Athraodh an mearcheartchn reatha"
+
+msgid "E926: Current location list was changed"
+msgstr "E926: Athraodh an liosta suomh reatha"
+
#, c-format
msgid "(%d of %d)%s%s: "
msgstr "(%d as %d)%s%s: "
-#: ../quickfix.c:1676
msgid " (line deleted)"
msgstr " (lne scriosta)"
-#: ../quickfix.c:1863
+#, c-format
+msgid "%serror list %d of %d; %d errors "
+msgstr "%sliosta earrid %d as %d; %d earrid "
+
msgid "E380: At bottom of quickfix stack"
-msgstr "E380: In ochtar na cruaiche quickfix"
+msgstr "E380: In ochtar chruach na mearcheartchn"
-#: ../quickfix.c:1869
msgid "E381: At top of quickfix stack"
-msgstr "E381: In uachtar na cruaiche quickfix"
+msgstr "E381: In uachtar chruach na mearcheartchn"
-#: ../quickfix.c:1880
-#, c-format
-msgid "error list %d of %d; %d errors"
-msgstr "liosta earrid %d as %d; %d earrid"
+msgid "No entries"
+msgstr "Gan iontril"
-#: ../quickfix.c:2427
msgid "E382: Cannot write, 'buftype' option is set"
msgstr "E382: N fidir scrobh, rogha 'buftype' socraithe"
-#: ../quickfix.c:2812
+msgid "Error file"
+msgstr "Comhad earride"
+
msgid "E683: File name missing or invalid pattern"
msgstr "E683: Ainm comhaid ar iarraidh, n patrn neamhbhail"
-#: ../quickfix.c:2911
#, c-format
msgid "Cannot open file \"%s\""
msgstr "N fidir comhad \"%s\" a oscailt"
-#: ../quickfix.c:3429
msgid "E681: Buffer is not loaded"
msgstr "E681: Nl an maoln luchtaithe"
-#: ../quickfix.c:3487
msgid "E777: String or List expected"
msgstr "E777: Bhothas ag sil le Teaghrn n Liosta"
-#: ../regexp.c:359
#, c-format
msgid "E369: invalid item in %s%%[]"
msgstr "E369: mr neamhbhail i %s%%[]"
-#: ../regexp.c:374
#, c-format
msgid "E769: Missing ] after %s["
msgstr "E769: ] ar iarraidh i ndiaidh %s["
-#: ../regexp.c:375
#, c-format
msgid "E53: Unmatched %s%%("
msgstr "E53: %s%%( corr"
-#: ../regexp.c:376
#, c-format
msgid "E54: Unmatched %s("
msgstr "E54: %s( corr"
-#: ../regexp.c:377
#, c-format
msgid "E55: Unmatched %s)"
msgstr "E55: %s) corr"
-#: ../regexp.c:378
msgid "E66: \\z( not allowed here"
msgstr "E66: n cheadatear \\z( anseo"
-#: ../regexp.c:379
msgid "E67: \\z1 et al. not allowed here"
msgstr "E67: n cheadatear \\z1 et al. anseo"
-#: ../regexp.c:380
#, c-format
msgid "E69: Missing ] after %s%%["
msgstr "E69: ] ar iarraidh i ndiaidh %s%%["
-#: ../regexp.c:381
#, c-format
msgid "E70: Empty %s%%[]"
msgstr "E70: %s%%[] folamh"
-#: ../regexp.c:1209 ../regexp.c:1224
msgid "E339: Pattern too long"
msgstr "E339: Slonn rfhada"
-#: ../regexp.c:1371
msgid "E50: Too many \\z("
msgstr "E50: an iomarca \\z("
-#: ../regexp.c:1378
#, c-format
msgid "E51: Too many %s("
msgstr "E51: an iomarca %s("
-#: ../regexp.c:1427
msgid "E52: Unmatched \\z("
msgstr "E52: \\z( corr"
-#: ../regexp.c:1637
#, c-format
msgid "E59: invalid character after %s@"
msgstr "E59: carachtar neamhbhail i ndiaidh %s@"
-#: ../regexp.c:1672
#, c-format
msgid "E60: Too many complex %s{...}s"
msgstr "E60: An iomarca %s{...} coimplascach"
-#: ../regexp.c:1687
#, c-format
msgid "E61: Nested %s*"
msgstr "E61: %s* neadaithe"
-#: ../regexp.c:1690
#, c-format
msgid "E62: Nested %s%c"
msgstr "E62: %s%c neadaithe"
-#: ../regexp.c:1800
msgid "E63: invalid use of \\_"
msgstr "E63: sid neamhbhail de \\_"
-#: ../regexp.c:1850
#, c-format
msgid "E64: %s%c follows nothing"
msgstr "E64: nl aon rud roimh %s%c"
-#: ../regexp.c:1902
msgid "E65: Illegal back reference"
msgstr "E65: Cltagairt neamhbhail"
-#: ../regexp.c:1943
msgid "E68: Invalid character after \\z"
msgstr "E68: Carachtar neamhbhail i ndiaidh \\z"
-#: ../regexp.c:2049 ../regexp_nfa.c:1296
#, c-format
msgid "E678: Invalid character after %s%%[dxouU]"
msgstr "E678: Carachtar neamhbhail i ndiaidh %s%%[dxouU]"
-#: ../regexp.c:2107
#, c-format
msgid "E71: Invalid character after %s%%"
msgstr "E71: Carachtar neamhbhail i ndiaidh %s%%"
-#: ../regexp.c:3017
#, c-format
msgid "E554: Syntax error in %s{...}"
msgstr "E554: Earrid chomhrire i %s{...}"
-#: ../regexp.c:3805
msgid "External submatches:\n"
msgstr "Fo-mheaitseil sheachtrach:\n"
-#: ../regexp.c:7022
+#, c-format
+msgid "E888: (NFA regexp) cannot repeat %s"
+msgstr "E888: (slonn NFA) n fidir %s a athdhanamh"
+
msgid ""
"E864: \\%#= can only be followed by 0, 1, or 2. The automatic engine will be "
"used "
msgstr ""
+"E864: N cheadatear ach 0, 1, n 2 tar is \\%#=. sidfear an t-inneall "
+"uathoibroch "
-#: ../regexp_nfa.c:239
-msgid "E865: (NFA) Regexp end encountered prematurely"
+msgid "Switching to backtracking RE engine for pattern: "
msgstr ""
+"Ag athr go dt an t-inneall rianaithe siar le haghaidh an phatrin seo: "
+
+msgid "E865: (NFA) Regexp end encountered prematurely"
+msgstr "E865: (NFA) Thngthas ar dheireadh an tsloinn gan sil leis"
-#: ../regexp_nfa.c:240
#, c-format
msgid "E866: (NFA regexp) Misplaced %c"
-msgstr ""
+msgstr "E866: (slonn NFA) %c as it"
-#: ../regexp_nfa.c:242
#, c-format
-msgid "E877: (NFA regexp) Invalid character class: %<PRId64>"
-msgstr ""
+msgid "E877: (NFA regexp) Invalid character class: %ld"
+msgstr "E877: (slonn NFA) Aicme carachtar neamhbhail: %ld"
-#: ../regexp_nfa.c:1261
#, c-format
msgid "E867: (NFA) Unknown operator '\\z%c'"
-msgstr ""
+msgstr "E867: (NFA) Oibreoir anaithnid '\\z%c'"
-#: ../regexp_nfa.c:1387
#, c-format
msgid "E867: (NFA) Unknown operator '\\%%%c'"
-msgstr ""
+msgstr "E867: (NFA) Oibreoir anaithnid '\\%%%c'"
+
+#. should never happen
+msgid "E868: Error building NFA with equivalence class!"
+msgstr "E868: Earrid agus NFA thgil le haicme coibhise!"
-#: ../regexp_nfa.c:1802
#, c-format
msgid "E869: (NFA) Unknown operator '\\@%c'"
-msgstr ""
+msgstr "E869: (NFA) Oibreoir anaithnid '\\@%c'"
-#: ../regexp_nfa.c:1831
msgid "E870: (NFA regexp) Error reading repetition limits"
-msgstr ""
+msgstr "E870: (slonn NFA) Earrid agus teorainneacha athdhanta lamh"
#. Can't have a multi follow a multi.
-#: ../regexp_nfa.c:1895
msgid "E871: (NFA regexp) Can't have a multi follow a multi !"
-msgstr ""
+msgstr "E871: (slonn NFA) N cheadatear ilchodach tar is ilchodach!"
#. Too many `('
-#: ../regexp_nfa.c:2037
msgid "E872: (NFA regexp) Too many '('"
-msgstr ""
+msgstr "E872: (slonn NFA) An iomarca '('"
-#: ../regexp_nfa.c:2042
-#, fuzzy
msgid "E879: (NFA regexp) Too many \\z("
-msgstr "E50: an iomarca \\z("
+msgstr "E879: (slonn NFA) An iomarca \\z("
-#: ../regexp_nfa.c:2066
msgid "E873: (NFA regexp) proper termination error"
-msgstr ""
+msgstr "E873: (slonn NFA) crochn neamhoirinach"
-#: ../regexp_nfa.c:2599
msgid "E874: (NFA) Could not pop the stack !"
-msgstr ""
+msgstr "E874: (NFA) Norbh fhidir an chruach a phlobadh!"
-#: ../regexp_nfa.c:3298
msgid ""
"E875: (NFA regexp) (While converting from postfix to NFA), too many states "
"left on stack"
msgstr ""
+"E875: (slonn NFA) (Le linn tiontaithe postfix go NFA), an iomarca "
+"staideanna fgtha ar an gcruach"
-#: ../regexp_nfa.c:3302
msgid "E876: (NFA regexp) Not enough space to store the whole NFA "
+msgstr "E876: (slonn NFA) Nl go leor spis ann don NFA iomln "
+
+msgid "E878: (NFA) Could not allocate memory for branch traversal!"
msgstr ""
+"E878: (NFA) Norbh fhidir cuimhne a leithdhileadh leis an gcraobh a "
+"thrasnal!"
-#: ../regexp_nfa.c:4571 ../regexp_nfa.c:4869
msgid ""
"Could not open temporary log file for writing, displaying on stderr ... "
msgstr ""
+"Norbh fhidir logchomhad sealadach a oscailt le scrobh ann, thaispeint "
+"ar stderr..."
-#: ../regexp_nfa.c:4840
#, c-format
msgid "(NFA) COULD NOT OPEN %s !"
-msgstr ""
+msgstr "(NFA) NORBH FHIDIR %s A OSCAILT!"
-#: ../regexp_nfa.c:6049
-#, fuzzy
msgid "Could not open temporary log file for writing "
-msgstr "E214: N fidir comhad sealadach a aimsi chun scrobh ann"
+msgstr "Norbh fhidir logchomhad sealadach a oscailt le scrobh ann "
-#: ../screen.c:7435
msgid " VREPLACE"
msgstr " V-IONADAIGH"
-#: ../screen.c:7437
msgid " REPLACE"
msgstr " ATHCHUR"
-#: ../screen.c:7440
msgid " REVERSE"
msgstr " TIONT"
-#: ../screen.c:7441
msgid " INSERT"
msgstr " IONS"
-#: ../screen.c:7443
msgid " (insert)"
msgstr " (ionsigh)"
-#: ../screen.c:7445
msgid " (replace)"
msgstr " (ionadaigh)"
-#: ../screen.c:7447
msgid " (vreplace)"
msgstr " (v-ionadaigh)"
-#: ../screen.c:7449
msgid " Hebrew"
msgstr " Eabhrais"
-#: ../screen.c:7454
msgid " Arabic"
msgstr " Araibis"
-#: ../screen.c:7456
-msgid " (lang)"
-msgstr " (teanga)"
-
-#: ../screen.c:7459
msgid " (paste)"
msgstr " (greamaigh)"
-#: ../screen.c:7469
msgid " VISUAL"
msgstr " RADHARCACH"
-#: ../screen.c:7470
msgid " VISUAL LINE"
msgstr " LNE RADHARCACH"
-#: ../screen.c:7471
msgid " VISUAL BLOCK"
msgstr " BLOC RADHARCACH"
-#: ../screen.c:7472
msgid " SELECT"
msgstr " ROGHN"
-#: ../screen.c:7473
msgid " SELECT LINE"
msgstr " SELECT LINE"
-#: ../screen.c:7474
msgid " SELECT BLOCK"
msgstr " SELECT BLOCK"
-#: ../screen.c:7486 ../screen.c:7541
msgid "recording"
msgstr " thaifeadadh"
-#: ../search.c:487
#, c-format
msgid "E383: Invalid search string: %s"
msgstr "E383: Teaghrn cuardaigh neamhbhail: %s"
-#: ../search.c:832
#, c-format
msgid "E384: search hit TOP without match for: %s"
msgstr "E384: bhuail an cuardach an BARR gan teaghrn comhoirinach le %s"
-#: ../search.c:835
#, c-format
msgid "E385: search hit BOTTOM without match for: %s"
msgstr "E385: bhuail an cuardach an BUN gan teaghrn comhoirinach le %s"
-#: ../search.c:1200
msgid "E386: Expected '?' or '/' after ';'"
msgstr "E386: Ag sil le '?' n '/' i ndiaidh ';'"
-#: ../search.c:4085
msgid " (includes previously listed match)"
msgstr " (t an teaghrn comhoirinaithe roimhe seo san ireamh)"
#. cursor at status line
-#: ../search.c:4104
msgid "--- Included files "
msgstr "--- Comhaid cheanntisc "
-#: ../search.c:4106
msgid "not found "
msgstr "gan aimsi"
-#: ../search.c:4107
msgid "in path ---\n"
msgstr "i gconair ---\n"
-#: ../search.c:4168
msgid " (Already listed)"
msgstr " (Liostaithe cheana fin)"
-#: ../search.c:4170
msgid " NOT FOUND"
msgstr " AR IARRAIDH"
-#: ../search.c:4211
#, c-format
msgid "Scanning included file: %s"
msgstr "Comhad ceanntisc scanadh: %s"
-#: ../search.c:4216
#, c-format
msgid "Searching included file %s"
msgstr "Comhad ceanntisc %s chuardach"
-#: ../search.c:4405
msgid "E387: Match is on current line"
msgstr "E387: T an teaghrn comhoirinaithe ar an lne reatha"
-#: ../search.c:4517
msgid "All included files were found"
msgstr "Aimsodh gach comhad ceanntisc"
-#: ../search.c:4519
msgid "No included files"
msgstr "Gan comhaid cheanntisc"
-#: ../search.c:4527
msgid "E388: Couldn't find definition"
msgstr "E388: Sainmhni gan aimsi"
-#: ../search.c:4529
msgid "E389: Couldn't find pattern"
msgstr "E389: Patrn gan aimsi"
-#: ../search.c:4668
msgid "Substitute "
msgstr "Ionad "
# in .viminfo
-#: ../search.c:4681
#, c-format
msgid ""
"\n"
@@ -5260,98 +5047,130 @@ msgstr ""
"# %sPatrn Cuardaigh Is Dana:\n"
"~"
-#: ../spell.c:951
-msgid "E759: Format error in spell file"
-msgstr "E759: Earrid fhormide i gcomhad litrithe"
+msgid "E756: Spell checking is not enabled"
+msgstr "E756: Nl seiceil litrithe cumasaithe"
+
+#, c-format
+msgid "Warning: Cannot find word list \"%s_%s.spl\" or \"%s_ascii.spl\""
+msgstr ""
+"Rabhadh: N fidir liosta focal \"%s_%s.spl\" n \"%s_ascii.spl\" a aimsi"
+
+#, c-format
+msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
+msgstr ""
+"Rabhadh: N fidir liosta focal \"%s.%s.spl\" n \"%s.ascii.spl\" a aimsi"
+
+msgid "E797: SpellFileMissing autocommand deleted buffer"
+msgstr "E797: Scrios uathord SpellFileMissing an maoln"
+
+#, c-format
+msgid "Warning: region %s not supported"
+msgstr "Rabhadh: rigin %s gan tacaocht"
+
+msgid "Sorry, no suggestions"
+msgstr "T brn orm, nl aon mholadh ann"
+
+#, c-format
+msgid "Sorry, only %ld suggestions"
+msgstr "T brn orm, nl ach %ld moladh ann"
+
+#. for when 'cmdheight' > 1
+#. avoid more prompt
+#, c-format
+msgid "Change \"%.*s\" to:"
+msgstr "Athraigh \"%.*s\" go:"
+
+#, c-format
+msgid " < \"%.*s\""
+msgstr " < \"%.*s\""
+
+msgid "E752: No previous spell replacement"
+msgstr "E752: Nl aon ionada litrithe roimhe seo"
+
+#, c-format
+msgid "E753: Not found: %s"
+msgstr "E753: Gan aimsi: %s"
-#: ../spell.c:952
msgid "E758: Truncated spell file"
msgstr "E758: Comhad teasctha litrithe"
-#: ../spell.c:953
#, c-format
msgid "Trailing text in %s line %d: %s"
msgstr "Tacs chun deiridh i %s lne %d: %s"
-#: ../spell.c:954
#, c-format
msgid "Affix name too long in %s line %d: %s"
msgstr "Ainm foircinn rfhada i %s lne %d: %s"
-#: ../spell.c:955
msgid "E761: Format error in affix file FOL, LOW or UPP"
msgstr "E761: Earrid fhormide i gcomhad foircinn FOL, LOW, n UPP"
-#: ../spell.c:957
msgid "E762: Character in FOL, LOW or UPP is out of range"
msgstr "E762: Carachtar i FOL, LOW n UPP as raon"
-#: ../spell.c:958
msgid "Compressing word tree..."
msgstr "Crann focal chomhbhr..."
-#: ../spell.c:1951
-msgid "E756: Spell checking is not enabled"
-msgstr "E756: Nl seiceil litrithe cumasaithe"
-
-#: ../spell.c:2249
-#, c-format
-msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
-msgstr ""
-"Rabhadh: N fidir liosta focal \"%s.%s.spl\" n \"%s.ascii.spl\" a aimsi"
-
-#: ../spell.c:2473
#, c-format
msgid "Reading spell file \"%s\""
msgstr "Comhad litrithe \"%s\" lamh"
-#: ../spell.c:2496
msgid "E757: This does not look like a spell file"
msgstr "E757: Nl s cosil le comhad litrithe"
-#: ../spell.c:2501
msgid "E771: Old spell file, needs to be updated"
msgstr "E771: Seanchomhad litrithe, t g lena nuashonr"
-#: ../spell.c:2504
msgid "E772: Spell file is for newer version of Vim"
msgstr "E772: Oibronn an comhad litrithe le leagan nos nua de Vim"
-#: ../spell.c:2602
msgid "E770: Unsupported section in spell file"
msgstr "E770: Rannn gan tacaocht i gcomhad litrithe"
-#: ../spell.c:3762
#, c-format
-msgid "Warning: region %s not supported"
-msgstr "Rabhadh: rigin %s gan tacaocht"
+msgid "E778: This does not look like a .sug file: %s"
+msgstr "E778: Nl s cosil le comhad .sug: %s"
+
+#, c-format
+msgid "E779: Old .sug file, needs to be updated: %s"
+msgstr "E779: Seanchomhad .sug, t g lena nuashonr: %s"
+
+#, c-format
+msgid "E780: .sug file is for newer version of Vim: %s"
+msgstr "E780: Oibronn an comhad .sug le leagan nos nua de Vim: %s"
+
+#, c-format
+msgid "E781: .sug file doesn't match .spl file: %s"
+msgstr "E781: Nl an comhad .sug comhoirinach leis an gcomhad .spl: %s"
+
+#, c-format
+msgid "E782: error while reading .sug file: %s"
+msgstr "E782: earrid agus comhad .sug lamh: %s"
-#: ../spell.c:4550
#, c-format
msgid "Reading affix file %s ..."
msgstr "Comhad foircinn %s lamh..."
-#: ../spell.c:4589 ../spell.c:5635 ../spell.c:6140
#, c-format
msgid "Conversion failure for word in %s line %d: %s"
msgstr "Theip ar thiont focail i %s lne %d: %s"
-#: ../spell.c:4630 ../spell.c:6170
#, c-format
msgid "Conversion in %s not supported: from %s to %s"
msgstr "Tiont i %s gan tacaocht: %s go %s"
-#: ../spell.c:4642
+#, c-format
+msgid "Conversion in %s not supported"
+msgstr "Tiont i %s gan tacaocht"
+
#, c-format
msgid "Invalid value for FLAG in %s line %d: %s"
msgstr "Luach neamhbhail ar FLAG i %s lne %d: %s"
-#: ../spell.c:4655
#, c-format
msgid "FLAG after using flags in %s line %d: %s"
msgstr "FLAG i ndiaidh bratacha in sid i %s lne %d: %s"
-#: ../spell.c:4723
#, c-format
msgid ""
"Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line "
@@ -5360,7 +5179,6 @@ msgstr ""
"Seans go bhfaighfidh t tortha mchearta m chuireann t COMPOUNDFORBIDFLAG "
"tar is mre PFX i %s lne %d"
-#: ../spell.c:4731
#, c-format
msgid ""
"Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line "
@@ -5369,42 +5187,34 @@ msgstr ""
"Seans go bhfaighfidh t tortha mchearta m chuireann t COMPOUNDPERMITFLAG "
"tar is mre PFX i %s lne %d"
-#: ../spell.c:4747
#, c-format
msgid "Wrong COMPOUNDRULES value in %s line %d: %s"
msgstr "Luach mcheart ar COMPOUNDRULES i %s lne %d: %s"
-#: ../spell.c:4771
#, c-format
msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s"
msgstr "Luach mcheart ar COMPOUNDWORDMAX i %s lne %d: %s"
-#: ../spell.c:4777
#, c-format
msgid "Wrong COMPOUNDMIN value in %s line %d: %s"
msgstr "Luach mcheart ar COMPOUNDMIN i %s lne %d: %s"
-#: ../spell.c:4783
#, c-format
msgid "Wrong COMPOUNDSYLMAX value in %s line %d: %s"
msgstr "Luach mcheart ar COMPOUNDSYLMAX i %s lne %d: %s"
-#: ../spell.c:4795
#, c-format
msgid "Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"
msgstr "Luach mcheart ar CHECKCOMPOUNDPATTERN i %s lne %d: %s"
-#: ../spell.c:4847
#, c-format
msgid "Different combining flag in continued affix block in %s line %d: %s"
msgstr "Bratach dhifriil cheangail i mbloc leanta foircinn i %s lne %d: %s"
-#: ../spell.c:4850
#, c-format
msgid "Duplicate affix in %s line %d: %s"
msgstr "Clib dhblach i %s lne %d: %s"
-#: ../spell.c:4871
#, c-format
msgid ""
"Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s "
@@ -5413,335 +5223,230 @@ msgstr ""
"Foirceann in sid le haghaidh BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/"
"NOSUGGEST freisin i %s lne %d: %s"
-#: ../spell.c:4893
#, c-format
msgid "Expected Y or N in %s line %d: %s"
msgstr "Bhothas ag sil le `Y' n `N' i %s lne %d: %s"
-#: ../spell.c:4968
#, c-format
msgid "Broken condition in %s line %d: %s"
msgstr "Coinnoll briste i %s lne %d: %s"
-#: ../spell.c:5091
#, c-format
msgid "Expected REP(SAL) count in %s line %d"
msgstr "Bhothas ag sil le lon na REP(SAL) i %s lne %d"
-#: ../spell.c:5120
#, c-format
msgid "Expected MAP count in %s line %d"
msgstr "Bhothas ag sil le lon na MAP i %s lne %d"
-#: ../spell.c:5132
#, c-format
msgid "Duplicate character in MAP in %s line %d"
msgstr "Carachtar dblach i MAP i %s lne %d"
-#: ../spell.c:5176
#, c-format
msgid "Unrecognized or duplicate item in %s line %d: %s"
msgstr "Mr anaithnid n dhblach i %s lne %d: %s"
-#: ../spell.c:5197
#, c-format
msgid "Missing FOL/LOW/UPP line in %s"
msgstr "Lne FOL/LOW/UPP ar iarraidh i %s"
-#: ../spell.c:5220
msgid "COMPOUNDSYLMAX used without SYLLABLE"
msgstr "COMPOUNDSYLMAX in sid gan SYLLABLE"
-#: ../spell.c:5236
msgid "Too many postponed prefixes"
msgstr "An iomarca rimreanna curtha siar"
-#: ../spell.c:5238
msgid "Too many compound flags"
msgstr "An iomarca bratach comhfhocail"
-#: ../spell.c:5240
msgid "Too many postponed prefixes and/or compound flags"
msgstr "An iomarca rimreanna curtha siar agus/n bratacha comhfhocal"
-#: ../spell.c:5250
#, c-format
msgid "Missing SOFO%s line in %s"
msgstr "Lne SOFO%s ar iarraidh i %s"
-#: ../spell.c:5253
#, c-format
msgid "Both SAL and SOFO lines in %s"
msgstr "Lnte SAL agus SOFO araon i %s"
-#: ../spell.c:5331
#, c-format
msgid "Flag is not a number in %s line %d: %s"
msgstr "N uimhir an bhratach i %s lne %d: %s"
-#: ../spell.c:5334
#, c-format
msgid "Illegal flag in %s line %d: %s"
msgstr "Bratach neamhcheadaithe i %s lne %d: %s"
-#: ../spell.c:5493 ../spell.c:5501
#, c-format
msgid "%s value differs from what is used in another .aff file"
msgstr "T difear idir luach %s agus an luach i gcomhad .aff eile"
-#: ../spell.c:5602
#, c-format
msgid "Reading dictionary file %s ..."
msgstr "Foclir %s lamh ..."
-#: ../spell.c:5611
#, c-format
msgid "E760: No word count in %s"
msgstr "E760: Lon na bhfocal ar iarraidh i %s"
-#: ../spell.c:5669
#, c-format
msgid "line %6d, word %6d - %s"
msgstr "lne %6d, focal %6d - %s"
-#: ../spell.c:5691
#, c-format
msgid "Duplicate word in %s line %d: %s"
msgstr "Focal dblach i %s lne %d: %s"
-#: ../spell.c:5694
#, c-format
msgid "First duplicate word in %s line %d: %s"
msgstr "An chad fhocal dblach i %s lne %d: %s"
-#: ../spell.c:5746
#, c-format
msgid "%d duplicate word(s) in %s"
msgstr "%d focal dblach i %s"
-#: ../spell.c:5748
#, c-format
msgid "Ignored %d word(s) with non-ASCII characters in %s"
msgstr "Rinneadh neamhshuim ar %d focal le carachtair neamh-ASCII i %s"
-#: ../spell.c:6115
#, c-format
msgid "Reading word file %s ..."
msgstr "Comhad focail %s lamh ..."
-#: ../spell.c:6155
#, c-format
msgid "Duplicate /encoding= line ignored in %s line %d: %s"
msgstr "Rinneadh neamhshuim ar lne dhblach `/encoding=' i %s lne %d: %s"
-#: ../spell.c:6159
#, c-format
msgid "/encoding= line after word ignored in %s line %d: %s"
msgstr ""
"Rinneadh neamhshuim ar lne `/encoding=' i ndiaidh focail i %s lne %d: %s"
-#: ../spell.c:6180
#, c-format
msgid "Duplicate /regions= line ignored in %s line %d: %s"
msgstr "Rinneadh neamhshuim ar lne `/regions=' i %s lne %d: %s"
-#: ../spell.c:6185
#, c-format
msgid "Too many regions in %s line %d: %s"
msgstr "An iomarca rigin i %s lne %d: %s"
-#: ../spell.c:6198
#, c-format
msgid "/ line ignored in %s line %d: %s"
msgstr "Rinneadh neamhshuim ar lne `/' i %s lne %d: %s"
-#: ../spell.c:6224
#, c-format
msgid "Invalid region nr in %s line %d: %s"
msgstr "Uimhir neamhbhail rigiin i %s lne %d: %s"
-#: ../spell.c:6230
#, c-format
msgid "Unrecognized flags in %s line %d: %s"
msgstr "Bratacha anaithnide i %s lne %d: %s"
-#: ../spell.c:6257
#, c-format
msgid "Ignored %d words with non-ASCII characters"
msgstr "Rinneadh neamhshuim ar %d focal le carachtair neamh-ASCII"
-#: ../spell.c:6656
+msgid "E845: Insufficient memory, word list will be incomplete"
+msgstr "E845: Easpa cuimhne, beidh an liosta focal neamhiomln"
+
#, c-format
msgid "Compressed %d of %d nodes; %d (%d%%) remaining"
msgstr "Comhbhrdh %d as %d nd; %d (%d%%) fgtha"
-#: ../spell.c:7340
msgid "Reading back spell file..."
msgstr "Comhad litrithe lamh ars..."
-#. Go through the trie of good words, soundfold each word and add it to
-#. the soundfold trie.
-#: ../spell.c:7357
+#.
+#. * Go through the trie of good words, soundfold each word and add it to
+#. * the soundfold trie.
+#.
msgid "Performing soundfolding..."
msgstr "Fuaimfhilleadh..."
-#: ../spell.c:7368
#, c-format
-msgid "Number of words after soundfolding: %<PRId64>"
-msgstr "Lon na bhfocal tar is fuaimfhillte: %<PRId64>"
+msgid "Number of words after soundfolding: %ld"
+msgstr "Lon na bhfocal tar is fuaimfhillte: %ld"
-#: ../spell.c:7476
#, c-format
msgid "Total number of words: %d"
msgstr "Lon iomln na bhfocal: %d"
-#: ../spell.c:7655
#, c-format
msgid "Writing suggestion file %s ..."
msgstr "Comhad molta %s scrobh ..."
-#: ../spell.c:7707 ../spell.c:7927
#, c-format
msgid "Estimated runtime memory use: %d bytes"
msgstr "Cuimhne measta a bheith in sid le linn rite: %d beart"
-#: ../spell.c:7820
msgid "E751: Output file name must not have region name"
msgstr "E751: N cheadatear ainm rigiin in ainm an aschomhaid"
-#: ../spell.c:7822
msgid "E754: Only up to 8 regions supported"
msgstr "E754: N thacatear le nos m n 8 rigin"
-#: ../spell.c:7846
#, c-format
msgid "E755: Invalid region in %s"
msgstr "E755: Rigin neamhbhail i %s"
-#: ../spell.c:7907
msgid "Warning: both compounding and NOBREAK specified"
msgstr "Rabhadh: sonraodh comhfhocail agus NOBREAK araon"
-#: ../spell.c:7920
#, c-format
msgid "Writing spell file %s ..."
msgstr "Comhad litrithe %s scrobh ..."
-#: ../spell.c:7925
msgid "Done!"
msgstr "Crochnaithe!"
-#: ../spell.c:8034
#, c-format
-msgid "E765: 'spellfile' does not have %<PRId64> entries"
-msgstr "E765: nl %<PRId64> iontril i 'spellfile'"
+msgid "E765: 'spellfile' does not have %ld entries"
+msgstr "E765: nl %ld iontril i 'spellfile'"
-#: ../spell.c:8074
-#, fuzzy, c-format
+#, c-format
msgid "Word '%.*s' removed from %s"
-msgstr "Baineadh focal %s"
+msgstr "Baineadh focal '%.*s' %s"
-#: ../spell.c:8117
-#, fuzzy, c-format
+#, c-format
msgid "Word '%.*s' added to %s"
-msgstr "Cuireadh focal le %s"
+msgstr "Cuireadh focal '%.*s' le %s"
-#: ../spell.c:8381
msgid "E763: Word characters differ between spell files"
msgstr "E763: T carachtair dhifrila fhocail sna comhaid litrithe"
-#: ../spell.c:8684
-msgid "Sorry, no suggestions"
-msgstr "T brn orm, nl aon mholadh ann"
-
-#: ../spell.c:8687
-#, c-format
-msgid "Sorry, only %<PRId64> suggestions"
-msgstr "T brn orm, nl ach %<PRId64> moladh ann"
-
-#. for when 'cmdheight' > 1
-#. avoid more prompt
-#: ../spell.c:8704
-#, c-format
-msgid "Change \"%.*s\" to:"
-msgstr "Athraigh \"%.*s\" go:"
-
-#: ../spell.c:8737
-#, c-format
-msgid " < \"%.*s\""
-msgstr " < \"%.*s\""
-
-#: ../spell.c:8882
-msgid "E752: No previous spell replacement"
-msgstr "E752: Nl aon ionada litrithe roimhe seo"
-
-#: ../spell.c:8925
-#, c-format
-msgid "E753: Not found: %s"
-msgstr "E753: Gan aimsi: %s"
-
-#: ../spell.c:9276
-#, c-format
-msgid "E778: This does not look like a .sug file: %s"
-msgstr "E778: Nl s cosil le comhad .sug: %s"
-
-#: ../spell.c:9282
-#, c-format
-msgid "E779: Old .sug file, needs to be updated: %s"
-msgstr "E779: Seanchomhad .sug, t g lena nuashonr: %s"
-
-#: ../spell.c:9286
-#, c-format
-msgid "E780: .sug file is for newer version of Vim: %s"
-msgstr "E780: Oibronn an comhad .sug le leagan nos nua de Vim: %s"
-
-#: ../spell.c:9295
-#, c-format
-msgid "E781: .sug file doesn't match .spl file: %s"
-msgstr "E781: Nl an comhad .sug comhoirinach leis an gcomhad .spl: %s"
-
-#: ../spell.c:9305
-#, c-format
-msgid "E782: error while reading .sug file: %s"
-msgstr "E782: earrid agus comhad .sug lamh: %s"
-
#. This should have been checked when generating the .spl
-#. file.
-#: ../spell.c:11575
+#. * file.
msgid "E783: duplicate char in MAP entry"
msgstr "E783: carachtar dblach in iontril MAP"
-#: ../syntax.c:266
msgid "No Syntax items defined for this buffer"
msgstr "Nl aon mhr chomhrire sainmhnithe le haghaidh an mhaolin seo"
-#: ../syntax.c:3083 ../syntax.c:3104 ../syntax.c:3127
#, c-format
msgid "E390: Illegal argument: %s"
msgstr "E390: Argint neamhcheadaithe: %s"
-#: ../syntax.c:3299
+msgid "syntax iskeyword "
+msgstr "comhrir iskeyword "
+
#, c-format
msgid "E391: No such syntax cluster: %s"
msgstr "E391: Nl a leithid de mhogall comhrire: %s"
-#: ../syntax.c:3433
msgid "syncing on C-style comments"
msgstr "ag sioncrn ar nta den ns C"
-#: ../syntax.c:3439
msgid "no syncing"
msgstr "gan sioncrn"
-#: ../syntax.c:3441
msgid "syncing starts "
msgstr "tosaonn an sioncrn "
-#: ../syntax.c:3443 ../syntax.c:3506
msgid " lines before top line"
msgstr " lnte roimh an bharr"
-#: ../syntax.c:3448
msgid ""
"\n"
"--- Syntax sync items ---"
@@ -5749,7 +5454,6 @@ msgstr ""
"\n"
"--- Mreanna Comhrire Sionc ---"
-#: ../syntax.c:3452
msgid ""
"\n"
"syncing on items"
@@ -5757,7 +5461,6 @@ msgstr ""
"\n"
"ag sioncrn ar mhreanna"
-#: ../syntax.c:3457
msgid ""
"\n"
"--- Syntax items ---"
@@ -5765,275 +5468,217 @@ msgstr ""
"\n"
"--- Mreanna comhrire ---"
-#: ../syntax.c:3475
#, c-format
msgid "E392: No such syntax cluster: %s"
msgstr "E392: Nl a leithid de mhogall comhrire: %s"
-#: ../syntax.c:3497
msgid "minimal "
msgstr "osta "
-#: ../syntax.c:3503
msgid "maximal "
msgstr "uasta "
-#: ../syntax.c:3513
msgid "; match "
msgstr "; meaitseil "
-#: ../syntax.c:3515
msgid " line breaks"
msgstr " bristeacha lne"
-#: ../syntax.c:4076
msgid "E395: contains argument not accepted here"
msgstr "E395: t argint ann nach nglactar leis anseo"
-#: ../syntax.c:4096
-#, fuzzy
msgid "E844: invalid cchar value"
-msgstr "E474: Argint neamhbhail"
+msgstr "E844: luach neamhbhail cchar"
-#: ../syntax.c:4107
msgid "E393: group[t]here not accepted here"
msgstr "E393: n ghlactar le group[t]here anseo"
-#: ../syntax.c:4126
#, c-format
msgid "E394: Didn't find region item for %s"
msgstr "E394: Nor aimsodh mr rigiin le haghaidh %s"
-#: ../syntax.c:4188
msgid "E397: Filename required"
msgstr "E397: T g le hainm comhaid"
-#: ../syntax.c:4221
-#, fuzzy
msgid "E847: Too many syntax includes"
-msgstr "E77: An iomarca ainmneacha comhaid"
+msgstr "E847: An iomarca comhad comhrire in sid"
-#: ../syntax.c:4303
#, c-format
msgid "E789: Missing ']': %s"
msgstr "E789: ']' ar iarraidh: %s"
-#: ../syntax.c:4531
+#, c-format
+msgid "E890: trailing char after ']': %s]%s"
+msgstr "E890: carachtar tar is ']': %s]%s"
+
#, c-format
msgid "E398: Missing '=': %s"
msgstr "E398: '=' ar iarraidh: %s"
-#: ../syntax.c:4666
#, c-format
msgid "E399: Not enough arguments: syntax region %s"
msgstr "E399: Nl go leor argint ann: rigin comhrire %s"
-#: ../syntax.c:4870
-#, fuzzy
msgid "E848: Too many syntax clusters"
-msgstr "E391: Nl a leithid de mhogall comhrire: %s"
+msgstr "E848: An iomarca mogall comhrire"
-#: ../syntax.c:4954
msgid "E400: No cluster specified"
msgstr "E400: Nor sonraodh mogall"
-#. end delimiter not found
-#: ../syntax.c:4986
#, c-format
msgid "E401: Pattern delimiter not found: %s"
msgstr "E401: Teormharcir patrin gan aimsi: %s"
-#: ../syntax.c:5049
#, c-format
msgid "E402: Garbage after pattern: %s"
msgstr "E402: Dramhal i ndiaidh patrin: %s"
-#: ../syntax.c:5120
msgid "E403: syntax sync: line continuations pattern specified twice"
msgstr "E403: comhrir sionc: tugadh patrn leanint lne faoi dh"
-#: ../syntax.c:5169
#, c-format
msgid "E404: Illegal arguments: %s"
msgstr "E404: Argint neamhcheadaithe: %s"
-#: ../syntax.c:5217
#, c-format
msgid "E405: Missing equal sign: %s"
msgstr "E405: Sn chothroime ar iarraidh: %s"
-#: ../syntax.c:5222
#, c-format
msgid "E406: Empty argument: %s"
msgstr "E406: Argint fholamh: %s"
-#: ../syntax.c:5240
#, c-format
msgid "E407: %s not allowed here"
msgstr "E407: n cheadatear %s anseo"
-#: ../syntax.c:5246
#, c-format
msgid "E408: %s must be first in contains list"
msgstr "E408: n folir %s a thabhairt ar dts sa liosta `contains'"
-#: ../syntax.c:5304
#, c-format
msgid "E409: Unknown group name: %s"
msgstr "E409: Ainm anaithnid grpa: %s"
-#: ../syntax.c:5512
#, c-format
msgid "E410: Invalid :syntax subcommand: %s"
msgstr "E410: Fo-ord neamhbhail :syntax: %s"
-#: ../syntax.c:5854
msgid ""
" TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN"
msgstr ""
+" IOMLN LON MEAITS IS MOILLE MEN AINM PATRN"
-#: ../syntax.c:6146
msgid "E679: recursive loop loading syncolor.vim"
msgstr "E679: lb athchrsach agus syncolor.vim lucht"
-#: ../syntax.c:6256
#, c-format
msgid "E411: highlight group not found: %s"
msgstr "E411: Grpa aibhsithe gan aimsi: %s"
-#: ../syntax.c:6278
#, c-format
msgid "E412: Not enough arguments: \":highlight link %s\""
msgstr "E412: Easpa argint: \":highlight link %s\""
-#: ../syntax.c:6284
#, c-format
msgid "E413: Too many arguments: \":highlight link %s\""
msgstr "E413: An iomarca argint: \":highlight link %s\""
-#: ../syntax.c:6302
msgid "E414: group has settings, highlight link ignored"
msgstr ""
"E414: t socruithe ag an ghrpa, ag danamh neamhshuim ar nasc aibhsithe"
-#: ../syntax.c:6367
#, c-format
msgid "E415: unexpected equal sign: %s"
msgstr "E415: sn chothroime gan choinne: %s"
-#: ../syntax.c:6395
#, c-format
msgid "E416: missing equal sign: %s"
msgstr "E416: sn chothroime ar iarraidh: %s"
-#: ../syntax.c:6418
#, c-format
msgid "E417: missing argument: %s"
msgstr "E417: argint ar iarraidh: %s"
-#: ../syntax.c:6446
#, c-format
msgid "E418: Illegal value: %s"
msgstr "E418: Luach neamhcheadaithe: %s"
-#: ../syntax.c:6496
msgid "E419: FG color unknown"
msgstr "E419: Dath anaithnid an chlra"
-#: ../syntax.c:6504
msgid "E420: BG color unknown"
msgstr "E420: Dath anaithnid an tulra"
-#: ../syntax.c:6564
#, c-format
msgid "E421: Color name or number not recognized: %s"
msgstr "E421: Nor aithnodh ainm/uimhir an datha: %s"
-#: ../syntax.c:6714
#, c-format
msgid "E422: terminal code too long: %s"
msgstr "E422: cd teirminil rfhada: %s"
-#: ../syntax.c:6753
#, c-format
msgid "E423: Illegal argument: %s"
msgstr "E423: Argint neamhcheadaithe: %s"
-#: ../syntax.c:6925
msgid "E424: Too many different highlighting attributes in use"
msgstr "E424: An iomarca trithe aibhsithe in sid"
-#: ../syntax.c:7427
msgid "E669: Unprintable character in group name"
msgstr "E669: Carachtar neamhghrafach in ainm grpa"
-#: ../syntax.c:7434
msgid "W18: Invalid character in group name"
msgstr "W18: Carachtar neamhbhail in ainm grpa"
-#: ../syntax.c:7448
msgid "E849: Too many highlight and syntax groups"
-msgstr ""
+msgstr "E849: An iomarca grpa aibhsithe agus comhrire"
-#: ../tag.c:104
msgid "E555: at bottom of tag stack"
msgstr "E555: in ochtar na cruaiche clibeanna"
-#: ../tag.c:105
msgid "E556: at top of tag stack"
msgstr "E556: in uachtar na cruaiche clibeanna"
-#: ../tag.c:380
msgid "E425: Cannot go before first matching tag"
msgstr "E425: N fidir a dhul roimh an chad chlib chomhoirinach"
-#: ../tag.c:504
#, c-format
msgid "E426: tag not found: %s"
msgstr "E426: clib gan aimsi: %s"
-#: ../tag.c:528
msgid " # pri kind tag"
msgstr " # tos cin clib"
-#: ../tag.c:531
msgid "file\n"
msgstr "comhad\n"
-#: ../tag.c:829
msgid "E427: There is only one matching tag"
msgstr "E427: T aon chlib chomhoirinach amhin"
-#: ../tag.c:831
msgid "E428: Cannot go beyond last matching tag"
msgstr "E428: N fidir a dhul thar an chlib chomhoirinach deireanach"
-#: ../tag.c:850
#, c-format
msgid "File \"%s\" does not exist"
msgstr "Nl a leithid de chomhad \"%s\" ann"
#. Give an indication of the number of matching tags
-#: ../tag.c:859
#, c-format
msgid "tag %d of %d%s"
msgstr "clib %d as %d%s"
-#: ../tag.c:862
msgid " or more"
msgstr " n os a chionn"
-#: ../tag.c:864
msgid " Using tag with different case!"
msgstr " Ag sid clib le cs eile!"
-#: ../tag.c:909
#, c-format
msgid "E429: File \"%s\" does not exist"
msgstr "E429: Nl a leithid de chomhad \"%s\""
#. Highlight title
-#: ../tag.c:960
msgid ""
"\n"
" # TO tag FROM line in file/text"
@@ -6041,79 +5686,66 @@ msgstr ""
"\n"
" # Go clib lne i gcomhad/tacs"
-#: ../tag.c:1303
#, c-format
msgid "Searching tags file %s"
msgstr "Comhad clibeanna %s chuardach"
-#: ../tag.c:1545
+#, c-format
+msgid "E430: Tag file path truncated for %s\n"
+msgstr "E430: Teascadh conair an chomhaid clibeanna le haghaidh %s\n"
+
msgid "Ignoring long line in tags file"
msgstr "Ag danamh neamhaird de lne fhada sa chomhad clibeanna"
-#: ../tag.c:1915
#, c-format
msgid "E431: Format error in tags file \"%s\""
msgstr "E431: Earrid fhormide i gcomhad clibeanna \"%s\""
-#: ../tag.c:1917
#, c-format
-msgid "Before byte %<PRId64>"
-msgstr "Roimh bheart %<PRId64>"
+msgid "Before byte %ld"
+msgstr "Roimh bheart %ld"
-#: ../tag.c:1929
#, c-format
msgid "E432: Tags file not sorted: %s"
msgstr "E432: Comhad clibeanna gan srtil: %s"
#. never opened any tags file
-#: ../tag.c:1960
msgid "E433: No tags file"
msgstr "E433: Nl aon chomhad clibeanna"
-#: ../tag.c:2536
msgid "E434: Can't find tag pattern"
msgstr "E434: Patrn clibe gan aimsi"
-#: ../tag.c:2544
msgid "E435: Couldn't find tag, just guessing!"
msgstr "E435: Clib gan aimsi, ag tabhairt buille faoi thuairim!"
-#: ../tag.c:2797
-#, fuzzy, c-format
+#, c-format
msgid "Duplicate field name: %s"
-msgstr "Clib dhblach i %s lne %d: %s"
+msgstr "Ainm rimse dbailte: %s"
-#: ../term.c:1442
msgid "' not known. Available builtin terminals are:"
msgstr "' anaithnid. Is iad seo na teirminil insuite:"
-#: ../term.c:1463
msgid "defaulting to '"
msgstr "ramhshocr = '"
-#: ../term.c:1731
msgid "E557: Cannot open termcap file"
msgstr "E557: N fidir an comhad termcap a oscailt"
-#: ../term.c:1735
msgid "E558: Terminal entry not found in terminfo"
msgstr "E558: Iontril teirminil gan aimsi sa terminfo"
-#: ../term.c:1737
msgid "E559: Terminal entry not found in termcap"
msgstr "E559: Iontril teirminil gan aimsi sa termcap"
-#: ../term.c:1878
#, c-format
msgid "E436: No \"%s\" entry in termcap"
msgstr "E436: Nl aon iontril \"%s\" sa termcap"
-#: ../term.c:2249
msgid "E437: terminal capability \"cm\" required"
msgstr "E437: t g leis an chumas teirminil \"cm\""
#. Highlight title
-#: ../term.c:4376
msgid ""
"\n"
"--- Terminal keys ---"
@@ -6121,169 +5753,342 @@ msgstr ""
"\n"
"--- Eochracha teirminil ---"
-#: ../ui.c:481
+msgid "Cannot open $VIMRUNTIME/rgb.txt"
+msgstr "N fidir $VIMRUNTIME/rgb.txt a oscailt"
+
+msgid "new shell started\n"
+msgstr "tosaodh blaosc nua\n"
+
msgid "Vim: Error reading input, exiting...\n"
msgstr "Vim: Earrid agus an t-inchomhad lamh; ag scor...\n"
+msgid "Used CUT_BUFFER0 instead of empty selection"
+msgstr "sideadh CUT_BUFFER0 in ionad roghnchin folaimh"
+
#. This happens when the FileChangedRO autocommand changes the
#. * file in a way it becomes shorter.
-#: ../undo.c:379
-#, fuzzy
msgid "E881: Line count changed unexpectedly"
-msgstr "E787: Athraodh an maoln gan choinne"
+msgstr "E881: Athraodh lon na lnte gan sil leis"
+
+#. must display the prompt
+msgid "No undo possible; continue anyway"
+msgstr "N fidir a cheal; lean ar aghaidh mar sin fin"
-#: ../undo.c:627
-#, fuzzy, c-format
+#, c-format
msgid "E828: Cannot open undo file for writing: %s"
-msgstr "E212: N fidir comhad a oscailt chun scrobh ann"
+msgstr "E828: N fidir comhad staire a oscailt le scrobh ann: %s"
-#: ../undo.c:717
#, c-format
msgid "E825: Corrupted undo file (%s): %s"
-msgstr ""
+msgstr "E825: Comhad staire truaillithe (%s): %s"
-#: ../undo.c:1039
msgid "Cannot write undo file in any directory in 'undodir'"
-msgstr ""
+msgstr "N fidir comhad staire a shbhil in aon chomhadlann in 'undodir'"
-#: ../undo.c:1074
#, c-format
msgid "Will not overwrite with undo file, cannot read: %s"
-msgstr ""
+msgstr "N forscrobhfar le comhad staire, n fidir a lamh: %s"
-#: ../undo.c:1092
#, c-format
msgid "Will not overwrite, this is not an undo file: %s"
-msgstr ""
+msgstr "N forscrobhfar , n comhad staire seo: %s"
-#: ../undo.c:1108
msgid "Skipping undo file write, nothing to undo"
-msgstr ""
+msgstr "N scrobhfar an comhad staire, nl aon stair ann"
-#: ../undo.c:1121
-#, fuzzy, c-format
+#, c-format
msgid "Writing undo file: %s"
-msgstr "Comhad viminfo \"%s\" scrobh"
+msgstr "Comhad staire scrobh: %s"
-#: ../undo.c:1213
-#, fuzzy, c-format
+#, c-format
msgid "E829: write error in undo file: %s"
-msgstr "E297: Earrid sa scrobh i gcomhad babhtla"
+msgstr "E829: earrid le linn scrofa i gcomhad staire: %s"
-#: ../undo.c:1280
#, c-format
msgid "Not reading undo file, owner differs: %s"
-msgstr ""
+msgstr "Nor ladh an comhad staire; inir difriil: %s"
-#: ../undo.c:1292
-#, fuzzy, c-format
+#, c-format
msgid "Reading undo file: %s"
-msgstr "Comhad focail %s lamh ..."
+msgstr "Comhad staire lamh: %s"
-#: ../undo.c:1299
-#, fuzzy, c-format
+#, c-format
msgid "E822: Cannot open undo file for reading: %s"
-msgstr "E195: N fidir an comhad viminfo a oscailt chun lamh"
+msgstr "E822: N fidir an comhad staire a oscailt lena lamh: %s"
-#: ../undo.c:1308
-#, fuzzy, c-format
+#, c-format
msgid "E823: Not an undo file: %s"
-msgstr "E753: Gan aimsi: %s"
+msgstr "E823: N comhad staire : %s"
+
+#, c-format
+msgid "E832: Non-encrypted file has encrypted undo file: %s"
+msgstr "E832: Comhad neamhchriptithe le comhad staire criptithe: %s"
-#: ../undo.c:1313
-#, fuzzy, c-format
+#, c-format
+msgid "E826: Undo file decryption failed: %s"
+msgstr "E826: Norbh fhidir an comhad staire a dhchripti: %s"
+
+#, c-format
+msgid "E827: Undo file is encrypted: %s"
+msgstr "E827: T an comhad staire criptithe: %s"
+
+#, c-format
msgid "E824: Incompatible undo file: %s"
-msgstr "E484: N fidir comhad %s a oscailt"
+msgstr "E824: Comhad staire neamh-chomhoirinach: %s"
-#: ../undo.c:1328
msgid "File contents changed, cannot use undo info"
-msgstr ""
+msgstr "Athraodh bhar an chomhaid, n fidir comhad staire a sid"
-#: ../undo.c:1497
-#, fuzzy, c-format
+#, c-format
msgid "Finished reading undo file %s"
-msgstr "deireadh ag foinsi %s"
+msgstr "Comhad staire %s lite"
-#: ../undo.c:1586 ../undo.c:1812
msgid "Already at oldest change"
msgstr "Ag an athr is sine cheana"
-#: ../undo.c:1597 ../undo.c:1814
msgid "Already at newest change"
msgstr "Ag an athr is nua cheana"
-#: ../undo.c:1806
-#, fuzzy, c-format
-msgid "E830: Undo number %<PRId64> not found"
-msgstr "Nor aimsodh ceal uimhir a %<PRId64>"
+#, c-format
+msgid "E830: Undo number %ld not found"
+msgstr "E830: Mr staire %ld gan aimsi"
-#: ../undo.c:1979
msgid "E438: u_undo: line numbers wrong"
msgstr "E438: u_undo: lne-uimhreacha mchearta"
-#: ../undo.c:2183
msgid "more line"
msgstr "lne eile"
-#: ../undo.c:2185
msgid "more lines"
msgstr "lne eile"
-#: ../undo.c:2187
msgid "line less"
msgstr "lne nos l"
-#: ../undo.c:2189
msgid "fewer lines"
msgstr "lne nos l"
-#: ../undo.c:2193
msgid "change"
msgstr "athr"
-#: ../undo.c:2195
msgid "changes"
msgstr "athr"
-#: ../undo.c:2225
#, c-format
-msgid "%<PRId64> %s; %s #%<PRId64> %s"
-msgstr "%<PRId64> %s; %s #%<PRId64> %s"
+msgid "%ld %s; %s #%ld %s"
+msgstr "%ld %s; %s #%ld %s"
-#: ../undo.c:2228
msgid "before"
msgstr "roimh"
-#: ../undo.c:2228
msgid "after"
msgstr "tar is"
-#: ../undo.c:2325
msgid "Nothing to undo"
msgstr "Nl faic le ceal"
-#: ../undo.c:2330
msgid "number changes when saved"
-msgstr ""
+msgstr "athraonn an uimhir ag am sbhla"
-#: ../undo.c:2360
#, c-format
-msgid "%<PRId64> seconds ago"
-msgstr "%<PRId64> soicind shin"
+msgid "%ld seconds ago"
+msgstr "%ld soicind shin"
-#: ../undo.c:2372
msgid "E790: undojoin is not allowed after undo"
msgstr "E790: n cheadatear \"undojoin\" tar is \"undo\""
-#: ../undo.c:2466
msgid "E439: undo list corrupt"
msgstr "E439: t an liosta cealaithe truaillithe"
-#: ../undo.c:2495
msgid "E440: undo line missing"
msgstr "E440: lne chealaithe ar iarraidh"
-#: ../version.c:600
+#, c-format
+msgid "E122: Function %s already exists, add ! to replace it"
+msgstr "E122: T feidhm %s ann cheana, cuir ! leis an ord chun a asiti"
+
+msgid "E717: Dictionary entry already exists"
+msgstr "E717: T an iontril foclra seo ann cheana"
+
+msgid "E718: Funcref required"
+msgstr "E718: T g le Funcref"
+
+#, c-format
+msgid "E130: Unknown function: %s"
+msgstr "E130: Feidhm anaithnid: %s"
+
+#, c-format
+msgid "E125: Illegal argument: %s"
+msgstr "E125: Argint neamhcheadaithe: %s"
+
+#, c-format
+msgid "E853: Duplicate argument name: %s"
+msgstr "E853: Argint dhbailte: %s"
+
+#, c-format
+msgid "E740: Too many arguments for function %s"
+msgstr "E740: An iomarca argint d'fheidhm %s"
+
+#, c-format
+msgid "E116: Invalid arguments for function %s"
+msgstr "E116: Argint neamhbhail d'fheidhm %s"
+
+msgid "E132: Function call depth is higher than 'maxfuncdepth'"
+msgstr "E132: Doimhneacht na nglaonna nos m n 'maxfuncdepth'"
+
+#, c-format
+msgid "calling %s"
+msgstr "%s glao"
+
+#, c-format
+msgid "%s aborted"
+msgstr "%s tobscortha"
+
+#, c-format
+msgid "%s returning #%ld"
+msgstr "%s ag aisfhilleadh #%ld"
+
+#, c-format
+msgid "%s returning %s"
+msgstr "%s ag aisfhilleadh %s"
+
+msgid "E699: Too many arguments"
+msgstr "E699: An iomarca argint"
+
+#, c-format
+msgid "E117: Unknown function: %s"
+msgstr "E117: Feidhm anaithnid: %s"
+
+#, c-format
+msgid "E933: Function was deleted: %s"
+msgstr "E933: Scriosadh an fheidhm: %s"
+
+#, c-format
+msgid "E119: Not enough arguments for function: %s"
+msgstr "E119: Nl go leor feidhmeanna d'fheidhm: %s"
+
+#, c-format
+msgid "E120: Using <SID> not in a script context: %s"
+msgstr "E120: <SID> sid ach gan a bheith i gcomhthacs scripte: %s"
+
+#, c-format
+msgid "E725: Calling dict function without Dictionary: %s"
+msgstr "E725: Feidhm 'dict' ghlao gan Foclir: %s"
+
+msgid "E129: Function name required"
+msgstr "E129: T g le hainm feidhme"
+
+#, c-format
+msgid "E128: Function name must start with a capital or \"s:\": %s"
+msgstr ""
+"E128: Caithfidh ceannlitir a bheith ar dts ainm feidhme, n \"s:\": %s"
+
+#, c-format
+msgid "E884: Function name cannot contain a colon: %s"
+msgstr "E884: N cheadatear idirstad in ainm feidhme: %s"
+
+#, c-format
+msgid "E123: Undefined function: %s"
+msgstr "E123: Feidhm gan sainmhni: %s"
+
+#, c-format
+msgid "E124: Missing '(': %s"
+msgstr "E124: '(' ar iarraidh: %s"
+
+msgid "E862: Cannot use g: here"
+msgstr "E862: N fidir g: a sid anseo"
+
+#, c-format
+msgid "E932: Closure function should not be at top level: %s"
+msgstr "E932: N mr don chlabhsr a bheith ag an mbarrleibhal: %s"
+
+msgid "E126: Missing :endfunction"
+msgstr "E126: :endfunction ar iarraidh"
+
+#, c-format
+msgid "E707: Function name conflicts with variable: %s"
+msgstr "E707: Tagann ainm na feidhme salach ar athrg: %s"
+
+#, c-format
+msgid "E127: Cannot redefine function %s: It is in use"
+msgstr ""
+"E127: N fidir sainmhni nua a dhanamh ar fheidhm %s: In sid cheana"
+
+#, c-format
+msgid "E746: Function name does not match script file name: %s"
+msgstr ""
+"E746: Nl ainm na feidhme comhoirinach le hainm comhaid na scripte: %s"
+
+#, c-format
+msgid "E131: Cannot delete function %s: It is in use"
+msgstr "E131: N fidir feidhm %s a scriosadh: T s in sid faoi lthair"
+
+msgid "E133: :return not inside a function"
+msgstr "E133: Caithfidh :return a bheith isteach i bhfeidhm"
+
+#, c-format
+msgid "E107: Missing parentheses: %s"
+msgstr "E107: Libn ar iarraidh: %s"
+
+msgid ""
+"\n"
+"MS-Windows 64-bit GUI version"
+msgstr ""
+"\n"
+"Leagan GUI 64 giotn MS-Windows"
+
+msgid ""
+"\n"
+"MS-Windows 32-bit GUI version"
+msgstr ""
+"\n"
+"Leagan GUI 32 giotn MS-Windows"
+
+msgid " with OLE support"
+msgstr " le tacaocht OLE"
+
+msgid ""
+"\n"
+"MS-Windows 64-bit console version"
+msgstr ""
+"\n"
+"Leagan consil 64 giotn MS-Windows"
+
+msgid ""
+"\n"
+"MS-Windows 32-bit console version"
+msgstr ""
+"\n"
+"Leagan consil 32 giotn MS-Windows"
+
+msgid ""
+"\n"
+"MacOS X (unix) version"
+msgstr ""
+"\n"
+"Leagan MacOS X (unix)"
+
+msgid ""
+"\n"
+"MacOS X version"
+msgstr ""
+"\n"
+"Leagan MacOS X"
+
+msgid ""
+"\n"
+"MacOS version"
+msgstr ""
+"\n"
+"Leagan MacOS"
+
+msgid ""
+"\n"
+"OpenVMS version"
+msgstr ""
+"\n"
+"Leagan OpenVMS"
+
msgid ""
"\n"
"Included patches: "
@@ -6291,7 +6096,6 @@ msgstr ""
"\n"
"Paist san ireamh: "
-#: ../version.c:627
msgid ""
"\n"
"Extra patches: "
@@ -6299,11 +6103,9 @@ msgstr ""
"\n"
"Paist sa bhreis: "
-#: ../version.c:639 ../version.c:864
msgid "Modified by "
msgstr "Mionathraithe ag "
-#: ../version.c:646
msgid ""
"\n"
"Compiled "
@@ -6312,11 +6114,9 @@ msgstr ""
"Tiomsaithe "
# with "Tiomsaithe"
-#: ../version.c:649
msgid "by "
msgstr "ag "
-#: ../version.c:660
msgid ""
"\n"
"Huge version "
@@ -6324,656 +6124,952 @@ msgstr ""
"\n"
"Leagan ollmhr "
-#: ../version.c:661
+msgid ""
+"\n"
+"Big version "
+msgstr ""
+"\n"
+"Leagan mr "
+
+msgid ""
+"\n"
+"Normal version "
+msgstr ""
+"\n"
+"Leagan coitianta "
+
+msgid ""
+"\n"
+"Small version "
+msgstr ""
+"\n"
+"Leagan beag "
+
+msgid ""
+"\n"
+"Tiny version "
+msgstr ""
+"\n"
+"Leagan beag bdeach "
+
msgid "without GUI."
msgstr "gan GUI."
-#: ../version.c:662
+msgid "with GTK3 GUI."
+msgstr "le GUI GTK3."
+
+msgid "with GTK2-GNOME GUI."
+msgstr "le GUI GTK2-GNOME."
+
+msgid "with GTK2 GUI."
+msgstr "le GUI GTK2."
+
+msgid "with X11-Motif GUI."
+msgstr "le GUI X11-Motif."
+
+msgid "with X11-neXtaw GUI."
+msgstr "le GUI X11-neXtaw."
+
+msgid "with X11-Athena GUI."
+msgstr "le GUI X11-Athena."
+
+msgid "with Photon GUI."
+msgstr "le GUI Photon."
+
+msgid "with GUI."
+msgstr "le GUI."
+
+msgid "with Carbon GUI."
+msgstr "le GUI Carbon."
+
+msgid "with Cocoa GUI."
+msgstr "le GUI Cocoa."
+
+msgid "with (classic) GUI."
+msgstr "le GUI (clasaiceach)."
+
msgid " Features included (+) or not (-):\n"
msgstr " Gnithe san ireamh (+) n nach bhfuil (-):\n"
-#: ../version.c:667
msgid " system vimrc file: \""
msgstr " comhad vimrc an chrais: \""
-#: ../version.c:672
msgid " user vimrc file: \""
msgstr " comhad vimrc sideora: \""
-#: ../version.c:677
msgid " 2nd user vimrc file: \""
msgstr " dara comhad vimrc sideora: \""
-#: ../version.c:682
msgid " 3rd user vimrc file: \""
msgstr " tr comhad vimrc sideora: \""
-#: ../version.c:687
msgid " user exrc file: \""
msgstr " comhad exrc sideora: \""
-#: ../version.c:692
msgid " 2nd user exrc file: \""
msgstr " dara comhad sideora exrc: \""
-#: ../version.c:699
+msgid " system gvimrc file: \""
+msgstr " comhad gvimrc crais: \""
+
+msgid " user gvimrc file: \""
+msgstr " comhad gvimrc sideora: \""
+
+msgid "2nd user gvimrc file: \""
+msgstr "dara comhad gvimrc sideora: \""
+
+msgid "3rd user gvimrc file: \""
+msgstr "tr comhad gvimrc sideora: \""
+
+msgid " defaults file: \""
+msgstr " comhad na ramhshocruithe: \""
+
+msgid " system menu file: \""
+msgstr " comhad roghchlir an chrais: \""
+
msgid " fall-back for $VIM: \""
msgstr " rogha thnaisteach do $VIM: \""
-#: ../version.c:705
msgid " f-b for $VIMRUNTIME: \""
msgstr " f-b do $VIMRUNTIME: \""
-#: ../version.c:709
msgid "Compilation: "
msgstr "Tioms: "
-#: ../version.c:712
+msgid "Compiler: "
+msgstr "Tiomsaitheoir: "
+
msgid "Linking: "
msgstr "Nascil: "
-#: ../version.c:717
msgid " DEBUG BUILD"
msgstr " LEAGAN DFHABHTAITHE"
-#: ../version.c:767
msgid "VIM - Vi IMproved"
msgstr "VIM - Vi IMproved"
-#: ../version.c:769
msgid "version "
msgstr "leagan "
-#: ../version.c:770
msgid "by Bram Moolenaar et al."
msgstr "le Bram Moolenaar et al."
-#: ../version.c:774
msgid "Vim is open source and freely distributable"
msgstr "Is saorbhogearra Vim"
-#: ../version.c:776
msgid "Help poor children in Uganda!"
msgstr "Tabhair cabhair do phist bochta in Uganda!"
-#: ../version.c:777
msgid "type :help iccf<Enter> for information "
msgstr "clscrobh :help iccf<Enter> chun eolas a fhil "
-#: ../version.c:779
msgid "type :q<Enter> to exit "
msgstr "clscrobh :q<Enter> chun scoir "
-#: ../version.c:780
msgid "type :help<Enter> or <F1> for on-line help"
msgstr "clscrobh :help<Enter> n <F1> le haghaidh cabhrach ar lne"
-#: ../version.c:781
-msgid "type :help version7<Enter> for version info"
-msgstr "clscrobh :help version7<Enter> le haghaidh eolais faoin leagan"
+msgid "type :help version8<Enter> for version info"
+msgstr "clscrobh :help version8<Enter> le haghaidh eolais faoin leagan"
-#: ../version.c:784
msgid "Running in Vi compatible mode"
msgstr "Sa mhd comhoirinachta Vi"
-#: ../version.c:785
msgid "type :set nocp<Enter> for Vim defaults"
msgstr ""
"clscrobh :set nocp<Enter> chun na ramhshocruithe Vim a thaispeint"
-#: ../version.c:786
msgid "type :help cp-default<Enter> for info on this"
msgstr ""
"clscrobh :help cp-default<Enter> chun nos m eolas faoi seo a fhil"
-#: ../version.c:827
+# don't see where to localize "Help->Orphans"? --kps
+msgid "menu Help->Orphans for information "
+msgstr "roghchlr Help->Orphans chun eolas a fhil "
+
+msgid "Running modeless, typed text is inserted"
+msgstr " rith gan mhid, ag ions an tacs at iontrilte"
+
+# same problem --kps
+msgid "menu Edit->Global Settings->Toggle Insert Mode "
+msgstr "roghchlr Edit->Global Settings->Toggle Insert Mode "
+
+msgid " for two modes "
+msgstr " do dh mhd "
+
+# same problem --kps
+msgid "menu Edit->Global Settings->Toggle Vi Compatible"
+msgstr "roghchlr Edit->Global Settings->Toggle Vi Compatible"
+
+msgid " for Vim defaults "
+msgstr " le haghaidh ramhshocruithe Vim "
+
msgid "Sponsor Vim development!"
msgstr "B i d'urraitheoir Vim!"
-#: ../version.c:828
msgid "Become a registered Vim user!"
msgstr "B i d'sideoir clraithe Vim!"
-#: ../version.c:831
msgid "type :help sponsor<Enter> for information "
msgstr "clscrobh :help sponsor<Enter> chun eolas a fhil "
-#: ../version.c:832
msgid "type :help register<Enter> for information "
msgstr "clscrobh :help register<Enter> chun eolas a fhil "
-#: ../version.c:834
msgid "menu Help->Sponsor/Register for information "
msgstr "roghchlr Help->Sponsor/Register chun eolas a fhil "
-#: ../window.c:119
msgid "Already only one window"
msgstr "Nl ach aon fhuinneog amhin ann cheana"
-#: ../window.c:224
msgid "E441: There is no preview window"
msgstr "E441: Nl aon fhuinneog ramhamhairc ann"
-#: ../window.c:559
msgid "E442: Can't split topleft and botright at the same time"
msgstr "E442: N fidir a scoilteadh topleft agus botright san am canna"
-#: ../window.c:1228
msgid "E443: Cannot rotate when another window is split"
msgstr "E443: N fidir rothl nuair at fuinneog eile scoilte"
-#: ../window.c:1803
msgid "E444: Cannot close last window"
msgstr "E444: N fidir an fhuinneog dheiridh a dhnadh"
-#: ../window.c:1810
msgid "E813: Cannot close autocmd window"
msgstr "E813: N fidir fuinneog autocmd a dhnadh"
-#: ../window.c:1814
msgid "E814: Cannot close window, only autocmd window would remain"
msgstr ""
"E814: N fidir an fhuinneog a dhnadh, n bheadh ach fuinneog autocmd fgtha"
-#: ../window.c:2717
msgid "E445: Other window contains changes"
msgstr "E445: T athruithe ann san fhuinneog eile"
-#: ../window.c:4805
msgid "E446: No file name under cursor"
msgstr "E446: Nl ainm comhaid faoin chrsir"
-#~ msgid "Patch file"
-#~ msgstr "Comhad paiste"
+#, c-format
+msgid "E447: Can't find file \"%s\" in path"
+msgstr "E447: Nl aon fhil ar chomhad \"%s\" sa chonair"
-#~ msgid ""
-#~ "&OK\n"
-#~ "&Cancel"
-#~ msgstr ""
-#~ "&OK\n"
-#~ "&Cealaigh"
+#, c-format
+msgid "E799: Invalid ID: %ld (must be greater than or equal to 1)"
+msgstr "E799: Aitheantas neamhbhail: %ld (n mr d a bheith >= 1)"
-#~ msgid "E240: No connection to Vim server"
-#~ msgstr "E240: Nl aon nasc le freastala Vim"
+#, c-format
+msgid "E801: ID already taken: %ld"
+msgstr "E801: Aitheantas in sid cheana: %ld"
-#~ msgid "E241: Unable to send to %s"
-#~ msgstr "E241: N fidir aon rud a sheoladh chuig %s"
+msgid "List or number required"
+msgstr "T g le liosta n uimhir"
-#~ msgid "E277: Unable to read a server reply"
-#~ msgstr "E277: N fidir freagra n fhreastala a lamh"
+#, c-format
+msgid "E802: Invalid ID: %ld (must be greater than or equal to 1)"
+msgstr "E802: Aitheantas neamhbhail: %ld (n mr d a bheith >= 1)"
-#~ msgid "E258: Unable to send to client"
-#~ msgstr "E258: N fidir aon rud a sheoladh chuig an chliant"
+#, c-format
+msgid "E803: ID not found: %ld"
+msgstr "E803: Aitheantas gan aimsi: %ld"
-#~ msgid "Save As"
-#~ msgstr "Sbhil Mar"
+#, c-format
+msgid "E370: Could not load library %s"
+msgstr "E370: Norbh fhidir an leabharlann %s a oscailt"
-#~ msgid "Edit File"
-#~ msgstr "Cuir Comhad in Eagar"
+msgid "Sorry, this command is disabled: the Perl library could not be loaded."
+msgstr ""
+"T brn orm, nl an t-ord seo le fil: norbh fhidir an leabharlann Perl a "
+"lucht."
-#~ msgid " (NOT FOUND)"
-#~ msgstr " (AR IARRAIDH)"
+msgid "E299: Perl evaluation forbidden in sandbox without the Safe module"
+msgstr "E299: N cheadatear luachil Perl i mbosca gainimh gan an modl Safe"
-#~ msgid "Source Vim script"
-#~ msgstr "Foinsigh script Vim"
+msgid "Edit with &multiple Vims"
+msgstr "Cuir in eagar le Vimeanna io&madla"
-#~ msgid "Edit File in new window"
-#~ msgstr "Cuir comhad in eagar i bhfuinneog nua"
+msgid "Edit with single &Vim"
+msgstr "Cuir in eagar le &Vim aonair"
-#~ msgid "Append File"
-#~ msgstr "Cuir Comhad i nDeireadh"
+msgid "Diff with Vim"
+msgstr "Diff le Vim"
-#~ msgid "Window position: X %d, Y %d"
-#~ msgstr "Ionad na fuinneoige: X %d, Y %d"
+msgid "Edit with &Vim"
+msgstr "Cuir in Eagar le &Vim"
-#~ msgid "Save Redirection"
-#~ msgstr "Sbhil Atreor"
+#. Now concatenate
+msgid "Edit with existing Vim - "
+msgstr "Cuir in Eagar le Vim beo - "
-#~ msgid "Save View"
-#~ msgstr "Sbhil an tAmharc"
+msgid "Edits the selected file(s) with Vim"
+msgstr "Cuir an comhad roghnaithe in eagar le Vim"
-#~ msgid "Save Session"
-#~ msgstr "Sbhil an Seisin"
+msgid "Error creating process: Check if gvim is in your path!"
+msgstr ""
+"Earrid agus priseas chruth: Deimhnigh go bhfuil gvim i do chonair!"
-#~ msgid "Save Setup"
-#~ msgstr "Sbhil an Socr"
+msgid "gvimext.dll error"
+msgstr "earrid gvimext.dll"
-#~ msgid "E809: #< is not available without the +eval feature"
-#~ msgstr "E809: nl #< ar fil gan ghn +eval"
+msgid "Path length too long!"
+msgstr "Conair rfhada!"
-#~ msgid "E196: No digraphs in this version"
-#~ msgstr "E196: N cheadatear dghraif sa leagan seo"
+msgid "--No lines in buffer--"
+msgstr "--T an maoln folamh--"
-#~ msgid "is a device (disabled with 'opendevice' option)"
-#~ msgstr "is glas seo (dchumasaithe le rogha 'opendevice')"
+#.
+#. * The error messages that can be shared are included here.
+#. * Excluded are errors that are only used once and debugging messages.
+#.
+msgid "E470: Command aborted"
+msgstr "E470: Ord tobscortha"
-#~ msgid "Reading from stdin..."
-#~ msgstr "Ag lamh n ionchur caighdenach..."
+msgid "E471: Argument required"
+msgstr "E471: T g le hargint"
-#~ msgid "[crypted]"
-#~ msgstr "[criptithe]"
+msgid "E10: \\ should be followed by /, ? or &"
+msgstr "E10: Ba chir /, ? n & a chur i ndiaidh \\"
-#~ msgid "NetBeans disallows writes of unmodified buffers"
-#~ msgstr "N cheadaonn NetBeans maolin gan athr a bheith scrofa"
+msgid "E11: Invalid in command-line window; <CR> executes, CTRL-C quits"
+msgstr ""
+"E11: Neamhbhail i bhfuinneog lne na n-orduithe; <CR>=rith, CTRL-C=scoir"
-#~ msgid "Partial writes disallowed for NetBeans buffers"
-#~ msgstr "N cheadatear maolin NetBeans a bheith scrofa go neamhiomln"
+msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search"
+msgstr ""
+"E12: N cheadatear ord exrc/vimrc sa chomhadlann reatha n chuardach "
+"clibe"
-#~ msgid "writing to device disabled with 'opendevice' option"
-#~ msgstr "dchumasaodh scrobh chuig glas le rogha 'opendevice'"
+msgid "E171: Missing :endif"
+msgstr "E171: :endif ar iarraidh"
-#~ msgid "E460: The resource fork would be lost (add ! to override)"
-#~ msgstr "E460: Chaillf an forc acmhainne (cuir ! leis an ord chun sr)"
+msgid "E600: Missing :endtry"
+msgstr "E600: :endtry ar iarraidh"
-#~ msgid "E229: Cannot start the GUI"
-#~ msgstr "E229: N fidir an GUI a chur ag obair"
+msgid "E170: Missing :endwhile"
+msgstr "E170: :endwhile ar iarraidh"
-#~ msgid "E230: Cannot read from \"%s\""
-#~ msgstr "E230: N fidir lamh \"%s\""
+msgid "E170: Missing :endfor"
+msgstr "E170: :endfor ar iarraidh"
-#~ msgid "E665: Cannot start GUI, no valid font found"
-#~ msgstr ""
-#~ "E665: N fidir an GUI a chur ag obair, nl aon chlfhoireann bhail ann"
+msgid "E588: :endwhile without :while"
+msgstr "E588: :endwhile gan :while"
-#~ msgid "E231: 'guifontwide' invalid"
-#~ msgstr "E231: 'guifontwide' neamhbhail"
+msgid "E588: :endfor without :for"
+msgstr "E588: :endfor gan :for"
+
+msgid "E13: File exists (add ! to override)"
+msgstr "E13: T comhad ann cheana (cuir ! leis an ord chun forscrobh)"
+
+msgid "E472: Command failed"
+msgstr "E472: Theip ar ord"
-#~ msgid "E599: Value of 'imactivatekey' is invalid"
-#~ msgstr "E599: Luach neamhbhail ar 'imactivatekey'"
+#, c-format
+msgid "E234: Unknown fontset: %s"
+msgstr "E234: Tacar cl anaithnid: %s"
-#~ msgid "E254: Cannot allocate color %s"
-#~ msgstr "E254: N fidir dath %s a dhileadh"
+#, c-format
+msgid "E235: Unknown font: %s"
+msgstr "E235: Clfhoireann anaithnid: %s"
-#~ msgid "No match at cursor, finding next"
-#~ msgstr "Nl a leithid ag an chrsir, ag cuardach ar an chad cheann eile"
+#, c-format
+msgid "E236: Font \"%s\" is not fixed-width"
+msgstr "E236: N cl aonleithid \"%s\""
-#~ msgid "<cannot open> "
-#~ msgstr "<n fidir a oscailt> "
+msgid "E473: Internal error"
+msgstr "E473: Earrid inmhenach"
-#~ msgid "E616: vim_SelFile: can't get font %s"
-#~ msgstr "E616: vim_SelFile: nl aon fhil ar an chlfhoireann %s"
+msgid "Interrupted"
+msgstr "Idirbhriste"
-#~ msgid "E614: vim_SelFile: can't return to current directory"
-#~ msgstr ""
-#~ "E614: vim_SelFile: n fidir dul ar ais go dt an chomhadlann reatha"
+msgid "E14: Invalid address"
+msgstr "E14: Drochsheoladh"
-#~ msgid "Pathname:"
-#~ msgstr "Conair:"
+msgid "E474: Invalid argument"
+msgstr "E474: Argint neamhbhail"
-#~ msgid "E615: vim_SelFile: can't get current directory"
-#~ msgstr "E615: vim_SelFile: nl an chomhadlann reatha ar fil"
+#, c-format
+msgid "E475: Invalid argument: %s"
+msgstr "E475: Argint neamhbhail: %s"
-#~ msgid "OK"
-#~ msgstr "OK"
+#, c-format
+msgid "E15: Invalid expression: %s"
+msgstr "E15: Slonn neamhbhail: %s"
-#~ msgid "Cancel"
-#~ msgstr "Cealaigh"
+msgid "E16: Invalid range"
+msgstr "E16: Raon neamhbhail"
-#~ msgid "Scrollbar Widget: Could not get geometry of thumb pixmap."
-#~ msgstr ""
-#~ "Giuirlid Scrollbharra: N fidir cimseata an mhapa picteiln a fhil."
+msgid "E476: Invalid command"
+msgstr "E476: Ord neamhbhail"
-#~ msgid "Vim dialog"
-#~ msgstr "Dialg Vim"
+#, c-format
+msgid "E17: \"%s\" is a directory"
+msgstr "E17: is comhadlann \"%s\""
-#~ msgid "E232: Cannot create BalloonEval with both message and callback"
-#~ msgstr ""
-#~ "E232: N fidir BalloonEval a chruth le teachtaireacht agus aisghlaoch "
-#~ "araon"
+#, c-format
+msgid "E364: Library call failed for \"%s()\""
+msgstr "E364: Theip ar ghlao leabharlainne \"%s()\""
-#~ msgid "Vim dialog..."
-#~ msgstr "Dialg Vim..."
+#, c-format
+msgid "E448: Could not load library function %s"
+msgstr "E448: N fidir feidhm %s leabharlainne a lucht"
-#~ msgid "Input _Methods"
-#~ msgstr "_Modhanna ionchuir"
+msgid "E19: Mark has invalid line number"
+msgstr "E19: T lne-uimhir neamhbhail ag an mharc"
-# in OLT --KPS
-#~ msgid "VIM - Search and Replace..."
-#~ msgstr "VIM - Cuardaigh agus Athchuir..."
+msgid "E20: Mark not set"
+msgstr "E20: Marc gan socr"
-#~ msgid "VIM - Search..."
-#~ msgstr "VIM - Cuardaigh..."
+msgid "E21: Cannot make changes, 'modifiable' is off"
+msgstr ""
+"E21: N fidir athruithe a chur i bhfeidhm, nl an bhratach 'modifiable' "
+"socraithe"
-#~ msgid "Find what:"
-#~ msgstr "Aimsigh:"
+msgid "E22: Scripts nested too deep"
+msgstr "E22: scripteanna neadaithe rdhomhain"
-#~ msgid "Replace with:"
-#~ msgstr "Le cur in ionad:"
+msgid "E23: No alternate file"
+msgstr "E23: Nl aon chomhad malartach"
-#~ msgid "Match whole word only"
-#~ msgstr "Focal iomln amhin"
+msgid "E24: No such abbreviation"
+msgstr "E24: Nl a leithid de ghiorrchn ann"
-#~ msgid "Match case"
-#~ msgstr "Meaitseil an cs"
+msgid "E477: No ! allowed"
+msgstr "E477: N cheadatear !"
-#~ msgid "Direction"
-#~ msgstr "Treo"
+msgid "E25: GUI cannot be used: Not enabled at compile time"
+msgstr "E25: N fidir an GUI a sid: Nor cumasaodh ag am tiomsaithe"
-#~ msgid "Up"
-#~ msgstr "Suas"
+msgid "E26: Hebrew cannot be used: Not enabled at compile time\n"
+msgstr ""
+"E26: Nl tacaocht Eabhraise ar fil: Nor cumasaodh ag am tiomsaithe\n"
-#~ msgid "Down"
-#~ msgstr "Sos"
+msgid "E27: Farsi cannot be used: Not enabled at compile time\n"
+msgstr ""
+"E27: Nl tacaocht Pheirsise ar fil: Nor cumasaodh ag am tiomsaithe\n"
-#~ msgid "Find Next"
-#~ msgstr "An Chad Cheann Eile"
+msgid "E800: Arabic cannot be used: Not enabled at compile time\n"
+msgstr ""
+"E800: Nl tacaocht Araibise ar fil: Nor cumasaodh ag am tiomsaithe\n"
-#~ msgid "Replace"
-#~ msgstr "Ionadaigh"
+#, c-format
+msgid "E28: No such highlight group name: %s"
+msgstr "E28: Nl a leithid d'ainm grpa aibhsithe: %s"
-#~ msgid "Replace All"
-#~ msgstr "Ionadaigh Uile"
+msgid "E29: No inserted text yet"
+msgstr "E29: Nl aon tacs ionsite go dt seo"
-#~ msgid "Vim: Received \"die\" request from session manager\n"
-#~ msgstr "Vim: Fuarthas iarratas \"die\" bhainisteoir an tseisiin\n"
+msgid "E30: No previous command line"
+msgstr "E30: Nl aon lne na n-orduithe roimhe seo"
-#~ msgid "Close"
-#~ msgstr "Dn"
+msgid "E31: No such mapping"
+msgstr "E31: Nl a leithid de mhapil"
-#~ msgid "New tab"
-#~ msgstr "Cluaisn nua"
+msgid "E479: No match"
+msgstr "E479: Nl aon rud comhoirinach ann"
-#~ msgid "Open Tab..."
-#~ msgstr "Oscail Cluaisn..."
+#, c-format
+msgid "E480: No match: %s"
+msgstr "E480: Nl aon rud comhoirinach ann: %s"
-#~ msgid "Vim: Main window unexpectedly destroyed\n"
-#~ msgstr "Vim: Milleadh an promhfhuinneog gan choinne\n"
+msgid "E32: No file name"
+msgstr "E32: Nl aon ainm comhaid"
-#~ msgid "Font Selection"
-#~ msgstr "Roghn Cl"
+msgid "E33: No previous substitute regular expression"
+msgstr "E33: Nl aon slonn ionadaochta roimhe seo"
-#~ msgid "&Filter"
-#~ msgstr "&Scagaire"
+msgid "E34: No previous command"
+msgstr "E34: Nl aon ord roimhe seo"
-#~ msgid "&Cancel"
-#~ msgstr "&Cealaigh"
+msgid "E35: No previous regular expression"
+msgstr "E35: Nl aon slonn ionadaochta roimhe seo"
-#~ msgid "Directories"
-#~ msgstr "Comhadlanna"
+msgid "E481: No range allowed"
+msgstr "E481: N cheadatear raon"
-#~ msgid "Filter"
-#~ msgstr "Scagaire"
+msgid "E36: Not enough room"
+msgstr "E36: Nl sl a dhthain ann"
-#~ msgid "&Help"
-#~ msgstr "&Cabhair"
+#, c-format
+msgid "E247: no registered server named \"%s\""
+msgstr "E247: nl aon fhreastala clraithe leis an ainm \"%s\""
-#~ msgid "Files"
-#~ msgstr "Comhaid"
+#, c-format
+msgid "E482: Can't create file %s"
+msgstr "E482: N fidir comhad %s a chruth"
-#~ msgid "&OK"
-#~ msgstr "&OK"
+msgid "E483: Can't get temp file name"
+msgstr "E483: Nl aon fhil ar ainm comhaid sealadach"
-#~ msgid "Selection"
-#~ msgstr "Roghn"
+#, c-format
+msgid "E484: Can't open file %s"
+msgstr "E484: N fidir comhad %s a oscailt"
-#~ msgid "Find &Next"
-#~ msgstr "An Chad Chea&nn Eile"
+#, c-format
+msgid "E485: Can't read file %s"
+msgstr "E485: N fidir comhad %s a lamh"
-#~ msgid "&Replace"
-#~ msgstr "&Ionadaigh"
+msgid "E37: No write since last change (add ! to override)"
+msgstr "E37: T athruithe ann gan sbhil (cuir ! leis an ord chun sr)"
-#~ msgid "Replace &All"
-#~ msgstr "Ionadaigh &Uile"
+msgid "E37: No write since last change"
+msgstr "E37: Gan scrobh n athr is dana"
-#~ msgid "&Undo"
-#~ msgstr "&Cealaigh"
+msgid "E38: Null argument"
+msgstr "E38: Argint nialasach"
-#~ msgid "E671: Cannot find window title \"%s\""
-#~ msgstr "E671: N fidir teideal na fuinneoige \"%s\" a aimsi"
+msgid "E39: Number expected"
+msgstr "E39: Ag sil le huimhir"
-#~ msgid "E243: Argument not supported: \"-%s\"; Use the OLE version."
-#~ msgstr "E243: Argint gan tacaocht: \"-%s\"; Bain sid as an leagan OLE."
+#, c-format
+msgid "E40: Can't open errorfile %s"
+msgstr "E40: N fidir an comhad earride %s a oscailt"
-#~ msgid "E672: Unable to open window inside MDI application"
-#~ msgstr "E672: N fidir fuinneog a oscailt isteach i bhfeidhmchlr MDI"
+msgid "E233: cannot open display"
+msgstr "E233: n fidir an scilen a oscailt"
-#~ msgid "Close tab"
-#~ msgstr "Dn cluaisn"
+msgid "E41: Out of memory!"
+msgstr "E41: Cuimhne dithe!"
-#~ msgid "Open tab..."
-#~ msgstr "Oscail cluaisn..."
+msgid "Pattern not found"
+msgstr "Patrn gan aimsi"
-#~ msgid "Find string (use '\\\\' to find a '\\')"
-#~ msgstr "Aimsigh teaghrn (bain sid as '\\\\' chun '\\' a aimsi)"
+#, c-format
+msgid "E486: Pattern not found: %s"
+msgstr "E486: Patrn gan aimsi: %s"
-#~ msgid "Find & Replace (use '\\\\' to find a '\\')"
-#~ msgstr "Aimsigh & Athchuir (sid '\\\\' chun '\\' a aimsi)"
+msgid "E487: Argument must be positive"
+msgstr "E487: N folir argint dheimhneach"
-#~ msgid "Not Used"
-#~ msgstr "Gan sid"
+msgid "E459: Cannot go back to previous directory"
+msgstr "E459: N fidir a fhilleadh ar an chomhadlann roimhe seo"
-#~ msgid "Directory\t*.nothing\n"
-#~ msgstr "Comhadlann\t*.neamhn\n"
+msgid "E42: No Errors"
+msgstr "E42: Nl Aon Earrid Ann"
-#~ msgid ""
-#~ "Vim E458: Cannot allocate colormap entry, some colors may be incorrect"
-#~ msgstr ""
-#~ "Vim E458: N fidir iontril dathmhapla a dhileadh, is fidir go mbeidh "
-#~ "dathanna mchearta ann"
+msgid "E776: No location list"
+msgstr "E776: Gan liosta suomh"
-#~ msgid "E250: Fonts for the following charsets are missing in fontset %s:"
-#~ msgstr ""
-#~ "E250: Clnna ar iarraidh le haghaidh na dtacar carachtar i dtacar cl %s:"
+msgid "E43: Damaged match string"
+msgstr "E43: Teaghrn cuardaigh loite"
+
+msgid "E44: Corrupted regexp program"
+msgstr "E44: Clr na sloinn ionadaochta truaillithe"
+
+msgid "E45: 'readonly' option is set (add ! to override)"
+msgstr "E45: t an rogha 'readonly' socraithe (cuir ! leis an ord chun sr)"
-#~ msgid "E252: Fontset name: %s"
-#~ msgstr "E252: Ainm an tacar cl: %s"
+#, c-format
+msgid "E46: Cannot change read-only variable \"%s\""
+msgstr "E46: N fidir athrg inlite amhin \"%s\" a athr"
-#~ msgid "Font '%s' is not fixed-width"
-#~ msgstr "N cl aonleithid '%s'"
+#, c-format
+msgid "E794: Cannot set variable in the sandbox: \"%s\""
+msgstr "E794: N fidir athrg a shocr sa bhosca gainimh: \"%s\""
+
+msgid "E713: Cannot use empty key for Dictionary"
+msgstr "E713: N fidir eochair fholamh a sid le Foclir"
-#~ msgid "E253: Fontset name: %s\n"
-#~ msgstr "E253: Ainm an tacar cl: %s\n"
+msgid "E715: Dictionary required"
+msgstr "E715: T g le foclir"
-#~ msgid "Font0: %s\n"
-#~ msgstr "Cl0: %s\n"
+#, c-format
+msgid "E684: list index out of range: %ld"
+msgstr "E684: innacs liosta as raon: %ld"
-#~ msgid "Font1: %s\n"
-#~ msgstr "Cl1: %s\n"
+#, c-format
+msgid "E118: Too many arguments for function: %s"
+msgstr "E118: An iomarca argint d'fheidhm: %s"
-#~ msgid "Font%<PRId64> width is not twice that of font0\n"
-#~ msgstr "Nl Cl%<PRId64> nos leithne faoi dh n cl0\n"
+#, c-format
+msgid "E716: Key not present in Dictionary: %s"
+msgstr "E716: Nl an eochair seo san Fhoclir: %s"
-#~ msgid "Font0 width: %<PRId64>\n"
-#~ msgstr "Leithead Cl0: %<PRId64>\n"
+msgid "E714: List required"
+msgstr "E714: T g le liosta"
-#~ msgid ""
-#~ "Font1 width: %<PRId64>\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Leithead Cl1: %<PRId64>\n"
-#~ "\n"
+#, c-format
+msgid "E712: Argument of %s must be a List or Dictionary"
+msgstr "E712: Caithfidh argint de %s a bheith ina Liosta n Foclir"
-#~ msgid "Invalid font specification"
-#~ msgstr "Sonr neamhbhail cl"
+msgid "E47: Error while reading errorfile"
+msgstr "E47: Earrid agus comhad earride lamh"
-#~ msgid "&Dismiss"
-#~ msgstr "&Ruaig"
+msgid "E48: Not allowed in sandbox"
+msgstr "E48: N cheadatear seo i mbosca gainimh"
-#~ msgid "no specific match"
-#~ msgstr "nl a leithid ann"
+msgid "E523: Not allowed here"
+msgstr "E523: N cheadatear anseo"
-#~ msgid "Vim - Font Selector"
-#~ msgstr "Vim - Roghn Cl"
+msgid "E359: Screen mode setting not supported"
+msgstr "E359: N fidir an md scilein a shocr"
-#~ msgid "Name:"
-#~ msgstr "Ainm:"
+msgid "E49: Invalid scroll size"
+msgstr "E49: Mid neamhbhail scrollaithe"
-#~ msgid "Show size in Points"
-#~ msgstr "Taispein mid (Point)"
+msgid "E91: 'shell' option is empty"
+msgstr "E91: rogha 'shell' folamh"
-#~ msgid "Encoding:"
-#~ msgstr "Ionchd:"
+msgid "E255: Couldn't read in sign data!"
+msgstr "E255: Norbh fhidir na sonra comhartha a lamh!"
-#~ msgid "Font:"
-#~ msgstr "Cl:"
+msgid "E72: Close error on swap file"
+msgstr "E72: Earrid agus comhad babhtla dhnadh"
-#~ msgid "Style:"
-#~ msgstr "Stl:"
+msgid "E73: tag stack empty"
+msgstr "E73: t cruach na gclibeanna folamh"
-#~ msgid "Size:"
-#~ msgstr "Mid:"
+msgid "E74: Command too complex"
+msgstr "E74: Ord rchasta"
-#~ msgid "E256: Hangul automata ERROR"
-#~ msgstr "E256: EARRID leis na huathoibrein Hangul"
+msgid "E75: Name too long"
+msgstr "E75: Ainm rfhada"
-#~ msgid "E563: stat error"
-#~ msgstr "E563: earrid stat"
+msgid "E76: Too many ["
+msgstr "E76: an iomarca ["
+
+msgid "E77: Too many file names"
+msgstr "E77: An iomarca ainmneacha comhaid"
-#~ msgid "E625: cannot open cscope database: %s"
-#~ msgstr "E625: n fidir bunachar sonra cscope a oscailt: %s"
+msgid "E488: Trailing characters"
+msgstr "E488: Carachtair chun deiridh"
-#~ msgid "E626: cannot get cscope database information"
-#~ msgstr "E626: n fidir eolas a fhil faoin bhunachar sonra cscope"
+msgid "E78: Unknown mark"
+msgstr "E78: Marc anaithnid"
-#~ msgid ""
-#~ "E815: Sorry, this command is disabled, the MzScheme libraries could not "
-#~ "be loaded."
-#~ msgstr ""
-#~ "E815: T brn orm, bh an t-ord seo dchumasaithe, norbh fhidir "
-#~ "leabharlanna MzScheme a lucht."
+msgid "E79: Cannot expand wildcards"
+msgstr "E79: N fidir saorga a leathn"
-#~ msgid "invalid expression"
-#~ msgstr "slonn neamhbhail"
+msgid "E591: 'winheight' cannot be smaller than 'winminheight'"
+msgstr "E591: n cheadatear 'winheight' a bheith nos l n 'winminheight'"
-#~ msgid "expressions disabled at compile time"
-#~ msgstr "dchumasaodh sloinn ag am an tiomsaithe"
+msgid "E592: 'winwidth' cannot be smaller than 'winminwidth'"
+msgstr "E592: n cheadatear 'winwidth' a bheith nos l n 'winminwidth'"
-#~ msgid "hidden option"
-#~ msgstr "rogha fholaithe"
+msgid "E80: Error while writing"
+msgstr "E80: Earrid agus scrobh"
-#~ msgid "unknown option"
-#~ msgstr "rogha anaithnid"
+msgid "Zero count"
+msgstr "Nialas"
-#~ msgid "window index is out of range"
-#~ msgstr "innacs fuinneoige as raon"
+msgid "E81: Using <SID> not in a script context"
+msgstr "E81: <SID> sid nach i gcomhthacs scripte"
-#~ msgid "couldn't open buffer"
-#~ msgstr "n fidir maoln a oscailt"
+msgid "E449: Invalid expression received"
+msgstr "E449: Fuarthas slonn neamhbhail"
-#~ msgid "cannot save undo information"
-#~ msgstr "n fidir eolas cealaithe a shbhil"
+msgid "E463: Region is guarded, cannot modify"
+msgstr "E463: Rigin cosanta, n fidir a athr"
-#~ msgid "cannot delete line"
-#~ msgstr "n fidir an lne a scriosadh"
+msgid "E744: NetBeans does not allow changes in read-only files"
+msgstr "E744: N cheadaonn NetBeans aon athr i gcomhaid inlite amhin"
-#~ msgid "cannot replace line"
-#~ msgstr "n fidir an lne a athchur"
+#, c-format
+msgid "E685: Internal error: %s"
+msgstr "E685: Earrid inmhenach: %s"
-#~ msgid "cannot insert line"
-#~ msgstr "n fidir lne a ions"
+msgid "E363: pattern uses more memory than 'maxmempattern'"
+msgstr "E363: sideann an patrn nos m cuimhne n 'maxmempattern'"
-#~ msgid "string cannot contain newlines"
-#~ msgstr "n cheadatear carachtair lne nua sa teaghrn"
+msgid "E749: empty buffer"
+msgstr "E749: maoln folamh"
-#~ msgid "Vim error: ~a"
-#~ msgstr "earrid Vim: ~a"
+#, c-format
+msgid "E86: Buffer %ld does not exist"
+msgstr "E86: Nl a leithid de mhaoln %ld"
-#~ msgid "Vim error"
-#~ msgstr "earrid Vim"
+msgid "E682: Invalid search pattern or delimiter"
+msgstr "E682: Patrn n teormharcir neamhbhail cuardaigh"
-#~ msgid "buffer is invalid"
-#~ msgstr "maoln neamhbhail"
+msgid "E139: File is loaded in another buffer"
+msgstr "E139: T an comhad luchtaithe i maoln eile"
-#~ msgid "window is invalid"
-#~ msgstr "fuinneog neamhbhail"
+#, c-format
+msgid "E764: Option '%s' is not set"
+msgstr "E764: Rogha '%s' gan socr"
-#~ msgid "linenr out of range"
-#~ msgstr "lne-uimhir as raon"
+msgid "E850: Invalid register name"
+msgstr "E850: Ainm neamhbhail tabhaill"
-#~ msgid "not allowed in the Vim sandbox"
-#~ msgstr "n cheadatear seo i mbosca gainimh Vim"
+#, c-format
+msgid "E919: Directory not found in '%s': \"%s\""
+msgstr "E919: Comhadlann gan aimsi in '%s': \"%s\""
-#~ msgid ""
-#~ "E263: Sorry, this command is disabled, the Python library could not be "
-#~ "loaded."
-#~ msgstr ""
-#~ "E263: T brn orm, nl an t-ord seo le fil, norbh fhidir an "
-#~ "leabharlann Python a lucht."
+msgid "search hit TOP, continuing at BOTTOM"
+msgstr "Buaileadh an BARR le linn an chuardaigh, ag leanint ag an CHROCH"
-#~ msgid "E659: Cannot invoke Python recursively"
-#~ msgstr "E659: N fidir Python a rith go hathchrsach"
+msgid "search hit BOTTOM, continuing at TOP"
+msgstr "Buaileadh an BUN le linn an chuardaigh, ag leanint ag an BHARR"
-#~ msgid "can't delete OutputObject attributes"
-#~ msgstr "n fidir trithe OutputObject a scriosadh"
+#, c-format
+msgid "Need encryption key for \"%s\""
+msgstr "Eochair chriptichin le haghaidh \"%s\" de dhth"
-#~ msgid "softspace must be an integer"
-#~ msgstr "caithfidh softspace a bheith ina shlnuimhir"
+msgid "empty keys are not allowed"
+msgstr "n cheadatear eochracha folmha"
-#~ msgid "invalid attribute"
-#~ msgstr "aitreabid neamhbhail"
+msgid "dictionary is locked"
+msgstr "t an foclir faoi ghlas"
-#~ msgid "writelines() requires list of strings"
-#~ msgstr "liosta teaghrn ag teastil writelines()"
+msgid "list is locked"
+msgstr "t an liosta faoi ghlas"
-#~ msgid "E264: Python: Error initialising I/O objects"
-#~ msgstr "E264: Python: Earrid agus rada I/A dts"
+#, c-format
+msgid "failed to add key '%s' to dictionary"
+msgstr "norbh fhidir eochair '%s' a chur leis an bhfoclir"
-#~ msgid "attempt to refer to deleted buffer"
-#~ msgstr "rinneadh iarracht ar mhaoln scriosta a rochtain"
+#, c-format
+msgid "index must be int or slice, not %s"
+msgstr "n mr don innacs a bheith ina shlnuimhir n ina shlisne, seachas %s"
-#~ msgid "line number out of range"
-#~ msgstr "lne-uimhir as raon"
+#, c-format
+msgid "expected str() or unicode() instance, but got %s"
+msgstr "bhothas ag sil le str() n unicode(), ach fuarthas %s"
-#~ msgid "<buffer object (deleted) at %p>"
-#~ msgstr "<rad maolin (scriosta) ag %p>"
+#, c-format
+msgid "expected bytes() or str() instance, but got %s"
+msgstr "bhothas ag sil le bytes() n str(), ach fuarthas %s"
-#~ msgid "invalid mark name"
-#~ msgstr "ainm neamhbhail mairc"
+#, c-format
+msgid ""
+"expected int(), long() or something supporting coercing to long(), but got %s"
+msgstr ""
+"bhothas ag sil le int(), long(), n rud igin inathraithe ina long(), ach "
+"fuarthas %s"
-#~ msgid "no such buffer"
-#~ msgstr "nl a leithid de mhaoln ann"
+#, c-format
+msgid "expected int() or something supporting coercing to int(), but got %s"
+msgstr ""
+"bhothas ag sil le int() n rud igin inathraithe ina int(), ach fuarthas %s"
-#~ msgid "attempt to refer to deleted window"
-#~ msgstr "rinneadh iarracht ar fhuinneog scriosta a rochtain"
+msgid "value is too large to fit into C int type"
+msgstr "t an luach nos m n athrg int sa teanga C"
-#~ msgid "readonly attribute"
-#~ msgstr "trith inlite amhin"
+msgid "value is too small to fit into C int type"
+msgstr "t an luach nos l n athrg int sa teanga C"
-#~ msgid "cursor position outside buffer"
-#~ msgstr "crsir taobh amuigh den mhaoln"
+msgid "number must be greater than zero"
+msgstr "n mr don uimhir a bheith deimhneach"
-#~ msgid "<window object (deleted) at %p>"
-#~ msgstr "<rad fuinneoige (scriosta) ag %p>"
+msgid "number must be greater or equal to zero"
+msgstr "n mr don uimhir a bheith >= 0"
-#~ msgid "<window object (unknown) at %p>"
-#~ msgstr "<rad fuinneoige (anaithnid) ag %p>"
+msgid "can't delete OutputObject attributes"
+msgstr "n fidir trithe OutputObject a scriosadh"
-#~ msgid "<window %d>"
-#~ msgstr "<fuinneog %d>"
+#, c-format
+msgid "invalid attribute: %s"
+msgstr "aitreabid neamhbhail: %s"
-#~ msgid "no such window"
-#~ msgstr "nl a leithid d'fhuinneog ann"
+msgid "E264: Python: Error initialising I/O objects"
+msgstr "E264: Python: Earrid agus rada I/A dts"
-#~ msgid "E265: $_ must be an instance of String"
-#~ msgstr "E265: caithfidh $_ a bheith cinel Teaghrin"
+msgid "failed to change directory"
+msgstr "norbh fhidir an chomhadlann a athr"
-#~ msgid ""
-#~ "E266: Sorry, this command is disabled, the Ruby library could not be "
-#~ "loaded."
-#~ msgstr ""
-#~ "E266: T brn orm, nl an t-ord seo le fil, norbh fhidir an "
-#~ "leabharlann Ruby a lucht."
+#, c-format
+msgid "expected 3-tuple as imp.find_module() result, but got %s"
+msgstr ""
+"bhothas ag sil le 3-chodach mar thoradh ar imp.find_module(), ach fuarthas "
+"%s"
+
+#, c-format
+msgid "expected 3-tuple as imp.find_module() result, but got tuple of size %d"
+msgstr ""
+"bhothas ag sil le 3-chodach mar thoradh ar imp.find_module(), ach fuarthas "
+"%d-chodach"
+
+msgid "internal error: imp.find_module returned tuple with NULL"
+msgstr "earrid inmhenach: fuarthas codach NULL ar ais imp.find_module"
+
+msgid "cannot delete vim.Dictionary attributes"
+msgstr "n fidir trithe vim.Dictionary a scriosadh"
+
+msgid "cannot modify fixed dictionary"
+msgstr "n fidir foclir socraithe a athr"
+
+#, c-format
+msgid "cannot set attribute %s"
+msgstr "n fidir trith %s a shocr"
+
+msgid "hashtab changed during iteration"
+msgstr "athraodh an haistb le linn atriallta"
+
+#, c-format
+msgid "expected sequence element of size 2, but got sequence of size %d"
+msgstr "bhothas ag sil le heilimint de mhid 2, ach fuarthas mid %d"
+
+msgid "list constructor does not accept keyword arguments"
+msgstr "n ghlacann cruthaitheoir an liosta le hargint eochairfhocail"
+
+msgid "list index out of range"
+msgstr "innacs liosta as raon"
+
+#. No more suitable format specifications in python-2.3
+#, c-format
+msgid "internal error: failed to get vim list item %d"
+msgstr "earrid inmhenach: nl aon fhil ar mhr %d sa liosta vim"
-#~ msgid "E267: unexpected return"
-#~ msgstr "E267: \"return\" gan choinne"
+msgid "slice step cannot be zero"
+msgstr "n cheadatear slisne le cim 0"
-#~ msgid "E268: unexpected next"
-#~ msgstr "E268: \"next\" gan choinne"
+#, c-format
+msgid "attempt to assign sequence of size greater than %d to extended slice"
+msgstr "iarracht ar sheicheamh nos m n %d a shannadh do shlisne fadaithe"
+
+#, c-format
+msgid "internal error: no vim list item %d"
+msgstr "earrid inmhenach: nl aon mhr %d sa liosta vim"
+
+msgid "internal error: not enough list items"
+msgstr "earrid inmhenach: nl go leor mreanna liosta ann"
+
+msgid "internal error: failed to add item to list"
+msgstr "earrid inmhenach: norbh fhidir mr a chur leis an liosta"
-#~ msgid "E269: unexpected break"
-#~ msgstr "E269: \"break\" gan choinne"
+#, c-format
+msgid "attempt to assign sequence of size %d to extended slice of size %d"
+msgstr "iarracht ar sheicheamh de mhid %d a shannadh do shlisne de mhid %d"
+
+msgid "failed to add item to list"
+msgstr "norbh fhidir mr a chur leis an liosta"
-#~ msgid "E270: unexpected redo"
-#~ msgstr "E270: \"redo\" gan choinne"
+msgid "cannot delete vim.List attributes"
+msgstr "n fidir trithe vim.List a scriosadh"
-#~ msgid "E271: retry outside of rescue clause"
-#~ msgstr "E271: \"retry\" taobh amuigh de chlsal tarrthla"
+msgid "cannot modify fixed list"
+msgstr "n fidir liosta socraithe a athr"
-#~ msgid "E272: unhandled exception"
-#~ msgstr "E272: eisceacht gan limhseil"
+#, c-format
+msgid "unnamed function %s does not exist"
+msgstr "nl feidhm %s gan ainm ann"
+
+#, c-format
+msgid "function %s does not exist"
+msgstr "nl feidhm %s ann"
-#~ msgid "E273: unknown longjmp status %d"
-#~ msgstr "E273: stdas anaithnid longjmp %d"
+#, c-format
+msgid "failed to run function %s"
+msgstr "norbh fhidir feidhm %s a rith"
+
+msgid "unable to get option value"
+msgstr "n fidir luach na rogha a fhil"
+
+msgid "internal error: unknown option type"
+msgstr "earrid inmhenach: cinel rogha anaithnid"
+
+msgid "problem while switching windows"
+msgstr "tharla earrid agus an fhuinneog hathr"
+
+#, c-format
+msgid "unable to unset global option %s"
+msgstr "n fidir rogha chomhchoiteann %s a dhshocr"
+
+#, c-format
+msgid "unable to unset option %s which does not have global value"
+msgstr "n fidir rogha %s gan luach comhchoiteann a dhshocr"
+
+msgid "attempt to refer to deleted tab page"
+msgstr "tagairt danta do leathanach cluaisn scriosta"
+
+msgid "no such tab page"
+msgstr "nl a leithid de leathanach cluaisn ann"
+
+msgid "attempt to refer to deleted window"
+msgstr "rinneadh iarracht ar fhuinneog scriosta a rochtain"
+
+msgid "readonly attribute: buffer"
+msgstr "trith inlite amhin: maoln"
+
+msgid "cursor position outside buffer"
+msgstr "crsir taobh amuigh den mhaoln"
+
+msgid "no such window"
+msgstr "nl a leithid d'fhuinneog ann"
+
+msgid "attempt to refer to deleted buffer"
+msgstr "rinneadh iarracht ar mhaoln scriosta a rochtain"
+
+msgid "failed to rename buffer"
+msgstr "norbh fhidir ainm nua a chur ar an maoln"
+
+msgid "mark name must be a single character"
+msgstr "n cheadatear ach carachtar amhin in ainm an mhairc"
+
+#, c-format
+msgid "expected vim.Buffer object, but got %s"
+msgstr "bhothas ag sil le rad vim.Buffer, ach fuarthas %s"
+
+#, c-format
+msgid "failed to switch to buffer %d"
+msgstr "norbh fhidir athr go dt maoln a %d"
+
+#, c-format
+msgid "expected vim.Window object, but got %s"
+msgstr "bhothas ag sil le rad vim.Window, ach fuarthas %s"
+
+msgid "failed to find window in the current tab page"
+msgstr "nor aimsodh fuinneog sa leathanach cluaisn reatha"
+
+msgid "did not switch to the specified window"
+msgstr "nor athraodh go dt an fhuinneog roghnaithe"
+
+#, c-format
+msgid "expected vim.TabPage object, but got %s"
+msgstr "bhothas ag sil le rad vim.TabPage, ach fuarthas %s"
+
+msgid "did not switch to the specified tab page"
+msgstr "nor athraodh go dt an leathanach cluaisn roghnaithe"
+
+msgid "failed to run the code"
+msgstr "norbh fhidir an cd a chur ar sil"
+
+msgid "E858: Eval did not return a valid python object"
+msgstr "E858: N bhfuarthas rad bail python ar ais Eval"
+
+msgid "E859: Failed to convert returned python object to vim value"
+msgstr "E859: Norbh fhidir luach vim a dhanamh as an rad python"
+
+#, c-format
+msgid "unable to convert %s to vim dictionary"
+msgstr "n fidir foclir vim a dhanamh as %s"
+
+#, c-format
+msgid "unable to convert %s to vim list"
+msgstr "n fidir liosta vim a dhanamh as %s"
+
+#, c-format
+msgid "unable to convert %s to vim structure"
+msgstr "n fidir struchtr vim a dhanamh as %s"
+
+msgid "internal error: NULL reference passed"
+msgstr "earrid inmhenach: tagairt NULL seolta"
+
+msgid "internal error: invalid value type"
+msgstr "earrid inmhenach: cinel neamhbhail"
+
+msgid ""
+"Failed to set path hook: sys.path_hooks is not a list\n"
+"You should now do the following:\n"
+"- append vim.path_hook to sys.path_hooks\n"
+"- append vim.VIM_SPECIAL_PATH to sys.path\n"
+msgstr ""
+"Norbh fhidir path_hook a shocr: n liosta sys.path_hooks\n"
+"Ba chir duit na ruda seo a leanas a dhanamh:\n"
+"- cuir vim.path_hook le deireadh sys.path_hooks\n"
+"- cuir vim.VIM_SPECIAL_PATH le deireadh sys.path\n"
+
+msgid ""
+"Failed to set path: sys.path is not a list\n"
+"You should now append vim.VIM_SPECIAL_PATH to sys.path"
+msgstr ""
+"Norbh fhidir an chonair a shocr: n liosta sys.path\n"
+"Ba chir duit vim.VIM_SPECIAL_PATH a cheangal le deireadh sys.path"
+
+#~ msgid "E693: Can only compare Funcref with Funcref"
+#~ msgstr "E693: Is fidir Funcref a chur i gcomparid le Funcref eile amhin"
+
+#~ msgid "E706: Variable type mismatch for: %s"
+#~ msgstr "E706: Mmheaitseil idir cinelacha athrige: %s"
+
+#~ msgid "%ld characters"
+#~ msgstr "%ld carachtar"
#~ msgid "Toggle implementation/definition"
#~ msgstr "Scornaigh feidhmi/sainmhni"
@@ -7063,255 +7159,112 @@ msgstr "E446: Nl ainm comhaid faoin chrsir"
#~ msgid "Sniff: Error during write. Disconnected"
#~ msgstr "Sniff: Earrid sa scrobh. Dnasctha"
-#~ msgid "invalid buffer number"
-#~ msgstr "uimhir neamhbhail mhaolin"
-
-#~ msgid "not implemented yet"
-#~ msgstr "nl ar fil"
-
-#~ msgid "cannot set line(s)"
-#~ msgstr "n fidir ln(t)e a shocr"
-
-#~ msgid "mark not set"
-#~ msgstr "marc gan socr"
-
-#~ msgid "row %d column %d"
-#~ msgstr "lne %d coln %d"
-
-#~ msgid "cannot insert/append line"
-#~ msgstr "n fidir lne a ions/iarcheangal"
-
-#~ msgid "unknown flag: "
-#~ msgstr "bratach anaithnid: "
-
-#~ msgid "unknown vimOption"
-#~ msgstr "vimOption anaithnid"
-
-#~ msgid "keyboard interrupt"
-#~ msgstr "idirbhriseadh marchlir"
-
-#~ msgid "vim error"
-#~ msgstr "earrid vim"
-
-#~ msgid "cannot create buffer/window command: object is being deleted"
-#~ msgstr "n fidir ord maolin/fuinneoige a chruth: rad scriosadh"
-
-#~ msgid ""
-#~ "cannot register callback command: buffer/window is already being deleted"
-#~ msgstr ""
-#~ "n fidir ord aisghlaoch a chlr: maoln/fuinneog scriosadh cheana"
-
-#~ msgid ""
-#~ "E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-"
-#~ "dev@vim.org"
-#~ msgstr ""
-#~ "E280: EARRID MHARFACH TCL: liosta truaillithe tagartha!? Seol tuairisc "
-#~ "fhabht chuig <vim-dev@vim.org> le do thoil"
-
-#~ msgid "cannot register callback command: buffer/window reference not found"
-#~ msgstr ""
-#~ "n fidir ord aisghlaoch a chlr: tagairt mhaoln/fhuinneoige gan aimsi"
-
-#~ msgid ""
-#~ "E571: Sorry, this command is disabled: the Tcl library could not be "
-#~ "loaded."
-#~ msgstr ""
-#~ "E571: T brn orm, nl an t-ord seo le fil: norbh fhidir an "
-#~ "leabharlann Tcl a lucht."
+#~ msgid " Quit, or continue with caution.\n"
+#~ msgstr " Scoir, n lean ar aghaidh go hairdeallach.\n"
-#~ msgid ""
-#~ "E281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim."
-#~ "org"
-#~ msgstr ""
-#~ "E281: EARRID TCL: nl an cd scortha ina shlnuimhir!? Seol tuairisc "
-#~ "fhabht chuig <vim-dev@vim.org> le do thoil"
-
-#~ msgid "E572: exit code %d"
-#~ msgstr "E572: cd scortha %d"
+#~ msgid "Cannot connect to Netbeans #2"
+#~ msgstr "N fidir nascadh le Netbeans #2"
-#~ msgid "cannot get line"
-#~ msgstr "n fidir an lne a fhil"
+#~ msgid "read from Netbeans socket"
+#~ msgstr "ladh shoicad Netbeans"
-#~ msgid "Unable to register a command server name"
-#~ msgstr "N fidir ainm fhreastala ordaithe a chlr"
+#~ msgid "'columns' is not 80, cannot execute external commands"
+#~ msgstr "n 80 'columns', n fidir orduithe seachtracha a rith"
-#~ msgid "E248: Failed to send command to the destination program"
-#~ msgstr "E248: Theip ar sheoladh ord chuig an sprioc-chlr"
+#~ msgid "Could not set security context "
+#~ msgstr "Norbh fhidir comhthacs slndla a shocr "
-#~ msgid "E573: Invalid server id used: %s"
-#~ msgstr "E573: Aitheantas neamhbhail freastala in sid: %s"
+#~ msgid " for "
+#~ msgstr " le haghaidh "
-#~ msgid "E251: VIM instance registry property is badly formed. Deleted!"
-#~ msgstr "E251: Air mchumtha sa chlrlann isc VIM. Scriosta!"
+#~ msgid "Could not get security context "
+#~ msgstr "Norbh fhidir comhthacs slndla a fhil "
-#~ msgid "This Vim was not compiled with the diff feature."
-#~ msgstr "Nor tiomsaodh an leagan Vim seo le `diff' ar fil."
+#~ msgid ". Removing it!\n"
+#~ msgstr ". scriosadh!\n"
-#~ msgid "'-nb' cannot be used: not enabled at compile time\n"
-#~ msgstr "N fidir '-nb' a sid: nor cumasaodh ag am tiomsaithe\n"
+#~ msgid " (lang)"
+#~ msgstr " (teanga)"
-#~ msgid "Vim: Error: Failure to start gvim from NetBeans\n"
-#~ msgstr "Vim: Earrid: Theip ar thos gvim NetBeans\n"
+#~ msgid "E759: Format error in spell file"
+#~ msgstr "E759: Earrid fhormide i gcomhad litrithe"
#~ msgid ""
#~ "\n"
-#~ "Where case is ignored prepend / to make flag upper case"
+#~ "MS-Windows 16/32-bit GUI version"
#~ msgstr ""
#~ "\n"
-#~ "Nuair nach csogair , cuir '/' ag tosach na brata chun a chur sa "
-#~ "chs uachtair"
-
-#~ msgid "-register\t\tRegister this gvim for OLE"
-#~ msgstr "-register\t\tClraigh an gvim seo le haghaidh OLE"
-
-#~ msgid "-unregister\t\tUnregister gvim for OLE"
-#~ msgstr "-unregister\t\tDchlraigh an gvim seo le haghaidh OLE"
-
-#~ msgid "-g\t\t\tRun using GUI (like \"gvim\")"
-#~ msgstr "-g\t\t\tRith agus sid an GUI (mar \"gvim\")"
-
-#~ msgid "-f or --nofork\tForeground: Don't fork when starting GUI"
-#~ msgstr "-f n --nofork\tTulra: N dan forc agus an GUI thos"
-
-#~ msgid "-f\t\t\tDon't use newcli to open window"
-#~ msgstr "-f\t\t\tN hsid newcli chun fuinneog a oscailt"
-
-#~ msgid "-dev <device>\t\tUse <device> for I/O"
-#~ msgstr "-dev <glas>\t\tBain sid as <glas> do I/A"
-
-#~ msgid "-U <gvimrc>\t\tUse <gvimrc> instead of any .gvimrc"
-#~ msgstr "-U <gvimrc>\t\tBain sid as <gvimrc> in ionad aon .gvimrc"
-
-#~ msgid "-x\t\t\tEdit encrypted files"
-#~ msgstr "-x\t\t\tCuir comhaid chriptithe in eagar"
-
-#~ msgid "-display <display>\tConnect vim to this particular X-server"
-#~ msgstr "-display <freastala>\tNasc vim leis an bhfreastala-X seo"
-
-#~ msgid "-X\t\t\tDo not connect to X server"
-#~ msgstr "-X\t\t\tN naisc leis an bhfreastala X"
-
-#~ msgid "--remote <files>\tEdit <files> in a Vim server if possible"
-#~ msgstr ""
-#~ "--remote <comhaid>\tCuir <comhaid> in eagar le freastala Vim ms fidir"
-
-#~ msgid "--remote-silent <files> Same, don't complain if there is no server"
-#~ msgstr ""
-#~ "--remote-silent <comhaid> Mar an gcanna, n dan gearn mura bhfuil "
-#~ "freastala ann"
-
-#~ msgid ""
-#~ "--remote-wait <files> As --remote but wait for files to have been edited"
-#~ msgstr ""
-#~ "--remote-wait <comhaid> Mar --remote ach fan leis na comhaid a bheith "
-#~ "curtha in eagar"
-
-#~ msgid ""
-#~ "--remote-wait-silent <files> Same, don't complain if there is no server"
-#~ msgstr ""
-#~ "--remote-wait-silent <comhaid> Mar an gcanna, n dan gearn mura "
-#~ "bhfuil freastala ann"
-
-#~ msgid ""
-#~ "--remote-tab[-wait][-silent] <files> As --remote but use tab page per "
-#~ "file"
-#~ msgstr ""
-#~ "--remote-tab[-wait][-silent] <comhaid> Cosil le --remote ach oscail "
-#~ "cluaisn do gach comhad"
-
-#~ msgid "--remote-send <keys>\tSend <keys> to a Vim server and exit"
-#~ msgstr ""
-#~ "--remote-send <eochracha>\tSeol <eochracha> chuig freastala Vim agus "
-#~ "scoir"
-
-#~ msgid ""
-#~ "--remote-expr <expr>\tEvaluate <expr> in a Vim server and print result"
-#~ msgstr ""
-#~ "--remote-expr <slonn>\tLuachil <slonn> le freastala Vim agus taispein "
-#~ "an toradh"
-
-#~ msgid "--serverlist\t\tList available Vim server names and exit"
-#~ msgstr "--serverlist\t\tTaispein freastalaithe Vim at ar fil agus scoir"
+#~ "Leagan GUI 16/32 giotn MS-Windows"
-#~ msgid "--servername <name>\tSend to/become the Vim server <name>"
-#~ msgstr "--servername <ainm>\tSeol chuig/Tigh i do fhreastala Vim <ainm>"
+#~ msgid " in Win32s mode"
+#~ msgstr " i md Win32s"
#~ msgid ""
#~ "\n"
-#~ "Arguments recognised by gvim (Motif version):\n"
+#~ "MS-Windows 16-bit version"
#~ msgstr ""
#~ "\n"
-#~ "Argint ar eolas do gvim (leagan Motif):\n"
+#~ "Leagan 16 giotn MS-Windows"
#~ msgid ""
#~ "\n"
-#~ "Arguments recognised by gvim (neXtaw version):\n"
+#~ "32-bit MS-DOS version"
#~ msgstr ""
#~ "\n"
-#~ "Argint ar eolas do gvim (leagan neXtaw):\n"
+#~ "Leagan 32 giotn MS-DOS"
#~ msgid ""
#~ "\n"
-#~ "Arguments recognised by gvim (Athena version):\n"
+#~ "16-bit MS-DOS version"
#~ msgstr ""
#~ "\n"
-#~ "Argint ar eolas do gvim (leagan Athena):\n"
+#~ "Leagan 16 giotn MS-DOS"
-#~ msgid "-display <display>\tRun vim on <display>"
-#~ msgstr "-display <scilen>\tRith vim ar <scilen>"
+#~ msgid "WARNING: Windows 95/98/ME detected"
+#~ msgstr "RABHADH: Braitheadh Windows 95/98/ME"
-#~ msgid "-iconic\t\tStart vim iconified"
-#~ msgstr "-iconic\t\tTosaigh vim sa mhd oslaghdaithe"
+#~ msgid "type :help windows95<Enter> for info on this"
+#~ msgstr "clscrobh :help windows95<Enter> chun eolas a fhil "
-#~ msgid "-name <name>\t\tUse resource as if vim was <name>"
-#~ msgstr "-name <ainm>\t\tsid acmhainn mar a bheadh vim <ainm>"
+#~ msgid "function constructor does not accept keyword arguments"
+#~ msgstr "n ghlacann cruthaitheoir na feidhme le hargint eochairfhocail"
-#~ msgid "\t\t\t (Unimplemented)\n"
-#~ msgstr "\t\t\t (Nl ar fil)\n"
+#~ msgid "Vim dialog..."
+#~ msgstr "Dialg Vim..."
-#~ msgid "-background <color>\tUse <color> for the background (also: -bg)"
-#~ msgstr "-background <dath>\tBain sid as <dath> don chlra (-bg fosta)"
+#~ msgid "Font Selection"
+#~ msgstr "Roghn Cl"
-#~ msgid "-foreground <color>\tUse <color> for normal text (also: -fg)"
-#~ msgstr ""
-#~ "-foreground <dath>\tsid <dath> le haghaidh gnth-thacs (fosta: -fg)"
+#~ msgid "softspace must be an integer"
+#~ msgstr "caithfidh softspace a bheith ina shlnuimhir"
-#~ msgid "-font <font>\t\tUse <font> for normal text (also: -fn)"
-#~ msgstr "-font <cl>\t\tsid <cl> le haghaidh gnth-thacs (fosta: -fn)"
+#~ msgid "writelines() requires list of strings"
+#~ msgstr "liosta teaghrn ag teastil writelines()"
-#~ msgid "-boldfont <font>\tUse <font> for bold text"
-#~ msgstr "-boldfont <cl>\tBain sid as <cl> do chl trom"
+#~ msgid "<buffer object (deleted) at %p>"
+#~ msgstr "<rad maolin (scriosta) ag %p>"
-#~ msgid "-italicfont <font>\tUse <font> for italic text"
-#~ msgstr "-italicfont <cl>\tsid <cl> le haghaidh tacs iodlach"
+#~ msgid "<window object (deleted) at %p>"
+#~ msgstr "<rad fuinneoige (scriosta) ag %p>"
-#~ msgid "-geometry <geom>\tUse <geom> for initial geometry (also: -geom)"
-#~ msgstr ""
-#~ "-geometry <geoim>\tsid <geoim> le haghaidh na cimseatan tosaigh "
-#~ "(fosta: -geom)"
+#~ msgid "<window object (unknown) at %p>"
+#~ msgstr "<rad fuinneoige (anaithnid) ag %p>"
-#~ msgid "-borderwidth <width>\tUse a border width of <width> (also: -bw)"
-#~ msgstr "-borderwidth <leithead>\tSocraigh <leithead> na himlne (-bw fosta)"
+#~ msgid "<window %d>"
+#~ msgstr "<fuinneog %d>"
#~ msgid ""
-#~ "-scrollbarwidth <width> Use a scrollbar width of <width> (also: -sw)"
-#~ msgstr ""
-#~ "-scrollbarwidth <leithead> Socraigh leithead na scrollbharra a bheith "
-#~ "<leithead> (fosta: -sw)"
-
-#~ msgid "-menuheight <height>\tUse a menu bar height of <height> (also: -mh)"
+#~ "E281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim."
+#~ "org"
#~ msgstr ""
-#~ "-menuheight <airde>\tSocraigh airde an bharra roghchlir a bheith <airde> "
-#~ "(fosta: -mh)"
-
-#~ msgid "-reverse\t\tUse reverse video (also: -rv)"
-#~ msgstr "-reverse\t\tsid fs aisiompaithe (fosta: -rv)"
+#~ "E281: EARRID TCL: nl an cd scortha ina shlnuimhir!? Seol tuairisc "
+#~ "fhabht chuig <vim-dev@vim.org> le do thoil"
-#~ msgid "+reverse\t\tDon't use reverse video (also: +rv)"
-#~ msgstr "+reverse\t\tN hsid fs aisiompaithe (fosta: +rv)"
+#~ msgid "-name <name>\t\tUse resource as if vim was <name>"
+#~ msgstr "-name <ainm>\t\tsid acmhainn mar a bheadh vim <ainm>"
-#~ msgid "-xrm <resource>\tSet the specified resource"
-#~ msgstr "-xrm <acmhainn>\tSocraigh an acmhainn sainithe"
+#~ msgid "\t\t\t (Unimplemented)\n"
+#~ msgstr "\t\t\t (Nl ar fil)\n"
#~ msgid ""
#~ "\n"
@@ -7326,66 +7279,6 @@ msgstr "E446: Nl ainm comhaid faoin chrsir"
#~ msgid "--rows <number>\tInitial height of window in rows"
#~ msgstr "--rows <uimhir>\tAirde fhuinneoige i dtosach (rnna)"
-#~ msgid ""
-#~ "\n"
-#~ "Arguments recognised by gvim (GTK+ version):\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Argint ar eolas do gvim (leagan GTK+):\n"
-
-#~ msgid "-display <display>\tRun vim on <display> (also: --display)"
-#~ msgstr "-display <scilen>\tRith vim ar <scilen> (fosta: --display)"
-
-#~ msgid "--role <role>\tSet a unique role to identify the main window"
-#~ msgstr ""
-#~ "--role <rl>\tSocraigh rl sainiil chun an phromhfhuinneog a aithint"
-
-#~ msgid "--socketid <xid>\tOpen Vim inside another GTK widget"
-#~ msgstr "--socketid <xid>\tOscail Vim isteach i ngiuirlid GTK eile"
-
-#~ msgid "-P <parent title>\tOpen Vim inside parent application"
-#~ msgstr "-P <mthairchlr>\tOscail Vim isteach sa mhthairchlr"
-
-#~ msgid "--windowid <HWND>\tOpen Vim inside another win32 widget"
-#~ msgstr "--windowid <HWND>\tOscail Vim isteach i ngiuirlid win32 eile"
-
-#~ msgid "No display"
-#~ msgstr "Gan taispeint"
-
-#~ msgid ": Send failed.\n"
-#~ msgstr ": Theip ar seoladh.\n"
-
-#~ msgid ": Send failed. Trying to execute locally\n"
-#~ msgstr ": Theip ar seoladh. Ag baint triail as go lognta\n"
-
-#~ msgid "%d of %d edited"
-#~ msgstr "%d as %d danta"
-
-#~ msgid "No display: Send expression failed.\n"
-#~ msgstr "Gan taispeint: Theip ar sheoladh sloinn.\n"
-
-#~ msgid ": Send expression failed.\n"
-#~ msgstr ": Theip ar sheoladh sloinn.\n"
-
-#~ msgid "E543: Not a valid codepage"
-#~ msgstr "E543: N cdleathanach bail "
-
-#~ msgid "E285: Failed to create input context"
-#~ msgstr "E285: Theip ar chruth comhthacs ionchuir"
-
-#~ msgid "E286: Failed to open input method"
-#~ msgstr "E286: Theip ar oscailt mhodh ionchuir"
-
-#~ msgid "E287: Warning: Could not set destroy callback to IM"
-#~ msgstr ""
-#~ "E287: Rabhadh: Norbh fhidir aisghlaoch lirscriosta a shocr le IM"
-
-#~ msgid "E288: input method doesn't support any style"
-#~ msgstr "E288: N thacaonn an modh ionchuir aon stl"
-
-#~ msgid "E289: input method doesn't support my preedit type"
-#~ msgstr "E289: n thacaonn an modh ionchuir mo chinel ramheagair"
-
#~ msgid "E290: over-the-spot style requires fontset"
#~ msgstr "E290: tacar cl ag teastil stl thar-an-spota"
@@ -7397,197 +7290,15 @@ msgstr "E446: Nl ainm comhaid faoin chrsir"
#~ msgid "E292: Input Method Server is not running"
#~ msgstr "E292: Nl an Freastala Mhodh Ionchuir ag rith"
-#~ msgid ""
-#~ "\n"
-#~ " [not usable with this version of Vim]"
-#~ msgstr ""
-#~ "\n"
-#~ " [n insidte leis an leagan seo Vim]"
-
-#~ msgid "Tear off this menu"
-#~ msgstr "Bain an roghchlr seo"
-
-#~ msgid "Select Directory dialog"
-#~ msgstr "Dialg `Roghnaigh Comhadlann'"
-
-#~ msgid "Save File dialog"
-#~ msgstr "Dialg `Sbhil Comhad'"
-
-#~ msgid "Open File dialog"
-#~ msgstr "Dialg `Oscail Comhad'"
-
-#~ msgid "E338: Sorry, no file browser in console mode"
-#~ msgstr "E338: Nl brabhsla comhaid ar fil sa mhd consil"
-
#~ msgid "Vim: preserving files...\n"
#~ msgstr "Vim: comhaid gcaomhn...\n"
#~ msgid "Vim: Finished.\n"
#~ msgstr "Vim: Crochnaithe.\n"
-#~ msgid "ERROR: "
-#~ msgstr "EARRID: "
-
-#~ msgid ""
-#~ "\n"
-#~ "[bytes] total alloc-freed %<PRIu64>-%<PRIu64>, in use %<PRIu64>, peak use "
-#~ "%<PRIu64>\n"
-#~ msgstr ""
-#~ "\n"
-#~ "[beart] iomln dilte-saor %<PRIu64>-%<PRIu64>, in sid %<PRIu64>, buaic "
-#~ "%<PRIu64>\n"
-
-#~ msgid ""
-#~ "[calls] total re/malloc()'s %<PRIu64>, total free()'s %<PRIu64>\n"
-#~ "\n"
-#~ msgstr ""
-#~ "[glaonna] re/malloc(): %<PRIu64>, free(): %<PRIu64>\n"
-#~ "\n"
-
-#~ msgid "E340: Line is becoming too long"
-#~ msgstr "E340: T an lne ag ir rfhada"
-
-#~ msgid "E341: Internal error: lalloc(%<PRId64>, )"
-#~ msgstr "E341: Earrid inmhenach: lalloc(%<PRId64>, )"
-
-#~ msgid "E547: Illegal mouseshape"
-#~ msgstr "E547: Cruth neamhcheadaithe luiche"
-
-#~ msgid "Enter encryption key: "
-#~ msgstr "Iontril eochair chriptichin: "
-
-#~ msgid "Enter same key again: "
-#~ msgstr "Iontril an eochair ars: "
-
-#~ msgid "Keys don't match!"
-#~ msgstr "Nl na heochracha comhoirinach le chile!"
-
-#~ msgid "Cannot connect to Netbeans #2"
-#~ msgstr "N fidir nascadh le Netbeans #2"
-
-#~ msgid "Cannot connect to Netbeans"
-#~ msgstr "N fidir nascadh le Netbeans"
-
-#~ msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
-#~ msgstr ""
-#~ "E668: Md mcheart rochtana ar an chomhad eolas naisc NetBeans: \"%s\""
-
-#~ msgid "read from Netbeans socket"
-#~ msgstr "ladh shoicad Netbeans"
-
-#~ msgid "E658: NetBeans connection lost for buffer %<PRId64>"
-#~ msgstr "E658: Cailleadh nasc NetBeans le haghaidh maolin %<PRId64>"
-
#~ msgid "E505: "
#~ msgstr "E505: "
-#~ msgid "E775: Eval feature not available"
-#~ msgstr "E775: Nl an ghn Eval le fil"
-
-#~ msgid "freeing %<PRId64> lines"
-#~ msgstr "%<PRId64> lne saoradh"
-
-#~ msgid "E530: Cannot change term in GUI"
-#~ msgstr "E530: N fidir 'term' a athr sa GUI"
-
-#~ msgid "E531: Use \":gui\" to start the GUI"
-#~ msgstr "E531: sid \":gui\" chun an GUI a chur ag obair"
-
-#~ msgid "E617: Cannot be changed in the GTK+ 2 GUI"
-#~ msgstr "E617: N fidir a athr sa GUI GTK+ 2"
-
-#~ msgid "E596: Invalid font(s)"
-#~ msgstr "E596: Cl(nna) neamhbhail"
-
-#~ msgid "E597: can't select fontset"
-#~ msgstr "E597: n fidir tacar cl a roghn"
-
-#~ msgid "E598: Invalid fontset"
-#~ msgstr "E598: Tacar cl neamhbhail"
-
-#~ msgid "E533: can't select wide font"
-#~ msgstr "E533: n fidir cl leathan a roghn"
-
-#~ msgid "E534: Invalid wide font"
-#~ msgstr "E534: Cl leathan neamhbhail"
-
-#~ msgid "E538: No mouse support"
-#~ msgstr "E538: Gan tacaocht luiche"
-
-#~ msgid "cannot open "
-#~ msgstr "n fidir a oscailt: "
-
-#~ msgid "VIM: Can't open window!\n"
-#~ msgstr "VIM: N fidir fuinneog a oscailt!\n"
-
-#~ msgid "Need Amigados version 2.04 or later\n"
-#~ msgstr "T g le Amigados leagan 2.04 n nos dana\n"
-
-#~ msgid "Need %s version %<PRId64>\n"
-#~ msgstr "T g le %s, leagan %<PRId64>\n"
-
-#~ msgid "Cannot open NIL:\n"
-#~ msgstr "N fidir NIL a oscailt:\n"
-
-#~ msgid "Cannot create "
-#~ msgstr "N fidir a chruth: "
-
-#~ msgid "Vim exiting with %d\n"
-#~ msgstr "Vim scor le stdas %d\n"
-
-#~ msgid "cannot change console mode ?!\n"
-#~ msgstr "n fidir md consil a athr ?!\n"
-
-#~ msgid "mch_get_shellsize: not a console??\n"
-#~ msgstr "mch_get_shellsize: n consl seo??\n"
-
-#~ msgid "E360: Cannot execute shell with -f option"
-#~ msgstr "E360: N fidir blaosc a rith le rogha -f"
-
-#~ msgid "Cannot execute "
-#~ msgstr "N fidir blaosc a rith: "
-
-#~ msgid "shell "
-#~ msgstr "blaosc "
-
-#~ msgid " returned\n"
-#~ msgstr " aisfhilleadh\n"
-
-#~ msgid "ANCHOR_BUF_SIZE too small."
-#~ msgstr "ANCHOR_BUF_SIZE rbheag."
-
-#~ msgid "I/O ERROR"
-#~ msgstr "EARRID I/A"
-
-#~ msgid "Message"
-#~ msgstr "Teachtaireacht"
-
-#~ msgid "'columns' is not 80, cannot execute external commands"
-#~ msgstr "n 80 'columns', n fidir orduithe seachtracha a rith"
-
-#~ msgid "E237: Printer selection failed"
-#~ msgstr "E237: Theip ar roghn printara"
-
-#~ msgid "to %s on %s"
-#~ msgstr "go %s ar %s"
-
-#~ msgid "E613: Unknown printer font: %s"
-#~ msgstr "E613: Clfhoireann anaithnid printara: %s"
-
-#~ msgid "E238: Print error: %s"
-#~ msgstr "E238: Earrid phriontla: %s"
-
-#~ msgid "Printing '%s'"
-#~ msgstr "'%s' phriontil"
-
-#~ msgid "E244: Illegal charset name \"%s\" in font name \"%s\""
-#~ msgstr ""
-#~ "E244: Ainm neamhcheadaithe ar thacar carachtar \"%s\" mar phirt d'ainm "
-#~ "cl \"%s\""
-
-#~ msgid "E245: Illegal char '%c' in font name \"%s\""
-#~ msgstr "E245: Carachtar neamhcheadaithe '%c' mar phirt d'ainm cl \"%s\""
-
#~ msgid "Vim: Double signal, exiting\n"
#~ msgstr "Vim: Comhartha dbailte, ag scor\n"
@@ -7597,419 +7308,23 @@ msgstr "E446: Nl ainm comhaid faoin chrsir"
#~ msgid "Vim: Caught deadly signal\n"
#~ msgstr "Vim: Fuarthas comhartha marfach\n"
-#~ msgid "Opening the X display took %<PRId64> msec"
-#~ msgstr "Thg %<PRId64> ms chun an scilen X a oscailt"
-
-#~ msgid ""
-#~ "\n"
-#~ "Vim: Got X error\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Vim: Fuarthas earrid X\n"
-
-#~ msgid "Testing the X display failed"
-#~ msgstr "Theip ar thstil an scilein X"
-
-#~ msgid "Opening the X display timed out"
-#~ msgstr "Oscailt an scilein X thar am"
-
-#~ msgid ""
-#~ "\n"
-#~ "Cannot execute shell sh\n"
-#~ msgstr ""
-#~ "\n"
-#~ "N fidir an bhlaosc sh a rith\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "Cannot create pipes\n"
-#~ msgstr ""
-#~ "\n"
-#~ "N fidir popa a chruth\n"
-
-# "fork" not in standard refs/corpus. Maybe want a "gabhl*" word instead? -KPS
-#~ msgid ""
-#~ "\n"
-#~ "Cannot fork\n"
-#~ msgstr ""
-#~ "\n"
-#~ "N fidir forc a dhanamh\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "Command terminated\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Ord crochnaithe\n"
-
-#~ msgid "XSMP lost ICE connection"
-#~ msgstr "Chaill XSMP an nasc ICE"
-
-#~ msgid "Opening the X display failed"
-#~ msgstr "Theip ar oscailt an scilein X"
-
-#~ msgid "XSMP handling save-yourself request"
-#~ msgstr "Iarratas sbhil-do-fin limhseil ag XSMP"
-
-#~ msgid "XSMP opening connection"
-#~ msgstr "Nasc oscailt ag XSMP"
-
-#~ msgid "XSMP ICE connection watch failed"
-#~ msgstr "Theip ar fhaire nasc ICE XSMP"
-
-#~ msgid "XSMP SmcOpenConnection failed: %s"
-#~ msgstr "Theip ar XSMP SmcOpenConnection: %s"
-
-#~ msgid "At line"
-#~ msgstr "Ag lne"
-
-#~ msgid "Could not load vim32.dll!"
-#~ msgstr "Norbh fhidir vim32.dll a lucht!"
-
-#~ msgid "VIM Error"
-#~ msgstr "Earrid VIM"
-
-#~ msgid "Could not fix up function pointers to the DLL!"
-#~ msgstr "Norbh fhidir pointeoir feidhme a chiri i gcomhair an DLL!"
-
-#~ msgid "shell returned %d"
-#~ msgstr "d'aisfhill an bhlaosc %d"
-
-#~ msgid "Vim: Caught %s event\n"
-#~ msgstr "Vim: Fuarthas teagmhas %s\n"
-
-#~ msgid "close"
-#~ msgstr "dn"
-
-#~ msgid "logoff"
-#~ msgstr "logil amach"
-
-#~ msgid "shutdown"
-#~ msgstr "mchadh"
-
-#~ msgid "E371: Command not found"
-#~ msgstr "E371: N bhfuarthas an t-ord"
-
-#~ msgid ""
-#~ "VIMRUN.EXE not found in your $PATH.\n"
-#~ "External commands will not pause after completion.\n"
-#~ "See :help win32-vimrun for more information."
-#~ msgstr ""
-#~ "Nor aimsodh VIMRUN.EXE i do $PATH.\n"
-#~ "N mhoilleoidh orduithe seachtracha agus iad curtha i gcrch.\n"
-#~ "Fach ar :help win32-vimrun chun nos m eolas a fhil."
-
-#~ msgid "Vim Warning"
-#~ msgstr "Rabhadh Vim"
-
-#~ msgid "Conversion in %s not supported"
-#~ msgstr "Tiont i %s gan tacaocht"
-
#~ msgid "E396: containedin argument not accepted here"
#~ msgstr "E396: n ghlactar leis an argint containedin anseo"
-#~ msgid "E430: Tag file path truncated for %s\n"
-#~ msgstr "E430: Teascadh conair an chomhaid clibeanna le haghaidh %s\n"
-
-#~ msgid "new shell started\n"
-#~ msgstr "tosaodh blaosc nua\n"
-
-#~ msgid "Used CUT_BUFFER0 instead of empty selection"
-#~ msgstr "sideadh CUT_BUFFER0 in ionad roghnchin folaimh"
-
-#~ msgid "No undo possible; continue anyway"
-#~ msgstr "N fidir a cheal; lean ar aghaidh mar sin fin"
-
# columns?
#~ msgid "number changes time"
#~ msgstr "uimhir athruithe am"
#~ msgid ""
#~ "\n"
-#~ "MS-Windows 16/32-bit GUI version"
-#~ msgstr ""
-#~ "\n"
-#~ "Leagan GUI 16/32 giotn MS-Windows"
-
-#~ msgid ""
-#~ "\n"
-#~ "MS-Windows 64-bit GUI version"
-#~ msgstr ""
-#~ "\n"
-#~ "Leagan GUI 64 giotn MS-Windows"
-
-#~ msgid ""
-#~ "\n"
-#~ "MS-Windows 32-bit GUI version"
-#~ msgstr ""
-#~ "\n"
-#~ "Leagan GUI 32 giotn MS-Windows"
-
-#~ msgid " in Win32s mode"
-#~ msgstr " i md Win32s"
-
-#~ msgid " with OLE support"
-#~ msgstr " le tacaocht OLE"
-
-#~ msgid ""
-#~ "\n"
-#~ "MS-Windows 64-bit console version"
-#~ msgstr ""
-#~ "\n"
-#~ "Leagan consil 64 giotn MS-Windows"
-
-#~ msgid ""
-#~ "\n"
-#~ "MS-Windows 32-bit console version"
-#~ msgstr ""
-#~ "\n"
-#~ "Leagan consil 32 giotn MS-Windows"
-
-#~ msgid ""
-#~ "\n"
-#~ "MS-Windows 16-bit version"
-#~ msgstr ""
-#~ "\n"
-#~ "Leagan 16 giotn MS-Windows"
-
-#~ msgid ""
-#~ "\n"
-#~ "32-bit MS-DOS version"
-#~ msgstr ""
-#~ "\n"
-#~ "Leagan 32 giotn MS-DOS"
-
-#~ msgid ""
-#~ "\n"
-#~ "16-bit MS-DOS version"
-#~ msgstr ""
-#~ "\n"
-#~ "Leagan 16 giotn MS-DOS"
-
-#~ msgid ""
-#~ "\n"
-#~ "MacOS X (unix) version"
-#~ msgstr ""
-#~ "\n"
-#~ "Leagan MacOS X (unix)"
-
-#~ msgid ""
-#~ "\n"
-#~ "MacOS X version"
-#~ msgstr ""
-#~ "\n"
-#~ "Leagan MacOS X"
-
-#~ msgid ""
-#~ "\n"
-#~ "MacOS version"
-#~ msgstr ""
-#~ "\n"
-#~ "Leagan MacOS"
-
-#~ msgid ""
-#~ "\n"
#~ "RISC OS version"
#~ msgstr ""
#~ "\n"
#~ "Leagan RISC OS"
-#~ msgid ""
-#~ "\n"
-#~ "OpenVMS version"
-#~ msgstr ""
-#~ "\n"
-#~ "Leagan OpenVMS"
-
-#~ msgid ""
-#~ "\n"
-#~ "Big version "
-#~ msgstr ""
-#~ "\n"
-#~ "Leagan mr "
-
-#~ msgid ""
-#~ "\n"
-#~ "Normal version "
-#~ msgstr ""
-#~ "\n"
-#~ "Leagan coitianta "
-
-#~ msgid ""
-#~ "\n"
-#~ "Small version "
-#~ msgstr ""
-#~ "\n"
-#~ "Leagan beag "
-
-#~ msgid ""
-#~ "\n"
-#~ "Tiny version "
-#~ msgstr ""
-#~ "\n"
-#~ "Leagan beag bdeach "
-
-#~ msgid "with GTK2-GNOME GUI."
-#~ msgstr "le GUI GTK2-GNOME."
-
#~ msgid "with GTK-GNOME GUI."
#~ msgstr "le GUI GTK-GNOME."
-#~ msgid "with GTK2 GUI."
-#~ msgstr "le GUI GTK2."
-
-#~ msgid "with GTK GUI."
-#~ msgstr "le GUI GTK."
-
-#~ msgid "with X11-Motif GUI."
-#~ msgstr "le GUI X11-Motif."
-
-#~ msgid "with X11-neXtaw GUI."
-#~ msgstr "le GUI X11-neXtaw."
-
-#~ msgid "with X11-Athena GUI."
-#~ msgstr "le GUI X11-Athena."
-
-#~ msgid "with Photon GUI."
-#~ msgstr "le GUI Photon."
-
-#~ msgid "with GUI."
-#~ msgstr "le GUI."
-
-#~ msgid "with Carbon GUI."
-#~ msgstr "le GUI Carbon."
-
-#~ msgid "with Cocoa GUI."
-#~ msgstr "le GUI Cocoa."
-
-#~ msgid "with (classic) GUI."
-#~ msgstr "le GUI (clasaiceach)."
-
-#~ msgid " system gvimrc file: \""
-#~ msgstr " comhad gvimrc crais: \""
-
-#~ msgid " user gvimrc file: \""
-#~ msgstr " comhad gvimrc sideora: \""
-
-#~ msgid "2nd user gvimrc file: \""
-#~ msgstr "dara comhad gvimrc sideora: \""
-
-#~ msgid "3rd user gvimrc file: \""
-#~ msgstr "tr comhad gvimrc sideora: \""
-
-#~ msgid " system menu file: \""
-#~ msgstr " comhad roghchlir an chrais: \""
-
-#~ msgid "Compiler: "
-#~ msgstr "Tiomsaitheoir: "
-
-# don't see where to localize "Help->Orphans"? --kps
-#~ msgid "menu Help->Orphans for information "
-#~ msgstr "roghchlr Help->Orphans chun eolas a fhil "
-
-#~ msgid "Running modeless, typed text is inserted"
-#~ msgstr " rith gan mhid, ag ions an tacs at iontrilte"
-
-# same problem --kps
-#~ msgid "menu Edit->Global Settings->Toggle Insert Mode "
-#~ msgstr "roghchlr Edit->Global Settings->Toggle Insert Mode "
-
-#~ msgid " for two modes "
-#~ msgstr " do dh mhd "
-
-# same problem --kps
-#~ msgid "menu Edit->Global Settings->Toggle Vi Compatible"
-#~ msgstr "roghchlr Edit->Global Settings->Toggle Vi Compatible"
-
-#~ msgid " for Vim defaults "
-#~ msgstr " le haghaidh ramhshocruithe Vim "
-
-#~ msgid "WARNING: Windows 95/98/ME detected"
-#~ msgstr "RABHADH: Braitheadh Windows 95/98/ME"
-
-#~ msgid "type :help windows95<Enter> for info on this"
-#~ msgstr "clscrobh :help windows95<Enter> chun eolas a fhil "
-
-#~ msgid "E370: Could not load library %s"
-#~ msgstr "E370: Norbh fhidir an leabharlann %s a oscailt"
-
-#~ msgid ""
-#~ "Sorry, this command is disabled: the Perl library could not be loaded."
-#~ msgstr ""
-#~ "T brn orm, nl an t-ord seo le fil: norbh fhidir an leabharlann "
-#~ "Perl a lucht."
-
-#~ msgid "E299: Perl evaluation forbidden in sandbox without the Safe module"
-#~ msgstr ""
-#~ "E299: N cheadatear luachil Perl i mbosca gainimh gan an modl Safe"
-
-#~ msgid "Edit with &multiple Vims"
-#~ msgstr "Cuir in eagar le Vimeanna io&madla"
-
-#~ msgid "Edit with single &Vim"
-#~ msgstr "Cuir in eagar le &Vim aonair"
-
-#~ msgid "Diff with Vim"
-#~ msgstr "Diff le Vim"
-
-#~ msgid "Edit with &Vim"
-#~ msgstr "Cuir in Eagar le &Vim"
-
-#~ msgid "Edit with existing Vim - "
-#~ msgstr "Cuir in Eagar le Vim beo - "
-
-#~ msgid "Edits the selected file(s) with Vim"
-#~ msgstr "Cuir an comhad roghnaithe in eagar le Vim"
-
-#~ msgid "Error creating process: Check if gvim is in your path!"
-#~ msgstr ""
-#~ "Earrid agus priseas chruth: Deimhnigh go bhfuil gvim i do chonair!"
-
-#~ msgid "gvimext.dll error"
-#~ msgstr "earrid gvimext.dll"
-
-#~ msgid "Path length too long!"
-#~ msgstr "Conair rfhada!"
-
-#~ msgid "E234: Unknown fontset: %s"
-#~ msgstr "E234: Tacar cl anaithnid: %s"
-
-#~ msgid "E235: Unknown font: %s"
-#~ msgstr "E235: Clfhoireann anaithnid: %s"
-
-#~ msgid "E236: Font \"%s\" is not fixed-width"
-#~ msgstr "E236: N cl aonleithid \"%s\""
-
-#~ msgid "E448: Could not load library function %s"
-#~ msgstr "E448: N fidir feidhm %s leabharlainne a lucht"
-
-#~ msgid "E26: Hebrew cannot be used: Not enabled at compile time\n"
-#~ msgstr ""
-#~ "E26: Nl tacaocht Eabhraise ar fil: Nor cumasaodh ag am tiomsaithe\n"
-
-#~ msgid "E27: Farsi cannot be used: Not enabled at compile time\n"
-#~ msgstr ""
-#~ "E27: Nl tacaocht Pheirsise ar fil: Nor cumasaodh ag am tiomsaithe\n"
-
-#~ msgid "E800: Arabic cannot be used: Not enabled at compile time\n"
-#~ msgstr ""
-#~ "E800: Nl tacaocht Araibise ar fil: Nor cumasaodh ag am tiomsaithe\n"
-
-#~ msgid "E247: no registered server named \"%s\""
-#~ msgstr "E247: nl aon fhreastala clraithe leis an ainm \"%s\""
-
-#~ msgid "E233: cannot open display"
-#~ msgstr "E233: n fidir an scilen a oscailt"
-
-#~ msgid "E449: Invalid expression received"
-#~ msgstr "E449: Fuarthas slonn neamhbhail"
-
-#~ msgid "E463: Region is guarded, cannot modify"
-#~ msgstr "E463: Rigin cosanta, n fidir a athr"
-
-#~ msgid "E744: NetBeans does not allow changes in read-only files"
-#~ msgstr "E744: N cheadaonn NetBeans aon athr i gcomhaid inlite amhin"
-
#~ msgid "E569: maximum number of cscope connections reached"
#~ msgstr "E569: n cheadatear nos m n an lon uasta nasc cscope"
@@ -8070,8 +7385,8 @@ msgstr "E446: Nl ainm comhaid faoin chrsir"
#~ msgstr ""
#~ "N mr do charachtar a sidtear ar SLASH a bheith ASCII; i %s lne %d: %s"
-#~ msgid "%<PRId64> changes"
-#~ msgstr "%<PRId64> athr"
+#~ msgid "%ld changes"
+#~ msgstr "%ld athr"
#~ msgid "with KDE GUI."
#~ msgstr "le GUI KDE."
diff --git a/src/nvim/po/ja.euc-jp.po b/src/nvim/po/ja.euc-jp.po
index c6425324b1..4b32096f1a 100644
--- a/src/nvim/po/ja.euc-jp.po
+++ b/src/nvim/po/ja.euc-jp.po
@@ -1,3 +1,4 @@
+
# Japanese translation for Vim
#
# Do ":help uganda" in Vim to read copying and usage conditions.
@@ -14,213 +15,176 @@ msgid ""
msgstr ""
"Project-Id-Version: Vim 7.4\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:02+0900\n"
-"PO-Revision-Date: 2016-02-01 09:08+0900\n"
+"POT-Creation-Date: 2016-09-10 21:10+0900\n"
+"PO-Revision-Date: 2016-09-10 21:20+0900\n"
"Last-Translator: MURAOKA Taro <koron.kaoriya@gmail.com>\n"
"Language-Team: vim-jp (https://github.com/vim-jp/lang-ja)\n"
"Language: Japanese\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=euc-jp\n"
"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
-#: ../api/private/helpers.c:201
-#, fuzzy
-msgid "Unable to get option value"
-msgstr "ץͤϼǤޤ"
+msgid "E831: bf_key_init() called with empty password"
+msgstr "E831: bf_key_init() ѥɤǸƤӽФޤ"
-#: ../api/private/helpers.c:204
-msgid "internal error: unknown option type"
-msgstr "顼: ̤ΤΥץ󷿤Ǥ"
+msgid "E820: sizeof(uint32_t) != 4"
+msgstr "E820: sizeof(uint32_t) != 4"
+
+msgid "E817: Blowfish big/little endian use wrong"
+msgstr "E817: BlowfishŹΥӥå/ȥ륨ǥ󤬴ְäƤޤ"
+
+msgid "E818: sha256 test failed"
+msgstr "E818: sha256ΥƥȤ˼Ԥޤ"
+
+msgid "E819: Blowfish test failed"
+msgstr "E819: BlowfishŹΥƥȤ˼Ԥޤ"
-#: ../buffer.c:92
msgid "[Location List]"
msgstr "[ꥹ]"
-#: ../buffer.c:93
msgid "[Quickfix List]"
msgstr "[Quickfixꥹ]"
-#: ../buffer.c:94
msgid "E855: Autocommands caused command to abort"
msgstr "E855: autocommandޥɤߤޤ"
-#: ../buffer.c:135
msgid "E82: Cannot allocate any buffer, exiting..."
msgstr "E82: Хåե1ĤǤʤΤ, λޤ..."
-#: ../buffer.c:138
msgid "E83: Cannot allocate buffer, using other one..."
msgstr "E83: ХåեǤʤΤ, ¾ΤѤޤ..."
-#: ../buffer.c:763
+msgid "E931: Buffer cannot be registered"
+msgstr "E931: ХåեϿǤޤ"
+
+msgid "E937: Attempt to delete a buffer that is in use"
+msgstr "E937: ΥХåե褦Ȼߤޤ"
+
msgid "E515: No buffers were unloaded"
msgstr "E515: 줿ХåեϤޤ"
-#: ../buffer.c:765
msgid "E516: No buffers were deleted"
msgstr "E516: 줿ХåեϤޤ"
-#: ../buffer.c:767
msgid "E517: No buffers were wiped out"
msgstr "E517: ˴줿ХåեϤޤ"
-#: ../buffer.c:772
msgid "1 buffer unloaded"
msgstr "1 ĤΥХåեޤ"
-#: ../buffer.c:774
#, c-format
msgid "%d buffers unloaded"
msgstr "%d ĤΥХåեޤ"
-#: ../buffer.c:777
msgid "1 buffer deleted"
msgstr "1 ĤΥХåեޤ"
-#: ../buffer.c:779
#, c-format
msgid "%d buffers deleted"
msgstr "%d ĤΥХåեޤ"
-#: ../buffer.c:782
msgid "1 buffer wiped out"
msgstr "1 ĤΥХåե˴ޤ"
-#: ../buffer.c:784
#, c-format
msgid "%d buffers wiped out"
msgstr "%d ĤΥХåե˴ޤ"
-#: ../buffer.c:806
msgid "E90: Cannot unload last buffer"
msgstr "E90: ǸΥХåեϲǤޤ"
-#: ../buffer.c:874
msgid "E84: No modified buffer found"
msgstr "E84: ѹ줿ХåեϤޤ"
#. back where we started, didn't find anything.
-#: ../buffer.c:903
msgid "E85: There is no listed buffer"
msgstr "E85: ꥹɽХåեϤޤ"
-#: ../buffer.c:913
-#, c-format
-msgid "E86: Buffer %<PRId64> does not exist"
-msgstr "E86: Хåե %<PRId64> Ϥޤ"
-
-#: ../buffer.c:915
msgid "E87: Cannot go beyond last buffer"
msgstr "E87: ǸΥХåեۤưưϤǤޤ"
-#: ../buffer.c:917
msgid "E88: Cannot go before first buffer"
msgstr "E88: ǽΥХåեؤϰưǤޤ"
-#: ../buffer.c:945
#, c-format
-msgid ""
-"E89: No write since last change for buffer %<PRId64> (add ! to override)"
-msgstr "E89: Хåե %<PRId64> ѹ¸Ƥޤ (! ѹ˴)"
+msgid "E89: No write since last change for buffer %ld (add ! to override)"
+msgstr "E89: Хåե %ld ѹ¸Ƥޤ (! ѹ˴)"
-#. wrap around (may cause duplicates)
-#: ../buffer.c:1423
msgid "W14: Warning: List of file names overflow"
msgstr "W14: ٹ: ե̾ΥꥹȤĹ᤮ޤ"
-#: ../buffer.c:1555 ../quickfix.c:3361
#, c-format
-msgid "E92: Buffer %<PRId64> not found"
-msgstr "E92: Хåե %<PRId64> Ĥޤ"
+msgid "E92: Buffer %ld not found"
+msgstr "E92: Хåե %ld Ĥޤ"
-#: ../buffer.c:1798
#, c-format
msgid "E93: More than one match for %s"
msgstr "E93: %s ʣγޤ"
-#: ../buffer.c:1800
#, c-format
msgid "E94: No matching buffer for %s"
msgstr "E94: %s ˳ХåեϤޤǤ"
-#: ../buffer.c:2161
#, c-format
-msgid "line %<PRId64>"
-msgstr " %<PRId64>"
+msgid "line %ld"
+msgstr " %ld"
-#: ../buffer.c:2233
msgid "E95: Buffer with this name already exists"
msgstr "E95: ̾ΥХåեϴˤޤ"
-#: ../buffer.c:2498
msgid " [Modified]"
msgstr " [ѹ]"
-#: ../buffer.c:2501
msgid "[Not edited]"
msgstr "[̤Խ]"
-#: ../buffer.c:2504
msgid "[New file]"
msgstr "[ե]"
-#: ../buffer.c:2505
msgid "[Read errors]"
msgstr "[ɹ顼]"
-#: ../buffer.c:2506 ../buffer.c:3217 ../fileio.c:1807 ../screen.c:4895
msgid "[RO]"
msgstr "[]"
-#: ../buffer.c:2507 ../fileio.c:1807
msgid "[readonly]"
msgstr "[ɹ]"
-#: ../buffer.c:2524
#, c-format
msgid "1 line --%d%%--"
msgstr "1 --%d%%--"
-#: ../buffer.c:2526
#, c-format
-msgid "%<PRId64> lines --%d%%--"
-msgstr "%<PRId64> --%d%%--"
+msgid "%ld lines --%d%%--"
+msgstr "%ld --%d%%--"
-#: ../buffer.c:2530
#, c-format
-msgid "line %<PRId64> of %<PRId64> --%d%%-- col "
-msgstr " %<PRId64> ( %<PRId64>) --%d%%-- col "
+msgid "line %ld of %ld --%d%%-- col "
+msgstr " %ld ( %ld) --%d%%-- col "
-#: ../buffer.c:2632 ../buffer.c:4292 ../memline.c:1554
msgid "[No Name]"
msgstr "[̵̾]"
#. must be a help buffer
-#: ../buffer.c:2667
msgid "help"
msgstr "إ"
-#: ../buffer.c:3225 ../screen.c:4883
msgid "[Help]"
msgstr "[إ]"
-#: ../buffer.c:3254 ../screen.c:4887
msgid "[Preview]"
msgstr "[ץӥ塼]"
-#: ../buffer.c:3528
msgid "All"
msgstr ""
-#: ../buffer.c:3528
msgid "Bot"
msgstr ""
-#: ../buffer.c:3531
msgid "Top"
msgstr "Ƭ"
-#: ../buffer.c:4244
msgid ""
"\n"
"# Buffer list:\n"
@@ -228,11 +192,9 @@ msgstr ""
"\n"
"# Хåեꥹ:\n"
-#: ../buffer.c:4289
msgid "[Scratch]"
msgstr "[]"
-#: ../buffer.c:4529
msgid ""
"\n"
"--- Signs ---"
@@ -240,200 +202,235 @@ msgstr ""
"\n"
"--- ---"
-#: ../buffer.c:4538
#, c-format
msgid "Signs for %s:"
msgstr "%s Υ:"
-#: ../buffer.c:4543
#, c-format
-msgid " line=%<PRId64> id=%d name=%s"
-msgstr " =%<PRId64> ̻=%d ̾=%s"
+msgid " line=%ld id=%d name=%s"
+msgstr " =%ld ̻=%d ̾=%s"
-#: ../cursor_shape.c:68
-msgid "E545: Missing colon"
-msgstr "E545: 󤬤ޤ"
+msgid "E902: Cannot connect to port"
+msgstr "E902: ݡȤ³Ǥޤ"
-#: ../cursor_shape.c:70 ../cursor_shape.c:94
-msgid "E546: Illegal mode"
-msgstr "E546: ʥ⡼ɤǤ"
+msgid "E901: gethostbyname() in channel_open()"
+msgstr "E901: channel_open() gethostbyname() Ԥޤ"
-#: ../cursor_shape.c:134
-msgid "E548: digit expected"
-msgstr "E548: ͤɬפǤ"
+msgid "E898: socket() in channel_open()"
+msgstr "E898: channel_open() socket() Ԥޤ"
-#: ../cursor_shape.c:138
-msgid "E549: Illegal percentage"
-msgstr "E549: ʥѡơǤ"
+msgid "E903: received command with non-string argument"
+msgstr "E903: ʸΰΥޥɤޤ"
+
+msgid "E904: last argument for expr/call must be a number"
+msgstr "E904: expr/call κǸΰϿǤʤФʤޤ"
+
+msgid "E904: third argument for call must be a list"
+msgstr "E904: call 3ܤΰϥꥹȷǤʤФʤޤ"
+
+#, c-format
+msgid "E905: received unknown command: %s"
+msgstr "E905: ̤ΤΥޥɤޤ: %s"
+
+#, c-format
+msgid "E630: %s(): write while not connected"
+msgstr "E630: %s(): ³֤ǽ񤭹ߤޤ"
+
+#, c-format
+msgid "E631: %s(): write failed"
+msgstr "E631: %s(): 񤭹ߤ˼Ԥޤ"
+
+#, c-format
+msgid "E917: Cannot use a callback with %s()"
+msgstr "E917: %s() ˥ХåϻȤޤ"
+
+msgid "E912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channel"
+msgstr "E912: nl ͥ ch_evalexpr()/ch_sendexpr ϻȤޤ"
+
+msgid "E906: not an open channel"
+msgstr "E906: ƤʤͥǤ"
+
+msgid "E920: _io file requires _name to be set"
+msgstr "E920: _io ե _name ꤬ɬפǤ"
+
+msgid "E915: in_io buffer requires in_buf or in_name to be set"
+msgstr "E915: in_io Хåե in_buf in_name ꤬ɬפǤ"
+
+#, c-format
+msgid "E918: buffer must be loaded: %s"
+msgstr "E918: ХåեɤƤʤФʤޤ: %s"
+
+msgid "E821: File is encrypted with unknown method"
+msgstr "E821: ե뤬̤ΤˡǰŹ沽Ƥޤ"
+
+msgid "Warning: Using a weak encryption method; see :help 'cm'"
+msgstr "ٹ: 夤ŹˡȤäƤޤ; :help 'cm' 򻲾ȤƤ"
+
+msgid "Enter encryption key: "
+msgstr "Ź沽ѤΥϤƤ: "
+
+msgid "Enter same key again: "
+msgstr "⤦ƱϤƤ: "
+
+msgid "Keys don't match!"
+msgstr "פޤ"
+
+msgid "[crypted]"
+msgstr "[Ź沽]"
+
+#, c-format
+msgid "E720: Missing colon in Dictionary: %s"
+msgstr "E720: 񷿤˥󤬤ޤ: %s"
+
+#, c-format
+msgid "E721: Duplicate key in Dictionary: \"%s\""
+msgstr "E721: 񷿤˽ʣޤ: \"%s\""
+
+#, c-format
+msgid "E722: Missing comma in Dictionary: %s"
+msgstr "E722: 񷿤˥ޤޤ: %s"
+
+#, c-format
+msgid "E723: Missing end of Dictionary '}': %s"
+msgstr "E723: 񷿤κǸ '}' ޤ: %s"
+
+msgid "extend() argument"
+msgstr "extend() ΰ"
-#: ../diff.c:146
#, c-format
-msgid "E96: Can not diff more than %<PRId64> buffers"
-msgstr "E96: %<PRId64> ʾΥХåեdiffǤޤ"
+msgid "E737: Key already exists: %s"
+msgstr "E737: ϴ¸ߤޤ: %s"
+
+#, c-format
+msgid "E96: Cannot diff more than %ld buffers"
+msgstr "E96: %ld ʾΥХåեdiffǤޤ"
-#: ../diff.c:753
msgid "E810: Cannot read or write temp files"
msgstr "E810: եɹ⤷ϽǤޤ"
-#: ../diff.c:755
msgid "E97: Cannot create diffs"
msgstr "E97: ʬǤޤ"
-#: ../diff.c:966
+msgid "Patch file"
+msgstr "ѥåե"
+
msgid "E816: Cannot read patch output"
msgstr "E816: patchνϤɹޤ"
-#: ../diff.c:1220
msgid "E98: Cannot read diff output"
msgstr "E98: diffνϤɹޤ"
-#: ../diff.c:2081
msgid "E99: Current buffer is not in diff mode"
msgstr "E99: ߤΥХåեϺʬ⡼ɤǤϤޤ"
-#: ../diff.c:2100
msgid "E793: No other buffer in diff mode is modifiable"
msgstr "E793: ʬ⡼ɤǤ¾ΥХåեѹǤޤ"
-#: ../diff.c:2102
msgid "E100: No other buffer in diff mode"
msgstr "E100: ʬ⡼ɤǤ¾ΥХåեϤޤ"
-#: ../diff.c:2112
msgid "E101: More than two buffers in diff mode, don't know which one to use"
msgstr ""
"E101: ʬ⡼ɤΥХåե2İʾ夢ΤǡɤȤǤޤ"
-#: ../diff.c:2141
#, c-format
msgid "E102: Can't find buffer \"%s\""
msgstr "E102: Хåե \"%s\" Ĥޤ"
-#: ../diff.c:2152
#, c-format
msgid "E103: Buffer \"%s\" is not in diff mode"
msgstr "E103: Хåե \"%s\" Ϻʬ⡼ɤǤϤޤ"
-#: ../diff.c:2193
msgid "E787: Buffer changed unexpectedly"
msgstr "E787: ͽХåեѹѹޤ"
-#: ../digraph.c:1598
msgid "E104: Escape not allowed in digraph"
msgstr "E104: EscapeϻѤǤޤ"
-#: ../digraph.c:1760
msgid "E544: Keymap file not found"
msgstr "E544: ޥåץե뤬Ĥޤ"
-#: ../digraph.c:1785
msgid "E105: Using :loadkeymap not in a sourced file"
msgstr "E105: :source ǼեʳǤ :loadkeymap Ȥޤ"
-#: ../digraph.c:1821
msgid "E791: Empty keymap entry"
msgstr "E791: Υޥåץȥ"
-#: ../edit.c:82
msgid " Keyword completion (^N^P)"
msgstr " 䴰 (^N^P)"
#. ctrl_x_mode == 0, ^P/^N compl.
-#: ../edit.c:83
msgid " ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
msgstr " ^X ⡼ (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
-#: ../edit.c:85
msgid " Whole line completion (^L^N^P)"
msgstr " ()䴰 (^L^N^P)"
-#: ../edit.c:86
msgid " File name completion (^F^N^P)"
msgstr " ե̾䴰 (^F^N^P)"
-#: ../edit.c:87
msgid " Tag completion (^]^N^P)"
msgstr " 䴰 (^]^N^P)"
-#: ../edit.c:88
msgid " Path pattern completion (^N^P)"
msgstr " ѥѥ䴰 (^N^P)"
-#: ../edit.c:89
msgid " Definition completion (^D^N^P)"
msgstr " 䴰 (^D^N^P)"
-#: ../edit.c:91
msgid " Dictionary completion (^K^N^P)"
msgstr " 䴰 (^K^N^P)"
-#: ../edit.c:92
msgid " Thesaurus completion (^T^N^P)"
msgstr " 饹䴰 (^T^N^P)"
-#: ../edit.c:93
msgid " Command-line completion (^V^N^P)"
msgstr " ޥɥ饤䴰 (^V^N^P)"
-#: ../edit.c:94
msgid " User defined completion (^U^N^P)"
msgstr " 桼䴰 (^U^N^P)"
-#: ../edit.c:95
msgid " Omni completion (^O^N^P)"
msgstr " 䴰 (^O^N^P)"
-#: ../edit.c:96
msgid " Spelling suggestion (s^N^P)"
msgstr " ֤꽤 (s^N^P)"
-#: ../edit.c:97
msgid " Keyword Local completion (^N^P)"
msgstr " ɽꥭ䴰 (^N^P)"
-#: ../edit.c:100
msgid "Hit end of paragraph"
msgstr "κǸ˥ҥå"
-#: ../edit.c:101
msgid "E839: Completion function changed window"
msgstr "E839: ִؿɥѹޤ"
-#: ../edit.c:102
msgid "E840: Completion function deleted text"
msgstr "E840: 䴰ؿƥȤޤ"
-#: ../edit.c:1847
msgid "'dictionary' option is empty"
msgstr "'dictionary' ץ󤬶Ǥ"
-#: ../edit.c:1848
msgid "'thesaurus' option is empty"
msgstr "'thesaurus' ץ󤬶Ǥ"
-#: ../edit.c:2655
#, c-format
msgid "Scanning dictionary: %s"
msgstr "򥹥: %s"
-#: ../edit.c:3079
msgid " (insert) Scroll (^E/^Y)"
msgstr " () (^E/^Y)"
-#: ../edit.c:3081
msgid " (replace) Scroll (^E/^Y)"
msgstr " (ִ) (^E/^Y)"
-#: ../edit.c:3587
#, c-format
msgid "Scanning: %s"
msgstr ": %s"
-#: ../edit.c:3614
msgid "Scanning tags."
msgstr "򥹥."
-#: ../edit.c:4519
msgid " Adding"
msgstr " ɲ"
@@ -441,431 +438,161 @@ msgstr " ɲ"
#. * be called before line = ml_get(), or when this address is no
#. * longer needed. -- Acevedo.
#.
-#: ../edit.c:4562
msgid "-- Searching..."
msgstr "-- ..."
-#: ../edit.c:4618
msgid "Back at original"
msgstr "Ϥ"
-#: ../edit.c:4621
msgid "Word from other line"
msgstr "¾ιԤñ"
-#: ../edit.c:4624
msgid "The only match"
msgstr "ͣγ"
-#: ../edit.c:4680
#, c-format
msgid "match %d of %d"
msgstr "%d ܤγ ( %d )"
-#: ../edit.c:4684
#, c-format
msgid "match %d"
msgstr "%d ܤγ"
-#: ../eval.c:137
+#. maximum nesting of lists and dicts
msgid "E18: Unexpected characters in :let"
msgstr "E18: ͽʸ :let ˤޤ"
-#: ../eval.c:138
-#, c-format
-msgid "E684: list index out of range: %<PRId64>"
-msgstr "E684: ꥹȤΥǥåϰϳǤ: %<PRId64>"
-
-#: ../eval.c:139
#, c-format
msgid "E121: Undefined variable: %s"
msgstr "E121: ̤ѿǤ: %s"
-#: ../eval.c:140
msgid "E111: Missing ']'"
msgstr "E111: ']' Ĥޤ"
-#: ../eval.c:141
-#, c-format
-msgid "E686: Argument of %s must be a List"
-msgstr "E686: %s ΰϥꥹȷǤʤФʤޤ"
-
-#: ../eval.c:143
-#, c-format
-msgid "E712: Argument of %s must be a List or Dictionary"
-msgstr "E712: %s ΰϥꥹȷޤϼ񷿤ǤʤФʤޤ"
-
-#: ../eval.c:144
-msgid "E713: Cannot use empty key for Dictionary"
-msgstr "E713: 񷿤˶ΥȤȤϤǤޤ"
-
-#: ../eval.c:145
-msgid "E714: List required"
-msgstr "E714: ꥹȷɬפǤ"
-
-#: ../eval.c:146
-msgid "E715: Dictionary required"
-msgstr "E715: 񷿤ɬפǤ"
-
-#: ../eval.c:147
-#, c-format
-msgid "E118: Too many arguments for function: %s"
-msgstr "E118: ؿΰ¿᤮ޤ: %s"
-
-#: ../eval.c:148
-#, c-format
-msgid "E716: Key not present in Dictionary: %s"
-msgstr "E716: 񷿤˥¸ߤޤ: %s"
-
-#: ../eval.c:150
-#, c-format
-msgid "E122: Function %s already exists, add ! to replace it"
-msgstr "E122: ؿ %s ѤǤ, ˤ ! ɲäƤ"
-
-#: ../eval.c:151
-msgid "E717: Dictionary entry already exists"
-msgstr "E717: ˥ȥ꤬¸ߤޤ"
-
-#: ../eval.c:152
-msgid "E718: Funcref required"
-msgstr "E718: ؿȷ׵ᤵޤ"
-
-#: ../eval.c:153
msgid "E719: Cannot use [:] with a Dictionary"
msgstr "E719: [:] 򼭽񷿤Ȥ߹碌ƤϻȤޤ"
-#: ../eval.c:154
#, c-format
msgid "E734: Wrong variable type for %s="
msgstr "E734: ۤʤäѿǤ %s="
-#: ../eval.c:155
-#, c-format
-msgid "E130: Unknown function: %s"
-msgstr "E130: ̤ΤδؿǤ: %s"
-
-#: ../eval.c:156
#, c-format
msgid "E461: Illegal variable name: %s"
msgstr "E461: ѿ̾Ǥ: %s"
-#: ../eval.c:157
msgid "E806: using Float as a String"
msgstr "E806: ưʸȤưäƤޤ"
-#: ../eval.c:1830
msgid "E687: Less targets than List items"
msgstr "E687: åȤꥹȷǤ⾯ʤǤ"
-#: ../eval.c:1834
msgid "E688: More targets than List items"
msgstr "E688: åȤꥹȷǤ¿Ǥ"
-#: ../eval.c:1906
msgid "Double ; in list of variables"
msgstr "ꥹȷͤ2İʾ ; Фޤ"
-#: ../eval.c:2078
#, c-format
msgid "E738: Can't list variables for %s"
msgstr "E738: %s ͤɽǤޤ"
-#: ../eval.c:2391
msgid "E689: Can only index a List or Dictionary"
msgstr "E689: ꥹȷȼ񷿰ʳϥǥåǤޤ"
-#: ../eval.c:2396
msgid "E708: [:] must come last"
msgstr "E708: [:] ϺǸǤʤФޤ"
-#: ../eval.c:2439
msgid "E709: [:] requires a List value"
msgstr "E709: [:] ˤϥꥹȷͤɬפǤ"
-#: ../eval.c:2674
msgid "E710: List value has more items than target"
msgstr "E710: ꥹȷѿ˥åȤ¿Ǥޤ"
-#: ../eval.c:2678
msgid "E711: List value has not enough items"
msgstr "E711: ꥹȷѿ˽ʬʿǤޤ"
#
-#: ../eval.c:2867
msgid "E690: Missing \"in\" after :for"
msgstr "E690: :for θ \"in\" ޤ"
-#: ../eval.c:3063
-#, c-format
-msgid "E107: Missing parentheses: %s"
-msgstr "E107: å '(' ޤ: %s"
-
-#: ../eval.c:3263
#, c-format
msgid "E108: No such variable: \"%s\""
msgstr "E108: ѿϤޤ: \"%s\""
-#: ../eval.c:3333
msgid "E743: variable nested too deep for (un)lock"
msgstr "E743: ()åˤѿҤ᤮ޤ"
-#: ../eval.c:3630
msgid "E109: Missing ':' after '?'"
msgstr "E109: '?' θ ':' ޤ"
-#: ../eval.c:3893
msgid "E691: Can only compare List with List"
msgstr "E691: ꥹȷϥꥹȷȤӤǤޤ"
-#: ../eval.c:3895
-msgid "E692: Invalid operation for Lists"
+msgid "E692: Invalid operation for List"
msgstr "E692: ꥹȷˤ̵Ǥ"
-#: ../eval.c:3915
msgid "E735: Can only compare Dictionary with Dictionary"
msgstr "E735: 񷿤ϼ񷿤ȤӤǤޤ"
-#: ../eval.c:3917
msgid "E736: Invalid operation for Dictionary"
msgstr "E736: 񷿤ˤ̵Ǥ"
-#: ../eval.c:3932
-msgid "E693: Can only compare Funcref with Funcref"
-msgstr "E693: ؿȷϴؿȷȤӤǤޤ"
-
-#: ../eval.c:3934
msgid "E694: Invalid operation for Funcrefs"
msgstr "E694: ؿȷˤ̵Ǥ"
-#: ../eval.c:4277
msgid "E804: Cannot use '%' with Float"
msgstr "E804: '%' ưȤ߹碌ƤϻȤޤ"
-#: ../eval.c:4478
msgid "E110: Missing ')'"
msgstr "E110: ')' Ĥޤ"
-#: ../eval.c:4609
msgid "E695: Cannot index a Funcref"
msgstr "E695: ؿȷϥǥåǤޤ"
-#: ../eval.c:4839
+msgid "E909: Cannot index a special variable"
+msgstr "E909: üѿϥǥåǤޤ"
+
#, c-format
msgid "E112: Option name missing: %s"
msgstr "E112: ץ̾ޤ: %s"
-#: ../eval.c:4855
#, c-format
msgid "E113: Unknown option: %s"
msgstr "E113: ̤ΤΥץǤ: %s"
-#: ../eval.c:4904
#, c-format
msgid "E114: Missing quote: %s"
msgstr "E114: (\") ޤ: %s"
-#: ../eval.c:5020
#, c-format
msgid "E115: Missing quote: %s"
msgstr "E115: (') ޤ: %s"
-#: ../eval.c:5084
-#, c-format
-msgid "E696: Missing comma in List: %s"
-msgstr "E696: ꥹȷ˥ޤޤ: %s"
-
-#: ../eval.c:5091
-#, c-format
-msgid "E697: Missing end of List ']': %s"
-msgstr "E697: ꥹȷκǸ ']' ޤ: %s"
-
-#: ../eval.c:5807
msgid "Not enough memory to set references, garbage collection aborted!"
msgstr ""
"٥å쥯ߤޤ! ȤΤ˥꤬­ޤ"
-#: ../eval.c:6475
-#, c-format
-msgid "E720: Missing colon in Dictionary: %s"
-msgstr "E720: 񷿤˥󤬤ޤ: %s"
-
-#: ../eval.c:6499
-#, c-format
-msgid "E721: Duplicate key in Dictionary: \"%s\""
-msgstr "E721: 񷿤˽ʣޤ: \"%s\""
-
-#: ../eval.c:6517
-#, c-format
-msgid "E722: Missing comma in Dictionary: %s"
-msgstr "E722: 񷿤˥ޤޤ: %s"
-
-#: ../eval.c:6524
-#, c-format
-msgid "E723: Missing end of Dictionary '}': %s"
-msgstr "E723: 񷿤κǸ '}' ޤ: %s"
-
-#: ../eval.c:6555
msgid "E724: variable nested too deep for displaying"
msgstr "E724: ɽˤѿҤ᤮ޤ"
-#: ../eval.c:7188
-#, c-format
-msgid "E740: Too many arguments for function %s"
-msgstr "E740: ؿΰ¿᤮ޤ: %s"
-
-#: ../eval.c:7190
-#, c-format
-msgid "E116: Invalid arguments for function %s"
-msgstr "E116: ؿ̵ʰǤ: %s"
-
-#: ../eval.c:7377
-#, c-format
-msgid "E117: Unknown function: %s"
-msgstr "E117: ̤ΤδؿǤ: %s"
-
-#: ../eval.c:7383
-#, c-format
-msgid "E119: Not enough arguments for function: %s"
-msgstr "E119: ؿΰ­ޤ: %s"
-
-#: ../eval.c:7387
-#, c-format
-msgid "E120: Using <SID> not in a script context: %s"
-msgstr "E120: ץȰʳ<SID>Ȥޤ: %s"
-
-#: ../eval.c:7391
-#, c-format
-msgid "E725: Calling dict function without Dictionary: %s"
-msgstr "E725: ѴؿƤФޤ񤬤ޤ: %s"
-
-#: ../eval.c:7453
-msgid "E808: Number or Float required"
-msgstr "E808: ͤưɬפǤ"
-
-#: ../eval.c:7503
-msgid "add() argument"
-msgstr "add() ΰ"
-
-#: ../eval.c:7907
-msgid "E699: Too many arguments"
-msgstr "E699: ¿᤮ޤ"
-
-#: ../eval.c:8073
-msgid "E785: complete() can only be used in Insert mode"
-msgstr "E785: complete() ⡼ɤǤѤǤޤ"
-
-#: ../eval.c:8156
-msgid "&Ok"
-msgstr "&Ok"
-
-#: ../eval.c:8676
-#, c-format
-msgid "E737: Key already exists: %s"
-msgstr "E737: ϴ¸ߤޤ: %s"
-
-#: ../eval.c:8692
-msgid "extend() argument"
-msgstr "extend() ΰ"
-
-#: ../eval.c:8915
-msgid "map() argument"
-msgstr "map() ΰ"
-
-#: ../eval.c:8916
-msgid "filter() argument"
-msgstr "filter() ΰ"
-
-#: ../eval.c:9229
-#, c-format
-msgid "+-%s%3ld lines: "
-msgstr "+-%s%3ld : "
-
-#: ../eval.c:9291
-#, c-format
-msgid "E700: Unknown function: %s"
-msgstr "E700: ̤ΤδؿǤ: %s"
-
-#: ../eval.c:10729
-msgid "called inputrestore() more often than inputsave()"
-msgstr "inputrestore() inputsave() ¿ƤФޤ"
-
-#: ../eval.c:10771
-msgid "insert() argument"
-msgstr "insert() ΰ"
-
-#: ../eval.c:10841
-msgid "E786: Range not allowed"
-msgstr "E786: ϰϻϵĤƤޤ"
-
-#: ../eval.c:11140
-msgid "E701: Invalid type for len()"
-msgstr "E701: len() ˤ̵ʷǤ"
-
-#: ../eval.c:11980
-msgid "E726: Stride is zero"
-msgstr "E726: ȥ饤() 0 Ǥ"
-
-#: ../eval.c:11982
-msgid "E727: Start past end"
-msgstr "E727: ϰ֤λ֤ۤޤ"
-
-#: ../eval.c:12024 ../eval.c:15297
-msgid "<empty>"
-msgstr "<>"
-
-#: ../eval.c:12282
-msgid "remove() argument"
-msgstr "remove() ΰ"
-
-# Added at 10-Mar-2004.
-#: ../eval.c:12466
-msgid "E655: Too many symbolic links (cycle?)"
-msgstr "E655: ܥå󥯤¿᤮ޤ (۴ĤƤǽޤ)"
-
-#: ../eval.c:12593
-msgid "reverse() argument"
-msgstr "reverse() ΰ"
-
-#: ../eval.c:13721
-msgid "sort() argument"
-msgstr "sort() ΰ"
-
-#: ../eval.c:13721
-msgid "uniq() argument"
-msgstr "uniq() ΰ"
-
-#: ../eval.c:13776
-msgid "E702: Sort compare function failed"
-msgstr "E702: ȤӴؿԤޤ"
-
-#: ../eval.c:13806
-msgid "E882: Uniq compare function failed"
-msgstr "E882: Uniq ӴؿԤޤ"
-
-#: ../eval.c:14085
-msgid "(Invalid)"
-msgstr "(̵)"
-
-#: ../eval.c:14590
-msgid "E677: Error writing temp file"
-msgstr "E677: ե˥顼ȯޤ"
-
-#: ../eval.c:16159
msgid "E805: Using a Float as a Number"
msgstr "E805: ưͤȤưäƤޤ"
-#: ../eval.c:16162
msgid "E703: Using a Funcref as a Number"
msgstr "E703: ؿȷͤȤưäƤޤ"
-#: ../eval.c:16170
msgid "E745: Using a List as a Number"
msgstr "E745: ꥹȷͤȤưäƤޤ"
-#: ../eval.c:16173
msgid "E728: Using a Dictionary as a Number"
msgstr "E728: 񷿤ͤȤưäƤޤ"
+msgid "E910: Using a Job as a Number"
+msgstr "E910: ֤ͤȤưäƤޤ"
+
+msgid "E913: Using a Channel as a Number"
+msgstr "E913: ͥͤȤưäƤޤ"
+
msgid "E891: Using a Funcref as a Float"
msgstr "E891: ؿȷưȤưäƤޤ"
@@ -878,265 +605,280 @@ msgstr "E893: ꥹȷưȤưäƤޤ"
msgid "E894: Using a Dictionary as a Float"
msgstr "E894: 񷿤ưȤưäƤޤ"
-#: ../eval.c:16259
+msgid "E907: Using a special value as a Float"
+msgstr "E907: üͤưȤưäƤޤ"
+
+msgid "E911: Using a Job as a Float"
+msgstr "E911: ֤ưȤưäƤޤ"
+
+msgid "E914: Using a Channel as a Float"
+msgstr "E914: ͥưȤưäƤޤ"
+
msgid "E729: using Funcref as a String"
msgstr "E729: ؿȷʸȤưäƤޤ"
-#: ../eval.c:16262
msgid "E730: using List as a String"
msgstr "E730: ꥹȷʸȤưäƤޤ"
-#: ../eval.c:16265
msgid "E731: using Dictionary as a String"
msgstr "E731: 񷿤ʸȤưäƤޤ"
-#: ../eval.c:16619
-#, c-format
-msgid "E706: Variable type mismatch for: %s"
-msgstr "E706: ѿηפޤ: %s"
+msgid "E908: using an invalid value as a String"
+msgstr "E908: ̵ͤʸȤưäƤޤ"
-#: ../eval.c:16705
#, c-format
msgid "E795: Cannot delete variable %s"
msgstr "E795: ѿ %s Ǥޤ"
-#: ../eval.c:16724
#, c-format
msgid "E704: Funcref variable name must start with a capital: %s"
msgstr "E704: ؿȷѿ̾ʸǻϤޤʤФʤޤ: %s"
-#: ../eval.c:16732
#, c-format
msgid "E705: Variable name conflicts with existing function: %s"
msgstr "E705: ѿ̾¸δؿ̾Ⱦͤޤ: %s"
-#: ../eval.c:16763
#, c-format
msgid "E741: Value is locked: %s"
msgstr "E741: ͤåƤޤ: %s"
-#: ../eval.c:16764 ../eval.c:16769 ../message.c:1839
msgid "Unknown"
msgstr ""
-#: ../eval.c:16768
#, c-format
msgid "E742: Cannot change value of %s"
msgstr "E742: %s ͤѹǤޤ"
-#: ../eval.c:16838
msgid "E698: variable nested too deep for making a copy"
msgstr "E698: ԡˤѿҤ᤮ޤ"
-#: ../eval.c:17249
-#, c-format
-msgid "E123: Undefined function: %s"
-msgstr "E123: ̤δؿǤ: %s"
+msgid ""
+"\n"
+"# global variables:\n"
+msgstr ""
+"\n"
+"# Хѿ:\n"
-#: ../eval.c:17260
-#, c-format
-msgid "E124: Missing '(': %s"
-msgstr "E124: '(' ޤ: %s"
+msgid ""
+"\n"
+"\tLast set from "
+msgstr ""
+"\n"
+"\tǸ˥åȤץ: "
-#: ../eval.c:17293
-msgid "E862: Cannot use g: here"
-msgstr "E862: Ǥ g: ϻȤޤ"
+msgid "map() argument"
+msgstr "map() ΰ"
-#: ../eval.c:17312
-#, c-format
-msgid "E125: Illegal argument: %s"
-msgstr "E125: ʰǤ: %s"
+msgid "filter() argument"
+msgstr "filter() ΰ"
-#: ../eval.c:17323
#, c-format
-msgid "E853: Duplicate argument name: %s"
-msgstr "E853: ̾ʣƤޤ: %s"
+msgid "E686: Argument of %s must be a List"
+msgstr "E686: %s ΰϥꥹȷǤʤФʤޤ"
-#: ../eval.c:17416
-msgid "E126: Missing :endfunction"
-msgstr "E126: :endfunction ޤ"
+msgid "E928: String required"
+msgstr "E928: ʸɬפǤ"
-#: ../eval.c:17537
-#, c-format
-msgid "E707: Function name conflicts with variable: %s"
-msgstr "E707: ؿ̾ѿ̾Ⱦͤޤ: %s"
+msgid "E808: Number or Float required"
+msgstr "E808: ͤưɬפǤ"
-#: ../eval.c:17549
-#, c-format
-msgid "E127: Cannot redefine function %s: It is in use"
-msgstr "E127: ؿ %s Ǥޤ: Ǥ"
+msgid "add() argument"
+msgstr "add() ΰ"
-#: ../eval.c:17604
-#, c-format
-msgid "E746: Function name does not match script file name: %s"
-msgstr "E746: ؿ̾ץȤΥե̾Ȱפޤ: %s"
+msgid "E785: complete() can only be used in Insert mode"
+msgstr "E785: complete() ⡼ɤǤѤǤޤ"
-#: ../eval.c:17716
-msgid "E129: Function name required"
-msgstr "E129: ؿ̾׵ᤵޤ"
+#.
+#. * Yes this is ugly, I don't particularly like it either. But doing it
+#. * this way has the compelling advantage that translations need not to
+#. * be touched at all. See below what 'ok' and 'ync' are used for.
+#.
+msgid "&Ok"
+msgstr "&Ok"
-#: ../eval.c:17824
#, c-format
-msgid "E128: Function name must start with a capital or \"s:\": %s"
-msgstr "E128: ؿ̾ʸ \"s:\" ǻϤޤʤФʤޤ: %s"
+msgid "+-%s%3ld line: "
+msgid_plural "+-%s%3ld lines: "
+msgstr[0] "+-%s%3ld : "
-#: ../eval.c:17833
#, c-format
-msgid "E884: Function name cannot contain a colon: %s"
-msgstr "E884: ؿ̾ˤϥϴޤޤ: %s"
+msgid "E700: Unknown function: %s"
+msgstr "E700: ̤ΤδؿǤ: %s"
-#: ../eval.c:18336
-#, c-format
-msgid "E131: Cannot delete function %s: It is in use"
-msgstr "E131: ؿ %s Ǥޤ: Ǥ"
+msgid "E922: expected a dict"
+msgstr "E922: 񤬴ԤƤޤ"
-#: ../eval.c:18441
-msgid "E132: Function call depth is higher than 'maxfuncdepth'"
-msgstr "E132: ؿƽФҿ 'maxfuncdepth' Ķޤ"
+msgid "E923: Second argument of function() must be a list or a dict"
+msgstr "E923: function() 2 ϥꥹȷޤϼ񷿤ǤʤФʤޤ"
-#: ../eval.c:18568
-#, c-format
-msgid "calling %s"
-msgstr "%s ¹Ǥ"
+msgid ""
+"&OK\n"
+"&Cancel"
+msgstr ""
+"(&O)\n"
+"󥻥(&C)"
-#: ../eval.c:18651
-#, c-format
-msgid "%s aborted"
-msgstr "%s Ǥޤ"
+msgid "called inputrestore() more often than inputsave()"
+msgstr "inputrestore() inputsave() ¿ƤФޤ"
+
+msgid "insert() argument"
+msgstr "insert() ΰ"
+
+msgid "E786: Range not allowed"
+msgstr "E786: ϰϻϵĤƤޤ"
+
+msgid "E916: not a valid job"
+msgstr "E916: ͭʥ֤ǤϤޤ"
+
+msgid "E701: Invalid type for len()"
+msgstr "E701: len() ˤ̵ʷǤ"
-#: ../eval.c:18653
#, c-format
-msgid "%s returning #%<PRId64>"
-msgstr "%s #%<PRId64> ֤ޤ"
+msgid "E798: ID is reserved for \":match\": %ld"
+msgstr "E798: ID \":match\" Τͽ󤵤Ƥޤ: %ld"
+
+msgid "E726: Stride is zero"
+msgstr "E726: ȥ饤() 0 Ǥ"
+
+msgid "E727: Start past end"
+msgstr "E727: ϰ֤λ֤ۤޤ"
+
+msgid "<empty>"
+msgstr "<>"
+
+msgid "E240: No connection to Vim server"
+msgstr "E240: Vim Сؤ³ޤ"
-#: ../eval.c:18670
#, c-format
-msgid "%s returning %s"
-msgstr "%s %s ֤ޤ"
+msgid "E241: Unable to send to %s"
+msgstr "E241: %s 뤳ȤǤޤ"
+
+msgid "E277: Unable to read a server reply"
+msgstr "E277: Сαޤ"
+
+msgid "remove() argument"
+msgstr "remove() ΰ"
+
+# Added at 10-Mar-2004.
+msgid "E655: Too many symbolic links (cycle?)"
+msgstr "E655: ܥå󥯤¿᤮ޤ (۴ĤƤǽޤ)"
+
+msgid "reverse() argument"
+msgstr "reverse() ΰ"
+
+msgid "E258: Unable to send to client"
+msgstr "E258: 饤Ȥ뤳ȤǤޤ"
-#: ../eval.c:18691 ../ex_cmds2.c:2695
#, c-format
-msgid "continuing in %s"
-msgstr "%s μ¹Ԥ³Ǥ"
+msgid "E927: Invalid action: '%s'"
+msgstr "E927: ̵Ǥ: %s"
-#: ../eval.c:18795
-msgid "E133: :return not inside a function"
-msgstr "E133: ؿ :return ޤ"
+msgid "sort() argument"
+msgstr "sort() ΰ"
-#: ../eval.c:19159
-msgid ""
-"\n"
-"# global variables:\n"
-msgstr ""
-"\n"
-"# Хѿ:\n"
+msgid "uniq() argument"
+msgstr "uniq() ΰ"
-#: ../eval.c:19254
-msgid ""
-"\n"
-"\tLast set from "
-msgstr ""
-"\n"
-"\tLast set from "
+msgid "E702: Sort compare function failed"
+msgstr "E702: ȤӴؿԤޤ"
-#: ../eval.c:19272
-msgid "No old files"
-msgstr "ŤեϤޤ"
+msgid "E882: Uniq compare function failed"
+msgstr "E882: Uniq ӴؿԤޤ"
+
+msgid "(Invalid)"
+msgstr "(̵)"
+
+#, c-format
+msgid "E935: invalid submatch number: %d"
+msgstr "E935: ̵ʥ֥ޥåֹ: %d"
+
+msgid "E677: Error writing temp file"
+msgstr "E677: ե˥顼ȯޤ"
+
+msgid "E921: Invalid callback argument"
+msgstr "E921: ̵ʥХåǤ"
-#: ../ex_cmds.c:122
#, c-format
msgid "<%s>%s%s %d, Hex %02x, Octal %03o"
msgstr "<%s>%s%s %d, 16ʿ %02x, 8ʿ %03o"
-#: ../ex_cmds.c:145
#, c-format
msgid "> %d, Hex %04x, Octal %o"
msgstr "> %d, 16ʿ %04x, 8ʿ %o"
-#: ../ex_cmds.c:146
#, c-format
msgid "> %d, Hex %08x, Octal %o"
msgstr "> %d, 16ʿ %08x, 8ʿ %o"
-#: ../ex_cmds.c:684
msgid "E134: Move lines into themselves"
msgstr "E134: Ԥ򤽤켫ȤˤϰưǤޤ"
-#: ../ex_cmds.c:747
msgid "1 line moved"
msgstr "1 Ԥưޤ"
-#: ../ex_cmds.c:749
#, c-format
-msgid "%<PRId64> lines moved"
-msgstr "%<PRId64> Ԥưޤ"
+msgid "%ld lines moved"
+msgstr "%ld Ԥưޤ"
-#: ../ex_cmds.c:1175
#, c-format
-msgid "%<PRId64> lines filtered"
-msgstr "%<PRId64> Ԥե륿ޤ"
+msgid "%ld lines filtered"
+msgstr "%ld Ԥե륿ޤ"
-#: ../ex_cmds.c:1194
msgid "E135: *Filter* Autocommands must not change current buffer"
msgstr "E135: *ե륿* autocommandϸߤΥХåեѹƤϤޤ"
-#: ../ex_cmds.c:1244
msgid "[No write since last change]\n"
msgstr "[Ǹѹ¸Ƥޤ]\n"
-#: ../ex_cmds.c:1424
#, c-format
msgid "%sviminfo: %s in line: "
msgstr "%sviminfo: %s : "
-#: ../ex_cmds.c:1431
msgid "E136: viminfo: Too many errors, skipping rest of file"
msgstr "E136: viminfo: 顼¿᤮Τ, ʹߤϥåפޤ"
-#: ../ex_cmds.c:1458
#, c-format
msgid "Reading viminfo file \"%s\"%s%s%s"
msgstr "viminfoե \"%s\"%s%s%s ɹ"
-#: ../ex_cmds.c:1460
msgid " info"
msgstr " "
-#: ../ex_cmds.c:1461
msgid " marks"
msgstr " ޡ"
-#: ../ex_cmds.c:1462
msgid " oldfiles"
msgstr " ե뷲"
-#: ../ex_cmds.c:1463
msgid " FAILED"
msgstr " "
#. avoid a wait_return for this message, it's annoying
-#: ../ex_cmds.c:1541
#, c-format
msgid "E137: Viminfo file is not writable: %s"
msgstr "E137: viminfoե뤬ߤǤޤ: %s"
-#: ../ex_cmds.c:1626
+#, c-format
+msgid "E929: Too many viminfo temp files, like %s!"
+msgstr "E929: viminfoե뤬¿᤮ޤ! : %s"
+
#, c-format
msgid "E138: Can't write viminfo file %s!"
msgstr "E138: viminfoե %s ¸Ǥޤ!"
-#: ../ex_cmds.c:1635
#, c-format
msgid "Writing viminfo file \"%s\""
msgstr "viminfoե \"%s\" "
+#, c-format
+msgid "E886: Can't rename viminfo file to %s!"
+msgstr "E886: viminfoե %s ̾ѹǤޤ!"
+
#. Write the info:
-#: ../ex_cmds.c:1720
#, c-format
msgid "# This viminfo file was generated by Vim %s.\n"
msgstr "# viminfo ե Vim %s ˤäޤ.\n"
-#: ../ex_cmds.c:1722
msgid ""
"# You may edit it if you're careful!\n"
"\n"
@@ -1144,47 +886,47 @@ msgstr ""
"# ѹݤˤϽʬդƤ!\n"
"\n"
-#: ../ex_cmds.c:1723
msgid "# Value of 'encoding' when this file was written\n"
msgstr "# Υե뤬񤫤줿 'encoding' \n"
-#: ../ex_cmds.c:1800
msgid "Illegal starting char"
msgstr "ƬʸǤ"
-#: ../ex_cmds.c:2162
+msgid ""
+"\n"
+"# Bar lines, copied verbatim:\n"
+msgstr ""
+"\n"
+"# '|' ǻϤޤԤΡʸ̤Υԡ:\n"
+
+msgid "Save As"
+msgstr "̾¸"
+
msgid "Write partial file?"
msgstr "եʬŪ¸ޤ?"
-#: ../ex_cmds.c:2166
msgid "E140: Use ! to write partial buffer"
msgstr "E140: ХåեʬŪ¸ˤ ! ȤäƤ"
-#: ../ex_cmds.c:2281
#, c-format
msgid "Overwrite existing file \"%s\"?"
msgstr "¸Υե \"%s\" 񤭤ޤ?"
-#: ../ex_cmds.c:2317
#, c-format
msgid "Swap file \"%s\" exists, overwrite anyway?"
msgstr "åץե \"%s\" ¸ߤޤ. 񤭤ޤ?"
-#: ../ex_cmds.c:2326
#, c-format
msgid "E768: Swap file exists: %s (:silent! overrides)"
msgstr "E768: åץե뤬¸ߤޤ: %s (:silent! ɲäǾ)"
-#: ../ex_cmds.c:2381
#, c-format
-msgid "E141: No file name for buffer %<PRId64>"
-msgstr "E141: Хåե %<PRId64> ˤ̾ޤ"
+msgid "E141: No file name for buffer %ld"
+msgstr "E141: Хåե %ld ˤ̾ޤ"
-#: ../ex_cmds.c:2412
msgid "E142: File not written: Writing is disabled by 'write' option"
msgstr "E142: ե¸ޤǤ: 'write' ץˤ̵Ǥ"
-#: ../ex_cmds.c:2434
#, c-format
msgid ""
"'readonly' option is set for \"%s\".\n"
@@ -1193,7 +935,6 @@ msgstr ""
"\"%s\" ˤ 'readonly' ץꤵƤޤ.\n"
"񤭶򤷤ޤ?"
-#: ../ex_cmds.c:2439
#, c-format
msgid ""
"File permissions of \"%s\" are read-only.\n"
@@ -1204,83 +945,68 @@ msgstr ""
"Ǥⶲ餯񤭹ळȤϲǽǤ.\n"
"³ޤ?"
-#: ../ex_cmds.c:2451
#, c-format
msgid "E505: \"%s\" is read-only (add ! to override)"
msgstr "E505: \"%s\" ɹѤǤ (ˤ ! ɲ)"
-#: ../ex_cmds.c:3120
+msgid "Edit File"
+msgstr "եԽ"
+
#, c-format
msgid "E143: Autocommands unexpectedly deleted new buffer %s"
msgstr "E143: autocommandͽХåե %s ޤ"
-#: ../ex_cmds.c:3313
msgid "E144: non-numeric argument to :z"
msgstr "E144: ǤϤʤ :z Ϥޤ"
-#: ../ex_cmds.c:3404
msgid "E145: Shell commands not allowed in rvim"
msgstr "E145: rvimǤϥ륳ޥɤȤޤ"
-#: ../ex_cmds.c:3498
msgid "E146: Regular expressions can't be delimited by letters"
msgstr "E146: ɽʸǶڤ뤳ȤǤޤ"
-#: ../ex_cmds.c:3964
#, c-format
msgid "replace with %s (y/n/a/q/l/^E/^Y)?"
msgstr "%s ִޤ? (y/n/a/q/l/^E/^Y)"
-#: ../ex_cmds.c:4379
msgid "(Interrupted) "
msgstr "(ޤޤ) "
-#: ../ex_cmds.c:4384
msgid "1 match"
msgstr "1 ս곺ޤ"
-#: ../ex_cmds.c:4384
msgid "1 substitution"
msgstr "1 սִޤ"
-#: ../ex_cmds.c:4387
#, c-format
-msgid "%<PRId64> matches"
-msgstr "%<PRId64> ս곺ޤ"
+msgid "%ld matches"
+msgstr "%ld ս곺ޤ"
-#: ../ex_cmds.c:4388
#, c-format
-msgid "%<PRId64> substitutions"
-msgstr "%<PRId64> սִޤ"
+msgid "%ld substitutions"
+msgstr "%ld սִޤ"
-#: ../ex_cmds.c:4392
msgid " on 1 line"
msgstr " ( 1 )"
-#: ../ex_cmds.c:4395
#, c-format
-msgid " on %<PRId64> lines"
-msgstr " ( %<PRId64> )"
+msgid " on %ld lines"
+msgstr " ( %ld )"
-#: ../ex_cmds.c:4438
msgid "E147: Cannot do :global recursive"
msgstr "E147: :global ƵŪˤϻȤޤ"
-#: ../ex_cmds.c:4467
msgid "E148: Regular expression missing from global"
msgstr "E148: globalޥɤɽꤵƤޤ"
-#: ../ex_cmds.c:4508
#, c-format
msgid "Pattern found in every line: %s"
msgstr "ѥƤιԤǸĤޤ: %s"
-#: ../ex_cmds.c:4510
#, c-format
msgid "Pattern not found: %s"
msgstr "ѥϸĤޤǤ: %s"
-#: ../ex_cmds.c:4587
msgid ""
"\n"
"# Last Substitute String:\n"
@@ -1290,110 +1016,102 @@ msgstr ""
"# Ǹִ줿ʸ:\n"
"$"
-#: ../ex_cmds.c:4679
msgid "E478: Don't panic!"
msgstr "E478: ƤʤǤ"
-#: ../ex_cmds.c:4717
#, c-format
msgid "E661: Sorry, no '%s' help for %s"
msgstr "E661: ǰǤ '%s' Υإפ %s ˤϤޤ"
-#: ../ex_cmds.c:4719
#, c-format
msgid "E149: Sorry, no help for %s"
msgstr "E149: ǰǤ %s ˤϥإפޤ"
-#: ../ex_cmds.c:4751
#, c-format
msgid "Sorry, help file \"%s\" not found"
msgstr "ǰǤإץե \"%s\" Ĥޤ"
-#: ../ex_cmds.c:5323
#, c-format
-msgid "E150: Not a directory: %s"
-msgstr "E150: ǥ쥯ȥǤϤޤ: %s"
+msgid "E151: No match: %s"
+msgstr "E151: ޥåϤޤ: %s"
-#: ../ex_cmds.c:5446
#, c-format
msgid "E152: Cannot open %s for writing"
msgstr "E152: Ѥ %s 򳫤ޤ"
-#: ../ex_cmds.c:5471
#, c-format
msgid "E153: Unable to open %s for reading"
msgstr "E153: ɹѤ %s 򳫤ޤ"
# Added at 29-Apr-2004.
-#: ../ex_cmds.c:5500
#, c-format
msgid "E670: Mix of help file encodings within a language: %s"
msgstr "E670: 1ĤθΥإץեʣΥ󥳡ɤߤƤޤ: %s"
-#: ../ex_cmds.c:5565
#, c-format
msgid "E154: Duplicate tag \"%s\" in file %s/%s"
msgstr "E154: \"%s\" ե %s/%s ˽ʣƤޤ"
-#: ../ex_cmds.c:5687
+#, c-format
+msgid "E150: Not a directory: %s"
+msgstr "E150: ǥ쥯ȥǤϤޤ: %s"
+
#, c-format
msgid "E160: Unknown sign command: %s"
msgstr "E160: ̤ΤsignޥɤǤ: %s"
-#: ../ex_cmds.c:5704
msgid "E156: Missing sign name"
msgstr "E156: sign̾ޤ"
-#: ../ex_cmds.c:5746
msgid "E612: Too many signs defined"
msgstr "E612: sign¿Ĥޤ"
-#: ../ex_cmds.c:5813
#, c-format
msgid "E239: Invalid sign text: %s"
msgstr "E239: ̵signΥƥȤǤ: %s"
-#: ../ex_cmds.c:5844 ../ex_cmds.c:6035
#, c-format
msgid "E155: Unknown sign: %s"
msgstr "E155: ̤ΤsignǤ: %s"
-#: ../ex_cmds.c:5877
msgid "E159: Missing sign number"
msgstr "E159: signֹ椬ޤ"
-#: ../ex_cmds.c:5971
#, c-format
msgid "E158: Invalid buffer name: %s"
msgstr "E158: ̵ʥХåե̾Ǥ: %s"
-#: ../ex_cmds.c:6008
+msgid "E934: Cannot jump to a buffer that does not have a name"
+msgstr "E934: ̵̾ХåեؤϥפǤޤ"
+
#, c-format
-msgid "E157: Invalid sign ID: %<PRId64>"
-msgstr "E157: ̵sign̻ҤǤ: %<PRId64>"
+msgid "E157: Invalid sign ID: %ld"
+msgstr "E157: ̵sign̻ҤǤ: %ld"
#, c-format
msgid "E885: Not possible to change sign %s"
msgstr "E885: ѹǤʤ sign Ǥ: %s"
-#: ../ex_cmds.c:6066
+# Added at 27-Jan-2004.
+msgid " (NOT FOUND)"
+msgstr " (Ĥޤ)"
+
msgid " (not supported)"
msgstr " (󥵥ݡ)"
-#: ../ex_cmds.c:6169
msgid "[Deleted]"
msgstr "[]"
-#: ../ex_cmds2.c:139
+msgid "No old files"
+msgstr "ŤեϤޤ"
+
msgid "Entering Debug mode. Type \"cont\" to continue."
msgstr "ǥХå⡼ɤޤ. ³ˤ \"cont\" ϤƤ."
-#: ../ex_cmds2.c:143 ../ex_docmd.c:759
#, c-format
-msgid "line %<PRId64>: %s"
-msgstr " %<PRId64>: %s"
+msgid "line %ld: %s"
+msgstr " %ld: %s"
-#: ../ex_cmds2.c:145
#, c-format
msgid "cmd: %s"
msgstr "ޥ: %s"
@@ -1405,232 +1123,184 @@ msgstr "ե졼ब 0 Ǥ"
msgid "frame at highest level: %d"
msgstr "ǹ٥Υե졼: %d"
-#: ../ex_cmds2.c:322
#, c-format
-msgid "Breakpoint in \"%s%s\" line %<PRId64>"
-msgstr "֥졼ݥ \"%s%s\" %<PRId64>"
+msgid "Breakpoint in \"%s%s\" line %ld"
+msgstr "֥졼ݥ \"%s%s\" %ld"
-#: ../ex_cmds2.c:581
#, c-format
msgid "E161: Breakpoint not found: %s"
msgstr "E161: ֥졼ݥȤĤޤ: %s"
-#: ../ex_cmds2.c:611
msgid "No breakpoints defined"
msgstr "֥졼ݥȤƤޤ"
-#: ../ex_cmds2.c:617
#, c-format
-msgid "%3d %s %s line %<PRId64>"
-msgstr "%3d %s %s %<PRId64>"
+msgid "%3d %s %s line %ld"
+msgstr "%3d %s %s %ld"
-#: ../ex_cmds2.c:942
msgid "E750: First use \":profile start {fname}\""
msgstr "E750: \":profile start {fname}\" ¹ԤƤ"
-#: ../ex_cmds2.c:1269
#, c-format
msgid "Save changes to \"%s\"?"
msgstr "ѹ \"%s\" ¸ޤ?"
-#: ../ex_cmds2.c:1271 ../ex_docmd.c:8851
msgid "Untitled"
msgstr "̵"
-#: ../ex_cmds2.c:1421
#, c-format
msgid "E162: No write since last change for buffer \"%s\""
msgstr "E162: Хåե \"%s\" ѹ¸Ƥޤ"
-#: ../ex_cmds2.c:1480
msgid "Warning: Entered other buffer unexpectedly (check autocommands)"
msgstr "ٹ: ͽ¾Хåեذưޤ (autocommands Ĵ٤Ƥ)"
-#: ../ex_cmds2.c:1826
msgid "E163: There is only one file to edit"
msgstr "E163: Խե1Ĥޤ"
-#: ../ex_cmds2.c:1828
msgid "E164: Cannot go before first file"
msgstr "E164: ǽΥեˤϹԤޤ"
-#: ../ex_cmds2.c:1830
msgid "E165: Cannot go beyond last file"
msgstr "E165: ǸΥեۤƸˤϹԤޤ"
-#: ../ex_cmds2.c:2175
#, c-format
msgid "E666: compiler not supported: %s"
msgstr "E666: ΥѥˤбƤޤ: %s"
-#: ../ex_cmds2.c:2257
#, c-format
msgid "Searching for \"%s\" in \"%s\""
msgstr "\"%s\" \"%s\" 鸡"
-#: ../ex_cmds2.c:2284
#, c-format
msgid "Searching for \"%s\""
msgstr "\"%s\" 򸡺"
-#: ../ex_cmds2.c:2307
#, c-format
-msgid "not found in 'runtimepath': \"%s\""
-msgstr "'runtimepath' ˤϸĤޤ: \"%s\""
+msgid "not found in '%s': \"%s\""
+msgstr "'%s' ˤϤޤ: \"%s\""
+
+msgid "Source Vim script"
+msgstr "VimץȤμ"
-#: ../ex_cmds2.c:2472
#, c-format
msgid "Cannot source a directory: \"%s\""
msgstr "ǥ쥯ȥϼޤ: \"%s\""
-#: ../ex_cmds2.c:2518
#, c-format
msgid "could not source \"%s\""
msgstr "\"%s\" ޤ"
-#: ../ex_cmds2.c:2520
#, c-format
-msgid "line %<PRId64>: could not source \"%s\""
-msgstr " %<PRId64>: \"%s\" ޤ"
+msgid "line %ld: could not source \"%s\""
+msgstr " %ld: \"%s\" ޤ"
-#: ../ex_cmds2.c:2535
#, c-format
msgid "sourcing \"%s\""
msgstr "\"%s\" "
-#: ../ex_cmds2.c:2537
#, c-format
-msgid "line %<PRId64>: sourcing \"%s\""
-msgstr " %<PRId64>: %s "
+msgid "line %ld: sourcing \"%s\""
+msgstr " %ld: %s "
-#: ../ex_cmds2.c:2693
#, c-format
msgid "finished sourcing %s"
msgstr "%s μλ"
-#: ../ex_cmds2.c:2765
+#, c-format
+msgid "continuing in %s"
+msgstr "%s μ¹Ԥ³Ǥ"
+
msgid "modeline"
msgstr "⡼ɹ"
-#: ../ex_cmds2.c:2767
msgid "--cmd argument"
msgstr "--cmd "
-#: ../ex_cmds2.c:2769
msgid "-c argument"
msgstr "-c "
-#: ../ex_cmds2.c:2771
msgid "environment variable"
msgstr "Ķѿ"
-#: ../ex_cmds2.c:2773
msgid "error handler"
msgstr "顼ϥɥ"
-#: ../ex_cmds2.c:3020
msgid "W15: Warning: Wrong line separator, ^M may be missing"
msgstr "W15: ٹ: ԶڤǤ. ^M ʤΤǤ礦"
-#: ../ex_cmds2.c:3139
msgid "E167: :scriptencoding used outside of a sourced file"
msgstr "E167: :scriptencoding ץȰʳǻѤޤ"
-#: ../ex_cmds2.c:3166
msgid "E168: :finish used outside of a sourced file"
msgstr "E168: :finish ץȰʳǻѤޤ"
-#: ../ex_cmds2.c:3389
#, c-format
msgid "Current %slanguage: \"%s\""
msgstr "ߤ %s: \"%s\""
-#: ../ex_cmds2.c:3404
#, c-format
msgid "E197: Cannot set language to \"%s\""
msgstr "E197: \"%s\" Ǥޤ"
-#. don't redisplay the window
-#. don't wait for return
-#: ../ex_docmd.c:387
msgid "Entering Ex mode. Type \"visual\" to go to Normal mode."
msgstr ""
"Ex⡼ɤޤ. Ρޥ⡼ɤˤ\"visual\"ϤƤ."
-#: ../ex_docmd.c:428
msgid "E501: At end-of-file"
msgstr "E501: եνλ"
-#: ../ex_docmd.c:513
msgid "E169: Command too recursive"
msgstr "E169: ޥɤƵŪ᤮ޤ"
-#: ../ex_docmd.c:1006
#, c-format
msgid "E605: Exception not caught: %s"
msgstr "E605: 㳰ªޤǤ: %s"
-#: ../ex_docmd.c:1085
msgid "End of sourced file"
msgstr "եκǸǤ"
-#: ../ex_docmd.c:1086
msgid "End of function"
msgstr "ؿκǸǤ"
-#: ../ex_docmd.c:1628
msgid "E464: Ambiguous use of user-defined command"
msgstr "E464: 桼ޥɤΤޤʻѤǤ"
-#: ../ex_docmd.c:1638
msgid "E492: Not an editor command"
msgstr "E492: ǥΥޥɤǤϤޤ"
-#: ../ex_docmd.c:1729
msgid "E493: Backwards range given"
msgstr "E493: դޤϰϤꤵޤ"
-#: ../ex_docmd.c:1733
msgid "Backwards range given, OK to swap"
msgstr "դޤϰϤꤵޤ, ؤޤ?"
-#. append
-#. typed wrong
-#: ../ex_docmd.c:1787
msgid "E494: Use w or w>>"
msgstr "E494: w ⤷ w>> ѤƤ"
-#: ../ex_docmd.c:3454
-msgid "E319: The command is not available in this version"
+msgid "E319: Sorry, the command is not available in this version"
msgstr "E319: ΥСǤϤΥޥɤѤǤޤ, ʤ"
-#: ../ex_docmd.c:3752
msgid "E172: Only one file name allowed"
msgstr "E172: ե̾ 1 ĤˤƤ"
-#: ../ex_docmd.c:4238
msgid "1 more file to edit. Quit anyway?"
msgstr "Խ٤ե뤬 1 Ĥޤ, λޤ?"
-#: ../ex_docmd.c:4242
#, c-format
msgid "%d more files to edit. Quit anyway?"
msgstr "Խ٤ե뤬 %d Ĥޤ, λޤ?"
-#: ../ex_docmd.c:4248
msgid "E173: 1 more file to edit"
msgstr "E173: Խ٤ե뤬 1 Ĥޤ"
-#: ../ex_docmd.c:4250
#, c-format
-msgid "E173: %<PRId64> more files to edit"
-msgstr "E173: Խ٤ե뤬 %<PRId64> Ĥޤ"
+msgid "E173: %ld more files to edit"
+msgstr "E173: Խ٤ե뤬 %ld Ĥޤ"
-#: ../ex_docmd.c:4320
msgid "E174: Command already exists: add ! to replace it"
msgstr "E174: ޥɤˤޤ: ˤ ! ɲäƤ"
-#: ../ex_docmd.c:4432
msgid ""
"\n"
" Name Args Address Complete Definition"
@@ -1638,51 +1308,40 @@ msgstr ""
"\n"
" ̾ ɥ쥹 䴰 "
-#: ../ex_docmd.c:4516
msgid "No user-defined commands found"
msgstr "桼ޥɤĤޤǤ"
-#: ../ex_docmd.c:4538
msgid "E175: No attribute specified"
msgstr "E175: °Ƥޤ"
-#: ../ex_docmd.c:4583
msgid "E176: Invalid number of arguments"
msgstr "E176: ο̵Ǥ"
-#: ../ex_docmd.c:4594
msgid "E177: Count cannot be specified twice"
msgstr "E177: Ȥ2Żꤹ뤳ȤϤǤޤ"
-#: ../ex_docmd.c:4603
msgid "E178: Invalid default value for count"
msgstr "E178: Ȥξά̵ͤǤ"
-#: ../ex_docmd.c:4625
msgid "E179: argument required for -complete"
msgstr "E179: -complete ˤϰɬפǤ"
msgid "E179: argument required for -addr"
msgstr "E179: -addr ˤϰɬפǤ"
-#: ../ex_docmd.c:4635
#, c-format
msgid "E181: Invalid attribute: %s"
msgstr "E181: ̵°Ǥ: %s"
-#: ../ex_docmd.c:4678
msgid "E182: Invalid command name"
msgstr "E182: ̵ʥޥ̾Ǥ"
-#: ../ex_docmd.c:4691
msgid "E183: User defined commands must start with an uppercase letter"
-msgstr "E183: 桼ޥɤϱʸǻϤޤʤФʤޤ"
+msgstr "E183: 桼ޥɤϱʸǻϤޤʤФʤޤ"
-#: ../ex_docmd.c:4696
msgid "E841: Reserved name, cannot be used for user defined command"
msgstr "E841: ͽ̾ʤΤ, 桼ޥɤѤǤޤ"
-#: ../ex_docmd.c:4751
#, c-format
msgid "E184: No such user-defined command: %s"
msgstr "E184: Υ桼ޥɤϤޤ: %s"
@@ -1691,293 +1350,261 @@ msgstr "E184: Υ桼ޥɤϤޤ: %s"
msgid "E180: Invalid address type value: %s"
msgstr "E180: ̵ʥɥ쥹ͤǤ: %s"
-#: ../ex_docmd.c:5219
#, c-format
msgid "E180: Invalid complete value: %s"
msgstr "E180: ̵䴰Ǥ: %s"
-#: ../ex_docmd.c:5225
msgid "E468: Completion argument only allowed for custom completion"
msgstr "E468: 䴰ϥ䴰ǤѤǤޤ"
-#: ../ex_docmd.c:5231
msgid "E467: Custom completion requires a function argument"
msgstr "E467: 䴰ˤϰȤƴؿɬפǤ"
-#: ../ex_docmd.c:5257
+msgid "unknown"
+msgstr ""
+
#, c-format
msgid "E185: Cannot find color scheme '%s'"
msgstr "E185: 顼 '%s' Ĥޤ"
-#: ../ex_docmd.c:5263
msgid "Greetings, Vim user!"
msgstr "Vim Ȥ󡢤䤢!"
-#: ../ex_docmd.c:5431
msgid "E784: Cannot close last tab page"
msgstr "E784: ǸΥ֥ڡĤ뤳ȤϤǤޤ"
-#: ../ex_docmd.c:5462
msgid "Already only one tab page"
msgstr "˥֥ڡ1Ĥޤ"
-#: ../ex_docmd.c:6004
+msgid "Edit File in new window"
+msgstr "ɥǥեԽޤ"
+
#, c-format
msgid "Tab page %d"
msgstr "֥ڡ %d"
-#: ../ex_docmd.c:6295
msgid "No swap file"
msgstr "åץե뤬ޤ"
-#: ../ex_docmd.c:6478
+msgid "Append File"
+msgstr "ɲåե"
+
msgid "E747: Cannot change directory, buffer is modified (add ! to override)"
msgstr ""
"E747: ХåեƤΤ, ǥ쥯ȥѹǤޤ (! ɲä"
")"
-#: ../ex_docmd.c:6485
msgid "E186: No previous directory"
msgstr "E186: Υǥ쥯ȥϤޤ"
-#: ../ex_docmd.c:6530
msgid "E187: Unknown"
msgstr "E187: ̤"
-#: ../ex_docmd.c:6610
msgid "E465: :winsize requires two number arguments"
msgstr "E465: :winsize ˤ2ĤοͤΰɬפǤ"
-#: ../ex_docmd.c:6655
+#, c-format
+msgid "Window position: X %d, Y %d"
+msgstr "ɥ: X %d, Y %d"
+
msgid "E188: Obtaining window position not implemented for this platform"
msgstr ""
"E188: Υץåȥۡˤϥɥ֤μǽϼƤޤ"
-#: ../ex_docmd.c:6662
msgid "E466: :winpos requires two number arguments"
msgstr "E466: :winpos ˤ2ĤοͤΰɬפǤ"
-#: ../ex_docmd.c:7241
+msgid "E930: Cannot use :redir inside execute()"
+msgstr "E930: execute() Ǥ :redir ϻȤޤ"
+
+msgid "Save Redirection"
+msgstr "쥯Ȥ¸ޤ"
+
+msgid "Save View"
+msgstr "ӥ塼¸ޤ"
+
+msgid "Save Session"
+msgstr "å¸ޤ"
+
+msgid "Save Setup"
+msgstr "¸ޤ"
+
#, c-format
msgid "E739: Cannot create directory: %s"
msgstr "E739: ǥ쥯ȥǤޤ: %s"
-#: ../ex_docmd.c:7268
#, c-format
msgid "E189: \"%s\" exists (add ! to override)"
msgstr "E189: \"%s\" ¸ߤޤ (񤹤ˤ ! ɲäƤ)"
-#: ../ex_docmd.c:7273
#, c-format
msgid "E190: Cannot open \"%s\" for writing"
msgstr "E190: \"%s\" ѤȤƳޤ"
#. set mark
-#: ../ex_docmd.c:7294
msgid "E191: Argument must be a letter or forward/backward quote"
msgstr "E191: 1ʸαѻ (' `) ǤʤФޤ"
-#: ../ex_docmd.c:7333
msgid "E192: Recursive use of :normal too deep"
msgstr "E192: :normal κƵѤʤ᤮ޤ"
-#: ../ex_docmd.c:7807
+msgid "E809: #< is not available without the +eval feature"
+msgstr "E809: #< +eval ǽ̵ѤǤޤ"
+
msgid "E194: No alternate file name to substitute for '#'"
msgstr "E194: '#'֤ե̾ޤ"
-#: ../ex_docmd.c:7841
msgid "E495: no autocommand file name to substitute for \"<afile>\""
msgstr "E495: \"<afile>\"֤autocommandΥե̾ޤ"
-#: ../ex_docmd.c:7850
msgid "E496: no autocommand buffer number to substitute for \"<abuf>\""
msgstr "E496: \"<abuf>\"֤autocommandХåեֹ椬ޤ"
-#: ../ex_docmd.c:7861
msgid "E497: no autocommand match name to substitute for \"<amatch>\""
msgstr "E497: \"<amatch>\"֤autocommandγ̾ޤ"
-#: ../ex_docmd.c:7870
msgid "E498: no :source file name to substitute for \"<sfile>\""
msgstr "E498: \"<sfile>\"֤ :source оݥե̾ޤ"
-#: ../ex_docmd.c:7876
msgid "E842: no line number to use for \"<slnum>\""
msgstr "E842: \"<slnum>\"ֹ֤椬ޤ"
-#: ../ex_docmd.c:7903
-#, fuzzy, c-format
+#, no-c-format
msgid "E499: Empty file name for '%' or '#', only works with \":p:h\""
msgstr ""
"E499: '%' '#' ̵̾եʤΤ \":p:h\" ȼʤȤϤǤޤ"
-#: ../ex_docmd.c:7905
msgid "E500: Evaluates to an empty string"
msgstr "E500: ʸȤɾޤ"
-#: ../ex_docmd.c:8838
msgid "E195: Cannot open viminfo file for reading"
msgstr "E195: viminfoեɹѤȤƳޤ"
-#: ../ex_eval.c:464
+msgid "E196: No digraphs in this version"
+msgstr "E196: ΥС˹Ϥޤ"
+
msgid "E608: Cannot :throw exceptions with 'Vim' prefix"
msgstr "E608: 'Vim' ǻϤޤ㳰 :throw Ǥޤ"
#. always scroll up, don't overwrite
-#: ../ex_eval.c:496
#, c-format
msgid "Exception thrown: %s"
msgstr "㳰ȯޤ: %s"
-#: ../ex_eval.c:545
#, c-format
msgid "Exception finished: %s"
msgstr "㳰«ޤ: %s"
-#: ../ex_eval.c:546
#, c-format
msgid "Exception discarded: %s"
msgstr "㳰˴ޤ: %s"
-#: ../ex_eval.c:588 ../ex_eval.c:634
#, c-format
-msgid "%s, line %<PRId64>"
-msgstr "%s, %<PRId64>"
+msgid "%s, line %ld"
+msgstr "%s, %ld"
#. always scroll up, don't overwrite
-#: ../ex_eval.c:608
#, c-format
msgid "Exception caught: %s"
msgstr "㳰ªޤ: %s"
-#: ../ex_eval.c:676
#, c-format
msgid "%s made pending"
msgstr "%s ˤ̤֤ޤ"
-#: ../ex_eval.c:679
#, c-format
msgid "%s resumed"
msgstr "%s Ƴޤ"
-#: ../ex_eval.c:683
#, c-format
msgid "%s discarded"
msgstr "%s ˴ޤ"
-#: ../ex_eval.c:708
msgid "Exception"
msgstr "㳰"
-#: ../ex_eval.c:713
msgid "Error and interrupt"
msgstr "顼ȳ"
-#: ../ex_eval.c:715
msgid "Error"
msgstr "顼"
#. if (pending & CSTP_INTERRUPT)
-#: ../ex_eval.c:717
msgid "Interrupt"
msgstr ""
-#: ../ex_eval.c:795
msgid "E579: :if nesting too deep"
msgstr "E579: :if Ҥ᤮ޤ"
-#: ../ex_eval.c:830
msgid "E580: :endif without :if"
msgstr "E580: :if Τʤ :endif ޤ"
-#: ../ex_eval.c:873
msgid "E581: :else without :if"
msgstr "E581: :if Τʤ :else ޤ"
-#: ../ex_eval.c:876
msgid "E582: :elseif without :if"
msgstr "E582: :if Τʤ :elseif ޤ"
-#: ../ex_eval.c:880
msgid "E583: multiple :else"
msgstr "E583: ʣ :else ޤ"
-#: ../ex_eval.c:883
msgid "E584: :elseif after :else"
msgstr "E584: :else θ :elseif ޤ"
-#: ../ex_eval.c:941
msgid "E585: :while/:for nesting too deep"
msgstr "E585: :while :for Ҥ᤮ޤ"
-#: ../ex_eval.c:1028
msgid "E586: :continue without :while or :for"
msgstr "E586: :while :for Τʤ :continue ޤ"
-#: ../ex_eval.c:1061
msgid "E587: :break without :while or :for"
msgstr "E587: :while :for Τʤ :break ޤ"
-#: ../ex_eval.c:1102
msgid "E732: Using :endfor with :while"
msgstr "E732: :endfor :while Ȥ߹碌Ƥޤ"
-#: ../ex_eval.c:1104
msgid "E733: Using :endwhile with :for"
msgstr "E733: :endwhile :for Ȥ߹碌Ƥޤ"
-#: ../ex_eval.c:1247
msgid "E601: :try nesting too deep"
msgstr "E601: :try Ҥ᤮ޤ"
-#: ../ex_eval.c:1317
msgid "E603: :catch without :try"
msgstr "E603: :try Τʤ :catch ޤ"
#. Give up for a ":catch" after ":finally" and ignore it.
#. * Just parse.
-#: ../ex_eval.c:1332
msgid "E604: :catch after :finally"
msgstr "E604: :finally θ :catch ޤ"
-#: ../ex_eval.c:1451
msgid "E606: :finally without :try"
msgstr "E606: :try Τʤ :finally ޤ"
#. Give up for a multiple ":finally" and ignore it.
-#: ../ex_eval.c:1467
msgid "E607: multiple :finally"
msgstr "E607: ʣ :finally ޤ"
-#: ../ex_eval.c:1571
msgid "E602: :endtry without :try"
msgstr "E602: :try Τʤ :endtry Ǥ"
-#: ../ex_eval.c:2026
msgid "E193: :endfunction not inside a function"
msgstr "E193: ؿγ :endfunction ޤ"
-#: ../ex_getln.c:1643
msgid "E788: Not allowed to edit another buffer now"
msgstr "E788: ߤ¾ΥХåեԽ뤳Ȥϵޤ"
-#: ../ex_getln.c:1656
msgid "E811: Not allowed to change buffer information now"
msgstr "E811: ߤϥХåեѹ뤳Ȥϵޤ"
-#: ../ex_getln.c:3178
msgid "tagname"
msgstr "̾"
-#: ../ex_getln.c:3181
msgid " kind file\n"
msgstr " ե\n"
-#: ../ex_getln.c:4799
msgid "'history' option is zero"
msgstr "ץ 'history' Ǥ"
-#: ../ex_getln.c:5046
#, c-format
msgid ""
"\n"
@@ -1986,303 +1613,224 @@ msgstr ""
"\n"
"# %s ܤ (ΤŤΤ):\n"
-#: ../ex_getln.c:5047
msgid "Command Line"
msgstr "ޥɥ饤"
-#: ../ex_getln.c:5048
msgid "Search String"
msgstr "ʸ"
-#: ../ex_getln.c:5049
msgid "Expression"
msgstr ""
-#: ../ex_getln.c:5050
msgid "Input Line"
msgstr "Ϲ"
-#: ../ex_getln.c:5117
+msgid "Debug Line"
+msgstr "ǥХå"
+
msgid "E198: cmd_pchar beyond the command length"
msgstr "E198: cmd_pchar ޥĹĶޤ"
-#: ../ex_getln.c:5279
msgid "E199: Active window or buffer deleted"
msgstr "E199: ƥ֤ʥɥХåեޤ"
-#: ../file_search.c:203
-msgid "E854: path too long for completion"
-msgstr "E854: ѥĹ᤮䴰Ǥޤ"
-
-#: ../file_search.c:446
-#, c-format
-msgid ""
-"E343: Invalid path: '**[number]' must be at the end of the path or be "
-"followed by '%s'."
-msgstr ""
-"E343: ̵ʥѥǤ: '**[]' pathκǸ夫 '%s' ³ƤʤȤޤ"
-"."
-
-#: ../file_search.c:1505
-#, c-format
-msgid "E344: Can't find directory \"%s\" in cdpath"
-msgstr "E344: cdpathˤ \"%s\" Ȥե뤬ޤ"
-
-#: ../file_search.c:1508
-#, c-format
-msgid "E345: Can't find file \"%s\" in path"
-msgstr "E345: pathˤ \"%s\" Ȥե뤬ޤ"
-
-#: ../file_search.c:1512
-#, c-format
-msgid "E346: No more directory \"%s\" found in cdpath"
-msgstr "E346: cdpathˤϤʾ \"%s\" Ȥե뤬ޤ"
-
-#: ../file_search.c:1515
-#, c-format
-msgid "E347: No more file \"%s\" found in path"
-msgstr "E347: ѥˤϤʾ \"%s\" Ȥե뤬ޤ"
-
-#: ../fileio.c:137
msgid "E812: Autocommands changed buffer or buffer name"
msgstr "E812: autocommandХåեХåե̾ѹޤ"
-#: ../fileio.c:368
msgid "Illegal file name"
msgstr "ʥե̾"
-#: ../fileio.c:395 ../fileio.c:476 ../fileio.c:2543 ../fileio.c:2578
msgid "is a directory"
msgstr "ϥǥ쥯ȥǤ"
-#: ../fileio.c:397
msgid "is not a file"
msgstr "ϥեǤϤޤ"
-#: ../fileio.c:508 ../fileio.c:3522
+msgid "is a device (disabled with 'opendevice' option)"
+msgstr "ϥǥХǤ ('opendevice' ץDzǤޤ)"
+
msgid "[New File]"
msgstr "[ե]"
-#: ../fileio.c:511
msgid "[New DIRECTORY]"
msgstr "[ǥ쥯ȥ]"
-#: ../fileio.c:529 ../fileio.c:532
msgid "[File too big]"
msgstr "[ե]"
-#: ../fileio.c:534
msgid "[Permission Denied]"
msgstr "[¤ޤ]"
-#: ../fileio.c:653
msgid "E200: *ReadPre autocommands made the file unreadable"
msgstr "E200: *ReadPre autocommand եɹԲĤˤޤ"
-#: ../fileio.c:655
msgid "E201: *ReadPre autocommands must not change current buffer"
msgstr "E201: *ReadPre autocommand ϸߤΥХåեѤޤ"
-#: ../fileio.c:672
-msgid "Nvim: Reading from stdin...\n"
+msgid "Vim: Reading from stdin...\n"
msgstr "Vim: ɸϤɹ...\n"
+msgid "Reading from stdin..."
+msgstr "ɸϤɹ..."
+
#. Re-opening the original file failed!
-#: ../fileio.c:909
msgid "E202: Conversion made file unreadable!"
msgstr "E202: ѴեɹԲĤˤޤ"
-#. fifo or socket
-#: ../fileio.c:1782
msgid "[fifo/socket]"
msgstr "[FIFO/å]"
-#. fifo
-#: ../fileio.c:1788
msgid "[fifo]"
msgstr "[FIFO]"
-#. or socket
-#: ../fileio.c:1794
msgid "[socket]"
msgstr "[å]"
-#. or character special
-#: ../fileio.c:1801
msgid "[character special]"
msgstr "[饯ǥХ]"
-#: ../fileio.c:1815
msgid "[CR missing]"
msgstr "[CR̵]"
-#: ../fileio.c:1819
msgid "[long lines split]"
msgstr "[Ĺʬ]"
-#: ../fileio.c:1823 ../fileio.c:3512
msgid "[NOT converted]"
msgstr "[̤Ѵ]"
-#: ../fileio.c:1826 ../fileio.c:3515
msgid "[converted]"
msgstr "[Ѵ]"
-#: ../fileio.c:1831
#, c-format
-msgid "[CONVERSION ERROR in line %<PRId64>]"
-msgstr "[%<PRId64> ܤѴ顼]"
+msgid "[CONVERSION ERROR in line %ld]"
+msgstr "[%ld ܤѴ顼]"
-#: ../fileio.c:1835
#, c-format
-msgid "[ILLEGAL BYTE in line %<PRId64>]"
-msgstr "[%<PRId64> ܤʥХ]"
+msgid "[ILLEGAL BYTE in line %ld]"
+msgstr "[%ld ܤʥХ]"
-#: ../fileio.c:1838
msgid "[READ ERRORS]"
msgstr "[ɹ顼]"
-#: ../fileio.c:2104
msgid "Can't find temp file for conversion"
msgstr "Ѵɬפʰե뤬Ĥޤ"
-#: ../fileio.c:2110
msgid "Conversion with 'charconvert' failed"
msgstr "'charconvert' ˤѴԤޤ"
-#: ../fileio.c:2113
msgid "can't read output of 'charconvert'"
msgstr "'charconvert' νϤɹޤǤ"
-#: ../fileio.c:2437
msgid "E676: No matching autocommands for acwrite buffer"
msgstr "E676: acwriteХåեγautocommand¸ߤޤ"
-#: ../fileio.c:2466
msgid "E203: Autocommands deleted or unloaded buffer to be written"
msgstr "E203: ¸Хåեautocommandޤ"
-#: ../fileio.c:2486
msgid "E204: Autocommand changed number of lines in unexpected way"
msgstr "E204: autocommandͽˡǹԿѹޤ"
-#: ../fileio.c:2548 ../fileio.c:2565
+# Added at 19-Jan-2004.
+msgid "NetBeans disallows writes of unmodified buffers"
+msgstr "NetBeans̤ѹΥХåե񤹤뤳ȤϵĤƤޤ"
+
+msgid "Partial writes disallowed for NetBeans buffers"
+msgstr "NetBeansХåեΰ񤭽ФȤϤǤޤ"
+
msgid "is not a file or writable device"
msgstr "ϥեǤ߲ǽǥХǤ⤢ޤ"
-#: ../fileio.c:2601
+msgid "writing to device disabled with 'opendevice' option"
+msgstr "'opendevice' ץˤǥХؤν񤭹ߤϤǤޤ"
+
msgid "is read-only (add ! to override)"
msgstr "ɹѤǤ (ˤ ! ɲ)"
-#: ../fileio.c:2886
msgid "E506: Can't write to backup file (add ! to override)"
msgstr "E506: Хååץե¸Ǥޤ (! ɲäǶ¸)"
-#: ../fileio.c:2898
msgid "E507: Close error for backup file (add ! to override)"
msgstr ""
"E507: ХååץեĤݤ˥顼ȯޤ (! ɲäǶ)"
-#: ../fileio.c:2901
msgid "E508: Can't read file for backup (add ! to override)"
msgstr "E508: Хååѥեɹޤ (! ɲäǶɹ)"
-#: ../fileio.c:2923
msgid "E509: Cannot create backup file (add ! to override)"
msgstr "E509: Хååץեޤ (! ɲäǶ)"
-#: ../fileio.c:3008
msgid "E510: Can't make backup file (add ! to override)"
msgstr "E510: Хååץեޤ (! ɲäǶ)"
-#. Can't write without a tempfile!
-#: ../fileio.c:3121
+msgid "E460: The resource fork would be lost (add ! to override)"
+msgstr "E460: ꥽ե뤫⤷ޤ (! ɲäǶ)"
+
msgid "E214: Can't find temp file for writing"
msgstr "E214: ¸Ѱե뤬Ĥޤ"
-#: ../fileio.c:3134
msgid "E213: Cannot convert (add ! to write without conversion)"
msgstr "E213: ѴǤޤ (! ɲäѴ¸)"
-#: ../fileio.c:3169
msgid "E166: Can't open linked file for writing"
msgstr "E166: 󥯤줿ե˽ޤ"
-#: ../fileio.c:3173
msgid "E212: Can't open file for writing"
msgstr "E212: Ѥ˥ե򳫤ޤ"
-#: ../fileio.c:3363
msgid "E667: Fsync failed"
msgstr "E667: fsync ˼Ԥޤ"
-#: ../fileio.c:3398
msgid "E512: Close failed"
msgstr "E512: Ĥ뤳Ȥ˼"
-#: ../fileio.c:3436
msgid "E513: write error, conversion failed (make 'fenc' empty to override)"
msgstr "E513: ߥ顼, Ѵ (񤹤ˤ 'fenc' ˤƤ)"
-#: ../fileio.c:3441
#, c-format
msgid ""
-"E513: write error, conversion failed in line %<PRId64> (make 'fenc' empty to "
+"E513: write error, conversion failed in line %ld (make 'fenc' empty to "
"override)"
msgstr ""
-"E513: ߥ顼, Ѵ, Կ %<PRId64> (񤹤ˤ 'fenc' ˤ"
-")"
+"E513: ߥ顼, Ѵ, Կ %ld (񤹤ˤ 'fenc' ˤƤ"
+")"
-#: ../fileio.c:3448
msgid "E514: write error (file system full?)"
msgstr "E514: ߥ顼, (ե륷ƥब?)"
-#: ../fileio.c:3506
msgid " CONVERSION ERROR"
msgstr " Ѵ顼"
-#: ../fileio.c:3509
#, c-format
-msgid " in line %<PRId64>;"
-msgstr " %<PRId64>;"
+msgid " in line %ld;"
+msgstr " %ld;"
-#: ../fileio.c:3519
msgid "[Device]"
msgstr "[ǥХ]"
-#: ../fileio.c:3522
msgid "[New]"
msgstr "[]"
-#: ../fileio.c:3535
msgid " [a]"
msgstr " [a]"
-#: ../fileio.c:3535
msgid " appended"
msgstr " ɲ"
-#: ../fileio.c:3537
msgid " [w]"
msgstr " [w]"
-#: ../fileio.c:3537
msgid " written"
msgstr " "
-#: ../fileio.c:3579
msgid "E205: Patchmode: can't save original file"
msgstr "E205: patchmode: ܥե¸Ǥޤ"
-#: ../fileio.c:3602
msgid "E206: patchmode: can't touch empty original file"
msgstr "E206: patchmode: θܥեtouchǤޤ"
-#: ../fileio.c:3616
msgid "E207: Can't delete backup file"
msgstr "E207: Хååץեäޤ"
-#: ../fileio.c:3672
msgid ""
"\n"
"WARNING: Original file may be lost or damaged\n"
@@ -2290,134 +1838,105 @@ msgstr ""
"\n"
"ٹ: ܥե뤬줿ѹޤ\n"
-#: ../fileio.c:3675
msgid "don't quit the editor until the file is successfully written!"
msgstr "ե¸ޤǥǥλʤǤ!"
-#: ../fileio.c:3795
msgid "[dos]"
msgstr "[dos]"
-#: ../fileio.c:3795
msgid "[dos format]"
msgstr "[dosեޥå]"
-#: ../fileio.c:3801
msgid "[mac]"
msgstr "[mac]"
-#: ../fileio.c:3801
msgid "[mac format]"
msgstr "[macեޥå]"
-#: ../fileio.c:3807
msgid "[unix]"
msgstr "[unix]"
-#: ../fileio.c:3807
msgid "[unix format]"
msgstr "[unixեޥå]"
-#: ../fileio.c:3831
msgid "1 line, "
msgstr "1 , "
-#: ../fileio.c:3833
#, c-format
-msgid "%<PRId64> lines, "
-msgstr "%<PRId64> , "
+msgid "%ld lines, "
+msgstr "%ld , "
-#: ../fileio.c:3836
msgid "1 character"
msgstr "1 ʸ"
-#: ../fileio.c:3838
#, c-format
-msgid "%<PRId64> characters"
-msgstr "%<PRId64> ʸ"
+msgid "%lld characters"
+msgstr "%lld ʸ"
-#: ../fileio.c:3849
msgid "[noeol]"
msgstr "[noeol]"
-#: ../fileio.c:3849
msgid "[Incomplete last line]"
msgstr "[ǽԤԴ]"
#. don't overwrite messages here
#. must give this prompt
#. don't use emsg() here, don't want to flush the buffers
-#: ../fileio.c:3865
msgid "WARNING: The file has been changed since reading it!!!"
msgstr "ٹ: ɹ˥եѹޤ!!!"
-#: ../fileio.c:3867
msgid "Do you really want to write to it"
msgstr "˾񤭤ޤ"
-#: ../fileio.c:4648
#, c-format
msgid "E208: Error writing to \"%s\""
msgstr "E208: \"%s\" Υ顼Ǥ"
-#: ../fileio.c:4655
#, c-format
msgid "E209: Error closing \"%s\""
msgstr "E209: \"%s\" Ĥ˥顼Ǥ"
-#: ../fileio.c:4657
#, c-format
msgid "E210: Error reading \"%s\""
msgstr "E210: \"%s\" ɹΥ顼Ǥ"
-#: ../fileio.c:4883
msgid "E246: FileChangedShell autocommand deleted buffer"
msgstr "E246: autocommand FileChangedShell Хåեޤ"
-#: ../fileio.c:4894
#, c-format
msgid "E211: File \"%s\" no longer available"
msgstr "E211: ե \"%s\" ϴ¸ߤޤ"
-#: ../fileio.c:4906
#, c-format
msgid ""
"W12: Warning: File \"%s\" has changed and the buffer was changed in Vim as "
"well"
msgstr "W12: ٹ: ե \"%s\" ѹVimΥХåեѹޤ"
-#: ../fileio.c:4907
msgid "See \":help W12\" for more info."
msgstr "ܺ٤ \":help W12\" 򻲾ȤƤ"
-#: ../fileio.c:4910
#, c-format
msgid "W11: Warning: File \"%s\" has changed since editing started"
msgstr "W11: ٹ: ե \"%s\" Խϸѹޤ"
-#: ../fileio.c:4911
msgid "See \":help W11\" for more info."
msgstr "ܺ٤ \":help W11\" 򻲾ȤƤ"
-#: ../fileio.c:4914
#, c-format
msgid "W16: Warning: Mode of file \"%s\" has changed since editing started"
msgstr "W16: ٹ: ե \"%s\" Υ⡼ɤԽϸѹޤ"
-#: ../fileio.c:4915
msgid "See \":help W16\" for more info."
msgstr "ܺ٤ \":help W16\" 򻲾ȤƤ"
-#: ../fileio.c:4927
#, c-format
msgid "W13: Warning: File \"%s\" has been created after editing started"
msgstr "W13: ٹ: ե \"%s\" Խϸ˺ޤ"
-#: ../fileio.c:4947
msgid "Warning"
msgstr "ٹ"
-#: ../fileio.c:4948
msgid ""
"&OK\n"
"&Load File"
@@ -2425,48 +1944,45 @@ msgstr ""
"&OK\n"
"եɹ(&L)"
-#: ../fileio.c:5065
#, c-format
msgid "E462: Could not prepare for reloading \"%s\""
msgstr "E462: \"%s\" ɤǤޤǤ"
-#: ../fileio.c:5078
#, c-format
msgid "E321: Could not reload \"%s\""
msgstr "E321: \"%s\" ϥɤǤޤǤ"
-#: ../fileio.c:5601
msgid "--Deleted--"
msgstr "----"
-#: ../fileio.c:5732
#, c-format
msgid "auto-removing autocommand: %s <buffer=%d>"
msgstr "autocommand: %s <Хåե=%d> ưŪ˺ޤ"
#. the group doesn't exist
-#: ../fileio.c:5772
#, c-format
msgid "E367: No such group: \"%s\""
msgstr "E367: Υ롼פϤޤ: \"%s\""
-#: ../fileio.c:5897
+msgid "E936: Cannot delete the current group"
+msgstr "E936: ߤΥ롼פϺǤޤ"
+
+msgid "W19: Deleting augroup that is still in use"
+msgstr "W19: augroup äȤƤޤ"
+
#, c-format
msgid "E215: Illegal character after *: %s"
msgstr "E215: * θʸޤ: %s"
-#: ../fileio.c:5905
#, c-format
msgid "E216: No such event: %s"
msgstr "E216: Τ褦ʥ٥ȤϤޤ: %s"
-#: ../fileio.c:5907
#, c-format
msgid "E216: No such group or event: %s"
msgstr "E216: Τ褦ʥ롼פ⤷ϥ٥ȤϤޤ: %s"
#. Highlight title
-#: ../fileio.c:6090
msgid ""
"\n"
"--- Auto-Commands ---"
@@ -2474,756 +1990,555 @@ msgstr ""
"\n"
"--- Auto-Commands ---"
-#: ../fileio.c:6293
#, c-format
msgid "E680: <buffer=%d>: invalid buffer number "
msgstr "E680: <Хåե=%d>: ̵ʥХåեֹǤ "
-#: ../fileio.c:6370
msgid "E217: Can't execute autocommands for ALL events"
msgstr "E217: ƤΥ٥ȤФƤautocommandϼ¹ԤǤޤ"
-#: ../fileio.c:6393
msgid "No matching autocommands"
msgstr "autocommand¸ߤޤ"
-#: ../fileio.c:6831
msgid "E218: autocommand nesting too deep"
msgstr "E218: autocommandҤ᤮ޤ"
-#: ../fileio.c:7143
#, c-format
msgid "%s Auto commands for \"%s\""
msgstr "%s Auto commands for \"%s\""
-#: ../fileio.c:7149
#, c-format
msgid "Executing %s"
msgstr "%s ¹ԤƤޤ"
-#: ../fileio.c:7211
#, c-format
msgid "autocommand %s"
msgstr "autocommand %s"
-#: ../fileio.c:7795
msgid "E219: Missing {."
msgstr "E219: { ޤ."
-#: ../fileio.c:7797
msgid "E220: Missing }."
msgstr "E220: } ޤ."
-#: ../fold.c:93
msgid "E490: No fold found"
msgstr "E490: ޾ߤޤ"
-#: ../fold.c:544
msgid "E350: Cannot create fold with current 'foldmethod'"
msgstr "E350: ߤ 'foldmethod' Ǥ޾ߤǤޤ"
-#: ../fold.c:546
msgid "E351: Cannot delete fold with current 'foldmethod'"
msgstr "E351: ߤ 'foldmethod' Ǥ޾ߤǤޤ"
-#: ../fold.c:1784
#, c-format
-msgid "+--%3ld lines folded "
-msgstr "+--%3ld Ԥ޾ޤޤ "
+msgid "+--%3ld line folded "
+msgid_plural "+--%3ld lines folded "
+msgstr[0] "+--%3ld Ԥ޾ޤޤ "
-#. buffer has already been read
-#: ../getchar.c:273
msgid "E222: Add to read buffer"
msgstr "E222: ɹХåեɲ"
-#: ../getchar.c:2040
msgid "E223: recursive mapping"
msgstr "E223: ƵŪޥåԥ"
-#: ../getchar.c:2849
#, c-format
msgid "E224: global abbreviation already exists for %s"
msgstr "E224: %s ȤХûϤϴ¸ߤޤ"
-#: ../getchar.c:2852
#, c-format
msgid "E225: global mapping already exists for %s"
msgstr "E225: %s ȤХޥåԥ󥰤ϴ¸ߤޤ"
-#: ../getchar.c:2952
#, c-format
msgid "E226: abbreviation already exists for %s"
msgstr "E226: %s ȤûϤϴ¸ߤޤ"
-#: ../getchar.c:2955
#, c-format
msgid "E227: mapping already exists for %s"
msgstr "E227: %s Ȥޥåԥ󥰤ϴ¸ߤޤ"
-#: ../getchar.c:3008
msgid "No abbreviation found"
msgstr "ûϤϸĤޤǤ"
-#: ../getchar.c:3010
msgid "No mapping found"
msgstr "ޥåԥ󥰤ϸĤޤǤ"
-#: ../getchar.c:3974
msgid "E228: makemap: Illegal mode"
msgstr "E228: makemap: ʥ⡼"
-#. key value of 'cedit' option
-#. type of cmdline window or 0
-#. result of cmdline window or 0
-#: ../globals.h:924
-msgid "--No lines in buffer--"
-msgstr "--Хåե˹Ԥޤ--"
+msgid "E851: Failed to create a new process for the GUI"
+msgstr "E851: GUIѤΥץεư˼Ԥޤ"
-#.
-#. * The error messages that can be shared are included here.
-#. * Excluded are errors that are only used once and debugging messages.
-#.
-#: ../globals.h:996
-msgid "E470: Command aborted"
-msgstr "E470: ޥɤǤޤ"
+msgid "E852: The child process failed to start the GUI"
+msgstr "E852: ҥץGUIεư˼Ԥޤ"
-#: ../globals.h:997
-msgid "E471: Argument required"
-msgstr "E471: ɬפǤ"
+msgid "E229: Cannot start the GUI"
+msgstr "E229: GUI򳫻ϤǤޤ"
-#: ../globals.h:998
-msgid "E10: \\ should be followed by /, ? or &"
-msgstr "E10: \\ θ / ? & ǤʤФʤޤ"
+#, c-format
+msgid "E230: Cannot read from \"%s\""
+msgstr "E230: \"%s\"ɹळȤǤޤ"
-#: ../globals.h:1000
-msgid "E11: Invalid in command-line window; <CR> executes, CTRL-C quits"
-msgstr "E11: ޥɥ饤Ǥ̵Ǥ; <CR>Ǽ¹, CTRL-CǤ"
+msgid "E665: Cannot start GUI, no valid font found"
+msgstr "E665: ͭʥեȤĤʤΤ, GUI򳫻ϤǤޤ"
-#: ../globals.h:1002
-msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search"
-msgstr ""
-"E12: ߤΥǥ쥯ȥ䥿Ǥexrc/vimrcΥޥɤϵĤޤ"
+msgid "E231: 'guifontwide' invalid"
+msgstr "E231: 'guifontwide' ̵Ǥ"
-#: ../globals.h:1003
-msgid "E171: Missing :endif"
-msgstr "E171: :endif ޤ"
+msgid "E599: Value of 'imactivatekey' is invalid"
+msgstr "E599: 'imactivatekey' ꤵ줿̵ͤǤ"
-#: ../globals.h:1004
-msgid "E600: Missing :endtry"
-msgstr "E600: :endtry ޤ"
+#, c-format
+msgid "E254: Cannot allocate color %s"
+msgstr "E254: %s οƤޤ"
-#: ../globals.h:1005
-msgid "E170: Missing :endwhile"
-msgstr "E170: :endwhile ޤ"
+msgid "No match at cursor, finding next"
+msgstr "ΰ֤˥ޥåϤޤ, 򸡺Ƥޤ"
-#: ../globals.h:1006
-msgid "E170: Missing :endfor"
-msgstr "E170: :endfor ޤ"
-
-#: ../globals.h:1007
-msgid "E588: :endwhile without :while"
-msgstr "E588: :while Τʤ :endwhile ޤ"
+msgid "<cannot open> "
+msgstr "<ޤ> "
-#: ../globals.h:1008
-msgid "E588: :endfor without :for"
-msgstr "E588: :endfor Τʤ :for ޤ"
+#, c-format
+msgid "E616: vim_SelFile: can't get font %s"
+msgstr "E616: vim_SelFile: ե %s Ǥޤ"
-#: ../globals.h:1009
-msgid "E13: File exists (add ! to override)"
-msgstr "E13: ե뤬¸ߤޤ (! ɲäǾ)"
+msgid "E614: vim_SelFile: can't return to current directory"
+msgstr "E614: vim_SelFile: ߤΥǥ쥯ȥޤ"
-#: ../globals.h:1010
-msgid "E472: Command failed"
-msgstr "E472: ޥɤԤޤ"
+msgid "Pathname:"
+msgstr "ѥ̾:"
-#: ../globals.h:1011
-msgid "E473: Internal error"
-msgstr "E473: 顼Ǥ"
+msgid "E615: vim_SelFile: can't get current directory"
+msgstr "E615: vim_SelFile: ߤΥǥ쥯ȥǤޤ"
-#: ../globals.h:1012
-msgid "Interrupted"
-msgstr "ޤޤ"
+msgid "OK"
+msgstr "OK"
-#: ../globals.h:1013
-msgid "E14: Invalid address"
-msgstr "E14: ̵ʥɥ쥹Ǥ"
+msgid "Cancel"
+msgstr "󥻥"
-#: ../globals.h:1014
-msgid "E474: Invalid argument"
-msgstr "E474: ̵ʰǤ"
+msgid "Scrollbar Widget: Could not get geometry of thumb pixmap."
+msgstr "С: ǤޤǤ."
-#: ../globals.h:1015
-#, c-format
-msgid "E475: Invalid argument: %s"
-msgstr "E475: ̵ʰǤ: %s"
+msgid "Vim dialog"
+msgstr "Vim "
-#: ../globals.h:1016
-#, c-format
-msgid "E15: Invalid expression: %s"
-msgstr "E15: ̵ʼǤ: %s"
+msgid "E232: Cannot create BalloonEval with both message and callback"
+msgstr "E232: åȥХåΤ BalloonEval Ǥޤ"
-#: ../globals.h:1017
-msgid "E16: Invalid range"
-msgstr "E16: ̵ϰϤǤ"
+msgid "_Cancel"
+msgstr "󥻥(_C)"
-#: ../globals.h:1018
-msgid "E476: Invalid command"
-msgstr "E476: ̵ʥޥɤǤ"
+msgid "_Save"
+msgstr "¸(_S)"
-#: ../globals.h:1019
-#, c-format
-msgid "E17: \"%s\" is a directory"
-msgstr "E17: \"%s\" ϥǥ쥯ȥǤ"
+msgid "_Open"
+msgstr "(_O)"
-#: ../globals.h:1020
-#, fuzzy
-msgid "E900: Invalid job id"
-msgstr "E49: ̵ʥ̤Ǥ"
+msgid "_OK"
+msgstr "_OK"
-#: ../globals.h:1021
-msgid "E901: Job table is full"
+msgid ""
+"&Yes\n"
+"&No\n"
+"&Cancel"
msgstr ""
+"Ϥ(&Y)\n"
+"(&N)\n"
+"󥻥(&C)"
-#: ../globals.h:1024
-#, c-format
-msgid "E364: Library call failed for \"%s()\""
-msgstr "E364: \"%s\"() Υ饤֥ƽФ˼Ԥޤ"
+msgid "Yes"
+msgstr "Ϥ"
-#: ../globals.h:1026
-msgid "E19: Mark has invalid line number"
-msgstr "E19: ޡ̵ʹֹ椬ꤵƤޤ"
+msgid "No"
+msgstr ""
-#: ../globals.h:1027
-msgid "E20: Mark not set"
-msgstr "E20: ޡꤵƤޤ"
+msgid "Input _Methods"
+msgstr "ץåȥ᥽å"
-#: ../globals.h:1029
-msgid "E21: Cannot make changes, 'modifiable' is off"
-msgstr "E21: 'modifiable' դʤΤ, ѹǤޤ"
+msgid "VIM - Search and Replace..."
+msgstr "VIM - ִ..."
-#: ../globals.h:1030
-msgid "E22: Scripts nested too deep"
-msgstr "E22: ץȤҤ᤮ޤ"
+msgid "VIM - Search..."
+msgstr "VIM - ..."
-#: ../globals.h:1031
-msgid "E23: No alternate file"
-msgstr "E23: եϤޤ"
+msgid "Find what:"
+msgstr "ʸ:"
-#: ../globals.h:1032
-msgid "E24: No such abbreviation"
-msgstr "E24: Τ褦ûϤϤޤ"
+msgid "Replace with:"
+msgstr "ִʸ:"
-#: ../globals.h:1033
-msgid "E477: No ! allowed"
-msgstr "E477: ! ϵĤƤޤ"
+#. whole word only button
+msgid "Match whole word only"
+msgstr "Τ˳Τ"
-#: ../globals.h:1035
-msgid "E25: Nvim does not have a built-in GUI"
-msgstr "E25: GUIϻԲǽǤ: ѥ̵ˤƤޤ"
+#. match case button
+msgid "Match case"
+msgstr "ʸ/ʸ̤"
-#: ../globals.h:1036
-#, c-format
-msgid "E28: No such highlight group name: %s"
-msgstr "E28: Τ褦̾Υϥ饤ȥ롼פϤޤ: %s"
+msgid "Direction"
+msgstr ""
-#: ../globals.h:1037
-msgid "E29: No inserted text yet"
-msgstr "E29: ޤƥȤƤޤ"
+#. 'Up' and 'Down' buttons
+msgid "Up"
+msgstr ""
-#: ../globals.h:1038
-msgid "E30: No previous command line"
-msgstr "E30: ˥ޥɹԤޤ"
+msgid "Down"
+msgstr ""
-#: ../globals.h:1039
-msgid "E31: No such mapping"
-msgstr "E31: Τ褦ʥޥåԥ󥰤Ϥޤ"
+msgid "Find Next"
+msgstr "򸡺"
-#: ../globals.h:1040
-msgid "E479: No match"
-msgstr "E479: Ϥޤ"
+msgid "Replace"
+msgstr "ִ"
-#: ../globals.h:1041
-#, c-format
-msgid "E480: No match: %s"
-msgstr "E480: Ϥޤ: %s"
+msgid "Replace All"
+msgstr "ִ"
-#: ../globals.h:1042
-msgid "E32: No file name"
-msgstr "E32: ե̾ޤ"
+msgid "_Close"
+msgstr "Ĥ(_C)"
-#: ../globals.h:1044
-msgid "E33: No previous substitute regular expression"
-msgstr "E33: ɽִޤ¹ԤƤޤ"
+msgid "Vim: Received \"die\" request from session manager\n"
+msgstr "Vim: åޥ͡㤫 \"die\" ׵ޤ\n"
-#: ../globals.h:1045
-msgid "E34: No previous command"
-msgstr "E34: ޥɤޤ¹ԤƤޤ"
+msgid "Close tab"
+msgstr "֥ڡĤ"
-#: ../globals.h:1046
-msgid "E35: No previous regular expression"
-msgstr "E35: ɽޤ¹ԤƤޤ"
+msgid "New tab"
+msgstr "֥ڡ"
-#: ../globals.h:1047
-msgid "E481: No range allowed"
-msgstr "E481: ϰϻϵĤƤޤ"
+msgid "Open Tab..."
+msgstr "֥ڡ򳫤..."
-#: ../globals.h:1048
-msgid "E36: Not enough room"
-msgstr "E36: ɥ˽ʬʹ⤵⤷ޤ"
+msgid "Vim: Main window unexpectedly destroyed\n"
+msgstr "Vim: ᥤ󥦥ɥ԰դ˲ޤ\n"
-#: ../globals.h:1049
-#, c-format
-msgid "E482: Can't create file %s"
-msgstr "E482: ե %s Ǥޤ"
+msgid "&Filter"
+msgstr "ե륿(&F)"
-#: ../globals.h:1050
-msgid "E483: Can't get temp file name"
-msgstr "E483: ե̾Ǥޤ"
+msgid "&Cancel"
+msgstr "󥻥(&C)"
-#: ../globals.h:1051
-#, c-format
-msgid "E484: Can't open file %s"
-msgstr "E484: ե \"%s\" 򳫤ޤ"
+msgid "Directories"
+msgstr "ǥ쥯ȥ"
-#: ../globals.h:1052
-#, c-format
-msgid "E485: Can't read file %s"
-msgstr "E485: ե %s ɹޤ"
+msgid "Filter"
+msgstr "ե륿"
-#: ../globals.h:1054
-msgid "E37: No write since last change (add ! to override)"
-msgstr "E37: Ǹѹ¸Ƥޤ (! ɲäѹ˴)"
+msgid "&Help"
+msgstr "إ(&H)"
-#: ../globals.h:1055
-msgid "E37: No write since last change"
-msgstr "E37: Ǹѹ¸Ƥޤ"
+msgid "Files"
+msgstr "ե"
-#: ../globals.h:1056
-msgid "E38: Null argument"
-msgstr "E38: Ǥ"
+msgid "&OK"
+msgstr "&OK"
-#: ../globals.h:1057
-msgid "E39: Number expected"
-msgstr "E39: ͤ׵ᤵƤޤ"
+msgid "Selection"
+msgstr ""
-#: ../globals.h:1058
-#, c-format
-msgid "E40: Can't open errorfile %s"
-msgstr "E40: 顼ե %s 򳫤ޤ"
+msgid "Find &Next"
+msgstr "򸡺(&N)"
-#: ../globals.h:1059
-msgid "E41: Out of memory!"
-msgstr "E41: ꤬Ԥ̤Ƥޤ!"
+msgid "&Replace"
+msgstr "ִ(&R)"
-#: ../globals.h:1060
-msgid "Pattern not found"
-msgstr "ѥϸĤޤǤ"
+msgid "Replace &All"
+msgstr "ִ(&A)"
-#: ../globals.h:1061
-#, c-format
-msgid "E486: Pattern not found: %s"
-msgstr "E486: ѥϸĤޤǤ: %s"
+msgid "&Undo"
+msgstr "ɥ(&U)"
-#: ../globals.h:1062
-msgid "E487: Argument must be positive"
-msgstr "E487: ͤǤʤФʤޤ"
+msgid "Open tab..."
+msgstr "֥ڡ򳫤"
-#: ../globals.h:1064
-msgid "E459: Cannot go back to previous directory"
-msgstr "E459: Υǥ쥯ȥޤ"
+msgid "Find string (use '\\\\' to find a '\\')"
+msgstr "ʸ ('\\' 򸡺ˤ '\\\\')"
-#: ../globals.h:1066
-msgid "E42: No Errors"
-msgstr "E42: 顼Ϥޤ"
+msgid "Find & Replace (use '\\\\' to find a '\\')"
+msgstr "ִ ('\\' 򸡺ˤ '\\\\')"
-#: ../globals.h:1067
-msgid "E776: No location list"
-msgstr "E776: ꥹȤϤޤ"
-
-#: ../globals.h:1068
-msgid "E43: Damaged match string"
-msgstr "E43: ʸ»Ƥޤ"
+#. We fake this: Use a filter that doesn't select anything and a default
+#. * file name that won't be used.
+msgid "Not Used"
+msgstr "Ȥޤ"
-#: ../globals.h:1069
-msgid "E44: Corrupted regexp program"
-msgstr "E44: ɽץǤ"
+msgid "Directory\t*.nothing\n"
+msgstr "ǥ쥯ȥ\t*.nothing\n"
-#: ../globals.h:1071
-msgid "E45: 'readonly' option is set (add ! to override)"
-msgstr "E45: 'readonly' ץꤵƤޤ (! ɲäǾ)"
-
-#: ../globals.h:1073
#, c-format
-msgid "E46: Cannot change read-only variable \"%s\""
-msgstr "E46: ɼѿ \"%s\" ˤͤǤޤ"
+msgid "E671: Cannot find window title \"%s\""
+msgstr "E671: ȥ뤬 \"%s\" ΥɥϸĤޤ"
-#: ../globals.h:1075
#, c-format
-msgid "E794: Cannot set variable in the sandbox: \"%s\""
-msgstr "E794: ɥܥåǤѿ \"%s\" ͤǤޤ"
-
-#: ../globals.h:1076
-msgid "E47: Error while reading errorfile"
-msgstr "E47: 顼եɹ˥顼ȯޤ"
-
-#: ../globals.h:1078
-msgid "E48: Not allowed in sandbox"
-msgstr "E48: ɥܥåǤϵޤ"
-
-#: ../globals.h:1080
-msgid "E523: Not allowed here"
-msgstr "E523: ǤϵĤޤ"
+msgid "E243: Argument not supported: \"-%s\"; Use the OLE version."
+msgstr "E243: ϥݡȤޤ: \"-%s\"; OLEǤѤƤ."
-#: ../globals.h:1082
-msgid "E359: Screen mode setting not supported"
-msgstr "E359: ꡼⡼ɤˤбƤޤ"
+msgid "E672: Unable to open window inside MDI application"
+msgstr "E672: MDIץǤϥɥ򳫤ޤ"
-#: ../globals.h:1083
-msgid "E49: Invalid scroll size"
-msgstr "E49: ̵ʥ̤Ǥ"
+msgid "Vim E458: Cannot allocate colormap entry, some colors may be incorrect"
+msgstr "Vim E458: ꤬ʤΤǥȥƤޤ"
-#: ../globals.h:1084
-msgid "E91: 'shell' option is empty"
-msgstr "E91: 'shell' ץ󤬶Ǥ"
+#, c-format
+msgid "E250: Fonts for the following charsets are missing in fontset %s:"
+msgstr "E250: ʲʸåȤΥեȤޤ %s:"
-#: ../globals.h:1085
-msgid "E255: Couldn't read in sign data!"
-msgstr "E255: sign ΥǡɹޤǤ"
+#, c-format
+msgid "E252: Fontset name: %s"
+msgstr "E252: եȥå̾: %s"
-#: ../globals.h:1086
-msgid "E72: Close error on swap file"
-msgstr "E72: åץեΥ顼Ǥ"
+#, c-format
+msgid "Font '%s' is not fixed-width"
+msgstr "ե '%s' ϸǤϤޤ"
-#: ../globals.h:1087
-msgid "E73: tag stack empty"
-msgstr "E73: åǤ"
+#, c-format
+msgid "E253: Fontset name: %s"
+msgstr "E253: եȥå̾: %s"
-#: ../globals.h:1088
-msgid "E74: Command too complex"
-msgstr "E74: ޥɤʣ᤮ޤ"
+#, c-format
+msgid "Font0: %s"
+msgstr "ե0: %s"
-#: ../globals.h:1089
-msgid "E75: Name too long"
-msgstr "E75: ̾Ĺ᤮ޤ"
+#, c-format
+msgid "Font1: %s"
+msgstr "ե1: %s"
-#: ../globals.h:1090
-msgid "E76: Too many ["
-msgstr "E76: [ ¿᤮ޤ"
+#, c-format
+msgid "Font%ld width is not twice that of font0"
+msgstr "ե%ld ե02ܤǤϤޤ"
-#: ../globals.h:1091
-msgid "E77: Too many file names"
-msgstr "E77: ե̾¿᤮ޤ"
+#, c-format
+msgid "Font0 width: %ld"
+msgstr "ե0: %ld"
-#: ../globals.h:1092
-msgid "E488: Trailing characters"
-msgstr "E488: ;ʬʸˤޤ"
+#, c-format
+msgid "Font1 width: %ld"
+msgstr "ե1: %ld"
-#: ../globals.h:1093
-msgid "E78: Unknown mark"
-msgstr "E78: ̤ΤΥޡ"
+msgid "Invalid font specification"
+msgstr "̵ʥեȻǤ"
-#: ../globals.h:1094
-msgid "E79: Cannot expand wildcards"
-msgstr "E79: 磻ɥɤŸǤޤ"
+msgid "&Dismiss"
+msgstr "Ѳ(&D)"
-#: ../globals.h:1096
-msgid "E591: 'winheight' cannot be smaller than 'winminheight'"
-msgstr "E591: 'winheight' 'winminheight' 꾮Ǥޤ"
+msgid "no specific match"
+msgstr "ޥåΤޤ"
-#: ../globals.h:1098
-msgid "E592: 'winwidth' cannot be smaller than 'winminwidth'"
-msgstr "E592: 'winwidth' 'winminwidth' 꾮Ǥޤ"
+msgid "Vim - Font Selector"
+msgstr "Vim - ե"
-#: ../globals.h:1099
-msgid "E80: Error while writing"
-msgstr "E80: Υ顼"
+msgid "Name:"
+msgstr "̾:"
-#: ../globals.h:1100
-msgid "Zero count"
-msgstr ""
+#. create toggle button
+msgid "Show size in Points"
+msgstr "ݥȤɽ"
-#: ../globals.h:1101
-msgid "E81: Using <SID> not in a script context"
-msgstr "E81: ץȰʳ<SID>Ȥޤ"
+msgid "Encoding:"
+msgstr "󥳡:"
-#: ../globals.h:1102
-#, c-format
-msgid "E685: Internal error: %s"
-msgstr "E685: 顼Ǥ: %s"
+msgid "Font:"
+msgstr "ե:"
-#: ../globals.h:1104
-msgid "E363: pattern uses more memory than 'maxmempattern'"
-msgstr "E363: ѥ 'maxmempattern' ʾΥѤޤ"
+msgid "Style:"
+msgstr ":"
-#: ../globals.h:1105
-msgid "E749: empty buffer"
-msgstr "E749: ХåեǤ"
+msgid "Size:"
+msgstr ":"
-#: ../globals.h:1108
-msgid "E682: Invalid search pattern or delimiter"
-msgstr "E682: ѥ󤫶ڤ국椬Ǥ"
+msgid "E256: Hangul automata ERROR"
+msgstr "E256: ϥ󥰥륪ȥޥȥ󥨥顼"
-#: ../globals.h:1109
-msgid "E139: File is loaded in another buffer"
-msgstr "E139: Ʊ̾Υե뤬¾ΥХåեɹޤƤޤ"
-
-#: ../globals.h:1110
-#, c-format
-msgid "E764: Option '%s' is not set"
-msgstr "E764: ץ '%s' ꤵƤޤ"
-
-#: ../globals.h:1111
-msgid "E850: Invalid register name"
-msgstr "E850: ̵ʥ쥸̾Ǥ"
-
-#: ../globals.h:1114
-msgid "search hit TOP, continuing at BOTTOM"
-msgstr "ޤǸΤDzޤ"
-
-#: ../globals.h:1115
-msgid "search hit BOTTOM, continuing at TOP"
-msgstr "ޤǸΤǾޤ"
-
-#: ../hardcopy.c:240
msgid "E550: Missing colon"
msgstr "E550: 󤬤ޤ"
-#: ../hardcopy.c:252
msgid "E551: Illegal component"
msgstr "E551: ʹʸǤǤ"
-#: ../hardcopy.c:259
msgid "E552: digit expected"
msgstr "E552: ͤɬפǤ"
-#: ../hardcopy.c:473
#, c-format
msgid "Page %d"
msgstr "%d ڡ"
-#: ../hardcopy.c:597
msgid "No text to be printed"
msgstr "ƥȤޤ"
-#: ../hardcopy.c:668
#, c-format
msgid "Printing page %d (%d%%)"
msgstr ": ڡ %d (%d%%)"
-#: ../hardcopy.c:680
#, c-format
msgid " Copy %d of %d"
msgstr " ԡ %d ( %d )"
-#: ../hardcopy.c:733
#, c-format
msgid "Printed: %s"
msgstr "ޤ: %s"
-#: ../hardcopy.c:740
msgid "Printing aborted"
msgstr "ߤޤ"
-#: ../hardcopy.c:1365
msgid "E455: Error writing to PostScript output file"
msgstr "E455: PostScriptϥեνߥ顼Ǥ"
-#: ../hardcopy.c:1747
#, c-format
msgid "E624: Can't open file \"%s\""
msgstr "E624: ե \"%s\" 򳫤ޤ"
-#: ../hardcopy.c:1756 ../hardcopy.c:2470
#, c-format
msgid "E457: Can't read PostScript resource file \"%s\""
msgstr "E457: PostScriptΥ꥽ե \"%s\" ɹޤ"
-#: ../hardcopy.c:1772
#, c-format
msgid "E618: file \"%s\" is not a PostScript resource file"
msgstr "E618: ե \"%s\" PostScript ꥽եǤϤޤ"
-#: ../hardcopy.c:1788 ../hardcopy.c:1805 ../hardcopy.c:1844
#, c-format
msgid "E619: file \"%s\" is not a supported PostScript resource file"
msgstr "E619: ե \"%s\" бƤʤ PostScript ꥽եǤ"
-#: ../hardcopy.c:1856
#, c-format
msgid "E621: \"%s\" resource file has wrong version"
msgstr "E621: ꥽ե \"%s\" ϥС󤬰ۤʤޤ"
-#: ../hardcopy.c:2225
msgid "E673: Incompatible multi-byte encoding and character set."
msgstr "E673: ߴ̵ޥХȥ󥳡ǥ󥰤ʸåȤǤ"
-#: ../hardcopy.c:2238
msgid "E674: printmbcharset cannot be empty with multi-byte encoding."
msgstr "E674: ޥХȥ󥳡ǥ󥰤Ǥ printmbcharset ˤǤޤ"
-#: ../hardcopy.c:2254
msgid "E675: No default font specified for multi-byte printing."
msgstr ""
"E675: ޥХʸ뤿ΥǥեȥեȤꤵƤޤ"
-#: ../hardcopy.c:2426
msgid "E324: Can't open PostScript output file"
msgstr "E324: PostScriptѤΥե򳫤ޤ"
-#: ../hardcopy.c:2458
#, c-format
msgid "E456: Can't open file \"%s\""
msgstr "E456: ե \"%s\" 򳫤ޤ"
-#: ../hardcopy.c:2583
msgid "E456: Can't find PostScript resource file \"prolog.ps\""
msgstr "E456: PostScriptΥ꥽ե \"prolog.ps\" Ĥޤ"
-#: ../hardcopy.c:2593
msgid "E456: Can't find PostScript resource file \"cidfont.ps\""
msgstr "E456: PostScriptΥ꥽ե \"cidfont.ps\" Ĥޤ"
-#: ../hardcopy.c:2622 ../hardcopy.c:2639 ../hardcopy.c:2665
#, c-format
msgid "E456: Can't find PostScript resource file \"%s.ps\""
msgstr "E456: PostScriptΥ꥽ե \"%s.ps\" Ĥޤ"
-#: ../hardcopy.c:2654
#, c-format
msgid "E620: Unable to convert to print encoding \"%s\""
msgstr "E620: 󥳡 \"%s\" ѴǤޤ"
-#: ../hardcopy.c:2877
msgid "Sending to printer..."
msgstr "ץ󥿤..."
-#: ../hardcopy.c:2881
msgid "E365: Failed to print PostScript file"
msgstr "E365: PostScriptեΰ˼Ԥޤ"
-#: ../hardcopy.c:2883
msgid "Print job sent."
msgstr "֤ޤ."
-#: ../if_cscope.c:85
msgid "Add a new database"
msgstr "ǡ١ɲ"
-#: ../if_cscope.c:87
msgid "Query for a pattern"
msgstr "ѥΥ꡼ɲ"
-#: ../if_cscope.c:89
msgid "Show this message"
msgstr "Υåɽ"
-#: ../if_cscope.c:91
msgid "Kill a connection"
msgstr "³λ"
-#: ../if_cscope.c:93
msgid "Reinit all connections"
msgstr "Ƥ³ƽ"
-#: ../if_cscope.c:95
msgid "Show connections"
msgstr "³ɽ"
-#: ../if_cscope.c:101
#, c-format
msgid "E560: Usage: cs[cope] %s"
msgstr "E560: ˡ: cs[cope] %s"
-#: ../if_cscope.c:225
msgid "This cscope command does not support splitting the window.\n"
msgstr "cscopeޥɤʬ䥦ɥǤϥݡȤޤ.\n"
-#: ../if_cscope.c:266
msgid "E562: Usage: cstag <ident>"
msgstr "E562: ˡ: cstag <ident>"
-#: ../if_cscope.c:313
msgid "E257: cstag: tag not found"
msgstr "E257: cstag: Ĥޤ"
-#: ../if_cscope.c:461
#, c-format
msgid "E563: stat(%s) error: %d"
msgstr "E563: stat(%s) 顼: %d"
-#: ../if_cscope.c:551
+msgid "E563: stat error"
+msgstr "E563: stat 顼"
+
#, c-format
msgid "E564: %s is not a directory or a valid cscope database"
msgstr "E564: %s ϥǥ쥯ȥڤͭcscopeΥǡ١ǤϤޤ"
-#: ../if_cscope.c:566
#, c-format
msgid "Added cscope database %s"
msgstr "cscopeǡ١ %s ɲ"
-#: ../if_cscope.c:616
#, c-format
-msgid "E262: error reading cscope connection %<PRId64>"
-msgstr "E262: cscope³ %<PRId64> ɹΥ顼Ǥ"
+msgid "E262: error reading cscope connection %ld"
+msgstr "E262: cscope³ %ld ɹΥ顼Ǥ"
-#: ../if_cscope.c:711
msgid "E561: unknown cscope search type"
msgstr "E561: ̤ΤcscopeǤ"
-#: ../if_cscope.c:752 ../if_cscope.c:789
msgid "E566: Could not create cscope pipes"
msgstr "E566: cscopeѥפǤޤǤ"
-#: ../if_cscope.c:767
msgid "E622: Could not fork for cscope"
msgstr "E622: cscopeεư(fork)˼Ԥޤ"
-#: ../if_cscope.c:849
msgid "cs_create_connection setpgid failed"
msgstr "cs_create_connection ؤ setpgid ˼Ԥޤ"
-#: ../if_cscope.c:853 ../if_cscope.c:889
msgid "cs_create_connection exec failed"
msgstr "cs_create_connection μ¹Ԥ˼Ԥޤ"
-#: ../if_cscope.c:863 ../if_cscope.c:902
msgid "cs_create_connection: fdopen for to_fp failed"
msgstr "cs_create_connection: to_fp fdopen ˼Ԥޤ"
-#: ../if_cscope.c:865 ../if_cscope.c:906
msgid "cs_create_connection: fdopen for fr_fp failed"
msgstr "cs_create_connection: fr_fp fdopen ˼Ԥޤ"
-#: ../if_cscope.c:890
msgid "E623: Could not spawn cscope process"
msgstr "E623: cscopeץưǤޤǤ"
-#: ../if_cscope.c:932
msgid "E567: no cscope connections"
msgstr "E567: cscope³˼Ԥޤ"
-#: ../if_cscope.c:1009
#, c-format
msgid "E469: invalid cscopequickfix flag %c for %c"
msgstr "E469: ̵ cscopequickfix ե饰 %c %c Ǥ"
-#: ../if_cscope.c:1058
#, c-format
msgid "E259: no matches found for cscope query %s of %s"
msgstr "E259: cscope꡼ %s of %s ˳ޤǤ"
-#: ../if_cscope.c:1142
msgid "cscope commands:\n"
msgstr "cscopeޥ:\n"
-#: ../if_cscope.c:1150
#, c-format
msgid "%-5s: %s%*s (Usage: %s)"
msgstr "%-5s: %s%*s (ˡ: %s)"
-#: ../if_cscope.c:1155
msgid ""
"\n"
+" a: Find assignments to this symbol\n"
" c: Find functions calling this function\n"
" d: Find functions called by this function\n"
" e: Find this egrep pattern\n"
@@ -3234,6 +2549,7 @@ msgid ""
" t: Find this text string\n"
msgstr ""
"\n"
+" a: ΥܥФõ\n"
" c: δؿƤǤؿõ\n"
" d: δؿƤǤؿõ\n"
" e: egrepѥõ\n"
@@ -3243,31 +2559,32 @@ msgstr ""
" s: Cܥõ\n"
" t: Υƥʸõ\n"
-#: ../if_cscope.c:1226
+#, c-format
+msgid "E625: cannot open cscope database: %s"
+msgstr "E625: cscopeǡ١: %s 򳫤ȤǤޤ"
+
+msgid "E626: cannot get cscope database information"
+msgstr "E626: cscopeǡ١ξǤޤ"
+
msgid "E568: duplicate cscope database not added"
msgstr "E568: ʣcscopeǡ١ɲäޤǤ"
-#: ../if_cscope.c:1335
#, c-format
msgid "E261: cscope connection %s not found"
msgstr "E261: cscope³ %s ĤޤǤ"
-#: ../if_cscope.c:1364
#, c-format
msgid "cscope connection %s closed"
msgstr "cscope³ %s Ĥޤ"
#. should not reach here
-#: ../if_cscope.c:1486
msgid "E570: fatal error in cs_manage_matches"
msgstr "E570: cs_manage_matches ̿Ūʥ顼Ǥ"
-#: ../if_cscope.c:1693
#, c-format
msgid "Cscope tag: %s"
msgstr "Cscope : %s"
-#: ../if_cscope.c:1711
msgid ""
"\n"
" # line"
@@ -3275,87 +2592,300 @@ msgstr ""
"\n"
" # ֹ"
-#: ../if_cscope.c:1713
msgid "filename / context / line\n"
msgstr "ե̾ / ʸ̮ / \n"
-#: ../if_cscope.c:1809
#, c-format
msgid "E609: Cscope error: %s"
msgstr "E609: cscope顼: %s"
-#: ../if_cscope.c:2053
msgid "All cscope databases reset"
msgstr "Ƥcscopeǡ١ꥻåȤޤ"
-#: ../if_cscope.c:2123
msgid "no cscope connections\n"
msgstr "cscope³ޤ\n"
-#: ../if_cscope.c:2126
msgid " # pid database name prepend path\n"
msgstr " # pid ǡ١̾ prepend ѥ\n"
-#: ../main.c:144
+msgid "Lua library cannot be loaded."
+msgstr "Lua饤֥ɤǤޤ."
+
+msgid "cannot save undo information"
+msgstr "ɥ¸Ǥޤ"
+
+msgid ""
+"E815: Sorry, this command is disabled, the MzScheme libraries could not be "
+"loaded."
+msgstr "E815: Υޥɤ̵Ǥ. MzScheme 饤֥ɤǤޤ."
+
+msgid ""
+"E895: Sorry, this command is disabled, the MzScheme's racket/base module "
+"could not be loaded."
+msgstr ""
+"E895: Υޥɤ̵Ǥ,ʤ. MzScheme racket/base ⥸塼"
+"ɤǤޤǤ."
+
+msgid "invalid expression"
+msgstr "̵ʼǤ"
+
+msgid "expressions disabled at compile time"
+msgstr "ϥѥ̵ˤƤޤ"
+
+msgid "hidden option"
+msgstr "ץ"
+
+msgid "unknown option"
+msgstr "̤ΤΥץǤ"
+
+msgid "window index is out of range"
+msgstr "ϰϳΥɥֹǤ"
+
+msgid "couldn't open buffer"
+msgstr "Хåե򳫤ޤ"
+
+msgid "cannot delete line"
+msgstr "Ԥäޤ"
+
+msgid "cannot replace line"
+msgstr "ԤִǤޤ"
+
+msgid "cannot insert line"
+msgstr "ԤǤޤ"
+
+msgid "string cannot contain newlines"
+msgstr "ʸˤϲʸޤޤ"
+
+msgid "error converting Scheme values to Vim"
+msgstr "SchemeͤVimؤѴ顼"
+
+msgid "Vim error: ~a"
+msgstr "Vim 顼: ~a"
+
+msgid "Vim error"
+msgstr "Vim 顼"
+
+msgid "buffer is invalid"
+msgstr "Хåե̵Ǥ"
+
+msgid "window is invalid"
+msgstr "ɥ̵Ǥ"
+
+msgid "linenr out of range"
+msgstr "ϰϳιֹǤ"
+
+msgid "not allowed in the Vim sandbox"
+msgstr "ɥܥåǤϵޤ"
+
+msgid "E836: This Vim cannot execute :python after using :py3"
+msgstr "E836: VimǤ :py3 Ȥä :python Ȥޤ"
+
+msgid ""
+"E263: Sorry, this command is disabled, the Python library could not be "
+"loaded."
+msgstr ""
+"E263: Υޥɤ̵Ǥ,ʤ: Python饤֥ɤǤޤ"
+"Ǥ."
+
+msgid ""
+"E887: Sorry, this command is disabled, the Python's site module could not be "
+"loaded."
+msgstr ""
+"E887: Υޥɤ̵Ǥ,ʤ. Python site ⥸塼"
+"ǤޤǤ."
+
+# Added at 07-Feb-2004.
+msgid "E659: Cannot invoke Python recursively"
+msgstr "E659: Python ƵŪ˼¹Ԥ뤳ȤϤǤޤ"
+
+msgid "E837: This Vim cannot execute :py3 after using :python"
+msgstr "E837: VimǤ :python Ȥä :py3 Ȥޤ"
+
+msgid "E265: $_ must be an instance of String"
+msgstr "E265: $_ ʸΥ󥹥󥹤ǤʤФʤޤ"
+
+msgid ""
+"E266: Sorry, this command is disabled, the Ruby library could not be loaded."
+msgstr ""
+"E266: Υޥɤ̵Ǥ,ʤ: Ruby饤֥ɤǤޤ"
+"."
+
+msgid "E267: unexpected return"
+msgstr "E267: ͽ return Ǥ"
+
+msgid "E268: unexpected next"
+msgstr "E268: ͽ next Ǥ"
+
+msgid "E269: unexpected break"
+msgstr "E269: ͽ break Ǥ"
+
+msgid "E270: unexpected redo"
+msgstr "E270: ͽ redo Ǥ"
+
+msgid "E271: retry outside of rescue clause"
+msgstr "E271: rescue γ retry Ǥ"
+
+msgid "E272: unhandled exception"
+msgstr "E272: 갷ʤä㳰ޤ"
+
+#, c-format
+msgid "E273: unknown longjmp status %d"
+msgstr "E273: ̤Τlongjmp: %d"
+
+msgid "invalid buffer number"
+msgstr "̵ʥХåեֹǤ"
+
+msgid "not implemented yet"
+msgstr "ޤƤޤ"
+
+#. ???
+msgid "cannot set line(s)"
+msgstr "ԤǤޤ"
+
+msgid "invalid mark name"
+msgstr "̵ʥޡ̾Ǥ"
+
+msgid "mark not set"
+msgstr "ޡꤵƤޤ"
+
+#, c-format
+msgid "row %d column %d"
+msgstr " %d %d"
+
+msgid "cannot insert/append line"
+msgstr "Ԥ/ɲäǤޤ"
+
+msgid "line number out of range"
+msgstr "ϰϳιֹǤ"
+
+msgid "unknown flag: "
+msgstr "̤ΤΥե饰: "
+
+msgid "unknown vimOption"
+msgstr "̤Τ vimOption Ǥ"
+
+msgid "keyboard interrupt"
+msgstr "ܡɳ"
+
+msgid "vim error"
+msgstr "vim 顼"
+
+msgid "cannot create buffer/window command: object is being deleted"
+msgstr ""
+"Хåե/ɥޥɤǤޤ: ֥ȤõƤ"
+""
+
+msgid ""
+"cannot register callback command: buffer/window is already being deleted"
+msgstr ""
+"ХåޥɤϿǤޤ: Хåե/ɥ˾õޤ"
+
+#. This should never happen. Famous last word?
+msgid ""
+"E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim."
+"org"
+msgstr ""
+"E280: TCL ̿Ū顼: reflist !? vim-dev@vim.org 𤷤Ƥ"
+
+msgid "cannot register callback command: buffer/window reference not found"
+msgstr ""
+"ХåޥɤϿǤޤ: Хåե/ɥλȤĤޤ"
+""
+
+msgid ""
+"E571: Sorry, this command is disabled: the Tcl library could not be loaded."
+msgstr ""
+"E571: Υޥɤ̵Ǥ,ʤ: Tcl饤֥ɤǤޤ"
+"."
+
+#, c-format
+msgid "E572: exit code %d"
+msgstr "E572: λ %d"
+
+msgid "cannot get line"
+msgstr "ԤǤޤ"
+
+msgid "Unable to register a command server name"
+msgstr "̿᥵С̾ϿǤޤ"
+
+msgid "E248: Failed to send command to the destination program"
+msgstr "E248: ŪΥץؤΥޥ˼Ԥޤ"
+
+#, c-format
+msgid "E573: Invalid server id used: %s"
+msgstr "E573: ̵ʥСIDȤޤ: %s"
+
+msgid "E251: VIM instance registry property is badly formed. Deleted!"
+msgstr "E251: VIM ΤϿץѥƥǤ. õޤ!"
+
+#, c-format
+msgid "E696: Missing comma in List: %s"
+msgstr "E696: ꥹȷ˥ޤޤ: %s"
+
+#, c-format
+msgid "E697: Missing end of List ']': %s"
+msgstr "E697: ꥹȷκǸ ']' ޤ: %s"
+
msgid "Unknown option argument"
msgstr "̤ΤΥץǤ"
-#: ../main.c:146
msgid "Too many edit arguments"
msgstr "Խ¿᤮ޤ"
-#: ../main.c:148
msgid "Argument missing after"
msgstr "ޤ"
-#: ../main.c:150
msgid "Garbage after option argument"
msgstr "ץθ˥ߤޤ"
-#: ../main.c:152
msgid "Too many \"+command\", \"-c command\" or \"--cmd command\" arguments"
msgstr "\"+command\", \"-c command\", \"--cmd command\" ΰ¿᤮ޤ"
-#: ../main.c:154
msgid "Invalid argument for"
msgstr "̵ʰǤ: "
-#: ../main.c:294
#, c-format
msgid "%d files to edit\n"
msgstr "%d ĤΥե뤬Խ򹵤Ƥޤ\n"
-#: ../main.c:1342
+msgid "netbeans is not supported with this GUI\n"
+msgstr "netbeans ϤGUIǤѤǤޤ\n"
+
+msgid "'-nb' cannot be used: not enabled at compile time\n"
+msgstr "'-nb' ԲǽǤ: ѥ̵ˤƤޤ\n"
+
+msgid "This Vim was not compiled with the diff feature."
+msgstr "Vimˤdiffǽޤ(ѥ)."
+
msgid "Attempt to open script file again: \""
msgstr "ץȥեƤӳƤߤޤ: \""
-#: ../main.c:1350
msgid "Cannot open for reading: \""
msgstr "ɹѤȤƳޤ"
-#: ../main.c:1393
msgid "Cannot open for script output: \""
msgstr "ץȽѤ򳫤ޤ"
-#: ../main.c:1622
+msgid "Vim: Error: Failure to start gvim from NetBeans\n"
+msgstr "Vim: 顼: NetBeansgvim򥹥ȤǤޤ\n"
+
+msgid "Vim: Error: This version of Vim does not run in a Cygwin terminal\n"
+msgstr "Vim: 顼: ΥСVimCygwinüǤưޤ\n"
+
msgid "Vim: Warning: Output is not to a terminal\n"
msgstr "Vim: ٹ: üؤνϤǤϤޤ\n"
-#: ../main.c:1624
msgid "Vim: Warning: Input is not from a terminal\n"
msgstr "Vim: ٹ: üϤǤϤޤ\n"
#. just in case..
-#: ../main.c:1891
msgid "pre-vimrc command line"
msgstr "vimrcΥޥɥ饤"
-#: ../main.c:1964
#, c-format
msgid "E282: Cannot read from \"%s\""
msgstr "E282: \"%s\"ɹळȤǤޤ"
-#: ../main.c:2149
msgid ""
"\n"
"More info with: \"vim -h\"\n"
@@ -3363,23 +2893,18 @@ msgstr ""
"\n"
"ܺ٤ʾ: \"vim -h\"\n"
-#: ../main.c:2178
msgid "[file ..] edit specified file(s)"
msgstr "[ե..] եԽ"
-#: ../main.c:2179
msgid "- read text from stdin"
msgstr "- ɸϤƥȤɹ"
-#: ../main.c:2180
msgid "-t tag edit file where tag is defined"
msgstr "-t 줿ȤԽ"
-#: ../main.c:2181
msgid "-q [errorfile] edit file with first error"
msgstr "-q [errorfile] ǽΥ顼Խ"
-#: ../main.c:2187
msgid ""
"\n"
"\n"
@@ -3389,11 +2914,9 @@ msgstr ""
"\n"
"ˡ:"
-#: ../main.c:2189
msgid " vim [arguments] "
msgstr " vim [] "
-#: ../main.c:2193
msgid ""
"\n"
" or:"
@@ -3401,7 +2924,13 @@ msgstr ""
"\n"
" ⤷:"
-#: ../main.c:2196
+msgid ""
+"\n"
+"Where case is ignored prepend / to make flag upper case"
+msgstr ""
+"\n"
+"羮ʸ̵뤵ʸˤ뤿 / ֤Ƥ"
+
msgid ""
"\n"
"\n"
@@ -3411,189 +2940,319 @@ msgstr ""
"\n"
":\n"
-#: ../main.c:2197
msgid "--\t\t\tOnly file names after this"
msgstr "--\t\t\tΤȤˤϥե̾"
-#: ../main.c:2199
msgid "--literal\t\tDon't expand wildcards"
msgstr "--literal\t\t磻ɥɤŸʤ"
-#: ../main.c:2201
+msgid "-register\t\tRegister this gvim for OLE"
+msgstr "-register\t\tgvimOLEȤϿ"
+
+msgid "-unregister\t\tUnregister gvim for OLE"
+msgstr "-unregister\t\tgvimOLEϿ"
+
+msgid "-g\t\t\tRun using GUI (like \"gvim\")"
+msgstr "-g\t\t\tGUIǵư (\"gvim\" Ʊ)"
+
+msgid "-f or --nofork\tForeground: Don't fork when starting GUI"
+msgstr "-f or --nofork\tե饦: GUIϤȤforkʤ"
+
msgid "-v\t\t\tVi mode (like \"vi\")"
msgstr "-v\t\t\tVi⡼ (\"vi\" Ʊ)"
-#: ../main.c:2202
msgid "-e\t\t\tEx mode (like \"ex\")"
msgstr "-e\t\t\tEx⡼ (\"ex\" Ʊ)"
-#: ../main.c:2203
msgid "-E\t\t\tImproved Ex mode"
msgstr "-E\t\t\tEx⡼"
-#: ../main.c:2204
msgid "-s\t\t\tSilent (batch) mode (only for \"ex\")"
msgstr "-s\t\t\t(Хå)⡼ (\"ex\" )"
-#: ../main.c:2205
msgid "-d\t\t\tDiff mode (like \"vimdiff\")"
msgstr "-d\t\t\tʬ⡼ (\"vidiff\" Ʊ)"
-#: ../main.c:2206
msgid "-y\t\t\tEasy mode (like \"evim\", modeless)"
msgstr "-y\t\t\t⡼ (\"evim\" Ʊ, ⡼̵)"
-#: ../main.c:2207
msgid "-R\t\t\tReadonly mode (like \"view\")"
msgstr "-R\t\t\tɹѥ⡼ (\"view\" Ʊ)"
-#: ../main.c:2208
msgid "-Z\t\t\tRestricted mode (like \"rvim\")"
msgstr "-Z\t\t\t¥⡼ (\"rvim\" Ʊ)"
-#: ../main.c:2209
msgid "-m\t\t\tModifications (writing files) not allowed"
msgstr "-m\t\t\tѹ (ե¸) Ǥʤ褦ˤ"
-#: ../main.c:2210
msgid "-M\t\t\tModifications in text not allowed"
msgstr "-M\t\t\tƥȤԽԤʤʤ褦ˤ"
-#: ../main.c:2211
msgid "-b\t\t\tBinary mode"
msgstr "-b\t\t\tХʥ⡼"
-#: ../main.c:2212
msgid "-l\t\t\tLisp mode"
msgstr "-l\t\t\tLisp⡼"
-#: ../main.c:2213
msgid "-C\t\t\tCompatible with Vi: 'compatible'"
msgstr "-C\t\t\tViߴ⡼: 'compatible'"
-#: ../main.c:2214
msgid "-N\t\t\tNot fully Vi compatible: 'nocompatible'"
msgstr "-N\t\t\tViߴ⡼: 'nocompatible"
-#: ../main.c:2215
msgid "-V[N][fname]\t\tBe verbose [level N] [log messages to fname]"
msgstr "-V[N][fname]\t\t [٥ N] [ե̾ fname]"
-#: ../main.c:2216
msgid "-D\t\t\tDebugging mode"
msgstr "-D\t\t\tǥХå⡼"
-#: ../main.c:2217
msgid "-n\t\t\tNo swap file, use memory only"
msgstr "-n\t\t\tåץեѤ"
-#: ../main.c:2218
msgid "-r\t\t\tList swap files and exit"
msgstr "-r\t\t\tåץե󤷽λ"
-#: ../main.c:2219
msgid "-r (with file name)\tRecover crashed session"
msgstr "-r (ե̾)\tå夷å"
-#: ../main.c:2220
msgid "-L\t\t\tSame as -r"
msgstr "-L\t\t\t-rƱ"
-#: ../main.c:2221
+msgid "-f\t\t\tDon't use newcli to open window"
+msgstr "-f\t\t\tɥ򳫤Τ newcli Ѥʤ"
+
+msgid "-dev <device>\t\tUse <device> for I/O"
+msgstr "-dev <device>\t\tI/O <device> Ѥ"
+
msgid "-A\t\t\tstart in Arabic mode"
msgstr "-A\t\t\tӥ⡼ɤǵư"
-#: ../main.c:2222
msgid "-H\t\t\tStart in Hebrew mode"
msgstr "-H\t\t\tإ֥饤⡼ɤǵư"
-#: ../main.c:2223
msgid "-F\t\t\tStart in Farsi mode"
msgstr "-F\t\t\tڥ륷⡼ɤǵư"
-#: ../main.c:2224
msgid "-T <terminal>\tSet terminal type to <terminal>"
msgstr "-T <terminal>\tü <terminal> ꤹ"
-#: ../main.c:2225
+msgid "--not-a-term\t\tSkip warning for input/output not being a terminal"
+msgstr "--not-a-term\t\tϤüǤʤȤηٹ򥹥åפ"
+
msgid "-u <vimrc>\t\tUse <vimrc> instead of any .vimrc"
msgstr "-u <vimrc>\t\t.vimrc <vimrc> Ȥ"
-#: ../main.c:2226
+msgid "-U <gvimrc>\t\tUse <gvimrc> instead of any .gvimrc"
+msgstr "-U <gvimrc>\t\t.gvimrc <gvimrc> Ȥ"
+
msgid "--noplugin\t\tDon't load plugin scripts"
msgstr "--noplugin\t\tץ饰󥹥ץȤɤʤ"
-#: ../main.c:2227
msgid "-p[N]\t\tOpen N tab pages (default: one for each file)"
msgstr "-p[N]\t\tN ĥ֥ڡ򳫤(ά: եˤĤ1)"
-#: ../main.c:2228
msgid "-o[N]\t\tOpen N windows (default: one for each file)"
msgstr "-o[N]\t\tN ĥɥ򳫤(ά: եˤĤ1)"
-#: ../main.c:2229
msgid "-O[N]\t\tLike -o but split vertically"
msgstr "-O[N]\t\t-oƱľʬ"
-#: ../main.c:2230
msgid "+\t\t\tStart at end of file"
msgstr "+\t\t\tեκǸ夫Ϥ"
-#: ../main.c:2231
msgid "+<lnum>\t\tStart at line <lnum>"
msgstr "+<lnum>\t\t<lnum> ԤϤ"
-#: ../main.c:2232
msgid "--cmd <command>\tExecute <command> before loading any vimrc file"
msgstr "--cmd <command>\tvimrcɤ <command> ¹Ԥ"
-#: ../main.c:2233
msgid "-c <command>\t\tExecute <command> after loading the first file"
msgstr "-c <command>\t\tǽΥեɸ <command> ¹Ԥ"
-#: ../main.c:2235
msgid "-S <session>\t\tSource file <session> after loading the first file"
msgstr "-S <session>\t\tǽΥեɸե <session> "
-#: ../main.c:2236
msgid "-s <scriptin>\tRead Normal mode commands from file <scriptin>"
msgstr "-s <scriptin>\tե <scriptin> Ρޥ륳ޥɤɹ"
-#: ../main.c:2237
msgid "-w <scriptout>\tAppend all typed commands to file <scriptout>"
msgstr "-w <scriptout>\tϤޥɤե <scriptout> ɲä"
-#: ../main.c:2238
msgid "-W <scriptout>\tWrite all typed commands to file <scriptout>"
msgstr "-W <scriptout>\tϤޥɤե <scriptout> ¸"
-#: ../main.c:2240
+msgid "-x\t\t\tEdit encrypted files"
+msgstr "-x\t\t\tŹ沽줿եԽ"
+
+msgid "-display <display>\tConnect vim to this particular X-server"
+msgstr "-display <display>\tvimꤷ X С³"
+
+msgid "-X\t\t\tDo not connect to X server"
+msgstr "-X\t\t\tXС³ʤ"
+
+msgid "--remote <files>\tEdit <files> in a Vim server if possible"
+msgstr "--remote <files>\tǽʤVimС <files> Խ"
+
+msgid "--remote-silent <files> Same, don't complain if there is no server"
+msgstr "--remote-silent <files> Ʊ, С̵ƤٹʸϤʤ"
+
+msgid ""
+"--remote-wait <files> As --remote but wait for files to have been edited"
+msgstr "--remote-wait <files>\t--remote եԽΤԤ"
+
+msgid ""
+"--remote-wait-silent <files> Same, don't complain if there is no server"
+msgstr ""
+"--remote-wait-silent <files> Ʊ, С̵ƤٹʸϤʤ"
+
+msgid ""
+"--remote-tab[-wait][-silent] <files> As --remote but use tab page per file"
+msgstr ""
+"--remote-tab[-wait][-silent] <files> --remoteǥե1ĤˤĤ1ĤΥ"
+"ڡ򳫤"
+
+msgid "--remote-send <keys>\tSend <keys> to a Vim server and exit"
+msgstr "--remote-send <keys>\tVimС <keys> ƽλ"
+
+msgid "--remote-expr <expr>\tEvaluate <expr> in a Vim server and print result"
+msgstr "--remote-expr <expr>\tС <expr> ¹ԤƷ̤ɽ"
+
+msgid "--serverlist\t\tList available Vim server names and exit"
+msgstr "--serverlist\t\tVimС̾ΰɽƽλ"
+
+msgid "--servername <name>\tSend to/become the Vim server <name>"
+msgstr "--servername <name>\tVimС <name> /̾ꤹ"
+
msgid "--startuptime <file>\tWrite startup timing messages to <file>"
msgstr "--startuptime <file>\tưˤä֤ξܺ٤ <file> ؽϤ"
-#: ../main.c:2242
msgid "-i <viminfo>\t\tUse <viminfo> instead of .viminfo"
msgstr "-i <viminfo>\t\t.viminfo <viminfo> Ȥ"
-#: ../main.c:2243
msgid "-h or --help\tPrint Help (this message) and exit"
msgstr "-h or --help\tإ(Υå)ɽλ"
-#: ../main.c:2244
msgid "--version\t\tPrint version information and exit"
msgstr "--version\t\tСɽλ"
-#: ../mark.c:676
+msgid ""
+"\n"
+"Arguments recognised by gvim (Motif version):\n"
+msgstr ""
+"\n"
+"gvimˤäƲᤵ(MotifС):\n"
+
+msgid ""
+"\n"
+"Arguments recognised by gvim (neXtaw version):\n"
+msgstr ""
+"\n"
+"gvimˤäƲᤵ(neXtawС):\n"
+
+msgid ""
+"\n"
+"Arguments recognised by gvim (Athena version):\n"
+msgstr ""
+"\n"
+"gvimˤäƲᤵ(AthenaС):\n"
+
+msgid "-display <display>\tRun vim on <display>"
+msgstr "-display <display>\t<display> vim¹Ԥ"
+
+msgid "-iconic\t\tStart vim iconified"
+msgstr "-iconic\t\tǾ֤vimư"
+
+msgid "-background <color>\tUse <color> for the background (also: -bg)"
+msgstr "-background <color>\tطʿ <color> Ȥ(Ʊ: -bg)"
+
+msgid "-foreground <color>\tUse <color> for normal text (also: -fg)"
+msgstr "-foreground <color>\tʿ <color> Ȥ(Ʊ: -fg)"
+
+msgid "-font <font>\t\tUse <font> for normal text (also: -fn)"
+msgstr "-font <font>\t\tƥɽ <font> Ȥ(Ʊ: -fn)"
+
+msgid "-boldfont <font>\tUse <font> for bold text"
+msgstr "-boldfont <font>\t <font> Ȥ"
+
+msgid "-italicfont <font>\tUse <font> for italic text"
+msgstr "-italicfont <for>\tλ <font> Ȥ"
+
+msgid "-geometry <geom>\tUse <geom> for initial geometry (also: -geom)"
+msgstr "-geometry <geom>\t֤ <geom> Ȥ(Ʊ: -geom)"
+
+msgid "-borderwidth <width>\tUse a border width of <width> (also: -bw)"
+msgstr "-borderwidth <width>\t <width> ˤ(Ʊ: -bw)"
+
+msgid "-scrollbarwidth <width> Use a scrollbar width of <width> (also: -sw)"
+msgstr ""
+"-scrollbarwidth <width> С <width> ˤ(Ʊ: -sw)"
+
+msgid "-menuheight <height>\tUse a menu bar height of <height> (also: -mh)"
+msgstr "-menuheight <height>\t˥塼Сι⤵ <height> ˤ(Ʊ: -mh)"
+
+msgid "-reverse\t\tUse reverse video (also: -rv)"
+msgstr "-reverse\t\tȿžѤ(Ʊ: -rv)"
+
+msgid "+reverse\t\tDon't use reverse video (also: +rv)"
+msgstr "+reverse\t\tȿžѤʤ(Ʊ: +rv)"
+
+msgid "-xrm <resource>\tSet the specified resource"
+msgstr "-xrm <resource>\tΥ꥽Ѥ"
+
+msgid ""
+"\n"
+"Arguments recognised by gvim (GTK+ version):\n"
+msgstr ""
+"\n"
+"gvimˤäƲᤵ(GTK+С):\n"
+
+msgid "-display <display>\tRun vim on <display> (also: --display)"
+msgstr "-display <display>\t<display> vim¹Ԥ(Ʊ: --display)"
+
+msgid "--role <role>\tSet a unique role to identify the main window"
+msgstr "--role <role>\tᥤ󥦥ɥ̤դ(role)ꤹ"
+
+msgid "--socketid <xid>\tOpen Vim inside another GTK widget"
+msgstr "--socketid <xid>\tۤʤGTK widgetVim򳫤"
+
+msgid "--echo-wid\t\tMake gvim echo the Window ID on stdout"
+msgstr "--echo-wid\t\tɥIDɸϤ˽Ϥ"
+
+msgid "-P <parent title>\tOpen Vim inside parent application"
+msgstr "-P <ƤΥȥ>\tVimƥץꥱǵư"
+
+msgid "--windowid <HWND>\tOpen Vim inside another win32 widget"
+msgstr "--windowid <HWND>\tۤʤWin32 widgetVim򳫤"
+
+msgid "No display"
+msgstr "ǥץ쥤Ĥޤ"
+
+#. Failed to send, abort.
+msgid ": Send failed.\n"
+msgstr ": ˼Ԥޤ.\n"
+
+#. Let vim start normally.
+msgid ": Send failed. Trying to execute locally\n"
+msgstr ": ˼Ԥޤ. Ǥμ¹ԤߤƤޤ\n"
+
+#, c-format
+msgid "%d of %d edited"
+msgstr "%d (%d ) ΥեԽޤ"
+
+msgid "No display: Send expression failed.\n"
+msgstr "ǥץ쥤ޤ: ˼Ԥޤ.\n"
+
+msgid ": Send expression failed.\n"
+msgstr ": ˼Ԥޤ.\n"
+
msgid "No marks set"
msgstr "ޡꤵƤޤ"
-#: ../mark.c:678
#, c-format
msgid "E283: No marks matching \"%s\""
msgstr "E283: \"%s\" ˳ޡޤ"
#. Highlight title
-#: ../mark.c:687
msgid ""
"\n"
"mark line col file/text"
@@ -3602,7 +3261,6 @@ msgstr ""
"mark ե/ƥ"
#. Highlight title
-#: ../mark.c:789
msgid ""
"\n"
" jump line col file/text"
@@ -3611,7 +3269,6 @@ msgstr ""
" jump ե/ƥ"
#. Highlight title
-#: ../mark.c:831
msgid ""
"\n"
"change line col text"
@@ -3619,7 +3276,6 @@ msgstr ""
"\n"
"ѹ ƥ"
-#: ../mark.c:1238
msgid ""
"\n"
"# File marks:\n"
@@ -3628,7 +3284,6 @@ msgstr ""
"# եޡ:\n"
#. Write the jumplist with -'
-#: ../mark.c:1271
msgid ""
"\n"
"# Jumplist (newest first):\n"
@@ -3636,7 +3291,6 @@ msgstr ""
"\n"
"# ץꥹ (Τ):\n"
-#: ../mark.c:1352
msgid ""
"\n"
"# History of marks within files (newest to oldest):\n"
@@ -3644,84 +3298,88 @@ msgstr ""
"\n"
"# եޡ (ΤŤ):\n"
-#: ../mark.c:1431
msgid "Missing '>'"
msgstr "'>' Ĥޤ"
-#: ../memfile.c:426
+msgid "E543: Not a valid codepage"
+msgstr "E543: ̵ʥɥڡǤ"
+
+msgid "E284: Cannot set IC values"
+msgstr "E284: ICͤǤޤ"
+
+msgid "E285: Failed to create input context"
+msgstr "E285: ץåȥƥȤκ˼Ԥޤ"
+
+msgid "E286: Failed to open input method"
+msgstr "E286: ץåȥ᥽åɤΥץ˼Ԥޤ"
+
+msgid "E287: Warning: Could not set destroy callback to IM"
+msgstr "E287: ٹ: IM˲ХåǤޤǤ"
+
+msgid "E288: input method doesn't support any style"
+msgstr "E288: ץåȥ᥽åɤϤɤʥ⥵ݡȤޤ"
+
+msgid "E289: input method doesn't support my preedit type"
+msgstr "E289: ץåȥ᥽åɤ my preedit type 򥵥ݡȤޤ"
+
msgid "E293: block was not locked"
msgstr "E293: ֥ååƤޤ"
-#: ../memfile.c:799
msgid "E294: Seek error in swap file read"
msgstr "E294: åץեɹ˥顼Ǥ"
-#: ../memfile.c:803
msgid "E295: Read error in swap file"
msgstr "E295: åץեɹߥ顼Ǥ"
-#: ../memfile.c:849
msgid "E296: Seek error in swap file write"
msgstr "E296: åץե߻˥顼Ǥ"
-#: ../memfile.c:865
msgid "E297: Write error in swap file"
msgstr "E297: åץեνߥ顼Ǥ"
-#: ../memfile.c:1036
msgid "E300: Swap file already exists (symlink attack?)"
msgstr "E300: åץե뤬¸ߤޤ (symlinkˤ빶?)"
-#: ../memline.c:318
msgid "E298: Didn't get block nr 0?"
msgstr "E298: ֥å 0 Ǥޤ?"
-#: ../memline.c:361
msgid "E298: Didn't get block nr 1?"
msgstr "E298: ֥å 1 Ǥޤ?"
-#: ../memline.c:377
msgid "E298: Didn't get block nr 2?"
msgstr "E298: ֥å 2 Ǥޤ?"
+msgid "E843: Error while updating swap file crypt"
+msgstr "E843: åץեΰŹ򹹿˥顼ȯޤ"
+
#. could not (re)open the swap file, what can we do????
-#: ../memline.c:465
msgid "E301: Oops, lost the swap file!!!"
msgstr "E301: ä, åץե뤬ޤ!!!"
-#: ../memline.c:477
msgid "E302: Could not rename swap file"
msgstr "E302: åץե̾Ѥޤ"
-#: ../memline.c:554
#, c-format
msgid "E303: Unable to open swap file for \"%s\", recovery impossible"
msgstr "E303: \"%s\" Υåץե򳫤ʤΤǥꥫХԲǽǤ"
-#: ../memline.c:666
msgid "E304: ml_upd_block0(): Didn't get block 0??"
msgstr "E304: ml_upd_block0(): ֥å 0 ǤޤǤ??"
-#. no swap files found
-#: ../memline.c:830
#, c-format
msgid "E305: No swap file found for %s"
msgstr "E305: %s ˤϥåץե뤬Ĥޤ"
-#: ../memline.c:839
msgid "Enter number of swap file to use (0 to quit): "
msgstr "Ѥ륹åץեֹϤƤ(0 ǽλ): "
-#: ../memline.c:879
#, c-format
msgid "E306: Cannot open %s"
msgstr "E306: %s 򳫤ޤ"
-#: ../memline.c:897
msgid "Unable to read block 0 from "
msgstr "֥å 0 ɹޤ "
-#: ../memline.c:900
msgid ""
"\n"
"Maybe no changes were made or Vim did not update the swap file."
@@ -3729,28 +3387,22 @@ msgstr ""
"\n"
"餯ѹƤʤVimåץե򹹿Ƥޤ."
-#: ../memline.c:909
msgid " cannot be used with this version of Vim.\n"
msgstr " VimΤΥСǤϻѤǤޤ.\n"
-#: ../memline.c:911
msgid "Use Vim version 3.0.\n"
msgstr "VimΥС3.0ѤƤ.\n"
-#: ../memline.c:916
#, c-format
msgid "E307: %s does not look like a Vim swap file"
msgstr "E307: %s VimΥåץեǤϤʤ褦Ǥ"
-#: ../memline.c:922
msgid " cannot be used on this computer.\n"
msgstr " Υԥ塼ǤϻѤǤޤ.\n"
-#: ../memline.c:924
msgid "The file was created on "
msgstr "ΥեϼξǺޤ "
-#: ../memline.c:928
msgid ""
",\n"
"or the file has been damaged."
@@ -3758,85 +3410,104 @@ msgstr ""
",\n"
"⤷ϥե뤬»Ƥޤ."
-#: ../memline.c:945
+#, c-format
+msgid ""
+"E833: %s is encrypted and this version of Vim does not support encryption"
+msgstr ""
+"E833: %s ϤΥСVimǥݡȤƤʤǰŹ沽Ƥޤ"
+
msgid " has been damaged (page size is smaller than minimum value).\n"
msgstr " »Ƥޤ (ڡǾͤ򲼲äƤޤ).\n"
-#: ../memline.c:974
#, c-format
msgid "Using swap file \"%s\""
msgstr "åץե \"%s\" "
-#: ../memline.c:980
#, c-format
msgid "Original file \"%s\""
msgstr "ܥե \"%s\""
-#: ../memline.c:995
msgid "E308: Warning: Original file may have been changed"
msgstr "E308: ٹ: ܥե뤬ѹƤޤ"
-#: ../memline.c:1061
+#, c-format
+msgid "Swap file is encrypted: \"%s\""
+msgstr "åץեϰŹ沽Ƥޤ: \"%s\""
+
+msgid ""
+"\n"
+"If you entered a new crypt key but did not write the text file,"
+msgstr ""
+"\n"
+"Ź業ϤȤ˥ƥȥե¸Ƥʤ,"
+
+msgid ""
+"\n"
+"enter the new crypt key."
+msgstr ""
+"\n"
+"Ź業ϤƤ."
+
+msgid ""
+"\n"
+"If you wrote the text file after changing the crypt key press enter"
+msgstr ""
+"\n"
+"Ź業ѤȤ˥ƥȥե¸, ƥȥե"
+
+msgid ""
+"\n"
+"to use the same key for text file and swap file"
+msgstr ""
+"\n"
+"åץեƱŹ業Ȥenter򲡤Ƥ."
+
#, c-format
msgid "E309: Unable to read block 1 from %s"
msgstr "E309: %s ֥å 1 ɹޤ"
-#: ../memline.c:1065
msgid "???MANY LINES MISSING"
msgstr "???¿ιԤƤޤ"
-#: ../memline.c:1076
msgid "???LINE COUNT WRONG"
msgstr "???ԿְäƤޤ"
-#: ../memline.c:1082
msgid "???EMPTY BLOCK"
msgstr "???֥åǤ"
-#: ../memline.c:1103
msgid "???LINES MISSING"
msgstr "???ԤƤޤ"
-#: ../memline.c:1128
#, c-format
msgid "E310: Block 1 ID wrong (%s not a .swp file?)"
msgstr "E310: ֥å 1 IDְäƤޤ(%s .swpեǤʤ?)"
-#: ../memline.c:1133
msgid "???BLOCK MISSING"
msgstr "???֥åޤ"
-#: ../memline.c:1147
msgid "??? from here until ???END lines may be messed up"
msgstr "??? ???END ޤǤιԤ˲Ƥ褦Ǥ"
-#: ../memline.c:1164
msgid "??? from here until ???END lines may have been inserted/deleted"
msgstr "??? ???END ޤǤιԤ줿褦Ǥ"
-#: ../memline.c:1181
msgid "???END"
msgstr "???END"
-#: ../memline.c:1238
msgid "E311: Recovery Interrupted"
msgstr "E311: ꥫХ꤬ޤޤ"
-#: ../memline.c:1243
msgid ""
"E312: Errors detected while recovering; look for lines starting with ???"
msgstr ""
"E312: ꥫХκ˥顼Фޤ; ???ǻϤޤԤ򻲾ȤƤ"
-#: ../memline.c:1245
msgid "See \":help E312\" for more information."
msgstr "ܺ٤ \":help E312\" 򻲾ȤƤ"
-#: ../memline.c:1249
msgid "Recovery completed. You should check if everything is OK."
msgstr "ꥫХ꤬λޤ. ƤåƤ."
-#: ../memline.c:1251
msgid ""
"\n"
"(You might want to write out this file under another name\n"
@@ -3844,15 +3515,12 @@ msgstr ""
"\n"
"(ѹå뤿, Υե̤̾¸\n"
-#: ../memline.c:1252
msgid "and run diff with the original file to check for changes)"
msgstr "ܥեȤ diff ¹ԤɤǤ礦)"
-#: ../memline.c:1254
msgid "Recovery completed. Buffer contents equals file contents."
msgstr "λ. ХåեƤϥեƱˤʤޤ."
-#: ../memline.c:1255
msgid ""
"\n"
"You may want to delete the .swp file now.\n"
@@ -3862,52 +3530,43 @@ msgstr ""
".swpեϺƤ⹽ޤ\n"
"\n"
+msgid "Using crypt key from swap file for the text file.\n"
+msgstr "åץե뤫Ź業ƥȥե˻Ȥޤ.\n"
+
#. use msg() to start the scrolling properly
-#: ../memline.c:1327
msgid "Swap files found:"
msgstr "åץե뤬ʣĤޤ:"
-#: ../memline.c:1446
msgid " In current directory:\n"
msgstr " ߤΥǥ쥯ȥ:\n"
-#: ../memline.c:1448
msgid " Using specified name:\n"
msgstr " ʲ̾:\n"
-#: ../memline.c:1450
msgid " In directory "
msgstr " ǥ쥯ȥ "
-#: ../memline.c:1465
msgid " -- none --\n"
msgstr " -- ʤ --\n"
-#: ../memline.c:1527
msgid " owned by: "
msgstr " ͭ: "
-#: ../memline.c:1529
msgid " dated: "
msgstr " : "
-#: ../memline.c:1532 ../memline.c:3231
msgid " dated: "
msgstr " : "
-#: ../memline.c:1548
msgid " [from Vim version 3.0]"
msgstr " [from Vim version 3.0]"
-#: ../memline.c:1550
msgid " [does not look like a Vim swap file]"
msgstr " [VimΥåץեǤϤʤ褦Ǥ]"
-#: ../memline.c:1552
msgid " file name: "
msgstr " ե̾: "
-#: ../memline.c:1558
msgid ""
"\n"
" modified: "
@@ -3915,15 +3574,12 @@ msgstr ""
"\n"
" ѹ: "
-#: ../memline.c:1559
msgid "YES"
msgstr ""
-#: ../memline.c:1559
msgid "no"
msgstr "ʤ"
-#: ../memline.c:1562
msgid ""
"\n"
" user name: "
@@ -3931,11 +3587,9 @@ msgstr ""
"\n"
" 桼̾: "
-#: ../memline.c:1568
msgid " host name: "
msgstr " ۥ̾: "
-#: ../memline.c:1570
msgid ""
"\n"
" host name: "
@@ -3943,7 +3597,6 @@ msgstr ""
"\n"
" ۥ̾: "
-#: ../memline.c:1575
msgid ""
"\n"
" process ID: "
@@ -3951,11 +3604,16 @@ msgstr ""
"\n"
" ץID: "
-#: ../memline.c:1579
msgid " (still running)"
msgstr " (ޤ¹)"
-#: ../memline.c:1586
+msgid ""
+"\n"
+" [not usable with this version of Vim]"
+msgstr ""
+"\n"
+" [VimСǤϻѤǤޤ]"
+
msgid ""
"\n"
" [not usable on this computer]"
@@ -3963,97 +3621,75 @@ msgstr ""
"\n"
" [Υԥ塼ǤϻѤǤޤ]"
-#: ../memline.c:1590
msgid " [cannot be read]"
msgstr " [ɹޤ]"
-#: ../memline.c:1593
msgid " [cannot be opened]"
msgstr " [ޤ]"
-#: ../memline.c:1698
msgid "E313: Cannot preserve, there is no swap file"
msgstr "E313: åץե뤬̵ΤǰݻǤޤ"
-#: ../memline.c:1747
msgid "File preserved"
msgstr "ե뤬ݻޤ"
-#: ../memline.c:1749
msgid "E314: Preserve failed"
msgstr "E314: ݻ˼Ԥޤ"
-#: ../memline.c:1819
#, c-format
-msgid "E315: ml_get: invalid lnum: %<PRId64>"
-msgstr "E315: ml_get: ̵lnumǤ: %<PRId64>"
+msgid "E315: ml_get: invalid lnum: %ld"
+msgstr "E315: ml_get: ̵lnumǤ: %ld"
-#: ../memline.c:1851
#, c-format
-msgid "E316: ml_get: cannot find line %<PRId64>"
-msgstr "E316: ml_get: %<PRId64> 򸫤Ĥޤ"
+msgid "E316: ml_get: cannot find line %ld"
+msgstr "E316: ml_get: %ld 򸫤Ĥޤ"
-#: ../memline.c:2236
msgid "E317: pointer block id wrong 3"
msgstr "E317: ݥ󥿥֥åIDְäƤޤ 3"
-#: ../memline.c:2311
msgid "stack_idx should be 0"
msgstr "stack_idx 0 Ǥ٤Ǥ"
-#: ../memline.c:2369
msgid "E318: Updated too many blocks?"
msgstr "E318: 줿֥å¿᤮뤫?"
-#: ../memline.c:2511
msgid "E317: pointer block id wrong 4"
msgstr "E317: ݥ󥿥֥åIDְäƤޤ 4"
-#: ../memline.c:2536
msgid "deleted block 1?"
msgstr "֥å 1 Ͼä줿?"
-#: ../memline.c:2707
#, c-format
-msgid "E320: Cannot find line %<PRId64>"
-msgstr "E320: %<PRId64> Ĥޤ"
+msgid "E320: Cannot find line %ld"
+msgstr "E320: %ld Ĥޤ"
-#: ../memline.c:2916
msgid "E317: pointer block id wrong"
msgstr "E317: ݥ󥿥֥åIDְäƤޤ"
-#: ../memline.c:2930
msgid "pe_line_count is zero"
msgstr "pe_line_count Ǥ"
-#: ../memline.c:2955
#, c-format
-msgid "E322: line number out of range: %<PRId64> past the end"
-msgstr "E322: ֹ椬ϰϳǤ: %<PRId64> ĶƤޤ"
+msgid "E322: line number out of range: %ld past the end"
+msgstr "E322: ֹ椬ϰϳǤ: %ld ĶƤޤ"
-#: ../memline.c:2959
#, c-format
-msgid "E323: line count wrong in block %<PRId64>"
-msgstr "E323: ֥å %<PRId64> ιԥȤְäƤޤ"
+msgid "E323: line count wrong in block %ld"
+msgstr "E323: ֥å %ld ιԥȤְäƤޤ"
-#: ../memline.c:2999
msgid "Stack size increases"
msgstr "åޤ"
-#: ../memline.c:3038
msgid "E317: pointer block id wrong 2"
msgstr "E317: ݥ󥿥֥åIDְäƤޤ 2"
-#: ../memline.c:3070
#, c-format
msgid "E773: Symlink loop for \"%s\""
msgstr "E773: \"%s\" Υܥå󥯤롼פˤʤäƤޤ"
-#: ../memline.c:3221
msgid "E325: ATTENTION"
msgstr "E325: "
-#: ../memline.c:3222
msgid ""
"\n"
"Found a swap file by the name \""
@@ -4061,39 +3697,32 @@ msgstr ""
"\n"
"̾ǥåץե򸫤Ĥޤ \""
-#: ../memline.c:3226
msgid "While opening file \""
msgstr "Υե򳫤Ƥ \""
-#: ../memline.c:3239
msgid " NEWER than swap file!\n"
msgstr " åץե⿷Ǥ!\n"
-#: ../memline.c:3244
+#. Some of these messages are long to allow translation to
+#. * other languages.
msgid ""
"\n"
"(1) Another program may be editing the same file. If this is the case,\n"
" be careful not to end up with two different instances of the same\n"
-" file when making changes."
+" file when making changes. Quit, or continue with caution.\n"
msgstr ""
"\n"
"(1) ̤ΥץबƱեԽƤ뤫⤷ޤ.\n"
" ξˤ, ѹ򤷤Ƥޤ1ĤΥեФưۤʤ2Ĥ\n"
-" 󥹥󥹤ǤƤޤΤ, ʤ褦˵ĤƤ."
-
-#: ../memline.c:3245
-msgid " Quit, or continue with caution.\n"
-msgstr " λ뤫, դʤ³Ƥ.\n"
+" 󥹥󥹤ǤƤޤΤ, ʤ褦˵ĤƤ.\n"
+" λ뤫, դʤ³Ƥ.\n"
-#: ../memline.c:3246
msgid "(2) An edit session for this file crashed.\n"
msgstr "(2) ΥեԽå󤬥å夷.\n"
-#: ../memline.c:3247
msgid " If this is the case, use \":recover\" or \"vim -r "
msgstr " ξˤ \":recover\" \"vim -r "
-#: ../memline.c:3249
msgid ""
"\"\n"
" to recover the changes (see \":help recovery\").\n"
@@ -4101,11 +3730,9 @@ msgstr ""
"\"\n"
" ѤѹꥫСޤ(\":help recovery\" 򻲾).\n"
-#: ../memline.c:3250
msgid " If you did this already, delete the swap file \""
msgstr " ˤԤʤäΤʤ, åץե \""
-#: ../memline.c:3252
msgid ""
"\"\n"
" to avoid this message.\n"
@@ -4113,23 +3740,18 @@ msgstr ""
"\"\n"
" äФΥåǤޤ.\n"
-#: ../memline.c:3450 ../memline.c:3452
msgid "Swap file \""
msgstr "åץե \""
-#: ../memline.c:3451 ../memline.c:3455
msgid "\" already exists!"
msgstr "\" ˤޤ!"
-#: ../memline.c:3457
msgid "VIM - ATTENTION"
msgstr "VIM - "
-#: ../memline.c:3459
msgid "Swap file already exists!"
msgstr "åץե뤬¸ߤޤ!"
-#: ../memline.c:3464
msgid ""
"&Open Read-Only\n"
"&Edit anyway\n"
@@ -4143,7 +3765,6 @@ msgstr ""
"λ(&Q)\n"
"ߤ(&A)"
-#: ../memline.c:3467
msgid ""
"&Open Read-Only\n"
"&Edit anyway\n"
@@ -4159,56 +3780,34 @@ msgstr ""
"λ(&Q)\n"
"ߤ(&A)"
-#.
-#. * Change the ".swp" extension to find another file that can be used.
-#. * First decrement the last char: ".swo", ".swn", etc.
-#. * If that still isn't enough decrement the last but one char: ".svz"
-#. * Can happen when editing many "No Name" buffers.
-#.
-#. ".s?a"
-#. ".saa": tried enough, give up
-#: ../memline.c:3528
msgid "E326: Too many swap files found"
msgstr "E326: åץե뤬¿Ĥޤ"
-#: ../memory.c:227
-#, c-format
-msgid "E342: Out of memory! (allocating %<PRIu64> bytes)"
-msgstr "E342: ꤬­ޤ! (%<PRIu64> ХȤ׵)"
-
-#: ../menu.c:62
msgid "E327: Part of menu-item path is not sub-menu"
msgstr "E327: ˥塼ƥΥѥʬ֥˥塼ǤϤޤ"
-#: ../menu.c:63
msgid "E328: Menu only exists in another mode"
msgstr "E328: ˥塼¾Υ⡼ɤˤޤ"
-#: ../menu.c:64
#, c-format
msgid "E329: No menu \"%s\""
msgstr "E329: \"%s\" Ȥ˥塼Ϥޤ"
#. Only a mnemonic or accelerator is not valid.
-#: ../menu.c:329
msgid "E792: Empty menu name"
msgstr "E792: ˥塼̾Ǥ"
-#: ../menu.c:340
msgid "E330: Menu path must not lead to a sub-menu"
msgstr "E330: ˥塼ѥϥ֥˥塼٤ǤϤޤ"
-#: ../menu.c:365
msgid "E331: Must not add menu items directly to menu bar"
msgstr "E331: ˥塼Сˤľܥ˥塼ƥɲäǤޤ"
-#: ../menu.c:370
msgid "E332: Separator cannot be part of a menu path"
msgstr "E332: ڤϥ˥塼ѥΰǤϤޤ"
#. Now we have found the matching menu, and we list the mappings
#. Highlight title
-#: ../menu.c:762
msgid ""
"\n"
"--- Menus ---"
@@ -4216,69 +3815,60 @@ msgstr ""
"\n"
"--- ˥塼 ---"
-#: ../menu.c:1313
+msgid "Tear off this menu"
+msgstr "Υ˥塼ڤ"
+
msgid "E333: Menu path must lead to a menu item"
msgstr "E333: ˥塼ѥϥ˥塼ƥʤФޤ"
-#: ../menu.c:1330
#, c-format
msgid "E334: Menu not found: %s"
msgstr "E334: ˥塼Ĥޤ: %s"
-#: ../menu.c:1396
#, c-format
msgid "E335: Menu not defined for %s mode"
msgstr "E335: %s ˤϥ˥塼Ƥޤ"
-#: ../menu.c:1426
msgid "E336: Menu path must lead to a sub-menu"
msgstr "E336: ˥塼ѥϥ֥˥塼ʤФޤ"
-#: ../menu.c:1447
msgid "E337: Menu not found - check menu names"
msgstr "E337: ˥塼Ĥޤ - ˥塼̾ǧƤ"
-#: ../message.c:423
#, c-format
msgid "Error detected while processing %s:"
msgstr "%s ν˥顼Фޤ:"
-#: ../message.c:445
#, c-format
msgid "line %4ld:"
msgstr " %4ld:"
-#: ../message.c:617
#, c-format
msgid "E354: Invalid register name: '%s'"
msgstr "E354: ̵ʥ쥸̾: '%s'"
-#: ../message.c:986
+msgid "Messages maintainer: Bram Moolenaar <Bram@vim.org>"
+msgstr "ܸå/ƽ: ¼ Ϻ <koron.kaoriya@gmail.com>"
+
msgid "Interrupt: "
msgstr ": "
-#: ../message.c:988
msgid "Press ENTER or type command to continue"
msgstr "³ˤENTER򲡤ޥɤϤƤ"
-#: ../message.c:1843
#, c-format
-msgid "%s line %<PRId64>"
-msgstr "%s %<PRId64>"
+msgid "%s line %ld"
+msgstr "%s %ld"
-#: ../message.c:2392
msgid "-- More --"
msgstr "-- ³ --"
-#: ../message.c:2398
msgid " SPACE/d/j: screen/page/line down, b/u/k: up, q: quit "
msgstr " SPACE/d/j: /ڡ/ , b/u/k: , q: λ "
-#: ../message.c:3021 ../message.c:3031
msgid "Question"
msgstr ""
-#: ../message.c:3023
msgid ""
"&Yes\n"
"&No"
@@ -4286,17 +3876,6 @@ msgstr ""
"Ϥ(&Y)\n"
"(&N)"
-#: ../message.c:3033
-msgid ""
-"&Yes\n"
-"&No\n"
-"&Cancel"
-msgstr ""
-"Ϥ(&Y)\n"
-"(&N)\n"
-"󥻥(&C)"
-
-#: ../message.c:3045
msgid ""
"&Yes\n"
"&No\n"
@@ -4310,175 +3889,247 @@ msgstr ""
"(&D)\n"
"󥻥(&C)"
-#: ../message.c:3058
+msgid "Select Directory dialog"
+msgstr "ǥ쥯ȥ"
+
+msgid "Save File dialog"
+msgstr "ե¸"
+
+msgid "Open File dialog"
+msgstr "եɹ"
+
+#. TODO: non-GUI file selector here
+msgid "E338: Sorry, no file browser in console mode"
+msgstr "E338: 󥽡⡼ɤǤϥե֥饦Ȥޤ, ʤ"
+
msgid "E766: Insufficient arguments for printf()"
msgstr "E766: printf() ΰԽʬǤ"
-#: ../message.c:3119
msgid "E807: Expected Float argument for printf()"
msgstr "E807: printf() ΰˤưԤƤޤ"
-#: ../message.c:3873
msgid "E767: Too many arguments to printf()"
msgstr "E767: printf() ΰ¿᤮ޤ"
-#: ../misc1.c:2256
msgid "W10: Warning: Changing a readonly file"
msgstr "W10: ٹ: ɹѥեѹޤ"
-#: ../misc1.c:2537
msgid "Type number and <Enter> or click with mouse (empty cancels): "
msgstr ""
"ֹ<Enter>Ϥ뤫ޥǥåƤ (ǥ󥻥): "
-#: ../misc1.c:2539
msgid "Type number and <Enter> (empty cancels): "
msgstr "ֹ<Enter>ϤƤ (ǥ󥻥): "
-#: ../misc1.c:2585
msgid "1 more line"
msgstr "1 ɲäޤ"
-#: ../misc1.c:2588
msgid "1 line less"
msgstr "1 ޤ"
-#: ../misc1.c:2593
#, c-format
-msgid "%<PRId64> more lines"
-msgstr "%<PRId64> ɲäޤ"
+msgid "%ld more lines"
+msgstr "%ld ɲäޤ"
-#: ../misc1.c:2596
#, c-format
-msgid "%<PRId64> fewer lines"
-msgstr "%<PRId64> ޤ"
+msgid "%ld fewer lines"
+msgstr "%ld ޤ"
-#: ../misc1.c:2599
msgid " (Interrupted)"
msgstr " (ޤޤ)"
-#: ../misc1.c:2635
msgid "Beep!"
msgstr "ӡ!"
-#: ../misc2.c:738
+msgid "ERROR: "
+msgstr "顼: "
+
+#, c-format
+msgid ""
+"\n"
+"[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu\n"
+msgstr ""
+"\n"
+"[(Х)] - %lu-%lu, %lu, ԡ %lu\n"
+
+#, c-format
+msgid ""
+"[calls] total re/malloc()'s %lu, total free()'s %lu\n"
+"\n"
+msgstr ""
+"[ƽ] re/malloc() %lu, free() %lu\n"
+"\n"
+
+msgid "E340: Line is becoming too long"
+msgstr "E340: ԤĹʤ᤮ޤ"
+
+#, c-format
+msgid "E341: Internal error: lalloc(%ld, )"
+msgstr "E341: 顼: lalloc(%ld,)"
+
+#, c-format
+msgid "E342: Out of memory! (allocating %lu bytes)"
+msgstr "E342: ꤬­ޤ! (%lu ХȤ׵)"
+
#, c-format
msgid "Calling shell to execute: \"%s\""
msgstr "¹ԤΤ˥ƽФ: \"%s\""
-#: ../normal.c:183
+msgid "E545: Missing colon"
+msgstr "E545: 󤬤ޤ"
+
+msgid "E546: Illegal mode"
+msgstr "E546: ʥ⡼ɤǤ"
+
+msgid "E547: Illegal mouseshape"
+msgstr "E547: 'mouseshape' Ǥ"
+
+msgid "E548: digit expected"
+msgstr "E548: ͤɬפǤ"
+
+msgid "E549: Illegal percentage"
+msgstr "E549: ʥѡơǤ"
+
+msgid "E854: path too long for completion"
+msgstr "E854: ѥĹ᤮䴰Ǥޤ"
+
+#, c-format
+msgid ""
+"E343: Invalid path: '**[number]' must be at the end of the path or be "
+"followed by '%s'."
+msgstr ""
+"E343: ̵ʥѥǤ: '**[]' pathκǸ夫 '%s' ³ƤʤȤޤ"
+"."
+
+#, c-format
+msgid "E344: Can't find directory \"%s\" in cdpath"
+msgstr "E344: cdpathˤ \"%s\" Ȥե뤬ޤ"
+
+#, c-format
+msgid "E345: Can't find file \"%s\" in path"
+msgstr "E345: pathˤ \"%s\" Ȥե뤬ޤ"
+
+#, c-format
+msgid "E346: No more directory \"%s\" found in cdpath"
+msgstr "E346: cdpathˤϤʾ \"%s\" Ȥե뤬ޤ"
+
+#, c-format
+msgid "E347: No more file \"%s\" found in path"
+msgstr "E347: ѥˤϤʾ \"%s\" Ȥե뤬ޤ"
+
+#, c-format
+msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
+msgstr ""
+"E668: NetBeans³եΥ⡼ɤ꤬ޤ: \"%s\""
+
+#, c-format
+msgid "E658: NetBeans connection lost for buffer %ld"
+msgstr "E658: Хåե %ld NetBeans ³ޤ"
+
+msgid "E838: netbeans is not supported with this GUI"
+msgstr "E838: NetBeansϤGUIˤбƤޤ"
+
+msgid "E511: netbeans already connected"
+msgstr "E511: NetBeansϴ³Ƥޤ"
+
+#, c-format
+msgid "E505: %s is read-only (add ! to override)"
+msgstr "E505: %s ɹѤǤ (ˤ ! ɲ)"
+
msgid "E349: No identifier under cursor"
msgstr "E349: ΰ֤ˤϼ̻Ҥޤ"
-#: ../normal.c:1866
msgid "E774: 'operatorfunc' is empty"
msgstr "E774: 'operatorfunc' ץ󤬶Ǥ"
-#: ../normal.c:2637
+msgid "E775: Eval feature not available"
+msgstr "E775: ɾǽ̵ˤʤäƤޤ"
+
msgid "Warning: terminal cannot highlight"
msgstr "ٹ: ѤƤüϥϥ饤ȤǤޤ"
-#: ../normal.c:2807
msgid "E348: No string under cursor"
msgstr "E348: ΰ֤ˤʸ󤬤ޤ"
-#: ../normal.c:3937
msgid "E352: Cannot erase folds with current 'foldmethod'"
msgstr "E352: ߤ 'foldmethod' Ǥ޾ߤõǤޤ"
-#: ../normal.c:5897
msgid "E664: changelist is empty"
msgstr "E664: ѹꥹȤǤ"
-#: ../normal.c:5899
msgid "E662: At start of changelist"
msgstr "E662: ѹꥹȤƬ"
-#: ../normal.c:5901
msgid "E663: At end of changelist"
msgstr "E663: ѹꥹȤ"
-#: ../normal.c:7053
-msgid "Type :quit<Enter> to exit Nvim"
+msgid "Type :quit<Enter> to exit Vim"
msgstr "Vimλˤ :quit<Enter> ϤƤ"
-#: ../ops.c:248
#, c-format
msgid "1 line %sed 1 time"
msgstr "1 Ԥ %s 1 ޤ"
-#: ../ops.c:250
#, c-format
msgid "1 line %sed %d times"
msgstr "1 Ԥ %s %d ޤ"
-#: ../ops.c:253
#, c-format
-msgid "%<PRId64> lines %sed 1 time"
-msgstr "%<PRId64> Ԥ %s 1 ޤ"
+msgid "%ld lines %sed 1 time"
+msgstr "%ld Ԥ %s 1 ޤ"
-#: ../ops.c:256
#, c-format
-msgid "%<PRId64> lines %sed %d times"
-msgstr "%<PRId64> Ԥ %s %d ޤ"
+msgid "%ld lines %sed %d times"
+msgstr "%ld Ԥ %s %d ޤ"
-#: ../ops.c:592
#, c-format
-msgid "%<PRId64> lines to indent... "
-msgstr "%<PRId64> ԤǥȤޤ... "
+msgid "%ld lines to indent... "
+msgstr "%ld ԤǥȤޤ... "
-#: ../ops.c:634
msgid "1 line indented "
msgstr "1 Ԥ򥤥ǥȤޤ "
-#: ../ops.c:636
#, c-format
-msgid "%<PRId64> lines indented "
-msgstr "%<PRId64> Ԥ򥤥ǥȤޤ "
+msgid "%ld lines indented "
+msgstr "%ld Ԥ򥤥ǥȤޤ "
-#: ../ops.c:938
msgid "E748: No previously used register"
msgstr "E748: ޤ쥸ѤƤޤ"
#. must display the prompt
-#: ../ops.c:1433
msgid "cannot yank; delete anyway"
msgstr "󥯤Ǥޤ; Ȥˤõ"
-#: ../ops.c:1929
msgid "1 line changed"
msgstr "1 Ԥѹޤ"
-#: ../ops.c:1931
#, c-format
-msgid "%<PRId64> lines changed"
-msgstr "%<PRId64> Ԥѹޤ"
+msgid "%ld lines changed"
+msgstr "%ld Ԥѹޤ"
+
+#, c-format
+msgid "freeing %ld lines"
+msgstr "%ld Ԥ"
-#: ../ops.c:2521
msgid "block of 1 line yanked"
msgstr "1 ԤΥ֥å󥯤ޤ"
-#: ../ops.c:2523
msgid "1 line yanked"
msgstr "1 Ԥ󥯤ޤ"
-#: ../ops.c:2525
#, c-format
-msgid "block of %<PRId64> lines yanked"
-msgstr "%<PRId64> ԤΥ֥å󥯤ޤ"
+msgid "block of %ld lines yanked"
+msgstr "%ld ԤΥ֥å󥯤ޤ"
-#: ../ops.c:2528
#, c-format
-msgid "%<PRId64> lines yanked"
-msgstr "%<PRId64> Ԥ󥯤ޤ"
+msgid "%ld lines yanked"
+msgstr "%ld Ԥ󥯤ޤ"
-#: ../ops.c:2710
#, c-format
msgid "E353: Nothing in register %s"
msgstr "E353: 쥸 %s ˤϲ⤢ޤ"
#. Highlight title
-#: ../ops.c:3185
msgid ""
"\n"
"--- Registers ---"
@@ -4486,11 +4137,9 @@ msgstr ""
"\n"
"--- 쥸 ---"
-#: ../ops.c:4455
msgid "Illegal register name"
msgstr "ʥ쥸̾"
-#: ../ops.c:4533
msgid ""
"\n"
"# Registers:\n"
@@ -4498,7 +4147,6 @@ msgstr ""
"\n"
"# 쥸:\n"
-#: ../ops.c:4575
#, c-format
msgid "E574: Unknown register type %d"
msgstr "E574: ̤ΤΥ쥸 %d Ǥ"
@@ -4508,86 +4156,61 @@ msgid ""
"lines"
msgstr "E883: ѥȼ쥸ˤ2԰ʾޤޤ"
-#: ../ops.c:5089
#, c-format
-msgid "%<PRId64> Cols; "
-msgstr "%<PRId64> ; "
+msgid "%ld Cols; "
+msgstr "%ld ; "
-#: ../ops.c:5097
#, c-format
-msgid ""
-"Selected %s%<PRId64> of %<PRId64> Lines; %<PRId64> of %<PRId64> Words; "
-"%<PRId64> of %<PRId64> Bytes"
-msgstr ""
-" %s%<PRId64> / %<PRId64> ; %<PRId64> / %<PRId64> ñ; %<PRId64> / "
-"%<PRId64> Х"
+msgid "Selected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Bytes"
+msgstr " %s%ld / %ld ; %lld / %lld ñ; %lld / %lld Х"
-#: ../ops.c:5105
#, c-format
msgid ""
-"Selected %s%<PRId64> of %<PRId64> Lines; %<PRId64> of %<PRId64> Words; "
-"%<PRId64> of %<PRId64> Chars; %<PRId64> of %<PRId64> Bytes"
+"Selected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Chars; %lld of "
+"%lld Bytes"
msgstr ""
-" %s%<PRId64> / %<PRId64> ; %<PRId64> / %<PRId64> ñ; %<PRId64> / "
-"%<PRId64> ʸ; %<PRId64> / %<PRId64> Х"
+" %s%ld / %ld ; %lld / %lld ñ; %lld / %lld ʸ; %lld / %lld Х"
-#: ../ops.c:5123
#, c-format
-msgid ""
-"Col %s of %s; Line %<PRId64> of %<PRId64>; Word %<PRId64> of %<PRId64>; Byte "
-"%<PRId64> of %<PRId64>"
-msgstr ""
-" %s / %s; %<PRId64> of %<PRId64>; ñ %<PRId64> / %<PRId64>; Х "
-"%<PRId64> / %<PRId64>"
+msgid "Col %s of %s; Line %ld of %ld; Word %lld of %lld; Byte %lld of %lld"
+msgstr " %s / %s; %ld of %ld; ñ %lld / %lld; Х %lld / %lld"
-#: ../ops.c:5133
#, c-format
msgid ""
-"Col %s of %s; Line %<PRId64> of %<PRId64>; Word %<PRId64> of %<PRId64>; Char "
-"%<PRId64> of %<PRId64>; Byte %<PRId64> of %<PRId64>"
+"Col %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte "
+"%lld of %lld"
msgstr ""
-" %s / %s; %<PRId64> / %<PRId64>; ñ %<PRId64> / %<PRId64>; ʸ "
-"%<PRId64> / %<PRId64>; Х %<PRId64> of %<PRId64>"
+" %s / %s; %ld / %ld; ñ %lld / %lld; ʸ %lld / %lld; Х %lld of "
+"%lld"
-#: ../ops.c:5146
#, c-format
-msgid "(+%<PRId64> for BOM)"
-msgstr "(+%<PRId64> for BOM)"
+msgid "(+%ld for BOM)"
+msgstr "(+%ld for BOM)"
-#: ../option.c:1238
msgid "%<%f%h%m%=Page %N"
msgstr "%<%f%h%m%=%N ڡ"
-#: ../option.c:1574
msgid "Thanks for flying Vim"
msgstr "Vim ȤäƤƤ꤬Ȥ"
-#. found a mismatch: skip
-#: ../option.c:2698
msgid "E518: Unknown option"
msgstr "E518: ̤ΤΥץǤ"
-#: ../option.c:2709
msgid "E519: Option not supported"
msgstr "E519: ץϥݡȤƤޤ"
-#: ../option.c:2740
msgid "E520: Not allowed in a modeline"
msgstr "E520: modeline ǤϵĤޤ"
-#: ../option.c:2815
msgid "E846: Key code not set"
msgstr "E846: ɤꤵƤޤ"
-#: ../option.c:2924
msgid "E521: Number required after ="
msgstr "E521: = θˤϿɬפǤ"
-#: ../option.c:3226 ../option.c:3864
msgid "E522: Not found in termcap"
msgstr "E522: termcap ˸Ĥޤ"
-#: ../option.c:3335
#, c-format
msgid "E539: Illegal character <%s>"
msgstr "E539: ʸǤ <%s>"
@@ -4596,93 +4219,99 @@ msgstr "E539: ʸǤ <%s>"
msgid "For option %s"
msgstr "ץ: %s"
-#: ../option.c:3862
msgid "E529: Cannot set 'term' to empty string"
msgstr "E529: 'term' ˤ϶ʸǤޤ"
-#: ../option.c:3885
+msgid "E530: Cannot change term in GUI"
+msgstr "E530: GUIǤ 'term' ѹǤޤ"
+
+msgid "E531: Use \":gui\" to start the GUI"
+msgstr "E531: GUI򥹥Ȥˤ \":gui\" ѤƤ"
+
msgid "E589: 'backupext' and 'patchmode' are equal"
msgstr "E589: 'backupext' 'patchmode' ƱǤ"
-#: ../option.c:3964
msgid "E834: Conflicts with value of 'listchars'"
msgstr "E834: 'listchars'̷ͤ⤬ޤ"
-#: ../option.c:3966
msgid "E835: Conflicts with value of 'fillchars'"
msgstr "E835: 'fillchars'̷ͤ⤬ޤ"
-#: ../option.c:4163
+msgid "E617: Cannot be changed in the GTK+ 2 GUI"
+msgstr "E617: GTK+2 GUIǤѹǤޤ"
+
msgid "E524: Missing colon"
msgstr "E524: 󤬤ޤ"
-#: ../option.c:4165
msgid "E525: Zero length string"
msgstr "E525: ʸĹǤ"
-#: ../option.c:4220
#, c-format
msgid "E526: Missing number after <%s>"
msgstr "E526: <%s> θ˿ޤ"
-#: ../option.c:4232
msgid "E527: Missing comma"
msgstr "E527: ޤޤ"
-#: ../option.c:4239
msgid "E528: Must specify a ' value"
msgstr "E528: ' ͤꤷʤФʤޤ"
-#: ../option.c:4271
msgid "E595: contains unprintable or wide character"
msgstr "E595: ɽǤʤʸ磻ʸޤǤޤ"
-#: ../option.c:4469
+msgid "E596: Invalid font(s)"
+msgstr "E596: ̵ʥեȤǤ"
+
+msgid "E597: can't select fontset"
+msgstr "E597: եȥåȤǤޤ"
+
+msgid "E598: Invalid fontset"
+msgstr "E598: ̵ʥեȥåȤǤ"
+
+msgid "E533: can't select wide font"
+msgstr "E533: 磻ɥեȤǤޤ"
+
+msgid "E534: Invalid wide font"
+msgstr "E534: ̵ʥ磻ɥեȤǤ"
+
#, c-format
msgid "E535: Illegal character after <%c>"
msgstr "E535: <%c> θʸޤ"
-#: ../option.c:4534
msgid "E536: comma required"
msgstr "E536: ޤɬפǤ"
-#: ../option.c:4543
#, c-format
msgid "E537: 'commentstring' must be empty or contain %s"
msgstr "E537: 'commentstring' ϶Ǥ뤫 %s ޤɬפޤ"
-#: ../option.c:4928
+msgid "E538: No mouse support"
+msgstr "E538: ޥϥݡȤޤ"
+
msgid "E540: Unclosed expression sequence"
msgstr "E540: λƤޤ"
-#: ../option.c:4932
msgid "E541: too many items"
msgstr "E541: Ǥ¿᤮ޤ"
-#: ../option.c:4934
msgid "E542: unbalanced groups"
msgstr "E542: 롼פ礤ޤ"
-#: ../option.c:5148
msgid "E590: A preview window already exists"
msgstr "E590: ץӥ塼ɥ¸ߤޤ"
-#: ../option.c:5311
msgid "W17: Arabic requires UTF-8, do ':set encoding=utf-8'"
msgstr ""
"W17: ӥʸˤUTF-8ɬפʤΤ, ':set encoding=utf-8' Ƥ"
-#: ../option.c:5623
#, c-format
msgid "E593: Need at least %d lines"
msgstr "E593: %d ιԿɬפǤ"
-#: ../option.c:5631
#, c-format
msgid "E594: Need at least %d columns"
msgstr "E594: %d ΥɬפǤ"
-#: ../option.c:6011
#, c-format
msgid "E355: Unknown option: %s"
msgstr "E355: ̤ΤΥץǤ: %s"
@@ -4690,12 +4319,10 @@ msgstr "E355: ̤ΤΥץǤ: %s"
#. There's another character after zeros or the string
#. * is empty. In both cases, we are trying to set a
#. * num option using a string.
-#: ../option.c:6037
#, c-format
msgid "E521: Number required: &%s = '%s'"
msgstr "E521: ɬפǤ: &%s = '%s'"
-#: ../option.c:6149
msgid ""
"\n"
"--- Terminal codes ---"
@@ -4703,7 +4330,6 @@ msgstr ""
"\n"
"--- ü ---"
-#: ../option.c:6151
msgid ""
"\n"
"--- Global option values ---"
@@ -4711,7 +4337,6 @@ msgstr ""
"\n"
"--- Х륪ץ ---"
-#: ../option.c:6153
msgid ""
"\n"
"--- Local option values ---"
@@ -4719,7 +4344,6 @@ msgstr ""
"\n"
"--- 륪ץ ---"
-#: ../option.c:6155
msgid ""
"\n"
"--- Options ---"
@@ -4727,37 +4351,119 @@ msgstr ""
"\n"
"--- ץ ---"
-#: ../option.c:6816
msgid "E356: get_varp ERROR"
msgstr "E356: get_varp 顼"
-#: ../option.c:7696
#, c-format
msgid "E357: 'langmap': Matching character missing for %s"
msgstr "E357: 'langmap': %s бʸޤ"
-#: ../option.c:7715
#, c-format
msgid "E358: 'langmap': Extra characters after semicolon: %s"
msgstr "E358: 'langmap': ߥθ;ʬʸޤ: %s"
-#: ../os/shell.c:194
-msgid ""
-"\n"
-"Cannot execute shell "
-msgstr ""
-"\n"
-"¹ԤǤޤ "
+msgid "cannot open "
+msgstr "ޤ "
+
+msgid "VIM: Can't open window!\n"
+msgstr "VIM: ɥ򳫤ޤ!\n"
+
+msgid "Need Amigados version 2.04 or later\n"
+msgstr "AmigadosΥС 2.04ʹߤɬפǤ\n"
+
+#, c-format
+msgid "Need %s version %ld\n"
+msgstr "%s ΥС %ld ɬפǤ\n"
+
+msgid "Cannot open NIL:\n"
+msgstr "NIL򳫤ޤ:\n"
+
+msgid "Cannot create "
+msgstr "Ǥޤ "
+
+#, c-format
+msgid "Vim exiting with %d\n"
+msgstr "Vim %d ǽλޤ\n"
+
+msgid "cannot change console mode ?!\n"
+msgstr "󥽡⡼ɤѹǤޤ?!\n"
+
+msgid "mch_get_shellsize: not a console??\n"
+msgstr "mch_get_shellsize: 󥽡ǤϤʤ??\n"
+
+#. if Vim opened a window: Executing a shell may cause crashes
+msgid "E360: Cannot execute shell with -f option"
+msgstr "E360: -f ץǥ¹ԤǤޤ"
+
+msgid "Cannot execute "
+msgstr "¹ԤǤޤ "
+
+msgid "shell "
+msgstr " "
+
+msgid " returned\n"
+msgstr " ޤ\n"
+
+msgid "ANCHOR_BUF_SIZE too small."
+msgstr "ANCHOR_BUF_SIZE ᤮ޤ."
+
+msgid "I/O ERROR"
+msgstr "ϥ顼"
+
+msgid "Message"
+msgstr "å"
+
+msgid "'columns' is not 80, cannot execute external commands"
+msgstr "'columns' 80 ǤϤʤᡢޥɤ¹ԤǤޤ"
+
+msgid "E237: Printer selection failed"
+msgstr "E237: ץ󥿤˼Ԥޤ"
+
+#, c-format
+msgid "to %s on %s"
+msgstr "%s (%s )"
+
+#, c-format
+msgid "E613: Unknown printer font: %s"
+msgstr "E613: ̤ΤΥץ󥿥ץǤ: %s"
+
+#, c-format
+msgid "E238: Print error: %s"
+msgstr "E238: 顼: %s"
+
+#, c-format
+msgid "Printing '%s'"
+msgstr "Ƥޤ: '%s'"
+
+#, c-format
+msgid "E244: Illegal charset name \"%s\" in font name \"%s\""
+msgstr "E244: ʸå̾ \"%s\" Ǥ (ե̾ \"%s\")"
+
+#, c-format
+msgid "E244: Illegal quality name \"%s\" in font name \"%s\""
+msgstr "E244: ʼ̾ \"%s\" Ǥ (ե̾ \"%s\")"
+
+#, c-format
+msgid "E245: Illegal char '%c' in font name \"%s\""
+msgstr "E245: '%c' ʸǤ (ե̾ \"%s\")"
+
+#, c-format
+msgid "Opening the X display took %ld msec"
+msgstr "XСؤ³ %ld ߥäޤ"
-#: ../os/shell.c:439
msgid ""
"\n"
-"shell returned "
+"Vim: Got X error\n"
msgstr ""
"\n"
-"뤬֤ͤޤ "
+"Vim: X Υ顼򸡽Фޤr\n"
+
+msgid "Testing the X display failed"
+msgstr "X display Υå˼Ԥޤ"
+
+msgid "Opening the X display timed out"
+msgstr "X display open ॢȤޤ"
-#: ../os_unix.c:465 ../os_unix.c:471
msgid ""
"\n"
"Could not get security context for "
@@ -4765,7 +4471,6 @@ msgstr ""
"\n"
"ƥƥȤǤޤ "
-#: ../os_unix.c:479
msgid ""
"\n"
"Could not set security context for "
@@ -4781,223 +4486,293 @@ msgstr "ƥƥ %s %s Ǥޤ"
msgid "Could not get security context %s for %s. Removing it!"
msgstr "ƥƥ %s %s Ǥޤ. ޤ!"
-#: ../os_unix.c:1558 ../os_unix.c:1647
+msgid ""
+"\n"
+"Cannot execute shell sh\n"
+msgstr ""
+"\n"
+"sh ¹ԤǤޤ\n"
+
+msgid ""
+"\n"
+"shell returned "
+msgstr ""
+"\n"
+"뤬֤ͤޤ "
+
+msgid ""
+"\n"
+"Cannot create pipes\n"
+msgstr ""
+"\n"
+"ѥפǤޤ\n"
+
+msgid ""
+"\n"
+"Cannot fork\n"
+msgstr ""
+"\n"
+"fork Ǥޤ\n"
+
+msgid ""
+"\n"
+"Cannot execute shell "
+msgstr ""
+"\n"
+"¹ԤǤޤ "
+
+msgid ""
+"\n"
+"Command terminated\n"
+msgstr ""
+"\n"
+"ޥɤǤޤ\n"
+
+msgid "XSMP lost ICE connection"
+msgstr "XSMP ICE³򼺤ޤ"
+
#, c-format
msgid "dlerror = \"%s\""
msgstr "dlerror = \"%s\""
-#: ../path.c:1449
+msgid "Opening the X display failed"
+msgstr "X display open ˼Ԥޤ"
+
+msgid "XSMP handling save-yourself request"
+msgstr "XSMP save-yourself׵Ƥޤ"
+
+msgid "XSMP opening connection"
+msgstr "XSMP ³򳫻ϤƤޤ"
+
+msgid "XSMP ICE connection watch failed"
+msgstr "XSMP ICE³Ԥ褦Ǥ"
+
#, c-format
-msgid "E447: Can't find file \"%s\" in path"
-msgstr "E447: pathˤ \"%s\" Ȥե뤬ޤ"
+msgid "XSMP SmcOpenConnection failed: %s"
+msgstr "XSMP SmcOpenConnectionԤޤ: %s"
+
+msgid "At line"
+msgstr ""
+
+msgid "Could not load vim32.dll!"
+msgstr "vim32.dll ɤǤޤǤ"
+
+msgid "VIM Error"
+msgstr "VIM顼"
+
+msgid "Could not fix up function pointers to the DLL!"
+msgstr "DLLؿݥ󥿤ǤޤǤ"
+
+#, c-format
+msgid "Vim: Caught %s event\n"
+msgstr "Vim: ٥ %s \n"
+
+msgid "close"
+msgstr "Ĥ"
+
+msgid "logoff"
+msgstr ""
+
+msgid "shutdown"
+msgstr "åȥ"
+
+msgid "E371: Command not found"
+msgstr "E371: ޥɤޤ"
+
+msgid ""
+"VIMRUN.EXE not found in your $PATH.\n"
+"External commands will not pause after completion.\n"
+"See :help win32-vimrun for more information."
+msgstr ""
+"VIMRUN.EXE $PATH ˸Ĥޤ.\n"
+"ޥɤνλ˰ߤ򤷤ޤ.\n"
+"ܺ٤ :help win32-vimrun 򻲾ȤƤ."
+
+msgid "Vim Warning"
+msgstr "Vimηٹ"
+
+#, c-format
+msgid "shell returned %d"
+msgstr "뤬 %d ǽλޤ"
-#: ../quickfix.c:359
#, c-format
msgid "E372: Too many %%%c in format string"
msgstr "E372: եޥåʸ %%%c ¿᤮ޤ"
-#: ../quickfix.c:371
#, c-format
msgid "E373: Unexpected %%%c in format string"
msgstr "E373: եޥåʸͽ %%%c ޤ"
-#: ../quickfix.c:420
msgid "E374: Missing ] in format string"
msgstr "E374: եޥåʸ ] ޤ"
-#: ../quickfix.c:431
#, c-format
msgid "E375: Unsupported %%%c in format string"
msgstr "E375: եޥåʸǤ %%%c ϥݡȤޤ"
-#: ../quickfix.c:448
#, c-format
msgid "E376: Invalid %%%c in format string prefix"
msgstr "E376: եޥåʸ̵֤ %%%c ޤ"
-#: ../quickfix.c:454
#, c-format
msgid "E377: Invalid %%%c in format string"
msgstr "E377: եޥåʸ̵ %%%c ޤ"
#. nothing found
-#: ../quickfix.c:477
msgid "E378: 'errorformat' contains no pattern"
msgstr "E378: 'errorformat' ˥ѥ󤬻ꤵƤޤ"
-#: ../quickfix.c:695
msgid "E379: Missing or empty directory name"
msgstr "E379: ǥ쥯ȥ̵̾Ǥ"
-#: ../quickfix.c:1305
msgid "E553: No more items"
msgstr "E553: Ǥ⤦ޤ"
-#: ../quickfix.c:1674
+msgid "E924: Current window was closed"
+msgstr "E924: ߤΥɥĤޤ"
+
+msgid "E925: Current quickfix was changed"
+msgstr "E925: ߤ quickfix ѹޤ"
+
+msgid "E926: Current location list was changed"
+msgstr "E926: ߤΥꥹȤѹޤ"
+
#, c-format
msgid "(%d of %d)%s%s: "
msgstr "(%d of %d)%s%s: "
-#: ../quickfix.c:1676
msgid " (line deleted)"
msgstr " (Ԥޤ)"
-#: ../quickfix.c:1863
+#, c-format
+msgid "%serror list %d of %d; %d errors "
+msgstr "%s 顼 %d of %d; %d ĥ顼"
+
msgid "E380: At bottom of quickfix stack"
msgstr "E380: quickfix åǤ"
-#: ../quickfix.c:1869
msgid "E381: At top of quickfix stack"
msgstr "E381: quickfix åƬǤ"
-#: ../quickfix.c:1880
-#, c-format
-msgid "error list %d of %d; %d errors"
-msgstr "顼 %d of %d; %d ĥ顼"
+msgid "No entries"
+msgstr "ȥ꤬ޤ"
-#: ../quickfix.c:2427
msgid "E382: Cannot write, 'buftype' option is set"
msgstr "E382: 'buftype' ץꤵƤΤǽߤޤ"
-#: ../quickfix.c:2812
+msgid "Error file"
+msgstr "顼ե"
+
msgid "E683: File name missing or invalid pattern"
msgstr "E683: ե̵̵̾ʥѥǤ"
-#: ../quickfix.c:2911
#, c-format
msgid "Cannot open file \"%s\""
msgstr "ե \"%s\" 򳫤ޤ"
-#: ../quickfix.c:3429
msgid "E681: Buffer is not loaded"
msgstr "E681: Хåեɤ߹ޤޤǤ"
-#: ../quickfix.c:3487
msgid "E777: String or List expected"
msgstr "E777: ʸ󤫥ꥹȤɬפǤ"
-#: ../regexp.c:359
#, c-format
msgid "E369: invalid item in %s%%[]"
msgstr "E369: ̵ʹܤǤ: %s%%[]"
#
-#: ../regexp.c:374
#, c-format
msgid "E769: Missing ] after %s["
msgstr "E769: %s[ θ ] ޤ"
-#: ../regexp.c:375
#, c-format
msgid "E53: Unmatched %s%%("
msgstr "E53: %s%%( äƤޤ"
-#: ../regexp.c:376
#, c-format
msgid "E54: Unmatched %s("
msgstr "E54: %s( äƤޤ"
-#: ../regexp.c:377
#, c-format
msgid "E55: Unmatched %s)"
msgstr "E55: %s) äƤޤ"
#
-#: ../regexp.c:378
msgid "E66: \\z( not allowed here"
msgstr "E66: \\z( ϥǤϵĤƤޤ"
#
-#: ../regexp.c:379
msgid "E67: \\z1 et al. not allowed here"
msgstr "E67: \\z1 ¾ϥǤϵĤƤޤ"
#
-#: ../regexp.c:380
#, c-format
msgid "E69: Missing ] after %s%%["
msgstr "E69: %s%%[ θ ] ޤ"
-#: ../regexp.c:381
#, c-format
msgid "E70: Empty %s%%[]"
msgstr "E70: %s%%[] Ǥ"
-#: ../regexp.c:1209 ../regexp.c:1224
msgid "E339: Pattern too long"
msgstr "E339: ѥĹ᤮ޤ"
-#: ../regexp.c:1371
msgid "E50: Too many \\z("
msgstr "E50: \\z( ¿᤮ޤ"
-#: ../regexp.c:1378
#, c-format
msgid "E51: Too many %s("
msgstr "E51: %s( ¿᤮ޤ"
-#: ../regexp.c:1427
msgid "E52: Unmatched \\z("
msgstr "E52: \\z( äƤޤ"
-#: ../regexp.c:1637
#, c-format
msgid "E59: invalid character after %s@"
msgstr "E59: %s@ θʸޤ"
-#: ../regexp.c:1672
#, c-format
msgid "E60: Too many complex %s{...}s"
msgstr "E60: ʣ %s{...} ¿᤮ޤ"
-#: ../regexp.c:1687
#, c-format
msgid "E61: Nested %s*"
msgstr "E61:%s* ҤˤʤäƤޤ"
-#: ../regexp.c:1690
#, c-format
msgid "E62: Nested %s%c"
msgstr "E62:%s%c ҤˤʤäƤޤ"
#
-#: ../regexp.c:1800
msgid "E63: invalid use of \\_"
msgstr "E63: \\_ ̵ʻˡǤ"
-#: ../regexp.c:1850
#, c-format
msgid "E64: %s%c follows nothing"
msgstr "E64:%s%c θˤʤˤ⤢ޤ"
#
-#: ../regexp.c:1902
msgid "E65: Illegal back reference"
msgstr "E65: ʸȤǤ"
#
-#: ../regexp.c:1943
msgid "E68: Invalid character after \\z"
msgstr "E68: \\z θʸޤ"
#
-#: ../regexp.c:2049 ../regexp_nfa.c:1296
#, c-format
msgid "E678: Invalid character after %s%%[dxouU]"
msgstr "E678: %s%%[dxouU] θʸޤ"
#
-#: ../regexp.c:2107
#, c-format
msgid "E71: Invalid character after %s%%"
msgstr "E71: %s%% θʸޤ"
-#: ../regexp.c:3017
#, c-format
msgid "E554: Syntax error in %s{...}"
msgstr "E554: %s{...} ʸˡ顼ޤ"
-#: ../regexp.c:3805
msgid "External submatches:\n"
msgstr "ʬ:\n"
@@ -5005,7 +4780,6 @@ msgstr "ʬ:\n"
msgid "E888: (NFA regexp) cannot repeat %s"
msgstr "E888: (NFA ɽ) ֤ޤ %s"
-#: ../regexp.c:7022
msgid ""
"E864: \\%#= can only be followed by 0, 1, or 2. The automatic engine will be "
"used "
@@ -5016,62 +4790,54 @@ msgstr ""
msgid "Switching to backtracking RE engine for pattern: "
msgstr "Υѥ˥Хåȥå RE 󥸥ŬѤޤ: "
-#: ../regexp_nfa.c:239
msgid "E865: (NFA) Regexp end encountered prematurely"
msgstr "E865: (NFA) Ԥ᤯ɽνüãޤ"
-#: ../regexp_nfa.c:240
#, c-format
msgid "E866: (NFA regexp) Misplaced %c"
msgstr "E866: (NFA ɽ) ֤äƤޤ: %c"
-#: ../regexp_nfa.c:242
+#
#, c-format
-msgid "E877: (NFA regexp) Invalid character class: %<PRId64>"
-msgstr "E877: (NFA ɽ) ̵ʸ饹: %<PRId64>"
+msgid "E877: (NFA regexp) Invalid character class: %ld"
+msgstr "E877: (NFA ɽ) ̵ʸ饹: %ld"
-#: ../regexp_nfa.c:1261
#, c-format
msgid "E867: (NFA) Unknown operator '\\z%c'"
msgstr "E867: (NFA) ̤ΤΥڥ졼Ǥ: '\\z%c'"
-#: ../regexp_nfa.c:1387
#, c-format
msgid "E867: (NFA) Unknown operator '\\%%%c'"
msgstr "E867: (NFA) ̤ΤΥڥ졼Ǥ: '\\%%%c'"
-#: ../regexp_nfa.c:1802
+#. should never happen
+msgid "E868: Error building NFA with equivalence class!"
+msgstr "E868: 饹ޤNFAۤ˼Ԥޤ!"
+
#, c-format
msgid "E869: (NFA) Unknown operator '\\@%c'"
msgstr "E869: (NFA) ̤ΤΥڥ졼Ǥ: '\\@%c'"
-#: ../regexp_nfa.c:1831
msgid "E870: (NFA regexp) Error reading repetition limits"
msgstr "E870: (NFA ɽ) ֤²ɹ˥顼"
#. Can't have a multi follow a multi.
-#: ../regexp_nfa.c:1895
msgid "E871: (NFA regexp) Can't have a multi follow a multi !"
msgstr "E871: (NFA ɽ) ֤ θ ֤ ϤǤޤ!"
#. Too many `('
-#: ../regexp_nfa.c:2037
msgid "E872: (NFA regexp) Too many '('"
msgstr "E872: (NFA ɽ) '(' ¿᤮ޤ"
-#: ../regexp_nfa.c:2042
msgid "E879: (NFA regexp) Too many \\z("
msgstr "E879: (NFA ɽ) \\z( ¿᤮ޤ"
-#: ../regexp_nfa.c:2066
msgid "E873: (NFA regexp) proper termination error"
msgstr "E873: (NFA ɽ) ü椬ޤ"
-#: ../regexp_nfa.c:2599
msgid "E874: (NFA) Could not pop the stack !"
msgstr "E874: (NFA) åݥåפǤޤ!"
-#: ../regexp_nfa.c:3298
msgid ""
"E875: (NFA regexp) (While converting from postfix to NFA), too many states "
"left on stack"
@@ -5079,177 +4845,136 @@ msgstr ""
"E875: (NFA ɽ) (ʸNFAѴ) å˻Ĥ줿ơȤ"
"¿᤮ޤ"
-#: ../regexp_nfa.c:3302
msgid "E876: (NFA regexp) Not enough space to store the whole NFA "
msgstr "E876: (NFA ɽ) NFAΤ¸ˤ϶ڡ­ޤ"
-#: ../regexp_nfa.c:4571 ../regexp_nfa.c:4869
+msgid "E878: (NFA) Could not allocate memory for branch traversal!"
+msgstr "E878: (NFA) ߲Υ֥˽ʬʥƤޤ!"
+
msgid ""
"Could not open temporary log file for writing, displaying on stderr ... "
msgstr ""
"NFAɽ󥸥ѤΥեѤȤƳޤ󡣥ɸϤ"
"Ϥޤ"
-#: ../regexp_nfa.c:4840
#, c-format
msgid "(NFA) COULD NOT OPEN %s !"
msgstr "(NFA) ե %s 򳫤ޤ!"
-#: ../regexp_nfa.c:6049
msgid "Could not open temporary log file for writing "
msgstr "NFAɽ󥸥ѤΥեѤȤƳޤ"
-#: ../screen.c:7435
msgid " VREPLACE"
msgstr " ִ"
-#: ../screen.c:7437
msgid " REPLACE"
msgstr " ִ"
-#: ../screen.c:7440
msgid " REVERSE"
msgstr " ȿž"
-#: ../screen.c:7441
msgid " INSERT"
msgstr " "
-#: ../screen.c:7443
msgid " (insert)"
msgstr " ()"
-#: ../screen.c:7445
msgid " (replace)"
msgstr " (ִ)"
-#: ../screen.c:7447
msgid " (vreplace)"
msgstr " (ִ)"
-#: ../screen.c:7449
msgid " Hebrew"
msgstr " إ֥饤"
-#: ../screen.c:7454
msgid " Arabic"
msgstr " ӥ"
-#: ../screen.c:7456
-msgid " (lang)"
-msgstr " ()"
-
-#: ../screen.c:7459
msgid " (paste)"
msgstr " (Žդ)"
-#: ../screen.c:7469
msgid " VISUAL"
msgstr " ӥ奢"
-#: ../screen.c:7470
msgid " VISUAL LINE"
msgstr " ӥ奢 "
-#: ../screen.c:7471
msgid " VISUAL BLOCK"
msgstr " ӥ奢 "
-#: ../screen.c:7472
msgid " SELECT"
msgstr " 쥯"
-#: ../screen.c:7473
msgid " SELECT LINE"
msgstr " Իظ"
-#: ../screen.c:7474
msgid " SELECT BLOCK"
msgstr " "
-#: ../screen.c:7486 ../screen.c:7541
msgid "recording"
msgstr "Ͽ"
-#: ../search.c:487
#, c-format
msgid "E383: Invalid search string: %s"
msgstr "E383: ̵ʸʸǤ: %s"
-#: ../search.c:832
#, c-format
msgid "E384: search hit TOP without match for: %s"
msgstr "E384: ޤǸޤսϤޤ: %s"
-#: ../search.c:835
#, c-format
msgid "E385: search hit BOTTOM without match for: %s"
msgstr "E385: ޤǸޤսϤޤ: %s"
-#: ../search.c:1200
msgid "E386: Expected '?' or '/' after ';'"
msgstr "E386: ';' ΤȤˤ '?' '/' ԤƤ"
-#: ../search.c:4085
msgid " (includes previously listed match)"
msgstr " (󤷤սޤ)"
#. cursor at status line
-#: ../search.c:4104
msgid "--- Included files "
msgstr "--- 󥯥롼ɤ줿ե "
-#: ../search.c:4106
msgid "not found "
msgstr "Ĥޤ "
-#: ../search.c:4107
msgid "in path ---\n"
msgstr "ѥ ----\n"
-#: ../search.c:4168
msgid " (Already listed)"
msgstr " ()"
-#: ../search.c:4170
msgid " NOT FOUND"
msgstr " Ĥޤ"
-#: ../search.c:4211
#, c-format
msgid "Scanning included file: %s"
msgstr "󥯥롼ɤ줿ե򥹥: %s"
-#: ../search.c:4216
#, c-format
msgid "Searching included file %s"
msgstr "󥯥롼ɤ줿ե򥹥 %s"
-#: ../search.c:4405
msgid "E387: Match is on current line"
msgstr "E387: ߹Ԥ˳ޤ"
-#: ../search.c:4517
msgid "All included files were found"
msgstr "ƤΥ󥯥롼ɤ줿ե뤬Ĥޤ"
-#: ../search.c:4519
msgid "No included files"
msgstr "󥯥롼ɥեϤޤ"
-#: ../search.c:4527
msgid "E388: Couldn't find definition"
msgstr "E388: 򸫤Ĥޤ"
-#: ../search.c:4529
msgid "E389: Couldn't find pattern"
msgstr "E389: ѥ򸫤Ĥޤ"
-#: ../search.c:4668
msgid "Substitute "
msgstr "Substitute "
-#: ../search.c:4681
#, c-format
msgid ""
"\n"
@@ -5260,99 +4985,131 @@ msgstr ""
"# Ǹ %sѥ:\n"
"~"
-#: ../spell.c:951
-msgid "E759: Format error in spell file"
-msgstr "E759: ڥեν񼰥顼Ǥ"
+msgid "E756: Spell checking is not enabled"
+msgstr "E756: ڥå̵Ƥޤ"
+
+#, c-format
+msgid "Warning: Cannot find word list \"%s_%s.spl\" or \"%s_ascii.spl\""
+msgstr ""
+"ٹ: ñꥹ \"%s_%s.spl\" \"%s_ascii.spl\" ϸĤޤ"
+
+#, c-format
+msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
+msgstr ""
+"ٹ: ñꥹ \"%s.%s.spl\" \"%s.ascii.spl\" ϸĤޤ"
+
+msgid "E797: SpellFileMissing autocommand deleted buffer"
+msgstr "E797: autocommand SpellFileMissing Хåեޤ"
+
+#, c-format
+msgid "Warning: region %s not supported"
+msgstr "ٹ9: %s ȤϰϤϥݡȤƤޤ"
+
+msgid "Sorry, no suggestions"
+msgstr "ǰǤ, Ϥޤ"
+
+#, c-format
+msgid "Sorry, only %ld suggestions"
+msgstr "ǰǤ, %ld Ĥޤ"
+
+#. for when 'cmdheight' > 1
+#. avoid more prompt
+#, c-format
+msgid "Change \"%.*s\" to:"
+msgstr "\"%.*s\" 򼡤Ѵ:"
+
+#, c-format
+msgid " < \"%.*s\""
+msgstr " < \"%.*s\""
+
+msgid "E752: No previous spell replacement"
+msgstr "E752: ڥִޤ¹ԤƤޤ"
+
+#, c-format
+msgid "E753: Not found: %s"
+msgstr "E753: Ĥޤ: %s"
-#: ../spell.c:952
msgid "E758: Truncated spell file"
msgstr "E758: ڥե뤬ڼƤ褦Ǥ"
-#: ../spell.c:953
#, c-format
msgid "Trailing text in %s line %d: %s"
msgstr "%s (%d ) ³ƥ: %s"
-#: ../spell.c:954
#, c-format
msgid "Affix name too long in %s line %d: %s"
msgstr "%s (%d ) affix ̾Ĺ᤮ޤ: %s"
-#: ../spell.c:955
msgid "E761: Format error in affix file FOL, LOW or UPP"
msgstr ""
"E761: affixե FOL, LOW ⤷ UPP ΥեޥåȤ˥顼ޤ"
-#: ../spell.c:957
msgid "E762: Character in FOL, LOW or UPP is out of range"
msgstr "E762: FOL, LOW ⤷ UPP ʸϰϳǤ"
-#: ../spell.c:958
msgid "Compressing word tree..."
msgstr "ñĥ꡼򰵽̤Ƥޤ..."
-#: ../spell.c:1951
-msgid "E756: Spell checking is not enabled"
-msgstr "E756: ڥå̵Ƥޤ"
-
-#: ../spell.c:2249
-#, c-format
-msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
-msgstr ""
-"ٹ: ñꥹ \"%s.%s.spl\" \"%s.ascii.spl\" ϸĤޤ"
-
-#: ../spell.c:2473
#, c-format
msgid "Reading spell file \"%s\""
msgstr "ڥե \"%s\" ɹ"
-#: ../spell.c:2496
msgid "E757: This does not look like a spell file"
msgstr "E757: ڥեǤϤʤ褦Ǥ"
-#: ../spell.c:2501
msgid "E771: Old spell file, needs to be updated"
msgstr "E771: ŤڥեʤΤ, åץǡȤƤ"
-#: ../spell.c:2504
msgid "E772: Spell file is for newer version of Vim"
msgstr "E772: 꿷С Vim ѤΥڥեǤ"
-#: ../spell.c:2602
msgid "E770: Unsupported section in spell file"
msgstr "E770: ڥե˥ݡȤƤʤ󤬤ޤ"
-#: ../spell.c:3762
#, c-format
-msgid "Warning: region %s not supported"
-msgstr "ٹ9: %s ȤϰϤϥݡȤƤޤ"
+msgid "E778: This does not look like a .sug file: %s"
+msgstr "E778: .sug եǤϤʤ褦Ǥ: %s"
+
+#, c-format
+msgid "E779: Old .sug file, needs to be updated: %s"
+msgstr "E779: Ť .sug եʤΤ, åץǡȤƤ: %s"
+
+#, c-format
+msgid "E780: .sug file is for newer version of Vim: %s"
+msgstr "E780: 꿷С Vim Ѥ .sug եǤ: %s"
+
+#, c-format
+msgid "E781: .sug file doesn't match .spl file: %s"
+msgstr "E781: .sug ե뤬 .spl եȰפޤ: %s"
+
+#, c-format
+msgid "E782: error while reading .sug file: %s"
+msgstr "E782: .sug եɹ˥顼ȯޤ: %s"
-#: ../spell.c:4550
#, c-format
msgid "Reading affix file %s ..."
msgstr "affix ե %s ɹ..."
-#: ../spell.c:4589 ../spell.c:5635 ../spell.c:6140
#, c-format
msgid "Conversion failure for word in %s line %d: %s"
msgstr "%s (%d ) ñѴǤޤǤ: %s"
-#: ../spell.c:4630 ../spell.c:6170
#, c-format
msgid "Conversion in %s not supported: from %s to %s"
msgstr "%s μѴϥݡȤƤޤ: %s %s "
-#: ../spell.c:4642
+#, c-format
+msgid "Conversion in %s not supported"
+msgstr "%s ѴϥݡȤƤޤ"
+
#, c-format
msgid "Invalid value for FLAG in %s line %d: %s"
msgstr "%s %d ܤ FLAG ̵ͤޤ: %s"
-#: ../spell.c:4655
#, c-format
msgid "FLAG after using flags in %s line %d: %s"
msgstr "%s %d ܤ˥ե饰ŻѤޤ: %s"
-#: ../spell.c:4723
#, c-format
msgid ""
"Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line "
@@ -5361,7 +5118,6 @@ msgstr ""
"%s %d ܤ PFX ܤθ COMPOUNDFORBIDFLAG ϸä̤"
"Ȥޤ"
-#: ../spell.c:4731
#, c-format
msgid ""
"Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line "
@@ -5370,43 +5126,35 @@ msgstr ""
"%s %d ܤ PFX ܤθ COMPOUNDPERMITFLAG ϸä̤"
"Ȥޤ"
-#: ../spell.c:4747
#, c-format
msgid "Wrong COMPOUNDRULES value in %s line %d: %s"
msgstr "COMPOUNDRULES ͤ˸꤬ޤ. ե %s %d : %s"
-#: ../spell.c:4771
#, c-format
msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s"
msgstr "%s %d ܤ COMPOUNDWORDMAX ͤ˸꤬ޤ: %s"
-#: ../spell.c:4777
#, c-format
msgid "Wrong COMPOUNDMIN value in %s line %d: %s"
msgstr "%s %d ܤ COMPOUNDMIN ͤ˸꤬ޤ: %s"
-#: ../spell.c:4783
#, c-format
msgid "Wrong COMPOUNDSYLMAX value in %s line %d: %s"
msgstr "%s %d ܤ COMPOUNDSYLMAX ͤ˸꤬ޤ: %s"
-#: ../spell.c:4795
#, c-format
msgid "Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"
msgstr "%s %d ܤ CHECKCOMPOUNDPATTERN ͤ˸꤬ޤ: %s"
-#: ../spell.c:4847
#, c-format
msgid "Different combining flag in continued affix block in %s line %d: %s"
msgstr ""
"%s %d ܤ Ϣ³ affix ֥åΥե饰ȹ礻˰㤤ޤ: %s"
-#: ../spell.c:4850
#, c-format
msgid "Duplicate affix in %s line %d: %s"
msgstr "%s %d ܤ ʣ affix 򸡽Фޤ: %s"
-#: ../spell.c:4871
#, c-format
msgid ""
"Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s "
@@ -5415,308 +5163,206 @@ msgstr ""
"%s %d ܤ affix BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST "
"˻ѤƤ: %s"
-#: ../spell.c:4893
#, c-format
msgid "Expected Y or N in %s line %d: %s"
msgstr "%s %d ܤǤ Y N ɬפǤ: %s"
-#: ../spell.c:4968
#, c-format
msgid "Broken condition in %s line %d: %s"
msgstr "%s %d ܤ ϲƤޤ: %s"
-#: ../spell.c:5091
#, c-format
msgid "Expected REP(SAL) count in %s line %d"
msgstr "%s %d ܤˤ REP(SAL) βɬפǤ"
-#: ../spell.c:5120
#, c-format
msgid "Expected MAP count in %s line %d"
msgstr "%s %d ܤˤ MAP βɬפǤ"
-#: ../spell.c:5132
#, c-format
msgid "Duplicate character in MAP in %s line %d"
msgstr "%s %d ܤ MAP ˽ʣʸޤ"
-#: ../spell.c:5176
#, c-format
msgid "Unrecognized or duplicate item in %s line %d: %s"
msgstr "%s %d ܤ ǧǤʤʣܤޤ: %s"
-#: ../spell.c:5197
#, c-format
msgid "Missing FOL/LOW/UPP line in %s"
msgstr "%s ܤ FOL/LOW/UPP ޤ"
-#: ../spell.c:5220
msgid "COMPOUNDSYLMAX used without SYLLABLE"
msgstr "SYLLABLE ꤵʤ COMPOUNDSYLMAX"
-#: ../spell.c:5236
msgid "Too many postponed prefixes"
msgstr "ٱֻҤ¿᤮ޤ"
-#: ../spell.c:5238
msgid "Too many compound flags"
msgstr "ʣե饰¿᤮ޤ"
-#: ../spell.c:5240
msgid "Too many postponed prefixes and/or compound flags"
msgstr "ٱֻ /⤷ ʣե饰¿᤮ޤ"
-#: ../spell.c:5250
#, c-format
msgid "Missing SOFO%s line in %s"
msgstr "SOFO%s Ԥ %s ˤޤ"
-#: ../spell.c:5253
#, c-format
msgid "Both SAL and SOFO lines in %s"
msgstr "SAL SOFO %s ξꤵƤޤ"
-#: ../spell.c:5331
#, c-format
msgid "Flag is not a number in %s line %d: %s"
msgstr "%s %d Ԥ ե饰ͤǤϤޤ: %s"
-#: ../spell.c:5334
#, c-format
msgid "Illegal flag in %s line %d: %s"
msgstr "%s %d ܤ ե饰Ǥ: %s"
-#: ../spell.c:5493 ../spell.c:5501
#, c-format
msgid "%s value differs from what is used in another .aff file"
msgstr " %s ¾ .aff եǻѤ줿ΤȰۤʤޤ"
-#: ../spell.c:5602
#, c-format
msgid "Reading dictionary file %s ..."
msgstr "ե %s 򥹥..."
-#: ../spell.c:5611
#, c-format
msgid "E760: No word count in %s"
msgstr "E760: %s ˤñޤ"
-#: ../spell.c:5669
#, c-format
msgid "line %6d, word %6d - %s"
msgstr " %6d, ñ %6d - %s"
-#: ../spell.c:5691
#, c-format
msgid "Duplicate word in %s line %d: %s"
msgstr "%s %d ܤ ʣñ줬Ĥޤ: %s"
-#: ../spell.c:5694
#, c-format
msgid "First duplicate word in %s line %d: %s"
msgstr "ʣΤǽñ %s %d ܤǤ: %s"
-#: ../spell.c:5746
#, c-format
msgid "%d duplicate word(s) in %s"
msgstr "%d Ĥñ줬Ĥޤ (%s )"
-#: ../spell.c:5748
#, c-format
msgid "Ignored %d word(s) with non-ASCII characters in %s"
msgstr "ASCIIʸޤ %d Ĥñ̵뤷ޤ (%s )"
-#: ../spell.c:6115
#, c-format
msgid "Reading word file %s ..."
msgstr "ɸϤɹ %s ..."
-#: ../spell.c:6155
#, c-format
msgid "Duplicate /encoding= line ignored in %s line %d: %s"
msgstr "%s %d ܤ ʣ /encoding= Ԥ̵뤷ޤ: %s"
-#: ../spell.c:6159
#, c-format
msgid "/encoding= line after word ignored in %s line %d: %s"
msgstr "%s %d ܤ ñθ /encoding= Ԥ̵뤷ޤ: %s"
-#: ../spell.c:6180
#, c-format
msgid "Duplicate /regions= line ignored in %s line %d: %s"
msgstr "%s %d ܤ ʣ /regions= Ԥ̵뤷ޤ: %s"
-#: ../spell.c:6185
#, c-format
msgid "Too many regions in %s line %d: %s"
msgstr "%s %d , ϰϻ꤬¿᤮ޤ: %s"
-#: ../spell.c:6198
#, c-format
msgid "/ line ignored in %s line %d: %s"
msgstr "%s %d ܤ ʣ / Ԥ̵뤷ޤ: %s"
-#: ../spell.c:6224
#, c-format
msgid "Invalid region nr in %s line %d: %s"
msgstr "%s %d ̵ nr ΰǤ: %s"
-#: ../spell.c:6230
#, c-format
msgid "Unrecognized flags in %s line %d: %s"
msgstr "%s %d ǧǽʥե饰Ǥ: %s"
-#: ../spell.c:6257
#, c-format
msgid "Ignored %d words with non-ASCII characters"
msgstr "ASCIIʸޤ %d Ĥñ̵뤷ޤ"
-#: ../spell.c:6656
+msgid "E845: Insufficient memory, word list will be incomplete"
+msgstr "E845: ꤬­ʤΤǡñꥹȤԴǤ"
+
#, c-format
msgid "Compressed %d of %d nodes; %d (%d%%) remaining"
msgstr "Ρ %d ( %d ) 򰵽̤ޤ; Ĥ %d (%d%%)"
-#: ../spell.c:7340
msgid "Reading back spell file..."
msgstr "ڥեɹ"
-#. Go through the trie of good words, soundfold each word and add it to
-#. the soundfold trie.
-#: ../spell.c:7357
+#.
+#. * Go through the trie of good words, soundfold each word and add it to
+#. * the soundfold trie.
+#.
msgid "Performing soundfolding..."
msgstr "ߤ¹..."
-#: ../spell.c:7368
#, c-format
-msgid "Number of words after soundfolding: %<PRId64>"
-msgstr "߸ñ: %<PRId64>"
+msgid "Number of words after soundfolding: %ld"
+msgstr "߸ñ: %ld"
-#: ../spell.c:7476
#, c-format
msgid "Total number of words: %d"
msgstr "ñ: %d"
-#: ../spell.c:7655
#, c-format
msgid "Writing suggestion file %s ..."
msgstr "ե \"%s\" ..."
-#: ../spell.c:7707 ../spell.c:7927
#, c-format
msgid "Estimated runtime memory use: %d bytes"
msgstr ": %d Х"
-#: ../spell.c:7820
msgid "E751: Output file name must not have region name"
msgstr "E751: ϥե̾ˤϰ̾ޤޤ"
-#: ../spell.c:7822
msgid "E754: Only up to 8 regions supported"
msgstr "E754: ϰϤ 8 ĤޤǤݡȤƤޤ"
-#: ../spell.c:7846
#, c-format
msgid "E755: Invalid region in %s"
msgstr "E755: ̵ϰϤǤ: %s"
-#: ../spell.c:7907
msgid "Warning: both compounding and NOBREAK specified"
msgstr "ٹ: ʣե饰 NOBREAK ξȤꤵޤ"
-#: ../spell.c:7920
#, c-format
msgid "Writing spell file %s ..."
msgstr "ڥե %s ..."
-#: ../spell.c:7925
msgid "Done!"
msgstr "¹Ԥޤ!"
-#: ../spell.c:8034
#, c-format
-msgid "E765: 'spellfile' does not have %<PRId64> entries"
-msgstr "E765: 'spellfile' ˤ %<PRId64> ĤΥȥϤޤ"
+msgid "E765: 'spellfile' does not have %ld entries"
+msgstr "E765: 'spellfile' ˤ %ld ĤΥȥϤޤ"
-#: ../spell.c:8074
#, c-format
msgid "Word '%.*s' removed from %s"
msgstr "ñ '%.*s' %s ޤ"
-#: ../spell.c:8117
#, c-format
msgid "Word '%.*s' added to %s"
msgstr "ñ '%.*s' %s ɲäޤ"
-#: ../spell.c:8381
msgid "E763: Word characters differ between spell files"
msgstr "E763: ñʸڥեȰۤʤޤ"
-#: ../spell.c:8684
-msgid "Sorry, no suggestions"
-msgstr "ǰǤ, Ϥޤ"
-
-#: ../spell.c:8687
-#, c-format
-msgid "Sorry, only %<PRId64> suggestions"
-msgstr "ǰǤ, %<PRId64> Ĥޤ"
-
-#. for when 'cmdheight' > 1
-#. avoid more prompt
-#: ../spell.c:8704
-#, c-format
-msgid "Change \"%.*s\" to:"
-msgstr "\"%.*s\" 򼡤Ѵ:"
-
-#: ../spell.c:8737
-#, c-format
-msgid " < \"%.*s\""
-msgstr " < \"%.*s\""
-
-#: ../spell.c:8882
-msgid "E752: No previous spell replacement"
-msgstr "E752: ڥִޤ¹ԤƤޤ"
-
-#: ../spell.c:8925
-#, c-format
-msgid "E753: Not found: %s"
-msgstr "E753: Ĥޤ: %s"
-
-#: ../spell.c:9276
-#, c-format
-msgid "E778: This does not look like a .sug file: %s"
-msgstr "E778: .sug եǤϤʤ褦Ǥ: %s"
-
-#: ../spell.c:9282
-#, c-format
-msgid "E779: Old .sug file, needs to be updated: %s"
-msgstr "E779: Ť .sug եʤΤ, åץǡȤƤ: %s"
-
-#: ../spell.c:9286
-#, c-format
-msgid "E780: .sug file is for newer version of Vim: %s"
-msgstr "E780: 꿷С Vim Ѥ .sug եǤ: %s"
-
-#: ../spell.c:9295
-#, c-format
-msgid "E781: .sug file doesn't match .spl file: %s"
-msgstr "E781: .sug ե뤬 .spl եȰפޤ: %s"
-
-#: ../spell.c:9305
-#, c-format
-msgid "E782: error while reading .sug file: %s"
-msgstr "E782: .sug եɹ˥顼ȯޤ: %s"
-
#. This should have been checked when generating the .spl
-#. file.
-#: ../spell.c:11575
+#. * file.
msgid "E783: duplicate char in MAP entry"
msgstr "E783: MAP ȥ˽ʣʸ¸ߤޤ"
-#: ../syntax.c:266
msgid "No Syntax items defined for this buffer"
msgstr "ΥХåե줿ʸǤϤޤ"
-#: ../syntax.c:3083 ../syntax.c:3104 ../syntax.c:3127
#, c-format
msgid "E390: Illegal argument: %s"
msgstr "E390: ʰǤ: %s"
@@ -5724,28 +5370,22 @@ msgstr "E390: ʰǤ: %s"
msgid "syntax iskeyword "
msgstr "󥿥å iskeyword "
-#: ../syntax.c:3299
#, c-format
msgid "E391: No such syntax cluster: %s"
msgstr "E391: Τ褦ʹʸ饹Ϥޤ: %s"
-#: ../syntax.c:3433
msgid "syncing on C-style comments"
msgstr "CȤƱ"
-#: ../syntax.c:3439
msgid "no syncing"
msgstr "Ʊ"
-#: ../syntax.c:3441
msgid "syncing starts "
msgstr "Ʊ "
-#: ../syntax.c:3443 ../syntax.c:3506
msgid " lines before top line"
msgstr " (ȥå׹Ԥ)"
-#: ../syntax.c:3448
msgid ""
"\n"
"--- Syntax sync items ---"
@@ -5753,7 +5393,6 @@ msgstr ""
"\n"
"--- ʸƱ ---"
-#: ../syntax.c:3452
msgid ""
"\n"
"syncing on items"
@@ -5761,7 +5400,6 @@ msgstr ""
"\n"
"ǾƱ"
-#: ../syntax.c:3457
msgid ""
"\n"
"--- Syntax items ---"
@@ -5769,53 +5407,41 @@ msgstr ""
"\n"
"--- ʸ ---"
-#: ../syntax.c:3475
#, c-format
msgid "E392: No such syntax cluster: %s"
msgstr "E392: Τ褦ʹʸ饹Ϥޤ: %s"
-#: ../syntax.c:3497
msgid "minimal "
msgstr "minimal "
-#: ../syntax.c:3503
msgid "maximal "
msgstr "maximal "
-#: ../syntax.c:3513
msgid "; match "
msgstr "; "
-#: ../syntax.c:3515
msgid " line breaks"
msgstr " Ĥβ"
-#: ../syntax.c:4076
msgid "E395: contains argument not accepted here"
msgstr "E395: ξǤϰcontainsϵĤƤޤ"
-#: ../syntax.c:4096
msgid "E844: invalid cchar value"
msgstr "E844: ̵ccharͤǤ"
-#: ../syntax.c:4107
msgid "E393: group[t]here not accepted here"
msgstr "E393: Ǥϥ롼פϵĤޤ"
-#: ../syntax.c:4126
#, c-format
msgid "E394: Didn't find region item for %s"
msgstr "E394: %s ϰǤĤޤ"
-#: ../syntax.c:4188
msgid "E397: Filename required"
msgstr "E397: ե̾ɬפǤ"
-#: ../syntax.c:4221
msgid "E847: Too many syntax includes"
msgstr "E847: ʸμ(include)¿᤮ޤ"
-#: ../syntax.c:4303
#, c-format
msgid "E789: Missing ']': %s"
msgstr "E789: ']' ޤ: %s"
@@ -5824,221 +5450,173 @@ msgstr "E789: ']' ޤ: %s"
msgid "E890: trailing char after ']': %s]%s"
msgstr "E890: ']' θ;ʬʸޤ: %s]%s"
-#: ../syntax.c:4531
#, c-format
msgid "E398: Missing '=': %s"
msgstr "E398: '=' ޤ: %s"
-#: ../syntax.c:4666
#, c-format
msgid "E399: Not enough arguments: syntax region %s"
msgstr "E399: ­ޤ: ʸϰ %s"
-#: ../syntax.c:4870
msgid "E848: Too many syntax clusters"
msgstr "E848: ʸ饹¿᤮ޤ"
-#: ../syntax.c:4954
msgid "E400: No cluster specified"
msgstr "E400: 饹ꤵƤޤ"
-#. end delimiter not found
-#: ../syntax.c:4986
#, c-format
msgid "E401: Pattern delimiter not found: %s"
msgstr "E401: ѥڤ꤬Ĥޤ: %s"
-#: ../syntax.c:5049
#, c-format
msgid "E402: Garbage after pattern: %s"
msgstr "E402: ѥΤȤ˥ߤޤ: %s"
-#: ../syntax.c:5120
msgid "E403: syntax sync: line continuations pattern specified twice"
msgstr "E403: ʸƱ: Ϣ³ԥѥ2ٻꤵޤ"
-#: ../syntax.c:5169
#, c-format
msgid "E404: Illegal arguments: %s"
msgstr "E404: ʰǤ: %s"
-#: ../syntax.c:5217
#, c-format
msgid "E405: Missing equal sign: %s"
msgstr "E405: 椬ޤ: %s"
-#: ../syntax.c:5222
#, c-format
msgid "E406: Empty argument: %s"
msgstr "E406: ΰ: %s"
-#: ../syntax.c:5240
#, c-format
msgid "E407: %s not allowed here"
msgstr "E407: %s ϥǤϵĤƤޤ"
-#: ../syntax.c:5246
#, c-format
msgid "E408: %s must be first in contains list"
msgstr "E408: %s ƥꥹȤƬǤʤФʤʤ"
-#: ../syntax.c:5304
#, c-format
msgid "E409: Unknown group name: %s"
msgstr "E409: ̤ΤΥ롼̾: %s"
-#: ../syntax.c:5512
#, c-format
msgid "E410: Invalid :syntax subcommand: %s"
msgstr "E410: ̵ :syntax Υ֥ޥ: %s"
-#: ../syntax.c:5854
msgid ""
" TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN"
msgstr ""
" TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN"
-#: ../syntax.c:6146
msgid "E679: recursive loop loading syncolor.vim"
msgstr "E679: syncolor.vim κƵƤӽФ򸡽Фޤ"
-#: ../syntax.c:6256
#, c-format
msgid "E411: highlight group not found: %s"
msgstr "E411: ϥ饤ȥ롼פĤޤ: %s"
-#: ../syntax.c:6278
#, c-format
msgid "E412: Not enough arguments: \":highlight link %s\""
msgstr "E412: ʬǤϤʤ: \":highlight link %s\""
-#: ../syntax.c:6284
#, c-format
msgid "E413: Too many arguments: \":highlight link %s\""
msgstr "E413: ¿᤮ޤ: \":highlight link %s\""
-#: ../syntax.c:6302
msgid "E414: group has settings, highlight link ignored"
msgstr "E414: 롼פꤵƤΤǥϥ饤ȥ󥯤̵뤵ޤ"
-#: ../syntax.c:6367
#, c-format
msgid "E415: unexpected equal sign: %s"
msgstr "E415: ͽǤ: %s"
-#: ../syntax.c:6395
#, c-format
msgid "E416: missing equal sign: %s"
msgstr "E416: 椬ޤ: %s"
-#: ../syntax.c:6418
#, c-format
msgid "E417: missing argument: %s"
msgstr "E417: ޤ: %s"
-#: ../syntax.c:6446
#, c-format
msgid "E418: Illegal value: %s"
msgstr "E418: ͤǤ: %s"
-#: ../syntax.c:6496
msgid "E419: FG color unknown"
msgstr "E419: ̤ΤʿǤ"
-#: ../syntax.c:6504
msgid "E420: BG color unknown"
msgstr "E420: ̤ΤطʿǤ"
-#: ../syntax.c:6564
#, c-format
msgid "E421: Color name or number not recognized: %s"
msgstr "E421: 顼ֹ̾ǧǤޤ: %s"
-#: ../syntax.c:6714
#, c-format
msgid "E422: terminal code too long: %s"
msgstr "E422: üɤĹ᤮ޤ: %s"
-#: ../syntax.c:6753
#, c-format
msgid "E423: Illegal argument: %s"
msgstr "E423: ʰǤ: %s"
-#: ../syntax.c:6925
msgid "E424: Too many different highlighting attributes in use"
msgstr "E424: ¿ΰۤʤϥ饤°Ȥ᤮Ƥޤ"
-#: ../syntax.c:7427
msgid "E669: Unprintable character in group name"
msgstr "E669: 롼̾˰Բǽʸޤ"
-#: ../syntax.c:7434
msgid "W18: Invalid character in group name"
msgstr "W18: 롼̾ʸޤ"
-#: ../syntax.c:7448
msgid "E849: Too many highlight and syntax groups"
msgstr "E849: ϥ饤Ȥȹʸ롼פ¿᤮ޤ"
-#: ../tag.c:104
msgid "E555: at bottom of tag stack"
msgstr "E555: åǤ"
-#: ../tag.c:105
msgid "E556: at top of tag stack"
msgstr "E556: åƬǤ"
-#: ../tag.c:380
msgid "E425: Cannot go before first matching tag"
msgstr "E425: ǽγĶ뤳ȤϤǤޤ"
-#: ../tag.c:504
#, c-format
msgid "E426: tag not found: %s"
msgstr "E426: Ĥޤ: %s"
-#: ../tag.c:528
msgid " # pri kind tag"
msgstr " # pri kind tag"
-#: ../tag.c:531
msgid "file\n"
msgstr "ե\n"
-#: ../tag.c:829
msgid "E427: There is only one matching tag"
msgstr "E427: 1Ĥޤ"
-#: ../tag.c:831
msgid "E428: Cannot go beyond last matching tag"
msgstr "E428: Ǹ˳륿ĶƿʤळȤϤǤޤ"
-#: ../tag.c:850
#, c-format
msgid "File \"%s\" does not exist"
msgstr "ե \"%s\" ޤ"
#. Give an indication of the number of matching tags
-#: ../tag.c:859
#, c-format
msgid "tag %d of %d%s"
msgstr " %d (%d%s)"
-#: ../tag.c:862
msgid " or more"
msgstr " ʾ"
-#: ../tag.c:864
msgid " Using tag with different case!"
msgstr " ۤʤcaseǻѤޤ!"
-#: ../tag.c:909
#, c-format
msgid "E429: File \"%s\" does not exist"
msgstr "E429: ե \"%s\" ޤ"
#. Highlight title
-#: ../tag.c:960
msgid ""
"\n"
" # TO tag FROM line in file/text"
@@ -6046,79 +5624,66 @@ msgstr ""
"\n"
" # TO FROM in file/text"
-#: ../tag.c:1303
#, c-format
msgid "Searching tags file %s"
msgstr "ե %s 򸡺"
-#: ../tag.c:1545
+#, c-format
+msgid "E430: Tag file path truncated for %s\n"
+msgstr "E430: եΥѥ %s ڤΤƤޤ\n"
+
msgid "Ignoring long line in tags file"
msgstr "եĹԤ̵뤷ޤ"
-#: ../tag.c:1915
#, c-format
msgid "E431: Format error in tags file \"%s\""
msgstr "E431: ե \"%s\" ΥեޥåȤ˥顼ޤ"
-#: ../tag.c:1917
#, c-format
-msgid "Before byte %<PRId64>"
-msgstr "ľ %<PRId64> Х"
+msgid "Before byte %ld"
+msgstr "ľ %ld Х"
-#: ../tag.c:1929
#, c-format
msgid "E432: Tags file not sorted: %s"
msgstr "E432: ե뤬ȤƤޤ: %s"
#. never opened any tags file
-#: ../tag.c:1960
msgid "E433: No tags file"
msgstr "E433: ե뤬ޤ"
-#: ../tag.c:2536
msgid "E434: Can't find tag pattern"
msgstr "E434: ѥ򸫤Ĥޤ"
-#: ../tag.c:2544
msgid "E435: Couldn't find tag, just guessing!"
msgstr "E435: 򸫤ĤʤΤñ˿¬ޤ!"
-#: ../tag.c:2797
#, c-format
msgid "Duplicate field name: %s"
msgstr "ʣե̾: %s"
-#: ../term.c:1442
msgid "' not known. Available builtin terminals are:"
msgstr "' ̤ΤǤ. ԤȤ߹üϼΤȤǤ:"
-#: ../term.c:1463
msgid "defaulting to '"
msgstr "άͤ򼡤Τ褦ꤷޤ '"
-#: ../term.c:1731
msgid "E557: Cannot open termcap file"
msgstr "E557: termcapե򳫤ޤ"
-#: ../term.c:1735
msgid "E558: Terminal entry not found in terminfo"
msgstr "E558: terminfoüȥ򸫤Ĥޤ"
-#: ../term.c:1737
msgid "E559: Terminal entry not found in termcap"
msgstr "E559: termcapüȥ򸫤Ĥޤ"
-#: ../term.c:1878
#, c-format
msgid "E436: No \"%s\" entry in termcap"
msgstr "E436: termcap \"%s\" Υȥ꤬ޤ"
-#: ../term.c:2249
msgid "E437: terminal capability \"cm\" required"
msgstr "E437: ü \"cm\" ǽɬפǤ"
#. Highlight title
-#: ../term.c:4376
msgid ""
"\n"
"--- Terminal keys ---"
@@ -6126,168 +5691,347 @@ msgstr ""
"\n"
"--- ü ---"
-#: ../ui.c:481
+msgid "Cannot open $VIMRUNTIME/rgb.txt"
+msgstr "$VIMRUNTIME/rgb.txt򳫤ޤ"
+
+msgid "new shell started\n"
+msgstr "ưޤ\n"
+
msgid "Vim: Error reading input, exiting...\n"
msgstr "Vim: ϤɹΥ顼ˤ꽪λޤ...\n"
+msgid "Used CUT_BUFFER0 instead of empty selection"
+msgstr "ΰΤCUT_BUFFER0Ѥޤ"
+
#. This happens when the FileChangedRO autocommand changes the
#. * file in a way it becomes shorter.
-#: ../undo.c:379
msgid "E881: Line count changed unexpectedly"
msgstr "E881: ͽԥȤѤޤ"
-#: ../undo.c:627
+#. must display the prompt
+msgid "No undo possible; continue anyway"
+msgstr "ǽʥɥϤޤ: Ȥꤢ³ޤ"
+
#, c-format
msgid "E828: Cannot open undo file for writing: %s"
msgstr "E828: Ѥ˥ɥե򳫤ޤ: %s"
-#: ../undo.c:717
#, c-format
msgid "E825: Corrupted undo file (%s): %s"
msgstr "E825: ɥե뤬Ƥޤ (%s): %s"
-#: ../undo.c:1039
msgid "Cannot write undo file in any directory in 'undodir'"
msgstr "'undodir'Υǥ쥯ȥ˥ɥե񤭹ޤ"
-#: ../undo.c:1074
#, c-format
msgid "Will not overwrite with undo file, cannot read: %s"
msgstr "ɥեȤɤ߹ʤΤǾ񤭤ޤ: %s"
-#: ../undo.c:1092
#, c-format
msgid "Will not overwrite, this is not an undo file: %s"
msgstr "ɥեǤϤʤΤǾ񤭤ޤ: %s"
-#: ../undo.c:1108
msgid "Skipping undo file write, nothing to undo"
msgstr "оݤʤΤǥɥեν񤭹ߤ򥹥åפޤ"
-#: ../undo.c:1121
#, c-format
msgid "Writing undo file: %s"
msgstr "ɥե񤭹: %s"
-#: ../undo.c:1213
#, c-format
msgid "E829: write error in undo file: %s"
msgstr "E829: ɥեν񤭹ߥ顼Ǥ: %s"
-#: ../undo.c:1280
#, c-format
msgid "Not reading undo file, owner differs: %s"
msgstr "ʡۤʤΤǥɥեɤ߹ߤޤ: %s"
-#: ../undo.c:1292
#, c-format
msgid "Reading undo file: %s"
msgstr "ɥեɹ: %s"
-#: ../undo.c:1299
#, c-format
msgid "E822: Cannot open undo file for reading: %s"
msgstr "E822: ɥեɹѤȤƳޤ: %s"
-#: ../undo.c:1308
#, c-format
msgid "E823: Not an undo file: %s"
msgstr "E823: ɥեǤϤޤ: %s"
-#: ../undo.c:1313
+#, c-format
+msgid "E832: Non-encrypted file has encrypted undo file: %s"
+msgstr "E832: Ź沽ե뤬Ź沽줿ɥեȤäƤޤ: %s"
+
+#, c-format
+msgid "E826: Undo file decryption failed: %s"
+msgstr "E826: Ź沽줿ɥեβɤ˼Ԥޤ: %s"
+
+#, c-format
+msgid "E827: Undo file is encrypted: %s"
+msgstr "E827: ɥե뤬Ź沽Ƥޤ: %s"
+
#, c-format
msgid "E824: Incompatible undo file: %s"
msgstr "E824: ߴ̵ɥեǤ: %s"
-#: ../undo.c:1328
msgid "File contents changed, cannot use undo info"
msgstr "եƤѤäƤ뤿ᡢɥѤǤޤ"
-#: ../undo.c:1497
#, c-format
msgid "Finished reading undo file %s"
msgstr "ɥե %s μλ"
-#: ../undo.c:1586 ../undo.c:1812
msgid "Already at oldest change"
msgstr "˰ָŤѹǤ"
-#: ../undo.c:1597 ../undo.c:1814
msgid "Already at newest change"
msgstr "˰ֿѹǤ"
-#: ../undo.c:1806
#, c-format
-msgid "E830: Undo number %<PRId64> not found"
-msgstr "E830: ɥֹ %<PRId64> ϸĤޤ"
+msgid "E830: Undo number %ld not found"
+msgstr "E830: ɥֹ %ld ϸĤޤ"
-#: ../undo.c:1979
msgid "E438: u_undo: line numbers wrong"
msgstr "E438: u_undo: ֹ椬ְäƤޤ"
-#: ../undo.c:2183
msgid "more line"
msgstr " ɲäޤ"
-#: ../undo.c:2185
msgid "more lines"
msgstr " ɲäޤ"
-#: ../undo.c:2187
msgid "line less"
msgstr " ޤ"
-#: ../undo.c:2189
msgid "fewer lines"
msgstr " ޤ"
-#: ../undo.c:2193
msgid "change"
msgstr "սѹޤ"
-#: ../undo.c:2195
msgid "changes"
msgstr "սѹޤ"
-#: ../undo.c:2225
#, c-format
-msgid "%<PRId64> %s; %s #%<PRId64> %s"
-msgstr "%<PRId64> %s; %s #%<PRId64> %s"
+msgid "%ld %s; %s #%ld %s"
+msgstr "%ld %s; %s #%ld %s"
-#: ../undo.c:2228
msgid "before"
msgstr ""
-#: ../undo.c:2228
msgid "after"
msgstr ""
-#: ../undo.c:2325
msgid "Nothing to undo"
msgstr "ɥоݤޤ"
-#: ../undo.c:2330
msgid "number changes when saved"
msgstr " ѹ ѹ ¸"
-#: ../undo.c:2360
#, c-format
-msgid "%<PRId64> seconds ago"
-msgstr "%<PRId64> ÷вᤷƤޤ"
+msgid "%ld seconds ago"
+msgstr "%ld ÷вᤷƤޤ"
-#: ../undo.c:2372
msgid "E790: undojoin is not allowed after undo"
msgstr "E790: undo ľ undojoin ϤǤޤ"
-#: ../undo.c:2466
msgid "E439: undo list corrupt"
msgstr "E439: ɥꥹȤƤޤ"
-#: ../undo.c:2495
msgid "E440: undo line missing"
msgstr "E440: ɥԤޤ"
-#: ../version.c:600
+#, c-format
+msgid "E122: Function %s already exists, add ! to replace it"
+msgstr "E122: ؿ %s ѤǤ, ˤ ! ɲäƤ"
+
+msgid "E717: Dictionary entry already exists"
+msgstr "E717: ˥ȥ꤬¸ߤޤ"
+
+msgid "E718: Funcref required"
+msgstr "E718: ؿȷ׵ᤵޤ"
+
+#, c-format
+msgid "E130: Unknown function: %s"
+msgstr "E130: ̤ΤδؿǤ: %s"
+
+#, c-format
+msgid "E125: Illegal argument: %s"
+msgstr "E125: ʰǤ: %s"
+
+#, c-format
+msgid "E853: Duplicate argument name: %s"
+msgstr "E853: ̾ʣƤޤ: %s"
+
+#, c-format
+msgid "E740: Too many arguments for function %s"
+msgstr "E740: ؿΰ¿᤮ޤ: %s"
+
+#, c-format
+msgid "E116: Invalid arguments for function %s"
+msgstr "E116: ؿ̵ʰǤ: %s"
+
+msgid "E132: Function call depth is higher than 'maxfuncdepth'"
+msgstr "E132: ؿƽФҿ 'maxfuncdepth' Ķޤ"
+
+#, c-format
+msgid "calling %s"
+msgstr "%s ¹Ǥ"
+
+#, c-format
+msgid "%s aborted"
+msgstr "%s Ǥޤ"
+
+#, c-format
+msgid "%s returning #%ld"
+msgstr "%s #%ld ֤ޤ"
+
+#, c-format
+msgid "%s returning %s"
+msgstr "%s %s ֤ޤ"
+
+msgid "E699: Too many arguments"
+msgstr "E699: ¿᤮ޤ"
+
+#, c-format
+msgid "E117: Unknown function: %s"
+msgstr "E117: ̤ΤδؿǤ: %s"
+
+#, c-format
+msgid "E933: Function was deleted: %s"
+msgstr "E933: ؿϺޤ: %s"
+
+#, c-format
+msgid "E119: Not enough arguments for function: %s"
+msgstr "E119: ؿΰ­ޤ: %s"
+
+#, c-format
+msgid "E120: Using <SID> not in a script context: %s"
+msgstr "E120: ץȰʳ<SID>Ȥޤ: %s"
+
+#, c-format
+msgid "E725: Calling dict function without Dictionary: %s"
+msgstr "E725: ѴؿƤФޤ񤬤ޤ: %s"
+
+msgid "E129: Function name required"
+msgstr "E129: ؿ̾׵ᤵޤ"
+
+#, c-format
+msgid "E128: Function name must start with a capital or \"s:\": %s"
+msgstr "E128: ؿ̾ʸ \"s:\" ǻϤޤʤФʤޤ: %s"
+
+#, c-format
+msgid "E884: Function name cannot contain a colon: %s"
+msgstr "E884: ؿ̾ˤϥϴޤޤ: %s"
+
+#, c-format
+msgid "E123: Undefined function: %s"
+msgstr "E123: ̤δؿǤ: %s"
+
+#, c-format
+msgid "E124: Missing '(': %s"
+msgstr "E124: '(' ޤ: %s"
+
+msgid "E862: Cannot use g: here"
+msgstr "E862: Ǥ g: ϻȤޤ"
+
+#, c-format
+msgid "E932: Closure function should not be at top level: %s"
+msgstr "E932: 㡼ؿϥȥåץ٥˵ҤǤޤ: %s"
+
+msgid "E126: Missing :endfunction"
+msgstr "E126: :endfunction ޤ"
+
+#, c-format
+msgid "E707: Function name conflicts with variable: %s"
+msgstr "E707: ؿ̾ѿ̾Ⱦͤޤ: %s"
+
+#, c-format
+msgid "E127: Cannot redefine function %s: It is in use"
+msgstr "E127: ؿ %s Ǥޤ: Ǥ"
+
+#, c-format
+msgid "E746: Function name does not match script file name: %s"
+msgstr "E746: ؿ̾ץȤΥե̾Ȱפޤ: %s"
+
+#, c-format
+msgid "E131: Cannot delete function %s: It is in use"
+msgstr "E131: ؿ %s Ǥޤ: Ǥ"
+
+msgid "E133: :return not inside a function"
+msgstr "E133: ؿ :return ޤ"
+
+#, c-format
+msgid "E107: Missing parentheses: %s"
+msgstr "E107: å '(' ޤ: %s"
+
+#. Only MS VC 4.1 and earlier can do Win32s
+msgid ""
+"\n"
+"MS-Windows 16/32-bit GUI version"
+msgstr ""
+"\n"
+"MS-Windows 16/32 ӥå GUI "
+
+msgid ""
+"\n"
+"MS-Windows 64-bit GUI version"
+msgstr ""
+"\n"
+"MS-Windows 64 ӥå GUI "
+
+msgid ""
+"\n"
+"MS-Windows 32-bit GUI version"
+msgstr ""
+"\n"
+"MS-Windows 32 ӥå GUI "
+
+msgid " with OLE support"
+msgstr " with OLE ݡ"
+
+msgid ""
+"\n"
+"MS-Windows 64-bit console version"
+msgstr ""
+"\n"
+"MS-Windows 64 ӥå 󥽡 "
+
+msgid ""
+"\n"
+"MS-Windows 32-bit console version"
+msgstr ""
+"\n"
+"MS-Windows 32 ӥå 󥽡 "
+
+msgid ""
+"\n"
+"MacOS X (unix) version"
+msgstr ""
+"\n"
+"MacOS X (unix) "
+
+msgid ""
+"\n"
+"MacOS X version"
+msgstr ""
+"\n"
+"MacOS X "
+
+msgid ""
+"\n"
+"MacOS version"
+msgstr ""
+"\n"
+"MacOS "
+
+msgid ""
+"\n"
+"OpenVMS version"
+msgstr ""
+"\n"
+"OpenVMS "
+
msgid ""
"\n"
"Included patches: "
@@ -6295,7 +6039,6 @@ msgstr ""
"\n"
"ŬѺѥѥå: "
-#: ../version.c:627
msgid ""
"\n"
"Extra patches: "
@@ -6303,11 +6046,9 @@ msgstr ""
"\n"
"ɲóĥѥå: "
-#: ../version.c:639 ../version.c:864
msgid "Modified by "
msgstr "Modified by "
-#: ../version.c:646
msgid ""
"\n"
"Compiled "
@@ -6315,11 +6056,9 @@ msgstr ""
"\n"
"Compiled "
-#: ../version.c:649
msgid "by "
msgstr "by "
-#: ../version.c:660
msgid ""
"\n"
"Huge version "
@@ -6327,1886 +6066,926 @@ msgstr ""
"\n"
"Huge "
-#: ../version.c:661
+msgid ""
+"\n"
+"Big version "
+msgstr ""
+"\n"
+"Big "
+
+msgid ""
+"\n"
+"Normal version "
+msgstr ""
+"\n"
+"̾ "
+
+msgid ""
+"\n"
+"Small version "
+msgstr ""
+"\n"
+"Small "
+
+msgid ""
+"\n"
+"Tiny version "
+msgstr ""
+"\n"
+"Tiny "
+
msgid "without GUI."
msgstr "without GUI."
-#: ../version.c:662
+msgid "with GTK3 GUI."
+msgstr "with GTK3 GUI."
+
+msgid "with GTK2-GNOME GUI."
+msgstr "with GTK2-GNOME GUI."
+
+msgid "with GTK2 GUI."
+msgstr "with GTK2 GUI."
+
+msgid "with X11-Motif GUI."
+msgstr "with X11-Motif GUI."
+
+msgid "with X11-neXtaw GUI."
+msgstr "with X11-neXtaw GUI."
+
+msgid "with X11-Athena GUI."
+msgstr "with X11-Athena GUI."
+
+msgid "with Photon GUI."
+msgstr "with Photon GUI."
+
+msgid "with GUI."
+msgstr "with GUI."
+
+msgid "with Carbon GUI."
+msgstr "with Carbon GUI."
+
+msgid "with Cocoa GUI."
+msgstr "with Cocoa GUI."
+
+msgid "with (classic) GUI."
+msgstr "with (饷å) GUI."
+
msgid " Features included (+) or not (-):\n"
msgstr " ǽΰ ͭ(+)/̵(-)\n"
-#: ../version.c:667
msgid " system vimrc file: \""
msgstr " ƥ vimrc: \""
-#: ../version.c:672
msgid " user vimrc file: \""
msgstr " 桼 vimrc: \""
-#: ../version.c:677
msgid " 2nd user vimrc file: \""
msgstr " 2桼 vimrc: \""
-#: ../version.c:682
msgid " 3rd user vimrc file: \""
msgstr " 3桼 vimrc: \""
-#: ../version.c:687
msgid " user exrc file: \""
msgstr " 桼 exrc: \""
-#: ../version.c:692
msgid " 2nd user exrc file: \""
msgstr " 2桼 exrc: \""
-#: ../version.c:699
+msgid " system gvimrc file: \""
+msgstr " ƥ gvimrc: \""
+
+msgid " user gvimrc file: \""
+msgstr " 桼 gvimrc: \""
+
+msgid "2nd user gvimrc file: \""
+msgstr " 2桼 gvimrc: \""
+
+msgid "3rd user gvimrc file: \""
+msgstr " 3桼 gvimrc: \""
+
+msgid " defaults file: \""
+msgstr " ǥեȥե: \""
+
+msgid " system menu file: \""
+msgstr " ƥ˥塼: \""
+
msgid " fall-back for $VIM: \""
msgstr " ά $VIM: \""
-#: ../version.c:705
msgid " f-b for $VIMRUNTIME: \""
msgstr "ά $VIMRUNTIME: \""
-#: ../version.c:709
msgid "Compilation: "
msgstr "ѥ: "
-#: ../version.c:712
+msgid "Compiler: "
+msgstr "ѥ: "
+
msgid "Linking: "
msgstr ": "
-#: ../version.c:717
msgid " DEBUG BUILD"
msgstr "ǥХåӥ"
-#: ../version.c:767
msgid "VIM - Vi IMproved"
msgstr "VIM - Vi IMproved"
-#: ../version.c:769
msgid "version "
msgstr "version "
-#: ../version.c:770
msgid "by Bram Moolenaar et al."
msgstr "by Bram Moolenaar ¾."
-#: ../version.c:774
msgid "Vim is open source and freely distributable"
msgstr "Vim ϥץ󥽡Ǥ꼫ͳ۲ǽǤ"
-#: ../version.c:776
msgid "Help poor children in Uganda!"
msgstr "ηäޤʤҶ˱!"
-#: ../version.c:777
msgid "type :help iccf<Enter> for information "
msgstr "ܺ٤ʾ :help iccf<Enter> "
-#: ../version.c:779
msgid "type :q<Enter> to exit "
msgstr "λˤ :q<Enter> "
-#: ../version.c:780
msgid "type :help<Enter> or <F1> for on-line help"
msgstr "饤إפ :help<Enter> <F1> "
-#: ../version.c:781
-msgid "type :help version7<Enter> for version info"
-msgstr "С :help version7<Enter> "
+msgid "type :help version8<Enter> for version info"
+msgstr "С :help version8<Enter> "
-#: ../version.c:784
msgid "Running in Vi compatible mode"
msgstr "Viߴ⡼ɤư"
-#: ../version.c:785
msgid "type :set nocp<Enter> for Vim defaults"
msgstr "Vim侩ͤˤˤ :set nocp<Enter> "
-#: ../version.c:786
msgid "type :help cp-default<Enter> for info on this"
msgstr "ܺ٤ʾ :help cp-default<Enter>"
-#: ../version.c:827
+msgid "menu Help->Orphans for information "
+msgstr "ܺ٤ϥ˥塼 إ->ɻ 򻲾ȤƲ "
+
+msgid "Running modeless, typed text is inserted"
+msgstr "⡼̵Ǽ¹, פʸޤ"
+
+msgid "menu Edit->Global Settings->Toggle Insert Mode "
+msgstr "˥塼 Խ->->(鿴)⡼ "
+
+msgid " for two modes "
+msgstr " ǥ⡼ͭ "
+
+msgid "menu Edit->Global Settings->Toggle Vi Compatible"
+msgstr "˥塼 Խ->->Viߴ⡼ "
+
+msgid " for Vim defaults "
+msgstr " VimȤư "
+
msgid "Sponsor Vim development!"
msgstr "Vimγȯ礷Ƥ!"
-#: ../version.c:828
msgid "Become a registered Vim user!"
msgstr "VimϿ桼ˤʤäƤ!"
-#: ../version.c:831
msgid "type :help sponsor<Enter> for information "
msgstr "ܺ٤ʾ :help sponsor<Enter> "
-#: ../version.c:832
msgid "type :help register<Enter> for information "
msgstr "ܺ٤ʾ :help register<Enter> "
-#: ../version.c:834
msgid "menu Help->Sponsor/Register for information "
msgstr "ܺ٤ϥ˥塼 إ->ݥ󥵡/Ͽ 򻲾ȤƲ"
-#: ../window.c:119
+msgid "WARNING: Windows 95/98/ME detected"
+msgstr "ٹ: Windows 95/98/ME 򸡽Фޤ"
+
+msgid "type :help windows95<Enter> for info on this"
+msgstr "ܺ٤ʾ :help windows95<Enter>"
+
msgid "Already only one window"
msgstr "˥ɥ1Ĥޤ"
-#: ../window.c:224
msgid "E441: There is no preview window"
msgstr "E441: ץӥ塼ɥޤ"
-#: ../window.c:559
msgid "E442: Can't split topleft and botright at the same time"
msgstr "E442: ȱƱʬ䤹뤳ȤϤǤޤ"
-#: ../window.c:1228
msgid "E443: Cannot rotate when another window is split"
msgstr "E443: ¾Υɥʬ䤵ƤˤϽǤޤ"
-#: ../window.c:1803
msgid "E444: Cannot close last window"
msgstr "E444: ǸΥɥĤ뤳ȤϤǤޤ"
-#: ../window.c:1810
msgid "E813: Cannot close autocmd window"
msgstr "E813: autocmdɥĤޤ"
-#: ../window.c:1814
msgid "E814: Cannot close window, only autocmd window would remain"
msgstr "E814: autocmdɥĤʤᡢɥĤޤ"
-#: ../window.c:2717
msgid "E445: Other window contains changes"
msgstr "E445: ¾Υɥˤѹޤ"
-#: ../window.c:4805
msgid "E446: No file name under cursor"
msgstr "E446: β˥ե̾ޤ"
-msgid "List or number required"
-msgstr "ꥹȤͤɬפǤ"
-
-#~ msgid "E831: bf_key_init() called with empty password"
-#~ msgstr "E831: bf_key_init() ѥɤǸƤӽФޤ"
-
-#~ msgid "E820: sizeof(uint32_t) != 4"
-#~ msgstr "E820: sizeof(uint32_t) != 4"
-
-#~ msgid "E817: Blowfish big/little endian use wrong"
-#~ msgstr "E817: BlowfishŹΥӥå/ȥ륨ǥ󤬴ְäƤޤ"
-
-#~ msgid "E818: sha256 test failed"
-#~ msgstr "E818: sha256ΥƥȤ˼Ԥޤ"
-
-#~ msgid "E819: Blowfish test failed"
-#~ msgstr "E819: BlowfishŹΥƥȤ˼Ԥޤ"
-
-#~ msgid "Patch file"
-#~ msgstr "ѥåե"
-
-#~ msgid ""
-#~ "&OK\n"
-#~ "&Cancel"
-#~ msgstr ""
-#~ "(&O)\n"
-#~ "󥻥(&C)"
-
-#~ msgid "E240: No connection to Vim server"
-#~ msgstr "E240: Vim Фؤ³ޤ"
-
-#~ msgid "E241: Unable to send to %s"
-#~ msgstr "E241: %s 뤳ȤǤޤ"
-
-#~ msgid "E277: Unable to read a server reply"
-#~ msgstr "E277: Фαޤ"
-
-#~ msgid "E258: Unable to send to client"
-#~ msgstr "E258: 饤Ȥ뤳ȤǤޤ"
-
-#~ msgid "Save As"
-#~ msgstr "̾¸"
-
-#~ msgid "Edit File"
-#~ msgstr "եԽ"
-
-# Added at 27-Jan-2004.
-#~ msgid " (NOT FOUND)"
-#~ msgstr " (Ĥޤ)"
-
-#~ msgid "Source Vim script"
-#~ msgstr "VimץȤμ"
-
-#~ msgid "unknown"
-#~ msgstr ""
-
-#~ msgid "Edit File in new window"
-#~ msgstr "ɥǥեԽޤ"
-
-#~ msgid "Append File"
-#~ msgstr "ɲåե"
-
-#~ msgid "Window position: X %d, Y %d"
-#~ msgstr "ɥ: X %d, Y %d"
-
-#~ msgid "Save Redirection"
-#~ msgstr "쥯Ȥ¸ޤ"
-
-#~ msgid "Save View"
-#~ msgstr "ӥ塼¸ޤ"
-
-#~ msgid "Save Session"
-#~ msgstr "å¸ޤ"
-
-#~ msgid "Save Setup"
-#~ msgstr "¸ޤ"
-
-#~ msgid "E809: #< is not available without the +eval feature"
-#~ msgstr "E809: #< +eval ǽ̵ѤǤޤ"
-
-#~ msgid "E196: No digraphs in this version"
-#~ msgstr "E196: ΥС˹Ϥޤ"
-
-#~ msgid "is a device (disabled with 'opendevice' option)"
-#~ msgstr " ϥǥХǤ ('opendevice' ץDzǤޤ)"
-
-#~ msgid "Reading from stdin..."
-#~ msgstr "ɸϤɹ..."
-
-#~ msgid "[blowfish]"
-#~ msgstr "[blowfishŹ沽]"
-
-#~ msgid "[crypted]"
-#~ msgstr "[Ź沽]"
-
-#~ msgid "E821: File is encrypted with unknown method"
-#~ msgstr "E821: ե뤬̤ΤˡǰŹ沽Ƥޤ"
-
-# Added at 19-Jan-2004.
-#~ msgid "NetBeans disallows writes of unmodified buffers"
-#~ msgstr "NetBeans̤ѹΥХåե񤹤뤳ȤϵĤƤޤ"
-
-#~ msgid "Partial writes disallowed for NetBeans buffers"
-#~ msgstr "NetBeansХåեΰ񤭽ФȤϤǤޤ"
-
-#~ msgid "writing to device disabled with 'opendevice' option"
-#~ msgstr "'opendevice' ץˤǥХؤν񤭹ߤϤǤޤ"
-
-#~ msgid "E460: The resource fork would be lost (add ! to override)"
-#~ msgstr "E460: ꥽ե뤫⤷ޤ (! ɲäǶ)"
-
-#~ msgid "E851: Failed to create a new process for the GUI"
-#~ msgstr "E851: GUIѤΥץεư˼Ԥޤ"
-
-#~ msgid "E852: The child process failed to start the GUI"
-#~ msgstr "E852: ҥץGUIεư˼Ԥޤ"
-
-#~ msgid "E229: Cannot start the GUI"
-#~ msgstr "E229: GUI򳫻ϤǤޤ"
-
-#~ msgid "E230: Cannot read from \"%s\""
-#~ msgstr "E230: \"%s\"ɹळȤǤޤ"
-
-#~ msgid "E665: Cannot start GUI, no valid font found"
-#~ msgstr "E665: ͭʥեȤĤʤΤ, GUI򳫻ϤǤޤ"
-
-#~ msgid "E231: 'guifontwide' invalid"
-#~ msgstr "E231: 'guifontwide' ̵Ǥ"
-
-#~ msgid "E599: Value of 'imactivatekey' is invalid"
-#~ msgstr "E599: 'imactivatekey' ꤵ줿̵ͤǤ"
-
-#~ msgid "E254: Cannot allocate color %s"
-#~ msgstr "E254: %s οƤޤ"
-
-#~ msgid "No match at cursor, finding next"
-#~ msgstr "ΰ֤˥ޥåϤޤ, 򸡺Ƥޤ"
-
-#~ msgid "<cannot open> "
-#~ msgstr "<ޤ> "
-
-#~ msgid "E616: vim_SelFile: can't get font %s"
-#~ msgstr "E616: vim_SelFile: ե %s Ǥޤ"
-
-#~ msgid "E614: vim_SelFile: can't return to current directory"
-#~ msgstr "E614: vim_SelFile: ߤΥǥ쥯ȥޤ"
-
-#~ msgid "Pathname:"
-#~ msgstr "ѥ̾:"
-
-#~ msgid "E615: vim_SelFile: can't get current directory"
-#~ msgstr "E615: vim_SelFile: ߤΥǥ쥯ȥǤޤ"
-
-#~ msgid "OK"
-#~ msgstr "OK"
-
-#~ msgid "Cancel"
-#~ msgstr "󥻥"
-
-#~ msgid "Scrollbar Widget: Could not get geometry of thumb pixmap."
-#~ msgstr "С: ǤޤǤ."
-
-#~ msgid "Vim dialog"
-#~ msgstr "Vim "
-
-#~ msgid "E232: Cannot create BalloonEval with both message and callback"
-#~ msgstr "E232: åȥХåΤ BalloonEval Ǥޤ"
-
-#~ msgid "Input _Methods"
-#~ msgstr "ץåȥ᥽å"
-
-#~ msgid "VIM - Search and Replace..."
-#~ msgstr "VIM - ִ..."
-
-#~ msgid "VIM - Search..."
-#~ msgstr "VIM - ..."
-
-#~ msgid "Find what:"
-#~ msgstr "ʸ:"
-
-#~ msgid "Replace with:"
-#~ msgstr "ִʸ:"
-
-#~ msgid "Match whole word only"
-#~ msgstr "Τ˳Τ"
-
-#~ msgid "Match case"
-#~ msgstr "ʸ/ʸ̤"
-
-#~ msgid "Direction"
-#~ msgstr ""
-
-#~ msgid "Up"
-#~ msgstr ""
-
-#~ msgid "Down"
-#~ msgstr ""
-
-#~ msgid "Find Next"
-#~ msgstr "򸡺"
-
-#~ msgid "Replace"
-#~ msgstr "ִ"
-
-#~ msgid "Replace All"
-#~ msgstr "ִ"
-
-#~ msgid "Vim: Received \"die\" request from session manager\n"
-#~ msgstr "Vim: åޥ͡㤫 \"die\" ׵ޤ\n"
-
-#~ msgid "Close"
-#~ msgstr "Ĥ"
-
-#~ msgid "New tab"
-#~ msgstr "֥ڡ"
-
-#~ msgid "Open Tab..."
-#~ msgstr "֥ڡ򳫤..."
-
-#~ msgid "Vim: Main window unexpectedly destroyed\n"
-#~ msgstr "Vim: ᥤ󥦥ɥ԰դ˲ޤ\n"
-
-#~ msgid "&Filter"
-#~ msgstr "ե륿(&F)"
-
-#~ msgid "&Cancel"
-#~ msgstr "󥻥(&C)"
-
-#~ msgid "Directories"
-#~ msgstr "ǥ쥯ȥ"
-
-#~ msgid "Filter"
-#~ msgstr "ե륿"
-
-#~ msgid "&Help"
-#~ msgstr "إ(&H)"
-
-#~ msgid "Files"
-#~ msgstr "ե"
-
-#~ msgid "&OK"
-#~ msgstr "&OK"
-
-#~ msgid "Selection"
-#~ msgstr ""
-
-#~ msgid "Find &Next"
-#~ msgstr "򸡺(&N)"
-
-#~ msgid "&Replace"
-#~ msgstr "ִ(&R)"
-
-#~ msgid "Replace &All"
-#~ msgstr "ִ(&A)"
-
-#~ msgid "&Undo"
-#~ msgstr "ɥ(&U)"
-
-#~ msgid "E671: Cannot find window title \"%s\""
-#~ msgstr "E671: ȥ뤬 \"%s\" ΥɥϸĤޤ"
-
-#~ msgid "E243: Argument not supported: \"-%s\"; Use the OLE version."
-#~ msgstr "E243: ϥݡȤޤ: \"-%s\"; OLEǤѤƤ."
-
-#~ msgid "E672: Unable to open window inside MDI application"
-#~ msgstr "E672: MDIץǤϥɥ򳫤ޤ"
-
-#~ msgid "Close tab"
-#~ msgstr "֥ڡĤ"
-
-#~ msgid "Open tab..."
-#~ msgstr "֥ڡ򳫤"
-
-#~ msgid "Find string (use '\\\\' to find a '\\')"
-#~ msgstr "ʸ ('\\' 򸡺ˤ '\\\\')"
-
-#~ msgid "Find & Replace (use '\\\\' to find a '\\')"
-#~ msgstr "ִ ('\\' 򸡺ˤ '\\\\')"
-
-#~ msgid "Not Used"
-#~ msgstr "Ȥޤ"
-
-#~ msgid "Directory\t*.nothing\n"
-#~ msgstr "ǥ쥯ȥ\t*.nothing\n"
-
-#~ msgid ""
-#~ "Vim E458: Cannot allocate colormap entry, some colors may be incorrect"
-#~ msgstr "Vim E458: ꤬ʤΤǥȥƤޤ"
-
-#~ msgid "E250: Fonts for the following charsets are missing in fontset %s:"
-#~ msgstr "E250: ʲʸåȤΥեȤޤ %s:"
-
-#~ msgid "E252: Fontset name: %s"
-#~ msgstr "E252: եȥå̾: %s"
-
-#~ msgid "Font '%s' is not fixed-width"
-#~ msgstr "ե '%s' ϸǤϤޤ"
-
-#~ msgid "E253: Fontset name: %s"
-#~ msgstr "E253: եȥå̾: %s"
-
-#~ msgid "Font0: %s"
-#~ msgstr "ե0: %s"
-
-#~ msgid "Font1: %s"
-#~ msgstr "ե1: %s"
-
-#~ msgid "Font%<PRId64> width is not twice that of font0"
-#~ msgstr "ե%<PRId64> ե02ܤǤϤޤ"
-
-#~ msgid "Font0 width: %<PRId64>"
-#~ msgstr "ե0: %<PRId64>"
-
-#~ msgid "Font1 width: %<PRId64>"
-#~ msgstr "ե1: %<PRId64>"
-
-#~ msgid "Invalid font specification"
-#~ msgstr "̵ʥեȻǤ"
-
-#~ msgid "&Dismiss"
-#~ msgstr "Ѳ(&D)"
-
-#~ msgid "no specific match"
-#~ msgstr "ޥåΤޤ"
-
-#~ msgid "Vim - Font Selector"
-#~ msgstr "Vim - ե"
-
-#~ msgid "Name:"
-#~ msgstr "̾:"
-
-#~ msgid "Show size in Points"
-#~ msgstr "ݥȤɽ"
-
-#~ msgid "Encoding:"
-#~ msgstr "󥳡:"
-
-#~ msgid "Font:"
-#~ msgstr "ե:"
-
-#~ msgid "Style:"
-#~ msgstr ":"
-
-#~ msgid "Size:"
-#~ msgstr ":"
-
-#~ msgid "E256: Hangul automata ERROR"
-#~ msgstr "E256: ϥ󥰥륪ȥޥȥ󥨥顼"
-
-#~ msgid "E563: stat error"
-#~ msgstr "E563: stat 顼"
-
-#~ msgid "E625: cannot open cscope database: %s"
-#~ msgstr "E625: cscopeǡ١: %s 򳫤ȤǤޤ"
-
-#~ msgid "E626: cannot get cscope database information"
-#~ msgstr "E626: cscopeǡ١ξǤޤ"
-
-#~ msgid "Lua library cannot be loaded."
-#~ msgstr "Lua饤֥ɤǤޤ."
-
-#~ msgid "cannot save undo information"
-#~ msgstr "ɥ¸Ǥޤ"
-
-#~ msgid ""
-#~ "E815: Sorry, this command is disabled, the MzScheme libraries could not "
-#~ "be loaded."
-#~ msgstr ""
-#~ "E815: Υޥɤ̵Ǥ. MzScheme 饤֥ɤǤޤ."
-
-#~ msgid "invalid expression"
-#~ msgstr "̵ʼǤ"
-
-#~ msgid "expressions disabled at compile time"
-#~ msgstr "ϥѥ̵ˤƤޤ"
-
-#~ msgid "hidden option"
-#~ msgstr "ץ"
-
-#~ msgid "unknown option"
-#~ msgstr "̤ΤΥץǤ"
-
-#~ msgid "window index is out of range"
-#~ msgstr "ϰϳΥɥֹǤ"
-
-#~ msgid "couldn't open buffer"
-#~ msgstr "Хåե򳫤ޤ"
-
-#~ msgid "cannot delete line"
-#~ msgstr "Ԥäޤ"
-
-#~ msgid "cannot replace line"
-#~ msgstr "ԤִǤޤ"
-
-#~ msgid "cannot insert line"
-#~ msgstr "ԤǤޤ"
-
-#~ msgid "string cannot contain newlines"
-#~ msgstr "ʸˤϲʸޤޤ"
-
-#~ msgid "error converting Scheme values to Vim"
-#~ msgstr "SchemeͤVimؤѴ顼"
-
-#~ msgid "Vim error: ~a"
-#~ msgstr "Vim 顼: ~a"
-
-#~ msgid "Vim error"
-#~ msgstr "Vim 顼"
-
-#~ msgid "buffer is invalid"
-#~ msgstr "Хåե̵Ǥ"
-
-#~ msgid "window is invalid"
-#~ msgstr "ɥ̵Ǥ"
-
-#~ msgid "linenr out of range"
-#~ msgstr "ϰϳιֹǤ"
-
-#~ msgid "not allowed in the Vim sandbox"
-#~ msgstr "ɥܥåǤϵޤ"
-
-#~ msgid "E370: Could not load library %s"
-#~ msgstr "E370: 饤֥ %s ɤǤޤǤ"
-
-#~ msgid ""
-#~ "Sorry, this command is disabled: the Perl library could not be loaded."
-#~ msgstr ""
-#~ "Υޥɤ̵Ǥ, ʤ: Perl饤֥ɤǤޤǤ"
-#~ "."
-
-#~ msgid "E299: Perl evaluation forbidden in sandbox without the Safe module"
-#~ msgstr ""
-#~ "E299: ɥܥåǤ Safe ⥸塼ѤʤPerlץȤ϶ؤ"
-#~ "Ƥޤ"
-
-#~ msgid "E836: This Vim cannot execute :python after using :py3"
-#~ msgstr "E836: VimǤ :py3 Ȥä :python Ȥޤ"
-
-#~ msgid ""
-#~ "E263: Sorry, this command is disabled, the Python library could not be "
-#~ "loaded."
-#~ msgstr ""
-#~ "E263: Υޥɤ̵Ǥ,ʤ: Python饤֥ɤǤ"
-#~ "Ǥ."
-
-# Added at 07-Feb-2004.
-#~ msgid "E659: Cannot invoke Python recursively"
-#~ msgstr "E659: Python ƵŪ˼¹Ԥ뤳ȤϤǤޤ"
-
-#~ msgid "E837: This Vim cannot execute :py3 after using :python"
-#~ msgstr "E837: VimǤ :python Ȥä :py3 Ȥޤ"
-
-#~ msgid "E265: $_ must be an instance of String"
-#~ msgstr "E265: $_ ʸΥ󥹥󥹤ǤʤФʤޤ"
-
-#~ msgid ""
-#~ "E266: Sorry, this command is disabled, the Ruby library could not be "
-#~ "loaded."
-#~ msgstr ""
-#~ "E266: Υޥɤ̵Ǥ,ʤ: Ruby饤֥ɤǤޤ"
-#~ "Ǥ."
-
-#~ msgid "E267: unexpected return"
-#~ msgstr "E267: ͽ return Ǥ"
-
-#~ msgid "E268: unexpected next"
-#~ msgstr "E268: ͽ next Ǥ"
-
-#~ msgid "E269: unexpected break"
-#~ msgstr "E269: ͽ break Ǥ"
-
-#~ msgid "E270: unexpected redo"
-#~ msgstr "E270: ͽ redo Ǥ"
-
-#~ msgid "E271: retry outside of rescue clause"
-#~ msgstr "E271: rescue γ retry Ǥ"
-
-#~ msgid "E272: unhandled exception"
-#~ msgstr "E272: 갷ʤä㳰ޤ"
-
-#~ msgid "E273: unknown longjmp status %d"
-#~ msgstr "E273: ̤Τlongjmp: %d"
-
-#~ msgid "Toggle implementation/definition"
-#~ msgstr "ڤؤ"
-
-#~ msgid "Show base class of"
-#~ msgstr "Υ饹δɽ"
-
-#~ msgid "Show overridden member function"
-#~ msgstr "С饤ɤ줿дؿɽ"
-
-#~ msgid "Retrieve from file"
-#~ msgstr "ե뤫"
-
-#~ msgid "Retrieve from project"
-#~ msgstr "ץȤ"
-
-#~ msgid "Retrieve from all projects"
-#~ msgstr "ƤΥץȤ"
-
-#~ msgid "Retrieve"
-#~ msgstr ""
-
-#~ msgid "Show source of"
-#~ msgstr "Υɽ"
-
-#~ msgid "Find symbol"
-#~ msgstr "Ĥܥ"
-
-#~ msgid "Browse class"
-#~ msgstr "饹򻲾"
-
-#~ msgid "Show class in hierarchy"
-#~ msgstr "ؤǥ饹ɽ"
-
-#~ msgid "Show class in restricted hierarchy"
-#~ msgstr "ꤵ줿ؤǥ饹ɽ"
-
-#~ msgid "Xref refers to"
-#~ msgstr "Xref λ"
-
-#~ msgid "Xref referred by"
-#~ msgstr "Xref Ȥ"
-
-#~ msgid "Xref has a"
-#~ msgstr "Xref ΤΤäƤޤ"
-
-#~ msgid "Xref used by"
-#~ msgstr "Xref Ѥ"
-
-#~ msgid "Show docu of"
-#~ msgstr "ʸϤɽ"
-
-#~ msgid "Generate docu for"
-#~ msgstr "ʸϤ"
-
-#~ msgid ""
-#~ "Cannot connect to SNiFF+. Check environment (sniffemacs must be found in "
-#~ "$PATH).\n"
-#~ msgstr ""
-#~ "SNiFF+³Ǥޤ. ĶåƤ(sniffemacs $PATH "
-#~ "ʤФʤޤ).\n"
-
-#~ msgid "E274: Sniff: Error during read. Disconnected"
-#~ msgstr "E274: Sniff: ɹ˥顼ȯޤ. Ǥޤ"
-
-#~ msgid "SNiFF+ is currently "
-#~ msgstr "SNiFF+ ξ֤ϡ"
-
-#~ msgid "not "
-#~ msgstr "̤"
-
-#~ msgid "connected"
-#~ msgstr "³פǤ"
-
-#~ msgid "E275: Unknown SNiFF+ request: %s"
-#~ msgstr "E275: ̤Τ SNiFF+ ꥯȤǤ: %s"
-
-#~ msgid "E276: Error connecting to SNiFF+"
-#~ msgstr "E276: SNiFF+ ؤ³Υ顼Ǥ"
-
-#~ msgid "E278: SNiFF+ not connected"
-#~ msgstr "E278: SNiFF+ ³Ƥޤ"
-
-#~ msgid "E279: Not a SNiFF+ buffer"
-#~ msgstr "E279: SNiFF+ Хåեޤ"
-
-#~ msgid "Sniff: Error during write. Disconnected"
-#~ msgstr "Sniff: ˥顼ȯΤǤޤ"
-
-#~ msgid "invalid buffer number"
-#~ msgstr "̵ʥХåեֹǤ"
-
-#~ msgid "not implemented yet"
-#~ msgstr "ޤƤޤ"
-
-#~ msgid "cannot set line(s)"
-#~ msgstr "ԤǤޤ"
-
-#~ msgid "invalid mark name"
-#~ msgstr "̵ʥޡ̾Ǥ"
-
-#~ msgid "mark not set"
-#~ msgstr "ޡꤵƤޤ"
-
-#~ msgid "row %d column %d"
-#~ msgstr " %d %d"
-
-#~ msgid "cannot insert/append line"
-#~ msgstr "Ԥ/ɲäǤޤ"
-
-#~ msgid "line number out of range"
-#~ msgstr "ϰϳιֹǤ"
-
-#~ msgid "unknown flag: "
-#~ msgstr "̤ΤΥե饰: "
-
-#~ msgid "unknown vimOption"
-#~ msgstr "̤Τ vimOption Ǥ"
-
-#~ msgid "keyboard interrupt"
-#~ msgstr "ܡɳ"
-
-#~ msgid "vim error"
-#~ msgstr "vim 顼"
-
-#~ msgid "cannot create buffer/window command: object is being deleted"
-#~ msgstr ""
-#~ "Хåե/ɥޥɤǤޤ: ֥Ȥõ"
-#~ "ޤ"
-
-#~ msgid ""
-#~ "cannot register callback command: buffer/window is already being deleted"
-#~ msgstr ""
-#~ "ХåޥɤϿǤޤ: Хåե/ɥ˾õ"
-#~ ""
-
-#~ msgid ""
-#~ "E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-"
-#~ "dev@vim.org"
-#~ msgstr ""
-#~ "E280: TCL ̿Ū顼: reflist !? vim-dev@vim.org 𤷤Ƥ"
-
-#~ msgid "cannot register callback command: buffer/window reference not found"
-#~ msgstr ""
-#~ "ХåޥɤϿǤޤ: Хåե/ɥλȤĤ"
-#~ "ޤ"
-
-#~ msgid ""
-#~ "E571: Sorry, this command is disabled: the Tcl library could not be "
-#~ "loaded."
-#~ msgstr ""
-#~ "E571: Υޥɤ̵Ǥ,ʤ: Tcl饤֥ɤǤޤ"
-#~ "Ǥ."
-
-#~ msgid "E572: exit code %d"
-#~ msgstr "E572: λ %d"
-
-#~ msgid "cannot get line"
-#~ msgstr "ԤǤޤ"
-
-#~ msgid "Unable to register a command server name"
-#~ msgstr "̿᥵Ф̾ϿǤޤ"
-
-#~ msgid "E248: Failed to send command to the destination program"
-#~ msgstr "E248: ŪΥץؤΥޥ˼Ԥޤ"
-
-#~ msgid "E573: Invalid server id used: %s"
-#~ msgstr "E573: ̵ʥIDȤޤ: %s"
-
-#~ msgid "E251: VIM instance registry property is badly formed. Deleted!"
-#~ msgstr "E251: VIM ΤϿץѥƥǤ. õޤ!"
-
-#~ msgid "netbeans is not supported with this GUI\n"
-#~ msgstr "netbeans ϤGUIǤѤǤޤ\n"
-
-#~ msgid "This Vim was not compiled with the diff feature."
-#~ msgstr "Vimˤdiffǽޤ(ѥ)."
-
-#~ msgid "'-nb' cannot be used: not enabled at compile time\n"
-#~ msgstr "'-nb' ԲǽǤ: ѥ̵ˤƤޤ\n"
-
-#~ msgid "Vim: Error: Failure to start gvim from NetBeans\n"
-#~ msgstr "Vim: 顼: NetBeansgvim򥹥ȤǤޤ\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "Where case is ignored prepend / to make flag upper case"
-#~ msgstr ""
-#~ "\n"
-#~ "羮ʸ̵뤵ʸˤ뤿 / ֤Ƥ"
-
-#~ msgid "-register\t\tRegister this gvim for OLE"
-#~ msgstr "-register\t\tgvimOLEȤϿ"
-
-#~ msgid "-unregister\t\tUnregister gvim for OLE"
-#~ msgstr "-unregister\t\tgvimOLEϿ"
-
-#~ msgid "-g\t\t\tRun using GUI (like \"gvim\")"
-#~ msgstr "-g\t\t\tGUIǵư (\"gvim\" Ʊ)"
-
-#~ msgid "-f or --nofork\tForeground: Don't fork when starting GUI"
-#~ msgstr "-f or --nofork\tե饦: GUIϤȤforkʤ"
-
-#~ msgid "-f\t\t\tDon't use newcli to open window"
-#~ msgstr "-f\t\t\tɥ򳫤Τ newcli Ѥʤ"
-
-#~ msgid "-dev <device>\t\tUse <device> for I/O"
-#~ msgstr "-dev <device>\t\tI/O <device> Ѥ"
-
-#~ msgid "-U <gvimrc>\t\tUse <gvimrc> instead of any .gvimrc"
-#~ msgstr "-U <gvimrc>\t\t.gvimrc <gvimrc> Ȥ"
-
-#~ msgid "-x\t\t\tEdit encrypted files"
-#~ msgstr "-x\t\t\tŹ沽줿եԽ"
-
-#~ msgid "-display <display>\tConnect vim to this particular X-server"
-#~ msgstr "-display <display>\tvimꤷ X Ф³"
-
-#~ msgid "-X\t\t\tDo not connect to X server"
-#~ msgstr "-X\t\t\tXФ³ʤ"
-
-#~ msgid "--remote <files>\tEdit <files> in a Vim server if possible"
-#~ msgstr "--remote <files>\tǽʤVimФ <files> Խ"
-
-#~ msgid "--remote-silent <files> Same, don't complain if there is no server"
-#~ msgstr "--remote-silent <files> Ʊ, Ф̵ƤٹʸϤʤ"
-
-#~ msgid ""
-#~ "--remote-wait <files> As --remote but wait for files to have been edited"
-#~ msgstr "--remote-wait <files>\t--remote եԽΤԤ"
-
-#~ msgid ""
-#~ "--remote-wait-silent <files> Same, don't complain if there is no server"
-#~ msgstr ""
-#~ "--remote-wait-silent <files> Ʊ, Ф̵ƤٹʸϤʤ"
-
-#~ msgid ""
-#~ "--remote-tab[-wait][-silent] <files> As --remote but use tab page per "
-#~ "file"
-#~ msgstr ""
-#~ "--remote-tab[-wait][-silent] <files> --remoteǥե1ĤˤĤ1ĤΥ"
-#~ "ڡ򳫤"
-
-#~ msgid "--remote-send <keys>\tSend <keys> to a Vim server and exit"
-#~ msgstr "--remote-send <keys>\tVimФ <keys> ƽλ"
-
-#~ msgid ""
-#~ "--remote-expr <expr>\tEvaluate <expr> in a Vim server and print result"
-#~ msgstr "--remote-expr <expr>\tФ <expr> ¹ԤƷ̤ɽ"
-
-#~ msgid "--serverlist\t\tList available Vim server names and exit"
-#~ msgstr "--serverlist\t\tVim̾ΰɽƽλ"
-
-#~ msgid "--servername <name>\tSend to/become the Vim server <name>"
-#~ msgstr "--servername <name>\tVim <name> /̾ꤹ"
-
-#~ msgid ""
-#~ "\n"
-#~ "Arguments recognised by gvim (Motif version):\n"
-#~ msgstr ""
-#~ "\n"
-#~ "gvimˤäƲᤵ(MotifС):\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "Arguments recognised by gvim (neXtaw version):\n"
-#~ msgstr ""
-#~ "\n"
-#~ "gvimˤäƲᤵ(neXtawС):\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "Arguments recognised by gvim (Athena version):\n"
-#~ msgstr ""
-#~ "\n"
-#~ "gvimˤäƲᤵ(AthenaС):\n"
-
-#~ msgid "-display <display>\tRun vim on <display>"
-#~ msgstr "-display <display>\t<display> vim¹Ԥ"
-
-#~ msgid "-iconic\t\tStart vim iconified"
-#~ msgstr "-iconic\t\tǾ֤vimư"
-
-#~ msgid "-background <color>\tUse <color> for the background (also: -bg)"
-#~ msgstr "-background <color>\tطʿ <color> Ȥ(Ʊ: -bg)"
-
-#~ msgid "-foreground <color>\tUse <color> for normal text (also: -fg)"
-#~ msgstr "-foreground <color>\tʿ <color> Ȥ(Ʊ: -fg)"
-
-#~ msgid "-font <font>\t\tUse <font> for normal text (also: -fn)"
-#~ msgstr "-font <font>\t\tƥɽ <font> Ȥ(Ʊ: -fn)"
-
-#~ msgid "-boldfont <font>\tUse <font> for bold text"
-#~ msgstr "-boldfont <font>\t <font> Ȥ"
-
-#~ msgid "-italicfont <font>\tUse <font> for italic text"
-#~ msgstr "-italicfont <for>\tλ <font> Ȥ"
-
-#~ msgid "-geometry <geom>\tUse <geom> for initial geometry (also: -geom)"
-#~ msgstr "-geometry <geom>\t֤ <geom> Ȥ(Ʊ: -geom)"
-
-#~ msgid "-borderwidth <width>\tUse a border width of <width> (also: -bw)"
-#~ msgstr "-borderwidth <width>\t <width> ˤ(Ʊ: -bw)"
-
-#~ msgid ""
-#~ "-scrollbarwidth <width> Use a scrollbar width of <width> (also: -sw)"
-#~ msgstr ""
-#~ "-scrollbarwidth <width> С <width> ˤ(Ʊ: -sw)"
-
-#~ msgid "-menuheight <height>\tUse a menu bar height of <height> (also: -mh)"
-#~ msgstr ""
-#~ "-menuheight <height>\t˥塼Сι⤵ <height> ˤ(Ʊ: -mh)"
-
-#~ msgid "-reverse\t\tUse reverse video (also: -rv)"
-#~ msgstr "-reverse\t\tȿžѤ(Ʊ: -rv)"
-
-#~ msgid "+reverse\t\tDon't use reverse video (also: +rv)"
-#~ msgstr "+reverse\t\tȿžѤʤ(Ʊ: +rv)"
-
-#~ msgid "-xrm <resource>\tSet the specified resource"
-#~ msgstr "-xrm <resource>\tΥ꥽Ѥ"
-
-#~ msgid ""
-#~ "\n"
-#~ "Arguments recognised by gvim (GTK+ version):\n"
-#~ msgstr ""
-#~ "\n"
-#~ "gvimˤäƲᤵ(GTK+С):\n"
-
-#~ msgid "-display <display>\tRun vim on <display> (also: --display)"
-#~ msgstr "-display <display>\t<display> vim¹Ԥ(Ʊ: --display)"
-
-#~ msgid "--role <role>\tSet a unique role to identify the main window"
-#~ msgstr "--role <role>\tᥤ󥦥ɥ̤դ(role)ꤹ"
-
-#~ msgid "--socketid <xid>\tOpen Vim inside another GTK widget"
-#~ msgstr "--socketid <xid>\tۤʤGTK widgetVim򳫤"
-
-#~ msgid "--echo-wid\t\tMake gvim echo the Window ID on stdout"
-#~ msgstr "--echo-wid\t\tɥIDɸϤ˽Ϥ"
-
-#~ msgid "-P <parent title>\tOpen Vim inside parent application"
-#~ msgstr "-P <ƤΥȥ>\tVimƥץꥱǵư"
-
-#~ msgid "--windowid <HWND>\tOpen Vim inside another win32 widget"
-#~ msgstr "--windowid <HWND>\tۤʤWin32 widgetVim򳫤"
-
-#~ msgid "No display"
-#~ msgstr "ǥץ쥤Ĥޤ"
-
-#~ msgid ": Send failed.\n"
-#~ msgstr ": ˼Ԥޤ.\n"
-
-#~ msgid ": Send failed. Trying to execute locally\n"
-#~ msgstr ": ˼Ԥޤ. Ǥμ¹ԤߤƤޤ\n"
-
-#~ msgid "%d of %d edited"
-#~ msgstr "%d (%d ) ΥեԽޤ"
-
-#~ msgid "No display: Send expression failed.\n"
-#~ msgstr "ǥץ쥤ޤ: ˼Ԥޤ.\n"
-
-#~ msgid ": Send expression failed.\n"
-#~ msgstr ": ˼Ԥޤ.\n"
-
-#~ msgid "E543: Not a valid codepage"
-#~ msgstr "E543: ̵ʥɥڡǤ"
-
-#~ msgid "E284: Cannot set IC values"
-#~ msgstr "E284: ICͤǤޤ"
-
-#~ msgid "E285: Failed to create input context"
-#~ msgstr "E285: ץåȥƥȤκ˼Ԥޤ"
-
-#~ msgid "E286: Failed to open input method"
-#~ msgstr "E286: ץåȥ᥽åɤΥץ˼Ԥޤ"
-
-#~ msgid "E287: Warning: Could not set destroy callback to IM"
-#~ msgstr "E287: ٹ: IM˲ХåǤޤǤ"
-
-#~ msgid "E288: input method doesn't support any style"
-#~ msgstr "E288: ץåȥ᥽åɤϤɤʥ⥵ݡȤޤ"
-
-#~ msgid "E289: input method doesn't support my preedit type"
-#~ msgstr "E289: ץåȥ᥽åɤ my preedit type 򥵥ݡȤޤ"
+#, c-format
+msgid "E447: Can't find file \"%s\" in path"
+msgstr "E447: pathˤ \"%s\" Ȥե뤬ޤ"
-#~ msgid "E843: Error while updating swap file crypt"
-#~ msgstr "E843: åץեΰŹ򹹿˥顼ȯޤ"
+#, c-format
+msgid "E799: Invalid ID: %ld (must be greater than or equal to 1)"
+msgstr "E799: ̵ ID: %ld (1 ʾǤʤФʤޤ)"
-#~ msgid ""
-#~ "E833: %s is encrypted and this version of Vim does not support encryption"
-#~ msgstr ""
-#~ "E833: %s ϤΥСVimǥݡȤƤʤǰŹ沽Ƥޤ"
+#, c-format
+msgid "E801: ID already taken: %ld"
+msgstr "E801: ID ϤǤǤ: %ld"
-#~ msgid "Swap file is encrypted: \"%s\""
-#~ msgstr "åץեϰŹ沽Ƥޤ: \"%s\""
+msgid "List or number required"
+msgstr "ꥹȤͤɬפǤ"
-#~ msgid ""
-#~ "\n"
-#~ "If you entered a new crypt key but did not write the text file,"
-#~ msgstr ""
-#~ "\n"
-#~ "Ź業ϤȤ˥ƥȥե¸Ƥʤ,"
+#, c-format
+msgid "E802: Invalid ID: %ld (must be greater than or equal to 1)"
+msgstr "E802: ̵ ID: %ld (1 ʾǤʤФʤޤ)"
-#~ msgid ""
-#~ "\n"
-#~ "enter the new crypt key."
-#~ msgstr ""
-#~ "\n"
-#~ "Ź業ϤƤ."
+#, c-format
+msgid "E803: ID not found: %ld"
+msgstr "E803: ID Ϥޤ: %ld"
-#~ msgid ""
-#~ "\n"
-#~ "If you wrote the text file after changing the crypt key press enter"
-#~ msgstr ""
-#~ "\n"
-#~ "Ź業ѤȤ˥ƥȥե¸, ƥȥե"
+#, c-format
+msgid "E370: Could not load library %s"
+msgstr "E370: 饤֥ %s ɤǤޤǤ"
-#~ msgid ""
-#~ "\n"
-#~ "to use the same key for text file and swap file"
-#~ msgstr ""
-#~ "\n"
-#~ "åץեƱŹ業Ȥenter򲡤Ƥ."
+msgid "Sorry, this command is disabled: the Perl library could not be loaded."
+msgstr ""
+"Υޥɤ̵Ǥ, ʤ: Perl饤֥ɤǤޤǤ."
-#~ msgid "Using crypt key from swap file for the text file.\n"
-#~ msgstr "åץե뤫Ź業ƥȥե˻Ȥޤ.\n"
+msgid "E299: Perl evaluation forbidden in sandbox without the Safe module"
+msgstr ""
+"E299: ɥܥåǤ Safe ⥸塼ѤʤPerlץȤ϶ؤ"
+"Ƥޤ"
-#~ msgid ""
-#~ "\n"
-#~ " [not usable with this version of Vim]"
-#~ msgstr ""
-#~ "\n"
-#~ " [VimСǤϻѤǤޤ]"
+msgid "Edit with &multiple Vims"
+msgstr "ʣVimԽ (&M)"
-#~ msgid "Tear off this menu"
-#~ msgstr "Υ˥塼ڤ"
+msgid "Edit with single &Vim"
+msgstr "1ĤVimԽ (&V)"
-#~ msgid "Select Directory dialog"
-#~ msgstr "ǥ쥯ȥ"
+msgid "Diff with Vim"
+msgstr "VimǺʬɽ"
-#~ msgid "Save File dialog"
-#~ msgstr "ե¸"
+msgid "Edit with &Vim"
+msgstr "VimԽ (&V)"
-#~ msgid "Open File dialog"
-#~ msgstr "եɹ"
+#. Now concatenate
+msgid "Edit with existing Vim - "
+msgstr "ưѤVimԽ - "
-#~ msgid "E338: Sorry, no file browser in console mode"
-#~ msgstr ""
-#~ "E338: 󥽡⡼ɤǤϥե֥饦Ȥޤ, ʤ"
+msgid "Edits the selected file(s) with Vim"
+msgstr "򤷤եVimԽ"
-#~ msgid "Vim: preserving files...\n"
-#~ msgstr "Vim: ե¸...\n"
+msgid "Error creating process: Check if gvim is in your path!"
+msgstr "ץκ˼: gvimĶѿPATHˤ뤫ǧƤ!"
-#~ msgid "Vim: Finished.\n"
-#~ msgstr "Vim: λޤ.\n"
+msgid "gvimext.dll error"
+msgstr "gvimext.dll 顼"
-#~ msgid "ERROR: "
-#~ msgstr "顼: "
+msgid "Path length too long!"
+msgstr "ѥĹ᤮ޤ!"
-#~ msgid ""
-#~ "\n"
-#~ "[bytes] total alloc-freed %<PRIu64>-%<PRIu64>, in use %<PRIu64>, peak use "
-#~ "%<PRIu64>\n"
-#~ msgstr ""
-#~ "\n"
-#~ "[(Х)] - %<PRIu64>-%<PRIu64>, %<PRIu64>, ԡ"
-#~ " %<PRIu64>\n"
+msgid "--No lines in buffer--"
+msgstr "--Хåե˹Ԥޤ--"
-#~ msgid ""
-#~ "[calls] total re/malloc()'s %<PRIu64>, total free()'s %<PRIu64>\n"
-#~ "\n"
-#~ msgstr ""
-#~ "[ƽ] re/malloc() %<PRIu64>, free() %<PRIu64>\n"
-#~ "\n"
+#.
+#. * The error messages that can be shared are included here.
+#. * Excluded are errors that are only used once and debugging messages.
+#.
+msgid "E470: Command aborted"
+msgstr "E470: ޥɤǤޤ"
-#~ msgid "E340: Line is becoming too long"
-#~ msgstr "E340: ԤĹʤ᤮ޤ"
+msgid "E471: Argument required"
+msgstr "E471: ɬפǤ"
-#~ msgid "E341: Internal error: lalloc(%<PRId64>, )"
-#~ msgstr "E341: 顼: lalloc(%<PRId64>,)"
+msgid "E10: \\ should be followed by /, ? or &"
+msgstr "E10: \\ θ / ? & ǤʤФʤޤ"
-#~ msgid "E547: Illegal mouseshape"
-#~ msgstr "E547: 'mouseshape' Ǥ"
+msgid "E11: Invalid in command-line window; <CR> executes, CTRL-C quits"
+msgstr "E11: ޥɥ饤Ǥ̵Ǥ; <CR>Ǽ¹, CTRL-CǤ"
-#~ msgid "Enter encryption key: "
-#~ msgstr "Ź沽ѤΥϤƤ: "
+msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search"
+msgstr ""
+"E12: ߤΥǥ쥯ȥ䥿Ǥexrc/vimrcΥޥɤϵĤޤ"
-#~ msgid "Enter same key again: "
-#~ msgstr "⤦ƱϤƤ: "
+msgid "E171: Missing :endif"
+msgstr "E171: :endif ޤ"
-#~ msgid "Keys don't match!"
-#~ msgstr "פޤ"
+msgid "E600: Missing :endtry"
+msgstr "E600: :endtry ޤ"
-#~ msgid "Cannot connect to Netbeans #2"
-#~ msgstr "Netbeans #2 ³Ǥޤ"
+msgid "E170: Missing :endwhile"
+msgstr "E170: :endwhile ޤ"
-#~ msgid "Cannot connect to Netbeans"
-#~ msgstr "Netbeans ³Ǥޤ"
+msgid "E170: Missing :endfor"
+msgstr "E170: :endfor ޤ"
-#~ msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
-#~ msgstr ""
-#~ "E668: NetBeans³եΥ⡼ɤ꤬ޤ: \"%s\""
+msgid "E588: :endwhile without :while"
+msgstr "E588: :while Τʤ :endwhile ޤ"
-#~ msgid "read from Netbeans socket"
-#~ msgstr "Netbeans ΥåȤɹ"
+msgid "E588: :endfor without :for"
+msgstr "E588: :endfor Τʤ :for ޤ"
-#~ msgid "E658: NetBeans connection lost for buffer %<PRId64>"
-#~ msgstr "E658: Хåե %<PRId64> NetBeans ³ޤ"
+msgid "E13: File exists (add ! to override)"
+msgstr "E13: ե뤬¸ߤޤ (! ɲäǾ)"
-#~ msgid "E838: netbeans is not supported with this GUI"
-#~ msgstr "E838: NetBeansϤGUIˤбƤޤ"
+msgid "E472: Command failed"
+msgstr "E472: ޥɤԤޤ"
-#~ msgid "E511: netbeans already connected"
-#~ msgstr "E511: NetBeansϴ³Ƥޤ"
+#, c-format
+msgid "E234: Unknown fontset: %s"
+msgstr "E234: ̤ΤΥեȥå: %s"
-#~ msgid "E505: %s is read-only (add ! to override)"
-#~ msgstr "E505: %s ɹѤǤ (ˤ ! ɲ)"
+#, c-format
+msgid "E235: Unknown font: %s"
+msgstr "E235: ̤ΤΥե: %s"
-#~ msgid "E775: Eval feature not available"
-#~ msgstr "E775: ɾǽ̵ˤʤäƤޤ"
+#, c-format
+msgid "E236: Font \"%s\" is not fixed-width"
+msgstr "E236: ե \"%s\" ϸǤϤޤ"
-#~ msgid "freeing %<PRId64> lines"
-#~ msgstr "%<PRId64> Ԥ"
+msgid "E473: Internal error"
+msgstr "E473: 顼Ǥ"
-#~ msgid "E530: Cannot change term in GUI"
-#~ msgstr "E530: GUIǤ 'term' ѹǤޤ"
+msgid "Interrupted"
+msgstr "ޤޤ"
-#~ msgid "E531: Use \":gui\" to start the GUI"
-#~ msgstr "E531: GUI򥹥Ȥˤ \":gui\" ѤƤ"
+msgid "E14: Invalid address"
+msgstr "E14: ̵ʥɥ쥹Ǥ"
-#~ msgid "E617: Cannot be changed in the GTK+ 2 GUI"
-#~ msgstr "E617: GTK+2 GUIǤѹǤޤ"
+msgid "E474: Invalid argument"
+msgstr "E474: ̵ʰǤ"
-#~ msgid "E596: Invalid font(s)"
-#~ msgstr "E596: ̵ʥեȤǤ"
+#, c-format
+msgid "E475: Invalid argument: %s"
+msgstr "E475: ̵ʰǤ: %s"
-#~ msgid "E597: can't select fontset"
-#~ msgstr "E597: եȥåȤǤޤ"
+#, c-format
+msgid "E15: Invalid expression: %s"
+msgstr "E15: ̵ʼǤ: %s"
-#~ msgid "E598: Invalid fontset"
-#~ msgstr "E598: ̵ʥեȥåȤǤ"
+msgid "E16: Invalid range"
+msgstr "E16: ̵ϰϤǤ"
-#~ msgid "E533: can't select wide font"
-#~ msgstr "E533: 磻ɥեȤǤޤ"
+msgid "E476: Invalid command"
+msgstr "E476: ̵ʥޥɤǤ"
-#~ msgid "E534: Invalid wide font"
-#~ msgstr "E534: ̵ʥ磻ɥեȤǤ"
+#, c-format
+msgid "E17: \"%s\" is a directory"
+msgstr "E17: \"%s\" ϥǥ쥯ȥǤ"
-#~ msgid "E538: No mouse support"
-#~ msgstr "E538: ޥϥݡȤޤ"
+#, c-format
+msgid "E364: Library call failed for \"%s()\""
+msgstr "E364: \"%s\"() Υ饤֥ƽФ˼Ԥޤ"
-#~ msgid "cannot open "
-#~ msgstr "ޤ "
+#, c-format
+msgid "E448: Could not load library function %s"
+msgstr "E448: 饤֥δؿ %s ɤǤޤǤ"
-#~ msgid "VIM: Can't open window!\n"
-#~ msgstr "VIM: ɥ򳫤ޤ!\n"
+msgid "E19: Mark has invalid line number"
+msgstr "E19: ޡ̵ʹֹ椬ꤵƤޤ"
-#~ msgid "Need Amigados version 2.04 or later\n"
-#~ msgstr "AmigadosΥС 2.04ʹߤɬפǤ\n"
+msgid "E20: Mark not set"
+msgstr "E20: ޡꤵƤޤ"
-#~ msgid "Need %s version %<PRId64>\n"
-#~ msgstr "%s ΥС %<PRId64> ɬפǤ\n"
+msgid "E21: Cannot make changes, 'modifiable' is off"
+msgstr "E21: 'modifiable' դʤΤ, ѹǤޤ"
-#~ msgid "Cannot open NIL:\n"
-#~ msgstr "NIL򳫤ޤ:\n"
+msgid "E22: Scripts nested too deep"
+msgstr "E22: ץȤҤ᤮ޤ"
-#~ msgid "Cannot create "
-#~ msgstr "Ǥޤ "
+msgid "E23: No alternate file"
+msgstr "E23: եϤޤ"
-#~ msgid "Vim exiting with %d\n"
-#~ msgstr "Vim %d ǽλޤ\n"
+msgid "E24: No such abbreviation"
+msgstr "E24: Τ褦ûϤϤޤ"
-#~ msgid "cannot change console mode ?!\n"
-#~ msgstr "󥽡⡼ɤѹǤޤ?!\n"
+msgid "E477: No ! allowed"
+msgstr "E477: ! ϵĤƤޤ"
-#~ msgid "mch_get_shellsize: not a console??\n"
-#~ msgstr "mch_get_shellsize: 󥽡ǤϤʤ??\n"
+msgid "E25: GUI cannot be used: Not enabled at compile time"
+msgstr "E25: GUIϻԲǽǤ: ѥ̵ˤƤޤ"
-#~ msgid "E360: Cannot execute shell with -f option"
-#~ msgstr "E360: -f ץǥ¹ԤǤޤ"
+msgid "E26: Hebrew cannot be used: Not enabled at compile time\n"
+msgstr "E26: إ֥饤ϻԲǽǤ: ѥ̵ˤƤޤ\n"
-#~ msgid "Cannot execute "
-#~ msgstr "¹ԤǤޤ "
+msgid "E27: Farsi cannot be used: Not enabled at compile time\n"
+msgstr "E27: ڥ륷ϻԲǽǤ: ѥ̵ˤƤޤ\n"
-#~ msgid "shell "
-#~ msgstr " "
+msgid "E800: Arabic cannot be used: Not enabled at compile time\n"
+msgstr "E800: ӥϻԲǽǤ: ѥ̵ˤƤޤ\n"
-#~ msgid " returned\n"
-#~ msgstr " ޤ\n"
+#, c-format
+msgid "E28: No such highlight group name: %s"
+msgstr "E28: Τ褦̾Υϥ饤ȥ롼פϤޤ: %s"
-#~ msgid "ANCHOR_BUF_SIZE too small."
-#~ msgstr "ANCHOR_BUF_SIZE ᤮ޤ."
+msgid "E29: No inserted text yet"
+msgstr "E29: ޤƥȤƤޤ"
-#~ msgid "I/O ERROR"
-#~ msgstr "ϥ顼"
+msgid "E30: No previous command line"
+msgstr "E30: ˥ޥɹԤޤ"
-#~ msgid "Message"
-#~ msgstr "å"
+msgid "E31: No such mapping"
+msgstr "E31: Τ褦ʥޥåԥ󥰤Ϥޤ"
-#~ msgid "'columns' is not 80, cannot execute external commands"
-#~ msgstr "'columns' 80ǤϤʤ, ޥɤ¹ԤǤޤ"
+msgid "E479: No match"
+msgstr "E479: Ϥޤ"
-#~ msgid "E237: Printer selection failed"
-#~ msgstr "E237: ץ󥿤˼Ԥޤ"
+#, c-format
+msgid "E480: No match: %s"
+msgstr "E480: Ϥޤ: %s"
-#~ msgid "to %s on %s"
-#~ msgstr "%s (%s )"
+msgid "E32: No file name"
+msgstr "E32: ե̾ޤ"
-#~ msgid "E613: Unknown printer font: %s"
-#~ msgstr "E613: ̤ΤΥץ󥿥ץǤ: %s"
+msgid "E33: No previous substitute regular expression"
+msgstr "E33: ɽִޤ¹ԤƤޤ"
-#~ msgid "E238: Print error: %s"
-#~ msgstr "E238: 顼: %s"
+msgid "E34: No previous command"
+msgstr "E34: ޥɤޤ¹ԤƤޤ"
-#~ msgid "Printing '%s'"
-#~ msgstr "Ƥޤ: '%s'"
+msgid "E35: No previous regular expression"
+msgstr "E35: ɽޤ¹ԤƤޤ"
-#~ msgid "E244: Illegal charset name \"%s\" in font name \"%s\""
-#~ msgstr "E244: ʸå̾ \"%s\" Ǥ (ե̾ \"%s\")"
+msgid "E481: No range allowed"
+msgstr "E481: ϰϻϵĤƤޤ"
-#~ msgid "E245: Illegal char '%c' in font name \"%s\""
-#~ msgstr "E245: '%c' ʸǤ (ե̾ \"%s\")"
+msgid "E36: Not enough room"
+msgstr "E36: ɥ˽ʬʹ⤵⤷ޤ"
-#~ msgid "Vim: Double signal, exiting\n"
-#~ msgstr "Vim: 2ŤΥʥΤ, λޤ\n"
+#, c-format
+msgid "E247: no registered server named \"%s\""
+msgstr "E247: %s Ȥ̾Ͽ줿СϤޤ"
-#~ msgid "Vim: Caught deadly signal %s\n"
-#~ msgstr "Vim: ̿Ūʥ %s Τޤ\n"
+#, c-format
+msgid "E482: Can't create file %s"
+msgstr "E482: ե %s Ǥޤ"
-#~ msgid "Vim: Caught deadly signal\n"
-#~ msgstr "Vim: ̿ŪʥΤޤ\n"
+msgid "E483: Can't get temp file name"
+msgstr "E483: ե̾Ǥޤ"
-#~ msgid "Opening the X display took %<PRId64> msec"
-#~ msgstr "XФؤ³ %<PRId64> ߥäޤ"
+#, c-format
+msgid "E484: Can't open file %s"
+msgstr "E484: ե \"%s\" 򳫤ޤ"
-#~ msgid ""
-#~ "\n"
-#~ "Vim: Got X error\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Vim: X Υ顼򸡽Фޤr\n"
+#, c-format
+msgid "E485: Can't read file %s"
+msgstr "E485: ե %s ɹޤ"
-#~ msgid "Testing the X display failed"
-#~ msgstr "X display Υå˼Ԥޤ"
+msgid "E37: No write since last change (add ! to override)"
+msgstr "E37: Ǹѹ¸Ƥޤ (! ɲäѹ˴)"
-#~ msgid "Opening the X display timed out"
-#~ msgstr "X display open ॢȤޤ"
+msgid "E37: No write since last change"
+msgstr "E37: Ǹѹ¸Ƥޤ"
-#~ msgid ""
-#~ "\n"
-#~ "Cannot execute shell sh\n"
-#~ msgstr ""
-#~ "\n"
-#~ "sh ¹ԤǤޤ\n"
+msgid "E38: Null argument"
+msgstr "E38: Ǥ"
-#~ msgid ""
-#~ "\n"
-#~ "Cannot create pipes\n"
-#~ msgstr ""
-#~ "\n"
-#~ "ѥפǤޤ\n"
+msgid "E39: Number expected"
+msgstr "E39: ͤ׵ᤵƤޤ"
-#~ msgid ""
-#~ "\n"
-#~ "Cannot fork\n"
-#~ msgstr ""
-#~ "\n"
-#~ "fork Ǥޤ\n"
+#, c-format
+msgid "E40: Can't open errorfile %s"
+msgstr "E40: 顼ե %s 򳫤ޤ"
-#~ msgid ""
-#~ "\n"
-#~ "Command terminated\n"
-#~ msgstr ""
-#~ "\n"
-#~ "ޥɤǤޤ\n"
+msgid "E233: cannot open display"
+msgstr "E233: ǥץ쥤򳫤ޤ"
-#~ msgid "XSMP lost ICE connection"
-#~ msgstr "XSMP ICE³򼺤ޤ"
+msgid "E41: Out of memory!"
+msgstr "E41: ꤬Ԥ̤Ƥޤ!"
-#~ msgid "Opening the X display failed"
-#~ msgstr "X display open ˼Ԥޤ"
+msgid "Pattern not found"
+msgstr "ѥϸĤޤǤ"
-#~ msgid "XSMP handling save-yourself request"
-#~ msgstr "XSMP save-yourself׵Ƥޤ"
+#, c-format
+msgid "E486: Pattern not found: %s"
+msgstr "E486: ѥϸĤޤǤ: %s"
-#~ msgid "XSMP opening connection"
-#~ msgstr "XSMP ³򳫻ϤƤޤ"
+msgid "E487: Argument must be positive"
+msgstr "E487: ͤǤʤФʤޤ"
-#~ msgid "XSMP ICE connection watch failed"
-#~ msgstr "XSMP ICE³Ԥ褦Ǥ"
+msgid "E459: Cannot go back to previous directory"
+msgstr "E459: Υǥ쥯ȥޤ"
-#~ msgid "XSMP SmcOpenConnection failed: %s"
-#~ msgstr "XSMP SmcOpenConnectionԤޤ: %s"
+msgid "E42: No Errors"
+msgstr "E42: 顼Ϥޤ"
-#~ msgid "At line"
-#~ msgstr ""
+msgid "E776: No location list"
+msgstr "E776: ꥹȤϤޤ"
-#~ msgid "Could not load vim32.dll!"
-#~ msgstr "vim32.dll ɤǤޤǤ"
+msgid "E43: Damaged match string"
+msgstr "E43: ʸ»Ƥޤ"
-#~ msgid "VIM Error"
-#~ msgstr "VIM顼"
+msgid "E44: Corrupted regexp program"
+msgstr "E44: ɽץǤ"
-#~ msgid "Could not fix up function pointers to the DLL!"
-#~ msgstr "DLLؿݥ󥿤ǤޤǤ"
+msgid "E45: 'readonly' option is set (add ! to override)"
+msgstr "E45: 'readonly' ץꤵƤޤ (! ɲäǾ)"
-#~ msgid "shell returned %d"
-#~ msgstr "뤬 %d ǽλޤ"
+#, c-format
+msgid "E46: Cannot change read-only variable \"%s\""
+msgstr "E46: ɼѿ \"%s\" ˤͤǤޤ"
-#~ msgid "Vim: Caught %s event\n"
-#~ msgstr "Vim: ٥ %s \n"
+#, c-format
+msgid "E794: Cannot set variable in the sandbox: \"%s\""
+msgstr "E794: ɥܥåǤѿ \"%s\" ͤǤޤ"
-#~ msgid "close"
-#~ msgstr "Ĥ"
+msgid "E713: Cannot use empty key for Dictionary"
+msgstr "E713: 񷿤˶ΥȤȤϤǤޤ"
-#~ msgid "logoff"
-#~ msgstr ""
+msgid "E715: Dictionary required"
+msgstr "E715: 񷿤ɬפǤ"
-#~ msgid "shutdown"
-#~ msgstr "åȥ"
+#, c-format
+msgid "E684: list index out of range: %ld"
+msgstr "E684: ꥹȤΥǥåϰϳǤ: %ld"
-#~ msgid "E371: Command not found"
-#~ msgstr "E371: ޥɤޤ"
-
-#~ msgid ""
-#~ "VIMRUN.EXE not found in your $PATH.\n"
-#~ "External commands will not pause after completion.\n"
-#~ "See :help win32-vimrun for more information."
-#~ msgstr ""
-#~ "VIMRUN.EXE $PATH ˸Ĥޤ.\n"
-#~ "ޥɤνλ˰ߤ򤷤ޤ.\n"
-#~ "ܺ٤ :help win32-vimrun 򻲾ȤƤ."
-
-#~ msgid "Vim Warning"
-#~ msgstr "Vimηٹ"
-
-#~ msgid "Error file"
-#~ msgstr "顼ե"
-
-#~ msgid "E868: Error building NFA with equivalence class!"
-#~ msgstr "E868: 饹ޤNFAۤ˼Ԥޤ!"
-
-#~ msgid "E878: (NFA) Could not allocate memory for branch traversal!"
-#~ msgstr "E878: (NFA) ߲Υ֥˽ʬʥƤޤ!"
-
-#~ msgid "Warning: Cannot find word list \"%s_%s.spl\" or \"%s_ascii.spl\""
-#~ msgstr ""
-#~ "ٹ: ñꥹ \"%s_%s.spl\" \"%s_ascii.spl\" ϸĤޤ"
-
-#~ msgid "Conversion in %s not supported"
-#~ msgstr "%s ѴϥݡȤƤޤ"
-
-#~ msgid "E845: Insufficient memory, word list will be incomplete"
-#~ msgstr "E845: ꤬­ʤΤǡñꥹȤԴǤ"
-
-#~ msgid "E430: Tag file path truncated for %s\n"
-#~ msgstr "E430: եΥѥ %s ڤΤƤޤ\n"
-
-#~ msgid "new shell started\n"
-#~ msgstr "ưޤ\n"
-
-#~ msgid "Used CUT_BUFFER0 instead of empty selection"
-#~ msgstr "ΰΤCUT_BUFFER0Ѥޤ"
-
-#~ msgid "No undo possible; continue anyway"
-#~ msgstr "ǽʥɥϤޤ: Ȥꤢ³ޤ"
-
-#~ msgid "E832: Non-encrypted file has encrypted undo file: %s"
-#~ msgstr ""
-#~ "E832: Ź沽ե뤬Ź沽줿ɥեȤäƤޤ: %s"
-
-#~ msgid "E826: Undo file decryption failed: %s"
-#~ msgstr "E826: Ź沽줿ɥեβɤ˼Ԥޤ: %s"
-
-#~ msgid "E827: Undo file is encrypted: %s"
-#~ msgstr "E827: ɥե뤬Ź沽Ƥޤ: %s"
-
-#~ msgid ""
-#~ "\n"
-#~ "MS-Windows 16/32-bit GUI version"
-#~ msgstr ""
-#~ "\n"
-#~ "MS-Windows 16/32 ӥå GUI "
-
-#~ msgid ""
-#~ "\n"
-#~ "MS-Windows 64-bit GUI version"
-#~ msgstr ""
-#~ "\n"
-#~ "MS-Windows 64 ӥå GUI "
-
-#~ msgid ""
-#~ "\n"
-#~ "MS-Windows 32-bit GUI version"
-#~ msgstr ""
-#~ "\n"
-#~ "MS-Windows 32 ӥå GUI "
-
-#~ msgid " in Win32s mode"
-#~ msgstr " in Win32s ⡼"
-
-#~ msgid " with OLE support"
-#~ msgstr " with OLE ݡ"
-
-#~ msgid ""
-#~ "\n"
-#~ "MS-Windows 64-bit console version"
-#~ msgstr ""
-#~ "\n"
-#~ "MS-Windows 64 ӥå 󥽡 "
-
-#~ msgid ""
-#~ "\n"
-#~ "MS-Windows 32-bit console version"
-#~ msgstr ""
-#~ "\n"
-#~ "MS-Windows 32 ӥå 󥽡 "
-
-#~ msgid ""
-#~ "\n"
-#~ "MS-Windows 16-bit version"
-#~ msgstr ""
-#~ "\n"
-#~ "MS-Windows 16 ӥå "
-
-#~ msgid ""
-#~ "\n"
-#~ "32-bit MS-DOS version"
-#~ msgstr ""
-#~ "\n"
-#~ "32 ӥå MS-DOS "
-
-#~ msgid ""
-#~ "\n"
-#~ "16-bit MS-DOS version"
-#~ msgstr ""
-#~ "\n"
-#~ "16 ӥå MS-DOS "
-
-#~ msgid ""
-#~ "\n"
-#~ "MacOS X (unix) version"
-#~ msgstr ""
-#~ "\n"
-#~ "MacOS X (unix) "
-
-#~ msgid ""
-#~ "\n"
-#~ "MacOS X version"
-#~ msgstr ""
-#~ "\n"
-#~ "MacOS X "
-
-#~ msgid ""
-#~ "\n"
-#~ "MacOS version"
-#~ msgstr ""
-#~ "\n"
-#~ "MacOS "
-
-#~ msgid ""
-#~ "\n"
-#~ "OpenVMS version"
-#~ msgstr ""
-#~ "\n"
-#~ "OpenVMS "
-
-#~ msgid ""
-#~ "\n"
-#~ "Big version "
-#~ msgstr ""
-#~ "\n"
-#~ "Big "
-
-#~ msgid ""
-#~ "\n"
-#~ "Normal version "
-#~ msgstr ""
-#~ "\n"
-#~ "̾ "
-
-#~ msgid ""
-#~ "\n"
-#~ "Small version "
-#~ msgstr ""
-#~ "\n"
-#~ "Small "
-
-#~ msgid ""
-#~ "\n"
-#~ "Tiny version "
-#~ msgstr ""
-#~ "\n"
-#~ "Tiny "
-
-#~ msgid "with GTK2-GNOME GUI."
-#~ msgstr "with GTK2-GNOME GUI."
+#, c-format
+msgid "E118: Too many arguments for function: %s"
+msgstr "E118: ؿΰ¿᤮ޤ: %s"
-#~ msgid "with GTK2 GUI."
-#~ msgstr "with GTK2 GUI."
+#, c-format
+msgid "E716: Key not present in Dictionary: %s"
+msgstr "E716: 񷿤˥¸ߤޤ: %s"
-#~ msgid "with X11-Motif GUI."
-#~ msgstr "with X11-Motif GUI."
+msgid "E714: List required"
+msgstr "E714: ꥹȷɬפǤ"
-#~ msgid "with X11-neXtaw GUI."
-#~ msgstr "with X11-neXtaw GUI."
+#, c-format
+msgid "E712: Argument of %s must be a List or Dictionary"
+msgstr "E712: %s ΰϥꥹȷޤϼ񷿤ǤʤФʤޤ"
-#~ msgid "with X11-Athena GUI."
-#~ msgstr "with X11-Athena GUI."
+msgid "E47: Error while reading errorfile"
+msgstr "E47: 顼եɹ˥顼ȯޤ"
-#~ msgid "with Photon GUI."
-#~ msgstr "with Photon GUI."
+msgid "E48: Not allowed in sandbox"
+msgstr "E48: ɥܥåǤϵޤ"
-#~ msgid "with GUI."
-#~ msgstr "with GUI."
+msgid "E523: Not allowed here"
+msgstr "E523: ǤϵĤޤ"
-#~ msgid "with Carbon GUI."
-#~ msgstr "with Carbon GUI."
+msgid "E359: Screen mode setting not supported"
+msgstr "E359: ꡼⡼ɤˤбƤޤ"
-#~ msgid "with Cocoa GUI."
-#~ msgstr "with Cocoa GUI."
+msgid "E49: Invalid scroll size"
+msgstr "E49: ̵ʥ̤Ǥ"
-#~ msgid "with (classic) GUI."
-#~ msgstr "with (饷å) GUI."
+msgid "E91: 'shell' option is empty"
+msgstr "E91: 'shell' ץ󤬶Ǥ"
-#~ msgid " system gvimrc file: \""
-#~ msgstr " ƥ gvimrc: \""
+msgid "E255: Couldn't read in sign data!"
+msgstr "E255: sign ΥǡɹޤǤ"
-#~ msgid " user gvimrc file: \""
-#~ msgstr " 桼 gvimrc: \""
+msgid "E72: Close error on swap file"
+msgstr "E72: åץեΥ顼Ǥ"
-#~ msgid "2nd user gvimrc file: \""
-#~ msgstr " 2桼 gvimrc: \""
+msgid "E73: tag stack empty"
+msgstr "E73: åǤ"
-#~ msgid "3rd user gvimrc file: \""
-#~ msgstr " 3桼 gvimrc: \""
+msgid "E74: Command too complex"
+msgstr "E74: ޥɤʣ᤮ޤ"
-#~ msgid " system menu file: \""
-#~ msgstr " ƥ˥塼: \""
+msgid "E75: Name too long"
+msgstr "E75: ̾Ĺ᤮ޤ"
-#~ msgid "Compiler: "
-#~ msgstr "ѥ: "
+msgid "E76: Too many ["
+msgstr "E76: [ ¿᤮ޤ"
-#~ msgid "menu Help->Orphans for information "
-#~ msgstr "ܺ٤ϥ˥塼 إעɻ 򻲾ȤƲ "
+msgid "E77: Too many file names"
+msgstr "E77: ե̾¿᤮ޤ"
-#~ msgid "Running modeless, typed text is inserted"
-#~ msgstr "⡼̵Ǽ¹, פʸޤ"
+msgid "E488: Trailing characters"
+msgstr "E488: ;ʬʸˤޤ"
-#~ msgid "menu Edit->Global Settings->Toggle Insert Mode "
-#~ msgstr "˥塼 Խꢪ(鿴)⡼ "
+msgid "E78: Unknown mark"
+msgstr "E78: ̤ΤΥޡ"
-#~ msgid " for two modes "
-#~ msgstr " ǥ⡼ͭ "
+msgid "E79: Cannot expand wildcards"
+msgstr "E79: 磻ɥɤŸǤޤ"
-#~ msgid "menu Edit->Global Settings->Toggle Vi Compatible"
-#~ msgstr "˥塼 ԽꢪViߴ⡼ "
+msgid "E591: 'winheight' cannot be smaller than 'winminheight'"
+msgstr "E591: 'winheight' 'winminheight' 꾮Ǥޤ"
-#~ msgid " for Vim defaults "
-#~ msgstr " VimȤư "
+msgid "E592: 'winwidth' cannot be smaller than 'winminwidth'"
+msgstr "E592: 'winwidth' 'winminwidth' 꾮Ǥޤ"
-#~ msgid "WARNING: Windows 95/98/ME detected"
-#~ msgstr " ٹ: Windows 95/98/Me 򸡽 "
+msgid "E80: Error while writing"
+msgstr "E80: Υ顼"
-#~ msgid "type :help windows95<Enter> for info on this"
-#~ msgstr " ܺ٤ʾ :help windows95<Enter> "
+msgid "Zero count"
+msgstr ""
-#~ msgid "Edit with &multiple Vims"
-#~ msgstr "ʣVimԽ (&M)"
+msgid "E81: Using <SID> not in a script context"
+msgstr "E81: ץȰʳ<SID>Ȥޤ"
-#~ msgid "Edit with single &Vim"
-#~ msgstr "1ĤVimԽ (&V)"
+msgid "E449: Invalid expression received"
+msgstr "E449: ̵ʼޤ"
-#~ msgid "Diff with Vim"
-#~ msgstr "VimǺʬɽ"
+msgid "E463: Region is guarded, cannot modify"
+msgstr "E463: ΰ褬ݸƤΤ, ѹǤޤ"
-#~ msgid "Edit with &Vim"
-#~ msgstr "VimԽ (&V)"
+msgid "E744: NetBeans does not allow changes in read-only files"
+msgstr "E744: NetBeans ɹѥեѹ뤳Ȥޤ"
-#~ msgid "Edit with existing Vim - "
-#~ msgstr "ưѤVimԽ - "
+#, c-format
+msgid "E685: Internal error: %s"
+msgstr "E685: 顼Ǥ: %s"
-#~ msgid "Edits the selected file(s) with Vim"
-#~ msgstr "򤷤եVimԽ"
+msgid "E363: pattern uses more memory than 'maxmempattern'"
+msgstr "E363: ѥ 'maxmempattern' ʾΥѤޤ"
-#~ msgid "Error creating process: Check if gvim is in your path!"
-#~ msgstr "ץκ˼: gvimĶѿPATHˤ뤫ǧƤ!"
+msgid "E749: empty buffer"
+msgstr "E749: ХåեǤ"
-#~ msgid "gvimext.dll error"
-#~ msgstr "gvimext.dll 顼"
+#, c-format
+msgid "E86: Buffer %ld does not exist"
+msgstr "E86: Хåե %ld Ϥޤ"
-#~ msgid "Path length too long!"
-#~ msgstr "ѥĹޤ!"
+msgid "E682: Invalid search pattern or delimiter"
+msgstr "E682: ѥ󤫶ڤ국椬Ǥ"
-#~ msgid "E234: Unknown fontset: %s"
-#~ msgstr "E234: ̤ΤΥեȥå: %s"
+msgid "E139: File is loaded in another buffer"
+msgstr "E139: Ʊ̾Υե뤬¾ΥХåեɹޤƤޤ"
-#~ msgid "E235: Unknown font: %s"
-#~ msgstr "E235: ̤ΤΥե: %s"
+#, c-format
+msgid "E764: Option '%s' is not set"
+msgstr "E764: ץ '%s' ꤵƤޤ"
-#~ msgid "E236: Font \"%s\" is not fixed-width"
-#~ msgstr "E236: ե \"%s\" ϸǤϤޤ"
+msgid "E850: Invalid register name"
+msgstr "E850: ̵ʥ쥸̾Ǥ"
-#~ msgid "E448: Could not load library function %s"
-#~ msgstr "E448: 饤֥δؿ %s ɤǤޤǤ"
+#, c-format
+msgid "E919: Directory not found in '%s': \"%s\""
+msgstr "E919: ǥ쥯ȥ꤬ '%s' ˤޤ: \"%s\""
-#~ msgid "E26: Hebrew cannot be used: Not enabled at compile time\n"
-#~ msgstr "E26: إ֥饤ϻԲǽǤ: ѥ̵ˤƤޤ\n"
+msgid "search hit TOP, continuing at BOTTOM"
+msgstr "ޤǸΤDzޤ"
-#~ msgid "E27: Farsi cannot be used: Not enabled at compile time\n"
-#~ msgstr "E27: ڥ륷ϻԲǽǤ: ѥ̵ˤƤޤ\n"
+msgid "search hit BOTTOM, continuing at TOP"
+msgstr "ޤǸΤǾޤ"
-#~ msgid "E800: Arabic cannot be used: Not enabled at compile time\n"
-#~ msgstr ""
-#~ "E800: ӥϻԲǽǤ: ѥ̵ˤƤޤ\n"
+#, c-format
+msgid "Need encryption key for \"%s\""
+msgstr "Ź業ɬפǤ: \"%s\""
-#~ msgid "E247: no registered server named \"%s\""
-#~ msgstr "E247: %s Ȥ̾Ͽ줿ФϤޤ"
+msgid "empty keys are not allowed"
+msgstr "ΥϵĤƤޤ"
-#~ msgid "E233: cannot open display"
-#~ msgstr "E233: ǥץ쥤򳫤ޤ"
+msgid "dictionary is locked"
+msgstr "ϥåƤޤ"
-#~ msgid "E449: Invalid expression received"
-#~ msgstr "E449: ̵ʼޤ"
+msgid "list is locked"
+msgstr "ꥹȤϥåƤޤ"
-#~ msgid "E463: Region is guarded, cannot modify"
-#~ msgstr "E463: ΰ褬ݸƤΤ, ѹǤޤ"
+#, c-format
+msgid "failed to add key '%s' to dictionary"
+msgstr "˥ '%s' ɲäΤ˼Ԥޤ"
-#~ msgid "E744: NetBeans does not allow changes in read-only files"
-#~ msgstr "E744: NetBeans ɹѥեѹ뤳Ȥޤ"
+#, c-format
+msgid "index must be int or slice, not %s"
+msgstr "ǥå %s ǤϤʤ饤ˤƤ"
-#~ msgid "Need encryption key for \"%s\""
-#~ msgstr "Ź業ɬפǤ: \"%s\""
+#, c-format
+msgid "expected str() or unicode() instance, but got %s"
+msgstr "str() ⤷ unicode() Υ󥹥󥹤ԤƤΤ %s Ǥ"
-#~ msgid "empty keys are not allowed"
-#~ msgstr "ΥϵĤƤޤ"
+#, c-format
+msgid "expected bytes() or str() instance, but got %s"
+msgstr "bytes() ⤷ str() Υ󥹥󥹤ԤƤΤ %s Ǥ"
-#~ msgid "dictionary is locked"
-#~ msgstr "ϥåƤޤ"
+#, c-format
+msgid ""
+"expected int(), long() or something supporting coercing to long(), but got %s"
+msgstr "long() ѴǽʤΤԤƤΤ %s Ǥ"
-#~ msgid "list is locked"
-#~ msgstr "ꥹȤϥåƤޤ"
+#, c-format
+msgid "expected int() or something supporting coercing to int(), but got %s"
+msgstr "int() ѴǽʤΤԤƤΤ %s Ǥ"
-#~ msgid "failed to add key '%s' to dictionary"
-#~ msgstr "˥ '%s' ɲäΤ˼Ԥޤ"
+msgid "value is too large to fit into C int type"
+msgstr "C int ȤƤͤ礭᤮ޤ"
-#~ msgid "index must be int or slice, not %s"
-#~ msgstr "ǥå %s ǤϤʤ饤ˤƤ"
+msgid "value is too small to fit into C int type"
+msgstr "C int ȤƤͤ᤮ޤ"
-#~ msgid "expected str() or unicode() instance, but got %s"
-#~ msgstr ""
-#~ "str() ⤷ unicode() Υ󥹥󥹤ԤƤΤ %s Ǥ"
+msgid "number must be greater than zero"
+msgstr "ͤ 0 礭ʤФʤޤ"
-#~ msgid "expected bytes() or str() instance, but got %s"
-#~ msgstr "bytes() ⤷ str() Υ󥹥󥹤ԤƤΤ %s Ǥ"
+msgid "number must be greater or equal to zero"
+msgstr "ͤ 0 ʾǤʤФʤޤ"
-#~ msgid ""
-#~ "expected int(), long() or something supporting coercing to long(), but "
-#~ "got %s"
-#~ msgstr "long() ѴǽʤΤԤƤΤ %s Ǥ"
+msgid "can't delete OutputObject attributes"
+msgstr "OutputObject°äޤ"
-#~ msgid "expected int() or something supporting coercing to int(), but got %s"
-#~ msgstr "int() ѴǽʤΤԤƤΤ %s Ǥ"
+#, c-format
+msgid "invalid attribute: %s"
+msgstr "̵°Ǥ: %s"
-#~ msgid "value is too large to fit into C int type"
-#~ msgstr "C int ȤƤͤ礭᤮ޤ"
+msgid "E264: Python: Error initialising I/O objects"
+msgstr "E264: Python: I/O֥Ȥν顼"
-#~ msgid "value is too small to fit into C int type"
-#~ msgstr "C int ȤƤͤ᤮ޤ"
+msgid "failed to change directory"
+msgstr "ѹ˼Ԥޤ"
-#~ msgid "number must be greater then zero"
-#~ msgstr "ͤ 0 礭ʤФʤޤ"
+#, c-format
+msgid "expected 3-tuple as imp.find_module() result, but got %s"
+msgstr "imp.find_module() %s ֤ޤ (: 3 ǤΥץ)"
-#~ msgid "number must be greater or equal to zero"
-#~ msgstr "ͤ 0 ʾǤʤФʤޤ"
+#, c-format
+msgid "expected 3-tuple as imp.find_module() result, but got tuple of size %d"
+msgstr "imp.find_module() %d ǤΥץ֤ޤ (: 3)"
-#~ msgid "can't delete OutputObject attributes"
-#~ msgstr "OutputObject°äޤ"
+msgid "internal error: imp.find_module returned tuple with NULL"
+msgstr "顼: imp.find_module NULL ޤॿץ֤ޤ"
-#~ msgid "invalid attribute: %s"
-#~ msgstr "̵°Ǥ: %s"
+msgid "cannot delete vim.Dictionary attributes"
+msgstr "vim.Dictionary°Ͼäޤ"
-#~ msgid "E264: Python: Error initialising I/O objects"
-#~ msgstr "E264: Python: I/O֥Ȥν顼"
+msgid "cannot modify fixed dictionary"
+msgstr "ꤵ줿ѹǤޤ"
-#~ msgid "failed to change directory"
-#~ msgstr "ѹ˼Ԥޤ"
+#, c-format
+msgid "cannot set attribute %s"
+msgstr "° %s Ǥޤ"
-#~ msgid "expected 3-tuple as imp.find_module() result, but got %s"
-#~ msgstr "imp.find_module() %s ֤ޤ (: 2 ǤΥץ)"
+msgid "hashtab changed during iteration"
+msgstr "ƥ졼 hashtab ѹޤ"
-#~ msgid ""
-#~ "expected 3-tuple as imp.find_module() result, but got tuple of size %d"
-#~ msgstr "impl.find_module() %d ǤΥץ֤ޤ (: 2)"
+#, c-format
+msgid "expected sequence element of size 2, but got sequence of size %d"
+msgstr "󥹤ǿˤ 2 ԤƤޤ %d Ǥ"
-#~ msgid "internal error: imp.find_module returned tuple with NULL"
-#~ msgstr "顼: imp.find_module NULL ޤॿץ֤ޤ"
+msgid "list constructor does not accept keyword arguments"
+msgstr "ꥹȤΥ󥹥ȥ饯ϥɰդޤ"
-#~ msgid "cannot delete vim.Dictionary attributes"
-#~ msgstr "vim.Dictionary°Ͼäޤ"
+msgid "list index out of range"
+msgstr "ꥹϰϳΥǥåǤ"
-#~ msgid "cannot modify fixed dictionary"
-#~ msgstr "ꤵ줿ѹǤޤ"
+#. No more suitable format specifications in python-2.3
+#, c-format
+msgid "internal error: failed to get vim list item %d"
+msgstr "顼: vimΥꥹ %d μ˼Ԥޤ"
-#~ msgid "cannot set attribute %s"
-#~ msgstr "° %s Ǥޤ"
+msgid "slice step cannot be zero"
+msgstr "饤Υƥåפ 0 ϻǤޤ"
-#~ msgid "hashtab changed during iteration"
-#~ msgstr "ƥ졼 hashtab ѹޤ"
+#, c-format
+msgid "attempt to assign sequence of size greater than %d to extended slice"
+msgstr "Ĺ %d γĥ饤ˡĹ饤Ƥ褦Ȥޤ"
-#~ msgid "expected sequence element of size 2, but got sequence of size %d"
-#~ msgstr "󥹤ǿˤ 2 ԤƤޤ %d Ǥ"
+#, c-format
+msgid "internal error: no vim list item %d"
+msgstr "顼: vimΥꥹ %d Ϥޤ"
-#~ msgid "list constructor does not accept keyword arguments"
-#~ msgstr "ꥹȤΥ󥹥ȥ饯ϥɰդޤ"
+msgid "internal error: not enough list items"
+msgstr "顼: ꥹȤ˽ʬǤޤ"
-#~ msgid "list index out of range"
-#~ msgstr "ꥹϰϳΥǥåǤ"
+msgid "internal error: failed to add item to list"
+msgstr "顼: ꥹȤؤɲä˼Ԥޤ"
-#~ msgid "internal error: failed to get vim list item %d"
-#~ msgstr "顼: vimΥꥹ %d μ˼Ԥޤ"
+#, c-format
+msgid "attempt to assign sequence of size %d to extended slice of size %d"
+msgstr "Ĺ %d Υ饤 %d γĥ饤˳Ƥ褦Ȥޤ"
-#~ msgid "failed to add item to list"
-#~ msgstr "ꥹȤؤɲä˼Ԥޤ"
+msgid "failed to add item to list"
+msgstr "ꥹȤؤɲä˼Ԥޤ"
-#~ msgid "internal error: no vim list item %d"
-#~ msgstr "顼: vimΥꥹ %d Ϥޤ"
+msgid "cannot delete vim.List attributes"
+msgstr "vim.List °Ͼäޤ"
-#~ msgid "internal error: failed to add item to list"
-#~ msgstr "顼: ꥹȤؤɲä˼Ԥޤ"
+msgid "cannot modify fixed list"
+msgstr "ꤵ줿ꥹȤѹǤޤ"
-#~ msgid "cannot delete vim.List attributes"
-#~ msgstr "vim.List °Ͼäޤ"
+#, c-format
+msgid "unnamed function %s does not exist"
+msgstr "̵̾ؿ %s ¸ߤޤ"
-#~ msgid "cannot modify fixed list"
-#~ msgstr "ꤵ줿ꥹȤѹǤޤ"
+#, c-format
+msgid "function %s does not exist"
+msgstr "ؿ %s ޤ"
-#~ msgid "unnamed function %s does not exist"
-#~ msgstr "̵̾ؿ %s ¸ߤޤ"
+#, c-format
+msgid "failed to run function %s"
+msgstr "ؿ %s μ¹Ԥ˼Ԥޤ"
-#~ msgid "function %s does not exist"
-#~ msgstr "ؿ %s ޤ"
+msgid "unable to get option value"
+msgstr "ץͤϼǤޤ"
-#~ msgid "function constructor does not accept keyword arguments"
-#~ msgstr "ؿΥ󥹥ȥ饯ϥɰդޤ"
+msgid "internal error: unknown option type"
+msgstr "顼: ̤ΤΥץ󷿤Ǥ"
-#~ msgid "failed to run function %s"
-#~ msgstr "ؿ %s μ¹Ԥ˼Ԥޤ"
+msgid "problem while switching windows"
+msgstr "ɥڴ꤬ȯޤ"
-#~ msgid "problem while switching windows"
-#~ msgstr "ɥڴ꤬ȯޤ"
+#, c-format
+msgid "unable to unset global option %s"
+msgstr "Х륪ץ %s ϤǤޤ"
-#~ msgid "unable to unset global option %s"
-#~ msgstr "Х륪ץ %s ϤǤޤ"
+#, c-format
+msgid "unable to unset option %s which does not have global value"
+msgstr "Х̵ͤץ %s ϤǤޤ"
-#~ msgid "unable to unset option %s which does not have global value"
-#~ msgstr "Х̵ͤץ %s ϤǤޤ"
+msgid "attempt to refer to deleted tab page"
+msgstr "줿֤򻲾Ȥ褦Ȥޤ"
-#~ msgid "attempt to refer to deleted tab page"
-#~ msgstr "줿֤򻲾Ȥ褦Ȥޤ"
+msgid "no such tab page"
+msgstr "Τ褦ʥ֥ڡϤޤ"
-#~ msgid "no such tab page"
-#~ msgstr "Τ褦ʥ֥ڡϤޤ"
+msgid "attempt to refer to deleted window"
+msgstr "줿ɥ򻲾Ȥ褦Ȥޤ"
-#~ msgid "attempt to refer to deleted window"
-#~ msgstr "줿ɥ򻲾Ȥ褦Ȥޤ"
+msgid "readonly attribute: buffer"
+msgstr "ɹ°: Хåե"
-#~ msgid "readonly attribute: buffer"
-#~ msgstr "ɹ°: Хåե"
+msgid "cursor position outside buffer"
+msgstr "֤Хåեγ¦Ǥ"
-#~ msgid "cursor position outside buffer"
-#~ msgstr "֤Хåեγ¦Ǥ"
+msgid "no such window"
+msgstr "Τ褦ʥɥϤޤ"
-#~ msgid "no such window"
-#~ msgstr "Τ褦ʥɥϤޤ"
+msgid "attempt to refer to deleted buffer"
+msgstr "줿Хåե򻲾Ȥ褦Ȥޤ"
-#~ msgid "attempt to refer to deleted buffer"
-#~ msgstr "줿Хåե򻲾Ȥ褦Ȥޤ"
+msgid "failed to rename buffer"
+msgstr "Хåե̾ѹ˼Ԥޤ"
-#~ msgid "failed to rename buffer"
-#~ msgstr "Хåե̾ѹ˼Ԥޤ"
+msgid "mark name must be a single character"
+msgstr "ޡ̾1ʸΥե٥åȤǤʤФʤޤ"
-#~ msgid "mark name must be a single character"
-#~ msgstr "ޡ̾1ʸΥե٥åȤǤʤФʤޤ"
+#, c-format
+msgid "expected vim.Buffer object, but got %s"
+msgstr "vim.Buffer֥ȤԤƤΤ %s Ǥ"
-#~ msgid "expected vim.Buffer object, but got %s"
-#~ msgstr "vim.Buffer֥ȤԤƤΤ %s Ǥ"
+#, c-format
+msgid "failed to switch to buffer %d"
+msgstr "ꤵ줿Хåե %d ؤڤؤ˼Ԥޤ"
-#~ msgid "failed to switch to buffer %d"
-#~ msgstr "ꤵ줿Хåե %d ؤڤؤ˼Ԥޤ"
+#, c-format
+msgid "expected vim.Window object, but got %s"
+msgstr "vim.Window֥ȤԤƤΤ %s Ǥ"
-#~ msgid "expected vim.Window object, but got %s"
-#~ msgstr "vim.Window֥ȤԤƤΤ %s Ǥ"
+msgid "failed to find window in the current tab page"
+msgstr "ߤΥ֤ˤϻꤵ줿ɥޤǤ"
-#~ msgid "failed to find window in the current tab page"
-#~ msgstr "ߤΥ֤ˤϻꤵ줿ɥޤǤ"
+msgid "did not switch to the specified window"
+msgstr "ꤵ줿ɥڤؤޤǤ"
-#~ msgid "did not switch to the specified window"
-#~ msgstr "ꤵ줿ɥڤؤޤǤ"
+#, c-format
+msgid "expected vim.TabPage object, but got %s"
+msgstr "vim.TabPage֥ȤԤƤΤ %s Ǥ"
-#~ msgid "expected vim.TabPage object, but got %s"
-#~ msgstr "vim.TabPage֥ȤԤƤΤ %s Ǥ"
+msgid "did not switch to the specified tab page"
+msgstr "ꤵ줿֥ڡڤؤޤǤ"
-#~ msgid "did not switch to the specified tab page"
-#~ msgstr "ꤵ줿֥ڡڤؤޤǤ"
+msgid "failed to run the code"
+msgstr "ɤμ¹Ԥ˼Ԥޤ"
-#~ msgid "failed to run the code"
-#~ msgstr "ɤμ¹Ԥ˼Ԥޤ"
+msgid "E858: Eval did not return a valid python object"
+msgstr "E858: ɾͭpython֥Ȥ֤ޤǤ"
-#~ msgid "E858: Eval did not return a valid python object"
-#~ msgstr "E858: ɾͭpython֥Ȥ֤ޤǤ"
+msgid "E859: Failed to convert returned python object to vim value"
+msgstr "E859: ֤줿python֥ȤvimͤѴǤޤǤ"
-#~ msgid "E859: Failed to convert returned python object to vim value"
-#~ msgstr "E859: ֤줿python֥ȤvimͤѴǤޤǤ"
+#, c-format
+msgid "unable to convert %s to vim dictionary"
+msgstr "%s vimμ񷿤ѴǤޤ"
-#~ msgid "unable to convert %s to vim dictionary"
-#~ msgstr "%s vimμ񷿤ѴǤޤ"
+#, c-format
+msgid "unable to convert %s to vim list"
+msgstr "%s vimΥꥹȤѴǤޤ"
-#~ msgid "unable to convert %s to vim structure"
-#~ msgstr "%s vimι¤ΤѴǤޤ"
+#, c-format
+msgid "unable to convert %s to vim structure"
+msgstr "%s vimι¤ΤѴǤޤ"
-#~ msgid "internal error: NULL reference passed"
-#~ msgstr "顼: NULLȤϤޤ"
+msgid "internal error: NULL reference passed"
+msgstr "顼: NULLȤϤޤ"
-#~ msgid "internal error: invalid value type"
-#~ msgstr "顼: ̵ͷǤ"
+msgid "internal error: invalid value type"
+msgstr "顼: ̵ͷǤ"
-#~ msgid ""
-#~ "Failed to set path hook: sys.path_hooks is not a list\n"
-#~ "You should now do the following:\n"
-#~ "- append vim.path_hook to sys.path_hooks\n"
-#~ "- append vim.VIM_SPECIAL_PATH to sys.path\n"
-#~ msgstr ""
-#~ "ѥեå˼Ԥޤ: sys.path_hooks ꥹȤǤϤޤ\n"
-#~ "˲»ܤƤ:\n"
-#~ "- vim.path_hooks sys.path_hooks ɲ\n"
-#~ "- vim.VIM_SPECIAL_PATH sys.path ɲ\n"
+msgid ""
+"Failed to set path hook: sys.path_hooks is not a list\n"
+"You should now do the following:\n"
+"- append vim.path_hook to sys.path_hooks\n"
+"- append vim.VIM_SPECIAL_PATH to sys.path\n"
+msgstr ""
+"ѥեå˼Ԥޤ: sys.path_hooks ꥹȤǤϤޤ\n"
+"˲»ܤƤ:\n"
+"- vim.path_hooks sys.path_hooks ɲ\n"
+"- vim.VIM_SPECIAL_PATH sys.path ɲ\n"
-#~ msgid ""
-#~ "Failed to set path: sys.path is not a list\n"
-#~ "You should now append vim.VIM_SPECIAL_PATH to sys.path"
-#~ msgstr ""
-#~ "ѥ˼Ԥޤ: sys.path ꥹȤǤϤޤ\n"
-#~ " vim.VIM_SPECIAL_PATH sys.path ɲäƤ"
+msgid ""
+"Failed to set path: sys.path is not a list\n"
+"You should now append vim.VIM_SPECIAL_PATH to sys.path"
+msgstr ""
+"ѥ˼Ԥޤ: sys.path ꥹȤǤϤޤ\n"
+" vim.VIM_SPECIAL_PATH sys.path ɲäƤ"
diff --git a/src/nvim/po/ja.po b/src/nvim/po/ja.po
index e12cfb7e70..5cb789c93e 100644
--- a/src/nvim/po/ja.po
+++ b/src/nvim/po/ja.po
@@ -1,3 +1,4 @@
+
# Japanese translation for Vim
#
# Do ":help uganda" in Vim to read copying and usage conditions.
@@ -14,213 +15,176 @@ msgid ""
msgstr ""
"Project-Id-Version: Vim 7.4\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:02+0900\n"
-"PO-Revision-Date: 2013-06-02-01 09:08+09n"
+"POT-Creation-Date: 2016-09-10 21:10+0900\n"
+"PO-Revision-Date: 2016-09-10 21:20+0900\n"
"Last-Translator: MURAOKA Taro <koron.kaoriya@gmail.com>\n"
"Language-Team: vim-jp (https://github.com/vim-jp/lang-ja)\n"
"Language: Japanese\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
-#: ../api/private/helpers.c:201
-#, fuzzy
-msgid "Unable to get option value"
-msgstr "オプションの値は取得できません"
+msgid "E831: bf_key_init() called with empty password"
+msgstr "E831: bf_key_init() が空パスワードで呼び出されました"
-#: ../api/private/helpers.c:204
-msgid "internal error: unknown option type"
-msgstr "内部エラー: 未知のオプション型です"
+msgid "E820: sizeof(uint32_t) != 4"
+msgstr "E820: sizeof(uint32_t) != 4"
+
+msgid "E817: Blowfish big/little endian use wrong"
+msgstr "E817: Blowfish暗号のビッグ/リトルエンディアンが間違っています"
+
+msgid "E818: sha256 test failed"
+msgstr "E818: sha256のテストに失敗しました"
+
+msgid "E819: Blowfish test failed"
+msgstr "E819: Blowfish暗号のテストに失敗しました"
-#: ../buffer.c:92
msgid "[Location List]"
msgstr "[ロケーションリスト]"
-#: ../buffer.c:93
msgid "[Quickfix List]"
msgstr "[Quickfixリスト]"
-#: ../buffer.c:94
msgid "E855: Autocommands caused command to abort"
msgstr "E855: autocommandがコマンドの停止を引き起こしました"
-#: ../buffer.c:135
msgid "E82: Cannot allocate any buffer, exiting..."
msgstr "E82: バッファを1つも作成できないので, 終了します..."
-#: ../buffer.c:138
msgid "E83: Cannot allocate buffer, using other one..."
msgstr "E83: バッファを作成できないので, 他のを使用します..."
-#: ../buffer.c:763
+msgid "E931: Buffer cannot be registered"
+msgstr "E931: バッファを登録できません"
+
+msgid "E937: Attempt to delete a buffer that is in use"
+msgstr "E937: 使用中のバッファを削除しようと試みました"
+
msgid "E515: No buffers were unloaded"
msgstr "E515: 解放されたバッファはありません"
-#: ../buffer.c:765
msgid "E516: No buffers were deleted"
msgstr "E516: 削除されたバッファはありません"
-#: ../buffer.c:767
msgid "E517: No buffers were wiped out"
msgstr "E517: 破棄されたバッファはありません"
-#: ../buffer.c:772
msgid "1 buffer unloaded"
msgstr "1 個のバッファが解放されました"
-#: ../buffer.c:774
#, c-format
msgid "%d buffers unloaded"
msgstr "%d 個のバッファが解放されました"
-#: ../buffer.c:777
msgid "1 buffer deleted"
msgstr "1 個のバッファが削除されました"
-#: ../buffer.c:779
#, c-format
msgid "%d buffers deleted"
msgstr "%d 個のバッファが削除されました"
-#: ../buffer.c:782
msgid "1 buffer wiped out"
msgstr "1 個のバッファが破棄されました"
-#: ../buffer.c:784
#, c-format
msgid "%d buffers wiped out"
msgstr "%d 個のバッファが破棄されました"
-#: ../buffer.c:806
msgid "E90: Cannot unload last buffer"
msgstr "E90: 最後のバッファは解放できません"
-#: ../buffer.c:874
msgid "E84: No modified buffer found"
msgstr "E84: 変更されたバッファはありません"
#. back where we started, didn't find anything.
-#: ../buffer.c:903
msgid "E85: There is no listed buffer"
msgstr "E85: リスト表示されるバッファはありません"
-#: ../buffer.c:913
-#, c-format
-msgid "E86: Buffer %<PRId64> does not exist"
-msgstr "E86: バッファ %<PRId64> はありません"
-
-#: ../buffer.c:915
msgid "E87: Cannot go beyond last buffer"
msgstr "E87: 最後のバッファを越えて移動はできません"
-#: ../buffer.c:917
msgid "E88: Cannot go before first buffer"
msgstr "E88: 最初のバッファより前へは移動できません"
-#: ../buffer.c:945
#, c-format
-msgid ""
-"E89: No write since last change for buffer %<PRId64> (add ! to override)"
-msgstr "E89: バッファ %<PRId64> の変更は保存されていません (! で変更を破棄)"
+msgid "E89: No write since last change for buffer %ld (add ! to override)"
+msgstr "E89: バッファ %ld の変更は保存されていません (! で変更を破棄)"
-#. wrap around (may cause duplicates)
-#: ../buffer.c:1423
msgid "W14: Warning: List of file names overflow"
msgstr "W14: 警告: ファイル名のリストが長過ぎます"
-#: ../buffer.c:1555 ../quickfix.c:3361
#, c-format
-msgid "E92: Buffer %<PRId64> not found"
-msgstr "E92: バッファ %<PRId64> が見つかりません"
+msgid "E92: Buffer %ld not found"
+msgstr "E92: バッファ %ld が見つかりません"
-#: ../buffer.c:1798
#, c-format
msgid "E93: More than one match for %s"
msgstr "E93: %s に複数の該当がありました"
-#: ../buffer.c:1800
#, c-format
msgid "E94: No matching buffer for %s"
msgstr "E94: %s に該当するバッファはありませんでした"
-#: ../buffer.c:2161
#, c-format
-msgid "line %<PRId64>"
-msgstr "行 %<PRId64>"
+msgid "line %ld"
+msgstr "行 %ld"
-#: ../buffer.c:2233
msgid "E95: Buffer with this name already exists"
msgstr "E95: この名前のバッファは既にあります"
-#: ../buffer.c:2498
msgid " [Modified]"
msgstr " [変更あり]"
-#: ../buffer.c:2501
msgid "[Not edited]"
msgstr "[未編集]"
-#: ../buffer.c:2504
msgid "[New file]"
msgstr "[新ファイル]"
-#: ../buffer.c:2505
msgid "[Read errors]"
msgstr "[読込エラー]"
-#: ../buffer.c:2506 ../buffer.c:3217 ../fileio.c:1807 ../screen.c:4895
msgid "[RO]"
msgstr "[読専]"
-#: ../buffer.c:2507 ../fileio.c:1807
msgid "[readonly]"
msgstr "[読込専用]"
-#: ../buffer.c:2524
#, c-format
msgid "1 line --%d%%--"
msgstr "1 行 --%d%%--"
-#: ../buffer.c:2526
#, c-format
-msgid "%<PRId64> lines --%d%%--"
-msgstr "%<PRId64> 行 --%d%%--"
+msgid "%ld lines --%d%%--"
+msgstr "%ld 行 --%d%%--"
-#: ../buffer.c:2530
#, c-format
-msgid "line %<PRId64> of %<PRId64> --%d%%-- col "
-msgstr "行 %<PRId64> (全体 %<PRId64>) --%d%%-- col "
+msgid "line %ld of %ld --%d%%-- col "
+msgstr "行 %ld (全体 %ld) --%d%%-- col "
-#: ../buffer.c:2632 ../buffer.c:4292 ../memline.c:1554
msgid "[No Name]"
msgstr "[無名]"
#. must be a help buffer
-#: ../buffer.c:2667
msgid "help"
msgstr "ヘルプ"
-#: ../buffer.c:3225 ../screen.c:4883
msgid "[Help]"
msgstr "[ヘルプ]"
-#: ../buffer.c:3254 ../screen.c:4887
msgid "[Preview]"
msgstr "[プレビュー]"
-#: ../buffer.c:3528
msgid "All"
msgstr "全て"
-#: ../buffer.c:3528
msgid "Bot"
msgstr "末尾"
-#: ../buffer.c:3531
msgid "Top"
msgstr "先頭"
-#: ../buffer.c:4244
msgid ""
"\n"
"# Buffer list:\n"
@@ -228,11 +192,9 @@ msgstr ""
"\n"
"# バッファリスト:\n"
-#: ../buffer.c:4289
msgid "[Scratch]"
msgstr "[下書き]"
-#: ../buffer.c:4529
msgid ""
"\n"
"--- Signs ---"
@@ -240,200 +202,235 @@ msgstr ""
"\n"
"--- サイン ---"
-#: ../buffer.c:4538
#, c-format
msgid "Signs for %s:"
msgstr "%s のサイン:"
-#: ../buffer.c:4543
#, c-format
-msgid " line=%<PRId64> id=%d name=%s"
-msgstr " 行=%<PRId64> 識別子=%d 名前=%s"
+msgid " line=%ld id=%d name=%s"
+msgstr " 行=%ld 識別子=%d 名前=%s"
-#: ../cursor_shape.c:68
-msgid "E545: Missing colon"
-msgstr "E545: コロンがありません"
+msgid "E902: Cannot connect to port"
+msgstr "E902: ポートに接続できません"
-#: ../cursor_shape.c:70 ../cursor_shape.c:94
-msgid "E546: Illegal mode"
-msgstr "E546: 不正なモードです"
+msgid "E901: gethostbyname() in channel_open()"
+msgstr "E901: channel_open() 内の gethostbyname() が失敗しました"
-#: ../cursor_shape.c:134
-msgid "E548: digit expected"
-msgstr "E548: 数値が必要です"
+msgid "E898: socket() in channel_open()"
+msgstr "E898: channel_open() 内の socket() が失敗しました"
-#: ../cursor_shape.c:138
-msgid "E549: Illegal percentage"
-msgstr "E549: 不正なパーセンテージです"
+msgid "E903: received command with non-string argument"
+msgstr "E903: 非文字列の引数のコマンドを受信しました"
+
+msgid "E904: last argument for expr/call must be a number"
+msgstr "E904: expr/call の最後の引数は数字でなければなりません"
+
+msgid "E904: third argument for call must be a list"
+msgstr "E904: call の3番目の引数はリスト型でなければなりません"
+
+#, c-format
+msgid "E905: received unknown command: %s"
+msgstr "E905: 未知のコマンドを受信しました: %s"
+
+#, c-format
+msgid "E630: %s(): write while not connected"
+msgstr "E630: %s(): 非接続状態で書き込みました"
+
+#, c-format
+msgid "E631: %s(): write failed"
+msgstr "E631: %s(): 書き込みに失敗しました"
+
+#, c-format
+msgid "E917: Cannot use a callback with %s()"
+msgstr "E917: %s() にコールバックは使えません"
+
+msgid "E912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channel"
+msgstr "E912: 生や nl チャンネルに ch_evalexpr()/ch_sendexpr は使えません"
+
+msgid "E906: not an open channel"
+msgstr "E906: 開いていないチャンネルです"
+
+msgid "E920: _io file requires _name to be set"
+msgstr "E920: _io ファイルは _name の設定が必要です"
+
+msgid "E915: in_io buffer requires in_buf or in_name to be set"
+msgstr "E915: in_io バッファは in_buf か in_name の設定が必要です"
+
+#, c-format
+msgid "E918: buffer must be loaded: %s"
+msgstr "E918: バッファがロードされてなければなりません: %s"
+
+msgid "E821: File is encrypted with unknown method"
+msgstr "E821: ファイルが未知の方法で暗号化されています"
+
+msgid "Warning: Using a weak encryption method; see :help 'cm'"
+msgstr "警告: 弱い暗号方法を使っています; :help 'cm' を参照してください"
+
+msgid "Enter encryption key: "
+msgstr "暗号化用のキーを入力してください: "
+
+msgid "Enter same key again: "
+msgstr "もう一度同じキーを入力してください: "
+
+msgid "Keys don't match!"
+msgstr "キーが一致しません"
+
+msgid "[crypted]"
+msgstr "[暗号化]"
+
+#, c-format
+msgid "E720: Missing colon in Dictionary: %s"
+msgstr "E720: 辞書型にコロンがありません: %s"
+
+#, c-format
+msgid "E721: Duplicate key in Dictionary: \"%s\""
+msgstr "E721: 辞書型に重複キーがあります: \"%s\""
+
+#, c-format
+msgid "E722: Missing comma in Dictionary: %s"
+msgstr "E722: 辞書型にカンマがありません: %s"
+
+#, c-format
+msgid "E723: Missing end of Dictionary '}': %s"
+msgstr "E723: 辞書型の最後に '}' がありません: %s"
+
+msgid "extend() argument"
+msgstr "extend() の引数"
-#: ../diff.c:146
#, c-format
-msgid "E96: Can not diff more than %<PRId64> buffers"
-msgstr "E96: %<PRId64> 以上のバッファはdiffできません"
+msgid "E737: Key already exists: %s"
+msgstr "E737: キーは既に存在します: %s"
+
+#, c-format
+msgid "E96: Cannot diff more than %ld buffers"
+msgstr "E96: %ld 以上のバッファはdiffできません"
-#: ../diff.c:753
msgid "E810: Cannot read or write temp files"
msgstr "E810: 一時ファイルの読込もしくは書込ができません"
-#: ../diff.c:755
msgid "E97: Cannot create diffs"
msgstr "E97: 差分を作成できません"
-#: ../diff.c:966
+msgid "Patch file"
+msgstr "パッチファイル"
+
msgid "E816: Cannot read patch output"
msgstr "E816: patchの出力を読込めません"
-#: ../diff.c:1220
msgid "E98: Cannot read diff output"
msgstr "E98: diffの出力を読込めません"
-#: ../diff.c:2081
msgid "E99: Current buffer is not in diff mode"
msgstr "E99: 現在のバッファは差分モードではありません"
-#: ../diff.c:2100
msgid "E793: No other buffer in diff mode is modifiable"
msgstr "E793: 差分モードである他のバッファは変更できません"
-#: ../diff.c:2102
msgid "E100: No other buffer in diff mode"
msgstr "E100: 差分モードである他のバッファはありません"
-#: ../diff.c:2112
msgid "E101: More than two buffers in diff mode, don't know which one to use"
msgstr ""
"E101: 差分モードのバッファが2個以上あるので、どれを使うか特定できません"
-#: ../diff.c:2141
#, c-format
msgid "E102: Can't find buffer \"%s\""
msgstr "E102: バッファ \"%s\" が見つかりません"
-#: ../diff.c:2152
#, c-format
msgid "E103: Buffer \"%s\" is not in diff mode"
msgstr "E103: バッファ \"%s\" は差分モードではありません"
-#: ../diff.c:2193
msgid "E787: Buffer changed unexpectedly"
msgstr "E787: 予期せずバッファが変更変更されました"
-#: ../digraph.c:1598
msgid "E104: Escape not allowed in digraph"
msgstr "E104: 合字にEscapeは使用できません"
-#: ../digraph.c:1760
msgid "E544: Keymap file not found"
msgstr "E544: キーマップファイルが見つかりません"
-#: ../digraph.c:1785
msgid "E105: Using :loadkeymap not in a sourced file"
msgstr "E105: :source で取込むファイル以外では :loadkeymap を使えません"
-#: ../digraph.c:1821
msgid "E791: Empty keymap entry"
msgstr "E791: 空のキーマップエントリ"
-#: ../edit.c:82
msgid " Keyword completion (^N^P)"
msgstr " キーワード補完 (^N^P)"
#. ctrl_x_mode == 0, ^P/^N compl.
-#: ../edit.c:83
msgid " ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
msgstr " ^X モード (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
-#: ../edit.c:85
msgid " Whole line completion (^L^N^P)"
msgstr " 行(全体)補完 (^L^N^P)"
-#: ../edit.c:86
msgid " File name completion (^F^N^P)"
msgstr " ファイル名補完 (^F^N^P)"
-#: ../edit.c:87
msgid " Tag completion (^]^N^P)"
msgstr " タグ補完 (^]^N^P)"
-#: ../edit.c:88
msgid " Path pattern completion (^N^P)"
msgstr " パスパターン補完 (^N^P)"
-#: ../edit.c:89
msgid " Definition completion (^D^N^P)"
msgstr " 定義補完 (^D^N^P)"
-#: ../edit.c:91
msgid " Dictionary completion (^K^N^P)"
msgstr " 辞書補完 (^K^N^P)"
-#: ../edit.c:92
msgid " Thesaurus completion (^T^N^P)"
msgstr " シソーラス補完 (^T^N^P)"
-#: ../edit.c:93
msgid " Command-line completion (^V^N^P)"
msgstr " コマンドライン補完 (^V^N^P)"
-#: ../edit.c:94
msgid " User defined completion (^U^N^P)"
msgstr " ユーザー定義補完 (^U^N^P)"
-#: ../edit.c:95
msgid " Omni completion (^O^N^P)"
msgstr " オムニ補完 (^O^N^P)"
-#: ../edit.c:96
msgid " Spelling suggestion (s^N^P)"
msgstr " 綴り修正候補 (s^N^P)"
-#: ../edit.c:97
msgid " Keyword Local completion (^N^P)"
msgstr " 局所キーワード補完 (^N^P)"
-#: ../edit.c:100
msgid "Hit end of paragraph"
msgstr "段落の最後にヒット"
-#: ../edit.c:101
msgid "E839: Completion function changed window"
msgstr "E839: 補間関数がウィンドウを変更しました"
-#: ../edit.c:102
msgid "E840: Completion function deleted text"
msgstr "E840: 補完関数がテキストを削除しました"
-#: ../edit.c:1847
msgid "'dictionary' option is empty"
msgstr "'dictionary' オプションが空です"
-#: ../edit.c:1848
msgid "'thesaurus' option is empty"
msgstr "'thesaurus' オプションが空です"
-#: ../edit.c:2655
#, c-format
msgid "Scanning dictionary: %s"
msgstr "辞書をスキャン中: %s"
-#: ../edit.c:3079
msgid " (insert) Scroll (^E/^Y)"
msgstr " (挿入) スクロール(^E/^Y)"
-#: ../edit.c:3081
msgid " (replace) Scroll (^E/^Y)"
msgstr " (置換) スクロール (^E/^Y)"
-#: ../edit.c:3587
#, c-format
msgid "Scanning: %s"
msgstr "スキャン中: %s"
-#: ../edit.c:3614
msgid "Scanning tags."
msgstr "タグをスキャン中."
-#: ../edit.c:4519
msgid " Adding"
msgstr " 追加中"
@@ -441,430 +438,161 @@ msgstr " 追加中"
#. * be called before line = ml_get(), or when this address is no
#. * longer needed. -- Acevedo.
#.
-#: ../edit.c:4562
msgid "-- Searching..."
msgstr "-- 検索中..."
-#: ../edit.c:4618
msgid "Back at original"
msgstr "始めに戻る"
-#: ../edit.c:4621
msgid "Word from other line"
msgstr "他の行の単語"
-#: ../edit.c:4624
msgid "The only match"
msgstr "唯一の該当"
-#: ../edit.c:4680
#, c-format
msgid "match %d of %d"
msgstr "%d 番目の該当 (全該当 %d 個中)"
-#: ../edit.c:4684
#, c-format
msgid "match %d"
msgstr "%d 番目の該当"
-#: ../eval.c:137
+#. maximum nesting of lists and dicts
msgid "E18: Unexpected characters in :let"
msgstr "E18: 予期せぬ文字が :let にありました"
-#: ../eval.c:138
-#, c-format
-msgid "E684: list index out of range: %<PRId64>"
-msgstr "E684: リストのインデックスが範囲外です: %<PRId64>"
-
-#: ../eval.c:139
#, c-format
msgid "E121: Undefined variable: %s"
msgstr "E121: 未定義の変数です: %s"
-#: ../eval.c:140
msgid "E111: Missing ']'"
msgstr "E111: ']' が見つかりません"
-#: ../eval.c:141
-#, c-format
-msgid "E686: Argument of %s must be a List"
-msgstr "E686: %s の引数はリスト型でなければなりません"
-
-#: ../eval.c:143
-#, c-format
-msgid "E712: Argument of %s must be a List or Dictionary"
-msgstr "E712: %s の引数はリスト型または辞書型でなければなりません"
-
-#: ../eval.c:144
-msgid "E713: Cannot use empty key for Dictionary"
-msgstr "E713: 辞書型に空のキーを使うことはできません"
-
-#: ../eval.c:145
-msgid "E714: List required"
-msgstr "E714: リスト型が必要です"
-
-#: ../eval.c:146
-msgid "E715: Dictionary required"
-msgstr "E715: 辞書型が必要です"
-
-#: ../eval.c:147
-#, c-format
-msgid "E118: Too many arguments for function: %s"
-msgstr "E118: 関数の引数が多過ぎます: %s"
-
-#: ../eval.c:148
-#, c-format
-msgid "E716: Key not present in Dictionary: %s"
-msgstr "E716: 辞書型にキーが存在しません: %s"
-
-#: ../eval.c:150
-#, c-format
-msgid "E122: Function %s already exists, add ! to replace it"
-msgstr "E122: 関数 %s は定義済です, 再定義するには ! を追加してください"
-
-#: ../eval.c:151
-msgid "E717: Dictionary entry already exists"
-msgstr "E717: 辞書型内にエントリが既に存在します"
-
-#: ../eval.c:152
-msgid "E718: Funcref required"
-msgstr "E718: 関数参照型が要求されます"
-
-#: ../eval.c:153
msgid "E719: Cannot use [:] with a Dictionary"
msgstr "E719: [:] を辞書型と組み合わせては使えません"
-#: ../eval.c:154
#, c-format
msgid "E734: Wrong variable type for %s="
msgstr "E734: 異なった型の変数です %s="
-#: ../eval.c:155
-#, c-format
-msgid "E130: Unknown function: %s"
-msgstr "E130: 未知の関数です: %s"
-
-#: ../eval.c:156
#, c-format
msgid "E461: Illegal variable name: %s"
msgstr "E461: 不正な変数名です: %s"
-#: ../eval.c:157
msgid "E806: using Float as a String"
msgstr "E806: 浮動小数点数を文字列として扱っています"
-#: ../eval.c:1830
msgid "E687: Less targets than List items"
msgstr "E687: ターゲットがリスト型内の要素よりも少ないです"
-#: ../eval.c:1834
msgid "E688: More targets than List items"
msgstr "E688: ターゲットがリスト型内の要素よりも多いです"
-#: ../eval.c:1906
msgid "Double ; in list of variables"
msgstr "リスト型の値に2つ以上の ; が検出されました"
-#: ../eval.c:2078
#, c-format
msgid "E738: Can't list variables for %s"
msgstr "E738: %s の値を一覧表示できません"
-#: ../eval.c:2391
msgid "E689: Can only index a List or Dictionary"
msgstr "E689: リスト型と辞書型以外はインデックス指定できません"
-#: ../eval.c:2396
msgid "E708: [:] must come last"
msgstr "E708: [:] は最後でなければいけません"
-#: ../eval.c:2439
msgid "E709: [:] requires a List value"
msgstr "E709: [:] にはリスト型の値が必要です"
-#: ../eval.c:2674
msgid "E710: List value has more items than target"
msgstr "E710: リスト型変数にターゲットよりも多い要素があります"
-#: ../eval.c:2678
msgid "E711: List value has not enough items"
msgstr "E711: リスト型変数に十分な数の要素がありません"
#
-#: ../eval.c:2867
msgid "E690: Missing \"in\" after :for"
msgstr "E690: :for の後に \"in\" がありません"
-#: ../eval.c:3063
-#, c-format
-msgid "E107: Missing parentheses: %s"
-msgstr "E107: カッコ '(' がありません: %s"
-
-#: ../eval.c:3263
#, c-format
msgid "E108: No such variable: \"%s\""
msgstr "E108: その変数はありません: \"%s\""
-#: ../eval.c:3333
msgid "E743: variable nested too deep for (un)lock"
msgstr "E743: (アン)ロックするには変数の入れ子が深過ぎます"
-#: ../eval.c:3630
msgid "E109: Missing ':' after '?'"
msgstr "E109: '?' の後に ':' がありません"
-#: ../eval.c:3893
msgid "E691: Can only compare List with List"
msgstr "E691: リスト型はリスト型としか比較できません"
-#: ../eval.c:3895
-msgid "E692: Invalid operation for Lists"
+msgid "E692: Invalid operation for List"
msgstr "E692: リスト型には無効な操作です"
-#: ../eval.c:3915
msgid "E735: Can only compare Dictionary with Dictionary"
msgstr "E735: 辞書型は辞書型としか比較できません"
-#: ../eval.c:3917
msgid "E736: Invalid operation for Dictionary"
msgstr "E736: 辞書型には無効な操作です"
-#: ../eval.c:3932
-msgid "E693: Can only compare Funcref with Funcref"
-msgstr "E693: 関数参照型は関数参照型としか比較できません"
-
-#: ../eval.c:3934
msgid "E694: Invalid operation for Funcrefs"
msgstr "E694: 関数参照型には無効な操作です"
-#: ../eval.c:4277
msgid "E804: Cannot use '%' with Float"
msgstr "E804: '%' を浮動小数点数と組み合わせては使えません"
-#: ../eval.c:4478
msgid "E110: Missing ')'"
msgstr "E110: ')' が見つかりません"
-#: ../eval.c:4609
msgid "E695: Cannot index a Funcref"
msgstr "E695: 関数参照型はインデックスできません"
-#: ../eval.c:4839
+msgid "E909: Cannot index a special variable"
+msgstr "E909: 特殊変数はインデックスできません"
+
#, c-format
msgid "E112: Option name missing: %s"
msgstr "E112: オプション名がありません: %s"
-#: ../eval.c:4855
#, c-format
msgid "E113: Unknown option: %s"
msgstr "E113: 未知のオプションです: %s"
-#: ../eval.c:4904
#, c-format
msgid "E114: Missing quote: %s"
msgstr "E114: 引用符 (\") がありません: %s"
-#: ../eval.c:5020
#, c-format
msgid "E115: Missing quote: %s"
msgstr "E115: 引用符 (') がありません: %s"
-#: ../eval.c:5084
-#, c-format
-msgid "E696: Missing comma in List: %s"
-msgstr "E696: リスト型にカンマがありません: %s"
-
-#: ../eval.c:5091
-#, c-format
-msgid "E697: Missing end of List ']': %s"
-msgstr "E697: リスト型の最後に ']' がありません: %s"
-
msgid "Not enough memory to set references, garbage collection aborted!"
msgstr ""
"ガーベッジコレクションを中止しました! 参照を作成するのにメモリが不足しました"
-#: ../eval.c:6475
-#, c-format
-msgid "E720: Missing colon in Dictionary: %s"
-msgstr "E720: 辞書型にコロンがありません: %s"
-
-#: ../eval.c:6499
-#, c-format
-msgid "E721: Duplicate key in Dictionary: \"%s\""
-msgstr "E721: 辞書型に重複キーがあります: \"%s\""
-
-#: ../eval.c:6517
-#, c-format
-msgid "E722: Missing comma in Dictionary: %s"
-msgstr "E722: 辞書型にカンマがありません: %s"
-
-#: ../eval.c:6524
-#, c-format
-msgid "E723: Missing end of Dictionary '}': %s"
-msgstr "E723: 辞書型の最後に '}' がありません: %s"
-
-#: ../eval.c:6555
msgid "E724: variable nested too deep for displaying"
msgstr "E724: 表示するには変数の入れ子が深過ぎます"
-#: ../eval.c:7188
-#, c-format
-msgid "E740: Too many arguments for function %s"
-msgstr "E740: 関数の引数が多過ぎます: %s"
-
-#: ../eval.c:7190
-#, c-format
-msgid "E116: Invalid arguments for function %s"
-msgstr "E116: 関数の無効な引数です: %s"
-
-#: ../eval.c:7377
-#, c-format
-msgid "E117: Unknown function: %s"
-msgstr "E117: 未知の関数です: %s"
-
-#: ../eval.c:7383
-#, c-format
-msgid "E119: Not enough arguments for function: %s"
-msgstr "E119: 関数の引数が足りません: %s"
-
-#: ../eval.c:7387
-#, c-format
-msgid "E120: Using <SID> not in a script context: %s"
-msgstr "E120: スクリプト以外で<SID>が使われました: %s"
-
-#: ../eval.c:7391
-#, c-format
-msgid "E725: Calling dict function without Dictionary: %s"
-msgstr "E725: 辞書用関数が呼ばれましたが辞書がありません: %s"
-
-#: ../eval.c:7453
-msgid "E808: Number or Float required"
-msgstr "E808: 数値か浮動小数点数が必要です"
-
-#: ../eval.c:7503
-msgid "add() argument"
-msgstr "add() の引数"
-
-#: ../eval.c:7907
-msgid "E699: Too many arguments"
-msgstr "E699: 引数が多過ぎます"
-
-#: ../eval.c:8073
-msgid "E785: complete() can only be used in Insert mode"
-msgstr "E785: complete() は挿入モードでしか利用できません"
-
-#: ../eval.c:8156
-msgid "&Ok"
-msgstr "&Ok"
-
-#: ../eval.c:8676
-#, c-format
-msgid "E737: Key already exists: %s"
-msgstr "E737: キーは既に存在します: %s"
-
-#: ../eval.c:8692
-msgid "extend() argument"
-msgstr "extend() の引数"
-
-#: ../eval.c:8915
-msgid "map() argument"
-msgstr "map() の引数"
-
-#: ../eval.c:8916
-msgid "filter() argument"
-msgstr "filter() の引数"
-
-#: ../eval.c:9229
-#, c-format
-msgid "+-%s%3ld lines: "
-msgstr "+-%s%3ld 行: "
-
-#: ../eval.c:9291
-#, c-format
-msgid "E700: Unknown function: %s"
-msgstr "E700: 未知の関数です: %s"
-
-#: ../eval.c:10729
-msgid "called inputrestore() more often than inputsave()"
-msgstr "inputrestore() が inputsave() よりも多く呼ばれました"
-
-#: ../eval.c:10771
-msgid "insert() argument"
-msgstr "insert() の引数"
-
-#: ../eval.c:10841
-msgid "E786: Range not allowed"
-msgstr "E786: 範囲指定は許可されていません"
-
-#: ../eval.c:11140
-msgid "E701: Invalid type for len()"
-msgstr "E701: len() には無効な型です"
-
-#: ../eval.c:11980
-msgid "E726: Stride is zero"
-msgstr "E726: ストライド(前進量)が 0 です"
-
-#: ../eval.c:11982
-msgid "E727: Start past end"
-msgstr "E727: 開始位置が終了位置を越えました"
-
-#: ../eval.c:12024 ../eval.c:15297
-msgid "<empty>"
-msgstr "<空>"
-
-#: ../eval.c:12282
-msgid "remove() argument"
-msgstr "remove() の引数"
-
-# Added at 10-Mar-2004.
-#: ../eval.c:12466
-msgid "E655: Too many symbolic links (cycle?)"
-msgstr "E655: シンボリックリンクが多過ぎます (循環している可能性があります)"
-
-#: ../eval.c:12593
-msgid "reverse() argument"
-msgstr "reverse() の引数"
-
-#: ../eval.c:13721
-msgid "sort() argument"
-msgstr "sort() の引数"
-
-#: ../eval.c:13721
-msgid "uniq() argument"
-msgstr "uniq() の引数"
-
-#: ../eval.c:13776
-msgid "E702: Sort compare function failed"
-msgstr "E702: ソートの比較関数が失敗しました"
-
-#: ../eval.c:13806
-msgid "E882: Uniq compare function failed"
-msgstr "E882: Uniq の比較関数が失敗しました"
-
-#: ../eval.c:14085
-msgid "(Invalid)"
-msgstr "(無効)"
-
-#: ../eval.c:14590
-msgid "E677: Error writing temp file"
-msgstr "E677: 一時ファイル書込中にエラーが発生しました"
-
-#: ../eval.c:16159
msgid "E805: Using a Float as a Number"
msgstr "E805: 浮動小数点数を数値として扱っています"
-#: ../eval.c:16162
msgid "E703: Using a Funcref as a Number"
msgstr "E703: 関数参照型を数値として扱っています。"
-#: ../eval.c:16170
msgid "E745: Using a List as a Number"
msgstr "E745: リスト型を数値として扱っています"
-#: ../eval.c:16173
msgid "E728: Using a Dictionary as a Number"
msgstr "E728: 辞書型を数値として扱っています"
+msgid "E910: Using a Job as a Number"
+msgstr "E910: ジョブを数値として扱っています"
+
+msgid "E913: Using a Channel as a Number"
+msgstr "E913: チャンネルを数値として扱っています。"
+
msgid "E891: Using a Funcref as a Float"
msgstr "E891: 関数参照型を浮動小数点数として扱っています。"
@@ -877,265 +605,280 @@ msgstr "E893: リスト型を浮動小数点数として扱っています"
msgid "E894: Using a Dictionary as a Float"
msgstr "E894: 辞書型を浮動小数点数として扱っています"
-#: ../eval.c:16259
+msgid "E907: Using a special value as a Float"
+msgstr "E907: 特殊値を浮動小数点数として扱っています"
+
+msgid "E911: Using a Job as a Float"
+msgstr "E911: ジョブを浮動小数点数として扱っています"
+
+msgid "E914: Using a Channel as a Float"
+msgstr "E914: チャンネルを浮動小数点数として扱っています。"
+
msgid "E729: using Funcref as a String"
msgstr "E729: 関数参照型を文字列として扱っています"
-#: ../eval.c:16262
msgid "E730: using List as a String"
msgstr "E730: リスト型を文字列として扱っています"
-#: ../eval.c:16265
msgid "E731: using Dictionary as a String"
msgstr "E731: 辞書型を文字列として扱っています"
-#: ../eval.c:16619
-#, c-format
-msgid "E706: Variable type mismatch for: %s"
-msgstr "E706: 変数の型が一致しません: %s"
+msgid "E908: using an invalid value as a String"
+msgstr "E908: 無効な値を文字列として扱っています"
-#: ../eval.c:16705
#, c-format
msgid "E795: Cannot delete variable %s"
msgstr "E795: 変数 %s を削除できません"
-#: ../eval.c:16724
#, c-format
msgid "E704: Funcref variable name must start with a capital: %s"
msgstr "E704: 関数参照型変数名は大文字で始まらなければなりません: %s"
-#: ../eval.c:16732
#, c-format
msgid "E705: Variable name conflicts with existing function: %s"
msgstr "E705: 変数名が既存の関数名と衝突します: %s"
-#: ../eval.c:16763
#, c-format
msgid "E741: Value is locked: %s"
msgstr "E741: 値がロックされています: %s"
-#: ../eval.c:16764 ../eval.c:16769 ../message.c:1839
msgid "Unknown"
msgstr "不明"
-#: ../eval.c:16768
#, c-format
msgid "E742: Cannot change value of %s"
msgstr "E742: %s の値を変更できません"
-#: ../eval.c:16838
msgid "E698: variable nested too deep for making a copy"
msgstr "E698: コピーを取るには変数の入れ子が深過ぎます"
-#: ../eval.c:17249
-#, c-format
-msgid "E123: Undefined function: %s"
-msgstr "E123: 未定義の関数です: %s"
+msgid ""
+"\n"
+"# global variables:\n"
+msgstr ""
+"\n"
+"# グローバル変数:\n"
-#: ../eval.c:17260
-#, c-format
-msgid "E124: Missing '(': %s"
-msgstr "E124: '(' がありません: %s"
+msgid ""
+"\n"
+"\tLast set from "
+msgstr ""
+"\n"
+"\t最後にセットしたスクリプト: "
-#: ../eval.c:17293
-msgid "E862: Cannot use g: here"
-msgstr "E862: ここでは g: は使えません"
+msgid "map() argument"
+msgstr "map() の引数"
-#: ../eval.c:17312
-#, c-format
-msgid "E125: Illegal argument: %s"
-msgstr "E125: 不正な引数です: %s"
+msgid "filter() argument"
+msgstr "filter() の引数"
-#: ../eval.c:17323
#, c-format
-msgid "E853: Duplicate argument name: %s"
-msgstr "E853: 引数名が重複しています: %s"
+msgid "E686: Argument of %s must be a List"
+msgstr "E686: %s の引数はリスト型でなければなりません"
-#: ../eval.c:17416
-msgid "E126: Missing :endfunction"
-msgstr "E126: :endfunction がありません"
+msgid "E928: String required"
+msgstr "E928: 文字列が必要です"
-#: ../eval.c:17537
-#, c-format
-msgid "E707: Function name conflicts with variable: %s"
-msgstr "E707: 関数名が変数名と衝突します: %s"
+msgid "E808: Number or Float required"
+msgstr "E808: 数値か浮動小数点数が必要です"
-#: ../eval.c:17549
-#, c-format
-msgid "E127: Cannot redefine function %s: It is in use"
-msgstr "E127: 関数 %s を再定義できません: 使用中です"
+msgid "add() argument"
+msgstr "add() の引数"
-#: ../eval.c:17604
-#, c-format
-msgid "E746: Function name does not match script file name: %s"
-msgstr "E746: 関数名がスクリプトのファイル名と一致しません: %s"
+msgid "E785: complete() can only be used in Insert mode"
+msgstr "E785: complete() は挿入モードでしか利用できません"
-#: ../eval.c:17716
-msgid "E129: Function name required"
-msgstr "E129: 関数名が要求されます"
+#.
+#. * Yes this is ugly, I don't particularly like it either. But doing it
+#. * this way has the compelling advantage that translations need not to
+#. * be touched at all. See below what 'ok' and 'ync' are used for.
+#.
+msgid "&Ok"
+msgstr "&Ok"
-#: ../eval.c:17824
#, c-format
-msgid "E128: Function name must start with a capital or \"s:\": %s"
-msgstr "E128: 関数名は大文字か \"s:\" で始まらなければなりません: %s"
+msgid "+-%s%3ld line: "
+msgid_plural "+-%s%3ld lines: "
+msgstr[0] "+-%s%3ld 行: "
-#: ../eval.c:17833
#, c-format
-msgid "E884: Function name cannot contain a colon: %s"
-msgstr "E884: 関数名にはコロンは含められません: %s"
+msgid "E700: Unknown function: %s"
+msgstr "E700: 未知の関数です: %s"
-#: ../eval.c:18336
-#, c-format
-msgid "E131: Cannot delete function %s: It is in use"
-msgstr "E131: 関数 %s を削除できません: 使用中です"
+msgid "E922: expected a dict"
+msgstr "E922: 辞書が期待されています"
-#: ../eval.c:18441
-msgid "E132: Function call depth is higher than 'maxfuncdepth'"
-msgstr "E132: 関数呼出の入れ子数が 'maxfuncdepth' を超えました"
+msgid "E923: Second argument of function() must be a list or a dict"
+msgstr "E923: function() の第 2 引数はリスト型または辞書型でなければなりません"
-#: ../eval.c:18568
-#, c-format
-msgid "calling %s"
-msgstr "%s を実行中です"
+msgid ""
+"&OK\n"
+"&Cancel"
+msgstr ""
+"決定(&O)\n"
+"キャンセル(&C)"
-#: ../eval.c:18651
-#, c-format
-msgid "%s aborted"
-msgstr "%s が中断されました"
+msgid "called inputrestore() more often than inputsave()"
+msgstr "inputrestore() が inputsave() よりも多く呼ばれました"
+
+msgid "insert() argument"
+msgstr "insert() の引数"
+
+msgid "E786: Range not allowed"
+msgstr "E786: 範囲指定は許可されていません"
+
+msgid "E916: not a valid job"
+msgstr "E916: 有効なジョブではありません"
+
+msgid "E701: Invalid type for len()"
+msgstr "E701: len() には無効な型です"
-#: ../eval.c:18653
#, c-format
-msgid "%s returning #%<PRId64>"
-msgstr "%s が #%<PRId64> を返しました"
+msgid "E798: ID is reserved for \":match\": %ld"
+msgstr "E798: ID は \":match\" のために予約されています: %ld"
+
+msgid "E726: Stride is zero"
+msgstr "E726: ストライド(前進量)が 0 です"
+
+msgid "E727: Start past end"
+msgstr "E727: 開始位置が終了位置を越えました"
+
+msgid "<empty>"
+msgstr "<空>"
+
+msgid "E240: No connection to Vim server"
+msgstr "E240: Vim サーバーへの接続がありません"
-#: ../eval.c:18670
#, c-format
-msgid "%s returning %s"
-msgstr "%s が %s を返しました"
+msgid "E241: Unable to send to %s"
+msgstr "E241: %s へ送ることができません"
+
+msgid "E277: Unable to read a server reply"
+msgstr "E277: サーバーの応答がありません"
+
+msgid "remove() argument"
+msgstr "remove() の引数"
+
+# Added at 10-Mar-2004.
+msgid "E655: Too many symbolic links (cycle?)"
+msgstr "E655: シンボリックリンクが多過ぎます (循環している可能性があります)"
+
+msgid "reverse() argument"
+msgstr "reverse() の引数"
+
+msgid "E258: Unable to send to client"
+msgstr "E258: クライアントへ送ることができません"
-#: ../eval.c:18691 ../ex_cmds2.c:2695
#, c-format
-msgid "continuing in %s"
-msgstr "%s の実行を継続中です"
+msgid "E927: Invalid action: '%s'"
+msgstr "E927: 無効な操作です: %s"
-#: ../eval.c:18795
-msgid "E133: :return not inside a function"
-msgstr "E133: 関数外に :return がありました"
+msgid "sort() argument"
+msgstr "sort() の引数"
-#: ../eval.c:19159
-msgid ""
-"\n"
-"# global variables:\n"
-msgstr ""
-"\n"
-"# グローバル変数:\n"
+msgid "uniq() argument"
+msgstr "uniq() の引数"
-#: ../eval.c:19254
-msgid ""
-"\n"
-"\tLast set from "
-msgstr ""
-"\n"
-"\tLast set from "
+msgid "E702: Sort compare function failed"
+msgstr "E702: ソートの比較関数が失敗しました"
-#: ../eval.c:19272
-msgid "No old files"
-msgstr "古いファイルはありません"
+msgid "E882: Uniq compare function failed"
+msgstr "E882: Uniq の比較関数が失敗しました"
+
+msgid "(Invalid)"
+msgstr "(無効)"
+
+#, c-format
+msgid "E935: invalid submatch number: %d"
+msgstr "E935: 無効なサブマッチ番号: %d"
+
+msgid "E677: Error writing temp file"
+msgstr "E677: 一時ファイル書込中にエラーが発生しました"
+
+msgid "E921: Invalid callback argument"
+msgstr "E921: 無効なコールバック引数です"
-#: ../ex_cmds.c:122
#, c-format
msgid "<%s>%s%s %d, Hex %02x, Octal %03o"
msgstr "<%s>%s%s %d, 16進数 %02x, 8進数 %03o"
-#: ../ex_cmds.c:145
#, c-format
msgid "> %d, Hex %04x, Octal %o"
msgstr "> %d, 16進数 %04x, 8進数 %o"
-#: ../ex_cmds.c:146
#, c-format
msgid "> %d, Hex %08x, Octal %o"
msgstr "> %d, 16進数 %08x, 8進数 %o"
-#: ../ex_cmds.c:684
msgid "E134: Move lines into themselves"
msgstr "E134: 行をそれ自身には移動できません"
-#: ../ex_cmds.c:747
msgid "1 line moved"
msgstr "1 行が移動されました"
-#: ../ex_cmds.c:749
#, c-format
-msgid "%<PRId64> lines moved"
-msgstr "%<PRId64> 行が移動されました"
+msgid "%ld lines moved"
+msgstr "%ld 行が移動されました"
-#: ../ex_cmds.c:1175
#, c-format
-msgid "%<PRId64> lines filtered"
-msgstr "%<PRId64> 行がフィルタ処理されました"
+msgid "%ld lines filtered"
+msgstr "%ld 行がフィルタ処理されました"
-#: ../ex_cmds.c:1194
msgid "E135: *Filter* Autocommands must not change current buffer"
msgstr "E135: *フィルタ* autocommandは現在のバッファを変更してはいけません"
-#: ../ex_cmds.c:1244
msgid "[No write since last change]\n"
msgstr "[最後の変更が保存されていません]\n"
-#: ../ex_cmds.c:1424
#, c-format
msgid "%sviminfo: %s in line: "
msgstr "%sviminfo: %s 行目: "
-#: ../ex_cmds.c:1431
msgid "E136: viminfo: Too many errors, skipping rest of file"
msgstr "E136: viminfo: エラーが多過ぎるので, 以降はスキップします"
-#: ../ex_cmds.c:1458
#, c-format
msgid "Reading viminfo file \"%s\"%s%s%s"
msgstr "viminfoファイル \"%s\"%s%s%s を読込み中"
-#: ../ex_cmds.c:1460
msgid " info"
msgstr " 情報"
-#: ../ex_cmds.c:1461
msgid " marks"
msgstr " マーク"
-#: ../ex_cmds.c:1462
msgid " oldfiles"
msgstr " 旧ファイル群"
-#: ../ex_cmds.c:1463
msgid " FAILED"
msgstr " 失敗"
#. avoid a wait_return for this message, it's annoying
-#: ../ex_cmds.c:1541
#, c-format
msgid "E137: Viminfo file is not writable: %s"
msgstr "E137: viminfoファイルが書込みできません: %s"
-#: ../ex_cmds.c:1626
+#, c-format
+msgid "E929: Too many viminfo temp files, like %s!"
+msgstr "E929: 一時viminfoファイルが多過ぎます! 例: %s"
+
#, c-format
msgid "E138: Can't write viminfo file %s!"
msgstr "E138: viminfoファイル %s を保存できません!"
-#: ../ex_cmds.c:1635
#, c-format
msgid "Writing viminfo file \"%s\""
msgstr "viminfoファイル \"%s\" を書込み中"
+#, c-format
+msgid "E886: Can't rename viminfo file to %s!"
+msgstr "E886: viminfoファイルを %s へ名前変更できません!"
+
#. Write the info:
-#: ../ex_cmds.c:1720
#, c-format
msgid "# This viminfo file was generated by Vim %s.\n"
msgstr "# この viminfo ファイルは Vim %s によって生成されました.\n"
-#: ../ex_cmds.c:1722
msgid ""
"# You may edit it if you're careful!\n"
"\n"
@@ -1143,47 +886,47 @@ msgstr ""
"# 変更する際には十分注意してください!\n"
"\n"
-#: ../ex_cmds.c:1723
msgid "# Value of 'encoding' when this file was written\n"
msgstr "# このファイルが書かれた時の 'encoding' の値\n"
-#: ../ex_cmds.c:1800
msgid "Illegal starting char"
msgstr "不正な先頭文字です"
-#: ../ex_cmds.c:2162
+msgid ""
+"\n"
+"# Bar lines, copied verbatim:\n"
+msgstr ""
+"\n"
+"# '|' で始まる行の、文字通りのコピー:\n"
+
+msgid "Save As"
+msgstr "別名で保存"
+
msgid "Write partial file?"
msgstr "ファイルを部分的に保存しますか?"
-#: ../ex_cmds.c:2166
msgid "E140: Use ! to write partial buffer"
msgstr "E140: バッファを部分的に保存するには ! を使ってください"
-#: ../ex_cmds.c:2281
#, c-format
msgid "Overwrite existing file \"%s\"?"
msgstr "既存のファイル \"%s\" を上書きしますか?"
-#: ../ex_cmds.c:2317
#, c-format
msgid "Swap file \"%s\" exists, overwrite anyway?"
msgstr "スワップファイル \"%s\" が存在します. 上書きを強制しますか?"
-#: ../ex_cmds.c:2326
#, c-format
msgid "E768: Swap file exists: %s (:silent! overrides)"
msgstr "E768: スワップファイルが存在します: %s (:silent! を追加で上書)"
-#: ../ex_cmds.c:2381
#, c-format
-msgid "E141: No file name for buffer %<PRId64>"
-msgstr "E141: バッファ %<PRId64> には名前がありません"
+msgid "E141: No file name for buffer %ld"
+msgstr "E141: バッファ %ld には名前がありません"
-#: ../ex_cmds.c:2412
msgid "E142: File not written: Writing is disabled by 'write' option"
msgstr "E142: ファイルは保存されませんでした: 'write' オプションにより無効です"
-#: ../ex_cmds.c:2434
#, c-format
msgid ""
"'readonly' option is set for \"%s\".\n"
@@ -1192,7 +935,6 @@ msgstr ""
"\"%s\" には 'readonly' オプションが設定されています.\n"
"上書き強制をしますか?"
-#: ../ex_cmds.c:2439
#, c-format
msgid ""
"File permissions of \"%s\" are read-only.\n"
@@ -1203,83 +945,68 @@ msgstr ""
"それでも恐らく書き込むことは可能です.\n"
"継続しますか?"
-#: ../ex_cmds.c:2451
#, c-format
msgid "E505: \"%s\" is read-only (add ! to override)"
msgstr "E505: \"%s\" は読込専用です (強制書込には ! を追加)"
-#: ../ex_cmds.c:3120
+msgid "Edit File"
+msgstr "ファイルを編集"
+
#, c-format
msgid "E143: Autocommands unexpectedly deleted new buffer %s"
msgstr "E143: autocommandが予期せず新しいバッファ %s を削除しました"
-#: ../ex_cmds.c:3313
msgid "E144: non-numeric argument to :z"
msgstr "E144: 数ではない引数が :z に渡されました"
-#: ../ex_cmds.c:3404
msgid "E145: Shell commands not allowed in rvim"
msgstr "E145: rvimではシェルコマンドを使えません"
-#: ../ex_cmds.c:3498
msgid "E146: Regular expressions can't be delimited by letters"
msgstr "E146: 正規表現は文字で区切ることができません"
-#: ../ex_cmds.c:3964
#, c-format
msgid "replace with %s (y/n/a/q/l/^E/^Y)?"
msgstr "%s に置換しますか? (y/n/a/q/l/^E/^Y)"
-#: ../ex_cmds.c:4379
msgid "(Interrupted) "
msgstr "(割込まれました) "
-#: ../ex_cmds.c:4384
msgid "1 match"
msgstr "1 箇所該当しました"
-#: ../ex_cmds.c:4384
msgid "1 substitution"
msgstr "1 箇所置換しました"
-#: ../ex_cmds.c:4387
#, c-format
-msgid "%<PRId64> matches"
-msgstr "%<PRId64> 箇所該当しました"
+msgid "%ld matches"
+msgstr "%ld 箇所該当しました"
-#: ../ex_cmds.c:4388
#, c-format
-msgid "%<PRId64> substitutions"
-msgstr "%<PRId64> 箇所置換しました"
+msgid "%ld substitutions"
+msgstr "%ld 箇所置換しました"
-#: ../ex_cmds.c:4392
msgid " on 1 line"
msgstr " (計 1 行内)"
-#: ../ex_cmds.c:4395
#, c-format
-msgid " on %<PRId64> lines"
-msgstr " (計 %<PRId64> 行内)"
+msgid " on %ld lines"
+msgstr " (計 %ld 行内)"
-#: ../ex_cmds.c:4438
msgid "E147: Cannot do :global recursive"
msgstr "E147: :global を再帰的には使えません"
-#: ../ex_cmds.c:4467
msgid "E148: Regular expression missing from global"
msgstr "E148: globalコマンドに正規表現が指定されていません"
-#: ../ex_cmds.c:4508
#, c-format
msgid "Pattern found in every line: %s"
msgstr "パターンが全ての行で見つかりました: %s"
-#: ../ex_cmds.c:4510
#, c-format
msgid "Pattern not found: %s"
msgstr "パターンは見つかりませんでした: %s"
-#: ../ex_cmds.c:4587
msgid ""
"\n"
"# Last Substitute String:\n"
@@ -1289,110 +1016,102 @@ msgstr ""
"# 最後に置換された文字列:\n"
"$"
-#: ../ex_cmds.c:4679
msgid "E478: Don't panic!"
msgstr "E478: 慌てないでください"
-#: ../ex_cmds.c:4717
#, c-format
msgid "E661: Sorry, no '%s' help for %s"
msgstr "E661: 残念ですが '%s' のヘルプが %s にはありません"
-#: ../ex_cmds.c:4719
#, c-format
msgid "E149: Sorry, no help for %s"
msgstr "E149: 残念ですが %s にはヘルプがありません"
-#: ../ex_cmds.c:4751
#, c-format
msgid "Sorry, help file \"%s\" not found"
msgstr "残念ですがヘルプファイル \"%s\" が見つかりません"
-#: ../ex_cmds.c:5323
#, c-format
-msgid "E150: Not a directory: %s"
-msgstr "E150: ディレクトリではありません: %s"
+msgid "E151: No match: %s"
+msgstr "E151: マッチはありません: %s"
-#: ../ex_cmds.c:5446
#, c-format
msgid "E152: Cannot open %s for writing"
msgstr "E152: 書込み用に %s を開けません"
-#: ../ex_cmds.c:5471
#, c-format
msgid "E153: Unable to open %s for reading"
msgstr "E153: 読込用に %s を開けません"
# Added at 29-Apr-2004.
-#: ../ex_cmds.c:5500
#, c-format
msgid "E670: Mix of help file encodings within a language: %s"
msgstr "E670: 1つの言語のヘルプファイルに複数のエンコードが混在しています: %s"
-#: ../ex_cmds.c:5565
#, c-format
msgid "E154: Duplicate tag \"%s\" in file %s/%s"
msgstr "E154: タグ \"%s\" がファイル %s/%s に重複しています"
-#: ../ex_cmds.c:5687
+#, c-format
+msgid "E150: Not a directory: %s"
+msgstr "E150: ディレクトリではありません: %s"
+
#, c-format
msgid "E160: Unknown sign command: %s"
msgstr "E160: 未知のsignコマンドです: %s"
-#: ../ex_cmds.c:5704
msgid "E156: Missing sign name"
msgstr "E156: sign名がありません"
-#: ../ex_cmds.c:5746
msgid "E612: Too many signs defined"
msgstr "E612: signの定義が多数見つかりました"
-#: ../ex_cmds.c:5813
#, c-format
msgid "E239: Invalid sign text: %s"
msgstr "E239: 無効なsignのテキストです: %s"
-#: ../ex_cmds.c:5844 ../ex_cmds.c:6035
#, c-format
msgid "E155: Unknown sign: %s"
msgstr "E155: 未知のsignです: %s"
-#: ../ex_cmds.c:5877
msgid "E159: Missing sign number"
msgstr "E159: signの番号がありません"
-#: ../ex_cmds.c:5971
#, c-format
msgid "E158: Invalid buffer name: %s"
msgstr "E158: 無効なバッファ名です: %s"
-#: ../ex_cmds.c:6008
+msgid "E934: Cannot jump to a buffer that does not have a name"
+msgstr "E934: 名前の無いバッファへはジャンプできません"
+
#, c-format
-msgid "E157: Invalid sign ID: %<PRId64>"
-msgstr "E157: 無効なsign識別子です: %<PRId64>"
+msgid "E157: Invalid sign ID: %ld"
+msgstr "E157: 無効なsign識別子です: %ld"
#, c-format
msgid "E885: Not possible to change sign %s"
msgstr "E885: 変更できない sign です: %s"
-#: ../ex_cmds.c:6066
+# Added at 27-Jan-2004.
+msgid " (NOT FOUND)"
+msgstr " (見つかりません)"
+
msgid " (not supported)"
msgstr " (非サポート)"
-#: ../ex_cmds.c:6169
msgid "[Deleted]"
msgstr "[削除済]"
-#: ../ex_cmds2.c:139
+msgid "No old files"
+msgstr "古いファイルはありません"
+
msgid "Entering Debug mode. Type \"cont\" to continue."
msgstr "デバッグモードに入ります. 続けるには \"cont\" と入力してください."
-#: ../ex_cmds2.c:143 ../ex_docmd.c:759
#, c-format
-msgid "line %<PRId64>: %s"
-msgstr "行 %<PRId64>: %s"
+msgid "line %ld: %s"
+msgstr "行 %ld: %s"
-#: ../ex_cmds2.c:145
#, c-format
msgid "cmd: %s"
msgstr "コマンド: %s"
@@ -1404,232 +1123,184 @@ msgstr "フレームが 0 です"
msgid "frame at highest level: %d"
msgstr "最高レベルのフレーム: %d"
-#: ../ex_cmds2.c:322
#, c-format
-msgid "Breakpoint in \"%s%s\" line %<PRId64>"
-msgstr "ブレークポイント \"%s%s\" 行 %<PRId64>"
+msgid "Breakpoint in \"%s%s\" line %ld"
+msgstr "ブレークポイント \"%s%s\" 行 %ld"
-#: ../ex_cmds2.c:581
#, c-format
msgid "E161: Breakpoint not found: %s"
msgstr "E161: ブレークポイントが見つかりません: %s"
-#: ../ex_cmds2.c:611
msgid "No breakpoints defined"
msgstr "ブレークポイントが定義されていません"
-#: ../ex_cmds2.c:617
#, c-format
-msgid "%3d %s %s line %<PRId64>"
-msgstr "%3d %s %s 行 %<PRId64>"
+msgid "%3d %s %s line %ld"
+msgstr "%3d %s %s 行 %ld"
-#: ../ex_cmds2.c:942
msgid "E750: First use \":profile start {fname}\""
msgstr "E750: 初めに \":profile start {fname}\" を実行してください"
-#: ../ex_cmds2.c:1269
#, c-format
msgid "Save changes to \"%s\"?"
msgstr "変更を \"%s\" に保存しますか?"
-#: ../ex_cmds2.c:1271 ../ex_docmd.c:8851
msgid "Untitled"
msgstr "無題"
-#: ../ex_cmds2.c:1421
#, c-format
msgid "E162: No write since last change for buffer \"%s\""
msgstr "E162: バッファ \"%s\" の変更は保存されていません"
-#: ../ex_cmds2.c:1480
msgid "Warning: Entered other buffer unexpectedly (check autocommands)"
msgstr "警告: 予期せず他バッファへ移動しました (autocommands を調べてください)"
-#: ../ex_cmds2.c:1826
msgid "E163: There is only one file to edit"
msgstr "E163: 編集するファイルは1つしかありません"
-#: ../ex_cmds2.c:1828
msgid "E164: Cannot go before first file"
msgstr "E164: 最初のファイルより前には行けません"
-#: ../ex_cmds2.c:1830
msgid "E165: Cannot go beyond last file"
msgstr "E165: 最後のファイルを越えて後には行けません"
-#: ../ex_cmds2.c:2175
#, c-format
msgid "E666: compiler not supported: %s"
msgstr "E666: そのコンパイラには対応していません: %s"
-#: ../ex_cmds2.c:2257
#, c-format
msgid "Searching for \"%s\" in \"%s\""
msgstr "\"%s\" を \"%s\" から検索中"
-#: ../ex_cmds2.c:2284
#, c-format
msgid "Searching for \"%s\""
msgstr "\"%s\" を検索中"
-#: ../ex_cmds2.c:2307
#, c-format
-msgid "not found in 'runtimepath': \"%s\""
-msgstr "'runtimepath' の中には見つかりません: \"%s\""
+msgid "not found in '%s': \"%s\""
+msgstr "'%s' の中にはありません: \"%s\""
+
+msgid "Source Vim script"
+msgstr "Vimスクリプトの取込み"
-#: ../ex_cmds2.c:2472
#, c-format
msgid "Cannot source a directory: \"%s\""
msgstr "ディレクトリは取込めません: \"%s\""
-#: ../ex_cmds2.c:2518
#, c-format
msgid "could not source \"%s\""
msgstr "\"%s\" を取込めません"
-#: ../ex_cmds2.c:2520
#, c-format
-msgid "line %<PRId64>: could not source \"%s\""
-msgstr "行 %<PRId64>: \"%s\" を取込めません"
+msgid "line %ld: could not source \"%s\""
+msgstr "行 %ld: \"%s\" を取込めません"
-#: ../ex_cmds2.c:2535
#, c-format
msgid "sourcing \"%s\""
msgstr "\"%s\" を取込中"
-#: ../ex_cmds2.c:2537
#, c-format
-msgid "line %<PRId64>: sourcing \"%s\""
-msgstr "行 %<PRId64>: %s を取込中"
+msgid "line %ld: sourcing \"%s\""
+msgstr "行 %ld: %s を取込中"
-#: ../ex_cmds2.c:2693
#, c-format
msgid "finished sourcing %s"
msgstr "%s の取込を完了"
-#: ../ex_cmds2.c:2765
+#, c-format
+msgid "continuing in %s"
+msgstr "%s の実行を継続中です"
+
msgid "modeline"
msgstr "モード行"
-#: ../ex_cmds2.c:2767
msgid "--cmd argument"
msgstr "--cmd 引数"
-#: ../ex_cmds2.c:2769
msgid "-c argument"
msgstr "-c 引数"
-#: ../ex_cmds2.c:2771
msgid "environment variable"
msgstr "環境変数"
-#: ../ex_cmds2.c:2773
msgid "error handler"
msgstr "エラーハンドラ"
-#: ../ex_cmds2.c:3020
msgid "W15: Warning: Wrong line separator, ^M may be missing"
msgstr "W15: 警告: 行区切が不正です. ^M がないのでしょう"
-#: ../ex_cmds2.c:3139
msgid "E167: :scriptencoding used outside of a sourced file"
msgstr "E167: :scriptencoding が取込スクリプト以外で使用されました"
-#: ../ex_cmds2.c:3166
msgid "E168: :finish used outside of a sourced file"
msgstr "E168: :finish が取込スクリプト以外で使用されました"
-#: ../ex_cmds2.c:3389
#, c-format
msgid "Current %slanguage: \"%s\""
msgstr "現在の %s言語: \"%s\""
-#: ../ex_cmds2.c:3404
#, c-format
msgid "E197: Cannot set language to \"%s\""
msgstr "E197: 言語を \"%s\" に設定できません"
-#. don't redisplay the window
-#. don't wait for return
-#: ../ex_docmd.c:387
msgid "Entering Ex mode. Type \"visual\" to go to Normal mode."
msgstr ""
"Exモードに入ります. ノーマルモードに戻るには\"visual\"と入力してください."
-#: ../ex_docmd.c:428
msgid "E501: At end-of-file"
msgstr "E501: ファイルの終了位置"
-#: ../ex_docmd.c:513
msgid "E169: Command too recursive"
msgstr "E169: コマンドが再帰的過ぎます"
-#: ../ex_docmd.c:1006
#, c-format
msgid "E605: Exception not caught: %s"
msgstr "E605: 例外が捕捉されませんでした: %s"
-#: ../ex_docmd.c:1085
msgid "End of sourced file"
msgstr "取込ファイルの最後です"
-#: ../ex_docmd.c:1086
msgid "End of function"
msgstr "関数の最後です"
-#: ../ex_docmd.c:1628
msgid "E464: Ambiguous use of user-defined command"
msgstr "E464: ユーザー定義コマンドのあいまいな使用です"
-#: ../ex_docmd.c:1638
msgid "E492: Not an editor command"
msgstr "E492: エディタのコマンドではありません"
-#: ../ex_docmd.c:1729
msgid "E493: Backwards range given"
msgstr "E493: 逆さまの範囲が指定されました"
-#: ../ex_docmd.c:1733
msgid "Backwards range given, OK to swap"
msgstr "逆さまの範囲が指定されました, 入替えますか?"
-#. append
-#. typed wrong
-#: ../ex_docmd.c:1787
msgid "E494: Use w or w>>"
msgstr "E494: w もしくは w>> を使用してください"
-#: ../ex_docmd.c:3454
-msgid "E319: The command is not available in this version"
+msgid "E319: Sorry, the command is not available in this version"
msgstr "E319: このバージョンではこのコマンドは利用できません, ごめんなさい"
-#: ../ex_docmd.c:3752
msgid "E172: Only one file name allowed"
msgstr "E172: ファイル名は 1 つにしてください"
-#: ../ex_docmd.c:4238
msgid "1 more file to edit. Quit anyway?"
msgstr "編集すべきファイルが 1 個ありますが, 終了しますか?"
-#: ../ex_docmd.c:4242
#, c-format
msgid "%d more files to edit. Quit anyway?"
msgstr "編集すべきファイルがあと %d 個ありますが, 終了しますか?"
-#: ../ex_docmd.c:4248
msgid "E173: 1 more file to edit"
msgstr "E173: 編集すべきファイルが 1 個あります"
-#: ../ex_docmd.c:4250
#, c-format
-msgid "E173: %<PRId64> more files to edit"
-msgstr "E173: 編集すべきファイルがあと %<PRId64> 個あります"
+msgid "E173: %ld more files to edit"
+msgstr "E173: 編集すべきファイルがあと %ld 個あります"
-#: ../ex_docmd.c:4320
msgid "E174: Command already exists: add ! to replace it"
msgstr "E174: コマンドが既にあります: 再定義するには ! を追加してください"
-#: ../ex_docmd.c:4432
msgid ""
"\n"
" Name Args Address Complete Definition"
@@ -1637,51 +1308,40 @@ msgstr ""
"\n"
" 名前 引数 アドレス 補完 定義"
-#: ../ex_docmd.c:4516
msgid "No user-defined commands found"
msgstr "ユーザー定義コマンドが見つかりませんでした"
-#: ../ex_docmd.c:4538
msgid "E175: No attribute specified"
msgstr "E175: 属性は定義されていません"
-#: ../ex_docmd.c:4583
msgid "E176: Invalid number of arguments"
msgstr "E176: 引数の数が無効です"
-#: ../ex_docmd.c:4594
msgid "E177: Count cannot be specified twice"
msgstr "E177: カウントを2重指定することはできません"
-#: ../ex_docmd.c:4603
msgid "E178: Invalid default value for count"
msgstr "E178: カウントの省略値が無効です"
-#: ../ex_docmd.c:4625
msgid "E179: argument required for -complete"
msgstr "E179: -complete には引数が必要です"
msgid "E179: argument required for -addr"
msgstr "E179: -addr には引数が必要です"
-#: ../ex_docmd.c:4635
#, c-format
msgid "E181: Invalid attribute: %s"
msgstr "E181: 無効な属性です: %s"
-#: ../ex_docmd.c:4678
msgid "E182: Invalid command name"
msgstr "E182: 無効なコマンド名です"
-#: ../ex_docmd.c:4691
msgid "E183: User defined commands must start with an uppercase letter"
msgstr "E183: ユーザー定義コマンドは英大文字で始まらなければなりません"
-#: ../ex_docmd.c:4696
msgid "E841: Reserved name, cannot be used for user defined command"
msgstr "E841: 予約名なので, ユーザー定義コマンドに利用できません"
-#: ../ex_docmd.c:4751
#, c-format
msgid "E184: No such user-defined command: %s"
msgstr "E184: そのユーザー定義コマンドはありません: %s"
@@ -1690,293 +1350,261 @@ msgstr "E184: そのユーザー定義コマンドはありません: %s"
msgid "E180: Invalid address type value: %s"
msgstr "E180: 無効なアドレスタイプ値です: %s"
-#: ../ex_docmd.c:5219
#, c-format
msgid "E180: Invalid complete value: %s"
msgstr "E180: 無効な補完指定です: %s"
-#: ../ex_docmd.c:5225
msgid "E468: Completion argument only allowed for custom completion"
msgstr "E468: 補完引数はカスタム補完でしか使用できません"
-#: ../ex_docmd.c:5231
msgid "E467: Custom completion requires a function argument"
msgstr "E467: カスタム補完には引数として関数が必要です"
-#: ../ex_docmd.c:5257
+msgid "unknown"
+msgstr "不明"
+
#, c-format
msgid "E185: Cannot find color scheme '%s'"
msgstr "E185: カラースキーム '%s' が見つかりません"
-#: ../ex_docmd.c:5263
msgid "Greetings, Vim user!"
msgstr "Vim 使いさん、やあ!"
-#: ../ex_docmd.c:5431
msgid "E784: Cannot close last tab page"
msgstr "E784: 最後のタブページを閉じることはできません"
-#: ../ex_docmd.c:5462
msgid "Already only one tab page"
msgstr "既にタブページは1つしかありません"
-#: ../ex_docmd.c:6004
+msgid "Edit File in new window"
+msgstr "新しいウィンドウでファイルを編集します"
+
#, c-format
msgid "Tab page %d"
msgstr "タブページ %d"
-#: ../ex_docmd.c:6295
msgid "No swap file"
msgstr "スワップファイルがありません"
-#: ../ex_docmd.c:6478
+msgid "Append File"
+msgstr "追加ファイル"
+
msgid "E747: Cannot change directory, buffer is modified (add ! to override)"
msgstr ""
"E747: バッファが修正されているので, ディレクトリを変更できません (! を追加で"
"上書)"
-#: ../ex_docmd.c:6485
msgid "E186: No previous directory"
msgstr "E186: 前のディレクトリはありません"
-#: ../ex_docmd.c:6530
msgid "E187: Unknown"
msgstr "E187: 未知"
-#: ../ex_docmd.c:6610
msgid "E465: :winsize requires two number arguments"
msgstr "E465: :winsize には2つの数値の引数が必要です"
-#: ../ex_docmd.c:6655
+#, c-format
+msgid "Window position: X %d, Y %d"
+msgstr "ウィンドウ位置: X %d, Y %d"
+
msgid "E188: Obtaining window position not implemented for this platform"
msgstr ""
"E188: このプラットホームにはウィンドウ位置の取得機能は実装されていません"
-#: ../ex_docmd.c:6662
msgid "E466: :winpos requires two number arguments"
msgstr "E466: :winpos には2つの数値の引数が必要です"
-#: ../ex_docmd.c:7241
+msgid "E930: Cannot use :redir inside execute()"
+msgstr "E930: execute() の中では :redir は使えません"
+
+msgid "Save Redirection"
+msgstr "リダイレクトを保存します"
+
+msgid "Save View"
+msgstr "ビューを保存します"
+
+msgid "Save Session"
+msgstr "セッション情報を保存します"
+
+msgid "Save Setup"
+msgstr "設定を保存します"
+
#, c-format
msgid "E739: Cannot create directory: %s"
msgstr "E739: ディレクトリを作成できません: %s"
-#: ../ex_docmd.c:7268
#, c-format
msgid "E189: \"%s\" exists (add ! to override)"
msgstr "E189: \"%s\" が存在します (上書するには ! を追加してください)"
-#: ../ex_docmd.c:7273
#, c-format
msgid "E190: Cannot open \"%s\" for writing"
msgstr "E190: \"%s\" を書込み用として開けません"
#. set mark
-#: ../ex_docmd.c:7294
msgid "E191: Argument must be a letter or forward/backward quote"
msgstr "E191: 引数は1文字の英字か引用符 (' か `) でなければいけません"
-#: ../ex_docmd.c:7333
msgid "E192: Recursive use of :normal too deep"
msgstr "E192: :normal の再帰利用が深くなり過ぎました"
-#: ../ex_docmd.c:7807
+msgid "E809: #< is not available without the +eval feature"
+msgstr "E809: #< は +eval 機能が無いと利用できません"
+
msgid "E194: No alternate file name to substitute for '#'"
msgstr "E194: '#'を置き換える副ファイルの名前がありません"
-#: ../ex_docmd.c:7841
msgid "E495: no autocommand file name to substitute for \"<afile>\""
msgstr "E495: \"<afile>\"を置き換えるautocommandのファイル名がありません"
-#: ../ex_docmd.c:7850
msgid "E496: no autocommand buffer number to substitute for \"<abuf>\""
msgstr "E496: \"<abuf>\"を置き換えるautocommandバッファ番号がありません"
-#: ../ex_docmd.c:7861
msgid "E497: no autocommand match name to substitute for \"<amatch>\""
msgstr "E497: \"<amatch>\"を置き換えるautocommandの該当名がありません"
-#: ../ex_docmd.c:7870
msgid "E498: no :source file name to substitute for \"<sfile>\""
msgstr "E498: \"<sfile>\"を置き換える :source 対象ファイル名がありません"
-#: ../ex_docmd.c:7876
msgid "E842: no line number to use for \"<slnum>\""
msgstr "E842: \"<slnum>\"を置き換える行番号がありません"
-#: ../ex_docmd.c:7903
-#, fuzzy, c-format
+#, no-c-format
msgid "E499: Empty file name for '%' or '#', only works with \":p:h\""
msgstr ""
"E499: '%' や '#' が無名ファイルなので \":p:h\" を伴わない使い方はできません"
-#: ../ex_docmd.c:7905
msgid "E500: Evaluates to an empty string"
msgstr "E500: 空文字列として評価されました"
-#: ../ex_docmd.c:8838
msgid "E195: Cannot open viminfo file for reading"
msgstr "E195: viminfoファイルを読込用として開けません"
-#: ../ex_eval.c:464
+msgid "E196: No digraphs in this version"
+msgstr "E196: このバージョンに合字はありません"
+
msgid "E608: Cannot :throw exceptions with 'Vim' prefix"
msgstr "E608: 'Vim' で始まる例外は :throw できません"
#. always scroll up, don't overwrite
-#: ../ex_eval.c:496
#, c-format
msgid "Exception thrown: %s"
msgstr "例外が発生しました: %s"
-#: ../ex_eval.c:545
#, c-format
msgid "Exception finished: %s"
msgstr "例外が収束しました: %s"
-#: ../ex_eval.c:546
#, c-format
msgid "Exception discarded: %s"
msgstr "例外が破棄されました: %s"
-#: ../ex_eval.c:588 ../ex_eval.c:634
#, c-format
-msgid "%s, line %<PRId64>"
-msgstr "%s, 行 %<PRId64>"
+msgid "%s, line %ld"
+msgstr "%s, 行 %ld"
#. always scroll up, don't overwrite
-#: ../ex_eval.c:608
#, c-format
msgid "Exception caught: %s"
msgstr "例外が捕捉されました: %s"
-#: ../ex_eval.c:676
#, c-format
msgid "%s made pending"
msgstr "%s により未決定状態が生じました"
-#: ../ex_eval.c:679
#, c-format
msgid "%s resumed"
msgstr "%s が再開しました"
-#: ../ex_eval.c:683
#, c-format
msgid "%s discarded"
msgstr "%s が破棄されました"
-#: ../ex_eval.c:708
msgid "Exception"
msgstr "例外"
-#: ../ex_eval.c:713
msgid "Error and interrupt"
msgstr "エラーと割込み"
-#: ../ex_eval.c:715
msgid "Error"
msgstr "エラー"
#. if (pending & CSTP_INTERRUPT)
-#: ../ex_eval.c:717
msgid "Interrupt"
msgstr "割込み"
-#: ../ex_eval.c:795
msgid "E579: :if nesting too deep"
msgstr "E579: :if の入れ子が深過ぎます"
-#: ../ex_eval.c:830
msgid "E580: :endif without :if"
msgstr "E580: :if のない :endif があります"
-#: ../ex_eval.c:873
msgid "E581: :else without :if"
msgstr "E581: :if のない :else があります"
-#: ../ex_eval.c:876
msgid "E582: :elseif without :if"
msgstr "E582: :if のない :elseif があります"
-#: ../ex_eval.c:880
msgid "E583: multiple :else"
msgstr "E583: 複数の :else があります"
-#: ../ex_eval.c:883
msgid "E584: :elseif after :else"
msgstr "E584: :else の後に :elseif があります"
-#: ../ex_eval.c:941
msgid "E585: :while/:for nesting too deep"
msgstr "E585: :while や :for の入れ子が深過ぎます"
-#: ../ex_eval.c:1028
msgid "E586: :continue without :while or :for"
msgstr "E586: :while や :for のない :continue があります"
-#: ../ex_eval.c:1061
msgid "E587: :break without :while or :for"
msgstr "E587: :while や :for のない :break があります"
-#: ../ex_eval.c:1102
msgid "E732: Using :endfor with :while"
msgstr "E732: :endfor を :while と組み合わせています"
-#: ../ex_eval.c:1104
msgid "E733: Using :endwhile with :for"
msgstr "E733: :endwhile を :for と組み合わせています"
-#: ../ex_eval.c:1247
msgid "E601: :try nesting too deep"
msgstr "E601: :try の入れ子が深過ぎます"
-#: ../ex_eval.c:1317
msgid "E603: :catch without :try"
msgstr "E603: :try のない :catch があります"
#. Give up for a ":catch" after ":finally" and ignore it.
#. * Just parse.
-#: ../ex_eval.c:1332
msgid "E604: :catch after :finally"
msgstr "E604: :finally の後に :catch があります"
-#: ../ex_eval.c:1451
msgid "E606: :finally without :try"
msgstr "E606: :try のない :finally があります"
#. Give up for a multiple ":finally" and ignore it.
-#: ../ex_eval.c:1467
msgid "E607: multiple :finally"
msgstr "E607: 複数の :finally があります"
-#: ../ex_eval.c:1571
msgid "E602: :endtry without :try"
msgstr "E602: :try のない :endtry です"
-#: ../ex_eval.c:2026
msgid "E193: :endfunction not inside a function"
msgstr "E193: 関数の外に :endfunction がありました"
-#: ../ex_getln.c:1643
msgid "E788: Not allowed to edit another buffer now"
msgstr "E788: 現在は他のバッファを編集することは許されません"
-#: ../ex_getln.c:1656
msgid "E811: Not allowed to change buffer information now"
msgstr "E811: 現在はバッファ情報を変更することは許されません"
-#: ../ex_getln.c:3178
msgid "tagname"
msgstr "タグ名"
-#: ../ex_getln.c:3181
msgid " kind file\n"
msgstr " ファイル種類\n"
-#: ../ex_getln.c:4799
msgid "'history' option is zero"
msgstr "オプション 'history' がゼロです"
-#: ../ex_getln.c:5046
#, c-format
msgid ""
"\n"
@@ -1985,303 +1613,224 @@ msgstr ""
"\n"
"# %s 項目の履歴 (新しいものから古いものへ):\n"
-#: ../ex_getln.c:5047
msgid "Command Line"
msgstr "コマンドライン"
-#: ../ex_getln.c:5048
msgid "Search String"
msgstr "検索文字列"
-#: ../ex_getln.c:5049
msgid "Expression"
msgstr "式"
-#: ../ex_getln.c:5050
msgid "Input Line"
msgstr "入力行"
-#: ../ex_getln.c:5117
+msgid "Debug Line"
+msgstr "デバッグ行"
+
msgid "E198: cmd_pchar beyond the command length"
msgstr "E198: cmd_pchar がコマンド長を超えました"
-#: ../ex_getln.c:5279
msgid "E199: Active window or buffer deleted"
msgstr "E199: アクティブなウィンドウかバッファが削除されました"
-#: ../file_search.c:203
-msgid "E854: path too long for completion"
-msgstr "E854: パスが長過ぎて補完できません"
-
-#: ../file_search.c:446
-#, c-format
-msgid ""
-"E343: Invalid path: '**[number]' must be at the end of the path or be "
-"followed by '%s'."
-msgstr ""
-"E343: 無効なパスです: '**[数値]' はpathの最後か '%s' が続いてないといけませ"
-"ん."
-
-#: ../file_search.c:1505
-#, c-format
-msgid "E344: Can't find directory \"%s\" in cdpath"
-msgstr "E344: cdpathには \"%s\" というファイルがありません"
-
-#: ../file_search.c:1508
-#, c-format
-msgid "E345: Can't find file \"%s\" in path"
-msgstr "E345: pathには \"%s\" というファイルがありません"
-
-#: ../file_search.c:1512
-#, c-format
-msgid "E346: No more directory \"%s\" found in cdpath"
-msgstr "E346: cdpathにはこれ以上 \"%s\" というファイルがありません"
-
-#: ../file_search.c:1515
-#, c-format
-msgid "E347: No more file \"%s\" found in path"
-msgstr "E347: パスにはこれ以上 \"%s\" というファイルがありません"
-
-#: ../fileio.c:137
msgid "E812: Autocommands changed buffer or buffer name"
msgstr "E812: autocommandがバッファかバッファ名を変更しました"
-#: ../fileio.c:368
msgid "Illegal file name"
msgstr "不正なファイル名"
-#: ../fileio.c:395 ../fileio.c:476 ../fileio.c:2543 ../fileio.c:2578
msgid "is a directory"
msgstr "はディレクトリです"
-#: ../fileio.c:397
msgid "is not a file"
msgstr "はファイルではありません"
-#: ../fileio.c:508 ../fileio.c:3522
+msgid "is a device (disabled with 'opendevice' option)"
+msgstr "はデバイスです ('opendevice' オプションで回避できます)"
+
msgid "[New File]"
msgstr "[新ファイル]"
-#: ../fileio.c:511
msgid "[New DIRECTORY]"
msgstr "[新規ディレクトリ]"
-#: ../fileio.c:529 ../fileio.c:532
msgid "[File too big]"
msgstr "[ファイル過大]"
-#: ../fileio.c:534
msgid "[Permission Denied]"
msgstr "[権限がありません]"
-#: ../fileio.c:653
msgid "E200: *ReadPre autocommands made the file unreadable"
msgstr "E200: *ReadPre autocommand がファイルを読込不可にしました"
-#: ../fileio.c:655
msgid "E201: *ReadPre autocommands must not change current buffer"
msgstr "E201: *ReadPre autocommand は現在のバッファを変えられません"
-#: ../fileio.c:672
-msgid "Nvim: Reading from stdin...\n"
+msgid "Vim: Reading from stdin...\n"
msgstr "Vim: 標準入力から読込中...\n"
+msgid "Reading from stdin..."
+msgstr "標準入力から読込み中..."
+
#. Re-opening the original file failed!
-#: ../fileio.c:909
msgid "E202: Conversion made file unreadable!"
msgstr "E202: 変換がファイルを読込不可にしました"
-#. fifo or socket
-#: ../fileio.c:1782
msgid "[fifo/socket]"
msgstr "[FIFO/ソケット]"
-#. fifo
-#: ../fileio.c:1788
msgid "[fifo]"
msgstr "[FIFO]"
-#. or socket
-#: ../fileio.c:1794
msgid "[socket]"
msgstr "[ソケット]"
-#. or character special
-#: ../fileio.c:1801
msgid "[character special]"
msgstr "[キャラクタ・デバイス]"
-#: ../fileio.c:1815
msgid "[CR missing]"
msgstr "[CR無]"
-#: ../fileio.c:1819
msgid "[long lines split]"
msgstr "[長行分割]"
-#: ../fileio.c:1823 ../fileio.c:3512
msgid "[NOT converted]"
msgstr "[未変換]"
-#: ../fileio.c:1826 ../fileio.c:3515
msgid "[converted]"
msgstr "[変換済]"
-#: ../fileio.c:1831
#, c-format
-msgid "[CONVERSION ERROR in line %<PRId64>]"
-msgstr "[%<PRId64> 行目で変換エラー]"
+msgid "[CONVERSION ERROR in line %ld]"
+msgstr "[%ld 行目で変換エラー]"
-#: ../fileio.c:1835
#, c-format
-msgid "[ILLEGAL BYTE in line %<PRId64>]"
-msgstr "[%<PRId64> 行目の不正なバイト]"
+msgid "[ILLEGAL BYTE in line %ld]"
+msgstr "[%ld 行目の不正なバイト]"
-#: ../fileio.c:1838
msgid "[READ ERRORS]"
msgstr "[読込エラー]"
-#: ../fileio.c:2104
msgid "Can't find temp file for conversion"
msgstr "変換に必要な一時ファイルが見つかりません"
-#: ../fileio.c:2110
msgid "Conversion with 'charconvert' failed"
msgstr "'charconvert' による変換が失敗しました"
-#: ../fileio.c:2113
msgid "can't read output of 'charconvert'"
msgstr "'charconvert' の出力を読込めませんでした"
-#: ../fileio.c:2437
msgid "E676: No matching autocommands for acwrite buffer"
msgstr "E676: acwriteバッファの該当するautocommandは存在しません"
-#: ../fileio.c:2466
msgid "E203: Autocommands deleted or unloaded buffer to be written"
msgstr "E203: 保存するバッファをautocommandが削除か解放しました"
-#: ../fileio.c:2486
msgid "E204: Autocommand changed number of lines in unexpected way"
msgstr "E204: autocommandが予期せぬ方法で行数を変更しました"
-#: ../fileio.c:2548 ../fileio.c:2565
+# Added at 19-Jan-2004.
+msgid "NetBeans disallows writes of unmodified buffers"
+msgstr "NetBeansは未変更のバッファを上書することは許可していません"
+
+msgid "Partial writes disallowed for NetBeans buffers"
+msgstr "NetBeansバッファの一部を書き出すことはできません"
+
msgid "is not a file or writable device"
msgstr "はファイルでも書込み可能デバイスでもありません"
-#: ../fileio.c:2601
+msgid "writing to device disabled with 'opendevice' option"
+msgstr "'opendevice' オプションによりデバイスへの書き込みはできません"
+
msgid "is read-only (add ! to override)"
msgstr "は読込専用です (強制書込には ! を追加)"
-#: ../fileio.c:2886
msgid "E506: Can't write to backup file (add ! to override)"
msgstr "E506: バックアップファイルを保存できません (! を追加で強制保存)"
-#: ../fileio.c:2898
msgid "E507: Close error for backup file (add ! to override)"
msgstr ""
"E507: バックアップファイルを閉じる際にエラーが発生しました (! を追加で強制)"
-#: ../fileio.c:2901
msgid "E508: Can't read file for backup (add ! to override)"
msgstr "E508: バックアップ用ファイルを読込めません (! を追加で強制読込)"
-#: ../fileio.c:2923
msgid "E509: Cannot create backup file (add ! to override)"
msgstr "E509: バックアップファイルを作れません (! を追加で強制作成)"
-#: ../fileio.c:3008
msgid "E510: Can't make backup file (add ! to override)"
msgstr "E510: バックアップファイルを作れません (! を追加で強制作成)"
-#. Can't write without a tempfile!
-#: ../fileio.c:3121
+msgid "E460: The resource fork would be lost (add ! to override)"
+msgstr "E460: リソースフォークが失われるかもしれません (! を追加で強制)"
+
msgid "E214: Can't find temp file for writing"
msgstr "E214: 保存用一時ファイルが見つかりません"
-#: ../fileio.c:3134
msgid "E213: Cannot convert (add ! to write without conversion)"
msgstr "E213: 変換できません (! を追加で変換せずに保存)"
-#: ../fileio.c:3169
msgid "E166: Can't open linked file for writing"
msgstr "E166: リンクされたファイルに書込めません"
-#: ../fileio.c:3173
msgid "E212: Can't open file for writing"
msgstr "E212: 書込み用にファイルを開けません"
-#: ../fileio.c:3363
msgid "E667: Fsync failed"
msgstr "E667: fsync に失敗しました"
-#: ../fileio.c:3398
msgid "E512: Close failed"
msgstr "E512: 閉じることに失敗"
-#: ../fileio.c:3436
msgid "E513: write error, conversion failed (make 'fenc' empty to override)"
msgstr "E513: 書込みエラー, 変換失敗 (上書するには 'fenc' を空にしてください)"
-#: ../fileio.c:3441
#, c-format
msgid ""
-"E513: write error, conversion failed in line %<PRId64> (make 'fenc' empty to "
+"E513: write error, conversion failed in line %ld (make 'fenc' empty to "
"override)"
msgstr ""
-"E513: 書込みエラー, 変換失敗, 行数 %<PRId64> (上書するには 'fenc' を空にして"
-"ください)"
+"E513: 書込みエラー, 変換失敗, 行数 %ld (上書するには 'fenc' を空にしてくださ"
+"い)"
-#: ../fileio.c:3448
msgid "E514: write error (file system full?)"
msgstr "E514: 書込みエラー, (ファイルシステムが満杯?)"
-#: ../fileio.c:3506
msgid " CONVERSION ERROR"
msgstr " 変換エラー"
-#: ../fileio.c:3509
#, c-format
-msgid " in line %<PRId64>;"
-msgstr " 行 %<PRId64>;"
+msgid " in line %ld;"
+msgstr " 行 %ld;"
-#: ../fileio.c:3519
msgid "[Device]"
msgstr "[デバイス]"
-#: ../fileio.c:3522
msgid "[New]"
msgstr "[新]"
-#: ../fileio.c:3535
msgid " [a]"
msgstr " [a]"
-#: ../fileio.c:3535
msgid " appended"
msgstr " 追加"
-#: ../fileio.c:3537
msgid " [w]"
msgstr " [w]"
-#: ../fileio.c:3537
msgid " written"
msgstr " 書込み"
-#: ../fileio.c:3579
msgid "E205: Patchmode: can't save original file"
msgstr "E205: patchmode: 原本ファイルを保存できません"
-#: ../fileio.c:3602
msgid "E206: patchmode: can't touch empty original file"
msgstr "E206: patchmode: 空の原本ファイルをtouchできません"
-#: ../fileio.c:3616
msgid "E207: Can't delete backup file"
msgstr "E207: バックアップファイルを消せません"
-#: ../fileio.c:3672
msgid ""
"\n"
"WARNING: Original file may be lost or damaged\n"
@@ -2289,134 +1838,105 @@ msgstr ""
"\n"
"警告: 原本ファイルが失われたか変更されました\n"
-#: ../fileio.c:3675
msgid "don't quit the editor until the file is successfully written!"
msgstr "ファイルの保存に成功するまでエディタを終了しないでください!"
-#: ../fileio.c:3795
msgid "[dos]"
msgstr "[dos]"
-#: ../fileio.c:3795
msgid "[dos format]"
msgstr "[dosフォーマット]"
-#: ../fileio.c:3801
msgid "[mac]"
msgstr "[mac]"
-#: ../fileio.c:3801
msgid "[mac format]"
msgstr "[macフォーマット]"
-#: ../fileio.c:3807
msgid "[unix]"
msgstr "[unix]"
-#: ../fileio.c:3807
msgid "[unix format]"
msgstr "[unixフォーマット]"
-#: ../fileio.c:3831
msgid "1 line, "
msgstr "1 行, "
-#: ../fileio.c:3833
#, c-format
-msgid "%<PRId64> lines, "
-msgstr "%<PRId64> 行, "
+msgid "%ld lines, "
+msgstr "%ld 行, "
-#: ../fileio.c:3836
msgid "1 character"
msgstr "1 文字"
-#: ../fileio.c:3838
#, c-format
-msgid "%<PRId64> characters"
-msgstr "%<PRId64> 文字"
+msgid "%lld characters"
+msgstr "%lld 文字"
-#: ../fileio.c:3849
msgid "[noeol]"
msgstr "[noeol]"
-#: ../fileio.c:3849
msgid "[Incomplete last line]"
msgstr "[最終行が不完全]"
#. don't overwrite messages here
#. must give this prompt
#. don't use emsg() here, don't want to flush the buffers
-#: ../fileio.c:3865
msgid "WARNING: The file has been changed since reading it!!!"
msgstr "警告: 読込んだ後にファイルに変更がありました!!!"
-#: ../fileio.c:3867
msgid "Do you really want to write to it"
msgstr "本当に上書きしますか"
-#: ../fileio.c:4648
#, c-format
msgid "E208: Error writing to \"%s\""
msgstr "E208: \"%s\" を書込み中のエラーです"
-#: ../fileio.c:4655
#, c-format
msgid "E209: Error closing \"%s\""
msgstr "E209: \"%s\" を閉じる時にエラーです"
-#: ../fileio.c:4657
#, c-format
msgid "E210: Error reading \"%s\""
msgstr "E210: \"%s\" を読込中のエラーです"
-#: ../fileio.c:4883
msgid "E246: FileChangedShell autocommand deleted buffer"
msgstr "E246: autocommand の FileChangedShell がバッファを削除しました"
-#: ../fileio.c:4894
#, c-format
msgid "E211: File \"%s\" no longer available"
msgstr "E211: ファイル \"%s\" は既に存在しません"
-#: ../fileio.c:4906
#, c-format
msgid ""
"W12: Warning: File \"%s\" has changed and the buffer was changed in Vim as "
"well"
msgstr "W12: 警告: ファイル \"%s\" が変更されVimのバッファも変更されました"
-#: ../fileio.c:4907
msgid "See \":help W12\" for more info."
msgstr "詳細は \":help W12\" を参照してください"
-#: ../fileio.c:4910
#, c-format
msgid "W11: Warning: File \"%s\" has changed since editing started"
msgstr "W11: 警告: ファイル \"%s\" は編集開始後に変更されました"
-#: ../fileio.c:4911
msgid "See \":help W11\" for more info."
msgstr "詳細は \":help W11\" を参照してください"
-#: ../fileio.c:4914
#, c-format
msgid "W16: Warning: Mode of file \"%s\" has changed since editing started"
msgstr "W16: 警告: ファイル \"%s\" のモードが編集開始後に変更されました"
-#: ../fileio.c:4915
msgid "See \":help W16\" for more info."
msgstr "詳細は \":help W16\" を参照してください"
-#: ../fileio.c:4927
#, c-format
msgid "W13: Warning: File \"%s\" has been created after editing started"
msgstr "W13: 警告: ファイル \"%s\" は編集開始後に作成されました"
-#: ../fileio.c:4947
msgid "Warning"
msgstr "警告"
-#: ../fileio.c:4948
msgid ""
"&OK\n"
"&Load File"
@@ -2424,48 +1944,45 @@ msgstr ""
"&OK\n"
"ファイル読込(&L)"
-#: ../fileio.c:5065
#, c-format
msgid "E462: Could not prepare for reloading \"%s\""
msgstr "E462: \"%s\" をリロードする準備ができませんでした"
-#: ../fileio.c:5078
#, c-format
msgid "E321: Could not reload \"%s\""
msgstr "E321: \"%s\" はリロードできませんでした"
-#: ../fileio.c:5601
msgid "--Deleted--"
msgstr "--削除済--"
-#: ../fileio.c:5732
#, c-format
msgid "auto-removing autocommand: %s <buffer=%d>"
msgstr "autocommand: %s <バッファ=%d> が自動的に削除されます"
#. the group doesn't exist
-#: ../fileio.c:5772
#, c-format
msgid "E367: No such group: \"%s\""
msgstr "E367: そのグループはありません: \"%s\""
-#: ../fileio.c:5897
+msgid "E936: Cannot delete the current group"
+msgstr "E936: 現在のグループは削除できません"
+
+msgid "W19: Deleting augroup that is still in use"
+msgstr "W19: 使用中の augroup を消そうとしています"
+
#, c-format
msgid "E215: Illegal character after *: %s"
msgstr "E215: * の後に不正な文字がありました: %s"
-#: ../fileio.c:5905
#, c-format
msgid "E216: No such event: %s"
msgstr "E216: そのようなイベントはありません: %s"
-#: ../fileio.c:5907
#, c-format
msgid "E216: No such group or event: %s"
msgstr "E216: そのようなグループもしくはイベントはありません: %s"
#. Highlight title
-#: ../fileio.c:6090
msgid ""
"\n"
"--- Auto-Commands ---"
@@ -2473,756 +1990,555 @@ msgstr ""
"\n"
"--- Auto-Commands ---"
-#: ../fileio.c:6293
#, c-format
msgid "E680: <buffer=%d>: invalid buffer number "
msgstr "E680: <バッファ=%d>: 無効なバッファ番号です "
-#: ../fileio.c:6370
msgid "E217: Can't execute autocommands for ALL events"
msgstr "E217: 全てのイベントに対してのautocommandは実行できません"
-#: ../fileio.c:6393
msgid "No matching autocommands"
msgstr "該当するautocommandは存在しません"
-#: ../fileio.c:6831
msgid "E218: autocommand nesting too deep"
msgstr "E218: autocommandの入れ子が深過ぎます"
-#: ../fileio.c:7143
#, c-format
msgid "%s Auto commands for \"%s\""
msgstr "%s Auto commands for \"%s\""
-#: ../fileio.c:7149
#, c-format
msgid "Executing %s"
msgstr "%s を実行しています"
-#: ../fileio.c:7211
#, c-format
msgid "autocommand %s"
msgstr "autocommand %s"
-#: ../fileio.c:7795
msgid "E219: Missing {."
msgstr "E219: { がありません."
-#: ../fileio.c:7797
msgid "E220: Missing }."
msgstr "E220: } がありません."
-#: ../fold.c:93
msgid "E490: No fold found"
msgstr "E490: 折畳みがありません"
-#: ../fold.c:544
msgid "E350: Cannot create fold with current 'foldmethod'"
msgstr "E350: 現在の 'foldmethod' では折畳みを作成できません"
-#: ../fold.c:546
msgid "E351: Cannot delete fold with current 'foldmethod'"
msgstr "E351: 現在の 'foldmethod' では折畳みを削除できません"
-#: ../fold.c:1784
#, c-format
-msgid "+--%3ld lines folded "
-msgstr "+--%3ld 行が折畳まれました "
+msgid "+--%3ld line folded "
+msgid_plural "+--%3ld lines folded "
+msgstr[0] "+--%3ld 行が折畳まれました "
-#. buffer has already been read
-#: ../getchar.c:273
msgid "E222: Add to read buffer"
msgstr "E222: 読込バッファへ追加"
-#: ../getchar.c:2040
msgid "E223: recursive mapping"
msgstr "E223: 再帰的マッピング"
-#: ../getchar.c:2849
#, c-format
msgid "E224: global abbreviation already exists for %s"
msgstr "E224: %s というグローバル短縮入力は既に存在します"
-#: ../getchar.c:2852
#, c-format
msgid "E225: global mapping already exists for %s"
msgstr "E225: %s というグローバルマッピングは既に存在します"
-#: ../getchar.c:2952
#, c-format
msgid "E226: abbreviation already exists for %s"
msgstr "E226: %s という短縮入力は既に存在します"
-#: ../getchar.c:2955
#, c-format
msgid "E227: mapping already exists for %s"
msgstr "E227: %s というマッピングは既に存在します"
-#: ../getchar.c:3008
msgid "No abbreviation found"
msgstr "短縮入力は見つかりませんでした"
-#: ../getchar.c:3010
msgid "No mapping found"
msgstr "マッピングは見つかりませんでした"
-#: ../getchar.c:3974
msgid "E228: makemap: Illegal mode"
msgstr "E228: makemap: 不正なモード"
-#. key value of 'cedit' option
-#. type of cmdline window or 0
-#. result of cmdline window or 0
-#: ../globals.h:924
-msgid "--No lines in buffer--"
-msgstr "--バッファに行がありません--"
+msgid "E851: Failed to create a new process for the GUI"
+msgstr "E851: GUI用のプロセスの起動に失敗しました"
-#.
-#. * The error messages that can be shared are included here.
-#. * Excluded are errors that are only used once and debugging messages.
-#.
-#: ../globals.h:996
-msgid "E470: Command aborted"
-msgstr "E470: コマンドが中断されました"
+msgid "E852: The child process failed to start the GUI"
+msgstr "E852: 子プロセスがGUIの起動に失敗しました"
-#: ../globals.h:997
-msgid "E471: Argument required"
-msgstr "E471: 引数が必要です"
+msgid "E229: Cannot start the GUI"
+msgstr "E229: GUIを開始できません"
-#: ../globals.h:998
-msgid "E10: \\ should be followed by /, ? or &"
-msgstr "E10: \\ の後は / か ? か & でなければなりません"
+#, c-format
+msgid "E230: Cannot read from \"%s\""
+msgstr "E230: \"%s\"から読込むことができません"
-#: ../globals.h:1000
-msgid "E11: Invalid in command-line window; <CR> executes, CTRL-C quits"
-msgstr "E11: コマンドラインでは無効です; <CR>で実行, CTRL-Cでやめる"
+msgid "E665: Cannot start GUI, no valid font found"
+msgstr "E665: 有効なフォントが見つからないので, GUIを開始できません"
-#: ../globals.h:1002
-msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search"
-msgstr ""
-"E12: 現在のディレクトリやタグ検索ではexrc/vimrcのコマンドは許可されません"
+msgid "E231: 'guifontwide' invalid"
+msgstr "E231: 'guifontwide' が無効です"
-#: ../globals.h:1003
-msgid "E171: Missing :endif"
-msgstr "E171: :endif がありません"
+msgid "E599: Value of 'imactivatekey' is invalid"
+msgstr "E599: 'imactivatekey' に設定された値が無効です"
-#: ../globals.h:1004
-msgid "E600: Missing :endtry"
-msgstr "E600: :endtry がありません"
+#, c-format
+msgid "E254: Cannot allocate color %s"
+msgstr "E254: %s の色を割り当てられません"
-#: ../globals.h:1005
-msgid "E170: Missing :endwhile"
-msgstr "E170: :endwhile がありません"
+msgid "No match at cursor, finding next"
+msgstr "カーソルの位置にマッチはありません, 次を検索しています"
-#: ../globals.h:1006
-msgid "E170: Missing :endfor"
-msgstr "E170: :endfor がありません"
-
-#: ../globals.h:1007
-msgid "E588: :endwhile without :while"
-msgstr "E588: :while のない :endwhile があります"
+msgid "<cannot open> "
+msgstr "<開けません> "
-#: ../globals.h:1008
-msgid "E588: :endfor without :for"
-msgstr "E588: :endfor のない :for があります"
+#, c-format
+msgid "E616: vim_SelFile: can't get font %s"
+msgstr "E616: vim_SelFile: フォント %s を取得できません"
-#: ../globals.h:1009
-msgid "E13: File exists (add ! to override)"
-msgstr "E13: ファイルが存在します (! を追加で上書)"
+msgid "E614: vim_SelFile: can't return to current directory"
+msgstr "E614: vim_SelFile: 現在のディレクトリに戻れません"
-#: ../globals.h:1010
-msgid "E472: Command failed"
-msgstr "E472: コマンドが失敗しました"
+msgid "Pathname:"
+msgstr "パス名:"
-#: ../globals.h:1011
-msgid "E473: Internal error"
-msgstr "E473: 内部エラーです"
+msgid "E615: vim_SelFile: can't get current directory"
+msgstr "E615: vim_SelFile: 現在のディレクトリを取得できません"
-#: ../globals.h:1012
-msgid "Interrupted"
-msgstr "割込まれました"
+msgid "OK"
+msgstr "OK"
-#: ../globals.h:1013
-msgid "E14: Invalid address"
-msgstr "E14: 無効なアドレスです"
+msgid "Cancel"
+msgstr "キャンセル"
-#: ../globals.h:1014
-msgid "E474: Invalid argument"
-msgstr "E474: 無効な引数です"
+msgid "Scrollbar Widget: Could not get geometry of thumb pixmap."
+msgstr "スクロールバー: 画像を取得できませんでした."
-#: ../globals.h:1015
-#, c-format
-msgid "E475: Invalid argument: %s"
-msgstr "E475: 無効な引数です: %s"
+msgid "Vim dialog"
+msgstr "Vim ダイアログ"
-#: ../globals.h:1016
-#, c-format
-msgid "E15: Invalid expression: %s"
-msgstr "E15: 無効な式です: %s"
+msgid "E232: Cannot create BalloonEval with both message and callback"
+msgstr "E232: メッセージとコールバックのある BalloonEval を作成できません"
-#: ../globals.h:1017
-msgid "E16: Invalid range"
-msgstr "E16: 無効な範囲です"
+msgid "_Cancel"
+msgstr "キャンセル(_C)"
-#: ../globals.h:1018
-msgid "E476: Invalid command"
-msgstr "E476: 無効なコマンドです"
+msgid "_Save"
+msgstr "保存(_S)"
-#: ../globals.h:1019
-#, c-format
-msgid "E17: \"%s\" is a directory"
-msgstr "E17: \"%s\" はディレクトリです"
+msgid "_Open"
+msgstr "開く(_O)"
-#: ../globals.h:1020
-#, fuzzy
-msgid "E900: Invalid job id"
-msgstr "E49: 無効なスクロール量です"
+msgid "_OK"
+msgstr "_OK"
-#: ../globals.h:1021
-msgid "E901: Job table is full"
+msgid ""
+"&Yes\n"
+"&No\n"
+"&Cancel"
msgstr ""
+"はい(&Y)\n"
+"いいえ(&N)\n"
+"キャンセル(&C)"
-#: ../globals.h:1024
-#, c-format
-msgid "E364: Library call failed for \"%s()\""
-msgstr "E364: \"%s\"() のライブラリ呼出に失敗しました"
+msgid "Yes"
+msgstr "はい"
-#: ../globals.h:1026
-msgid "E19: Mark has invalid line number"
-msgstr "E19: マークに無効な行番号が指定されていました"
+msgid "No"
+msgstr "いいえ"
-#: ../globals.h:1027
-msgid "E20: Mark not set"
-msgstr "E20: マークは設定されていません"
+msgid "Input _Methods"
+msgstr "インプットメソッド"
-#: ../globals.h:1029
-msgid "E21: Cannot make changes, 'modifiable' is off"
-msgstr "E21: 'modifiable' がオフなので, 変更できません"
+msgid "VIM - Search and Replace..."
+msgstr "VIM - 検索と置換..."
-#: ../globals.h:1030
-msgid "E22: Scripts nested too deep"
-msgstr "E22: スクリプトの入れ子が深過ぎます"
+msgid "VIM - Search..."
+msgstr "VIM - 検索..."
-#: ../globals.h:1031
-msgid "E23: No alternate file"
-msgstr "E23: 副ファイルはありません"
+msgid "Find what:"
+msgstr "検索文字列:"
-#: ../globals.h:1032
-msgid "E24: No such abbreviation"
-msgstr "E24: そのような短縮入力はありません"
+msgid "Replace with:"
+msgstr "置換文字列:"
-#: ../globals.h:1033
-msgid "E477: No ! allowed"
-msgstr "E477: ! は許可されていません"
+#. whole word only button
+msgid "Match whole word only"
+msgstr "正確に該当するものだけ"
-#: ../globals.h:1035
-msgid "E25: Nvim does not have a built-in GUI"
-msgstr "E25: GUIは使用不可能です: コンパイル時に無効にされています"
+#. match case button
+msgid "Match case"
+msgstr "大文字/小文字を区別する"
-#: ../globals.h:1036
-#, c-format
-msgid "E28: No such highlight group name: %s"
-msgstr "E28: そのような名のハイライトグループはありません: %s"
+msgid "Direction"
+msgstr "方向"
-#: ../globals.h:1037
-msgid "E29: No inserted text yet"
-msgstr "E29: まだテキストが挿入されていません"
+#. 'Up' and 'Down' buttons
+msgid "Up"
+msgstr "上"
-#: ../globals.h:1038
-msgid "E30: No previous command line"
-msgstr "E30: 以前にコマンド行がありません"
+msgid "Down"
+msgstr "下"
-#: ../globals.h:1039
-msgid "E31: No such mapping"
-msgstr "E31: そのようなマッピングはありません"
+msgid "Find Next"
+msgstr "次を検索"
-#: ../globals.h:1040
-msgid "E479: No match"
-msgstr "E479: 該当はありません"
+msgid "Replace"
+msgstr "置換"
-#: ../globals.h:1041
-#, c-format
-msgid "E480: No match: %s"
-msgstr "E480: 該当はありません: %s"
+msgid "Replace All"
+msgstr "全て置換"
-#: ../globals.h:1042
-msgid "E32: No file name"
-msgstr "E32: ファイル名がありません"
+msgid "_Close"
+msgstr "閉じる(_C)"
-#: ../globals.h:1044
-msgid "E33: No previous substitute regular expression"
-msgstr "E33: 正規表現置換がまだ実行されていません"
+msgid "Vim: Received \"die\" request from session manager\n"
+msgstr "Vim: セッションマネージャから \"die\" 要求を受け取りました\n"
-#: ../globals.h:1045
-msgid "E34: No previous command"
-msgstr "E34: コマンドがまだ実行されていません"
+msgid "Close tab"
+msgstr "タブページを閉じる"
-#: ../globals.h:1046
-msgid "E35: No previous regular expression"
-msgstr "E35: 正規表現がまだ実行されていません"
+msgid "New tab"
+msgstr "新規タブページ"
-#: ../globals.h:1047
-msgid "E481: No range allowed"
-msgstr "E481: 範囲指定は許可されていません"
+msgid "Open Tab..."
+msgstr "タブページを開く..."
-#: ../globals.h:1048
-msgid "E36: Not enough room"
-msgstr "E36: ウィンドウに十分な高さもしくは幅がありません"
+msgid "Vim: Main window unexpectedly destroyed\n"
+msgstr "Vim: メインウィンドウが不意に破壊されました\n"
-#: ../globals.h:1049
-#, c-format
-msgid "E482: Can't create file %s"
-msgstr "E482: ファイル %s を作成できません"
+msgid "&Filter"
+msgstr "フィルタ(&F)"
-#: ../globals.h:1050
-msgid "E483: Can't get temp file name"
-msgstr "E483: 一時ファイルの名前を取得できません"
+msgid "&Cancel"
+msgstr "キャンセル(&C)"
-#: ../globals.h:1051
-#, c-format
-msgid "E484: Can't open file %s"
-msgstr "E484: ファイル \"%s\" を開けません"
+msgid "Directories"
+msgstr "ディレクトリ"
-#: ../globals.h:1052
-#, c-format
-msgid "E485: Can't read file %s"
-msgstr "E485: ファイル %s を読込めません"
+msgid "Filter"
+msgstr "フィルタ"
-#: ../globals.h:1054
-msgid "E37: No write since last change (add ! to override)"
-msgstr "E37: 最後の変更が保存されていません (! を追加で変更を破棄)"
+msgid "&Help"
+msgstr "ヘルプ(&H)"
-#: ../globals.h:1055
-msgid "E37: No write since last change"
-msgstr "E37: 最後の変更が保存されていません"
+msgid "Files"
+msgstr "ファイル"
-#: ../globals.h:1056
-msgid "E38: Null argument"
-msgstr "E38: 引数が空です"
+msgid "&OK"
+msgstr "&OK"
-#: ../globals.h:1057
-msgid "E39: Number expected"
-msgstr "E39: 数値が要求されています"
+msgid "Selection"
+msgstr "選択"
-#: ../globals.h:1058
-#, c-format
-msgid "E40: Can't open errorfile %s"
-msgstr "E40: エラーファイル %s を開けません"
+msgid "Find &Next"
+msgstr "次を検索(&N)"
-#: ../globals.h:1059
-msgid "E41: Out of memory!"
-msgstr "E41: メモリが尽き果てました!"
+msgid "&Replace"
+msgstr "置換(&R)"
-#: ../globals.h:1060
-msgid "Pattern not found"
-msgstr "パターンは見つかりませんでした"
+msgid "Replace &All"
+msgstr "全て置換(&A)"
-#: ../globals.h:1061
-#, c-format
-msgid "E486: Pattern not found: %s"
-msgstr "E486: パターンは見つかりませんでした: %s"
+msgid "&Undo"
+msgstr "アンドゥ(&U)"
-#: ../globals.h:1062
-msgid "E487: Argument must be positive"
-msgstr "E487: 引数は正の値でなければなりません"
+msgid "Open tab..."
+msgstr "タブページを開く"
-#: ../globals.h:1064
-msgid "E459: Cannot go back to previous directory"
-msgstr "E459: 前のディレクトリに戻れません"
+msgid "Find string (use '\\\\' to find a '\\')"
+msgstr "検索文字列 ('\\' を検索するには '\\\\')"
-#: ../globals.h:1066
-msgid "E42: No Errors"
-msgstr "E42: エラーはありません"
+msgid "Find & Replace (use '\\\\' to find a '\\')"
+msgstr "検索・置換 ('\\' を検索するには '\\\\')"
-#: ../globals.h:1067
-msgid "E776: No location list"
-msgstr "E776: ロケーションリストはありません"
-
-#: ../globals.h:1068
-msgid "E43: Damaged match string"
-msgstr "E43: 該当文字列が破損しています"
+#. We fake this: Use a filter that doesn't select anything and a default
+#. * file name that won't be used.
+msgid "Not Used"
+msgstr "使われません"
-#: ../globals.h:1069
-msgid "E44: Corrupted regexp program"
-msgstr "E44: 不正な正規表現プログラムです"
+msgid "Directory\t*.nothing\n"
+msgstr "ディレクトリ\t*.nothing\n"
-#: ../globals.h:1071
-msgid "E45: 'readonly' option is set (add ! to override)"
-msgstr "E45: 'readonly' オプションが設定されています (! を追加で上書き)"
-
-#: ../globals.h:1073
#, c-format
-msgid "E46: Cannot change read-only variable \"%s\""
-msgstr "E46: 読取専用変数 \"%s\" には値を設定できません"
+msgid "E671: Cannot find window title \"%s\""
+msgstr "E671: タイトルが \"%s\" のウィンドウは見つかりません"
-#: ../globals.h:1075
#, c-format
-msgid "E794: Cannot set variable in the sandbox: \"%s\""
-msgstr "E794: サンドボックスでは変数 \"%s\" に値を設定できません"
-
-#: ../globals.h:1076
-msgid "E47: Error while reading errorfile"
-msgstr "E47: エラーファイルの読込中にエラーが発生しました"
-
-#: ../globals.h:1078
-msgid "E48: Not allowed in sandbox"
-msgstr "E48: サンドボックスでは許されません"
-
-#: ../globals.h:1080
-msgid "E523: Not allowed here"
-msgstr "E523: ここでは許可されません"
+msgid "E243: Argument not supported: \"-%s\"; Use the OLE version."
+msgstr "E243: 引数はサポートされません: \"-%s\"; OLE版を使用してください."
-#: ../globals.h:1082
-msgid "E359: Screen mode setting not supported"
-msgstr "E359: スクリーンモードの設定には対応していません"
+msgid "E672: Unable to open window inside MDI application"
+msgstr "E672: MDIアプリの中ではウィンドウを開けません"
-#: ../globals.h:1083
-msgid "E49: Invalid scroll size"
-msgstr "E49: 無効なスクロール量です"
+msgid "Vim E458: Cannot allocate colormap entry, some colors may be incorrect"
+msgstr "Vim E458: 色指定が正しくないのでエントリを割り当てられません"
-#: ../globals.h:1084
-msgid "E91: 'shell' option is empty"
-msgstr "E91: 'shell' オプションが空です"
+#, c-format
+msgid "E250: Fonts for the following charsets are missing in fontset %s:"
+msgstr "E250: 以下の文字セットのフォントがありません %s:"
-#: ../globals.h:1085
-msgid "E255: Couldn't read in sign data!"
-msgstr "E255: sign のデータを読込めませんでした"
+#, c-format
+msgid "E252: Fontset name: %s"
+msgstr "E252: フォントセット名: %s"
-#: ../globals.h:1086
-msgid "E72: Close error on swap file"
-msgstr "E72: スワップファイルのクローズ時エラーです"
+#, c-format
+msgid "Font '%s' is not fixed-width"
+msgstr "フォント '%s' は固定幅ではありません"
-#: ../globals.h:1087
-msgid "E73: tag stack empty"
-msgstr "E73: タグスタックが空です"
+#, c-format
+msgid "E253: Fontset name: %s"
+msgstr "E253: フォントセット名: %s"
-#: ../globals.h:1088
-msgid "E74: Command too complex"
-msgstr "E74: コマンドが複雑過ぎます"
+#, c-format
+msgid "Font0: %s"
+msgstr "フォント0: %s"
-#: ../globals.h:1089
-msgid "E75: Name too long"
-msgstr "E75: 名前が長過ぎます"
+#, c-format
+msgid "Font1: %s"
+msgstr "フォント1: %s"
-#: ../globals.h:1090
-msgid "E76: Too many ["
-msgstr "E76: [ が多過ぎます"
+#, c-format
+msgid "Font%ld width is not twice that of font0"
+msgstr "フォント%ld の幅がフォント0の2倍ではありません"
-#: ../globals.h:1091
-msgid "E77: Too many file names"
-msgstr "E77: ファイル名が多過ぎます"
+#, c-format
+msgid "Font0 width: %ld"
+msgstr "フォント0の幅: %ld"
-#: ../globals.h:1092
-msgid "E488: Trailing characters"
-msgstr "E488: 余分な文字が後ろにあります"
+#, c-format
+msgid "Font1 width: %ld"
+msgstr "フォント1の幅: %ld"
-#: ../globals.h:1093
-msgid "E78: Unknown mark"
-msgstr "E78: 未知のマーク"
+msgid "Invalid font specification"
+msgstr "無効なフォント指定です"
-#: ../globals.h:1094
-msgid "E79: Cannot expand wildcards"
-msgstr "E79: ワイルドカードを展開できません"
+msgid "&Dismiss"
+msgstr "却下する(&D)"
-#: ../globals.h:1096
-msgid "E591: 'winheight' cannot be smaller than 'winminheight'"
-msgstr "E591: 'winheight' は 'winminheight' より小さくできません"
+msgid "no specific match"
+msgstr "マッチするものがありません"
-#: ../globals.h:1098
-msgid "E592: 'winwidth' cannot be smaller than 'winminwidth'"
-msgstr "E592: 'winwidth' は 'winminwidth' より小さくできません"
+msgid "Vim - Font Selector"
+msgstr "Vim - フォント選択"
-#: ../globals.h:1099
-msgid "E80: Error while writing"
-msgstr "E80: 書込み中のエラー"
+msgid "Name:"
+msgstr "名前:"
-#: ../globals.h:1100
-msgid "Zero count"
-msgstr "ゼロカウント"
+#. create toggle button
+msgid "Show size in Points"
+msgstr "サイズをポイントで表示する"
-#: ../globals.h:1101
-msgid "E81: Using <SID> not in a script context"
-msgstr "E81: スクリプト以外で<SID>が使われました"
+msgid "Encoding:"
+msgstr "エンコード:"
-#: ../globals.h:1102
-#, c-format
-msgid "E685: Internal error: %s"
-msgstr "E685: 内部エラーです: %s"
+msgid "Font:"
+msgstr "フォント:"
-#: ../globals.h:1104
-msgid "E363: pattern uses more memory than 'maxmempattern'"
-msgstr "E363: パターンが 'maxmempattern' 以上のメモリを使用します"
+msgid "Style:"
+msgstr "スタイル:"
-#: ../globals.h:1105
-msgid "E749: empty buffer"
-msgstr "E749: バッファが空です"
+msgid "Size:"
+msgstr "サイズ:"
-#: ../globals.h:1108
-msgid "E682: Invalid search pattern or delimiter"
-msgstr "E682: 検索パターンか区切り記号が不正です"
+msgid "E256: Hangul automata ERROR"
+msgstr "E256: ハングルオートマトンエラー"
-#: ../globals.h:1109
-msgid "E139: File is loaded in another buffer"
-msgstr "E139: 同じ名前のファイルが他のバッファで読込まれています"
-
-#: ../globals.h:1110
-#, c-format
-msgid "E764: Option '%s' is not set"
-msgstr "E764: オプション '%s' は設定されていません"
-
-#: ../globals.h:1111
-msgid "E850: Invalid register name"
-msgstr "E850: 無効なレジスタ名です"
-
-#: ../globals.h:1114
-msgid "search hit TOP, continuing at BOTTOM"
-msgstr "上まで検索したので下に戻ります"
-
-#: ../globals.h:1115
-msgid "search hit BOTTOM, continuing at TOP"
-msgstr "下まで検索したので上に戻ります"
-
-#: ../hardcopy.c:240
msgid "E550: Missing colon"
msgstr "E550: コロンがありません"
-#: ../hardcopy.c:252
msgid "E551: Illegal component"
msgstr "E551: 不正な構文要素です"
-#: ../hardcopy.c:259
msgid "E552: digit expected"
msgstr "E552: 数値が必要です"
-#: ../hardcopy.c:473
#, c-format
msgid "Page %d"
msgstr "%d ページ"
-#: ../hardcopy.c:597
msgid "No text to be printed"
msgstr "印刷するテキストがありません"
-#: ../hardcopy.c:668
#, c-format
msgid "Printing page %d (%d%%)"
msgstr "印刷中: ページ %d (%d%%)"
-#: ../hardcopy.c:680
#, c-format
msgid " Copy %d of %d"
msgstr " コピー %d (全 %d 中)"
-#: ../hardcopy.c:733
#, c-format
msgid "Printed: %s"
msgstr "印刷しました: %s"
-#: ../hardcopy.c:740
msgid "Printing aborted"
msgstr "印刷が中止されました"
-#: ../hardcopy.c:1365
msgid "E455: Error writing to PostScript output file"
msgstr "E455: PostScript出力ファイルの書込みエラーです"
-#: ../hardcopy.c:1747
#, c-format
msgid "E624: Can't open file \"%s\""
msgstr "E624: ファイル \"%s\" を開けません"
-#: ../hardcopy.c:1756 ../hardcopy.c:2470
#, c-format
msgid "E457: Can't read PostScript resource file \"%s\""
msgstr "E457: PostScriptのリソースファイル \"%s\" を読込めません"
-#: ../hardcopy.c:1772
#, c-format
msgid "E618: file \"%s\" is not a PostScript resource file"
msgstr "E618: ファイル \"%s\" は PostScript リソースファイルではありません"
-#: ../hardcopy.c:1788 ../hardcopy.c:1805 ../hardcopy.c:1844
#, c-format
msgid "E619: file \"%s\" is not a supported PostScript resource file"
msgstr "E619: ファイル \"%s\" は対応していない PostScript リソースファイルです"
-#: ../hardcopy.c:1856
#, c-format
msgid "E621: \"%s\" resource file has wrong version"
msgstr "E621: リソースファイル \"%s\" はバージョンが異なります"
-#: ../hardcopy.c:2225
msgid "E673: Incompatible multi-byte encoding and character set."
msgstr "E673: 互換性の無いマルチバイトエンコーディングと文字セットです"
-#: ../hardcopy.c:2238
msgid "E674: printmbcharset cannot be empty with multi-byte encoding."
msgstr "E674: マルチバイトエンコーディングでは printmbcharset を空にできません"
-#: ../hardcopy.c:2254
msgid "E675: No default font specified for multi-byte printing."
msgstr ""
"E675: マルチバイト文字を印刷するためのデフォルトフォントが指定されていません"
-#: ../hardcopy.c:2426
msgid "E324: Can't open PostScript output file"
msgstr "E324: PostScript出力用のファイルを開けません"
-#: ../hardcopy.c:2458
#, c-format
msgid "E456: Can't open file \"%s\""
msgstr "E456: ファイル \"%s\" を開けません"
-#: ../hardcopy.c:2583
msgid "E456: Can't find PostScript resource file \"prolog.ps\""
msgstr "E456: PostScriptのリソースファイル \"prolog.ps\" が見つかりません"
-#: ../hardcopy.c:2593
msgid "E456: Can't find PostScript resource file \"cidfont.ps\""
msgstr "E456: PostScriptのリソースファイル \"cidfont.ps\" が見つかりません"
-#: ../hardcopy.c:2622 ../hardcopy.c:2639 ../hardcopy.c:2665
#, c-format
msgid "E456: Can't find PostScript resource file \"%s.ps\""
msgstr "E456: PostScriptのリソースファイル \"%s.ps\" が見つかりません"
-#: ../hardcopy.c:2654
#, c-format
msgid "E620: Unable to convert to print encoding \"%s\""
msgstr "E620: 印刷エンコード \"%s\" へ変換できません"
-#: ../hardcopy.c:2877
msgid "Sending to printer..."
msgstr "プリンタに送信中..."
-#: ../hardcopy.c:2881
msgid "E365: Failed to print PostScript file"
msgstr "E365: PostScriptファイルの印刷に失敗しました"
-#: ../hardcopy.c:2883
msgid "Print job sent."
msgstr "印刷ジョブを送信しました."
-#: ../if_cscope.c:85
msgid "Add a new database"
msgstr "新データベースを追加"
-#: ../if_cscope.c:87
msgid "Query for a pattern"
msgstr "パターンのクエリーを追加"
-#: ../if_cscope.c:89
msgid "Show this message"
msgstr "このメッセージを表示する"
-#: ../if_cscope.c:91
msgid "Kill a connection"
msgstr "接続を終了する"
-#: ../if_cscope.c:93
msgid "Reinit all connections"
msgstr "全ての接続を再初期化する"
-#: ../if_cscope.c:95
msgid "Show connections"
msgstr "接続を表示する"
-#: ../if_cscope.c:101
#, c-format
msgid "E560: Usage: cs[cope] %s"
msgstr "E560: 使用方法: cs[cope] %s"
-#: ../if_cscope.c:225
msgid "This cscope command does not support splitting the window.\n"
msgstr "このcscopeコマンドは分割ウィンドウではサポートされません.\n"
-#: ../if_cscope.c:266
msgid "E562: Usage: cstag <ident>"
msgstr "E562: 使用法: cstag <ident>"
-#: ../if_cscope.c:313
msgid "E257: cstag: tag not found"
msgstr "E257: cstag: タグが見つかりません"
-#: ../if_cscope.c:461
#, c-format
msgid "E563: stat(%s) error: %d"
msgstr "E563: stat(%s) エラー: %d"
-#: ../if_cscope.c:551
+msgid "E563: stat error"
+msgstr "E563: stat エラー"
+
#, c-format
msgid "E564: %s is not a directory or a valid cscope database"
msgstr "E564: %s はディレクトリ及び有効なcscopeのデータベースではありません"
-#: ../if_cscope.c:566
#, c-format
msgid "Added cscope database %s"
msgstr "cscopeデータベース %s を追加"
-#: ../if_cscope.c:616
#, c-format
-msgid "E262: error reading cscope connection %<PRId64>"
-msgstr "E262: cscopeの接続 %<PRId64> を読込み中のエラーです"
+msgid "E262: error reading cscope connection %ld"
+msgstr "E262: cscopeの接続 %ld を読込み中のエラーです"
-#: ../if_cscope.c:711
msgid "E561: unknown cscope search type"
msgstr "E561: 未知のcscope検索型です"
-#: ../if_cscope.c:752 ../if_cscope.c:789
msgid "E566: Could not create cscope pipes"
msgstr "E566: cscopeパイプを作成できませんでした"
-#: ../if_cscope.c:767
msgid "E622: Could not fork for cscope"
msgstr "E622: cscopeの起動準備(fork)に失敗しました"
-#: ../if_cscope.c:849
msgid "cs_create_connection setpgid failed"
msgstr "cs_create_connection への setpgid に失敗しました"
-#: ../if_cscope.c:853 ../if_cscope.c:889
msgid "cs_create_connection exec failed"
msgstr "cs_create_connection の実行に失敗しました"
-#: ../if_cscope.c:863 ../if_cscope.c:902
msgid "cs_create_connection: fdopen for to_fp failed"
msgstr "cs_create_connection: to_fp の fdopen に失敗しました"
-#: ../if_cscope.c:865 ../if_cscope.c:906
msgid "cs_create_connection: fdopen for fr_fp failed"
msgstr "cs_create_connection: fr_fp の fdopen に失敗しました"
-#: ../if_cscope.c:890
msgid "E623: Could not spawn cscope process"
msgstr "E623: cscopeプロセスを起動できませんでした"
-#: ../if_cscope.c:932
msgid "E567: no cscope connections"
msgstr "E567: cscope接続に失敗しました"
-#: ../if_cscope.c:1009
#, c-format
msgid "E469: invalid cscopequickfix flag %c for %c"
msgstr "E469: 無効な cscopequickfix フラグ %c の %c です"
-#: ../if_cscope.c:1058
#, c-format
msgid "E259: no matches found for cscope query %s of %s"
msgstr "E259: cscopeクエリー %s of %s に該当がありませんでした"
-#: ../if_cscope.c:1142
msgid "cscope commands:\n"
msgstr "cscopeコマンド:\n"
-#: ../if_cscope.c:1150
#, c-format
msgid "%-5s: %s%*s (Usage: %s)"
msgstr "%-5s: %s%*s (使用法: %s)"
-#: ../if_cscope.c:1155
msgid ""
"\n"
+" a: Find assignments to this symbol\n"
" c: Find functions calling this function\n"
" d: Find functions called by this function\n"
" e: Find this egrep pattern\n"
@@ -3233,6 +2549,7 @@ msgid ""
" t: Find this text string\n"
msgstr ""
"\n"
+" a: このシンボルに対する代入を探す\n"
" c: この関数を呼んでいる関数を探す\n"
" d: この関数から呼んでいる関数を探す\n"
" e: このegrepパターンを探す\n"
@@ -3242,31 +2559,32 @@ msgstr ""
" s: このCシンボルを探す\n"
" t: このテキスト文字列を探す\n"
-#: ../if_cscope.c:1226
+#, c-format
+msgid "E625: cannot open cscope database: %s"
+msgstr "E625: cscopeデータベース: %s を開くことができません"
+
+msgid "E626: cannot get cscope database information"
+msgstr "E626: cscopeデータベースの情報を取得できません"
+
msgid "E568: duplicate cscope database not added"
msgstr "E568: 重複するcscopeデータベースは追加されませんでした"
-#: ../if_cscope.c:1335
#, c-format
msgid "E261: cscope connection %s not found"
msgstr "E261: cscope接続 %s が見つかりませんでした"
-#: ../if_cscope.c:1364
#, c-format
msgid "cscope connection %s closed"
msgstr "cscope接続 %s が閉じられました"
#. should not reach here
-#: ../if_cscope.c:1486
msgid "E570: fatal error in cs_manage_matches"
msgstr "E570: cs_manage_matches で致命的なエラーです"
-#: ../if_cscope.c:1693
#, c-format
msgid "Cscope tag: %s"
msgstr "Cscope タグ: %s"
-#: ../if_cscope.c:1711
msgid ""
"\n"
" # line"
@@ -3274,87 +2592,300 @@ msgstr ""
"\n"
" # 行番号"
-#: ../if_cscope.c:1713
msgid "filename / context / line\n"
msgstr "ファイル名 / 文脈 / 行\n"
-#: ../if_cscope.c:1809
#, c-format
msgid "E609: Cscope error: %s"
msgstr "E609: cscopeエラー: %s"
-#: ../if_cscope.c:2053
msgid "All cscope databases reset"
msgstr "全てのcscopeデータベースをリセットします"
-#: ../if_cscope.c:2123
msgid "no cscope connections\n"
msgstr "cscope接続がありません\n"
-#: ../if_cscope.c:2126
msgid " # pid database name prepend path\n"
msgstr " # pid データベース名 prepend パス\n"
-#: ../main.c:144
+msgid "Lua library cannot be loaded."
+msgstr "Luaライブラリをロードできません."
+
+msgid "cannot save undo information"
+msgstr "アンドゥ情報が保存できません"
+
+msgid ""
+"E815: Sorry, this command is disabled, the MzScheme libraries could not be "
+"loaded."
+msgstr "E815: このコマンドは無効です. MzScheme ライブラリをロードできません."
+
+msgid ""
+"E895: Sorry, this command is disabled, the MzScheme's racket/base module "
+"could not be loaded."
+msgstr ""
+"E895: このコマンドは無効です,ごめんなさい. MzScheme の racket/base モジュール"
+"がロードできませんでした."
+
+msgid "invalid expression"
+msgstr "無効な式です"
+
+msgid "expressions disabled at compile time"
+msgstr "式はコンパイル時に無効にされています"
+
+msgid "hidden option"
+msgstr "隠しオプション"
+
+msgid "unknown option"
+msgstr "未知のオプションです"
+
+msgid "window index is out of range"
+msgstr "範囲外のウィンドウ番号です"
+
+msgid "couldn't open buffer"
+msgstr "バッファを開けません"
+
+msgid "cannot delete line"
+msgstr "行を消せません"
+
+msgid "cannot replace line"
+msgstr "行を置換できません"
+
+msgid "cannot insert line"
+msgstr "行を挿入できません"
+
+msgid "string cannot contain newlines"
+msgstr "文字列には改行文字を含められません"
+
+msgid "error converting Scheme values to Vim"
+msgstr "Scheme値のVimへの変換エラー"
+
+msgid "Vim error: ~a"
+msgstr "Vim エラー: ~a"
+
+msgid "Vim error"
+msgstr "Vim エラー"
+
+msgid "buffer is invalid"
+msgstr "バッファは無効です"
+
+msgid "window is invalid"
+msgstr "ウィンドウは無効です"
+
+msgid "linenr out of range"
+msgstr "範囲外の行番号です"
+
+msgid "not allowed in the Vim sandbox"
+msgstr "サンドボックスでは許されません"
+
+msgid "E836: This Vim cannot execute :python after using :py3"
+msgstr "E836: このVimでは :py3 を使った後に :python を使えません"
+
+msgid ""
+"E263: Sorry, this command is disabled, the Python library could not be "
+"loaded."
+msgstr ""
+"E263: このコマンドは無効です,ごめんなさい: Pythonライブラリをロードできません"
+"でした."
+
+msgid ""
+"E887: Sorry, this command is disabled, the Python's site module could not be "
+"loaded."
+msgstr ""
+"E887: このコマンドは無効です,ごめんなさい. Python の site モジュールをロード"
+"できませんでした."
+
+# Added at 07-Feb-2004.
+msgid "E659: Cannot invoke Python recursively"
+msgstr "E659: Python を再帰的に実行することはできません"
+
+msgid "E837: This Vim cannot execute :py3 after using :python"
+msgstr "E837: このVimでは :python を使った後に :py3 を使えません"
+
+msgid "E265: $_ must be an instance of String"
+msgstr "E265: $_ は文字列のインスタンスでなければなりません"
+
+msgid ""
+"E266: Sorry, this command is disabled, the Ruby library could not be loaded."
+msgstr ""
+"E266: このコマンドは無効です,ごめんなさい: Rubyライブラリをロードできませんで"
+"した."
+
+msgid "E267: unexpected return"
+msgstr "E267: 予期せぬ return です"
+
+msgid "E268: unexpected next"
+msgstr "E268: 予期せぬ next です"
+
+msgid "E269: unexpected break"
+msgstr "E269: 予期せぬ break です"
+
+msgid "E270: unexpected redo"
+msgstr "E270: 予期せぬ redo です"
+
+msgid "E271: retry outside of rescue clause"
+msgstr "E271: rescue の外の retry です"
+
+msgid "E272: unhandled exception"
+msgstr "E272: 取り扱われなかった例外があります"
+
+#, c-format
+msgid "E273: unknown longjmp status %d"
+msgstr "E273: 未知のlongjmp状態: %d"
+
+msgid "invalid buffer number"
+msgstr "無効なバッファ番号です"
+
+msgid "not implemented yet"
+msgstr "まだ実装されていません"
+
+#. ???
+msgid "cannot set line(s)"
+msgstr "行を設定できません"
+
+msgid "invalid mark name"
+msgstr "無効なマーク名です"
+
+msgid "mark not set"
+msgstr "マークは設定されていません"
+
+#, c-format
+msgid "row %d column %d"
+msgstr "行 %d 列 %d"
+
+msgid "cannot insert/append line"
+msgstr "行の挿入/追加をできません"
+
+msgid "line number out of range"
+msgstr "範囲外の行番号です"
+
+msgid "unknown flag: "
+msgstr "未知のフラグ: "
+
+msgid "unknown vimOption"
+msgstr "未知の vimOption です"
+
+msgid "keyboard interrupt"
+msgstr "キーボード割込み"
+
+msgid "vim error"
+msgstr "vim エラー"
+
+msgid "cannot create buffer/window command: object is being deleted"
+msgstr ""
+"バッファ/ウィンドウ作成コマンドを作成できません: オブジェクトが消去されていま"
+"した"
+
+msgid ""
+"cannot register callback command: buffer/window is already being deleted"
+msgstr ""
+"コールバックコマンドを登録できません: バッファ/ウィンドウが既に消去されました"
+
+#. This should never happen. Famous last word?
+msgid ""
+"E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim."
+"org"
+msgstr ""
+"E280: TCL 致命的エラー: reflist 汚染!? vim-dev@vim.org に報告してください"
+
+msgid "cannot register callback command: buffer/window reference not found"
+msgstr ""
+"コールバックコマンドを登録できません: バッファ/ウィンドウの参照が見つかりませ"
+"ん"
+
+msgid ""
+"E571: Sorry, this command is disabled: the Tcl library could not be loaded."
+msgstr ""
+"E571: このコマンドは無効です,ごめんなさい: Tclライブラリをロードできませんで"
+"した."
+
+#, c-format
+msgid "E572: exit code %d"
+msgstr "E572: 終了コード %d"
+
+msgid "cannot get line"
+msgstr "行を取得できません"
+
+msgid "Unable to register a command server name"
+msgstr "命令サーバーの名前を登録できません"
+
+msgid "E248: Failed to send command to the destination program"
+msgstr "E248: 目的のプログラムへのコマンド送信に失敗しました"
+
+#, c-format
+msgid "E573: Invalid server id used: %s"
+msgstr "E573: 無効なサーバーIDが使われました: %s"
+
+msgid "E251: VIM instance registry property is badly formed. Deleted!"
+msgstr "E251: VIM 実体の登録プロパティが不正です. 消去しました!"
+
+#, c-format
+msgid "E696: Missing comma in List: %s"
+msgstr "E696: リスト型にカンマがありません: %s"
+
+#, c-format
+msgid "E697: Missing end of List ']': %s"
+msgstr "E697: リスト型の最後に ']' がありません: %s"
+
msgid "Unknown option argument"
msgstr "未知のオプション引数です"
-#: ../main.c:146
msgid "Too many edit arguments"
msgstr "編集引数が多過ぎます"
-#: ../main.c:148
msgid "Argument missing after"
msgstr "引数がありません"
-#: ../main.c:150
msgid "Garbage after option argument"
msgstr "オプション引数の後にゴミがあります"
-#: ../main.c:152
msgid "Too many \"+command\", \"-c command\" or \"--cmd command\" arguments"
msgstr "\"+command\", \"-c command\", \"--cmd command\" の引数が多過ぎます"
-#: ../main.c:154
msgid "Invalid argument for"
msgstr "無効な引数です: "
-#: ../main.c:294
#, c-format
msgid "%d files to edit\n"
msgstr "%d 個のファイルが編集を控えています\n"
-#: ../main.c:1342
+msgid "netbeans is not supported with this GUI\n"
+msgstr "netbeans はこのGUIでは利用できません\n"
+
+msgid "'-nb' cannot be used: not enabled at compile time\n"
+msgstr "'-nb' 使用不可能です: コンパイル時に無効にされています\n"
+
+msgid "This Vim was not compiled with the diff feature."
+msgstr "このVimにはdiff機能がありません(コンパイル時設定)."
+
msgid "Attempt to open script file again: \""
msgstr "スクリプトファイルを再び開いてみます: \""
-#: ../main.c:1350
msgid "Cannot open for reading: \""
msgstr "読込用として開けません"
-#: ../main.c:1393
msgid "Cannot open for script output: \""
msgstr "スクリプト出力用を開けません"
-#: ../main.c:1622
+msgid "Vim: Error: Failure to start gvim from NetBeans\n"
+msgstr "Vim: エラー: NetBeansからgvimをスタートできません\n"
+
+msgid "Vim: Error: This version of Vim does not run in a Cygwin terminal\n"
+msgstr "Vim: エラー: このバージョンのVimはCygwin端末では動作しません\n"
+
msgid "Vim: Warning: Output is not to a terminal\n"
msgstr "Vim: 警告: 端末への出力ではありません\n"
-#: ../main.c:1624
msgid "Vim: Warning: Input is not from a terminal\n"
msgstr "Vim: 警告: 端末からの入力ではありません\n"
#. just in case..
-#: ../main.c:1891
msgid "pre-vimrc command line"
msgstr "vimrc前のコマンドライン"
-#: ../main.c:1964
#, c-format
msgid "E282: Cannot read from \"%s\""
msgstr "E282: \"%s\"から読込むことができません"
-#: ../main.c:2149
msgid ""
"\n"
"More info with: \"vim -h\"\n"
@@ -3362,23 +2893,18 @@ msgstr ""
"\n"
"より詳細な情報は: \"vim -h\"\n"
-#: ../main.c:2178
msgid "[file ..] edit specified file(s)"
msgstr "[ファイル..] あるファイルを編集する"
-#: ../main.c:2179
msgid "- read text from stdin"
msgstr "- 標準入力からテキストを読込む"
-#: ../main.c:2180
msgid "-t tag edit file where tag is defined"
msgstr "-t タグ タグが定義されたところから編集する"
-#: ../main.c:2181
msgid "-q [errorfile] edit file with first error"
msgstr "-q [errorfile] 最初のエラーで編集する"
-#: ../main.c:2187
msgid ""
"\n"
"\n"
@@ -3388,11 +2914,9 @@ msgstr ""
"\n"
"使用法:"
-#: ../main.c:2189
msgid " vim [arguments] "
msgstr " vim [引数] "
-#: ../main.c:2193
msgid ""
"\n"
" or:"
@@ -3400,7 +2924,13 @@ msgstr ""
"\n"
" もしくは:"
-#: ../main.c:2196
+msgid ""
+"\n"
+"Where case is ignored prepend / to make flag upper case"
+msgstr ""
+"\n"
+"大小文字が無視される場合は大文字にするために / を前置してください"
+
msgid ""
"\n"
"\n"
@@ -3410,189 +2940,319 @@ msgstr ""
"\n"
"引数:\n"
-#: ../main.c:2197
msgid "--\t\t\tOnly file names after this"
msgstr "--\t\t\tこのあとにはファイル名だけ"
-#: ../main.c:2199
msgid "--literal\t\tDon't expand wildcards"
msgstr "--literal\t\tワイルドカードを展開しない"
-#: ../main.c:2201
+msgid "-register\t\tRegister this gvim for OLE"
+msgstr "-register\t\tこのgvimをOLEとして登録する"
+
+msgid "-unregister\t\tUnregister gvim for OLE"
+msgstr "-unregister\t\tgvimのOLE登録を解除する"
+
+msgid "-g\t\t\tRun using GUI (like \"gvim\")"
+msgstr "-g\t\t\tGUIで起動する (\"gvim\" と同じ)"
+
+msgid "-f or --nofork\tForeground: Don't fork when starting GUI"
+msgstr "-f or --nofork\tフォアグラウンド: GUIを始めるときにforkしない"
+
msgid "-v\t\t\tVi mode (like \"vi\")"
msgstr "-v\t\t\tViモード (\"vi\" と同じ)"
-#: ../main.c:2202
msgid "-e\t\t\tEx mode (like \"ex\")"
msgstr "-e\t\t\tExモード (\"ex\" と同じ)"
-#: ../main.c:2203
msgid "-E\t\t\tImproved Ex mode"
msgstr "-E\t\t\t改良Exモード"
-#: ../main.c:2204
msgid "-s\t\t\tSilent (batch) mode (only for \"ex\")"
msgstr "-s\t\t\tサイレント(バッチ)モード (\"ex\" 専用)"
-#: ../main.c:2205
msgid "-d\t\t\tDiff mode (like \"vimdiff\")"
msgstr "-d\t\t\t差分モード (\"vidiff\" と同じ)"
-#: ../main.c:2206
msgid "-y\t\t\tEasy mode (like \"evim\", modeless)"
msgstr "-y\t\t\tイージーモード (\"evim\" と同じ, モード無)"
-#: ../main.c:2207
msgid "-R\t\t\tReadonly mode (like \"view\")"
msgstr "-R\t\t\t読込専用モード (\"view\" と同じ)"
-#: ../main.c:2208
msgid "-Z\t\t\tRestricted mode (like \"rvim\")"
msgstr "-Z\t\t\t制限モード (\"rvim\" と同じ)"
-#: ../main.c:2209
msgid "-m\t\t\tModifications (writing files) not allowed"
msgstr "-m\t\t\t変更 (ファイル保存時) をできないようにする"
-#: ../main.c:2210
msgid "-M\t\t\tModifications in text not allowed"
msgstr "-M\t\t\tテキストの編集を行なえないようにする"
-#: ../main.c:2211
msgid "-b\t\t\tBinary mode"
msgstr "-b\t\t\tバイナリモード"
-#: ../main.c:2212
msgid "-l\t\t\tLisp mode"
msgstr "-l\t\t\tLispモード"
-#: ../main.c:2213
msgid "-C\t\t\tCompatible with Vi: 'compatible'"
msgstr "-C\t\t\tVi互換モード: 'compatible'"
-#: ../main.c:2214
msgid "-N\t\t\tNot fully Vi compatible: 'nocompatible'"
msgstr "-N\t\t\tVi非互換モード: 'nocompatible"
-#: ../main.c:2215
msgid "-V[N][fname]\t\tBe verbose [level N] [log messages to fname]"
msgstr "-V[N][fname]\t\tログ出力設定 [レベル N] [ログファイル名 fname]"
-#: ../main.c:2216
msgid "-D\t\t\tDebugging mode"
msgstr "-D\t\t\tデバッグモード"
-#: ../main.c:2217
msgid "-n\t\t\tNo swap file, use memory only"
msgstr "-n\t\t\tスワップファイルを使用せずメモリだけ"
-#: ../main.c:2218
msgid "-r\t\t\tList swap files and exit"
msgstr "-r\t\t\tスワップファイルを列挙し終了"
-#: ../main.c:2219
msgid "-r (with file name)\tRecover crashed session"
msgstr "-r (ファイル名)\tクラッシュしたセッションを復帰"
-#: ../main.c:2220
msgid "-L\t\t\tSame as -r"
msgstr "-L\t\t\t-rと同じ"
-#: ../main.c:2221
+msgid "-f\t\t\tDon't use newcli to open window"
+msgstr "-f\t\t\tウィンドウを開くのに newcli を使用しない"
+
+msgid "-dev <device>\t\tUse <device> for I/O"
+msgstr "-dev <device>\t\tI/Oに <device> を使用する"
+
msgid "-A\t\t\tstart in Arabic mode"
msgstr "-A\t\t\tアラビア語モードで起動する"
-#: ../main.c:2222
msgid "-H\t\t\tStart in Hebrew mode"
msgstr "-H\t\t\tヘブライ語モードで起動する"
-#: ../main.c:2223
msgid "-F\t\t\tStart in Farsi mode"
msgstr "-F\t\t\tペルシア語モードで起動する"
-#: ../main.c:2224
msgid "-T <terminal>\tSet terminal type to <terminal>"
msgstr "-T <terminal>\t端末を <terminal> に設定する"
-#: ../main.c:2225
+msgid "--not-a-term\t\tSkip warning for input/output not being a terminal"
+msgstr "--not-a-term\t\t入出力が端末でないとの警告をスキップする"
+
msgid "-u <vimrc>\t\tUse <vimrc> instead of any .vimrc"
msgstr "-u <vimrc>\t\t.vimrcの代わりに <vimrc> を使う"
-#: ../main.c:2226
+msgid "-U <gvimrc>\t\tUse <gvimrc> instead of any .gvimrc"
+msgstr "-U <gvimrc>\t\t.gvimrcの代わりに <gvimrc> を使う"
+
msgid "--noplugin\t\tDon't load plugin scripts"
msgstr "--noplugin\t\tプラグインスクリプトをロードしない"
-#: ../main.c:2227
msgid "-p[N]\t\tOpen N tab pages (default: one for each file)"
msgstr "-p[N]\t\tN 個タブページを開く(省略値: ファイルにつき1個)"
-#: ../main.c:2228
msgid "-o[N]\t\tOpen N windows (default: one for each file)"
msgstr "-o[N]\t\tN 個ウィンドウを開く(省略値: ファイルにつき1個)"
-#: ../main.c:2229
msgid "-O[N]\t\tLike -o but split vertically"
msgstr "-O[N]\t\t-oと同じだが垂直分割"
-#: ../main.c:2230
msgid "+\t\t\tStart at end of file"
msgstr "+\t\t\tファイルの最後からはじめる"
-#: ../main.c:2231
msgid "+<lnum>\t\tStart at line <lnum>"
msgstr "+<lnum>\t\t<lnum> 行からはじめる"
-#: ../main.c:2232
msgid "--cmd <command>\tExecute <command> before loading any vimrc file"
msgstr "--cmd <command>\tvimrcをロードする前に <command> を実行する"
-#: ../main.c:2233
msgid "-c <command>\t\tExecute <command> after loading the first file"
msgstr "-c <command>\t\t最初のファイルをロード後 <command> を実行する"
-#: ../main.c:2235
msgid "-S <session>\t\tSource file <session> after loading the first file"
msgstr "-S <session>\t\t最初のファイルをロード後ファイル <session> を取込む"
-#: ../main.c:2236
msgid "-s <scriptin>\tRead Normal mode commands from file <scriptin>"
msgstr "-s <scriptin>\tファイル <scriptin> からノーマルコマンドを読込む"
-#: ../main.c:2237
msgid "-w <scriptout>\tAppend all typed commands to file <scriptout>"
msgstr "-w <scriptout>\t入力した全コマンドをファイル <scriptout> に追加する"
-#: ../main.c:2238
msgid "-W <scriptout>\tWrite all typed commands to file <scriptout>"
msgstr "-W <scriptout>\t入力した全コマンドをファイル <scriptout> に保存する"
-#: ../main.c:2240
+msgid "-x\t\t\tEdit encrypted files"
+msgstr "-x\t\t\t暗号化されたファイルを編集する"
+
+msgid "-display <display>\tConnect vim to this particular X-server"
+msgstr "-display <display>\tvimを指定した X サーバーに接続する"
+
+msgid "-X\t\t\tDo not connect to X server"
+msgstr "-X\t\t\tXサーバーに接続しない"
+
+msgid "--remote <files>\tEdit <files> in a Vim server if possible"
+msgstr "--remote <files>\t可能ならばVimサーバーで <files> を編集する"
+
+msgid "--remote-silent <files> Same, don't complain if there is no server"
+msgstr "--remote-silent <files> 同上, サーバーが無くても警告文を出力しない"
+
+msgid ""
+"--remote-wait <files> As --remote but wait for files to have been edited"
+msgstr "--remote-wait <files>\t--remote後 ファイルの編集が終わるのを待つ"
+
+msgid ""
+"--remote-wait-silent <files> Same, don't complain if there is no server"
+msgstr ""
+"--remote-wait-silent <files> 同上, サーバーが無くても警告文を出力しない"
+
+msgid ""
+"--remote-tab[-wait][-silent] <files> As --remote but use tab page per file"
+msgstr ""
+"--remote-tab[-wait][-silent] <files> --remoteでファイル1つにつき1つのタブ"
+"ページを開く"
+
+msgid "--remote-send <keys>\tSend <keys> to a Vim server and exit"
+msgstr "--remote-send <keys>\tVimサーバーに <keys> を送信して終了する"
+
+msgid "--remote-expr <expr>\tEvaluate <expr> in a Vim server and print result"
+msgstr "--remote-expr <expr>\tサーバーで <expr> を実行して結果を表示する"
+
+msgid "--serverlist\t\tList available Vim server names and exit"
+msgstr "--serverlist\t\tVimサーバー名の一覧を表示して終了する"
+
+msgid "--servername <name>\tSend to/become the Vim server <name>"
+msgstr "--servername <name>\tVimサーバー <name> に送信/名前設定する"
+
msgid "--startuptime <file>\tWrite startup timing messages to <file>"
msgstr "--startuptime <file>\t起動にかかった時間の詳細を <file> へ出力する"
-#: ../main.c:2242
msgid "-i <viminfo>\t\tUse <viminfo> instead of .viminfo"
msgstr "-i <viminfo>\t\t.viminfoの代わりに <viminfo> を使う"
-#: ../main.c:2243
msgid "-h or --help\tPrint Help (this message) and exit"
msgstr "-h or --help\tヘルプ(このメッセージ)を表示し終了する"
-#: ../main.c:2244
msgid "--version\t\tPrint version information and exit"
msgstr "--version\t\tバージョン情報を表示し終了する"
-#: ../mark.c:676
+msgid ""
+"\n"
+"Arguments recognised by gvim (Motif version):\n"
+msgstr ""
+"\n"
+"gvimによって解釈される引数(Motifバージョン):\n"
+
+msgid ""
+"\n"
+"Arguments recognised by gvim (neXtaw version):\n"
+msgstr ""
+"\n"
+"gvimによって解釈される引数(neXtawバージョン):\n"
+
+msgid ""
+"\n"
+"Arguments recognised by gvim (Athena version):\n"
+msgstr ""
+"\n"
+"gvimによって解釈される引数(Athenaバージョン):\n"
+
+msgid "-display <display>\tRun vim on <display>"
+msgstr "-display <display>\t<display> でvimを実行する"
+
+msgid "-iconic\t\tStart vim iconified"
+msgstr "-iconic\t\t最小化した状態でvimを起動する"
+
+msgid "-background <color>\tUse <color> for the background (also: -bg)"
+msgstr "-background <color>\t背景色に <color> を使う(同義: -bg)"
+
+msgid "-foreground <color>\tUse <color> for normal text (also: -fg)"
+msgstr "-foreground <color>\t前景色に <color> を使う(同義: -fg)"
+
+msgid "-font <font>\t\tUse <font> for normal text (also: -fn)"
+msgstr "-font <font>\t\tテキスト表示に <font> を使う(同義: -fn)"
+
+msgid "-boldfont <font>\tUse <font> for bold text"
+msgstr "-boldfont <font>\t太字に <font> を使う"
+
+msgid "-italicfont <font>\tUse <font> for italic text"
+msgstr "-italicfont <for>\t斜体字に <font> を使う"
+
+msgid "-geometry <geom>\tUse <geom> for initial geometry (also: -geom)"
+msgstr "-geometry <geom>\t初期配置に <geom> を使う(同義: -geom)"
+
+msgid "-borderwidth <width>\tUse a border width of <width> (also: -bw)"
+msgstr "-borderwidth <width>\t境界の幅を <width> にする(同義: -bw)"
+
+msgid "-scrollbarwidth <width> Use a scrollbar width of <width> (also: -sw)"
+msgstr ""
+"-scrollbarwidth <width> スクロールバーの幅を <width> にする(同義: -sw)"
+
+msgid "-menuheight <height>\tUse a menu bar height of <height> (also: -mh)"
+msgstr "-menuheight <height>\tメニューバーの高さを <height> にする(同義: -mh)"
+
+msgid "-reverse\t\tUse reverse video (also: -rv)"
+msgstr "-reverse\t\t反転映像を使用する(同義: -rv)"
+
+msgid "+reverse\t\tDon't use reverse video (also: +rv)"
+msgstr "+reverse\t\t反転映像を使用しない(同義: +rv)"
+
+msgid "-xrm <resource>\tSet the specified resource"
+msgstr "-xrm <resource>\t特定のリソースを使用する"
+
+msgid ""
+"\n"
+"Arguments recognised by gvim (GTK+ version):\n"
+msgstr ""
+"\n"
+"gvimによって解釈される引数(GTK+バージョン):\n"
+
+msgid "-display <display>\tRun vim on <display> (also: --display)"
+msgstr "-display <display>\t<display> でvimを実行する(同義: --display)"
+
+msgid "--role <role>\tSet a unique role to identify the main window"
+msgstr "--role <role>\tメインウィンドウを識別する一意な役割(role)を設定する"
+
+msgid "--socketid <xid>\tOpen Vim inside another GTK widget"
+msgstr "--socketid <xid>\t異なるGTK widgetでVimを開く"
+
+msgid "--echo-wid\t\tMake gvim echo the Window ID on stdout"
+msgstr "--echo-wid\t\tウィンドウIDを標準出力に出力する"
+
+msgid "-P <parent title>\tOpen Vim inside parent application"
+msgstr "-P <親のタイトル>\tVimを親アプリケーションの中で起動する"
+
+msgid "--windowid <HWND>\tOpen Vim inside another win32 widget"
+msgstr "--windowid <HWND>\t異なるWin32 widgetの内部にVimを開く"
+
+msgid "No display"
+msgstr "ディスプレイが見つかりません"
+
+#. Failed to send, abort.
+msgid ": Send failed.\n"
+msgstr ": 送信に失敗しました.\n"
+
+#. Let vim start normally.
+msgid ": Send failed. Trying to execute locally\n"
+msgstr ": 送信に失敗しました. ローカルでの実行を試みています\n"
+
+#, c-format
+msgid "%d of %d edited"
+msgstr "%d 個 (%d 個中) のファイルを編集しました"
+
+msgid "No display: Send expression failed.\n"
+msgstr "ディスプレイがありません: 式の送信に失敗しました.\n"
+
+msgid ": Send expression failed.\n"
+msgstr ": 式の送信に失敗しました.\n"
+
msgid "No marks set"
msgstr "マークが設定されていません"
-#: ../mark.c:678
#, c-format
msgid "E283: No marks matching \"%s\""
msgstr "E283: \"%s\" に該当するマークがありません"
#. Highlight title
-#: ../mark.c:687
msgid ""
"\n"
"mark line col file/text"
@@ -3601,7 +3261,6 @@ msgstr ""
"mark 行 列 ファイル/テキスト"
#. Highlight title
-#: ../mark.c:789
msgid ""
"\n"
" jump line col file/text"
@@ -3610,7 +3269,6 @@ msgstr ""
" jump 行 列 ファイル/テキスト"
#. Highlight title
-#: ../mark.c:831
msgid ""
"\n"
"change line col text"
@@ -3618,7 +3276,6 @@ msgstr ""
"\n"
"変更 行 列 テキスト"
-#: ../mark.c:1238
msgid ""
"\n"
"# File marks:\n"
@@ -3627,7 +3284,6 @@ msgstr ""
"# ファイルマーク:\n"
#. Write the jumplist with -'
-#: ../mark.c:1271
msgid ""
"\n"
"# Jumplist (newest first):\n"
@@ -3635,7 +3291,6 @@ msgstr ""
"\n"
"# ジャンプリスト (新しいものが先):\n"
-#: ../mark.c:1352
msgid ""
"\n"
"# History of marks within files (newest to oldest):\n"
@@ -3643,84 +3298,88 @@ msgstr ""
"\n"
"# ファイル内マークの履歴 (新しいものから古いもの):\n"
-#: ../mark.c:1431
msgid "Missing '>'"
msgstr "'>' が見つかりません"
-#: ../memfile.c:426
+msgid "E543: Not a valid codepage"
+msgstr "E543: 無効なコードページです"
+
+msgid "E284: Cannot set IC values"
+msgstr "E284: ICの値を設定できません"
+
+msgid "E285: Failed to create input context"
+msgstr "E285: インプットコンテキストの作成に失敗しました"
+
+msgid "E286: Failed to open input method"
+msgstr "E286: インプットメソッドのオープンに失敗しました"
+
+msgid "E287: Warning: Could not set destroy callback to IM"
+msgstr "E287: 警告: IMの破壊コールバックを設定できませんでした"
+
+msgid "E288: input method doesn't support any style"
+msgstr "E288: インプットメソッドはどんなスタイルもサポートしません"
+
+msgid "E289: input method doesn't support my preedit type"
+msgstr "E289: インプットメソッドは my preedit type をサポートしません"
+
msgid "E293: block was not locked"
msgstr "E293: ブロックがロックされていません"
-#: ../memfile.c:799
msgid "E294: Seek error in swap file read"
msgstr "E294: スワップファイル読込時にシークエラーです"
-#: ../memfile.c:803
msgid "E295: Read error in swap file"
msgstr "E295: スワップファイルの読込みエラーです"
-#: ../memfile.c:849
msgid "E296: Seek error in swap file write"
msgstr "E296: スワップファイル書込み時にシークエラーです"
-#: ../memfile.c:865
msgid "E297: Write error in swap file"
msgstr "E297: スワップファイルの書込みエラーです"
-#: ../memfile.c:1036
msgid "E300: Swap file already exists (symlink attack?)"
msgstr "E300: スワップファイルが既に存在します (symlinkによる攻撃?)"
-#: ../memline.c:318
msgid "E298: Didn't get block nr 0?"
msgstr "E298: ブロック 0 を取得できません?"
-#: ../memline.c:361
msgid "E298: Didn't get block nr 1?"
msgstr "E298: ブロック 1 を取得できません?"
-#: ../memline.c:377
msgid "E298: Didn't get block nr 2?"
msgstr "E298: ブロック 2 を取得できません?"
+msgid "E843: Error while updating swap file crypt"
+msgstr "E843: スワップファイルの暗号を更新中にエラーが発生しました"
+
#. could not (re)open the swap file, what can we do????
-#: ../memline.c:465
msgid "E301: Oops, lost the swap file!!!"
msgstr "E301: おっと, スワップファイルが失われました!!!"
-#: ../memline.c:477
msgid "E302: Could not rename swap file"
msgstr "E302: スワップファイルの名前を変えられません"
-#: ../memline.c:554
#, c-format
msgid "E303: Unable to open swap file for \"%s\", recovery impossible"
msgstr "E303: \"%s\" のスワップファイルを開けないのでリカバリは不可能です"
-#: ../memline.c:666
msgid "E304: ml_upd_block0(): Didn't get block 0??"
msgstr "E304: ml_upd_block0(): ブロック 0 を取得できませんでした??"
-#. no swap files found
-#: ../memline.c:830
#, c-format
msgid "E305: No swap file found for %s"
msgstr "E305: %s にはスワップファイルが見つかりません"
-#: ../memline.c:839
msgid "Enter number of swap file to use (0 to quit): "
msgstr "使用するスワップファイルの番号を入力してください(0 で終了): "
-#: ../memline.c:879
#, c-format
msgid "E306: Cannot open %s"
msgstr "E306: %s を開けません"
-#: ../memline.c:897
msgid "Unable to read block 0 from "
msgstr "ブロック 0 を読込めません "
-#: ../memline.c:900
msgid ""
"\n"
"Maybe no changes were made or Vim did not update the swap file."
@@ -3728,28 +3387,22 @@ msgstr ""
"\n"
"恐らく変更がされていないかVimがスワップファイルを更新していません."
-#: ../memline.c:909
msgid " cannot be used with this version of Vim.\n"
msgstr " Vimのこのバージョンでは使用できません.\n"
-#: ../memline.c:911
msgid "Use Vim version 3.0.\n"
msgstr "Vimのバージョン3.0を使用してください.\n"
-#: ../memline.c:916
#, c-format
msgid "E307: %s does not look like a Vim swap file"
msgstr "E307: %s はVimのスワップファイルではないようです"
-#: ../memline.c:922
msgid " cannot be used on this computer.\n"
msgstr " このコンピュータでは使用できません.\n"
-#: ../memline.c:924
msgid "The file was created on "
msgstr "このファイルは次の場所で作られました "
-#: ../memline.c:928
msgid ""
",\n"
"or the file has been damaged."
@@ -3757,85 +3410,104 @@ msgstr ""
",\n"
"もしくはファイルが損傷しています."
-#: ../memline.c:945
+#, c-format
+msgid ""
+"E833: %s is encrypted and this version of Vim does not support encryption"
+msgstr ""
+"E833: %s はこのバージョンのVimでサポートしていない形式で暗号化されています"
+
msgid " has been damaged (page size is smaller than minimum value).\n"
msgstr " は損傷しています (ページサイズが最小値を下回っています).\n"
-#: ../memline.c:974
#, c-format
msgid "Using swap file \"%s\""
msgstr "スワップファイル \"%s\" を使用中"
-#: ../memline.c:980
#, c-format
msgid "Original file \"%s\""
msgstr "原本ファイル \"%s\""
-#: ../memline.c:995
msgid "E308: Warning: Original file may have been changed"
msgstr "E308: 警告: 原本ファイルが変更されています"
-#: ../memline.c:1061
+#, c-format
+msgid "Swap file is encrypted: \"%s\""
+msgstr "スワップファイルは暗号化されています: \"%s\""
+
+msgid ""
+"\n"
+"If you entered a new crypt key but did not write the text file,"
+msgstr ""
+"\n"
+"新しい暗号キーを入力したあとにテキストファイルを保存していない場合は,"
+
+msgid ""
+"\n"
+"enter the new crypt key."
+msgstr ""
+"\n"
+"新しい暗号キーを入力してください."
+
+msgid ""
+"\n"
+"If you wrote the text file after changing the crypt key press enter"
+msgstr ""
+"\n"
+"暗号キーを変えたあとにテキストファイルを保存した場合は, テキストファイルと"
+
+msgid ""
+"\n"
+"to use the same key for text file and swap file"
+msgstr ""
+"\n"
+"スワップファイルに同じ暗号キーを使うためにenterだけを押してください."
+
#, c-format
msgid "E309: Unable to read block 1 from %s"
msgstr "E309: %s からブロック 1 を読込めません"
-#: ../memline.c:1065
msgid "???MANY LINES MISSING"
msgstr "???多くの行が失われています"
-#: ../memline.c:1076
msgid "???LINE COUNT WRONG"
msgstr "???行数が間違っています"
-#: ../memline.c:1082
msgid "???EMPTY BLOCK"
msgstr "???ブロックが空です"
-#: ../memline.c:1103
msgid "???LINES MISSING"
msgstr "???行が失われています"
-#: ../memline.c:1128
#, c-format
msgid "E310: Block 1 ID wrong (%s not a .swp file?)"
msgstr "E310: ブロック 1 のIDが間違っています(%s が.swpファイルでない?)"
-#: ../memline.c:1133
msgid "???BLOCK MISSING"
msgstr "???ブロックがありません"
-#: ../memline.c:1147
msgid "??? from here until ???END lines may be messed up"
msgstr "??? ここから ???END までの行が破壊されているようです"
-#: ../memline.c:1164
msgid "??? from here until ???END lines may have been inserted/deleted"
msgstr "??? ここから ???END までの行が挿入か削除されたようです"
-#: ../memline.c:1181
msgid "???END"
msgstr "???END"
-#: ../memline.c:1238
msgid "E311: Recovery Interrupted"
msgstr "E311: リカバリが割込まれました"
-#: ../memline.c:1243
msgid ""
"E312: Errors detected while recovering; look for lines starting with ???"
msgstr ""
"E312: リカバリの最中にエラーが検出されました; ???で始まる行を参照してください"
-#: ../memline.c:1245
msgid "See \":help E312\" for more information."
msgstr "詳細は \":help E312\" を参照してください"
-#: ../memline.c:1249
msgid "Recovery completed. You should check if everything is OK."
msgstr "リカバリが終了しました. 全てが正しいかチェックしてください."
-#: ../memline.c:1251
msgid ""
"\n"
"(You might want to write out this file under another name\n"
@@ -3843,15 +3515,12 @@ msgstr ""
"\n"
"(変更をチェックするために, このファイルを別の名前で保存した上で\n"
-#: ../memline.c:1252
msgid "and run diff with the original file to check for changes)"
msgstr "原本ファイルとの diff を実行すると良いでしょう)"
-#: ../memline.c:1254
msgid "Recovery completed. Buffer contents equals file contents."
msgstr "復元完了. バッファの内容はファイルと同じになりました."
-#: ../memline.c:1255
msgid ""
"\n"
"You may want to delete the .swp file now.\n"
@@ -3861,52 +3530,43 @@ msgstr ""
"元の.swpファイルは削除しても構いません\n"
"\n"
+msgid "Using crypt key from swap file for the text file.\n"
+msgstr "スワップファイルから取得した暗号キーをテキストファイルに使います.\n"
+
#. use msg() to start the scrolling properly
-#: ../memline.c:1327
msgid "Swap files found:"
msgstr "スワップファイルが複数見つかりました:"
-#: ../memline.c:1446
msgid " In current directory:\n"
msgstr " 現在のディレクトリ:\n"
-#: ../memline.c:1448
msgid " Using specified name:\n"
msgstr " 以下の名前を使用中:\n"
-#: ../memline.c:1450
msgid " In directory "
msgstr " ディレクトリ "
-#: ../memline.c:1465
msgid " -- none --\n"
msgstr " -- なし --\n"
-#: ../memline.c:1527
msgid " owned by: "
msgstr " 所有者: "
-#: ../memline.c:1529
msgid " dated: "
msgstr " 日付: "
-#: ../memline.c:1532 ../memline.c:3231
msgid " dated: "
msgstr " 日付: "
-#: ../memline.c:1548
msgid " [from Vim version 3.0]"
msgstr " [from Vim version 3.0]"
-#: ../memline.c:1550
msgid " [does not look like a Vim swap file]"
msgstr " [Vimのスワップファイルではないようです]"
-#: ../memline.c:1552
msgid " file name: "
msgstr " ファイル名: "
-#: ../memline.c:1558
msgid ""
"\n"
" modified: "
@@ -3914,15 +3574,12 @@ msgstr ""
"\n"
" 変更状態: "
-#: ../memline.c:1559
msgid "YES"
msgstr "あり"
-#: ../memline.c:1559
msgid "no"
msgstr "なし"
-#: ../memline.c:1562
msgid ""
"\n"
" user name: "
@@ -3930,11 +3587,9 @@ msgstr ""
"\n"
" ユーザー名: "
-#: ../memline.c:1568
msgid " host name: "
msgstr " ホスト名: "
-#: ../memline.c:1570
msgid ""
"\n"
" host name: "
@@ -3942,7 +3597,6 @@ msgstr ""
"\n"
" ホスト名: "
-#: ../memline.c:1575
msgid ""
"\n"
" process ID: "
@@ -3950,11 +3604,16 @@ msgstr ""
"\n"
" プロセスID: "
-#: ../memline.c:1579
msgid " (still running)"
msgstr " (まだ実行中)"
-#: ../memline.c:1586
+msgid ""
+"\n"
+" [not usable with this version of Vim]"
+msgstr ""
+"\n"
+" [このVimバージョンでは使用できません]"
+
msgid ""
"\n"
" [not usable on this computer]"
@@ -3962,97 +3621,75 @@ msgstr ""
"\n"
" [このコンピュータでは使用できません]"
-#: ../memline.c:1590
msgid " [cannot be read]"
msgstr " [読込めません]"
-#: ../memline.c:1593
msgid " [cannot be opened]"
msgstr " [開けません]"
-#: ../memline.c:1698
msgid "E313: Cannot preserve, there is no swap file"
msgstr "E313: スワップファイルが無いので維持できません"
-#: ../memline.c:1747
msgid "File preserved"
msgstr "ファイルが維持されます"
-#: ../memline.c:1749
msgid "E314: Preserve failed"
msgstr "E314: 維持に失敗しました"
-#: ../memline.c:1819
#, c-format
-msgid "E315: ml_get: invalid lnum: %<PRId64>"
-msgstr "E315: ml_get: 無効なlnumです: %<PRId64>"
+msgid "E315: ml_get: invalid lnum: %ld"
+msgstr "E315: ml_get: 無効なlnumです: %ld"
-#: ../memline.c:1851
#, c-format
-msgid "E316: ml_get: cannot find line %<PRId64>"
-msgstr "E316: ml_get: 行 %<PRId64> を見つけられません"
+msgid "E316: ml_get: cannot find line %ld"
+msgstr "E316: ml_get: 行 %ld を見つけられません"
-#: ../memline.c:2236
msgid "E317: pointer block id wrong 3"
msgstr "E317: ポインタブロックのIDが間違っています 3"
-#: ../memline.c:2311
msgid "stack_idx should be 0"
msgstr "stack_idx は 0 であるべきです"
-#: ../memline.c:2369
msgid "E318: Updated too many blocks?"
msgstr "E318: 更新されたブロックが多過ぎるかも?"
-#: ../memline.c:2511
msgid "E317: pointer block id wrong 4"
msgstr "E317: ポインタブロックのIDが間違っています 4"
-#: ../memline.c:2536
msgid "deleted block 1?"
msgstr "ブロック 1 は消された?"
-#: ../memline.c:2707
#, c-format
-msgid "E320: Cannot find line %<PRId64>"
-msgstr "E320: 行 %<PRId64> が見つかりません"
+msgid "E320: Cannot find line %ld"
+msgstr "E320: 行 %ld が見つかりません"
-#: ../memline.c:2916
msgid "E317: pointer block id wrong"
msgstr "E317: ポインタブロックのIDが間違っています"
-#: ../memline.c:2930
msgid "pe_line_count is zero"
msgstr "pe_line_count がゼロです"
-#: ../memline.c:2955
#, c-format
-msgid "E322: line number out of range: %<PRId64> past the end"
-msgstr "E322: 行番号が範囲外です: %<PRId64> 超えています"
+msgid "E322: line number out of range: %ld past the end"
+msgstr "E322: 行番号が範囲外です: %ld 超えています"
-#: ../memline.c:2959
#, c-format
-msgid "E323: line count wrong in block %<PRId64>"
-msgstr "E323: ブロック %<PRId64> の行カウントが間違っています"
+msgid "E323: line count wrong in block %ld"
+msgstr "E323: ブロック %ld の行カウントが間違っています"
-#: ../memline.c:2999
msgid "Stack size increases"
msgstr "スタックサイズが増えます"
-#: ../memline.c:3038
msgid "E317: pointer block id wrong 2"
msgstr "E317: ポインタブロックのIDが間違っています 2"
-#: ../memline.c:3070
#, c-format
msgid "E773: Symlink loop for \"%s\""
msgstr "E773: \"%s\" のシンボリックリンクがループになっています"
-#: ../memline.c:3221
msgid "E325: ATTENTION"
msgstr "E325: 注意"
-#: ../memline.c:3222
msgid ""
"\n"
"Found a swap file by the name \""
@@ -4060,39 +3697,32 @@ msgstr ""
"\n"
"次の名前でスワップファイルを見つけました \""
-#: ../memline.c:3226
msgid "While opening file \""
msgstr "次のファイルを開いている最中 \""
-#: ../memline.c:3239
msgid " NEWER than swap file!\n"
msgstr " スワップファイルよりも新しいです!\n"
-#: ../memline.c:3244
+#. Some of these messages are long to allow translation to
+#. * other languages.
msgid ""
"\n"
"(1) Another program may be editing the same file. If this is the case,\n"
" be careful not to end up with two different instances of the same\n"
-" file when making changes."
+" file when making changes. Quit, or continue with caution.\n"
msgstr ""
"\n"
"(1) 別のプログラムが同じファイルを編集しているかもしれません.\n"
" この場合には, 変更をしてしまうと1つのファイルに対して異なる2つの\n"
-" インスタンスができてしまうので, そうしないように気をつけてください."
-
-#: ../memline.c:3245
-msgid " Quit, or continue with caution.\n"
-msgstr " 終了するか, 注意しながら続けてください.\n"
+" インスタンスができてしまうので, そうしないように気をつけてください.\n"
+" 終了するか, 注意しながら続けてください.\n"
-#: ../memline.c:3246
msgid "(2) An edit session for this file crashed.\n"
msgstr "(2) このファイルの編集セッションがクラッシュした.\n"
-#: ../memline.c:3247
msgid " If this is the case, use \":recover\" or \"vim -r "
msgstr " この場合には \":recover\" か \"vim -r "
-#: ../memline.c:3249
msgid ""
"\"\n"
" to recover the changes (see \":help recovery\").\n"
@@ -4100,11 +3730,9 @@ msgstr ""
"\"\n"
" を使用して変更をリカバーします(\":help recovery\" を参照).\n"
-#: ../memline.c:3250
msgid " If you did this already, delete the swap file \""
msgstr " 既にこれを行なったのならば, スワップファイル \""
-#: ../memline.c:3252
msgid ""
"\"\n"
" to avoid this message.\n"
@@ -4112,23 +3740,18 @@ msgstr ""
"\"\n"
" を消せばこのメッセージを回避できます.\n"
-#: ../memline.c:3450 ../memline.c:3452
msgid "Swap file \""
msgstr "スワップファイル \""
-#: ../memline.c:3451 ../memline.c:3455
msgid "\" already exists!"
msgstr "\" が既にあります!"
-#: ../memline.c:3457
msgid "VIM - ATTENTION"
msgstr "VIM - 注意"
-#: ../memline.c:3459
msgid "Swap file already exists!"
msgstr "スワップファイルが既に存在します!"
-#: ../memline.c:3464
msgid ""
"&Open Read-Only\n"
"&Edit anyway\n"
@@ -4142,7 +3765,6 @@ msgstr ""
"終了する(&Q)\n"
"中止する(&A)"
-#: ../memline.c:3467
msgid ""
"&Open Read-Only\n"
"&Edit anyway\n"
@@ -4158,56 +3780,34 @@ msgstr ""
"終了する(&Q)\n"
"中止する(&A)"
-#.
-#. * Change the ".swp" extension to find another file that can be used.
-#. * First decrement the last char: ".swo", ".swn", etc.
-#. * If that still isn't enough decrement the last but one char: ".svz"
-#. * Can happen when editing many "No Name" buffers.
-#.
-#. ".s?a"
-#. ".saa": tried enough, give up
-#: ../memline.c:3528
msgid "E326: Too many swap files found"
msgstr "E326: スワップファイルが多数見つかりました"
-#: ../memory.c:227
-#, c-format
-msgid "E342: Out of memory! (allocating %<PRIu64> bytes)"
-msgstr "E342: メモリが足りません! (%<PRIu64> バイトを割当要求)"
-
-#: ../menu.c:62
msgid "E327: Part of menu-item path is not sub-menu"
msgstr "E327: メニューアイテムのパスの部分がサブメニューではありません"
-#: ../menu.c:63
msgid "E328: Menu only exists in another mode"
msgstr "E328: メニューは他のモードにだけあります"
-#: ../menu.c:64
#, c-format
msgid "E329: No menu \"%s\""
msgstr "E329: \"%s\" というメニューはありません"
#. Only a mnemonic or accelerator is not valid.
-#: ../menu.c:329
msgid "E792: Empty menu name"
msgstr "E792: メニュー名が空です"
-#: ../menu.c:340
msgid "E330: Menu path must not lead to a sub-menu"
msgstr "E330: メニューパスはサブメニューを生じるべきではありません"
-#: ../menu.c:365
msgid "E331: Must not add menu items directly to menu bar"
msgstr "E331: メニューバーには直接メニューアイテムを追加できません"
-#: ../menu.c:370
msgid "E332: Separator cannot be part of a menu path"
msgstr "E332: 区切りはメニューパスの一部ではありません"
#. Now we have found the matching menu, and we list the mappings
#. Highlight title
-#: ../menu.c:762
msgid ""
"\n"
"--- Menus ---"
@@ -4215,69 +3815,60 @@ msgstr ""
"\n"
"--- メニュー ---"
-#: ../menu.c:1313
+msgid "Tear off this menu"
+msgstr "このメニューを切り取る"
+
msgid "E333: Menu path must lead to a menu item"
msgstr "E333: メニューパスはメニューアイテムを生じなければいけません"
-#: ../menu.c:1330
#, c-format
msgid "E334: Menu not found: %s"
msgstr "E334: メニューが見つかりません: %s"
-#: ../menu.c:1396
#, c-format
msgid "E335: Menu not defined for %s mode"
msgstr "E335: %s にはメニューが定義されていません"
-#: ../menu.c:1426
msgid "E336: Menu path must lead to a sub-menu"
msgstr "E336: メニューパスはサブメニューを生じなければいけません"
-#: ../menu.c:1447
msgid "E337: Menu not found - check menu names"
msgstr "E337: メニューが見つかりません - メニュー名を確認してください"
-#: ../message.c:423
#, c-format
msgid "Error detected while processing %s:"
msgstr "%s の処理中にエラーが検出されました:"
-#: ../message.c:445
#, c-format
msgid "line %4ld:"
msgstr "行 %4ld:"
-#: ../message.c:617
#, c-format
msgid "E354: Invalid register name: '%s'"
msgstr "E354: 無効なレジスタ名: '%s'"
-#: ../message.c:986
+msgid "Messages maintainer: Bram Moolenaar <Bram@vim.org>"
+msgstr "日本語メッセージ翻訳/監修: 村岡 太郎 <koron.kaoriya@gmail.com>"
+
msgid "Interrupt: "
msgstr "割込み: "
-#: ../message.c:988
msgid "Press ENTER or type command to continue"
msgstr "続けるにはENTERを押すかコマンドを入力してください"
-#: ../message.c:1843
#, c-format
-msgid "%s line %<PRId64>"
-msgstr "%s 行 %<PRId64>"
+msgid "%s line %ld"
+msgstr "%s 行 %ld"
-#: ../message.c:2392
msgid "-- More --"
msgstr "-- 継続 --"
-#: ../message.c:2398
msgid " SPACE/d/j: screen/page/line down, b/u/k: up, q: quit "
msgstr " SPACE/d/j: 画面/ページ/行 下, b/u/k: 上, q: 終了 "
-#: ../message.c:3021 ../message.c:3031
msgid "Question"
msgstr "質問"
-#: ../message.c:3023
msgid ""
"&Yes\n"
"&No"
@@ -4285,17 +3876,6 @@ msgstr ""
"はい(&Y)\n"
"いいえ(&N)"
-#: ../message.c:3033
-msgid ""
-"&Yes\n"
-"&No\n"
-"&Cancel"
-msgstr ""
-"はい(&Y)\n"
-"いいえ(&N)\n"
-"キャンセル(&C)"
-
-#: ../message.c:3045
msgid ""
"&Yes\n"
"&No\n"
@@ -4309,175 +3889,247 @@ msgstr ""
"全て放棄(&D)\n"
"キャンセル(&C)"
-#: ../message.c:3058
+msgid "Select Directory dialog"
+msgstr "ディレクトリ選択ダイアログ"
+
+msgid "Save File dialog"
+msgstr "ファイル保存ダイアログ"
+
+msgid "Open File dialog"
+msgstr "ファイル読込ダイアログ"
+
+#. TODO: non-GUI file selector here
+msgid "E338: Sorry, no file browser in console mode"
+msgstr "E338: コンソールモードではファイルブラウザを使えません, ごめんなさい"
+
msgid "E766: Insufficient arguments for printf()"
msgstr "E766: printf() の引数が不十分です"
-#: ../message.c:3119
msgid "E807: Expected Float argument for printf()"
msgstr "E807: printf() の引数には浮動少数点数が期待されています"
-#: ../message.c:3873
msgid "E767: Too many arguments to printf()"
msgstr "E767: printf() の引数が多過ぎます"
-#: ../misc1.c:2256
msgid "W10: Warning: Changing a readonly file"
msgstr "W10: 警告: 読込専用ファイルを変更します"
-#: ../misc1.c:2537
msgid "Type number and <Enter> or click with mouse (empty cancels): "
msgstr ""
"番号と<Enter>を入力するかマウスでクリックしてください (空でキャンセル): "
-#: ../misc1.c:2539
msgid "Type number and <Enter> (empty cancels): "
msgstr "番号と<Enter>を入力してください (空でキャンセル): "
-#: ../misc1.c:2585
msgid "1 more line"
msgstr "1 行 追加しました"
-#: ../misc1.c:2588
msgid "1 line less"
msgstr "1 行 削除しました"
-#: ../misc1.c:2593
#, c-format
-msgid "%<PRId64> more lines"
-msgstr "%<PRId64> 行 追加しました"
+msgid "%ld more lines"
+msgstr "%ld 行 追加しました"
-#: ../misc1.c:2596
#, c-format
-msgid "%<PRId64> fewer lines"
-msgstr "%<PRId64> 行 削除しました"
+msgid "%ld fewer lines"
+msgstr "%ld 行 削除しました"
-#: ../misc1.c:2599
msgid " (Interrupted)"
msgstr " (割込まれました)"
-#: ../misc1.c:2635
msgid "Beep!"
msgstr "ビーッ!"
-#: ../misc2.c:738
+msgid "ERROR: "
+msgstr "エラー: "
+
+#, c-format
+msgid ""
+"\n"
+"[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu\n"
+msgstr ""
+"\n"
+"[メモリ(バイト)] 総割当-解放量 %lu-%lu, 使用量 %lu, ピーク時 %lu\n"
+
+#, c-format
+msgid ""
+"[calls] total re/malloc()'s %lu, total free()'s %lu\n"
+"\n"
+msgstr ""
+"[呼出] 総 re/malloc() 回数 %lu, 総 free() 回数 %lu\n"
+"\n"
+
+msgid "E340: Line is becoming too long"
+msgstr "E340: 行が長くなり過ぎました"
+
+#, c-format
+msgid "E341: Internal error: lalloc(%ld, )"
+msgstr "E341: 内部エラー: lalloc(%ld,)"
+
+#, c-format
+msgid "E342: Out of memory! (allocating %lu bytes)"
+msgstr "E342: メモリが足りません! (%lu バイトを割当要求)"
+
#, c-format
msgid "Calling shell to execute: \"%s\""
msgstr "実行のためにシェルを呼出し中: \"%s\""
-#: ../normal.c:183
+msgid "E545: Missing colon"
+msgstr "E545: コロンがありません"
+
+msgid "E546: Illegal mode"
+msgstr "E546: 不正なモードです"
+
+msgid "E547: Illegal mouseshape"
+msgstr "E547: 不正な 'mouseshape' です"
+
+msgid "E548: digit expected"
+msgstr "E548: 数値が必要です"
+
+msgid "E549: Illegal percentage"
+msgstr "E549: 不正なパーセンテージです"
+
+msgid "E854: path too long for completion"
+msgstr "E854: パスが長過ぎて補完できません"
+
+#, c-format
+msgid ""
+"E343: Invalid path: '**[number]' must be at the end of the path or be "
+"followed by '%s'."
+msgstr ""
+"E343: 無効なパスです: '**[数値]' はpathの最後か '%s' が続いてないといけませ"
+"ん."
+
+#, c-format
+msgid "E344: Can't find directory \"%s\" in cdpath"
+msgstr "E344: cdpathには \"%s\" というファイルがありません"
+
+#, c-format
+msgid "E345: Can't find file \"%s\" in path"
+msgstr "E345: pathには \"%s\" というファイルがありません"
+
+#, c-format
+msgid "E346: No more directory \"%s\" found in cdpath"
+msgstr "E346: cdpathにはこれ以上 \"%s\" というファイルがありません"
+
+#, c-format
+msgid "E347: No more file \"%s\" found in path"
+msgstr "E347: パスにはこれ以上 \"%s\" というファイルがありません"
+
+#, c-format
+msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
+msgstr ""
+"E668: NetBeansの接続情報ファイルのアクセスモードに問題があります: \"%s\""
+
+#, c-format
+msgid "E658: NetBeans connection lost for buffer %ld"
+msgstr "E658: バッファ %ld の NetBeans 接続が失われました"
+
+msgid "E838: netbeans is not supported with this GUI"
+msgstr "E838: NetBeansはこのGUIには対応していません"
+
+msgid "E511: netbeans already connected"
+msgstr "E511: NetBeansは既に接続しています"
+
+#, c-format
+msgid "E505: %s is read-only (add ! to override)"
+msgstr "E505: %s は読込専用です (強制書込には ! を追加)"
+
msgid "E349: No identifier under cursor"
msgstr "E349: カーソルの位置には識別子がありません"
-#: ../normal.c:1866
msgid "E774: 'operatorfunc' is empty"
msgstr "E774: 'operatorfunc' オプションが空です"
-#: ../normal.c:2637
+msgid "E775: Eval feature not available"
+msgstr "E775: 式評価機能が無効になっています"
+
msgid "Warning: terminal cannot highlight"
msgstr "警告: 使用している端末はハイライトできません"
-#: ../normal.c:2807
msgid "E348: No string under cursor"
msgstr "E348: カーソルの位置には文字列がありません"
-#: ../normal.c:3937
msgid "E352: Cannot erase folds with current 'foldmethod'"
msgstr "E352: 現在の 'foldmethod' では折畳みを消去できません"
-#: ../normal.c:5897
msgid "E664: changelist is empty"
msgstr "E664: 変更リストが空です"
-#: ../normal.c:5899
msgid "E662: At start of changelist"
msgstr "E662: 変更リストの先頭"
-#: ../normal.c:5901
msgid "E663: At end of changelist"
msgstr "E663: 変更リストの末尾"
-#: ../normal.c:7053
-msgid "Type :quit<Enter> to exit Nvim"
+msgid "Type :quit<Enter> to exit Vim"
msgstr "Vimを終了するには :quit<Enter> と入力してください"
-#: ../ops.c:248
#, c-format
msgid "1 line %sed 1 time"
msgstr "1 行が %s で 1 回処理されました"
-#: ../ops.c:250
#, c-format
msgid "1 line %sed %d times"
msgstr "1 行が %s で %d 回処理されました"
-#: ../ops.c:253
#, c-format
-msgid "%<PRId64> lines %sed 1 time"
-msgstr "%<PRId64> 行が %s で 1 回処理されました"
+msgid "%ld lines %sed 1 time"
+msgstr "%ld 行が %s で 1 回処理されました"
-#: ../ops.c:256
#, c-format
-msgid "%<PRId64> lines %sed %d times"
-msgstr "%<PRId64> 行が %s で %d 回処理されました"
+msgid "%ld lines %sed %d times"
+msgstr "%ld 行が %s で %d 回処理されました"
-#: ../ops.c:592
#, c-format
-msgid "%<PRId64> lines to indent... "
-msgstr "%<PRId64> 行がインデントされます... "
+msgid "%ld lines to indent... "
+msgstr "%ld 行がインデントされます... "
-#: ../ops.c:634
msgid "1 line indented "
msgstr "1 行をインデントしました "
-#: ../ops.c:636
#, c-format
-msgid "%<PRId64> lines indented "
-msgstr "%<PRId64> 行をインデントしました "
+msgid "%ld lines indented "
+msgstr "%ld 行をインデントしました "
-#: ../ops.c:938
msgid "E748: No previously used register"
msgstr "E748: まだレジスタを使用していません"
#. must display the prompt
-#: ../ops.c:1433
msgid "cannot yank; delete anyway"
msgstr "ヤンクできません; とにかく消去"
-#: ../ops.c:1929
msgid "1 line changed"
msgstr "1 行が変更されました"
-#: ../ops.c:1931
#, c-format
-msgid "%<PRId64> lines changed"
-msgstr "%<PRId64> 行が変更されました"
+msgid "%ld lines changed"
+msgstr "%ld 行が変更されました"
+
+#, c-format
+msgid "freeing %ld lines"
+msgstr "%ld 行を解放中"
-#: ../ops.c:2521
msgid "block of 1 line yanked"
msgstr "1 行のブロックがヤンクされました"
-#: ../ops.c:2523
msgid "1 line yanked"
msgstr "1 行がヤンクされました"
-#: ../ops.c:2525
#, c-format
-msgid "block of %<PRId64> lines yanked"
-msgstr "%<PRId64> 行のブロックがヤンクされました"
+msgid "block of %ld lines yanked"
+msgstr "%ld 行のブロックがヤンクされました"
-#: ../ops.c:2528
#, c-format
-msgid "%<PRId64> lines yanked"
-msgstr "%<PRId64> 行がヤンクされました"
+msgid "%ld lines yanked"
+msgstr "%ld 行がヤンクされました"
-#: ../ops.c:2710
#, c-format
msgid "E353: Nothing in register %s"
msgstr "E353: レジスタ %s には何もありません"
#. Highlight title
-#: ../ops.c:3185
msgid ""
"\n"
"--- Registers ---"
@@ -4485,11 +4137,9 @@ msgstr ""
"\n"
"--- レジスタ ---"
-#: ../ops.c:4455
msgid "Illegal register name"
msgstr "不正なレジスタ名"
-#: ../ops.c:4533
msgid ""
"\n"
"# Registers:\n"
@@ -4497,7 +4147,6 @@ msgstr ""
"\n"
"# レジスタ:\n"
-#: ../ops.c:4575
#, c-format
msgid "E574: Unknown register type %d"
msgstr "E574: 未知のレジスタ型 %d です"
@@ -4507,86 +4156,61 @@ msgid ""
"lines"
msgstr "E883: 検索パターンと式レジスタには2行以上を含められません"
-#: ../ops.c:5089
#, c-format
-msgid "%<PRId64> Cols; "
-msgstr "%<PRId64> 列; "
+msgid "%ld Cols; "
+msgstr "%ld 列; "
-#: ../ops.c:5097
#, c-format
-msgid ""
-"Selected %s%<PRId64> of %<PRId64> Lines; %<PRId64> of %<PRId64> Words; "
-"%<PRId64> of %<PRId64> Bytes"
-msgstr ""
-"選択 %s%<PRId64> / %<PRId64> 行; %<PRId64> / %<PRId64> 単語; %<PRId64> / "
-"%<PRId64> バイト"
+msgid "Selected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Bytes"
+msgstr "選択 %s%ld / %ld 行; %lld / %lld 単語; %lld / %lld バイト"
-#: ../ops.c:5105
#, c-format
msgid ""
-"Selected %s%<PRId64> of %<PRId64> Lines; %<PRId64> of %<PRId64> Words; "
-"%<PRId64> of %<PRId64> Chars; %<PRId64> of %<PRId64> Bytes"
+"Selected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Chars; %lld of "
+"%lld Bytes"
msgstr ""
-"選択 %s%<PRId64> / %<PRId64> 行; %<PRId64> / %<PRId64> 単語; %<PRId64> / "
-"%<PRId64> 文字; %<PRId64> / %<PRId64> バイト"
+"選択 %s%ld / %ld 行; %lld / %lld 単語; %lld / %lld 文字; %lld / %lld バイト"
-#: ../ops.c:5123
#, c-format
-msgid ""
-"Col %s of %s; Line %<PRId64> of %<PRId64>; Word %<PRId64> of %<PRId64>; Byte "
-"%<PRId64> of %<PRId64>"
-msgstr ""
-"列 %s / %s; 行 %<PRId64> of %<PRId64>; 単語 %<PRId64> / %<PRId64>; バイト "
-"%<PRId64> / %<PRId64>"
+msgid "Col %s of %s; Line %ld of %ld; Word %lld of %lld; Byte %lld of %lld"
+msgstr "列 %s / %s; 行 %ld of %ld; 単語 %lld / %lld; バイト %lld / %lld"
-#: ../ops.c:5133
#, c-format
msgid ""
-"Col %s of %s; Line %<PRId64> of %<PRId64>; Word %<PRId64> of %<PRId64>; Char "
-"%<PRId64> of %<PRId64>; Byte %<PRId64> of %<PRId64>"
+"Col %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte "
+"%lld of %lld"
msgstr ""
-"列 %s / %s; 行 %<PRId64> / %<PRId64>; 単語 %<PRId64> / %<PRId64>; 文字 "
-"%<PRId64> / %<PRId64>; バイト %<PRId64> of %<PRId64>"
+"列 %s / %s; 行 %ld / %ld; 単語 %lld / %lld; 文字 %lld / %lld; バイト %lld of "
+"%lld"
-#: ../ops.c:5146
#, c-format
-msgid "(+%<PRId64> for BOM)"
-msgstr "(+%<PRId64> for BOM)"
+msgid "(+%ld for BOM)"
+msgstr "(+%ld for BOM)"
-#: ../option.c:1238
msgid "%<%f%h%m%=Page %N"
msgstr "%<%f%h%m%=%N ページ"
-#: ../option.c:1574
msgid "Thanks for flying Vim"
msgstr "Vim を使ってくれてありがとう"
-#. found a mismatch: skip
-#: ../option.c:2698
msgid "E518: Unknown option"
msgstr "E518: 未知のオプションです"
-#: ../option.c:2709
msgid "E519: Option not supported"
msgstr "E519: オプションはサポートされていません"
-#: ../option.c:2740
msgid "E520: Not allowed in a modeline"
msgstr "E520: modeline では許可されません"
-#: ../option.c:2815
msgid "E846: Key code not set"
msgstr "E846: キーコードが設定されていません"
-#: ../option.c:2924
msgid "E521: Number required after ="
msgstr "E521: = の後には数字が必要です"
-#: ../option.c:3226 ../option.c:3864
msgid "E522: Not found in termcap"
msgstr "E522: termcap 内に見つかりません"
-#: ../option.c:3335
#, c-format
msgid "E539: Illegal character <%s>"
msgstr "E539: 不正な文字です <%s>"
@@ -4595,93 +4219,99 @@ msgstr "E539: 不正な文字です <%s>"
msgid "For option %s"
msgstr "オプション: %s"
-#: ../option.c:3862
msgid "E529: Cannot set 'term' to empty string"
msgstr "E529: 'term' には空文字列を設定できません"
-#: ../option.c:3885
+msgid "E530: Cannot change term in GUI"
+msgstr "E530: GUIでは 'term' を変更できません"
+
+msgid "E531: Use \":gui\" to start the GUI"
+msgstr "E531: GUIをスタートするには \":gui\" を使用してください"
+
msgid "E589: 'backupext' and 'patchmode' are equal"
msgstr "E589: 'backupext' と 'patchmode' が同じです"
-#: ../option.c:3964
msgid "E834: Conflicts with value of 'listchars'"
msgstr "E834: 'listchars'の値に矛盾があります"
-#: ../option.c:3966
msgid "E835: Conflicts with value of 'fillchars'"
msgstr "E835: 'fillchars'の値に矛盾があります"
-#: ../option.c:4163
+msgid "E617: Cannot be changed in the GTK+ 2 GUI"
+msgstr "E617: GTK+2 GUIでは変更できません"
+
msgid "E524: Missing colon"
msgstr "E524: コロンがありません"
-#: ../option.c:4165
msgid "E525: Zero length string"
msgstr "E525: 文字列の長さがゼロです"
-#: ../option.c:4220
#, c-format
msgid "E526: Missing number after <%s>"
msgstr "E526: <%s> の後に数字がありません"
-#: ../option.c:4232
msgid "E527: Missing comma"
msgstr "E527: カンマがありません"
-#: ../option.c:4239
msgid "E528: Must specify a ' value"
msgstr "E528: ' の値を指定しなければなりません"
-#: ../option.c:4271
msgid "E595: contains unprintable or wide character"
msgstr "E595: 表示できない文字かワイド文字を含んでいます"
-#: ../option.c:4469
+msgid "E596: Invalid font(s)"
+msgstr "E596: 無効なフォントです"
+
+msgid "E597: can't select fontset"
+msgstr "E597: フォントセットを選択できません"
+
+msgid "E598: Invalid fontset"
+msgstr "E598: 無効なフォントセットです"
+
+msgid "E533: can't select wide font"
+msgstr "E533: ワイドフォントを選択できません"
+
+msgid "E534: Invalid wide font"
+msgstr "E534: 無効なワイドフォントです"
+
#, c-format
msgid "E535: Illegal character after <%c>"
msgstr "E535: <%c> の後に不正な文字があります"
-#: ../option.c:4534
msgid "E536: comma required"
msgstr "E536: カンマが必要です"
-#: ../option.c:4543
#, c-format
msgid "E537: 'commentstring' must be empty or contain %s"
msgstr "E537: 'commentstring' は空であるか %s を含む必要があります"
-#: ../option.c:4928
+msgid "E538: No mouse support"
+msgstr "E538: マウスはサポートされません"
+
msgid "E540: Unclosed expression sequence"
msgstr "E540: 式が終了していません"
-#: ../option.c:4932
msgid "E541: too many items"
msgstr "E541: 要素が多過ぎます"
-#: ../option.c:4934
msgid "E542: unbalanced groups"
msgstr "E542: グループが釣合いません"
-#: ../option.c:5148
msgid "E590: A preview window already exists"
msgstr "E590: プレビューウィンドウが既に存在します"
-#: ../option.c:5311
msgid "W17: Arabic requires UTF-8, do ':set encoding=utf-8'"
msgstr ""
"W17: アラビア文字にはUTF-8が必要なので, ':set encoding=utf-8' してください"
-#: ../option.c:5623
#, c-format
msgid "E593: Need at least %d lines"
msgstr "E593: 最低 %d の行数が必要です"
-#: ../option.c:5631
#, c-format
msgid "E594: Need at least %d columns"
msgstr "E594: 最低 %d のカラム幅が必要です"
-#: ../option.c:6011
#, c-format
msgid "E355: Unknown option: %s"
msgstr "E355: 未知のオプションです: %s"
@@ -4689,12 +4319,10 @@ msgstr "E355: 未知のオプションです: %s"
#. There's another character after zeros or the string
#. * is empty. In both cases, we are trying to set a
#. * num option using a string.
-#: ../option.c:6037
#, c-format
msgid "E521: Number required: &%s = '%s'"
msgstr "E521: 数字が必要です: &%s = '%s'"
-#: ../option.c:6149
msgid ""
"\n"
"--- Terminal codes ---"
@@ -4702,7 +4330,6 @@ msgstr ""
"\n"
"--- 端末コード ---"
-#: ../option.c:6151
msgid ""
"\n"
"--- Global option values ---"
@@ -4710,7 +4337,6 @@ msgstr ""
"\n"
"--- グローバルオプション値 ---"
-#: ../option.c:6153
msgid ""
"\n"
"--- Local option values ---"
@@ -4718,7 +4344,6 @@ msgstr ""
"\n"
"--- ローカルオプション値 ---"
-#: ../option.c:6155
msgid ""
"\n"
"--- Options ---"
@@ -4726,37 +4351,119 @@ msgstr ""
"\n"
"--- オプション ---"
-#: ../option.c:6816
msgid "E356: get_varp ERROR"
msgstr "E356: get_varp エラー"
-#: ../option.c:7696
#, c-format
msgid "E357: 'langmap': Matching character missing for %s"
msgstr "E357: 'langmap': %s に対応する文字がありません"
-#: ../option.c:7715
#, c-format
msgid "E358: 'langmap': Extra characters after semicolon: %s"
msgstr "E358: 'langmap': セミコロンの後に余分な文字があります: %s"
-#: ../os/shell.c:194
-msgid ""
-"\n"
-"Cannot execute shell "
-msgstr ""
-"\n"
-"シェルを実行できません "
+msgid "cannot open "
+msgstr "開けません "
+
+msgid "VIM: Can't open window!\n"
+msgstr "VIM: ウィンドウを開けません!\n"
+
+msgid "Need Amigados version 2.04 or later\n"
+msgstr "Amigadosのバージョン 2.04かそれ以降が必要です\n"
+
+#, c-format
+msgid "Need %s version %ld\n"
+msgstr "%s のバージョン %ld が必要です\n"
+
+msgid "Cannot open NIL:\n"
+msgstr "NILを開けません:\n"
+
+msgid "Cannot create "
+msgstr "作成できません "
+
+#, c-format
+msgid "Vim exiting with %d\n"
+msgstr "Vimは %d で終了します\n"
+
+msgid "cannot change console mode ?!\n"
+msgstr "コンソールモードを変更できません?!\n"
+
+msgid "mch_get_shellsize: not a console??\n"
+msgstr "mch_get_shellsize: コンソールではない??\n"
+
+#. if Vim opened a window: Executing a shell may cause crashes
+msgid "E360: Cannot execute shell with -f option"
+msgstr "E360: -f オプションでシェルを実行できません"
+
+msgid "Cannot execute "
+msgstr "実行できません "
+
+msgid "shell "
+msgstr "シェル "
+
+msgid " returned\n"
+msgstr " 戻りました\n"
+
+msgid "ANCHOR_BUF_SIZE too small."
+msgstr "ANCHOR_BUF_SIZE が小さ過ぎます."
+
+msgid "I/O ERROR"
+msgstr "入出力エラー"
+
+msgid "Message"
+msgstr "メッセージ"
+
+msgid "'columns' is not 80, cannot execute external commands"
+msgstr "'columns' が 80 ではないため、外部コマンドを実行できません"
+
+msgid "E237: Printer selection failed"
+msgstr "E237: プリンタの選択に失敗しました"
+
+#, c-format
+msgid "to %s on %s"
+msgstr "%s へ (%s 上の)"
+
+#, c-format
+msgid "E613: Unknown printer font: %s"
+msgstr "E613: 未知のプリンタオプションです: %s"
+
+#, c-format
+msgid "E238: Print error: %s"
+msgstr "E238: 印刷エラー: %s"
+
+#, c-format
+msgid "Printing '%s'"
+msgstr "印刷しています: '%s'"
+
+#, c-format
+msgid "E244: Illegal charset name \"%s\" in font name \"%s\""
+msgstr "E244: 文字セット名 \"%s\" は不正です (フォント名 \"%s\")"
+
+#, c-format
+msgid "E244: Illegal quality name \"%s\" in font name \"%s\""
+msgstr "E244: 品質名 \"%s\" は不正です (フォント名 \"%s\")"
+
+#, c-format
+msgid "E245: Illegal char '%c' in font name \"%s\""
+msgstr "E245: '%c' は不正な文字です (フォント名 \"%s\")"
+
+#, c-format
+msgid "Opening the X display took %ld msec"
+msgstr "Xサーバーへの接続に %ld ミリ秒かかりました"
-#: ../os/shell.c:439
msgid ""
"\n"
-"shell returned "
+"Vim: Got X error\n"
msgstr ""
"\n"
-"シェルが値を返しました "
+"Vim: X のエラーを検出しましたr\n"
+
+msgid "Testing the X display failed"
+msgstr "X display のチェックに失敗しました"
+
+msgid "Opening the X display timed out"
+msgstr "X display の open がタイムアウトしました"
-#: ../os_unix.c:465 ../os_unix.c:471
msgid ""
"\n"
"Could not get security context for "
@@ -4764,7 +4471,6 @@ msgstr ""
"\n"
"セキュリティコンテキストを取得できません "
-#: ../os_unix.c:479
msgid ""
"\n"
"Could not set security context for "
@@ -4780,223 +4486,293 @@ msgstr "セキュリティコンテキスト %s を %s に設定できません"
msgid "Could not get security context %s for %s. Removing it!"
msgstr "セキュリティコンテキスト %s を %s から取得できません. 削除します!"
-#: ../os_unix.c:1558 ../os_unix.c:1647
+msgid ""
+"\n"
+"Cannot execute shell sh\n"
+msgstr ""
+"\n"
+"sh シェルを実行できません\n"
+
+msgid ""
+"\n"
+"shell returned "
+msgstr ""
+"\n"
+"シェルが値を返しました "
+
+msgid ""
+"\n"
+"Cannot create pipes\n"
+msgstr ""
+"\n"
+"パイプを作成できません\n"
+
+msgid ""
+"\n"
+"Cannot fork\n"
+msgstr ""
+"\n"
+"fork できません\n"
+
+msgid ""
+"\n"
+"Cannot execute shell "
+msgstr ""
+"\n"
+"シェルを実行できません "
+
+msgid ""
+"\n"
+"Command terminated\n"
+msgstr ""
+"\n"
+"コマンドを中断しました\n"
+
+msgid "XSMP lost ICE connection"
+msgstr "XSMP がICE接続を失いました"
+
#, c-format
msgid "dlerror = \"%s\""
msgstr "dlerror = \"%s\""
-#: ../path.c:1449
+msgid "Opening the X display failed"
+msgstr "X display の open に失敗しました"
+
+msgid "XSMP handling save-yourself request"
+msgstr "XSMP がsave-yourself要求を処理しています"
+
+msgid "XSMP opening connection"
+msgstr "XSMP が接続を開始しています"
+
+msgid "XSMP ICE connection watch failed"
+msgstr "XSMP ICE接続が失敗したようです"
+
#, c-format
-msgid "E447: Can't find file \"%s\" in path"
-msgstr "E447: pathには \"%s\" というファイルがありません"
+msgid "XSMP SmcOpenConnection failed: %s"
+msgstr "XSMP SmcOpenConnectionが失敗しました: %s"
+
+msgid "At line"
+msgstr "行"
+
+msgid "Could not load vim32.dll!"
+msgstr "vim32.dll をロードできませんでした"
+
+msgid "VIM Error"
+msgstr "VIMエラー"
+
+msgid "Could not fix up function pointers to the DLL!"
+msgstr "DLLから関数ポインタを取得できませんでした"
+
+#, c-format
+msgid "Vim: Caught %s event\n"
+msgstr "Vim: イベント %s を検知\n"
+
+msgid "close"
+msgstr "閉じる"
+
+msgid "logoff"
+msgstr "ログオフ"
+
+msgid "shutdown"
+msgstr "シャットダウン"
+
+msgid "E371: Command not found"
+msgstr "E371: コマンドがありません"
+
+msgid ""
+"VIMRUN.EXE not found in your $PATH.\n"
+"External commands will not pause after completion.\n"
+"See :help win32-vimrun for more information."
+msgstr ""
+"VIMRUN.EXEが $PATH の中に見つかりません.\n"
+"外部コマンドの終了後に一時停止をしません.\n"
+"詳細は :help win32-vimrun を参照してください."
+
+msgid "Vim Warning"
+msgstr "Vimの警告"
+
+#, c-format
+msgid "shell returned %d"
+msgstr "シェルがコード %d で終了しました"
-#: ../quickfix.c:359
#, c-format
msgid "E372: Too many %%%c in format string"
msgstr "E372: フォーマット文字列に %%%c が多過ぎます"
-#: ../quickfix.c:371
#, c-format
msgid "E373: Unexpected %%%c in format string"
msgstr "E373: フォーマット文字列に予期せぬ %%%c がありました"
-#: ../quickfix.c:420
msgid "E374: Missing ] in format string"
msgstr "E374: フォーマット文字列に ] がありません"
-#: ../quickfix.c:431
#, c-format
msgid "E375: Unsupported %%%c in format string"
msgstr "E375: フォーマット文字列では %%%c はサポートされません"
-#: ../quickfix.c:448
#, c-format
msgid "E376: Invalid %%%c in format string prefix"
msgstr "E376: フォーマット文字列の前置に無効な %%%c があります"
-#: ../quickfix.c:454
#, c-format
msgid "E377: Invalid %%%c in format string"
msgstr "E377: フォーマット文字列に無効な %%%c があります"
#. nothing found
-#: ../quickfix.c:477
msgid "E378: 'errorformat' contains no pattern"
msgstr "E378: 'errorformat' にパターンが指定されていません"
-#: ../quickfix.c:695
msgid "E379: Missing or empty directory name"
msgstr "E379: ディレクトリ名が無いか空です"
-#: ../quickfix.c:1305
msgid "E553: No more items"
msgstr "E553: 要素がもうありません"
-#: ../quickfix.c:1674
+msgid "E924: Current window was closed"
+msgstr "E924: 現在のウィンドウが閉じられました"
+
+msgid "E925: Current quickfix was changed"
+msgstr "E925: 現在の quickfix が変更されました"
+
+msgid "E926: Current location list was changed"
+msgstr "E926: 現在のロケーションリストが変更されました"
+
#, c-format
msgid "(%d of %d)%s%s: "
msgstr "(%d of %d)%s%s: "
-#: ../quickfix.c:1676
msgid " (line deleted)"
msgstr " (行が削除されました)"
-#: ../quickfix.c:1863
+#, c-format
+msgid "%serror list %d of %d; %d errors "
+msgstr "%s エラー一覧 %d of %d; %d 個エラー"
+
msgid "E380: At bottom of quickfix stack"
msgstr "E380: quickfix スタックの末尾です"
-#: ../quickfix.c:1869
msgid "E381: At top of quickfix stack"
msgstr "E381: quickfix スタックの先頭です"
-#: ../quickfix.c:1880
-#, c-format
-msgid "error list %d of %d; %d errors"
-msgstr "エラー一覧 %d of %d; %d 個エラー"
+msgid "No entries"
+msgstr "エントリがありません"
-#: ../quickfix.c:2427
msgid "E382: Cannot write, 'buftype' option is set"
msgstr "E382: 'buftype' オプションが設定されているので書込みません"
-#: ../quickfix.c:2812
+msgid "Error file"
+msgstr "エラーファイル"
+
msgid "E683: File name missing or invalid pattern"
msgstr "E683: ファイル名が無いか無効なパターンです"
-#: ../quickfix.c:2911
#, c-format
msgid "Cannot open file \"%s\""
msgstr "ファイル \"%s\" を開けません"
-#: ../quickfix.c:3429
msgid "E681: Buffer is not loaded"
msgstr "E681: バッファは読み込まれませんでした"
-#: ../quickfix.c:3487
msgid "E777: String or List expected"
msgstr "E777: 文字列かリストが必要です"
-#: ../regexp.c:359
#, c-format
msgid "E369: invalid item in %s%%[]"
msgstr "E369: 無効な項目です: %s%%[]"
#
-#: ../regexp.c:374
#, c-format
msgid "E769: Missing ] after %s["
msgstr "E769: %s[ の後に ] がありません"
-#: ../regexp.c:375
#, c-format
msgid "E53: Unmatched %s%%("
msgstr "E53: %s%%( が釣り合っていません"
-#: ../regexp.c:376
#, c-format
msgid "E54: Unmatched %s("
msgstr "E54: %s( が釣り合っていません"
-#: ../regexp.c:377
#, c-format
msgid "E55: Unmatched %s)"
msgstr "E55: %s) が釣り合っていません"
#
-#: ../regexp.c:378
msgid "E66: \\z( not allowed here"
msgstr "E66: \\z( はココでは許可されていません"
#
-#: ../regexp.c:379
msgid "E67: \\z1 et al. not allowed here"
msgstr "E67: \\z1 その他はココでは許可されていません"
#
-#: ../regexp.c:380
#, c-format
msgid "E69: Missing ] after %s%%["
msgstr "E69: %s%%[ の後に ] がありません"
-#: ../regexp.c:381
#, c-format
msgid "E70: Empty %s%%[]"
msgstr "E70: %s%%[] が空です"
-#: ../regexp.c:1209 ../regexp.c:1224
msgid "E339: Pattern too long"
msgstr "E339: パターンが長過ぎます"
-#: ../regexp.c:1371
msgid "E50: Too many \\z("
msgstr "E50: \\z( が多過ぎます"
-#: ../regexp.c:1378
#, c-format
msgid "E51: Too many %s("
msgstr "E51: %s( が多過ぎます"
-#: ../regexp.c:1427
msgid "E52: Unmatched \\z("
msgstr "E52: \\z( が釣り合っていません"
-#: ../regexp.c:1637
#, c-format
msgid "E59: invalid character after %s@"
msgstr "E59: %s@ の後に不正な文字がありました"
-#: ../regexp.c:1672
#, c-format
msgid "E60: Too many complex %s{...}s"
msgstr "E60: 複雑な %s{...} が多過ぎます"
-#: ../regexp.c:1687
#, c-format
msgid "E61: Nested %s*"
msgstr "E61:%s* が入れ子になっています"
-#: ../regexp.c:1690
#, c-format
msgid "E62: Nested %s%c"
msgstr "E62:%s%c が入れ子になっています"
#
-#: ../regexp.c:1800
msgid "E63: invalid use of \\_"
msgstr "E63: \\_ の無効な使用方法です"
-#: ../regexp.c:1850
#, c-format
msgid "E64: %s%c follows nothing"
msgstr "E64:%s%c の後になにもありません"
#
-#: ../regexp.c:1902
msgid "E65: Illegal back reference"
msgstr "E65: 不正な後方参照です"
#
-#: ../regexp.c:1943
msgid "E68: Invalid character after \\z"
msgstr "E68: \\z の後に不正な文字がありました"
#
-#: ../regexp.c:2049 ../regexp_nfa.c:1296
#, c-format
msgid "E678: Invalid character after %s%%[dxouU]"
msgstr "E678: %s%%[dxouU] の後に不正な文字がありました"
#
-#: ../regexp.c:2107
#, c-format
msgid "E71: Invalid character after %s%%"
msgstr "E71: %s%% の後に不正な文字がありました"
-#: ../regexp.c:3017
#, c-format
msgid "E554: Syntax error in %s{...}"
msgstr "E554: %s{...} 内に文法エラーがあります"
-#: ../regexp.c:3805
msgid "External submatches:\n"
msgstr "外部の部分該当:\n"
@@ -5004,7 +4780,6 @@ msgstr "外部の部分該当:\n"
msgid "E888: (NFA regexp) cannot repeat %s"
msgstr "E888: (NFA 正規表現) 繰り返せません %s"
-#: ../regexp.c:7022
msgid ""
"E864: \\%#= can only be followed by 0, 1, or 2. The automatic engine will be "
"used "
@@ -5015,62 +4790,54 @@ msgstr ""
msgid "Switching to backtracking RE engine for pattern: "
msgstr "次のパターンにバックトラッキング RE エンジンを適用します: "
-#: ../regexp_nfa.c:239
msgid "E865: (NFA) Regexp end encountered prematurely"
msgstr "E865: (NFA) 期待より早く正規表現の終端に到達しました"
-#: ../regexp_nfa.c:240
#, c-format
msgid "E866: (NFA regexp) Misplaced %c"
msgstr "E866: (NFA 正規表現) 位置が誤っています: %c"
-#: ../regexp_nfa.c:242
+#
#, c-format
-msgid "E877: (NFA regexp) Invalid character class: %<PRId64>"
-msgstr "E877: (NFA 正規表現) 無効な文字クラス: %<PRId64>"
+msgid "E877: (NFA regexp) Invalid character class: %ld"
+msgstr "E877: (NFA 正規表現) 無効な文字クラス: %ld"
-#: ../regexp_nfa.c:1261
#, c-format
msgid "E867: (NFA) Unknown operator '\\z%c'"
msgstr "E867: (NFA) 未知のオペレータです: '\\z%c'"
-#: ../regexp_nfa.c:1387
#, c-format
msgid "E867: (NFA) Unknown operator '\\%%%c'"
msgstr "E867: (NFA) 未知のオペレータです: '\\%%%c'"
-#: ../regexp_nfa.c:1802
+#. should never happen
+msgid "E868: Error building NFA with equivalence class!"
+msgstr "E868: 等価クラスを含むNFA構築に失敗しました!"
+
#, c-format
msgid "E869: (NFA) Unknown operator '\\@%c'"
msgstr "E869: (NFA) 未知のオペレータです: '\\@%c'"
-#: ../regexp_nfa.c:1831
msgid "E870: (NFA regexp) Error reading repetition limits"
msgstr "E870: (NFA 正規表現) 繰り返しの制限回数を読込中にエラー"
#. Can't have a multi follow a multi.
-#: ../regexp_nfa.c:1895
msgid "E871: (NFA regexp) Can't have a multi follow a multi !"
msgstr "E871: (NFA 正規表現) 繰り返し の後に 繰り返し はできません!"
#. Too many `('
-#: ../regexp_nfa.c:2037
msgid "E872: (NFA regexp) Too many '('"
msgstr "E872: (NFA 正規表現) '(' が多過ぎます"
-#: ../regexp_nfa.c:2042
msgid "E879: (NFA regexp) Too many \\z("
msgstr "E879: (NFA 正規表現) \\z( が多過ぎます"
-#: ../regexp_nfa.c:2066
msgid "E873: (NFA regexp) proper termination error"
msgstr "E873: (NFA 正規表現) 終端記号がありません"
-#: ../regexp_nfa.c:2599
msgid "E874: (NFA) Could not pop the stack !"
msgstr "E874: (NFA) スタックをポップできません!"
-#: ../regexp_nfa.c:3298
msgid ""
"E875: (NFA regexp) (While converting from postfix to NFA), too many states "
"left on stack"
@@ -5078,177 +4845,136 @@ msgstr ""
"E875: (NFA 正規表現) (後置文字列をNFAに変換中に) スタックに残されたステートが"
"多過ぎます"
-#: ../regexp_nfa.c:3302
msgid "E876: (NFA regexp) Not enough space to store the whole NFA "
msgstr "E876: (NFA 正規表現) NFA全体を保存するには空きスペースが足りません"
-#: ../regexp_nfa.c:4571 ../regexp_nfa.c:4869
+msgid "E878: (NFA) Could not allocate memory for branch traversal!"
+msgstr "E878: (NFA) 現在横断中のブランチに十分なメモリを割り当てられません!"
+
msgid ""
"Could not open temporary log file for writing, displaying on stderr ... "
msgstr ""
"NFA正規表現エンジン用のログファイルを書込用として開けません。ログは標準出力に"
"出力します。"
-#: ../regexp_nfa.c:4840
#, c-format
msgid "(NFA) COULD NOT OPEN %s !"
msgstr "(NFA) ログファイル %s を開けません!"
-#: ../regexp_nfa.c:6049
msgid "Could not open temporary log file for writing "
msgstr "NFA正規表現エンジン用のログファイルを書込用として開けません。"
-#: ../screen.c:7435
msgid " VREPLACE"
msgstr " 仮想置換"
-#: ../screen.c:7437
msgid " REPLACE"
msgstr " 置換"
-#: ../screen.c:7440
msgid " REVERSE"
msgstr " 反転"
-#: ../screen.c:7441
msgid " INSERT"
msgstr " 挿入"
-#: ../screen.c:7443
msgid " (insert)"
msgstr " (挿入)"
-#: ../screen.c:7445
msgid " (replace)"
msgstr " (置換)"
-#: ../screen.c:7447
msgid " (vreplace)"
msgstr " (仮想置換)"
-#: ../screen.c:7449
msgid " Hebrew"
msgstr " ヘブライ"
-#: ../screen.c:7454
msgid " Arabic"
msgstr " アラビア"
-#: ../screen.c:7456
-msgid " (lang)"
-msgstr " (言語)"
-
-#: ../screen.c:7459
msgid " (paste)"
msgstr " (貼り付け)"
-#: ../screen.c:7469
msgid " VISUAL"
msgstr " ビジュアル"
-#: ../screen.c:7470
msgid " VISUAL LINE"
msgstr " ビジュアル 行"
-#: ../screen.c:7471
msgid " VISUAL BLOCK"
msgstr " ビジュアル 矩形"
-#: ../screen.c:7472
msgid " SELECT"
msgstr " セレクト"
-#: ../screen.c:7473
msgid " SELECT LINE"
msgstr " 行指向選択"
-#: ../screen.c:7474
msgid " SELECT BLOCK"
msgstr " 矩形選択"
-#: ../screen.c:7486 ../screen.c:7541
msgid "recording"
msgstr "記録中"
-#: ../search.c:487
#, c-format
msgid "E383: Invalid search string: %s"
msgstr "E383: 無効な検索文字列です: %s"
-#: ../search.c:832
#, c-format
msgid "E384: search hit TOP without match for: %s"
msgstr "E384: 上まで検索しましたが該当箇所はありません: %s"
-#: ../search.c:835
#, c-format
msgid "E385: search hit BOTTOM without match for: %s"
msgstr "E385: 下まで検索しましたが該当箇所はありません: %s"
-#: ../search.c:1200
msgid "E386: Expected '?' or '/' after ';'"
msgstr "E386: ';' のあとには '?' か '/' が期待されている"
-#: ../search.c:4085
msgid " (includes previously listed match)"
msgstr " (前に列挙した該当箇所を含む)"
#. cursor at status line
-#: ../search.c:4104
msgid "--- Included files "
msgstr "--- インクルードされたファイル "
-#: ../search.c:4106
msgid "not found "
msgstr "見つかりません "
-#: ../search.c:4107
msgid "in path ---\n"
msgstr "パスに ----\n"
-#: ../search.c:4168
msgid " (Already listed)"
msgstr " (既に列挙)"
-#: ../search.c:4170
msgid " NOT FOUND"
msgstr " 見つかりません"
-#: ../search.c:4211
#, c-format
msgid "Scanning included file: %s"
msgstr "インクルードされたファイルをスキャン中: %s"
-#: ../search.c:4216
#, c-format
msgid "Searching included file %s"
msgstr "インクルードされたファイルをスキャン中 %s"
-#: ../search.c:4405
msgid "E387: Match is on current line"
msgstr "E387: 現在行に該当があります"
-#: ../search.c:4517
msgid "All included files were found"
msgstr "全てのインクルードされたファイルが見つかりました"
-#: ../search.c:4519
msgid "No included files"
msgstr "インクルードファイルはありません"
-#: ../search.c:4527
msgid "E388: Couldn't find definition"
msgstr "E388: 定義を見つけられません"
-#: ../search.c:4529
msgid "E389: Couldn't find pattern"
msgstr "E389: パターンを見つけられません"
-#: ../search.c:4668
msgid "Substitute "
msgstr "Substitute "
-#: ../search.c:4681
#, c-format
msgid ""
"\n"
@@ -5259,99 +4985,131 @@ msgstr ""
"# 最後の %s検索パターン:\n"
"~"
-#: ../spell.c:951
-msgid "E759: Format error in spell file"
-msgstr "E759: スペルファイルの書式エラーです"
+msgid "E756: Spell checking is not enabled"
+msgstr "E756: スペルチェックは無効化されています"
+
+#, c-format
+msgid "Warning: Cannot find word list \"%s_%s.spl\" or \"%s_ascii.spl\""
+msgstr ""
+"警告: 単語リスト \"%s_%s.spl\" および \"%s_ascii.spl\" は見つかりません"
+
+#, c-format
+msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
+msgstr ""
+"警告: 単語リスト \"%s.%s.spl\" および \"%s.ascii.spl\" は見つかりません"
+
+msgid "E797: SpellFileMissing autocommand deleted buffer"
+msgstr "E797: autocommand の SpellFileMissing がバッファを削除しました"
+
+#, c-format
+msgid "Warning: region %s not supported"
+msgstr "警告9: %s という範囲はサポートされていません"
+
+msgid "Sorry, no suggestions"
+msgstr "残念ですが, 修正候補はありません"
+
+#, c-format
+msgid "Sorry, only %ld suggestions"
+msgstr "残念ですが, 修正候補は %ld 個しかありません"
+
+#. for when 'cmdheight' > 1
+#. avoid more prompt
+#, c-format
+msgid "Change \"%.*s\" to:"
+msgstr "\"%.*s\" を次へ変換:"
+
+#, c-format
+msgid " < \"%.*s\""
+msgstr " < \"%.*s\""
+
+msgid "E752: No previous spell replacement"
+msgstr "E752: スペル置換がまだ実行されていません"
+
+#, c-format
+msgid "E753: Not found: %s"
+msgstr "E753: 見つかりません: %s"
-#: ../spell.c:952
msgid "E758: Truncated spell file"
msgstr "E758: スペルファイルが切取られているようです"
-#: ../spell.c:953
#, c-format
msgid "Trailing text in %s line %d: %s"
msgstr "%s (%d 行目) に続くテキスト: %s"
-#: ../spell.c:954
#, c-format
msgid "Affix name too long in %s line %d: %s"
msgstr "%s (%d 行目) の affix 名が長過ぎます: %s"
-#: ../spell.c:955
msgid "E761: Format error in affix file FOL, LOW or UPP"
msgstr ""
"E761: affixファイルの FOL, LOW もしくは UPP のフォーマットにエラーがあります"
-#: ../spell.c:957
msgid "E762: Character in FOL, LOW or UPP is out of range"
msgstr "E762: FOL, LOW もしくは UPP の文字が範囲外です"
-#: ../spell.c:958
msgid "Compressing word tree..."
msgstr "単語ツリーを圧縮しています..."
-#: ../spell.c:1951
-msgid "E756: Spell checking is not enabled"
-msgstr "E756: スペルチェックは無効化されています"
-
-#: ../spell.c:2249
-#, c-format
-msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
-msgstr ""
-"警告: 単語リスト \"%s.%s.spl\" および \"%s.ascii.spl\" は見つかりません"
-
-#: ../spell.c:2473
#, c-format
msgid "Reading spell file \"%s\""
msgstr "スペルファイル \"%s\" を読込中"
-#: ../spell.c:2496
msgid "E757: This does not look like a spell file"
msgstr "E757: スペルファイルではないようです"
-#: ../spell.c:2501
msgid "E771: Old spell file, needs to be updated"
msgstr "E771: 古いスペルファイルなので, アップデートしてください"
-#: ../spell.c:2504
msgid "E772: Spell file is for newer version of Vim"
msgstr "E772: より新しいバージョンの Vim 用のスペルファイルです"
-#: ../spell.c:2602
msgid "E770: Unsupported section in spell file"
msgstr "E770: スペルファイルにサポートしていないセクションがあります"
-#: ../spell.c:3762
#, c-format
-msgid "Warning: region %s not supported"
-msgstr "警告9: %s という範囲はサポートされていません"
+msgid "E778: This does not look like a .sug file: %s"
+msgstr "E778: .sug ファイルではないようです: %s"
+
+#, c-format
+msgid "E779: Old .sug file, needs to be updated: %s"
+msgstr "E779: 古い .sug ファイルなので, アップデートしてください: %s"
+
+#, c-format
+msgid "E780: .sug file is for newer version of Vim: %s"
+msgstr "E780: より新しいバージョンの Vim 用の .sug ファイルです: %s"
+
+#, c-format
+msgid "E781: .sug file doesn't match .spl file: %s"
+msgstr "E781: .sug ファイルが .spl ファイルと一致しません: %s"
+
+#, c-format
+msgid "E782: error while reading .sug file: %s"
+msgstr "E782: .sug ファイルの読込中にエラーが発生しました: %s"
-#: ../spell.c:4550
#, c-format
msgid "Reading affix file %s ..."
msgstr "affix ファイル %s を読込中..."
-#: ../spell.c:4589 ../spell.c:5635 ../spell.c:6140
#, c-format
msgid "Conversion failure for word in %s line %d: %s"
msgstr "%s (%d 行目) の単語を変換できませんでした: %s"
-#: ../spell.c:4630 ../spell.c:6170
#, c-format
msgid "Conversion in %s not supported: from %s to %s"
msgstr "%s 内の次の変換はサポートされていません: %s から %s へ"
-#: ../spell.c:4642
+#, c-format
+msgid "Conversion in %s not supported"
+msgstr "%s 内の変換はサポートされていません"
+
#, c-format
msgid "Invalid value for FLAG in %s line %d: %s"
msgstr "%s 内の %d 行目の FLAG に無効な値があります: %s"
-#: ../spell.c:4655
#, c-format
msgid "FLAG after using flags in %s line %d: %s"
msgstr "%s 内の %d 行目にフラグの二重使用があります: %s"
-#: ../spell.c:4723
#, c-format
msgid ""
"Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line "
@@ -5360,7 +5118,6 @@ msgstr ""
"%s の %d 行目の PFX 項目の後の COMPOUNDFORBIDFLAG の定義は誤った結果を生じる"
"ことがあります"
-#: ../spell.c:4731
#, c-format
msgid ""
"Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line "
@@ -5369,43 +5126,35 @@ msgstr ""
"%s の %d 行目の PFX 項目の後の COMPOUNDPERMITFLAG の定義は誤った結果を生じる"
"ことがあります"
-#: ../spell.c:4747
#, c-format
msgid "Wrong COMPOUNDRULES value in %s line %d: %s"
msgstr "COMPOUNDRULES の値に誤りがあります. ファイル %s の %d 行目: %s"
-#: ../spell.c:4771
#, c-format
msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s"
msgstr "%s の %d 行目の COMPOUNDWORDMAX の値に誤りがあります: %s"
-#: ../spell.c:4777
#, c-format
msgid "Wrong COMPOUNDMIN value in %s line %d: %s"
msgstr "%s の %d 行目の COMPOUNDMIN の値に誤りがあります: %s"
-#: ../spell.c:4783
#, c-format
msgid "Wrong COMPOUNDSYLMAX value in %s line %d: %s"
msgstr "%s の %d 行目の COMPOUNDSYLMAX の値に誤りがあります: %s"
-#: ../spell.c:4795
#, c-format
msgid "Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"
msgstr "%s の %d 行目の CHECKCOMPOUNDPATTERN の値に誤りがあります: %s"
-#: ../spell.c:4847
#, c-format
msgid "Different combining flag in continued affix block in %s line %d: %s"
msgstr ""
"%s の %d 行目の 連続 affix ブロックのフラグの組合せに違いがあります: %s"
-#: ../spell.c:4850
#, c-format
msgid "Duplicate affix in %s line %d: %s"
msgstr "%s の %d 行目に 重複した affix を検出しました: %s"
-#: ../spell.c:4871
#, c-format
msgid ""
"Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s "
@@ -5414,308 +5163,206 @@ msgstr ""
"%s の %d 行目の affix は BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST "
"に使用してください: %s"
-#: ../spell.c:4893
#, c-format
msgid "Expected Y or N in %s line %d: %s"
msgstr "%s の %d 行目では Y か N が必要です: %s"
-#: ../spell.c:4968
#, c-format
msgid "Broken condition in %s line %d: %s"
msgstr "%s の %d 行目の 条件は壊れています: %s"
-#: ../spell.c:5091
#, c-format
msgid "Expected REP(SAL) count in %s line %d"
msgstr "%s の %d 行目には REP(SAL) の回数が必要です"
-#: ../spell.c:5120
#, c-format
msgid "Expected MAP count in %s line %d"
msgstr "%s の %d 行目には MAP の回数が必要です"
-#: ../spell.c:5132
#, c-format
msgid "Duplicate character in MAP in %s line %d"
msgstr "%s の %d 行目の MAP に重複した文字があります"
-#: ../spell.c:5176
#, c-format
msgid "Unrecognized or duplicate item in %s line %d: %s"
msgstr "%s の %d 行目に 認識できないか重複した項目があります: %s"
-#: ../spell.c:5197
#, c-format
msgid "Missing FOL/LOW/UPP line in %s"
msgstr "%s 行目に FOL/LOW/UPP がありません"
-#: ../spell.c:5220
msgid "COMPOUNDSYLMAX used without SYLLABLE"
msgstr "SYLLABLE が指定されない COMPOUNDSYLMAX"
-#: ../spell.c:5236
msgid "Too many postponed prefixes"
msgstr "遅延後置子が多過ぎます"
-#: ../spell.c:5238
msgid "Too many compound flags"
msgstr "複合フラグが多過ぎます"
-#: ../spell.c:5240
msgid "Too many postponed prefixes and/or compound flags"
msgstr "遅延後置子 と/もしくは 複合フラグが多過ぎます"
-#: ../spell.c:5250
#, c-format
msgid "Missing SOFO%s line in %s"
msgstr "SOFO%s 行が %s にありません"
-#: ../spell.c:5253
#, c-format
msgid "Both SAL and SOFO lines in %s"
msgstr "SAL行 と SOFO行 が %s で両方指定されています"
-#: ../spell.c:5331
#, c-format
msgid "Flag is not a number in %s line %d: %s"
msgstr "%s の %d 行の フラグが数値ではありません: %s"
-#: ../spell.c:5334
#, c-format
msgid "Illegal flag in %s line %d: %s"
msgstr "%s の %d 行目の フラグが不正です: %s"
-#: ../spell.c:5493 ../spell.c:5501
#, c-format
msgid "%s value differs from what is used in another .aff file"
msgstr "値 %s は他の .aff ファイルで使用されたのと異なります"
-#: ../spell.c:5602
#, c-format
msgid "Reading dictionary file %s ..."
msgstr "辞書ファイル %s をスキャン中..."
-#: ../spell.c:5611
#, c-format
msgid "E760: No word count in %s"
msgstr "E760: %s には単語数がありません"
-#: ../spell.c:5669
#, c-format
msgid "line %6d, word %6d - %s"
msgstr "行 %6d, 単語 %6d - %s"
-#: ../spell.c:5691
#, c-format
msgid "Duplicate word in %s line %d: %s"
msgstr "%s の %d 行目で 重複単語が見つかりました: %s"
-#: ../spell.c:5694
#, c-format
msgid "First duplicate word in %s line %d: %s"
msgstr "重複のうち最初の単語は %s の %d 行目です: %s"
-#: ../spell.c:5746
#, c-format
msgid "%d duplicate word(s) in %s"
msgstr "%d 個の単語が見つかりました (%s 内)"
-#: ../spell.c:5748
#, c-format
msgid "Ignored %d word(s) with non-ASCII characters in %s"
msgstr "非ASCII文字を含む %d 個の単語を無視しました (%s 内)"
-#: ../spell.c:6115
#, c-format
msgid "Reading word file %s ..."
msgstr "標準入力から読込み中 %s ..."
-#: ../spell.c:6155
#, c-format
msgid "Duplicate /encoding= line ignored in %s line %d: %s"
msgstr "%s の %d 行目の 重複した /encoding= 行を無視しました: %s"
-#: ../spell.c:6159
#, c-format
msgid "/encoding= line after word ignored in %s line %d: %s"
msgstr "%s の %d 行目の 単語の後の /encoding= 行を無視しました: %s"
-#: ../spell.c:6180
#, c-format
msgid "Duplicate /regions= line ignored in %s line %d: %s"
msgstr "%s の %d 行目の 重複した /regions= 行を無視しました: %s"
-#: ../spell.c:6185
#, c-format
msgid "Too many regions in %s line %d: %s"
msgstr "%s の %d 行目, 範囲指定が多過ぎます: %s"
-#: ../spell.c:6198
#, c-format
msgid "/ line ignored in %s line %d: %s"
msgstr "%s の %d 行目の 重複した / 行を無視しました: %s"
-#: ../spell.c:6224
#, c-format
msgid "Invalid region nr in %s line %d: %s"
msgstr "%s の %d 行目 無効な nr 領域です: %s"
-#: ../spell.c:6230
#, c-format
msgid "Unrecognized flags in %s line %d: %s"
msgstr "%s の %d 行目 認識不能なフラグです: %s"
-#: ../spell.c:6257
#, c-format
msgid "Ignored %d words with non-ASCII characters"
msgstr "非ASCII文字を含む %d 個の単語を無視しました"
-#: ../spell.c:6656
+msgid "E845: Insufficient memory, word list will be incomplete"
+msgstr "E845: メモリが足りないので、単語リストは不完全です"
+
#, c-format
msgid "Compressed %d of %d nodes; %d (%d%%) remaining"
msgstr "ノード %d 個(全 %d 個中) を圧縮しました; 残り %d (%d%%)"
-#: ../spell.c:7340
msgid "Reading back spell file..."
msgstr "スペルファイルを逆読込中"
-#. Go through the trie of good words, soundfold each word and add it to
-#. the soundfold trie.
-#: ../spell.c:7357
+#.
+#. * Go through the trie of good words, soundfold each word and add it to
+#. * the soundfold trie.
+#.
msgid "Performing soundfolding..."
msgstr "音声畳込みを実行中..."
-#: ../spell.c:7368
#, c-format
-msgid "Number of words after soundfolding: %<PRId64>"
-msgstr "音声畳込み後の総単語数: %<PRId64>"
+msgid "Number of words after soundfolding: %ld"
+msgstr "音声畳込み後の総単語数: %ld"
-#: ../spell.c:7476
#, c-format
msgid "Total number of words: %d"
msgstr "総単語数: %d"
-#: ../spell.c:7655
#, c-format
msgid "Writing suggestion file %s ..."
msgstr "修正候補ファイル \"%s\" を書込み中..."
-#: ../spell.c:7707 ../spell.c:7927
#, c-format
msgid "Estimated runtime memory use: %d bytes"
msgstr "推定メモリ使用量: %d バイト"
-#: ../spell.c:7820
msgid "E751: Output file name must not have region name"
msgstr "E751: 出力ファイル名には範囲名を含められません"
-#: ../spell.c:7822
msgid "E754: Only up to 8 regions supported"
msgstr "E754: 範囲は 8 個までしかサポートされていません"
-#: ../spell.c:7846
#, c-format
msgid "E755: Invalid region in %s"
msgstr "E755: 無効な範囲です: %s"
-#: ../spell.c:7907
msgid "Warning: both compounding and NOBREAK specified"
msgstr "警告: 複合フラグと NOBREAK が両方とも指定されました"
-#: ../spell.c:7920
#, c-format
msgid "Writing spell file %s ..."
msgstr "スペルファイル %s を書込み中..."
-#: ../spell.c:7925
msgid "Done!"
msgstr "実行しました!"
-#: ../spell.c:8034
#, c-format
-msgid "E765: 'spellfile' does not have %<PRId64> entries"
-msgstr "E765: 'spellfile' には %<PRId64> 個のエントリはありません"
+msgid "E765: 'spellfile' does not have %ld entries"
+msgstr "E765: 'spellfile' には %ld 個のエントリはありません"
-#: ../spell.c:8074
#, c-format
msgid "Word '%.*s' removed from %s"
msgstr "単語 '%.*s' が %s から削除されました"
-#: ../spell.c:8117
#, c-format
msgid "Word '%.*s' added to %s"
msgstr "単語 '%.*s' が %s へ追加されました"
-#: ../spell.c:8381
msgid "E763: Word characters differ between spell files"
msgstr "E763: 単語の文字がスペルファイルと異なります"
-#: ../spell.c:8684
-msgid "Sorry, no suggestions"
-msgstr "残念ですが, 修正候補はありません"
-
-#: ../spell.c:8687
-#, c-format
-msgid "Sorry, only %<PRId64> suggestions"
-msgstr "残念ですが, 修正候補は %<PRId64> 個しかありません"
-
-#. for when 'cmdheight' > 1
-#. avoid more prompt
-#: ../spell.c:8704
-#, c-format
-msgid "Change \"%.*s\" to:"
-msgstr "\"%.*s\" を次へ変換:"
-
-#: ../spell.c:8737
-#, c-format
-msgid " < \"%.*s\""
-msgstr " < \"%.*s\""
-
-#: ../spell.c:8882
-msgid "E752: No previous spell replacement"
-msgstr "E752: スペル置換がまだ実行されていません"
-
-#: ../spell.c:8925
-#, c-format
-msgid "E753: Not found: %s"
-msgstr "E753: 見つかりません: %s"
-
-#: ../spell.c:9276
-#, c-format
-msgid "E778: This does not look like a .sug file: %s"
-msgstr "E778: .sug ファイルではないようです: %s"
-
-#: ../spell.c:9282
-#, c-format
-msgid "E779: Old .sug file, needs to be updated: %s"
-msgstr "E779: 古い .sug ファイルなので, アップデートしてください: %s"
-
-#: ../spell.c:9286
-#, c-format
-msgid "E780: .sug file is for newer version of Vim: %s"
-msgstr "E780: より新しいバージョンの Vim 用の .sug ファイルです: %s"
-
-#: ../spell.c:9295
-#, c-format
-msgid "E781: .sug file doesn't match .spl file: %s"
-msgstr "E781: .sug ファイルが .spl ファイルと一致しません: %s"
-
-#: ../spell.c:9305
-#, c-format
-msgid "E782: error while reading .sug file: %s"
-msgstr "E782: .sug ファイルの読込中にエラーが発生しました: %s"
-
#. This should have been checked when generating the .spl
-#. file.
-#: ../spell.c:11575
+#. * file.
msgid "E783: duplicate char in MAP entry"
msgstr "E783: MAP エントリに重複文字が存在します"
-#: ../syntax.c:266
msgid "No Syntax items defined for this buffer"
msgstr "このバッファに定義された構文要素はありません"
-#: ../syntax.c:3083 ../syntax.c:3104 ../syntax.c:3127
#, c-format
msgid "E390: Illegal argument: %s"
msgstr "E390: 不正な引数です: %s"
@@ -5723,28 +5370,22 @@ msgstr "E390: 不正な引数です: %s"
msgid "syntax iskeyword "
msgstr "シンタックス用 iskeyword "
-#: ../syntax.c:3299
#, c-format
msgid "E391: No such syntax cluster: %s"
msgstr "E391: そのような構文クラスタはありません: %s"
-#: ../syntax.c:3433
msgid "syncing on C-style comments"
msgstr "C言語風コメントから同期中"
-#: ../syntax.c:3439
msgid "no syncing"
msgstr "非同期"
-#: ../syntax.c:3441
msgid "syncing starts "
msgstr "同期開始 "
-#: ../syntax.c:3443 ../syntax.c:3506
msgid " lines before top line"
msgstr " 行前(トップ行よりも)"
-#: ../syntax.c:3448
msgid ""
"\n"
"--- Syntax sync items ---"
@@ -5752,7 +5393,6 @@ msgstr ""
"\n"
"--- 構文同期要素 ---"
-#: ../syntax.c:3452
msgid ""
"\n"
"syncing on items"
@@ -5760,7 +5400,6 @@ msgstr ""
"\n"
"要素上で同期中"
-#: ../syntax.c:3457
msgid ""
"\n"
"--- Syntax items ---"
@@ -5768,53 +5407,41 @@ msgstr ""
"\n"
"--- 構文要素 ---"
-#: ../syntax.c:3475
#, c-format
msgid "E392: No such syntax cluster: %s"
msgstr "E392: そのような構文クラスタはありません: %s"
-#: ../syntax.c:3497
msgid "minimal "
msgstr "minimal "
-#: ../syntax.c:3503
msgid "maximal "
msgstr "maximal "
-#: ../syntax.c:3513
msgid "; match "
msgstr "; 該当 "
-#: ../syntax.c:3515
msgid " line breaks"
msgstr " 個の改行"
-#: ../syntax.c:4076
msgid "E395: contains argument not accepted here"
msgstr "E395: この場所では引数containsは許可されていません"
-#: ../syntax.c:4096
msgid "E844: invalid cchar value"
msgstr "E844: 無効なccharの値です"
-#: ../syntax.c:4107
msgid "E393: group[t]here not accepted here"
msgstr "E393: ここではグループは許可されません"
-#: ../syntax.c:4126
#, c-format
msgid "E394: Didn't find region item for %s"
msgstr "E394: %s の範囲要素が見つかりません"
-#: ../syntax.c:4188
msgid "E397: Filename required"
msgstr "E397: ファイル名が必要です"
-#: ../syntax.c:4221
msgid "E847: Too many syntax includes"
msgstr "E847: 構文の取り込み(include)が多過ぎます"
-#: ../syntax.c:4303
#, c-format
msgid "E789: Missing ']': %s"
msgstr "E789: ']' がありません: %s"
@@ -5823,221 +5450,173 @@ msgstr "E789: ']' がありません: %s"
msgid "E890: trailing char after ']': %s]%s"
msgstr "E890: ']' の後ろに余分な文字があります: %s]%s"
-#: ../syntax.c:4531
#, c-format
msgid "E398: Missing '=': %s"
msgstr "E398: '=' がありません: %s"
-#: ../syntax.c:4666
#, c-format
msgid "E399: Not enough arguments: syntax region %s"
msgstr "E399: 引数が足りません: 構文範囲 %s"
-#: ../syntax.c:4870
msgid "E848: Too many syntax clusters"
msgstr "E848: 構文クラスタが多過ぎます"
-#: ../syntax.c:4954
msgid "E400: No cluster specified"
msgstr "E400: クラスタが指定されていません"
-#. end delimiter not found
-#: ../syntax.c:4986
#, c-format
msgid "E401: Pattern delimiter not found: %s"
msgstr "E401: パターン区切りが見つかりません: %s"
-#: ../syntax.c:5049
#, c-format
msgid "E402: Garbage after pattern: %s"
msgstr "E402: パターンのあとにゴミがあります: %s"
-#: ../syntax.c:5120
msgid "E403: syntax sync: line continuations pattern specified twice"
msgstr "E403: 構文同期: 連続行パターンが2度指定されました"
-#: ../syntax.c:5169
#, c-format
msgid "E404: Illegal arguments: %s"
msgstr "E404: 不正な引数です: %s"
-#: ../syntax.c:5217
#, c-format
msgid "E405: Missing equal sign: %s"
msgstr "E405: 等号がありません: %s"
-#: ../syntax.c:5222
#, c-format
msgid "E406: Empty argument: %s"
msgstr "E406: 空の引数: %s"
-#: ../syntax.c:5240
#, c-format
msgid "E407: %s not allowed here"
msgstr "E407: %s はココでは許可されていません"
-#: ../syntax.c:5246
#, c-format
msgid "E408: %s must be first in contains list"
msgstr "E408: %s は内容リストの先頭でなければならない"
-#: ../syntax.c:5304
#, c-format
msgid "E409: Unknown group name: %s"
msgstr "E409: 未知のグループ名: %s"
-#: ../syntax.c:5512
#, c-format
msgid "E410: Invalid :syntax subcommand: %s"
msgstr "E410: 無効な :syntax のサブコマンド: %s"
-#: ../syntax.c:5854
msgid ""
" TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN"
msgstr ""
" TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN"
-#: ../syntax.c:6146
msgid "E679: recursive loop loading syncolor.vim"
msgstr "E679: syncolor.vim の再帰呼び出しを検出しました"
-#: ../syntax.c:6256
#, c-format
msgid "E411: highlight group not found: %s"
msgstr "E411: ハイライトグループが見つかりません: %s"
-#: ../syntax.c:6278
#, c-format
msgid "E412: Not enough arguments: \":highlight link %s\""
msgstr "E412: 引数が充分ではない: \":highlight link %s\""
-#: ../syntax.c:6284
#, c-format
msgid "E413: Too many arguments: \":highlight link %s\""
msgstr "E413: 引数が多過ぎます: \":highlight link %s\""
-#: ../syntax.c:6302
msgid "E414: group has settings, highlight link ignored"
msgstr "E414: グループが設定されているのでハイライトリンクは無視されます"
-#: ../syntax.c:6367
#, c-format
msgid "E415: unexpected equal sign: %s"
msgstr "E415: 予期せぬ等号です: %s"
-#: ../syntax.c:6395
#, c-format
msgid "E416: missing equal sign: %s"
msgstr "E416: 等号がありません: %s"
-#: ../syntax.c:6418
#, c-format
msgid "E417: missing argument: %s"
msgstr "E417: 引数がありません: %s"
-#: ../syntax.c:6446
#, c-format
msgid "E418: Illegal value: %s"
msgstr "E418: 不正な値です: %s"
-#: ../syntax.c:6496
msgid "E419: FG color unknown"
msgstr "E419: 未知の前景色です"
-#: ../syntax.c:6504
msgid "E420: BG color unknown"
msgstr "E420: 未知の背景色です"
-#: ../syntax.c:6564
#, c-format
msgid "E421: Color name or number not recognized: %s"
msgstr "E421: カラー名や番号を認識できません: %s"
-#: ../syntax.c:6714
#, c-format
msgid "E422: terminal code too long: %s"
msgstr "E422: 終端コードが長過ぎます: %s"
-#: ../syntax.c:6753
#, c-format
msgid "E423: Illegal argument: %s"
msgstr "E423: 不正な引数です: %s"
-#: ../syntax.c:6925
msgid "E424: Too many different highlighting attributes in use"
msgstr "E424: 多くの異なるハイライト属性が使われ過ぎています"
-#: ../syntax.c:7427
msgid "E669: Unprintable character in group name"
msgstr "E669: グループ名に印刷不可能な文字があります"
-#: ../syntax.c:7434
msgid "W18: Invalid character in group name"
msgstr "W18: グループ名に不正な文字があります"
-#: ../syntax.c:7448
msgid "E849: Too many highlight and syntax groups"
msgstr "E849: ハイライトと構文グループが多過ぎます"
-#: ../tag.c:104
msgid "E555: at bottom of tag stack"
msgstr "E555: タグスタックの末尾です"
-#: ../tag.c:105
msgid "E556: at top of tag stack"
msgstr "E556: タグスタックの先頭です"
-#: ../tag.c:380
msgid "E425: Cannot go before first matching tag"
msgstr "E425: 最初の該当タグを超えて戻ることはできません"
-#: ../tag.c:504
#, c-format
msgid "E426: tag not found: %s"
msgstr "E426: タグが見つかりません: %s"
-#: ../tag.c:528
msgid " # pri kind tag"
msgstr " # pri kind tag"
-#: ../tag.c:531
msgid "file\n"
msgstr "ファイル\n"
-#: ../tag.c:829
msgid "E427: There is only one matching tag"
msgstr "E427: 該当タグが1つだけしかありません"
-#: ../tag.c:831
msgid "E428: Cannot go beyond last matching tag"
msgstr "E428: 最後に該当するタグを超えて進むことはできません"
-#: ../tag.c:850
#, c-format
msgid "File \"%s\" does not exist"
msgstr "ファイル \"%s\" がありません"
#. Give an indication of the number of matching tags
-#: ../tag.c:859
#, c-format
msgid "tag %d of %d%s"
msgstr "タグ %d (全%d%s)"
-#: ../tag.c:862
msgid " or more"
msgstr " かそれ以上"
-#: ../tag.c:864
msgid " Using tag with different case!"
msgstr " タグを異なるcaseで使用します!"
-#: ../tag.c:909
#, c-format
msgid "E429: File \"%s\" does not exist"
msgstr "E429: ファイル \"%s\" がありません"
#. Highlight title
-#: ../tag.c:960
msgid ""
"\n"
" # TO tag FROM line in file/text"
@@ -6045,79 +5624,66 @@ msgstr ""
"\n"
" # TO タグ FROM 行 in file/text"
-#: ../tag.c:1303
#, c-format
msgid "Searching tags file %s"
msgstr "タグファイル %s を検索中"
-#: ../tag.c:1545
+#, c-format
+msgid "E430: Tag file path truncated for %s\n"
+msgstr "E430: タグファイルのパスが %s に切り捨てられました\n"
+
msgid "Ignoring long line in tags file"
msgstr "タグファイル内の長い行を無視します"
-#: ../tag.c:1915
#, c-format
msgid "E431: Format error in tags file \"%s\""
msgstr "E431: タグファイル \"%s\" のフォーマットにエラーがあります"
-#: ../tag.c:1917
#, c-format
-msgid "Before byte %<PRId64>"
-msgstr "直前の %<PRId64> バイト"
+msgid "Before byte %ld"
+msgstr "直前の %ld バイト"
-#: ../tag.c:1929
#, c-format
msgid "E432: Tags file not sorted: %s"
msgstr "E432: タグファイルがソートされていません: %s"
#. never opened any tags file
-#: ../tag.c:1960
msgid "E433: No tags file"
msgstr "E433: タグファイルがありません"
-#: ../tag.c:2536
msgid "E434: Can't find tag pattern"
msgstr "E434: タグパターンを見つけられません"
-#: ../tag.c:2544
msgid "E435: Couldn't find tag, just guessing!"
msgstr "E435: タグを見つけられないので単に推測します!"
-#: ../tag.c:2797
#, c-format
msgid "Duplicate field name: %s"
msgstr "重複したフィールド名: %s"
-#: ../term.c:1442
msgid "' not known. Available builtin terminals are:"
msgstr "' は未知です. 現行の組み込み端末は次のとおりです:"
-#: ../term.c:1463
msgid "defaulting to '"
msgstr "省略値を次のように設定します '"
-#: ../term.c:1731
msgid "E557: Cannot open termcap file"
msgstr "E557: termcapファイルを開けません"
-#: ../term.c:1735
msgid "E558: Terminal entry not found in terminfo"
msgstr "E558: terminfoに端末エントリを見つけられません"
-#: ../term.c:1737
msgid "E559: Terminal entry not found in termcap"
msgstr "E559: termcapに端末エントリを見つけられません"
-#: ../term.c:1878
#, c-format
msgid "E436: No \"%s\" entry in termcap"
msgstr "E436: termcapに \"%s\" のエントリがありません"
-#: ../term.c:2249
msgid "E437: terminal capability \"cm\" required"
msgstr "E437: 端末に \"cm\" 機能が必要です"
#. Highlight title
-#: ../term.c:4376
msgid ""
"\n"
"--- Terminal keys ---"
@@ -6125,168 +5691,347 @@ msgstr ""
"\n"
"--- 端末キー ---"
-#: ../ui.c:481
+msgid "Cannot open $VIMRUNTIME/rgb.txt"
+msgstr "$VIMRUNTIME/rgb.txtを開けません"
+
+msgid "new shell started\n"
+msgstr "新しいシェルを起動します\n"
+
msgid "Vim: Error reading input, exiting...\n"
msgstr "Vim: 入力を読込み中のエラーにより終了します...\n"
+msgid "Used CUT_BUFFER0 instead of empty selection"
+msgstr "空の選択領域のかわりにCUT_BUFFER0が使用されました"
+
#. This happens when the FileChangedRO autocommand changes the
#. * file in a way it becomes shorter.
-#: ../undo.c:379
msgid "E881: Line count changed unexpectedly"
msgstr "E881: 予期せず行カウントが変わりました"
-#: ../undo.c:627
+#. must display the prompt
+msgid "No undo possible; continue anyway"
+msgstr "可能なアンドゥはありません: とりあえず続けます"
+
#, c-format
msgid "E828: Cannot open undo file for writing: %s"
msgstr "E828: 書込み用にアンドゥファイルを開けません: %s"
-#: ../undo.c:717
#, c-format
msgid "E825: Corrupted undo file (%s): %s"
msgstr "E825: アンドゥファイルが壊れています (%s): %s"
-#: ../undo.c:1039
msgid "Cannot write undo file in any directory in 'undodir'"
msgstr "'undodir'のディレクトリにアンドゥファイルを書き込めません"
-#: ../undo.c:1074
#, c-format
msgid "Will not overwrite with undo file, cannot read: %s"
msgstr "アンドゥファイルとして読み込めないので上書きしません: %s"
-#: ../undo.c:1092
#, c-format
msgid "Will not overwrite, this is not an undo file: %s"
msgstr "アンドゥファイルではないので上書きしません: %s"
-#: ../undo.c:1108
msgid "Skipping undo file write, nothing to undo"
msgstr "対象がないのでアンドゥファイルの書き込みをスキップします"
-#: ../undo.c:1121
#, c-format
msgid "Writing undo file: %s"
msgstr "アンドゥファイル書き込み中: %s"
-#: ../undo.c:1213
#, c-format
msgid "E829: write error in undo file: %s"
msgstr "E829: アンドゥファイルの書き込みエラーです: %s"
-#: ../undo.c:1280
#, c-format
msgid "Not reading undo file, owner differs: %s"
msgstr "オーナーが異なるのでアンドゥファイルを読み込みません: %s"
-#: ../undo.c:1292
#, c-format
msgid "Reading undo file: %s"
msgstr "アンドゥファイル読込中: %s"
-#: ../undo.c:1299
#, c-format
msgid "E822: Cannot open undo file for reading: %s"
msgstr "E822: アンドゥファイルを読込用として開けません: %s"
-#: ../undo.c:1308
#, c-format
msgid "E823: Not an undo file: %s"
msgstr "E823: アンドゥファイルではありません: %s"
-#: ../undo.c:1313
+#, c-format
+msgid "E832: Non-encrypted file has encrypted undo file: %s"
+msgstr "E832: 非暗号化ファイルが暗号化されたアンドゥファイルを使ってます: %s"
+
+#, c-format
+msgid "E826: Undo file decryption failed: %s"
+msgstr "E826: 暗号化されたアンドゥファイルの解読に失敗しました: %s"
+
+#, c-format
+msgid "E827: Undo file is encrypted: %s"
+msgstr "E827: アンドゥファイルが暗号化されています: %s"
+
#, c-format
msgid "E824: Incompatible undo file: %s"
msgstr "E824: 互換性の無いアンドゥファイルです: %s"
-#: ../undo.c:1328
msgid "File contents changed, cannot use undo info"
msgstr "ファイルの内容が変わっているため、アンドゥ情報を利用できません"
-#: ../undo.c:1497
#, c-format
msgid "Finished reading undo file %s"
msgstr "アンドゥファイル %s の取込を完了"
-#: ../undo.c:1586 ../undo.c:1812
msgid "Already at oldest change"
msgstr "既に一番古い変更です"
-#: ../undo.c:1597 ../undo.c:1814
msgid "Already at newest change"
msgstr "既に一番新しい変更です"
-#: ../undo.c:1806
#, c-format
-msgid "E830: Undo number %<PRId64> not found"
-msgstr "E830: アンドゥ番号 %<PRId64> は見つかりません"
+msgid "E830: Undo number %ld not found"
+msgstr "E830: アンドゥ番号 %ld は見つかりません"
-#: ../undo.c:1979
msgid "E438: u_undo: line numbers wrong"
msgstr "E438: u_undo: 行番号が間違っています"
-#: ../undo.c:2183
msgid "more line"
msgstr "行 追加しました"
-#: ../undo.c:2185
msgid "more lines"
msgstr "行 追加しました"
-#: ../undo.c:2187
msgid "line less"
msgstr "行 削除しました"
-#: ../undo.c:2189
msgid "fewer lines"
msgstr "行 削除しました"
-#: ../undo.c:2193
msgid "change"
msgstr "箇所変更しました"
-#: ../undo.c:2195
msgid "changes"
msgstr "箇所変更しました"
-#: ../undo.c:2225
#, c-format
-msgid "%<PRId64> %s; %s #%<PRId64> %s"
-msgstr "%<PRId64> %s; %s #%<PRId64> %s"
+msgid "%ld %s; %s #%ld %s"
+msgstr "%ld %s; %s #%ld %s"
-#: ../undo.c:2228
msgid "before"
msgstr "前方"
-#: ../undo.c:2228
msgid "after"
msgstr "後方"
-#: ../undo.c:2325
msgid "Nothing to undo"
msgstr "アンドゥ対象がありません"
-#: ../undo.c:2330
msgid "number changes when saved"
msgstr "通番 変更数 変更時期 保存済"
-#: ../undo.c:2360
#, c-format
-msgid "%<PRId64> seconds ago"
-msgstr "%<PRId64> 秒経過しています"
+msgid "%ld seconds ago"
+msgstr "%ld 秒経過しています"
-#: ../undo.c:2372
msgid "E790: undojoin is not allowed after undo"
msgstr "E790: undo の直後に undojoin はできません"
-#: ../undo.c:2466
msgid "E439: undo list corrupt"
msgstr "E439: アンドゥリストが壊れています"
-#: ../undo.c:2495
msgid "E440: undo line missing"
msgstr "E440: アンドゥ行がありません"
-#: ../version.c:600
+#, c-format
+msgid "E122: Function %s already exists, add ! to replace it"
+msgstr "E122: 関数 %s は定義済です, 再定義するには ! を追加してください"
+
+msgid "E717: Dictionary entry already exists"
+msgstr "E717: 辞書型内にエントリが既に存在します"
+
+msgid "E718: Funcref required"
+msgstr "E718: 関数参照型が要求されます"
+
+#, c-format
+msgid "E130: Unknown function: %s"
+msgstr "E130: 未知の関数です: %s"
+
+#, c-format
+msgid "E125: Illegal argument: %s"
+msgstr "E125: 不正な引数です: %s"
+
+#, c-format
+msgid "E853: Duplicate argument name: %s"
+msgstr "E853: 引数名が重複しています: %s"
+
+#, c-format
+msgid "E740: Too many arguments for function %s"
+msgstr "E740: 関数の引数が多過ぎます: %s"
+
+#, c-format
+msgid "E116: Invalid arguments for function %s"
+msgstr "E116: 関数の無効な引数です: %s"
+
+msgid "E132: Function call depth is higher than 'maxfuncdepth'"
+msgstr "E132: 関数呼出の入れ子数が 'maxfuncdepth' を超えました"
+
+#, c-format
+msgid "calling %s"
+msgstr "%s を実行中です"
+
+#, c-format
+msgid "%s aborted"
+msgstr "%s が中断されました"
+
+#, c-format
+msgid "%s returning #%ld"
+msgstr "%s が #%ld を返しました"
+
+#, c-format
+msgid "%s returning %s"
+msgstr "%s が %s を返しました"
+
+msgid "E699: Too many arguments"
+msgstr "E699: 引数が多過ぎます"
+
+#, c-format
+msgid "E117: Unknown function: %s"
+msgstr "E117: 未知の関数です: %s"
+
+#, c-format
+msgid "E933: Function was deleted: %s"
+msgstr "E933: 関数は削除されました: %s"
+
+#, c-format
+msgid "E119: Not enough arguments for function: %s"
+msgstr "E119: 関数の引数が足りません: %s"
+
+#, c-format
+msgid "E120: Using <SID> not in a script context: %s"
+msgstr "E120: スクリプト以外で<SID>が使われました: %s"
+
+#, c-format
+msgid "E725: Calling dict function without Dictionary: %s"
+msgstr "E725: 辞書用関数が呼ばれましたが辞書がありません: %s"
+
+msgid "E129: Function name required"
+msgstr "E129: 関数名が要求されます"
+
+#, c-format
+msgid "E128: Function name must start with a capital or \"s:\": %s"
+msgstr "E128: 関数名は大文字か \"s:\" で始まらなければなりません: %s"
+
+#, c-format
+msgid "E884: Function name cannot contain a colon: %s"
+msgstr "E884: 関数名にはコロンは含められません: %s"
+
+#, c-format
+msgid "E123: Undefined function: %s"
+msgstr "E123: 未定義の関数です: %s"
+
+#, c-format
+msgid "E124: Missing '(': %s"
+msgstr "E124: '(' がありません: %s"
+
+msgid "E862: Cannot use g: here"
+msgstr "E862: ここでは g: は使えません"
+
+#, c-format
+msgid "E932: Closure function should not be at top level: %s"
+msgstr "E932: クロージャー関数はトップレベルに記述できません: %s"
+
+msgid "E126: Missing :endfunction"
+msgstr "E126: :endfunction がありません"
+
+#, c-format
+msgid "E707: Function name conflicts with variable: %s"
+msgstr "E707: 関数名が変数名と衝突します: %s"
+
+#, c-format
+msgid "E127: Cannot redefine function %s: It is in use"
+msgstr "E127: 関数 %s を再定義できません: 使用中です"
+
+#, c-format
+msgid "E746: Function name does not match script file name: %s"
+msgstr "E746: 関数名がスクリプトのファイル名と一致しません: %s"
+
+#, c-format
+msgid "E131: Cannot delete function %s: It is in use"
+msgstr "E131: 関数 %s を削除できません: 使用中です"
+
+msgid "E133: :return not inside a function"
+msgstr "E133: 関数外に :return がありました"
+
+#, c-format
+msgid "E107: Missing parentheses: %s"
+msgstr "E107: カッコ '(' がありません: %s"
+
+#. Only MS VC 4.1 and earlier can do Win32s
+msgid ""
+"\n"
+"MS-Windows 16/32-bit GUI version"
+msgstr ""
+"\n"
+"MS-Windows 16/32 ビット GUI 版"
+
+msgid ""
+"\n"
+"MS-Windows 64-bit GUI version"
+msgstr ""
+"\n"
+"MS-Windows 64 ビット GUI 版"
+
+msgid ""
+"\n"
+"MS-Windows 32-bit GUI version"
+msgstr ""
+"\n"
+"MS-Windows 32 ビット GUI 版"
+
+msgid " with OLE support"
+msgstr " with OLE サポート"
+
+msgid ""
+"\n"
+"MS-Windows 64-bit console version"
+msgstr ""
+"\n"
+"MS-Windows 64 ビット コンソール 版"
+
+msgid ""
+"\n"
+"MS-Windows 32-bit console version"
+msgstr ""
+"\n"
+"MS-Windows 32 ビット コンソール 版"
+
+msgid ""
+"\n"
+"MacOS X (unix) version"
+msgstr ""
+"\n"
+"MacOS X (unix) 版"
+
+msgid ""
+"\n"
+"MacOS X version"
+msgstr ""
+"\n"
+"MacOS X 版"
+
+msgid ""
+"\n"
+"MacOS version"
+msgstr ""
+"\n"
+"MacOS 版"
+
+msgid ""
+"\n"
+"OpenVMS version"
+msgstr ""
+"\n"
+"OpenVMS 版"
+
msgid ""
"\n"
"Included patches: "
@@ -6294,7 +6039,6 @@ msgstr ""
"\n"
"適用済パッチ: "
-#: ../version.c:627
msgid ""
"\n"
"Extra patches: "
@@ -6302,11 +6046,9 @@ msgstr ""
"\n"
"追加拡張パッチ: "
-#: ../version.c:639 ../version.c:864
msgid "Modified by "
msgstr "Modified by "
-#: ../version.c:646
msgid ""
"\n"
"Compiled "
@@ -6314,11 +6056,9 @@ msgstr ""
"\n"
"Compiled "
-#: ../version.c:649
msgid "by "
msgstr "by "
-#: ../version.c:660
msgid ""
"\n"
"Huge version "
@@ -6326,1886 +6066,926 @@ msgstr ""
"\n"
"Huge 版 "
-#: ../version.c:661
+msgid ""
+"\n"
+"Big version "
+msgstr ""
+"\n"
+"Big 版 "
+
+msgid ""
+"\n"
+"Normal version "
+msgstr ""
+"\n"
+"通常 版 "
+
+msgid ""
+"\n"
+"Small version "
+msgstr ""
+"\n"
+"Small 版 "
+
+msgid ""
+"\n"
+"Tiny version "
+msgstr ""
+"\n"
+"Tiny 版 "
+
msgid "without GUI."
msgstr "without GUI."
-#: ../version.c:662
+msgid "with GTK3 GUI."
+msgstr "with GTK3 GUI."
+
+msgid "with GTK2-GNOME GUI."
+msgstr "with GTK2-GNOME GUI."
+
+msgid "with GTK2 GUI."
+msgstr "with GTK2 GUI."
+
+msgid "with X11-Motif GUI."
+msgstr "with X11-Motif GUI."
+
+msgid "with X11-neXtaw GUI."
+msgstr "with X11-neXtaw GUI."
+
+msgid "with X11-Athena GUI."
+msgstr "with X11-Athena GUI."
+
+msgid "with Photon GUI."
+msgstr "with Photon GUI."
+
+msgid "with GUI."
+msgstr "with GUI."
+
+msgid "with Carbon GUI."
+msgstr "with Carbon GUI."
+
+msgid "with Cocoa GUI."
+msgstr "with Cocoa GUI."
+
+msgid "with (classic) GUI."
+msgstr "with (クラシック) GUI."
+
msgid " Features included (+) or not (-):\n"
msgstr " 機能の一覧 有効(+)/無効(-)\n"
-#: ../version.c:667
msgid " system vimrc file: \""
msgstr " システム vimrc: \""
-#: ../version.c:672
msgid " user vimrc file: \""
msgstr " ユーザー vimrc: \""
-#: ../version.c:677
msgid " 2nd user vimrc file: \""
msgstr " 第2ユーザー vimrc: \""
-#: ../version.c:682
msgid " 3rd user vimrc file: \""
msgstr " 第3ユーザー vimrc: \""
-#: ../version.c:687
msgid " user exrc file: \""
msgstr " ユーザー exrc: \""
-#: ../version.c:692
msgid " 2nd user exrc file: \""
msgstr " 第2ユーザー exrc: \""
-#: ../version.c:699
+msgid " system gvimrc file: \""
+msgstr " システム gvimrc: \""
+
+msgid " user gvimrc file: \""
+msgstr " ユーザー gvimrc: \""
+
+msgid "2nd user gvimrc file: \""
+msgstr " 第2ユーザー gvimrc: \""
+
+msgid "3rd user gvimrc file: \""
+msgstr " 第3ユーザー gvimrc: \""
+
+msgid " defaults file: \""
+msgstr " デフォルトファイル: \""
+
+msgid " system menu file: \""
+msgstr " システムメニュー: \""
+
msgid " fall-back for $VIM: \""
msgstr " 省略時の $VIM: \""
-#: ../version.c:705
msgid " f-b for $VIMRUNTIME: \""
msgstr "省略時の $VIMRUNTIME: \""
-#: ../version.c:709
msgid "Compilation: "
msgstr "コンパイル: "
-#: ../version.c:712
+msgid "Compiler: "
+msgstr "コンパイラ: "
+
msgid "Linking: "
msgstr "リンク: "
-#: ../version.c:717
msgid " DEBUG BUILD"
msgstr "デバッグビルド"
-#: ../version.c:767
msgid "VIM - Vi IMproved"
msgstr "VIM - Vi IMproved"
-#: ../version.c:769
msgid "version "
msgstr "version "
-#: ../version.c:770
msgid "by Bram Moolenaar et al."
msgstr "by Bram Moolenaar 他."
-#: ../version.c:774
msgid "Vim is open source and freely distributable"
msgstr "Vim はオープンソースであり自由に配布可能です"
-#: ../version.c:776
msgid "Help poor children in Uganda!"
msgstr "ウガンダの恵まれない子供たちに援助を!"
-#: ../version.c:777
msgid "type :help iccf<Enter> for information "
msgstr "詳細な情報は :help iccf<Enter> "
-#: ../version.c:779
msgid "type :q<Enter> to exit "
msgstr "終了するには :q<Enter> "
-#: ../version.c:780
msgid "type :help<Enter> or <F1> for on-line help"
msgstr "オンラインヘルプは :help<Enter> か <F1> "
-#: ../version.c:781
-msgid "type :help version7<Enter> for version info"
-msgstr "バージョン情報は :help version7<Enter> "
+msgid "type :help version8<Enter> for version info"
+msgstr "バージョン情報は :help version8<Enter> "
-#: ../version.c:784
msgid "Running in Vi compatible mode"
msgstr "Vi互換モードで動作中"
-#: ../version.c:785
msgid "type :set nocp<Enter> for Vim defaults"
msgstr "Vim推奨値にするには :set nocp<Enter> "
-#: ../version.c:786
msgid "type :help cp-default<Enter> for info on this"
msgstr "詳細な情報は :help cp-default<Enter>"
-#: ../version.c:827
+msgid "menu Help->Orphans for information "
+msgstr "詳細はメニューの ヘルプ->孤児 を参照して下さい "
+
+msgid "Running modeless, typed text is inserted"
+msgstr "モード無で実行中, タイプした文字が挿入されます"
+
+msgid "menu Edit->Global Settings->Toggle Insert Mode "
+msgstr "メニューの 編集->全体設定->挿入(初心者)モード切替 "
+
+msgid " for two modes "
+msgstr " でモード有に "
+
+msgid "menu Edit->Global Settings->Toggle Vi Compatible"
+msgstr "メニューの 編集->全体設定->Vi互換モード切替 "
+
+msgid " for Vim defaults "
+msgstr " でVimとして動作 "
+
msgid "Sponsor Vim development!"
msgstr "Vimの開発を応援してください!"
-#: ../version.c:828
msgid "Become a registered Vim user!"
msgstr "Vimの登録ユーザーになってください!"
-#: ../version.c:831
msgid "type :help sponsor<Enter> for information "
msgstr "詳細な情報は :help sponsor<Enter> "
-#: ../version.c:832
msgid "type :help register<Enter> for information "
msgstr "詳細な情報は :help register<Enter> "
-#: ../version.c:834
msgid "menu Help->Sponsor/Register for information "
msgstr "詳細はメニューの ヘルプ->スポンサー/登録 を参照して下さい"
-#: ../window.c:119
+msgid "WARNING: Windows 95/98/ME detected"
+msgstr "警告: Windows 95/98/ME を検出しました"
+
+msgid "type :help windows95<Enter> for info on this"
+msgstr "詳細な情報は :help windows95<Enter>"
+
msgid "Already only one window"
msgstr "既にウィンドウは1つしかありません"
-#: ../window.c:224
msgid "E441: There is no preview window"
msgstr "E441: プレビューウィンドウがありません"
-#: ../window.c:559
msgid "E442: Can't split topleft and botright at the same time"
msgstr "E442: 左上と右下を同時に分割することはできません"
-#: ../window.c:1228
msgid "E443: Cannot rotate when another window is split"
msgstr "E443: 他のウィンドウが分割されている時には順回できません"
-#: ../window.c:1803
msgid "E444: Cannot close last window"
msgstr "E444: 最後のウィンドウを閉じることはできません"
-#: ../window.c:1810
msgid "E813: Cannot close autocmd window"
msgstr "E813: autocmdウィンドウは閉じられません"
-#: ../window.c:1814
msgid "E814: Cannot close window, only autocmd window would remain"
msgstr "E814: autocmdウィンドウしか残らないため、ウィンドウは閉じられません"
-#: ../window.c:2717
msgid "E445: Other window contains changes"
msgstr "E445: 他のウィンドウには変更があります"
-#: ../window.c:4805
msgid "E446: No file name under cursor"
msgstr "E446: カーソルの下にファイル名がありません"
-msgid "List or number required"
-msgstr "リストか数値が必要です"
-
-#~ msgid "E831: bf_key_init() called with empty password"
-#~ msgstr "E831: bf_key_init() が空パスワードで呼び出されました"
-
-#~ msgid "E820: sizeof(uint32_t) != 4"
-#~ msgstr "E820: sizeof(uint32_t) != 4"
-
-#~ msgid "E817: Blowfish big/little endian use wrong"
-#~ msgstr "E817: Blowfish暗号のビッグ/リトルエンディアンが間違っています"
-
-#~ msgid "E818: sha256 test failed"
-#~ msgstr "E818: sha256のテストに失敗しました"
-
-#~ msgid "E819: Blowfish test failed"
-#~ msgstr "E819: Blowfish暗号のテストに失敗しました"
-
-#~ msgid "Patch file"
-#~ msgstr "パッチファイル"
-
-#~ msgid ""
-#~ "&OK\n"
-#~ "&Cancel"
-#~ msgstr ""
-#~ "決定(&O)\n"
-#~ "キャンセル(&C)"
-
-#~ msgid "E240: No connection to Vim server"
-#~ msgstr "E240: Vim サーバへの接続がありません"
-
-#~ msgid "E241: Unable to send to %s"
-#~ msgstr "E241: %s へ送ることができません"
-
-#~ msgid "E277: Unable to read a server reply"
-#~ msgstr "E277: サーバの応答がありません"
-
-#~ msgid "E258: Unable to send to client"
-#~ msgstr "E258: クライアントへ送ることができません"
-
-#~ msgid "Save As"
-#~ msgstr "別名で保存"
-
-#~ msgid "Edit File"
-#~ msgstr "ファイルを編集"
-
-# Added at 27-Jan-2004.
-#~ msgid " (NOT FOUND)"
-#~ msgstr " (見つかりません)"
-
-#~ msgid "Source Vim script"
-#~ msgstr "Vimスクリプトの取込み"
-
-#~ msgid "unknown"
-#~ msgstr "不明"
-
-#~ msgid "Edit File in new window"
-#~ msgstr "新しいウィンドウでファイルを編集します"
-
-#~ msgid "Append File"
-#~ msgstr "追加ファイル"
-
-#~ msgid "Window position: X %d, Y %d"
-#~ msgstr "ウィンドウ位置: X %d, Y %d"
-
-#~ msgid "Save Redirection"
-#~ msgstr "リダイレクトを保存します"
-
-#~ msgid "Save View"
-#~ msgstr "ビューを保存します"
-
-#~ msgid "Save Session"
-#~ msgstr "セッション情報を保存します"
-
-#~ msgid "Save Setup"
-#~ msgstr "設定を保存します"
-
-#~ msgid "E809: #< is not available without the +eval feature"
-#~ msgstr "E809: #< は +eval 機能が無いと利用できません"
-
-#~ msgid "E196: No digraphs in this version"
-#~ msgstr "E196: このバージョンに合字はありません"
-
-#~ msgid "is a device (disabled with 'opendevice' option)"
-#~ msgstr " はデバイスです ('opendevice' オプションで回避できます)"
-
-#~ msgid "Reading from stdin..."
-#~ msgstr "標準入力から読込み中..."
-
-#~ msgid "[blowfish]"
-#~ msgstr "[blowfish暗号化]"
-
-#~ msgid "[crypted]"
-#~ msgstr "[暗号化]"
-
-#~ msgid "E821: File is encrypted with unknown method"
-#~ msgstr "E821: ファイルが未知の方法で暗号化されています"
-
-# Added at 19-Jan-2004.
-#~ msgid "NetBeans disallows writes of unmodified buffers"
-#~ msgstr "NetBeansは未変更のバッファを上書することは許可していません"
-
-#~ msgid "Partial writes disallowed for NetBeans buffers"
-#~ msgstr "NetBeansバッファの一部を書き出すことはできません"
-
-#~ msgid "writing to device disabled with 'opendevice' option"
-#~ msgstr "'opendevice' オプションによりデバイスへの書き込みはできません"
-
-#~ msgid "E460: The resource fork would be lost (add ! to override)"
-#~ msgstr "E460: リソースフォークが失われるかもしれません (! を追加で強制)"
-
-#~ msgid "E851: Failed to create a new process for the GUI"
-#~ msgstr "E851: GUI用のプロセスの起動に失敗しました"
-
-#~ msgid "E852: The child process failed to start the GUI"
-#~ msgstr "E852: 子プロセスがGUIの起動に失敗しました"
-
-#~ msgid "E229: Cannot start the GUI"
-#~ msgstr "E229: GUIを開始できません"
-
-#~ msgid "E230: Cannot read from \"%s\""
-#~ msgstr "E230: \"%s\"から読込むことができません"
-
-#~ msgid "E665: Cannot start GUI, no valid font found"
-#~ msgstr "E665: 有効なフォントが見つからないので, GUIを開始できません"
-
-#~ msgid "E231: 'guifontwide' invalid"
-#~ msgstr "E231: 'guifontwide' が無効です"
-
-#~ msgid "E599: Value of 'imactivatekey' is invalid"
-#~ msgstr "E599: 'imactivatekey' に設定された値が無効です"
-
-#~ msgid "E254: Cannot allocate color %s"
-#~ msgstr "E254: %s の色を割り当てられません"
-
-#~ msgid "No match at cursor, finding next"
-#~ msgstr "カーソルの位置にマッチはありません, 次を検索しています"
-
-#~ msgid "<cannot open> "
-#~ msgstr "<開けません> "
-
-#~ msgid "E616: vim_SelFile: can't get font %s"
-#~ msgstr "E616: vim_SelFile: フォント %s を取得できません"
-
-#~ msgid "E614: vim_SelFile: can't return to current directory"
-#~ msgstr "E614: vim_SelFile: 現在のディレクトリに戻れません"
-
-#~ msgid "Pathname:"
-#~ msgstr "パス名:"
-
-#~ msgid "E615: vim_SelFile: can't get current directory"
-#~ msgstr "E615: vim_SelFile: 現在のディレクトリを取得できません"
-
-#~ msgid "OK"
-#~ msgstr "OK"
-
-#~ msgid "Cancel"
-#~ msgstr "キャンセル"
-
-#~ msgid "Scrollbar Widget: Could not get geometry of thumb pixmap."
-#~ msgstr "スクロールバー: 画像を取得できませんでした."
-
-#~ msgid "Vim dialog"
-#~ msgstr "Vim ダイアログ"
-
-#~ msgid "E232: Cannot create BalloonEval with both message and callback"
-#~ msgstr "E232: メッセージとコールバックのある BalloonEval を作成できません"
-
-#~ msgid "Input _Methods"
-#~ msgstr "インプットメソッド"
-
-#~ msgid "VIM - Search and Replace..."
-#~ msgstr "VIM - 検索と置換..."
-
-#~ msgid "VIM - Search..."
-#~ msgstr "VIM - 検索..."
-
-#~ msgid "Find what:"
-#~ msgstr "検索文字列:"
-
-#~ msgid "Replace with:"
-#~ msgstr "置換文字列:"
-
-#~ msgid "Match whole word only"
-#~ msgstr "正確に該当するものだけ"
-
-#~ msgid "Match case"
-#~ msgstr "大文字/小文字を区別する"
-
-#~ msgid "Direction"
-#~ msgstr "方向"
-
-#~ msgid "Up"
-#~ msgstr "上"
-
-#~ msgid "Down"
-#~ msgstr "下"
-
-#~ msgid "Find Next"
-#~ msgstr "次を検索"
-
-#~ msgid "Replace"
-#~ msgstr "置換"
-
-#~ msgid "Replace All"
-#~ msgstr "全て置換"
-
-#~ msgid "Vim: Received \"die\" request from session manager\n"
-#~ msgstr "Vim: セッションマネージャから \"die\" 要求を受け取りました\n"
-
-#~ msgid "Close"
-#~ msgstr "閉じる"
-
-#~ msgid "New tab"
-#~ msgstr "新規タブページ"
-
-#~ msgid "Open Tab..."
-#~ msgstr "タブページを開く..."
-
-#~ msgid "Vim: Main window unexpectedly destroyed\n"
-#~ msgstr "Vim: メインウィンドウが不意に破壊されました\n"
-
-#~ msgid "&Filter"
-#~ msgstr "フィルタ(&F)"
-
-#~ msgid "&Cancel"
-#~ msgstr "キャンセル(&C)"
-
-#~ msgid "Directories"
-#~ msgstr "ディレクトリ"
-
-#~ msgid "Filter"
-#~ msgstr "フィルタ"
-
-#~ msgid "&Help"
-#~ msgstr "ヘルプ(&H)"
-
-#~ msgid "Files"
-#~ msgstr "ファイル"
-
-#~ msgid "&OK"
-#~ msgstr "&OK"
-
-#~ msgid "Selection"
-#~ msgstr "選択"
-
-#~ msgid "Find &Next"
-#~ msgstr "次を検索(&N)"
-
-#~ msgid "&Replace"
-#~ msgstr "置換(&R)"
-
-#~ msgid "Replace &All"
-#~ msgstr "全て置換(&A)"
-
-#~ msgid "&Undo"
-#~ msgstr "アンドゥ(&U)"
-
-#~ msgid "E671: Cannot find window title \"%s\""
-#~ msgstr "E671: タイトルが \"%s\" のウィンドウは見つかりません"
-
-#~ msgid "E243: Argument not supported: \"-%s\"; Use the OLE version."
-#~ msgstr "E243: 引数はサポートされません: \"-%s\"; OLE版を使用してください."
-
-#~ msgid "E672: Unable to open window inside MDI application"
-#~ msgstr "E672: MDIアプリの中ではウィンドウを開けません"
-
-#~ msgid "Close tab"
-#~ msgstr "タブページを閉じる"
-
-#~ msgid "Open tab..."
-#~ msgstr "タブページを開く"
-
-#~ msgid "Find string (use '\\\\' to find a '\\')"
-#~ msgstr "検索文字列 ('\\' を検索するには '\\\\')"
-
-#~ msgid "Find & Replace (use '\\\\' to find a '\\')"
-#~ msgstr "検索・置換 ('\\' を検索するには '\\\\')"
-
-#~ msgid "Not Used"
-#~ msgstr "使われません"
-
-#~ msgid "Directory\t*.nothing\n"
-#~ msgstr "ディレクトリ\t*.nothing\n"
-
-#~ msgid ""
-#~ "Vim E458: Cannot allocate colormap entry, some colors may be incorrect"
-#~ msgstr "Vim E458: 色指定が正しくないのでエントリを割り当てられません"
-
-#~ msgid "E250: Fonts for the following charsets are missing in fontset %s:"
-#~ msgstr "E250: 以下の文字セットのフォントがありません %s:"
-
-#~ msgid "E252: Fontset name: %s"
-#~ msgstr "E252: フォントセット名: %s"
-
-#~ msgid "Font '%s' is not fixed-width"
-#~ msgstr "フォント '%s' は固定幅ではありません"
-
-#~ msgid "E253: Fontset name: %s"
-#~ msgstr "E253: フォントセット名: %s"
-
-#~ msgid "Font0: %s"
-#~ msgstr "フォント0: %s"
-
-#~ msgid "Font1: %s"
-#~ msgstr "フォント1: %s"
-
-#~ msgid "Font%<PRId64> width is not twice that of font0"
-#~ msgstr "フォント%<PRId64> の幅がフォント0の2倍ではありません"
-
-#~ msgid "Font0 width: %<PRId64>"
-#~ msgstr "フォント0の幅: %<PRId64>"
-
-#~ msgid "Font1 width: %<PRId64>"
-#~ msgstr "フォント1の幅: %<PRId64>"
-
-#~ msgid "Invalid font specification"
-#~ msgstr "無効なフォント指定です"
-
-#~ msgid "&Dismiss"
-#~ msgstr "却下する(&D)"
-
-#~ msgid "no specific match"
-#~ msgstr "マッチするものがありません"
-
-#~ msgid "Vim - Font Selector"
-#~ msgstr "Vim - フォント選択"
-
-#~ msgid "Name:"
-#~ msgstr "名前:"
-
-#~ msgid "Show size in Points"
-#~ msgstr "サイズをポイントで表示する"
-
-#~ msgid "Encoding:"
-#~ msgstr "エンコード:"
-
-#~ msgid "Font:"
-#~ msgstr "フォント:"
-
-#~ msgid "Style:"
-#~ msgstr "スタイル:"
-
-#~ msgid "Size:"
-#~ msgstr "サイズ:"
-
-#~ msgid "E256: Hangul automata ERROR"
-#~ msgstr "E256: ハングルオートマトンエラー"
-
-#~ msgid "E563: stat error"
-#~ msgstr "E563: stat エラー"
-
-#~ msgid "E625: cannot open cscope database: %s"
-#~ msgstr "E625: cscopeデータベース: %s を開くことができません"
-
-#~ msgid "E626: cannot get cscope database information"
-#~ msgstr "E626: cscopeデータベースの情報を取得できません"
-
-#~ msgid "Lua library cannot be loaded."
-#~ msgstr "Luaライブラリをロードできません."
-
-#~ msgid "cannot save undo information"
-#~ msgstr "アンドゥ情報が保存できません"
-
-#~ msgid ""
-#~ "E815: Sorry, this command is disabled, the MzScheme libraries could not "
-#~ "be loaded."
-#~ msgstr ""
-#~ "E815: このコマンドは無効です. MzScheme ライブラリをロードできません."
-
-#~ msgid "invalid expression"
-#~ msgstr "無効な式です"
-
-#~ msgid "expressions disabled at compile time"
-#~ msgstr "式はコンパイル時に無効にされています"
-
-#~ msgid "hidden option"
-#~ msgstr "隠しオプション"
-
-#~ msgid "unknown option"
-#~ msgstr "未知のオプションです"
-
-#~ msgid "window index is out of range"
-#~ msgstr "範囲外のウィンドウ番号です"
-
-#~ msgid "couldn't open buffer"
-#~ msgstr "バッファを開けません"
-
-#~ msgid "cannot delete line"
-#~ msgstr "行を消せません"
-
-#~ msgid "cannot replace line"
-#~ msgstr "行を置換できません"
-
-#~ msgid "cannot insert line"
-#~ msgstr "行を挿入できません"
-
-#~ msgid "string cannot contain newlines"
-#~ msgstr "文字列には改行文字を含められません"
-
-#~ msgid "error converting Scheme values to Vim"
-#~ msgstr "Scheme値のVimへの変換エラー"
-
-#~ msgid "Vim error: ~a"
-#~ msgstr "Vim エラー: ~a"
-
-#~ msgid "Vim error"
-#~ msgstr "Vim エラー"
-
-#~ msgid "buffer is invalid"
-#~ msgstr "バッファは無効です"
-
-#~ msgid "window is invalid"
-#~ msgstr "ウィンドウは無効です"
-
-#~ msgid "linenr out of range"
-#~ msgstr "範囲外の行番号です"
-
-#~ msgid "not allowed in the Vim sandbox"
-#~ msgstr "サンドボックスでは許されません"
-
-#~ msgid "E370: Could not load library %s"
-#~ msgstr "E370: ライブラリ %s をロードできませんでした"
-
-#~ msgid ""
-#~ "Sorry, this command is disabled: the Perl library could not be loaded."
-#~ msgstr ""
-#~ "このコマンドは無効です, ごめんなさい: Perlライブラリをロードできませんでし"
-#~ "た."
-
-#~ msgid "E299: Perl evaluation forbidden in sandbox without the Safe module"
-#~ msgstr ""
-#~ "E299: サンドボックスでは Safe モジュールを使用しないPerlスクリプトは禁じら"
-#~ "れています"
-
-#~ msgid "E836: This Vim cannot execute :python after using :py3"
-#~ msgstr "E836: このVimでは :py3 を使った後に :python を使えません"
-
-#~ msgid ""
-#~ "E263: Sorry, this command is disabled, the Python library could not be "
-#~ "loaded."
-#~ msgstr ""
-#~ "E263: このコマンドは無効です,ごめんなさい: Pythonライブラリをロードできま"
-#~ "せんでした."
-
-# Added at 07-Feb-2004.
-#~ msgid "E659: Cannot invoke Python recursively"
-#~ msgstr "E659: Python を再帰的に実行することはできません"
-
-#~ msgid "E837: This Vim cannot execute :py3 after using :python"
-#~ msgstr "E837: このVimでは :python を使った後に :py3 を使えません"
-
-#~ msgid "E265: $_ must be an instance of String"
-#~ msgstr "E265: $_ は文字列のインスタンスでなければなりません"
-
-#~ msgid ""
-#~ "E266: Sorry, this command is disabled, the Ruby library could not be "
-#~ "loaded."
-#~ msgstr ""
-#~ "E266: このコマンドは無効です,ごめんなさい: Rubyライブラリをロードできませ"
-#~ "んでした."
-
-#~ msgid "E267: unexpected return"
-#~ msgstr "E267: 予期せぬ return です"
-
-#~ msgid "E268: unexpected next"
-#~ msgstr "E268: 予期せぬ next です"
-
-#~ msgid "E269: unexpected break"
-#~ msgstr "E269: 予期せぬ break です"
-
-#~ msgid "E270: unexpected redo"
-#~ msgstr "E270: 予期せぬ redo です"
-
-#~ msgid "E271: retry outside of rescue clause"
-#~ msgstr "E271: rescue の外の retry です"
-
-#~ msgid "E272: unhandled exception"
-#~ msgstr "E272: 取り扱われなかった例外があります"
-
-#~ msgid "E273: unknown longjmp status %d"
-#~ msgstr "E273: 未知のlongjmp状態: %d"
-
-#~ msgid "Toggle implementation/definition"
-#~ msgstr "実装と定義を切り替える"
-
-#~ msgid "Show base class of"
-#~ msgstr "次のクラスの基底を表示"
-
-#~ msgid "Show overridden member function"
-#~ msgstr "オーバーライドされたメンバ関数を表示"
-
-#~ msgid "Retrieve from file"
-#~ msgstr "ファイルから回復する"
-
-#~ msgid "Retrieve from project"
-#~ msgstr "プロジェクトから回復する"
-
-#~ msgid "Retrieve from all projects"
-#~ msgstr "全てのプロジェクトから回復する"
-
-#~ msgid "Retrieve"
-#~ msgstr "回復"
-
-#~ msgid "Show source of"
-#~ msgstr "次のソースを表示する"
-
-#~ msgid "Find symbol"
-#~ msgstr "見つけたシンボル"
-
-#~ msgid "Browse class"
-#~ msgstr "クラスを参照"
-
-#~ msgid "Show class in hierarchy"
-#~ msgstr "階層でクラスを表示"
-
-#~ msgid "Show class in restricted hierarchy"
-#~ msgstr "限定された階層でクラスを表示"
-
-#~ msgid "Xref refers to"
-#~ msgstr "Xref の参照先"
-
-#~ msgid "Xref referred by"
-#~ msgstr "Xref が参照される"
-
-#~ msgid "Xref has a"
-#~ msgstr "Xref が次のものをもっています"
-
-#~ msgid "Xref used by"
-#~ msgstr "Xref が使用される"
-
-#~ msgid "Show docu of"
-#~ msgstr "次の文章を表示"
-
-#~ msgid "Generate docu for"
-#~ msgstr "次の文章を生成"
-
-#~ msgid ""
-#~ "Cannot connect to SNiFF+. Check environment (sniffemacs must be found in "
-#~ "$PATH).\n"
-#~ msgstr ""
-#~ "SNiFF+に接続できません. 環境をチェックしてください(sniffemacs が $PATH に"
-#~ "なければなりません).\n"
-
-#~ msgid "E274: Sniff: Error during read. Disconnected"
-#~ msgstr "E274: Sniff: 読込中にエラーが発生しました. 切断しました"
-
-#~ msgid "SNiFF+ is currently "
-#~ msgstr "現在SNiFF+ の状態は「"
-
-#~ msgid "not "
-#~ msgstr "未"
-
-#~ msgid "connected"
-#~ msgstr "接続」です"
-
-#~ msgid "E275: Unknown SNiFF+ request: %s"
-#~ msgstr "E275: 未知の SNiFF+ リクエストです: %s"
-
-#~ msgid "E276: Error connecting to SNiFF+"
-#~ msgstr "E276: SNiFF+ への接続中のエラーです"
-
-#~ msgid "E278: SNiFF+ not connected"
-#~ msgstr "E278: SNiFF+ に接続されていません"
-
-#~ msgid "E279: Not a SNiFF+ buffer"
-#~ msgstr "E279: SNiFF+ バッファがありません"
-
-#~ msgid "Sniff: Error during write. Disconnected"
-#~ msgstr "Sniff: 書込み中にエラーが発生したので切断しました"
-
-#~ msgid "invalid buffer number"
-#~ msgstr "無効なバッファ番号です"
-
-#~ msgid "not implemented yet"
-#~ msgstr "まだ実装されていません"
-
-#~ msgid "cannot set line(s)"
-#~ msgstr "行を設定できません"
-
-#~ msgid "invalid mark name"
-#~ msgstr "無効なマーク名です"
-
-#~ msgid "mark not set"
-#~ msgstr "マークは設定されていません"
-
-#~ msgid "row %d column %d"
-#~ msgstr "行 %d 列 %d"
-
-#~ msgid "cannot insert/append line"
-#~ msgstr "行の挿入/追加をできません"
-
-#~ msgid "line number out of range"
-#~ msgstr "範囲外の行番号です"
-
-#~ msgid "unknown flag: "
-#~ msgstr "未知のフラグ: "
-
-#~ msgid "unknown vimOption"
-#~ msgstr "未知の vimOption です"
-
-#~ msgid "keyboard interrupt"
-#~ msgstr "キーボード割込み"
-
-#~ msgid "vim error"
-#~ msgstr "vim エラー"
-
-#~ msgid "cannot create buffer/window command: object is being deleted"
-#~ msgstr ""
-#~ "バッファ/ウィンドウ作成コマンドを作成できません: オブジェクトが消去されて"
-#~ "いました"
-
-#~ msgid ""
-#~ "cannot register callback command: buffer/window is already being deleted"
-#~ msgstr ""
-#~ "コールバックコマンドを登録できません: バッファ/ウィンドウが既に消去されま"
-#~ "した"
-
-#~ msgid ""
-#~ "E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-"
-#~ "dev@vim.org"
-#~ msgstr ""
-#~ "E280: TCL 致命的エラー: reflist 汚染!? vim-dev@vim.org に報告してください"
-
-#~ msgid "cannot register callback command: buffer/window reference not found"
-#~ msgstr ""
-#~ "コールバックコマンドを登録できません: バッファ/ウィンドウの参照が見つかり"
-#~ "ません"
-
-#~ msgid ""
-#~ "E571: Sorry, this command is disabled: the Tcl library could not be "
-#~ "loaded."
-#~ msgstr ""
-#~ "E571: このコマンドは無効です,ごめんなさい: Tclライブラリをロードできません"
-#~ "でした."
-
-#~ msgid "E572: exit code %d"
-#~ msgstr "E572: 終了コード %d"
-
-#~ msgid "cannot get line"
-#~ msgstr "行を取得できません"
-
-#~ msgid "Unable to register a command server name"
-#~ msgstr "命令サーバの名前を登録できません"
-
-#~ msgid "E248: Failed to send command to the destination program"
-#~ msgstr "E248: 目的のプログラムへのコマンド送信に失敗しました"
-
-#~ msgid "E573: Invalid server id used: %s"
-#~ msgstr "E573: 無効なサーバIDが使われました: %s"
-
-#~ msgid "E251: VIM instance registry property is badly formed. Deleted!"
-#~ msgstr "E251: VIM 実体の登録プロパティが不正です. 消去しました!"
-
-#~ msgid "netbeans is not supported with this GUI\n"
-#~ msgstr "netbeans はこのGUIでは利用できません\n"
-
-#~ msgid "This Vim was not compiled with the diff feature."
-#~ msgstr "このVimにはdiff機能がありません(コンパイル時設定)."
-
-#~ msgid "'-nb' cannot be used: not enabled at compile time\n"
-#~ msgstr "'-nb' 使用不可能です: コンパイル時に無効にされています\n"
-
-#~ msgid "Vim: Error: Failure to start gvim from NetBeans\n"
-#~ msgstr "Vim: エラー: NetBeansからgvimをスタートできません\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "Where case is ignored prepend / to make flag upper case"
-#~ msgstr ""
-#~ "\n"
-#~ "大小文字が無視される場合は大文字にするために / を前置してください"
-
-#~ msgid "-register\t\tRegister this gvim for OLE"
-#~ msgstr "-register\t\tこのgvimをOLEとして登録する"
-
-#~ msgid "-unregister\t\tUnregister gvim for OLE"
-#~ msgstr "-unregister\t\tgvimのOLE登録を解除する"
-
-#~ msgid "-g\t\t\tRun using GUI (like \"gvim\")"
-#~ msgstr "-g\t\t\tGUIで起動する (\"gvim\" と同じ)"
-
-#~ msgid "-f or --nofork\tForeground: Don't fork when starting GUI"
-#~ msgstr "-f or --nofork\tフォアグラウンド: GUIを始めるときにforkしない"
-
-#~ msgid "-f\t\t\tDon't use newcli to open window"
-#~ msgstr "-f\t\t\tウィンドウを開くのに newcli を使用しない"
-
-#~ msgid "-dev <device>\t\tUse <device> for I/O"
-#~ msgstr "-dev <device>\t\tI/Oに <device> を使用する"
-
-#~ msgid "-U <gvimrc>\t\tUse <gvimrc> instead of any .gvimrc"
-#~ msgstr "-U <gvimrc>\t\t.gvimrcの代わりに <gvimrc> を使う"
-
-#~ msgid "-x\t\t\tEdit encrypted files"
-#~ msgstr "-x\t\t\t暗号化されたファイルを編集する"
-
-#~ msgid "-display <display>\tConnect vim to this particular X-server"
-#~ msgstr "-display <display>\tvimを指定した X サーバに接続する"
-
-#~ msgid "-X\t\t\tDo not connect to X server"
-#~ msgstr "-X\t\t\tXサーバに接続しない"
-
-#~ msgid "--remote <files>\tEdit <files> in a Vim server if possible"
-#~ msgstr "--remote <files>\t可能ならばVimサーバで <files> を編集する"
-
-#~ msgid "--remote-silent <files> Same, don't complain if there is no server"
-#~ msgstr "--remote-silent <files> 同上, サーバが無くても警告文を出力しない"
-
-#~ msgid ""
-#~ "--remote-wait <files> As --remote but wait for files to have been edited"
-#~ msgstr "--remote-wait <files>\t--remote後 ファイルの編集が終わるのを待つ"
-
-#~ msgid ""
-#~ "--remote-wait-silent <files> Same, don't complain if there is no server"
-#~ msgstr ""
-#~ "--remote-wait-silent <files> 同上, サーバが無くても警告文を出力しない"
-
-#~ msgid ""
-#~ "--remote-tab[-wait][-silent] <files> As --remote but use tab page per "
-#~ "file"
-#~ msgstr ""
-#~ "--remote-tab[-wait][-silent] <files> --remoteでファイル1つにつき1つのタブ"
-#~ "ページを開く"
-
-#~ msgid "--remote-send <keys>\tSend <keys> to a Vim server and exit"
-#~ msgstr "--remote-send <keys>\tVimサーバに <keys> を送信して終了する"
-
-#~ msgid ""
-#~ "--remote-expr <expr>\tEvaluate <expr> in a Vim server and print result"
-#~ msgstr "--remote-expr <expr>\tサーバで <expr> を実行して結果を表示する"
-
-#~ msgid "--serverlist\t\tList available Vim server names and exit"
-#~ msgstr "--serverlist\t\tVimサーバ名の一覧を表示して終了する"
-
-#~ msgid "--servername <name>\tSend to/become the Vim server <name>"
-#~ msgstr "--servername <name>\tVimサーバ <name> に送信/名前設定する"
-
-#~ msgid ""
-#~ "\n"
-#~ "Arguments recognised by gvim (Motif version):\n"
-#~ msgstr ""
-#~ "\n"
-#~ "gvimによって解釈される引数(Motifバージョン):\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "Arguments recognised by gvim (neXtaw version):\n"
-#~ msgstr ""
-#~ "\n"
-#~ "gvimによって解釈される引数(neXtawバージョン):\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "Arguments recognised by gvim (Athena version):\n"
-#~ msgstr ""
-#~ "\n"
-#~ "gvimによって解釈される引数(Athenaバージョン):\n"
-
-#~ msgid "-display <display>\tRun vim on <display>"
-#~ msgstr "-display <display>\t<display> でvimを実行する"
-
-#~ msgid "-iconic\t\tStart vim iconified"
-#~ msgstr "-iconic\t\t最小化した状態でvimを起動する"
-
-#~ msgid "-background <color>\tUse <color> for the background (also: -bg)"
-#~ msgstr "-background <color>\t背景色に <color> を使う(同義: -bg)"
-
-#~ msgid "-foreground <color>\tUse <color> for normal text (also: -fg)"
-#~ msgstr "-foreground <color>\t前景色に <color> を使う(同義: -fg)"
-
-#~ msgid "-font <font>\t\tUse <font> for normal text (also: -fn)"
-#~ msgstr "-font <font>\t\tテキスト表示に <font> を使う(同義: -fn)"
-
-#~ msgid "-boldfont <font>\tUse <font> for bold text"
-#~ msgstr "-boldfont <font>\t太字に <font> を使う"
-
-#~ msgid "-italicfont <font>\tUse <font> for italic text"
-#~ msgstr "-italicfont <for>\t斜体字に <font> を使う"
-
-#~ msgid "-geometry <geom>\tUse <geom> for initial geometry (also: -geom)"
-#~ msgstr "-geometry <geom>\t初期配置に <geom> を使う(同義: -geom)"
-
-#~ msgid "-borderwidth <width>\tUse a border width of <width> (also: -bw)"
-#~ msgstr "-borderwidth <width>\t境界の幅を <width> にする(同義: -bw)"
-
-#~ msgid ""
-#~ "-scrollbarwidth <width> Use a scrollbar width of <width> (also: -sw)"
-#~ msgstr ""
-#~ "-scrollbarwidth <width> スクロールバーの幅を <width> にする(同義: -sw)"
-
-#~ msgid "-menuheight <height>\tUse a menu bar height of <height> (also: -mh)"
-#~ msgstr ""
-#~ "-menuheight <height>\tメニューバーの高さを <height> にする(同義: -mh)"
-
-#~ msgid "-reverse\t\tUse reverse video (also: -rv)"
-#~ msgstr "-reverse\t\t反転映像を使用する(同義: -rv)"
-
-#~ msgid "+reverse\t\tDon't use reverse video (also: +rv)"
-#~ msgstr "+reverse\t\t反転映像を使用しない(同義: +rv)"
-
-#~ msgid "-xrm <resource>\tSet the specified resource"
-#~ msgstr "-xrm <resource>\t特定のリソースを使用する"
-
-#~ msgid ""
-#~ "\n"
-#~ "Arguments recognised by gvim (GTK+ version):\n"
-#~ msgstr ""
-#~ "\n"
-#~ "gvimによって解釈される引数(GTK+バージョン):\n"
-
-#~ msgid "-display <display>\tRun vim on <display> (also: --display)"
-#~ msgstr "-display <display>\t<display> でvimを実行する(同義: --display)"
-
-#~ msgid "--role <role>\tSet a unique role to identify the main window"
-#~ msgstr "--role <role>\tメインウィンドウを識別する一意な役割(role)を設定する"
-
-#~ msgid "--socketid <xid>\tOpen Vim inside another GTK widget"
-#~ msgstr "--socketid <xid>\t異なるGTK widgetでVimを開く"
-
-#~ msgid "--echo-wid\t\tMake gvim echo the Window ID on stdout"
-#~ msgstr "--echo-wid\t\tウィンドウIDを標準出力に出力する"
-
-#~ msgid "-P <parent title>\tOpen Vim inside parent application"
-#~ msgstr "-P <親のタイトル>\tVimを親アプリケーションの中で起動する"
-
-#~ msgid "--windowid <HWND>\tOpen Vim inside another win32 widget"
-#~ msgstr "--windowid <HWND>\t異なるWin32 widgetの内部にVimを開く"
-
-#~ msgid "No display"
-#~ msgstr "ディスプレイが見つかりません"
-
-#~ msgid ": Send failed.\n"
-#~ msgstr ": 送信に失敗しました.\n"
-
-#~ msgid ": Send failed. Trying to execute locally\n"
-#~ msgstr ": 送信に失敗しました. ローカルでの実行を試みています\n"
-
-#~ msgid "%d of %d edited"
-#~ msgstr "%d 個 (%d 個中) のファイルを編集しました"
-
-#~ msgid "No display: Send expression failed.\n"
-#~ msgstr "ディスプレイがありません: 式の送信に失敗しました.\n"
-
-#~ msgid ": Send expression failed.\n"
-#~ msgstr ": 式の送信に失敗しました.\n"
-
-#~ msgid "E543: Not a valid codepage"
-#~ msgstr "E543: 無効なコードページです"
-
-#~ msgid "E284: Cannot set IC values"
-#~ msgstr "E284: ICの値を設定できません"
-
-#~ msgid "E285: Failed to create input context"
-#~ msgstr "E285: インプットコンテキストの作成に失敗しました"
-
-#~ msgid "E286: Failed to open input method"
-#~ msgstr "E286: インプットメソッドのオープンに失敗しました"
-
-#~ msgid "E287: Warning: Could not set destroy callback to IM"
-#~ msgstr "E287: 警告: IMの破壊コールバックを設定できませんでした"
-
-#~ msgid "E288: input method doesn't support any style"
-#~ msgstr "E288: インプットメソッドはどんなスタイルもサポートしません"
-
-#~ msgid "E289: input method doesn't support my preedit type"
-#~ msgstr "E289: インプットメソッドは my preedit type をサポートしません"
+#, c-format
+msgid "E447: Can't find file \"%s\" in path"
+msgstr "E447: pathには \"%s\" というファイルがありません"
-#~ msgid "E843: Error while updating swap file crypt"
-#~ msgstr "E843: スワップファイルの暗号を更新中にエラーが発生しました"
+#, c-format
+msgid "E799: Invalid ID: %ld (must be greater than or equal to 1)"
+msgstr "E799: 無効な ID: %ld (1 以上でなければなりません)"
-#~ msgid ""
-#~ "E833: %s is encrypted and this version of Vim does not support encryption"
-#~ msgstr ""
-#~ "E833: %s はこのバージョンのVimでサポートしていない形式で暗号化されています"
+#, c-format
+msgid "E801: ID already taken: %ld"
+msgstr "E801: ID はすでに利用中です: %ld"
-#~ msgid "Swap file is encrypted: \"%s\""
-#~ msgstr "スワップファイルは暗号化されています: \"%s\""
+msgid "List or number required"
+msgstr "リストか数値が必要です"
-#~ msgid ""
-#~ "\n"
-#~ "If you entered a new crypt key but did not write the text file,"
-#~ msgstr ""
-#~ "\n"
-#~ "新しい暗号キーを入力したあとにテキストファイルを保存していない場合は,"
+#, c-format
+msgid "E802: Invalid ID: %ld (must be greater than or equal to 1)"
+msgstr "E802: 無効な ID: %ld (1 以上でなければなりません)"
-#~ msgid ""
-#~ "\n"
-#~ "enter the new crypt key."
-#~ msgstr ""
-#~ "\n"
-#~ "新しい暗号キーを入力してください."
+#, c-format
+msgid "E803: ID not found: %ld"
+msgstr "E803: ID はありません: %ld"
-#~ msgid ""
-#~ "\n"
-#~ "If you wrote the text file after changing the crypt key press enter"
-#~ msgstr ""
-#~ "\n"
-#~ "暗号キーを変えたあとにテキストファイルを保存した場合は, テキストファイルと"
+#, c-format
+msgid "E370: Could not load library %s"
+msgstr "E370: ライブラリ %s をロードできませんでした"
-#~ msgid ""
-#~ "\n"
-#~ "to use the same key for text file and swap file"
-#~ msgstr ""
-#~ "\n"
-#~ "スワップファイルに同じ暗号キーを使うためにenterだけを押してください."
+msgid "Sorry, this command is disabled: the Perl library could not be loaded."
+msgstr ""
+"このコマンドは無効です, ごめんなさい: Perlライブラリをロードできませんでした."
-#~ msgid "Using crypt key from swap file for the text file.\n"
-#~ msgstr "スワップファイルから取得した暗号キーをテキストファイルに使います.\n"
+msgid "E299: Perl evaluation forbidden in sandbox without the Safe module"
+msgstr ""
+"E299: サンドボックスでは Safe モジュールを使用しないPerlスクリプトは禁じられ"
+"ています"
-#~ msgid ""
-#~ "\n"
-#~ " [not usable with this version of Vim]"
-#~ msgstr ""
-#~ "\n"
-#~ " [このVimバージョンでは使用できません]"
+msgid "Edit with &multiple Vims"
+msgstr "複数のVimで編集する (&M)"
-#~ msgid "Tear off this menu"
-#~ msgstr "このメニューを切り取る"
+msgid "Edit with single &Vim"
+msgstr "1つのVimで編集する (&V)"
-#~ msgid "Select Directory dialog"
-#~ msgstr "ディレクトリ選択ダイアログ"
+msgid "Diff with Vim"
+msgstr "Vimで差分を表示する"
-#~ msgid "Save File dialog"
-#~ msgstr "ファイル保存ダイアログ"
+msgid "Edit with &Vim"
+msgstr "Vimで編集する (&V)"
-#~ msgid "Open File dialog"
-#~ msgstr "ファイル読込ダイアログ"
+#. Now concatenate
+msgid "Edit with existing Vim - "
+msgstr "起動済のVimで編集する - "
-#~ msgid "E338: Sorry, no file browser in console mode"
-#~ msgstr ""
-#~ "E338: コンソールモードではファイルブラウザを使えません, ごめんなさい"
+msgid "Edits the selected file(s) with Vim"
+msgstr "選択したファイルをVimで編集する"
-#~ msgid "Vim: preserving files...\n"
-#~ msgstr "Vim: ファイルを保存中...\n"
+msgid "Error creating process: Check if gvim is in your path!"
+msgstr "プロセスの作成に失敗: gvimが環境変数PATH上にあるか確認してください!"
-#~ msgid "Vim: Finished.\n"
-#~ msgstr "Vim: 終了しました.\n"
+msgid "gvimext.dll error"
+msgstr "gvimext.dll エラー"
-#~ msgid "ERROR: "
-#~ msgstr "エラー: "
+msgid "Path length too long!"
+msgstr "パスが長過ぎます!"
-#~ msgid ""
-#~ "\n"
-#~ "[bytes] total alloc-freed %<PRIu64>-%<PRIu64>, in use %<PRIu64>, peak use "
-#~ "%<PRIu64>\n"
-#~ msgstr ""
-#~ "\n"
-#~ "[メモリ(バイト)] 総割当-解放量 %<PRIu64>-%<PRIu64>, 使用量 %<PRIu64>, ピー"
-#~ "ク時 %<PRIu64>\n"
+msgid "--No lines in buffer--"
+msgstr "--バッファに行がありません--"
-#~ msgid ""
-#~ "[calls] total re/malloc()'s %<PRIu64>, total free()'s %<PRIu64>\n"
-#~ "\n"
-#~ msgstr ""
-#~ "[呼出] 総 re/malloc() 回数 %<PRIu64>, 総 free() 回数 %<PRIu64>\n"
-#~ "\n"
+#.
+#. * The error messages that can be shared are included here.
+#. * Excluded are errors that are only used once and debugging messages.
+#.
+msgid "E470: Command aborted"
+msgstr "E470: コマンドが中断されました"
-#~ msgid "E340: Line is becoming too long"
-#~ msgstr "E340: 行が長くなり過ぎました"
+msgid "E471: Argument required"
+msgstr "E471: 引数が必要です"
-#~ msgid "E341: Internal error: lalloc(%<PRId64>, )"
-#~ msgstr "E341: 内部エラー: lalloc(%<PRId64>,)"
+msgid "E10: \\ should be followed by /, ? or &"
+msgstr "E10: \\ の後は / か ? か & でなければなりません"
-#~ msgid "E547: Illegal mouseshape"
-#~ msgstr "E547: 不正な 'mouseshape' です"
+msgid "E11: Invalid in command-line window; <CR> executes, CTRL-C quits"
+msgstr "E11: コマンドラインでは無効です; <CR>で実行, CTRL-Cでやめる"
-#~ msgid "Enter encryption key: "
-#~ msgstr "暗号化用のキーを入力してください: "
+msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search"
+msgstr ""
+"E12: 現在のディレクトリやタグ検索ではexrc/vimrcのコマンドは許可されません"
-#~ msgid "Enter same key again: "
-#~ msgstr "もう一度同じキーを入力してください: "
+msgid "E171: Missing :endif"
+msgstr "E171: :endif がありません"
-#~ msgid "Keys don't match!"
-#~ msgstr "キーが一致しません"
+msgid "E600: Missing :endtry"
+msgstr "E600: :endtry がありません"
-#~ msgid "Cannot connect to Netbeans #2"
-#~ msgstr "Netbeans #2 に接続できません"
+msgid "E170: Missing :endwhile"
+msgstr "E170: :endwhile がありません"
-#~ msgid "Cannot connect to Netbeans"
-#~ msgstr "Netbeans に接続できません"
+msgid "E170: Missing :endfor"
+msgstr "E170: :endfor がありません"
-#~ msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
-#~ msgstr ""
-#~ "E668: NetBeansの接続情報ファイルのアクセスモードに問題があります: \"%s\""
+msgid "E588: :endwhile without :while"
+msgstr "E588: :while のない :endwhile があります"
-#~ msgid "read from Netbeans socket"
-#~ msgstr "Netbeans のソケットを読込み"
+msgid "E588: :endfor without :for"
+msgstr "E588: :endfor のない :for があります"
-#~ msgid "E658: NetBeans connection lost for buffer %<PRId64>"
-#~ msgstr "E658: バッファ %<PRId64> の NetBeans 接続が失われました"
+msgid "E13: File exists (add ! to override)"
+msgstr "E13: ファイルが存在します (! を追加で上書)"
-#~ msgid "E838: netbeans is not supported with this GUI"
-#~ msgstr "E838: NetBeansはこのGUIには対応していません"
+msgid "E472: Command failed"
+msgstr "E472: コマンドが失敗しました"
-#~ msgid "E511: netbeans already connected"
-#~ msgstr "E511: NetBeansは既に接続しています"
+#, c-format
+msgid "E234: Unknown fontset: %s"
+msgstr "E234: 未知のフォントセット: %s"
-#~ msgid "E505: %s is read-only (add ! to override)"
-#~ msgstr "E505: %s は読込専用です (強制書込には ! を追加)"
+#, c-format
+msgid "E235: Unknown font: %s"
+msgstr "E235: 未知のフォント: %s"
-#~ msgid "E775: Eval feature not available"
-#~ msgstr "E775: 式評価機能が無効になっています"
+#, c-format
+msgid "E236: Font \"%s\" is not fixed-width"
+msgstr "E236: フォント \"%s\" は固定幅ではありません"
-#~ msgid "freeing %<PRId64> lines"
-#~ msgstr "%<PRId64> 行を解放中"
+msgid "E473: Internal error"
+msgstr "E473: 内部エラーです"
-#~ msgid "E530: Cannot change term in GUI"
-#~ msgstr "E530: GUIでは 'term' を変更できません"
+msgid "Interrupted"
+msgstr "割込まれました"
-#~ msgid "E531: Use \":gui\" to start the GUI"
-#~ msgstr "E531: GUIをスタートするには \":gui\" を使用してください"
+msgid "E14: Invalid address"
+msgstr "E14: 無効なアドレスです"
-#~ msgid "E617: Cannot be changed in the GTK+ 2 GUI"
-#~ msgstr "E617: GTK+2 GUIでは変更できません"
+msgid "E474: Invalid argument"
+msgstr "E474: 無効な引数です"
-#~ msgid "E596: Invalid font(s)"
-#~ msgstr "E596: 無効なフォントです"
+#, c-format
+msgid "E475: Invalid argument: %s"
+msgstr "E475: 無効な引数です: %s"
-#~ msgid "E597: can't select fontset"
-#~ msgstr "E597: フォントセットを選択できません"
+#, c-format
+msgid "E15: Invalid expression: %s"
+msgstr "E15: 無効な式です: %s"
-#~ msgid "E598: Invalid fontset"
-#~ msgstr "E598: 無効なフォントセットです"
+msgid "E16: Invalid range"
+msgstr "E16: 無効な範囲です"
-#~ msgid "E533: can't select wide font"
-#~ msgstr "E533: ワイドフォントを選択できません"
+msgid "E476: Invalid command"
+msgstr "E476: 無効なコマンドです"
-#~ msgid "E534: Invalid wide font"
-#~ msgstr "E534: 無効なワイドフォントです"
+#, c-format
+msgid "E17: \"%s\" is a directory"
+msgstr "E17: \"%s\" はディレクトリです"
-#~ msgid "E538: No mouse support"
-#~ msgstr "E538: マウスはサポートされません"
+#, c-format
+msgid "E364: Library call failed for \"%s()\""
+msgstr "E364: \"%s\"() のライブラリ呼出に失敗しました"
-#~ msgid "cannot open "
-#~ msgstr "開けません "
+#, c-format
+msgid "E448: Could not load library function %s"
+msgstr "E448: ライブラリの関数 %s をロードできませんでした"
-#~ msgid "VIM: Can't open window!\n"
-#~ msgstr "VIM: ウィンドウを開けません!\n"
+msgid "E19: Mark has invalid line number"
+msgstr "E19: マークに無効な行番号が指定されていました"
-#~ msgid "Need Amigados version 2.04 or later\n"
-#~ msgstr "Amigadosのバージョン 2.04かそれ以降が必要です\n"
+msgid "E20: Mark not set"
+msgstr "E20: マークは設定されていません"
-#~ msgid "Need %s version %<PRId64>\n"
-#~ msgstr "%s のバージョン %<PRId64> が必要です\n"
+msgid "E21: Cannot make changes, 'modifiable' is off"
+msgstr "E21: 'modifiable' がオフなので, 変更できません"
-#~ msgid "Cannot open NIL:\n"
-#~ msgstr "NILを開けません:\n"
+msgid "E22: Scripts nested too deep"
+msgstr "E22: スクリプトの入れ子が深過ぎます"
-#~ msgid "Cannot create "
-#~ msgstr "作成できません "
+msgid "E23: No alternate file"
+msgstr "E23: 副ファイルはありません"
-#~ msgid "Vim exiting with %d\n"
-#~ msgstr "Vimは %d で終了します\n"
+msgid "E24: No such abbreviation"
+msgstr "E24: そのような短縮入力はありません"
-#~ msgid "cannot change console mode ?!\n"
-#~ msgstr "コンソールモードを変更できません?!\n"
+msgid "E477: No ! allowed"
+msgstr "E477: ! は許可されていません"
-#~ msgid "mch_get_shellsize: not a console??\n"
-#~ msgstr "mch_get_shellsize: コンソールではない??\n"
+msgid "E25: GUI cannot be used: Not enabled at compile time"
+msgstr "E25: GUIは使用不可能です: コンパイル時に無効にされています"
-#~ msgid "E360: Cannot execute shell with -f option"
-#~ msgstr "E360: -f オプションでシェルを実行できません"
+msgid "E26: Hebrew cannot be used: Not enabled at compile time\n"
+msgstr "E26: ヘブライ語は使用不可能です: コンパイル時に無効にされています\n"
-#~ msgid "Cannot execute "
-#~ msgstr "実行できません "
+msgid "E27: Farsi cannot be used: Not enabled at compile time\n"
+msgstr "E27: ペルシア語は使用不可能です: コンパイル時に無効にされています\n"
-#~ msgid "shell "
-#~ msgstr "シェル "
+msgid "E800: Arabic cannot be used: Not enabled at compile time\n"
+msgstr "E800: アラビア語は使用不可能です: コンパイル時に無効にされています\n"
-#~ msgid " returned\n"
-#~ msgstr " 戻りました\n"
+#, c-format
+msgid "E28: No such highlight group name: %s"
+msgstr "E28: そのような名のハイライトグループはありません: %s"
-#~ msgid "ANCHOR_BUF_SIZE too small."
-#~ msgstr "ANCHOR_BUF_SIZE が小さ過ぎます."
+msgid "E29: No inserted text yet"
+msgstr "E29: まだテキストが挿入されていません"
-#~ msgid "I/O ERROR"
-#~ msgstr "入出力エラー"
+msgid "E30: No previous command line"
+msgstr "E30: 以前にコマンド行がありません"
-#~ msgid "Message"
-#~ msgstr "メッセージ"
+msgid "E31: No such mapping"
+msgstr "E31: そのようなマッピングはありません"
-#~ msgid "'columns' is not 80, cannot execute external commands"
-#~ msgstr "'columns' が80ではないため, 外部コマンドを実行できません"
+msgid "E479: No match"
+msgstr "E479: 該当はありません"
-#~ msgid "E237: Printer selection failed"
-#~ msgstr "E237: プリンタの選択に失敗しました"
+#, c-format
+msgid "E480: No match: %s"
+msgstr "E480: 該当はありません: %s"
-#~ msgid "to %s on %s"
-#~ msgstr "%s へ (%s 上の)"
+msgid "E32: No file name"
+msgstr "E32: ファイル名がありません"
-#~ msgid "E613: Unknown printer font: %s"
-#~ msgstr "E613: 未知のプリンタオプションです: %s"
+msgid "E33: No previous substitute regular expression"
+msgstr "E33: 正規表現置換がまだ実行されていません"
-#~ msgid "E238: Print error: %s"
-#~ msgstr "E238: 印刷エラー: %s"
+msgid "E34: No previous command"
+msgstr "E34: コマンドがまだ実行されていません"
-#~ msgid "Printing '%s'"
-#~ msgstr "印刷しています: '%s'"
+msgid "E35: No previous regular expression"
+msgstr "E35: 正規表現がまだ実行されていません"
-#~ msgid "E244: Illegal charset name \"%s\" in font name \"%s\""
-#~ msgstr "E244: 文字セット名 \"%s\" は不正です (フォント名 \"%s\")"
+msgid "E481: No range allowed"
+msgstr "E481: 範囲指定は許可されていません"
-#~ msgid "E245: Illegal char '%c' in font name \"%s\""
-#~ msgstr "E245: '%c' は不正な文字です (フォント名 \"%s\")"
+msgid "E36: Not enough room"
+msgstr "E36: ウィンドウに十分な高さもしくは幅がありません"
-#~ msgid "Vim: Double signal, exiting\n"
-#~ msgstr "Vim: 2重のシグナルのため, 終了します\n"
+#, c-format
+msgid "E247: no registered server named \"%s\""
+msgstr "E247: %s という名前の登録されたサーバーはありません"
-#~ msgid "Vim: Caught deadly signal %s\n"
-#~ msgstr "Vim: 致命的シグナル %s を検知しました\n"
+#, c-format
+msgid "E482: Can't create file %s"
+msgstr "E482: ファイル %s を作成できません"
-#~ msgid "Vim: Caught deadly signal\n"
-#~ msgstr "Vim: 致命的シグナルを検知しました\n"
+msgid "E483: Can't get temp file name"
+msgstr "E483: 一時ファイルの名前を取得できません"
-#~ msgid "Opening the X display took %<PRId64> msec"
-#~ msgstr "Xサーバへの接続に %<PRId64> ミリ秒かかりました"
+#, c-format
+msgid "E484: Can't open file %s"
+msgstr "E484: ファイル \"%s\" を開けません"
-#~ msgid ""
-#~ "\n"
-#~ "Vim: Got X error\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Vim: X のエラーを検出しましたr\n"
+#, c-format
+msgid "E485: Can't read file %s"
+msgstr "E485: ファイル %s を読込めません"
-#~ msgid "Testing the X display failed"
-#~ msgstr "X display のチェックに失敗しました"
+msgid "E37: No write since last change (add ! to override)"
+msgstr "E37: 最後の変更が保存されていません (! を追加で変更を破棄)"
-#~ msgid "Opening the X display timed out"
-#~ msgstr "X display の open がタイムアウトしました"
+msgid "E37: No write since last change"
+msgstr "E37: 最後の変更が保存されていません"
-#~ msgid ""
-#~ "\n"
-#~ "Cannot execute shell sh\n"
-#~ msgstr ""
-#~ "\n"
-#~ "sh シェルを実行できません\n"
+msgid "E38: Null argument"
+msgstr "E38: 引数が空です"
-#~ msgid ""
-#~ "\n"
-#~ "Cannot create pipes\n"
-#~ msgstr ""
-#~ "\n"
-#~ "パイプを作成できません\n"
+msgid "E39: Number expected"
+msgstr "E39: 数値が要求されています"
-#~ msgid ""
-#~ "\n"
-#~ "Cannot fork\n"
-#~ msgstr ""
-#~ "\n"
-#~ "fork できません\n"
+#, c-format
+msgid "E40: Can't open errorfile %s"
+msgstr "E40: エラーファイル %s を開けません"
-#~ msgid ""
-#~ "\n"
-#~ "Command terminated\n"
-#~ msgstr ""
-#~ "\n"
-#~ "コマンドを中断しました\n"
+msgid "E233: cannot open display"
+msgstr "E233: ディスプレイを開けません"
-#~ msgid "XSMP lost ICE connection"
-#~ msgstr "XSMP がICE接続を失いました"
+msgid "E41: Out of memory!"
+msgstr "E41: メモリが尽き果てました!"
-#~ msgid "Opening the X display failed"
-#~ msgstr "X display の open に失敗しました"
+msgid "Pattern not found"
+msgstr "パターンは見つかりませんでした"
-#~ msgid "XSMP handling save-yourself request"
-#~ msgstr "XSMP がsave-yourself要求を処理しています"
+#, c-format
+msgid "E486: Pattern not found: %s"
+msgstr "E486: パターンは見つかりませんでした: %s"
-#~ msgid "XSMP opening connection"
-#~ msgstr "XSMP が接続を開始しています"
+msgid "E487: Argument must be positive"
+msgstr "E487: 引数は正の値でなければなりません"
-#~ msgid "XSMP ICE connection watch failed"
-#~ msgstr "XSMP ICE接続が失敗したようです"
+msgid "E459: Cannot go back to previous directory"
+msgstr "E459: 前のディレクトリに戻れません"
-#~ msgid "XSMP SmcOpenConnection failed: %s"
-#~ msgstr "XSMP SmcOpenConnectionが失敗しました: %s"
+msgid "E42: No Errors"
+msgstr "E42: エラーはありません"
-#~ msgid "At line"
-#~ msgstr "行"
+msgid "E776: No location list"
+msgstr "E776: ロケーションリストはありません"
-#~ msgid "Could not load vim32.dll!"
-#~ msgstr "vim32.dll をロードできませんでした"
+msgid "E43: Damaged match string"
+msgstr "E43: 該当文字列が破損しています"
-#~ msgid "VIM Error"
-#~ msgstr "VIMエラー"
+msgid "E44: Corrupted regexp program"
+msgstr "E44: 不正な正規表現プログラムです"
-#~ msgid "Could not fix up function pointers to the DLL!"
-#~ msgstr "DLLから関数ポインタを取得できませんでした"
+msgid "E45: 'readonly' option is set (add ! to override)"
+msgstr "E45: 'readonly' オプションが設定されています (! を追加で上書き)"
-#~ msgid "shell returned %d"
-#~ msgstr "シェルがコード %d で終了しました"
+#, c-format
+msgid "E46: Cannot change read-only variable \"%s\""
+msgstr "E46: 読取専用変数 \"%s\" には値を設定できません"
-#~ msgid "Vim: Caught %s event\n"
-#~ msgstr "Vim: イベント %s を検知\n"
+#, c-format
+msgid "E794: Cannot set variable in the sandbox: \"%s\""
+msgstr "E794: サンドボックスでは変数 \"%s\" に値を設定できません"
-#~ msgid "close"
-#~ msgstr "閉じる"
+msgid "E713: Cannot use empty key for Dictionary"
+msgstr "E713: 辞書型に空のキーを使うことはできません"
-#~ msgid "logoff"
-#~ msgstr "ログオフ"
+msgid "E715: Dictionary required"
+msgstr "E715: 辞書型が必要です"
-#~ msgid "shutdown"
-#~ msgstr "シャットダウン"
+#, c-format
+msgid "E684: list index out of range: %ld"
+msgstr "E684: リストのインデックスが範囲外です: %ld"
-#~ msgid "E371: Command not found"
-#~ msgstr "E371: コマンドがありません"
-
-#~ msgid ""
-#~ "VIMRUN.EXE not found in your $PATH.\n"
-#~ "External commands will not pause after completion.\n"
-#~ "See :help win32-vimrun for more information."
-#~ msgstr ""
-#~ "VIMRUN.EXEが $PATH の中に見つかりません.\n"
-#~ "外部コマンドの終了後に一時停止をしません.\n"
-#~ "詳細は :help win32-vimrun を参照してください."
-
-#~ msgid "Vim Warning"
-#~ msgstr "Vimの警告"
-
-#~ msgid "Error file"
-#~ msgstr "エラーファイル"
-
-#~ msgid "E868: Error building NFA with equivalence class!"
-#~ msgstr "E868: 等価クラスを含むNFA構築に失敗しました!"
-
-#~ msgid "E878: (NFA) Could not allocate memory for branch traversal!"
-#~ msgstr "E878: (NFA) 現在横断中のブランチに十分なメモリを割り当てられません!"
-
-#~ msgid "Warning: Cannot find word list \"%s_%s.spl\" or \"%s_ascii.spl\""
-#~ msgstr ""
-#~ "警告: 単語リスト \"%s_%s.spl\" および \"%s_ascii.spl\" は見つかりません"
-
-#~ msgid "Conversion in %s not supported"
-#~ msgstr "%s 内の変換はサポートされていません"
-
-#~ msgid "E845: Insufficient memory, word list will be incomplete"
-#~ msgstr "E845: メモリが足りないので、単語リストは不完全です"
-
-#~ msgid "E430: Tag file path truncated for %s\n"
-#~ msgstr "E430: タグファイルのパスが %s に切り捨てられました\n"
-
-#~ msgid "new shell started\n"
-#~ msgstr "新しいシェルを起動します\n"
-
-#~ msgid "Used CUT_BUFFER0 instead of empty selection"
-#~ msgstr "空の選択領域のかわりにCUT_BUFFER0が使用されました"
-
-#~ msgid "No undo possible; continue anyway"
-#~ msgstr "可能なアンドゥはありません: とりあえず続けます"
-
-#~ msgid "E832: Non-encrypted file has encrypted undo file: %s"
-#~ msgstr ""
-#~ "E832: 非暗号化ファイルが暗号化されたアンドゥファイルを使ってます: %s"
-
-#~ msgid "E826: Undo file decryption failed: %s"
-#~ msgstr "E826: 暗号化されたアンドゥファイルの解読に失敗しました: %s"
-
-#~ msgid "E827: Undo file is encrypted: %s"
-#~ msgstr "E827: アンドゥファイルが暗号化されています: %s"
-
-#~ msgid ""
-#~ "\n"
-#~ "MS-Windows 16/32-bit GUI version"
-#~ msgstr ""
-#~ "\n"
-#~ "MS-Windows 16/32 ビット GUI 版"
-
-#~ msgid ""
-#~ "\n"
-#~ "MS-Windows 64-bit GUI version"
-#~ msgstr ""
-#~ "\n"
-#~ "MS-Windows 64 ビット GUI 版"
-
-#~ msgid ""
-#~ "\n"
-#~ "MS-Windows 32-bit GUI version"
-#~ msgstr ""
-#~ "\n"
-#~ "MS-Windows 32 ビット GUI 版"
-
-#~ msgid " in Win32s mode"
-#~ msgstr " in Win32s モード"
-
-#~ msgid " with OLE support"
-#~ msgstr " with OLE サポート"
-
-#~ msgid ""
-#~ "\n"
-#~ "MS-Windows 64-bit console version"
-#~ msgstr ""
-#~ "\n"
-#~ "MS-Windows 64 ビット コンソール 版"
-
-#~ msgid ""
-#~ "\n"
-#~ "MS-Windows 32-bit console version"
-#~ msgstr ""
-#~ "\n"
-#~ "MS-Windows 32 ビット コンソール 版"
-
-#~ msgid ""
-#~ "\n"
-#~ "MS-Windows 16-bit version"
-#~ msgstr ""
-#~ "\n"
-#~ "MS-Windows 16 ビット 版"
-
-#~ msgid ""
-#~ "\n"
-#~ "32-bit MS-DOS version"
-#~ msgstr ""
-#~ "\n"
-#~ "32 ビット MS-DOS 版"
-
-#~ msgid ""
-#~ "\n"
-#~ "16-bit MS-DOS version"
-#~ msgstr ""
-#~ "\n"
-#~ "16 ビット MS-DOS 版"
-
-#~ msgid ""
-#~ "\n"
-#~ "MacOS X (unix) version"
-#~ msgstr ""
-#~ "\n"
-#~ "MacOS X (unix) 版"
-
-#~ msgid ""
-#~ "\n"
-#~ "MacOS X version"
-#~ msgstr ""
-#~ "\n"
-#~ "MacOS X 版"
-
-#~ msgid ""
-#~ "\n"
-#~ "MacOS version"
-#~ msgstr ""
-#~ "\n"
-#~ "MacOS 版"
-
-#~ msgid ""
-#~ "\n"
-#~ "OpenVMS version"
-#~ msgstr ""
-#~ "\n"
-#~ "OpenVMS 版"
-
-#~ msgid ""
-#~ "\n"
-#~ "Big version "
-#~ msgstr ""
-#~ "\n"
-#~ "Big 版 "
-
-#~ msgid ""
-#~ "\n"
-#~ "Normal version "
-#~ msgstr ""
-#~ "\n"
-#~ "通常 版 "
-
-#~ msgid ""
-#~ "\n"
-#~ "Small version "
-#~ msgstr ""
-#~ "\n"
-#~ "Small 版 "
-
-#~ msgid ""
-#~ "\n"
-#~ "Tiny version "
-#~ msgstr ""
-#~ "\n"
-#~ "Tiny 版 "
-
-#~ msgid "with GTK2-GNOME GUI."
-#~ msgstr "with GTK2-GNOME GUI."
+#, c-format
+msgid "E118: Too many arguments for function: %s"
+msgstr "E118: 関数の引数が多過ぎます: %s"
-#~ msgid "with GTK2 GUI."
-#~ msgstr "with GTK2 GUI."
+#, c-format
+msgid "E716: Key not present in Dictionary: %s"
+msgstr "E716: 辞書型にキーが存在しません: %s"
-#~ msgid "with X11-Motif GUI."
-#~ msgstr "with X11-Motif GUI."
+msgid "E714: List required"
+msgstr "E714: リスト型が必要です"
-#~ msgid "with X11-neXtaw GUI."
-#~ msgstr "with X11-neXtaw GUI."
+#, c-format
+msgid "E712: Argument of %s must be a List or Dictionary"
+msgstr "E712: %s の引数はリスト型または辞書型でなければなりません"
-#~ msgid "with X11-Athena GUI."
-#~ msgstr "with X11-Athena GUI."
+msgid "E47: Error while reading errorfile"
+msgstr "E47: エラーファイルの読込中にエラーが発生しました"
-#~ msgid "with Photon GUI."
-#~ msgstr "with Photon GUI."
+msgid "E48: Not allowed in sandbox"
+msgstr "E48: サンドボックスでは許されません"
-#~ msgid "with GUI."
-#~ msgstr "with GUI."
+msgid "E523: Not allowed here"
+msgstr "E523: ここでは許可されません"
-#~ msgid "with Carbon GUI."
-#~ msgstr "with Carbon GUI."
+msgid "E359: Screen mode setting not supported"
+msgstr "E359: スクリーンモードの設定には対応していません"
-#~ msgid "with Cocoa GUI."
-#~ msgstr "with Cocoa GUI."
+msgid "E49: Invalid scroll size"
+msgstr "E49: 無効なスクロール量です"
-#~ msgid "with (classic) GUI."
-#~ msgstr "with (クラシック) GUI."
+msgid "E91: 'shell' option is empty"
+msgstr "E91: 'shell' オプションが空です"
-#~ msgid " system gvimrc file: \""
-#~ msgstr " システム gvimrc: \""
+msgid "E255: Couldn't read in sign data!"
+msgstr "E255: sign のデータを読込めませんでした"
-#~ msgid " user gvimrc file: \""
-#~ msgstr " ユーザ gvimrc: \""
+msgid "E72: Close error on swap file"
+msgstr "E72: スワップファイルのクローズ時エラーです"
-#~ msgid "2nd user gvimrc file: \""
-#~ msgstr " 第2ユーザ gvimrc: \""
+msgid "E73: tag stack empty"
+msgstr "E73: タグスタックが空です"
-#~ msgid "3rd user gvimrc file: \""
-#~ msgstr " 第3ユーザ gvimrc: \""
+msgid "E74: Command too complex"
+msgstr "E74: コマンドが複雑過ぎます"
-#~ msgid " system menu file: \""
-#~ msgstr " システムメニュー: \""
+msgid "E75: Name too long"
+msgstr "E75: 名前が長過ぎます"
-#~ msgid "Compiler: "
-#~ msgstr "コンパイラ: "
+msgid "E76: Too many ["
+msgstr "E76: [ が多過ぎます"
-#~ msgid "menu Help->Orphans for information "
-#~ msgstr "詳細はメニューの ヘルプ→孤児 を参照して下さい "
+msgid "E77: Too many file names"
+msgstr "E77: ファイル名が多過ぎます"
-#~ msgid "Running modeless, typed text is inserted"
-#~ msgstr "モード無で実行中, タイプした文字が挿入されます"
+msgid "E488: Trailing characters"
+msgstr "E488: 余分な文字が後ろにあります"
-#~ msgid "menu Edit->Global Settings->Toggle Insert Mode "
-#~ msgstr "メニューの 編集→全体設定→挿入(初心者)モード切替 "
+msgid "E78: Unknown mark"
+msgstr "E78: 未知のマーク"
-#~ msgid " for two modes "
-#~ msgstr " でモード有に "
+msgid "E79: Cannot expand wildcards"
+msgstr "E79: ワイルドカードを展開できません"
-#~ msgid "menu Edit->Global Settings->Toggle Vi Compatible"
-#~ msgstr "メニューの 編集→全体設定→Vi互換モード切替 "
+msgid "E591: 'winheight' cannot be smaller than 'winminheight'"
+msgstr "E591: 'winheight' は 'winminheight' より小さくできません"
-#~ msgid " for Vim defaults "
-#~ msgstr " でVimとして動作 "
+msgid "E592: 'winwidth' cannot be smaller than 'winminwidth'"
+msgstr "E592: 'winwidth' は 'winminwidth' より小さくできません"
-#~ msgid "WARNING: Windows 95/98/ME detected"
-#~ msgstr " 警告: Windows 95/98/Me を検出 "
+msgid "E80: Error while writing"
+msgstr "E80: 書込み中のエラー"
-#~ msgid "type :help windows95<Enter> for info on this"
-#~ msgstr " 詳細な情報は :help windows95<Enter> "
+msgid "Zero count"
+msgstr "ゼロカウント"
-#~ msgid "Edit with &multiple Vims"
-#~ msgstr "複数のVimで編集する (&M)"
+msgid "E81: Using <SID> not in a script context"
+msgstr "E81: スクリプト以外で<SID>が使われました"
-#~ msgid "Edit with single &Vim"
-#~ msgstr "1つのVimで編集する (&V)"
+msgid "E449: Invalid expression received"
+msgstr "E449: 無効な式を受け取りました"
-#~ msgid "Diff with Vim"
-#~ msgstr "Vimで差分を表示する"
+msgid "E463: Region is guarded, cannot modify"
+msgstr "E463: 領域が保護されているので, 変更できません"
-#~ msgid "Edit with &Vim"
-#~ msgstr "Vimで編集する (&V)"
+msgid "E744: NetBeans does not allow changes in read-only files"
+msgstr "E744: NetBeans は読込専用ファイルを変更することを許しません"
-#~ msgid "Edit with existing Vim - "
-#~ msgstr "起動済のVimで編集する - "
+#, c-format
+msgid "E685: Internal error: %s"
+msgstr "E685: 内部エラーです: %s"
-#~ msgid "Edits the selected file(s) with Vim"
-#~ msgstr "選択したファイルをVimで編集する"
+msgid "E363: pattern uses more memory than 'maxmempattern'"
+msgstr "E363: パターンが 'maxmempattern' 以上のメモリを使用します"
-#~ msgid "Error creating process: Check if gvim is in your path!"
-#~ msgstr "プロセスの作成に失敗: gvimが環境変数PATH上にあるか確認してください!"
+msgid "E749: empty buffer"
+msgstr "E749: バッファが空です"
-#~ msgid "gvimext.dll error"
-#~ msgstr "gvimext.dll エラー"
+#, c-format
+msgid "E86: Buffer %ld does not exist"
+msgstr "E86: バッファ %ld はありません"
-#~ msgid "Path length too long!"
-#~ msgstr "パスが長すぎます!"
+msgid "E682: Invalid search pattern or delimiter"
+msgstr "E682: 検索パターンか区切り記号が不正です"
-#~ msgid "E234: Unknown fontset: %s"
-#~ msgstr "E234: 未知のフォントセット: %s"
+msgid "E139: File is loaded in another buffer"
+msgstr "E139: 同じ名前のファイルが他のバッファで読込まれています"
-#~ msgid "E235: Unknown font: %s"
-#~ msgstr "E235: 未知のフォント: %s"
+#, c-format
+msgid "E764: Option '%s' is not set"
+msgstr "E764: オプション '%s' は設定されていません"
-#~ msgid "E236: Font \"%s\" is not fixed-width"
-#~ msgstr "E236: フォント \"%s\" は固定幅ではありません"
+msgid "E850: Invalid register name"
+msgstr "E850: 無効なレジスタ名です"
-#~ msgid "E448: Could not load library function %s"
-#~ msgstr "E448: ライブラリの関数 %s をロードできませんでした"
+#, c-format
+msgid "E919: Directory not found in '%s': \"%s\""
+msgstr "E919: ディレクトリが '%s' の中にありません: \"%s\""
-#~ msgid "E26: Hebrew cannot be used: Not enabled at compile time\n"
-#~ msgstr "E26: ヘブライ語は使用不可能です: コンパイル時に無効にされています\n"
+msgid "search hit TOP, continuing at BOTTOM"
+msgstr "上まで検索したので下に戻ります"
-#~ msgid "E27: Farsi cannot be used: Not enabled at compile time\n"
-#~ msgstr "E27: ペルシア語は使用不可能です: コンパイル時に無効にされています\n"
+msgid "search hit BOTTOM, continuing at TOP"
+msgstr "下まで検索したので上に戻ります"
-#~ msgid "E800: Arabic cannot be used: Not enabled at compile time\n"
-#~ msgstr ""
-#~ "E800: アラビア語は使用不可能です: コンパイル時に無効にされています\n"
+#, c-format
+msgid "Need encryption key for \"%s\""
+msgstr "暗号キーが必要です: \"%s\""
-#~ msgid "E247: no registered server named \"%s\""
-#~ msgstr "E247: %s という名前の登録されたサーバはありません"
+msgid "empty keys are not allowed"
+msgstr "空のキーは許可されていません"
-#~ msgid "E233: cannot open display"
-#~ msgstr "E233: ディスプレイを開けません"
+msgid "dictionary is locked"
+msgstr "辞書はロックされています"
-#~ msgid "E449: Invalid expression received"
-#~ msgstr "E449: 無効な式を受け取りました"
+msgid "list is locked"
+msgstr "リストはロックされています"
-#~ msgid "E463: Region is guarded, cannot modify"
-#~ msgstr "E463: 領域が保護されているので, 変更できません"
+#, c-format
+msgid "failed to add key '%s' to dictionary"
+msgstr "辞書にキー '%s' を追加するのに失敗しました"
-#~ msgid "E744: NetBeans does not allow changes in read-only files"
-#~ msgstr "E744: NetBeans は読込専用ファイルを変更することを許しません"
+#, c-format
+msgid "index must be int or slice, not %s"
+msgstr "インデックスは %s ではなく整数かスライスにしてください"
-#~ msgid "Need encryption key for \"%s\""
-#~ msgstr "暗号キーが必要です: \"%s\""
+#, c-format
+msgid "expected str() or unicode() instance, but got %s"
+msgstr "str() もしくは unicode() のインスタンスが期待されているのに %s でした"
-#~ msgid "empty keys are not allowed"
-#~ msgstr "空のキーは許可されていません"
+#, c-format
+msgid "expected bytes() or str() instance, but got %s"
+msgstr "bytes() もしくは str() のインスタンスが期待されているのに %s でした"
-#~ msgid "dictionary is locked"
-#~ msgstr "辞書はロックされています"
+#, c-format
+msgid ""
+"expected int(), long() or something supporting coercing to long(), but got %s"
+msgstr "long() かそれへ変換可能なものが期待されているのに %s でした"
-#~ msgid "list is locked"
-#~ msgstr "リストはロックされています"
+#, c-format
+msgid "expected int() or something supporting coercing to int(), but got %s"
+msgstr "int() かそれへ変換可能なものが期待されているのに %s でした"
-#~ msgid "failed to add key '%s' to dictionary"
-#~ msgstr "辞書にキー '%s' を追加するのに失敗しました"
+msgid "value is too large to fit into C int type"
+msgstr "C言語の int 型としては値が大き過ぎます"
-#~ msgid "index must be int or slice, not %s"
-#~ msgstr "インデックスは %s ではなく整数かスライスにしてください"
+msgid "value is too small to fit into C int type"
+msgstr "C言語の int 型としては値が小さ過ぎます"
-#~ msgid "expected str() or unicode() instance, but got %s"
-#~ msgstr ""
-#~ "str() もしくは unicode() のインスタンスが期待されているのに %s でした"
+msgid "number must be greater than zero"
+msgstr "数値は 0 より大きくなければなりません"
-#~ msgid "expected bytes() or str() instance, but got %s"
-#~ msgstr "bytes() もしくは str() のインスタンスが期待されているのに %s でした"
+msgid "number must be greater or equal to zero"
+msgstr "数値は 0 かそれ以上でなければなりません"
-#~ msgid ""
-#~ "expected int(), long() or something supporting coercing to long(), but "
-#~ "got %s"
-#~ msgstr "long() かそれへ変換可能なものが期待されているのに %s でした"
+msgid "can't delete OutputObject attributes"
+msgstr "OutputObject属性を消せません"
-#~ msgid "expected int() or something supporting coercing to int(), but got %s"
-#~ msgstr "int() かそれへ変換可能なものが期待されているのに %s でした"
+#, c-format
+msgid "invalid attribute: %s"
+msgstr "無効な属性です: %s"
-#~ msgid "value is too large to fit into C int type"
-#~ msgstr "C言語の int 型としては値が大き過ぎます"
+msgid "E264: Python: Error initialising I/O objects"
+msgstr "E264: Python: I/Oオブジェクトの初期化エラー"
-#~ msgid "value is too small to fit into C int type"
-#~ msgstr "C言語の int 型としては値が小さ過ぎます"
+msgid "failed to change directory"
+msgstr "辞書の変更に失敗しました"
-#~ msgid "number must be greater then zero"
-#~ msgstr "数値は 0 より大きくなければなりません"
+#, c-format
+msgid "expected 3-tuple as imp.find_module() result, but got %s"
+msgstr "imp.find_module() が %s を返しました (期待値: 3 要素のタプル)"
-#~ msgid "number must be greater or equal to zero"
-#~ msgstr "数値は 0 かそれ以上でなければなりません"
+#, c-format
+msgid "expected 3-tuple as imp.find_module() result, but got tuple of size %d"
+msgstr "imp.find_module() が %d 要素のタプルを返しました (期待値: 3)"
-#~ msgid "can't delete OutputObject attributes"
-#~ msgstr "OutputObject属性を消せません"
+msgid "internal error: imp.find_module returned tuple with NULL"
+msgstr "内部エラー: imp.find_module が NULL を含むタプルを返しました"
-#~ msgid "invalid attribute: %s"
-#~ msgstr "無効な属性です: %s"
+msgid "cannot delete vim.Dictionary attributes"
+msgstr "vim.Dictionary属性は消せません"
-#~ msgid "E264: Python: Error initialising I/O objects"
-#~ msgstr "E264: Python: I/Oオブジェクトの初期化エラー"
+msgid "cannot modify fixed dictionary"
+msgstr "固定された辞書は変更できません"
-#~ msgid "failed to change directory"
-#~ msgstr "辞書の変更に失敗しました"
+#, c-format
+msgid "cannot set attribute %s"
+msgstr "属性 %s は設定できません"
-#~ msgid "expected 3-tuple as imp.find_module() result, but got %s"
-#~ msgstr "imp.find_module() が %s を返しました (期待値: 2 要素のタプル)"
+msgid "hashtab changed during iteration"
+msgstr "イテレーション中に hashtab が変更されました"
-#~ msgid ""
-#~ "expected 3-tuple as imp.find_module() result, but got tuple of size %d"
-#~ msgstr "impl.find_module() が %d 要素のタプルを返しました (期待値: 2)"
+#, c-format
+msgid "expected sequence element of size 2, but got sequence of size %d"
+msgstr "シーケンスの要素数には 2 が期待されていましたが %d でした"
-#~ msgid "internal error: imp.find_module returned tuple with NULL"
-#~ msgstr "内部エラー: imp.find_module が NULL を含むタプルを返しました"
+msgid "list constructor does not accept keyword arguments"
+msgstr "リストのコンストラクタはキーワード引数を受け付けません"
-#~ msgid "cannot delete vim.Dictionary attributes"
-#~ msgstr "vim.Dictionary属性は消せません"
+msgid "list index out of range"
+msgstr "リスト範囲外のインデックスです"
-#~ msgid "cannot modify fixed dictionary"
-#~ msgstr "固定された辞書は変更できません"
+#. No more suitable format specifications in python-2.3
+#, c-format
+msgid "internal error: failed to get vim list item %d"
+msgstr "内部エラー: vimのリスト要素 %d の取得に失敗しました"
-#~ msgid "cannot set attribute %s"
-#~ msgstr "属性 %s は設定できません"
+msgid "slice step cannot be zero"
+msgstr "スライスのステップに 0 は指定できません"
-#~ msgid "hashtab changed during iteration"
-#~ msgstr "イテレーション中に hashtab が変更されました"
+#, c-format
+msgid "attempt to assign sequence of size greater than %d to extended slice"
+msgstr "長さ %d の拡張スライスに、より長いスライスを割り当てようとしました"
-#~ msgid "expected sequence element of size 2, but got sequence of size %d"
-#~ msgstr "シーケンスの要素数には 2 が期待されていましたが %d でした"
+#, c-format
+msgid "internal error: no vim list item %d"
+msgstr "内部エラー: vimのリスト要素 %d はありません"
-#~ msgid "list constructor does not accept keyword arguments"
-#~ msgstr "リストのコンストラクタはキーワード引数を受け付けません"
+msgid "internal error: not enough list items"
+msgstr "内部エラー: リストに十分な要素がありません"
-#~ msgid "list index out of range"
-#~ msgstr "リスト範囲外のインデックスです"
+msgid "internal error: failed to add item to list"
+msgstr "内部エラー: リストへの要素追加に失敗しました"
-#~ msgid "internal error: failed to get vim list item %d"
-#~ msgstr "内部エラー: vimのリスト要素 %d の取得に失敗しました"
+#, c-format
+msgid "attempt to assign sequence of size %d to extended slice of size %d"
+msgstr "長さ %d のスライスを %d の拡張スライスに割り当てようとしました"
-#~ msgid "failed to add item to list"
-#~ msgstr "リストへの要素追加に失敗しました"
+msgid "failed to add item to list"
+msgstr "リストへの要素追加に失敗しました"
-#~ msgid "internal error: no vim list item %d"
-#~ msgstr "内部エラー: vimのリスト要素 %d はありません"
+msgid "cannot delete vim.List attributes"
+msgstr "vim.List 属性は消せません"
-#~ msgid "internal error: failed to add item to list"
-#~ msgstr "内部エラー: リストへの要素追加に失敗しました"
+msgid "cannot modify fixed list"
+msgstr "固定されたリストは変更できません"
-#~ msgid "cannot delete vim.List attributes"
-#~ msgstr "vim.List 属性は消せません"
+#, c-format
+msgid "unnamed function %s does not exist"
+msgstr "無名関数 %s は存在しません"
-#~ msgid "cannot modify fixed list"
-#~ msgstr "固定されたリストは変更できません"
+#, c-format
+msgid "function %s does not exist"
+msgstr "関数 %s がありません"
-#~ msgid "unnamed function %s does not exist"
-#~ msgstr "無名関数 %s は存在しません"
+#, c-format
+msgid "failed to run function %s"
+msgstr "関数 %s の実行に失敗しました"
-#~ msgid "function %s does not exist"
-#~ msgstr "関数 %s がありません"
+msgid "unable to get option value"
+msgstr "オプションの値は取得できません"
-#~ msgid "function constructor does not accept keyword arguments"
-#~ msgstr "関数のコンストラクタはキーワード引数を受け付けません"
+msgid "internal error: unknown option type"
+msgstr "内部エラー: 未知のオプション型です"
-#~ msgid "failed to run function %s"
-#~ msgstr "関数 %s の実行に失敗しました"
+msgid "problem while switching windows"
+msgstr "ウィンドウを切換中に問題が発生しました"
-#~ msgid "problem while switching windows"
-#~ msgstr "ウィンドウを切換中に問題が発生しました"
+#, c-format
+msgid "unable to unset global option %s"
+msgstr "グローバルオプション %s の設定解除はできません"
-#~ msgid "unable to unset global option %s"
-#~ msgstr "グローバルオプション %s の設定解除はできません"
+#, c-format
+msgid "unable to unset option %s which does not have global value"
+msgstr "グローバルな値の無いオプション %s の設定解除はできません"
-#~ msgid "unable to unset option %s which does not have global value"
-#~ msgstr "グローバルな値の無いオプション %s の設定解除はできません"
+msgid "attempt to refer to deleted tab page"
+msgstr "削除されたタブを参照しようとしました"
-#~ msgid "attempt to refer to deleted tab page"
-#~ msgstr "削除されたタブを参照しようとしました"
+msgid "no such tab page"
+msgstr "そのようなタブページはありません"
-#~ msgid "no such tab page"
-#~ msgstr "そのようなタブページはありません"
+msgid "attempt to refer to deleted window"
+msgstr "削除されたウィンドウを参照しようとしました"
-#~ msgid "attempt to refer to deleted window"
-#~ msgstr "削除されたウィンドウを参照しようとしました"
+msgid "readonly attribute: buffer"
+msgstr "読込専用属性: バッファー"
-#~ msgid "readonly attribute: buffer"
-#~ msgstr "読込専用属性: バッファー"
+msgid "cursor position outside buffer"
+msgstr "カーソル位置がバッファの外側です"
-#~ msgid "cursor position outside buffer"
-#~ msgstr "カーソル位置がバッファの外側です"
+msgid "no such window"
+msgstr "そのようなウィンドウはありません"
-#~ msgid "no such window"
-#~ msgstr "そのようなウィンドウはありません"
+msgid "attempt to refer to deleted buffer"
+msgstr "削除されたバッファを参照しようとしました"
-#~ msgid "attempt to refer to deleted buffer"
-#~ msgstr "削除されたバッファを参照しようとしました"
+msgid "failed to rename buffer"
+msgstr "バッファ名の変更に失敗しました"
-#~ msgid "failed to rename buffer"
-#~ msgstr "バッファ名の変更に失敗しました"
+msgid "mark name must be a single character"
+msgstr "マーク名は1文字のアルファベットでなければなりません"
-#~ msgid "mark name must be a single character"
-#~ msgstr "マーク名は1文字のアルファベットでなければなりません"
+#, c-format
+msgid "expected vim.Buffer object, but got %s"
+msgstr "vim.Bufferオブジェクトが期待されているのに %s でした"
-#~ msgid "expected vim.Buffer object, but got %s"
-#~ msgstr "vim.Bufferオブジェクトが期待されているのに %s でした"
+#, c-format
+msgid "failed to switch to buffer %d"
+msgstr "指定されたバッファ %d への切り替えに失敗しました"
-#~ msgid "failed to switch to buffer %d"
-#~ msgstr "指定されたバッファ %d への切り替えに失敗しました"
+#, c-format
+msgid "expected vim.Window object, but got %s"
+msgstr "vim.Windowオブジェクトが期待されているのに %s でした"
-#~ msgid "expected vim.Window object, but got %s"
-#~ msgstr "vim.Windowオブジェクトが期待されているのに %s でした"
+msgid "failed to find window in the current tab page"
+msgstr "現在のタブには指定されたウィンドウがありませんでした"
-#~ msgid "failed to find window in the current tab page"
-#~ msgstr "現在のタブには指定されたウィンドウがありませんでした"
+msgid "did not switch to the specified window"
+msgstr "指定されたウィンドウに切り替えませんでした"
-#~ msgid "did not switch to the specified window"
-#~ msgstr "指定されたウィンドウに切り替えませんでした"
+#, c-format
+msgid "expected vim.TabPage object, but got %s"
+msgstr "vim.TabPageオブジェクトが期待されているのに %s でした"
-#~ msgid "expected vim.TabPage object, but got %s"
-#~ msgstr "vim.TabPageオブジェクトが期待されているのに %s でした"
+msgid "did not switch to the specified tab page"
+msgstr "指定されたタブページに切り替えませんでした"
-#~ msgid "did not switch to the specified tab page"
-#~ msgstr "指定されたタブページに切り替えませんでした"
+msgid "failed to run the code"
+msgstr "コードの実行に失敗しました"
-#~ msgid "failed to run the code"
-#~ msgstr "コードの実行に失敗しました"
+msgid "E858: Eval did not return a valid python object"
+msgstr "E858: 式評価は有効なpythonオブジェクトを返しませんでした"
-#~ msgid "E858: Eval did not return a valid python object"
-#~ msgstr "E858: 式評価は有効なpythonオブジェクトを返しませんでした"
+msgid "E859: Failed to convert returned python object to vim value"
+msgstr "E859: 返されたpythonオブジェクトをvimの値に変換できませんでした"
-#~ msgid "E859: Failed to convert returned python object to vim value"
-#~ msgstr "E859: 返されたpythonオブジェクトをvimの値に変換できませんでした"
+#, c-format
+msgid "unable to convert %s to vim dictionary"
+msgstr "%s vimの辞書型に変換できません"
-#~ msgid "unable to convert %s to vim dictionary"
-#~ msgstr "%s vimの辞書型に変換できません"
+#, c-format
+msgid "unable to convert %s to vim list"
+msgstr "%s をvimのリストに変換できません"
-#~ msgid "unable to convert %s to vim structure"
-#~ msgstr "%s をvimの構造体に変換できません"
+#, c-format
+msgid "unable to convert %s to vim structure"
+msgstr "%s をvimの構造体に変換できません"
-#~ msgid "internal error: NULL reference passed"
-#~ msgstr "内部エラー: NULL参照が渡されました"
+msgid "internal error: NULL reference passed"
+msgstr "内部エラー: NULL参照が渡されました"
-#~ msgid "internal error: invalid value type"
-#~ msgstr "内部エラー: 無効な値型です"
+msgid "internal error: invalid value type"
+msgstr "内部エラー: 無効な値型です"
-#~ msgid ""
-#~ "Failed to set path hook: sys.path_hooks is not a list\n"
-#~ "You should now do the following:\n"
-#~ "- append vim.path_hook to sys.path_hooks\n"
-#~ "- append vim.VIM_SPECIAL_PATH to sys.path\n"
-#~ msgstr ""
-#~ "パスフックの設定に失敗しました: sys.path_hooks がリストではありません\n"
-#~ "すぐに下記を実施してください:\n"
-#~ "- vim.path_hooks を sys.path_hooks へ追加\n"
-#~ "- vim.VIM_SPECIAL_PATH を sys.path へ追加\n"
+msgid ""
+"Failed to set path hook: sys.path_hooks is not a list\n"
+"You should now do the following:\n"
+"- append vim.path_hook to sys.path_hooks\n"
+"- append vim.VIM_SPECIAL_PATH to sys.path\n"
+msgstr ""
+"パスフックの設定に失敗しました: sys.path_hooks がリストではありません\n"
+"すぐに下記を実施してください:\n"
+"- vim.path_hooks を sys.path_hooks へ追加\n"
+"- vim.VIM_SPECIAL_PATH を sys.path へ追加\n"
-#~ msgid ""
-#~ "Failed to set path: sys.path is not a list\n"
-#~ "You should now append vim.VIM_SPECIAL_PATH to sys.path"
-#~ msgstr ""
-#~ "パスの設定に失敗しました: sys.path がリストではありません\n"
-#~ "すぐに vim.VIM_SPECIAL_PATH を sys.path に追加してください"
+msgid ""
+"Failed to set path: sys.path is not a list\n"
+"You should now append vim.VIM_SPECIAL_PATH to sys.path"
+msgstr ""
+"パスの設定に失敗しました: sys.path がリストではありません\n"
+"すぐに vim.VIM_SPECIAL_PATH を sys.path に追加してください"
diff --git a/src/nvim/popupmnu.c b/src/nvim/popupmnu.c
index 6e81c5a171..2462975c9b 100644
--- a/src/nvim/popupmnu.c
+++ b/src/nvim/popupmnu.c
@@ -41,9 +41,7 @@ static int pum_row; // top row of pum
static int pum_col; // left column of pum
static bool pum_is_visible = false;
-
static bool pum_external = false;
-static bool pum_wants_external = false;
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "popupmnu.c.generated.h"
@@ -80,7 +78,7 @@ void pum_display(pumitem_T *array, int size, int selected, bool array_changed)
if (!pum_is_visible) {
// To keep the code simple, we only allow changing the
// draw mode when the popup menu is not being displayed
- pum_external = pum_wants_external;
+ pum_external = ui_is_external(kUIPopupmenu);
}
redo:
@@ -100,7 +98,6 @@ redo:
}
if (pum_external) {
- Array args = ARRAY_DICT_INIT;
if (array_changed) {
Array arr = ARRAY_DICT_INIT;
for (i = 0; i < size; i++) {
@@ -111,14 +108,9 @@ redo:
ADD(item, STRING_OBJ(cstr_to_string((char *)array[i].pum_info)));
ADD(arr, ARRAY_OBJ(item));
}
- ADD(args, ARRAY_OBJ(arr));
- ADD(args, INTEGER_OBJ(selected));
- ADD(args, INTEGER_OBJ(row));
- ADD(args, INTEGER_OBJ(col));
- ui_event("popupmenu_show", args);
+ ui_call_popupmenu_show(arr, selected, row, col);
} else {
- ADD(args, INTEGER_OBJ(selected));
- ui_event("popupmenu_select", args);
+ ui_call_popupmenu_select(selected);
}
return;
}
@@ -315,10 +307,10 @@ void pum_redraw(void)
{
int row = pum_row;
int col;
- int attr_norm = highlight_attr[HLF_PNI];
- int attr_select = highlight_attr[HLF_PSI];
- int attr_scroll = highlight_attr[HLF_PSB];
- int attr_thumb = highlight_attr[HLF_PST];
+ int attr_norm = win_hl_attr(curwin, HLF_PNI);
+ int attr_select = win_hl_attr(curwin, HLF_PSI);
+ int attr_scroll = win_hl_attr(curwin, HLF_PSB);
+ int attr_thumb = win_hl_attr(curwin, HLF_PST);
int attr;
int i;
int idx;
@@ -715,8 +707,7 @@ void pum_undisplay(void)
pum_array = NULL;
if (pum_external) {
- Array args = ARRAY_DICT_INIT;
- ui_event("popupmenu_hide", args);
+ ui_call_popupmenu_hide();
} else {
redraw_all_later(SOME_VALID);
redraw_tabline = true;
@@ -751,8 +742,3 @@ int pum_get_height(void)
{
return pum_height;
}
-
-void pum_set_external(bool external)
-{
- pum_wants_external = external;
-}
diff --git a/src/nvim/popupmnu.h b/src/nvim/popupmnu.h
index 2b181f2c4a..7e1588dbdd 100644
--- a/src/nvim/popupmnu.h
+++ b/src/nvim/popupmnu.h
@@ -1,6 +1,8 @@
#ifndef NVIM_POPUPMNU_H
#define NVIM_POPUPMNU_H
+#include "nvim/types.h"
+
/// Used for popup menu items.
typedef struct {
char_u *pum_text; // main menu text
diff --git a/src/nvim/quickfix.c b/src/nvim/quickfix.c
index 112498ae20..bd5dfa92cc 100644
--- a/src/nvim/quickfix.c
+++ b/src/nvim/quickfix.c
@@ -188,6 +188,11 @@ typedef struct {
*/
#define GET_LOC_LIST(wp) (IS_LL_WINDOW(wp) ? wp->w_llist_ref : wp->w_llist)
+// Looking up a buffer can be slow if there are many. Remember the last one
+// to make this a lot faster if there are multiple matches in the same file.
+static char_u *qf_last_bufname = NULL;
+static bufref_T qf_last_bufref = { NULL, 0, 0 };
+
/*
* Read the errorfile "efile" into memory, line by line, building the error
* list. Set the error list's title to qf_title.
@@ -968,6 +973,10 @@ qf_init_ext(
int retval = -1; // default: return error flag
int status;
+ // Do not used the cached buffer, it may have been wiped out.
+ xfree(qf_last_bufname);
+ qf_last_bufname = NULL;
+
fields.namebuf = xmalloc(CMDBUFFSIZE + 1);
fields.errmsglen = CMDBUFFSIZE + 1;
fields.errmsg = xmalloc(fields.errmsglen);
@@ -1399,11 +1408,6 @@ void copy_loclist(win_T *from, win_T *to)
to->w_llist->qf_curlist = qi->qf_curlist; /* current list */
}
-// Looking up a buffer can be slow if there are many. Remember the last one to
-// make this a lot faster if there are multiple matches in the same file.
-static char_u *qf_last_bufname = NULL;
-static bufref_T qf_last_bufref = { NULL, 0 };
-
// Get buffer number for file "directory.fname".
// Also sets the b_has_qf_entry flag.
static int qf_get_fnum(qf_info_T *qi, char_u *directory, char_u *fname)
@@ -2326,9 +2330,7 @@ void qf_history(exarg_T *eap)
}
}
-/*
- * Free error list "idx".
- */
+/// Free all the entries in the error list "idx".
static void qf_free(qf_info_T *qi, int idx)
{
qfline_T *qfp;
@@ -3766,52 +3768,6 @@ theend:
}
/*
- * Skip over the pattern argument of ":vimgrep /pat/[g][j]".
- * Put the start of the pattern in "*s", unless "s" is NULL.
- * If "flags" is not NULL put the flags in it: VGR_GLOBAL, VGR_NOJUMP.
- * If "s" is not NULL terminate the pattern with a NUL.
- * Return a pointer to the char just past the pattern plus flags.
- */
-char_u *skip_vimgrep_pat(char_u *p, char_u **s, int *flags)
-{
- int c;
-
- if (vim_isIDc(*p)) {
- /* ":vimgrep pattern fname" */
- if (s != NULL)
- *s = p;
- p = skiptowhite(p);
- if (s != NULL && *p != NUL)
- *p++ = NUL;
- } else {
- /* ":vimgrep /pattern/[g][j] fname" */
- if (s != NULL)
- *s = p + 1;
- c = *p;
- p = skip_regexp(p + 1, c, TRUE, NULL);
- if (*p != c)
- return NULL;
-
- /* Truncate the pattern. */
- if (s != NULL)
- *p = NUL;
- ++p;
-
- /* Find the flags */
- while (*p == 'g' || *p == 'j') {
- if (flags != NULL) {
- if (*p == 'g')
- *flags |= VGR_GLOBAL;
- else
- *flags |= VGR_NOJUMP;
- }
- ++p;
- }
- }
- return p;
-}
-
-/*
* Restore current working directory to "dirname_start" if they differ, taking
* into account whether it is set locally or globally.
*/
@@ -4069,7 +4025,7 @@ int get_errorlist_properties(win_T *wp, dict_T *what, dict_T *retdict)
if ((di = tv_dict_find(what, S_LEN("nr"))) != NULL) {
// Use the specified quickfix/location list
if (di->di_tv.v_type == VAR_NUMBER) {
- qf_idx = di->di_tv.vval.v_number - 1;
+ qf_idx = (int)di->di_tv.vval.v_number - 1;
if (qf_idx < 0 || qf_idx >= qi->qf_listcount) {
return FAIL;
}
@@ -4143,7 +4099,7 @@ static int qf_add_entries(qf_info_T *qi, list_T *list, char_u *title,
char *const filename = tv_dict_get_string(d, "filename", true);
int bufnum = (int)tv_dict_get_number(d, "bufnr");
- long lnum = tv_dict_get_number(d, "lnum");
+ long lnum = (long)tv_dict_get_number(d, "lnum");
int col = (int)tv_dict_get_number(d, "col");
char_u vcol = (char_u)tv_dict_get_number(d, "vcol");
int nr = (int)tv_dict_get_number(d, "nr");
@@ -4225,7 +4181,7 @@ static int qf_set_properties(qf_info_T *qi, dict_T *what, int action)
if ((di = tv_dict_find(what, S_LEN("nr"))) != NULL) {
// Use the specified quickfix/location list
if (di->di_tv.v_type == VAR_NUMBER) {
- qf_idx = di->di_tv.vval.v_number - 1;
+ qf_idx = (int)di->di_tv.vval.v_number - 1;
if (qf_idx < 0 || qf_idx >= qi->qf_listcount) {
return FAIL;
}
diff --git a/src/nvim/quickfix.h b/src/nvim/quickfix.h
index bb9c2c3193..fdeb8d1a2f 100644
--- a/src/nvim/quickfix.h
+++ b/src/nvim/quickfix.h
@@ -1,6 +1,9 @@
#ifndef NVIM_QUICKFIX_H
#define NVIM_QUICKFIX_H
+#include "nvim/types.h"
+#include "nvim/ex_cmds_defs.h"
+
/* flags for skip_vimgrep_pat() */
#define VGR_GLOBAL 1
#define VGR_NOJUMP 2
diff --git a/src/nvim/regexp.c b/src/nvim/regexp.c
index 7a00ee27bb..5448cc7131 100644
--- a/src/nvim/regexp.c
+++ b/src/nvim/regexp.c
@@ -3427,32 +3427,26 @@ static long bt_regexec_both(char_u *line,
c = *prog->regmust;
s = line + col;
- /*
- * This is used very often, esp. for ":global". Use three versions of
- * the loop to avoid overhead of conditions.
- */
- if (!ireg_ic
- && !has_mbyte
- )
- while ((s = vim_strbyte(s, c)) != NULL) {
- if (cstrncmp(s, prog->regmust, &prog->regmlen) == 0)
- break; /* Found it. */
- ++s;
- }
- else if (!ireg_ic || (!enc_utf8 && mb_char2len(c) > 1))
+ // This is used very often, esp. for ":global". Use two versions of
+ // the loop to avoid overhead of conditions.
+ if (!ireg_ic) {
while ((s = vim_strchr(s, c)) != NULL) {
- if (cstrncmp(s, prog->regmust, &prog->regmlen) == 0)
- break; /* Found it. */
+ if (cstrncmp(s, prog->regmust, &prog->regmlen) == 0) {
+ break; // Found it.
+ }
mb_ptr_adv(s);
}
- else
+ } else {
while ((s = cstrchr(s, c)) != NULL) {
- if (cstrncmp(s, prog->regmust, &prog->regmlen) == 0)
- break; /* Found it. */
+ if (cstrncmp(s, prog->regmust, &prog->regmlen) == 0) {
+ break; // Found it.
+ }
mb_ptr_adv(s);
}
- if (s == NULL) /* Not present. */
+ }
+ if (s == NULL) { // Not present.
goto theend;
+ }
}
regline = line;
@@ -3482,14 +3476,8 @@ static long bt_regexec_both(char_u *line,
/* Messy cases: unanchored match. */
while (!got_int) {
if (prog->regstart != NUL) {
- /* Skip until the char we know it must start with.
- * Used often, do some work to avoid call overhead. */
- if (!ireg_ic
- && !has_mbyte
- )
- s = vim_strbyte(regline + col, prog->regstart);
- else
- s = cstrchr(regline + col, prog->regstart);
+ // Skip until the char we know it must start with.
+ s = cstrchr(regline + col, prog->regstart);
if (s == NULL) {
retval = 0;
break;
@@ -6299,44 +6287,37 @@ static int cstrncmp(char_u *s1, char_u *s2, int *n)
/*
* cstrchr: This function is used a lot for simple searches, keep it fast!
*/
-static char_u *cstrchr(char_u *s, int c)
+static inline char_u *cstrchr(const char_u *const s, const int c)
+ FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT FUNC_ATTR_NONNULL_ALL
+ FUNC_ATTR_ALWAYS_INLINE
{
- char_u *p;
- int cc;
-
- if (!ireg_ic
- || (!enc_utf8 && mb_char2len(c) > 1)
- )
+ if (!ireg_ic) {
return vim_strchr(s, c);
+ }
- /* tolower() and toupper() can be slow, comparing twice should be a lot
- * faster (esp. when using MS Visual C++!).
- * For UTF-8 need to use folded case. */
+ // Use folded case for UTF-8, slow! For ASCII use libc strpbrk which is
+ // expected to be highly optimized.
if (c > 0x80) {
- cc = utf_fold(c);
- } else if (mb_isupper(c)) {
- cc = mb_tolower(c);
- } else if (mb_islower(c)) {
- cc = mb_toupper(c);
+ const int folded_c = utf_fold(c);
+ for (const char_u *p = s; *p != NUL; p += utfc_ptr2len(p)) {
+ if (utf_fold(utf_ptr2char(p)) == folded_c) {
+ return (char_u *)p;
+ }
+ }
+ return NULL;
+ }
+
+ int cc;
+ if (ASCII_ISUPPER(c)) {
+ cc = TOLOWER_ASC(c);
+ } else if (ASCII_ISLOWER(c)) {
+ cc = TOUPPER_ASC(c);
} else {
return vim_strchr(s, c);
}
- if (has_mbyte) {
- for (p = s; *p != NUL; p += (*mb_ptr2len)(p)) {
- if (enc_utf8 && c > 0x80) {
- if (utf_fold(utf_ptr2char(p)) == cc)
- return p;
- } else if (*p == c || *p == cc)
- return p;
- }
- } else
- /* Faster version for when there are no multi-byte characters. */
- for (p = s; *p != NUL; ++p)
- if (*p == c || *p == cc)
- return p;
-
- return NULL;
+ char tofind[] = { (char)c, (char)cc, NUL };
+ return (char_u *)strpbrk((const char *)s, tofind);
}
/***************************************************************
diff --git a/src/nvim/regexp.h b/src/nvim/regexp.h
index 37513d8c27..97595c4d29 100644
--- a/src/nvim/regexp.h
+++ b/src/nvim/regexp.h
@@ -1,6 +1,10 @@
#ifndef NVIM_REGEXP_H
#define NVIM_REGEXP_H
+#include "nvim/types.h"
+#include "nvim/buffer_defs.h"
+#include "nvim/regexp_defs.h"
+
/* Second argument for vim_regcomp(). */
#define RE_MAGIC 1 /* 'magic' option */
#define RE_STRING 2 /* match in string instead of buffer text */
diff --git a/src/nvim/regexp_nfa.c b/src/nvim/regexp_nfa.c
index 139772d51e..24c156d2ba 100644
--- a/src/nvim/regexp_nfa.c
+++ b/src/nvim/regexp_nfa.c
@@ -634,6 +634,7 @@ static int nfa_recognize_char_class(char_u *start, char_u *end, int extra_newl)
config |= CLASS_o7;
break;
}
+ return FAIL;
case 'a':
if (*(p + 2) == 'z') {
config |= CLASS_az;
@@ -642,6 +643,7 @@ static int nfa_recognize_char_class(char_u *start, char_u *end, int extra_newl)
config |= CLASS_af;
break;
}
+ return FAIL;
case 'A':
if (*(p + 2) == 'Z') {
config |= CLASS_AZ;
@@ -650,7 +652,7 @@ static int nfa_recognize_char_class(char_u *start, char_u *end, int extra_newl)
config |= CLASS_AF;
break;
}
- /* FALLTHROUGH */
+ return FAIL;
default:
return FAIL;
}
@@ -4194,6 +4196,7 @@ skip_add:
subs = addstate(l, state->out, subs, pim, off_arg);
break;
}
+ // fallthrough
case NFA_MCLOSE1:
case NFA_MCLOSE2:
case NFA_MCLOSE3:
@@ -4855,17 +4858,10 @@ static int failure_chance(nfa_state_T *state, int depth)
*/
static int skip_to_start(int c, colnr_T *colp)
{
- char_u *s;
-
- /* Used often, do some work to avoid call overhead. */
- if (!ireg_ic
- && !has_mbyte
- )
- s = vim_strbyte(regline + *colp, c);
- else
- s = cstrchr(regline + *colp, c);
- if (s == NULL)
+ const char_u *const s = cstrchr(regline + *colp, c);
+ if (s == NULL) {
return FAIL;
+ }
*colp = (int)(s - regline);
return OK;
}
diff --git a/src/nvim/screen.c b/src/nvim/screen.c
index 10dc86d5fa..2f7fa8724f 100644
--- a/src/nvim/screen.c
+++ b/src/nvim/screen.c
@@ -132,6 +132,7 @@
#include "nvim/version.h"
#include "nvim/window.h"
#include "nvim/os/time.h"
+#include "nvim/api/private/helpers.h"
#define MB_FILLER_CHAR '<' /* character used when a double-width character
* doesn't fit. */
@@ -154,7 +155,6 @@ static schar_T *current_ScreenLine;
StlClickDefinition *tab_page_click_defs = NULL;
long tab_page_click_defs_size = 0;
-# define SCREEN_LINE(r, o, e, c, rl) screen_line((r), (o), (e), (c), (rl))
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "screen.c.generated.h"
#endif
@@ -379,15 +379,24 @@ void update_screen(int type)
))
curwin->w_redr_type = type;
- /* Redraw the tab pages line if needed. */
- if (redraw_tabline || type >= NOT_VALID)
+ // Redraw the tab pages line if needed.
+ if (redraw_tabline || type >= NOT_VALID) {
+ update_window_hl(curwin, type >= NOT_VALID);
+ FOR_ALL_TABS(tp) {
+ if (tp != curtab) {
+ update_window_hl(tp->tp_curwin, type >= NOT_VALID);
+ }
+ }
draw_tabline();
+ }
/*
* Correct stored syntax highlighting info for changes in each displayed
* buffer. Each buffer must only be done once.
*/
FOR_ALL_WINDOWS_IN_TAB(wp, curtab) {
+ update_window_hl(wp, type >= NOT_VALID);
+
if (wp->w_buffer->b_mod_set) {
win_T *wwp;
@@ -1487,11 +1496,11 @@ static void win_update(win_T *wp)
// Last line isn't finished: Display "@@@" in the last screen line.
screen_puts_len((char_u *)"@@", 2, scr_row, wp->w_wincol,
- hl_attr(HLF_AT));
+ win_hl_attr(wp, HLF_AT));
screen_fill(scr_row, scr_row + 1,
(int)wp->w_wincol + 2, (int)W_ENDCOL(wp),
- '@', ' ', hl_attr(HLF_AT));
+ '@', ' ', win_hl_attr(wp, HLF_AT));
set_empty_rows(wp, srow);
wp->w_botline = lnum;
} else if (dy_flags & DY_LASTLINE) { // 'display' has "lastline"
@@ -1499,7 +1508,7 @@ static void win_update(win_T *wp)
screen_fill(wp->w_winrow + wp->w_height - 1,
wp->w_winrow + wp->w_height,
W_ENDCOL(wp) - 3, W_ENDCOL(wp),
- '@', '@', hl_attr(HLF_AT));
+ '@', '@', win_hl_attr(wp, HLF_AT));
set_empty_rows(wp, srow);
wp->w_botline = lnum;
} else {
@@ -1583,6 +1592,8 @@ static void win_draw_end(win_T *wp, int c1, int c2, int row, int endrow, hlf_T h
# define FDC_OFF n
int fdc = compute_foldcolumn(wp, 0);
+ int attr = win_hl_attr(wp, hl);
+
if (wp->w_p_rl) {
// No check for cmdline window: should never be right-left.
n = fdc;
@@ -1593,7 +1604,7 @@ static void win_draw_end(win_T *wp, int c1, int c2, int row, int endrow, hlf_T h
n = wp->w_width;
screen_fill(wp->w_winrow + row, wp->w_winrow + endrow,
W_ENDCOL(wp) - n, W_ENDCOL(wp),
- ' ', ' ', hl_attr(HLF_FC));
+ ' ', ' ', win_hl_attr(wp, HLF_FC));
}
if (signcolumn_on(wp)) {
@@ -1605,16 +1616,16 @@ static void win_draw_end(win_T *wp, int c1, int c2, int row, int endrow, hlf_T h
}
screen_fill(wp->w_winrow + row, wp->w_winrow + endrow,
W_ENDCOL(wp) - nn, W_ENDCOL(wp) - n,
- ' ', ' ', hl_attr(HLF_SC));
+ ' ', ' ', win_hl_attr(wp, HLF_SC));
n = nn;
}
screen_fill(wp->w_winrow + row, wp->w_winrow + endrow,
wp->w_wincol, W_ENDCOL(wp) - 1 - FDC_OFF,
- c2, c2, hl_attr(hl));
+ c2, c2, attr);
screen_fill(wp->w_winrow + row, wp->w_winrow + endrow,
W_ENDCOL(wp) - 1 - FDC_OFF, W_ENDCOL(wp) - FDC_OFF,
- c1, c2, hl_attr(hl));
+ c1, c2, attr);
} else {
if (cmdwin_type != 0 && wp == curwin) {
/* draw the cmdline character in the leftmost column */
@@ -1623,7 +1634,7 @@ static void win_draw_end(win_T *wp, int c1, int c2, int row, int endrow, hlf_T h
n = wp->w_width;
screen_fill(wp->w_winrow + row, wp->w_winrow + endrow,
wp->w_wincol, wp->w_wincol + n,
- cmdwin_type, ' ', hl_attr(HLF_AT));
+ cmdwin_type, ' ', win_hl_attr(wp, HLF_AT));
}
if (fdc > 0) {
int nn = n + fdc;
@@ -1633,7 +1644,7 @@ static void win_draw_end(win_T *wp, int c1, int c2, int row, int endrow, hlf_T h
nn = wp->w_width;
screen_fill(wp->w_winrow + row, wp->w_winrow + endrow,
wp->w_wincol + n, wp->w_wincol + nn,
- ' ', ' ', hl_attr(HLF_FC));
+ ' ', ' ', win_hl_attr(wp, HLF_FC));
n = nn;
}
@@ -1646,13 +1657,13 @@ static void win_draw_end(win_T *wp, int c1, int c2, int row, int endrow, hlf_T h
}
screen_fill(wp->w_winrow + row, wp->w_winrow + endrow,
wp->w_wincol + n, wp->w_wincol + nn,
- ' ', ' ', hl_attr(HLF_SC));
+ ' ', ' ', win_hl_attr(wp, HLF_SC));
n = nn;
}
screen_fill(wp->w_winrow + row, wp->w_winrow + endrow,
wp->w_wincol + FDC_OFF, W_ENDCOL(wp),
- c1, c2, hl_attr(hl));
+ c1, c2, attr);
}
set_empty_rows(wp, row);
}
@@ -1714,10 +1725,9 @@ static void fold_line(win_T *wp, long fold_count, foldinfo_T *foldinfo, linenr_T
*/
if (cmdwin_type != 0 && wp == curwin) {
ScreenLines[off] = cmdwin_type;
- ScreenAttrs[off] = hl_attr(HLF_AT);
- if (enc_utf8)
- ScreenLinesUC[off] = 0;
- ++col;
+ ScreenAttrs[off] = win_hl_attr(wp, HLF_AT);
+ ScreenLinesUC[off] = 0;
+ col++;
}
// 2. Add the 'foldcolumn'
@@ -1729,12 +1739,14 @@ static void fold_line(win_T *wp, long fold_count, foldinfo_T *foldinfo, linenr_T
int i;
copy_text_attr(off + wp->w_width - fdc - col, buf, fdc,
- hl_attr(HLF_FC));
- /* reverse the fold column */
- for (i = 0; i < fdc; ++i)
+ win_hl_attr(wp, HLF_FC));
+ // reverse the fold column
+ for (i = 0; i < fdc; i++) {
ScreenLines[off + wp->w_width - i - 1 - col] = buf[i];
- } else
- copy_text_attr(off + col, buf, fdc, hl_attr(HLF_FC));
+ }
+ } else {
+ copy_text_attr(off + col, buf, fdc, win_hl_attr(wp, HLF_FC));
+ }
col += fdc;
}
@@ -1747,7 +1759,7 @@ static void fold_line(win_T *wp, long fold_count, foldinfo_T *foldinfo, linenr_T
/* Set all attributes of the 'number' or 'relativenumber' column and the
* text */
- RL_MEMSET(col, hl_attr(HLF_FL), wp->w_width - col);
+ RL_MEMSET(col, win_hl_attr(wp, HLF_FL), wp->w_width - col);
// If signs are being displayed, add two spaces.
if (signcolumn_on(wp)) {
@@ -1756,7 +1768,8 @@ static void fold_line(win_T *wp, long fold_count, foldinfo_T *foldinfo, linenr_T
if (len > 2) {
len = 2;
}
- copy_text_attr(off + col, (char_u *)" ", len, hl_attr(HLF_FL));
+ copy_text_attr(off + col, (char_u *)" ", len,
+ win_hl_attr(wp, HLF_FL));
col += len;
}
}
@@ -1788,13 +1801,14 @@ static void fold_line(win_T *wp, long fold_count, foldinfo_T *foldinfo, linenr_T
}
}
- sprintf((char *)buf, fmt, w, num);
- if (wp->w_p_rl)
- /* the line number isn't reversed */
+ snprintf((char *)buf, FOLD_TEXT_LEN, fmt, w, num);
+ if (wp->w_p_rl) {
+ // the line number isn't reversed
copy_text_attr(off + wp->w_width - len - col, buf, len,
- hl_attr(HLF_FL));
- else
- copy_text_attr(off + col, buf, len, hl_attr(HLF_FL));
+ win_hl_attr(wp, HLF_FL));
+ } else {
+ copy_text_attr(off + col, buf, len, win_hl_attr(wp, HLF_FL));
+ }
col += len;
}
}
@@ -1952,12 +1966,12 @@ static void fold_line(win_T *wp, long fold_count, foldinfo_T *foldinfo, linenr_T
len = wp->w_old_cursor_lcol;
else
len = wp->w_width - txtcol;
- RL_MEMSET(wp->w_old_cursor_fcol + txtcol, hl_attr(HLF_V),
- len - (int)wp->w_old_cursor_fcol);
+ RL_MEMSET(wp->w_old_cursor_fcol + txtcol, win_hl_attr(wp, HLF_V),
+ len - (int)wp->w_old_cursor_fcol);
}
} else {
- /* Set all attributes of the text */
- RL_MEMSET(txtcol, hl_attr(HLF_V), wp->w_width - txtcol);
+ // Set all attributes of the text
+ RL_MEMSET(txtcol, win_hl_attr(wp, HLF_V), wp->w_width - txtcol);
}
}
}
@@ -1977,7 +1991,7 @@ static void fold_line(win_T *wp, long fold_count, foldinfo_T *foldinfo, linenr_T
}
if (txtcol >= 0 && txtcol < wp->w_width) {
ScreenAttrs[off + txtcol] =
- hl_combine_attr(ScreenAttrs[off + txtcol], hl_attr(HLF_MC));
+ hl_combine_attr(ScreenAttrs[off + txtcol], win_hl_attr(wp, HLF_MC));
}
txtcol = old_txtcol;
j = wp->w_p_cc_cols[++i];
@@ -1993,11 +2007,11 @@ static void fold_line(win_T *wp, long fold_count, foldinfo_T *foldinfo, linenr_T
txtcol -= wp->w_leftcol;
if (txtcol >= 0 && txtcol < wp->w_width)
ScreenAttrs[off + txtcol] = hl_combine_attr(
- ScreenAttrs[off + txtcol], hl_attr(HLF_CUC));
+ ScreenAttrs[off + txtcol], win_hl_attr(wp, HLF_CUC));
}
- SCREEN_LINE(row + wp->w_winrow, wp->w_wincol, wp->w_width,
- wp->w_width, FALSE);
+ screen_line(row + wp->w_winrow, wp->w_wincol, wp->w_width,
+ wp->w_width, false, wp);
/*
* Update w_cline_height and w_cline_folded if the cursor line was
@@ -2196,7 +2210,7 @@ win_line (
bool search_attr_from_match = false; // if search_attr is from :match
bool has_bufhl = false; // this buffer has highlight matches
int bufhl_attr = 0; // attributes desired by bufhl
- bufhl_lineinfo_T bufhl_info; // bufhl data for this line
+ BufhlLineInfo bufhl_info; // bufhl data for this line
/* draw_state: items that are drawn in sequence: */
#define WL_START 0 /* nothing done yet */
@@ -2212,7 +2226,7 @@ win_line (
int syntax_flags = 0;
int syntax_seqnr = 0;
int prev_syntax_id = 0;
- int conceal_attr = hl_attr(HLF_CONCEAL);
+ int conceal_attr = win_hl_attr(wp, HLF_CONCEAL);
int is_concealing = false;
int boguscols = 0; ///< nonexistent columns added to
///< force wrapping
@@ -2360,8 +2374,8 @@ win_line (
/* if inverting in this line set area_highlighting */
if (fromcol >= 0) {
- area_highlighting = TRUE;
- attr = hl_attr(HLF_V);
+ area_highlighting = true;
+ attr = win_hl_attr(wp, HLF_V);
}
}
/*
@@ -2385,8 +2399,8 @@ win_line (
/* do at least one character; happens when past end of line */
if (fromcol == tocol)
tocol = fromcol + 1;
- area_highlighting = TRUE;
- attr = hl_attr(HLF_I);
+ area_highlighting = true;
+ attr = win_hl_attr(wp, HLF_I);
}
filler_lines = diff_check(wp, lnum);
@@ -2414,7 +2428,11 @@ win_line (
// Highlight the current line in the quickfix window.
if (bt_quickfix(wp->w_buffer) && qf_current_entry(wp) == lnum) {
- line_attr = hl_attr(HLF_QFL);
+ line_attr = win_hl_attr(wp, HLF_QFL);
+ }
+
+ if (wp->w_hl_attr_normal != 0) {
+ line_attr = hl_combine_attr(wp->w_hl_attr_normal, line_attr);
}
if (line_attr != 0) {
@@ -2642,9 +2660,9 @@ win_line (
&& !(wp == curwin && VIsual_active)) {
if (line_attr != 0 && !(State & INSERT) && bt_quickfix(wp->w_buffer)
&& qf_current_entry(wp) == lnum) {
- line_attr = hl_combine_attr(hl_attr(HLF_CUL), line_attr);
+ line_attr = hl_combine_attr(win_hl_attr(wp, HLF_CUL), line_attr);
} else {
- line_attr = hl_attr(HLF_CUL);
+ line_attr = win_hl_attr(wp, HLF_CUL);
}
area_highlighting = true;
}
@@ -2677,7 +2695,7 @@ win_line (
/* Draw the cmdline character. */
n_extra = 1;
c_extra = cmdwin_type;
- char_attr = hl_attr(HLF_AT);
+ char_attr = win_hl_attr(wp, HLF_AT);
}
}
@@ -2692,7 +2710,7 @@ win_line (
p_extra = extra;
p_extra[n_extra] = NUL;
c_extra = NUL;
- char_attr = hl_attr(HLF_FC);
+ char_attr = win_hl_attr(wp, HLF_FC);
}
}
@@ -2705,7 +2723,7 @@ win_line (
int text_sign;
/* Draw two cells with the sign value or blank. */
c_extra = ' ';
- char_attr = hl_attr(HLF_SC);
+ char_attr = win_hl_attr(wp, HLF_SC);
n_extra = 2;
if (row == startrow + filler_lines && filler_todo <= 0) {
@@ -2762,14 +2780,15 @@ win_line (
} else
c_extra = ' ';
n_extra = number_width(wp) + 1;
- char_attr = hl_attr(HLF_N);
- /* When 'cursorline' is set highlight the line number of
- * the current line differently.
- * TODO: Can we use CursorLine instead of CursorLineNr
- * when CursorLineNr isn't set? */
+ char_attr = win_hl_attr(wp, HLF_N);
+ // When 'cursorline' is set highlight the line number of
+ // the current line differently.
+ // TODO(vim): Can we use CursorLine instead of CursorLineNr
+ // when CursorLineNr isn't set?
if ((wp->w_p_cul || wp->w_p_rnu)
- && lnum == wp->w_cursor.lnum)
- char_attr = hl_attr(HLF_CLN);
+ && lnum == wp->w_cursor.lnum) {
+ char_attr = win_hl_attr(wp, HLF_CLN);
+ }
}
}
@@ -2786,12 +2805,12 @@ win_line (
if (draw_state == WL_BRI - 1 && n_extra == 0) {
draw_state = WL_BRI;
if (wp->w_p_bri && row != startrow && filler_lines == 0) {
- char_attr = 0; // was: hl_attr(HLF_AT);
+ char_attr = wp->w_hl_attr_normal; // was: hl_attr(HLF_AT);
if (diff_hlf != (hlf_T)0) {
- char_attr = hl_attr(diff_hlf);
+ char_attr = win_hl_attr(wp, diff_hlf);
if (wp->w_p_cul && lnum == wp->w_cursor.lnum) {
- char_attr = hl_combine_attr(char_attr, hl_attr(HLF_CUL));
+ char_attr = hl_combine_attr(char_attr, win_hl_attr(wp, HLF_CUL));
}
}
p_extra = NULL;
@@ -2816,15 +2835,15 @@ win_line (
n_extra = col + 1;
else
n_extra = wp->w_width - col;
- char_attr = hl_attr(HLF_DED);
+ char_attr = win_hl_attr(wp, HLF_DED);
}
if (*p_sbr != NUL && need_showbreak) {
/* Draw 'showbreak' at the start of each broken line. */
p_extra = p_sbr;
c_extra = NUL;
n_extra = (int)STRLEN(p_sbr);
- char_attr = hl_attr(HLF_AT);
- need_showbreak = FALSE;
+ char_attr = win_hl_attr(wp, HLF_AT);
+ need_showbreak = false;
vcol_sbr = vcol + MB_CHARLEN(p_sbr);
/* Correct end of highlighted area for 'showbreak',
* required when 'linebreak' is also set. */
@@ -2832,7 +2851,7 @@ win_line (
tocol += n_extra;
/* combine 'showbreak' with 'cursorline' */
if (wp->w_p_cul && lnum == wp->w_cursor.lnum) {
- char_attr = hl_combine_attr(char_attr, hl_attr(HLF_CUL));
+ char_attr = hl_combine_attr(char_attr, win_hl_attr(wp, HLF_CUL));
}
}
}
@@ -2845,8 +2864,9 @@ win_line (
c_extra = saved_c_extra;
p_extra = saved_p_extra;
char_attr = saved_char_attr;
- } else
- char_attr = 0;
+ } else {
+ char_attr = wp->w_hl_attr_normal;
+ }
}
}
@@ -2855,13 +2875,14 @@ win_line (
&& lnum == wp->w_cursor.lnum && vcol >= (long)wp->w_virtcol
&& filler_todo <= 0
) {
- SCREEN_LINE(screen_row, wp->w_wincol, col, -wp->w_width, wp->w_p_rl);
- /* Pretend we have finished updating the window. Except when
- * 'cursorcolumn' is set. */
- if (wp->w_p_cuc)
+ screen_line(screen_row, wp->w_wincol, col, -wp->w_width, wp->w_p_rl, wp);
+ // Pretend we have finished updating the window. Except when
+ // 'cursorcolumn' is set.
+ if (wp->w_p_cuc) {
row = wp->w_cline_row + wp->w_cline_height;
- else
+ } else {
row = wp->w_height;
+ }
break;
}
@@ -2989,14 +3010,16 @@ win_line (
if (diff_hlf != (hlf_T)0) {
if (diff_hlf == HLF_CHD && ptr - line >= change_start
- && n_extra == 0)
- diff_hlf = HLF_TXD; /* changed text */
+ && n_extra == 0) {
+ diff_hlf = HLF_TXD; // changed text
+ }
if (diff_hlf == HLF_TXD && ptr - line > change_end
- && n_extra == 0)
- diff_hlf = HLF_CHD; /* changed line */
- line_attr = hl_attr(diff_hlf);
+ && n_extra == 0) {
+ diff_hlf = HLF_CHD; // changed line
+ }
+ line_attr = win_hl_attr(wp, diff_hlf);
if (wp->w_p_cul && lnum == wp->w_cursor.lnum) {
- line_attr = hl_combine_attr(line_attr, hl_attr(HLF_CUL));
+ line_attr = hl_combine_attr(line_attr, win_hl_attr(wp, HLF_CUL));
}
}
@@ -3012,14 +3035,15 @@ win_line (
// (area_attr may be 0 when "noinvcur" is set).
else if (line_attr != 0 && ((fromcol == -10 && tocol == MAXCOL)
|| vcol < fromcol || vcol_prev < fromcol_prev
- || vcol >= tocol))
+ || vcol >= tocol)) {
char_attr = line_attr;
- else {
- attr_pri = FALSE;
- if (has_syntax)
+ } else {
+ attr_pri = false;
+ if (has_syntax) {
char_attr = syntax_attr;
- else
- char_attr = 0;
+ } else {
+ char_attr = wp->w_hl_attr_normal;
+ }
}
}
@@ -3080,12 +3104,13 @@ win_line (
c = '>';
mb_c = c;
mb_l = 1;
- mb_utf8 = FALSE;
- multi_attr = hl_attr(HLF_AT);
- /* put the pointer back to output the double-width
- * character at the start of the next line. */
- ++n_extra;
- --p_extra;
+ mb_utf8 = false;
+ multi_attr = win_hl_attr(wp, HLF_AT);
+
+ // put the pointer back to output the double-width
+ // character at the start of the next line.
+ n_extra++;
+ p_extra--;
} else {
n_extra -= mb_l - 1;
p_extra += mb_l - 1;
@@ -3148,8 +3173,8 @@ win_line (
c_extra = NUL;
if (area_attr == 0 && search_attr == 0) {
n_attr = n_extra + 1;
- extra_attr = hl_attr(HLF_8);
- saved_attr2 = char_attr; /* save current attr */
+ extra_attr = win_hl_attr(wp, HLF_8);
+ saved_attr2 = char_attr; // save current attr
}
} else if (mb_l == 0) /* at the NUL at end-of-line */
mb_l = 1;
@@ -3201,8 +3226,8 @@ win_line (
c = *p_extra++;
if (area_attr == 0 && search_attr == 0) {
n_attr = n_extra + 1;
- extra_attr = hl_attr(HLF_8);
- saved_attr2 = char_attr; /* save current attr */
+ extra_attr = win_hl_attr(wp, HLF_8);
+ saved_attr2 = char_attr; // save current attr
}
mb_c = c;
}
@@ -3219,12 +3244,13 @@ win_line (
mb_c = c;
mb_utf8 = FALSE;
mb_l = 1;
- multi_attr = hl_attr(HLF_AT);
- /* Put pointer back so that the character will be
- * displayed at the start of the next line. */
- --ptr;
- } else if (*ptr != NUL)
+ multi_attr = win_hl_attr(wp, HLF_AT);
+ // Put pointer back so that the character will be
+ // displayed at the start of the next line.
+ ptr--;
+ } else if (*ptr != NUL) {
ptr += mb_l - 1;
+ }
/* If a double-width char doesn't fit at the left side display
* a '<' in the first column. Don't do this for unprintable
@@ -3235,8 +3261,8 @@ win_line (
c = ' ';
if (area_attr == 0 && search_attr == 0) {
n_attr = n_extra + 1;
- extra_attr = hl_attr(HLF_AT);
- saved_attr2 = char_attr; /* save current attr */
+ extra_attr = win_hl_attr(wp, HLF_AT);
+ saved_attr2 = char_attr; // save current attr
}
mb_c = c;
mb_utf8 = FALSE;
@@ -3284,7 +3310,7 @@ win_line (
else
syntax_flags = get_syntax_info(&syntax_seqnr);
} else if (!attr_pri) {
- char_attr = 0;
+ char_attr = wp->w_hl_attr_normal;
}
/* Check spelling (unless at the end of the line).
@@ -3410,7 +3436,7 @@ win_line (
|| (c == ' ' && lcs_space && ptr - line <= trailcol))) {
c = (c == ' ') ? lcs_space : lcs_nbsp;
n_attr = 1;
- extra_attr = hl_attr(HLF_0);
+ extra_attr = win_hl_attr(wp, HLF_0);
saved_attr2 = char_attr; // save current attr
mb_c = c;
if (enc_utf8 && (*mb_char2len)(c) > 1) {
@@ -3425,7 +3451,7 @@ win_line (
if (trailcol != MAXCOL && ptr > line + trailcol && c == ' ') {
c = lcs_trail;
n_attr = 1;
- extra_attr = hl_attr(HLF_0);
+ extra_attr = win_hl_attr(wp, HLF_0);
saved_attr2 = char_attr; // save current attr
mb_c = c;
if (enc_utf8 && (*mb_char2len)(c) > 1) {
@@ -3526,7 +3552,7 @@ win_line (
c_extra = lcs_tab2;
}
n_attr = tab_len + 1;
- extra_attr = hl_attr(HLF_0);
+ extra_attr = win_hl_attr(wp, HLF_0);
saved_attr2 = char_attr; // save current attr
mb_c = c;
if (enc_utf8 && (*mb_char2len)(c) > 1) {
@@ -3573,7 +3599,7 @@ win_line (
}
lcs_eol_one = -1;
ptr--; // put it back at the NUL
- extra_attr = hl_attr(HLF_AT);
+ extra_attr = win_hl_attr(wp, HLF_AT);
n_attr = 1;
mb_c = c;
if (enc_utf8 && (*mb_char2len)(c) > 1) {
@@ -3604,7 +3630,7 @@ win_line (
c = *p_extra++;
}
n_attr = n_extra + 1;
- extra_attr = hl_attr(HLF_8);
+ extra_attr = win_hl_attr(wp, HLF_8);
saved_attr2 = char_attr; // save current attr
mb_utf8 = false; // don't draw as UTF-8
} else if (VIsual_active
@@ -3636,9 +3662,10 @@ win_line (
if (diff_hlf == HLF_TXD) {
diff_hlf = HLF_CHD;
if (attr == 0 || char_attr != attr) {
- char_attr = hl_attr(diff_hlf);
+ char_attr = win_hl_attr(wp, diff_hlf);
if (wp->w_p_cul && lnum == wp->w_cursor.lnum) {
- char_attr = hl_combine_attr(char_attr, hl_attr(HLF_CUL));
+ char_attr = hl_combine_attr(char_attr,
+ win_hl_attr(wp, HLF_CUL));
}
}
}
@@ -3740,7 +3767,7 @@ win_line (
c_extra = MB_FILLER_CHAR;
n_extra = 1;
n_attr = 2;
- extra_attr = hl_attr(HLF_AT);
+ extra_attr = win_hl_attr(wp, HLF_AT);
}
mb_c = c;
if (enc_utf8 && (*mb_char2len)(c) > 1) {
@@ -3751,7 +3778,7 @@ win_line (
mb_utf8 = false; // don't draw as UTF-8
}
saved_attr3 = char_attr; // save current attr
- char_attr = hl_attr(HLF_AT); // later copied to char_attr
+ char_attr = win_hl_attr(wp, HLF_AT); // overwriting char_attr
n_attr3 = 1;
}
@@ -3835,6 +3862,10 @@ win_line (
}
}
}
+
+ if (wp->w_hl_attr_normal != 0) {
+ char_attr = hl_combine_attr(wp->w_hl_attr_normal, char_attr);
+ }
ScreenAttrs[off] = char_attr;
if (wp->w_p_rl) {
--col;
@@ -3896,6 +3927,9 @@ win_line (
if (rightmost_vcol < color_cols[i])
rightmost_vcol = color_cols[i];
+ int cuc_attr = win_hl_attr(wp, HLF_CUC);
+ int mc_attr = win_hl_attr(wp, HLF_MC);
+
while (col < wp->w_width) {
ScreenLines[off] = ' ';
if (enc_utf8)
@@ -3905,12 +3939,13 @@ win_line (
draw_color_col = advance_color_col(VCOL_HLC,
&color_cols);
- if (wp->w_p_cuc && VCOL_HLC == (long)wp->w_virtcol)
- ScreenAttrs[off++] = hl_attr(HLF_CUC);
- else if (draw_color_col && VCOL_HLC == *color_cols)
- ScreenAttrs[off++] = hl_attr(HLF_MC);
- else
- ScreenAttrs[off++] = 0;
+ if (wp->w_p_cuc && VCOL_HLC == (long)wp->w_virtcol) {
+ ScreenAttrs[off++] = cuc_attr;
+ } else if (draw_color_col && VCOL_HLC == *color_cols) {
+ ScreenAttrs[off++] = mc_attr;
+ } else {
+ ScreenAttrs[off++] = wp->w_hl_attr_normal;
+ }
if (VCOL_HLC >= rightmost_vcol)
break;
@@ -3919,6 +3954,7 @@ win_line (
}
}
+ // TODO(bfredl): integrate with the common beyond-the-end-loop
if (wp->w_buffer->terminal) {
// terminal buffers may need to highlight beyond the end of the
// logical line
@@ -3931,7 +3967,7 @@ win_line (
col++;
}
}
- SCREEN_LINE(screen_row, wp->w_wincol, col, wp->w_width, wp->w_p_rl);
+ screen_line(screen_row, wp->w_wincol, col, wp->w_width, wp->w_p_rl, wp);
row++;
/*
@@ -3959,7 +3995,7 @@ win_line (
|| (wp->w_p_list && lcs_eol_one > 0)
|| (n_extra && (c_extra != NUL || *p_extra != NUL)))) {
c = lcs_ext;
- char_attr = hl_attr(HLF_AT);
+ char_attr = win_hl_attr(wp, HLF_AT);
mb_c = c;
if (enc_utf8 && (*mb_char2len)(c) > 1) {
mb_utf8 = TRUE;
@@ -3982,10 +4018,10 @@ win_line (
if (wp->w_p_cuc && VCOL_HLC == (long)wp->w_virtcol
&& lnum != wp->w_cursor.lnum) {
vcol_save_attr = char_attr;
- char_attr = hl_combine_attr(char_attr, hl_attr(HLF_CUC));
+ char_attr = hl_combine_attr(char_attr, win_hl_attr(wp, HLF_CUC));
} else if (draw_color_col && VCOL_HLC == *color_cols) {
vcol_save_attr = char_attr;
- char_attr = hl_combine_attr(char_attr, hl_attr(HLF_MC));
+ char_attr = hl_combine_attr(char_attr, win_hl_attr(wp, HLF_MC));
}
}
@@ -4153,8 +4189,8 @@ win_line (
|| (wp->w_p_list && lcs_eol != NUL && p_extra != at_end_str)
|| (n_extra != 0 && (c_extra != NUL || *p_extra != NUL)))
) {
- SCREEN_LINE(screen_row, wp->w_wincol, col - boguscols,
- wp->w_width, wp->w_p_rl);
+ screen_line(screen_row, wp->w_wincol, col - boguscols,
+ wp->w_width, wp->w_p_rl, wp);
boguscols = 0;
++row;
++screen_row;
@@ -4322,7 +4358,8 @@ static int char_needs_redraw(int off_from, int off_to, int cols)
* When TRUE and "clear_width" > 0, clear columns 0 to "endcol"
* When FALSE and "clear_width" > 0, clear columns "endcol" to "clear_width"
*/
-static void screen_line(int row, int coloff, int endcol, int clear_width, int rlflag)
+static void screen_line(int row, int coloff, int endcol,
+ int clear_width, int rlflag, win_T *wp)
{
unsigned off_from;
unsigned off_to;
@@ -4484,11 +4521,11 @@ static void screen_line(int row, int coloff, int endcol, int clear_width, int rl
}
if (clear_width > 0) {
- /* For a window that's left of another, draw the separator char. */
- if (col + coloff < Columns) {
+ // For a window that's left of another, draw the separator char.
+ if (col + coloff < Columns && wp->w_vsep_width > 0) {
int c;
- c = fillchar_vsep(&hl);
+ c = fillchar_vsep(wp, &hl);
if (ScreenLines[off_to] != (schar_T)c
|| (enc_utf8 && (int)ScreenLinesUC[off_to]
!= (c >= 0x80 ? c : 0))
@@ -4593,8 +4630,8 @@ static void draw_vsep_win(win_T *wp, int row)
int c;
if (wp->w_vsep_width) {
- /* draw the vertical separator right of this window */
- c = fillchar_vsep(&hl);
+ // draw the vertical separator right of this window
+ c = fillchar_vsep(wp, &hl);
screen_fill(wp->w_winrow + row, wp->w_winrow + wp->w_height,
W_ENDCOL(wp), W_ENDCOL(wp) + 1,
c, ' ', hl);
@@ -4724,7 +4761,7 @@ win_redr_status_matches (
--first_match;
}
- fillchar = fillchar_status(&attr, TRUE);
+ fillchar = fillchar_status(&attr, curwin);
if (first_match == 0) {
*buf = NUL;
@@ -4856,7 +4893,7 @@ void win_redr_status(win_T *wp)
/* redraw custom status line */
redraw_custom_statusline(wp);
} else {
- fillchar = fillchar_status(&attr, wp == curwin);
+ fillchar = fillchar_status(&attr, wp);
get_trans_bufname(wp->w_buffer);
p = NameBuff;
@@ -4928,10 +4965,11 @@ void win_redr_status(win_T *wp)
* May need to draw the character below the vertical separator.
*/
if (wp->w_vsep_width != 0 && wp->w_status_height != 0 && redrawing()) {
- if (stl_connected(wp))
- fillchar = fillchar_status(&attr, wp == curwin);
- else
- fillchar = fillchar_vsep(&attr);
+ if (stl_connected(wp)) {
+ fillchar = fillchar_status(&attr, wp);
+ } else {
+ fillchar = fillchar_vsep(wp, &attr);
+ }
screen_putchar(fillchar, wp->w_winrow + wp->w_height,
W_ENDCOL(wp), attr);
}
@@ -5081,7 +5119,7 @@ win_redr_custom (
use_sandbox = was_set_insecurely((char_u *)"tabline", 0);
} else {
row = wp->w_winrow + wp->w_height;
- fillchar = fillchar_status(&attr, wp == curwin);
+ fillchar = fillchar_status(&attr, wp);
maxwidth = wp->w_width;
if (draw_ruler) {
@@ -5466,8 +5504,7 @@ static void start_search_hl(void)
{
if (p_hls && !no_hlsearch) {
last_pat_prog(&search_hl.rm);
- search_hl.attr = hl_attr(HLF_L);
- /* Set the time limit to 'redrawtime'. */
+ // Set the time limit to 'redrawtime'.
search_hl.tm = profile_setlimit(p_rdt);
}
}
@@ -5483,6 +5520,42 @@ static void end_search_hl(void)
}
}
+static void update_window_hl(win_T *wp, bool invalid)
+{
+ if (!wp->w_hl_needs_update && !invalid) {
+ return;
+ }
+ wp->w_hl_needs_update = false;
+
+ // determine window specific background set in 'winhighlight'
+ if (wp != curwin && wp->w_hl_ids[HLF_INACTIVE] > 0) {
+ wp->w_hl_attr_normal = syn_id2attr(wp->w_hl_ids[HLF_INACTIVE]);
+ } else if (wp->w_hl_id_normal > 0) {
+ wp->w_hl_attr_normal = syn_id2attr(wp->w_hl_id_normal);
+ } else {
+ wp->w_hl_attr_normal = 0;
+ }
+ if (wp != curwin) {
+ wp->w_hl_attr_normal = hl_combine_attr(hl_attr(HLF_INACTIVE),
+ wp->w_hl_attr_normal);
+ }
+
+ for (int hlf = 0; hlf < (int)HLF_COUNT; hlf++) {
+ int attr;
+ if (wp->w_hl_ids[hlf] > 0) {
+ attr = syn_id2attr(wp->w_hl_ids[hlf]);
+ } else {
+ attr = hl_attr(hlf);
+ }
+ if (wp->w_hl_attr_normal != 0) {
+ attr = hl_combine_attr(wp->w_hl_attr_normal, attr);
+ }
+ wp->w_hl_attrs[hlf] = attr;
+ }
+}
+
+
+
/*
* Init for calling prepare_search_hl().
*/
@@ -5509,7 +5582,9 @@ static void init_search_hl(win_T *wp)
search_hl.buf = wp->w_buffer;
search_hl.lnum = 0;
search_hl.first_lnum = 0;
- /* time limit is set at the toplevel, for all windows */
+ search_hl.attr = win_hl_attr(wp, HLF_L);
+
+ // time limit is set at the toplevel, for all windows
}
/*
@@ -5902,7 +5977,7 @@ void screen_fill(int start_row, int end_row, int start_col, int end_col, int c1,
col = off - LineOffset[row];
screen_stop_highlight();
ui_cursor_goto(row, col); // clear rest of this screen line
- ui_eol_clear();
+ ui_call_eol_clear();
col = end_col - col;
while (col--) { /* clear chars in ScreenLines */
ScreenLines[off] = ' ';
@@ -6291,10 +6366,10 @@ static void screenclear2(void)
LineWraps[i] = FALSE;
}
- ui_clear(); // clear the display
- clear_cmdline = FALSE;
- mode_displayed = FALSE;
- screen_cleared = TRUE; /* can use contents of ScreenLines now */
+ ui_call_clear(); // clear the display
+ clear_cmdline = false;
+ mode_displayed = false;
+ screen_cleared = true; // can use contents of ScreenLines now
win_rest_invalid(firstwin);
redraw_cmdline = TRUE;
@@ -6593,7 +6668,7 @@ int screen_ins_lines (
}
}
- ui_append_lines(line_count);
+ ui_call_scroll(-line_count);
return OK;
}
@@ -6648,7 +6723,7 @@ int screen_del_lines (
}
}
- ui_delete_lines(line_count);
+ ui_call_scroll(line_count);
return OK;
}
@@ -6721,7 +6796,7 @@ int showmode(void)
if (edit_submode_extra != NULL) {
MSG_PUTS_ATTR(" ", attr); // Add a space in between.
if ((int)edit_submode_highl < (int)HLF_COUNT) {
- sub_attr = hl_attr(edit_submode_highl);
+ sub_attr = win_hl_attr(curwin, edit_submode_highl);
} else {
sub_attr = attr;
}
@@ -6874,7 +6949,6 @@ static void draw_tabline(void)
int modified;
int c;
int len;
- int attr_sel = hl_attr(HLF_TPS);
int attr_nosel = hl_attr(HLF_TP);
int attr_fill = hl_attr(HLF_TPF);
char_u *p;
@@ -6887,6 +6961,10 @@ static void draw_tabline(void)
}
redraw_tabline = false;
+ if (ui_is_external(kUITabline)) {
+ ui_ext_tabline_update();
+ return;
+ }
if (tabline_height() < 1)
return;
@@ -6932,16 +7010,6 @@ static void draw_tabline(void)
scol = col;
- if (tp->tp_topframe == topframe)
- attr = attr_sel;
- if (use_sep_chars && col > 0)
- screen_putchar('|', 0, col++, attr);
-
- if (tp->tp_topframe != topframe)
- attr = attr_nosel;
-
- screen_putchar(' ', 0, col++, attr);
-
if (tp == curtab) {
cwp = curwin;
wp = firstwin;
@@ -6950,10 +7018,29 @@ static void draw_tabline(void)
wp = tp->tp_firstwin;
}
- modified = FALSE;
- for (wincount = 0; wp != NULL; wp = wp->w_next, ++wincount)
- if (bufIsChanged(wp->w_buffer))
- modified = TRUE;
+
+ if (tp->tp_topframe == topframe) {
+ attr = win_hl_attr(cwp, HLF_TPS);
+ }
+ if (use_sep_chars && col > 0) {
+ screen_putchar('|', 0, col++, attr);
+ }
+
+ if (tp->tp_topframe != topframe) {
+ attr = win_hl_attr(cwp, HLF_TP);
+ }
+
+ screen_putchar(' ', 0, col++, attr);
+
+ modified = false;
+
+ for (wincount = 0; wp != NULL; wp = wp->w_next, ++wincount) {
+ if (bufIsChanged(wp->w_buffer)) {
+ modified = true;
+ }
+ }
+
+
if (modified || wincount > 1) {
if (wincount > 1) {
vim_snprintf((char *)NameBuff, MAXPATHL, "%d", wincount);
@@ -6961,7 +7048,7 @@ static void draw_tabline(void)
if (col + len >= Columns - 3)
break;
screen_puts_len(NameBuff, len, 0, col,
- hl_combine_attr(attr, hl_attr(HLF_T)));
+ hl_combine_attr(attr, win_hl_attr(cwp, HLF_T)));
col += len;
}
if (modified)
@@ -7027,6 +7114,22 @@ static void draw_tabline(void)
redraw_tabline = FALSE;
}
+void ui_ext_tabline_update(void)
+{
+ Array tabs = ARRAY_DICT_INIT;
+ FOR_ALL_TABS(tp) {
+ Dictionary tab_info = ARRAY_DICT_INIT;
+ PUT(tab_info, "tab", TABPAGE_OBJ(tp->handle));
+
+ win_T *cwp = (tp == curtab) ? curwin : tp->tp_curwin;
+ get_trans_bufname(cwp->w_buffer);
+ PUT(tab_info, "name", STRING_OBJ(cstr_to_string((char *)NameBuff)));
+
+ ADD(tabs, DICTIONARY_OBJ(tab_info));
+ }
+ ui_call_tabline_update(curtab->handle, tabs);
+}
+
/*
* Get buffer name for "buf" into NameBuff[].
* Takes care of special buffer names and translates special characters.
@@ -7043,25 +7146,28 @@ void get_trans_bufname(buf_T *buf)
/*
* Get the character to use in a status line. Get its attributes in "*attr".
*/
-static int fillchar_status(int *attr, int is_curwin)
+static int fillchar_status(int *attr, win_T *wp)
{
int fill;
+ bool is_curwin = (wp == curwin);
if (is_curwin) {
- *attr = hl_attr(HLF_S);
+ *attr = win_hl_attr(wp, HLF_S);
fill = fill_stl;
} else {
- *attr = hl_attr(HLF_SNC);
+ *attr = win_hl_attr(wp, HLF_SNC);
fill = fill_stlnc;
}
/* Use fill when there is highlighting, and highlighting of current
* window differs, or the fillchars differ, or this is not the
* current window */
- if (*attr != 0 && ((hl_attr(HLF_S) != hl_attr(HLF_SNC)
+ if (*attr != 0 && ((win_hl_attr(wp, HLF_S) != win_hl_attr(wp, HLF_SNC)
|| !is_curwin || firstwin == lastwin)
- || (fill_stl != fill_stlnc)))
+ || (fill_stl != fill_stlnc))) {
return fill;
- if (is_curwin)
+ }
+ if (is_curwin) {
return '^';
+ }
return '=';
}
@@ -7069,13 +7175,14 @@ static int fillchar_status(int *attr, int is_curwin)
* Get the character to use in a separator between vertically split windows.
* Get its attributes in "*attr".
*/
-static int fillchar_vsep(int *attr)
+static int fillchar_vsep(win_T *wp, int *attr)
{
- *attr = hl_attr(HLF_C);
- if (*attr == 0 && fill_vert == ' ')
+ *attr = win_hl_attr(wp, HLF_C);
+ if (*attr == 0 && fill_vert == ' ') {
return '|';
- else
+ } else {
return fill_vert;
+ }
}
/*
@@ -7190,7 +7297,7 @@ static void win_redr_ruler(win_T *wp, int always)
if (wp->w_status_height) {
row = wp->w_winrow + wp->w_height;
- fillchar = fillchar_status(&attr, wp == curwin);
+ fillchar = fillchar_status(&attr, wp);
off = wp->w_wincol;
width = wp->w_width;
} else {
diff --git a/src/nvim/search.c b/src/nvim/search.c
index c662e3ba40..1bf2317d2a 100644
--- a/src/nvim/search.c
+++ b/src/nvim/search.c
@@ -616,7 +616,7 @@ int searchit(
* otherwise "/$" will get stuck on end of line.
*/
while (matchpos.lnum == 0
- && ((options & SEARCH_END) && first_match
+ && (((options & SEARCH_END) && first_match)
? (nmatched == 1
&& (int)endpos.col - 1
< (int)start_pos.col + extra_col)
@@ -1005,14 +1005,13 @@ int do_search(
dircp = NULL;
/* use previous pattern */
if (pat == NULL || *pat == NUL || *pat == dirc) {
- if (spats[RE_SEARCH].pat == NULL) { /* no previous pattern */
- pat = spats[RE_SUBST].pat;
- if (pat == NULL) {
+ if (spats[RE_SEARCH].pat == NULL) { // no previous pattern
+ searchstr = spats[RE_SUBST].pat;
+ if (searchstr == NULL) {
EMSG(_(e_noprevre));
retval = 0;
goto end_do_search;
}
- searchstr = pat;
} else {
/* make search_regcomp() use spats[RE_SEARCH].pat */
searchstr = (char_u *)"";
diff --git a/src/nvim/sha256.h b/src/nvim/sha256.h
index a118826542..deb881a288 100644
--- a/src/nvim/sha256.h
+++ b/src/nvim/sha256.h
@@ -2,6 +2,7 @@
#define NVIM_SHA256_H
#include <stdint.h> // for uint32_t
+#include <stddef.h>
#include "nvim/types.h" // for char_u
diff --git a/src/nvim/shada.c b/src/nvim/shada.c
index a6d8cb6563..4788b1e7d0 100644
--- a/src/nvim/shada.c
+++ b/src/nvim/shada.c
@@ -98,6 +98,7 @@ KHASH_SET_INIT_STR(strset)
#define REG_KEY_TYPE "rt"
#define REG_KEY_WIDTH "rw"
#define REG_KEY_CONTENTS "rc"
+#define REG_KEY_UNNAMED "ru"
#define KEY_LNUM "l"
#define KEY_COL "c"
@@ -284,6 +285,7 @@ typedef struct {
char name;
MotionType type;
char **contents;
+ bool is_unnamed;
size_t contents_size;
size_t width;
dict_T *additional_data;
@@ -473,6 +475,7 @@ static const ShadaEntry sd_default_values[] = {
.type = kMTCharWise,
.contents = NULL,
.contents_size = 0,
+ .is_unnamed = false,
.width = 0,
.additional_data = NULL),
DEF_SDE(Variable, global_var,
@@ -1277,8 +1280,6 @@ static void shada_read(ShaDaReadDef *const sd_reader, const int flags)
if (cur_entry.data.search_pattern.is_last_used) {
set_last_used_pattern(
cur_entry.data.search_pattern.is_substitute_pattern);
- }
- if (cur_entry.data.search_pattern.is_last_used) {
SET_NO_HLSEARCH(!cur_entry.data.search_pattern.highlighted);
}
// Do not free shada entry: its allocated memory was saved above.
@@ -1337,7 +1338,7 @@ static void shada_read(ShaDaReadDef *const sd_reader, const int flags)
.y_width = (colnr_T) cur_entry.data.reg.width,
.timestamp = cur_entry.timestamp,
.additional_data = cur_entry.data.reg.additional_data,
- })) {
+ }, cur_entry.data.reg.is_unnamed)) {
shada_free_shada_entry(&cur_entry);
}
// Do not free shada entry: its allocated memory was saved above.
@@ -1782,6 +1783,7 @@ static ShaDaWriteResult shada_pack_entry(msgpack_packer *const packer,
2 // Register contents and name
+ ONE_IF_NOT_DEFAULT(entry, reg.type)
+ ONE_IF_NOT_DEFAULT(entry, reg.width)
+ + ONE_IF_NOT_DEFAULT(entry, reg.is_unnamed)
// Additional entries, if any:
+ (size_t) (entry.data.reg.additional_data == NULL
? 0
@@ -1802,6 +1804,14 @@ static ShaDaWriteResult shada_pack_entry(msgpack_packer *const packer,
PACK_STATIC_STR(REG_KEY_WIDTH);
msgpack_pack_uint64(spacker, (uint64_t) entry.data.reg.width);
}
+ if (!CHECK_DEFAULT(entry, reg.is_unnamed)) {
+ PACK_STATIC_STR(REG_KEY_UNNAMED);
+ if (entry.data.reg.is_unnamed) {
+ msgpack_pack_true(spacker);
+ } else {
+ msgpack_pack_false(spacker);
+ }
+ }
DUMP_ADDITIONAL_DATA(entry.data.reg.additional_data, "register item");
break;
}
@@ -2047,7 +2057,7 @@ static inline ShaDaWriteResult shada_read_when_writing(
}
case kSDReadStatusNotShaDa: {
ret = kSDWriteReadNotShada;
- // fallthrough
+ FALLTHROUGH;
}
case kSDReadStatusReadError: {
return ret;
@@ -2320,6 +2330,48 @@ static inline void add_search_pattern(PossiblyFreedShadaEntry *const ret_pse,
}
}
+/// Initialize registers for writing to the ShaDa file
+///
+/// @param[in] wms The WriteMergerState used when writing.
+/// @param[in] max_reg_lines The maximum number of register lines.
+static inline void shada_initialize_registers(WriteMergerState *const wms,
+ int max_reg_lines)
+ FUNC_ATTR_NONNULL_ALL FUNC_ATTR_ALWAYS_INLINE
+{
+ const void *reg_iter = NULL;
+ const bool limit_reg_lines = max_reg_lines >= 0;
+ do {
+ yankreg_T reg;
+ char name = NUL;
+ bool is_unnamed = false;
+ reg_iter = op_register_iter(reg_iter, &name, &reg, &is_unnamed);
+ if (name == NUL) {
+ break;
+ }
+ if (limit_reg_lines && reg.y_size > (size_t)max_reg_lines) {
+ continue;
+ }
+ wms->registers[op_reg_index(name)] = (PossiblyFreedShadaEntry) {
+ .can_free_entry = false,
+ .data = {
+ .type = kSDItemRegister,
+ .timestamp = reg.timestamp,
+ .data = {
+ .reg = {
+ .contents = (char **)reg.y_array,
+ .contents_size = (size_t)reg.y_size,
+ .type = reg.y_type,
+ .width = (size_t)(reg.y_type == kMTBlockWise ? reg.y_width : 0),
+ .additional_data = reg.additional_data,
+ .name = name,
+ .is_unnamed = is_unnamed,
+ }
+ }
+ }
+ };
+ } while (reg_iter != NULL);
+}
+
/// Write ShaDa file
///
/// @param[in] sd_writer Structure containing file writer definition.
@@ -2346,7 +2398,6 @@ static ShaDaWriteResult shada_write(ShaDaWriteDef *const sd_writer,
if (max_reg_lines < 0) {
max_reg_lines = get_shada_parameter('"');
}
- const bool limit_reg_lines = max_reg_lines >= 0;
const bool dump_registers = (max_reg_lines != 0);
khash_t(bufset) removable_bufs = KHASH_EMPTY_TABLE(bufset);
const size_t max_kbyte = (size_t) max_kbyte_i;
@@ -2589,35 +2640,7 @@ static ShaDaWriteResult shada_write(ShaDaWriteDef *const sd_writer,
// Initialize registers
if (dump_registers) {
- const void *reg_iter = NULL;
- do {
- yankreg_T reg;
- char name = NUL;
- reg_iter = op_register_iter(reg_iter, &name, &reg);
- if (name == NUL) {
- break;
- }
- if (limit_reg_lines && reg.y_size > (size_t)max_reg_lines) {
- continue;
- }
- wms->registers[op_reg_index(name)] = (PossiblyFreedShadaEntry) {
- .can_free_entry = false,
- .data = {
- .type = kSDItemRegister,
- .timestamp = reg.timestamp,
- .data = {
- .reg = {
- .contents = (char **) reg.y_array,
- .contents_size = (size_t) reg.y_size,
- .type = reg.y_type,
- .width = (size_t) (reg.y_type == kMTBlockWise ? reg.y_width : 0),
- .additional_data = reg.additional_data,
- .name = name,
- }
- }
- }
- };
- } while (reg_iter != NULL);
+ shada_initialize_registers(wms, max_reg_lines);
}
// Initialize buffers
@@ -3596,6 +3619,7 @@ shada_read_next_item_start:
entry->data.reg.contents[i] = BIN_CONVERTED(arr.ptr[i].via.bin);
}
}
+ BOOLEAN_KEY("register", REG_KEY_UNNAMED, entry->data.reg.is_unnamed)
TYPED_KEY("register", REG_KEY_TYPE, "an unsigned integer",
entry->data.reg.type, POSITIVE_INTEGER, u64, TOU8)
TYPED_KEY("register", KEY_NAME_CHAR, "an unsigned integer",
diff --git a/src/nvim/sign_defs.h b/src/nvim/sign_defs.h
index 7288a48e21..3778f4287e 100644
--- a/src/nvim/sign_defs.h
+++ b/src/nvim/sign_defs.h
@@ -1,6 +1,8 @@
#ifndef NVIM_SIGN_DEFS_H
#define NVIM_SIGN_DEFS_H
+#include "nvim/pos.h"
+
// signs: line annotations
typedef struct signlist signlist_T;
diff --git a/src/nvim/spell.h b/src/nvim/spell.h
index e950644a6d..ad66df4c5d 100644
--- a/src/nvim/spell.h
+++ b/src/nvim/spell.h
@@ -4,6 +4,8 @@
#include <stdbool.h>
#include "nvim/spell_defs.h"
+#include "nvim/ex_cmds_defs.h"
+#include "nvim/globals.h"
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "spell.h.generated.h"
diff --git a/src/nvim/spellfile.c b/src/nvim/spellfile.c
index d34d69b3a4..1f7f616782 100644
--- a/src/nvim/spellfile.c
+++ b/src/nvim/spellfile.c
@@ -2468,8 +2468,7 @@ static afffile_T *spell_read_aff(spellinfo_T *spin, char_u *fname)
}
}
- if (aff_entry->ae_chop == NULL
- && aff_entry->ae_flags == NULL) {
+ if (aff_entry->ae_chop == NULL) {
int idx;
char_u **pp;
int n;
diff --git a/src/nvim/spellfile.h b/src/nvim/spellfile.h
index 89acddda0d..633ee014a7 100644
--- a/src/nvim/spellfile.h
+++ b/src/nvim/spellfile.h
@@ -5,6 +5,7 @@
#include "nvim/spell_defs.h"
#include "nvim/types.h"
+#include "nvim/ex_cmds_defs.h"
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "spellfile.h.generated.h"
diff --git a/src/nvim/state.c b/src/nvim/state.c
index 210708c3f4..be6aa21664 100644
--- a/src/nvim/state.c
+++ b/src/nvim/state.c
@@ -98,3 +98,52 @@ int get_real_state(void)
return State;
}
+/// @returns[allocated] mode string
+char *get_mode(void)
+{
+ char *buf = xcalloc(3, sizeof(char));
+
+ if (VIsual_active) {
+ if (VIsual_select) {
+ buf[0] = (char)(VIsual_mode + 's' - 'v');
+ } else {
+ buf[0] = (char)VIsual_mode;
+ }
+ } else if (State == HITRETURN || State == ASKMORE || State == SETWSIZE
+ || State == CONFIRM) {
+ buf[0] = 'r';
+ if (State == ASKMORE) {
+ buf[1] = 'm';
+ } else if (State == CONFIRM) {
+ buf[1] = '?';
+ }
+ } else if (State == EXTERNCMD) {
+ buf[0] = '!';
+ } else if (State & INSERT) {
+ if (State & VREPLACE_FLAG) {
+ buf[0] = 'R';
+ buf[1] = 'v';
+ } else if (State & REPLACE_FLAG) {
+ buf[0] = 'R';
+ } else {
+ buf[0] = 'i';
+ }
+ } else if (State & CMDLINE) {
+ buf[0] = 'c';
+ if (exmode_active) {
+ buf[1] = 'v';
+ }
+ } else if (exmode_active) {
+ buf[0] = 'c';
+ buf[1] = 'e';
+ } else if (State & TERM_FOCUS) {
+ buf[0] = 't';
+ } else {
+ buf[0] = 'n';
+ if (finish_op) {
+ buf[1] = 'o';
+ }
+ }
+
+ return buf;
+}
diff --git a/src/nvim/strings.c b/src/nvim/strings.c
index 743b43c2e5..687f734742 100644
--- a/src/nvim/strings.c
+++ b/src/nvim/strings.c
@@ -425,72 +425,27 @@ int vim_strnicmp(const char *s1, const char *s2, size_t len)
}
#endif
-/*
- * Version of strchr() and strrchr() that handle unsigned char strings
- * with characters from 128 to 255 correctly. It also doesn't return a
- * pointer to the NUL at the end of the string.
- */
-char_u *vim_strchr(const char_u *string, int c)
- FUNC_ATTR_NONNULL_ALL FUNC_ATTR_PURE
+/// strchr() version which handles multibyte strings
+///
+/// @param[in] string String to search in.
+/// @param[in] c Character to search for.
+///
+/// @return Pointer to the first byte of the found character in string or NULL
+/// if it was not found or character is invalid. NUL character is never
+/// found, use `strlen()` instead.
+char_u *vim_strchr(const char_u *const string, const int c)
+ FUNC_ATTR_NONNULL_ALL FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT
{
- int b;
-
- const char_u *p = string;
- if (enc_utf8 && c >= 0x80) {
- while (*p != NUL) {
- int l = (*mb_ptr2len)(p);
-
- // Avoid matching an illegal byte here.
- if (l > 1 && utf_ptr2char(p) == c) {
- return (char_u *) p;
- }
- p += l;
- }
- return NULL;
- }
- if (enc_dbcs != 0 && c > 255) {
- int n2 = c & 0xff;
-
- c = ((unsigned)c >> 8) & 0xff;
- while ((b = *p) != NUL) {
- if (b == c && p[1] == n2)
- return (char_u *) p;
- p += (*mb_ptr2len)(p);
- }
+ if (c <= 0) {
return NULL;
+ } else if (c < 0x80) {
+ return (char_u *)strchr((const char *)string, c);
+ } else {
+ char u8char[MB_MAXBYTES + 1];
+ const int len = utf_char2bytes(c, (char_u *)u8char);
+ u8char[len] = NUL;
+ return (char_u *)strstr((const char *)string, u8char);
}
- if (has_mbyte) {
- while ((b = *p) != NUL) {
- if (b == c)
- return (char_u *) p;
- p += (*mb_ptr2len)(p);
- }
- return NULL;
- }
- while ((b = *p) != NUL) {
- if (b == c)
- return (char_u *) p;
- ++p;
- }
- return NULL;
-}
-
-/*
- * Version of strchr() that only works for bytes and handles unsigned char
- * strings with characters above 128 correctly. It also doesn't return a
- * pointer to the NUL at the end of the string.
- */
-char_u *vim_strbyte(const char_u *string, int c)
- FUNC_ATTR_NONNULL_ALL FUNC_ATTR_PURE
-{
- const char_u *p = string;
-
- while (*p != NUL) {
- if (*p == c)
- return (char_u *) p;
- ++p;
- }
- return NULL;
}
/*
@@ -698,7 +653,7 @@ static float_T tv_float(typval_T *const tvs, int *const idxp)
if (tvs[idx].v_type == VAR_FLOAT) {
f = tvs[idx].vval.v_float;
} else if (tvs[idx].v_type == VAR_NUMBER) {
- f = tvs[idx].vval.v_number;
+ f = (float_T)tvs[idx].vval.v_number;
} else {
EMSG(_("E807: Expected Float argument for printf()"));
}
@@ -955,6 +910,13 @@ int vim_vsnprintf(char *str, size_t str_m, const char *fmt, va_list ap,
default: break;
}
+ switch (fmt_spec) {
+ case 'd': case 'u': case 'o': case 'x': case 'X':
+ if (tvs && length_modifier == '\0') {
+ length_modifier = '2';
+ }
+ }
+
// get parameter value, do initial processing
switch (fmt_spec) {
// '%' and 'c' behave similar to 's' regarding flags and field widths
diff --git a/src/nvim/syntax.c b/src/nvim/syntax.c
index ce48547163..a4bb260183 100644
--- a/src/nvim/syntax.c
+++ b/src/nvim/syntax.c
@@ -309,6 +309,8 @@ static keyentry_T dumkey;
#define HIKEY2KE(p) ((keyentry_T *)((p) - (dumkey.keyword - (char_u *)&dumkey)))
#define HI2KE(hi) HIKEY2KE((hi)->hi_key)
+// -V:HI2KE:782
+
/*
* To reduce the time spent in keepend(), remember at which level in the state
* stack the first item with "keepend" is present. When "-1", there is no
@@ -7304,110 +7306,34 @@ static void highlight_attr_set_all(void)
}
}
-/*
- * Translate the 'highlight' option into attributes in highlight_attr[] and
- * set up the user highlights User1..9. A set of
- * corresponding highlights to use on top of HLF_SNC is computed.
- * Called only when the 'highlight' option has been changed and upon first
- * screen redraw after any :highlight command.
- * Return FAIL when an invalid flag is found in 'highlight'. OK otherwise.
- */
-int highlight_changed(void)
+/// Tranlate highlight groups into attributes in highlight_attr[] and set up
+/// the user highlights User1..9. A set of corresponding highlights to use on
+/// top of HLF_SNC is computed. Called only when nvim starts and upon first
+/// screen redraw after any :highlight command.
+void highlight_changed(void)
{
- int hlf;
- int i;
- char_u *p;
int attr;
- char_u *end;
int id;
char_u userhl[10];
int id_SNC = -1;
int id_S = -1;
int hlcnt;
- static int hl_flags[HLF_COUNT] = HL_FLAGS;
need_highlight_changed = FALSE;
- /*
- * Clear all attributes.
- */
- for (hlf = 0; hlf < (int)HLF_COUNT; ++hlf)
- highlight_attr[hlf] = 0;
-
- /*
- * First set all attributes to their default value.
- * Then use the attributes from the 'highlight' option.
- */
- for (i = 0; i < 2; ++i) {
- if (i)
- p = p_hl;
- else
- p = get_highlight_default();
- if (p == NULL) /* just in case */
- continue;
-
- while (*p) {
- for (hlf = 0; hlf < (int)HLF_COUNT; ++hlf)
- if (hl_flags[hlf] == *p)
- break;
- ++p;
- if (hlf == (int)HLF_COUNT || *p == NUL)
- return FAIL;
-
- /*
- * Allow several hl_flags to be combined, like "bu" for
- * bold-underlined.
- */
- attr = 0;
- bool colon = false;
- for (; *p && *p != ','; ++p) { // parse upto comma
- if (ascii_iswhite(*p)) { // ignore white space
- continue;
- }
-
- if (colon) /* Combination with ':' is not allowed. */
- return FAIL;
-
- switch (*p) {
- case 'b': attr |= HL_BOLD;
- break;
- case 'i': attr |= HL_ITALIC;
- break;
- case '-':
- case 'n': /* no highlighting */
- break;
- case 'r': attr |= HL_INVERSE;
- break;
- case 's': attr |= HL_STANDOUT;
- break;
- case 'u': attr |= HL_UNDERLINE;
- break;
- case 'c': attr |= HL_UNDERCURL;
- break;
- case ':': ++p; /* highlight group name */
- if (attr || *p == NUL) /* no combinations */
- return FAIL;
- colon = true;
- end = vim_strchr(p, ',');
- if (end == NULL)
- end = p + STRLEN(p);
- id = syn_check_group(p, (int)(end - p));
- if (id == 0)
- return FAIL;
- attr = syn_id2attr(id);
- p = end - 1;
- if (hlf == (int)HLF_SNC)
- id_SNC = syn_get_final_id(id);
- else if (hlf == (int)HLF_S)
- id_S = syn_get_final_id(id);
- break;
- default: return FAIL;
- }
- }
- highlight_attr[hlf] = attr;
-
- p = skip_to_option_part(p); /* skip comma and spaces */
+ /// Translate builtin highlight groups into attributes for quick lookup.
+ for (int hlf = 0; hlf < (int)HLF_COUNT; hlf++) {
+ id = syn_check_group((char_u *)hlf_names[hlf], STRLEN(hlf_names[hlf]));
+ if (id == 0) {
+ abort();
+ }
+ attr = syn_id2attr(id);
+ if (hlf == (int)HLF_SNC) {
+ id_SNC = syn_get_final_id(id);
+ } else if (hlf == (int)HLF_S) {
+ id_S = syn_get_final_id(id);
}
+ highlight_attr[hlf] = attr;
}
/* Setup the user highlights
@@ -7472,8 +7398,6 @@ int highlight_changed(void)
}
}
highlight_ga.ga_len = hlcnt;
-
- return OK;
}
diff --git a/src/nvim/syntax_defs.h b/src/nvim/syntax_defs.h
index 8d207e6286..9f309451b0 100644
--- a/src/nvim/syntax_defs.h
+++ b/src/nvim/syntax_defs.h
@@ -1,10 +1,9 @@
#ifndef NVIM_SYNTAX_DEFS_H
#define NVIM_SYNTAX_DEFS_H
+#include "nvim/highlight_defs.h"
#include "nvim/regexp_defs.h"
-typedef int32_t RgbValue;
-
# define SST_MIN_ENTRIES 150 /* minimal size for state stack array */
# define SST_MAX_ENTRIES 1000 /* maximal size for state stack array */
# define SST_FIX_STATES 7 /* size of sst_stack[]. */
diff --git a/src/nvim/tag.c b/src/nvim/tag.c
index b8b86bf979..be9d621c7d 100644
--- a/src/nvim/tag.c
+++ b/src/nvim/tag.c
@@ -106,15 +106,6 @@ static char_u *topmsg = (char_u *)N_("E556: at top of tag stack");
static char_u *tagmatchname = NULL; /* name of last used tag */
/*
- * We use ftello() here, if available. It returns off_t instead of long,
- * which helps if long is 32 bit and off_t is 64 bit.
- * We assume that when fseeko() is available then ftello() is too.
- */
-#ifdef HAVE_FSEEKO
-# define ftell ftello
-#endif
-
-/*
* Tag for preview window is remembered separately, to avoid messing up the
* normal tagstack.
*/
@@ -208,10 +199,9 @@ do_tag (
clearpos(&saved_fmark.mark); /* shutup gcc 4.0 */
saved_fmark.fnum = 0;
- /*
- * Don't add a tag to the tagstack if 'tagstack' has been reset.
- */
- if (!p_tgst && *tag != NUL) {
+ // Don't add a tag to the tagstack if 'tagstack' has been reset.
+ assert(tag != NULL);
+ if (!p_tgst && *tag != NUL) { // -V522
use_tagstack = false;
new_tag = true;
if (g_do_tagpreview != 0) {
@@ -1089,22 +1079,21 @@ find_tags (
char_u *p;
char_u *s;
int i;
- int tag_file_sorted = NUL; /* !_TAG_FILE_SORTED value */
- struct tag_search_info /* Binary search file offsets */
- {
- off_t low_offset; /* offset for first char of first line that
- could match */
- off_t high_offset; /* offset of char after last line that could
- match */
- off_t curr_offset; /* Current file offset in search range */
- off_t curr_offset_used; /* curr_offset used when skipping back */
- off_t match_offset; /* Where the binary search found a tag */
- int low_char; /* first char at low_offset */
- int high_char; /* first char at high_offset */
+ int tag_file_sorted = NUL; // !_TAG_FILE_SORTED value
+ struct tag_search_info { // Binary search file offsets
+ off_T low_offset; // offset for first char of first line that
+ // could match
+ off_T high_offset; // offset of char after last line that could
+ // match
+ off_T curr_offset; // Current file offset in search range
+ off_T curr_offset_used; // curr_offset used when skipping back
+ off_T match_offset; // Where the binary search found a tag
+ int low_char; // first char at low_offset
+ int high_char; // first char at high_offset
} search_info;
- off_t filesize;
+ off_T filesize;
int tagcmp;
- off_t offset;
+ off_T offset;
int round;
enum {
TS_START, /* at start of file */
@@ -1379,36 +1368,28 @@ find_tags (
if (state == TS_BINARY || state == TS_SKIP_BACK) {
/* Adjust the search file offset to the correct position */
search_info.curr_offset_used = search_info.curr_offset;
-#ifdef HAVE_FSEEKO
- fseeko(fp, search_info.curr_offset, SEEK_SET);
-#else
- fseek(fp, (long)search_info.curr_offset, SEEK_SET);
-#endif
+ vim_fseek(fp, search_info.curr_offset, SEEK_SET);
eof = vim_fgets(lbuf, LSIZE, fp);
if (!eof && search_info.curr_offset != 0) {
/* The explicit cast is to work around a bug in gcc 3.4.2
* (repeated below). */
- search_info.curr_offset = ftell(fp);
+ search_info.curr_offset = vim_ftell(fp);
if (search_info.curr_offset == search_info.high_offset) {
- /* oops, gone a bit too far; try from low offset */
-#ifdef HAVE_FSEEKO
- fseeko(fp, search_info.low_offset, SEEK_SET);
-#else
- fseek(fp, (long)search_info.low_offset, SEEK_SET);
-#endif
+ // oops, gone a bit too far; try from low offset
+ vim_fseek(fp, search_info.low_offset, SEEK_SET);
search_info.curr_offset = search_info.low_offset;
}
eof = vim_fgets(lbuf, LSIZE, fp);
}
/* skip empty and blank lines */
while (!eof && vim_isblankline(lbuf)) {
- search_info.curr_offset = ftell(fp);
+ search_info.curr_offset = vim_ftell(fp);
eof = vim_fgets(lbuf, LSIZE, fp);
}
if (eof) {
/* Hit end of file. Skip backwards. */
state = TS_SKIP_BACK;
- search_info.match_offset = ftell(fp);
+ search_info.match_offset = vim_ftell(fp);
search_info.curr_offset = search_info.curr_offset_used;
continue;
}
@@ -1524,10 +1505,10 @@ line_read_in:
*/
if (state == TS_BINARY) {
// Get the tag file size.
- if ((filesize = lseek(fileno(fp), (off_t)0L, SEEK_END)) <= 0) {
+ if ((filesize = vim_lseek(fileno(fp), (off_T)0L, SEEK_END)) <= 0) {
state = TS_LINEAR;
} else {
- lseek(fileno(fp), (off_t)0L, SEEK_SET);
+ vim_lseek(fileno(fp), (off_T)0L, SEEK_SET);
/* Calculate the first read offset in the file. Start
* the search in the middle of the file. */
@@ -1565,11 +1546,7 @@ parse_line:
/* Avoid getting stuck. */
linear = TRUE;
state = TS_LINEAR;
-# ifdef HAVE_FSEEKO
- fseeko(fp, search_info.low_offset, SEEK_SET);
-# else
- fseek(fp, (long)search_info.low_offset, SEEK_SET);
-# endif
+ vim_fseek(fp, search_info.low_offset, SEEK_SET);
}
continue;
}
@@ -1648,7 +1625,7 @@ parse_line:
continue;
}
if (tagcmp < 0) {
- search_info.curr_offset = ftell(fp);
+ search_info.curr_offset = vim_ftell(fp);
if (search_info.curr_offset < search_info.high_offset) {
search_info.low_offset = search_info.curr_offset;
if (sortic)
@@ -1684,10 +1661,11 @@ parse_line:
} else if (state == TS_STEP_FORWARD) {
assert(cmplen >= 0);
if (mb_strnicmp(tagp.tagname, orgpat.head, (size_t)cmplen) != 0) {
- if ((off_t)ftell(fp) > search_info.match_offset)
- break; /* past last match */
- else
- continue; /* before first match */
+ if ((off_T)vim_ftell(fp) > search_info.match_offset) {
+ break; // past last match
+ } else {
+ continue; // before first match
+ }
}
} else
/* skip this match if it can't match */
@@ -1908,10 +1886,11 @@ parse_line:
if (line_error) {
EMSG2(_("E431: Format error in tags file \"%s\""), tag_fname);
- if (!use_cscope)
- EMSGN(_("Before byte %" PRId64), ftell(fp));
- stop_searching = TRUE;
- line_error = FALSE;
+ if (!use_cscope) {
+ EMSGN(_("Before byte %" PRId64), vim_ftell(fp));
+ }
+ stop_searching = true;
+ line_error = false;
}
if (!use_cscope)
diff --git a/src/nvim/tag.h b/src/nvim/tag.h
index 5d4bcddf94..a8fddd05da 100644
--- a/src/nvim/tag.h
+++ b/src/nvim/tag.h
@@ -1,6 +1,9 @@
#ifndef NVIM_TAG_H
#define NVIM_TAG_H
+#include "nvim/types.h"
+#include "nvim/ex_cmds_defs.h"
+
/*
* Values for do_tag().
*/
diff --git a/src/nvim/terminal.c b/src/nvim/terminal.c
index c44fe15be5..1882f263db 100644
--- a/src/nvim/terminal.c
+++ b/src/nvim/terminal.c
@@ -237,8 +237,6 @@ Terminal *terminal_open(TerminalOptions opts)
curbuf->b_p_scbk = p_scbk; // 'scrollback'
curbuf->b_p_tw = 0; // 'textwidth'
set_option_value("wrap", false, NULL, OPT_LOCAL);
- set_option_value("number", false, NULL, OPT_LOCAL);
- set_option_value("relativenumber", false, NULL, OPT_LOCAL);
set_option_value("list", false, NULL, OPT_LOCAL);
buf_set_term_title(curbuf, (char *)curbuf->b_ffname);
RESET_BINDING(curwin);
@@ -302,8 +300,16 @@ void terminal_close(Terminal *term, char *msg)
}
term->forward_mouse = false;
- term->closed = true;
+
+ // flush any pending changes to the buffer
+ if (!exiting) {
+ block_autocmds();
+ refresh_terminal(term);
+ unblock_autocmds();
+ }
+
buf_T *buf = handle_get_buffer(term->buf_handle);
+ term->closed = true;
if (!msg || exiting) {
// If no msg was given, this was called by close_buffer(buffer.c). Or if
@@ -595,8 +601,10 @@ void terminal_get_line_attributes(Terminal *term, win_T *wp, int linenr,
if (term->cursor.visible && term->cursor.row == row
&& term->cursor.col == col) {
- attr_id = hl_combine_attr(attr_id, is_focused(term) && wp == curwin ?
- hl_attr(HLF_TERM) : hl_attr(HLF_TERMNC));
+ attr_id = hl_combine_attr(attr_id,
+ is_focused(term) && wp == curwin
+ ? win_hl_attr(wp, HLF_TERM)
+ : win_hl_attr(wp, HLF_TERMNC));
}
term_attrs[col] = attr_id;
@@ -631,7 +639,7 @@ static int term_movecursor(VTermPos new, VTermPos old, int visible,
}
static void buf_set_term_title(buf_T *buf, char *title)
- FUNC_ATTR_NONNULL_ALL
+ FUNC_ATTR_NONNULL_ALL
{
Error err = ERROR_INIT;
dict_set_var(buf->b_vars,
@@ -675,7 +683,7 @@ static int term_settermprop(VTermProp prop, VTermValue *val, void *data)
static int term_bell(void *data)
{
- ui_putc('\x07');
+ ui_call_bell();
return 1;
}
diff --git a/src/nvim/testdir/Makefile b/src/nvim/testdir/Makefile
index 70a9f2b8c4..7e55fffa06 100644
--- a/src/nvim/testdir/Makefile
+++ b/src/nvim/testdir/Makefile
@@ -58,8 +58,10 @@ NEW_TESTS ?= \
test_nested_function.res \
test_normal.res \
test_quickfix.res \
+ test_search.res \
test_signs.res \
test_smartindent.res \
+ test_stat.res \
test_substitute.res \
test_syntax.res \
test_tabpage.res \
@@ -67,7 +69,7 @@ NEW_TESTS ?= \
test_timers.res \
test_undo.res \
test_usercommands.res \
- test_viml.res \
+ test_vimscript.res \
test_visual.res \
test_window_id.res \
test_writefile.res \
diff --git a/src/nvim/testdir/runtest.vim b/src/nvim/testdir/runtest.vim
index 1cf7ab475c..117ba52eb6 100644
--- a/src/nvim/testdir/runtest.vim
+++ b/src/nvim/testdir/runtest.vim
@@ -72,10 +72,11 @@ let v:testing = 1
set directory^=.
set backspace=
set nohidden smarttab noautoindent noautoread complete-=i noruler noshowcmd
+set listchars=eol:$
" Prevent Nvim log from writing to stderr.
-let $NVIM_LOG_FILE='Xnvim.log'
+let $NVIM_LOG_FILE = exists($NVIM_LOG_FILE) ? $NVIM_LOG_FILE : 'Xnvim.log'
-function RunTheTest(test)
+func RunTheTest(test)
echo 'Executing ' . a:test
if exists("*SetUp")
call SetUp()
@@ -112,6 +113,60 @@ function RunTheTest(test)
set nomodified
endfunc
+func AfterTheTest()
+ if len(v:errors) > 0
+ let s:fail += 1
+ call add(s:errors, 'Found errors in ' . s:test . ':')
+ call extend(s:errors, v:errors)
+ let v:errors = []
+ endif
+endfunc
+
+" This function can be called by a test if it wants to abort testing.
+func FinishTesting()
+ call AfterTheTest()
+
+ " Don't write viminfo on exit.
+ set viminfo=
+
+ if s:fail == 0
+ " Success, create the .res file so that make knows it's done.
+ exe 'split ' . fnamemodify(g:testname, ':r') . '.res'
+ write
+ endif
+
+ if len(s:errors) > 0
+ " Append errors to test.log
+ split test.log
+ call append(line('$'), '')
+ call append(line('$'), 'From ' . g:testname . ':')
+ call append(line('$'), s:errors)
+ write
+ endif
+
+ let message = 'Executed ' . s:done . (s:done > 1 ? ' tests' : ' test')
+ echo message
+ call add(s:messages, message)
+ if s:fail > 0
+ let message = s:fail . ' FAILED:'
+ echo message
+ call add(s:messages, message)
+ call extend(s:messages, s:errors)
+ endif
+
+ " Add SKIPPED messages
+ call extend(s:messages, s:skipped)
+
+ " Append messages to the file "messages"
+ split messages
+ call append(line('$'), '')
+ call append(line('$'), 'From ' . g:testname . ':')
+ call append(line('$'), s:messages)
+ write
+
+ qall!
+endfunc
+
" Source the test script. First grab the file name, in case the script
" navigates away. g:testname can be used by the tests.
let g:testname = expand('%')
@@ -120,7 +175,7 @@ let s:fail = 0
let s:errors = []
let s:messages = []
let s:skipped = []
-if expand('%') =~ 'test_viml.vim'
+if expand('%') =~ 'test_vimscript.vim'
" this test has intentional s:errors, don't use try/catch.
source %
else
@@ -133,7 +188,11 @@ else
endif
" Names of flaky tests.
-let s:flaky = []
+let s:flaky = [
+ \ 'Test_with_partial_callback()',
+ \ 'Test_oneshot()',
+ \ 'Test_lambda_with_timer()',
+ \ ]
" Locate Test_ functions and execute them.
set nomore
@@ -152,56 +211,14 @@ for s:test in sort(s:tests)
call RunTheTest(s:test)
if len(v:errors) > 0 && index(s:flaky, s:test) >= 0
- call add(s:messages, 'Flaky test failed, running it again')
- let v:errors = []
- call RunTheTest(s:test)
- endif
-
- if len(v:errors) > 0
- let s:fail += 1
- call add(s:errors, 'Found errors in ' . s:test . ':')
- call extend(s:errors, v:errors)
+ call add(s:messages, 'Flaky test failed, running it again')
let v:errors = []
+ call RunTheTest(s:test)
endif
+ call AfterTheTest()
endfor
-" Don't write viminfo on exit.
-set viminfo=
-
-if s:fail == 0
- " Success, create the .res file so that make knows it's done.
- exe 'split ' . fnamemodify(g:testname, ':r') . '.res'
- write
-endif
-
-if len(s:errors) > 0
- " Append errors to test.log
- split test.log
- call append(line('$'), '')
- call append(line('$'), 'From ' . g:testname . ':')
- call append(line('$'), s:errors)
- write
-endif
-
-let message = 'Executed ' . s:done . (s:done > 1 ? ' tests': ' test')
-echo message
-call add(s:messages, message)
-if s:fail > 0
- let message = s:fail . ' FAILED'
- echo message
- call add(s:messages, message)
- call extend(s:messages, s:errors)
-endif
-
-" Add SKIPPED messages
-call extend(s:messages, s:skipped)
-
-" Append messages to the file "messages"
-split messages
-call append(line('$'), '')
-call append(line('$'), 'From ' . g:testname . ':')
-call append(line('$'), s:messages)
-write
+call FinishTesting()
-qall!
+" vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/nvim/testdir/shared.vim b/src/nvim/testdir/shared.vim
index 784e4a0a02..72cfea96c6 100644
--- a/src/nvim/testdir/shared.vim
+++ b/src/nvim/testdir/shared.vim
@@ -187,7 +187,7 @@ func RunVim(before, after, arguments)
endfunc
func RunVimPiped(before, after, arguments, pipecmd)
- let $NVIM_LOG_FILE='Xnvim.log'
+ let $NVIM_LOG_FILE = exists($NVIM_LOG_FILE) ? $NVIM_LOG_FILE : 'Xnvim.log'
let cmd = GetVimCommand()
if cmd == ''
return 0
diff --git a/src/nvim/testdir/test49.vim b/src/nvim/testdir/test49.vim
index adbabd61b9..467abcd9b9 100644
--- a/src/nvim/testdir/test49.vim
+++ b/src/nvim/testdir/test49.vim
@@ -608,7 +608,7 @@ com! -nargs=1 -bar ExecAsScript call ExecAsScript(<f-args>)
" END_OF_TEST_ENVIRONMENT - do not change or remove this line.
-" Tests 1 to 15 were moved to test_viml.vim
+" Tests 1 to 15 were moved to test_vimscript.vim
let Xtest = 16
"-------------------------------------------------------------------------------
diff --git a/src/nvim/testdir/test_alot.vim b/src/nvim/testdir/test_alot.vim
index 99d9835996..1103778107 100644
--- a/src/nvim/testdir/test_alot.vim
+++ b/src/nvim/testdir/test_alot.vim
@@ -8,7 +8,10 @@ source test_ex_undo.vim
source test_expr.vim
source test_expr_utf8.vim
source test_feedkeys.vim
+source test_filter_cmd.vim
source test_filter_map.vim
+source test_float_func.vim
+source test_functions.vim
source test_goto.vim
source test_jumps.vim
source test_lambda.vim
diff --git a/src/nvim/testdir/test_cscope.vim b/src/nvim/testdir/test_cscope.vim
index c8d2ebd7da..01a9a3f9ad 100644
--- a/src/nvim/testdir/test_cscope.vim
+++ b/src/nvim/testdir/test_cscope.vim
@@ -28,7 +28,7 @@ func Test_cscopeWithCscopeConnections()
cscope add Xcscope.out
set cscopeverbose
catch
- call assert_true(0)
+ call assert_report('exception thrown')
endtry
call assert_fails('cscope add', 'E560')
call assert_fails('cscope add Xcscope.out', 'E568')
diff --git a/src/nvim/testdir/test_cursor_func.vim b/src/nvim/testdir/test_cursor_func.vim
index d819b7b092..e1b9651c84 100644
--- a/src/nvim/testdir/test_cursor_func.vim
+++ b/src/nvim/testdir/test_cursor_func.vim
@@ -1,13 +1,7 @@
" Tests for cursor().
func Test_wrong_arguments()
- try
- call cursor(1. 3)
- " not reached
- call assert_false(1)
- catch
- call assert_exception('E474:')
- endtry
+ call assert_fails('call cursor(1. 3)', 'E474:')
endfunc
func Test_move_cursor()
diff --git a/src/nvim/testdir/test_expr.vim b/src/nvim/testdir/test_expr.vim
index 03a9155512..82c5d21bd0 100644
--- a/src/nvim/testdir/test_expr.vim
+++ b/src/nvim/testdir/test_expr.vim
@@ -78,7 +78,7 @@ endfunc
func Test_loop_over_null_list()
let null_list = submatch(1, 1)
for i in null_list
- call assert_true(0, 'should not get here')
+ call assert_report('should not get here')
endfor
endfunc
@@ -98,6 +98,35 @@ func Test_special_char()
call assert_fails('echo "\<C-">')
endfunc
+func Test_option_value()
+ " boolean
+ set bri
+ call assert_equal(1, &bri)
+ set nobri
+ call assert_equal(0, &bri)
+
+ " number
+ set ts=1
+ call assert_equal(1, &ts)
+ set ts=8
+ call assert_equal(8, &ts)
+
+ " string
+ exe "set cedit=\<Esc>"
+ call assert_equal("\<Esc>", &cedit)
+ set cpo=
+ call assert_equal("", &cpo)
+ set cpo=abcdefi
+ call assert_equal("abcdefi", &cpo)
+ set cpo&vim
+endfunc
+
+function Test_printf_64bit()
+ if has('num64')
+ call assert_equal("123456789012345", printf('%d', 123456789012345))
+ endif
+endfunc
+
func Test_setmatches()
hi def link 1 Comment
hi def link 2 PreProc
diff --git a/src/nvim/testdir/test_filter_cmd.vim b/src/nvim/testdir/test_filter_cmd.vim
new file mode 100644
index 0000000000..5aa5fa64df
--- /dev/null
+++ b/src/nvim/testdir/test_filter_cmd.vim
@@ -0,0 +1,76 @@
+" Test the :filter command modifier
+
+func Test_filter()
+ edit Xdoesnotmatch
+ edit Xwillmatch
+ call assert_equal('"Xwillmatch"', substitute(execute('filter willma ls'), '[^"]*\(".*"\)[^"]*', '\1', ''))
+ bwipe Xdoesnotmatch
+ bwipe Xwillmatch
+
+ new
+ call setline(1, ['foo1', 'foo2', 'foo3', 'foo4', 'foo5'])
+ call assert_equal("\nfoo2\nfoo4", execute('filter /foo[24]/ 1,$print'))
+ call assert_equal("\n 2 foo2\n 4 foo4", execute('filter /foo[24]/ 1,$number'))
+ call assert_equal("\nfoo2$\nfoo4$", execute('filter /foo[24]/ 1,$list'))
+
+ call assert_equal("\nfoo1$\nfoo3$\nfoo5$", execute('filter! /foo[24]/ 1,$list'))
+ bwipe!
+
+ command XTryThis echo 'this'
+ command XTryThat echo 'that'
+ command XDoThat echo 'that'
+ let lines = split(execute('filter XTry command'), "\n")
+ call assert_equal(3, len(lines))
+ call assert_match("XTryThat", lines[1])
+ call assert_match("XTryThis", lines[2])
+ delcommand XTryThis
+ delcommand XTryThat
+ delcommand XDoThat
+
+ map f1 the first key
+ map f2 the second key
+ map f3 not a key
+ let lines = split(execute('filter the map f'), "\n")
+ call assert_equal(2, len(lines))
+ call assert_match("f2", lines[0])
+ call assert_match("f1", lines[1])
+ unmap f1
+ unmap f2
+ unmap f3
+endfunc
+
+func Test_filter_fails()
+ call assert_fails('filter', 'E471:')
+ call assert_fails('filter pat', 'E476:')
+ call assert_fails('filter /pat', 'E476:')
+ call assert_fails('filter /pat/', 'E476:')
+ call assert_fails('filter /pat/ asdf', 'E492:')
+
+ call assert_fails('filter!', 'E471:')
+ call assert_fails('filter! pat', 'E476:')
+ call assert_fails('filter! /pat', 'E476:')
+ call assert_fails('filter! /pat/', 'E476:')
+ call assert_fails('filter! /pat/ asdf', 'E492:')
+endfunc
+
+function s:complete_filter_cmd(filtcmd)
+ let keystroke = "\<TAB>\<C-R>=execute('let cmdline = getcmdline()')\<CR>\<C-C>"
+ let cmdline = ''
+ call feedkeys(':' . a:filtcmd . keystroke, 'ntx')
+ return cmdline
+endfunction
+
+func Test_filter_cmd_completion()
+ " Do not complete pattern
+ call assert_equal("filter \t", s:complete_filter_cmd('filter '))
+ call assert_equal("filter pat\t", s:complete_filter_cmd('filter pat'))
+ call assert_equal("filter /pat\t", s:complete_filter_cmd('filter /pat'))
+ call assert_equal("filter /pat/\t", s:complete_filter_cmd('filter /pat/'))
+
+ " Complete after string pattern
+ call assert_equal('filter pat print', s:complete_filter_cmd('filter pat pri'))
+
+ " Complete after regexp pattern
+ call assert_equal('filter /pat/ print', s:complete_filter_cmd('filter /pat/ pri'))
+ call assert_equal('filter #pat# print', s:complete_filter_cmd('filter #pat# pri'))
+endfunc
diff --git a/src/nvim/testdir/test_float_func.vim b/src/nvim/testdir/test_float_func.vim
new file mode 100644
index 0000000000..5ea5192994
--- /dev/null
+++ b/src/nvim/testdir/test_float_func.vim
@@ -0,0 +1,332 @@
+" test float functions
+
+if !has('float')
+ finish
+end
+
+func Test_abs()
+ call assert_equal('1.23', string(abs(1.23)))
+ call assert_equal('1.23', string(abs(-1.23)))
+ call assert_equal('0.0', string(abs(0.0)))
+ call assert_equal('0.0', string(abs(1.0/(1.0/0.0))))
+ call assert_equal('0.0', string(abs(-1.0/(1.0/0.0))))
+ call assert_equal("str2float('inf')", string(abs(1.0/0.0)))
+ call assert_equal("str2float('inf')", string(abs(-1.0/0.0)))
+ call assert_equal("str2float('nan')", string(abs(0.0/0.0)))
+ call assert_equal('12', string(abs('-12abc')))
+ call assert_fails("call abs([])", 'E745:')
+ call assert_fails("call abs({})", 'E728:')
+ call assert_fails("call abs(function('string'))", 'E703:')
+endfunc
+
+func Test_sqrt()
+ call assert_equal('0.0', string(sqrt(0.0)))
+ call assert_equal('1.414214', string(sqrt(2.0)))
+ call assert_equal("str2float('inf')", string(sqrt(1.0/0.0)))
+ call assert_equal("str2float('nan')", string(sqrt(-1.0)))
+ call assert_equal("str2float('nan')", string(sqrt(0.0/0.0)))
+ call assert_fails('call sqrt("")', 'E808:')
+endfunc
+
+func Test_log()
+ call assert_equal('0.0', string(log(1.0)))
+ call assert_equal('-0.693147', string(log(0.5)))
+ call assert_equal("-str2float('inf')", string(log(0.0)))
+ call assert_equal("str2float('nan')", string(log(-1.0)))
+ call assert_equal("str2float('inf')", string(log(1.0/0.0)))
+ call assert_equal("str2float('nan')", string(log(0.0/0.0)))
+ call assert_fails('call log("")', 'E808:')
+endfunc
+
+func Test_log10()
+ call assert_equal('0.0', string(log10(1.0)))
+ call assert_equal('2.0', string(log10(100.0)))
+ call assert_equal('2.079181', string(log10(120.0)))
+ call assert_equal("-str2float('inf')", string(log10(0.0)))
+ call assert_equal("str2float('nan')", string(log10(-1.0)))
+ call assert_equal("str2float('inf')", string(log10(1.0/0.0)))
+ call assert_equal("str2float('nan')", string(log10(0.0/0.0)))
+ call assert_fails('call log10("")', 'E808:')
+endfunc
+
+func Test_exp()
+ call assert_equal('1.0', string(exp(0.0)))
+ call assert_equal('7.389056', string(exp(2.0)))
+ call assert_equal('0.367879', string(exp(-1.0)))
+ call assert_equal("str2float('inf')", string(exp(1.0/0.0)))
+ call assert_equal('0.0', string(exp(-1.0/0.0)))
+ call assert_equal("str2float('nan')", string(exp(0.0/0.0)))
+ call assert_fails('call exp("")', 'E808:')
+endfunc
+
+func Test_sin()
+ call assert_equal('0.0', string(sin(0.0)))
+ call assert_equal('0.841471', string(sin(1.0)))
+ call assert_equal('-0.479426', string(sin(-0.5)))
+ call assert_equal("str2float('nan')", string(sin(0.0/0.0)))
+ call assert_equal("str2float('nan')", string(sin(1.0/0.0)))
+ call assert_equal('0.0', string(sin(1.0/(1.0/0.0))))
+ call assert_equal('-0.0', string(sin(-1.0/(1.0/0.0))))
+ call assert_fails('call sin("")', 'E808:')
+endfunc
+
+func Test_asin()
+ call assert_equal('0.0', string(asin(0.0)))
+ call assert_equal('1.570796', string(asin(1.0)))
+ call assert_equal('-0.523599', string(asin(-0.5)))
+ call assert_equal("str2float('nan')", string(asin(1.1)))
+ call assert_equal("str2float('nan')", string(asin(1.0/0.0)))
+ call assert_equal("str2float('nan')", string(asin(0.0/0.0)))
+ call assert_fails('call asin("")', 'E808:')
+endfunc
+
+func Test_sinh()
+ call assert_equal('0.0', string(sinh(0.0)))
+ call assert_equal('0.521095', string(sinh(0.5)))
+ call assert_equal('-1.026517', string(sinh(-0.9)))
+ call assert_equal("str2float('inf')", string(sinh(1.0/0.0)))
+ call assert_equal("-str2float('inf')", string(sinh(-1.0/0.0)))
+ call assert_equal("str2float('nan')", string(sinh(0.0/0.0)))
+ call assert_fails('call sinh("")', 'E808:')
+endfunc
+
+func Test_cos()
+ call assert_equal('1.0', string(cos(0.0)))
+ call assert_equal('0.540302', string(cos(1.0)))
+ call assert_equal('0.877583', string(cos(-0.5)))
+ call assert_equal("str2float('nan')", string(cos(0.0/0.0)))
+ call assert_equal("str2float('nan')", string(cos(1.0/0.0)))
+ call assert_fails('call cos("")', 'E808:')
+endfunc
+
+func Test_acos()
+ call assert_equal('1.570796', string(acos(0.0)))
+ call assert_equal('0.0', string(acos(1.0)))
+ call assert_equal('3.141593', string(acos(-1.0)))
+ call assert_equal('2.094395', string(acos(-0.5)))
+ call assert_equal("str2float('nan')", string(acos(1.1)))
+ call assert_equal("str2float('nan')", string(acos(1.0/0.0)))
+ call assert_equal("str2float('nan')", string(acos(0.0/0.0)))
+ call assert_fails('call acos("")', 'E808:')
+endfunc
+
+func Test_cosh()
+ call assert_equal('1.0', string(cosh(0.0)))
+ call assert_equal('1.127626', string(cosh(0.5)))
+ call assert_equal("str2float('inf')", string(cosh(1.0/0.0)))
+ call assert_equal("str2float('inf')", string(cosh(-1.0/0.0)))
+ call assert_equal("str2float('nan')", string(cosh(0.0/0.0)))
+ call assert_fails('call cosh("")', 'E808:')
+endfunc
+
+func Test_tan()
+ call assert_equal('0.0', string(tan(0.0)))
+ call assert_equal('0.546302', string(tan(0.5)))
+ call assert_equal('-0.546302', string(tan(-0.5)))
+ call assert_equal("str2float('nan')", string(tan(1.0/0.0)))
+ call assert_equal("str2float('nan')", string(cos(0.0/0.0)))
+ call assert_equal('0.0', string(tan(1.0/(1.0/0.0))))
+ call assert_equal('-0.0', string(tan(-1.0/(1.0/0.0))))
+ call assert_fails('call tan("")', 'E808:')
+endfunc
+
+func Test_atan()
+ call assert_equal('0.0', string(atan(0.0)))
+ call assert_equal('0.463648', string(atan(0.5)))
+ call assert_equal('-0.785398', string(atan(-1.0)))
+ call assert_equal('1.570796', string(atan(1.0/0.0)))
+ call assert_equal('-1.570796', string(atan(-1.0/0.0)))
+ call assert_equal("str2float('nan')", string(atan(0.0/0.0)))
+ call assert_fails('call atan("")', 'E808:')
+endfunc
+
+func Test_atan2()
+ call assert_equal('-2.356194', string(atan2(-1, -1)))
+ call assert_equal('2.356194', string(atan2(1, -1)))
+ call assert_equal('0.0', string(atan2(1.0, 1.0/0.0)))
+ call assert_equal('1.570796', string(atan2(1.0/0.0, 1.0)))
+ call assert_equal("str2float('nan')", string(atan2(0.0/0.0, 1.0)))
+ call assert_fails('call atan2("", -1)', 'E808:')
+ call assert_fails('call atan2(-1, "")', 'E808:')
+endfunc
+
+func Test_tanh()
+ call assert_equal('0.0', string(tanh(0.0)))
+ call assert_equal('0.462117', string(tanh(0.5)))
+ call assert_equal('-0.761594', string(tanh(-1.0)))
+ call assert_equal('1.0', string(tanh(1.0/0.0)))
+ call assert_equal('-1.0', string(tanh(-1.0/0.0)))
+ call assert_equal("str2float('nan')", string(tanh(0.0/0.0)))
+ call assert_fails('call tanh("")', 'E808:')
+endfunc
+
+func Test_fmod()
+ call assert_equal('0.13', string(fmod(12.33, 1.22)))
+ call assert_equal('-0.13', string(fmod(-12.33, 1.22)))
+ call assert_equal("str2float('nan')", string(fmod(1.0/0.0, 1.0)))
+ " On Windows we get "nan" instead of 1.0, accept both.
+ let res = string(fmod(1.0, 1.0/0.0))
+ if res != "str2float('nan')"
+ call assert_equal('1.0', res)
+ endif
+ call assert_equal("str2float('nan')", string(fmod(1.0, 0.0)))
+ call assert_fails("call fmod('', 1.22)", 'E808:')
+ call assert_fails("call fmod(12.33, '')", 'E808:')
+endfunc
+
+func Test_pow()
+ call assert_equal('1.0', string(pow(0.0, 0.0)))
+ call assert_equal('8.0', string(pow(2.0, 3.0)))
+ call assert_equal("str2float('nan')", string(pow(2.0, 0.0/0.0)))
+ call assert_equal("str2float('nan')", string(pow(0.0/0.0, 3.0)))
+ call assert_equal("str2float('nan')", string(pow(0.0/0.0, 3.0)))
+ call assert_equal("str2float('inf')", string(pow(2.0, 1.0/0.0)))
+ call assert_equal("str2float('inf')", string(pow(1.0/0.0, 3.0)))
+ call assert_fails("call pow('', 2.0)", 'E808:')
+ call assert_fails("call pow(2.0, '')", 'E808:')
+endfunc
+
+func Test_str2float()
+ call assert_equal('1.0', string(str2float('1')))
+ call assert_equal('1.0', string(str2float(' 1 ')))
+ call assert_equal('1.0', string(str2float(' 1.0 ')))
+ call assert_equal('1.23', string(str2float('1.23')))
+ call assert_equal('1.23', string(str2float('1.23abc')))
+ call assert_equal('1.0e40', string(str2float('1e40')))
+ call assert_equal('-1.23', string(str2float('-1.23')))
+ call assert_equal('1.23', string(str2float(' + 1.23 ')))
+
+ call assert_equal('1.0', string(str2float('+1')))
+ call assert_equal('1.0', string(str2float('+1')))
+ call assert_equal('1.0', string(str2float(' +1 ')))
+ call assert_equal('1.0', string(str2float(' + 1 ')))
+
+ call assert_equal('-1.0', string(str2float('-1')))
+ call assert_equal('-1.0', string(str2float('-1')))
+ call assert_equal('-1.0', string(str2float(' -1 ')))
+ call assert_equal('-1.0', string(str2float(' - 1 ')))
+
+ call assert_equal('0.0', string(str2float('+0.0')))
+ call assert_equal('-0.0', string(str2float('-0.0')))
+ call assert_equal("str2float('inf')", string(str2float('1e1000')))
+ call assert_equal("str2float('inf')", string(str2float('inf')))
+ call assert_equal("-str2float('inf')", string(str2float('-inf')))
+ call assert_equal("str2float('inf')", string(str2float('+inf')))
+ call assert_equal("str2float('inf')", string(str2float('Inf')))
+ call assert_equal("str2float('inf')", string(str2float(' +inf ')))
+ call assert_equal("str2float('nan')", string(str2float('nan')))
+ call assert_equal("str2float('nan')", string(str2float('NaN')))
+ call assert_equal("str2float('nan')", string(str2float(' nan ')))
+
+ call assert_fails("call str2float(1.2)", 'E806:')
+ call assert_fails("call str2float([])", 'E730:')
+ call assert_fails("call str2float({})", 'E731:')
+ call assert_fails("call str2float(function('string'))", 'E729:')
+endfunc
+
+func Test_float2nr()
+ call assert_equal(1, float2nr(1.234))
+ call assert_equal(123, float2nr(1.234e2))
+ call assert_equal(12, float2nr(123.4e-1))
+ let max_number = 1/0
+ let min_number = -max_number
+ call assert_equal(max_number/2+1, float2nr(pow(2, 62)))
+ call assert_equal(max_number, float2nr(pow(2, 63)))
+ call assert_equal(max_number, float2nr(pow(2, 64)))
+ call assert_equal(min_number/2-1, float2nr(-pow(2, 62)))
+ call assert_equal(min_number, float2nr(-pow(2, 63)))
+ call assert_equal(min_number, float2nr(-pow(2, 64)))
+endfunc
+
+func Test_floor()
+ call assert_equal('2.0', string(floor(2.0)))
+ call assert_equal('2.0', string(floor(2.11)))
+ call assert_equal('2.0', string(floor(2.99)))
+ call assert_equal('-3.0', string(floor(-2.11)))
+ call assert_equal('-3.0', string(floor(-2.99)))
+ call assert_equal("str2float('nan')", string(floor(0.0/0.0)))
+ call assert_equal("str2float('inf')", string(floor(1.0/0.0)))
+ call assert_equal("-str2float('inf')", string(floor(-1.0/0.0)))
+ call assert_fails("call floor('')", 'E808:')
+endfunc
+
+func Test_ceil()
+ call assert_equal('2.0', string(ceil(2.0)))
+ call assert_equal('3.0', string(ceil(2.11)))
+ call assert_equal('3.0', string(ceil(2.99)))
+ call assert_equal('-2.0', string(ceil(-2.11)))
+ call assert_equal('-2.0', string(ceil(-2.99)))
+ call assert_equal("str2float('nan')", string(ceil(0.0/0.0)))
+ call assert_equal("str2float('inf')", string(ceil(1.0/0.0)))
+ call assert_equal("-str2float('inf')", string(ceil(-1.0/0.0)))
+ call assert_fails("call ceil('')", 'E808:')
+endfunc
+
+func Test_round()
+ call assert_equal('2.0', string(round(2.1)))
+ call assert_equal('3.0', string(round(2.5)))
+ call assert_equal('3.0', string(round(2.9)))
+ call assert_equal('-2.0', string(round(-2.1)))
+ call assert_equal('-3.0', string(round(-2.5)))
+ call assert_equal('-3.0', string(round(-2.9)))
+ call assert_equal("str2float('nan')", string(round(0.0/0.0)))
+ call assert_equal("str2float('inf')", string(round(1.0/0.0)))
+ call assert_equal("-str2float('inf')", string(round(-1.0/0.0)))
+ call assert_fails("call round('')", 'E808:')
+endfunc
+
+func Test_trunc()
+ call assert_equal('2.0', string(trunc(2.1)))
+ call assert_equal('2.0', string(trunc(2.5)))
+ call assert_equal('2.0', string(trunc(2.9)))
+ call assert_equal('-2.0', string(trunc(-2.1)))
+ call assert_equal('-2.0', string(trunc(-2.5)))
+ call assert_equal('-2.0', string(trunc(-2.9)))
+ call assert_equal("str2float('nan')", string(trunc(0.0/0.0)))
+ call assert_equal("str2float('inf')", string(trunc(1.0/0.0)))
+ call assert_equal("-str2float('inf')", string(trunc(-1.0/0.0)))
+ call assert_fails("call trunc('')", 'E808:')
+endfunc
+
+func Test_isnan()
+ throw 'skipped: Nvim does not support isnan()'
+ call assert_equal(0, isnan(1.0))
+ call assert_equal(1, isnan(0.0/0.0))
+ call assert_equal(0, isnan(1.0/0.0))
+ call assert_equal(0, isnan('a'))
+ call assert_equal(0, isnan([]))
+ call assert_equal(0, isnan({}))
+endfunc
+
+" This was converted from test65
+func Test_float_misc()
+ call assert_equal('123.456000', printf('%f', 123.456))
+ call assert_equal('1.234560e+02', printf('%e', 123.456))
+ call assert_equal('123.456', printf('%g', 123.456))
+ " +=
+ let v = 1.234
+ let v += 6.543
+ call assert_equal('7.777', printf('%g', v))
+ let v = 1.234
+ let v += 5
+ call assert_equal('6.234', printf('%g', v))
+ let v = 5
+ let v += 3.333
+ call assert_equal('8.333', string(v))
+ " ==
+ let v = 1.234
+ call assert_true(v == 1.234)
+ call assert_false(v == 1.2341)
+ " add-subtract
+ call assert_equal('5.234', printf('%g', 4 + 1.234))
+ call assert_equal('-6.766', printf('%g', 1.234 - 8))
+ " mult-div
+ call assert_equal('4.936', printf('%g', 4 * 1.234))
+ call assert_equal('0.003241', printf('%g', 4.0 / 1234))
+ " dict
+ call assert_equal("{'x': 1.234, 'y': -2.0e20}", string({'x': 1.234, 'y': -2.0e20}))
+ " list
+ call assert_equal('[-123.4, 2.0e-20]', string([-123.4, 2.0e-20]))
+endfunc
+
+" vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/nvim/testdir/test_functions.vim b/src/nvim/testdir/test_functions.vim
index 3c258299c1..237a2dc820 100644
--- a/src/nvim/testdir/test_functions.vim
+++ b/src/nvim/testdir/test_functions.vim
@@ -1,3 +1,22 @@
+" Tests for various functions.
+
+func Test_str2nr()
+ call assert_equal(0, str2nr(''))
+ call assert_equal(1, str2nr('1'))
+ call assert_equal(1, str2nr(' 1 '))
+
+ call assert_equal(1, str2nr('+1'))
+ call assert_equal(1, str2nr('+ 1'))
+ call assert_equal(1, str2nr(' + 1 '))
+
+ call assert_equal(-1, str2nr('-1'))
+ call assert_equal(-1, str2nr('- 1'))
+ call assert_equal(-1, str2nr(' - 1 '))
+
+ call assert_equal(123456789, str2nr('123456789'))
+ call assert_equal(-123456789, str2nr('-123456789'))
+endfunc
+
func Test_setbufvar_options()
" This tests that aucmd_prepbuf() and aucmd_restbuf() properly restore the
" window layout.
diff --git a/src/nvim/testdir/test_largefile.vim b/src/nvim/testdir/test_largefile.vim
new file mode 100644
index 0000000000..1b3e02a0c8
--- /dev/null
+++ b/src/nvim/testdir/test_largefile.vim
@@ -0,0 +1,34 @@
+" Tests for large files
+" This is only executed manually: "make test_largefile".
+" This is not run as part of "make test".
+
+func Test_largefile()
+ let fname = 'Xlarge.txt'
+
+ call delete(fname)
+ exe "e" fname
+ " Make sure that a line break is 1 byte (LF).
+ set ff=unix
+ set undolevels=-1
+ " Input 99 'A's. The line becomes 100 bytes including a line break.
+ exe "normal 99iA\<Esc>"
+ yank
+ " Put 39,999,999 times. The file becomes 4,000,000,000 bytes.
+ normal 39999999p
+ " Moving around in the file randomly.
+ normal G
+ normal 10%
+ normal 90%
+ normal 50%
+ normal gg
+ w
+ " Check if the file size is 4,000,000,000 bytes.
+ let fsize=getfsize(fname)
+ if has('num64')
+ call assert_true(fsize == 4000000000)
+ else
+ " getfsize() returns -2 if a Number is 32 bits.
+ call assert_true(fsize == -2)
+ endif
+ call delete(fname)
+endfunc
diff --git a/src/nvim/testdir/test_menu.vim b/src/nvim/testdir/test_menu.vim
index be559467c8..af18760065 100644
--- a/src/nvim/testdir/test_menu.vim
+++ b/src/nvim/testdir/test_menu.vim
@@ -4,6 +4,6 @@ func Test_load_menu()
try
source $VIMRUNTIME/menu.vim
catch
- call assert_false(1, 'error while loading menus: ' . v:exception)
+ call assert_report('error while loading menus: ' . v:exception)
endtry
endfunc
diff --git a/src/nvim/testdir/test_popup.vim b/src/nvim/testdir/test_popup.vim
index fd0f3c0d2d..519d855cd8 100644
--- a/src/nvim/testdir/test_popup.vim
+++ b/src/nvim/testdir/test_popup.vim
@@ -533,7 +533,7 @@ func Test_completion_comment_formatting()
%d
try
call feedkeys("o/*\<cr>\<cr>\<c-x>\<c-u>/\<esc>", 'tx')
- call assert_false(1, 'completefunc not set, should have failed')
+ call assert_report('completefunc not set, should have failed')
catch
call assert_exception('E764:')
endtry
diff --git a/src/nvim/testdir/test_search.vim b/src/nvim/testdir/test_search.vim
new file mode 100644
index 0000000000..2106fc2dec
--- /dev/null
+++ b/src/nvim/testdir/test_search.vim
@@ -0,0 +1,285 @@
+" Test for the search command
+
+func Test_search_cmdline()
+ " See test/functional/legacy/search_spec.lua
+ throw 'skipped: Nvim does not support test_disable_char_avail()'
+ if !exists('+incsearch')
+ return
+ endif
+ " need to disable char_avail,
+ " so that expansion of commandline works
+ call test_disable_char_avail(1)
+ new
+ call setline(1, [' 1', ' 2 these', ' 3 the', ' 4 their', ' 5 there', ' 6 their', ' 7 the', ' 8 them', ' 9 these', ' 10 foobar'])
+ " Test 1
+ " CTRL-N / CTRL-P skips through the previous search history
+ set noincsearch
+ :1
+ call feedkeys("/foobar\<cr>", 'tx')
+ call feedkeys("/the\<cr>",'tx')
+ call assert_equal('the', @/)
+ call feedkeys("/thes\<C-P>\<C-P>\<cr>",'tx')
+ call assert_equal('foobar', @/)
+
+ " Test 2
+ " Ctrl-G goes from one match to the next
+ " until the end of the buffer
+ set incsearch nowrapscan
+ :1
+ " first match
+ call feedkeys("/the\<cr>", 'tx')
+ call assert_equal(' 2 these', getline('.'))
+ :1
+ " second match
+ call feedkeys("/the\<C-G>\<cr>", 'tx')
+ call assert_equal(' 3 the', getline('.'))
+ call assert_equal([0, 0, 0, 0], getpos('"'))
+ :1
+ " third match
+ call feedkeys("/the".repeat("\<C-G>", 2)."\<cr>", 'tx')
+ call assert_equal(' 4 their', getline('.'))
+ :1
+ " fourth match
+ call feedkeys("/the".repeat("\<C-G>", 3)."\<cr>", 'tx')
+ call assert_equal(' 5 there', getline('.'))
+ :1
+ " fifth match
+ call feedkeys("/the".repeat("\<C-G>", 4)."\<cr>", 'tx')
+ call assert_equal(' 6 their', getline('.'))
+ :1
+ " sixth match
+ call feedkeys("/the".repeat("\<C-G>", 5)."\<cr>", 'tx')
+ call assert_equal(' 7 the', getline('.'))
+ :1
+ " seventh match
+ call feedkeys("/the".repeat("\<C-G>", 6)."\<cr>", 'tx')
+ call assert_equal(' 8 them', getline('.'))
+ :1
+ " eigth match
+ call feedkeys("/the".repeat("\<C-G>", 7)."\<cr>", 'tx')
+ call assert_equal(' 9 these', getline('.'))
+ :1
+ " no further match
+ call feedkeys("/the".repeat("\<C-G>", 8)."\<cr>", 'tx')
+ call assert_equal(' 9 these', getline('.'))
+ call assert_equal([0, 0, 0, 0], getpos('"'))
+
+ " Test 3
+ " Ctrl-G goes from one match to the next
+ " and continues back at the top
+ set incsearch wrapscan
+ :1
+ " first match
+ call feedkeys("/the\<cr>", 'tx')
+ call assert_equal(' 2 these', getline('.'))
+ :1
+ " second match
+ call feedkeys("/the\<C-G>\<cr>", 'tx')
+ call assert_equal(' 3 the', getline('.'))
+ :1
+ " third match
+ call feedkeys("/the".repeat("\<C-G>", 2)."\<cr>", 'tx')
+ call assert_equal(' 4 their', getline('.'))
+ :1
+ " fourth match
+ call feedkeys("/the".repeat("\<C-G>", 3)."\<cr>", 'tx')
+ call assert_equal(' 5 there', getline('.'))
+ :1
+ " fifth match
+ call feedkeys("/the".repeat("\<C-G>", 4)."\<cr>", 'tx')
+ call assert_equal(' 6 their', getline('.'))
+ :1
+ " sixth match
+ call feedkeys("/the".repeat("\<C-G>", 5)."\<cr>", 'tx')
+ call assert_equal(' 7 the', getline('.'))
+ :1
+ " seventh match
+ call feedkeys("/the".repeat("\<C-G>", 6)."\<cr>", 'tx')
+ call assert_equal(' 8 them', getline('.'))
+ :1
+ " eigth match
+ call feedkeys("/the".repeat("\<C-G>", 7)."\<cr>", 'tx')
+ call assert_equal(' 9 these', getline('.'))
+ :1
+ " back at first match
+ call feedkeys("/the".repeat("\<C-G>", 8)."\<cr>", 'tx')
+ call assert_equal(' 2 these', getline('.'))
+
+ " Test 4
+ " CTRL-T goes to the previous match
+ set incsearch nowrapscan
+ $
+ " first match
+ call feedkeys("?the\<cr>", 'tx')
+ call assert_equal(' 9 these', getline('.'))
+ $
+ " first match
+ call feedkeys("?the\<C-G>\<cr>", 'tx')
+ call assert_equal(' 9 these', getline('.'))
+ $
+ " second match
+ call feedkeys("?the".repeat("\<C-T>", 1)."\<cr>", 'tx')
+ call assert_equal(' 8 them', getline('.'))
+ $
+ " last match
+ call feedkeys("?the".repeat("\<C-T>", 7)."\<cr>", 'tx')
+ call assert_equal(' 2 these', getline('.'))
+ $
+ " last match
+ call feedkeys("?the".repeat("\<C-T>", 8)."\<cr>", 'tx')
+ call assert_equal(' 2 these', getline('.'))
+
+ " Test 5
+ " CTRL-T goes to the previous match
+ set incsearch wrapscan
+ $
+ " first match
+ call feedkeys("?the\<cr>", 'tx')
+ call assert_equal(' 9 these', getline('.'))
+ $
+ " first match at the top
+ call feedkeys("?the\<C-G>\<cr>", 'tx')
+ call assert_equal(' 2 these', getline('.'))
+ $
+ " second match
+ call feedkeys("?the".repeat("\<C-T>", 1)."\<cr>", 'tx')
+ call assert_equal(' 8 them', getline('.'))
+ $
+ " last match
+ call feedkeys("?the".repeat("\<C-T>", 7)."\<cr>", 'tx')
+ call assert_equal(' 2 these', getline('.'))
+ $
+ " back at the bottom of the buffer
+ call feedkeys("?the".repeat("\<C-T>", 8)."\<cr>", 'tx')
+ call assert_equal(' 9 these', getline('.'))
+
+ " Test 6
+ " CTRL-L adds to the search pattern
+ set incsearch wrapscan
+ 1
+ " first match
+ call feedkeys("/the\<c-l>\<cr>", 'tx')
+ call assert_equal(' 2 these', getline('.'))
+ 1
+ " go to next match of 'thes'
+ call feedkeys("/the\<c-l>\<C-G>\<cr>", 'tx')
+ call assert_equal(' 9 these', getline('.'))
+ 1
+ " wrap around
+ call feedkeys("/the\<c-l>\<C-G>\<C-G>\<cr>", 'tx')
+ call assert_equal(' 2 these', getline('.'))
+ 1
+ " wrap around
+ set nowrapscan
+ call feedkeys("/the\<c-l>\<C-G>\<C-G>\<cr>", 'tx')
+ call assert_equal(' 9 these', getline('.'))
+
+ " Test 7
+ " <bs> remove from match, but stay at current match
+ set incsearch wrapscan
+ 1
+ " first match
+ call feedkeys("/thei\<cr>", 'tx')
+ call assert_equal(' 4 their', getline('.'))
+ 1
+ " delete one char, add another
+ call feedkeys("/thei\<bs>s\<cr>", 'tx')
+ call assert_equal(' 2 these', getline('.'))
+ 1
+ " delete one char, add another, go to previous match, add one char
+ call feedkeys("/thei\<bs>s\<bs>\<C-T>\<c-l>\<cr>", 'tx')
+ call assert_equal(' 9 these', getline('.'))
+ 1
+ " delete all chars, start from the beginning again
+ call feedkeys("/them". repeat("\<bs>",4).'the\>'."\<cr>", 'tx')
+ call assert_equal(' 3 the', getline('.'))
+
+ " clean up
+ call test_disable_char_avail(0)
+ bw!
+endfunc
+
+func Test_search_cmdline2()
+ " See test/functional/legacy/search_spec.lua
+ throw 'skipped: Nvim does not support test_disable_char_avail()'
+ if !exists('+incsearch')
+ return
+ endif
+ " need to disable char_avail,
+ " so that expansion of commandline works
+ call test_disable_char_avail(1)
+ new
+ call setline(1, [' 1', ' 2 these', ' 3 the theother'])
+ " Test 1
+ " Ctrl-T goes correctly back and forth
+ set incsearch
+ 1
+ " first match
+ call feedkeys("/the\<cr>", 'tx')
+ call assert_equal(' 2 these', getline('.'))
+ 1
+ " go to next match (on next line)
+ call feedkeys("/the\<C-G>\<cr>", 'tx')
+ call assert_equal(' 3 the theother', getline('.'))
+ 1
+ " go to next match (still on line 3)
+ call feedkeys("/the\<C-G>\<C-G>\<cr>", 'tx')
+ call assert_equal(' 3 the theother', getline('.'))
+ 1
+ " go to next match (still on line 3)
+ call feedkeys("/the\<C-G>\<C-G>\<C-G>\<cr>", 'tx')
+ call assert_equal(' 3 the theother', getline('.'))
+ 1
+ " go to previous match (on line 3)
+ call feedkeys("/the\<C-G>\<C-G>\<C-G>\<C-T>\<cr>", 'tx')
+ call assert_equal(' 3 the theother', getline('.'))
+ 1
+ " go to previous match (on line 3)
+ call feedkeys("/the\<C-G>\<C-G>\<C-G>\<C-T>\<C-T>\<cr>", 'tx')
+ call assert_equal(' 3 the theother', getline('.'))
+ 1
+ " go to previous match (on line 2)
+ call feedkeys("/the\<C-G>\<C-G>\<C-G>\<C-T>\<C-T>\<C-T>\<cr>", 'tx')
+ call assert_equal(' 2 these', getline('.'))
+
+ " Test 2: keep the view,
+ " after deleting a character from the search cmd
+ call setline(1, [' 1', ' 2 these', ' 3 the', ' 4 their', ' 5 there', ' 6 their', ' 7 the', ' 8 them', ' 9 these', ' 10 foobar'])
+ resize 5
+ 1
+ call feedkeys("/foo\<bs>\<cr>", 'tx')
+ redraw
+ call assert_equal({'lnum': 10, 'leftcol': 0, 'col': 4, 'topfill': 0, 'topline': 6, 'coladd': 0, 'skipcol': 0, 'curswant': 4}, winsaveview())
+
+ " remove all history entries
+ for i in range(10)
+ call histdel('/')
+ endfor
+
+ " Test 3: reset the view,
+ " after deleting all characters from the search cmd
+ norm! 1gg0
+ " unfortunately, neither "/foo\<c-w>\<cr>", nor "/foo\<bs>\<bs>\<bs>\<cr>",
+ " nor "/foo\<c-u>\<cr>" works to delete the commandline.
+ " In that case Vim should return "E35 no previous regular expression",
+ " but it looks like Vim still sees /foo and therefore the test fails.
+ " Therefore, disableing this test
+ "call assert_fails(feedkeys("/foo\<c-w>\<cr>", 'tx'), 'E35')
+ "call assert_equal({'lnum': 1, 'leftcol': 0, 'col': 0, 'topfill': 0, 'topline': 1, 'coladd': 0, 'skipcol': 0, 'curswant': 0}, winsaveview())
+
+ " clean up
+ set noincsearch
+ call test_disable_char_avail(0)
+ bw!
+endfunc
+
+func Test_use_sub_pat()
+ split
+ let @/ = ''
+ func X()
+ s/^/a/
+ /
+ endfunc
+ call X()
+ bwipe!
+endfunc
diff --git a/src/nvim/testdir/test_startup.vim b/src/nvim/testdir/test_startup.vim
index f78d92f3ff..5996b2cd4a 100644
--- a/src/nvim/testdir/test_startup.vim
+++ b/src/nvim/testdir/test_startup.vim
@@ -83,7 +83,7 @@ func Test_help_arg()
call add(found, "--version")
endif
endfor
- call assert_equal(['--version'], found)
+ call assert_equal(['Readonly mode', '--version'], found)
endif
call delete('Xtestout')
endfunc
diff --git a/src/nvim/testdir/test_stat.vim b/src/nvim/testdir/test_stat.vim
new file mode 100644
index 0000000000..89ca9ef379
--- /dev/null
+++ b/src/nvim/testdir/test_stat.vim
@@ -0,0 +1,64 @@
+" Tests for stat functions and checktime
+
+func Test_existent_file()
+ let fname='Xtest.tmp'
+
+ let ts=localtime()
+ sleep 1
+ let fl=['Hello World!']
+ call writefile(fl, fname)
+ let tf=getftime(fname)
+ sleep 1
+ let te=localtime()
+
+ call assert_true(ts <= tf && tf <= te)
+ call assert_equal(strlen(fl[0] . "\n"), getfsize(fname))
+ call assert_equal('file', getftype(fname))
+ call assert_equal('rw-', getfperm(fname)[0:2])
+endfunc
+
+func Test_existent_directory()
+ let dname='.'
+
+ call assert_equal(0, getfsize(dname))
+ call assert_equal('dir', getftype(dname))
+ call assert_equal('rwx', getfperm(dname)[0:2])
+endfunc
+
+func Test_checktime()
+ let fname='Xtest.tmp'
+
+ let fl=['Hello World!']
+ call writefile(fl, fname)
+ set autoread
+ exec 'e' fname
+ sleep 2
+ let fl=readfile(fname)
+ let fl[0] .= ' - checktime'
+ call writefile(fl, fname)
+ checktime
+ call assert_equal(fl[0], getline(1))
+endfunc
+
+func Test_nonexistent_file()
+ let fname='Xtest.tmp'
+
+ call delete(fname)
+ call assert_equal(-1, getftime(fname))
+ call assert_equal(-1, getfsize(fname))
+ call assert_equal('', getftype(fname))
+ call assert_equal('', getfperm(fname))
+endfunc
+
+func Test_win32_symlink_dir()
+ " On Windows, non-admin users cannot create symlinks.
+ " So we use an existing symlink for this test.
+ if has('win32')
+ " Check if 'C:\Users\All Users' is a symlink to a directory.
+ let res=system('dir C:\Users /a')
+ if match(res, '\C<SYMLINKD> *All Users') >= 0
+ " Get the filetype of the symlink.
+ call assert_equal('dir', getftype('C:\Users\All Users'))
+ endif
+ endif
+endfunc
diff --git a/src/nvim/testdir/test_viml.vim b/src/nvim/testdir/test_vimscript.vim
index a2997b6d4d..4e0f1bbd2f 100644
--- a/src/nvim/testdir/test_viml.vim
+++ b/src/nvim/testdir/test_vimscript.vim
@@ -1062,6 +1062,157 @@ func Test_echo_and_string()
call assert_equal(["{'a': [], 'b': []}",
\ "{'a': [], 'b': []}"], l)
+"-------------------------------------------------------------------------------
+" Test 94: 64-bit Numbers {{{1
+"-------------------------------------------------------------------------------
+
+func Test_num64()
+ if !has('num64')
+ return
+ endif
+
+ call assert_notequal( 4294967296, 0)
+ call assert_notequal(-4294967296, 0)
+ call assert_equal( 4294967296, 0xFFFFffff + 1)
+ call assert_equal(-4294967296, -0xFFFFffff - 1)
+
+ call assert_equal( 9223372036854775807, 1 / 0)
+ call assert_equal(-9223372036854775807, -1 / 0)
+ call assert_equal(-9223372036854775807 - 1, 0 / 0)
+
+ call assert_equal( 0x7FFFffffFFFFffff, float2nr( 1.0e150))
+ call assert_equal(-0x7FFFffffFFFFffff, float2nr(-1.0e150))
+
+ let rng = range(0xFFFFffff, 0x100000001)
+ call assert_equal([0xFFFFffff, 0x100000000, 0x100000001], rng)
+ call assert_equal(0x100000001, max(rng))
+ call assert_equal(0xFFFFffff, min(rng))
+ call assert_equal(rng, sort(range(0x100000001, 0xFFFFffff, -1), 'N'))
+endfunc
+
+"-------------------------------------------------------------------------------
+" Test 95: lines of :append, :change, :insert {{{1
+"-------------------------------------------------------------------------------
+
+function! DefineFunction(name, body)
+ let func = join(['function! ' . a:name . '()'] + a:body + ['endfunction'], "\n")
+ exec func
+endfunction
+
+func Test_script_lines()
+ " :append
+ try
+ call DefineFunction('T_Append', [
+ \ 'append',
+ \ 'py <<EOS',
+ \ '.',
+ \ ])
+ catch
+ call assert_report("Can't define function")
+ endtry
+ try
+ call DefineFunction('T_Append', [
+ \ 'append',
+ \ 'abc',
+ \ ])
+ call assert_report("Shouldn't be able to define function")
+ catch
+ call assert_exception('Vim(function):E126: Missing :endfunction')
+ endtry
+
+ " :change
+ try
+ call DefineFunction('T_Change', [
+ \ 'change',
+ \ 'py <<EOS',
+ \ '.',
+ \ ])
+ catch
+ call assert_report("Can't define function")
+ endtry
+ try
+ call DefineFunction('T_Change', [
+ \ 'change',
+ \ 'abc',
+ \ ])
+ call assert_report("Shouldn't be able to define function")
+ catch
+ call assert_exception('Vim(function):E126: Missing :endfunction')
+ endtry
+
+ " :insert
+ try
+ call DefineFunction('T_Insert', [
+ \ 'insert',
+ \ 'py <<EOS',
+ \ '.',
+ \ ])
+ catch
+ call assert_report("Can't define function")
+ endtry
+ try
+ call DefineFunction('T_Insert', [
+ \ 'insert',
+ \ 'abc',
+ \ ])
+ call assert_report("Shouldn't be able to define function")
+ catch
+ call assert_exception('Vim(function):E126: Missing :endfunction')
+ endtry
+endfunc
+
+"-------------------------------------------------------------------------------
+" Test 96: line continuation {{{1
+"
+" Undefined behavior was detected by ubsan with line continuation
+" after an empty line.
+"-------------------------------------------------------------------------------
+func Test_script_emty_line_continuation()
+
+ \
+endfunc
+
+"-------------------------------------------------------------------------------
+" Test 97: bitwise functions {{{1
+"-------------------------------------------------------------------------------
+func Test_bitwise_functions()
+ " and
+ call assert_equal(127, and(127, 127))
+ call assert_equal(16, and(127, 16))
+ call assert_equal(0, and(127, 128))
+ call assert_fails("call and(1.0, 1)", 'E805:')
+ call assert_fails("call and([], 1)", 'E745:')
+ call assert_fails("call and({}, 1)", 'E728:')
+ call assert_fails("call and(1, 1.0)", 'E805:')
+ call assert_fails("call and(1, [])", 'E745:')
+ call assert_fails("call and(1, {})", 'E728:')
+ " or
+ call assert_equal(23, or(16, 7))
+ call assert_equal(15, or(8, 7))
+ call assert_equal(123, or(0, 123))
+ call assert_fails("call or(1.0, 1)", 'E805:')
+ call assert_fails("call or([], 1)", 'E745:')
+ call assert_fails("call or({}, 1)", 'E728:')
+ call assert_fails("call or(1, 1.0)", 'E805:')
+ call assert_fails("call or(1, [])", 'E745:')
+ call assert_fails("call or(1, {})", 'E728:')
+ " xor
+ call assert_equal(0, xor(127, 127))
+ call assert_equal(111, xor(127, 16))
+ call assert_equal(255, xor(127, 128))
+ call assert_fails("call xor(1.0, 1)", 'E805:')
+ call assert_fails("call xor([], 1)", 'E745:')
+ call assert_fails("call xor({}, 1)", 'E728:')
+ call assert_fails("call xor(1, 1.0)", 'E805:')
+ call assert_fails("call xor(1, [])", 'E745:')
+ call assert_fails("call xor(1, {})", 'E728:')
+ " invert
+ call assert_equal(65408, and(invert(127), 65535))
+ call assert_equal(65519, and(invert(16), 65535))
+ call assert_equal(65407, and(invert(128), 65535))
+ call assert_fails("call invert(1.0)", 'E805:')
+ call assert_fails("call invert([])", 'E745:')
+ call assert_fails("call invert({})", 'E728:')
endfunc
"-------------------------------------------------------------------------------
diff --git a/src/nvim/tui/input.c b/src/nvim/tui/input.c
index b86ab8cf2f..03587d68f0 100644
--- a/src/nvim/tui/input.c
+++ b/src/nvim/tui/input.c
@@ -47,7 +47,13 @@ void term_input_init(TermInput *input, Loop *loop)
int curflags = termkey_get_canonflags(input->tk);
termkey_set_canonflags(input->tk, curflags | TERMKEY_CANON_DELBS);
// setup input handle
+#ifdef WIN32
+ uv_tty_init(loop, &input->tty_in, 0, 1);
+ uv_tty_set_mode(&input->tty_in, UV_TTY_MODE_RAW);
+ rstream_init_stream(&input->read_stream, &input->tty_in, 0xfff);
+#else
rstream_init_fd(loop, &input->read_stream, input->in_fd, 0xfff);
+#endif
// initialize a timer handle for handling ESC with libtermkey
time_watcher_init(loop, &input->timer_handle, input);
}
@@ -102,7 +108,7 @@ static void flush_input(TermInput *input, bool wait_until_empty)
size_t drain_boundary = wait_until_empty ? 0 : 0xff;
do {
uv_mutex_lock(&input->key_buffer_mutex);
- loop_schedule(&main_loop, event_create(1, wait_input_enqueue, 1, input));
+ loop_schedule(&main_loop, event_create(wait_input_enqueue, 1, input));
input->waiting = true;
while (input->waiting) {
uv_cond_wait(&input->key_buffer_cond, &input->key_buffer_mutex);
@@ -352,7 +358,7 @@ static void read_cb(Stream *stream, RBuffer *buf, size_t c, void *data,
stream_close(&input->read_stream, NULL, NULL);
multiqueue_put(input->loop->fast_events, restart_reading, 1, input);
} else {
- loop_schedule(&main_loop, event_create(1, input_done_event, 0));
+ loop_schedule(&main_loop, event_create(input_done_event, 0));
}
return;
}
diff --git a/src/nvim/tui/input.h b/src/nvim/tui/input.h
index 7d59cf5c6a..573cc9d683 100644
--- a/src/nvim/tui/input.h
+++ b/src/nvim/tui/input.h
@@ -17,6 +17,9 @@ typedef struct term_input {
#endif
TimeWatcher timer_handle;
Loop *loop;
+#ifdef WIN32
+ uv_tty_t tty_in;
+#endif
Stream read_stream;
RBuffer *key_buffer;
uv_mutex_t key_buffer_mutex;
diff --git a/src/nvim/tui/tui.c b/src/nvim/tui/tui.c
index ae7551098d..736d50ee8b 100644
--- a/src/nvim/tui/tui.c
+++ b/src/nvim/tui/tui.c
@@ -36,6 +36,7 @@
#include "nvim/tui/tui.h"
#include "nvim/cursor_shape.h"
#include "nvim/syntax.h"
+#include "nvim/macros.h"
// Space reserved in the output buffer to restore the cursor to normal when
// flushing. No existing terminal will require 32 bytes to do that.
@@ -44,6 +45,7 @@
#define TOO_MANY_EVENTS 1000000
#define STARTS_WITH(str, prefix) (!memcmp(str, prefix, sizeof(prefix) - 1))
+#define TMUX_WRAP(seq) (is_tmux ? "\x1bPtmux;\x1b" seq "\x1b\\" : seq)
typedef enum TermType {
kTermUnknown,
@@ -51,6 +53,9 @@ typedef enum TermType {
kTermiTerm,
kTermKonsole,
kTermRxvt,
+ kTermDTTerm,
+ kTermXTerm,
+ kTermTeraTerm,
} TermType;
typedef struct {
@@ -74,13 +79,13 @@ typedef struct {
bool out_isatty;
SignalWatcher winch_handle, cont_handle;
bool cont_received;
- // Event scheduled by the ui bridge. Since the main thread suspends until
- // the event is handled, it is fine to use a single field instead of a queue
- Event scheduled_event;
UGrid grid;
kvec_t(Rect) invalid_regions;
int out_fd;
- bool can_use_terminal_scroll;
+ bool scroll_region_is_full_screen;
+ bool can_change_scroll_region;
+ bool can_set_lr_margin;
+ bool can_set_left_right_margin;
bool mouse_enabled;
bool busy;
cursorentry_T cursor_shapes[SHAPE_IDX_COUNT];
@@ -90,14 +95,18 @@ typedef struct {
struct {
int enable_mouse, disable_mouse;
int enable_bracketed_paste, disable_bracketed_paste;
+ int enable_lr_margin, disable_lr_margin;
int set_rgb_foreground, set_rgb_background;
int set_cursor_color;
int enable_focus_reporting, disable_focus_reporting;
+ int resize_screen;
+ int reset_scroll_region;
} unibi_ext;
} TUIData;
static bool volatile got_winch = false;
static bool cursor_style_enabled = false;
+static bool is_tmux = false;
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "tui/tui.c.generated.h"
@@ -109,7 +118,6 @@ UI *tui_start(void)
UI *ui = xcalloc(1, sizeof(UI));
ui->stop = tui_stop;
ui->rgb = p_tgc;
- ui->pum_external = false;
ui->resize = tui_resize;
ui->clear = tui_clear;
ui->eol_clear = tui_eol_clear;
@@ -135,13 +143,16 @@ UI *tui_start(void)
ui->set_title = tui_set_title;
ui->set_icon = tui_set_icon;
ui->event = tui_event;
+
+ memset(ui->ui_ext, 0, sizeof(ui->ui_ext));
+
return ui_bridge_attach(ui, tui_main, tui_scheduler);
}
static void terminfo_start(UI *ui)
{
TUIData *data = ui->data;
- data->can_use_terminal_scroll = true;
+ data->scroll_region_is_full_screen = true;
data->bufpos = 0;
data->bufsize = sizeof(data->buf) - CNORM_COMMAND_MAX_SIZE;
data->showing_mode = SHAPE_IDX_N;
@@ -150,8 +161,12 @@ static void terminfo_start(UI *ui)
data->unibi_ext.set_cursor_color = -1;
data->unibi_ext.enable_bracketed_paste = -1;
data->unibi_ext.disable_bracketed_paste = -1;
+ data->unibi_ext.enable_lr_margin = -1;
+ data->unibi_ext.disable_lr_margin = -1;
data->unibi_ext.enable_focus_reporting = -1;
data->unibi_ext.disable_focus_reporting = -1;
+ data->unibi_ext.resize_screen = -1;
+ data->unibi_ext.reset_scroll_region = -1;
data->out_fd = 1;
data->out_isatty = os_isatty(data->out_fd);
// setup unibilium
@@ -162,6 +177,13 @@ static void terminfo_start(UI *ui)
data->ut = unibi_dummy();
}
fix_terminfo(data);
+ data->can_change_scroll_region =
+ !!unibi_get_str(data->ut, unibi_change_scroll_region);
+ data->can_set_lr_margin =
+ !!unibi_get_str(data->ut, unibi_set_lr_margin);
+ data->can_set_left_right_margin =
+ !!unibi_get_str(data->ut, unibi_set_left_margin_parm)
+ && !!unibi_get_str(data->ut, unibi_set_right_margin_parm);
// Set 't_Co' from the result of unibilium & fix_terminfo.
t_colors = unibi_get_num(data->ut, unibi_max_colors);
// Enter alternate screen and clear
@@ -186,7 +208,7 @@ static void terminfo_stop(UI *ui)
{
TUIData *data = ui->data;
// Destroy output stuff
- tui_mode_change(ui, SHAPE_IDX_N);
+ tui_mode_change(ui, (String)STRING_INIT, SHAPE_IDX_N);
tui_mouse_off(ui);
unibi_out(ui, unibi_exit_attribute_mode);
// cursor should be set to normal before exiting alternate screen
@@ -214,11 +236,6 @@ static void tui_terminal_start(UI *ui)
terminfo_start(ui);
update_size(ui);
signal_watcher_start(&data->winch_handle, sigwinch_cb, SIGWINCH);
-
-#if TERMKEY_VERSION_MAJOR > 0 || TERMKEY_VERSION_MINOR > 18
- data->input.tk_ti_hook_fn = tui_tk_ti_getstr;
-#endif
- term_input_init(&data->input, data->loop);
term_input_start(&data->input);
}
@@ -250,9 +267,17 @@ static void tui_main(UIBridgeData *bridge, UI *ui)
kv_init(data->invalid_regions);
signal_watcher_init(data->loop, &data->winch_handle, ui);
signal_watcher_init(data->loop, &data->cont_handle, data);
+#ifdef UNIX
signal_watcher_start(&data->cont_handle, sigcont_cb, SIGCONT);
+#endif
+
+#if TERMKEY_VERSION_MAJOR > 0 || TERMKEY_VERSION_MINOR > 18
+ data->input.tk_ti_hook_fn = tui_tk_ti_getstr;
+#endif
+ term_input_init(&data->input, &tui_loop);
tui_terminal_start(ui);
data->stop = false;
+
// allow the main thread to continue, we are ready to start handling UI
// callbacks
CONTINUE(bridge);
@@ -279,10 +304,12 @@ static void tui_scheduler(Event event, void *d)
loop_schedule(data->loop, event);
}
+#ifdef UNIX
static void sigcont_cb(SignalWatcher *watcher, int signum, void *data)
{
((TUIData *)data)->cont_received = true;
}
+#endif
static void sigwinch_cb(SignalWatcher *watcher, int signum, void *data)
{
@@ -412,15 +439,83 @@ static void clear_region(UI *ui, int top, int bot, int left, int right)
unibi_goto(ui, grid->row, grid->col);
}
-static void tui_resize(UI *ui, int width, int height)
+static bool can_use_scroll(UI * ui)
+{
+ TUIData *data = ui->data;
+ UGrid *grid = &data->grid;
+
+ return data->scroll_region_is_full_screen
+ || (data->can_change_scroll_region
+ && ((grid->left == 0 && grid->right == ui->width - 1)
+ || data->can_set_lr_margin
+ || data->can_set_left_right_margin));
+}
+
+static void set_scroll_region(UI *ui)
+{
+ TUIData *data = ui->data;
+ UGrid *grid = &data->grid;
+
+ data->params[0].i = grid->top;
+ data->params[1].i = grid->bot;
+ unibi_out(ui, unibi_change_scroll_region);
+ if (grid->left != 0 || grid->right != ui->width - 1) {
+ unibi_out(ui, data->unibi_ext.enable_lr_margin);
+ if (data->can_set_lr_margin) {
+ data->params[0].i = grid->left;
+ data->params[1].i = grid->right;
+ unibi_out(ui, unibi_set_lr_margin);
+ } else {
+ data->params[0].i = grid->left;
+ unibi_out(ui, unibi_set_left_margin_parm);
+ data->params[0].i = grid->right;
+ unibi_out(ui, unibi_set_right_margin_parm);
+ }
+ }
+ unibi_goto(ui, grid->row, grid->col);
+}
+
+static void reset_scroll_region(UI *ui)
+{
+ TUIData *data = ui->data;
+ UGrid *grid = &data->grid;
+
+ if (0 <= data->unibi_ext.reset_scroll_region) {
+ unibi_out(ui, data->unibi_ext.reset_scroll_region);
+ } else {
+ data->params[0].i = 0;
+ data->params[1].i = ui->height - 1;
+ unibi_out(ui, unibi_change_scroll_region);
+ }
+ if (grid->left != 0 || grid->right != ui->width - 1) {
+ if (data->can_set_lr_margin) {
+ data->params[0].i = 0;
+ data->params[1].i = ui->width - 1;
+ unibi_out(ui, unibi_set_lr_margin);
+ } else {
+ data->params[0].i = 0;
+ unibi_out(ui, unibi_set_left_margin_parm);
+ data->params[0].i = ui->width - 1;
+ unibi_out(ui, unibi_set_right_margin_parm);
+ }
+ unibi_out(ui, data->unibi_ext.disable_lr_margin);
+ }
+ unibi_goto(ui, grid->row, grid->col);
+}
+
+static void tui_resize(UI *ui, Integer width, Integer height)
{
TUIData *data = ui->data;
- ugrid_resize(&data->grid, width, height);
+ ugrid_resize(&data->grid, (int)width, (int)height);
if (!got_winch) { // Try to resize the terminal window.
- char r[16]; // enough for 9999x9999
- snprintf(r, sizeof(r), "\x1b[8;%d;%dt", height, width);
- out(ui, r, strlen(r));
+ data->params[0].i = (int)height;
+ data->params[1].i = (int)width;
+ unibi_out(ui, data->unibi_ext.resize_screen);
+ // DECSLPP does not reset the scroll region.
+ if (data->scroll_region_is_full_screen) {
+ reset_scroll_region(ui);
+ }
} else { // Already handled the SIGWINCH signal; avoid double-resize.
got_winch = false;
}
@@ -442,11 +537,11 @@ static void tui_eol_clear(UI *ui)
clear_region(ui, grid->row, grid->row, grid->col, grid->right);
}
-static void tui_cursor_goto(UI *ui, int row, int col)
+static void tui_cursor_goto(UI *ui, Integer row, Integer col)
{
TUIData *data = ui->data;
- ugrid_goto(&data->grid, row, col);
- unibi_goto(ui, row, col);
+ ugrid_goto(&data->grid, (int)row, (int)col);
+ unibi_goto(ui, (int)row, (int)col);
}
CursorShape tui_cursor_decode_shape(const char *shape_str)
@@ -546,13 +641,20 @@ static void tui_set_mode(UI *ui, ModeShape mode)
TUIData *data = ui->data;
cursorentry_T c = data->cursor_shapes[mode];
int shape = c.shape;
- bool is_tmux = os_getenv("TMUX") != NULL;
unibi_var_t vars[26 + 26] = { { 0 } };
-# define TMUX_WRAP(seq) (is_tmux ? "\x1bPtmux;\x1b" seq "\x1b\\" : seq)
// Support changing cursor shape on some popular terminals.
const char *vte_version = os_getenv("VTE_VERSION");
+ if (c.id != 0 && ui->rgb) {
+ int attr = syn_id2attr(c.id);
+ if (attr > 0) {
+ attrentry_T *aep = syn_cterm_attr2entry(attr);
+ data->params[0].i = aep->rgb_bg_color;
+ unibi_out(ui, data->unibi_ext.set_cursor_color);
+ }
+ }
+
if (data->term == kTermKonsole) {
// Konsole uses a proprietary escape code to set the cursor shape
// and does not support DECSCUSR.
@@ -563,7 +665,7 @@ static void tui_set_mode(UI *ui, ModeShape mode)
default: WLOG("Unknown shape value %d", shape); break;
}
data->params[0].i = shape;
- data->params[1].i = (c.blinkon == 0);
+ data->params[1].i = (c.blinkon != 0);
unibi_format(vars, vars + 26,
TMUX_WRAP("\x1b]50;CursorShape=%p1%d;BlinkingCursorEnabled=%p2%d\x07"),
@@ -576,95 +678,84 @@ static void tui_set_mode(UI *ui, ModeShape mode)
switch (shape) {
case SHAPE_BLOCK: shape = 1; break;
- case SHAPE_VER: shape = 5; break;
case SHAPE_HOR: shape = 3; break;
+ case SHAPE_VER: shape = 5; break;
default: WLOG("Unknown shape value %d", shape); break;
}
- data->params[0].i = shape + (c.blinkon ==0);
+ data->params[0].i = shape + (int)(c.blinkon == 0);
unibi_format(vars, vars + 26, "\x1b[%p1%d q",
data->params, out, ui, NULL, NULL);
}
-
- if (c.id != 0 && ui->rgb) {
- int attr = syn_id2attr(c.id);
- attrentry_T *aep = syn_cterm_attr2entry(attr);
- data->params[0].i = aep->rgb_bg_color;
- unibi_out(ui, data->unibi_ext.set_cursor_color);
- }
}
/// @param mode editor mode
-static void tui_mode_change(UI *ui, int mode_idx)
+static void tui_mode_change(UI *ui, String mode, Integer mode_idx)
{
TUIData *data = ui->data;
tui_set_mode(ui, (ModeShape)mode_idx);
data->showing_mode = (ModeShape)mode_idx;
}
-static void tui_set_scroll_region(UI *ui, int top, int bot, int left,
- int right)
+static void tui_set_scroll_region(UI *ui, Integer top, Integer bot,
+ Integer left, Integer right)
{
TUIData *data = ui->data;
- ugrid_set_scroll_region(&data->grid, top, bot, left, right);
- data->can_use_terminal_scroll =
+ ugrid_set_scroll_region(&data->grid, (int)top, (int)bot,
+ (int)left, (int)right);
+ data->scroll_region_is_full_screen =
left == 0 && right == ui->width - 1
- && ((top == 0 && bot == ui->height - 1)
- || unibi_get_str(data->ut, unibi_change_scroll_region));
+ && top == 0 && bot == ui->height - 1;
}
-static void tui_scroll(UI *ui, int count)
+static void tui_scroll(UI *ui, Integer count)
{
TUIData *data = ui->data;
UGrid *grid = &data->grid;
int clear_top, clear_bot;
- ugrid_scroll(grid, count, &clear_top, &clear_bot);
+ ugrid_scroll(grid, (int)count, &clear_top, &clear_bot);
+
+ if (can_use_scroll(ui)) {
+ bool scroll_clears_to_current_colour =
+ unibi_get_bool(data->ut, unibi_back_color_erase);
- if (data->can_use_terminal_scroll) {
// Change terminal scroll region and move cursor to the top
- data->params[0].i = grid->top;
- data->params[1].i = grid->bot;
- unibi_out(ui, unibi_change_scroll_region);
+ if (!data->scroll_region_is_full_screen) {
+ set_scroll_region(ui);
+ }
unibi_goto(ui, grid->top, grid->left);
// also set default color attributes or some terminals can become funny
- HlAttrs clear_attrs = EMPTY_ATTRS;
- clear_attrs.foreground = grid->fg;
- clear_attrs.background = grid->bg;
- update_attrs(ui, clear_attrs);
- }
+ if (scroll_clears_to_current_colour) {
+ HlAttrs clear_attrs = EMPTY_ATTRS;
+ clear_attrs.foreground = grid->fg;
+ clear_attrs.background = grid->bg;
+ update_attrs(ui, clear_attrs);
+ }
- if (count > 0) {
- if (data->can_use_terminal_scroll) {
+ if (count > 0) {
if (count == 1) {
unibi_out(ui, unibi_delete_line);
} else {
- data->params[0].i = count;
+ data->params[0].i = (int)count;
unibi_out(ui, unibi_parm_delete_line);
}
- }
-
- } else {
- if (data->can_use_terminal_scroll) {
+ } else {
if (count == -1) {
unibi_out(ui, unibi_insert_line);
} else {
- data->params[0].i = -count;
+ data->params[0].i = -(int)count;
unibi_out(ui, unibi_parm_insert_line);
}
}
- }
- if (data->can_use_terminal_scroll) {
// Restore terminal scroll region and cursor
- data->params[0].i = 0;
- data->params[1].i = ui->height - 1;
- unibi_out(ui, unibi_change_scroll_region);
+ if (!data->scroll_region_is_full_screen) {
+ reset_scroll_region(ui);
+ }
unibi_goto(ui, grid->row, grid->col);
- if (grid->bg != -1) {
- // Update the cleared area of the terminal if its builtin scrolling
- // facility was used and the background color is not the default. This is
- // required because scrolling may leave wrong background in the cleared
- // area.
+ if (!scroll_clears_to_current_colour) {
+ // This is required because scrolling will leave wrong background in the
+ // cleared area on non-bge terminals.
clear_region(ui, clear_top, clear_bot, grid->left, grid->right);
}
} else {
@@ -678,10 +769,10 @@ static void tui_highlight_set(UI *ui, HlAttrs attrs)
((TUIData *)ui->data)->grid.attrs = attrs;
}
-static void tui_put(UI *ui, uint8_t *text, size_t size)
+static void tui_put(UI *ui, String text)
{
TUIData *data = ui->data;
- print_cell(ui, ugrid_put(&data->grid, text, size));
+ print_cell(ui, ugrid_put(&data->grid, (uint8_t *)text.data, text.size));
}
static void tui_bell(UI *ui)
@@ -694,17 +785,17 @@ static void tui_visual_bell(UI *ui)
unibi_out(ui, unibi_flash_screen);
}
-static void tui_update_fg(UI *ui, int fg)
+static void tui_update_fg(UI *ui, Integer fg)
{
- ((TUIData *)ui->data)->grid.fg = fg;
+ ((TUIData *)ui->data)->grid.fg = (int)fg;
}
-static void tui_update_bg(UI *ui, int bg)
+static void tui_update_bg(UI *ui, Integer bg)
{
- ((TUIData *)ui->data)->grid.bg = bg;
+ ((TUIData *)ui->data)->grid.bg = (int)bg;
}
-static void tui_update_sp(UI *ui, int sp)
+static void tui_update_sp(UI *ui, Integer sp)
{
// Do nothing; 'special' color is for GUI only
}
@@ -743,6 +834,7 @@ static void tui_flush(UI *ui)
flush_buf(ui, true);
}
+#ifdef UNIX
static void suspend_event(void **argv)
{
UI *ui = argv[0];
@@ -764,30 +856,33 @@ static void suspend_event(void **argv)
// resume the main thread
CONTINUE(data->bridge);
}
+#endif
static void tui_suspend(UI *ui)
{
+#ifdef UNIX
TUIData *data = ui->data;
// kill(0, SIGTSTP) won't stop the UI thread, so we must poll for SIGCONT
// before continuing. This is done in another callback to avoid
// loop_poll_events recursion
multiqueue_put_event(data->loop->fast_events,
- event_create(1, suspend_event, 1, ui));
+ event_create(suspend_event, 1, ui));
+#endif
}
-static void tui_set_title(UI *ui, char *title)
+static void tui_set_title(UI *ui, String title)
{
TUIData *data = ui->data;
- if (!(title && unibi_get_str(data->ut, unibi_to_status_line)
+ if (!(title.data && unibi_get_str(data->ut, unibi_to_status_line)
&& unibi_get_str(data->ut, unibi_from_status_line))) {
return;
}
unibi_out(ui, unibi_to_status_line);
- out(ui, title, strlen(title));
+ out(ui, title.data, title.size);
unibi_out(ui, unibi_from_status_line);
}
-static void tui_set_icon(UI *ui, char *icon)
+static void tui_set_icon(UI *ui, String icon)
{
}
@@ -945,12 +1040,22 @@ static TermType detect_term(const char *term, const char *colorterm)
if (colorterm && strstr(colorterm, "gnome-terminal")) {
return kTermGnome;
}
+ if (STARTS_WITH(term, "xterm")) {
+ return kTermXTerm;
+ }
+ if (STARTS_WITH(term, "dtterm")) {
+ return kTermDTTerm;
+ }
+ if (STARTS_WITH(term, "teraterm")) {
+ return kTermTeraTerm;
+ }
return kTermUnknown;
}
static void fix_terminfo(TUIData *data)
{
unibi_term *ut = data->ut;
+ is_tmux = os_getenv("TMUX") != NULL;
const char *term = os_getenv("TERM");
const char *colorterm = os_getenv("COLORTERM");
@@ -964,14 +1069,14 @@ static void fix_terminfo(TUIData *data)
unibi_set_if_empty(ut, unibi_flash_screen, "\x1b[?5h$<20/>\x1b[?5l");
unibi_set_if_empty(ut, unibi_enter_italics_mode, "\x1b[3m");
unibi_set_if_empty(ut, unibi_to_status_line, "\x1b]2");
- } else if (STARTS_WITH(term, "xterm")) {
+ } else if (data->term == kTermXTerm) {
unibi_set_if_empty(ut, unibi_to_status_line, "\x1b]0;");
} else if (STARTS_WITH(term, "screen") || STARTS_WITH(term, "tmux")) {
unibi_set_if_empty(ut, unibi_to_status_line, "\x1b_");
unibi_set_if_empty(ut, unibi_from_status_line, "\x1b\\");
}
- if (STARTS_WITH(term, "xterm") || data->term == kTermRxvt) {
+ if (data->term == kTermXTerm || data->term == kTermRxvt) {
const char *normal = unibi_get_str(ut, unibi_cursor_normal);
if (!normal) {
unibi_set_str(ut, unibi_cursor_normal, "\x1b[?25h");
@@ -985,11 +1090,21 @@ static void fix_terminfo(TUIData *data)
unibi_set_if_empty(ut, unibi_cursor_invisible, "\x1b[?25l");
unibi_set_if_empty(ut, unibi_flash_screen, "\x1b[?5h$<100/>\x1b[?5l");
unibi_set_if_empty(ut, unibi_exit_attribute_mode, "\x1b(B\x1b[m");
+ unibi_set_if_empty(ut, unibi_set_tb_margin, "\x1b[%i%p1%d;%p2%dr");
+ unibi_set_if_empty(ut, unibi_set_lr_margin, "\x1b[%i%p1%d;%p2%ds");
+ unibi_set_if_empty(ut, unibi_set_left_margin_parm, "\x1b[%i%p1%ds");
+ unibi_set_if_empty(ut, unibi_set_right_margin_parm, "\x1b[%i;%p2%ds");
unibi_set_if_empty(ut, unibi_change_scroll_region, "\x1b[%i%p1%d;%p2%dr");
unibi_set_if_empty(ut, unibi_clear_screen, "\x1b[H\x1b[2J");
unibi_set_if_empty(ut, unibi_from_status_line, "\x07");
+ unibi_set_bool(ut, unibi_back_color_erase, true);
}
+ data->unibi_ext.enable_lr_margin = (int)unibi_add_ext_str(ut, NULL,
+ "\x1b[?69h");
+ data->unibi_ext.disable_lr_margin = (int)unibi_add_ext_str(ut, NULL,
+ "\x1b[?69l");
+
data->unibi_ext.enable_bracketed_paste = (int)unibi_add_ext_str(ut, NULL,
"\x1b[?2004h");
data->unibi_ext.disable_bracketed_paste = (int)unibi_add_ext_str(ut, NULL,
@@ -1006,19 +1121,36 @@ static void fix_terminfo(TUIData *data)
"\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m"
if ((colorterm && strstr(colorterm, "256"))
+ || STARTS_WITH(term, "linux")
|| strstr(term, "256")
|| strstr(term, "xterm")) {
- // Assume TERM=~xterm or COLORTERM=~256 supports 256 colors.
+ // Linux 4.8+ supports 256-color SGR, but terminfo has 8-color setaf/setab.
+ // Assume TERM=~xterm|linux or COLORTERM=~256 supports 256 colors.
unibi_set_num(ut, unibi_max_colors, 256);
unibi_set_str(ut, unibi_set_a_foreground, XTERM_SETAF);
unibi_set_str(ut, unibi_set_a_background, XTERM_SETAB);
}
+ // Only define this capability for terminal types that we know understand it.
+ if (data->term == kTermDTTerm // originated this extension
+ || data->term == kTermXTerm // per xterm ctlseqs doc
+ || data->term == kTermKonsole // per commentary in VT102Emulation.cpp
+ || data->term == kTermTeraTerm // per "Supported Control Functions" doc
+ || data->term == kTermRxvt) { // per command.C
+ data->unibi_ext.resize_screen = (int)unibi_add_ext_str(ut, NULL,
+ "\x1b[8;%p1%d;%p2%dt");
+ }
+
+ if (data->term == kTermXTerm || data->term == kTermRxvt) {
+ data->unibi_ext.reset_scroll_region = (int)unibi_add_ext_str(ut, NULL,
+ "\x1b[r");
+ }
+
end:
// Fill some empty slots with common terminal strings
if (data->term == kTermiTerm) {
data->unibi_ext.set_cursor_color = (int)unibi_add_ext_str(
- ut, NULL, "\033]Pl%p1%06x\033\\");
+ ut, NULL, TMUX_WRAP("\033]Pl%p1%06x\033\\"));
} else {
data->unibi_ext.set_cursor_color = (int)unibi_add_ext_str(
ut, NULL, "\033]12;#%p1%06x\007");
@@ -1066,7 +1198,7 @@ static void flush_buf(UI *ui, bool toggle_cursor)
buf.base = data->buf;
buf.len = data->bufpos;
- uv_write(&req, (uv_stream_t *)&data->output_handle, &buf, 1, NULL);
+ uv_write(&req, STRUCT_CAST(uv_stream_t, &data->output_handle), &buf, 1, NULL);
uv_run(&data->write_loop, UV_RUN_DEFAULT);
data->bufpos = 0;
@@ -1109,13 +1241,13 @@ static const char *tui_tk_ti_getstr(const char *name, const char *value,
if (strequal(name, "key_backspace")) {
ILOG("libtermkey:kbs=%s", value);
- if (stty_erase != NULL && stty_erase[0] != 0) {
+ if (stty_erase[0] != 0) {
return stty_erase;
}
} else if (strequal(name, "key_dc")) {
ILOG("libtermkey:kdch1=%s", value);
// Vim: "If <BS> and <DEL> are now the same, redefine <DEL>."
- if (stty_erase != NULL && value != NULL && strequal(stty_erase, value)) {
+ if (value != NULL && strequal(stty_erase, value)) {
return stty_erase[0] == DEL ? CTRL_H_STR : DEL_STR;
}
}
diff --git a/src/nvim/tui/tui.h b/src/nvim/tui/tui.h
index 2915b0e2f8..996496ee60 100644
--- a/src/nvim/tui/tui.h
+++ b/src/nvim/tui/tui.h
@@ -2,6 +2,7 @@
#define NVIM_TUI_TUI_H
#include "nvim/cursor_shape.h"
+#include "nvim/ui.h"
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "tui/tui.h.generated.h"
diff --git a/src/nvim/ui.c b/src/nvim/ui.c
index 69916fa4cd..0a2154438f 100644
--- a/src/nvim/ui.c
+++ b/src/nvim/ui.c
@@ -47,6 +47,7 @@
#define MAX_UI_COUNT 16
static UI *uis[MAX_UI_COUNT];
+static bool ui_ext[UI_WIDGETS] = { 0 };
static size_t ui_count = 0;
static int row = 0, col = 0;
static struct {
@@ -88,6 +89,10 @@ static int old_mode_idx = -1;
#define UI_CALL_MORE(method, ...) if (ui->method) ui->method(ui, __VA_ARGS__)
#define UI_CALL_ZERO(method) if (ui->method) ui->method(ui)
+#ifdef INCLUDE_GENERATED_DECLARATIONS
+# include "ui_events_call.generated.h"
+#endif
+
void ui_builtin_start(void)
{
#ifdef FEAT_TUI
@@ -127,24 +132,6 @@ bool ui_active(void)
return ui_count != 0;
}
-void ui_suspend(void)
-{
- UI_CALL(suspend);
- UI_CALL(flush);
-}
-
-void ui_set_title(char *title)
-{
- UI_CALL(set_title, title);
- UI_CALL(flush);
-}
-
-void ui_set_icon(char *icon)
-{
- UI_CALL(set_icon, icon);
- UI_CALL(flush);
-}
-
void ui_event(char *name, Array args)
{
bool args_consumed = false;
@@ -166,18 +153,25 @@ void ui_refresh(void)
}
int width = INT_MAX, height = INT_MAX;
- bool pum_external = true;
+ bool ext_widgets[UI_WIDGETS];
+ for (UIWidget i = 0; (int)i < UI_WIDGETS; i++) {
+ ext_widgets[i] = true;
+ }
for (size_t i = 0; i < ui_count; i++) {
UI *ui = uis[i];
width = MIN(ui->width, width);
height = MIN(ui->height, height);
- pum_external &= ui->pum_external;
+ for (UIWidget i = 0; (int)i < UI_WIDGETS; i++) {
+ ext_widgets[i] &= ui->ui_ext[i];
+ }
}
row = col = 0;
screen_resize(width, height);
- pum_set_external(pum_external);
+ for (UIWidget i = 0; (int)i < UI_WIDGETS; i++) {
+ ui_set_external(i, ext_widgets[i]);
+ }
ui_mode_info_set();
old_mode_idx = -1;
ui_cursor_shape();
@@ -190,7 +184,7 @@ static void ui_refresh_event(void **argv)
void ui_schedule_refresh(void)
{
- loop_schedule(&main_loop, event_create(1, ui_refresh_event, 0));
+ loop_schedule(&main_loop, event_create(ui_refresh_event, 0));
}
void ui_resize(int new_width, int new_height)
@@ -206,33 +200,23 @@ void ui_resize(int new_width, int new_height)
sr.bot = height - 1;
sr.left = 0;
sr.right = width - 1;
- UI_CALL(resize, width, height);
+ ui_call_resize(width, height);
}
void ui_busy_start(void)
{
if (!(busy++)) {
- UI_CALL(busy_start);
+ ui_call_busy_start();
}
}
void ui_busy_stop(void)
{
if (!(--busy)) {
- UI_CALL(busy_stop);
+ ui_call_busy_stop();
}
}
-void ui_mouse_on(void)
-{
- UI_CALL(mouse_on);
-}
-
-void ui_mouse_off(void)
-{
- UI_CALL(mouse_off);
-}
-
void ui_attach_impl(UI *ui)
{
if (ui_count == MAX_UI_COUNT) {
@@ -273,11 +257,6 @@ void ui_detach_impl(UI *ui)
}
}
-void ui_clear(void)
-{
- UI_CALL(clear);
-}
-
// Set scrolling region for window 'wp'.
// The region starts 'off' lines from the start of the window.
// Also set the vertical scroll region for a vertically split window. Always
@@ -292,7 +271,7 @@ void ui_set_scroll_region(win_T *wp, int off)
sr.right = wp->w_wincol + wp->w_width - 1;
}
- UI_CALL(set_scroll_region, sr.top, sr.bot, sr.left, sr.right);
+ ui_call_set_scroll_region(sr.top, sr.bot, sr.left, sr.right);
}
// Reset scrolling region to the whole screen.
@@ -302,22 +281,7 @@ void ui_reset_scroll_region(void)
sr.bot = (int)Rows - 1;
sr.left = 0;
sr.right = (int)Columns - 1;
- UI_CALL(set_scroll_region, sr.top, sr.bot, sr.left, sr.right);
-}
-
-void ui_append_lines(int count)
-{
- UI_CALL(scroll, -count);
-}
-
-void ui_delete_lines(int count)
-{
- UI_CALL(scroll, count);
-}
-
-void ui_eol_clear(void)
-{
- UI_CALL(eol_clear);
+ ui_call_set_scroll_region(sr.top, sr.bot, sr.left, sr.right);
}
void ui_start_highlight(int attr_code)
@@ -342,23 +306,31 @@ void ui_stop_highlight(void)
set_highlight_args(current_attr_code);
}
-void ui_visual_bell(void)
-{
- UI_CALL(visual_bell);
-}
-
void ui_puts(uint8_t *str)
{
- uint8_t *ptr = str;
+ uint8_t *p = str;
uint8_t c;
- while ((c = *ptr)) {
+ while ((c = *p)) {
if (c < 0x20) {
- parse_control_character(c);
- ptr++;
- } else {
- send_output(&ptr);
+ abort();
+ }
+
+ size_t clen = (size_t)mb_ptr2len(p);
+ ui_call_put((String){ .data = (char *)p, .size = clen });
+ col++;
+ if (mb_ptr2cells(p) > 1) {
+ // double cell character, blank the next cell
+ ui_call_put((String)STRING_INIT);
+ col++;
+ }
+ if (utf_ambiguous_width(utf_ptr2char(p))) {
+ pending_cursor_update = true;
}
+ if (col >= width) {
+ ui_linefeed();
+ }
+ p += clen;
}
}
@@ -382,15 +354,10 @@ void ui_mode_info_set(void)
{
Array style = mode_style_array();
bool enabled = (*p_guicursor != NUL);
- UI_CALL(mode_info_set, enabled, style);
+ ui_call_mode_info_set(enabled, style);
api_free_array(style);
}
-void ui_update_menu(void)
-{
- UI_CALL(update_menu);
-}
-
int ui_current_row(void)
{
return row;
@@ -403,47 +370,7 @@ int ui_current_col(void)
void ui_flush(void)
{
- UI_CALL(flush);
-}
-
-static void send_output(uint8_t **ptr)
-{
- uint8_t *p = *ptr;
-
- while (*p >= 0x20) {
- size_t clen = (size_t)mb_ptr2len(p);
- UI_CALL(put, p, (size_t)clen);
- col++;
- if (mb_ptr2cells(p) > 1) {
- // double cell character, blank the next cell
- UI_CALL(put, NULL, 0);
- col++;
- }
- if (utf_ambiguous_width(utf_ptr2char(p))) {
- pending_cursor_update = true;
- }
- if (col >= width) {
- ui_linefeed();
- }
- p += clen;
- }
-
- *ptr = p;
-}
-
-static void parse_control_character(uint8_t c)
-{
- if (c == '\n') {
- ui_linefeed();
- } else if (c == '\r') {
- ui_carriage_return();
- } else if (c == '\b') {
- ui_cursor_left();
- } else if (c == Ctrl_L) {
- ui_cursor_right();
- } else if (c == Ctrl_G) {
- UI_CALL(bell);
- }
+ ui_call_flush();
}
static void set_highlight_args(int attr_code)
@@ -501,43 +428,23 @@ end:
UI_CALL(highlight_set, (ui->rgb ? rgb_attrs : cterm_attrs));
}
-static void ui_linefeed(void)
+void ui_linefeed(void)
{
int new_col = 0;
int new_row = row;
if (new_row < sr.bot) {
new_row++;
} else {
- UI_CALL(scroll, 1);
+ ui_call_scroll(1);
}
ui_cursor_goto(new_row, new_col);
}
-static void ui_carriage_return(void)
-{
- int new_col = 0;
- ui_cursor_goto(row, new_col);
-}
-
-static void ui_cursor_left(void)
-{
- int new_col = col - 1;
- assert(new_col >= 0);
- ui_cursor_goto(row, new_col);
-}
-
-static void ui_cursor_right(void)
-{
- int new_col = col + 1;
- assert(new_col < width);
- ui_cursor_goto(row, new_col);
-}
-
static void flush_cursor_update(void)
{
if (pending_cursor_update) {
pending_cursor_update = false;
- UI_CALL(cursor_goto, row, col);
+ ui_call_cursor_goto(row, col);
}
}
@@ -552,8 +459,22 @@ void ui_cursor_shape(void)
if (old_mode_idx != mode_idx) {
old_mode_idx = mode_idx;
- UI_CALL(mode_change, mode_idx);
+ char *full_name = shape_table[mode_idx].full_name;
+ ui_call_mode_change(cstr_as_string(full_name), mode_idx);
}
conceal_check_cursur_line();
}
+/// Returns true if `widget` is externalized.
+bool ui_is_external(UIWidget widget)
+{
+ return ui_ext[widget];
+}
+
+/// Sets `widget` as "external".
+/// Such widgets are not drawn by Nvim; external UIs are expected to handle
+/// higher-level UI events and present the data.
+void ui_set_external(UIWidget widget, bool external)
+{
+ ui_ext[widget] = external;
+}
diff --git a/src/nvim/ui.h b/src/nvim/ui.h
index fcf52ac9e1..064f77fee1 100644
--- a/src/nvim/ui.h
+++ b/src/nvim/ui.h
@@ -8,6 +8,14 @@
#include "api/private/defs.h"
#include "nvim/buffer_defs.h"
+typedef enum {
+ kUICmdline = 0,
+ kUIPopupmenu,
+ kUITabline,
+ kUIWildmenu,
+} UIWidget;
+#define UI_WIDGETS (kUIWildmenu + 1)
+
typedef struct {
bool bold, underline, undercurl, italic, reverse;
int foreground, background, special;
@@ -16,38 +24,21 @@ typedef struct {
typedef struct ui_t UI;
struct ui_t {
- bool rgb, pum_external;
+ bool rgb;
+ bool ui_ext[UI_WIDGETS]; ///< Externalized widgets
int width, height;
void *data;
- void (*resize)(UI *ui, int rows, int columns);
- void (*clear)(UI *ui);
- void (*eol_clear)(UI *ui);
- void (*cursor_goto)(UI *ui, int row, int col);
- void (*mode_info_set)(UI *ui, bool enabled, Array cursor_styles);
- void (*update_menu)(UI *ui);
- void (*busy_start)(UI *ui);
- void (*busy_stop)(UI *ui);
- void (*mouse_on)(UI *ui);
- void (*mouse_off)(UI *ui);
- void (*mode_change)(UI *ui, int mode_idx);
- void (*set_scroll_region)(UI *ui, int top, int bot, int left, int right);
- void (*scroll)(UI *ui, int count);
- void (*highlight_set)(UI *ui, HlAttrs attrs);
- void (*put)(UI *ui, uint8_t *str, size_t len);
- void (*bell)(UI *ui);
- void (*visual_bell)(UI *ui);
- void (*flush)(UI *ui);
- void (*update_fg)(UI *ui, int fg);
- void (*update_bg)(UI *ui, int bg);
- void (*update_sp)(UI *ui, int sp);
- void (*suspend)(UI *ui);
- void (*set_title)(UI *ui, char *title);
- void (*set_icon)(UI *ui, char *icon);
+
+#ifdef INCLUDE_GENERATED_DECLARATIONS
+# include "ui_events.generated.h"
+#endif
+
void (*event)(UI *ui, char *name, Array args, bool *args_consumed);
void (*stop)(UI *ui);
};
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "ui.h.generated.h"
+# include "ui_events_call.h.generated.h"
#endif
#endif // NVIM_UI_H
diff --git a/src/nvim/ui_bridge.c b/src/nvim/ui_bridge.c
index 5697c765ba..0165db7c0c 100644
--- a/src/nvim/ui_bridge.c
+++ b/src/nvim/ui_bridge.c
@@ -40,24 +40,27 @@ static argv_callback uilog_event = NULL;
uilog_event = ui_bridge_##name##_event; \
} \
((UIBridgeData *)ui)->scheduler( \
- event_create(1, ui_bridge_##name##_event, argc, __VA_ARGS__), UI(ui)); \
+ event_create(ui_bridge_##name##_event, argc, __VA_ARGS__), UI(ui)); \
} while (0)
#else
// Schedule a function call on the UI bridge thread.
#define UI_CALL(ui, name, argc, ...) \
((UIBridgeData *)ui)->scheduler( \
- event_create(1, ui_bridge_##name##_event, argc, __VA_ARGS__), UI(ui))
+ event_create(ui_bridge_##name##_event, argc, __VA_ARGS__), UI(ui))
#endif
-#define INT2PTR(i) ((void *)(uintptr_t)i)
-#define PTR2INT(p) ((int)(uintptr_t)p)
+#define INT2PTR(i) ((void *)(intptr_t)i)
+#define PTR2INT(p) ((Integer)(intptr_t)p)
+
+#ifdef INCLUDE_GENERATED_DECLARATIONS
+# include "ui_events_bridge.generated.h"
+#endif
UI *ui_bridge_attach(UI *ui, ui_main_fn ui_main, event_scheduler scheduler)
{
UIBridgeData *rv = xcalloc(1, sizeof(UIBridgeData));
rv->ui = ui;
rv->bridge.rgb = ui->rgb;
- rv->bridge.pum_external = ui->pum_external;
rv->bridge.stop = ui_bridge_stop;
rv->bridge.resize = ui_bridge_resize;
rv->bridge.clear = ui_bridge_clear;
@@ -85,6 +88,10 @@ UI *ui_bridge_attach(UI *ui, ui_main_fn ui_main, event_scheduler scheduler)
rv->bridge.set_icon = ui_bridge_set_icon;
rv->scheduler = scheduler;
+ for (UIWidget i = 0; (int)i < UI_WIDGETS; i++) {
+ rv->bridge.ui_ext[i] = ui->ui_ext[i];
+ }
+
rv->ui_main = ui_main;
uv_mutex_init(&rv->mutex);
uv_cond_init(&rv->cond);
@@ -143,148 +150,6 @@ static void ui_bridge_stop_event(void **argv)
ui->stop(ui);
}
-static void ui_bridge_resize(UI *b, int width, int height)
-{
- UI_CALL(b, resize, 3, b, INT2PTR(width), INT2PTR(height));
-}
-static void ui_bridge_resize_event(void **argv)
-{
- UI *ui = UI(argv[0]);
- ui->resize(ui, PTR2INT(argv[1]), PTR2INT(argv[2]));
-}
-
-static void ui_bridge_clear(UI *b)
-{
- UI_CALL(b, clear, 1, b);
-}
-static void ui_bridge_clear_event(void **argv)
-{
- UI *ui = UI(argv[0]);
- ui->clear(ui);
-}
-
-static void ui_bridge_eol_clear(UI *b)
-{
- UI_CALL(b, eol_clear, 1, b);
-}
-static void ui_bridge_eol_clear_event(void **argv)
-{
- UI *ui = UI(argv[0]);
- ui->eol_clear(ui);
-}
-
-static void ui_bridge_cursor_goto(UI *b, int row, int col)
-{
- UI_CALL(b, cursor_goto, 3, b, INT2PTR(row), INT2PTR(col));
-}
-static void ui_bridge_cursor_goto_event(void **argv)
-{
- UI *ui = UI(argv[0]);
- ui->cursor_goto(ui, PTR2INT(argv[1]), PTR2INT(argv[2]));
-}
-
-static void ui_bridge_mode_info_set(UI *b, bool enabled, Array modes)
-{
- bool *enabledp = xmalloc(sizeof(*enabledp));
- Object *modesp = xmalloc(sizeof(*modesp));
- *enabledp = enabled;
- *modesp = copy_object(ARRAY_OBJ(modes));
- UI_CALL(b, mode_info_set, 3, b, enabledp, modesp);
-}
-static void ui_bridge_mode_info_set_event(void **argv)
-{
- UI *ui = UI(argv[0]);
- bool *enabled = argv[1];
- Object *modes = argv[2];
- ui->mode_info_set(ui, *enabled, modes->data.array);
- xfree(enabled);
- api_free_object(*modes);
- xfree(modes);
-}
-
-static void ui_bridge_update_menu(UI *b)
-{
- UI_CALL(b, update_menu, 1, b);
-}
-static void ui_bridge_update_menu_event(void **argv)
-{
- UI *ui = UI(argv[0]);
- ui->update_menu(ui);
-}
-
-static void ui_bridge_busy_start(UI *b)
-{
- UI_CALL(b, busy_start, 1, b);
-}
-static void ui_bridge_busy_start_event(void **argv)
-{
- UI *ui = UI(argv[0]);
- ui->busy_start(ui);
-}
-
-static void ui_bridge_busy_stop(UI *b)
-{
- UI_CALL(b, busy_stop, 1, b);
-}
-static void ui_bridge_busy_stop_event(void **argv)
-{
- UI *ui = UI(argv[0]);
- ui->busy_stop(ui);
-}
-
-static void ui_bridge_mouse_on(UI *b)
-{
- UI_CALL(b, mouse_on, 1, b);
-}
-static void ui_bridge_mouse_on_event(void **argv)
-{
- UI *ui = UI(argv[0]);
- ui->mouse_on(ui);
-}
-
-static void ui_bridge_mouse_off(UI *b)
-{
- UI_CALL(b, mouse_off, 1, b);
-}
-static void ui_bridge_mouse_off_event(void **argv)
-{
- UI *ui = UI(argv[0]);
- ui->mouse_off(ui);
-}
-
-static void ui_bridge_mode_change(UI *b, int mode_idx)
-{
- UI_CALL(b, mode_change, 2, b, INT2PTR(mode_idx));
-}
-static void ui_bridge_mode_change_event(void **argv)
-{
- UI *ui = UI(argv[0]);
- ui->mode_change(ui, PTR2INT(argv[1]));
-}
-
-static void ui_bridge_set_scroll_region(UI *b, int top, int bot, int left,
- int right)
-{
- UI_CALL(b, set_scroll_region, 5, b, INT2PTR(top), INT2PTR(bot),
- INT2PTR(left), INT2PTR(right));
-}
-static void ui_bridge_set_scroll_region_event(void **argv)
-{
- UI *ui = UI(argv[0]);
- ui->set_scroll_region(ui, PTR2INT(argv[1]), PTR2INT(argv[2]),
- PTR2INT(argv[3]), PTR2INT(argv[4]));
-}
-
-static void ui_bridge_scroll(UI *b, int count)
-{
- UI_CALL(b, scroll, 2, b, INT2PTR(count));
-}
-static void ui_bridge_scroll_event(void **argv)
-{
- UI *ui = UI(argv[0]);
- ui->scroll(ui, PTR2INT(argv[1]));
-}
-
static void ui_bridge_highlight_set(UI *b, HlAttrs attrs)
{
HlAttrs *a = xmalloc(sizeof(HlAttrs));
@@ -298,82 +163,6 @@ static void ui_bridge_highlight_set_event(void **argv)
xfree(argv[1]);
}
-static void ui_bridge_put(UI *b, uint8_t *text, size_t size)
-{
- uint8_t *t = NULL;
- if (text) {
- t = xmalloc(sizeof(((UCell *)0)->data));
- memcpy(t, text, size);
- }
- UI_CALL(b, put, 3, b, t, INT2PTR(size));
-}
-static void ui_bridge_put_event(void **argv)
-{
- UI *ui = UI(argv[0]);
- ui->put(ui, (uint8_t *)argv[1], (size_t)(uintptr_t)argv[2]);
- xfree(argv[1]);
-}
-
-static void ui_bridge_bell(UI *b)
-{
- UI_CALL(b, bell, 1, b);
-}
-static void ui_bridge_bell_event(void **argv)
-{
- UI *ui = UI(argv[0]);
- ui->bell(ui);
-}
-
-static void ui_bridge_visual_bell(UI *b)
-{
- UI_CALL(b, visual_bell, 1, b);
-}
-static void ui_bridge_visual_bell_event(void **argv)
-{
- UI *ui = UI(argv[0]);
- ui->visual_bell(ui);
-}
-
-static void ui_bridge_update_fg(UI *b, int fg)
-{
- UI_CALL(b, update_fg, 2, b, INT2PTR(fg));
-}
-static void ui_bridge_update_fg_event(void **argv)
-{
- UI *ui = UI(argv[0]);
- ui->update_fg(ui, PTR2INT(argv[1]));
-}
-
-static void ui_bridge_update_bg(UI *b, int bg)
-{
- UI_CALL(b, update_bg, 2, b, INT2PTR(bg));
-}
-static void ui_bridge_update_bg_event(void **argv)
-{
- UI *ui = UI(argv[0]);
- ui->update_bg(ui, PTR2INT(argv[1]));
-}
-
-static void ui_bridge_update_sp(UI *b, int sp)
-{
- UI_CALL(b, update_sp, 2, b, INT2PTR(sp));
-}
-static void ui_bridge_update_sp_event(void **argv)
-{
- UI *ui = UI(argv[0]);
- ui->update_sp(ui, PTR2INT(argv[1]));
-}
-
-static void ui_bridge_flush(UI *b)
-{
- UI_CALL(b, flush, 1, b);
-}
-static void ui_bridge_flush_event(void **argv)
-{
- UI *ui = UI(argv[0]);
- ui->flush(ui);
-}
-
static void ui_bridge_suspend(UI *b)
{
UIBridgeData *data = (UIBridgeData *)b;
@@ -391,25 +180,3 @@ static void ui_bridge_suspend_event(void **argv)
UI *ui = UI(argv[0]);
ui->suspend(ui);
}
-
-static void ui_bridge_set_title(UI *b, char *title)
-{
- UI_CALL(b, set_title, 2, b, title ? xstrdup(title) : NULL);
-}
-static void ui_bridge_set_title_event(void **argv)
-{
- UI *ui = UI(argv[0]);
- ui->set_title(ui, argv[1]);
- xfree(argv[1]);
-}
-
-static void ui_bridge_set_icon(UI *b, char *icon)
-{
- UI_CALL(b, set_icon, 2, b, icon ? xstrdup(icon) : NULL);
-}
-static void ui_bridge_set_icon_event(void **argv)
-{
- UI *ui = UI(argv[0]);
- ui->set_icon(ui, argv[1]);
- xfree(argv[1]);
-}
diff --git a/src/nvim/undo.c b/src/nvim/undo.c
index 290d5d7553..81af3bfda9 100644
--- a/src/nvim/undo.c
+++ b/src/nvim/undo.c
@@ -2232,11 +2232,13 @@ static void u_undoredo(int undo)
/* adjust marks */
if (oldsize != newsize) {
mark_adjust(top + 1, top + oldsize, (long)MAXLNUM,
- (long)newsize - (long)oldsize);
- if (curbuf->b_op_start.lnum > top + oldsize)
+ (long)newsize - (long)oldsize, false);
+ if (curbuf->b_op_start.lnum > top + oldsize) {
curbuf->b_op_start.lnum += newsize - oldsize;
- if (curbuf->b_op_end.lnum > top + oldsize)
+ }
+ if (curbuf->b_op_end.lnum > top + oldsize) {
curbuf->b_op_end.lnum += newsize - oldsize;
+ }
}
changed_lines(top + 1, 0, bot, newsize - oldsize);
diff --git a/src/nvim/version.c b/src/nvim/version.c
index b1aa8e2a4b..094ca29b01 100644
--- a/src/nvim/version.c
+++ b/src/nvim/version.c
@@ -84,11 +84,11 @@ static const int included_patches[] = {
// 2363 NA
2362,
// 2361 NA
- // 2360,
+ 2360,
2359,
// 2358 NA
2357,
- // 2356,
+ 2356,
2355,
// 2354,
2353,
@@ -124,9 +124,9 @@ static const int included_patches[] = {
2323,
2322,
2321,
- // 2320,
+ 2320,
// 2319 NA
- // 2318,
+ 2318,
2317,
// 2316 NA
2315,
@@ -176,16 +176,16 @@ static const int included_patches[] = {
// 2271 NA
// 2270 NA
2269,
- // 2268,
+ 2268,
// 2267 NA
2266,
2265,
2264,
- // 2263,
+ 2263,
// 2262 NA
// 2261 NA
// 2260 NA
- // 2259,
+ 2259,
// 2258 NA
// 2257 NA
2256,
@@ -198,14 +198,14 @@ static const int included_patches[] = {
2249,
2248,
// 2247 NA
- // 2246,
- // 2245,
- // 2244,
+ 2246,
+ 2245,
+ 2244,
// 2243 NA
2242,
2241,
2240,
- // 2239,
+ 2239,
// 2238 NA
2237,
2236,
@@ -213,14 +213,14 @@ static const int included_patches[] = {
// 2234 NA
2233,
// 2232 NA
- // 2231,
+ 2231,
2230,
// 2229,
2228,
2227,
2226,
2225,
- // 2224,
+ 2224,
2223,
2222,
2221,
@@ -254,7 +254,7 @@ static const int included_patches[] = {
// 2193 NA
// 2192 NA
// 2191 NA
- // 2190,
+ 2190,
// 2189,
2188,
2187,
@@ -415,7 +415,7 @@ static const int included_patches[] = {
// 2032 NA
2031,
// 2030 NA
- // 2029,
+ 2029,
2028,
// 2027 NA
// 2026 NA
@@ -458,18 +458,18 @@ static const int included_patches[] = {
1989,
// 1988 NA
// 1987 NA
- // 1986,
+ 1986,
// 1985 NA
1984,
// 1983 NA
// 1982 NA
1981,
1980,
- // 1979,
- // 1978,
- // 1977,
- // 1976,
- // 1975,
+ 1979,
+ 1978,
+ 1977,
+ 1976,
+ 1975,
// 1974 NA
1973,
// 1972 NA
diff --git a/src/nvim/window.c b/src/nvim/window.c
index 60bba19b07..43af2e5e4f 100644
--- a/src/nvim/window.c
+++ b/src/nvim/window.c
@@ -48,6 +48,7 @@
#include "nvim/syntax.h"
#include "nvim/terminal.h"
#include "nvim/undo.h"
+#include "nvim/ui.h"
#include "nvim/os/os.h"
@@ -1042,7 +1043,7 @@ static void win_init(win_T *newp, win_T *oldp, int flags)
win_init_some(newp, oldp);
- check_colorcolumn(newp);
+ didset_window_options(newp);
}
/*
@@ -3721,6 +3722,12 @@ static void win_enter_ext(win_T *wp, bool undo_sync, int curwin_invalid,
if (restart_edit)
redraw_later(VALID); /* causes status line redraw */
+ if (hl_attr(HLF_INACTIVE)
+ || (prevwin && prevwin->w_hl_ids[HLF_INACTIVE])
+ || curwin->w_hl_ids[HLF_INACTIVE]) {
+ redraw_all_later(NOT_VALID);
+ }
+
/* set window height to desired minimal value */
if (curwin->w_height < p_wh && !curwin->w_p_wfh)
win_setheight((int)p_wh);
@@ -5223,6 +5230,9 @@ static void last_status_rec(frame_T *fr, int statusline)
*/
int tabline_height(void)
{
+ if (ui_is_external(kUITabline)) {
+ return 0;
+ }
assert(first_tabpage);
switch (p_stal) {
case 0: return 0;
diff --git a/test/README.md b/test/README.md
index 2857cc0ecf..01db5960cd 100644
--- a/test/README.md
+++ b/test/README.md
@@ -2,6 +2,8 @@
Tests are run by `/cmake/RunTests.cmake` file, using busted.
+For some failures, `.nvimlog` (or `$NVIM_LOG_FILE`) may provide insight.
+
## Directory structure
Directories with tests: `/test/benchmark` for benchmarks, `/test/functional` for
diff --git a/test/functional/api/buffer_spec.lua b/test/functional/api/buffer_spec.lua
index 9699ea8f85..823c134ebd 100644
--- a/test/functional/api/buffer_spec.lua
+++ b/test/functional/api/buffer_spec.lua
@@ -10,6 +10,7 @@ local insert = helpers.insert
local NIL = helpers.NIL
local meth_pcall = helpers.meth_pcall
local command = helpers.command
+local bufmeths = helpers.bufmeths
describe('api/buf', function()
before_each(clear)
@@ -121,6 +122,15 @@ describe('api/buf', function()
local get_lines, set_lines = curbufmeths.get_lines, curbufmeths.set_lines
local line_count = curbufmeths.line_count
+ it('fails correctly when input is not valid', function()
+ eq(1, curbufmeths.get_number())
+ local err, emsg = pcall(bufmeths.set_lines, 1, 1, 2, false, {'b\na'})
+ eq(false, err)
+ local exp_emsg = 'String cannot contain newlines'
+ -- Expected {filename}:{lnum}: {exp_emsg}
+ eq(': ' .. exp_emsg, emsg:sub(-#exp_emsg - 2))
+ end)
+
it('has correct line_count when inserting and deleting', function()
eq(1, line_count())
set_lines(-1, -1, true, {'line'})
diff --git a/test/functional/api/keymap_spec.lua b/test/functional/api/keymap_spec.lua
new file mode 100644
index 0000000000..833e0d2f3c
--- /dev/null
+++ b/test/functional/api/keymap_spec.lua
@@ -0,0 +1,246 @@
+
+local helpers = require('test.functional.helpers')(after_each)
+local clear = helpers.clear
+local command = helpers.command
+local curbufmeths = helpers.curbufmeths
+local eq = helpers.eq
+local funcs = helpers.funcs
+local meths = helpers.meths
+local source = helpers.source
+
+local function local_copy(t)
+ local copy = {}
+ for k,v in pairs(t) do
+ copy[k] = v
+ end
+ return copy
+end
+
+describe('get_keymap', function()
+ before_each(clear)
+
+ -- Basic mapping and table to be used to describe results
+ local foo_bar_string = 'nnoremap foo bar'
+ local foo_bar_map_table = {
+ lhs='foo',
+ silent=0,
+ rhs='bar',
+ expr=0,
+ sid=0,
+ buffer=0,
+ nowait=0,
+ mode='n',
+ noremap=1,
+ }
+
+ it('returns empty list when no map', function()
+ eq({}, meths.get_keymap('n'))
+ end)
+
+ it('returns list of all applicable mappings', function()
+ command(foo_bar_string)
+ -- Only one mapping available
+ -- Should be the same as the dictionary we supplied earlier
+ -- and the dictionary you would get from maparg
+ -- since this is a global map, and not script local
+ eq({foo_bar_map_table}, meths.get_keymap('n'))
+ eq({funcs.maparg('foo', 'n', false, true)},
+ meths.get_keymap('n')
+ )
+
+ -- Add another mapping
+ command('nnoremap foo_longer bar_longer')
+ local foolong_bar_map_table = local_copy(foo_bar_map_table)
+ foolong_bar_map_table['lhs'] = 'foo_longer'
+ foolong_bar_map_table['rhs'] = 'bar_longer'
+
+ eq({foolong_bar_map_table, foo_bar_map_table},
+ meths.get_keymap('n')
+ )
+
+ -- Remove a mapping
+ command('unmap foo_longer')
+ eq({foo_bar_map_table},
+ meths.get_keymap('n')
+ )
+ end)
+
+ it('works for other modes', function()
+ -- Add two mappings, one in insert and one normal
+ -- We'll only check the insert mode one
+ command('nnoremap not_going to_check')
+
+ command('inoremap foo bar')
+ -- The table will be the same except for the mode
+ local insert_table = local_copy(foo_bar_map_table)
+ insert_table['mode'] = 'i'
+
+ eq({insert_table}, meths.get_keymap('i'))
+ end)
+
+ it('considers scope', function()
+ -- change the map slightly
+ command('nnoremap foo_longer bar_longer')
+ local foolong_bar_map_table = local_copy(foo_bar_map_table)
+ foolong_bar_map_table['lhs'] = 'foo_longer'
+ foolong_bar_map_table['rhs'] = 'bar_longer'
+
+ local buffer_table = local_copy(foo_bar_map_table)
+ buffer_table['buffer'] = 1
+
+ command('nnoremap <buffer> foo bar')
+
+ -- The buffer mapping should not show up
+ eq({foolong_bar_map_table}, meths.get_keymap('n'))
+ eq({buffer_table}, curbufmeths.get_keymap('n'))
+ end)
+
+ it('considers scope for overlapping maps', function()
+ command('nnoremap foo bar')
+
+ local buffer_table = local_copy(foo_bar_map_table)
+ buffer_table['buffer'] = 1
+
+ command('nnoremap <buffer> foo bar')
+
+ eq({foo_bar_map_table}, meths.get_keymap('n'))
+ eq({buffer_table}, curbufmeths.get_keymap('n'))
+ end)
+
+ it('can retrieve mapping for different buffers', function()
+ local original_buffer = curbufmeths.get_number()
+ -- Place something in each of the buffers to make sure they stick around
+ -- and set hidden so we can leave them
+ command('set hidden')
+ command('new')
+ command('normal! ihello 2')
+ command('new')
+ command('normal! ihello 3')
+
+ local final_buffer = curbufmeths.get_number()
+
+ command('nnoremap <buffer> foo bar')
+ -- Final buffer will have buffer mappings
+ local buffer_table = local_copy(foo_bar_map_table)
+ buffer_table['buffer'] = final_buffer
+ eq({buffer_table}, meths.buf_get_keymap(final_buffer, 'n'))
+ eq({buffer_table}, meths.buf_get_keymap(0, 'n'))
+
+ command('buffer ' .. original_buffer)
+ eq(original_buffer, curbufmeths.get_number())
+ -- Original buffer won't have any mappings
+ eq({}, meths.get_keymap('n'))
+ eq({}, curbufmeths.get_keymap('n'))
+ eq({buffer_table}, meths.buf_get_keymap(final_buffer, 'n'))
+ end)
+
+ -- Test toggle switches for basic options
+ -- @param option The key represented in the `maparg()` result dict
+ local function global_and_buffer_test(map,
+ option,
+ option_token,
+ global_on_result,
+ buffer_on_result,
+ global_off_result,
+ buffer_off_result,
+ new_windows)
+
+ local function make_new_windows(number_of_windows)
+ if new_windows == nil then
+ return nil
+ end
+
+ for _=1,number_of_windows do
+ command('new')
+ end
+ end
+
+ local mode = string.sub(map, 1,1)
+ -- Don't run this for the <buffer> mapping, since it doesn't make sense
+ if option_token ~= '<buffer>' then
+ it(string.format( 'returns %d for the key "%s" when %s is used globally with %s (%s)',
+ global_on_result, option, option_token, map, mode), function()
+ make_new_windows(new_windows)
+ command(map .. ' ' .. option_token .. ' foo bar')
+ local result = meths.get_keymap(mode)[1][option]
+ eq(global_on_result, result)
+ end)
+ end
+
+ it(string.format('returns %d for the key "%s" when %s is used for buffers with %s (%s)',
+ buffer_on_result, option, option_token, map, mode), function()
+ make_new_windows(new_windows)
+ command(map .. ' <buffer> ' .. option_token .. ' foo bar')
+ local result = curbufmeths.get_keymap(mode)[1][option]
+ eq(buffer_on_result, result)
+ end)
+
+ -- Don't run these for the <buffer> mapping, since it doesn't make sense
+ if option_token ~= '<buffer>' then
+ it(string.format('returns %d for the key "%s" when %s is not used globally with %s (%s)',
+ global_off_result, option, option_token, map, mode), function()
+ make_new_windows(new_windows)
+ command(map .. ' baz bat')
+ local result = meths.get_keymap(mode)[1][option]
+ eq(global_off_result, result)
+ end)
+
+ it(string.format('returns %d for the key "%s" when %s is not used for buffers with %s (%s)',
+ buffer_off_result, option, option_token, map, mode), function()
+ make_new_windows(new_windows)
+ command(map .. ' <buffer> foo bar')
+
+ local result = curbufmeths.get_keymap(mode)[1][option]
+ eq(buffer_off_result, result)
+ end)
+ end
+ end
+
+ -- Standard modes and returns the same values in the dictionary as maparg()
+ local mode_list = {'nnoremap', 'nmap', 'imap', 'inoremap', 'cnoremap'}
+ for mode in pairs(mode_list) do
+ global_and_buffer_test(mode_list[mode], 'silent', '<silent>', 1, 1, 0, 0)
+ global_and_buffer_test(mode_list[mode], 'nowait', '<nowait>', 1, 1, 0, 0)
+ global_and_buffer_test(mode_list[mode], 'expr', '<expr>', 1, 1, 0, 0)
+ end
+
+ -- noremap will now be 2 if script was used, which is not the same as maparg()
+ global_and_buffer_test('nmap', 'noremap', '<script>', 2, 2, 0, 0)
+ global_and_buffer_test('nnoremap', 'noremap', '<script>', 2, 2, 1, 1)
+
+ -- buffer will return the buffer ID, which is not the same as maparg()
+ -- Three of these tests won't run
+ global_and_buffer_test('nnoremap', 'buffer', '<buffer>', nil, 3, nil, nil, 2)
+
+ it('returns script numbers for global maps', function()
+ source([[
+ function! s:maparg_test_function() abort
+ return 'testing'
+ endfunction
+
+ nnoremap fizz :call <SID>maparg_test_function()<CR>
+ ]])
+ local sid_result = meths.get_keymap('n')[1]['sid']
+ eq(1, sid_result)
+ eq('testing', meths.call_function('<SNR>' .. sid_result .. '_maparg_test_function', {}))
+ end)
+
+ it('returns script numbers for buffer maps', function()
+ source([[
+ function! s:maparg_test_function() abort
+ return 'testing'
+ endfunction
+
+ nnoremap <buffer> fizz :call <SID>maparg_test_function()<CR>
+ ]])
+ local sid_result = curbufmeths.get_keymap('n')[1]['sid']
+ eq(1, sid_result)
+ eq('testing', meths.call_function('<SNR>' .. sid_result .. '_maparg_test_function', {}))
+ end)
+
+ it('works with <F12> and others', function()
+ command('nnoremap <F12> :let g:maparg_test_var = 1<CR>')
+ eq('<F12>', meths.get_keymap('n')[1]['lhs'])
+ eq(':let g:maparg_test_var = 1<CR>', meths.get_keymap('n')[1]['rhs'])
+ end)
+end)
diff --git a/test/functional/api/server_requests_spec.lua b/test/functional/api/server_requests_spec.lua
index 658077b112..cf15062325 100644
--- a/test/functional/api/server_requests_spec.lua
+++ b/test/functional/api/server_requests_spec.lua
@@ -9,6 +9,8 @@ local nvim_prog, command, funcs = helpers.nvim_prog, helpers.command, helpers.fu
local source, next_message = helpers.source, helpers.next_message
local ok = helpers.ok
local meths = helpers.meths
+local spawn, nvim_argv = helpers.spawn, helpers.nvim_argv
+local set_session = helpers.set_session
describe('server -> client', function()
local cid
@@ -225,4 +227,75 @@ describe('server -> client', function()
end)
end)
+ describe('when connecting to another nvim instance', function()
+ local function connect_test(server, mode, address)
+ local serverpid = funcs.getpid()
+ local client = spawn(nvim_argv)
+ set_session(client, true)
+ local clientpid = funcs.getpid()
+ neq(serverpid, clientpid)
+ local id = funcs.sockconnect(mode, address, {rpc=true})
+ ok(id > 0)
+
+ funcs.rpcrequest(id, 'nvim_set_current_line', 'hello')
+ local client_id = funcs.rpcrequest(id, 'nvim_get_api_info')[1]
+
+ set_session(server, true)
+ eq(serverpid, funcs.getpid())
+ eq('hello', meths.get_current_line())
+
+ -- method calls work both ways
+ funcs.rpcrequest(client_id, 'nvim_set_current_line', 'howdy!')
+ eq(id, funcs.rpcrequest(client_id, 'nvim_get_api_info')[1])
+
+ set_session(client, true)
+ eq(clientpid, funcs.getpid())
+ eq('howdy!', meths.get_current_line())
+
+ server:close()
+ client:close()
+ end
+
+ it('over a named pipe', function()
+ local server = spawn(nvim_argv)
+ set_session(server)
+ local address = funcs.serverlist()[1]
+ local first = string.sub(address,1,1)
+ ok(first == '/' or first == '\\')
+ connect_test(server, 'pipe', address)
+ end)
+
+ it('to an ip adress', function()
+ local server = spawn(nvim_argv)
+ set_session(server)
+ local address = funcs.serverstart("127.0.0.1:")
+ eq('127.0.0.1:', string.sub(address,1,10))
+ connect_test(server, 'tcp', address)
+ end)
+
+ it('to a hostname', function()
+ local server = spawn(nvim_argv)
+ set_session(server)
+ local address = funcs.serverstart("localhost:")
+ eq('localhost:', string.sub(address,1,10))
+ connect_test(server, 'tcp', address)
+ end)
+ end)
+
+ describe('when connecting to its own pipe adress', function()
+ it('it does not deadlock', function()
+ local address = funcs.serverlist()[1]
+ local first = string.sub(address,1,1)
+ ok(first == '/' or first == '\\')
+ local serverpid = funcs.getpid()
+
+ local id = funcs.sockconnect('pipe', address, {rpc=true})
+
+ funcs.rpcrequest(id, 'nvim_set_current_line', 'hello')
+ eq('hello', meths.get_current_line())
+ eq(serverpid, funcs.rpcrequest(id, "nvim_eval", "getpid()"))
+
+ eq(id, funcs.rpcrequest(id, 'nvim_get_api_info')[1])
+ end)
+ end)
end)
diff --git a/test/functional/api/vim_spec.lua b/test/functional/api/vim_spec.lua
index 5b173f3196..c531d4af46 100644
--- a/test/functional/api/vim_spec.lua
+++ b/test/functional/api/vim_spec.lua
@@ -81,6 +81,36 @@ describe('api', function()
end)
end)
+ describe('nvim_execute_lua', function()
+ it('works', function()
+ meths.execute_lua('vim.api.nvim_set_var("test", 3)', {})
+ eq(3, meths.get_var('test'))
+
+ eq(17, meths.execute_lua('a, b = ...\nreturn a + b', {10,7}))
+
+ eq(NIL, meths.execute_lua('function xx(a,b)\nreturn a..b\nend',{}))
+ eq("xy", meths.execute_lua('return xx(...)', {'x','y'}))
+ end)
+
+ it('reports errors', function()
+ eq({false, 'Error loading lua: [string "<nvim>"]:1: '..
+ "'=' expected near '+'"},
+ meth_pcall(meths.execute_lua, 'a+*b', {}))
+
+ eq({false, 'Error loading lua: [string "<nvim>"]:1: '..
+ "unexpected symbol near '1'"},
+ meth_pcall(meths.execute_lua, '1+2', {}))
+
+ eq({false, 'Error loading lua: [string "<nvim>"]:1: '..
+ "unexpected symbol"},
+ meth_pcall(meths.execute_lua, 'aa=bb\0', {}))
+
+ eq({false, 'Error executing lua: [string "<nvim>"]:1: '..
+ "attempt to call global 'bork' (a nil value)"},
+ meth_pcall(meths.execute_lua, 'bork()', {}))
+ end)
+ end)
+
describe('nvim_input', function()
it("VimL error: does NOT fail, updates v:errmsg", function()
local status, _ = pcall(nvim, "input", ":call bogus_fn()<CR>")
@@ -221,6 +251,102 @@ describe('api', function()
end)
end)
+ describe('nvim_get_mode', function()
+ it("during normal-mode `g` returns blocking=true", function()
+ nvim("input", "o") -- add a line
+ eq({mode='i', blocking=false}, nvim("get_mode"))
+ nvim("input", [[<C-\><C-N>]])
+ eq(2, nvim("eval", "line('.')"))
+ eq({mode='n', blocking=false}, nvim("get_mode"))
+
+ nvim("input", "g")
+ eq({mode='n', blocking=true}, nvim("get_mode"))
+
+ nvim("input", "k") -- complete the operator
+ eq(1, nvim("eval", "line('.')")) -- verify the completed operator
+ eq({mode='n', blocking=false}, nvim("get_mode"))
+ end)
+
+ it("returns the correct result multiple consecutive times", function()
+ for _ = 1,5 do
+ eq({mode='n', blocking=false}, nvim("get_mode"))
+ end
+ nvim("input", "g")
+ for _ = 1,4 do
+ eq({mode='n', blocking=true}, nvim("get_mode"))
+ end
+ nvim("input", "g")
+ for _ = 1,7 do
+ eq({mode='n', blocking=false}, nvim("get_mode"))
+ end
+ end)
+
+ it("during normal-mode CTRL-W, returns blocking=true", function()
+ nvim("input", "<C-W>")
+ eq({mode='n', blocking=true}, nvim("get_mode"))
+
+ nvim("input", "s") -- complete the operator
+ eq(2, nvim("eval", "winnr('$')")) -- verify the completed operator
+ eq({mode='n', blocking=false}, nvim("get_mode"))
+ end)
+
+ it("during press-enter prompt returns blocking=true", function()
+ eq({mode='n', blocking=false}, nvim("get_mode"))
+ command("echom 'msg1'")
+ command("echom 'msg2'")
+ command("echom 'msg3'")
+ command("echom 'msg4'")
+ command("echom 'msg5'")
+ eq({mode='n', blocking=false}, nvim("get_mode"))
+ nvim("input", ":messages<CR>")
+ eq({mode='r', blocking=true}, nvim("get_mode"))
+ end)
+
+ it("during getchar() returns blocking=false", function()
+ nvim("input", ":let g:test_input = nr2char(getchar())<CR>")
+ -- Events are enabled during getchar(), RPC calls are *not* blocked. #5384
+ eq({mode='n', blocking=false}, nvim("get_mode"))
+ eq(0, nvim("eval", "exists('g:test_input')"))
+ nvim("input", "J")
+ eq("J", nvim("eval", "g:test_input"))
+ eq({mode='n', blocking=false}, nvim("get_mode"))
+ end)
+
+ -- TODO: bug #6247#issuecomment-286403810
+ it("batched with input", function()
+ eq({mode='n', blocking=false}, nvim("get_mode"))
+ command("echom 'msg1'")
+ command("echom 'msg2'")
+ command("echom 'msg3'")
+ command("echom 'msg4'")
+ command("echom 'msg5'")
+
+ local req = {
+ {'nvim_get_mode', {}},
+ {'nvim_input', {':messages<CR>'}},
+ {'nvim_get_mode', {}},
+ {'nvim_eval', {'1'}},
+ }
+ eq({ { {mode='n', blocking=false},
+ 13,
+ {mode='n', blocking=false}, -- TODO: should be blocked=true
+ 1 },
+ NIL}, meths.call_atomic(req))
+ eq({mode='r', blocking=true}, nvim("get_mode"))
+ end)
+ -- TODO: bug #6166
+ it("during insert-mode map-pending, returns blocking=true #6166", function()
+ command("inoremap xx foo")
+ nvim("input", "ix")
+ eq({mode='i', blocking=true}, nvim("get_mode"))
+ end)
+ -- TODO: bug #6166
+ it("during normal-mode gU, returns blocking=false #6166", function()
+ nvim("input", "gu")
+ eq({mode='no', blocking=false}, nvim("get_mode"))
+ end)
+ end)
+
describe('nvim_replace_termcodes', function()
it('escapes K_SPECIAL as K_SPECIAL KS_SPECIAL KE_FILLER', function()
eq('\128\254X', helpers.nvim('replace_termcodes', '\128', true, true, true))
@@ -241,6 +367,22 @@ describe('api', function()
eq('\128\253\44', helpers.nvim('replace_termcodes',
'<LeftMouse>', true, true, true))
end)
+
+ it('converts keycodes', function()
+ eq('\nx\27x\rx<x', helpers.nvim('replace_termcodes',
+ '<NL>x<Esc>x<CR>x<lt>x', true, true, true))
+ end)
+
+ it('does not crash when transforming an empty string', function()
+ -- Actually does not test anything, because current code will use NULL for
+ -- an empty string.
+ --
+ -- Problem here is that if String argument has .data in allocated memory
+ -- then `return str` in vim_replace_termcodes body will make Neovim free
+ -- `str.data` twice: once when freeing arguments, then when freeing return
+ -- value.
+ eq('', meths.replace_termcodes('', true, true, true))
+ end)
end)
describe('nvim_feedkeys', function()
@@ -446,6 +588,36 @@ describe('api', function()
end)
end)
+ describe('list_runtime_paths', function()
+ it('returns nothing with empty &runtimepath', function()
+ meths.set_option('runtimepath', '')
+ eq({}, meths.list_runtime_paths())
+ end)
+ it('returns single runtimepath', function()
+ meths.set_option('runtimepath', 'a')
+ eq({'a'}, meths.list_runtime_paths())
+ end)
+ it('returns two runtimepaths', function()
+ meths.set_option('runtimepath', 'a,b')
+ eq({'a', 'b'}, meths.list_runtime_paths())
+ end)
+ it('returns empty strings when appropriate', function()
+ meths.set_option('runtimepath', 'a,,b')
+ eq({'a', '', 'b'}, meths.list_runtime_paths())
+ meths.set_option('runtimepath', ',a,b')
+ eq({'', 'a', 'b'}, meths.list_runtime_paths())
+ meths.set_option('runtimepath', 'a,b,')
+ eq({'a', 'b', ''}, meths.list_runtime_paths())
+ end)
+ it('truncates too long paths', function()
+ local long_path = ('/a'):rep(8192)
+ meths.set_option('runtimepath', long_path)
+ local paths_list = meths.list_runtime_paths()
+ neq({long_path}, paths_list)
+ eq({long_path:sub(1, #(paths_list[1]))}, paths_list)
+ end)
+ end)
+
it('can throw exceptions', function()
local status, err = pcall(nvim, 'get_option', 'invalid-option')
eq(false, status)
@@ -459,7 +631,7 @@ describe('api', function()
eq(very_long_name, err:match('Ax+Z?'))
end)
- it("doesn't leak memory on incorrect argument types", function()
+ it("does not leak memory on incorrect argument types", function()
local status, err = pcall(nvim, 'set_current_dir',{'not', 'a', 'dir'})
eq(false, status)
ok(err:match(': Wrong type for argument 1, expecting String') ~= nil)
diff --git a/test/functional/api/window_spec.lua b/test/functional/api/window_spec.lua
index 6882f50a3e..8a65d3f71e 100644
--- a/test/functional/api/window_spec.lua
+++ b/test/functional/api/window_spec.lua
@@ -9,6 +9,7 @@ local funcs = helpers.funcs
local request = helpers.request
local NIL = helpers.NIL
local meth_pcall = helpers.meth_pcall
+local meths = helpers.meths
local command = helpers.command
-- check if str is visible at the beginning of some line
@@ -55,6 +56,12 @@ describe('api/win', function()
eq('typing\n some dumb text', curbuf_contents())
end)
+ it('does not leak memory when using invalid window ID with invalid pos',
+ function()
+ eq({false, 'Invalid window id'},
+ meth_pcall(meths.win_set_cursor, 1, {"b\na"}))
+ end)
+
it('updates the screen, and also when the window is unfocused', function()
insert("prologue")
feed('100o<esc>')
diff --git a/test/functional/eval/api_functions_spec.lua b/test/functional/eval/api_functions_spec.lua
index 7f6f53d226..fea4a87a26 100644
--- a/test/functional/eval/api_functions_spec.lua
+++ b/test/functional/eval/api_functions_spec.lua
@@ -106,7 +106,7 @@ describe('api functions', function()
it('have metadata accessible with api_info()', function()
local api_keys = eval("sort(keys(api_info()))")
- eq({'error_types', 'functions', 'types', 'version'}, api_keys)
+ eq({'error_types', 'functions', 'types', 'ui_events', 'version'}, api_keys)
end)
it('are highlighted by vim.vim syntax file', function()
diff --git a/test/functional/eval/function_spec.lua b/test/functional/eval/function_spec.lua
new file mode 100644
index 0000000000..776e760aaf
--- /dev/null
+++ b/test/functional/eval/function_spec.lua
@@ -0,0 +1,29 @@
+local helpers = require('test.functional.helpers')(after_each)
+
+local clear = helpers.clear
+local eq = helpers.eq
+local exc_exec = helpers.exc_exec
+
+describe('Up to MAX_FUNC_ARGS arguments are handled by', function()
+ local max_func_args = 20 -- from eval.h
+ local range = helpers.funcs.range
+
+ before_each(clear)
+
+ it('printf()', function()
+ local printf = helpers.funcs.printf
+ local rep = helpers.funcs['repeat']
+ local expected = '2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,'
+ eq(expected, printf(rep('%d,', max_func_args-1), unpack(range(2, max_func_args))))
+ local ret = exc_exec('call printf("", 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21)')
+ eq('Vim(call):E740: Too many arguments for function printf', ret)
+ end)
+
+ it('rpcnotify()', function()
+ local rpcnotify = helpers.funcs.rpcnotify
+ local ret = rpcnotify(0, 'foo', unpack(range(3, max_func_args)))
+ eq(1, ret)
+ ret = exc_exec('call rpcnotify(0, "foo", 3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21)')
+ eq('Vim(call):E740: Too many arguments for function rpcnotify', ret)
+ end)
+end)
diff --git a/test/functional/eval/input_spec.lua b/test/functional/eval/input_spec.lua
index 393fc10175..74ad32bc6c 100644
--- a/test/functional/eval/input_spec.lua
+++ b/test/functional/eval/input_spec.lua
@@ -1,9 +1,13 @@
local helpers = require('test.functional.helpers')(after_each)
local Screen = require('test.functional.ui.screen')
+local eq = helpers.eq
local feed = helpers.feed
+local meths = helpers.meths
local clear = helpers.clear
+local source = helpers.source
local command = helpers.command
+local exc_exec = helpers.exc_exec
local screen
@@ -11,28 +15,352 @@ before_each(function()
clear()
screen = Screen.new(25, 5)
screen:attach()
+ source([[
+ hi Test ctermfg=Red guifg=Red term=bold
+ function CustomCompl(...)
+ return 'TEST'
+ endfunction
+ function CustomListCompl(...)
+ return ['FOO']
+ endfunction
+ ]])
+ screen:set_default_attr_ids({
+ EOB={bold = true, foreground = Screen.colors.Blue1},
+ T={foreground=Screen.colors.Red},
+ })
end)
describe('input()', function()
- it('works correctly with multiline prompts', function()
+ it('works with multiline prompts', function()
feed([[:call input("Test\nFoo")<CR>]])
screen:expect([[
- {1:~ }|
- {1:~ }|
- {1:~ }|
+ {EOB:~ }|
+ {EOB:~ }|
+ {EOB:~ }|
Test |
Foo^ |
- ]], {{bold=true, foreground=Screen.colors.Blue}})
+ ]])
end)
- it('works correctly with multiline prompts and :echohl', function()
- command('hi Test ctermfg=Red guifg=Red term=bold')
+ it('works with multiline prompts and :echohl', function()
feed([[:echohl Test | call input("Test\nFoo")<CR>]])
screen:expect([[
- {1:~ }|
- {1:~ }|
- {1:~ }|
- {2:Test} |
- {2:Foo}^ |
- ]], {{bold=true, foreground=Screen.colors.Blue}, {foreground=Screen.colors.Red}})
+ {EOB:~ }|
+ {EOB:~ }|
+ {EOB:~ }|
+ {T:Test} |
+ {T:Foo}^ |
+ ]])
+ command('redraw!')
+ screen:expect([[
+ |
+ {EOB:~ }|
+ {EOB:~ }|
+ {EOB:~ }|
+ {T:Foo}^ |
+ ]])
+ end)
+ it('allows unequal numeric arguments when using multiple args', function()
+ command('echohl Test')
+ feed([[:call input(1, 2)<CR>]])
+ screen:expect([[
+ |
+ {EOB:~ }|
+ {EOB:~ }|
+ {EOB:~ }|
+ {T:1}2^ |
+ ]])
+ feed('<BS>')
+ screen:expect([[
+ |
+ {EOB:~ }|
+ {EOB:~ }|
+ {EOB:~ }|
+ {T:1}^ |
+ ]])
+ end)
+ it('allows unequal numeric values when using {opts} dictionary', function()
+ command('echohl Test')
+ meths.set_var('opts', {prompt=1, default=2, cancelreturn=3})
+ feed([[:echo input(opts)<CR>]])
+ screen:expect([[
+ |
+ {EOB:~ }|
+ {EOB:~ }|
+ {EOB:~ }|
+ {T:1}2^ |
+ ]])
+ feed('<BS>')
+ screen:expect([[
+ |
+ {EOB:~ }|
+ {EOB:~ }|
+ {EOB:~ }|
+ {T:1}^ |
+ ]])
+ feed('<Esc>')
+ screen:expect([[
+ ^ |
+ {EOB:~ }|
+ {EOB:~ }|
+ {EOB:~ }|
+ {T:3} |
+ ]])
+ end)
+ it('works with redraw', function()
+ command('echohl Test')
+ meths.set_var('opts', {prompt='Foo>', default='Bar'})
+ feed([[:echo inputdialog(opts)<CR>]])
+ screen:expect([[
+ |
+ {EOB:~ }|
+ {EOB:~ }|
+ {EOB:~ }|
+ {T:Foo>}Bar^ |
+ ]])
+ command('redraw!')
+ screen:expect([[
+ |
+ {EOB:~ }|
+ {EOB:~ }|
+ {EOB:~ }|
+ {T:Foo>}Bar^ |
+ ]])
+ feed('<BS>')
+ screen:expect([[
+ |
+ {EOB:~ }|
+ {EOB:~ }|
+ {EOB:~ }|
+ {T:Foo>}Ba^ |
+ ]])
+ command('redraw!')
+ screen:expect([[
+ |
+ {EOB:~ }|
+ {EOB:~ }|
+ {EOB:~ }|
+ {T:Foo>}Ba^ |
+ ]])
+ end)
+ it('allows omitting everything with dictionary argument', function()
+ command('echohl Test')
+ feed([[:call input({})<CR>]])
+ screen:expect([[
+ |
+ {EOB:~ }|
+ {EOB:~ }|
+ {EOB:~ }|
+ ^ |
+ ]])
+ end)
+ it('supports completion', function()
+ feed(':let var = input("", "", "custom,CustomCompl")<CR>')
+ feed('<Tab><CR>')
+ eq('TEST', meths.get_var('var'))
+
+ feed(':let var = input({"completion": "customlist,CustomListCompl"})<CR>')
+ feed('<Tab><CR>')
+ eq('FOO', meths.get_var('var'))
+ end)
+ it('supports cancelreturn', function()
+ feed(':let var = input({"cancelreturn": "BAR"})<CR>')
+ feed('<Esc>')
+ eq('BAR', meths.get_var('var'))
+ end)
+ it('supports default string', function()
+ feed(':let var = input("", "DEF1")<CR>')
+ feed('<CR>')
+ eq('DEF1', meths.get_var('var'))
+
+ feed(':let var = input({"default": "DEF2"})<CR>')
+ feed('<CR>')
+ eq('DEF2', meths.get_var('var'))
+ end)
+ it('errors out on invalid inputs', function()
+ eq('Vim(call):E730: using List as a String',
+ exc_exec('call input([])'))
+ eq('Vim(call):E730: using List as a String',
+ exc_exec('call input("", [])'))
+ eq('Vim(call):E730: using List as a String',
+ exc_exec('call input("", "", [])'))
+ eq('Vim(call):E730: using List as a String',
+ exc_exec('call input({"prompt": []})'))
+ eq('Vim(call):E730: using List as a String',
+ exc_exec('call input({"cancelreturn": []})'))
+ eq('Vim(call):E730: using List as a String',
+ exc_exec('call input({"default": []})'))
+ eq('Vim(call):E730: using List as a String',
+ exc_exec('call input({"completion": []})'))
+ eq('Vim(call):E5050: {opts} must be the only argument',
+ exc_exec('call input({}, "default")'))
+ eq('Vim(call):E118: Too many arguments for function: input',
+ exc_exec('call input("prompt> ", "default", "file", "extra")'))
+ end)
+end)
+describe('inputdialog()', function()
+ it('works with multiline prompts', function()
+ feed([[:call inputdialog("Test\nFoo")<CR>]])
+ screen:expect([[
+ {EOB:~ }|
+ {EOB:~ }|
+ {EOB:~ }|
+ Test |
+ Foo^ |
+ ]])
+ end)
+ it('works with multiline prompts and :echohl', function()
+ feed([[:echohl Test | call inputdialog("Test\nFoo")<CR>]])
+ screen:expect([[
+ {EOB:~ }|
+ {EOB:~ }|
+ {EOB:~ }|
+ {T:Test} |
+ {T:Foo}^ |
+ ]])
+ command('redraw!')
+ screen:expect([[
+ |
+ {EOB:~ }|
+ {EOB:~ }|
+ {EOB:~ }|
+ {T:Foo}^ |
+ ]])
+ end)
+ it('allows unequal numeric arguments when using multiple args', function()
+ command('echohl Test')
+ feed([[:call inputdialog(1, 2)<CR>]])
+ screen:expect([[
+ |
+ {EOB:~ }|
+ {EOB:~ }|
+ {EOB:~ }|
+ {T:1}2^ |
+ ]])
+ feed('<BS>')
+ screen:expect([[
+ |
+ {EOB:~ }|
+ {EOB:~ }|
+ {EOB:~ }|
+ {T:1}^ |
+ ]])
+ end)
+ it('allows unequal numeric values when using {opts} dictionary', function()
+ command('echohl Test')
+ meths.set_var('opts', {prompt=1, default=2, cancelreturn=3})
+ feed([[:echo input(opts)<CR>]])
+ screen:expect([[
+ |
+ {EOB:~ }|
+ {EOB:~ }|
+ {EOB:~ }|
+ {T:1}2^ |
+ ]])
+ feed('<BS>')
+ screen:expect([[
+ |
+ {EOB:~ }|
+ {EOB:~ }|
+ {EOB:~ }|
+ {T:1}^ |
+ ]])
+ feed('<Esc>')
+ screen:expect([[
+ ^ |
+ {EOB:~ }|
+ {EOB:~ }|
+ {EOB:~ }|
+ {T:3} |
+ ]])
+ end)
+ it('works with redraw', function()
+ command('echohl Test')
+ meths.set_var('opts', {prompt='Foo>', default='Bar'})
+ feed([[:echo input(opts)<CR>]])
+ screen:expect([[
+ |
+ {EOB:~ }|
+ {EOB:~ }|
+ {EOB:~ }|
+ {T:Foo>}Bar^ |
+ ]])
+ command('redraw!')
+ screen:expect([[
+ |
+ {EOB:~ }|
+ {EOB:~ }|
+ {EOB:~ }|
+ {T:Foo>}Bar^ |
+ ]])
+ feed('<BS>')
+ screen:expect([[
+ |
+ {EOB:~ }|
+ {EOB:~ }|
+ {EOB:~ }|
+ {T:Foo>}Ba^ |
+ ]])
+ command('redraw!')
+ screen:expect([[
+ |
+ {EOB:~ }|
+ {EOB:~ }|
+ {EOB:~ }|
+ {T:Foo>}Ba^ |
+ ]])
+ end)
+ it('allows omitting everything with dictionary argument', function()
+ command('echohl Test')
+ feed(':echo inputdialog({})<CR>')
+ screen:expect([[
+ |
+ {EOB:~ }|
+ {EOB:~ }|
+ {EOB:~ }|
+ ^ |
+ ]])
+ end)
+ it('supports completion', function()
+ feed(':let var = inputdialog({"completion": "customlist,CustomListCompl"})<CR>')
+ feed('<Tab><CR>')
+ eq('FOO', meths.get_var('var'))
+ end)
+ it('supports cancelreturn', function()
+ feed(':let var = inputdialog("", "", "CR1")<CR>')
+ feed('<Esc>')
+ eq('CR1', meths.get_var('var'))
+
+ feed(':let var = inputdialog({"cancelreturn": "BAR"})<CR>')
+ feed('<Esc>')
+ eq('BAR', meths.get_var('var'))
+ end)
+ it('supports default string', function()
+ feed(':let var = inputdialog("", "DEF1")<CR>')
+ feed('<CR>')
+ eq('DEF1', meths.get_var('var'))
+
+ feed(':let var = inputdialog({"default": "DEF2"})<CR>')
+ feed('<CR>')
+ eq('DEF2', meths.get_var('var'))
+ end)
+ it('errors out on invalid inputs', function()
+ eq('Vim(call):E730: using List as a String',
+ exc_exec('call inputdialog([])'))
+ eq('Vim(call):E730: using List as a String',
+ exc_exec('call inputdialog("", [])'))
+ eq('Vim(call):E730: using List as a String',
+ exc_exec('call inputdialog("", "", [])'))
+ eq('Vim(call):E730: using List as a String',
+ exc_exec('call inputdialog({"prompt": []})'))
+ eq('Vim(call):E730: using List as a String',
+ exc_exec('call inputdialog({"cancelreturn": []})'))
+ eq('Vim(call):E730: using List as a String',
+ exc_exec('call inputdialog({"default": []})'))
+ eq('Vim(call):E730: using List as a String',
+ exc_exec('call inputdialog({"completion": []})'))
+ eq('Vim(call):E5050: {opts} must be the only argument',
+ exc_exec('call inputdialog({}, "default")'))
+ eq('Vim(call):E118: Too many arguments for function: inputdialog',
+ exc_exec('call inputdialog("prompt> ", "default", "file", "extra")'))
end)
end)
diff --git a/test/functional/eval/map_functions_spec.lua b/test/functional/eval/map_functions_spec.lua
new file mode 100644
index 0000000000..a260522aa3
--- /dev/null
+++ b/test/functional/eval/map_functions_spec.lua
@@ -0,0 +1,120 @@
+
+local helpers = require('test.functional.helpers')(after_each)
+local clear = helpers.clear
+local eq = helpers.eq
+local eval = helpers.eval
+local funcs = helpers.funcs
+local nvim = helpers.nvim
+local source = helpers.source
+
+describe('maparg()', function()
+ before_each(clear)
+
+ local foo_bar_map_table = {
+ lhs='foo',
+ silent=0,
+ rhs='bar',
+ expr=0,
+ sid=0,
+ buffer=0,
+ nowait=0,
+ mode='n',
+ noremap=1,
+ }
+
+ it('returns a dictionary', function()
+ nvim('command', 'nnoremap foo bar')
+ eq('bar', funcs.maparg('foo'))
+ eq(foo_bar_map_table, funcs.maparg('foo', 'n', false, true))
+ end)
+
+ it('returns 1 for silent when <silent> is used', function()
+ nvim('command', 'nnoremap <silent> foo bar')
+ eq(1, funcs.maparg('foo', 'n', false, true)['silent'])
+
+ nvim('command', 'nnoremap baz bat')
+ eq(0, funcs.maparg('baz', 'n', false, true)['silent'])
+ end)
+
+ it('returns an empty string when no map is present', function()
+ eq('', funcs.maparg('not a mapping'))
+ end)
+
+ it('returns an empty dictionary when no map is present and dict is requested', function()
+ eq({}, funcs.maparg('not a mapping', 'n', false, true))
+ end)
+
+ it('returns the same value for noremap and <script>', function()
+ nvim('command', 'inoremap <script> hello world')
+ nvim('command', 'inoremap this that')
+ eq(
+ funcs.maparg('hello', 'i', false, true)['noremap'],
+ funcs.maparg('this', 'i', false, true)['noremap']
+ )
+ end)
+
+ it('returns a boolean for buffer', function()
+ -- Open enough windows to know we aren't on buffer number 1
+ nvim('command', 'new')
+ nvim('command', 'new')
+ nvim('command', 'new')
+ nvim('command', 'cnoremap <buffer> this that')
+ eq(1, funcs.maparg('this', 'c', false, true)['buffer'])
+
+ -- Global will return 0 always
+ nvim('command', 'nnoremap other another')
+ eq(0, funcs.maparg('other', 'n', false, true)['buffer'])
+ end)
+
+ it('returns script numbers', function()
+ source([[
+ function! s:maparg_test_function() abort
+ return 'testing'
+ endfunction
+
+ nnoremap fizz :call <SID>maparg_test_function()<CR>
+ ]])
+ eq(1, funcs.maparg('fizz', 'n', false, true)['sid'])
+ eq('testing', nvim('call_function', '<SNR>1_maparg_test_function', {}))
+ end)
+
+ it('works with <F12> and others', function()
+ source([[
+ let g:maparg_test_var = 0
+
+ nnoremap <F12> :let g:maparg_test_var = 1<CR>
+ ]])
+ eq(0, eval('g:maparg_test_var'))
+ source([[
+ call feedkeys("\<F12>")
+ ]])
+ eq(1, eval('g:maparg_test_var'))
+
+ eq(':let g:maparg_test_var = 1<CR>', funcs.maparg('<F12>', 'n', false, true)['rhs'])
+ end)
+
+ it('works with <expr>', function()
+ source([[
+ let counter = 0
+ inoremap <expr> <C-L> ListItem()
+ inoremap <expr> <C-R> ListReset()
+
+ func ListItem()
+ let g:counter += 1
+ return g:counter . '. '
+ endfunc
+
+ func ListReset()
+ let g:counter = 0
+ return ''
+ endfunc
+
+ call feedkeys("i\<C-L>")
+ ]])
+ eq(1, eval('g:counter'))
+
+ local map_dict = funcs.maparg('<C-L>', 'i', false, true)
+ eq(1, map_dict['expr'])
+ eq('i', map_dict['mode'])
+ end)
+end)
diff --git a/test/functional/eval/msgpack_functions_spec.lua b/test/functional/eval/msgpack_functions_spec.lua
index c5520deb73..b241635dfe 100644
--- a/test/functional/eval/msgpack_functions_spec.lua
+++ b/test/functional/eval/msgpack_functions_spec.lua
@@ -337,7 +337,8 @@ describe('msgpack*() functions', function()
eq(1, eval('type(parsed[0]) == type(0) ' ..
'|| parsed[0]._TYPE is v:msgpack_types.integer'))
if eval('type(parsed[0]) == type(0)') == 1 then
- eq(1, eval('0xFFFFFFFFFFFFFFFF == parsed[0]'))
+ command('call assert_equal(0xFFFFFFFFFFFFFFFF, parsed[0])')
+ eq({}, eval('v:errors'))
else
eq({_TYPE={}, _VAL={1, 3, 0x7FFFFFFF, 0x7FFFFFFF}}, eval('parsed[0]'))
end
@@ -351,7 +352,8 @@ describe('msgpack*() functions', function()
eq(1, eval('type(parsed[0]) == type(0) ' ..
'|| parsed[0]._TYPE is v:msgpack_types.integer'))
if eval('type(parsed[0]) == type(0)') == 1 then
- eq(1, eval('-0x8000000000000000 == parsed[0]'))
+ command('call assert_equal(-0x7fffffffffffffff - 1, parsed[0])')
+ eq({}, eval('v:errors'))
else
eq({_TYPE={}, _VAL={-1, 2, 0, 0}}, eval('parsed[0]'))
end
@@ -461,7 +463,7 @@ describe('msgpackparse() function', function()
eval(cmd)
eval(cmd) -- do it again (try to force segfault)
local api_info = eval(cmd) -- do it again
- eq({'error_types', 'functions', 'types', 'version'}, api_info)
+ eq({'error_types', 'functions', 'types', 'ui_events', 'version'}, api_info)
end)
it('fails when called with no arguments', function()
diff --git a/test/functional/eval/server_spec.lua b/test/functional/eval/server_spec.lua
index 420aea04aa..115114c3c3 100644
--- a/test/functional/eval/server_spec.lua
+++ b/test/functional/eval/server_spec.lua
@@ -1,20 +1,27 @@
local helpers = require('test.functional.helpers')(after_each)
-local nvim, eq, neq, eval = helpers.nvim, helpers.eq, helpers.neq, helpers.eval
+local eq, neq, eval = helpers.eq, helpers.neq, helpers.eval
+local command = helpers.command
local clear, funcs, meths = helpers.clear, helpers.funcs, helpers.meths
local os_name = helpers.os_name
+local function clear_serverlist()
+ for _, server in pairs(funcs.serverlist()) do
+ funcs.serverstop(server)
+ end
+end
+
describe('serverstart(), serverstop()', function()
before_each(clear)
it('sets $NVIM_LISTEN_ADDRESS on first invocation', function()
-- Unset $NVIM_LISTEN_ADDRESS
- nvim('command', 'let $NVIM_LISTEN_ADDRESS = ""')
+ command('let $NVIM_LISTEN_ADDRESS = ""')
local s = eval('serverstart()')
assert(s ~= nil and s:len() > 0, "serverstart() returned empty")
eq(s, eval('$NVIM_LISTEN_ADDRESS'))
- nvim('command', "call serverstop('"..s.."')")
+ command("call serverstop('"..s.."')")
eq('', eval('$NVIM_LISTEN_ADDRESS'))
end)
@@ -47,10 +54,38 @@ describe('serverstart(), serverstop()', function()
end)
it('serverstop() ignores invalid input', function()
- nvim('command', "call serverstop('')")
- nvim('command', "call serverstop('bogus-socket-name')")
+ command("call serverstop('')")
+ command("call serverstop('bogus-socket-name')")
end)
+ it('parses endpoints correctly', function()
+ clear_serverlist()
+ eq({}, funcs.serverlist())
+
+ local s = funcs.serverstart('127.0.0.1:0') -- assign random port
+ assert(string.match(s, '127.0.0.1:%d+'))
+ eq(s, funcs.serverlist()[1])
+ clear_serverlist()
+
+ s = funcs.serverstart('127.0.0.1:') -- assign random port
+ assert(string.match(s, '127.0.0.1:%d+'))
+ eq(s, funcs.serverlist()[1])
+ clear_serverlist()
+
+ funcs.serverstart('127.0.0.1:12345')
+ funcs.serverstart('127.0.0.1:12345') -- exists already; ignore
+ funcs.serverstart('::1:12345')
+ funcs.serverstart('::1:12345') -- exists already; ignore
+ local expected = {
+ '127.0.0.1:12345',
+ '::1:12345',
+ }
+ eq(expected, funcs.serverlist())
+ clear_serverlist()
+
+ funcs.serverstart('127.0.0.1:65536') -- invalid port
+ eq({}, funcs.serverlist())
+ end)
end)
describe('serverlist()', function()
@@ -75,7 +110,7 @@ describe('serverlist()', function()
-- The new servers should be at the end of the list.
for i = 1, #servs do
eq(servs[i], new_servs[i + n])
- nvim('command', "call serverstop('"..servs[i].."')")
+ command("call serverstop('"..servs[i].."')")
end
-- After serverstop() the servers should NOT be in the list.
eq(n, eval('len(serverlist())'))
diff --git a/test/functional/ex_cmds/encoding_spec.lua b/test/functional/ex_cmds/encoding_spec.lua
index 0769259be4..7f2bd78a47 100644
--- a/test/functional/ex_cmds/encoding_spec.lua
+++ b/test/functional/ex_cmds/encoding_spec.lua
@@ -15,7 +15,7 @@ describe('&encoding', function()
feed_command('set encoding=latin1')
-- error message expected
feed('<cr>')
- neq(nil, string.find(eval('v:errmsg'), '^E474:'))
+ neq(nil, string.find(eval('v:errmsg'), '^E519:'))
eq('utf-8', eval('&encoding'))
-- check nvim is still in utf-8 mode
eq(3, eval('strwidth("Bär")'))
@@ -25,7 +25,7 @@ describe('&encoding', function()
clear('--cmd', 'set enc=latin1')
-- error message expected
feed('<cr>')
- neq(nil, string.find(eval('v:errmsg'), '^E474:'))
+ neq(nil, string.find(eval('v:errmsg'), '^E519:'))
eq('utf-8', eval('&encoding'))
eq(3, eval('strwidth("Bär")'))
end)
diff --git a/test/functional/ex_cmds/mksession_spec.lua b/test/functional/ex_cmds/mksession_spec.lua
new file mode 100644
index 0000000000..5d658f10bb
--- /dev/null
+++ b/test/functional/ex_cmds/mksession_spec.lua
@@ -0,0 +1,49 @@
+local lfs = require('lfs')
+local helpers = require('test.functional.helpers')(after_each)
+
+local clear = helpers.clear
+local command = helpers.command
+local get_pathsep = helpers.get_pathsep
+local eq = helpers.eq
+local funcs = helpers.funcs
+
+local file_prefix = 'Xtest-functional-ex_cmds-mksession_spec'
+
+describe(':mksession', function()
+ local session_file = file_prefix .. '.vim'
+ local tab_dir = file_prefix .. '.d'
+
+ before_each(function()
+ clear()
+ lfs.mkdir(tab_dir)
+ end)
+
+ after_each(function()
+ os.remove(session_file)
+ lfs.rmdir(tab_dir)
+ end)
+
+ it('restores tab-local working directories', function()
+ local tmpfile_base = file_prefix .. '-tmpfile'
+ local cwd_dir = funcs.getcwd()
+
+ -- :mksession does not save empty tabs, so create some buffers.
+ command('edit ' .. tmpfile_base .. '1')
+ command('tabnew')
+ command('edit ' .. tmpfile_base .. '2')
+ command('tcd ' .. tab_dir)
+ command('tabfirst')
+ command('mksession ' .. session_file)
+
+ -- Create a new test instance of Nvim.
+ clear()
+
+ command('source ' .. session_file)
+ -- First tab should have the original working directory.
+ command('tabnext 1')
+ eq(cwd_dir, funcs.getcwd())
+ -- Second tab should have the tab-local working directory.
+ command('tabnext 2')
+ eq(cwd_dir .. get_pathsep() .. tab_dir, funcs.getcwd())
+ end)
+end)
diff --git a/test/functional/ex_cmds/oldfiles_spec.lua b/test/functional/ex_cmds/oldfiles_spec.lua
index 656b3f9bae..4002855c24 100644
--- a/test/functional/ex_cmds/oldfiles_spec.lua
+++ b/test/functional/ex_cmds/oldfiles_spec.lua
@@ -4,13 +4,15 @@ local helpers = require('test.functional.helpers')(after_each)
local buf, eq, feed_command = helpers.curbufmeths, helpers.eq, helpers.feed_command
local feed, nvim_prog, wait = helpers.feed, helpers.nvim_prog, helpers.wait
local ok, set_session, spawn = helpers.ok, helpers.set_session, helpers.spawn
+local eval = helpers.eval
-local shada_file = 'test.shada'
+local shada_file = 'Xtest.shada'
local function _clear()
- set_session(spawn({nvim_prog, '--embed', '-u', 'NONE', '--cmd',
+ set_session(spawn({nvim_prog, '--embed', '-u', 'NONE',
-- Need shada for these tests.
- 'set noswapfile undodir=. directory=. viewdir=. backupdir=. belloff= noshowcmd noruler'}))
+ '-i', shada_file,
+ '--cmd', 'set noswapfile undodir=. directory=. viewdir=. backupdir=. belloff= noshowcmd noruler'}))
end
describe(':oldfiles', function()
@@ -29,8 +31,8 @@ describe(':oldfiles', function()
screen:attach()
feed_command('edit testfile1')
feed_command('edit testfile2')
- feed_command('wshada ' .. shada_file)
- feed_command('rshada! ' .. shada_file)
+ feed_command('wshada')
+ feed_command('rshada!')
local oldfiles = helpers.meths.get_vvar('oldfiles')
feed_command('oldfiles')
screen:expect([[
@@ -41,6 +43,38 @@ describe(':oldfiles', function()
Press ENTER or type command to continue^ |
]])
end)
+
+ it('can be filtered with :filter', function()
+ feed_command('edit file_one.txt')
+ local file1 = buf.get_name()
+ feed_command('edit file_two.txt')
+ local file2 = buf.get_name()
+ feed_command('edit another.txt')
+ local another = buf.get_name()
+ feed_command('wshada')
+ feed_command('rshada!')
+
+ local function get_oldfiles(cmd)
+ local t = eval([[split(execute(']]..cmd..[['), "\n")]])
+ for i, _ in ipairs(t) do
+ t[i] = t[i]:gsub('^%d+:%s+', '')
+ end
+ table.sort(t)
+ return t
+ end
+
+ local oldfiles = get_oldfiles('oldfiles')
+ eq({another, file1, file2}, oldfiles)
+
+ oldfiles = get_oldfiles('filter file_ oldfiles')
+ eq({file1, file2}, oldfiles)
+
+ oldfiles = get_oldfiles('filter /another/ oldfiles')
+ eq({another}, oldfiles)
+
+ oldfiles = get_oldfiles('filter! file_ oldfiles')
+ eq({another}, oldfiles)
+ end)
end)
describe(':browse oldfiles', function()
@@ -54,10 +88,9 @@ describe(':browse oldfiles', function()
filename = buf.get_name()
feed_command('edit testfile2')
filename2 = buf.get_name()
- feed_command('wshada ' .. shada_file)
+ feed_command('wshada')
wait()
_clear()
- feed_command('rshada! ' .. shada_file)
-- Ensure nvim is out of "Press ENTER..." prompt.
feed('<cr>')
diff --git a/test/functional/ex_cmds/script_spec.lua b/test/functional/ex_cmds/script_spec.lua
new file mode 100644
index 0000000000..4e57d2755d
--- /dev/null
+++ b/test/functional/ex_cmds/script_spec.lua
@@ -0,0 +1,75 @@
+local helpers = require('test.functional.helpers')(after_each)
+
+local eq = helpers.eq
+local neq = helpers.neq
+local meths = helpers.meths
+local clear = helpers.clear
+local dedent = helpers.dedent
+local source = helpers.source
+local exc_exec = helpers.exc_exec
+local missing_provider = helpers.missing_provider
+
+before_each(clear)
+
+describe('script_get-based command', function()
+ local garbage = ')}{+*({}]*[;(+}{&[]}{*])('
+
+ local function test_garbage_exec(cmd, check_neq)
+ describe(cmd, function()
+ it('works correctly when skipping oneline variant', function()
+ eq(true, pcall(source, (dedent([[
+ if 0
+ %s %s
+ endif
+ ]])):format(cmd, garbage)))
+ eq('', meths.command_output('messages'))
+ if check_neq then
+ neq(0, exc_exec(dedent([[
+ %s %s
+ ]])):format(cmd, garbage))
+ end
+ end)
+ it('works correctly when skipping HEREdoc variant', function()
+ eq(true, pcall(source, (dedent([[
+ if 0
+ %s << EOF
+ %s
+ EOF
+ endif
+ ]])):format(cmd, garbage)))
+ eq('', meths.command_output('messages'))
+ if check_neq then
+ eq(true, pcall(source, (dedent([[
+ let g:exc = 0
+ try
+ %s << EOF
+ %s
+ EOF
+ catch
+ let g:exc = v:exception
+ endtry
+ ]])):format(cmd, garbage)))
+ neq(0, meths.get_var('exc'))
+ end
+ end)
+ end)
+ end
+
+ clear()
+
+ -- Built-in scripts
+ test_garbage_exec('lua', true)
+
+ -- Provider-based scripts
+ test_garbage_exec('ruby', not missing_provider('ruby'))
+ test_garbage_exec('python', not missing_provider('python'))
+ test_garbage_exec('python3', not missing_provider('python3'))
+
+ -- Missing scripts
+ test_garbage_exec('tcl', false)
+ test_garbage_exec('mzscheme', false)
+ test_garbage_exec('perl', false)
+
+ -- Not really a script
+ test_garbage_exec('xxxinvalidlanguagexxx', true)
+end)
diff --git a/test/functional/fixtures/api_level_2.mpack b/test/functional/fixtures/api_level_2.mpack
new file mode 100644
index 0000000000..0ca2ba8866
--- /dev/null
+++ b/test/functional/fixtures/api_level_2.mpack
Binary files differ
diff --git a/test/functional/fixtures/tty-test.c b/test/functional/fixtures/tty-test.c
index 3406b3a202..7ba21d652a 100644
--- a/test/functional/fixtures/tty-test.c
+++ b/test/functional/fixtures/tty-test.c
@@ -6,6 +6,9 @@
#include <stdlib.h>
#include <uv.h>
+// -V:STRUCT_CAST:641
+#define STRUCT_CAST(Type, obj) ((Type *)(obj))
+
uv_tty_t tty;
#ifdef _WIN32
@@ -88,9 +91,9 @@ static void read_cb(uv_stream_t *stream, ssize_t cnt, const uv_buf_t *buf)
uv_tty_init(&write_loop, &out, 1, 0);
uv_write_t req;
uv_buf_t b = {.base = buf->base, .len = (size_t)cnt};
- uv_write(&req, (uv_stream_t *)&out, &b, 1, NULL);
+ uv_write(&req, STRUCT_CAST(uv_stream_t, &out), &b, 1, NULL);
uv_run(&write_loop, UV_RUN_DEFAULT);
- uv_close((uv_handle_t *)&out, NULL);
+ uv_close(STRUCT_CAST(uv_handle_t, &out), NULL);
uv_run(&write_loop, UV_RUN_DEFAULT);
if (uv_loop_close(&write_loop)) {
abort();
@@ -149,7 +152,7 @@ int main(int argc, char **argv)
uv_tty_init(uv_default_loop(), &tty, fileno(stderr), 1);
uv_tty_set_mode(&tty, UV_TTY_MODE_RAW);
tty.data = &interrupted;
- uv_read_start((uv_stream_t *)&tty, alloc_cb, read_cb);
+ uv_read_start(STRUCT_CAST(uv_stream_t, &tty), alloc_cb, read_cb);
#ifndef WIN32
struct sigaction sa;
sigemptyset(&sa.sa_mask);
diff --git a/test/functional/helpers.lua b/test/functional/helpers.lua
index 0f30910450..4a170d993b 100644
--- a/test/functional/helpers.lua
+++ b/test/functional/helpers.lua
@@ -76,8 +76,8 @@ end
local session, loop_running, last_error
-local function set_session(s)
- if session then
+local function set_session(s, keep)
+ if session and not keep then
session:close()
end
session = s
@@ -174,7 +174,7 @@ local os_name = (function()
end)()
local function iswin()
- return os_name() == 'windows'
+ return package.config:sub(1,1) == '\\'
end
-- Executes a VimL function.
@@ -385,9 +385,9 @@ local function curbuf(method, ...)
end
local function wait()
- -- Execute 'vim_eval' (a deferred function) to block
+ -- Execute 'nvim_eval' (a deferred function) to block
-- until all pending input is processed.
- session:request('vim_eval', '1')
+ session:request('nvim_eval', '1')
end
-- sleeps the test runner (_not_ the nvim instance)
@@ -492,17 +492,6 @@ local exc_exec = function(cmd)
return ret
end
-local function redir_exec(cmd)
- nvim_command(([[
- redir => g:__output
- silent! execute "%s"
- redir END
- ]]):format(cmd:gsub('\n', '\\n'):gsub('[\\"]', '\\%0')))
- local ret = nvim_eval('get(g:, "__output", 0)')
- nvim_command('unlet! g:__output')
- return ret
-end
-
local function create_callindex(func)
local table = {}
setmetatable(table, {
@@ -562,11 +551,55 @@ local curbufmeths = create_callindex(curbuf)
local curwinmeths = create_callindex(curwin)
local curtabmeths = create_callindex(curtab)
+local function redir_exec(cmd)
+ meths.set_var('__redir_exec_cmd', cmd)
+ nvim_command([[
+ redir => g:__redir_exec_output
+ silent! execute g:__redir_exec_cmd
+ redir END
+ ]])
+ local ret = meths.get_var('__redir_exec_output')
+ meths.del_var('__redir_exec_output')
+ meths.del_var('__redir_exec_cmd')
+ return ret
+end
+
local function get_pathsep()
return funcs.fnamemodify('.', ':p'):sub(-1)
end
-local M = {
+local function missing_provider(provider)
+ if provider == 'ruby' then
+ local prog = funcs['provider#' .. provider .. '#Detect']()
+ return prog == '' and (provider .. ' not detected') or false
+ elseif provider == 'python' or provider == 'python3' then
+ local py_major_version = (provider == 'python3' and 3 or 2)
+ local errors = funcs['provider#pythonx#Detect'](py_major_version)[2]
+ return errors ~= '' and errors or false
+ else
+ assert(false, 'Unknown provider: ' .. provider)
+ end
+end
+
+local function alter_slashes(obj)
+ if not iswin() then
+ return obj
+ end
+ if type(obj) == 'string' then
+ local ret = obj:gsub('/', '\\')
+ return ret
+ elseif type(obj) == 'table' then
+ local ret = {}
+ for k, v in pairs(obj) do
+ ret[k] = alter_slashes(v)
+ end
+ return ret
+ else
+ assert(false, 'Could only alter slashes for tables of strings and strings')
+ end
+end
+
+local module = {
prepend_argv = prepend_argv,
clear = clear,
connect = connect,
@@ -596,6 +629,7 @@ local M = {
nvim = nvim,
nvim_async = nvim_async,
nvim_prog = nvim_prog,
+ nvim_argv = nvim_argv,
nvim_set = nvim_set,
nvim_dir = nvim_dir,
buffer = buffer,
@@ -632,6 +666,8 @@ local M = {
meth_pcall = meth_pcall,
NIL = mpack.NIL,
get_pathsep = get_pathsep,
+ missing_provider = missing_provider,
+ alter_slashes = alter_slashes,
}
return function(after_each)
@@ -641,5 +677,5 @@ return function(after_each)
check_cores('build/bin/nvim')
end)
end
- return M
+ return module
end
diff --git a/test/functional/legacy/036_regexp_character_classes_spec.lua b/test/functional/legacy/036_regexp_character_classes_spec.lua
index 110f7dd852..38e8145d1c 100644
--- a/test/functional/legacy/036_regexp_character_classes_spec.lua
+++ b/test/functional/legacy/036_regexp_character_classes_spec.lua
@@ -275,4 +275,16 @@ describe('character classes in regexp', function()
diff(sixlines(string.sub(punct1, 1)..digits..punct2..upper..punct3..
lower..punct4..ctrl2..iso_text))
end)
+ it('does not convert character class ranges to an incorrect class', function()
+ source([[
+ 1 s/\%#=0[0-z]//g
+ 2 s/\%#=1[0-z]//g
+ 3 s/\%#=2[0-z]//g
+ 4 s/\%#=0[^0-z]//g
+ 5 s/\%#=1[^0-z]//g
+ 6 s/\%#=2[^0-z]//g
+ ]])
+ diff(string.rep(ctrl1..punct1..punct4..ctrl2..iso_text..'\n', 3)
+ ..string.rep(digits..punct2..upper..punct3..lower..'\n', 3))
+ end)
end)
diff --git a/test/functional/legacy/assert_spec.lua b/test/functional/legacy/assert_spec.lua
index d6255d42e7..2f342ec9a3 100644
--- a/test/functional/legacy/assert_spec.lua
+++ b/test/functional/legacy/assert_spec.lua
@@ -255,6 +255,16 @@ describe('assert function:', function()
end)
end)
+ -- assert_report({msg})
+ describe('assert_report()', function()
+ it('should add a message to v:errors', function()
+ command("call assert_report('something is wrong')")
+ command("call assert_match('something is wrong', v:errors[0])")
+ command('call remove(v:errors, 0)')
+ expected_empty()
+ end)
+ end)
+
-- assert_exception({cmd}, [, {error}])
describe('assert_exception()', function()
it('should assert thrown exceptions properly', function()
diff --git a/test/functional/legacy/eval_spec.lua b/test/functional/legacy/eval_spec.lua
index d7ef508194..c5d38d6d05 100644
--- a/test/functional/legacy/eval_spec.lua
+++ b/test/functional/legacy/eval_spec.lua
@@ -516,6 +516,15 @@ describe('eval', function()
eq({'item'}, eval("y"))
end)
+ it('sets the unnamed register when the "u" option is passed to setreg', function()
+ command("call setreg('a','a reg', 'cu')")
+ eq("a reg", eval('@"'))
+ command("call setreg('b','b reg', 'cu')")
+ eq("b reg", eval('@"'))
+ command("call setreg('c','c reg', 'c')")
+ eq("b reg", eval('@"'))
+ end)
+
it('search and expressions', function()
command('so test_eval_setup.vim')
command([=[call SetReg('/', ['abc/'])]=])
diff --git a/test/functional/legacy/search_spec.lua b/test/functional/legacy/search_spec.lua
new file mode 100644
index 0000000000..5f71861821
--- /dev/null
+++ b/test/functional/legacy/search_spec.lua
@@ -0,0 +1,474 @@
+local helpers = require('test.functional.helpers')(after_each)
+local Screen = require('test.functional.ui.screen')
+local clear = helpers.clear
+local command = helpers.command
+local eq = helpers.eq
+local eval = helpers.eval
+local feed = helpers.feed
+local funcs = helpers.funcs
+
+describe('search cmdline', function()
+ local screen
+
+ before_each(function()
+ clear()
+ command('set nohlsearch')
+ screen = Screen.new(20, 3)
+ screen:attach()
+ screen:set_default_attr_ids({
+ inc = {reverse = true}
+ })
+ end)
+
+ local function tenlines()
+ funcs.setline(1, {
+ ' 1', ' 2 these', ' 3 the', ' 4 their', ' 5 there',
+ ' 6 their', ' 7 the', ' 8 them', ' 9 these', ' 10 foobar'
+ })
+ command('1')
+ end
+
+ it('history can be navigated with <C-N>/<C-P>', function()
+ tenlines()
+ command('set noincsearch')
+ feed('/foobar<CR>')
+ feed('/the<CR>')
+ eq('the', eval('@/'))
+ feed('/thes<C-P><C-P><CR>')
+ eq('foobar', eval('@/'))
+ end)
+
+ describe('can traverse matches', function()
+ before_each(tenlines)
+ local function forwarditer(wrapscan)
+ command('set incsearch '..wrapscan)
+ feed('/the')
+ screen:expect([[
+ 1 |
+ 2 {inc:the}se |
+ /the^ |
+ ]])
+ feed('<C-G>')
+ screen:expect([[
+ 2 these |
+ 3 {inc:the} |
+ /the^ |
+ ]])
+ eq({0, 0, 0, 0}, funcs.getpos('"'))
+ feed('<C-G>')
+ screen:expect([[
+ 3 the |
+ 4 {inc:the}ir |
+ /the^ |
+ ]])
+ feed('<C-G>')
+ screen:expect([[
+ 4 their |
+ 5 {inc:the}re |
+ /the^ |
+ ]])
+ feed('<C-G>')
+ screen:expect([[
+ 5 there |
+ 6 {inc:the}ir |
+ /the^ |
+ ]])
+ feed('<C-G>')
+ screen:expect([[
+ 6 their |
+ 7 {inc:the} |
+ /the^ |
+ ]])
+ feed('<C-G>')
+ screen:expect([[
+ 7 the |
+ 8 {inc:the}m |
+ /the^ |
+ ]])
+ feed('<C-G>')
+ screen:expect([[
+ 8 them |
+ 9 {inc:the}se |
+ /the^ |
+ ]])
+ feed('<C-G>')
+ if wrapscan == 'wrapscan' then
+ screen:expect([[
+ 2 {inc:the}se |
+ 3 the |
+ /the^ |
+ ]])
+ else
+ screen:expect([[
+ 8 them |
+ 9 {inc:the}se |
+ /the^ |
+ ]])
+ feed('<CR>')
+ eq({0, 0, 0, 0}, funcs.getpos('"'))
+ end
+ end
+
+ local function backiter(wrapscan)
+ command('set incsearch '..wrapscan)
+ command('$')
+
+ feed('?the')
+ screen:expect([[
+ 9 {inc:the}se |
+ 10 foobar |
+ ?the^ |
+ ]])
+ if wrapscan == 'wrapscan' then
+ feed('<C-G>')
+ screen:expect([[
+ 2 {inc:the}se |
+ 3 the |
+ ?the^ |
+ ]])
+ feed('<CR>')
+ screen:expect([[
+ 2 ^these |
+ 3 the |
+ ?the |
+ ]])
+ else
+ feed('<C-G>')
+ screen:expect([[
+ 9 {inc:the}se |
+ 10 foobar |
+ ?the^ |
+ ]])
+ feed('<CR>')
+ screen:expect([[
+ 9 ^these |
+ 10 foobar |
+ ?the |
+ ]])
+ end
+ command('$')
+ feed('?the')
+ screen:expect([[
+ 9 {inc:the}se |
+ 10 foobar |
+ ?the^ |
+ ]])
+ feed('<C-T>')
+ screen:expect([[
+ 8 {inc:the}m |
+ 9 these |
+ ?the^ |
+ ]])
+ for i = 1, 6 do
+ feed('<C-T>')
+ -- Avoid sleep just before expect, otherwise expect will take the full
+ -- timeout
+ if i ~= 6 then
+ screen:sleep(1)
+ end
+ end
+ screen:expect([[
+ 2 {inc:the}se |
+ 3 the |
+ ?the^ |
+ ]])
+ feed('<C-T>')
+ if wrapscan == 'wrapscan' then
+ screen:expect([[
+ 9 {inc:the}se |
+ 10 foobar |
+ ?the^ |
+ ]])
+ else
+ screen:expect([[
+ 2 {inc:the}se |
+ 3 the |
+ ?the^ |
+ ]])
+ end
+ end
+
+ it("using <C-G> and 'nowrapscan'", function()
+ forwarditer('nowrapscan')
+ end)
+
+ it("using <C-G> and 'wrapscan'", function()
+ forwarditer('wrapscan')
+ end)
+
+ it("using <C-T> and 'nowrapscan'", function()
+ backiter('nowrapscan')
+ end)
+
+ it("using <C-T> and 'wrapscan'", function()
+ backiter('wrapscan')
+ end)
+ end)
+
+ it('expands pattern with <C-L>', function()
+ tenlines()
+ command('set incsearch wrapscan')
+
+ feed('/the')
+ screen:expect([[
+ 1 |
+ 2 {inc:the}se |
+ /the^ |
+ ]])
+ feed('<C-L>')
+ screen:expect([[
+ 1 |
+ 2 {inc:thes}e |
+ /thes^ |
+ ]])
+ feed('<C-G>')
+ screen:expect([[
+ 9 {inc:thes}e |
+ 10 foobar |
+ /thes^ |
+ ]])
+ feed('<C-G>')
+ screen:expect([[
+ 2 {inc:thes}e |
+ 3 the |
+ /thes^ |
+ ]])
+ feed('<CR>')
+ screen:expect([[
+ 2 ^these |
+ 3 the |
+ /thes |
+ ]])
+
+ command('1')
+ command('set nowrapscan')
+ feed('/the')
+ screen:expect([[
+ 1 |
+ 2 {inc:the}se |
+ /the^ |
+ ]])
+ feed('<C-L>')
+ screen:expect([[
+ 1 |
+ 2 {inc:thes}e |
+ /thes^ |
+ ]])
+ feed('<C-G>')
+ screen:expect([[
+ 9 {inc:thes}e |
+ 10 foobar |
+ /thes^ |
+ ]])
+ feed('<C-G><CR>')
+ screen:expect([[
+ 9 ^these |
+ 10 foobar |
+ /thes |
+ ]])
+ end)
+
+ it('reduces pattern with <BS> and keeps cursor position', function()
+ tenlines()
+ command('set incsearch wrapscan')
+
+ -- First match
+ feed('/thei')
+ screen:expect([[
+ 4 {inc:thei}r |
+ 5 there |
+ /thei^ |
+ ]])
+ -- Match from initial cursor position when modifying search
+ feed('<BS>')
+ screen:expect([[
+ 1 |
+ 2 {inc:the}se |
+ /the^ |
+ ]])
+ -- New text advances to next match
+ feed('s')
+ screen:expect([[
+ 1 |
+ 2 {inc:thes}e |
+ /thes^ |
+ ]])
+ -- Stay on this match when deleting a character
+ feed('<BS>')
+ screen:expect([[
+ 1 |
+ 2 {inc:the}se |
+ /the^ |
+ ]])
+ -- Advance to previous match
+ feed('<C-T>')
+ screen:expect([[
+ 9 {inc:the}se |
+ 10 foobar |
+ /the^ |
+ ]])
+ -- Extend search to include next character
+ feed('<C-L>')
+ screen:expect([[
+ 9 {inc:thes}e |
+ 10 foobar |
+ /thes^ |
+ ]])
+ -- Deleting all characters resets the cursor position
+ feed('<BS><BS><BS><BS>')
+ screen:expect([[
+ 1 |
+ 2 these |
+ /^ |
+ ]])
+ feed('the')
+ screen:expect([[
+ 1 |
+ 2 {inc:the}se |
+ /the^ |
+ ]])
+ feed('\\>')
+ screen:expect([[
+ 2 these |
+ 3 {inc:the} |
+ /the\>^ |
+ ]])
+ end)
+
+ it('can traverse matches in the same line with <C-G>/<C-T>', function()
+ funcs.setline(1, { ' 1', ' 2 these', ' 3 the theother' })
+ command('1')
+ command('set incsearch')
+
+ -- First match
+ feed('/the')
+ screen:expect([[
+ 1 |
+ 2 {inc:the}se |
+ /the^ |
+ ]])
+
+ -- Next match, different line
+ feed('<C-G>')
+ screen:expect([[
+ 2 these |
+ 3 {inc:the} theother |
+ /the^ |
+ ]])
+
+ -- Next match, same line
+ feed('<C-G>')
+ screen:expect([[
+ 2 these |
+ 3 the {inc:the}other |
+ /the^ |
+ ]])
+ feed('<C-G>')
+ screen:expect([[
+ 2 these |
+ 3 the theo{inc:the}r |
+ /the^ |
+ ]])
+
+ -- Previous match, same line
+ feed('<C-T>')
+ screen:expect([[
+ 2 these |
+ 3 the {inc:the}other |
+ /the^ |
+ ]])
+ feed('<C-T>')
+ screen:expect([[
+ 2 these |
+ 3 {inc:the} theother |
+ /the^ |
+ ]])
+
+ -- Previous match, different line
+ feed('<C-T>')
+ screen:expect([[
+ 2 {inc:the}se |
+ 3 the theother |
+ /the^ |
+ ]])
+ end)
+
+ it('keeps the view after deleting a char from the search', function()
+ screen:detach()
+ screen = Screen.new(20, 6)
+ screen:attach()
+ screen:set_default_attr_ids({
+ inc = {reverse = true}
+ })
+ screen:set_default_attr_ignore({
+ {bold=true, reverse=true}, {bold=true, foreground=Screen.colors.Blue1}
+ })
+ tenlines()
+
+ feed('/foo')
+ screen:expect([[
+ 6 their |
+ 7 the |
+ 8 them |
+ 9 these |
+ 10 {inc:foo}bar |
+ /foo^ |
+ ]])
+ feed('<BS>')
+ screen:expect([[
+ 6 their |
+ 7 the |
+ 8 them |
+ 9 these |
+ 10 {inc:fo}obar |
+ /fo^ |
+ ]])
+ feed('<CR>')
+ screen:expect([[
+ 6 their |
+ 7 the |
+ 8 them |
+ 9 these |
+ 10 ^foobar |
+ /fo |
+ ]])
+ eq({lnum = 10, leftcol = 0, col = 4, topfill = 0, topline = 6,
+ coladd = 0, skipcol = 0, curswant = 4},
+ funcs.winsaveview())
+ end)
+
+ it('restores original view after failed search', function()
+ screen:detach()
+ screen = Screen.new(40, 3)
+ screen:attach()
+ screen:set_default_attr_ids({
+ inc = {reverse = true},
+ err = { foreground = Screen.colors.Grey100, background = Screen.colors.Red },
+ more = { bold = true, foreground = Screen.colors.SeaGreen4 },
+ })
+ tenlines()
+ feed('0')
+ feed('/foo')
+ screen:expect([[
+ 9 these |
+ 10 {inc:foo}bar |
+ /foo^ |
+ ]])
+ feed('<C-W>')
+ screen:expect([[
+ 1 |
+ 2 these |
+ /^ |
+ ]])
+ feed('<CR>')
+ screen:expect([[
+ / |
+ {err:E35: No previous regular expression} |
+ {more:Press ENTER or type command to continue}^ |
+ ]])
+ feed('<CR>')
+ eq({lnum = 1, leftcol = 0, col = 0, topfill = 0, topline = 1,
+ coladd = 0, skipcol = 0, curswant = 0},
+ funcs.winsaveview())
+ end)
+end)
diff --git a/test/functional/lua/api_spec.lua b/test/functional/lua/api_spec.lua
new file mode 100644
index 0000000000..b1dc5c07fd
--- /dev/null
+++ b/test/functional/lua/api_spec.lua
@@ -0,0 +1,204 @@
+-- Test suite for testing interactions with API bindings
+local helpers = require('test.functional.helpers')(after_each)
+
+local exc_exec = helpers.exc_exec
+local funcs = helpers.funcs
+local clear = helpers.clear
+local eval = helpers.eval
+local NIL = helpers.NIL
+local eq = helpers.eq
+
+before_each(clear)
+
+describe('luaeval(vim.api.…)', function()
+ describe('with channel_id and buffer handle', function()
+ describe('nvim_buf_get_lines', function()
+ it('works', function()
+ funcs.setline(1, {"abc", "def", "a\nb", "ttt"})
+ eq({{_TYPE={}, _VAL={'a\nb'}}},
+ funcs.luaeval('vim.api.nvim_buf_get_lines(1, 2, 3, false)'))
+ end)
+ end)
+ describe('nvim_buf_set_lines', function()
+ it('works', function()
+ funcs.setline(1, {"abc", "def", "a\nb", "ttt"})
+ eq(NIL, funcs.luaeval('vim.api.nvim_buf_set_lines(1, 1, 2, false, {"b\\0a"})'))
+ eq({'abc', {_TYPE={}, _VAL={'b\na'}}, {_TYPE={}, _VAL={'a\nb'}}, 'ttt'},
+ funcs.luaeval('vim.api.nvim_buf_get_lines(1, 0, 4, false)'))
+ end)
+ end)
+ end)
+ describe('with errors', function()
+ it('transforms API error from nvim_buf_set_lines into lua error', function()
+ funcs.setline(1, {"abc", "def", "a\nb", "ttt"})
+ eq({false, 'String cannot contain newlines'},
+ funcs.luaeval('{pcall(vim.api.nvim_buf_set_lines, 1, 1, 2, false, {"b\\na"})}'))
+ end)
+
+ it('transforms API error from nvim_win_set_cursor into lua error', function()
+ eq({false, 'Argument "pos" must be a [row, col] array'},
+ funcs.luaeval('{pcall(vim.api.nvim_win_set_cursor, 0, {1, 2, 3})}'))
+ -- Used to produce a memory leak due to a bug in nvim_win_set_cursor
+ eq({false, 'Invalid window id'},
+ funcs.luaeval('{pcall(vim.api.nvim_win_set_cursor, -1, {1, 2, 3})}'))
+ end)
+
+ it('transforms API error from nvim_win_set_cursor + same array as in first test into lua error',
+ function()
+ eq({false, 'Argument "pos" must be a [row, col] array'},
+ funcs.luaeval('{pcall(vim.api.nvim_win_set_cursor, 0, {"b\\na"})}'))
+ end)
+ end)
+
+ it('correctly evaluates API code which calls luaeval', function()
+ local str = (([===[vim.api.nvim_eval([==[
+ luaeval('vim.api.nvim_eval([=[
+ luaeval("vim.api.nvim_eval([[
+ luaeval(1)
+ ]])")
+ ]=])')
+ ]==])]===]):gsub('\n', ' '))
+ eq(1, funcs.luaeval(str))
+ end)
+
+ it('correctly converts from API objects', function()
+ eq(1, funcs.luaeval('vim.api.nvim_eval("1")'))
+ eq('1', funcs.luaeval([[vim.api.nvim_eval('"1"')]]))
+ eq({}, funcs.luaeval('vim.api.nvim_eval("[]")'))
+ eq({}, funcs.luaeval('vim.api.nvim_eval("{}")'))
+ eq(1, funcs.luaeval('vim.api.nvim_eval("1.0")'))
+ eq(true, funcs.luaeval('vim.api.nvim_eval("v:true")'))
+ eq(false, funcs.luaeval('vim.api.nvim_eval("v:false")'))
+ eq(NIL, funcs.luaeval('vim.api.nvim_eval("v:null")'))
+
+ eq(0, eval([[type(luaeval('vim.api.nvim_eval("1")'))]]))
+ eq(1, eval([[type(luaeval('vim.api.nvim_eval("''1''")'))]]))
+ eq(3, eval([[type(luaeval('vim.api.nvim_eval("[]")'))]]))
+ eq(4, eval([[type(luaeval('vim.api.nvim_eval("{}")'))]]))
+ eq(5, eval([[type(luaeval('vim.api.nvim_eval("1.0")'))]]))
+ eq(6, eval([[type(luaeval('vim.api.nvim_eval("v:true")'))]]))
+ eq(6, eval([[type(luaeval('vim.api.nvim_eval("v:false")'))]]))
+ eq(7, eval([[type(luaeval('vim.api.nvim_eval("v:null")'))]]))
+
+ eq({foo=42}, funcs.luaeval([[vim.api.nvim_eval('{"foo": 42}')]]))
+ eq({42}, funcs.luaeval([[vim.api.nvim_eval('[42]')]]))
+
+ eq({foo={bar=42}, baz=50}, funcs.luaeval([[vim.api.nvim_eval('{"foo": {"bar": 42}, "baz": 50}')]]))
+ eq({{42}, {}}, funcs.luaeval([=[vim.api.nvim_eval('[[42], []]')]=]))
+ end)
+
+ it('correctly converts to API objects', function()
+ eq(1, funcs.luaeval('vim.api.nvim__id(1)'))
+ eq('1', funcs.luaeval('vim.api.nvim__id("1")'))
+ eq({1}, funcs.luaeval('vim.api.nvim__id({1})'))
+ eq({foo=1}, funcs.luaeval('vim.api.nvim__id({foo=1})'))
+ eq(1.5, funcs.luaeval('vim.api.nvim__id(1.5)'))
+ eq(true, funcs.luaeval('vim.api.nvim__id(true)'))
+ eq(false, funcs.luaeval('vim.api.nvim__id(false)'))
+ eq(NIL, funcs.luaeval('vim.api.nvim__id(nil)'))
+
+ eq(0, eval([[type(luaeval('vim.api.nvim__id(1)'))]]))
+ eq(1, eval([[type(luaeval('vim.api.nvim__id("1")'))]]))
+ eq(3, eval([[type(luaeval('vim.api.nvim__id({1})'))]]))
+ eq(4, eval([[type(luaeval('vim.api.nvim__id({foo=1})'))]]))
+ eq(5, eval([[type(luaeval('vim.api.nvim__id(1.5)'))]]))
+ eq(6, eval([[type(luaeval('vim.api.nvim__id(true)'))]]))
+ eq(6, eval([[type(luaeval('vim.api.nvim__id(false)'))]]))
+ eq(7, eval([[type(luaeval('vim.api.nvim__id(nil)'))]]))
+
+ eq({foo=1, bar={42, {{baz=true}, 5}}}, funcs.luaeval('vim.api.nvim__id({foo=1, bar={42, {{baz=true}, 5}}})'))
+ end)
+
+ it('correctly converts container objects with type_idx to API objects', function()
+ eq(5, eval('type(luaeval("vim.api.nvim__id({[vim.type_idx]=vim.types.float, [vim.val_idx]=0})"))'))
+ eq(4, eval([[type(luaeval('vim.api.nvim__id({[vim.type_idx]=vim.types.dictionary})'))]]))
+ eq(3, eval([[type(luaeval('vim.api.nvim__id({[vim.type_idx]=vim.types.array})'))]]))
+
+ eq({}, funcs.luaeval('vim.api.nvim__id({[vim.type_idx]=vim.types.array})'))
+
+ -- Presence of type_idx makes Vim ignore some keys
+ eq({42}, funcs.luaeval('vim.api.nvim__id({[vim.type_idx]=vim.types.array, [vim.val_idx]=10, [5]=1, foo=2, [1]=42})'))
+ eq({foo=2}, funcs.luaeval('vim.api.nvim__id({[vim.type_idx]=vim.types.dictionary, [vim.val_idx]=10, [5]=1, foo=2, [1]=42})'))
+ eq(10, funcs.luaeval('vim.api.nvim__id({[vim.type_idx]=vim.types.float, [vim.val_idx]=10, [5]=1, foo=2, [1]=42})'))
+ eq({}, funcs.luaeval('vim.api.nvim__id({[vim.type_idx]=vim.types.array, [vim.val_idx]=10, [5]=1, foo=2})'))
+ end)
+
+ it('correctly converts arrays with type_idx to API objects', function()
+ eq(3, eval([[type(luaeval('vim.api.nvim__id_array({[vim.type_idx]=vim.types.array})'))]]))
+
+ eq({}, funcs.luaeval('vim.api.nvim__id_array({[vim.type_idx]=vim.types.array})'))
+
+ eq({42}, funcs.luaeval('vim.api.nvim__id_array({[vim.type_idx]=vim.types.array, [vim.val_idx]=10, [5]=1, foo=2, [1]=42})'))
+ eq({{foo=2}}, funcs.luaeval('vim.api.nvim__id_array({{[vim.type_idx]=vim.types.dictionary, [vim.val_idx]=10, [5]=1, foo=2, [1]=42}})'))
+ eq({10}, funcs.luaeval('vim.api.nvim__id_array({{[vim.type_idx]=vim.types.float, [vim.val_idx]=10, [5]=1, foo=2, [1]=42}})'))
+ eq({}, funcs.luaeval('vim.api.nvim__id_array({[vim.type_idx]=vim.types.array, [vim.val_idx]=10, [5]=1, foo=2})'))
+
+ eq({}, funcs.luaeval('vim.api.nvim__id_array({})'))
+ eq(3, eval([[type(luaeval('vim.api.nvim__id_array({})'))]]))
+ end)
+
+ it('correctly converts dictionaries with type_idx to API objects', function()
+ eq(4, eval([[type(luaeval('vim.api.nvim__id_dictionary({[vim.type_idx]=vim.types.dictionary})'))]]))
+
+ eq({}, funcs.luaeval('vim.api.nvim__id_dictionary({[vim.type_idx]=vim.types.dictionary})'))
+
+ eq({v={42}}, funcs.luaeval('vim.api.nvim__id_dictionary({v={[vim.type_idx]=vim.types.array, [vim.val_idx]=10, [5]=1, foo=2, [1]=42}})'))
+ eq({foo=2}, funcs.luaeval('vim.api.nvim__id_dictionary({[vim.type_idx]=vim.types.dictionary, [vim.val_idx]=10, [5]=1, foo=2, [1]=42})'))
+ eq({v=10}, funcs.luaeval('vim.api.nvim__id_dictionary({v={[vim.type_idx]=vim.types.float, [vim.val_idx]=10, [5]=1, foo=2, [1]=42}})'))
+ eq({v={}}, funcs.luaeval('vim.api.nvim__id_dictionary({v={[vim.type_idx]=vim.types.array, [vim.val_idx]=10, [5]=1, foo=2}})'))
+
+ -- If API requests dictionary, then empty table will be the one. This is not
+ -- the case normally because empty table is an empty arrray.
+ eq({}, funcs.luaeval('vim.api.nvim__id_dictionary({})'))
+ eq(4, eval([[type(luaeval('vim.api.nvim__id_dictionary({})'))]]))
+ end)
+
+ it('errors out correctly when working with API', function()
+ -- Conversion errors
+ eq('Vim(call):E5108: Error while calling lua chunk for luaeval(): [string "<VimL compiled string>"]:1: Cannot convert given lua type',
+ exc_exec([[call luaeval("vim.api.nvim__id(vim.api.nvim__id)")]]))
+ eq('Vim(call):E5108: Error while calling lua chunk for luaeval(): [string "<VimL compiled string>"]:1: Cannot convert given lua table',
+ exc_exec([[call luaeval("vim.api.nvim__id({1, foo=42})")]]))
+ eq('Vim(call):E5108: Error while calling lua chunk for luaeval(): [string "<VimL compiled string>"]:1: Cannot convert given lua type',
+ exc_exec([[call luaeval("vim.api.nvim__id({42, vim.api.nvim__id})")]]))
+ -- Errors in number of arguments
+ eq('Vim(call):E5108: Error while calling lua chunk for luaeval(): [string "<VimL compiled string>"]:1: Expected 1 argument',
+ exc_exec([[call luaeval("vim.api.nvim__id()")]]))
+ eq('Vim(call):E5108: Error while calling lua chunk for luaeval(): [string "<VimL compiled string>"]:1: Expected 1 argument',
+ exc_exec([[call luaeval("vim.api.nvim__id(1, 2)")]]))
+ eq('Vim(call):E5108: Error while calling lua chunk for luaeval(): [string "<VimL compiled string>"]:1: Expected 2 arguments',
+ exc_exec([[call luaeval("vim.api.nvim_set_var(1, 2, 3)")]]))
+ -- Error in argument types
+ eq('Vim(call):E5108: Error while calling lua chunk for luaeval(): [string "<VimL compiled string>"]:1: Expected lua string',
+ exc_exec([[call luaeval("vim.api.nvim_set_var(1, 2)")]]))
+
+ eq('Vim(call):E5108: Error while calling lua chunk for luaeval(): [string "<VimL compiled string>"]:1: Expected lua number',
+ exc_exec([[call luaeval("vim.api.nvim_buf_get_lines(0, 'test', 1, false)")]]))
+ eq('Vim(call):E5108: Error while calling lua chunk for luaeval(): [string "<VimL compiled string>"]:1: Number is not integral',
+ exc_exec([[call luaeval("vim.api.nvim_buf_get_lines(0, 1.5, 1, false)")]]))
+
+ eq('Vim(call):E5108: Error while calling lua chunk for luaeval(): [string "<VimL compiled string>"]:1: Expected lua table',
+ exc_exec([[call luaeval("vim.api.nvim__id_float('test')")]]))
+ eq('Vim(call):E5108: Error while calling lua chunk for luaeval(): [string "<VimL compiled string>"]:1: Unexpected type',
+ exc_exec([[call luaeval("vim.api.nvim__id_float({[vim.type_idx]=vim.types.dictionary})")]]))
+
+ eq('Vim(call):E5108: Error while calling lua chunk for luaeval(): [string "<VimL compiled string>"]:1: Expected lua table',
+ exc_exec([[call luaeval("vim.api.nvim__id_array(1)")]]))
+ eq('Vim(call):E5108: Error while calling lua chunk for luaeval(): [string "<VimL compiled string>"]:1: Unexpected type',
+ exc_exec([[call luaeval("vim.api.nvim__id_array({[vim.type_idx]=vim.types.dictionary})")]]))
+
+ eq('Vim(call):E5108: Error while calling lua chunk for luaeval(): [string "<VimL compiled string>"]:1: Expected lua table',
+ exc_exec([[call luaeval("vim.api.nvim__id_dictionary(1)")]]))
+ eq('Vim(call):E5108: Error while calling lua chunk for luaeval(): [string "<VimL compiled string>"]:1: Unexpected type',
+ exc_exec([[call luaeval("vim.api.nvim__id_dictionary({[vim.type_idx]=vim.types.array})")]]))
+ -- TODO: check for errors with Tabpage argument
+ -- TODO: check for errors with Window argument
+ -- TODO: check for errors with Buffer argument
+ end)
+
+ it('accepts any value as API Boolean', function()
+ eq('', funcs.luaeval('vim.api.nvim_replace_termcodes("", vim, false, nil)'))
+ eq('', funcs.luaeval('vim.api.nvim_replace_termcodes("", 0, 1.5, "test")'))
+ eq('', funcs.luaeval('vim.api.nvim_replace_termcodes("", true, {}, {[vim.type_idx]=vim.types.array})'))
+ end)
+end)
diff --git a/test/functional/lua/commands_spec.lua b/test/functional/lua/commands_spec.lua
new file mode 100644
index 0000000000..017ee55729
--- /dev/null
+++ b/test/functional/lua/commands_spec.lua
@@ -0,0 +1,164 @@
+-- Test suite for checking :lua* commands
+local helpers = require('test.functional.helpers')(after_each)
+
+local eq = helpers.eq
+local NIL = helpers.NIL
+local clear = helpers.clear
+local meths = helpers.meths
+local funcs = helpers.funcs
+local source = helpers.source
+local dedent = helpers.dedent
+local exc_exec = helpers.exc_exec
+local write_file = helpers.write_file
+local redir_exec = helpers.redir_exec
+local curbufmeths = helpers.curbufmeths
+
+before_each(clear)
+
+describe(':lua command', function()
+ it('works', function()
+ eq('', redir_exec(
+ 'lua vim.api.nvim_buf_set_lines(1, 1, 2, false, {"TEST"})'))
+ eq({'', 'TEST'}, curbufmeths.get_lines(0, 100, false))
+ source(dedent([[
+ lua << EOF
+ vim.api.nvim_buf_set_lines(1, 1, 2, false, {"TSET"})
+ EOF]]))
+ eq({'', 'TSET'}, curbufmeths.get_lines(0, 100, false))
+ source(dedent([[
+ lua << EOF
+ vim.api.nvim_buf_set_lines(1, 1, 2, false, {"SETT"})]]))
+ eq({'', 'SETT'}, curbufmeths.get_lines(0, 100, false))
+ source(dedent([[
+ lua << EOF
+ vim.api.nvim_buf_set_lines(1, 1, 2, false, {"ETTS"})
+ vim.api.nvim_buf_set_lines(1, 2, 3, false, {"TTSE"})
+ vim.api.nvim_buf_set_lines(1, 3, 4, false, {"STTE"})
+ EOF]]))
+ eq({'', 'ETTS', 'TTSE', 'STTE'}, curbufmeths.get_lines(0, 100, false))
+ end)
+ it('throws catchable errors', function()
+ eq([[Vim(lua):E5104: Error while creating lua chunk: [string "<VimL compiled string>"]:1: unexpected symbol near ')']],
+ exc_exec('lua ()'))
+ eq([[Vim(lua):E5105: Error while calling lua chunk: [string "<VimL compiled string>"]:1: TEST]],
+ exc_exec('lua error("TEST")'))
+ eq([[Vim(lua):E5105: Error while calling lua chunk: [string "<VimL compiled string>"]:1: Invalid buffer id]],
+ exc_exec('lua vim.api.nvim_buf_set_lines(-10, 1, 1, false, {"TEST"})'))
+ eq({''}, curbufmeths.get_lines(0, 100, false))
+ end)
+ it('works with NULL errors', function()
+ eq([=[Vim(lua):E5105: Error while calling lua chunk: [NULL]]=],
+ exc_exec('lua error(nil)'))
+ end)
+ it('accepts embedded NLs without heredoc', function()
+ -- Such code is usually used for `:execute 'lua' {generated_string}`:
+ -- heredocs do not work in this case.
+ meths.command([[
+ lua
+ vim.api.nvim_buf_set_lines(1, 1, 2, false, {"ETTS"})
+ vim.api.nvim_buf_set_lines(1, 2, 3, false, {"TTSE"})
+ vim.api.nvim_buf_set_lines(1, 3, 4, false, {"STTE"})
+ ]])
+ eq({'', 'ETTS', 'TTSE', 'STTE'}, curbufmeths.get_lines(0, 100, false))
+ end)
+ it('preserves global and not preserves local variables', function()
+ eq('', redir_exec('lua gvar = 42'))
+ eq('', redir_exec('lua local lvar = 100500'))
+ eq(NIL, funcs.luaeval('lvar'))
+ eq(42, funcs.luaeval('gvar'))
+ end)
+ it('works with long strings', function()
+ local s = ('x'):rep(100500)
+
+ eq('\nE5104: Error while creating lua chunk: [string "<VimL compiled string>"]:1: unfinished string near \'<eof>\'', redir_exec(('lua vim.api.nvim_buf_set_lines(1, 1, 2, false, {"%s})'):format(s)))
+ eq({''}, curbufmeths.get_lines(0, -1, false))
+
+ eq('', redir_exec(('lua vim.api.nvim_buf_set_lines(1, 1, 2, false, {"%s"})'):format(s)))
+ eq({'', s}, curbufmeths.get_lines(0, -1, false))
+ end)
+end)
+
+describe(':luado command', function()
+ it('works', function()
+ curbufmeths.set_lines(0, 1, false, {"ABC", "def", "gHi"})
+ eq('', redir_exec('luado lines = (lines or {}) lines[#lines + 1] = {linenr, line}'))
+ eq({'ABC', 'def', 'gHi'}, curbufmeths.get_lines(0, -1, false))
+ eq({{1, 'ABC'}, {2, 'def'}, {3, 'gHi'}}, funcs.luaeval('lines'))
+
+ -- Automatic transformation of numbers
+ eq('', redir_exec('luado return linenr'))
+ eq({'1', '2', '3'}, curbufmeths.get_lines(0, -1, false))
+
+ eq('', redir_exec('luado return ("<%02x>"):format(line:byte())'))
+ eq({'<31>', '<32>', '<33>'}, curbufmeths.get_lines(0, -1, false))
+ end)
+ it('stops processing lines when suddenly out of lines', function()
+ curbufmeths.set_lines(0, 1, false, {"ABC", "def", "gHi"})
+ eq('', redir_exec('2,$luado runs = ((runs or 0) + 1) vim.api.nvim_command("%d")'))
+ eq({''}, curbufmeths.get_lines(0, -1, false))
+ eq(1, funcs.luaeval('runs'))
+ end)
+ it('works correctly when changing lines out of range', function()
+ curbufmeths.set_lines(0, 1, false, {"ABC", "def", "gHi"})
+ eq('\nE322: line number out of range: 1 past the end\nE320: Cannot find line 2',
+ redir_exec('2,$luado vim.api.nvim_command("%d") return linenr'))
+ eq({''}, curbufmeths.get_lines(0, -1, false))
+ end)
+ it('fails on errors', function()
+ eq([[Vim(luado):E5109: Error while creating lua chunk: [string "<VimL compiled string>"]:1: unexpected symbol near ')']],
+ exc_exec('luado ()'))
+ eq([[Vim(luado):E5111: Error while calling lua function: [string "<VimL compiled string>"]:1: attempt to perform arithmetic on global 'liness' (a nil value)]],
+ exc_exec('luado return liness + 1'))
+ end)
+ it('works with NULL errors', function()
+ eq([=[Vim(luado):E5111: Error while calling lua function: [NULL]]=],
+ exc_exec('luado error(nil)'))
+ end)
+ it('fails in sandbox when needed', function()
+ curbufmeths.set_lines(0, 1, false, {"ABC", "def", "gHi"})
+ eq('\nE48: Not allowed in sandbox: sandbox luado runs = (runs or 0) + 1',
+ redir_exec('sandbox luado runs = (runs or 0) + 1'))
+ eq(NIL, funcs.luaeval('runs'))
+ end)
+ it('works with long strings', function()
+ local s = ('x'):rep(100500)
+
+ eq('\nE5109: Error while creating lua chunk: [string "<VimL compiled string>"]:1: unfinished string near \'<eof>\'', redir_exec(('luado return "%s'):format(s)))
+ eq({''}, curbufmeths.get_lines(0, -1, false))
+
+ eq('', redir_exec(('luado return "%s"'):format(s)))
+ eq({s}, curbufmeths.get_lines(0, -1, false))
+ end)
+end)
+
+describe(':luafile', function()
+ local fname = 'Xtest-functional-lua-commands-luafile'
+
+ after_each(function()
+ os.remove(fname)
+ end)
+
+ it('works', function()
+ write_file(fname, [[
+ vim.api.nvim_buf_set_lines(1, 1, 2, false, {"ETTS"})
+ vim.api.nvim_buf_set_lines(1, 2, 3, false, {"TTSE"})
+ vim.api.nvim_buf_set_lines(1, 3, 4, false, {"STTE"})
+ ]])
+ eq('', redir_exec('luafile ' .. fname))
+ eq({'', 'ETTS', 'TTSE', 'STTE'}, curbufmeths.get_lines(0, 100, false))
+ end)
+
+ it('correctly errors out', function()
+ write_file(fname, '()')
+ eq(("Vim(luafile):E5112: Error while creating lua chunk: %s:1: unexpected symbol near ')'"):format(fname),
+ exc_exec('luafile ' .. fname))
+ write_file(fname, 'vimm.api.nvim_buf_set_lines(1, 1, 2, false, {"ETTS"})')
+ eq(("Vim(luafile):E5113: Error while calling lua chunk: %s:1: attempt to index global 'vimm' (a nil value)"):format(fname),
+ exc_exec('luafile ' .. fname))
+ end)
+ it('works with NULL errors', function()
+ write_file(fname, 'error(nil)')
+ eq([=[Vim(luafile):E5113: Error while calling lua chunk: [NULL]]=],
+ exc_exec('luafile ' .. fname))
+ end)
+end)
diff --git a/test/functional/lua/luaeval_spec.lua b/test/functional/lua/luaeval_spec.lua
new file mode 100644
index 0000000000..6da0001cea
--- /dev/null
+++ b/test/functional/lua/luaeval_spec.lua
@@ -0,0 +1,255 @@
+-- Test suite for testing luaeval() function
+local helpers = require('test.functional.helpers')(after_each)
+
+local redir_exec = helpers.redir_exec
+local exc_exec = helpers.exc_exec
+local command = helpers.command
+local meths = helpers.meths
+local funcs = helpers.funcs
+local clear = helpers.clear
+local eval = helpers.eval
+local NIL = helpers.NIL
+local eq = helpers.eq
+
+before_each(clear)
+
+local function startswith(expected, actual)
+ eq(expected, actual:sub(1, #expected))
+end
+
+describe('luaeval()', function()
+ local nested_by_level = {}
+ local nested = {}
+ local nested_s = '{}'
+ for i=1,100 do
+ if i % 2 == 0 then
+ nested = {nested}
+ nested_s = '{' .. nested_s .. '}'
+ else
+ nested = {nested=nested}
+ nested_s = '{nested=' .. nested_s .. '}'
+ end
+ nested_by_level[i] = {o=nested, s=nested_s}
+ end
+
+ describe('second argument', function()
+ it('is successfully received', function()
+ local t = {t=true, f=false, --[[n=NIL,]] d={l={'string', 42, 0.42}}}
+ eq(t, funcs.luaeval("_A", t))
+ -- Not tested: nil, funcrefs, returned object identity: behaviour will
+ -- most likely change.
+ end)
+ end)
+ describe('lua values', function()
+ it('are successfully transformed', function()
+ eq({n=1, f=1.5, s='string', l={4, 2}},
+ funcs.luaeval('{n=1, f=1.5, s="string", l={4, 2}}'))
+ -- Not tested: nil inside containers: behaviour will most likely change.
+ eq(NIL, funcs.luaeval('nil'))
+ eq({['']=1}, funcs.luaeval('{[""]=1}'))
+ end)
+ end)
+ describe('recursive lua values', function()
+ it('are successfully transformed', function()
+ funcs.luaeval('rawset(_G, "d", {})')
+ funcs.luaeval('rawset(d, "d", d)')
+ eq('\n{\'d\': {...@0}}', funcs.execute('echo luaeval("d")'))
+
+ funcs.luaeval('rawset(_G, "l", {})')
+ funcs.luaeval('table.insert(l, l)')
+ eq('\n[[...@0]]', funcs.execute('echo luaeval("l")'))
+ end)
+ end)
+ describe('strings', function()
+ it('are successfully converted to special dictionaries', function()
+ command([[let s = luaeval('"\0"')]])
+ eq({_TYPE={}, _VAL={'\n'}}, meths.get_var('s'))
+ eq(1, funcs.eval('s._TYPE is v:msgpack_types.binary'))
+ end)
+ it('are successfully converted to special dictionaries in table keys',
+ function()
+ command([[let d = luaeval('{["\0"]=1}')]])
+ eq({_TYPE={}, _VAL={{{_TYPE={}, _VAL={'\n'}}, 1}}}, meths.get_var('d'))
+ eq(1, funcs.eval('d._TYPE is v:msgpack_types.map'))
+ eq(1, funcs.eval('d._VAL[0][0]._TYPE is v:msgpack_types.string'))
+ end)
+ it('are successfully converted to special dictionaries from a list',
+ function()
+ command([[let l = luaeval('{"abc", "a\0b", "c\0d", "def"}')]])
+ eq({'abc', {_TYPE={}, _VAL={'a\nb'}}, {_TYPE={}, _VAL={'c\nd'}}, 'def'},
+ meths.get_var('l'))
+ eq(1, funcs.eval('l[1]._TYPE is v:msgpack_types.binary'))
+ eq(1, funcs.eval('l[2]._TYPE is v:msgpack_types.binary'))
+ end)
+ end)
+
+ -- Not checked: funcrefs converted to NIL. To be altered to something more
+ -- meaningful later.
+
+ it('correctly evaluates scalars', function()
+ eq(1, funcs.luaeval('1'))
+ eq(0, eval('type(luaeval("1"))'))
+
+ eq(1.5, funcs.luaeval('1.5'))
+ eq(5, eval('type(luaeval("1.5"))'))
+
+ eq("test", funcs.luaeval('"test"'))
+ eq(1, eval('type(luaeval("\'test\'"))'))
+
+ eq('', funcs.luaeval('""'))
+ eq({_TYPE={}, _VAL={'\n'}}, funcs.luaeval([['\0']]))
+ eq({_TYPE={}, _VAL={'\n', '\n'}}, funcs.luaeval([['\0\n\0']]))
+ eq(1, eval([[luaeval('"\0\n\0"')._TYPE is v:msgpack_types.binary]]))
+
+ eq(true, funcs.luaeval('true'))
+ eq(false, funcs.luaeval('false'))
+ eq(NIL, funcs.luaeval('nil'))
+ end)
+
+ it('correctly evaluates containers', function()
+ eq({}, funcs.luaeval('{}'))
+ eq(3, eval('type(luaeval("{}"))'))
+
+ eq({test=1, foo=2}, funcs.luaeval('{test=1, foo=2}'))
+ eq(4, eval('type(luaeval("{test=1, foo=2}"))'))
+
+ eq({4, 2}, funcs.luaeval('{4, 2}'))
+ eq(3, eval('type(luaeval("{4, 2}"))'))
+
+ local level = 30
+ eq(nested_by_level[level].o, funcs.luaeval(nested_by_level[level].s))
+
+ eq({_TYPE={}, _VAL={{{_TYPE={}, _VAL={'\n', '\n'}}, {_TYPE={}, _VAL={'\n', '\n\n'}}}}},
+ funcs.luaeval([[{['\0\n\0']='\0\n\0\0'}]]))
+ eq(1, eval([[luaeval('{["\0\n\0"]="\0\n\0\0"}')._TYPE is v:msgpack_types.map]]))
+ eq(1, eval([[luaeval('{["\0\n\0"]="\0\n\0\0"}')._VAL[0][0]._TYPE is v:msgpack_types.string]]))
+ eq(1, eval([[luaeval('{["\0\n\0"]="\0\n\0\0"}')._VAL[0][1]._TYPE is v:msgpack_types.binary]]))
+ eq({nested={{_TYPE={}, _VAL={{{_TYPE={}, _VAL={'\n', '\n'}}, {_TYPE={}, _VAL={'\n', '\n\n'}}}}}}},
+ funcs.luaeval([[{nested={{['\0\n\0']='\0\n\0\0'}}}]]))
+ end)
+
+ it('correctly passes scalars as argument', function()
+ eq(1, funcs.luaeval('_A', 1))
+ eq(1.5, funcs.luaeval('_A', 1.5))
+ eq('', funcs.luaeval('_A', ''))
+ eq('test', funcs.luaeval('_A', 'test'))
+ eq(NIL, funcs.luaeval('_A', NIL))
+ eq(true, funcs.luaeval('_A', true))
+ eq(false, funcs.luaeval('_A', false))
+ end)
+
+ it('correctly passes containers as argument', function()
+ eq({}, funcs.luaeval('_A', {}))
+ eq({test=1}, funcs.luaeval('_A', {test=1}))
+ eq({4, 2}, funcs.luaeval('_A', {4, 2}))
+ local level = 28
+ eq(nested_by_level[level].o, funcs.luaeval('_A', nested_by_level[level].o))
+ end)
+
+ local function sp(typ, val)
+ return ('{"_TYPE": v:msgpack_types.%s, "_VAL": %s}'):format(typ, val)
+ end
+ local function mapsp(...)
+ local val = ''
+ for i=1,(select('#', ...)/2) do
+ val = ('%s[%s,%s],'):format(val, select(i * 2 - 1, ...),
+ select(i * 2, ...))
+ end
+ return sp('map', '[' .. val .. ']')
+ end
+ local function luaevalarg(argexpr, expr)
+ return eval(([=[
+ [
+ extend(g:, {'_ret': luaeval(%s, %s)})._ret,
+ type(g:_ret)==type({})&&has_key(g:_ret, '_TYPE')
+ ? [
+ get(keys(filter(copy(v:msgpack_types), 'v:val is g:_ret._TYPE')), 0,
+ g:_ret._TYPE),
+ get(g:_ret, '_VAL', g:_ret)
+ ]
+ : [0, g:_ret]][1]
+ ]=]):format(expr or '"_A"', argexpr):gsub('\n', ''))
+ end
+
+ it('correctly passes special dictionaries', function()
+ eq({'binary', {'\n', '\n'}}, luaevalarg(sp('binary', '["\\n", "\\n"]')))
+ eq({'binary', {'\n', '\n'}}, luaevalarg(sp('string', '["\\n", "\\n"]')))
+ eq({0, true}, luaevalarg(sp('boolean', 1)))
+ eq({0, false}, luaevalarg(sp('boolean', 0)))
+ eq({0, NIL}, luaevalarg(sp('nil', 0)))
+ eq({0, {[""]=""}}, luaevalarg(mapsp(sp('binary', '[""]'), '""')))
+ eq({0, {[""]=""}}, luaevalarg(mapsp(sp('string', '[""]'), '""')))
+ end)
+
+ it('issues an error in some cases', function()
+ eq("Vim(call):E5100: Cannot convert given lua table: table should either have a sequence of positive integer keys or contain only string keys",
+ exc_exec('call luaeval("{1, foo=2}")'))
+ eq("Vim(call):E5101: Cannot convert given lua type",
+ exc_exec('call luaeval("vim.api.nvim_buf_get_lines")'))
+ startswith("Vim(call):E5107: Error while creating lua chunk for luaeval(): ",
+ exc_exec('call luaeval("1, 2, 3")'))
+ startswith("Vim(call):E5108: Error while calling lua chunk for luaeval(): ",
+ exc_exec('call luaeval("(nil)()")'))
+ eq("Vim(call):E5101: Cannot convert given lua type",
+ exc_exec('call luaeval("{42, vim.api}")'))
+ eq("Vim(call):E5101: Cannot convert given lua type",
+ exc_exec('call luaeval("{foo=42, baz=vim.api}")'))
+
+ -- The following should not crash: conversion error happens inside
+ eq("Vim(call):E5101: Cannot convert given lua type",
+ exc_exec('call luaeval("vim.api")'))
+ -- The following should not show internal error
+ eq("\nE5101: Cannot convert given lua type\n0",
+ redir_exec('echo luaeval("vim.api")'))
+ end)
+
+ it('correctly converts containers with type_idx', function()
+ eq(5, eval('type(luaeval("{[vim.type_idx]=vim.types.float, [vim.val_idx]=0}"))'))
+ eq(4, eval([[type(luaeval('{[vim.type_idx]=vim.types.dictionary}'))]]))
+ eq(3, eval([[type(luaeval('{[vim.type_idx]=vim.types.array}'))]]))
+
+ eq({}, funcs.luaeval('{[vim.type_idx]=vim.types.array}'))
+
+ -- Presence of type_idx makes Vim ignore some keys
+ eq({42}, funcs.luaeval('{[vim.type_idx]=vim.types.array, [vim.val_idx]=10, [5]=1, foo=2, [1]=42}'))
+ eq({foo=2}, funcs.luaeval('{[vim.type_idx]=vim.types.dictionary, [vim.val_idx]=10, [5]=1, foo=2, [1]=42}'))
+ eq(10, funcs.luaeval('{[vim.type_idx]=vim.types.float, [vim.val_idx]=10, [5]=1, foo=2, [1]=42}'))
+
+ -- The following should not crash
+ eq({}, funcs.luaeval('{[vim.type_idx]=vim.types.dictionary}'))
+ end)
+
+ it('correctly converts self-containing containers', function()
+ meths.set_var('l', {})
+ eval('add(l, l)')
+ eq(true, eval('luaeval("_A == _A[1]", l)'))
+ eq(true, eval('luaeval("_A[1] == _A[1][1]", [l])'))
+ eq(true, eval('luaeval("_A.d == _A.d[1]", {"d": l})'))
+ eq(true, eval('luaeval("_A ~= _A[1]", [l])'))
+
+ meths.set_var('d', {foo=42})
+ eval('extend(d, {"d": d})')
+ eq(true, eval('luaeval("_A == _A.d", d)'))
+ eq(true, eval('luaeval("_A[1] == _A[1].d", [d])'))
+ eq(true, eval('luaeval("_A.d == _A.d.d", {"d": d})'))
+ eq(true, eval('luaeval("_A ~= _A.d", {"d": d})'))
+ end)
+
+ it('errors out correctly when doing incorrect things in lua', function()
+ -- Conversion errors
+ eq('Vim(call):E5108: Error while calling lua chunk for luaeval(): [string "<VimL compiled string>"]:1: attempt to call field \'xxx_nonexistent_key_xxx\' (a nil value)',
+ exc_exec([[call luaeval("vim.xxx_nonexistent_key_xxx()")]]))
+ eq('Vim(call):E5108: Error while calling lua chunk for luaeval(): [string "<VimL compiled string>"]:1: ERROR',
+ exc_exec([[call luaeval("error('ERROR')")]]))
+ eq('Vim(call):E5108: Error while calling lua chunk for luaeval(): [NULL]',
+ exc_exec([[call luaeval("error(nil)")]]))
+ end)
+
+ it('does not leak memory when called with too long line',
+ function()
+ local s = ('x'):rep(65536)
+ eq('Vim(call):E5107: Error while creating lua chunk for luaeval(): [string "<VimL compiled string>"]:1: unexpected symbol near \')\'',
+ exc_exec([[call luaeval("(']] .. s ..[[' + )")]]))
+ eq(s, funcs.luaeval('"' .. s .. '"'))
+ end)
+end)
diff --git a/test/functional/lua/overrides_spec.lua b/test/functional/lua/overrides_spec.lua
new file mode 100644
index 0000000000..6e1d50071d
--- /dev/null
+++ b/test/functional/lua/overrides_spec.lua
@@ -0,0 +1,294 @@
+-- Test for Vim overrides of lua built-ins
+local helpers = require('test.functional.helpers')(after_each)
+local Screen = require('test.functional.ui.screen')
+
+local eq = helpers.eq
+local neq = helpers.neq
+local NIL = helpers.NIL
+local feed = helpers.feed
+local clear = helpers.clear
+local funcs = helpers.funcs
+local meths = helpers.meths
+local iswin = helpers.iswin
+local command = helpers.command
+local write_file = helpers.write_file
+local redir_exec = helpers.redir_exec
+local alter_slashes = helpers.alter_slashes
+
+local screen
+
+local fname = 'Xtest-functional-lua-overrides-luafile'
+
+before_each(clear)
+
+after_each(function()
+ os.remove(fname)
+end)
+
+describe('print', function()
+ it('returns nothing', function()
+ eq(NIL, funcs.luaeval('print("abc")'))
+ eq(0, funcs.luaeval('select("#", print("abc"))'))
+ end)
+ it('allows catching printed text with :execute', function()
+ eq('\nabc', funcs.execute('lua print("abc")'))
+ eq('\nabc', funcs.execute('luado print("abc")'))
+ eq('\nabc', funcs.execute('call luaeval("print(\'abc\')")'))
+ write_file(fname, 'print("abc")')
+ eq('\nabc', funcs.execute('luafile ' .. fname))
+
+ eq('\nabc', redir_exec('lua print("abc")'))
+ eq('\nabc', redir_exec('luado print("abc")'))
+ eq('\nabc', redir_exec('call luaeval("print(\'abc\')")'))
+ write_file(fname, 'print("abc")')
+ eq('\nabc', redir_exec('luafile ' .. fname))
+ end)
+ it('handles errors in __tostring', function()
+ write_file(fname, [[
+ local meta_nilerr = { __tostring = function() error(nil) end }
+ local meta_abcerr = { __tostring = function() error("abc") end }
+ local meta_tblout = { __tostring = function() return {"TEST"} end }
+ v_nilerr = setmetatable({}, meta_nilerr)
+ v_abcerr = setmetatable({}, meta_abcerr)
+ v_tblout = setmetatable({}, meta_tblout)
+ ]])
+ eq('', redir_exec('luafile ' .. fname))
+ eq('\nE5114: Error while converting print argument #2: [NULL]',
+ redir_exec('lua print("foo", v_nilerr, "bar")'))
+ eq('\nE5114: Error while converting print argument #2: Xtest-functional-lua-overrides-luafile:2: abc',
+ redir_exec('lua print("foo", v_abcerr, "bar")'))
+ eq('\nE5114: Error while converting print argument #2: <Unknown error: lua_tolstring returned NULL for tostring result>',
+ redir_exec('lua print("foo", v_tblout, "bar")'))
+ end)
+ it('prints strings with NULs and NLs correctly', function()
+ meths.set_option('more', true)
+ eq('\nabc ^@ def\nghi^@^@^@jkl\nTEST\n\n\nT\n',
+ redir_exec([[lua print("abc \0 def\nghi\0\0\0jkl\nTEST\n\n\nT\n")]]))
+ eq('\nabc ^@ def\nghi^@^@^@jkl\nTEST\n\n\nT^@',
+ redir_exec([[lua print("abc \0 def\nghi\0\0\0jkl\nTEST\n\n\nT\0")]]))
+ eq('\nT^@', redir_exec([[lua print("T\0")]]))
+ eq('\nT\n', redir_exec([[lua print("T\n")]]))
+ end)
+end)
+
+describe('debug.debug', function()
+ before_each(function()
+ screen = Screen.new()
+ screen:attach()
+ screen:set_default_attr_ids({
+ [0] = {bold=true, foreground=255},
+ E = {foreground = Screen.colors.Grey100, background = Screen.colors.Red},
+ cr = {bold = true, foreground = Screen.colors.SeaGreen4},
+ })
+ end)
+ it('works', function()
+ command([[lua
+ function Test(a)
+ print(a)
+ debug.debug()
+ print(a * 100)
+ end
+ ]])
+ feed(':lua Test()\n')
+ screen:expect([[
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ nil |
+ lua_debug> ^ |
+ ]])
+ feed('print("TEST")\n')
+ screen:expect([[
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ nil |
+ lua_debug> print("TEST") |
+ TEST |
+ lua_debug> ^ |
+ ]])
+ feed('<C-c>')
+ screen:expect([[
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ nil |
+ lua_debug> print("TEST") |
+ TEST |
+ |
+ {E:E5105: Error while calling lua chunk: [string "<VimL }|
+ {E:compiled string>"]:5: attempt to perform arithmetic o}|
+ {E:n local 'a' (a nil value)} |
+ Interrupt: {cr:Press ENTER or type command to continue}^ |
+ ]])
+ feed('<C-l>:lua Test()\n')
+ screen:expect([[
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ nil |
+ lua_debug> ^ |
+ ]])
+ feed('\n')
+ screen:expect([[
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ nil |
+ lua_debug> |
+ {E:E5105: Error while calling lua chunk: [string "<VimL }|
+ {E:compiled string>"]:5: attempt to perform arithmetic o}|
+ {E:n local 'a' (a nil value)} |
+ {cr:Press ENTER or type command to continue}^ |
+ ]])
+ end)
+end)
+
+describe('package.path/package.cpath', function()
+ local sl = alter_slashes
+
+ local function get_new_paths(sufs, runtimepaths)
+ runtimepaths = runtimepaths or meths.list_runtime_paths()
+ local new_paths = {}
+ local sep = package.config:sub(1, 1)
+ for _, v in ipairs(runtimepaths) do
+ for _, suf in ipairs(sufs) do
+ new_paths[#new_paths + 1] = v .. sep .. 'lua' .. suf
+ end
+ end
+ return new_paths
+ end
+ local function execute_lua(cmd, ...)
+ return meths.execute_lua(cmd, {...})
+ end
+ local function eval_lua(expr, ...)
+ return meths.execute_lua('return ' .. expr, {...})
+ end
+ local function set_path(which, value)
+ return execute_lua('package[select(1, ...)] = select(2, ...)', which, value)
+ end
+
+ it('contains directories from &runtimepath on first invocation', function()
+ local new_paths = get_new_paths(sl{'/?.lua', '/?/init.lua'})
+ local new_paths_str = table.concat(new_paths, ';')
+ eq(new_paths_str, eval_lua('package.path'):sub(1, #new_paths_str))
+
+ local new_cpaths = get_new_paths(iswin() and {'\\?.dll'} or {'/?.so'})
+ local new_cpaths_str = table.concat(new_cpaths, ';')
+ eq(new_cpaths_str, eval_lua('package.cpath'):sub(1, #new_cpaths_str))
+ end)
+ it('puts directories from &runtimepath always at the start', function()
+ meths.set_option('runtimepath', 'a,b')
+ local new_paths = get_new_paths(sl{'/?.lua', '/?/init.lua'}, {'a', 'b'})
+ local new_paths_str = table.concat(new_paths, ';')
+ eq(new_paths_str, eval_lua('package.path'):sub(1, #new_paths_str))
+
+ set_path('path', sl'foo/?.lua;foo/?/init.lua;' .. new_paths_str)
+
+ neq(new_paths_str, eval_lua('package.path'):sub(1, #new_paths_str))
+
+ command('set runtimepath+=c')
+ new_paths = get_new_paths(sl{'/?.lua', '/?/init.lua'}, {'a', 'b', 'c'})
+ new_paths_str = table.concat(new_paths, ';')
+ eq(new_paths_str, eval_lua('package.path'):sub(1, #new_paths_str))
+ end)
+ it('understands uncommon suffixes', function()
+ set_path('cpath', './?/foo/bar/baz/x.nlua')
+ meths.set_option('runtimepath', 'a')
+ local new_paths = get_new_paths({'/?/foo/bar/baz/x.nlua'}, {'a'})
+ local new_paths_str = table.concat(new_paths, ';')
+ eq(new_paths_str, eval_lua('package.cpath'):sub(1, #new_paths_str))
+
+ set_path('cpath', './yyy?zzz/x')
+ meths.set_option('runtimepath', 'b')
+ new_paths = get_new_paths({'/yyy?zzz/x'}, {'b'})
+ new_paths_str = table.concat(new_paths, ';')
+ eq(new_paths_str, eval_lua('package.cpath'):sub(1, #new_paths_str))
+
+ set_path('cpath', './yyy?zzz/123?ghi/x')
+ meths.set_option('runtimepath', 'b')
+ new_paths = get_new_paths({'/yyy?zzz/123?ghi/x'}, {'b'})
+ new_paths_str = table.concat(new_paths, ';')
+ eq(new_paths_str, eval_lua('package.cpath'):sub(1, #new_paths_str))
+ end)
+ it('preserves empty items', function()
+ local many_empty_path = ';;;;;;'
+ local many_empty_cpath = ';;;;;;./?.luaso'
+ set_path('path', many_empty_path)
+ set_path('cpath', many_empty_cpath)
+ meths.set_option('runtimepath', 'a')
+ local new_paths = get_new_paths(sl{'/?.lua', '/?/init.lua'}, {'a'})
+ local new_paths_str = table.concat(new_paths, ';')
+ eq(new_paths_str .. ';' .. many_empty_path, eval_lua('package.path'))
+ local new_cpaths = get_new_paths({'/?.luaso'}, {'a'})
+ local new_cpaths_str = table.concat(new_cpaths, ';')
+ eq(new_cpaths_str .. ';' .. many_empty_cpath, eval_lua('package.cpath'))
+ end)
+ it('preserves empty value', function()
+ set_path('path', '')
+ meths.set_option('runtimepath', 'a')
+ local new_paths = get_new_paths(sl{'/?.lua', '/?/init.lua'}, {'a'})
+ local new_paths_str = table.concat(new_paths, ';')
+ eq(new_paths_str .. ';', eval_lua('package.path'))
+ end)
+ it('purges out all additions if runtimepath is set to empty', function()
+ local new_paths = get_new_paths(sl{'/?.lua', '/?/init.lua'})
+ local new_paths_str = table.concat(new_paths, ';')
+ local path = eval_lua('package.path')
+ eq(new_paths_str, path:sub(1, #new_paths_str))
+
+ local new_cpaths = get_new_paths(iswin() and {'\\?.dll'} or {'/?.so'})
+ local new_cpaths_str = table.concat(new_cpaths, ';')
+ local cpath = eval_lua('package.cpath')
+ eq(new_cpaths_str, cpath:sub(1, #new_cpaths_str))
+
+ meths.set_option('runtimepath', '')
+ eq(path:sub(#new_paths_str + 2, -1), eval_lua('package.path'))
+ eq(cpath:sub(#new_cpaths_str + 2, -1), eval_lua('package.cpath'))
+ end)
+ it('works with paths with escaped commas', function()
+ meths.set_option('runtimepath', '\\,')
+ local new_paths = get_new_paths(sl{'/?.lua', '/?/init.lua'}, {','})
+ local new_paths_str = table.concat(new_paths, ';')
+ eq(new_paths_str, eval_lua('package.path'):sub(1, #new_paths_str))
+ end)
+ it('ignores paths with semicolons', function()
+ meths.set_option('runtimepath', 'foo;bar,\\,')
+ local new_paths = get_new_paths(sl{'/?.lua', '/?/init.lua'}, {','})
+ local new_paths_str = table.concat(new_paths, ';')
+ eq(new_paths_str, eval_lua('package.path'):sub(1, #new_paths_str))
+ end)
+end)
diff --git a/test/functional/options/defaults_spec.lua b/test/functional/options/defaults_spec.lua
index f43d8eeafa..b83b7b8eee 100644
--- a/test/functional/options/defaults_spec.lua
+++ b/test/functional/options/defaults_spec.lua
@@ -8,6 +8,8 @@ local clear = helpers.clear
local eval = helpers.eval
local eq = helpers.eq
local neq = helpers.neq
+local mkdir = helpers.mkdir
+local rmdir = helpers.rmdir
local function init_session(...)
local args = { helpers.nvim_prog, '-i', 'NONE', '--embed',
@@ -23,13 +25,13 @@ describe('startup defaults', function()
if helpers.pending_win32(pending) then return end
local function expect_filetype(expected)
- local screen = Screen.new(48, 4)
+ local screen = Screen.new(50, 4)
screen:attach()
command('filetype')
screen:expect([[
- ^ |
- ~ |
- ~ |
+ ^ |
+ ~ |
+ ~ |
]]..expected
)
end
@@ -37,31 +39,49 @@ describe('startup defaults', function()
it('enabled by `-u NORC`', function()
init_session('-u', 'NORC')
expect_filetype(
- 'filetype detection:ON plugin:ON indent:ON |')
+ 'filetype detection:ON plugin:ON indent:ON |')
end)
it('disabled by `-u NONE`', function()
init_session('-u', 'NONE')
expect_filetype(
- 'filetype detection:OFF plugin:OFF indent:OFF |')
+ 'filetype detection:OFF plugin:OFF indent:OFF |')
end)
it('overridden by early `filetype on`', function()
init_session('-u', 'NORC', '--cmd', 'filetype on')
expect_filetype(
- 'filetype detection:ON plugin:OFF indent:OFF |')
+ 'filetype detection:ON plugin:OFF indent:OFF |')
end)
it('overridden by early `filetype plugin on`', function()
init_session('-u', 'NORC', '--cmd', 'filetype plugin on')
expect_filetype(
- 'filetype detection:ON plugin:ON indent:OFF |')
+ 'filetype detection:ON plugin:ON indent:OFF |')
end)
it('overridden by early `filetype indent on`', function()
init_session('-u', 'NORC', '--cmd', 'filetype indent on')
expect_filetype(
- 'filetype detection:ON plugin:OFF indent:ON |')
+ 'filetype detection:ON plugin:OFF indent:ON |')
+ end)
+
+ it('adjusted by late `filetype off`', function()
+ init_session('-u', 'NORC', '-c', 'filetype off')
+ expect_filetype(
+ 'filetype detection:OFF plugin:(on) indent:(on) |')
+ end)
+
+ it('adjusted by late `filetype plugin off`', function()
+ init_session('-u', 'NORC', '-c', 'filetype plugin off')
+ expect_filetype(
+ 'filetype detection:ON plugin:OFF indent:ON |')
+ end)
+
+ it('adjusted by late `filetype indent off`', function()
+ init_session('-u', 'NORC', '-c', 'filetype indent off')
+ expect_filetype(
+ 'filetype detection:ON plugin:ON indent:OFF |')
end)
end)
@@ -80,6 +100,11 @@ describe('startup defaults', function()
init_session('-u', 'NORC', '--cmd', 'syntax off')
eq(0, eval('exists("g:syntax_on")'))
end)
+
+ it('adjusted by late `syntax off`', function()
+ init_session('-u', 'NORC', '-c', 'syntax off')
+ eq(0, eval('exists("g:syntax_on")'))
+ end)
end)
describe('packpath', function()
@@ -98,6 +123,56 @@ describe('startup defaults', function()
it('v:progpath is set to the absolute path', function()
eq(eval("fnamemodify(v:progpath, ':p')"), eval('v:progpath'))
end)
+
+ describe('$NVIM_LOG_FILE', function()
+ -- TODO(jkeyes): use stdpath('data') instead.
+ local datasubdir = helpers.iswin() and 'nvim-data' or 'nvim'
+ local xdgdir = 'Xtest-startup-xdg-logpath'
+ local xdgdatadir = xdgdir..'/'..datasubdir
+ after_each(function()
+ os.remove('Xtest-logpath')
+ rmdir(xdgdir)
+ end)
+
+ it('is used if expansion succeeds', function()
+ clear({env={
+ NVIM_LOG_FILE='Xtest-logpath',
+ }})
+ eq('Xtest-logpath', eval('$NVIM_LOG_FILE'))
+ end)
+ it('defaults to stdpath("data")/log if empty', function()
+ eq(true, mkdir(xdgdir) and mkdir(xdgdatadir))
+ clear({env={
+ XDG_DATA_HOME=xdgdir,
+ NVIM_LOG_FILE='', -- Empty is invalid.
+ }})
+ -- server_start() calls ELOG, which tickles log_path_init().
+ pcall(command, 'call serverstart(serverlist()[0])')
+
+ eq(xdgdir..'/'..datasubdir..'/log', string.gsub(eval('$NVIM_LOG_FILE'), '\\', '/'))
+ end)
+ it('defaults to stdpath("data")/log if invalid', function()
+ eq(true, mkdir(xdgdir) and mkdir(xdgdatadir))
+ clear({env={
+ XDG_DATA_HOME=xdgdir,
+ NVIM_LOG_FILE='.', -- Any directory is invalid.
+ }})
+ -- server_start() calls ELOG, which tickles log_path_init().
+ pcall(command, 'call serverstart(serverlist()[0])')
+
+ eq(xdgdir..'/'..datasubdir..'/log', string.gsub(eval('$NVIM_LOG_FILE'), '\\', '/'))
+ end)
+ it('defaults to .nvimlog if stdpath("data") is invalid', function()
+ clear({env={
+ XDG_DATA_HOME='Xtest-missing-xdg-dir',
+ NVIM_LOG_FILE='.', -- Any directory is invalid.
+ }})
+ -- server_start() calls ELOG, which tickles log_path_init().
+ pcall(command, 'call serverstart(serverlist()[0])')
+
+ eq('.nvimlog', eval('$NVIM_LOG_FILE'))
+ end)
+ end)
end)
describe('XDG-based defaults', function()
diff --git a/test/functional/options/pastetoggle_spec.lua b/test/functional/options/pastetoggle_spec.lua
index ec3c60fe37..a1f86f73ff 100644
--- a/test/functional/options/pastetoggle_spec.lua
+++ b/test/functional/options/pastetoggle_spec.lua
@@ -6,32 +6,35 @@ local command = helpers.command
local eq = helpers.eq
local eval = helpers.eval
local sleep = helpers.sleep
+local expect = helpers.expect
describe("'pastetoggle' option", function()
before_each(function()
clear()
command('set nopaste')
- command('set pastetoggle=a')
end)
+
it("toggles 'paste'", function()
- eq(eval('&paste'), 0)
+ command('set pastetoggle=a')
+ eq(0, eval('&paste'))
feed('a')
-- Need another key so that the vgetorpeek() function returns.
feed('j')
- eq(eval('&paste'), 1)
+ eq(1, eval('&paste'))
end)
- it("multiple key 'pastetoggle' is waited for", function()
- eq(eval('&paste'), 0)
- local pastetoggle = 'lllll'
- command('set pastetoggle=' .. pastetoggle)
- command('set timeoutlen=1 ttimeoutlen=10000')
- feed(pastetoggle:sub(0, 2))
- -- sleep() for long enough that vgetorpeek() is gotten into, but short
- -- enough that ttimeoutlen is not reached.
- sleep(200)
- feed(pastetoggle:sub(3, -1))
- -- Need another key so that the vgetorpeek() function returns.
- feed('j')
- eq(eval('&paste'), 1)
+
+
+ it('does not wait for timeout', function()
+ command('set pastetoggle=abc')
+ command('set ttimeoutlen=9999999')
+ eq(0, eval('&paste'))
+ -- n.b. need <esc> to return from vgetorpeek()
+ feed('abc<esc>')
+ eq(1, eval('&paste'))
+ feed('ab')
+ sleep(10)
+ feed('c<esc>')
+ expect('bc')
+ eq(1, eval('&paste'))
end)
end)
diff --git a/test/functional/plugin/shada_spec.lua b/test/functional/plugin/shada_spec.lua
index b543037ae2..639833071b 100644
--- a/test/functional/plugin/shada_spec.lua
+++ b/test/functional/plugin/shada_spec.lua
@@ -179,6 +179,7 @@ describe('In autoload/shada.vim', function()
' + n name \'@\'',
' + rc contents ["abc", "def"]',
' + rt type CHARACTERWISE',
+ ' + ru is_unnamed FALSE',
' + rw block width 10',
' + sb search backward TRUE',
' + sc smartcase value FALSE',
@@ -204,6 +205,7 @@ describe('In autoload/shada.vim', function()
'rt': 0,
'rw': 10,
'rc': ['abc', 'def'],
+ 'ru': {'_TYPE': v:msgpack_types.boolean, '_VAL': 0},
'n': 0x40,
'l': 10,
'c': 0,
@@ -226,6 +228,8 @@ describe('In autoload/shada.vim', function()
.. '0 (CHARACTERWISE), 1 (LINEWISE), 2 (BLOCKWISE)',
' + rt type 10',
' # Expected boolean',
+ ' + ru is_unnamed 10',
+ ' # Expected boolean',
' + sc smartcase value NIL',
' # Expected boolean',
' + sm magic value "TRUE"',
@@ -240,6 +244,7 @@ describe('In autoload/shada.vim', function()
'sp': {'_TYPE': v:msgpack_types.string, '_VAL': ["abc"]},
'rt': 10,
'rc': '10',
+ 'ru': 10,
'n': -0x40,
'l': -10,
'c': 'abc',
@@ -636,6 +641,7 @@ describe('In autoload/shada.vim', function()
' # Required key missing: rc',
' + rw block width 0',
' + rt type CHARACTERWISE',
+ ' + ru is_unnamed FALSE',
}, ([[ [{'type': 5, 'timestamp': 0, 'data': {
}}] ]]):gsub('\n', ''))
sd2strings_eq({
@@ -645,6 +651,7 @@ describe('In autoload/shada.vim', function()
' # Required key missing: rc',
' + rw block width 0',
' + rt type CHARACTERWISE',
+ ' + ru is_unnamed FALSE',
}, ([[ [{'type': 5, 'timestamp': 0, 'data': {
'n': 0x20,
}}] ]]):gsub('\n', ''))
@@ -655,9 +662,11 @@ describe('In autoload/shada.vim', function()
' + rc contents ["abc", "def"]',
' + rw block width 0',
' + rt type CHARACTERWISE',
+ ' + ru is_unnamed FALSE',
}, ([[ [{'type': 5, 'timestamp': 0, 'data': {
'n': 0x20,
'rc': ["abc", "def"],
+ 'ru': {'_TYPE': v:msgpack_types.boolean, '_VAL': 0},
}}] ]]):gsub('\n', ''))
sd2strings_eq({
'Register with timestamp ' .. epoch .. ':',
@@ -668,9 +677,11 @@ describe('In autoload/shada.vim', function()
' | - "abcdefghijklmnopqrstuvwxyz"',
' + rw block width 0',
' + rt type CHARACTERWISE',
+ ' + ru is_unnamed TRUE',
}, ([[ [{'type': 5, 'timestamp': 0, 'data': {
'n': 0x20,
'rc': ['abcdefghijklmnopqrstuvwxyz', 'abcdefghijklmnopqrstuvwxyz'],
+ 'ru': {'_TYPE': v:msgpack_types.boolean, '_VAL': 1},
}}] ]]):gsub('\n', ''))
sd2strings_eq({
'Register with timestamp ' .. epoch .. ':',
@@ -681,6 +692,7 @@ describe('In autoload/shada.vim', function()
' | - "abcdefghijklmnopqrstuvwxyz"',
' + rw block width 0',
' + rt type CHARACTERWISE',
+ ' + ru is_unnamed FALSE',
}, ([[ [{'type': 5, 'timestamp': 0, 'data': {
'n': 0x20,
'rc': ['abcdefghijklmnopqrstuvwxyz', 'abcdefghijklmnopqrstuvwxyz'],
@@ -696,6 +708,7 @@ describe('In autoload/shada.vim', function()
' | - "abcdefghijklmnopqrstuvwxyz"',
' + rw block width 5',
' + rt type LINEWISE',
+ ' + ru is_unnamed FALSE',
}, ([[ [{'type': 5, 'timestamp': 0, 'data': {
'n': 0x20,
'rc': ['abcdefghijklmnopqrstuvwxyz', 'abcdefghijklmnopqrstuvwxyz'],
@@ -712,11 +725,14 @@ describe('In autoload/shada.vim', function()
' # Expected integer',
' + rw block width ""',
' + rt type BLOCKWISE',
+ ' # Expected boolean',
+ ' + ru is_unnamed ""',
}, ([[ [{'type': 5, 'timestamp': 0, 'data': {
'n': 0x20,
'rc': ['abcdefghijklmnopqrstuvwxyz', 'abcdefghijklmnopqrstuvwxyz'],
'rw': "",
'rt': 2,
+ 'ru': ""
}}] ]]):gsub('\n', ''))
sd2strings_eq({
'Register with timestamp ' .. epoch .. ':',
@@ -729,11 +745,32 @@ describe('In autoload/shada.vim', function()
' # Unexpected enum value: expected one of 0 (CHARACTERWISE), '
.. '1 (LINEWISE), 2 (BLOCKWISE)',
' + rt type 10',
+ ' # Expected boolean',
+ ' + ru is_unnamed ["abc", "def"]',
}, ([[ [{'type': 5, 'timestamp': 0, 'data': {
'n': 0x20,
'rc': 0,
'rw': -1,
'rt': 10,
+ 'ru': ['abc', 'def'],
+ }}] ]]):gsub('\n', ''))
+ sd2strings_eq({
+ 'Register with timestamp ' .. epoch .. ':',
+ ' % Key Description Value',
+ ' + n name \' \'',
+ ' + rc contents @',
+ ' | - "abcdefghijklmnopqrstuvwxyz"',
+ ' | - "abcdefghijklmnopqrstuvwxyz"',
+ ' + rw block width 5',
+ ' + rt type LINEWISE',
+ ' # Expected boolean',
+ ' + ru is_unnamed 0',
+ }, ([[ [{'type': 5, 'timestamp': 0, 'data': {
+ 'n': 0x20,
+ 'rc': ['abcdefghijklmnopqrstuvwxyz', 'abcdefghijklmnopqrstuvwxyz'],
+ 'rw': 5,
+ 'rt': 1,
+ 'ru': 0,
}}] ]]):gsub('\n', ''))
end)
diff --git a/test/functional/provider/python3_spec.lua b/test/functional/provider/python3_spec.lua
index 89a546675f..aa50f53451 100644
--- a/test/functional/provider/python3_spec.lua
+++ b/test/functional/provider/python3_spec.lua
@@ -3,14 +3,14 @@ local eval, command, feed = helpers.eval, helpers.command, helpers.feed
local eq, clear, insert = helpers.eq, helpers.clear, helpers.insert
local expect, write_file = helpers.expect, helpers.write_file
local feed_command = helpers.feed_command
+local missing_provider = helpers.missing_provider
do
clear()
- command('let [g:interp, g:errors] = provider#pythonx#Detect(3)')
- local errors = eval('g:errors')
- if errors ~= '' then
+ local err = missing_provider('python3')
+ if err then
pending(
- 'Python 3 (or the Python 3 neovim module) is broken or missing:\n' .. errors,
+ 'Python 3 (or the Python 3 neovim module) is broken or missing:\n' .. err,
function() end)
return
end
diff --git a/test/functional/provider/python_spec.lua b/test/functional/provider/python_spec.lua
index 94dfa90ea8..25f5e0a6d0 100644
--- a/test/functional/provider/python_spec.lua
+++ b/test/functional/provider/python_spec.lua
@@ -12,14 +12,14 @@ local command = helpers.command
local exc_exec = helpers.exc_exec
local write_file = helpers.write_file
local curbufmeths = helpers.curbufmeths
+local missing_provider = helpers.missing_provider
do
clear()
- command('let [g:interp, g:errors] = provider#pythonx#Detect(2)')
- local errors = meths.get_var('errors')
- if errors ~= '' then
+ local err = missing_provider('python')
+ if err then
pending(
- 'Python 2 (or the Python 2 neovim module) is broken or missing:\n' .. errors,
+ 'Python 2 (or the Python 2 neovim module) is broken or missing:\n' .. err,
function() end)
return
end
diff --git a/test/functional/provider/ruby_spec.lua b/test/functional/provider/ruby_spec.lua
index 7b0e17688d..9f5ef3b3fc 100644
--- a/test/functional/provider/ruby_spec.lua
+++ b/test/functional/provider/ruby_spec.lua
@@ -10,13 +10,11 @@ local expect = helpers.expect
local command = helpers.command
local write_file = helpers.write_file
local curbufmeths = helpers.curbufmeths
+local missing_provider = helpers.missing_provider
do
clear()
- command('let g:prog = provider#ruby#Detect()')
- local prog = meths.get_var('prog')
-
- if prog == '' then
+ if missing_provider('ruby') then
pending(
"Cannot find the neovim RubyGem. Try :CheckHealth",
function() end)
diff --git a/test/functional/shada/registers_spec.lua b/test/functional/shada/registers_spec.lua
index fc812f799c..71af14aba8 100644
--- a/test/functional/shada/registers_spec.lua
+++ b/test/functional/shada/registers_spec.lua
@@ -148,4 +148,40 @@ describe('ShaDa support code', function()
eq({{'\171«'}, 'v'}, getreg('e'))
end)
+ it('has a blank unnamed register if it wasn\'t set and register 0 is empty',
+ function()
+ setreg('1', {'one'}, 'c')
+ setreg('2', {'two'}, 'c')
+ setreg('a', {'a'}, 'c')
+ nvim_command('qall')
+ reset()
+ eq({{}, ''}, getreg('0'))
+ eq({{'one'}, 'v'}, getreg('1'))
+ eq({{}, ''}, getreg('"'))
+ eq({{'a'}, 'v'}, getreg('a'))
+ end)
+
+ it('defaults the unnamed register to register 0 if it wasn\'t set',
+ function()
+ setreg('0', {'zero'}, 'c')
+ setreg('1', {'one'}, 'c')
+ setreg('2', {'two'}, 'c')
+ nvim_command('qall')
+ reset()
+ eq({{'zero'}, 'v'}, getreg('0'))
+ eq({{'one'}, 'v'}, getreg('1'))
+ eq({{'zero'}, 'v'}, getreg('"'))
+ end)
+
+ it('remembers which register was the unnamed register when loading',
+ function()
+ setreg('0', {'zero'}, 'c')
+ setreg('1', {'one'}, 'cu')
+ setreg('2', {'two'}, 'c')
+ nvim_command('qall')
+ reset()
+ eq({{'zero'}, 'v'}, getreg('0'))
+ eq({{'one'}, 'v'}, getreg('1'))
+ eq({{'one'}, 'v'}, getreg('"'))
+ end)
end)
diff --git a/test/functional/terminal/tui_spec.lua b/test/functional/terminal/tui_spec.lua
index b14bceecdd..3ed63f68e9 100644
--- a/test/functional/terminal/tui_spec.lua
+++ b/test/functional/terminal/tui_spec.lua
@@ -356,9 +356,17 @@ describe("tui 't_Co' (terminal colors)", function()
assert_term_colors("yet-another-term", "screen-256color", 256)
end)
- it("TERM=linux uses 8 colors", function()
+ it("TERM=linux uses 256 colors", function()
if is_linux then
- assert_term_colors("linux", nil, 8)
+ assert_term_colors("linux", nil, 256)
+ else
+ pending()
+ end
+ end)
+
+ it("TERM=linux-16color uses 256 colors", function()
+ if is_linux then
+ assert_term_colors("linux-16color", nil, 256)
else
pending()
end
diff --git a/test/functional/ui/cursor_spec.lua b/test/functional/ui/cursor_spec.lua
index abe0e0b1fd..b47210a777 100644
--- a/test/functional/ui/cursor_spec.lua
+++ b/test/functional/ui/cursor_spec.lua
@@ -20,102 +20,102 @@ describe('ui/cursor', function()
it("'guicursor' is published as a UI event", function()
local expected_mode_info = {
[1] = {
- blinkoff = 250,
- blinkon = 400,
- blinkwait = 700,
+ blinkoff = 0,
+ blinkon = 0,
+ blinkwait = 0,
cell_percentage = 0,
cursor_shape = 'block',
name = 'normal',
- hl_id = 46,
- id_lm = 47,
+ hl_id = 0,
+ id_lm = 0,
mouse_shape = 0,
short_name = 'n' },
[2] = {
- blinkoff = 250,
- blinkon = 400,
- blinkwait = 700,
+ blinkoff = 0,
+ blinkon = 0,
+ blinkwait = 0,
cell_percentage = 0,
cursor_shape = 'block',
name = 'visual',
- hl_id = 46,
- id_lm = 47,
+ hl_id = 0,
+ id_lm = 0,
mouse_shape = 0,
short_name = 'v' },
[3] = {
- blinkoff = 250,
- blinkon = 400,
- blinkwait = 700,
+ blinkoff = 0,
+ blinkon = 0,
+ blinkwait = 0,
cell_percentage = 25,
cursor_shape = 'vertical',
name = 'insert',
- hl_id = 46,
- id_lm = 47,
+ hl_id = 0,
+ id_lm = 0,
mouse_shape = 0,
short_name = 'i' },
[4] = {
- blinkoff = 250,
- blinkon = 400,
- blinkwait = 700,
+ blinkoff = 0,
+ blinkon = 0,
+ blinkwait = 0,
cell_percentage = 20,
cursor_shape = 'horizontal',
name = 'replace',
- hl_id = 46,
- id_lm = 47,
+ hl_id = 0,
+ id_lm = 0,
mouse_shape = 0,
short_name = 'r' },
[5] = {
- blinkoff = 250,
- blinkon = 400,
- blinkwait = 700,
+ blinkoff = 0,
+ blinkon = 0,
+ blinkwait = 0,
cell_percentage = 0,
cursor_shape = 'block',
name = 'cmdline_normal',
- hl_id = 46,
- id_lm = 47,
+ hl_id = 0,
+ id_lm = 0,
mouse_shape = 0,
short_name = 'c' },
[6] = {
- blinkoff = 250,
- blinkon = 400,
- blinkwait = 700,
+ blinkoff = 0,
+ blinkon = 0,
+ blinkwait = 0,
cell_percentage = 25,
cursor_shape = 'vertical',
name = 'cmdline_insert',
- hl_id = 46,
- id_lm = 47,
+ hl_id = 0,
+ id_lm = 0,
mouse_shape = 0,
short_name = 'ci' },
[7] = {
- blinkoff = 250,
- blinkon = 400,
- blinkwait = 700,
+ blinkoff = 0,
+ blinkon = 0,
+ blinkwait = 0,
cell_percentage = 20,
cursor_shape = 'horizontal',
name = 'cmdline_replace',
- hl_id = 46,
- id_lm = 47,
+ hl_id = 0,
+ id_lm = 0,
mouse_shape = 0,
short_name = 'cr' },
[8] = {
- blinkoff = 250,
- blinkon = 400,
- blinkwait = 700,
- cell_percentage = 50,
+ blinkoff = 0,
+ blinkon = 0,
+ blinkwait = 0,
+ cell_percentage = 20,
cursor_shape = 'horizontal',
name = 'operator',
- hl_id = 46,
- id_lm = 46,
+ hl_id = 0,
+ id_lm = 0,
mouse_shape = 0,
short_name = 'o' },
[9] = {
- blinkoff = 250,
- blinkon = 400,
- blinkwait = 700,
- cell_percentage = 35,
+ blinkoff = 0,
+ blinkon = 0,
+ blinkwait = 0,
+ cell_percentage = 25,
cursor_shape = 'vertical',
name = 'visual_select',
- hl_id = 46,
- id_lm = 46,
+ hl_id = 0,
+ id_lm = 0,
mouse_shape = 0,
short_name = 've' },
[10] = {
@@ -147,19 +147,19 @@ describe('ui/cursor', function()
mouse_shape = 0,
short_name = 'ml' },
[17] = {
- blinkoff = 150,
- blinkon = 175,
- blinkwait = 175,
+ blinkoff = 0,
+ blinkon = 0,
+ blinkwait = 0,
cell_percentage = 0,
cursor_shape = 'block',
name = 'showmatch',
- hl_id = 46,
- id_lm = 46,
+ hl_id = 0,
+ id_lm = 0,
short_name = 'sm' },
}
screen:expect(function()
- -- Default 'guicursor' published on startup.
+ -- Default 'guicursor', published on startup.
eq(expected_mode_info, screen._mode_info)
eq(true, screen._cursor_style_enabled)
eq('normal', screen.mode)
@@ -179,20 +179,53 @@ describe('ui/cursor', function()
end)
-- Change the cursor style.
- meths.set_option('guicursor', 'n-v-c:ver35-blinkwait171-blinkoff172-blinkon173,ve:hor35,o:ver50,i-ci:block,r-cr:hor90,sm:ver42')
+ helpers.command('set guicursor=n-v-c:block,i-ci-ve:ver25,r-cr-o:hor20'
+ ..',a:blinkwait700-blinkoff400-blinkon250-Cursor/lCursor'
+ ..',sm:block-blinkwait175-blinkoff150-blinkon175')
+
+ -- Update the expected values.
+ for _, m in ipairs(expected_mode_info) do
+ if m.name == 'showmatch' then
+ if m.blinkon then m.blinkon = 175 end
+ if m.blinkoff then m.blinkoff = 150 end
+ if m.blinkwait then m.blinkwait = 175 end
+ else
+ if m.blinkon then m.blinkon = 250 end
+ if m.blinkoff then m.blinkoff = 400 end
+ if m.blinkwait then m.blinkwait = 700 end
+ end
+ if m.hl_id then m.hl_id = 48 end
+ if m.id_lm then m.id_lm = 49 end
+ end
+
+ -- Assert the new expectation.
+ screen:expect(function()
+ eq(expected_mode_info, screen._mode_info)
+ eq(true, screen._cursor_style_enabled)
+ eq('normal', screen.mode)
+ end)
+
+ -- Another cursor style.
+ meths.set_option('guicursor', 'n-v-c:ver35-blinkwait171-blinkoff172-blinkon173'
+ ..',ve:hor35,o:ver50,i-ci:block,r-cr:hor90,sm:ver42')
screen:expect(function()
local named = {}
for _, m in ipairs(screen._mode_info) do
named[m.name] = m
end
eq('vertical', named.normal.cursor_shape)
+ eq(35, named.normal.cell_percentage)
eq('horizontal', named.visual_select.cursor_shape)
+ eq(35, named.visual_select.cell_percentage)
eq('vertical', named.operator.cursor_shape)
+ eq(50, named.operator.cell_percentage)
eq('block', named.insert.cursor_shape)
eq('vertical', named.showmatch.cursor_shape)
+ eq(90, named.cmdline_replace.cell_percentage)
eq(171, named.normal.blinkwait)
eq(172, named.normal.blinkoff)
eq(173, named.normal.blinkon)
+ eq(42, named.showmatch.cell_percentage)
end)
end)
diff --git a/test/functional/ui/highlight_spec.lua b/test/functional/ui/highlight_spec.lua
index 2bda907c33..d1357ea525 100644
--- a/test/functional/ui/highlight_spec.lua
+++ b/test/functional/ui/highlight_spec.lua
@@ -3,8 +3,9 @@ local Screen = require('test.functional.ui.screen')
local os = require('os')
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
local command = helpers.command
-local eval = helpers.eval
+local eval, exc_exec = helpers.eval, helpers.exc_exec
local feed_command, request, eq = helpers.feed_command, helpers.request, helpers.eq
+local curbufmeths = helpers.curbufmeths
describe('colorscheme compatibility', function()
before_each(function()
@@ -650,3 +651,415 @@ describe("'listchars' highlight", function()
]])
end)
end)
+
+describe("'winhighlight' highlight", function()
+ local screen
+
+ before_each(function()
+ clear()
+ screen = Screen.new(20,8)
+ screen:attach()
+ screen:set_default_attr_ids({
+ [0] = {bold=true, foreground=Screen.colors.Blue},
+ [1] = {background = Screen.colors.DarkBlue},
+ [2] = {background = Screen.colors.DarkBlue, bold = true, foreground = Screen.colors.Blue1},
+ [3] = {bold = true, reverse = true},
+ [4] = {reverse = true},
+ [5] = {background = Screen.colors.DarkGreen},
+ [6] = {background = Screen.colors.DarkGreen, bold = true, foreground = Screen.colors.Blue1},
+ [7] = {background = Screen.colors.DarkMagenta},
+ [8] = {background = Screen.colors.DarkMagenta, bold = true, foreground = Screen.colors.Blue1},
+ [9] = {foreground = Screen.colors.Brown},
+ [10] = {foreground = Screen.colors.Brown, background = Screen.colors.DarkBlue},
+ [11] = {background = Screen.colors.DarkBlue, bold = true, reverse = true},
+ [12] = {background = Screen.colors.DarkGreen, reverse = true},
+ [13] = {background = Screen.colors.Magenta4, reverse = true},
+ [14] = {background = Screen.colors.DarkBlue, reverse = true},
+ [15] = {foreground = Screen.colors.Grey100, background = Screen.colors.Red},
+ [16] = {foreground = Screen.colors.Blue1},
+ [17] = {background = Screen.colors.LightRed},
+ [18] = {background = Screen.colors.Gray90},
+ [19] = {foreground = Screen.colors.LightGrey, background = Screen.colors.DarkGray},
+ [20] = {background = Screen.colors.LightGrey, underline = true},
+ [21] = {bold = true},
+ [22] = {bold = true, foreground = Screen.colors.SeaGreen4},
+ [23] = {background = Screen.colors.LightMagenta},
+ [24] = {background = Screen.colors.WebGray},
+ })
+ command("hi Background1 guibg=DarkBlue")
+ command("hi Background2 guibg=DarkGreen")
+ end)
+
+ it('works for background color', function()
+ insert("aa")
+ command("split")
+ command("set winhl=Normal:Background1")
+ screen:expect([[
+ {1:a^a }|
+ {2:~ }|
+ {2:~ }|
+ {11:[No Name] [+] }|
+ aa |
+ {0:~ }|
+ {4:[No Name] [+] }|
+ |
+ ]])
+
+ command("enew")
+ screen:expect([[
+ {1:^ }|
+ {2:~ }|
+ {2:~ }|
+ {11:[No Name] }|
+ aa |
+ {0:~ }|
+ {4:[No Name] [+] }|
+ |
+ ]])
+ end)
+
+ it('handles invalid values', function()
+ command("set winhl=Normal:Background1")
+ screen:expect([[
+ {1:^ }|
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ |
+ ]])
+
+ eq('Vim(set):E474: Invalid argument: winhl=xxx:yyy',
+ exc_exec("set winhl=xxx:yyy"))
+ eq('Normal:Background1', eval('&winhl'))
+ screen:expect([[
+ {1:^ }|
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ |
+ ]])
+ end)
+
+
+ it('works local to the buffer', function()
+ insert("aa")
+ command("split")
+ command("setlocal winhl=Normal:Background1")
+ screen:expect([[
+ {1:a^a }|
+ {2:~ }|
+ {2:~ }|
+ {11:[No Name] [+] }|
+ aa |
+ {0:~ }|
+ {4:[No Name] [+] }|
+ |
+ ]])
+
+ command("enew")
+ screen:expect([[
+ ^ |
+ {0:~ }|
+ {0:~ }|
+ {3:[No Name] }|
+ aa |
+ {0:~ }|
+ {4:[No Name] [+] }|
+ |
+ ]])
+
+ command("bnext")
+ screen:expect([[
+ {1:^aa }|
+ {2:~ }|
+ {2:~ }|
+ {11:[No Name] [+] }|
+ aa |
+ {0:~ }|
+ {4:[No Name] [+] }|
+ <f 1 --100%-- col 1 |
+ ]])
+ end)
+
+ it('for inactive window background works', function()
+ command("set winhl=Normal:Background1,NormalNC:Background2")
+ -- tests global value is copied across split
+ command("split")
+ screen:expect([[
+ {1:^ }|
+ {2:~ }|
+ {2:~ }|
+ {11:[No Name] }|
+ {5: }|
+ {6:~ }|
+ {12:[No Name] }|
+ |
+ ]])
+
+ feed("<c-w><c-w>")
+ screen:expect([[
+ {5: }|
+ {6:~ }|
+ {6:~ }|
+ {12:[No Name] }|
+ {1:^ }|
+ {2:~ }|
+ {11:[No Name] }|
+ |
+ ]])
+
+ feed("<c-w><c-w>")
+ screen:expect([[
+ {1:^ }|
+ {2:~ }|
+ {2:~ }|
+ {11:[No Name] }|
+ {5: }|
+ {6:~ }|
+ {12:[No Name] }|
+ |
+ ]])
+ end)
+
+ it('works with NormalNC', function()
+ command("hi NormalNC guibg=DarkMagenta")
+ -- tests global value is copied across split
+ command("split")
+ screen:expect([[
+ ^ |
+ {0:~ }|
+ {0:~ }|
+ {3:[No Name] }|
+ {7: }|
+ {8:~ }|
+ {13:[No Name] }|
+ |
+ ]])
+
+ command("wincmd w")
+ screen:expect([[
+ {7: }|
+ {8:~ }|
+ {8:~ }|
+ {13:[No Name] }|
+ ^ |
+ {0:~ }|
+ {3:[No Name] }|
+ |
+ ]])
+
+
+ -- winbg=Normal:... overrides global NormalNC
+ command("set winhl=Normal:Background1")
+ screen:expect([[
+ {7: }|
+ {8:~ }|
+ {8:~ }|
+ {13:[No Name] }|
+ {1:^ }|
+ {2:~ }|
+ {11:[No Name] }|
+ |
+ ]])
+
+ command("wincmd w")
+ screen:expect([[
+ ^ |
+ {0:~ }|
+ {0:~ }|
+ {3:[No Name] }|
+ {1: }|
+ {2:~ }|
+ {14:[No Name] }|
+ |
+ ]])
+
+ command("wincmd w")
+ command("set winhl=Normal:Background1,NormalNC:Background2")
+ screen:expect([[
+ {7: }|
+ {8:~ }|
+ {8:~ }|
+ {13:[No Name] }|
+ {1:^ }|
+ {2:~ }|
+ {11:[No Name] }|
+ |
+ ]])
+
+ command("wincmd w")
+ screen:expect([[
+ ^ |
+ {0:~ }|
+ {0:~ }|
+ {3:[No Name] }|
+ {5: }|
+ {6:~ }|
+ {12:[No Name] }|
+ |
+ ]])
+ end)
+
+ it('background applies also to non-text', function()
+ insert('Lorem ipsum dolor sit amet ')
+ command('set shiftwidth=2')
+ feed('>>')
+ command('set number')
+ command('set breakindent')
+ command('set briopt=shift:5,min:0')
+ command('set list')
+ command('set showbreak=↪')
+ screen:expect([[
+ {9: 1 } ^Lorem ipsum do|
+ {9: } {0:↪}lor sit |
+ {9: } {0:↪}amet{0:-} |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ |
+ ]])
+
+ command('set winhl=Normal:Background1')
+ screen:expect([[
+ {10: 1 }{1: ^Lorem ipsum do}|
+ {10: }{1: }{2:↪}{1:lor sit }|
+ {10: }{1: }{2:↪}{1:amet}{2:-}{1: }|
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ |
+ ]])
+
+ command('set nowrap')
+ command('set listchars+=extends:❯,precedes:❮')
+ feed('3w')
+ screen:expect([[
+ {10: 1 }{2:❮}{1: dolor ^sit ame}{2:❯}|
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ |
+ ]])
+ end)
+
+ it('can override NonText, Conceal and EndOfBuffer', function()
+ curbufmeths.set_lines(0,-1,true, {"raa\000"})
+ command('call matchaddpos("Conceal", [[1,2]], 0, -1, {"conceal": "#"})')
+ command('set cole=2 cocu=nvic')
+ command('split')
+ command('call matchaddpos("Conceal", [[1,2]], 0, -1, {"conceal": "#"})')
+ command('set winhl=SpecialKey:ErrorMsg,EndOfBuffer:Background1,'
+ ..'Conceal:Background2')
+
+ screen:expect([[
+ ^r{5:#}a{15:^@} |
+ {1:~ }|
+ {1:~ }|
+ {3:[No Name] [+] }|
+ r{19:#}a{16:^@} |
+ {0:~ }|
+ {4:[No Name] [+] }|
+ |
+ ]])
+ end)
+
+ it('can override LineNr, CursorColumn and ColorColumn', function()
+ insert('very text\nmore text')
+ command('set number')
+ command('set colorcolumn=2')
+ command('set cursorcolumn')
+
+ command('split')
+ command('set winhl=LineNr:Background1,CursorColumn:Background2,'
+ ..'ColorColumn:ErrorMsg')
+ screen:expect([[
+ {1: 1 }v{15:e}ry tex{5:t} |
+ {1: 2 }m{15:o}re tex^t |
+ {0:~ }|
+ {3:[No Name] [+] }|
+ {9: 1 }v{17:e}ry tex{18:t} |
+ {9: 2 }m{17:o}re text |
+ {4:[No Name] [+] }|
+ |
+ ]])
+ end)
+
+ it('can override Tabline', function()
+ command('tabnew')
+ command('set winhl=TabLine:Background1,TabLineSel:ErrorMsg')
+
+ screen:expect([[
+ {20: No Name] }{15: No Name]}{20:X}|
+ ^ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ |
+ ]])
+ command("tabnext")
+ screen:expect([[
+ {21: No Name] }{1: No Name]}{20:X}|
+ ^ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ |
+ ]])
+ end)
+
+ it('can override popupmenu', function()
+ insert('word wording wordy')
+ command('split')
+ command('set winhl=Pmenu:Background1,PmenuSel:Background2,'
+ ..'PmenuSbar:ErrorMsg,PmenuThumb:Normal')
+ screen:expect([[
+ word wording word^y |
+ {0:~ }|
+ {0:~ }|
+ {3:[No Name] [+] }|
+ word wording wordy |
+ {0:~ }|
+ {4:[No Name] [+] }|
+ |
+ ]])
+
+ feed('oword<c-x><c-p>')
+ screen:expect([[
+ word wording wordy |
+ wordy^ |
+ {1:word }{0: }|
+ {1:wording }{3: }|
+ {5:wordy }rdy |
+ wordy |
+ {4:[No Name] [+] }|
+ {21:-- }{22:match 1 of 3} |
+ ]])
+
+ feed('<esc>u<c-w><c-w>oword<c-x><c-p>')
+ screen:expect([[
+ word wording wordy |
+ wordy |
+ {23:word }{0: }|
+ {23:wording }{4: }|
+ {24:wordy }rdy |
+ wordy^ |
+ {3:[No Name] [+] }|
+ {21:-- }{22:match 1 of 3} |
+ ]])
+ end)
+end)
diff --git a/test/functional/ui/inccommand_spec.lua b/test/functional/ui/inccommand_spec.lua
index a7be1a9dc8..8bdc4601c0 100644
--- a/test/functional/ui/inccommand_spec.lua
+++ b/test/functional/ui/inccommand_spec.lua
@@ -805,6 +805,7 @@ describe(":substitute, inccommand=split", function()
it('does not show split window for :s/', function()
feed("2gg")
feed(":s/tw")
+ screen:sleep(1)
screen:expect([[
Inc substitution on |
two lines |
diff --git a/test/functional/ui/screen.lua b/test/functional/ui/screen.lua
index 7d9cd6c026..5408e1e195 100644
--- a/test/functional/ui/screen.lua
+++ b/test/functional/ui/screen.lua
@@ -198,8 +198,9 @@ function Screen:expect(expected, attr_ids, attr_ignore, condition, any)
condition = expected
expected = nil
else
- -- Remove the last line and dedent.
- expected = dedent(expected:gsub('\n[ ]+$', ''))
+ -- Remove the last line and dedent. Note that gsub returns more then one
+ -- value.
+ expected = dedent(expected:gsub('\n[ ]+$', ''), 0)
for row in expected:gmatch('[^\n]+') do
row = row:sub(1, #row - 1) -- Last char must be the screen delimiter.
table.insert(expected_rows, row)
diff --git a/test/functional/ui/screen_basic_spec.lua b/test/functional/ui/screen_basic_spec.lua
index d9cb3d7b6f..bfcdc7f652 100644
--- a/test/functional/ui/screen_basic_spec.lua
+++ b/test/functional/ui/screen_basic_spec.lua
@@ -6,7 +6,7 @@ local insert = helpers.insert
local eq = helpers.eq
local eval = helpers.eval
-describe('Initial screen', function()
+describe('screen', function()
local screen
local nvim_argv = {helpers.nvim_prog, '-u', 'NONE', '-i', 'NONE', '-N',
'--cmd', 'set shortmess+=I background=light noswapfile belloff= noshowcmd noruler',
@@ -27,7 +27,7 @@ describe('Initial screen', function()
screen:detach()
end)
- it('is the default initial screen', function()
+ it('default initial screen', function()
screen:expect([[
^ |
{0:~ }|
@@ -566,11 +566,61 @@ describe('Screen', function()
end)
end)
- it('nvim_ui_attach() handles very large width/height #2180', function()
- screen:detach()
- screen = Screen.new(999, 999)
+ describe('press enter', function()
+ it('does not crash on <F1> at “Press ENTER”', function()
+ command('nnoremap <F1> :echo "TEST"<CR>')
+ feed(':ls<CR>')
+ screen:expect([[
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ :ls |
+ 1 %a "[No Name]" line 1 |
+ {7:Press ENTER or type command to continue}^ |
+ ]])
+ feed('<F1>')
+ screen:expect([[
+ ^ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ TEST |
+ ]])
+ end)
+ end)
+end)
+
+describe('nvim_ui_attach()', function()
+ before_each(function()
+ clear()
+ end)
+ it('handles very large width/height #2180', function()
+ local screen = Screen.new(999, 999)
screen:attach()
eq(999, eval('&lines'))
eq(999, eval('&columns'))
end)
+ it('invalid option returns error', function()
+ local screen = Screen.new()
+ local status, rv = pcall(function() screen:attach({foo={'foo'}}) end)
+ eq(false, status)
+ eq('No such ui option', rv:match("No such .*"))
+ end)
end)
diff --git a/test/functional/ui/tabline_spec.lua b/test/functional/ui/tabline_spec.lua
new file mode 100644
index 0000000000..56331a33b5
--- /dev/null
+++ b/test/functional/ui/tabline_spec.lua
@@ -0,0 +1,57 @@
+local helpers = require('test.functional.helpers')(after_each)
+local Screen = require('test.functional.ui.screen')
+local clear, command, eq = helpers.clear, helpers.command, helpers.eq
+
+describe('ui/tabline', function()
+ local screen
+ local event_tabs, event_curtab
+
+ before_each(function()
+ clear()
+ screen = Screen.new(25, 5)
+ screen:attach({rgb=true, ext_tabline=true})
+ screen:set_on_event_handler(function(name, data)
+ if name == "tabline_update" then
+ event_curtab, event_tabs = unpack(data)
+ end
+ end)
+ end)
+
+ after_each(function()
+ screen:detach()
+ end)
+
+ describe('externalized', function()
+ it('publishes UI events', function()
+ command("tabedit another-tab")
+
+ local expected_tabs = {
+ {tab = { id = 1 }, name = '[No Name]'},
+ {tab = { id = 2 }, name = 'another-tab'},
+ }
+ screen:expect([[
+ ^ |
+ ~ |
+ ~ |
+ ~ |
+ |
+ ]], nil, nil, function()
+ eq({ id = 2 }, event_curtab)
+ eq(expected_tabs, event_tabs)
+ end)
+
+ command("tabNext")
+ screen:expect([[
+ ^ |
+ ~ |
+ ~ |
+ ~ |
+ |
+ ]], nil, nil, function()
+ eq({ id = 1 }, event_curtab)
+ eq(expected_tabs, event_tabs)
+ end)
+
+ end)
+ end)
+end)
diff --git a/test/functional/ui/wildmode_spec.lua b/test/functional/ui/wildmode_spec.lua
index 6639bf272d..052cdd55a1 100644
--- a/test/functional/ui/wildmode_spec.lua
+++ b/test/functional/ui/wildmode_spec.lua
@@ -31,6 +31,27 @@ describe("'wildmode'", function()
:sign define^ |
]])
end)
+
+ it('does not crash after cycling back to original text', function()
+ command('set wildmode=full')
+ feed(':j<Tab><Tab><Tab>')
+ screen:expect([[
+ |
+ ~ |
+ ~ |
+ join jumps |
+ :j^ |
+ ]])
+ -- This would cause nvim to crash before #6650
+ feed('<BS><Tab>')
+ screen:expect([[
+ |
+ ~ |
+ ~ |
+ ! # & < = > @ > |
+ :!^ |
+ ]])
+ end)
end)
end)
diff --git a/test/functional/viml/completion_spec.lua b/test/functional/viml/completion_spec.lua
index b35e8d4f94..0e5278345c 100644
--- a/test/functional/viml/completion_spec.lua
+++ b/test/functional/viml/completion_spec.lua
@@ -868,13 +868,13 @@ describe('completion', function()
end)
end)
-describe('External completion popupmenu', function()
+describe('ui/externalized/popupmenu', function()
local screen
local items, selected, anchor
before_each(function()
clear()
screen = Screen.new(60, 8)
- screen:attach({rgb=true, popupmenu_external=true})
+ screen:attach({rgb=true, ext_popupmenu=true})
screen:set_default_attr_ids({
[1] = {bold=true, foreground=Screen.colors.Blue},
[2] = {bold = true},
diff --git a/test/functional/viml/function_spec.lua b/test/functional/viml/function_spec.lua
index 776e760aaf..0cf92f7d40 100644
--- a/test/functional/viml/function_spec.lua
+++ b/test/functional/viml/function_spec.lua
@@ -1,29 +1,221 @@
local helpers = require('test.functional.helpers')(after_each)
-local clear = helpers.clear
local eq = helpers.eq
-local exc_exec = helpers.exc_exec
+local clear = helpers.clear
+local funcs = helpers.funcs
+local dedent = helpers.dedent
+local redir_exec = helpers.redir_exec
-describe('Up to MAX_FUNC_ARGS arguments are handled by', function()
- local max_func_args = 20 -- from eval.h
- local range = helpers.funcs.range
+before_each(clear)
- before_each(clear)
+local function check_nofunc(fname)
+ eq(0, funcs.exists('*' .. fname))
+end
- it('printf()', function()
- local printf = helpers.funcs.printf
- local rep = helpers.funcs['repeat']
- local expected = '2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,'
- eq(expected, printf(rep('%d,', max_func_args-1), unpack(range(2, max_func_args))))
- local ret = exc_exec('call printf("", 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21)')
- eq('Vim(call):E740: Too many arguments for function printf', ret)
- end)
+local function check_func(fname, body, indent)
+ if type(body) == 'number' then
+ body = ('return %i'):format(body)
+ end
+ eq(dedent(([[
- it('rpcnotify()', function()
- local rpcnotify = helpers.funcs.rpcnotify
- local ret = rpcnotify(0, 'foo', unpack(range(3, max_func_args)))
- eq(1, ret)
- ret = exc_exec('call rpcnotify(0, "foo", 3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21)')
- eq('Vim(call):E740: Too many arguments for function rpcnotify', ret)
+ function %s()%s
+ endfunction]]
+ ), 3):format(
+ fname,
+ body and ('\n1' .. (' '):rep(2 + (indent or 8)) .. body) or ''),
+ redir_exec('function ' .. fname))
+end
+
+describe(':endfunction', function()
+ it('accepts bang', function()
+ eq('', redir_exec([[
+ function F()
+ endfunction!
+ ]]))
+ check_func('F')
+ eq('', redir_exec([[
+ function! F()
+ return 1
+ endfunction!
+ ]]))
+ check_func('F', 1)
+ end)
+ it('accepts comments', function()
+ eq('', redir_exec([[
+ function F1()
+ endfunction " Comment
+ ]]))
+ check_func('F1')
+ eq('', redir_exec([[
+ function F2()
+ endfunction " }}}
+ ]]))
+ check_func('F2')
+ eq('', redir_exec([[
+ function F3()
+ endfunction " F3
+ ]]))
+ check_func('F3')
+ eq('', redir_exec([[
+ function F4()
+ endfunction! " F4
+ ]]))
+ check_func('F4')
+ eq('', redir_exec([[
+ function! F4()
+ return 2
+ endfunction! " F4
+ ]]))
+ check_func('F4', 2)
+ end)
+ it('accepts function name', function()
+ eq('', redir_exec([[
+ function F0()
+ endfunction F0
+ ]]))
+ check_func('F0')
+ eq('', redir_exec([[
+ function F1()
+ endfunction! F1
+ ]]))
+ check_func('F1')
+ eq('', redir_exec([[
+ function! F2()
+ endfunction! F2
+ ]]))
+ check_func('F2')
+ eq('', redir_exec([[
+ function! F2()
+ return 3
+ endfunction! F2
+ ]]))
+ check_func('F2', 3)
+ end)
+ it('accepts weird characters', function()
+ eq('', redir_exec([[
+ function F1()
+ endfunction: }}}
+ ]]))
+ check_func('F1')
+ -- From accurev
+ eq('', redir_exec([[
+ function F2()
+ endfunction :}}}
+ ]]))
+ check_func('F2')
+ -- From cream-vimabbrev
+ eq('', redir_exec([[
+ function F3()
+ endfunction 1}}}
+ ]]))
+ check_func('F3')
+ -- From pyunit
+ eq('', redir_exec([[
+ function F4()
+ endfunction # }}}
+ ]]))
+ check_func('F4')
+ -- From vim-lldb
+ eq('', redir_exec([[
+ function F5()
+ endfunction()
+ ]]))
+ check_func('F5')
+ -- From vim-mail
+ eq('', redir_exec([[
+ function F6()
+ endfunction;
+ ]]))
+ check_func('F6')
+ end)
+ it('accepts commented bar', function()
+ eq('', redir_exec([[
+ function F1()
+ endfunction " F1 | echo 42
+ ]]))
+ check_func('F1')
+ eq('', redir_exec([[
+ function! F1()
+ return 42
+ endfunction! " F1 | echo 42
+ ]]))
+ check_func('F1', 42)
+ end)
+ it('errors out on an uncommented bar', function()
+ eq('\nE488: Trailing characters: | echo 42', redir_exec([[
+ function F1()
+ endfunction | echo 42
+ ]]))
+ check_nofunc('F1')
+ end)
+ it('allows running multiple commands', function()
+ eq('\n2', redir_exec([[
+ function F1()
+ echo 2
+ endfunction
+ call F1()
+ ]]))
+ check_func('F1', 'echo 2')
+ eq('\n2\n3\n4', redir_exec([[
+ function F2()
+ echo 2
+ endfunction F2
+ function F3()
+ echo 3
+ endfunction " F3
+ function! F4()
+ echo 4
+ endfunction!
+ call F2()
+ call F3()
+ call F4()
+ ]]))
+ check_func('F2', 'echo 2')
+ check_func('F3', 'echo 3')
+ check_func('F4', 'echo 4')
+ end)
+ it('allows running multiple commands with only one character in between',
+ function()
+ eq('\n3', redir_exec(dedent([[
+ function! F1()
+ echo 3
+ endfunction!
+ call F1()]])))
+ check_func('F1', 'echo 3', 2)
+ eq('\n4', redir_exec(dedent([[
+ function F5()
+ echo 4
+ endfunction
+ call F5()]])))
+ check_func('F5', 'echo 4', 2)
+ eq('\n5', redir_exec(dedent([[
+ function F6()
+ echo 5
+ endfunction " TEST
+ call F6()]])))
+ check_func('F6', 'echo 5', 2)
+ eq('\n6', redir_exec(dedent([[
+ function F7()
+ echo 6
+ endfunction F7
+ call F7()]])))
+ check_func('F7', 'echo 6', 2)
+ eq('\n2\n3\n4', redir_exec(dedent([[
+ function F2()
+ echo 2
+ endfunction F2
+ function F3()
+ echo 3
+ endfunction " F3
+ function! F4()
+ echo 4
+ endfunction!
+ call F2()
+ call F3()
+ call F4()]])))
+ check_func('F2', 'echo 2', 2)
+ check_func('F3', 'echo 3', 2)
+ check_func('F4', 'echo 4', 2)
end)
end)
+-- vim: foldmarker=▶,▲
diff --git a/test/helpers.lua b/test/helpers.lua
index d60d5ba242..260f10002e 100644
--- a/test/helpers.lua
+++ b/test/helpers.lua
@@ -263,6 +263,14 @@ local function which(exe)
end
end
+local function shallowcopy(orig)
+ local copy = {}
+ for orig_key, orig_value in pairs(orig) do
+ copy[orig_key] = orig_value
+ end
+ return copy
+end
+
local function concat_tables(...)
local ret = {}
for i = 1, select('#', ...) do
@@ -276,7 +284,7 @@ local function concat_tables(...)
return ret
end
-local function dedent(str)
+local function dedent(str, leave_indent)
-- find minimum common indent across lines
local indent = nil
for line in str:gmatch('[^\n]+') do
@@ -289,12 +297,13 @@ local function dedent(str)
-- no minimum common indent
return str
end
+ local left_indent = (' '):rep(leave_indent or 0)
-- create a pattern for the indent
indent = indent:gsub('%s', '[ \t]')
-- strip it from the first line
- str = str:gsub('^'..indent, '')
+ str = str:gsub('^'..indent, left_indent)
-- strip it from the remaining lines
- str = str:gsub('[\n]'..indent, '\n')
+ str = str:gsub('[\n]'..indent, '\n' .. left_indent)
return str
end
@@ -311,6 +320,7 @@ return {
check_cores = check_cores,
hasenv = hasenv,
which = which,
+ shallowcopy = shallowcopy,
concat_tables = concat_tables,
dedent = dedent,
}
diff --git a/test/unit/eval/typval_spec.lua b/test/unit/eval/typval_spec.lua
index 6308ae7367..5d543f914f 100644
--- a/test/unit/eval/typval_spec.lua
+++ b/test/unit/eval/typval_spec.lua
@@ -1751,6 +1751,55 @@ describe('typval.c', function()
eq('2', s)
end)
end)
+ describe('get_string_buf_chk()', function()
+ local function tv_dict_get_string_buf_chk(d, key, len, buf, def, emsg)
+ buf = buf or ffi.gc(lib.xmalloc(lib.NUMBUFLEN), lib.xfree)
+ def = def or ffi.gc(lib.xstrdup('DEFAULT'), lib.xfree)
+ len = len or #key
+ alloc_log:clear()
+ local ret = check_emsg(function() return lib.tv_dict_get_string_buf_chk(d, key, len, buf, def) end,
+ emsg)
+ local s_ret = (ret ~= nil) and ffi.string(ret) or nil
+ if not emsg then
+ alloc_log:check({})
+ end
+ return s_ret, ret, buf, def
+ end
+ itp('works with NULL dict', function()
+ eq('DEFAULT', tv_dict_get_string_buf_chk(nil, 'test'))
+ end)
+ itp('works', function()
+ local lua_d = {
+ ['']={},
+ t=1,
+ te=int(2),
+ tes=empty_list,
+ test='tset',
+ testt=5,
+ }
+ local d = dict(lua_d)
+ alloc_log:clear()
+ eq(lua_d, dct2tbl(d))
+ alloc_log:check({})
+ local s, r, b, def
+ s, r, b, def = tv_dict_get_string_buf_chk(d, 'test')
+ neq(r, b)
+ neq(r, def)
+ eq('tset', s)
+ s, r, b, def = tv_dict_get_string_buf_chk(d, 'test', 1, nil, nil, 'E806: using Float as a String')
+ neq(r, b)
+ neq(r, def)
+ eq(nil, s)
+ s, r, b, def = tv_dict_get_string_buf_chk(d, 'te')
+ eq(r, b)
+ neq(r, def)
+ eq('2', s)
+ s, r, b, def = tv_dict_get_string_buf_chk(d, 'TEST')
+ eq(r, def)
+ neq(r, b)
+ eq('DEFAULT', s)
+ end)
+ end)
describe('get_callback()', function()
local function tv_dict_get_callback(d, key, key_len, emsg)
key_len = key_len or #key
diff --git a/test/unit/os/env_spec.lua b/test/unit/os/env_spec.lua
index 575787a25e..cefd0315b7 100644
--- a/test/unit/os/env_spec.lua
+++ b/test/unit/os/env_spec.lua
@@ -13,7 +13,7 @@ require('lfs')
local cimp = cimport('./src/nvim/os/os.h')
-describe('env function', function()
+describe('env.c', function()
local function os_setenv(name, value, override)
return cimp.os_setenv(to_cstr(name), to_cstr(value), override)
end
diff --git a/test/unit/os/fs_spec.lua b/test/unit/os/fs_spec.lua
index 860ebfdbcb..23eb05b4b8 100644
--- a/test/unit/os/fs_spec.lua
+++ b/test/unit/os/fs_spec.lua
@@ -35,7 +35,6 @@ for i = 0, 255 do
end
local fcontents = s:rep(16)
-local buffer = ""
local directory = nil
local absolute_executable = nil
local executable_name = nil
@@ -65,7 +64,11 @@ local function os_getperm(filename)
return tonumber(perm)
end
-describe('fs function', function()
+describe('fs.c', function()
+ local function os_isdir(name)
+ return fs.os_isdir(to_cstr(name))
+ end
+
before_each(function()
lfs.mkdir('unit-test-directory');
@@ -91,32 +94,37 @@ describe('fs function', function()
end)
describe('os_dirname', function()
- local length
-
- local function os_dirname(buf, len)
- return fs.os_dirname(buf, len)
- end
-
- before_each(function()
- length = (string.len(lfs.currentdir())) + 1
- buffer = cstr(length, '')
+ itp('returns OK and writes current directory to the buffer', function()
+ local length = string.len(lfs.currentdir()) + 1
+ local buf = cstr(length, '')
+ eq(OK, fs.os_dirname(buf, length))
+ eq(lfs.currentdir(), ffi.string(buf))
end)
- itp('returns OK and writes current directory into the buffer if it is large\n enough', function()
- eq(OK, (os_dirname(buffer, length)))
- eq(lfs.currentdir(), (ffi.string(buffer)))
- end)
-
- -- What kind of other failing cases are possible?
itp('returns FAIL if the buffer is too small', function()
- local buf = cstr((length - 1), '')
- eq(FAIL, (os_dirname(buf, (length - 1))))
+ local length = string.len(lfs.currentdir()) + 1
+ local buf = cstr(length - 1, '')
+ eq(FAIL, fs.os_dirname(buf, length - 1))
end)
end)
- local function os_isdir(name)
- return fs.os_isdir((to_cstr(name)))
- end
+ describe('os_chdir', function()
+ itp('fails with path="~"', function()
+ eq(false, os_isdir('~')) -- sanity check: no literal "~" directory.
+ local length = 4096
+ local expected_cwd = cstr(length, '')
+ local cwd = cstr(length, '')
+ eq(OK, fs.os_dirname(expected_cwd, length))
+
+ -- os_chdir returns 0 for success, not OK (1).
+ neq(0, fs.os_chdir('~')) -- fail
+ neq(0, fs.os_chdir('~/')) -- fail
+
+ eq(OK, fs.os_dirname(cwd, length))
+ -- CWD did not change.
+ eq(ffi.string(expected_cwd), ffi.string(cwd))
+ end)
+ end)
describe('os_isdir', function()
itp('returns false if an empty string is given', function()
diff --git a/test/unit/os/shell_spec.lua b/test/unit/os/shell_spec.lua
index e883301cfb..37274502de 100644
--- a/test/unit/os/shell_spec.lua
+++ b/test/unit/os/shell_spec.lua
@@ -15,7 +15,7 @@ local NULL = ffi.cast('void *', 0)
describe('shell functions', function()
before_each(function()
-- os_system() can't work when the p_sh and p_shcf variables are unset
- cimported.p_sh = to_cstr('/bin/bash')
+ cimported.p_sh = to_cstr('/bin/sh')
cimported.p_shcf = to_cstr('-c')
cimported.p_sxq = to_cstr('')
cimported.p_sxe = to_cstr('')
@@ -53,14 +53,14 @@ describe('shell functions', function()
describe('os_system', function()
itp('can echo some output (shell builtin)', function()
- local cmd, text = 'echo -n', 'some text'
+ local cmd, text = 'printf "%s "', 'some text '
local status, output = os_system(cmd .. ' ' .. text)
eq(text, output)
eq(0, status)
end)
itp('can deal with empty output', function()
- local cmd = 'echo -n'
+ local cmd = 'printf ""'
local status, output = os_system(cmd)
eq('', output)
eq(0, status)
@@ -81,19 +81,19 @@ describe('shell functions', function()
describe('shell_build_argv', function()
itp('works with NULL arguments', function()
- eq({'/bin/bash'}, shell_build_argv(nil, nil))
+ eq({'/bin/sh'}, shell_build_argv(nil, nil))
end)
itp('works with cmd', function()
- eq({'/bin/bash', '-c', 'abc def'}, shell_build_argv('abc def', nil))
+ eq({'/bin/sh', '-c', 'abc def'}, shell_build_argv('abc def', nil))
end)
itp('works with extra_args', function()
- eq({'/bin/bash', 'ghi jkl'}, shell_build_argv(nil, 'ghi jkl'))
+ eq({'/bin/sh', 'ghi jkl'}, shell_build_argv(nil, 'ghi jkl'))
end)
itp('works with cmd and extra_args', function()
- eq({'/bin/bash', 'ghi jkl', '-c', 'abc def'}, shell_build_argv('abc def', 'ghi jkl'))
+ eq({'/bin/sh', 'ghi jkl', '-c', 'abc def'}, shell_build_argv('abc def', 'ghi jkl'))
end)
itp('splits and unquotes &shell and &shellcmdflag', function()
@@ -112,7 +112,7 @@ describe('shell functions', function()
local argv = ffi.cast('char**',
cimported.shell_build_argv(to_cstr('echo &|<>()@^'), nil))
- eq(ffi.string(argv[0]), '/bin/bash')
+ eq(ffi.string(argv[0]), '/bin/sh')
eq(ffi.string(argv[1]), '-c')
eq(ffi.string(argv[2]), '(echo ^&^|^<^>^(^)^@^^)')
eq(nil, argv[3])
@@ -124,7 +124,7 @@ describe('shell functions', function()
local argv = ffi.cast('char**', cimported.shell_build_argv(
to_cstr('echo -n some text'), nil))
- eq(ffi.string(argv[0]), '/bin/bash')
+ eq(ffi.string(argv[0]), '/bin/sh')
eq(ffi.string(argv[1]), '-c')
eq(ffi.string(argv[2]), '"(echo -n some text)"')
eq(nil, argv[3])
@@ -136,7 +136,7 @@ describe('shell functions', function()
local argv = ffi.cast('char**', cimported.shell_build_argv(
to_cstr('echo -n some text'), nil))
- eq(ffi.string(argv[0]), '/bin/bash')
+ eq(ffi.string(argv[0]), '/bin/sh')
eq(ffi.string(argv[1]), '-c')
eq(ffi.string(argv[2]), '"echo -n some text"')
eq(nil, argv[3])
@@ -145,7 +145,7 @@ describe('shell functions', function()
itp('with empty shellxquote/shellxescape', function()
local argv = ffi.cast('char**', cimported.shell_build_argv(
to_cstr('echo -n some text'), nil))
- eq(ffi.string(argv[0]), '/bin/bash')
+ eq(ffi.string(argv[0]), '/bin/sh')
eq(ffi.string(argv[1]), '-c')
eq(ffi.string(argv[2]), 'echo -n some text')
eq(nil, argv[3])
diff --git a/test/unit/path_spec.lua b/test/unit/path_spec.lua
index 470f971e68..a9cba7df84 100644
--- a/test/unit/path_spec.lua
+++ b/test/unit/path_spec.lua
@@ -13,12 +13,12 @@ local OK = helpers.OK
local FAIL = helpers.FAIL
cimport('string.h')
-local path = cimport('./src/nvim/path.h')
+local cimp = cimport('./src/nvim/os/os.h', './src/nvim/path.h')
local length = 0
local buffer = nil
-describe('path function', function()
+describe('path.c', function()
describe('path_full_dir_name', function()
setup(function()
lfs.mkdir('unit-test-directory')
@@ -30,7 +30,7 @@ describe('path function', function()
local function path_full_dir_name(directory, buf, len)
directory = to_cstr(directory)
- return path.path_full_dir_name(directory, buf, len)
+ return cimp.path_full_dir_name(directory, buf, len)
end
before_each(function()
@@ -69,7 +69,7 @@ describe('path function', function()
local function path_full_compare(s1, s2, cn)
s1 = to_cstr(s1)
s2 = to_cstr(s2)
- return path.path_full_compare(s1, s2, cn or 0)
+ return cimp.path_full_compare(s1, s2, cn or 0)
end
local f1 = 'f1.o'
@@ -86,31 +86,31 @@ describe('path function', function()
end)
itp('returns kEqualFiles when passed the same file', function()
- eq(path.kEqualFiles, (path_full_compare(f1, f1)))
+ eq(cimp.kEqualFiles, (path_full_compare(f1, f1)))
end)
itp('returns kEqualFileNames when files that dont exist and have same name', function()
- eq(path.kEqualFileNames, (path_full_compare('null.txt', 'null.txt', true)))
+ eq(cimp.kEqualFileNames, (path_full_compare('null.txt', 'null.txt', true)))
end)
itp('returns kBothFilesMissing when files that dont exist', function()
- eq(path.kBothFilesMissing, (path_full_compare('null.txt', 'null.txt')))
+ eq(cimp.kBothFilesMissing, (path_full_compare('null.txt', 'null.txt')))
end)
itp('returns kDifferentFiles when passed different files', function()
- eq(path.kDifferentFiles, (path_full_compare(f1, f2)))
- eq(path.kDifferentFiles, (path_full_compare(f2, f1)))
+ eq(cimp.kDifferentFiles, (path_full_compare(f1, f2)))
+ eq(cimp.kDifferentFiles, (path_full_compare(f2, f1)))
end)
itp('returns kOneFileMissing if only one does not exist', function()
- eq(path.kOneFileMissing, (path_full_compare(f1, 'null.txt')))
- eq(path.kOneFileMissing, (path_full_compare('null.txt', f1)))
+ eq(cimp.kOneFileMissing, (path_full_compare(f1, 'null.txt')))
+ eq(cimp.kOneFileMissing, (path_full_compare('null.txt', f1)))
end)
end)
describe('path_tail', function()
local function path_tail(file)
- local res = path.path_tail((to_cstr(file)))
+ local res = cimp.path_tail((to_cstr(file)))
neq(NULL, res)
return ffi.string(res)
end
@@ -126,7 +126,7 @@ describe('path function', function()
describe('path_tail_with_sep', function()
local function path_tail_with_sep(file)
- local res = path.path_tail_with_sep((to_cstr(file)))
+ local res = cimp.path_tail_with_sep((to_cstr(file)))
neq(NULL, res)
return ffi.string(res)
end
@@ -159,11 +159,11 @@ describe('path function', function()
-- strcmp.
local function invocation_path_tail(invk)
local plen = ffi.new('size_t[?]', 1)
- local ptail = path.invocation_path_tail((to_cstr(invk)), plen)
+ local ptail = cimp.invocation_path_tail((to_cstr(invk)), plen)
neq(NULL, ptail)
-- it does not change the output if len==NULL
- local tail2 = path.invocation_path_tail((to_cstr(invk)), NULL)
+ local tail2 = cimp.invocation_path_tail((to_cstr(invk)), NULL)
neq(NULL, tail2)
eq((ffi.string(ptail)), (ffi.string(tail2)))
return ptail, plen[0]
@@ -204,7 +204,7 @@ describe('path function', function()
end)
itp('is equivalent to path_tail when args do not contain a path separator', function()
- local ptail = path.path_tail(to_cstr("a/b/c x y z"))
+ local ptail = cimp.path_tail(to_cstr("a/b/c x y z"))
neq(NULL, ptail)
local tail = ffi.string(ptail)
local invk, _ = invocation_path_tail("a/b/c x y z")
@@ -212,7 +212,7 @@ describe('path function', function()
end)
itp('is not equivalent to path_tail when args contain a path separator', function()
- local ptail = path.path_tail(to_cstr("a/b/c x y/z"))
+ local ptail = cimp.path_tail(to_cstr("a/b/c x y/z"))
neq(NULL, ptail)
local invk, _ = invocation_path_tail("a/b/c x y/z")
neq((ffi.string(ptail)), (ffi.string(invk)))
@@ -221,7 +221,7 @@ describe('path function', function()
describe('path_next_component', function()
local function path_next_component(file)
- local res = path.path_next_component((to_cstr(file)))
+ local res = cimp.path_next_component((to_cstr(file)))
neq(NULL, res)
return ffi.string(res)
end
@@ -238,25 +238,25 @@ describe('path function', function()
describe('path_shorten_fname', function()
itp('returns NULL if `full_path` is NULL', function()
local dir = to_cstr('some/directory/file.txt')
- eq(NULL, (path.path_shorten_fname(NULL, dir)))
+ eq(NULL, (cimp.path_shorten_fname(NULL, dir)))
end)
itp('returns NULL if the path and dir does not match', function()
local dir = to_cstr('not/the/same')
local full = to_cstr('as/this.txt')
- eq(NULL, (path.path_shorten_fname(full, dir)))
+ eq(NULL, (cimp.path_shorten_fname(full, dir)))
end)
itp('returns NULL if the path is not separated properly', function()
local dir = to_cstr('some/very/long/')
local full = to_cstr('some/very/long/directory/file.txt')
- eq(NULL, (path.path_shorten_fname(full, dir)))
+ eq(NULL, (cimp.path_shorten_fname(full, dir)))
end)
itp('shortens the filename if `dir_name` is the start of `full_path`', function()
local full = to_cstr('some/very/long/directory/file.txt')
local dir = to_cstr('some/very/long')
- eq('directory/file.txt', (ffi.string(path.path_shorten_fname(full, dir))))
+ eq('directory/file.txt', (ffi.string(cimp.path_shorten_fname(full, dir))))
end)
end)
end)
@@ -277,23 +277,76 @@ describe('path_shorten_fname_if_possible', function()
itp('returns shortened path if possible', function()
lfs.chdir('ut_directory')
local full = to_cstr(lfs.currentdir() .. '/subdir/file.txt')
- eq('subdir/file.txt', (ffi.string(path.path_shorten_fname_if_possible(full))))
+ eq('subdir/file.txt', (ffi.string(cimp.path_shorten_fname_if_possible(full))))
end)
itp('returns `full_path` if a shorter version is not possible', function()
local old = lfs.currentdir()
lfs.chdir('ut_directory')
local full = old .. '/subdir/file.txt'
- eq(full, (ffi.string(path.path_shorten_fname_if_possible(to_cstr(full)))))
+ eq(full, (ffi.string(cimp.path_shorten_fname_if_possible(to_cstr(full)))))
end)
itp('returns NULL if `full_path` is NULL', function()
- eq(NULL, (path.path_shorten_fname_if_possible(NULL)))
+ eq(NULL, (cimp.path_shorten_fname_if_possible(NULL)))
end)
end)
end)
-describe('more path function', function()
+describe('path.c path_guess_exepath', function()
+ local cwd = lfs.currentdir()
+
+ for _,name in ipairs({'./nvim', '.nvim', 'foo/nvim'}) do
+ itp('"'..name..'" returns name catenated with CWD', function()
+ local bufsize = 255
+ local buf = cstr(bufsize, '')
+ cimp.path_guess_exepath(name, buf, bufsize)
+ eq(cwd..'/'..name, ffi.string(buf))
+ end)
+ end
+
+ itp('absolute path returns the name unmodified', function()
+ local name = '/foo/bar/baz'
+ local bufsize = 255
+ local buf = cstr(bufsize, '')
+ cimp.path_guess_exepath(name, buf, bufsize)
+ eq(name, ffi.string(buf))
+ end)
+
+ itp('returns the name unmodified if not found in $PATH', function()
+ local name = '23u0293_not_in_path'
+ local bufsize = 255
+ local buf = cstr(bufsize, '')
+ cimp.path_guess_exepath(name, buf, bufsize)
+ eq(name, ffi.string(buf))
+ end)
+
+ itp('does not crash if $PATH item exceeds MAXPATHL', function()
+ local orig_path_env = os.getenv('PATH')
+ local name = 'cat' -- Some executable in $PATH.
+ local bufsize = 255
+ local buf = cstr(bufsize, '')
+ local insane_path = orig_path_env..':'..(("x/"):rep(4097))
+
+ cimp.os_setenv('PATH', insane_path, true)
+ cimp.path_guess_exepath(name, buf, bufsize)
+ eq('bin/' .. name, ffi.string(buf):sub(-#('bin/' .. name), -1))
+
+ -- Restore $PATH.
+ cimp.os_setenv('PATH', orig_path_env, true)
+ end)
+
+ itp('returns full path found in $PATH', function()
+ local name = 'cat' -- Some executable in $PATH.
+ local bufsize = 255
+ local buf = cstr(bufsize, '')
+ cimp.path_guess_exepath(name, buf, bufsize)
+ -- Usually "/bin/cat" on unix, "/path/to/nvim/cat" on Windows.
+ eq('bin/' .. name, ffi.string(buf):sub(-#('bin/' .. name), -1))
+ end)
+end)
+
+describe('path.c', function()
setup(function()
lfs.mkdir('unit-test-directory');
io.open('unit-test-directory/test.file', 'w').close()
@@ -315,7 +368,7 @@ describe('more path function', function()
describe('vim_FullName', function()
local function vim_FullName(filename, buf, len, force)
filename = to_cstr(filename)
- return path.vim_FullName(filename, buf, len, force)
+ return cimp.vim_FullName(filename, buf, len, force)
end
before_each(function()
@@ -326,7 +379,7 @@ describe('more path function', function()
itp('fails if given filename is NULL', function()
local force_expansion = 1
- local result = path.vim_FullName(NULL, buffer, length, force_expansion)
+ local result = cimp.vim_FullName(NULL, buffer, length, force_expansion)
eq(FAIL, result)
end)
@@ -335,7 +388,7 @@ describe('more path function', function()
local filename = 'foo/bar/bazzzzzzz/buz/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/a'
local too_short_len = 8
local buf = cstr(too_short_len, '')
- local result = path.vim_FullName(filename, buf, too_short_len, force_expansion)
+ local result = cimp.vim_FullName(filename, buf, too_short_len, force_expansion)
local expected = string.sub(filename, 1, (too_short_len - 1))
eq(expected, (ffi.string(buf)))
eq(FAIL, result)
@@ -357,7 +410,7 @@ describe('more path function', function()
eq(FAIL, result)
end)
- itp('concatenates given filename if it does not contain a slash', function()
+ itp('concatenates filename if it does not contain a slash', function()
local force_expansion = 1
local result = vim_FullName('test.file', buffer, length, force_expansion)
local expected = lfs.currentdir() .. '/test.file'
@@ -365,7 +418,7 @@ describe('more path function', function()
eq(OK, result)
end)
- itp('concatenates given filename if it is a directory but does not contain a\n slash', function()
+ itp('concatenates directory name if it does not contain a slash', function()
local force_expansion = 1
local result = vim_FullName('..', buffer, length, force_expansion)
local expected = lfs.currentdir() .. '/..'
@@ -395,6 +448,7 @@ describe('more path function', function()
end)
itp('fails and uses filename when the path is relative to HOME', function()
+ eq(false, cimp.os_isdir('~')) -- sanity check: no literal "~" directory.
local force_expansion = 1
local absolute_path = '~/home.file'
local result = vim_FullName(absolute_path, buffer, length, force_expansion)
@@ -414,7 +468,7 @@ describe('more path function', function()
local filename = to_cstr('unit-test-directory/test.file')
-- Don't use the wrapper here but pass a cstring directly to the c
-- function.
- local result = path.vim_FullName(filename, buffer, length, force_expansion)
+ local result = cimp.vim_FullName(filename, buffer, length, force_expansion)
eq(lfs.currentdir() .. '/unit-test-directory/test.file', (ffi.string(buffer)))
eq('unit-test-directory/test.file', (ffi.string(filename)))
eq(OK, result)
@@ -423,7 +477,7 @@ describe('more path function', function()
itp('works with directories that have one path component', function()
local force_expansion = 1
local filename = to_cstr('/tmp')
- local result = path.vim_FullName(filename, buffer, length, force_expansion)
+ local result = cimp.vim_FullName(filename, buffer, length, force_expansion)
eq('/tmp', ffi.string(buffer))
eq(OK, result)
end)
@@ -432,7 +486,7 @@ describe('more path function', function()
describe('path_fix_case', function()
local function fix_case(file)
local c_file = to_cstr(file)
- path.path_fix_case(c_file)
+ cimp.path_fix_case(c_file)
return ffi.string(c_file)
end
@@ -456,41 +510,41 @@ describe('more path function', function()
itp('joins given paths with a slash', function()
local path1 = cstr(100, 'path1')
local to_append = to_cstr('path2')
- eq(OK, (path.append_path(path1, to_append, 100)))
+ eq(OK, (cimp.append_path(path1, to_append, 100)))
eq("path1/path2", (ffi.string(path1)))
end)
itp('joins given paths without adding an unnecessary slash', function()
local path1 = cstr(100, 'path1/')
local to_append = to_cstr('path2')
- eq(OK, path.append_path(path1, to_append, 100))
+ eq(OK, cimp.append_path(path1, to_append, 100))
eq("path1/path2", (ffi.string(path1)))
end)
itp('fails and uses filename if there is not enough space left for to_append', function()
local path1 = cstr(11, 'path1/')
local to_append = to_cstr('path2')
- eq(FAIL, (path.append_path(path1, to_append, 11)))
+ eq(FAIL, (cimp.append_path(path1, to_append, 11)))
end)
itp('does not append a slash if to_append is empty', function()
local path1 = cstr(6, 'path1')
local to_append = to_cstr('')
- eq(OK, (path.append_path(path1, to_append, 6)))
+ eq(OK, (cimp.append_path(path1, to_append, 6)))
eq('path1', (ffi.string(path1)))
end)
itp('does not append unnecessary dots', function()
local path1 = cstr(6, 'path1')
local to_append = to_cstr('.')
- eq(OK, (path.append_path(path1, to_append, 6)))
+ eq(OK, (cimp.append_path(path1, to_append, 6)))
eq('path1', (ffi.string(path1)))
end)
itp('copies to_append to path, if path is empty', function()
local path1 = cstr(7, '')
local to_append = to_cstr('/path2')
- eq(OK, (path.append_path(path1, to_append, 7)))
+ eq(OK, (cimp.append_path(path1, to_append, 7)))
eq('/path2', (ffi.string(path1)))
end)
end)
@@ -498,7 +552,7 @@ describe('more path function', function()
describe('path_is_absolute_path', function()
local function path_is_absolute_path(filename)
filename = to_cstr(filename)
- return path.path_is_absolute_path(filename)
+ return cimp.path_is_absolute_path(filename)
end
itp('returns true if filename starts with a slash', function()
diff --git a/test/unit/strings_spec.lua b/test/unit/strings_spec.lua
index 3bc3dc7130..e54c82b26a 100644
--- a/test/unit/strings_spec.lua
+++ b/test/unit/strings_spec.lua
@@ -99,3 +99,42 @@ describe('vim_strnsave_unquoted()', function()
eq('/Program\\nFiles/sh', vim_strnsave_unquoted('/Program"\\n"Files/sh'))
end)
end)
+
+describe('vim_strchr()', function()
+ local vim_strchr = function(s, c)
+ local str = to_cstr(s)
+ local res = strings.vim_strchr(str, c)
+ if res == nil then
+ return nil
+ else
+ return res - str
+ end
+ end
+ itp('handles NUL and <0 correctly', function()
+ eq(nil, vim_strchr('abc', 0))
+ eq(nil, vim_strchr('abc', -1))
+ end)
+ itp('works', function()
+ eq(0, vim_strchr('abc', ('a'):byte()))
+ eq(1, vim_strchr('abc', ('b'):byte()))
+ eq(2, vim_strchr('abc', ('c'):byte()))
+ eq(0, vim_strchr('a«b»c', ('a'):byte()))
+ eq(3, vim_strchr('a«b»c', ('b'):byte()))
+ eq(6, vim_strchr('a«b»c', ('c'):byte()))
+
+ eq(nil, vim_strchr('«»', ('«'):byte()))
+ -- 0xAB == 171 == '«'
+ eq(nil, vim_strchr('\171', 0xAB))
+ eq(0, vim_strchr('«»', 0xAB))
+ eq(3, vim_strchr('„«»“', 0xAB))
+
+ eq(7, vim_strchr('„«»“', 0x201C))
+ eq(nil, vim_strchr('„«»“', 0x201D))
+ eq(0, vim_strchr('„«»“', 0x201E))
+
+ eq(0, vim_strchr('\244\143\188\128', 0x10FF00))
+ eq(2, vim_strchr('«\244\143\188\128»', 0x10FF00))
+ -- |0xDBFF |0xDF00 - surrogate pair for 0x10FF00
+ eq(nil, vim_strchr('«\237\175\191\237\188\128»', 0x10FF00))
+ end)
+end)
diff --git a/third-party/CMakeLists.txt b/third-party/CMakeLists.txt
index ea1039f459..bd4567cff7 100644
--- a/third-party/CMakeLists.txt
+++ b/third-party/CMakeLists.txt
@@ -87,45 +87,51 @@ endif()
include(ExternalProject)
-set(LIBUV_URL https://github.com/libuv/libuv/archive/v1.9.1.tar.gz)
-set(LIBUV_SHA256 a6ca9f0648973d1463f46b495ce546ddcbe7cce2f04b32e802a15539e46c57ad)
+set(LIBUV_URL https://github.com/libuv/libuv/archive/v1.12.0.tar.gz)
+set(LIBUV_SHA256 41ce914a88da21d3b07a76023beca57576ca5b376c6ac440c80bc581cbca1250)
-set(MSGPACK_URL https://github.com/msgpack/msgpack-c/archive/cpp-2.1.1.tar.gz)
-set(MSGPACK_SHA256 d6bef12d959816a39c7a6972f3f16c0724e4c7ff0927eb59a35247dc8267b609)
+set(MSGPACK_URL https://github.com/msgpack/msgpack-c/archive/cpp-2.1.3.tar.gz)
+set(MSGPACK_SHA256 42ff5c213fd24bd4388c45c1f21d84b476678ce6366ea4d4f4086618a1d2cd23)
-set(LUAJIT_URL https://github.com/neovim/deps/raw/master/opt/LuaJIT-2.0.4.tar.gz)
-set(LUAJIT_SHA256 620fa4eb12375021bef6e4f237cbd2dd5d49e56beb414bee052c746beef1807d)
+set(LUAJIT_URL https://github.com/LuaJIT/LuaJIT/archive/82151a4514e6538086f3f5e01cb8d4b22287b14f.tar.gz)
+set(LUAJIT_SHA256 8bc4e96ebab74e12ab84e751360e864714289bb089b51b6f396fa9a97df69798)
set(LUA_URL https://www.lua.org/ftp/lua-5.1.5.tar.gz)
set(LUA_SHA256 2640fc56a795f29d28ef15e13c34a47e223960b0240e8cb0a82d9b0738695333)
-set(LUAROCKS_URL https://github.com/keplerproject/luarocks/archive/5d8a16526573b36d5b22aa74866120c998466697.tar.gz)
-set(LUAROCKS_SHA256 cae709111c5701235770047dfd7169f66b82ae1c7b9b79207f9df0afb722bfd9)
+# NOTE: Version must match LUAROCKS_VERSION in third-party/cmake/BuildLuarocks.cmake
+set(LUAROCKS_URL https://github.com/luarocks/luarocks/archive/v2.4.2.tar.gz)
+set(LUAROCKS_SHA256 eef88c2429c715a7beb921e4b1ba571dddb7c74a250fbb0d3cc0d4be7a5865d9)
set(UNIBILIUM_URL https://github.com/mauke/unibilium/archive/v1.2.0.tar.gz)
set(UNIBILIUM_SHA256 623af1099515e673abfd3cae5f2fa808a09ca55dda1c65a7b5c9424eb304ead8)
+if(WIN32)
+set(LIBTERMKEY_URL https://github.com/equalsraf/libtermkey/archive/tb-windows.zip)
+set(LIBTERMKEY_SHA256 c81e33e38662b151a49847ff4feef4f8c4b2a66f3e159a28b575cbc9bcd8ffea)
+else()
set(LIBTERMKEY_URL http://www.leonerd.org.uk/code/libtermkey/libtermkey-0.19.tar.gz)
set(LIBTERMKEY_SHA256 c505aa4cb48c8fa59c526265576b97a19e6ebe7b7da20f4ecaae898b727b48b7)
+endif()
set(LIBVTERM_URL https://github.com/neovim/libvterm/archive/a9c7c6fd20fa35e0ad3e0e98901ca12dfca9c25c.tar.gz)
set(LIBVTERM_SHA256 1a4272be91d9614dc183a503786df83b6584e4afaab7feaaa5409f841afbd796)
-set(JEMALLOC_URL https://github.com/jemalloc/jemalloc/releases/download/4.3.1/jemalloc-4.3.1.tar.bz2)
-set(JEMALLOC_SHA256 f7bb183ad8056941791e0f075b802e8ff10bd6e2d904e682f87c8f6a510c278b)
+set(JEMALLOC_URL https://github.com/jemalloc/jemalloc/releases/download/4.5.0/jemalloc-4.5.0.tar.bz2)
+set(JEMALLOC_SHA256 9409d85664b4f135b77518b0b118c549009dc10f6cba14557d170476611f6780)
-set(LUV_URL https://github.com/luvit/luv/archive/1.9.1-0.tar.gz)
-set(LUV_SHA256 86a199403856018cd8e5529c8527450c83664a3d36f52d5253cbe909ea6c5a06)
+set(LUV_URL https://github.com/luvit/luv/archive/1.9.1-1.tar.gz)
+set(LUV_SHA256 562b9efaad30aa051a40eac9ade0c3df48bb8186763769abe47ec3fb3edb1268)
-set(GPERF_URL http://ftp.gnu.org/pub/gnu/gperf/gperf-3.0.4.tar.gz)
-set(GPERF_SHA256 767112a204407e62dbc3106647cf839ed544f3cf5d0f0523aaa2508623aad63e)
+set(GPERF_URL https://ftp.gnu.org/pub/gnu/gperf/gperf-3.1.tar.gz)
+set(GPERF_SHA256 588546b945bba4b70b6a3a616e80b4ab466e3f33024a352fc2198112cdbb3ae2)
# 7za.exe cat.exe curl.exe ca-bundle.crt diff.exe tee.exe tidy.exe xxd.exe
set(WINTOOLS_URL https://github.com/neovim/deps/raw/2f9acbecf06365c10baa3c0087f34a54c9c6f949/opt/win32tools.zip)
set(WINTOOLS_SHA256 8bfce7e3a365721a027ce842f2ec1cf878f1726233c215c05964aac07300798c)
-set(WINGUI_URL https://github.com/equalsraf/neovim-qt/releases/download/v0.2.6/neovim-qt.zip)
-set(WINGUI_SHA256 90217351e9e51c81ef5bba39066f00d05e15ef1f881882c3c682e61cd446c211)
+set(WINGUI_URL https://github.com/equalsraf/neovim-qt/releases/download/v0.2.7/neovim-qt.zip)
+set(WINGUI_SHA256 b548f6e4045f16a10163b0e433f05b115b2f877cb47c4eacbf80eaad1a8429ab)
set(WIN32YANK_URL https://github.com/equalsraf/win32yank/releases/download/v0.0.3/win32yank.zip)
set(WIN32YANK_SHA256 b474439ed2854a9a24941d66970c7fcfece219401eaaa5ebc0ffcc962e69887a)
diff --git a/third-party/cmake/BuildLibtermkey.cmake b/third-party/cmake/BuildLibtermkey.cmake
index 57e14d36d3..4b581c2a01 100644
--- a/third-party/cmake/BuildLibtermkey.cmake
+++ b/third-party/cmake/BuildLibtermkey.cmake
@@ -1,21 +1,41 @@
-if(WIN32)
- message(STATUS "Building libtermkey in Windows is not supported (skipping)")
- return()
-endif()
find_package(PkgConfig REQUIRED)
+if(WIN32)
+ExternalProject_Add(libtermkey
+ PREFIX ${DEPS_BUILD_DIR}
+ URL ${LIBTERMKEY_URL}
+ DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libtermkey
+ DOWNLOAD_COMMAND ${CMAKE_COMMAND}
+ -DPREFIX=${DEPS_BUILD_DIR}
+ -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/libtermkey
+ -DURL=${LIBTERMKEY_URL}
+ -DEXPECTED_SHA256=${LIBTERMKEY_SHA256}
+ -DTARGET=libtermkey
+ -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
+ -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
+ CONFIGURE_COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/libtermkey
+ -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
+ # Pass toolchain
+ -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN}
+ -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+ # Hack to avoid -rdynamic in Mingw
+ -DCMAKE_SHARED_LIBRARY_LINK_C_FLAGS=""
+ -DCMAKE_GENERATOR=${CMAKE_GENERATOR}
+ BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE}
+ INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE})
+else()
ExternalProject_Add(libtermkey
PREFIX ${DEPS_BUILD_DIR}
URL ${LIBTERMKEY_URL}
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libtermkey
DOWNLOAD_COMMAND ${CMAKE_COMMAND}
- -DPREFIX=${DEPS_BUILD_DIR}
- -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/libtermkey
- -DURL=${LIBTERMKEY_URL}
- -DEXPECTED_SHA256=${LIBTERMKEY_SHA256}
- -DTARGET=libtermkey
- -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
- -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
+ -DPREFIX=${DEPS_BUILD_DIR}
+ -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/libtermkey
+ -DURL=${LIBTERMKEY_URL}
+ -DEXPECTED_SHA256=${LIBTERMKEY_SHA256}
+ -DTARGET=libtermkey
+ -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
+ -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
CONFIGURE_COMMAND ""
BUILD_IN_SOURCE 1
BUILD_COMMAND ""
@@ -24,6 +44,10 @@ ExternalProject_Add(libtermkey
PKG_CONFIG_PATH=${DEPS_LIB_DIR}/pkgconfig
CFLAGS=-fPIC
install)
+endif()
list(APPEND THIRD_PARTY_DEPS libtermkey)
-add_dependencies(libtermkey unibilium)
+if(NOT WIN32)
+ # There is no unibilium build recipe for Windows yet
+ add_dependencies(libtermkey unibilium)
+endif()
diff --git a/third-party/cmake/BuildLua.cmake b/third-party/cmake/BuildLua.cmake
index 1c5e2a186c..ea1371d1d5 100644
--- a/third-party/cmake/BuildLua.cmake
+++ b/third-party/cmake/BuildLua.cmake
@@ -51,19 +51,32 @@ else()
endif()
endif()
+set(LUA_CFLAGS "-O0 -g3 -fPIC")
+set(LUA_LDFLAGS "")
+
+if(CLANG_ASAN_UBSAN)
+ set(LUA_CFLAGS "${LUA_CFLAGS} -fsanitize=address")
+ set(LUA_CFLAGS "${LUA_CFLAGS} -fno-omit-frame-pointer")
+ set(LUA_CFLAGS "${LUA_CFLAGS} -fno-optimize-sibling-calls")
+
+ set(LUA_LDFLAGS "${LUA_LDFLAGS} -fsanitize=address")
+endif()
+
set(LUA_CONFIGURE_COMMAND
sed -e "/^CC/s@gcc@${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1}@"
- -e "/^CFLAGS/s@-O2@-g3@"
+ -e "/^CFLAGS/s@-O2@${LUA_CFLAGS}@"
+ -e "/^MYLDFLAGS/s@$@${LUA_LDFLAGS}@"
-e "s@-lreadline@@g"
-e "s@-lhistory@@g"
-e "s@-lncurses@@g"
-i ${DEPS_BUILD_DIR}/src/lua/src/Makefile &&
sed -e "/#define LUA_USE_READLINE/d"
-i ${DEPS_BUILD_DIR}/src/lua/src/luaconf.h)
+set(LUA_INSTALL_TOP_ARG "INSTALL_TOP=${DEPS_INSTALL_DIR}")
set(LUA_BUILD_COMMAND
- ${MAKE_PRG} ${LUA_TARGET})
+ ${MAKE_PRG} ${LUA_INSTALL_TOP_ARG} ${LUA_TARGET})
set(LUA_INSTALL_COMMAND
- ${MAKE_PRG} INSTALL_TOP=${DEPS_INSTALL_DIR} install)
+ ${MAKE_PRG} ${LUA_INSTALL_TOP_ARG} install)
message(STATUS "Lua target is ${LUA_TARGET}")
diff --git a/third-party/cmake/BuildLuarocks.cmake b/third-party/cmake/BuildLuarocks.cmake
index 7312b6f91b..ef8a8450f1 100644
--- a/third-party/cmake/BuildLuarocks.cmake
+++ b/third-party/cmake/BuildLuarocks.cmake
@@ -41,6 +41,9 @@ endfunction()
# The luarocks binary location
set(LUAROCKS_BINARY ${HOSTDEPS_BIN_DIR}/luarocks)
+# NOTE: Version must match version of LuaRocks in third-party/CMakeLists.txt
+set(LUAROCKS_VERSION 2.4)
+
# Arguments for calls to 'luarocks build'
if(NOT MSVC)
# In MSVC don't pass the compiler/linker to luarocks, the bundled
@@ -73,13 +76,13 @@ elseif(MSVC OR MINGW)
/LIB ${DEPS_LIB_DIR}
/BIN ${DEPS_BIN_DIR}
/INC ${DEPS_INSTALL_DIR}/include/luajit-2.0/
- /P ${DEPS_INSTALL_DIR} /TREE ${DEPS_INSTALL_DIR}
+ /P ${DEPS_INSTALL_DIR}/${LUAROCKS_VERSION} /TREE ${DEPS_INSTALL_DIR}
/SCRIPTS ${DEPS_BIN_DIR}
/CMOD ${DEPS_BIN_DIR}
${MINGW_FLAG}
/LUAMOD ${DEPS_BIN_DIR}/lua)
- set(LUAROCKS_BINARY ${DEPS_INSTALL_DIR}/2.2/luarocks.bat)
+ set(LUAROCKS_BINARY ${DEPS_INSTALL_DIR}/${LUAROCKS_VERSION}/luarocks.bat)
else()
message(FATAL_ERROR "Trying to build luarocks in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}")
endif()
@@ -167,7 +170,7 @@ if(USE_BUNDLED_BUSTED)
add_custom_command(OUTPUT ${HOSTDEPS_LIB_DIR}/luarocks/rocks/nvim-client
COMMAND ${LUAROCKS_BINARY}
- ARGS build https://raw.githubusercontent.com/neovim/lua-client/0.0.1-25/nvim-client-0.0.1-25.rockspec ${LUAROCKS_BUILDARGS}
+ ARGS build https://raw.githubusercontent.com/neovim/lua-client/0.0.1-26/nvim-client-0.0.1-26.rockspec ${LUAROCKS_BUILDARGS}
DEPENDS luv)
add_custom_target(nvim-client
DEPENDS ${HOSTDEPS_LIB_DIR}/luarocks/rocks/nvim-client)