From 6af24b2457752c0d36aaf9f29f03d39afd09937f Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 13 Apr 2024 09:39:57 +0200 Subject: Merging upstream version 2:9.1.0199. Signed-off-by: Daniel Baumann --- .github/CODEOWNERS | 64 +- .github/workflows/ci.yml | 49 +- .gitignore | 5 + Filelist | 85 +- READMEdir/README_vimlogo.txt | 11 + ci/remove_snap.sh | 13 + nsis/README.txt | 18 +- nsis/gvim.nsi | 80 +- nsis/lang/greek.nsi | 276 ++ nsis/lang/russian.nsi | 102 +- nsis/lang/serbian.nsi | 2 +- runtime/autoload/dist/ft.vim | 6 +- runtime/autoload/dist/man.vim | 20 +- runtime/autoload/dist/vimindent.vim | 5 +- runtime/autoload/getscript.vim | 3 +- runtime/autoload/netrw.vim | 115 +- runtime/autoload/netrwFileHandlers.vim | 3 +- runtime/autoload/netrwSettings.vim | 3 +- runtime/autoload/tar.vim | 39 +- runtime/autoload/vimball.vim | 5 +- runtime/autoload/zip.vim | 3 +- runtime/colors/blue.vim | 18 +- runtime/colors/darkblue.vim | 10 +- runtime/colors/evening.vim | 14 +- runtime/colors/habamax.vim | 22 +- runtime/colors/lists/csscolors.vim | 12 +- runtime/colors/lists/default.vim | 43 +- runtime/colors/lunaperche.vim | 32 +- runtime/colors/murphy.vim | 4 +- runtime/colors/wildcharm.vim | 70 +- runtime/doc/Make_mvc.mak | 77 +- runtime/doc/Makefile | 55 +- runtime/doc/autocmd.txt | 36 +- runtime/doc/builtin.txt | 266 +- runtime/doc/diff.txt | 46 +- runtime/doc/editing.txt | 7 +- runtime/doc/eval.txt | 88 +- runtime/doc/filetype.txt | 18 +- runtime/doc/ft_ada.txt | 2 +- runtime/doc/ft_sql.txt | 2 +- runtime/doc/gui_w32.txt | 36 +- runtime/doc/gui_x11.txt | 14 +- runtime/doc/if_ole.txt | 6 +- runtime/doc/indent.txt | 8 +- runtime/doc/index.txt | 2 + runtime/doc/intro.txt | 4 +- runtime/doc/maketags.awk | 7 + runtime/doc/map.txt | 26 +- runtime/doc/message.txt | 9 +- runtime/doc/options.txt | 60 +- runtime/doc/os_vms.txt | 2 +- runtime/doc/pi_netrw.txt | 43 +- runtime/doc/quickfix.txt | 14 +- runtime/doc/quickref.txt | 3 +- runtime/doc/starting.txt | 138 +- runtime/doc/syntax.txt | 51 +- runtime/doc/tags | 46 +- runtime/doc/tagsrch.txt | 35 +- runtime/doc/term.txt | 5 +- runtime/doc/terminal.txt | 29 +- runtime/doc/testing.txt | 13 +- runtime/doc/todo.txt | 12 +- runtime/doc/usr_41.txt | 8 +- runtime/doc/version9.txt | 86 +- runtime/doc/vim9.txt | 28 +- runtime/doc/vim9class.txt | 35 +- runtime/doc/windows.txt | 32 +- runtime/filetype.vim | 24 +- runtime/ftplugin/aap.vim | 9 +- runtime/ftplugin/abap.vim | 15 +- runtime/ftplugin/abaqus.vim | 9 +- runtime/ftplugin/ant.vim | 15 +- runtime/ftplugin/asciidoc.vim | 67 + runtime/ftplugin/aspvbs.vim | 15 +- runtime/ftplugin/awk.vim | 14 +- runtime/ftplugin/basic.vim | 10 +- runtime/ftplugin/c.vim | 32 +- runtime/ftplugin/clojure.vim | 9 +- runtime/ftplugin/cobol.vim | 9 +- runtime/ftplugin/config.vim | 15 +- runtime/ftplugin/cs.vim | 11 +- runtime/ftplugin/csh.vim | 10 +- runtime/ftplugin/deb822sources.vim | 16 + runtime/ftplugin/diff.vim | 9 +- runtime/ftplugin/dosbatch.vim | 12 +- runtime/ftplugin/dtd.vim | 15 +- runtime/ftplugin/eiffel.vim | 10 +- runtime/ftplugin/eruby.vim | 11 +- runtime/ftplugin/expect.vim | 10 +- runtime/ftplugin/falcon.vim | 13 +- runtime/ftplugin/forth.vim | 9 +- runtime/ftplugin/fortran.vim | 10 +- runtime/ftplugin/fpcmake.vim | 12 +- runtime/ftplugin/freebasic.vim | 10 +- runtime/ftplugin/haml.vim | 15 +- runtime/ftplugin/html.vim | 12 +- runtime/ftplugin/hurl.vim | 11 + runtime/ftplugin/icon.vim | 16 +- runtime/ftplugin/ishd.vim | 10 +- runtime/ftplugin/j.vim | 7 +- runtime/ftplugin/java.vim | 15 +- runtime/ftplugin/javascript.vim | 8 +- runtime/ftplugin/json5.vim | 10 +- runtime/ftplugin/jsp.vim | 15 +- runtime/ftplugin/kotlin.vim | 10 +- runtime/ftplugin/kwt.vim | 15 +- runtime/ftplugin/lua.vim | 10 +- runtime/ftplugin/lynx.vim | 10 +- runtime/ftplugin/m3build.vim | 10 +- runtime/ftplugin/m3quake.vim | 10 +- runtime/ftplugin/meson.vim | 9 +- runtime/ftplugin/mf.vim | 7 +- runtime/ftplugin/modula2.vim | 10 +- runtime/ftplugin/modula3.vim | 10 +- runtime/ftplugin/mp.vim | 7 +- runtime/ftplugin/msmessages.vim | 13 +- runtime/ftplugin/occam.vim | 17 +- runtime/ftplugin/octave.vim | 10 +- runtime/ftplugin/odin.vim | 20 + runtime/ftplugin/pascal.vim | 10 +- runtime/ftplugin/perl.vim | 9 +- runtime/ftplugin/php.vim | 10 +- runtime/ftplugin/pod.vim | 10 +- runtime/ftplugin/poke.vim | 16 +- runtime/ftplugin/postscr.vim | 15 +- runtime/ftplugin/ps1.vim | 13 +- runtime/ftplugin/ps1xml.vim | 13 +- runtime/ftplugin/pyrex.vim | 13 +- runtime/ftplugin/python.vim | 9 +- runtime/ftplugin/qml.vim | 12 +- runtime/ftplugin/r.vim | 17 +- runtime/ftplugin/racket.vim | 9 +- runtime/ftplugin/readline.vim | 10 +- runtime/ftplugin/registry.vim | 15 +- runtime/ftplugin/rhelp.vim | 17 +- runtime/ftplugin/rmd.vim | 17 +- runtime/ftplugin/rnoweb.vim | 17 +- runtime/ftplugin/routeros.vim | 9 +- runtime/ftplugin/rrst.vim | 17 +- runtime/ftplugin/ruby.vim | 9 +- runtime/ftplugin/rust.vim | 31 +- runtime/ftplugin/sed.vim | 10 +- runtime/ftplugin/sgml.vim | 15 +- runtime/ftplugin/sh.vim | 16 +- runtime/ftplugin/solution.vim | 10 +- runtime/ftplugin/sql.vim | 13 +- runtime/ftplugin/svg.vim | 15 +- runtime/ftplugin/tcl.vim | 13 +- runtime/ftplugin/tcsh.vim | 10 +- runtime/ftplugin/tidy.vim | 16 +- runtime/ftplugin/typescript.vim | 15 +- runtime/ftplugin/vb.vim | 10 +- runtime/ftplugin/verilog.vim | 13 +- runtime/ftplugin/vhdl.vim | 14 +- runtime/ftplugin/vim.vim | 2 +- runtime/ftplugin/wget.vim | 10 +- runtime/ftplugin/wget2.vim | 10 +- runtime/ftplugin/xhtml.vim | 15 +- runtime/ftplugin/xml.vim | 9 +- runtime/ftplugin/xsd.vim | 15 +- runtime/ftplugin/xslt.vim | 2 +- runtime/indent/Make_mvc.mak | 21 + runtime/indent/Makefile | 3 + runtime/indent/odin.vim | 119 + runtime/indent/qml.vim | 6 +- runtime/indent/r.vim | 8 +- runtime/indent/racket.vim | 4 +- runtime/indent/rhelp.vim | 8 +- runtime/indent/rmd.vim | 8 +- runtime/indent/rnoweb.vim | 8 +- runtime/indent/rrst.vim | 8 +- runtime/indent/testdir/runtest.vim | 38 +- runtime/indent/testdir/vim.in | 5 + runtime/indent/testdir/vim.ok | 5 + runtime/indent/yaml.vim | 7 +- runtime/lang/Make_mvc.mak | 227 +- runtime/lang/Makefile | 8 +- runtime/lang/menu_cs_cz.iso_8859-2.vim | 2 +- runtime/macros/less.vim | 232 +- runtime/mswin.vim | 24 +- runtime/optwin.vim | 3 + runtime/pack/dist/opt/justify/plugin/justify.vim | 2 +- runtime/plugin/getscriptPlugin.vim | 3 +- runtime/plugin/logiPat.vim | 3 +- runtime/plugin/matchparen.vim | 3 +- runtime/plugin/netrwPlugin.vim | 3 +- runtime/plugin/tarPlugin.vim | 2 +- runtime/plugin/vimballPlugin.vim | 3 +- runtime/plugin/zipPlugin.vim | 3 +- runtime/syntax/Makefile | 9 +- runtime/syntax/amiga.vim | 5 +- runtime/syntax/ant.vim | 94 +- runtime/syntax/c.vim | 12 +- runtime/syntax/chuck.vim | 187 ++ runtime/syntax/csh.vim | 5 +- runtime/syntax/css.vim | 19 +- runtime/syntax/dcl.vim | 5 +- runtime/syntax/deb822sources.vim | 24 +- runtime/syntax/debsources.vim | 9 +- runtime/syntax/dosbatch.vim | 31 +- runtime/syntax/elmfilt.vim | 5 +- runtime/syntax/exports.vim | 5 +- runtime/syntax/fortran.vim | 374 +-- runtime/syntax/generator/Makefile | 43 + runtime/syntax/generator/README.md | 26 + runtime/syntax/generator/gen_syntax_vim.vim | 704 +++++ runtime/syntax/generator/update_date.vim | 14 + runtime/syntax/generator/vim.vim.base | 1192 +++++++ runtime/syntax/go.vim | 29 +- runtime/syntax/gpg.vim | 21 +- runtime/syntax/i3config.vim | 8 +- runtime/syntax/java.vim | 137 +- runtime/syntax/lex.vim | 6 +- runtime/syntax/lisp.vim | 6 +- runtime/syntax/mail.vim | 19 +- runtime/syntax/maple.vim | 6 +- runtime/syntax/netrw.vim | 6 +- runtime/syntax/odin.vim | 103 + runtime/syntax/quarto.vim | 8 +- runtime/syntax/r.vim | 14 +- runtime/syntax/rhelp.vim | 10 +- runtime/syntax/rmd.vim | 8 +- runtime/syntax/rpcgen.vim | 6 +- runtime/syntax/sh.vim | 48 +- runtime/syntax/shared/debversions.vim | 6 +- runtime/syntax/sm.vim | 6 +- runtime/syntax/spec.vim | 2 +- runtime/syntax/swayconfig.vim | 12 +- runtime/syntax/tags.vim | 6 +- runtime/syntax/testdir/README.txt | 45 +- runtime/syntax/testdir/dumps/c_00.dump | 4 +- runtime/syntax/testdir/dumps/c_01.dump | 10 +- runtime/syntax/testdir/dumps/c_02.dump | 10 +- runtime/syntax/testdir/dumps/c_03.dump | 10 +- runtime/syntax/testdir/dumps/c_04.dump | 6 +- runtime/syntax/testdir/dumps/c_05.dump | 10 +- runtime/syntax/testdir/dumps/c_06.dump | 10 +- runtime/syntax/testdir/dumps/c_99.dump | 2 +- runtime/syntax/testdir/dumps/java_comments_00.dump | 20 + runtime/syntax/testdir/dumps/java_comments_01.dump | 20 + runtime/syntax/testdir/dumps/java_comments_99.dump | 20 + runtime/syntax/testdir/dumps/java_escapes_00.dump | 20 + runtime/syntax/testdir/dumps/java_escapes_01.dump | 20 + runtime/syntax/testdir/dumps/java_escapes_02.dump | 20 + runtime/syntax/testdir/dumps/java_escapes_03.dump | 20 + runtime/syntax/testdir/dumps/java_escapes_04.dump | 20 + runtime/syntax/testdir/dumps/java_escapes_05.dump | 20 + runtime/syntax/testdir/dumps/java_escapes_06.dump | 20 + runtime/syntax/testdir/dumps/java_escapes_99.dump | 20 + runtime/syntax/testdir/dumps/java_numbers_00.dump | 20 + runtime/syntax/testdir/dumps/java_numbers_01.dump | 20 + runtime/syntax/testdir/dumps/java_numbers_02.dump | 20 + runtime/syntax/testdir/dumps/java_numbers_03.dump | 20 + runtime/syntax/testdir/dumps/java_numbers_04.dump | 20 + runtime/syntax/testdir/dumps/java_numbers_99.dump | 20 + runtime/syntax/testdir/dumps/java_string_00.dump | 20 + runtime/syntax/testdir/dumps/java_string_01.dump | 20 + runtime/syntax/testdir/dumps/java_string_02.dump | 20 + runtime/syntax/testdir/dumps/java_string_03.dump | 20 + runtime/syntax/testdir/dumps/java_string_04.dump | 20 + runtime/syntax/testdir/dumps/java_string_05.dump | 20 + runtime/syntax/testdir/dumps/java_string_99.dump | 20 + runtime/syntax/testdir/dumps/java_switch_00.dump | 20 + runtime/syntax/testdir/dumps/java_switch_01.dump | 20 + runtime/syntax/testdir/dumps/java_switch_02.dump | 20 + runtime/syntax/testdir/dumps/java_switch_03.dump | 20 + runtime/syntax/testdir/dumps/java_switch_04.dump | 20 + runtime/syntax/testdir/dumps/java_switch_05.dump | 20 + runtime/syntax/testdir/dumps/java_switch_06.dump | 20 + runtime/syntax/testdir/dumps/java_switch_99.dump | 20 + .../syntax/testdir/dumps/markdown_conceal_00.dump | 20 + .../syntax/testdir/dumps/markdown_conceal_99.dump | 20 + runtime/syntax/testdir/dumps/modula2_iso_00.dump | 2 +- runtime/syntax/testdir/dumps/modula2_pim_00.dump | 2 +- runtime/syntax/testdir/dumps/modula2_r10_00.dump | 2 +- runtime/syntax/testdir/dumps/sh_10_00.dump | 20 + runtime/syntax/testdir/dumps/sh_10_01.dump | 20 + runtime/syntax/testdir/dumps/sh_10_02.dump | 20 + runtime/syntax/testdir/dumps/sh_10_99.dump | 20 + runtime/syntax/testdir/dumps/sh_11_00.dump | 20 + runtime/syntax/testdir/dumps/sh_11_99.dump | 20 + .../syntax/testdir/dumps/vim_ex_abbreviate_00.dump | 20 + .../syntax/testdir/dumps/vim_ex_abbreviate_01.dump | 20 + .../syntax/testdir/dumps/vim_ex_abbreviate_99.dump | 20 + .../syntax/testdir/dumps/vim_ex_augroup_00.dump | 20 + .../syntax/testdir/dumps/vim_ex_augroup_99.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_behave_00.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_behave_99.dump | 20 + .../syntax/testdir/dumps/vim_ex_command_00.dump | 20 + .../syntax/testdir/dumps/vim_ex_command_99.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_00.dump | 6 +- .../syntax/testdir/dumps/vim_ex_commands_01.dump | 10 +- .../syntax/testdir/dumps/vim_ex_commands_02.dump | 10 +- .../syntax/testdir/dumps/vim_ex_commands_03.dump | 10 +- .../syntax/testdir/dumps/vim_ex_commands_04.dump | 10 +- .../syntax/testdir/dumps/vim_ex_commands_05.dump | 10 +- .../syntax/testdir/dumps/vim_ex_commands_06.dump | 10 +- .../syntax/testdir/dumps/vim_ex_commands_07.dump | 10 +- .../syntax/testdir/dumps/vim_ex_commands_08.dump | 10 +- .../syntax/testdir/dumps/vim_ex_commands_09.dump | 10 +- .../syntax/testdir/dumps/vim_ex_commands_10.dump | 10 +- .../syntax/testdir/dumps/vim_ex_commands_11.dump | 10 +- .../syntax/testdir/dumps/vim_ex_commands_12.dump | 12 +- .../syntax/testdir/dumps/vim_ex_commands_13.dump | 10 +- .../syntax/testdir/dumps/vim_ex_commands_14.dump | 10 +- .../syntax/testdir/dumps/vim_ex_commands_15.dump | 10 +- .../syntax/testdir/dumps/vim_ex_commands_16.dump | 10 +- .../syntax/testdir/dumps/vim_ex_commands_17.dump | 10 +- .../syntax/testdir/dumps/vim_ex_commands_18.dump | 10 +- .../syntax/testdir/dumps/vim_ex_commands_19.dump | 10 +- .../syntax/testdir/dumps/vim_ex_commands_20.dump | 10 +- .../syntax/testdir/dumps/vim_ex_commands_21.dump | 10 +- .../syntax/testdir/dumps/vim_ex_commands_22.dump | 10 +- .../syntax/testdir/dumps/vim_ex_commands_23.dump | 12 +- .../syntax/testdir/dumps/vim_ex_commands_24.dump | 10 +- .../syntax/testdir/dumps/vim_ex_commands_25.dump | 12 +- .../syntax/testdir/dumps/vim_ex_commands_26.dump | 10 +- .../syntax/testdir/dumps/vim_ex_commands_27.dump | 12 +- .../syntax/testdir/dumps/vim_ex_commands_28.dump | 10 +- .../syntax/testdir/dumps/vim_ex_commands_29.dump | 12 +- .../syntax/testdir/dumps/vim_ex_commands_30.dump | 10 +- .../syntax/testdir/dumps/vim_ex_commands_31.dump | 10 +- .../syntax/testdir/dumps/vim_ex_commands_32.dump | 10 +- .../syntax/testdir/dumps/vim_ex_commands_33.dump | 12 +- .../syntax/testdir/dumps/vim_ex_commands_34.dump | 14 +- .../syntax/testdir/dumps/vim_ex_commands_35.dump | 14 +- .../syntax/testdir/dumps/vim_ex_commands_36.dump | 14 +- .../syntax/testdir/dumps/vim_ex_commands_37.dump | 14 +- .../syntax/testdir/dumps/vim_ex_commands_38.dump | 14 +- .../syntax/testdir/dumps/vim_ex_commands_39.dump | 14 +- .../syntax/testdir/dumps/vim_ex_commands_40.dump | 16 +- .../syntax/testdir/dumps/vim_ex_commands_41.dump | 14 +- .../syntax/testdir/dumps/vim_ex_commands_42.dump | 16 +- .../syntax/testdir/dumps/vim_ex_commands_43.dump | 14 +- .../syntax/testdir/dumps/vim_ex_commands_44.dump | 16 +- .../syntax/testdir/dumps/vim_ex_commands_45.dump | 14 +- .../syntax/testdir/dumps/vim_ex_commands_46.dump | 16 +- .../syntax/testdir/dumps/vim_ex_commands_47.dump | 14 +- .../syntax/testdir/dumps/vim_ex_commands_48.dump | 14 +- .../syntax/testdir/dumps/vim_ex_commands_49.dump | 14 +- .../syntax/testdir/dumps/vim_ex_commands_50.dump | 14 +- .../syntax/testdir/dumps/vim_ex_commands_51.dump | 14 +- .../syntax/testdir/dumps/vim_ex_commands_52.dump | 14 +- .../syntax/testdir/dumps/vim_ex_commands_53.dump | 14 +- .../syntax/testdir/dumps/vim_ex_commands_54.dump | 14 +- .../syntax/testdir/dumps/vim_ex_commands_55.dump | 16 +- .../syntax/testdir/dumps/vim_ex_commands_56.dump | 16 +- .../syntax/testdir/dumps/vim_ex_commands_57.dump | 16 +- .../syntax/testdir/dumps/vim_ex_commands_58.dump | 16 +- .../syntax/testdir/dumps/vim_ex_commands_59.dump | 16 +- .../syntax/testdir/dumps/vim_ex_commands_60.dump | 14 +- .../syntax/testdir/dumps/vim_ex_commands_61.dump | 16 +- .../syntax/testdir/dumps/vim_ex_commands_62.dump | 14 +- .../syntax/testdir/dumps/vim_ex_commands_63.dump | 14 +- .../syntax/testdir/dumps/vim_ex_commands_64.dump | 14 +- .../syntax/testdir/dumps/vim_ex_commands_65.dump | 14 +- .../syntax/testdir/dumps/vim_ex_commands_66.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_99.dump | 2 +- runtime/syntax/testdir/dumps/vim_ex_def_00.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_def_01.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_def_02.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_def_03.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_def_04.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_def_05.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_def_06.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_def_99.dump | 20 + .../syntax/testdir/dumps/vim_ex_def_fold_00.dump | 20 + .../syntax/testdir/dumps/vim_ex_def_fold_01.dump | 20 + .../syntax/testdir/dumps/vim_ex_def_fold_02.dump | 20 + .../syntax/testdir/dumps/vim_ex_def_fold_03.dump | 20 + .../syntax/testdir/dumps/vim_ex_def_fold_04.dump | 20 + .../syntax/testdir/dumps/vim_ex_def_fold_05.dump | 20 + .../syntax/testdir/dumps/vim_ex_def_fold_06.dump | 20 + .../syntax/testdir/dumps/vim_ex_def_fold_99.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_echo_00.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_echo_01.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_echo_99.dump | 20 + .../syntax/testdir/dumps/vim_ex_execute_00.dump | 20 + .../syntax/testdir/dumps/vim_ex_execute_01.dump | 20 + .../syntax/testdir/dumps/vim_ex_execute_02.dump | 20 + .../syntax/testdir/dumps/vim_ex_execute_99.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_func_00.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_func_99.dump | 20 + .../syntax/testdir/dumps/vim_ex_function_00.dump | 20 + .../syntax/testdir/dumps/vim_ex_function_01.dump | 20 + .../syntax/testdir/dumps/vim_ex_function_02.dump | 20 + .../syntax/testdir/dumps/vim_ex_function_03.dump | 20 + .../syntax/testdir/dumps/vim_ex_function_04.dump | 20 + .../syntax/testdir/dumps/vim_ex_function_05.dump | 20 + .../syntax/testdir/dumps/vim_ex_function_06.dump | 20 + .../syntax/testdir/dumps/vim_ex_function_07.dump | 20 + .../syntax/testdir/dumps/vim_ex_function_08.dump | 20 + .../syntax/testdir/dumps/vim_ex_function_09.dump | 20 + .../syntax/testdir/dumps/vim_ex_function_99.dump | 20 + .../testdir/dumps/vim_ex_function_fold_00.dump | 20 + .../testdir/dumps/vim_ex_function_fold_01.dump | 20 + .../testdir/dumps/vim_ex_function_fold_02.dump | 20 + .../testdir/dumps/vim_ex_function_fold_03.dump | 20 + .../testdir/dumps/vim_ex_function_fold_04.dump | 20 + .../testdir/dumps/vim_ex_function_fold_05.dump | 20 + .../testdir/dumps/vim_ex_function_fold_06.dump | 20 + .../testdir/dumps/vim_ex_function_fold_07.dump | 20 + .../testdir/dumps/vim_ex_function_fold_08.dump | 20 + .../testdir/dumps/vim_ex_function_fold_09.dump | 20 + .../testdir/dumps/vim_ex_function_fold_99.dump | 20 + .../syntax/testdir/dumps/vim_ex_highlight_00.dump | 20 + .../syntax/testdir/dumps/vim_ex_highlight_01.dump | 20 + .../syntax/testdir/dumps/vim_ex_highlight_02.dump | 20 + .../syntax/testdir/dumps/vim_ex_highlight_99.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_map_00.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_map_01.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_map_02.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_map_03.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_map_04.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_map_99.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_menu_00.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_menu_01.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_menu_02.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_menu_03.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_menu_04.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_menu_99.dump | 20 + .../testdir/dumps/vim_ex_menutranslate_00.dump | 20 + .../testdir/dumps/vim_ex_menutranslate_01.dump | 20 + .../testdir/dumps/vim_ex_menutranslate_02.dump | 20 + .../testdir/dumps/vim_ex_menutranslate_99.dump | 20 + .../syntax/testdir/dumps/vim_ex_substitute_00.dump | 20 + .../syntax/testdir/dumps/vim_ex_substitute_01.dump | 20 + .../syntax/testdir/dumps/vim_ex_substitute_02.dump | 20 + .../syntax/testdir/dumps/vim_ex_substitute_03.dump | 20 + .../syntax/testdir/dumps/vim_ex_substitute_04.dump | 20 + .../syntax/testdir/dumps/vim_ex_substitute_99.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_syntax_00.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_syntax_01.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_syntax_02.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_syntax_03.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_syntax_04.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_syntax_05.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_syntax_06.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_syntax_07.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_syntax_08.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_syntax_09.dump | 20 + runtime/syntax/testdir/dumps/vim_ex_syntax_99.dump | 20 + runtime/syntax/testdir/dumps/vim_expr_00.dump | 20 + runtime/syntax/testdir/dumps/vim_expr_01.dump | 20 + runtime/syntax/testdir/dumps/vim_expr_02.dump | 20 + runtime/syntax/testdir/dumps/vim_expr_03.dump | 20 + runtime/syntax/testdir/dumps/vim_expr_99.dump | 20 + .../syntax/testdir/dumps/vim_key_notation_00.dump | 20 + .../syntax/testdir/dumps/vim_key_notation_01.dump | 20 + .../syntax/testdir/dumps/vim_key_notation_02.dump | 20 + .../syntax/testdir/dumps/vim_key_notation_03.dump | 20 + .../syntax/testdir/dumps/vim_key_notation_04.dump | 20 + .../syntax/testdir/dumps/vim_key_notation_05.dump | 20 + .../syntax/testdir/dumps/vim_key_notation_06.dump | 20 + .../syntax/testdir/dumps/vim_key_notation_07.dump | 20 + .../syntax/testdir/dumps/vim_key_notation_08.dump | 20 + .../syntax/testdir/dumps/vim_key_notation_99.dump | 20 + runtime/syntax/testdir/dumps/vim_keymap_00.dump | 2 +- .../testdir/dumps/vim_line_continuation_00.dump | 20 + .../testdir/dumps/vim_line_continuation_01.dump | 20 + .../testdir/dumps/vim_line_continuation_02.dump | 20 + .../testdir/dumps/vim_line_continuation_99.dump | 20 + runtime/syntax/testdir/dumps/vim_new_00.dump | 20 + runtime/syntax/testdir/dumps/vim_new_99.dump | 20 + runtime/syntax/testdir/dumps/vim_syntax_00.dump | 30 +- runtime/syntax/testdir/dumps/vim_syntax_01.dump | 28 +- runtime/syntax/testdir/dumps/vim_syntax_02.dump | 40 +- runtime/syntax/testdir/dumps/vim_syntax_03.dump | 40 +- runtime/syntax/testdir/dumps/vim_syntax_04.dump | 20 + runtime/syntax/testdir/dumps/vim_syntax_05.dump | 20 + runtime/syntax/testdir/dumps/vim_syntax_06.dump | 20 + runtime/syntax/testdir/dumps/vim_syntax_07.dump | 20 + runtime/syntax/testdir/dumps/vim_syntax_08.dump | 20 + runtime/syntax/testdir/dumps/vim_syntax_99.dump | 30 +- runtime/syntax/testdir/dumps/vim_variables_00.dump | 2 +- runtime/syntax/testdir/dumps/vim_variables_01.dump | 2 +- runtime/syntax/testdir/ftplugin/java.vim | 5 + runtime/syntax/testdir/input/c.c | 1 + runtime/syntax/testdir/input/java_comments.java | 25 + runtime/syntax/testdir/input/java_escapes.java | 123 + runtime/syntax/testdir/input/java_numbers.java | 88 + runtime/syntax/testdir/input/java_string.java | 104 + runtime/syntax/testdir/input/java_switch.java | 122 + .../syntax/testdir/input/markdown_conceal.markdown | 15 + .../testdir/input/setup/markdown_conceal.vim | 8 + runtime/syntax/testdir/input/sh_10.sh | 49 + runtime/syntax/testdir/input/sh_11.sh | 20 + runtime/syntax/testdir/input/vim_ex_abbreviate.vim | 25 + runtime/syntax/testdir/input/vim_ex_augroup.vim | 19 + runtime/syntax/testdir/input/vim_ex_behave.vim | 7 + runtime/syntax/testdir/input/vim_ex_command.vim | 5 + runtime/syntax/testdir/input/vim_ex_commands.vim | 4 + runtime/syntax/testdir/input/vim_ex_def.vim | 125 + runtime/syntax/testdir/input/vim_ex_def_fold.vim | 126 + runtime/syntax/testdir/input/vim_ex_echo.vim | 38 + runtime/syntax/testdir/input/vim_ex_execute.vim | 41 + runtime/syntax/testdir/input/vim_ex_function.vim | 182 ++ .../syntax/testdir/input/vim_ex_function_fold.vim | 183 ++ runtime/syntax/testdir/input/vim_ex_highlight.vim | 55 + runtime/syntax/testdir/input/vim_ex_map.vim | 87 + runtime/syntax/testdir/input/vim_ex_menu.vim | 87 + .../syntax/testdir/input/vim_ex_menutranslate.vim | 51 + runtime/syntax/testdir/input/vim_ex_substitute.vim | 86 + runtime/syntax/testdir/input/vim_ex_syntax.vim | 177 ++ runtime/syntax/testdir/input/vim_expr.vim | 71 + runtime/syntax/testdir/input/vim_key_notation.vim | 163 + .../syntax/testdir/input/vim_line_continuation.vim | 49 + runtime/syntax/testdir/input/vim_new.vim | 17 + runtime/syntax/testdir/input/vim_syntax.vim | 75 - runtime/syntax/testdir/runtest.vim | 320 +- runtime/syntax/tex.vim | 6 +- runtime/syntax/tmux.vim | 8 +- runtime/syntax/vim.vim | 550 ++-- runtime/syntax/xmath.vim | 6 +- runtime/syntax/xxd.vim | 6 +- runtime/syntax/yacc.vim | 5 +- runtime/tutor/Make_mvc.mak | 79 +- runtime/tutor/Makefile | 57 +- runtime/tutor/tutor.lt.utf-8 | 1061 +++++++ runtime/tutor/tutor.zh.euc | 2 +- runtime/tutor/tutor.zh_cn.utf-8 | 2 +- runtime/vimlogo.svg | 44 + src/Make_mvc.mak | 4 +- src/Makefile | 2 +- src/arglist.c | 19 +- src/auto/configure | 19 +- src/autocmd.c | 68 +- src/blob.c | 37 +- src/buffer.c | 246 +- src/change.c | 45 +- src/channel.c | 2 +- src/charset.c | 71 +- src/cindent.c | 3 +- src/clientserver.c | 8 + src/clipboard.c | 3 +- src/config.mk.in | 1 + src/configure.ac | 13 +- src/dict.c | 5 +- src/diff.c | 283 +- src/drawline.c | 277 +- src/drawscreen.c | 44 +- src/edit.c | 55 +- src/errors.h | 25 +- src/eval.c | 50 +- src/evalbuffer.c | 1 + src/evalfunc.c | 286 +- src/evalvars.c | 35 +- src/evalwindow.c | 102 +- src/ex_cmds.c | 39 +- src/ex_cmds.h | 2 +- src/ex_cmds2.c | 30 + src/ex_docmd.c | 15 +- src/ex_getln.c | 58 +- src/fileio.c | 15 +- src/fold.c | 14 +- src/getchar.c | 12 +- src/globals.h | 4 +- src/gui.c | 19 +- src/gui.h | 7 +- src/gui_beval.c | 1 + src/gui_gtk_x11.c | 336 +- src/gui_w32.c | 525 +++- src/gui_xim.c | 7 +- src/help.c | 2 +- src/highlight.c | 97 +- src/if_lua.c | 5 +- src/if_perl.xs | 2 +- src/if_py_both.h | 3 +- src/if_ruby.c | 2 +- src/if_tcl.c | 3 +- src/indent.c | 72 +- src/insexpand.c | 153 +- src/keymap.h | 4 +- src/list.c | 81 +- src/mbyte.c | 35 +- src/memline.c | 78 +- src/misc1.c | 5 +- src/misc2.c | 24 +- src/mouse.c | 46 +- src/move.c | 5 +- src/netbeans.c | 17 +- src/normal.c | 53 +- src/ops.c | 196 +- src/option.c | 57 +- src/option.h | 11 +- src/optiondefs.h | 29 +- src/optionstr.c | 56 +- src/os_mswin.c | 62 +- src/os_unix.c | 13 +- src/os_win32.c | 19 +- src/po/Make_mvc.mak | 238 +- src/po/Makefile | 142 +- src/po/README.txt | 13 +- src/po/README_mingw.txt | 6 +- src/po/README_mvc.txt | 52 +- src/po/ca.po | 34 +- src/po/hu.po | 2 +- src/po/it.po | 62 +- src/po/ru.cp1251.po | 446 +-- src/po/ru.po | 689 ++-- src/po/sr.po | 51 +- src/popupwin.c | 4 +- src/profiler.c | 8 +- src/proto/diff.pro | 1 + src/proto/evalvars.pro | 2 +- src/proto/getchar.pro | 2 +- src/proto/gui_gtk_x11.pro | 2 +- src/proto/indent.pro | 4 +- src/proto/list.pro | 1 + src/proto/memline.pro | 5 + src/proto/move.pro | 1 - src/proto/ops.pro | 1 + src/proto/option.pro | 1 - src/proto/optionstr.pro | 1 + src/proto/os_mswin.pro | 1 + src/proto/screen.pro | 6 +- src/proto/search.pro | 2 +- src/proto/term.pro | 1 + src/proto/typval.pro | 1 + src/proto/undo.pro | 3 +- src/proto/userfunc.pro | 1 + src/proto/vim9class.pro | 9 + src/proto/window.pro | 12 +- src/quickfix.c | 79 +- src/regexp.c | 3 + src/register.c | 91 +- src/screen.c | 135 +- src/scriptfile.c | 2 + src/search.c | 44 +- src/spell.c | 4 +- src/spellfile.c | 2 +- src/spellsuggest.c | 16 +- src/strings.c | 153 +- src/structs.h | 35 +- src/syntax.c | 12 +- src/tag.c | 8 +- src/term.c | 41 +- src/termdefs.h | 6 +- src/terminal.c | 5 +- src/testdir/Make_all.mak | 4 + src/testdir/check.vim | 8 + src/testdir/dumps/Test_balloon_eval_term_02.dump | 2 +- src/testdir/dumps/Test_conceal_cul_wcr_01.dump | 4 + src/testdir/dumps/Test_conceal_cul_wcr_02.dump | 4 + src/testdir/dumps/Test_conceal_cul_wcr_03.dump | 4 + src/testdir/dumps/Test_conceal_cul_wcr_rl_01.dump | 4 + src/testdir/dumps/Test_conceal_cul_wcr_rl_02.dump | 4 + src/testdir/dumps/Test_conceal_cul_wcr_rl_03.dump | 4 + src/testdir/dumps/Test_conceal_double_width_1.dump | 4 + src/testdir/dumps/Test_conceal_double_width_2.dump | 4 + src/testdir/dumps/Test_conceal_double_width_3.dump | 4 + src/testdir/dumps/Test_conceal_double_width_4.dump | 4 + .../dumps/Test_conceal_double_width_wrap_1.dump | 4 + .../dumps/Test_conceal_double_width_wrap_2.dump | 4 + .../dumps/Test_conceal_double_width_wrap_3.dump | 4 + .../dumps/Test_conceal_double_width_wrap_4.dump | 4 + src/testdir/dumps/Test_conceal_ve_after_eol_1.dump | 3 + src/testdir/dumps/Test_conceal_ve_after_eol_2.dump | 3 + src/testdir/dumps/Test_conceal_ve_after_eol_3.dump | 3 + src/testdir/dumps/Test_conceal_ve_after_eol_4.dump | 3 + src/testdir/dumps/Test_conceal_ve_after_eol_5.dump | 3 + .../dumps/Test_conceal_ve_after_eol_rl_1.dump | 3 + .../dumps/Test_conceal_ve_after_eol_rl_2.dump | 3 + .../dumps/Test_conceal_ve_after_eol_rl_3.dump | 3 + .../dumps/Test_conceal_ve_after_eol_rl_4.dump | 3 + .../dumps/Test_conceal_ve_after_eol_rl_5.dump | 3 + .../dumps/Test_cursorline_with_visualmode_01.dump | 12 +- src/testdir/dumps/Test_difffunc_diffexpr_1.dump | 12 + .../dumps/Test_display_scroll_update_visual.dump | 2 +- src/testdir/dumps/Test_drop_modified_1.dump | 10 + src/testdir/dumps/Test_echowin_showmode.dump | 2 +- src/testdir/dumps/Test_hlsearch_visual_1.dump | 6 +- .../dumps/Test_matchparen_win_execute_1.dump | 5 + .../dumps/Test_number_insert_delete_lines_1.dump | 8 + .../dumps/Test_number_insert_delete_lines_2.dump | 8 + .../dumps/Test_number_insert_delete_lines_3.dump | 8 + src/testdir/dumps/Test_popup_command_03.dump | 2 +- .../dumps/Test_prop_above_below_empty_1.dump | 20 +- .../dumps/Test_prop_above_below_empty_2.dump | 20 +- .../dumps/Test_prop_above_below_empty_3.dump | 20 +- .../dumps/Test_prop_above_below_empty_4.dump | 20 +- .../dumps/Test_prop_above_below_empty_5.dump | 20 +- .../dumps/Test_prop_above_below_empty_6.dump | 16 + src/testdir/dumps/Test_prop_inserts_text_1.dump | 2 +- src/testdir/dumps/Test_prop_inserts_text_2.dump | 2 +- src/testdir/dumps/Test_prop_inserts_text_3.dump | 2 +- src/testdir/dumps/Test_prop_inserts_text_4.dump | 2 +- src/testdir/dumps/Test_prop_inserts_text_5.dump | 2 +- src/testdir/dumps/Test_prop_inserts_text_6.dump | 2 +- .../Test_prop_inserts_text_visual_block_2.dump | 8 +- .../Test_prop_inserts_text_visual_block_3.dump | 8 +- .../Test_prop_inserts_text_visual_block_4.dump | 8 +- .../Test_prop_inserts_text_visual_block_5.dump | 8 +- .../Test_prop_inserts_text_visual_block_6.dump | 8 +- .../Test_prop_inserts_text_visual_block_7.dump | 8 +- src/testdir/dumps/Test_prop_wincolor_1.dump | 8 + src/testdir/dumps/Test_prop_wincolor_2.dump | 8 + src/testdir/dumps/Test_prop_wincolor_3.dump | 8 + src/testdir/dumps/Test_prop_wincolor_4.dump | 8 + src/testdir/dumps/Test_prop_wincolor_5.dump | 8 + src/testdir/dumps/Test_prop_wincolor_6.dump | 8 + src/testdir/dumps/Test_prop_wincolor_7.dump | 8 + src/testdir/dumps/Test_prop_wincolor_8.dump | 8 + src/testdir/dumps/Test_prop_wincolor_9.dump | 8 + src/testdir/dumps/Test_prop_with_text_above_6.dump | 2 +- src/testdir/dumps/Test_prop_with_text_above_7.dump | 2 +- .../dumps/Test_prop_with_text_empty_line_6.dump | 4 +- .../dumps/Test_prop_with_text_override_2.dump | 2 +- src/testdir/dumps/Test_relnr_colors_wrapped_1.dump | 20 + src/testdir/dumps/Test_relnr_colors_wrapped_2.dump | 20 + src/testdir/dumps/Test_relnr_colors_wrapped_3.dump | 20 + src/testdir/dumps/Test_relnr_colors_wrapped_4.dump | 20 + src/testdir/dumps/Test_relnr_colors_wrapped_5.dump | 20 + src/testdir/dumps/Test_statusline_showcmd_3.dump | 6 +- src/testdir/dumps/Test_syntax_c_01.dump | 4 +- src/testdir/dumps/Test_tabline_showcmd_3.dump | 6 +- src/testdir/dumps/Test_terminal_popup_7.dump | 2 +- src/testdir/dumps/Test_textprop_hl_override_2.dump | 2 +- src/testdir/dumps/Test_vim9_no_redraw.dump | 2 +- ...Test_virtual_text_overlap_with_highlight_1.dump | 8 + .../dumps/Test_visual_block_with_virtualedit.dump | 6 +- .../dumps/Test_visual_block_with_virtualedit2.dump | 6 +- .../dumps/Test_visual_ends_before_showbreak.dump | 6 + .../dumps/Test_visual_hl_with_showbreak.dump | 2 +- src/testdir/dumps/Test_visual_sbr_1.dump | 2 +- .../dumps/Test_visual_starts_before_skipcol_1.dump | 2 +- .../dumps/Test_visual_starts_before_skipcol_2.dump | 2 +- .../dumps/Test_visual_starts_before_skipcol_3.dump | 2 +- .../dumps/Test_visual_starts_before_skipcol_4.dump | 2 +- src/testdir/dumps/Test_win_gotoid_2.dump | 2 +- src/testdir/dumps/Test_wincolor_01.dump | 4 +- src/testdir/shared.vim | 5 +- src/testdir/test_autocmd.vim | 165 +- src/testdir/test_breakindent.vim | 84 +- src/testdir/test_clientserver.vim | 2 +- src/testdir/test_cmdline.vim | 52 +- src/testdir/test_cmdwin.vim | 115 +- src/testdir/test_comments.vim | 6 + src/testdir/test_conceal.vim | 398 ++- src/testdir/test_diffmode.vim | 309 +- src/testdir/test_display.vim | 20 +- src/testdir/test_edit.vim | 35 + src/testdir/test_excmd.vim | 27 +- src/testdir/test_execute_func.vim | 24 + src/testdir/test_exists.vim | 49 + src/testdir/test_expand.vim | 13 + src/testdir/test_filetype.vim | 78 +- src/testdir/test_filter_map.vim | 142 +- src/testdir/test_format.vim | 168 +- src/testdir/test_functions.vim | 51 + src/testdir/test_goto.vim | 13 +- src/testdir/test_gui.vim | 12 +- src/testdir/test_highlight.vim | 28 +- src/testdir/test_ins_complete.vim | 74 +- src/testdir/test_listchars.vim | 76 +- src/testdir/test_listlbr.vim | 8 +- src/testdir/test_listlbr_utf8.vim | 21 + src/testdir/test_lua.vim | 22 +- src/testdir/test_mapping.vim | 20 +- src/testdir/test_matchparen.vim | 25 + src/testdir/test_messages.vim | 12 +- src/testdir/test_mswin_event.vim | 54 +- src/testdir/test_normal.vim | 26 +- src/testdir/test_number.vim | 65 +- src/testdir/test_options.vim | 68 + src/testdir/test_perl.vim | 17 +- src/testdir/test_popup.vim | 18 + src/testdir/test_popupwin.vim | 18 + src/testdir/test_prompt_buffer.vim | 45 + src/testdir/test_put.vim | 38 + src/testdir/test_python2.vim | 17 +- src/testdir/test_python3.vim | 17 +- src/testdir/test_quotestar.vim | 4 +- src/testdir/test_registers.vim | 18 +- src/testdir/test_remote.vim | 79 + src/testdir/test_ruby.vim | 17 +- src/testdir/test_scroll_opt.vim | 38 + src/testdir/test_startup.vim | 16 +- src/testdir/test_tabpage.vim | 96 +- src/testdir/test_tagjump.vim | 29 +- src/testdir/test_tcl.vim | 17 +- src/testdir/test_terminal2.vim | 8 + src/testdir/test_textprop.vim | 134 +- src/testdir/test_undo.vim | 2 +- src/testdir/test_user_func.vim | 19 + src/testdir/test_utf8_comparisons.vim | 35 + src/testdir/test_vim9_assign.vim | 97 + src/testdir/test_vim9_builtin.vim | 30 +- src/testdir/test_vim9_class.vim | 758 ++++- src/testdir/test_vim9_disassemble.vim | 195 ++ src/testdir/test_vim9_expr.vim | 27 + src/testdir/test_vim9_import.vim | 49 + src/testdir/test_vim9_script.vim | 25 + src/testdir/test_vim9_typealias.vim | 4 +- src/testdir/test_virtualedit.vim | 17 + src/testdir/test_visual.vim | 341 +- src/testdir/test_window_cmd.vim | 339 +- src/testdir/test_winfixbuf.vim | 3286 ++++++++++++++++++++ src/testing.c | 2 +- src/textformat.c | 46 +- src/textobject.c | 2 +- src/textprop.c | 23 +- src/typval.c | 10 + src/undo.c | 38 +- src/userfunc.c | 113 +- src/version.c | 366 +++ src/vim.h | 7 +- src/vim9class.c | 417 ++- src/vim9compile.c | 12 +- src/vim9expr.c | 42 +- src/window.c | 409 ++- src/xxd/Makefile | 2 +- src/xxd/xxd.c | 44 +- tools/rename.bat | 44 +- 814 files changed, 27325 insertions(+), 5706 deletions(-) create mode 100644 READMEdir/README_vimlogo.txt create mode 100644 ci/remove_snap.sh create mode 100644 nsis/lang/greek.nsi create mode 100644 runtime/ftplugin/asciidoc.vim create mode 100644 runtime/ftplugin/deb822sources.vim create mode 100644 runtime/ftplugin/hurl.vim create mode 100644 runtime/ftplugin/odin.vim create mode 100644 runtime/indent/Make_mvc.mak create mode 100644 runtime/indent/odin.vim create mode 100644 runtime/syntax/chuck.vim create mode 100644 runtime/syntax/generator/Makefile create mode 100644 runtime/syntax/generator/README.md create mode 100644 runtime/syntax/generator/gen_syntax_vim.vim create mode 100644 runtime/syntax/generator/update_date.vim create mode 100644 runtime/syntax/generator/vim.vim.base create mode 100644 runtime/syntax/odin.vim create mode 100644 runtime/syntax/testdir/dumps/java_comments_00.dump create mode 100644 runtime/syntax/testdir/dumps/java_comments_01.dump create mode 100644 runtime/syntax/testdir/dumps/java_comments_99.dump create mode 100644 runtime/syntax/testdir/dumps/java_escapes_00.dump create mode 100644 runtime/syntax/testdir/dumps/java_escapes_01.dump create mode 100644 runtime/syntax/testdir/dumps/java_escapes_02.dump create mode 100644 runtime/syntax/testdir/dumps/java_escapes_03.dump create mode 100644 runtime/syntax/testdir/dumps/java_escapes_04.dump create mode 100644 runtime/syntax/testdir/dumps/java_escapes_05.dump create mode 100644 runtime/syntax/testdir/dumps/java_escapes_06.dump create mode 100644 runtime/syntax/testdir/dumps/java_escapes_99.dump create mode 100644 runtime/syntax/testdir/dumps/java_numbers_00.dump create mode 100644 runtime/syntax/testdir/dumps/java_numbers_01.dump create mode 100644 runtime/syntax/testdir/dumps/java_numbers_02.dump create mode 100644 runtime/syntax/testdir/dumps/java_numbers_03.dump create mode 100644 runtime/syntax/testdir/dumps/java_numbers_04.dump create mode 100644 runtime/syntax/testdir/dumps/java_numbers_99.dump create mode 100644 runtime/syntax/testdir/dumps/java_string_00.dump create mode 100644 runtime/syntax/testdir/dumps/java_string_01.dump create mode 100644 runtime/syntax/testdir/dumps/java_string_02.dump create mode 100644 runtime/syntax/testdir/dumps/java_string_03.dump create mode 100644 runtime/syntax/testdir/dumps/java_string_04.dump create mode 100644 runtime/syntax/testdir/dumps/java_string_05.dump create mode 100644 runtime/syntax/testdir/dumps/java_string_99.dump create mode 100644 runtime/syntax/testdir/dumps/java_switch_00.dump create mode 100644 runtime/syntax/testdir/dumps/java_switch_01.dump create mode 100644 runtime/syntax/testdir/dumps/java_switch_02.dump create mode 100644 runtime/syntax/testdir/dumps/java_switch_03.dump create mode 100644 runtime/syntax/testdir/dumps/java_switch_04.dump create mode 100644 runtime/syntax/testdir/dumps/java_switch_05.dump create mode 100644 runtime/syntax/testdir/dumps/java_switch_06.dump create mode 100644 runtime/syntax/testdir/dumps/java_switch_99.dump create mode 100644 runtime/syntax/testdir/dumps/markdown_conceal_00.dump create mode 100644 runtime/syntax/testdir/dumps/markdown_conceal_99.dump create mode 100644 runtime/syntax/testdir/dumps/sh_10_00.dump create mode 100644 runtime/syntax/testdir/dumps/sh_10_01.dump create mode 100644 runtime/syntax/testdir/dumps/sh_10_02.dump create mode 100644 runtime/syntax/testdir/dumps/sh_10_99.dump create mode 100644 runtime/syntax/testdir/dumps/sh_11_00.dump create mode 100644 runtime/syntax/testdir/dumps/sh_11_99.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_abbreviate_00.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_abbreviate_01.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_abbreviate_99.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_augroup_00.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_augroup_99.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_behave_00.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_behave_99.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_command_00.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_command_99.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_66.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_def_00.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_def_01.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_def_02.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_def_03.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_def_04.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_def_05.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_def_06.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_def_99.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_def_fold_00.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_def_fold_01.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_def_fold_02.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_def_fold_03.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_def_fold_04.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_def_fold_05.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_def_fold_06.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_def_fold_99.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_echo_00.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_echo_01.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_echo_99.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_execute_00.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_execute_01.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_execute_02.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_execute_99.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_func_00.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_func_99.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_function_00.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_function_01.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_function_02.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_function_03.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_function_04.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_function_05.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_function_06.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_function_07.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_function_08.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_function_09.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_function_99.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_function_fold_00.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_function_fold_01.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_function_fold_02.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_function_fold_03.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_function_fold_04.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_function_fold_05.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_function_fold_06.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_function_fold_07.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_function_fold_08.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_function_fold_09.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_function_fold_99.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_highlight_00.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_highlight_01.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_highlight_02.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_highlight_99.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_map_00.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_map_01.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_map_02.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_map_03.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_map_04.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_map_99.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_menu_00.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_menu_01.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_menu_02.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_menu_03.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_menu_04.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_menu_99.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_menutranslate_00.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_menutranslate_01.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_menutranslate_02.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_menutranslate_99.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_substitute_00.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_substitute_01.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_substitute_02.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_substitute_03.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_substitute_04.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_substitute_99.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_syntax_00.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_syntax_01.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_syntax_02.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_syntax_03.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_syntax_04.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_syntax_05.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_syntax_06.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_syntax_07.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_syntax_08.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_syntax_09.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_syntax_99.dump create mode 100644 runtime/syntax/testdir/dumps/vim_expr_00.dump create mode 100644 runtime/syntax/testdir/dumps/vim_expr_01.dump create mode 100644 runtime/syntax/testdir/dumps/vim_expr_02.dump create mode 100644 runtime/syntax/testdir/dumps/vim_expr_03.dump create mode 100644 runtime/syntax/testdir/dumps/vim_expr_99.dump create mode 100644 runtime/syntax/testdir/dumps/vim_key_notation_00.dump create mode 100644 runtime/syntax/testdir/dumps/vim_key_notation_01.dump create mode 100644 runtime/syntax/testdir/dumps/vim_key_notation_02.dump create mode 100644 runtime/syntax/testdir/dumps/vim_key_notation_03.dump create mode 100644 runtime/syntax/testdir/dumps/vim_key_notation_04.dump create mode 100644 runtime/syntax/testdir/dumps/vim_key_notation_05.dump create mode 100644 runtime/syntax/testdir/dumps/vim_key_notation_06.dump create mode 100644 runtime/syntax/testdir/dumps/vim_key_notation_07.dump create mode 100644 runtime/syntax/testdir/dumps/vim_key_notation_08.dump create mode 100644 runtime/syntax/testdir/dumps/vim_key_notation_99.dump create mode 100644 runtime/syntax/testdir/dumps/vim_line_continuation_00.dump create mode 100644 runtime/syntax/testdir/dumps/vim_line_continuation_01.dump create mode 100644 runtime/syntax/testdir/dumps/vim_line_continuation_02.dump create mode 100644 runtime/syntax/testdir/dumps/vim_line_continuation_99.dump create mode 100644 runtime/syntax/testdir/dumps/vim_new_00.dump create mode 100644 runtime/syntax/testdir/dumps/vim_new_99.dump create mode 100644 runtime/syntax/testdir/dumps/vim_syntax_04.dump create mode 100644 runtime/syntax/testdir/dumps/vim_syntax_05.dump create mode 100644 runtime/syntax/testdir/dumps/vim_syntax_06.dump create mode 100644 runtime/syntax/testdir/dumps/vim_syntax_07.dump create mode 100644 runtime/syntax/testdir/dumps/vim_syntax_08.dump create mode 100644 runtime/syntax/testdir/ftplugin/java.vim create mode 100644 runtime/syntax/testdir/input/java_comments.java create mode 100644 runtime/syntax/testdir/input/java_escapes.java create mode 100644 runtime/syntax/testdir/input/java_numbers.java create mode 100644 runtime/syntax/testdir/input/java_string.java create mode 100644 runtime/syntax/testdir/input/java_switch.java create mode 100644 runtime/syntax/testdir/input/markdown_conceal.markdown create mode 100644 runtime/syntax/testdir/input/setup/markdown_conceal.vim create mode 100644 runtime/syntax/testdir/input/sh_10.sh create mode 100644 runtime/syntax/testdir/input/sh_11.sh create mode 100644 runtime/syntax/testdir/input/vim_ex_abbreviate.vim create mode 100644 runtime/syntax/testdir/input/vim_ex_augroup.vim create mode 100644 runtime/syntax/testdir/input/vim_ex_behave.vim create mode 100644 runtime/syntax/testdir/input/vim_ex_command.vim create mode 100644 runtime/syntax/testdir/input/vim_ex_def.vim create mode 100644 runtime/syntax/testdir/input/vim_ex_def_fold.vim create mode 100644 runtime/syntax/testdir/input/vim_ex_echo.vim create mode 100644 runtime/syntax/testdir/input/vim_ex_execute.vim create mode 100644 runtime/syntax/testdir/input/vim_ex_function.vim create mode 100644 runtime/syntax/testdir/input/vim_ex_function_fold.vim create mode 100644 runtime/syntax/testdir/input/vim_ex_highlight.vim create mode 100644 runtime/syntax/testdir/input/vim_ex_map.vim create mode 100644 runtime/syntax/testdir/input/vim_ex_menu.vim create mode 100644 runtime/syntax/testdir/input/vim_ex_menutranslate.vim create mode 100644 runtime/syntax/testdir/input/vim_ex_substitute.vim create mode 100644 runtime/syntax/testdir/input/vim_ex_syntax.vim create mode 100644 runtime/syntax/testdir/input/vim_expr.vim create mode 100644 runtime/syntax/testdir/input/vim_key_notation.vim create mode 100644 runtime/syntax/testdir/input/vim_line_continuation.vim create mode 100644 runtime/syntax/testdir/input/vim_new.vim delete mode 100644 runtime/syntax/testdir/input/vim_syntax.vim create mode 100644 runtime/tutor/tutor.lt.utf-8 create mode 100644 runtime/vimlogo.svg create mode 100644 src/testdir/dumps/Test_conceal_cul_wcr_01.dump create mode 100644 src/testdir/dumps/Test_conceal_cul_wcr_02.dump create mode 100644 src/testdir/dumps/Test_conceal_cul_wcr_03.dump create mode 100644 src/testdir/dumps/Test_conceal_cul_wcr_rl_01.dump create mode 100644 src/testdir/dumps/Test_conceal_cul_wcr_rl_02.dump create mode 100644 src/testdir/dumps/Test_conceal_cul_wcr_rl_03.dump create mode 100644 src/testdir/dumps/Test_conceal_double_width_1.dump create mode 100644 src/testdir/dumps/Test_conceal_double_width_2.dump create mode 100644 src/testdir/dumps/Test_conceal_double_width_3.dump create mode 100644 src/testdir/dumps/Test_conceal_double_width_4.dump create mode 100644 src/testdir/dumps/Test_conceal_double_width_wrap_1.dump create mode 100644 src/testdir/dumps/Test_conceal_double_width_wrap_2.dump create mode 100644 src/testdir/dumps/Test_conceal_double_width_wrap_3.dump create mode 100644 src/testdir/dumps/Test_conceal_double_width_wrap_4.dump create mode 100644 src/testdir/dumps/Test_conceal_ve_after_eol_1.dump create mode 100644 src/testdir/dumps/Test_conceal_ve_after_eol_2.dump create mode 100644 src/testdir/dumps/Test_conceal_ve_after_eol_3.dump create mode 100644 src/testdir/dumps/Test_conceal_ve_after_eol_4.dump create mode 100644 src/testdir/dumps/Test_conceal_ve_after_eol_5.dump create mode 100644 src/testdir/dumps/Test_conceal_ve_after_eol_rl_1.dump create mode 100644 src/testdir/dumps/Test_conceal_ve_after_eol_rl_2.dump create mode 100644 src/testdir/dumps/Test_conceal_ve_after_eol_rl_3.dump create mode 100644 src/testdir/dumps/Test_conceal_ve_after_eol_rl_4.dump create mode 100644 src/testdir/dumps/Test_conceal_ve_after_eol_rl_5.dump create mode 100644 src/testdir/dumps/Test_difffunc_diffexpr_1.dump create mode 100644 src/testdir/dumps/Test_drop_modified_1.dump create mode 100644 src/testdir/dumps/Test_matchparen_win_execute_1.dump create mode 100644 src/testdir/dumps/Test_number_insert_delete_lines_1.dump create mode 100644 src/testdir/dumps/Test_number_insert_delete_lines_2.dump create mode 100644 src/testdir/dumps/Test_number_insert_delete_lines_3.dump create mode 100644 src/testdir/dumps/Test_prop_above_below_empty_6.dump create mode 100644 src/testdir/dumps/Test_prop_wincolor_1.dump create mode 100644 src/testdir/dumps/Test_prop_wincolor_2.dump create mode 100644 src/testdir/dumps/Test_prop_wincolor_3.dump create mode 100644 src/testdir/dumps/Test_prop_wincolor_4.dump create mode 100644 src/testdir/dumps/Test_prop_wincolor_5.dump create mode 100644 src/testdir/dumps/Test_prop_wincolor_6.dump create mode 100644 src/testdir/dumps/Test_prop_wincolor_7.dump create mode 100644 src/testdir/dumps/Test_prop_wincolor_8.dump create mode 100644 src/testdir/dumps/Test_prop_wincolor_9.dump create mode 100644 src/testdir/dumps/Test_relnr_colors_wrapped_1.dump create mode 100644 src/testdir/dumps/Test_relnr_colors_wrapped_2.dump create mode 100644 src/testdir/dumps/Test_relnr_colors_wrapped_3.dump create mode 100644 src/testdir/dumps/Test_relnr_colors_wrapped_4.dump create mode 100644 src/testdir/dumps/Test_relnr_colors_wrapped_5.dump create mode 100644 src/testdir/dumps/Test_virtual_text_overlap_with_highlight_1.dump create mode 100644 src/testdir/dumps/Test_visual_ends_before_showbreak.dump create mode 100644 src/testdir/test_remote.vim create mode 100644 src/testdir/test_winfixbuf.vim diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 6ebaeda..f8ea87e 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -9,21 +9,15 @@ # So if a pull request only touches javascript files, only these owners # will be requested to review. +nsis/lang/russian.nsi @RestorerZ runtime/autoload/freebasic.vim @dkearns -runtime/autoload/getscript.vim @cecamp runtime/autoload/haskell.vim @alx741 runtime/autoload/javascript.vim @jsit runtime/autoload/modula2.vim @dkearns -runtime/autoload/netrw.vim @cecamp -runtime/autoload/netrwFileHandlers.vim @cecamp -runtime/autoload/netrwSettings.vim @cecamp runtime/autoload/php.vim @david-szabo97 runtime/autoload/rubycomplete.vim @segfault @dkearns runtime/autoload/rust.vim @lilyball -runtime/autoload/tar.vim @cecamp -runtime/autoload/vimball.vim @cecamp runtime/autoload/xmlformat.vim @chrisbra -runtime/autoload/zip.vim @cecamp runtime/autoload/dist/json.vim @habamax runtime/colors/blue.vim @habamax @romainl @neutaaaaan runtime/colors/darkblue.vim @habamax @romainl @neutaaaaan @@ -108,12 +102,6 @@ runtime/compiler/xmllint.vim @dkearns runtime/compiler/xo.vim @dkearns runtime/compiler/yamllint.vim @romainl runtime/compiler/zsh.vim @dkearns -runtime/doc/pi_getscript.txt @cecamp -runtime/doc/pi_logipat.txt @cecamp -runtime/doc/pi_netrw.txt @cecamp -runtime/doc/pi_tar.txt @cecamp -runtime/doc/pi_vimball.txt @cecamp -runtime/doc/pi_zip.txt @cecamp runtime/doc/ps1.txt @heaths runtime/ftplugin/abaqus.vim @costerwi runtime/ftplugin/apache.vim @dubgeiser @@ -127,6 +115,7 @@ runtime/ftplugin/cs.vim @nickspoons runtime/ftplugin/csh.vim @dkearns runtime/ftplugin/css.vim @dkearns runtime/ftplugin/cucumber.vim @tpope +runtime/ftplugin/deb822sources.vim @jamessan runtime/ftplugin/debchangelog.vim @jamessan runtime/ftplugin/debcontrol.vim @jamessan runtime/ftplugin/debsources.vim @jamessan @@ -182,7 +171,6 @@ runtime/ftplugin/lynx.vim @dkearns runtime/ftplugin/m3build.vim @dkearns runtime/ftplugin/m3quake.vim @dkearns runtime/ftplugin/markdown.vim @tpope -runtime/ftplugin/matlab.vim @cecamp runtime/ftplugin/meson.vim @Liambeguin runtime/ftplugin/modula2.vim @dkearns runtime/ftplugin/modula3.vim @dkearns @@ -205,14 +193,9 @@ runtime/ftplugin/pymanifest.vim @ObserverOfTime runtime/ftplugin/python.vim @tpict runtime/ftplugin/qb64.vim @dkearns runtime/ftplugin/qml.vim @ChaseKnowlden -runtime/ftplugin/r.vim @jalvesaq runtime/ftplugin/racket.vim @benknoble runtime/ftplugin/readline.vim @dkearns -runtime/ftplugin/rhelp.vim @jalvesaq -runtime/ftplugin/rmd.vim @jalvesaq -runtime/ftplugin/rnoweb.vim @jalvesaq runtime/ftplugin/routeros.vim @zainin -runtime/ftplugin/rrst.vim @jalvesaq runtime/ftplugin/rst.vim @marshallward runtime/ftplugin/ruby.vim @tpope @dkearns runtime/ftplugin/rust.vim @lilyball @@ -302,14 +285,9 @@ runtime/indent/prolog.vim @dkearns runtime/indent/ps1.vim @heaths runtime/indent/qb64.vim @dkearns runtime/indent/qml.vim @ChaseKnowlden -runtime/indent/r.vim @jalvesaq runtime/indent/racket.vim @benknoble runtime/indent/rapid.vim @KnoP-01 runtime/indent/readline.vim @dkearns -runtime/indent/rhelp.vim @jalvesaq -runtime/indent/rmd.vim @jalvesaq -runtime/indent/rnoweb.vim @jalvesaq -runtime/indent/rrst.vim @jalvesaq runtime/indent/ruby.vim @AndrewRadev @dkearns runtime/indent/sass.vim @tpope runtime/indent/scala.vim @derekwyatt @@ -327,21 +305,19 @@ runtime/indent/xml.vim @chrisbra runtime/indent/zsh.vim @chrisbra runtime/keymap/armenian-eastern_utf-8.vim @blinskey runtime/keymap/armenian-western_utf-8.vim @blinskey +runtime/keymap/russian-typograph.vim @RestorerZ runtime/keymap/tamil_tscii.vim @yegappan runtime/lang/menu_en_gb.latin1.vim @mrdubya +runtime/lang/menu_ru_ru.cp1251.vim @RestorerZ +runtime/lang/menu_ru_ru.koi8-r.vim @RestorerZ +runtime/lang/menu_ru_ru.utf-8.vim @RestorerZ runtime/pack/dist/opt/cfilter/plugin/cfilter.vim @yegappan runtime/pack/dist/opt/matchit/ @chrisbra -runtime/plugin/getscriptPlugin.vim @cecamp -runtime/plugin/logiPat.vim @cecamp -runtime/plugin/netrwPlugin.vim @cecamp -runtime/plugin/tarPlugin.vim @cecamp -runtime/plugin/vimballPlugin.vim @cecamp -runtime/plugin/zipPlugin.vim @cecamp runtime/plugin/manpager.vim @Konfekt runtime/syntax/shared/hgcommitDiff.vim @vegerot runtime/syntax/abaqus.vim @costerwi runtime/syntax/aidl.vim @dpelle -runtime/syntax/amiga.vim @cecamp +runtime/syntax/ant.vim @dkearns runtime/syntax/arduino.vim @johshoff runtime/syntax/asciidoc.vim @aerostitch runtime/syntax/asm.vim @dkearns @@ -358,14 +334,13 @@ runtime/syntax/cabalconfig.vim @coot runtime/syntax/cabalproject.vim @coot runtime/syntax/cf.vim @ernstvanderlinden runtime/syntax/chatito.vim @ObserverOfTime +runtime/syntax/chuck.vim @gacallea runtime/syntax/clojure.vim @axvr runtime/syntax/cs.vim @nickspoons -runtime/syntax/csh.vim @cecamp runtime/syntax/cucumber.vim @tpope runtime/syntax/d.vim @JesseKPhillips runtime/syntax/dart.vim @pr3d4t0r runtime/syntax/datascript.vim @dpelle -runtime/syntax/dcl.vim @cecamp runtime/syntax/deb822sources.vim @jamessan runtime/syntax/debchangelog.vim @jamessan runtime/syntax/debcontrol.vim @jamessan @@ -381,11 +356,9 @@ runtime/syntax/dtd.vim @chrisbra runtime/syntax/dts.vim @zonque runtime/syntax/editorconfig.vim @gpanders runtime/syntax/eiffel.vim @jocelyn -runtime/syntax/elmfilt.vim @cecamp runtime/syntax/erlang.vim @hcs42 runtime/syntax/eruby.vim @tpope @dkearns runtime/syntax/expect.vim @dkearns -runtime/syntax/exports.vim @cecamp runtime/syntax/falcon.vim @steveno runtime/syntax/fennel.vim @gpanders runtime/syntax/fetchmail.vim @dkearns @@ -412,6 +385,7 @@ runtime/syntax/gyp.vim @ObserverOfTime runtime/syntax/haml.vim @tpope runtime/syntax/hare.vim @rsaihe runtime/syntax/haskell.vim @coot +runtime/syntax/help_ru.vim @RestorerZ runtime/syntax/hgcommit.vim @k-takata runtime/syntax/hitest.vim @lacygoill runtime/syntax/hog.vim @wtfbbqhax @@ -430,9 +404,7 @@ runtime/syntax/kconfig.vim @chrisbra runtime/syntax/kotlin.vim @udalov runtime/syntax/krl.vim @KnoP-01 runtime/syntax/less.vim @genoma -runtime/syntax/lex.vim @cecamp runtime/syntax/liquid.vim @tpope -runtime/syntax/lisp.vim @cecamp runtime/syntax/lua.vim @marcuscf runtime/syntax/lyrics.vim @ObserverOfTime runtime/syntax/lynx.vim @dkearns @@ -441,7 +413,6 @@ runtime/syntax/m3quake.vim @dkearns runtime/syntax/mailcap.vim @dkearns runtime/syntax/make.vim @rohieb runtime/syntax/mallard.vim @jhradilek -runtime/syntax/maple.vim @cecamp runtime/syntax/markdown.vim @tpope runtime/syntax/mason.vim @petdance runtime/syntax/meson.vim @Liambeguin @@ -451,7 +422,6 @@ runtime/syntax/modula2/opt/pim.vim @trijezdci runtime/syntax/modula2/opt/r10.vim @trijezdci runtime/syntax/modula3.vim @dkearns runtime/syntax/n1ql.vim @pr3d4t0r -runtime/syntax/netrw.vim @cecamp runtime/syntax/nginx.vim @chr4 runtime/syntax/ninja.vim @nico runtime/syntax/nix.vim @equill @@ -476,7 +446,6 @@ runtime/syntax/psl.vim @danielkho runtime/syntax/pymanifest.vim @ObserverOfTime runtime/syntax/qb64.vim @dkearns runtime/syntax/qml.vim @ChaseKnowlden -runtime/syntax/r.vim @jalvesaq runtime/syntax/racket.vim @benknoble runtime/syntax/raml.vim @in3d runtime/syntax/rapid.vim @KnoP-01 @@ -486,11 +455,8 @@ runtime/syntax/rcs.vim @hdima runtime/syntax/rebol.vim @mrdubya runtime/syntax/rego.vim @zenmatic runtime/syntax/resolv.vim @rid9 -runtime/syntax/rmd.vim @jalvesaq runtime/syntax/rng.vim @jhradilek runtime/syntax/routeros.vim @zainin -runtime/syntax/rpcgen.vim @cecamp -runtime/syntax/rrst.vim @jalvesaq runtime/syntax/rst.vim @marshallward runtime/syntax/ruby.vim @dkearns runtime/syntax/sass.vim @tpope @@ -498,9 +464,7 @@ runtime/syntax/scala.vim @derekwyatt runtime/syntax/scss.vim @tpope runtime/syntax/sdoc.vim @gpanders runtime/syntax/sed.vim @dkearns -runtime/syntax/sh.vim @cecamp runtime/syntax/shared/debversions.vim @jamessan -runtime/syntax/sm.vim @cecamp runtime/syntax/solidity.vim @cothi runtime/syntax/spec.vim @ignatenkobrain runtime/syntax/sqloracle.vim @chrisbra @@ -514,11 +478,9 @@ runtime/syntax/svn.vim @hdima runtime/syntax/swayconfig.vim @jamespeapen runtime/syntax/swig.vim @jmarrec runtime/syntax/systemverilog.vim @Kocha -runtime/syntax/tags.vim @cecamp runtime/syntax/tap.vim @petdance runtime/syntax/tcsh.vim @dkearns runtime/syntax/teraterm.vim @k-takata -runtime/syntax/tex.vim @cecamp runtime/syntax/tidy.vim @dkearns runtime/syntax/tmux.vim @ericpruitt runtime/syntax/toml.vim @averms @@ -530,7 +492,6 @@ runtime/syntax/typescriptcommon.vim @HerringtonDarkholme runtime/syntax/typescriptreact.vim @HerringtonDarkholme runtime/syntax/unison.vim @chuwy runtime/syntax/vdf.vim @ObserverOfTime -runtime/syntax/vim.vim @cecamp runtime/syntax/vroom.vim @dbarnett runtime/syntax/wast.vim @rhysd runtime/syntax/wdl.vim @zenmatic @@ -538,18 +499,18 @@ runtime/syntax/wget.vim @dkearns runtime/syntax/wget2.vim @dkearns runtime/syntax/xbl.vim @dkearns runtime/syntax/xcompose.vim @ObserverOfTime -runtime/syntax/xmath.vim @cecamp runtime/syntax/xml.vim @chrisbra runtime/syntax/xs.vim @petdance runtime/syntax/xslt.vim @Boobies -runtime/syntax/xxd.vim @cecamp -runtime/syntax/yacc.vim @cecamp runtime/syntax/zserio.vim @dpelle runtime/syntax/zsh.vim @chrisbra runtime/tutor/tutor.eo @dpelle runtime/tutor/tutor.eo.utf-8 @dpelle runtime/tutor/tutor.fr @dpelle runtime/tutor/tutor.fr.utf-8 @dpelle +runtime/tutor/tutor.ru @RestorerZ +runtime/tutor/tutor.ru.cp1251 @RestorerZ +runtime/tutor/tutor.ru.utf-8 @RestorerZ src/iscygpty.* @k-takata src/libvterm/ @leonerd src/po/ca.po @nfdisco @@ -561,6 +522,7 @@ src/po/fr.po @dpelle src/po/ga.po @kscanne src/po/it.po @azc100 src/po/ja.po @k-takata +src/po/ru.po @RestorerZ src/po/sr.po @eevan78 src/po/tr.po @bitigchi src/po/uk.po @sakhnik diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b51cade..0120c8f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,7 +22,7 @@ jobs: env: CC: ${{ matrix.compiler }} GCC_VER: 13 - CLANG_VER: 17 + CLANG_VER: 18 TEST: test SRCDIR: ./src LEAK_CFLAGS: -DEXITFREE @@ -90,6 +90,10 @@ jobs: - run: sudo dpkg --add-architecture i386 if: matrix.architecture == 'i386' + - name: Uninstall snap + run: | + sudo bash ci/remove_snap.sh + - name: Install packages run: | PKGS=( \ @@ -265,7 +269,13 @@ jobs: if: contains(matrix.extra, 'vimtags') run: | # This will exit with an error code if the generated vim tags differs from source. - git diff --exit-code -- runtime/doc/tags + ( + cd runtime/doc + git diff --exit-code -- tags + make html; rm *.html tags.ref; + test -f errors.log && exit 3; + true + ) - name: Generate gcov files if: matrix.coverage @@ -276,9 +286,10 @@ jobs: - name: Codecov timeout-minutes: 20 if: matrix.coverage - uses: codecov/codecov-action@v3 + uses: codecov/codecov-action@v4 with: flags: linux,${{ matrix.features }}-${{ matrix.compiler }}-${{ matrix.extra }} + token: ${{ secrets.CODECOV_TOKEN }} - name: ASan logs if: contains(matrix.extra, 'asan') && !cancelled() @@ -289,7 +300,7 @@ jobs: done macos: - runs-on: macos-latest + runs-on: ${{ matrix.runner }} env: CC: clang @@ -302,6 +313,7 @@ jobs: fail-fast: false matrix: features: [tiny, normal, huge] + runner: [macos-latest, macos-14] steps: - name: Checkout repository from github @@ -310,8 +322,14 @@ jobs: - name: Install packages if: matrix.features == 'huge' run: | - brew install lua - echo "LUA_PREFIX=/usr/local" >> $GITHUB_ENV + brew install lua libtool + echo "LUA_PREFIX=$(brew --prefix)" >> $GITHUB_ENV + + - name: Grant microphone access for macos-14 + if: matrix.runner == 'macos-14' + run: | + # Temporary fix to fix microphone permission issues for macos-14 when playing sound. + sqlite3 $HOME/Library/Application\ Support/com.apple.TCC/TCC.db "INSERT OR IGNORE INTO access VALUES ('kTCCServiceMicrophone','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,0,'UNUSED',NULL,0,1687786159,NULL,NULL,'UNUSED',1687786159);" - name: Set up environment run: | @@ -355,6 +373,11 @@ jobs: "${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-1.vim -c quit "${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-2.vim -c quit + - name: Install packages for testing + run: | + # Apple diff is broken. Use GNU diff instead. See #14032. + brew install diffutils + - name: Test timeout-minutes: 20 run: | @@ -385,11 +408,11 @@ jobs: # winpty WINPTY_URL: https://github.com/rprichard/winpty/releases/download/0.4.3/winpty-0.4.3-msvc2015.zip # libsodium - SODIUM_VER: '1.0.18' + SODIUM_VER: '1.0.19' SODIUM_MSVC_URL: https://download.libsodium.org/libsodium/releases/libsodium-%SODIUM_VER%-stable-msvc.zip SODIUM_MSVC_VER: v143 SODIUM_MINGW_URL: https://download.libsodium.org/libsodium/releases/libsodium-%SODIUM_VER%-stable-mingw.tar.gz - SODIUM_MINGW_VER: 23 + SODIUM_MINGW_VER: 26 # Escape sequences COL_RED: "\x1b[31m" COL_GREEN: "\x1b[32m" @@ -451,7 +474,10 @@ jobs: echo "SODIUM_LIB=${SODIUM_DIR}\\${{ matrix.arch == 'x64' && 'x64' || 'Win32' }}\\Release\\${SODIUM_MSVC_VER}\\dynamic" >> $GITHUB_ENV else SODIUM_DIR=D:\\libsodium-win${{ matrix.arch == 'x64' && '64' || '32' }} + # do not want \L to end up in pathdef.c and compiler complaining about unknown escape sequences \l + SODIUM_DIR_SLASH=D:/libsodium-win${{ matrix.arch == 'x64' && '64' || '32' }} echo "SODIUM_LIB=${SODIUM_DIR}\\bin" >> $GITHUB_ENV + echo "SODIUM_DIR_SLASH=${SODIUM_DIR_SLASH}" >> $GITHUB_ENV fi echo "SODIUM_DIR=${SODIUM_DIR}" >> $GITHUB_ENV @@ -477,7 +503,7 @@ jobs: echo %SODIUM_VER%>> urls.txt - name: Cache downloaded files - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: downloads key: ${{ runner.os }}-${{ matrix.arch }}-${{ hashFiles('urls.txt') }} @@ -575,7 +601,7 @@ jobs: DYNAMIC_PYTHON=yes PYTHON=${PYTHON_DIR} \ DYNAMIC_PYTHON3=yes PYTHON3=${PYTHON3_DIR} \ DYNAMIC_PYTHON3_STABLE_ABI=${PYTHON3_STABLE} \ - DYNAMIC_SODIUM=yes SODIUM=${SODIUM_DIR} \ + DYNAMIC_SODIUM=yes SODIUM=${SODIUM_DIR_SLASH} \ STATIC_STDCPLUS=yes COVERAGE=${{ matrix.coverage }} else mingw32-make -f Make_ming.mak -j2 \ @@ -660,7 +686,8 @@ jobs: - name: Codecov timeout-minutes: 20 if: matrix.coverage - uses: codecov/codecov-action@v3 + uses: codecov/codecov-action@v4 with: directory: src flags: windows,${{ matrix.toolchain }}-${{ matrix.arch }}-${{ matrix.features }} + token: ${{ secrets.CODECOV_TOKEN }} diff --git a/.gitignore b/.gitignore index 3a55d25..5244447 100644 --- a/.gitignore +++ b/.gitignore @@ -97,6 +97,11 @@ src/kword_test # Generated by "make install" runtime/doc/doctags +# Temporarily generated by "runtime/syntax/generator/make" +runtime/syntax/generator/generator.err +runtime/syntax/generator/sanity_check.err +runtime/syntax/generator/vim.vim.rc + # Generated by "make shadow". The directory names could be anything but we # restrict them to shadow (the default) or shadow-* src/shadow diff --git a/Filelist b/Filelist index d4fbca3..b7b3907 100644 --- a/Filelist +++ b/Filelist @@ -1,7 +1,7 @@ # List of distributed Vim files. # Used by Makefile. -# source files for all source archives +# Source files for all source archives. SRC_ALL = \ .cirrus.yml \ .gitattributes \ @@ -20,6 +20,7 @@ SRC_ALL = \ ci/config.mk*.sed \ ci/if_ver*.vim \ ci/setup-xvfb.sh \ + ci/remove_snap.sh \ src/Make_all.mak \ src/README.md \ src/alloc.c \ @@ -429,7 +430,7 @@ SRC_ALL = \ src/xdiff/xutils.h \ -# source files for Unix only +# Source files for Unix-like only. SRC_UNIX = \ Makefile \ Filelist \ @@ -495,7 +496,7 @@ SRC_UNIX = \ src/which.sh \ src/xxd/Makefile \ -# source files for both DOS and Unix +# Source files for both MS Windows and Unix-like. SRC_DOS_UNIX = \ src/gui_xim.c \ src/if_cscope.c \ @@ -521,7 +522,7 @@ SRC_DOS_UNIX = \ src/proto/if_tcl.pro \ src/typemap \ -# source files for MS-Windows (also in the extra archive) +# Source files for MS Windows (also in the extra archive). SRC_DOS = \ src/GvimExt/*.mak \ src/GvimExt/GvimExt.reg \ @@ -597,7 +598,7 @@ SRC_DOS = \ nsis/lang/*.nsi \ uninstall.txt \ -# source files for DOS without CR/LF translation (also in the extra archive) +# Source files for MS Windows without CR/LF translation (also in the extra archive). SRC_DOS_BIN = \ src/tearoff.bmp \ src/tools.bmp \ @@ -614,10 +615,10 @@ SRC_DOS_BIN = \ runtime/bitmaps/vim.ico \ nsis/icons.zip \ -# source files for Amiga, DOS, etc. (also in the extra archive) +# Source files for Amiga, DOS, etc. (also in the extra archive). SRC_AMI_DOS = \ -# source files for Amiga (also in the extra archive) +# Source files for Amiga (also in the extra archive). SRC_AMI = \ README_amisrc.txt \ README_amisrc.txt.info \ @@ -631,7 +632,7 @@ SRC_AMI = \ src/testdir/amiga.vim \ src/xxd/Make_amiga.mak \ -# source files for Haiku (also in the extra archive) +# Source files for Haiku (also in the extra archive). SRC_HAIKU = \ README_haiku.txt \ src/os_haiku.h \ @@ -640,7 +641,7 @@ SRC_HAIKU = \ src/gui_haiku.h \ src/proto/gui_haiku.pro \ -# source files for the Mac (also in the extra archive) +# Source files for the Mac (also in the extra archive). SRC_MAC = \ src/INSTALLmac.txt \ src/os_mac.h \ @@ -649,7 +650,7 @@ SRC_MAC = \ src/proto/os_mac_conv.pro \ src/proto/os_macosx.pro \ -# source files for VMS (in the extra archive) +# Source files for VMS (in the extra archive). SRC_VMS = \ src/INSTALLvms.txt \ src/Make_vms.mms \ @@ -663,7 +664,7 @@ SRC_VMS = \ src/xxd/Make_vms.mms \ vimtutor.com \ -# source files for QNX (in the extra archive) +# Source files for QNX (in the extra archive). SRC_QNX = \ src/os_qnx.c \ src/os_qnx.h \ @@ -671,7 +672,7 @@ SRC_QNX = \ src/proto/gui_photon.pro \ src/proto/os_qnx.pro \ -# source files for the extra archive (all sources that are not for Unix) +# Source files for the extra archive (all sources that are not for Unix). SRC_EXTRA = \ $(SRC_AMI) \ $(SRC_AMI_DOS) \ @@ -686,7 +687,7 @@ SRC_EXTRA = \ src/os_vms_fix.com \ src/toolbar.phi \ -# runtime files for all distributions +# Runtime files for all distributions. RT_ALL = \ README.txt \ README.md \ @@ -777,12 +778,12 @@ RT_ALL = \ runtime/pack/dist/opt/swapmouse/plugin/swapmouse.vim \ runtime/pack/dist/opt/termdebug/plugin/termdebug.vim \ -# runtime files for all distributions without CR-NL translation +# Runtime files for all distributions without CR/LF translation. RT_ALL_BIN = \ runtime/doc/tags \ runtime/print/*.ps \ -# runtime script files +# Runtime script files. RT_SCRIPTS = \ runtime/filetype.vim \ runtime/scripts.vim \ @@ -824,10 +825,17 @@ RT_SCRIPTS = \ runtime/syntax/Makefile \ runtime/syntax/testdir/README.txt \ runtime/syntax/testdir/runtest.vim \ + runtime/syntax/testdir/ftplugin/*.* \ runtime/syntax/testdir/input/*.* \ + runtime/syntax/testdir/input/setup/*.* \ runtime/syntax/testdir/dumps/*.dump \ + runtime/syntax/generator/Makefile \ + runtime/syntax/generator/README.md \ + runtime/syntax/generator/gen_syntax_vim.vim \ + runtime/syntax/generator/update_date.vim \ + runtime/syntax/generator/vim.vim.base \ -# Unix runtime +# Unix-like runtime. RT_UNIX = \ README_unix.txt \ runtime/hi16-action-make.png \ @@ -835,7 +843,7 @@ RT_UNIX = \ runtime/gvim.desktop \ runtime/vim.desktop \ -# Unix and DOS runtime without CR-LF translation +# Unix-like and MS Windows runtime without CR/LF translation. RT_UNIX_DOS_BIN = \ runtime/vim16x16.gif \ runtime/vim16x16.png \ @@ -847,10 +855,10 @@ RT_UNIX_DOS_BIN = \ runtime/vim48x48.png \ runtime/vim48x48.xpm \ -# runtime not for unix or extra +# Runtime not for Unix-like or extra. RT_NO_UNIX = \ -# runtime for Amiga (also in the extra archive) +# Runtime for Amiga (also in the extra archive). RT_AMI_DOS = \ runtime/doc/evim.man \ runtime/doc/vim.man \ @@ -858,20 +866,22 @@ RT_AMI_DOS = \ runtime/doc/vimtutor.man \ runtime/doc/xxd.man \ -# DOS runtime (also in the extra archive) +# MS Windows runtime (also in the extra archive). RT_DOS = \ README_dos.txt \ runtime/doc/Make_mvc.mak \ + runtime/indent/Make_mvc.mak \ runtime/tutor/Make_mvc.mak \ runtime/lang/Make_mvc.mak \ vimtutor.bat \ -# DOS runtime without CR-LF translation (also in the extra archive) +# MS Windows runtime without CR/LF translation (also in the extra archive). RT_DOS_BIN = \ runtime/vimlogo.cdr \ runtime/vimlogo.eps \ runtime/vimlogo.gif \ runtime/vimlogo.pdf \ + runtime/vimlogo.svg \ # Amiga runtime (also in the extra archive) RT_AMI = \ @@ -893,7 +903,7 @@ RT_AMI = \ runtime/tutor.info \ runtime/tutor/*.info \ -# runtime files in extra archive +# Runtime files in extra archive. RT_EXTRA = \ $(RT_AMI) \ $(RT_AMI_DOS) \ @@ -901,46 +911,46 @@ RT_EXTRA = \ $(RT_DOS_BIN) \ README_mac.txt \ -# included in all Amiga archives +# Included in all Amiga archives. ROOT_AMI = \ Contents \ Contents.info \ runtime.info \ vimdir.info \ -# root files for the extra archive +# Root files for the extra archive. ROOT_EXTRA = \ $(ROOT_AMI) \ -# files for Amiga small binary (also in extra archive) +# Files for Amiga small binary (also in extra archive). BIN_AMI = \ README_amibin.txt \ README_amibin.txt.info \ Vim.info \ Xxd.info \ -# files for DOS binary (also in extra archive) +# Files for MS Windows binary (also in extra archive). BIN_DOS = \ README_bindos.txt \ uninstall.txt \ -# files for Win32 OLE binary (also in extra archive) +# Files for Win32 OLE binary (also in extra archive). BIN_OLE = \ README_ole.txt \ -# files for Win32s binary (also in extra archive) +# Files for Win32s binary (also in extra archive). BIN_W32S = \ README_w32s.txt \ -# files for VMS binary (also in extra archive) +# Files for VMS binary (also in extra archive). BIN_VMS = \ README_vms.txt \ -# files for OS/2 binary (also in extra archive) +# Files for OS/2 binary (also in extra archive). BIN_OS2 = \ README_os2.txt \ -# binary files for extra archive +# Binary files for extra archive. BIN_EXTRA = \ $(BIN_AMI) \ $(BIN_DOS) \ @@ -949,7 +959,7 @@ BIN_EXTRA = \ $(BIN_VMS) \ $(BIN_OS2) \ -# all files for extra archive +# All files for extra archive. EXTRA = \ $(BIN_EXTRA) \ $(ROOT_EXTRA) \ @@ -958,7 +968,7 @@ EXTRA = \ README_extra.txt \ runtime/vimlogo.xpm \ -# files in READMEdir that are included from the top dir +# Files in READMEdir that are included from the top dir. IN_README_DIR = \ README.txt.info \ README_ami.txt \ @@ -978,6 +988,7 @@ IN_README_DIR = \ README_src.txt \ README_srcdos.txt \ README_unix.txt \ + README_vimlogo.txt \ README_vms.txt \ README_w32s.txt \ Contents \ @@ -988,7 +999,7 @@ IN_README_DIR = \ src.info \ vimdir.info \ -# generic language files +# Generic language files. LANG_GEN = \ runtime/doc/*-da.1 \ runtime/doc/*-da.UTF-8.1 \ @@ -1041,7 +1052,7 @@ LANG_GEN = \ runtime/spell/main.aap \ runtime/spell/*.vim \ -# generic language files, binary +# Generic language files, binary. LANG_GEN_BIN = \ runtime/spell/README_en.txt \ runtime/spell/en.ascii.spl \ @@ -1051,7 +1062,7 @@ LANG_GEN_BIN = \ runtime/spell/en.latin1.sug \ runtime/spell/en.utf-8.sug \ -# all files for lang archive +# All files for lang archive. LANG_SRC = \ src/po/README.txt \ src/po/README_mingw.txt \ @@ -1071,7 +1082,7 @@ LANG_SRC = \ src/po/big5corr.c \ src/po/*.po \ -# the language files for the Win32 lang archive +# The language files for the Win32 lang archive. LANG_DOS = \ src/po/*.mo \ diff --git a/READMEdir/README_vimlogo.txt b/READMEdir/README_vimlogo.txt new file mode 100644 index 0000000..9798b10 --- /dev/null +++ b/READMEdir/README_vimlogo.txt @@ -0,0 +1,11 @@ +The Python project that creates `vimlogo.svg` can be found at +`https://github.com/ShayHill/vimlogo`. The Vim license applies. + +`vimlogo.svg` is an effort to remove errors and inadvertant inconsistencies +from the original vim logo while maintaing the original design. `vimlogo.svg` +is based on the `vimlogo.svg` file (previously?) found at +`https://www.vim.org/logos.php` + +As of 2024 Jan 30, `vimlogo.svg` is a separate project from `vimlogo.cdr`, +`vimlogo.eps`, `vimlogo.gif`, `vimlogo.pdf`, and `vimlogo.xpm`, all of which +are slightly different from each other. diff --git a/ci/remove_snap.sh b/ci/remove_snap.sh new file mode 100644 index 0000000..a812307 --- /dev/null +++ b/ci/remove_snap.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env sh +pushd /etc/apt/preferences.d/ +cat > nosnap.pref < -# Last Change: 2024 Jan 05 +# Last Change: 2024 Feb 18 # Former Maintainer: Bram Moolenaar # These functions are moved here from runtime/filetype.vim to make startup @@ -531,7 +531,7 @@ def IsLProlog(): bool enddef def IsModula2(): bool - return getline(nextnonblank(1)) =~ '\ " Maintainer: SungHyun Nam " Autoload Split: Bram Moolenaar -" Last Change: 2023 Jun 28 +" Last Change: 2024 Jan 17 (make it work on AIX, see #13847) let s:cpo_save = &cpo set cpo-=C @@ -13,14 +13,26 @@ let s:man_tag_depth = 0 let s:man_sect_arg = "" let s:man_find_arg = "-w" try - if !has("win32") && $OSTYPE !~ 'cygwin\|linux' && system('uname -s') =~ "SunOS" && system('uname -r') =~ "^5" - let s:man_sect_arg = "-s" - let s:man_find_arg = "-l" + if !has("win32") && $OSTYPE !~ 'cygwin\|linux' + " cache the value + let uname_s = system('uname -s') + + if uname_s =~ "SunOS" && system('uname -r') =~ "^5" + " Special Case for Man on SunOS + let s:man_sect_arg = "-s" + let s:man_find_arg = "-l" + elseif uname_s =~? 'AIX' + " Special Case for Man on AIX + let s:man_sect_arg = "" + let s:man_find_arg = "" + endif endif catch /E145:/ " Ignore the error in restricted mode endtry +unlet! uname_s + func s:ParseIntoPageAndSection() " Accommodate a reference that terminates in a hyphen. " diff --git a/runtime/autoload/dist/vimindent.vim b/runtime/autoload/dist/vimindent.vim index a5e04a5..07b2153 100644 --- a/runtime/autoload/dist/vimindent.vim +++ b/runtime/autoload/dist/vimindent.vim @@ -3,6 +3,9 @@ vim9script # Language: Vim script # Maintainer: github user lacygoill # Last Change: 2023 Jun 29 +# +# Includes Changes from Vim: +# - 2024 Feb 09: Fix indent after literal Dict (A. Radev via #13966) # NOTE: Whenever you change the code, make sure the tests are still passing: # @@ -381,7 +384,7 @@ const LINE_CONTINUATION_AT_EOL: string = '\%(' # It can be the start of a dictionary or a block. # We only want to match the former. .. '\|' .. $'^\%({STARTS_CURLY_BLOCK}\)\@!.*\zs{{' - .. '\)\s*\%(\s#.*\)\=$' + .. '\)\s*\%(\s#[^{].*\)\=$' # }}}2 # SOL {{{2 # BACKSLASH_AT_SOL {{{3 diff --git a/runtime/autoload/getscript.vim b/runtime/autoload/getscript.vim index 1b14fe1..1fd4e63 100644 --- a/runtime/autoload/getscript.vim +++ b/runtime/autoload/getscript.vim @@ -1,6 +1,7 @@ " --------------------------------------------------------------------- " getscript.vim -" Author: Charles E. Campbell +" Maintainer: This runtime file is looking for a new maintainer. +" Original Author: Charles E. Campbell " Date: Jan 21, 2014 " Version: 36 " Installing: :help glvs-install diff --git a/runtime/autoload/netrw.vim b/runtime/autoload/netrw.vim index 748ac22..2206c21 100644 --- a/runtime/autoload/netrw.vim +++ b/runtime/autoload/netrw.vim @@ -1,11 +1,14 @@ " netrw.vim: Handles file transfer and remote directory listing across " AUTOLOAD SECTION -" Date: May 03, 2023 +" Maintainer: This runtime file is looking for a new maintainer. +" Date: May 03, 2023 " Version: 173a " Last Change: " 2023 Nov 21 by Vim Project: ignore wildignore when expanding $COMSPEC (v173a) " 2023 Nov 22 by Vim Project: fix handling of very long filename on longlist style (v173a) -" Maintainer: Charles E Campbell +" 2024 Feb 19 by Vim Project: (announce adoption) +" 2024 Feb 29 by Vim Project: handle symlinks in tree mode correctly +" Former Maintainer: Charles E Campbell " GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim " Copyright: Copyright (C) 2016 Charles E. Campbell {{{1 " Permission is hereby granted to use and distribute this code, @@ -2020,7 +2023,7 @@ fun! NetrwStatusLine() if !exists("w:netrw_explore_bufnr") || w:netrw_explore_bufnr != bufnr("%") || !exists("w:netrw_explore_line") || w:netrw_explore_line != line(".") || !exists("w:netrw_explore_list") " restore user's status line - let &stl = s:netrw_users_stl + let &l:stl = s:netrw_users_stl let &laststatus = s:netrw_users_ls if exists("w:netrw_explore_bufnr")|unlet w:netrw_explore_bufnr|endif if exists("w:netrw_explore_line") |unlet w:netrw_explore_line |endif @@ -2121,9 +2124,9 @@ fun! netrw#NetRead(mode,...) let wholechoice = wholechoice . " " . choice let ichoice = ichoice + 1 if ichoice > a:0 - if !exists("g:netrw_quiet") - call netrw#ErrorMsg(s:ERROR,"Unbalanced string in filename '". wholechoice ."'",3) - endif + if !exists("g:netrw_quiet") + call netrw#ErrorMsg(s:ERROR,"Unbalanced string in filename '". wholechoice ."'",3) + endif " call Dret("netrw#NetRead :2 getcwd<".getcwd().">") return endif @@ -2544,9 +2547,9 @@ fun! netrw#NetWrite(...) range let wholechoice= wholechoice . " " . choice let ichoice = ichoice + 1 if choice > a:0 - if !exists("g:netrw_quiet") - call netrw#ErrorMsg(s:ERROR,"Unbalanced string in filename '". wholechoice ."'",13) - endif + if !exists("g:netrw_quiet") + call netrw#ErrorMsg(s:ERROR,"Unbalanced string in filename '". wholechoice ."'",13) + endif " call Dret("netrw#NetWrite") return endif @@ -2817,7 +2820,7 @@ fun! netrw#NetWrite(...) range if a:firstline == 1 && a:lastline == line("$") " restore modifiability; usually equivalent to set nomod - let &mod= mod + let &l:mod= mod " call Decho(" ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("")) elseif !exists("leavemod") " indicate that the buffer has not been modified since last written @@ -3006,7 +3009,7 @@ fun! s:NetrwGetFile(readcmd, tfile, method) setl isk-=/ filetype detect " call Decho("..local filetype<".&ft."> for buf#".bufnr()."<".bufname().">") - let &isk= iskkeep + let &l:isk= iskkeep " call Dredir("ls!","NetrwGetFile (renamed buffer back to remote filename<".rfile."> : expand(%)<".expand("%").">)") let line1 = 1 let line2 = line("$") @@ -5003,12 +5006,12 @@ fun! s:NetrwBrowseChgDir(islocal,newdir,...) if g:netrw_chgwin >= 1 " call Decho("edit-a-file: changing window to #".g:netrw_chgwin.": (due to g:netrw_chgwin)",'~'.expand("")) if winnr("$")+1 == g:netrw_chgwin - " if g:netrw_chgwin is set to one more than the last window, then - " vertically split the last window to make that window available. - let curwin= winnr() - exe "NetrwKeepj keepalt ".winnr("$")."wincmd w" - vs - exe "NetrwKeepj keepalt ".g:netrw_chgwin."wincmd ".curwin + " if g:netrw_chgwin is set to one more than the last window, then + " vertically split the last window to make that window available. + let curwin= winnr() + exe "NetrwKeepj keepalt ".winnr("$")."wincmd w" + vs + exe "NetrwKeepj keepalt ".g:netrw_chgwin."wincmd ".curwin endif exe "NetrwKeepj keepalt ".g:netrw_chgwin."wincmd w" endif @@ -6127,7 +6130,7 @@ fun! s:NetrwServerEdit(islocal,fname) " used something like . " call Decho("user must have closed server AND did not use ctrl-r",'~'.expand("")) if exists("g:netrw_browse_split") - unlet g:netrw_browse_split + unlet g:netrw_browse_split endif let g:netrw_browse_split= 0 if exists("s:netrw_browse_split_".winnr()) @@ -6161,7 +6164,7 @@ fun! s:NetrwServerEdit(islocal,fname) if !ctrlr " call Decho("server<".g:netrw_servername."> not available and ctrl-r not used",'~'.expand("")) if exists("g:netrw_browse_split") - unlet g:netrw_browse_split + unlet g:netrw_browse_split endif let g:netrw_browse_split= 0 call s:NetrwBrowse(islocal,s:NetrwBrowseChgDir(islocal,a:fname)) @@ -6679,14 +6682,14 @@ fun! s:NetrwMaps(islocal) nmap <2-leftmouse> Netrw2Leftmouse imap ILeftmouse imap IMiddlemouse - nno NetrwLeftmouse :call NetrwLeftmouse(1) - nno NetrwCLeftmouse :call NetrwCLeftmouse(1) - nno NetrwMiddlemouse :call NetrwPrevWinOpen(1) - nno NetrwSLeftmouse :call NetrwSLeftmouse(1) - nno NetrwSLeftdrag :call NetrwSLeftdrag(1) + nno NetrwLeftmouse :exec "norm! \leftmouse>"call NetrwLeftmouse(1) + nno NetrwCLeftmouse :exec "norm! \leftmouse>"call NetrwCLeftmouse(1) + nno NetrwMiddlemouse :exec "norm! \leftmouse>"call NetrwPrevWinOpen(1) + nno NetrwSLeftmouse :exec "norm! \leftmouse>"call NetrwSLeftmouse(1) + nno NetrwSLeftdrag :exec "norm! \leftmouse>"call NetrwSLeftdrag(1) nmap Netrw2Leftmouse - - exe 'nnoremap :call NetrwLocalRm("'.mapsafecurdir.'")' - exe 'vnoremap :call NetrwLocalRm("'.mapsafecurdir.'")' + exe 'nnoremap :exec "norm! \leftmouse>"call NetrwLocalRm("'.mapsafecurdir.'")' + exe 'vnoremap :exec "norm! \leftmouse>"call NetrwLocalRm("'.mapsafecurdir.'")' endif exe 'nnoremap :call NetrwLocalRm("'.mapsafecurdir.'")' exe 'nnoremap D :call NetrwLocalRm("'.mapsafecurdir.'")' @@ -6780,22 +6783,22 @@ fun! s:NetrwMaps(islocal) nnoremap NetrwRefresh :call NetrwRefresh(0,NetrwBrowseChgDir(0,'./')) if g:netrw_mousemaps == 1 nmap NetrwLeftmouse - nno NetrwLeftmouse :call NetrwLeftmouse(0) + nno NetrwLeftmouse :exec "norm! \leftmouse>"call NetrwLeftmouse(0) nmap NetrwCLeftmouse - nno NetrwCLeftmouse :call NetrwCLeftmouse(0) + nno NetrwCLeftmouse :exec "norm! \leftmouse>"call NetrwCLeftmouse(0) nmap NetrwSLeftmouse - nno NetrwSLeftmouse :call NetrwSLeftmouse(0) + nno NetrwSLeftmouse :exec "norm! \leftmouse>"call NetrwSLeftmouse(0) nmap NetrwSLeftdrag - nno NetrwSLeftdrag :call NetrwSLeftdrag(0) + nno NetrwSLeftdrag :exec "norm! \leftmouse>"call NetrwSLeftdrag(0) nmap NetrwMiddlemouse - nno NetrwMiddlemouse :call NetrwPrevWinOpen(0) + nno NetrwMiddlemouse :exec "norm! \leftmouse>"call NetrwPrevWinOpen(0) nmap <2-leftmouse> Netrw2Leftmouse nmap Netrw2Leftmouse - imap ILeftmouse imap IMiddlemouse imap ISLeftmouse - exe 'nnoremap :call NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")' - exe 'vnoremap :call NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")' + exe 'nnoremap :exec "norm! \leftmouse>"call NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")' + exe 'vnoremap :exec "norm! \leftmouse>"call NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")' endif exe 'nnoremap :call NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")' exe 'nnoremap d :call NetrwMakeDir("'.mapsafeusermach.'")' @@ -7506,7 +7509,7 @@ fun! s:NetrwMarkFileExe(islocal,enbloc) for fname in s:netrwmarkfilelist_{curbufnr} if a:islocal if g:netrw_keepdir - let fname= s:ShellEscape(netrw#WinPath(s:ComposePath(curdir,fname))) + let fname= s:ShellEscape(netrw#WinPath(s:ComposePath(curdir,fname))) endif else let fname= s:ShellEscape(netrw#WinPath(b:netrw_curdir.fname)) @@ -7862,7 +7865,7 @@ fun! s:NetrwMarkFileMove(islocal) let movecmd = netrw#WinPath(movecmd).movecmdargs " call Decho("windows exception: movecmd<".movecmd."> (#1: had a space)",'~'.expand("")) else - let movecmd = netrw#WinPath(movecmd) + let movecmd = netrw#WinPath(g:netrw_localmovecmd) " call Decho("windows exception: movecmd<".movecmd."> (#2: no space)",'~'.expand("")) endif else @@ -7876,10 +7879,6 @@ fun! s:NetrwMarkFileMove(islocal) endif if !g:netrw_cygwin && (has("win32") || has("win95") || has("win64") || has("win16")) let fname= substitute(fname,'/','\\','g') - if g:netrw_keepdir - " Jul 19, 2022: fixing file move when g:netrw_keepdir is 1 - let fname= b:netrw_curdir."\\".fname - endif endif " call Decho("system(".movecmd." ".s:ShellEscape(fname)." ".tgt.")",'~'.expand("")) let ret= system(movecmd.g:netrw_localmovecmdopt." ".s:ShellEscape(fname)." ".tgt) @@ -9478,7 +9477,7 @@ fun! s:NetrwTreeDir(islocal) " call Decho("treedir<".treedir.">",'~'.expand("")) elseif curline =~ '@$' " call Decho("handle symbolic link from current line",'~'.expand("")) - let treedir= resolve(substitute(substitute(getline('.'),'@.*$','','e'),'^|*\s*','','e')) + let potentialdir= resolve(substitute(substitute(getline('.'),'@.*$','','e'),'^|*\s*','','e')) " call Decho("treedir<".treedir.">",'~'.expand("")) else " call Decho("do not extract tree subdirectory from current line and set treedir to empty",'~'.expand("")) @@ -9503,7 +9502,6 @@ fun! s:NetrwTreeDir(islocal) " call Decho("COMBAK#23 : mod=".&mod." win#".winnr()) " call Decho("islocal=".a:islocal." curline<".curline.">",'~'.expand("")) - let potentialdir= s:NetrwFile(substitute(curline,'^'.s:treedepthstring.'\+ \(.*\)@$','\1','')) " call Decho("potentialdir<".potentialdir."> isdir=".isdirectory(potentialdir),'~'.expand("")) " call Decho("COMBAK#24 : mod=".&mod." win#".winnr()) @@ -9516,8 +9514,15 @@ fun! s:NetrwTreeDir(islocal) " " call Decho("newdir <".newdir.">",'~'.expand("")) " else " call Decho("apply NetrwTreePath to treetop<".w:netrw_treetop.">",'~'.expand("")) - let treedir = s:NetrwTreePath(w:netrw_treetop) -" endif + if a:islocal && curline =~ '@$' + if isdirectory(s:NetrwFile(potentialdir)) + let treedir = w:netrw_treetop.'/'.potentialdir.'/' + let w:netrw_treetop = treedir + endif + else + let potentialdir= s:NetrwFile(substitute(curline,'^'.s:treedepthstring.'\+ \(.*\)@$','\1','')) + let treedir = s:NetrwTreePath(w:netrw_treetop) + endif endif " call Decho("COMBAK#25 : mod=".&mod." win#".winnr()) @@ -10215,7 +10220,7 @@ fun! s:SetupNetrwStatusLine(statline) " set up status line (may use User9 highlighting) " insure that windows have a statusline " make sure statusline is displayed - let &stl=a:statline + let &l:stl=a:statline setl laststatus=2 " call Decho("stl=".&stl,'~'.expand("")) redraw @@ -10331,7 +10336,7 @@ fun! s:NetrwRemoteFtpCmd(path,listcmd) setl ff=unix " restore settings - let &ff= ffkeep + let &l:ff= ffkeep " call Dret("NetrwRemoteFtpCmd") return @@ -10368,7 +10373,7 @@ fun! s:NetrwRemoteFtpCmd(path,listcmd) endif " restore settings " {{{3 - let &ff= ffkeep + let &l:ff= ffkeep " call Dret("NetrwRemoteFtpCmd") endfun @@ -10672,7 +10677,7 @@ fun! s:NetrwRemoteRmFile(path,rmfile,all) NetrwKeepj call netrw#ErrorMsg(s:ERROR,"for some reason b:netrw_curdir doesn't exist!",53) let ok="q" else - let remotedir= substitute(b:netrw_curdir,'^.*//[^/]\+/\(.*\)$','\1','') + let remotedir= substitute(b:netrw_curdir,'^.\{-}//[^/]\+/\(.*\)$','\1','') " call Decho("netrw_rm_cmd<".netrw_rm_cmd.">",'~'.expand("")) " call Decho("remotedir<".remotedir.">",'~'.expand("")) " call Decho("rmfile<".a:rmfile.">",'~'.expand("")) @@ -10685,7 +10690,7 @@ fun! s:NetrwRemoteRmFile(path,rmfile,all) let ret= system(netrw_rm_cmd) if v:shell_error != 0 if exists("b:netrw_curdir") && b:netrw_curdir != getcwd() && !g:netrw_keepdir - call netrw#ErrorMsg(s:ERROR,"remove failed; perhaps due to vim's current directory<".getcwd()."> not matching netrw's (".b:netrw_curdir.") (see :help netrw-cd)",102) + call netrw#ErrorMsg(s:ERROR,"remove failed; perhaps due to vim's current directory<".getcwd()."> not matching netrw's (".b:netrw_curdir.") (see :help netrw-cd)",102) else call netrw#ErrorMsg(s:WARNING,"cmd<".netrw_rm_cmd."> failed",60) endif @@ -11193,16 +11198,16 @@ fun! s:LocalListing() " call Decho("pfile <".pfile.">",'~'.expand("")) if w:netrw_liststyle == s:LONGLIST - let longfile= printf("%-".g:netrw_maxfilenamelen."S",pfile) - let sz = getfsize(filename) - let szlen = 15 - (strdisplaywidth(longfile) - g:netrw_maxfilenamelen) - let szlen = (szlen > 0) ? szlen : 0 + let longfile = printf("%-".g:netrw_maxfilenamelen."S",pfile) + let sz = getfsize(filename) + let szlen = 15 - (strdisplaywidth(longfile) - g:netrw_maxfilenamelen) + let szlen = (szlen > 0) ? szlen : 0 if g:netrw_sizestyle =~# "[hH]" let sz= s:NetrwHumanReadable(sz) endif let fsz = printf("%".szlen."S",sz) - let pfile = longfile." ".fsz." ".strftime(g:netrw_timefmt,getftime(filename)) + let pfile= longfile." ".fsz." ".strftime(g:netrw_timefmt,getftime(filename)) " call Decho("longlist support: sz=".sz." fsz=".fsz,'~'.expand("")) endif @@ -11587,7 +11592,7 @@ endfun " netrw#RFC2396: converts %xx into characters {{{2 fun! netrw#RFC2396(fname) " call Dfunc("netrw#RFC2396(fname<".a:fname.">)") - let fname = escape(substitute(a:fname,'%\(\x\x\)','\=nr2char("0x".submatch(1))','ge')," \t") + let fname = escape(substitute(a:fname,'%\(\x\x\)','\=printf("%c","0x".submatch(1))','ge')," \t") " call Dret("netrw#RFC2396 ".fname) return fname endfun @@ -12222,7 +12227,7 @@ fun! s:NetrwLcd(newdir) if (has("win32") || has("win95") || has("win64") || has("win16")) && !g:netrw_cygwin if a:newdir =~ '^\\\\\w\+' || a:newdir =~ '^//\w\+' let dirname = '\' - exe 'NetrwKeepj sil lcd '.fnameescape(dirname) + exe 'NetrwKeepj sil lcd '.fnameescape(dirname) endif endif catch /^Vim\%((\a\+)\)\=:E472/ diff --git a/runtime/autoload/netrwFileHandlers.vim b/runtime/autoload/netrwFileHandlers.vim index d07235c..2b6f8f7 100644 --- a/runtime/autoload/netrwFileHandlers.vim +++ b/runtime/autoload/netrwFileHandlers.vim @@ -1,6 +1,7 @@ " netrwFileHandlers: contains various extension-based file handlers for " netrw's browsers' x command ("eXecute launcher") -" Author: Charles E. Campbell +" Maintainer: This runtime file is looking for a new maintainer. +" Original Author: Charles E. Campbell " Date: Sep 18, 2020 " Version: 11 " Copyright: Copyright (C) 1999-2012 Charles E. Campbell {{{1 diff --git a/runtime/autoload/netrwSettings.vim b/runtime/autoload/netrwSettings.vim index d65f831..5525c0d 100644 --- a/runtime/autoload/netrwSettings.vim +++ b/runtime/autoload/netrwSettings.vim @@ -1,6 +1,7 @@ " netrwSettings.vim: makes netrw settings simpler " Date: Nov 15, 2021 -" Maintainer: Charles E Campbell +" Maintainer: This runtime file is looking for a new maintainer. +" Former Maintainer: Charles E Campbell " Version: 18 " Copyright: Copyright (C) 1999-2007 Charles E. Campbell {{{1 " Permission is hereby granted to use and distribute this code, diff --git a/runtime/autoload/tar.vim b/runtime/autoload/tar.vim index adfc10c..9c4f16d 100644 --- a/runtime/autoload/tar.vim +++ b/runtime/autoload/tar.vim @@ -2,7 +2,8 @@ " AUTOLOAD PORTION " Date: Nov 14, 2023 " Version: 32b (with modifications from the Vim Project) -" Maintainer: Charles E Campbell +" Maintainer: This runtime file is looking for a new maintainer. +" Former Maintainer: Charles E Campbell " License: Vim License (see vim's :help license) " " Contains many ideas from Michael Toren's @@ -163,9 +164,9 @@ fun! tar#Browse(tarfile) " call Decho("1: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ") exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - " - elseif tarfile =~# '\.\(tgz\)$' || tarfile =~# '\.\(tbz\)$' || tarfile =~# '\.\(txz\)$' || tarfile =~# '\.\(tzs\)$' + elseif tarfile =~# '\.\(tgz\)$' || tarfile =~# '\.\(tbz\)$' || tarfile =~# '\.\(txz\)$' || tarfile =~# '\.\(tzst\)$' if has("unix") && executable("file") - let filekind= system("file ".shellescape(tarfile,1)) =~ "bzip2" + let filekind= system("file ".shellescape(tarfile,1)) else let filekind= "" endif @@ -192,7 +193,7 @@ fun! tar#Browse(tarfile) elseif tarfile =~# '\.\(xz\|txz\)$' " call Decho("3: exe silent r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ") exe "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - " - elseif tarfile =~# '\.\(zst\|tzs\)$' + elseif tarfile =~# '\.\(zst\|tzst\)$' exe "sil! r! zstd --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - " else if tarfile =~ '^\s*-' @@ -230,7 +231,7 @@ fun! tar#Browse(tarfile) " set up maps supported for tar setlocal noma nomod ro noremap :call TarBrowseSelect() - noremap x :call tar#Extract() + noremap x :call tar#Extract() if &mouse != "" noremap :call TarBrowseSelect() endif @@ -468,9 +469,9 @@ fun! tar#Write(fname) let compress= "xz -- ".shellescape(tarfile,0) " call Decho("compress<".compress.">") elseif tarfile =~# '\.zst' - call system("zstd --decompress -- ".shellescape(tarfile,0)) + call system("zstd --decompress --rm -- ".shellescape(tarfile,0)) let tarfile = substitute(tarfile,'\.zst','','e') - let compress= "zstd -- ".shellescape(tarfile,0) + let compress= "zstd --rm -- ".shellescape(tarfile,0) elseif tarfile =~# '\.lzma' call system("lzma -d -- ".shellescape(tarfile,0)) let tarfile = substitute(tarfile,'\.lzma','','e') @@ -486,7 +487,7 @@ fun! tar#Write(fname) else " call Decho("tarfile<".tarfile."> fname<".fname.">") - + if fname =~ '/' let dirpath = substitute(fname,'/[^/]\+$','','e') if has("win32unix") && executable("cygpath") @@ -502,7 +503,7 @@ fun! tar#Write(fname) let tarfile = substitute(tarfile, '-', './-', '') endif " call Decho("tarfile<".tarfile."> fname<".fname.">") - + if exists("g:tar_secure") let tar_secure= " -- " else @@ -512,7 +513,7 @@ fun! tar#Write(fname) if has("win32unix") && executable("cygpath") let tarfile = substitute(system("cygpath ".shellescape(tarfile,0)),'\n','','e') endif - + " delete old file from tarfile " call Decho("system(".g:tar_cmd." ".g:tar_delfile." ".shellescape(tarfile,0)." -- ".shellescape(fname,0).")") call system(g:tar_cmd." ".g:tar_delfile." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0)) @@ -521,8 +522,8 @@ fun! tar#Write(fname) " call Decho("***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname)) echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None else - - " update tarfile with new file + + " update tarfile with new file " call Decho(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0)) call system(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0)) if v:shell_error != 0 @@ -555,7 +556,7 @@ fun! tar#Write(fname) unlet s:tblfile_{winnr()} endif endif - + " cleanup and restore current directory cd .. call s:Rmdir("_ZIPVIM_") @@ -696,13 +697,13 @@ fun! tar#Extract() echo "***note*** successfully extracted ".fname endif - elseif filereadable(tarbase.".tzs") + elseif filereadable(tarbase.".tzst") let extractcmd= substitute(extractcmd,"-","--zstd","") -" call Decho("system(".extractcmd." ".shellescape(tarbase).".tzs ".shellescape(fname).")") - call system(extractcmd." ".shellescape(tarbase).".txz ".shellescape(fname)) +" call Decho("system(".extractcmd." ".shellescape(tarbase).".tzst ".shellescape(fname).")") + call system(extractcmd." ".shellescape(tarbase).".tzst ".shellescape(fname)) if v:shell_error != 0 - echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tzs ".fname.": failed!" | echohl NONE -" call Decho("***error*** ".extractcmd." ".tarbase.".tzs ".fname.": failed!") + echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tzst ".fname.": failed!" | echohl NONE +" call Decho("***error*** ".extractcmd." ".tarbase.".tzst ".fname.": failed!") else echo "***note*** successfully extracted ".fname endif @@ -710,7 +711,7 @@ fun! tar#Extract() elseif filereadable(tarbase.".tar.zst") let extractcmd= substitute(extractcmd,"-","--zstd","") " call Decho("system(".extractcmd." ".shellescape(tarbase).".tar.zst ".shellescape(fname).")") - call system(extractcmd." ".shellescape(tarbase).".tar.xz ".shellescape(fname)) + call system(extractcmd." ".shellescape(tarbase).".tar.zst ".shellescape(fname)) if v:shell_error != 0 echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar.zst ".fname.": failed!" | echohl NONE " call Decho("***error*** ".extractcmd." ".tarbase.".tar.zst ".fname.": failed!") diff --git a/runtime/autoload/vimball.vim b/runtime/autoload/vimball.vim index 9c7dcbd..774b798 100644 --- a/runtime/autoload/vimball.vim +++ b/runtime/autoload/vimball.vim @@ -1,6 +1,7 @@ " vimball.vim : construct a file containing both paths and files -" Author: Charles E. Campbell -" Date: Apr 11, 2016 +" Maintainer: This runtime file is looking for a new maintainer. +" Original Author: Charles E. Campbell +" Date: Apr 11, 2016 " Version: 37 " GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim " Copyright: (c) 2004-2011 by Charles E. Campbell diff --git a/runtime/autoload/zip.vim b/runtime/autoload/zip.vim index e61293c..c0034f8 100644 --- a/runtime/autoload/zip.vim +++ b/runtime/autoload/zip.vim @@ -2,7 +2,8 @@ " AUTOLOAD PORTION " Date: Mar 12, 2023 " Version: 33 -" Maintainer: Charles E Campbell +" Maintainer: This runtime file is looking for a new maintainer. +" Former Maintainer: Charles E Campbell " License: Vim License (see vim's :help license) " Copyright: Copyright (C) 2005-2019 Charles E. Campbell {{{1 " Permission is hereby granted to use and distribute this code, diff --git a/runtime/colors/blue.vim b/runtime/colors/blue.vim index c53f44f..f95cf27 100644 --- a/runtime/colors/blue.vim +++ b/runtime/colors/blue.vim @@ -4,7 +4,7 @@ " Maintainer: Original maintainer Steven Vertigan " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 15 Dec 2023 20:05:33 +" Last Updated: Mon 08 Jan 2024 09:42:49 AM AEDT " Generated by Colortemplate v2.2.3 @@ -76,8 +76,8 @@ hi Underlined guifg=NONE guibg=NONE gui=underline ctermfg=NONE ctermbg=NONE cter hi Label guifg=#ffd700 guibg=NONE gui=NONE cterm=NONE hi! link Terminal Normal hi! link Debug Special -hi! link diffAdded String -hi! link diffRemoved WarningMsg +hi! link Added String +hi! link Removed WarningMsg hi! link diffOnly WarningMsg hi! link diffNoEOL WarningMsg hi! link diffIsA WarningMsg @@ -186,8 +186,8 @@ if s:t_Co >= 256 hi Label ctermfg=220 ctermbg=NONE cterm=NONE hi! link Terminal Normal hi! link Debug Special - hi! link diffAdded String - hi! link diffRemoved WarningMsg + hi! link Added String + hi! link Removed WarningMsg hi! link diffOnly WarningMsg hi! link diffNoEOL WarningMsg hi! link diffIsA WarningMsg @@ -299,8 +299,8 @@ if s:t_Co >= 16 hi Label ctermfg=yellow ctermbg=NONE cterm=NONE hi! link Terminal Normal hi! link Debug Special - hi! link diffAdded String - hi! link diffRemoved WarningMsg + hi! link Added String + hi! link Removed WarningMsg hi! link diffOnly WarningMsg hi! link diffNoEOL WarningMsg hi! link diffIsA WarningMsg @@ -411,8 +411,8 @@ if s:t_Co >= 8 hi Label ctermfg=yellow ctermbg=NONE cterm=NONE hi! link Terminal Normal hi! link Debug Special - hi! link diffAdded String - hi! link diffRemoved WarningMsg + hi! link Added String + hi! link Removed WarningMsg hi! link diffOnly WarningMsg hi! link diffNoEOL WarningMsg hi! link diffIsA WarningMsg diff --git a/runtime/colors/darkblue.vim b/runtime/colors/darkblue.vim index 207d1ea..b792b90 100644 --- a/runtime/colors/darkblue.vim +++ b/runtime/colors/darkblue.vim @@ -4,7 +4,7 @@ " Maintainer: Original author Bohdan Vlasyuk " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 15 Dec 2023 20:05:33 +" Last Updated: Mon 08 Jan 2024 09:43:03 AM AEDT " Generated by Colortemplate v2.2.3 @@ -54,8 +54,8 @@ hi! link Structure Type hi! link Tag Special hi! link Typedef Type hi! link Debug Special -hi! link diffAdded String -hi! link diffRemoved WarningMsg +hi! link Added String +hi! link Removed WarningMsg hi! link diffOnly WarningMsg hi! link diffNoEOL WarningMsg hi! link diffIsA WarningMsg @@ -162,8 +162,8 @@ if s:t_Co >= 256 hi! link Tag Special hi! link Typedef Type hi! link Debug Special - hi! link diffAdded String - hi! link diffRemoved WarningMsg + hi! link Added String + hi! link Removed WarningMsg hi! link diffOnly WarningMsg hi! link diffNoEOL WarningMsg hi! link diffIsA WarningMsg diff --git a/runtime/colors/evening.vim b/runtime/colors/evening.vim index 3ac3242..2753daa 100644 --- a/runtime/colors/evening.vim +++ b/runtime/colors/evening.vim @@ -4,7 +4,7 @@ " Maintainer: Original maintainer Steven Vertigan " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 15 Dec 2023 20:05:35 +" Last Updated: Mon 08 Jan 2024 09:43:27 AM AEDT " Generated by Colortemplate v2.2.3 @@ -28,8 +28,8 @@ hi! link CursorIM Cursor hi! link LineNrAbove LineNr hi! link LineNrBelow LineNr hi! link Debug Special -hi! link diffAdded String -hi! link diffRemoved WarningMsg +hi! link Added String +hi! link Removed WarningMsg hi! link diffOnly WarningMsg hi! link diffNoEOL WarningMsg hi! link diffIsA WarningMsg @@ -136,8 +136,8 @@ if s:t_Co >= 256 hi! link LineNrAbove LineNr hi! link LineNrBelow LineNr hi! link Debug Special - hi! link diffAdded String - hi! link diffRemoved WarningMsg + hi! link Added String + hi! link Removed WarningMsg hi! link diffOnly WarningMsg hi! link diffNoEOL WarningMsg hi! link diffIsA WarningMsg @@ -247,8 +247,8 @@ if s:t_Co >= 16 hi! link LineNrAbove LineNr hi! link LineNrBelow LineNr hi! link Debug Special - hi! link diffAdded String - hi! link diffRemoved WarningMsg + hi! link Added String + hi! link Removed WarningMsg hi! link diffOnly WarningMsg hi! link diffNoEOL WarningMsg hi! link diffIsA WarningMsg diff --git a/runtime/colors/habamax.vim b/runtime/colors/habamax.vim index 4880482..f32a549 100644 --- a/runtime/colors/habamax.vim +++ b/runtime/colors/habamax.vim @@ -4,7 +4,7 @@ " Maintainer: Maxim Kim " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 15 Dec 2023 20:05:35 +" Last Updated: Mon 08 Jan 2024 09:39:53 AM AEDT " Generated by Colortemplate v2.2.3 @@ -106,8 +106,9 @@ hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE hi Debug guifg=#5f8787 guibg=NONE gui=NONE cterm=NONE hi DiffAdd guifg=#dadada guibg=#5f875f gui=NONE cterm=NONE hi DiffDelete guifg=#af875f guibg=NONE gui=NONE cterm=NONE -hi diffAdded guifg=#87af87 guibg=NONE gui=NONE cterm=NONE -hi diffRemoved guifg=#d75f5f guibg=NONE gui=NONE cterm=NONE +hi Added guifg=#87af87 guibg=NONE gui=NONE cterm=NONE +hi Changed guifg=#5f8787 guibg=NONE gui=NONE cterm=NONE +hi Removed guifg=#d75f5f guibg=NONE gui=NONE cterm=NONE hi diffSubname guifg=#af87af guibg=NONE gui=NONE cterm=NONE hi DiffText guifg=#dadada guibg=#878787 gui=NONE cterm=NONE hi DiffChange guifg=#bcbcbc guibg=#5f5f5f gui=NONE cterm=NONE @@ -199,8 +200,9 @@ if s:t_Co >= 256 hi Debug ctermfg=66 ctermbg=NONE cterm=NONE hi DiffAdd ctermfg=253 ctermbg=65 cterm=NONE hi DiffDelete ctermfg=137 ctermbg=NONE cterm=NONE - hi diffAdded ctermfg=108 ctermbg=NONE cterm=NONE - hi diffRemoved ctermfg=167 ctermbg=NONE cterm=NONE + hi Added ctermfg=108 ctermbg=NONE cterm=NONE + hi Changed ctermfg=66 ctermbg=NONE cterm=NONE + hi Removed ctermfg=167 ctermbg=NONE cterm=NONE hi diffSubname ctermfg=139 ctermbg=NONE cterm=NONE hi DiffText ctermfg=253 ctermbg=102 cterm=NONE hi DiffChange ctermfg=250 ctermbg=59 cterm=NONE @@ -277,8 +279,9 @@ if s:t_Co >= 16 hi Debug ctermfg=darkcyan ctermbg=NONE cterm=NONE hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE hi DiffDelete ctermfg=darkyellow ctermbg=NONE cterm=NONE - hi diffAdded ctermfg=darkgreen ctermbg=NONE cterm=NONE - hi diffRemoved ctermfg=darkred ctermbg=NONE cterm=NONE + hi Added ctermfg=darkgreen ctermbg=NONE cterm=NONE + hi Changed ctermfg=darkcyan ctermbg=NONE cterm=NONE + hi Removed ctermfg=darkred ctermbg=NONE cterm=NONE hi diffSubname ctermfg=darkmagenta ctermbg=NONE cterm=NONE hi DiffText ctermfg=white ctermbg=lightgrey cterm=NONE hi DiffChange ctermfg=white ctermbg=darkgray cterm=NONE @@ -355,8 +358,9 @@ if s:t_Co >= 8 hi Debug ctermfg=darkcyan ctermbg=NONE cterm=NONE hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE hi DiffDelete ctermfg=darkyellow ctermbg=NONE cterm=NONE - hi diffAdded ctermfg=darkgreen ctermbg=NONE cterm=NONE - hi diffRemoved ctermfg=darkred ctermbg=NONE cterm=NONE + hi Added ctermfg=darkgreen ctermbg=NONE cterm=NONE + hi Changed ctermfg=darkcyan ctermbg=NONE cterm=NONE + hi Removed ctermfg=darkred ctermbg=NONE cterm=NONE hi diffSubname ctermfg=darkmagenta ctermbg=NONE cterm=NONE hi DiffText ctermfg=white ctermbg=black cterm=bold,reverse hi DiffChange ctermfg=black ctermbg=white cterm=NONE diff --git a/runtime/colors/lists/csscolors.vim b/runtime/colors/lists/csscolors.vim index 7495522..986333d 100644 --- a/runtime/colors/lists/csscolors.vim +++ b/runtime/colors/lists/csscolors.vim @@ -4,6 +4,9 @@ " Similar in spirit to rgb.txt, this plugin establishes a human-friendly name " for every color listed in the CSS standard: " +" Note: the color names should be in lower case, because Vim will lookup the +" a color by its lower case name. +" " https://www.w3.org/TR/css-color-3/ let s:keepcpo= &cpo @@ -26,7 +29,6 @@ call extend(v:colornames, { \ 'css_blue': '#0000FF', \ 'css_teal': '#008080', \ 'css_aqua': '#00FFFF', - \ \ 'css_aliceblue': '#f0f8ff', \ 'css_antiquewhite': '#faebd7', \ 'css_aquamarine': '#7fffd4', @@ -160,6 +162,14 @@ call extend(v:colornames, { \ 'css_yellowgreen': '#9acd32', \ }, 'keep') +" all keys should be in lower case, convert keys that are not yet +for [key, val] in items(filter(copy(v:colornames), { key -> key =~ '\u'})) + call remove(v:colornames, key) + if !has_key(v:colornames, tolower(key)) + call extend(v:colornames, {tolower(key): val}, 'keep') + endif +endfor + let &cpo= s:keepcpo unlet s:keepcpo diff --git a/runtime/colors/lists/default.vim b/runtime/colors/lists/default.vim index 7d81c6f..c8df0c9 100644 --- a/runtime/colors/lists/default.vim +++ b/runtime/colors/lists/default.vim @@ -1,17 +1,50 @@ " Maintainer: Drew Vogel -" Last Change: 2023 Apr 19 +" Last Change: 2024 Mar 20 " " Replaced rgb.txt as the source of de facto standard color names. This is " sourced each time the colorscheme command is run. It is also sourced each " time the highlight command fails to recognize a gui color. You can override " these colors by introducing a new colors/lists/default.vim file earlier in " the runtimepath. +" Note: the color names should be in lower case, because Vim will lookup the +" a color by its lower case name. " make sure line continuation works let s:keepcpo = &cpo set cpo&vim -call extend(v:colornames, { +function! s:Cleanup() + let &cpo = s:keepcpo + unlet s:keepcpo +endfunction + +function! s:AddColors(cnames) abort + call extend(v:colornames, a:cnames, 'keep') + + " all keys should be in lower case, convert keys that are not yet + let len_after = len(v:colornames) + if len_after == len(a:cnames) + " after extend(): v:colornames has all the keys of default_cnames + " checked: v:colornames also has no extra keys + " => keys are the same, and keys(default_cnames) are known to be ok + return + endif + + for [key, val] in items(filter(copy(v:colornames), { key -> key =~ '\u'})) + call remove(v:colornames, key) + if !has_key(v:colornames, tolower(key)) + call extend(v:colornames, {tolower(key): val}, 'keep') + endif + endfor +endfunction + +if exists('s:default_cnames') + call s:AddColors(s:default_cnames) + call s:Cleanup() + finish +endif + +let s:default_cnames = { \ 'snow': '#fffafa', \ 'ghost white': '#f8f8ff', \ 'ghostwhite': '#f8f8ff', @@ -800,9 +833,9 @@ call extend(v:colornames, { \ 'rebeccapurple': '#663399', \ 'silver': '#c0c0c0', \ 'teal': '#008080' - \ }, 'keep') + \ } -let &cpo = s:keepcpo -unlet s:keepcpo +call s:AddColors(s:default_cnames) +call s:Cleanup() "vim: sw=4 diff --git a/runtime/colors/lunaperche.vim b/runtime/colors/lunaperche.vim index 4e4678e..3546710 100644 --- a/runtime/colors/lunaperche.vim +++ b/runtime/colors/lunaperche.vim @@ -4,7 +4,7 @@ " Maintainer: Maxim Kim " Website: https://www.github.com/vim/colorschemes " License: Vim License (see `:help license`) -" Last Updated: Fri 15 Dec 2023 20:05:37 +" Last Updated: Mon 08 Jan 2024 09:41:03 AM AEDT " Generated by Colortemplate v2.2.3 @@ -164,8 +164,9 @@ if &background ==# 'dark' hi DiffChange guifg=#c6c6c6 guibg=#5f5f5f gui=NONE cterm=NONE hi DiffText guifg=#afffff guibg=#5f8787 gui=NONE cterm=NONE hi DiffDelete guifg=#d78787 guibg=NONE gui=NONE cterm=NONE - hi diffAdded guifg=#5fd75f guibg=NONE gui=NONE cterm=NONE - hi diffRemoved guifg=#d78787 guibg=NONE gui=NONE cterm=NONE + hi Added guifg=#5fd75f guibg=NONE gui=NONE cterm=NONE + hi Changed guifg=#5fafff guibg=NONE gui=NONE cterm=NONE + hi Removed guifg=#d78787 guibg=NONE gui=NONE cterm=NONE hi diffSubname guifg=#ff87ff guibg=NONE gui=NONE cterm=NONE hi dirType guifg=#d787d7 guibg=NONE gui=NONE cterm=NONE hi dirPermissionUser guifg=#5faf5f guibg=NONE gui=NONE cterm=NONE @@ -254,8 +255,9 @@ else hi DiffChange guifg=#000000 guibg=#d0d0d0 gui=NONE cterm=NONE hi DiffText guifg=#000000 guibg=#5fd7d7 gui=NONE cterm=NONE hi DiffDelete guifg=#870000 guibg=NONE gui=NONE cterm=NONE - hi diffAdded guifg=#008700 guibg=NONE gui=NONE cterm=NONE - hi diffRemoved guifg=#d70000 guibg=NONE gui=NONE cterm=NONE + hi Added guifg=#008700 guibg=NONE gui=NONE cterm=NONE + hi Changed guifg=#005fd7 guibg=NONE gui=NONE cterm=NONE + hi Removed guifg=#d70000 guibg=NONE gui=NONE cterm=NONE hi diffSubname guifg=#af00af guibg=NONE gui=NONE cterm=NONE hi dirType guifg=#005f5f guibg=NONE gui=NONE cterm=NONE hi dirPermissionUser guifg=#af5f00 guibg=NONE gui=NONE cterm=NONE @@ -421,8 +423,9 @@ if s:t_Co >= 256 hi DiffChange ctermfg=251 ctermbg=59 cterm=NONE hi DiffText ctermfg=159 ctermbg=66 cterm=NONE hi DiffDelete ctermfg=174 ctermbg=NONE cterm=NONE - hi diffAdded ctermfg=77 ctermbg=NONE cterm=NONE - hi diffRemoved ctermfg=174 ctermbg=NONE cterm=NONE + hi Added ctermfg=77 ctermbg=NONE cterm=NONE + hi Changed ctermfg=75 ctermbg=NONE cterm=NONE + hi Removed ctermfg=174 ctermbg=NONE cterm=NONE hi diffSubname ctermfg=213 ctermbg=NONE cterm=NONE hi dirType ctermfg=176 ctermbg=NONE cterm=NONE hi dirPermissionUser ctermfg=71 ctermbg=NONE cterm=NONE @@ -506,8 +509,9 @@ if s:t_Co >= 256 hi DiffChange ctermfg=16 ctermbg=252 cterm=NONE hi DiffText ctermfg=16 ctermbg=80 cterm=NONE hi DiffDelete ctermfg=88 ctermbg=NONE cterm=NONE - hi diffAdded ctermfg=28 ctermbg=NONE cterm=NONE - hi diffRemoved ctermfg=160 ctermbg=NONE cterm=NONE + hi Added ctermfg=28 ctermbg=NONE cterm=NONE + hi Changed ctermfg=26 ctermbg=NONE cterm=NONE + hi Removed ctermfg=160 ctermbg=NONE cterm=NONE hi diffSubname ctermfg=127 ctermbg=NONE cterm=NONE hi dirType ctermfg=23 ctermbg=NONE cterm=NONE hi dirPermissionUser ctermfg=130 ctermbg=NONE cterm=NONE @@ -596,8 +600,9 @@ if s:t_Co >= 16 hi DiffChange ctermfg=white ctermbg=darkgreen cterm=NONE hi DiffText ctermfg=black ctermbg=cyan cterm=NONE hi DiffDelete ctermfg=darkred ctermbg=NONE cterm=NONE - hi diffAdded ctermfg=green ctermbg=NONE cterm=NONE - hi diffRemoved ctermfg=darkred ctermbg=NONE cterm=NONE + hi Added ctermfg=green ctermbg=NONE cterm=NONE + hi Changed ctermfg=blue ctermbg=NONE cterm=NONE + hi Removed ctermfg=darkred ctermbg=NONE cterm=NONE hi diffSubname ctermfg=magenta ctermbg=NONE cterm=NONE hi dirType ctermfg=darkmagenta ctermbg=NONE cterm=NONE hi dirPermissionUser ctermfg=darkgreen ctermbg=NONE cterm=NONE @@ -681,8 +686,9 @@ if s:t_Co >= 16 hi DiffChange ctermfg=black ctermbg=lightgray cterm=NONE hi DiffText ctermfg=black ctermbg=cyan cterm=NONE hi DiffDelete ctermfg=darkred ctermbg=NONE cterm=NONE - hi diffAdded ctermfg=darkgreen ctermbg=NONE cterm=NONE - hi diffRemoved ctermfg=red ctermbg=NONE cterm=NONE + hi Added ctermfg=darkgreen ctermbg=NONE cterm=NONE + hi Changed ctermfg=darkblue ctermbg=NONE cterm=NONE + hi Removed ctermfg=red ctermbg=NONE cterm=NONE hi diffSubname ctermfg=darkmagenta ctermbg=NONE cterm=NONE hi dirType ctermfg=darkcyan ctermbg=NONE cterm=NONE hi dirPermissionUser ctermfg=darkyellow ctermbg=NONE cterm=NONE diff --git a/runtime/colors/murphy.vim b/runtime/colors/murphy.vim index b829d49..a6a08ed 100644 --- a/runtime/colors/murphy.vim +++ b/runtime/colors/murphy.vim @@ -4,7 +4,7 @@ " Maintainer: Original maintainer Ron Aaron . " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 15 Dec 2023 20:05:38 +" Last Updated: Mon 08 Jan 2024 09:50:15 AM AEDT " Generated by Colortemplate v2.2.3 @@ -28,6 +28,7 @@ hi! link StatusLineTerm StatusLine hi! link StatusLineTermNC StatusLineNC hi! link MessageWindow Pmenu hi! link PopupNotification Todo +hi! link Added Constant hi Normal guifg=#87ff87 guibg=#000000 gui=NONE cterm=NONE hi EndOfBuffer guifg=#0000ff guibg=#000000 gui=NONE cterm=NONE hi StatusLine guifg=#ffffff guibg=#00008b gui=NONE cterm=NONE @@ -100,6 +101,7 @@ if s:t_Co >= 256 hi! link StatusLineTermNC StatusLineNC hi! link MessageWindow Pmenu hi! link PopupNotification Todo + hi! link Added Constant hi Normal ctermfg=120 ctermbg=16 cterm=NONE hi EndOfBuffer ctermfg=21 ctermbg=16 cterm=NONE hi StatusLine ctermfg=231 ctermbg=18 cterm=NONE diff --git a/runtime/colors/wildcharm.vim b/runtime/colors/wildcharm.vim index 31facfa..ee1f376 100644 --- a/runtime/colors/wildcharm.vim +++ b/runtime/colors/wildcharm.vim @@ -4,7 +4,7 @@ " Maintainer: Maxim Kim " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 15 Dec 2023 20:05:43 +" Last Updated: Mon 08 Jan 2024 09:40:36 AM AEDT " Generated by Colortemplate v2.2.3 @@ -93,8 +93,9 @@ if &background ==# 'dark' hi DiffChange guifg=#d0d0d0 guibg=#5f5f5f gui=NONE cterm=NONE hi DiffText guifg=#afffff guibg=#5f8787 gui=NONE cterm=NONE hi DiffDelete guifg=#ffafaf guibg=#875f5f gui=NONE cterm=NONE - hi diffAdded guifg=#00af5f guibg=NONE gui=NONE cterm=NONE - hi diffRemoved guifg=#d7005f guibg=NONE gui=NONE cterm=NONE + hi Added guifg=#00af5f guibg=NONE gui=NONE cterm=NONE + hi Changed guifg=#0087d7 guibg=NONE gui=NONE cterm=NONE + hi Removed guifg=#d7005f guibg=NONE gui=NONE cterm=NONE else " Light background if (has('termguicolors') && &termguicolors) || has('gui_running') @@ -167,8 +168,9 @@ else hi DiffChange guifg=#262626 guibg=#dadada gui=NONE cterm=NONE hi DiffText guifg=#005f5f guibg=#afd7d7 gui=NONE cterm=NONE hi DiffDelete guifg=#875f5f guibg=#ffd7d7 gui=NONE cterm=NONE - hi diffAdded guifg=#008700 guibg=NONE gui=NONE cterm=NONE - hi diffRemoved guifg=#d70000 guibg=NONE gui=NONE cterm=NONE + hi Added guifg=#5faf5f guibg=NONE gui=NONE cterm=NONE + hi Changed guifg=#0087d7 guibg=NONE gui=NONE cterm=NONE + hi Removed guifg=#d70000 guibg=NONE gui=NONE cterm=NONE endif if s:t_Co >= 256 @@ -247,8 +249,9 @@ if s:t_Co >= 256 hi DiffChange ctermfg=252 ctermbg=59 cterm=NONE hi DiffText ctermfg=159 ctermbg=66 cterm=NONE hi DiffDelete ctermfg=217 ctermbg=95 cterm=NONE - hi diffAdded ctermfg=35 ctermbg=NONE cterm=NONE - hi diffRemoved ctermfg=161 ctermbg=NONE cterm=NONE + hi Added ctermfg=35 ctermbg=NONE cterm=NONE + hi Changed ctermfg=32 ctermbg=NONE cterm=NONE + hi Removed ctermfg=161 ctermbg=NONE cterm=NONE else " Light background hi Normal ctermfg=16 ctermbg=231 cterm=NONE @@ -316,8 +319,9 @@ if s:t_Co >= 256 hi DiffChange ctermfg=235 ctermbg=253 cterm=NONE hi DiffText ctermfg=23 ctermbg=152 cterm=NONE hi DiffDelete ctermfg=95 ctermbg=224 cterm=NONE - hi diffAdded ctermfg=28 ctermbg=NONE cterm=NONE - hi diffRemoved ctermfg=160 ctermbg=NONE cterm=NONE + hi Added ctermfg=71 ctermbg=NONE cterm=NONE + hi Changed ctermfg=32 ctermbg=NONE cterm=NONE + hi Removed ctermfg=160 ctermbg=NONE cterm=NONE endif unlet s:t_Co finish @@ -386,12 +390,13 @@ if s:t_Co >= 16 hi Directory ctermfg=blue ctermbg=NONE cterm=bold hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE - hi DiffAdd ctermfg=black ctermbg=darkmagenta cterm=NONE + hi DiffAdd ctermfg=black ctermbg=darkgreen cterm=NONE hi DiffChange ctermfg=black ctermbg=lightgray cterm=NONE hi DiffText ctermfg=black ctermbg=cyan cterm=NONE hi DiffDelete ctermfg=black ctermbg=darkred cterm=NONE - hi diffAdded ctermfg=darkgreen ctermbg=NONE cterm=NONE - hi diffRemoved ctermfg=darkred ctermbg=NONE cterm=NONE + hi Added ctermfg=darkgreen ctermbg=NONE cterm=NONE + hi Changed ctermfg=darkblue ctermbg=NONE cterm=NONE + hi Removed ctermfg=darkred ctermbg=NONE cterm=NONE else " Light background hi Normal ctermfg=black ctermbg=white cterm=NONE @@ -455,12 +460,13 @@ if s:t_Co >= 16 hi Directory ctermfg=darkblue ctermbg=NONE cterm=bold hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE - hi DiffAdd ctermfg=black ctermbg=darkmagenta cterm=NONE + hi DiffAdd ctermfg=black ctermbg=darkgreen cterm=NONE hi DiffChange ctermfg=black ctermbg=lightgray cterm=NONE hi DiffText ctermfg=black ctermbg=cyan cterm=NONE hi DiffDelete ctermfg=black ctermbg=darkred cterm=NONE - hi diffAdded ctermfg=darkgreen ctermbg=NONE cterm=NONE - hi diffRemoved ctermfg=red ctermbg=NONE cterm=NONE + hi Added ctermfg=green ctermbg=NONE cterm=NONE + hi Changed ctermfg=blue ctermbg=NONE cterm=NONE + hi Removed ctermfg=red ctermbg=NONE cterm=NONE endif unlet s:t_Co finish @@ -510,7 +516,7 @@ if s:t_Co >= 8 hi VisualNOS ctermfg=black ctermbg=darkblue cterm=NONE hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline hi CursorColumn ctermfg=black ctermbg=darkyellow cterm=NONE - hi Folded ctermfg=black ctermbg=NONE cterm=bold + hi Folded ctermfg=grey ctermbg=NONE cterm=bold hi ColorColumn ctermfg=black ctermbg=darkyellow cterm=NONE hi SpellBad ctermfg=darkred ctermbg=NONE cterm=reverse hi SpellCap ctermfg=darkcyan ctermbg=NONE cterm=reverse @@ -519,20 +525,20 @@ if s:t_Co >= 8 hi Comment ctermfg=NONE ctermbg=NONE cterm=bold hi Constant ctermfg=darkred ctermbg=NONE cterm=NONE hi String ctermfg=darkgreen ctermbg=NONE cterm=NONE - hi Identifier ctermfg=NONE ctermbg=NONE cterm=NONE - hi Statement ctermfg=darkblue ctermbg=NONE cterm=bold + hi Identifier ctermfg=darkmagenta ctermbg=NONE cterm=NONE + hi Statement ctermfg=darkblue ctermbg=NONE cterm=NONE hi Type ctermfg=darkyellow ctermbg=NONE cterm=NONE hi PreProc ctermfg=darkcyan ctermbg=NONE cterm=NONE - hi Special ctermfg=darkcyan ctermbg=NONE cterm=NONE + hi Special ctermfg=darkmagenta ctermbg=NONE cterm=NONE hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline hi Title ctermfg=NONE ctermbg=NONE cterm=bold hi Directory ctermfg=darkblue ctermbg=NONE cterm=bold hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE - hi DiffAdd ctermfg=black ctermbg=darkmagenta cterm=NONE - hi DiffChange ctermfg=black ctermbg=darkcyan cterm=NONE - hi DiffText ctermfg=black ctermbg=grey cterm=NONE - hi DiffDelete ctermfg=darkred ctermbg=NONE cterm=NONE + hi DiffAdd ctermfg=black ctermbg=darkgreen cterm=NONE + hi DiffChange ctermfg=black ctermbg=darkblue cterm=NONE + hi DiffText ctermfg=black ctermbg=darkmagenta cterm=NONE + hi DiffDelete ctermfg=black ctermbg=darkred cterm=NONE else " Light background hi Normal ctermfg=black ctermbg=grey cterm=NONE @@ -586,20 +592,20 @@ if s:t_Co >= 8 hi Comment ctermfg=NONE ctermbg=NONE cterm=bold hi Constant ctermfg=darkred ctermbg=NONE cterm=NONE hi String ctermfg=darkgreen ctermbg=NONE cterm=NONE - hi Identifier ctermfg=NONE ctermbg=NONE cterm=NONE - hi Statement ctermfg=darkblue ctermbg=NONE cterm=bold + hi Identifier ctermfg=darkmagenta ctermbg=NONE cterm=NONE + hi Statement ctermfg=darkblue ctermbg=NONE cterm=NONE hi Type ctermfg=darkyellow ctermbg=NONE cterm=NONE hi PreProc ctermfg=darkcyan ctermbg=NONE cterm=NONE - hi Special ctermfg=darkcyan ctermbg=NONE cterm=NONE + hi Special ctermfg=darkmagenta ctermbg=NONE cterm=NONE hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline hi Title ctermfg=NONE ctermbg=NONE cterm=bold hi Directory ctermfg=darkblue ctermbg=NONE cterm=bold hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE - hi DiffAdd ctermfg=black ctermbg=darkmagenta cterm=NONE - hi DiffChange ctermfg=black ctermbg=darkcyan cterm=NONE - hi DiffText ctermfg=grey ctermbg=black cterm=NONE - hi DiffDelete ctermfg=darkred ctermbg=NONE cterm=NONE + hi DiffAdd ctermfg=black ctermbg=darkgreen cterm=NONE + hi DiffChange ctermfg=black ctermbg=darkblue cterm=NONE + hi DiffText ctermfg=black ctermbg=darkmagenta cterm=NONE + hi DiffDelete ctermfg=black ctermbg=darkred cterm=NONE endif unlet s:t_Co finish @@ -700,7 +706,7 @@ endif " Color: colorlC #ff5fff 207 magenta " Color: colorDim #878787 102 grey " Color: colorMP #ff00af 199 magenta -" Color: diffAdd #5f875f 65 darkmagenta +" Color: diffAdd #5f875f 65 darkgreen " Color: diffAddFg #afffaf 157 black " Color: diffDelete #875f5f 95 darkred " Color: diffDeleteFg #ffafaf 217 black @@ -739,7 +745,7 @@ endif " Color: colorDim #626262 241 darkgrey " Color: colorSt #5f5f5f 59 darkgrey " Color: colorMP #ff00af 199 magenta -" Color: diffAdd #afd7af 151 darkmagenta +" Color: diffAdd #afd7af 151 darkgreen " Color: diffAddFg #005f00 22 black " Color: diffDelete #ffd7d7 224 darkred " Color: diffDeleteFg #875f5f 95 black diff --git a/runtime/doc/Make_mvc.mak b/runtime/doc/Make_mvc.mak index 656cf75..850d86b 100644 --- a/runtime/doc/Make_mvc.mak +++ b/runtime/doc/Make_mvc.mak @@ -39,6 +39,9 @@ ICONV = "$(ICONV_PATH)\iconv.exe" !ENDIF RM = del /q +PS = PowerShell.exe + +PSFLAGS = -NoLogo -NoProfile -Command .SUFFIXES : .SUFFIXES : .c .o .txt .html @@ -49,9 +52,9 @@ all : tags perlhtml $(CONVERTED) # Use "doctags" to generate the tags file. Only works for English! tags : doctags $(DOCS) doctags.exe $(DOCS) | sort /L C /O tags - powershell -nologo -noprofile -Command \ - "(Get-Content -Raw tags | Get-Unique | % {$$_ -replace \"`r\", \"\"}) \ - | New-Item -Force -Path . -ItemType file -Name tags" + $(PS) $(PSFLAGS) \ + (Get-Content -Raw tags ^| Get-Unique ^| %%{$$_ -replace \"`r\", \"\"})\ + ^| New-Item -Force -Path . -ItemType file -Name tags doctags : doctags.c $(CC) doctags.c @@ -64,12 +67,10 @@ vimtags : $(DOCS) uganda.nsis.txt : uganda.??? - !@powershell -nologo -noprofile -Command \ - $$ext=(Get-Item $?).Extension; (Get-Content $? ^| \ - % {$$_ -replace '\s*\*[-a-zA-Z0-9.]*\*', '' -replace 'vim:tw=78:.*', ''}) \ + !@$(PS) $(PSFLAGS) $$ext=(Get-Item $?).Extension; (Get-Content $? ^| \ + %%{$$_ -replace '\s*\*[-a-zA-Z0-9.]*\*', '' -replace 'vim:tw=78:.*', ''})\ ^| Set-Content $*$$ext - !@powershell -nologo -noprofile -Command \ - $$ext=(Get-Item $?).Extension; \ + !@$(PS) $(PSFLAGS) $$ext=(Get-Item $?).Extension; \ (Get-Content -Raw $(@B)$$ext).Trim() -replace '(\r\n){3,}', '$$1$$1' \ ^| Set-Content $(@B)$$ext @@ -105,7 +106,7 @@ perlhtml : tags $(DOCS) # Check URLs in the help with "curl" or "powershell". test_urls : - "$(VIMEXE)" -S test_urls.vim + "$(VIMEXE)" --clean -S test_urls.vim clean : $(RM) doctags.exe doctags.obj @@ -203,7 +204,7 @@ os_win32.txt : << convert-all : $(CONVERTED) -!IF [powershell -nologo -noprofile "exit $$psversiontable.psversion.major"] == 2 +!IF [$(PS) $(PSFLAGS) "exit $$psversiontable.psversion.major"] == 2 !ERROR The program "PowerShell" version 3.0 or higher is required to work !ENDIF @@ -212,7 +213,7 @@ vim-da.UTF-8.1 : vim-da.1 $(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@ !ELSE # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending - powershell -nologo -noprofile -Command \ + $(PS) $(PSFLAGS) \ [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \ 1>nul New-Item -Force -Path . -ItemType file -Name $@ !ENDIF @@ -222,7 +223,7 @@ vimdiff-da.UTF-8.1 : vimdiff-da.1 $(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@ !ELSE # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending - powershell -nologo -noprofile -Command \ + $(PS) $(PSFLAGS) \ [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \ 1>nul New-Item -Force -Path . -ItemType file -Name $@ !ENDIF @@ -232,7 +233,7 @@ vimtutor-da.UTF-8.1 : vimtutor-da.1 $(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@ !ELSE # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending - powershell -nologo -noprofile -Command \ + $(PS) $(PSFLAGS) \ [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \ 1>nul New-Item -Force -Path . -ItemType file -Name $@ !ENDIF @@ -242,7 +243,7 @@ vim-de.UTF-8.1 : vim-de.1 $(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@ !ELSE # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending - powershell -nologo -noprofile -Command \ + $(PS) $(PSFLAGS) \ [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \ 1>nul New-Item -Force -Path . -ItemType file -Name $@ !ENDIF @@ -252,7 +253,7 @@ evim-fr.UTF-8.1 : evim-fr.1 $(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@ !ELSE # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending - powershell -nologo -noprofile -Command \ + $(PS) $(PSFLAGS) \ [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \ 1>nul New-Item -Force -Path . -ItemType file -Name $@ !ENDIF @@ -262,7 +263,7 @@ vim-fr.UTF-8.1 : vim-fr.1 $(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@ !ELSE # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending - powershell -nologo -noprofile -Command \ + $(PS) $(PSFLAGS) \ [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \ 1>nul New-Item -Force -Path . -ItemType file -Name $@ !ENDIF @@ -272,7 +273,7 @@ vimdiff-fr.UTF-8.1 : vimdiff-fr.1 $(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@ !ELSE # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending - powershell -nologo -noprofile -Command \ + $(PS) $(PSFLAGS) \ [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \ 1>nul New-Item -Force -Path . -ItemType file -Name $@ !ENDIF @@ -282,7 +283,7 @@ vimtutor-fr.UTF-8.1 : vimtutor-fr.1 $(ICONV) -f ISO-8859-1 -t utf-8 $? >$@ !ELSE # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending - powershell -nologo -noprofile -Command \ + $(PS) $(PSFLAGS) \ [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \ 1>nul New-Item -Force -Path . -ItemType file -Name $@ !ENDIF @@ -292,7 +293,7 @@ xxd-fr.UTF-8.1 : xxd-fr.1 $(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@ !ELSE # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending - powershell -nologo -noprofile -Command \ + $(PS) $(PSFLAGS) \ [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \ 1>nul New-Item -Force -Path . -ItemType file -Name $@ !ENDIF @@ -302,7 +303,7 @@ evim-it.UTF-8.1 : evim-it.1 $(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@ !ELSE # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending - powershell -nologo -noprofile -Command \ + $(PS) $(PSFLAGS) \ [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \ 1>nul New-Item -Force -Path . -ItemType file -Name $@ !ENDIF @@ -312,7 +313,7 @@ vim-it.UTF-8.1 : vim-it.1 $(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@ !ELSE # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending - powershell -nologo -noprofile -Command \ + $(PS) $(PSFLAGS) \ [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \ 1>nul New-Item -Force -Path . -ItemType file -Name $@ !ENDIF @@ -322,7 +323,7 @@ vimdiff-it.UTF-8.1 : vimdiff-it.1 $(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@ !ELSE # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending - powershell -nologo -noprofile -Command \ + $(PS) $(PSFLAGS) \ [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \ 1>nul New-Item -Force -Path . -ItemType file -Name $@ !ENDIF @@ -332,7 +333,7 @@ vimtutor-it.UTF-8.1 : vimtutor-it.1 $(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@ !ELSE # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending - powershell -nologo -noprofile -Command \ + $(PS) $(PSFLAGS) \ [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \ 1>nul New-Item -Force -Path . -ItemType file -Name $@ !ENDIF @@ -342,7 +343,7 @@ xxd-it.UTF-8.1 : xxd-it.1 $(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@ !ELSE # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending - powershell -nologo -noprofile -Command \ + $(PS) $(PSFLAGS) \ [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^| \ 1>nul New-Item -Force -Path . -ItemType file -Name $@ !ENDIF @@ -352,7 +353,7 @@ evim-pl.UTF-8.1 : evim-pl.1 $(ICONV) -f ISO-8859-2 -t UTF-8 $? >$@ !ELSE # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending - powershell -nologo -noprofile -Command \ + $(PS) $(PSFLAGS) \ [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^| \ 1>nul New-Item -Force -Path . -ItemType file -Name $@ !ENDIF @@ -362,7 +363,7 @@ vim-pl.UTF-8.1 : vim-pl.1 $(ICONV) -f ISO-8859-2 -t UTF-8 $? >$@ !ELSE # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending - powershell -nologo -noprofile -Command \ + $(PS) $(PSFLAGS) \ [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^| \ 1>nul New-Item -Force -Path . -ItemType file -Name $@ !ENDIF @@ -372,7 +373,7 @@ vimdiff-pl.UTF-8.1 : vimdiff-pl.1 $(ICONV) -f ISO-8859-2 -t UTF-8 $? >$@ !ELSE # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending - powershell -nologo -noprofile -Command \ + $(PS) $(PSFLAGS) \ [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^| \ 1>nul New-Item -Force -Path . -ItemType file -Name $@ !ENDIF @@ -382,7 +383,7 @@ vimtutor-pl.UTF-8.1 : vimtutor-pl.1 $(ICONV) -f ISO-8859-2 -t UTF-8 $? >$@ !ELSE # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending - powershell -nologo -noprofile -Command \ + $(PS) $(PSFLAGS) \ [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^| \ 1>nul New-Item -Force -Path . -ItemType file -Name $@ !ENDIF @@ -392,7 +393,7 @@ xxd-pl.UTF-8.1 : xxd-pl.1 $(ICONV) -f ISO-8859-2 -t UTF-8 $? >$@ !ELSE # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending - powershell -nologo -noprofile -Command \ + $(PS) $(PSFLAGS) \ [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^| \ 1>nul New-Item -Force -Path . -ItemType file -Name $@ !ENDIF @@ -402,7 +403,7 @@ evim-ru.UTF-8.1 : evim-ru.1 $(ICONV) -f KOI8-R -t UTF-8 $? >$@ !ELSE # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending - powershell -nologo -noprofile -Command \ + $(PS) $(PSFLAGS) \ [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^| \ 1>nul New-Item -Force -Path . -ItemType file -Name $@ !ENDIF @@ -412,7 +413,7 @@ vim-ru.UTF-8.1 : vim-ru.1 $(ICONV) -f KOI8-R -t UTF-8 $? >$@ !ELSE # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending - powershell -nologo -noprofile -Command \ + $(PS) $(PSFLAGS) \ [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^| \ 1>nul New-Item -Force -Path . -ItemType file -Name $@ !ENDIF @@ -422,7 +423,7 @@ vimdiff-ru.UTF-8.1 : vimdiff-ru.1 $(ICONV) -f KOI8-R -t UTF-8 $? >$@ !ELSE # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending - powershell -nologo -noprofile -Command \ + $(PS) $(PSFLAGS) \ [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^| \ 1>nul New-Item -Force -Path . -ItemType file -Name $@ !ENDIF @@ -432,7 +433,7 @@ vimtutor-ru.UTF-8.1 : vimtutor-ru.1 $(ICONV) -f KOI8-R -t UTF-8 $? >$@ !ELSE # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending - powershell -nologo -noprofile -Command \ + $(PS) $(PSFLAGS) \ [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^| \ 1>nul New-Item -Force -Path . -ItemType file -Name $@ !ENDIF @@ -442,7 +443,7 @@ xxd-ru.UTF-8.1 : xxd-ru.1 $(ICONV) -f KOI8-R -t UTF-8 $? >$@ !ELSE # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending - powershell -nologo -noprofile -Command \ + $(PS) $(PSFLAGS) \ [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^| \ 1>nul New-Item -Force -Path . -ItemType file -Name $@ !ENDIF @@ -452,7 +453,7 @@ evim-tr.UTF-8.1 : evim-tr.1 $(ICONV) -f ISO-8859-9 -t UTF-8 $? >$@ !ELSE # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending - powershell -nologo -noprofile -Command \ + $(PS) $(PSFLAGS) \ [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28599)) ^| \ 1>nul New-Item -Force -Path . -ItemType file -Name $@ !ENDIF @@ -462,7 +463,7 @@ vim-tr.UTF-8.1 : vim-tr.1 $(ICONV) -f ISO-8859-9 -t UTF-8 $? >$@ !ELSE # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending - powershell -nologo -noprofile -Command \ + $(PS) $(PSFLAGS) \ [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28599)) ^| \ 1>nul New-Item -Force -Path . -ItemType file -Name $@ !ENDIF @@ -472,7 +473,7 @@ vimdiff-tr.UTF-8.1 : vimdiff-tr.1 $(ICONV) -f ISO-8859-9 -t UTF-8 $? >$@ !ELSE # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending - powershell -nologo -noprofile -Command \ + $(PS) $(PSFLAGS) \ [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28599)) ^| \ 1>nul New-Item -Force -Path . -ItemType file -Name $@ !ENDIF @@ -482,7 +483,7 @@ vimtutor-tr.UTF-8.1 : vimtutor-tr.1 $(ICONV) -f ISO-8859-9 -t UTF-8 $? >$@ !ELSE # Conversion to UTF-8 encoding without BOM and with UNIX-like line ending - powershell -nologo -noprofile -Command \ + $(PS) $(PSFLAGS) \ [IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28599)) ^| \ 1>nul New-Item -Force -Path . -ItemType file -Name $@ !ENDIF diff --git a/runtime/doc/Makefile b/runtime/doc/Makefile index fc04287..eecce55 100644 --- a/runtime/doc/Makefile +++ b/runtime/doc/Makefile @@ -18,6 +18,7 @@ include Make_all.mak .SUFFIXES: .SUFFIXES: .c .o .txt .html +.PHONY: all vimtags noerrors perlhtml clean test_urls all: tags vim.man evim.man vimdiff.man vimtutor.man xxd.man $(CONVERTED) @@ -28,26 +29,26 @@ vimtags: $(DOCS) # Use "doctags" to generate the tags file. Only works for English! tags: doctags $(DOCS) - ./doctags $(DOCS) | LANG=C LC_ALL=C sort >tags + ./doctags $(DOCS) | LANG=C LC_ALL=C sort >$@ uniq -d -2 tags doctags: doctags.c $(CC) doctags.c -o doctags vim.man: vim.1 - nroff -man vim.1 | sed -e s/.//g > vim.man + nroff -man $< | sed -e s/.//g > $@ evim.man: evim.1 - nroff -man evim.1 | sed -e s/.//g > evim.man + nroff -man $< | sed -e s/.//g > $@ vimdiff.man: vimdiff.1 - nroff -man vimdiff.1 | sed -e s/.//g > vimdiff.man + nroff -man $< | sed -e s/.//g > $@ vimtutor.man: vimtutor.1 - nroff -man vimtutor.1 | sed -e s/.//g > vimtutor.man + nroff -man $< | sed -e s/.//g > $@ xxd.man: xxd.1 - nroff -man xxd.1 | sed -e s/.//g > xxd.man + nroff -man $< | sed -e s/.//g > $@ uganda.nsis.txt: uganda.txt sed -e 's/[ ]*\*[-a-zA-Z0-9.]*\*//g' -e 's/vim:tw=78:.*//' \ @@ -68,10 +69,10 @@ $(HTMLS): tags.ref # index.html is the starting point for HTML, but for the help files it is # help.txt. Therefore use vimindex.html for index.txt. index.html: help.txt - $(AWK) -f makehtml.awk help.txt >index.html + $(AWK) -f makehtml.awk $< >$@ vimindex.html: index.txt - $(AWK) -f makehtml.awk index.txt >vimindex.html + $(AWK) -f makehtml.awk $< >$@ tags.ref tags.html: tags $(AWK) -f maketags.awk tags >tags.html @@ -84,7 +85,7 @@ perlhtml: tags $(DOCS) # Check URLs in the help with "curl". test_urls: - vim -S test_urls.vim + $(VIMEXE) --clean -S test_urls.vim clean: -rm -f doctags *.html tags.ref @@ -92,58 +93,58 @@ clean: # These files are in the extra archive, skip if not present arabic.txt: - touch arabic.txt + touch $@ farsi.txt: - touch farsi.txt + touch $@ hebrew.txt: - touch hebrew.txt + touch $@ russian.txt: - touch russian.txt + touch $@ gui_w32.txt: - touch gui_w32.txt + touch $@ if_ole.txt: - touch if_ole.txt + touch $@ os_390.txt: - touch os_390.txt + touch $@ os_amiga.txt: - touch os_amiga.txt + touch $@ os_beos.txt: - touch os_beos.txt + touch $@ os_dos.txt: - touch os_dos.txt + touch $@ os_haiku.txt: - touch os_haiku.txt + touch $@ os_mac.txt: - touch os_mac.txt + touch $@ os_mint.txt: - touch os_mint.txt + touch $@ os_msdos.txt: - touch os_msdos.txt + touch $@ os_os2.txt: - touch os_os2.txt + touch $@ os_qnx.txt: - touch os_qnx.txt + touch $@ os_risc.txt: - touch os_risc.txt + touch $@ os_win32.txt: - touch os_win32.txt + touch $@ # Note that $< works with GNU make while $> works for BSD make. # Is there a solution that works for both?? diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt index 2ac0247..5f9f51e 100644 --- a/runtime/doc/autocmd.txt +++ b/runtime/doc/autocmd.txt @@ -1,4 +1,4 @@ -*autocmd.txt* For Vim version 9.1. Last change: 2023 May 20 +*autocmd.txt* For Vim version 9.1. Last change: 2024 Jan 25 VIM REFERENCE MANUAL by Bram Moolenaar @@ -340,6 +340,7 @@ Name triggered by ~ |GUIEnter| after starting the GUI successfully |GUIFailed| after starting the GUI failed |TermResponse| after the terminal response to |t_RV| is received +|TermResponseAll| after the terminal response to |t_RV| and others is received |QuitPre| when using `:quit`, before deciding whether to exit |ExitPre| when using a command that may make Vim exit @@ -380,6 +381,7 @@ Name triggered by ~ |CursorMoved| the cursor was moved in Normal mode |CursorMovedI| the cursor was moved in Insert mode +|WinNewPre| before creating a new window |WinNew| after creating a new window |TabNew| after creating a new tab page |WinClosed| after closing a window @@ -1097,7 +1099,7 @@ SafeState When nothing is pending, going to wait for the - Command line completion is active You can use `mode()` to find out what state Vim is in. That may be: - - VIsual mode + - Visual mode - Normal mode - Insert mode - Command-line mode @@ -1220,6 +1222,24 @@ TermResponse After the response to |t_RV| is received from triggered halfway executing another event, especially if file I/O, a shell command or anything else that takes time is involved. + *TermResponseAll* +TermResponseAll After the response to |t_RV|, |t_RC|, |t_RS|, + |t_RB|, |t_RF|, or |t_u7| are received from + the terminal. The value of |v:termresponse|, + |v:termblinkresp|, |v:termstyleresp|, + |v:termrbgresp|, |v:termrfgresp|, and + |v:termu7resp|, correspondingly, can be used. + will be set to any of: + "version", + "cursorblink", + "cursorshape", + "background", + "foreground", + "ambiguouswidth" + Note that this event may be triggered halfway + executing another event, especially if file I/O, + a shell command or anything else that takes time + is involved. *TextChanged* TextChanged After a change was made to the text in the current buffer in Normal mode. That is after @@ -1371,6 +1391,18 @@ WinLeave Before leaving a window. If the window to be WinLeave autocommands (but not for ":new"). Not used for ":qa" or ":q" when exiting Vim. + *WinNewPre* +WinNewPre Before creating a new window. Triggered + before commands that modify window layout by + creating a split or new tab page. Not done for + the first window, when Vim has just started. + It is not allowed to modify window layout + while executing commands for the WinNewPre + event. + Most useful to store current window layout + and compare it with the new layout after the + Window has been created. + *WinNew* WinNew When a new window was created. Not done for the first window, when Vim has just started. diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt index 9ac79c6..ec70220 100644 --- a/runtime/doc/builtin.txt +++ b/runtime/doc/builtin.txt @@ -1,4 +1,4 @@ -*builtin.txt* For Vim version 9.1. Last change: 2024 Jan 05 +*builtin.txt* For Vim version 9.1. Last change: 2024 Mar 23 VIM REFERENCE MANUAL by Bram Moolenaar @@ -147,6 +147,8 @@ delete({fname} [, {flags}]) Number delete the file or directory {fname} deletebufline({buf}, {first} [, {last}]) Number delete lines from buffer {buf} did_filetype() Number |TRUE| if FileType autocmd event used +diff({fromlist}, {tolist} [, {options}]) + List diff two Lists of strings diff_filler({lnum}) Number diff filler lines about {lnum} diff_hlID({lnum}, {col}) Number diff highlighting at {lnum}/{col} digraph_get({chars}) String get the |digraph| of {chars} @@ -198,6 +200,8 @@ foldclosedend({lnum}) Number last line of fold at {lnum} if closed foldlevel({lnum}) Number fold level at {lnum} foldtext() String line displayed for closed fold foldtextresult({lnum}) String text for closed fold at {lnum} +foreach({expr1}, {expr2}) List/Dict/Blob/String + for each item in {expr1} call {expr2} foreground() Number bring the Vim window to the foreground fullcommand({name} [, {vim9}]) String get full command from {name} funcref({name} [, {arglist}] [, {dict}]) @@ -259,6 +263,8 @@ getqflist({what}) Dict get specific quickfix list properties getreg([{regname} [, 1 [, {list}]]]) String or List contents of a register getreginfo([{regname}]) Dict information about a register +getregion({pos1}, {pos2} [, {opts}]) + List get the text from {pos1} to {pos2} getregtype([{regname}]) String type of a register getscriptinfo([{opts}]) List list of sourced scripts gettabinfo([{expr}]) List list of tab pages @@ -2044,6 +2050,72 @@ did_filetype() Returns |TRUE| when autocommands are being executed and the editing another buffer to set 'filetype' and load a syntax file. +diff({fromlist}, {tolist} [, {options}]) *diff()* + Returns a String or a List containing the diff between the + strings in {fromlist} and {tolist}. Uses the Vim internal + diff library to compute the diff. + + *E106* + The optional "output" item in {options} specifies the returned + diff format. The following values are supported: + indices Return a List of the starting and ending + indices and a count of the strings in each + diff hunk. + unified Return the unified diff output as a String. + This is the default. + + If the "output" item in {options} is "indices", then a List is + returned. Each List item contains a Dict with the following + items for each diff hunk: + from_idx start index in {fromlist} for this diff hunk. + from_count number of strings in {fromlist} that are + added/removed/modified in this diff hunk. + to_idx start index in {tolist} for this diff hunk. + to_count number of strings in {tolist} that are + added/removed/modified in this diff hunk. + + The {options} Dict argument also specifies diff options + (similar to 'diffopt') and supports the following items: + algorithm Dict specifying the diff algorithm to + use. Supported boolean items are + "myers", "minimal", "patience" and + "histogram". + context diff context length. Default is 0. + iblank ignore changes where lines are all + blank. + icase ignore changes in case of text. + indent-heuristic use the indent heuristic for the + internal diff library. + iwhite ignore changes in amount of white + space. + iwhiteall ignore all white space changes. + iwhiteeol ignore white space changes at end of + line. + For more information about these options, refer to 'diffopt'. + + To compute the unified diff, all the items in {fromlist} are + concatenated into a string using a newline separator and the + same for {tolist}. The unified diff output uses line numbers. + + Returns an empty List or String if {fromlist} and {tolist} are + identical. + + Examples: > + :echo diff(['abc'], ['xxx']) + @@ -1 +1 @@ + -abc + +xxx + + :echo diff(['abc'], ['xxx'], {'output': 'indices'}) + [{'from_idx': 0, 'from_count': 1, 'to_idx': 0, 'to_count': 1}] + :echo diff(readfile('oldfile'), readfile('newfile')) + :echo diff(getbufline(5, 1, '$'), getbufline(6, 1, '$')) +< + For more examples, refer to |diff-func-examples| + + Can also be used as a |method|: > + GetFromList->diff(to_list) +< diff_filler({lnum}) *diff_filler()* Returns the number of filler lines above line {lnum}. These are the lines that were inserted at this point in @@ -2193,6 +2265,8 @@ empty({expr}) *empty()* - A |Job| is empty when it failed to start. - A |Channel| is empty when it is closed. - A |Blob| is empty when its length is zero. + - An |Object| is empty, when the |empty()| builtin method in + the object (if present) returns true. For a long |List| this is much faster than comparing the length with zero. @@ -2333,11 +2407,11 @@ exists({expr}) The result is a Number, which is |TRUE| if {expr} is defined, varname internal variable (see dict.key |internal-variables|). Also works list[i] for |curly-braces-names|, |Dictionary| - import.Func entries, |List| items, imported - items, etc. - Does not work for local variables in a - compiled `:def` function. - Also works for a function in |Vim9| + import.Func entries, |List| items, class and + class.Func object methods, imported items, etc. + object.Func Does not work for local variables in a + class.varname compiled `:def` function. + object.varname Also works for a function in |Vim9| script, since it can be used as a function reference. Beware that evaluating an index may @@ -2468,6 +2542,9 @@ expand({string} [, {nosuf} [, {list}]]) *expand()* for a non-existing file is not included, unless {string} does not start with '%', '#' or '<', see below. + For a |:terminal| window '%' expands to a '!' followed by + the command or shell that is run |terminal-bufname| + When {string} starts with '%', '#' or '<', the expansion is done like for the |cmdline-special| variables with their associated modifiers. Here is a short overview: @@ -2995,6 +3072,45 @@ foldtextresult({lnum}) *foldtextresult()* Can also be used as a |method|: > GetLnum()->foldtextresult() + +foreach({expr1}, {expr2}) *foreach()* + {expr1} must be a |List|, |String|, |Blob| or |Dictionary|. + For each item in {expr1} execute {expr2}. {expr1} is not + modified; its values may be, as with |:lockvar| 1. |E741| + See |map()| and |filter()| to modify {expr1}. + + {expr2} must be a |string| or |Funcref|. + + 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 and for a |List| |v:key| has the index of + the current item. For a |Blob| |v:key| has the index of the + current byte. For a |String| |v:key| has the index of the + current character. + Examples: > + call foreach(mylist, 'used[v:val] = true') +< This records the items that are in the {expr1} list. + + Note that {expr2} is the result of expression and is then used + as a command. Often it is good to use a |literal-string| to + avoid having to double backslashes. + + If {expr2} is a |Funcref| it must take two arguments: + 1. the key or the index of the current item. + 2. the value of the current item. + With a legacy script lambda you don't get an error if it only + accepts one argument, but with a Vim9 lambda you get "E1106: + One argument too many", the number of arguments must match. + If the function returns a value, it is ignored. + + Returns {expr1} in all cases. + When an error is encountered while executing {expr2} no + further items in {expr1} are processed. + When {expr2} is a Funcref errors inside a function are ignored, + unless it was defined with the "abort" flag. + + Can also be used as a |method|: > + mylist->foreach(expr2) < *foreground()* foreground() Move the Vim window to the foreground. Useful when sent from @@ -3203,6 +3319,8 @@ getbufinfo([{dict}]) bufnr Buffer number. changed TRUE if the buffer is modified. changedtick Number of changes made to the buffer. + command TRUE if the buffer belongs to the + command-line window |cmdwin|. hidden TRUE if the buffer is hidden. lastused Timestamp in seconds, like |localtime()|, when the buffer was @@ -3427,7 +3545,7 @@ getcharmod() *getcharmod()* 32 mouse double click 64 mouse triple click 96 mouse quadruple click (== 32 + 64) - 128 command (Macintosh only) + 128 command (Mac) or super (GTK) Only the modifiers that have not been included in the character itself are obtained. Thus Shift-a results in "A" without a modifier. Returns 0 if no modifiers are used. @@ -4155,6 +4273,59 @@ getreginfo([{regname}]) *getreginfo()* Can also be used as a |method|: > GetRegname()->getreginfo() +getregion({pos1}, {pos2} [, {opts}]) *getregion()* + Returns the list of strings from {pos1} to {pos2} from a + buffer. + + {pos1} and {pos2} must both be |List|s with four numbers. + See |getpos()| for the format of the list. It's possible + to specify positions from a different buffer, but please + note the limitations at |getregion-notes|. + + The optional argument {opts} is a Dict and supports the + following items: + + type Specify the region's selection type + (default: "v"): + "v" for |characterwise| mode + "V" for |linewise| mode + "" for |blockwise-visual| mode + + exclusive If |TRUE|, use exclusive selection + for the end position + (default: follow 'selection') + + You can get the last selection type by |visualmode()|. + If Visual mode is active, use |mode()| to get the Visual mode + (e.g., in a |:vmap|). + This function is useful to get text starting and ending in + different columns, such as a |characterwise-visual| selection. + + *getregion-notes* + Note that: + - Order of {pos1} and {pos2} doesn't matter, it will always + return content from the upper left position to the lower + right position. + - If 'virtualedit' is enabled and the region is past the end + of the lines, resulting lines are padded with spaces. + - If the region is blockwise and it starts or ends in the + middle of a multi-cell character, it is not included but + its selected part is substituted with spaces. + - If {pos1} and {pos2} are not in the same buffer, an empty + list is returned. + - {pos1} and {pos2} must belong to a |bufloaded()| buffer. + - It is evaluated in current window context, which makes a + difference if the buffer is displayed in a window with + different 'virtualedit' or 'list' values. + + Examples: > + :xnoremap + \ echow getregion( + \ getpos('v'), getpos('.'), #{ type: mode() }) +< + Can also be used as a |method|: > + getpos('.')->getregion(getpos("'a")) +< getregtype([{regname}]) *getregtype()* The result is a String, which is type of register {regname}. The value will be one of: @@ -4381,14 +4552,16 @@ getwinpos([{timeout}]) *getwinpos()* getwinposx() The result is a Number, which is the X coordinate in pixels of the left hand side of the GUI Vim window. Also works for an xterm (uses a timeout of 100 msec). - The result will be -1 if the information is not available. + The result will be -1 if the information is not available + (e.g. on the Wayland backend). The value can be used with `:winpos`. *getwinposy()* getwinposy() The result is a Number, which is the Y coordinate in pixels of the top of the GUI Vim window. Also works for an xterm (uses a timeout of 100 msec). - The result will be -1 if the information is not available. + The result will be -1 if the information is not available + (e.g. on the Wayland backend). The value can be used with `:winpos`. getwinvar({winnr}, {varname} [, {def}]) *getwinvar()* @@ -5312,7 +5485,9 @@ len({expr}) The result is a Number, which is the length of the argument. When {expr} is a |Blob| the number of bytes is returned. When {expr} is a |Dictionary| the number of entries in the |Dictionary| is returned. - Otherwise an error is given and returns zero. + When {expr} is an |Object|, invokes the |len()| method in the + object (if present) to get the length. Otherwise returns + zero. Can also be used as a |method|: > mylist->len() @@ -5933,6 +6108,7 @@ match({expr}, {pat} [, {start} [, {count}]]) *match()* Note that when {count} is added the way {start} works changes, see above. + *match-pattern* See |pattern| for the patterns that are accepted. The 'ignorecase' option is used to set the ignore-caseness of the pattern. 'smartcase' is NOT used. The matching is always @@ -6073,31 +6249,34 @@ matchbufline({buf}, {pat}, {lnum}, {end}, [, {dict}]) For each match, a |Dict| with the following items is returned: byteidx starting byte index of the match -    lnum line number where there is a match -    text matched string + lnum line number where there is a match + text matched string Note that there can be multiple matches in a single line. This function works only for loaded buffers. First call |bufload()| if needed. + See |match-pattern| for information about the effect of some + option settings on the pattern. + When {buf} is not a valid buffer, the buffer is not loaded or {lnum} or {end} is not valid then an error is given and an empty |List| is returned. Examples: > -    " Assuming line 3 in buffer 5 contains "a" -    :echo matchbufline(5, '\<\k\+\>', 3, 3) -    [{'lnum': 3, 'byteidx': 0, 'text': 'a'}] -    " Assuming line 4 in buffer 10 contains "tik tok" -    :echo matchbufline(10, '\<\k\+\>', 1, 4) -    [{'lnum': 4, 'byteidx': 0, 'text': 'tik'}, {'lnum': 4, 'byteidx': 4, 'text': 'tok'}] + " Assuming line 3 in buffer 5 contains "a" + :echo matchbufline(5, '\<\k\+\>', 3, 3) + [{'lnum': 3, 'byteidx': 0, 'text': 'a'}] + " Assuming line 4 in buffer 10 contains "tik tok" + :echo matchbufline(10, '\<\k\+\>', 1, 4) + [{'lnum': 4, 'byteidx': 0, 'text': 'tik'}, {'lnum': 4, 'byteidx': 4, 'text': 'tok'}] < If {submatch} is present and is v:true, then submatches like - "\1", "\2", etc. are also returned.  Example: > -    " Assuming line 2 in buffer 2 contains "acd" -    :echo matchbufline(2, '\(a\)\?\(b\)\?\(c\)\?\(.*\)', 2, 2 + "\1", "\2", etc. are also returned. Example: > + " Assuming line 2 in buffer 2 contains "acd" + :echo matchbufline(2, '\(a\)\?\(b\)\?\(c\)\?\(.*\)', 2, 2 \ {'submatches': v:true}) -    [{'lnum': 2, 'byteidx': 0, 'text': 'acd', 'submatches': ['a', '', 'c', 'd', '', '', '', '', '']}] + [{'lnum': 2, 'byteidx': 0, 'text': 'acd', 'submatches': ['a', '', 'c', 'd', '', '', '', '', '']}] < The "submatches" List always contains 9 items. If a submatch is not found, then an empty string is returned for that submatch. @@ -6254,11 +6433,14 @@ matchstrlist({list}, {pat} [, {dict}]) submatches a List of submatches. Present only if "submatches" is set to v:true in {dict}. + See |match-pattern| for information about the effect of some + option settings on the pattern. + Example: > -    :echo matchstrlist(['tik tok'], '\<\k\+\>') -    [{'idx': 0, 'byteidx': 0, 'text': 'tik'}, {'idx': 0, 'byteidx': 4, 'text': 'tok'}] -    :echo matchstrlist(['a', 'b'], '\<\k\+\>') -    [{'idx': 0, 'byteidx': 0, 'text': 'a'}, {'idx': 1, 'byteidx': 0, 'text': 'b'}] + :echo matchstrlist(['tik tok'], '\<\k\+\>') + [{'idx': 0, 'byteidx': 0, 'text': 'tik'}, {'idx': 0, 'byteidx': 4, 'text': 'tok'}] + :echo matchstrlist(['a', 'b'], '\<\k\+\>') + [{'idx': 0, 'byteidx': 0, 'text': 'a'}, {'idx': 1, 'byteidx': 0, 'text': 'b'}] < If "submatches" is present and is v:true, then submatches like "\1", "\2", etc. are also returned. Example: > @@ -6923,6 +7105,9 @@ printf({fmt}, {expr1} ...) *printf()* echo printf("%1$*2$.*3$f", 1.4142135, 6, 2) < 1.41 + You will get an overflow error |E1510|, when the field-width + or precision will result in a string longer than 6400 chars. + *E1500* You cannot mix positional and non-positional arguments: > echo printf("%s%1$s", "One", "Two") @@ -7798,6 +7983,7 @@ search({pattern} [, {flags} [, {stopline} [, {timeout} [, {skip}]]]]) When a match has been found its line number is returned. If there is no match a 0 is returned and the cursor doesn't move. No error message is given. + To get the matched string, use |matchbufline()|. {flags} is a String, which can contain these character flags: 'b' search Backward instead of forward @@ -8882,7 +9068,8 @@ slice({expr}, {start} [, {end}]) *slice()* Similar to using a |slice| "expr[start : end]", but "end" is used exclusive. And for a string the indexes are used as character indexes instead of byte indexes, like in - |vim9script|. Also, composing characters are not counted. + |vim9script|. Also, composing characters are treated as a + part of the preceding base character. When {end} is omitted the slice continues to the last item. When {end} is -1 the last item is omitted. Returns an empty value if {start} or {end} are invalid. @@ -9279,8 +9466,8 @@ strcharpart({src}, {start} [, {len} [, {skipcc}]]) *strcharpart()* of byte index and length. When {skipcc} is omitted or zero, composing characters are counted separately. - When {skipcc} set to 1, Composing characters are ignored, - similar to |slice()|. + When {skipcc} set to 1, composing characters are treated as a + part of the preceding base character, similar to |slice()|. When a character index is used where a character does not exist it is omitted and counted as one character. For example: > @@ -9298,7 +9485,7 @@ strchars({string} [, {skipcc}]) *strchars()* in String {string}. When {skipcc} is omitted or zero, composing characters are counted separately. - When {skipcc} set to 1, Composing characters are ignored. + When {skipcc} set to 1, composing characters are ignored. |strcharlen()| always does this. Returns zero on error. @@ -9416,6 +9603,10 @@ string({expr}) Return {expr} converted to a String. If {expr} is a Number, replaced by "[...]" or "{...}". Using eval() on the result will then fail. + For an object, invokes the |string()| method to get a textual + representation of the object. If the method is not present, + then the default representation is used. + Can also be used as a |method|: > mylist->string() @@ -10642,17 +10833,16 @@ win_screenpos({nr}) *win_screenpos()* [1, 1], unless there is a tabline, then it is [2, 1]. {nr} can be the window number or the |window-ID|. Use zero for the current window. - Returns [0, 0] if the window cannot be found in the current - tabpage. + Returns [0, 0] if the window cannot be found. Can also be used as a |method|: > GetWinid()->win_screenpos() < win_splitmove({nr}, {target} [, {options}]) *win_splitmove()* - Move the window {nr} to a new split of the window {target}. - This is similar to moving to {target}, creating a new window - using |:split| but having the same contents as window {nr}, and - then closing {nr}. + Temporarily switch to window {target}, then move window {nr} + to a new split adjacent to {target}. + Unlike commands such as |:split|, no new windows are created + (the |window-ID| of window {nr} is unchanged after the move). Both {nr} and {target} can be window numbers or |window-ID|s. Both must be in the current tab page. @@ -10761,7 +10951,9 @@ winnr([{arg}]) The result is a Number, which is the number of the current # the number of the last accessed window (where |CTRL-W_p| goes to). If there is no previous window or it is in another tab page 0 is - returned. + returned. May refer to the current window in + some cases (e.g. when evaluating 'statusline' + expressions). {N}j the number of the Nth window below the current window (where |CTRL-W_j| goes to). {N}k the number of the Nth window above the current diff --git a/runtime/doc/diff.txt b/runtime/doc/diff.txt index 91b0047..e3abbde 100644 --- a/runtime/doc/diff.txt +++ b/runtime/doc/diff.txt @@ -1,4 +1,4 @@ -*diff.txt* For Vim version 9.1. Last change: 2023 Apr 04 +*diff.txt* For Vim version 9.1. Last change: 2024 Feb 01 VIM REFERENCE MANUAL by Bram Moolenaar @@ -476,4 +476,48 @@ Otherwise, the expression is evaluated in the context of the script where the option was set, thus script-local items are available. +DIFF FUNCTION EXAMPLES *diff-func-examples* + +Some examples for using the |diff()| function to compute the diff indices +between two Lists of strings are below. +> + " some lines are changed + :echo diff(['abc', 'def', 'ghi'], ['abx', 'rrr', 'xhi'], {'output': 'indices'}) + [{'from_idx': 0, 'from_count': 3, 'to_idx': 0, 'to_count': 3}] + + " few lines added at the beginning + :echo diff(['ghi'], ['abc', 'def', 'ghi'], {'output': 'indices'}) + [{'from_idx': 0, 'from_count': 0, 'to_idx': 0, 'to_count': 2}] + + " few lines removed from the beginning + :echo diff(['abc', 'def', 'ghi'], ['ghi'], {'output': 'indices'}) + [{'from_idx': 0, 'from_count': 2, 'to_idx': 0, 'to_count': 0}] + + " few lines added in the middle + :echo diff(['abc', 'jkl'], ['abc', 'def', 'ghi', 'jkl'], {'output': 'indices'}) + [{'from_idx': 1, 'from_count': 0, 'to_idx': 1, 'to_count': 2}] + + " few lines removed in the middle + :echo diff(['abc', 'def', 'ghi', 'jkl'], ['abc', 'jkl'], {'output': 'indices'}) + [{'from_idx': 1, 'from_count': 2, 'to_idx': 1, 'to_count': 0}] + + " few lines added at the end + :echo diff(['abc'], ['abc', 'def', 'ghi'], {'output': 'indices'}) + [{'from_idx': 1, 'from_count': 0, 'to_idx': 1, 'to_count': 2}] + + " few lines removed from the end + :echo diff(['abc', 'def', 'ghi'], ['abc'], {'output': 'indices'}) + [{'from_idx': 1, 'from_count': 2, 'to_idx': 1, 'to_count': 0}] + + " disjointed changes + :echo diff(['ab', 'def', 'ghi', 'jkl'], ['abc', 'def', 'ghi', 'jk'], {'output': 'indices', 'context': 0}) + [{'from_idx': 0, 'from_count': 1, 'to_idx': 0, 'to_count': 1}, + {'from_idx': 3, 'from_count': 1, 'to_idx': 3, 'to_count': 1}] + + " disjointed changes with context length 1 + :echo diff(['ab', 'def', 'ghi', 'jkl'], ['abc', 'def', 'ghi', 'jk'], {'output': 'indices', 'context': 1}) + [{'from_idx': 0, 'from_count': 4, 'to_idx': 0, 'to_count': 4}] + +< + vim:tw=78:ts=8:noet:ft=help:norl: diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt index 2ea6839..d0f8938 100644 --- a/runtime/doc/editing.txt +++ b/runtime/doc/editing.txt @@ -1,4 +1,4 @@ -*editing.txt* For Vim version 9.1. Last change: 2023 Sep 27 +*editing.txt* For Vim version 9.1. Last change: 2024 Jan 14 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1329,8 +1329,9 @@ b:browsefilter variable. You would most likely set b:browsefilter in a filetype plugin, so that the browse dialog would contain entries related to the type of file you are currently editing. Disadvantage: This makes it difficult to start editing a file of a different type. To overcome this, you -may want to add "All Files\t*.*\n" as the final filter, so that the user can -still access any desired file. +may want to add "All Files (*.*)\t*\n" as the final filter on Windows or "All +Files (*)\t*\n" on other platforms, so that the user can still access any +desired file. To avoid setting browsefilter when Vim does not actually support it, you can use has("browsefilter"): > diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index d52f7fe..f2ff3a8 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1,4 +1,4 @@ -*eval.txt* For Vim version 9.1. Last change: 2023 Dec 09 +*eval.txt* For Vim version 9.1. Last change: 2024 Mar 20 VIM REFERENCE MANUAL by Bram Moolenaar @@ -303,10 +303,15 @@ List concatenation ~ *list-concatenation* Two lists can be concatenated with the "+" operator: > :let longlist = mylist + [5, 6] - :let mylist += [7, 8] + :let longlist = [5, 6] + mylist +To prepend or append an item, turn it into a list by putting [] around it. -To prepend or append an item, turn the item into a list by putting [] around -it. To change a list in-place, refer to |list-modification| below. +A list can be concatenated with another one in-place using |:let+=| or +|extend()|: > + :let mylist += [7, 8] + :call extend(mylist, [7, 8]) +< +See |list-modification| below for more about changing a list in-place. Sublist ~ @@ -425,6 +430,18 @@ To change part of a list you can specify the first and last item to be modified. The value must at least have the number of items in the range: > :let list[3:5] = [3, 4, 5] +To add items to a List in-place, you can use |:let+=| (|list-concatenation|): > + :let listA = [1, 2] + :let listA += [3, 4] +< +When two variables refer to the same List, changing one List in-place will +cause the referenced List to be changed in-place: > + :let listA = [1, 2] + :let listB = listA + :let listB += [3, 4] + :echo listA + [1, 2, 3, 4] +< Adding and removing items from a list is done with functions. Here are a few examples: > :call insert(list, 'a') " prepend item 'a' @@ -745,12 +762,15 @@ This calls Doit() with 0x11, 0x22 and 0x33. Blob concatenation ~ - + *blob-concatenation* Two blobs can be concatenated with the "+" operator: > :let longblob = myblob + 0z4455 + :let longblob = 0z4455 + myblob +< +A blob can be concatenated with another one in-place using |:let+=|: > :let myblob += 0z6677 - -To change a blob in-place see |blob-modification| below. +< +See |blob-modification| below for more about changing a blob in-place. Part of a blob ~ @@ -793,6 +813,18 @@ To change part of a blob you can specify the first and last byte to be modified. The value must have the same number of bytes in the range: > :let blob[3:5] = 0z334455 +To add items to a Blob in-place, you can use |:let+=| (|blob-concatenation|): > + :let blobA = 0z1122 + :let blobA += 0z3344 +< +When two variables refer to the same Blob, changing one Blob in-place will +cause the referenced Blob to be changed in-place: > + :let blobA = 0z1122 + :let blobB = blobA + :let blobB += 0z3344 + :echo blobA + 0z11223344 +< You can also use the functions |add()|, |remove()| and |insert()|. @@ -2005,9 +2037,14 @@ v:collate The current locale setting for collation order of the runtime *v:colornames* v:colornames A dictionary that maps color names to hex color strings. These color names can be used with the |highlight-guifg|, - |highlight-guibg|, and |highlight-guisp| parameters. Updating - an entry in v:colornames has no immediate effect on the syntax - highlighting. The highlight commands (probably in a + |highlight-guibg|, and |highlight-guisp| parameters. + + The key values in the dictionary (the color names) should be + lower cased, because Vim looks up a color by its lower case + name. + + Updating an entry in v:colornames has no immediate effect on + the syntax highlighting. The highlight commands (probably in a colorscheme script) need to be re-evaluated in order to use the updated color values. For example: > @@ -2039,6 +2076,10 @@ v:colornames A dictionary that maps color names to hex color strings. These both automatically load all `colors/lists/default.vim` color scripts. + You can make changes to that file, but make sure to add new + keys instead of updating existing ones, otherwise Vim will skip + loading the file (thinking is hasn't been changed). + *v:completed_item* *completed_item-variable* v:completed_item |Dictionary| containing the |complete-items| for the most @@ -2568,8 +2609,9 @@ v:termresponse The escape sequence returned by the terminal for the |t_RV| 'c', with only digits and ';' in between. When this option is set, the TermResponse autocommand event is fired, so that you can react to the response from the - terminal. You can use |terminalprops()| to see what Vim - figured out about the terminal. + terminal. The TermResponseAll event is also fired, with + set to "version". You can use |terminalprops()| to see + what Vim figured out about the terminal. The response from a new xterm is: "[> Pp ; Pv ; Pc c". Pp is the terminal type: 0 for vt100 and 1 for vt220. Pv is the patch level (since this was introduced in patch 95, it's @@ -2581,27 +2623,37 @@ v:termresponse The escape sequence returned by the terminal for the |t_RV| *v:termblinkresp* v:termblinkresp The escape sequence returned by the terminal for the |t_RC| termcap entry. This is used to find out whether the terminal - cursor is blinking. This is used by |term_getcursor()|. + cursor is blinking. This is used by |term_getcursor()|. When + this option is set, the TermResponseAll autocommand event is + fired, with set to "cursorblink". *v:termstyleresp* v:termstyleresp The escape sequence returned by the terminal for the |t_RS| termcap entry. This is used to find out what the shape of the - cursor is. This is used by |term_getcursor()|. + cursor is. This is used by |term_getcursor()|. When this + option is set, the TermResponseAll autocommand event is fired, + with set to "cursorshape". *v:termrbgresp* v:termrbgresp The escape sequence returned by the terminal for the |t_RB| termcap entry. This is used to find out what the terminal - background color is, see 'background'. + background color is; see 'background'. When this option is + set, the TermResponseAll autocommand event is fired, with + set to "background". *v:termrfgresp* v:termrfgresp The escape sequence returned by the terminal for the |t_RF| termcap entry. This is used to find out what the terminal - foreground color is. + foreground color is. When this option is set, the + TermResponseAll autocommand event is fired, with set + to "foreground". *v:termu7resp* v:termu7resp The escape sequence returned by the terminal for the |t_u7| termcap entry. This is used to find out what the terminal - does with ambiguous width characters, see 'ambiwidth'. + does with ambiguous width characters, see 'ambiwidth'. When + this option is set, the TermResponseAll autocommand event is + fired, with set to "ambiguouswidth". *v:testing* *testing-variable* v:testing Must be set before using `test_garbagecollect_now()`. @@ -2793,6 +2845,8 @@ declarations and assignments do not use a command. |vim9-declaration| :let {var} ..= {expr1} Like ":let {var} = {var} .. {expr1}". These fail if {var} was not set yet and when the type of {var} and {expr1} don't fit the operator. + `+=` modifies a |List| or a |Blob| in-place instead of + creating a new one. `.=` is not supported with Vim script version 2 and later, see |vimscript-version|. diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt index 4876e3d..41b27cc 100644 --- a/runtime/doc/filetype.txt +++ b/runtime/doc/filetype.txt @@ -1,4 +1,4 @@ -*filetype.txt* For Vim version 9.1. Last change: 2024 Jan 04 +*filetype.txt* For Vim version 9.1. Last change: 2024 Feb 14 VIM REFERENCE MANUAL by Bram Moolenaar @@ -496,7 +496,7 @@ g:changelog_new_date_format %% insert a single '%' character %d insert the date from above %u insert the user from above - %p insert result of b:changelog_entry_prefix + %p insert result of b:changelog_entry_prefix %c where to position cursor when done The default is "%d %u\n\n\t* %p%c\n\n", which produces something like (| is where cursor will be, unless at @@ -510,7 +510,7 @@ g:changelog_new_entry_format The format used when creating a new entry. The following table describes special tokens in the string: - %p insert result of b:changelog_entry_prefix + %p insert result of b:changelog_entry_prefix %c where to position cursor when done The default is "\t*%c", which produces something similar to > @@ -564,6 +564,18 @@ under it. If not found, a new entry and item is prepended to the beginning of the Changelog. +ASCIIDOC *ft-asciidoc-plugin* + +To enable |folding| use this: > + let g:asciidoc_folding = 1 + +To disable nesting of folded headers use this: > + let g:asciidoc_foldnested = 0 + +To disable folding everything under the title use this: > + let asciidoc_fold_under_title = 0 + + FORTRAN *ft-fortran-plugin* Options: diff --git a/runtime/doc/ft_ada.txt b/runtime/doc/ft_ada.txt index 80ed728..35dd534 100644 --- a/runtime/doc/ft_ada.txt +++ b/runtime/doc/ft_ada.txt @@ -172,7 +172,7 @@ GNAT OBJECT ~ *g:gnat.Make()* g:gnat.Make() Calls |g:gnat.Make_Command| and displays the result inside a - |quickfix| window. + |quickfix| window. *g:gnat.Pretty()* g:gnat.Pretty() diff --git a/runtime/doc/ft_sql.txt b/runtime/doc/ft_sql.txt index f98b062..110784d 100644 --- a/runtime/doc/ft_sql.txt +++ b/runtime/doc/ft_sql.txt @@ -371,7 +371,7 @@ This command breaks down as: > 'sqlKeyword' - Display the items for the sqlKeyword highlight group 'sqlKeyword\w*' - A second option available with Vim 7.4 which - uses a regular expression to determine which + uses a regular expression to determine which syntax groups to use ) - Execute the :let command - Trigger the standard omni completion key stroke. diff --git a/runtime/doc/gui_w32.txt b/runtime/doc/gui_w32.txt index 780c0a0..c6f5725 100644 --- a/runtime/doc/gui_w32.txt +++ b/runtime/doc/gui_w32.txt @@ -1,4 +1,4 @@ -*gui_w32.txt* For Vim version 9.1. Last change: 2022 Mar 09 +*gui_w32.txt* For Vim version 9.1. Last change: 2024 Jan 23 VIM REFERENCE MANUAL by Bram Moolenaar @@ -454,4 +454,38 @@ You may need to get the vim16x16.xpm file from github: https://github.com/vim/vim/blob/master/runtime/vim16x16.xpm +Keycode translation strategy *w32-experimental-keycode-trans-strategy* + +In Patch v8.2.4807 W32 GVIM was changed over to experimental keycode +translation method with the aim to be able to use more keyboard shortcuts and +especially supporting non-standard keyboard layouts. In order to implement +this support Win API TranslateMessage() call was dropped, and instead the +recognition of keycode was changed over to ToUnicode() Win API call. This +approach uncovered numerous corner cases, which are apparently covered by +TranslateMessage() implementation, each of it is necessary to be dealt with on +an individual basis. Therefore the decision was taken to declare this +functionality experimental for the time being and to recover "classic" keycode +translation method as default again. + +Discussion about use of "experimental" keycode translation method will +probably last some time yet. In the meantime, if you are impacted by this +change over back to "classic" keycode translation method in W32 GVIM, you can +enable "experimental" translation method again in your vimrc using following +snippet: +> + :call test_mswin_event('set_keycode_trans_strategy', {'strategy': 'experimental'}) +< +Similarly, in case you need to turn back "classic" keycode translation method +(for example for testing purposes), please use: +> + :call test_mswin_event('set_keycode_trans_strategy', {'strategy': 'classic'}) +< +Alternatively (this method is especially useful for the TINY GVIM build, where +test_mswin_event() cannot be called), an environment variable +VIM_KEYCODE_TRANS_STRATEGY can be set to the desired value ("experimental" or +"classic"), to override the default, e.g., type in dos prompt: +> + set VIM_KEYCODE_TRANS_STRATEGY=experimental + gvim.exe +< vim:tw=78:sw=4:ts=8:noet:ft=help:norl: diff --git a/runtime/doc/gui_x11.txt b/runtime/doc/gui_x11.txt index 23633f1..bc2ba54 100644 --- a/runtime/doc/gui_x11.txt +++ b/runtime/doc/gui_x11.txt @@ -1,4 +1,4 @@ -*gui_x11.txt* For Vim version 9.1. Last change: 2022 Apr 03 +*gui_x11.txt* For Vim version 9.1. Last change: 2024 Jan 30 VIM REFERENCE MANUAL by Bram Moolenaar @@ -580,7 +580,8 @@ command line argument). *gui-x11-kde* There is no KDE version of Vim. There has been some work on a port using the Qt toolkit, but it never worked properly and it has been abandoned. Work -continues on Yzis: https://github.com/chrizel/Yzis. +continues on Yzis: https://github.com/chrizel/Yzis but it seems also +abandoned. ============================================================================== 8. Compiling *gui-x11-compiling* @@ -647,6 +648,15 @@ versions. This will cause problems. For example, using header files for X11R5 with a library for X11R6 probably doesn't work (although the linking won't give an error message, Vim will crash later). + *gui-wayland* +Initial support for the Wayland display server protocol has landed in patch +9.1.0064. To enable it, you need to set the environment variable +"$GVIM_ENABLE_WAYLAND" in your shell. + +Note: The Wayland protocol is subject to some restrictions, so the following +functions won't work: |getwinpos()|, |getwinposx()|, |getwinposy()| and the +|v:windowid| variable won't be available. + ============================================================================== 9. X11 selection mechanism *x11-selection* diff --git a/runtime/doc/if_ole.txt b/runtime/doc/if_ole.txt index b08fa98..c546e97 100644 --- a/runtime/doc/if_ole.txt +++ b/runtime/doc/if_ole.txt @@ -39,9 +39,9 @@ instance), code similar to the following should be used: $vim = new Win32::OLE 'Vim.Application'; [C#] > - // Add a reference to Vim in your project. - // Choose the COM tab. - // Select "Vim Ole Interface 1.1 Type Library" + // Add a reference to Vim in your project. + // Choose the COM tab. + // Select "Vim Ole Interface 1.1 Type Library" Vim.Vim vimobj = new Vim.Vim(); Vim does not support acting as a "hidden" OLE server, like some other OLE diff --git a/runtime/doc/indent.txt b/runtime/doc/indent.txt index 7865bb6..fe24505 100644 --- a/runtime/doc/indent.txt +++ b/runtime/doc/indent.txt @@ -1,4 +1,4 @@ -*indent.txt* For Vim version 9.1. Last change: 2023 Dec 27 +*indent.txt* For Vim version 9.1. Last change: 2024 Feb 29 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1255,5 +1255,11 @@ Example of configuration: > This variable is equivalent to `g:vim_indent.line_continuation`. It's supported for backward compatibility. +YAML *ft-yaml-indent* + +By default, the yaml indent script does not try to detect multiline scalars. +If you want to enable this, set the following variable: > + + let g:yaml_indent_multiline_scalar = 1 vim:tw=78:ts=8:noet:ft=help:norl: diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt index 1b012b7..d26592a 100644 --- a/runtime/doc/index.txt +++ b/runtime/doc/index.txt @@ -1172,6 +1172,8 @@ tag command action ~ |:>| :> shift lines one 'shiftwidth' right |:@| :@ execute contents of a register |:@@| :@@ repeat the previous ":@" +|:2match| :2mat[ch] define a second match to highlight +|:3match| :3mat[ch] define a third match to highlight |:Next| :N[ext] go to previous file in the argument list |:Print| :P[rint] print lines |:X| :X ask for encryption key diff --git a/runtime/doc/intro.txt b/runtime/doc/intro.txt index 185796f..120d65d 100644 --- a/runtime/doc/intro.txt +++ b/runtime/doc/intro.txt @@ -1,4 +1,4 @@ -*intro.txt* For Vim version 9.1. Last change: 2023 Nov 18 +*intro.txt* For Vim version 9.1. Last change: 2024 Jan 25 VIM REFERENCE MANUAL by Bram Moolenaar @@ -475,7 +475,7 @@ notation meaning equivalent decimal value(s) ~ control-key *control* *ctrl* * alt-key or meta-key *meta* *alt* * same as * command-key (Macintosh only) * command-key (Mac) / super (GTK) * key with "xx" entry in termcap ----------------------------------------------------------------------- diff --git a/runtime/doc/maketags.awk b/runtime/doc/maketags.awk index c6b2cd9..20b2b08 100644 --- a/runtime/doc/maketags.awk +++ b/runtime/doc/maketags.awk @@ -21,6 +21,13 @@ NR == 1 { nf=split(FILENAME,f,".") gsub(/%/,"\\%"); nf=split($0,tag," "); + if (counttag[tag[1]] > 0) + { + print "==============" > "errors.log" + print "Duplicate Tag " tag[1] > "errors.log" + print "==============" > "errors.log" + } + counttag[tag[1]]++ tagkey[t]=tag[1];tagref[t]=tag[2];tagnum[t]=NR; print $1 " " $2 " line " NR >"tags.ref" n=split($2,w,"."); diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt index 7d4d530..1229726 100644 --- a/runtime/doc/map.txt +++ b/runtime/doc/map.txt @@ -1,4 +1,4 @@ -*map.txt* For Vim version 9.1. Last change: 2024 Jan 04 +*map.txt* For Vim version 9.1. Last change: 2024 Jan 25 VIM REFERENCE MANUAL by Bram Moolenaar @@ -21,9 +21,10 @@ manual. 1.9 Using mappings |map-typing| 1.10 Mapping alt-keys |:map-alt-keys| 1.11 Mapping meta-keys |:map-meta-keys| - 1.12 Mapping in modifyOtherKeys mode |modifyOtherKeys| - 1.13 Mapping with Kitty keyboard protocol |kitty-keyboard-protocol| - 1.14 Mapping an operator |:map-operator| + 1.12 Mapping super-keys or command keys |:map-super-keys| + 1.13 Mapping in modifyOtherKeys mode |modifyOtherKeys| + 1.14 Mapping with Kitty keyboard protocol |kitty-keyboard-protocol| + 1.15 Mapping an operator |:map-operator| 2. Abbreviations |abbreviations| 3. Local mappings and functions |script-local| 4. User-defined commands |user-commands| @@ -591,7 +592,7 @@ displayed in the first line. Also a key map will also display where it was last defined. Example: > :verbose map * - Kitty keyboard protocol: Cleared + Kitty keyboard protocol: Cleared n * * * Last set from /home/abcd/.vimrc @@ -985,8 +986,17 @@ For the Meta modifier the "T" character is used. For example, to map Meta-b in Insert mode: > :imap terrible +1.12 MAPPING SUPER-KEYS or COMMAND-KEYS *:map-super-keys* *:map-cmd-key* -1.12 MAPPING IN modifyOtherKeys mode *modifyOtherKeys* +The Super modifier is available in GUI mode (when |gui_running| is 1) for +GVim on Linux and MacVim on Mac OS. If you're on a Mac, this represents the +Command key, on Linux with the GTK GUI it represents the Super key. +The character "D" is used for the Super / Command modifier. + +For example, to map Command-b in Insert mode: > + :imap barritone + +1.13 MAPPING IN modifyOtherKeys mode *modifyOtherKeys* Xterm and a few other terminals can be put in a mode where keys with modifiers are sent with a special escape code. Vim recognizes these codes and can then @@ -1048,7 +1058,7 @@ When the 'esckeys' option is off, then modifyOtherKeys will be disabled in Insert mode to avoid every key with a modifier causing Insert mode to end. -1.13 MAPPING WITH KITTY KEYBOARD PROTOCOL *kitty-keyboard-protocol* +1.14 MAPPING WITH KITTY KEYBOARD PROTOCOL *kitty-keyboard-protocol* If the value of 'term' contains "kitty" then Vim will send out an escape sequence to enable the Kitty keyboard protocol. This can be changed with the @@ -1075,7 +1085,7 @@ translated). The meaning of {value}: previous state is unknown -1.14 MAPPING AN OPERATOR *:map-operator* +1.15 MAPPING AN OPERATOR *:map-operator* An operator is used before a {motion} command. To define your own operator you must create a mapping that first sets the 'operatorfunc' option and then diff --git a/runtime/doc/message.txt b/runtime/doc/message.txt index 133d47a..6453b95 100644 --- a/runtime/doc/message.txt +++ b/runtime/doc/message.txt @@ -1,4 +1,4 @@ -*message.txt* For Vim version 9.1. Last change: 2023 Dec 20 +*message.txt* For Vim version 9.1. Last change: 2024 Mar 13 VIM REFERENCE MANUAL by Bram Moolenaar @@ -122,6 +122,13 @@ wiped out a buffer which contains a mark or is referenced in another way. You cannot have two buffers with exactly the same name. This includes the path leading to the file. + *E1513* + Cannot switch buffer. 'winfixbuf' is enabled ~ + +If a window has 'winfixbuf' enabled, you cannot change that window's current +buffer. You need to set 'nowinfixbuf' before continuing. You may use [!] to +force the window to switch buffers, if your command supports it. + *E72* Close error on swap file ~ diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 4dff6b5..a79e0b2 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -1,4 +1,4 @@ -*options.txt* For Vim version 9.1. Last change: 2024 Jan 03 +*options.txt* For Vim version 9.1. Last change: 2024 Mar 11 VIM REFERENCE MANUAL by Bram Moolenaar @@ -333,6 +333,7 @@ created, thus they behave slightly differently: Option Reason ~ 'previewwindow' there can only be a single one 'scroll' specific to existing window + 'winfixbuf' specific to existing window 'winfixheight' specific to existing window 'winfixwidth' specific to existing window @@ -365,11 +366,24 @@ created, thus they behave slightly differently: For a global option the global value is shown (but that might change in the future). -:setl[ocal] {option}< Set the local value of {option} to its global value by - copying the value. - -:se[t] {option}< For |global-local| options: Remove the local value of - {option}, so that the global value will be used. +:se[t] {option}< Set the effective value of {option} to its global + value. + For string |global-local| options, the local value is + removed, so that the global value will be used. + For all other options, the global value is copied to + the local value. + +:setl[ocal] {option}< Set the effective value of {option} to its global + value. + For number and boolean |global-local| options, the + local value is removed, so that the global value will + be used. + For all other options, including string |global-local| + options, the global value is copied to the local + value. + +Note that the behaviour for |global-local| options is slightly different +between string and number-based options. *:setg* *:setglobal* :setg[lobal][!] ... Like ":set" but set only the global value for a local @@ -2919,7 +2933,7 @@ A jump table for the options with a short description can be found at |Q_op|. Use the indent heuristic for the internal diff library. - algorithm:{text} Use the specified diff algorithm with the + algorithm:{text} Use the specified diff algorithm with the internal diff engine. Currently supported algorithms are: myers the default algorithm @@ -3478,12 +3492,10 @@ A jump table for the options with a short description can be found at |Q_op|. *'fillchars'* *'fcs'* 'fillchars' 'fcs' string (default "vert:|,fold:-,eob:~") global or local to window |global-local| - {not available when compiled without the |+folding| - feature} Characters to fill the statuslines, vertical separators and special lines in the window. It is a comma-separated list of items. Each item has a name, a colon - and the value of that item: + and the value of that item: |E1511| item name default Used for ~ stl ' ' statusline of the current window @@ -3504,7 +3516,7 @@ A jump table for the options with a short description can be found at |Q_op|. < For the "stl", "stlnc", "foldopen", "foldclose" and "foldsep" items single-byte and multibyte characters are supported. But double-width - characters are not supported. + characters are not supported. |E1512| The highlighting used for these items: item name highlight group ~ @@ -4002,7 +4014,7 @@ A jump table for the options with a short description can be found at |Q_op|. *'guiligatures'* *'gli'* *E1243* 'guiligatures' 'gli' string (default "") global - {only for GTK GUI} + {only for GTK and Win32 GUI} List of ASCII characters that, when combined together, can create more complex shapes. Each character must be a printable ASCII character with a value in the 32-127 range. @@ -5243,7 +5255,7 @@ A jump table for the options with a short description can be found at |Q_op|. 'listchars' 'lcs' string (default "eol:$") global or local to window |global-local| Strings to use in 'list' mode and for the |:list| command. It is a - comma-separated list of string settings. + comma-separated list of string settings. *E1511* *lcs-eol* eol:c Character to show at the end of each line. When omitted, there is no extra character at the end of the @@ -5319,7 +5331,7 @@ A jump table for the options with a short description can be found at |Q_op|. The characters ':' and ',' should not be used. UTF-8 characters can be used when 'encoding' is "utf-8", otherwise only printable - characters are allowed. All characters must be single width. + characters are allowed. All characters must be single width. *E1512* Each character can be specified as hex: > set listchars=eol:\\x24 @@ -6456,7 +6468,7 @@ A jump table for the options with a short description can be found at |Q_op|. this option at the default "on". Only switch it off when working with old Vi scripts. - *'renderoptions'* *'rop'* + *'renderoptions'* *'rop'* 'renderoptions' 'rop' string (default: empty) global {only available when compiled with GUI and DIRECTX on @@ -7242,7 +7254,7 @@ A jump table for the options with a short description can be found at |Q_op|. q use "recording" instead of "recording @a" *shm-q* F don't give the file info when editing a file, like *shm-F* `:silent` was used for the command; note that this also - affects messages from autocommands + affects messages from autocommands and 'autoread' reloading S do not show search count message when searching, e.g. *shm-S* "[1/5]" @@ -8010,6 +8022,8 @@ A jump table for the options with a short description can be found at |Q_op|. "split" when both are present. uselast If included, jump to the previously used window when jumping to errors with |quickfix| commands. + If a window has 'winfixbuf' enabled, 'switchbuf' is currently not + applied to the split window. *'synmaxcol'* *'smc'* 'synmaxcol' 'smc' number (default 3000) @@ -8583,8 +8597,11 @@ A jump table for the options with a short description can be found at |Q_op|. will not work (except in the GUI). If the title cannot be restored, it is set to the value of 'titleold'. You might want to restore the title outside of Vim then. - When using an xterm from a remote machine you can use this command: + When using an xterm from a remote machine you can use this command: > + rsh machine_name xterm -display $DISPLAY & + ssh -X machine_name xterm & +< then the WINDOWID environment variable should be inherited and the title of the window should change back to what it should be after exiting Vim. @@ -9457,6 +9474,15 @@ A jump table for the options with a short description can be found at |Q_op|. Note: Do not confuse this with the height of the Vim window, use 'lines' for that. + *'winfixbuf'* +'winfixbuf' 'wfb' boolean (default off) + local to window + If enabled, the window and the buffer it is displaying are paired. + For example, attempting to change the buffer with |:edit| will fail. + Other commands which change a window's buffer such as |:cnext| will + also skip any window with 'winfixbuf' enabled. However if an Ex + command has a "!" modifier, it can force switching buffers. + *'winfixheight'* *'wfh'* *'nowinfixheight'* *'nowfh'* 'winfixheight' 'wfh' boolean (default off) local to window |local-noglobal| diff --git a/runtime/doc/os_vms.txt b/runtime/doc/os_vms.txt index ff43548..862f31d 100644 --- a/runtime/doc/os_vms.txt +++ b/runtime/doc/os_vms.txt @@ -753,7 +753,7 @@ Solution 2. Different directories: > $ say "IA64 platform" $ define/nolog VIM RF10:[UTIL.IA64_EXE] ! IA64 executables $ endif - $! VIMRUNTIME must be defined in order to find runtime files + $! VIMRUNTIME must be defined in order to find runtime files $ define/nolog VIMRUNTIME RF10:[UTIL.VIM73] A good example for this approach is the [GNU]gnu_tools.com script from diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt index 07d70c8..2b22105 100644 --- a/runtime/doc/pi_netrw.txt +++ b/runtime/doc/pi_netrw.txt @@ -1,4 +1,4 @@ -*pi_netrw.txt* For Vim version 9.1. Last change: 2023 May 14 +*pi_netrw.txt* For Vim version 9.1. Last change: 2023 Jun 19 ------------------------------------------------ NETRW REFERENCE MANUAL by Charles E. Campbell @@ -642,7 +642,7 @@ additional prompting. work with your ftp client. Otherwise the script will prompt for user-id and password. - (*3) for ftp, "machine" may be machine#port or machine:port + (*3) for ftp, "machine" may be machine#port or machine:port if a different port is needed than the standard ftp port (*4) for http:..., if wget is available it will be used. Otherwise, @@ -788,7 +788,7 @@ below, a {netfile} is a URL to a remote file. (related: |netrw-userpass|) :NetrwSettings This command is described in |netrw-settings| -- used to - display netrw settings and change netrw behavior. + display netrw settings and change netrw behavior. ============================================================================== @@ -1625,10 +1625,8 @@ A further approach is to delete files which match a pattern. This will cause the matching files to be marked. Then, press "D". -If your vim has 7.4 with patch#1107, then |g:netrw_localrmdir| no longer -is used to remove directories; instead, vim's |delete()| is used with -the "d" option. Please note that only empty directories may be deleted -with the "D" mapping. Regular files are deleted with |delete()|, too. +Please note that only empty directories may be deleted with the "D" mapping. +Regular files are deleted with |delete()|, too. The |g:netrw_rm_cmd|, |g:netrw_rmf_cmd|, and |g:netrw_rmdir_cmd| variables are used to control the attempts to remove remote files and directories. The @@ -1647,8 +1645,7 @@ to remove it again using the g:netrw_rmf_cmd variable. Its default value is: |g:netrw_rmf_cmd|: ssh HOSTNAME rm -f Related topics: |netrw-d| -Associated setting variable: |g:netrw_localrmdir| |g:netrw_rm_cmd| - |g:netrw_rmdir_cmd| |g:netrw_ssh_cmd| +Associated setting variable: |g:netrw_rm_cmd| |g:netrw_ssh_cmd| *netrw-explore* *netrw-hexplore* *netrw-nexplore* *netrw-pexplore* @@ -1691,7 +1688,11 @@ DIRECTORY EXPLORATION COMMANDS {{{2 to 2; edits will thus preferentially be made in window#2. The [N] specifies a |g:netrw_winsize| just for the new :Lexplore - window. + window. That means that + if [N] < 0 : use |N| columns for the Lexplore window + if [N] = 0 : a normal split is made + if [N] > 0 : use N% of the current window will be used for the + new window Those who like this method often also like tree style displays; see |g:netrw_liststyle|. @@ -2863,14 +2864,6 @@ your browsing preferences. (see also: |netrw-settings|) =" /c move" Windows Options for |g:netrw_localmovecmd| - *g:netrw_localrmdir* ="rmdir" Linux/Unix/MacOS/Cygwin - =expand("$COMSPEC") Windows - Remove directory command (rmdir) - This variable is only used if your vim is - earlier than 7.4 or if your vim doesn't - have patch#1107. Otherwise, |delete()| - is used with the "d" option. - *g:netrw_maxfilenamelen* =32 by default, selected so as to make long listings fit on 80 column displays. If your screen is wider, and you have file @@ -3781,7 +3774,7 @@ Example: Clear netrw's marked file list via a mapping on gu > Netrw uses several system level commands to do things (see |g:netrw_localcopycmd|, |g:netrw_localmovecmd|, - |g:netrw_localrmdir|, |g:netrw_mkdir_cmd|). + |g:netrw_mkdir_cmd|). You may need to adjust the default commands for one or more of these commands by setting them properly in your .vimrc. Another @@ -3907,8 +3900,13 @@ netrw: ============================================================================== 12. History *netrw-history* {{{1 - v172: Apr 22, 2023 * removed g:netrw_localrmdiropt - removed g:netrw_localrmdir + v172: Sep 02, 2021 * (Bram Moolenaar) Changed "l:go" to "go" + * (Bram Moolenaar) no need for "b" in + netrw-safe guioptions + Nov 15, 2021 * removed netrw_localrm and netrw_localrmdir + references + Aug 18, 2022 * (Miguel Barro) improving compatability with + powershell v171: Oct 09, 2020 * included code in s:NetrwOptionsSafe() to allow |'bh'| to be set to delete when rather than hide when g:netrw_fastbrowse @@ -3996,7 +3994,6 @@ netrw: |g:netrw_localcopydircmdopt| |g:netrw_localmkdiropt| |g:netrw_localmovecmdopt| - g:netrw_localrmdiropt Nov 21, 2016 * (mattn) provided a patch for preview; swapped winwidth() with winheight() Nov 22, 2016 * (glacambre) reported that files containing @@ -4056,7 +4053,7 @@ netrw: refreshes. However, inside a |:map-|, tab and window changes are disallowed. Fixed. (affects netrw's s:LocalBrowseRefresh()) - * |g:netrw_localrmdir| not used any more, but + * g:netrw_localrmdir not used any more, but the relevant patch that causes |delete()| to take over was #1107 (not #1109). * |expand()| is now used on |g:netrw_home|; diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt index 325f592..ae3bfb5 100644 --- a/runtime/doc/quickfix.txt +++ b/runtime/doc/quickfix.txt @@ -378,14 +378,14 @@ processing a quickfix or location list command, it will be aborted. List all errors. :cl[ist]! +{count} List the current and next {count} error lines. This - is useful to see unrecognized lines after the current + is useful to see unrecognized lines after the current one. For example, if ":clist" shows: - 8384 testje.java:252: error: cannot find symbol ~ - Then using ":cl! +3" shows the reason: - 8384 testje.java:252: error: cannot find symbol ~ - 8385: ZexitCode = Fmainx(); ~ - 8386: ^ ~ - 8387: symbol: method Fmainx() ~ + 8384 testje.java:252: error: cannot find symbol ~ + Then using ":cl! +3" shows the reason: + 8384 testje.java:252: error: cannot find symbol ~ + 8385: ZexitCode = Fmainx(); ~ + 8386: ^ ~ + 8387: symbol: method Fmainx() ~ :lli[st] [from] [, [to]] *:lli* *:llist* Same as ":clist", except the location list for the diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt index dcbb520..517fa30 100644 --- a/runtime/doc/quickref.txt +++ b/runtime/doc/quickref.txt @@ -1,4 +1,4 @@ -*quickref.txt* For Vim version 9.1. Last change: 2023 Dec 05 +*quickref.txt* For Vim version 9.1. Last change: 2024 Mar 03 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1005,6 +1005,7 @@ Short explanation of each option: *option-list* 'winaltkeys' 'wak' when the windows system handles ALT keys 'wincolor' 'wcr' window-local highlighting 'window' 'wi' nr of lines to scroll for CTRL-F and CTRL-B +'winfixbuf' 'wfb' keep window focused on a single buffer 'winfixheight' 'wfh' keep window height when opening/closing windows 'winfixwidth' 'wfw' keep window width when opening/closing windows 'winheight' 'wh' minimum number of lines for the current window diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt index ff069ca..a757445 100644 --- a/runtime/doc/starting.txt +++ b/runtime/doc/starting.txt @@ -1,4 +1,4 @@ -*starting.txt* For Vim version 9.1. Last change: 2023 Oct 20 +*starting.txt* For Vim version 9.1. Last change: 2024 Mar 13 VIM REFERENCE MANUAL by Bram Moolenaar @@ -113,10 +113,10 @@ Additional characters may follow, they are ignored. For example, you can have "gvim-8" to start the GUI. You must have an executable by that name then, of course. -On Unix, you would normally have one executable called Vim, and links from the -different startup-names to that executable. If your system does not support -links and you do not want to have several copies of the executable, you could -use an alias instead. For example: > +On Unix, you would normally have one executable called "vim", and links from +the different startup-names to that executable. If your system does not +support links and you do not want to have several copies of the executable, +you could use an alias instead. For example, in a C shell descendant: > alias view vim -R alias gvim vim -g < @@ -194,7 +194,7 @@ a slash. Thus "-R" means recovery and "-/R" readonly. --cmd {command} *--cmd* {command} will be executed before processing any vimrc file. - Otherwise it acts like -c {command}. You can use up to 10 of + Otherwise, it acts like -c {command}. You can use up to 10 of these commands, independently from "-c" commands. *-S* @@ -279,7 +279,7 @@ a slash. Thus "-R" means recovery and "-/R" readonly. *-s-ex* -s Silent or batch mode. Only when Vim was started as "ex" or - when preceded with the "-e" argument. Otherwise see |-s|, + when preceded with the "-e" argument. Otherwise, see |-s|, which does take an argument while this use of "-s" doesn't. To be used when Vim is used to execute Ex commands from a file instead of a terminal. Switches off most prompts and @@ -289,12 +289,12 @@ a slash. Thus "-R" means recovery and "-/R" readonly. :list :number :set to display option values. - When 'verbose' is non-zero messages are printed (for + When 'verbose' is non-zero, messages are printed (for debugging, to stderr). 'term' and $TERM are not used. - If Vim appears to be stuck try typing "qa!". You don't - get a prompt thus you can't see Vim is waiting for you to type - something. + If Vim appears to be stuck, try typing "qa!". You + don't get a prompt, thus you can't see Vim is waiting for you + to type something. Initializations are skipped (except the ones given with the "-u" argument). Example: > @@ -317,7 +317,7 @@ a slash. Thus "-R" means recovery and "-/R" readonly. *-A* -A Arabic mode. Sets the 'arabic' option on. {only when compiled with the |+arabic| features (which include - |+rightleft|), otherwise Vim gives an error message + |+rightleft|), otherwise, Vim gives an error message and exits} *-F* @@ -326,7 +326,7 @@ a slash. Thus "-R" means recovery and "-/R" readonly. *-H* -H Hebrew mode. Sets the 'hkmap' and 'rightleft' options on. - {only when compiled with the |+rightleft| feature, otherwise + {only when compiled with the |+rightleft| feature, otherwise, Vim gives an error message and exits} *-V* *verbose* @@ -407,7 +407,7 @@ a slash. Thus "-R" means recovery and "-/R" readonly. few windows will be editing an empty file. *-O* --O[N] Open N windows, split vertically. Otherwise it's like -o. +-O[N] Open N windows, split vertically. Otherwise, it's like -o. If both the -o and the -O option are given, the last one on the command line determines how the windows will be split. @@ -483,8 +483,10 @@ a slash. Thus "-R" means recovery and "-/R" readonly. This can be used to start Vim in a special mode, with special mappings and settings. A shell alias can be used to make - this easy to use. For example: > - alias vimc vim -u ~/.c_vimrc !* + this easy to use. For example, in a C shell descendant: > + alias vimc 'vim -u ~/.c_vimrc \!*' +< And in a Bash shell: > + alias vimc='vim -u ~/.c_vimrc' < Also consider using autocommands; see |autocommand|. When {vimrc} is equal to "NONE" (all uppercase), all @@ -544,9 +546,9 @@ a slash. Thus "-R" means recovery and "-/R" readonly. window title and copy/paste using the X clipboard. This avoids a long startup time when running Vim in a terminal emulator and the connection to the X server is slow. - See |--startuptime| to find out if affects you. + See |--startuptime| to find out if this affects you. Only makes a difference on Unix or VMS, when compiled with the - |+X11| feature. Otherwise it's ignored. + |+X11| feature. Otherwise, it's ignored. To disable the connection only for specific terminals, see the 'clipboard' option. When the X11 Session Management Protocol (XSMP) handler has @@ -575,8 +577,8 @@ a slash. Thus "-R" means recovery and "-/R" readonly. ":source!". When the "scriptout" file already exists, new characters are appended. See also |complex-repeat|. {scriptout} cannot start with a digit. - If you want to record what is typed in a human readable for - you can use |ch_logfile()|, It adds "raw key input" lines. + If you want to record what is typed in a human readable form, + you can use |ch_logfile()|. It adds "raw key input" lines. Also see |--log|. *-W* @@ -666,7 +668,7 @@ If the executable is called "ex", Vim will start in "Ex" mode. This means it will accept only ":" commands. But when the "-v" argument is given, Vim will start in Normal mode anyway. -Additional arguments are available on unix like systems when compiled with +Additional arguments are available on Unix like systems when compiled with X11 GUI support. See |gui-resources|. ============================================================================== @@ -740,7 +742,7 @@ In Evim these options are changed from their default value: :set incsearch show matches halfway typing a pattern :set mouse=a use the mouse in all modes :set hlsearch highlight all matches for a search pattern - :set whichwrap+=<,>,[,] and wrap around line breaks + :set whichwrap+=<,>,[,] and wrap around line breaks :set guioptions-=a non-Unix only: don't do auto-select Key mappings: @@ -833,7 +835,7 @@ accordingly. Vim proceeds in this order: initializations until 4. are skipped. Only the "-u" option is interpreted. *evim.vim* - a. If vim was started as |evim| or |eview| or with the |-y| argument, the + a. If Vim was started as |evim| or |eview| or with the |-y| argument, the script $VIMRUNTIME/evim.vim will be loaded. *system-vimrc* b. For Unix, MS-Windows, VMS, Macintosh and Amiga the system vimrc file @@ -929,7 +931,7 @@ accordingly. Vim proceeds in this order: This means that Vim will figure out the values of 'shellpipe' and 'shellredir' for you, unless you have set them yourself. -6. Set 'updatecount' to zero, if "-n" command argument used +6. Set 'updatecount' to zero, if "-n" command argument used. 7. Set binary options If the "-b" flag was given to Vim, the options for binary editing will @@ -973,7 +975,7 @@ Some hints on using initializations ~ Standard setup: Create a vimrc file to set the default settings and mappings for all your edit -sessions. Put it in a place so that it will be found by 3b: +sessions. Put it in a place so that it will be found by 3b.: ~/.vimrc (Unix) s:.vimrc (Amiga) $VIM\_vimrc (Win32) @@ -1087,11 +1089,11 @@ 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 -else created and contains nasty commands. The disabled commands are the ones -that start a shell, the ones that write to a file, and ":autocmd". The ":map" -commands are echoed, so you can see which keys are being mapped. +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 else created and contains nasty commands. The disabled commands are +the ones that start a shell, the ones that write to a file, and ":autocmd". +The ":map" commands are echoed, so you can see which keys are being mapped. If you want Vim to execute all commands in a local vimrc file, you can reset the 'secure' option in the EXINIT or VIMINIT environment variable or in the global "exrc" or "vimrc" file. This is not possible in "vimrc" or @@ -1248,9 +1250,9 @@ continue if you make it the foreground job again. On other systems, CTRL-Z will start a new shell. This is the same as the ":sh" command. Vim will continue if you exit from the shell. -In X-windows the selection is disowned when Vim suspends. this means you -can't paste it in another application (since Vim is going to sleep an attempt -to get the selection would make the program hang). +In the X Window System environment, the selection is disowned when Vim +suspends. This means you can't paste it in another application (since Vim is +going to sleep, an attempt to get the selection would make the program hang). ============================================================================== 7. Exiting *exiting* @@ -1295,7 +1297,7 @@ will be set to the same values. The options 'columns', 'endofline', dependent. Note that the options 'binary', 'paste' and 'readonly' are included, this might not always be what you want. -When special keys are used in mappings, The 'cpoptions' option will be +When special keys are used in mappings, the 'cpoptions' option will be temporarily set to its Vim default, to avoid the mappings to be misinterpreted. This makes the file incompatible with Vi, but makes sure it can be used with different terminals. @@ -1356,8 +1358,8 @@ All this is {not available when compiled without the |+mksession| feature}. *:mks* *:mksession* :mks[ession][!] [file] Write a Vim script that restores the current editing session. - When [!] is included an existing file is overwritten. - When [file] is omitted "Session.vim" is used. + When [!] is included, an existing file is overwritten. + When [file] is omitted, "Session.vim" is used. The output of ":mksession" is like ":mkvimrc", but additional commands are added to the file. Which ones depends on the 'sessionoptions' option. The @@ -1369,16 +1371,16 @@ resulting file, when executed with a ":source" command: 3. Closes all windows in the current tab page, except the current one; closes all tab pages except the current one (this results in currently loaded buffers to be unloaded, some may become hidden if 'hidden' is set or - otherwise specified); wipes out the current buffer, if it is empty - and unnamed. -4. Restores the current directory if 'sessionoptions' contains "curdir", or - sets the current directory to where the Session file is if 'sessionoptions' - contains "sesdir". + otherwise specified); wipes out the current buffer, if it is empty and + unnamed. +4. Restores the current directory, if 'sessionoptions' contains "curdir", or + sets the current directory to where the Session file is, if + 'sessionoptions' contains "sesdir". 5. Restores GUI Vim window position, if 'sessionoptions' contains "winpos". 6. Restores screen size, if 'sessionoptions' contains "resize". 7. Reloads the buffer list, with the last cursor positions. If 'sessionoptions' contains "buffers" then all buffers are restored, - including hidden and unloaded buffers. Otherwise only buffers in windows + including hidden and unloaded buffers. Otherwise, only buffers in windows are restored. 8. Restores all windows with the same layout. If 'sessionoptions' contains "help", help windows are restored. If 'sessionoptions' contains "blank", @@ -1405,14 +1407,14 @@ A session includes all tab pages, unless "tabpages" was removed from The |SessionLoadPost| autocmd event is triggered after a session file is loaded/sourced. *SessionLoad-variable* -While the session file is loading the SessionLoad global variable is set to 1. -Plugins can use this to postpone some work until the SessionLoadPost event is -triggered. +While the session file is loading, the SessionLoad global variable is set to +1. Plugins can use this to postpone some work until the SessionLoadPost event +is triggered. *:mkvie* *:mkview* :mkvie[w][!] [file] Write a Vim script that restores the contents of the current window. - When [!] is included an existing file is overwritten. + When [!] is included, an existing file is overwritten. When [file] is omitted or is a number from 1 to 9, a name is generated and 'viewdir' prepended. When the last path part of 'viewdir' does not exist, this @@ -1427,14 +1429,13 @@ triggered. The output of ":mkview" contains these items: 1. The argument list used in the window. When the global argument list is - used it is reset to the global list. + used, it is reset to the global list. The index in the argument list is also restored. 2. The file being edited in the window. If there is no file, the window is made empty. -3. Restore mappings, abbreviations and options local to the window if - 'viewoptions' contains "options" or "localoptions". For the options it - restores only values that are local to the current buffer and values local - to the window. +3. Restore mappings, abbreviations and options local to the window, if + 'viewoptions' contains "options" or "localoptions". Only option values + that are local to the current buffer and the current window are restored. When storing the view as part of a session and "options" is in 'sessionoptions', global values for local options will be stored too. 4. Restore folds when using manual folding and 'viewoptions' contains @@ -1468,7 +1469,7 @@ Note that Views and Sessions are not perfect: The combination of ":mkview" and ":loadview" can be used to store up to ten different views of a file. These are remembered in the directory specified with the 'viewdir' option. The views are stored using the file name. If a -file is renamed or accessed through a (symbolic) link the view will not be +file is renamed or accessed through a (symbolic) link, the view will not be found. You might want to clean up your 'viewdir' directory now and then. @@ -1541,12 +1542,13 @@ always kept. This is used for: - The search string history. - The input-line history. - Contents of non-empty registers. -- The jump list -- File marks +- The jump list. +- File marks. + The timestamp feature was added before Vim 8.0. Older versions of Vim, starting with 7.4.1131, will keep the items with timestamp, but not use them. -Thus when using both an older and a newer version of Vim the most recent data -will be kept. +Thus, when using both an older and a newer version of Vim, the most recent +data will be kept. Notes for Unix: - The file protection for the viminfo file will be set to prevent other users @@ -1558,7 +1560,7 @@ Notes for Unix: allow just anybody to read and write your viminfo file! - Vim will not overwrite a viminfo file that is not writable by the current "real" user. This helps for when you did "su" to become root, but your - $HOME is still set to a normal user's home directory. Otherwise Vim would + $HOME is still set to a normal user's home directory. Otherwise, Vim would create a viminfo file owned by root that nobody else can read. - The viminfo file cannot be a symbolic link. This is to avoid security issues. @@ -1590,11 +1592,11 @@ using this command: > vim -c "normal '0" -In a csh compatible shell you could make an alias for it: > +In a C shell descendant, you could make an alias for it: > alias lvim vim -c '"'normal "'"0'"' -For a bash-like shell: > +For a Bash-like shell: > alias lvim='vim -c "normal '\''0"' @@ -1639,14 +1641,14 @@ MANUALLY READING AND WRITING *viminfo-read-write* Two commands can be used to read and write the viminfo file manually. This can be used to exchange registers between two running Vim programs: First type ":wv" in one and then ":rv" in the other. Note that if the register -already contained something, then ":rv!" would be required. Also note -however that this means everything will be overwritten with information from +already contained something, then ":rv!" would be required. Also note, +however, that this means everything will be overwritten with information from the first Vim, including the command line history, etc. The viminfo file itself can be edited by hand too, although we suggest you start with an existing one to get the format right. It is reasonably self-explanatory once you're in there. This can be useful in order to -create a second file, say "~/.my_viminfo" which could contain certain +create a second file, say "~/.my_viminfo", which could contain certain settings that you always want when you first start Vim. For example, you can preload registers with particular data, or put certain commands in the command line history. A line in your .vimrc file like > @@ -1670,7 +1672,7 @@ most of the information will be restored). |viminfo-file-name| above). If [!] is given, then any information that is already set (registers, marks, |v:oldfiles|, etc.) - will be overwritten + will be overwritten. *:wv* *:wviminfo* *E137* *E138* *E574* *E886* *E929* :wv[iminfo][!] [file] Write to viminfo file [file] (default: see @@ -1682,10 +1684,10 @@ most of the information will be restored). the old information is not read first, only the internal info is written. If 'viminfo' is empty, marks for up to 100 files will be written. - When you get error "E929: Too many viminfo temp files" - check that no old temp files were left behind (e.g. - ~/.viminf*) and that you can write in the directory of - the .viminfo file. + When you get error "E929: Too many viminfo temp + files", check that no old temp files were left behind + (e.g. ~/.viminf*) and that you can write in the + directory of the .viminfo file. *:ol* *:oldfiles* :ol[dfiles] List the files that have marks stored in the viminfo @@ -1703,7 +1705,7 @@ most of the information will be restored). the list is edited. If you get the |press-enter| prompt you can press "q" and still get the prompt to enter a file number. - Use ! to abandon a modified buffer. |abandon| + Use [!] to abandon a modified buffer. |abandon| {not when compiled with tiny features} vim:tw=78:ts=8:noet:ft=help:norl: diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt index 6715f65..de8a665 100644 --- a/runtime/doc/syntax.txt +++ b/runtime/doc/syntax.txt @@ -1,4 +1,4 @@ -*syntax.txt* For Vim version 9.1. Last change: 2024 Jan 06 +*syntax.txt* For Vim version 9.1. Last change: 2024 Mar 10 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1026,6 +1026,8 @@ Variable Highlight ~ *c_no_c99* don't highlight C99 standard items *c_no_c11* don't highlight C11 standard items *c_no_bsd* don't highlight BSD specific types +*c_functions* highlight function calls and definitions +*c_function_pointers* highlight function pointers definitions When 'foldmethod' is set to "syntax" then /* */ comments and { } blocks will become a fold. If you don't want comments to become a fold use: > @@ -1329,12 +1331,15 @@ Stack Overflow - https://stackoverflow.com/questions/12407800/which-comment-style-should-i-use-in-batch-files -To allow the use of the :: idiom for comments in the Windows Command -Interpreter or working with MS-DOS bat files, set the -dosbatch_colons_comment variable to anything: > +To allow the use of the :: idiom for comments in command blocks with the +Windows Command Interpreter set the dosbatch_colons_comment variable to +anything: > :let dosbatch_colons_comment = 1 +If this variable is set then a :: comment that is the last line in a command +block will be highlighted as an error. + There is an option that covers whether *.btm files should be detected as type "dosbatch" (MS-DOS batch files) or type "btm" (4DOS batch files). The latter is used by default. You may select the former with the following line: > @@ -1592,13 +1597,11 @@ edit F# or Fortran at all, use this in your startup vimrc: > FORTRAN *fortran.vim* *ft-fortran-syntax* Default highlighting and dialect ~ -Vim highlights according to Fortran 2023 (the most recent standard) by -default. This choice should be appropriate for most users most of the time -because Fortran 2023 is almost a superset of previous versions (Fortran 2018, -2008, 2003, 95, 90, and 77). A small number of features new to Fortran 2018 -and Fortran 2023 may have been omitted at present; the transition to Fortran -2023 will be completed in the near future. A few legacy constructs deleted or -declared obsolescent in recent Fortran standards are highlighted as todo +Vim highlights according to Fortran 2023 (the most recent standard). This +choice should be appropriate for most users most of the time because Fortran +2023 is almost a superset of previous versions (Fortran 2018, 2008, 2003, 95, +90, 77, and 66). A few legacy constructs deleted or declared obsolescent, +respectively, in recent Fortran standards are highlighted as errors and todo items. The syntax script no longer supports Fortran dialects. The variable @@ -2233,10 +2236,19 @@ MARKDOWN *ft-markdown-syntax* If you have long regions there might be wrong highlighting. At the cost of slowing down displaying, you can have the engine look further back to sync on -the start of a region, for example 500 lines: > +the start of a region, for example 500 lines (default is 50): > :let g:markdown_minlines = 500 +If you want to enable fenced code block syntax highlighting in your markdown +documents you can enable like this: > + + :let g:markdown_fenced_languages = ['html', 'python', 'bash=sh'] + +To disable markdown syntax concealing add the following to your vimrc: > + + :let g:markdown_syntax_conceal = 0 + MATHEMATICA *mma.vim* *ft-mma-syntax* *ft-mathematica-syntax* @@ -5265,7 +5277,8 @@ ctermul={color-nr} *highlight-ctermul* "cterm=" argument AFTER the "ctermfg=" or "ctermbg=" argument. Or use a number instead of a color name. - The case of the color names is ignored. + The case of the color names is ignored, however Vim will use lower + case color names when reading from the |v:colornames| dictionary. Note that for 16 color ansi style terminals (including xterms), the numbers in the NR-8 column is used. Here '*' means 'add 8' so that Blue is 12, DarkGray is 8 etc. @@ -5304,6 +5317,14 @@ ctermul={color-nr} *highlight-ctermul* command is given. If the Normal group colors are changed later, the "fg" and "bg" colors will not be adjusted. +ctermfont={font-nr} *highlight-ctermfont* + This gives the alternative font number to use in the terminal. The + available fonts depend on the terminal, and if the terminal is not set + up for alternative fonts this simply won't do anything. The range of + {font-nr} is 0-10 where 0 resets the font to the default font, 1-9 + selects one of the 9 alternate fonts, and 10 selects the Fraktur font. + For more information see your terminal's handling of SGR parameters + 10-20. |t_CF| 3. highlight arguments for the GUI @@ -5376,8 +5397,8 @@ guisp={color-name} *highlight-guisp* :highlight Comment guifg=#11f0c3 guibg=#ff00ff < If you are authoring a color scheme and use the same hexadecimal value - repeatedly, you can define a name for it in |v:colornames|. For - example: > + repeatedly, you can define a (lower case) name for it in |v:colornames|. + For example: > # provide a default value for this color but allow the user to # override it. diff --git a/runtime/doc/tags b/runtime/doc/tags index 1b55fa1..8dd4db2 100644 --- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -1024,6 +1024,7 @@ $quote eval.txt /*$quote* 't_AU' term.txt /*'t_AU'* 't_BD' term.txt /*'t_BD'* 't_BE' term.txt /*'t_BE'* +'t_CF' term.txt /*'t_CF'* 't_CS' term.txt /*'t_CS'* 't_CV' term.txt /*'t_CV'* 't_Ce' term.txt /*'t_Ce'* @@ -1293,6 +1294,7 @@ $quote eval.txt /*$quote* 'winaltkeys' options.txt /*'winaltkeys'* 'wincolor' options.txt /*'wincolor'* 'window' options.txt /*'window'* +'winfixbuf' options.txt /*'winfixbuf'* 'winfixheight' options.txt /*'winfixheight'* 'winfixwidth' options.txt /*'winfixwidth'* 'winheight' options.txt /*'winheight'* @@ -2872,6 +2874,7 @@ $quote eval.txt /*$quote* :map-arguments map.txt /*:map-arguments* :map-buffer map.txt /*:map-buffer* :map-cmd map.txt /*:map-cmd* +:map-cmd-key map.txt /*:map-cmd-key* :map-commands map.txt /*:map-commands* :map-expression map.txt /*:map-expression* :map-local map.txt /*:map-local* @@ -2884,6 +2887,7 @@ $quote eval.txt /*$quote* :map-special map.txt /*:map-special* :map-special-chars map.txt /*:map-special-chars* :map-special-keys map.txt /*:map-special-keys* +:map-super-keys map.txt /*:map-super-keys* :map-undo map.txt /*:map-undo* :map-unique map.txt /*:map-unique* :map-verbose map.txt /*:map-verbose* @@ -4134,6 +4138,7 @@ E1056 vim9.txt /*E1056* E1057 vim9.txt /*E1057* E1058 vim9.txt /*E1058* E1059 vim9.txt /*E1059* +E106 builtin.txt /*E106* E1060 vim9.txt /*E1060* E1061 vim9.txt /*E1061* E1062 eval.txt /*E1062* @@ -4513,6 +4518,8 @@ E1409 vim9class.txt /*E1409* E141 message.txt /*E141* E1410 vim9class.txt /*E1410* E1411 vim9class.txt /*E1411* +E1412 vim9class.txt /*E1412* +E1413 vim9class.txt /*E1413* E142 message.txt /*E142* E143 autocmd.txt /*E143* E144 various.txt /*E144* @@ -4535,6 +4542,9 @@ E1508 editing.txt /*E1508* E1509 editing.txt /*E1509* E151 helphelp.txt /*E151* E1510 change.txt /*E1510* +E1511 options.txt /*E1511* +E1512 options.txt /*E1512* +E1513 message.txt /*E1513* E152 helphelp.txt /*E152* E153 helphelp.txt /*E153* E154 helphelp.txt /*E154* @@ -5706,6 +5716,7 @@ TabNew autocmd.txt /*TabNew* Tcl if_tcl.txt /*Tcl* TermChanged autocmd.txt /*TermChanged* TermResponse autocmd.txt /*TermResponse* +TermResponseAll autocmd.txt /*TermResponseAll* TermdebugStartPost terminal.txt /*TermdebugStartPost* TermdebugStartPre terminal.txt /*TermdebugStartPre* TermdebugStopPost terminal.txt /*TermdebugStopPost* @@ -5779,6 +5790,7 @@ WinClosed autocmd.txt /*WinClosed* WinEnter autocmd.txt /*WinEnter* WinLeave autocmd.txt /*WinLeave* WinNew autocmd.txt /*WinNew* +WinNewPre autocmd.txt /*WinNewPre* WinResized autocmd.txt /*WinResized* WinResized-event windows.txt /*WinResized-event* WinScrolled autocmd.txt /*WinScrolled* @@ -5964,6 +5976,7 @@ added-7.4 version7.txt /*added-7.4* added-8.1 version8.txt /*added-8.1* added-8.2 version8.txt /*added-8.2* added-9.1 version9.txt /*added-9.1* +added-9.2 version9.txt /*added-9.2* added-BeOS version5.txt /*added-BeOS* added-Mac version5.txt /*added-Mac* added-VMS version5.txt /*added-VMS* @@ -6116,6 +6129,7 @@ binary-number eval.txt /*binary-number* bitwise-function usr_41.txt /*bitwise-function* bitwise-shift eval.txt /*bitwise-shift* blob eval.txt /*blob* +blob-concatenation eval.txt /*blob-concatenation* blob-functions usr_41.txt /*blob-functions* blob-identity eval.txt /*blob-identity* blob-index eval.txt /*blob-index* @@ -6164,12 +6178,14 @@ bug-fixes-7 version7.txt /*bug-fixes-7* bug-fixes-8 version8.txt /*bug-fixes-8* bug-fixes-9 version9.txt /*bug-fixes-9* bug-fixes-9.1 version9.txt /*bug-fixes-9.1* +bug-fixes-9.2 version9.txt /*bug-fixes-9.2* bug-reports intro.txt /*bug-reports* bugreport.vim intro.txt /*bugreport.vim* bugs intro.txt /*bugs* builtin-function-details builtin.txt /*builtin-function-details* builtin-function-list builtin.txt /*builtin-function-list* builtin-functions builtin.txt /*builtin-functions* +builtin-object-methods vim9class.txt /*builtin-object-methods* builtin-terms term.txt /*builtin-terms* builtin-tools gui.txt /*builtin-tools* builtin.txt builtin.txt /*builtin.txt* @@ -6278,6 +6294,8 @@ c_ansi_typedefs syntax.txt /*c_ansi_typedefs* c_comment_strings syntax.txt /*c_comment_strings* c_curly_error syntax.txt /*c_curly_error* c_digraph cmdline.txt /*c_digraph* +c_function_pointers syntax.txt /*c_function_pointers* +c_functions syntax.txt /*c_functions* c_gnu syntax.txt /*c_gnu* c_no_ansi syntax.txt /*c_no_ansi* c_no_bracket_error syntax.txt /*c_no_bracket_error* @@ -6346,6 +6364,7 @@ changed-7.4 version7.txt /*changed-7.4* changed-8.1 version8.txt /*changed-8.1* changed-8.2 version8.txt /*changed-8.2* changed-9.1 version9.txt /*changed-9.1* +changed-9.2 version9.txt /*changed-9.2* changelist motion.txt /*changelist* changelog.vim syntax.txt /*changelog.vim* changenr() builtin.txt /*changenr()* @@ -6428,6 +6447,7 @@ cino-{ indent.txt /*cino-{* cino-} indent.txt /*cino-}* cinoptions-values indent.txt /*cinoptions-values* class vim9class.txt /*class* +class-compile vim9class.txt /*class-compile* class-method vim9class.txt /*class-method* clear-undo undo.txt /*clear-undo* clearmatches() builtin.txt /*clearmatches()* @@ -6483,6 +6503,7 @@ compile-changes-6 version6.txt /*compile-changes-6* compile-changes-7 version7.txt /*compile-changes-7* compile-changes-8 version8.txt /*compile-changes-8* compile-changes-9 version9.txt /*compile-changes-9* +compile-changes-9.2 version9.txt /*compile-changes-9.2* compiler-compaqada ft_ada.txt /*compiler-compaqada* compiler-decada ft_ada.txt /*compiler-decada* compiler-dotnet quickfix.txt /*compiler-dotnet* @@ -6749,7 +6770,9 @@ dict-identity eval.txt /*dict-identity* dict-modification eval.txt /*dict-modification* did_filetype() builtin.txt /*did_filetype()* diff diff.txt /*diff* +diff() builtin.txt /*diff()* diff-diffexpr diff.txt /*diff-diffexpr* +diff-func-examples diff.txt /*diff-func-examples* diff-mode diff.txt /*diff-mode* diff-options diff.txt /*diff-options* diff-original-file diff.txt /*diff-original-file* @@ -7147,6 +7170,7 @@ foldtextresult() builtin.txt /*foldtextresult()* font-sizes gui_x11.txt /*font-sizes* fontset mbyte.txt /*fontset* forced-motion motion.txt /*forced-motion* +foreach() builtin.txt /*foreach()* foreground() builtin.txt /*foreground()* fork os_unix.txt /*fork* form.vim syntax.txt /*form.vim* @@ -7176,6 +7200,7 @@ ft-ada-syntax ft_ada.txt /*ft-ada-syntax* ft-ada-variables ft_ada.txt /*ft-ada-variables* ft-ant-syntax syntax.txt /*ft-ant-syntax* ft-apache-syntax syntax.txt /*ft-apache-syntax* +ft-asciidoc-plugin filetype.txt /*ft-asciidoc-plugin* ft-asm-syntax syntax.txt /*ft-asm-syntax* ft-asm68k-syntax syntax.txt /*ft-asm68k-syntax* ft-asmh8300-syntax syntax.txt /*ft-asmh8300-syntax* @@ -7344,6 +7369,7 @@ ft-xhtml-omni insert.txt /*ft-xhtml-omni* ft-xml-omni insert.txt /*ft-xml-omni* ft-xml-syntax syntax.txt /*ft-xml-syntax* ft-xpm-syntax syntax.txt /*ft-xpm-syntax* +ft-yaml-indent indent.txt /*ft-yaml-indent* ft-yaml-syntax syntax.txt /*ft-yaml-syntax* ft-zimbu-plugin filetype.txt /*ft-zimbu-plugin* ft-zsh-syntax syntax.txt /*ft-zsh-syntax* @@ -7535,7 +7561,6 @@ g:netrw_localmkdir pi_netrw.txt /*g:netrw_localmkdir* g:netrw_localmkdiropt pi_netrw.txt /*g:netrw_localmkdiropt* g:netrw_localmovecmd pi_netrw.txt /*g:netrw_localmovecmd* g:netrw_localmovecmdopt pi_netrw.txt /*g:netrw_localmovecmdopt* -g:netrw_localrmdir pi_netrw.txt /*g:netrw_localrmdir* g:netrw_maxfilenamelen pi_netrw.txt /*g:netrw_maxfilenamelen* g:netrw_menu pi_netrw.txt /*g:netrw_menu* g:netrw_mkdir_cmd pi_netrw.txt /*g:netrw_mkdir_cmd* @@ -7741,6 +7766,8 @@ getqflist() builtin.txt /*getqflist()* getqflist-examples quickfix.txt /*getqflist-examples* getreg() builtin.txt /*getreg()* getreginfo() builtin.txt /*getreginfo()* +getregion() builtin.txt /*getregion()* +getregion-notes builtin.txt /*getregion-notes* getregtype() builtin.txt /*getregtype()* getscript pi_getscript.txt /*getscript* getscript-autoinstall pi_getscript.txt /*getscript-autoinstall* @@ -7859,6 +7886,7 @@ gui-w32-start gui_w32.txt /*gui-w32-start* gui-w32-various gui_w32.txt /*gui-w32-various* gui-w32-windowid gui_w32.txt /*gui-w32-windowid* gui-w32s os_win32.txt /*gui-w32s* +gui-wayland gui_x11.txt /*gui-wayland* gui-win32-maximized gui_w32.txt /*gui-win32-maximized* gui-x11 gui_x11.txt /*gui-x11* gui-x11-athena gui_x11.txt /*gui-x11-athena* @@ -7945,6 +7973,7 @@ highlight-clear syntax.txt /*highlight-clear* highlight-cterm syntax.txt /*highlight-cterm* highlight-ctermbg syntax.txt /*highlight-ctermbg* highlight-ctermfg syntax.txt /*highlight-ctermfg* +highlight-ctermfont syntax.txt /*highlight-ctermfont* highlight-ctermul syntax.txt /*highlight-ctermul* highlight-default syntax.txt /*highlight-default* highlight-font syntax.txt /*highlight-font* @@ -8228,6 +8257,7 @@ improvements-6 version6.txt /*improvements-6* improvements-7 version7.txt /*improvements-7* improvements-8 version8.txt /*improvements-8* improvements-9 version9.txt /*improvements-9* +improvements-9.2 version9.txt /*improvements-9.2* in_bot channel.txt /*in_bot* in_buf channel.txt /*in_buf* in_io-buffer channel.txt /*in_io-buffer* @@ -8244,6 +8274,7 @@ incompatible-6 version6.txt /*incompatible-6* incompatible-7 version7.txt /*incompatible-7* incompatible-8 version8.txt /*incompatible-8* incompatible-9 version9.txt /*incompatible-9* +incompatible-9.2 version9.txt /*incompatible-9.2* indent() builtin.txt /*indent()* indent-expression indent.txt /*indent-expression* indent.txt indent.txt /*indent.txt* @@ -8591,6 +8622,7 @@ masm.vim syntax.txt /*masm.vim* match() builtin.txt /*match()* match-highlight pattern.txt /*match-highlight* match-parens tips.txt /*match-parens* +match-pattern builtin.txt /*match-pattern* matchadd() builtin.txt /*matchadd()* matchaddpos() builtin.txt /*matchaddpos()* matcharg() builtin.txt /*matcharg()* @@ -9042,6 +9074,7 @@ new-options-5.2 version5.txt /*new-options-5.2* new-options-5.4 version5.txt /*new-options-5.4* new-other-8.2 version8.txt /*new-other-8.2* new-other-9.1 version9.txt /*new-other-9.1* +new-other-9.2 version9.txt /*new-other-9.2* new-perl-python version5.txt /*new-perl-python* new-persistent-undo version7.txt /*new-persistent-undo* new-plugins version6.txt /*new-plugins* @@ -9124,9 +9157,12 @@ o_object-select motion.txt /*o_object-select* o_v motion.txt /*o_v* object vim9class.txt /*object* object-const-variable vim9class.txt /*object-const-variable* +object-empty() vim9class.txt /*object-empty()* object-final-variable vim9class.txt /*object-final-variable* +object-len() vim9class.txt /*object-len()* object-motions motion.txt /*object-motions* object-select motion.txt /*object-select* +object-string() vim9class.txt /*object-string()* objects index.txt /*objects* obtaining-exted netbeans.txt /*obtaining-exted* ocaml.vim syntax.txt /*ocaml.vim* @@ -9211,8 +9247,10 @@ patches-8.1 version8.txt /*patches-8.1* patches-8.2 version8.txt /*patches-8.2* patches-9 version9.txt /*patches-9* patches-9.1 version9.txt /*patches-9.1* +patches-9.2 version9.txt /*patches-9.2* patches-after-8.2 version9.txt /*patches-after-8.2* patches-after-9.0 version9.txt /*patches-after-9.0* +patches-after-9.1 version9.txt /*patches-after-9.1* pathshorten() builtin.txt /*pathshorten()* pattern pattern.txt /*pattern* pattern-atoms pattern.txt /*pattern-atoms* @@ -10145,6 +10183,7 @@ t_AL term.txt /*t_AL* t_AU term.txt /*t_AU* t_BD term.txt /*t_BD* t_BE term.txt /*t_BE* +t_CF term.txt /*t_CF* t_CS term.txt /*t_CS* t_CTRL-W_. terminal.txt /*t_CTRL-W_.* t_CTRL-W_: terminal.txt /*t_CTRL-W_:* @@ -10503,6 +10542,7 @@ termdebug_winbar terminal.txt /*termdebug_winbar* terminal terminal.txt /*terminal* terminal-api terminal.txt /*terminal-api* terminal-autoshelldir terminal.txt /*terminal-autoshelldir* +terminal-bufname terminal.txt /*terminal-bufname* terminal-client-server terminal.txt /*terminal-client-server* terminal-close terminal.txt /*terminal-close* terminal-colors os_unix.txt /*terminal-colors* @@ -10999,6 +11039,7 @@ version-8.1 version8.txt /*version-8.1* version-8.2 version8.txt /*version-8.2* version-9.0 version9.txt /*version-9.0* version-9.1 version9.txt /*version-9.1* +version-9.2 version9.txt /*version-9.2* version-variable eval.txt /*version-variable* version4.txt version4.txt /*version4.txt* version5.txt version5.txt /*version5.txt* @@ -11015,6 +11056,7 @@ version8.2 version8.txt /*version8.2* version8.txt version8.txt /*version8.txt* version9.0 version9.txt /*version9.0* version9.1 version9.txt /*version9.1* +version9.2 version9.txt /*version9.2* version9.txt version9.txt /*version9.txt* versionlong-variable eval.txt /*versionlong-variable* vi intro.txt /*vi* @@ -11034,6 +11076,7 @@ vim-8.2 version8.txt /*vim-8.2* vim-9 version9.txt /*vim-9* vim-9.0 version9.txt /*vim-9.0* vim-9.1 version9.txt /*vim-9.1* +vim-9.2 version9.txt /*vim-9.2* vim-additions vi_diff.txt /*vim-additions* vim-announce intro.txt /*vim-announce* vim-arguments starting.txt /*vim-arguments* @@ -11180,6 +11223,7 @@ vt100-cursor-keys term.txt /*vt100-cursor-keys* vt100-function-keys term.txt /*vt100-function-keys* w motion.txt /*w* w32-clientserver remote.txt /*w32-clientserver* +w32-experimental-keycode-trans-strategy gui_w32.txt /*w32-experimental-keycode-trans-strategy* w32-xpm-support gui_w32.txt /*w32-xpm-support* w: eval.txt /*w:* w:current_syntax syntax.txt /*w:current_syntax* diff --git a/runtime/doc/tagsrch.txt b/runtime/doc/tagsrch.txt index aa7b9dd..d3d549a 100644 --- a/runtime/doc/tagsrch.txt +++ b/runtime/doc/tagsrch.txt @@ -1,4 +1,4 @@ -*tagsrch.txt* For Vim version 9.1. Last change: 2023 Feb 13 +*tagsrch.txt* For Vim version 9.1. Last change: 2024 Mar 16 VIM REFERENCE MANUAL by Bram Moolenaar @@ -407,19 +407,24 @@ the pattern. *tag-!* If the tag is in the current file this will always work. Otherwise the performed actions depend on whether the current file was changed, whether a ! -is added to the command and on the 'autowrite' option: - - tag in file autowrite ~ -current file changed ! option action ~ ------------------------------------------------------------------------------ - yes x x x goto tag - no no x x read other file, goto tag - no yes yes x abandon current file, read other file, goto - tag - no yes no on write current file, read other file, goto - tag - no yes no off fail ------------------------------------------------------------------------------ +is added to the command and on the 'autowrite' and 'winfixbuf' options: + + tag in file winfixbuf autowrite ~ +current file changed ! option option action ~ + ----------------------------------------------------------------------------- + yes x x off x goto tag + no no x off x read other file, goto tag + no yes yes off x abandon current file, + read other file, goto tag + no yes no off on write current file, + read other file, goto tag + no yes no off off fail + yes x yes x x goto tag + no no no on x fail + no yes no on x fail + no yes no on on fail + no yes no on off fail + ----------------------------------------------------------------------------- - If the tag is in the current file, the command will always work. - If the tag is in another file and the current file was not changed, the @@ -435,6 +440,8 @@ current file changed ! option action ~ the changes, use the ":w" command and then use ":tag" without an argument. This works because the tag is put on the stack anyway. If you want to lose the changes you can use the ":tag!" command. +- If the tag is in another file and the window includes 'winfixbuf', the + command will fail. If the tag is in the same file then it may succeed. *tag-security* Note that Vim forbids some commands, for security reasons. This works like diff --git a/runtime/doc/term.txt b/runtime/doc/term.txt index 546b0bf..d958229 100644 --- a/runtime/doc/term.txt +++ b/runtime/doc/term.txt @@ -1,4 +1,4 @@ -*term.txt* For Vim version 9.1. Last change: 2023 Dec 09 +*term.txt* For Vim version 9.1. Last change: 2024 Feb 28 VIM REFERENCE MANUAL by Bram Moolenaar @@ -345,7 +345,7 @@ versions (and will then also end up in terminfo/termcap). *xterm-kitty* *kitty-terminal* The Kitty terminal is a special case. Mainly because it works differently -from most other terminals, but also because, instead of trying the fit in and +from most other terminals, but also because, instead of trying to fit in and make it behave like other terminals by default, it dictates how applications need to work when using Kitty. This makes it very difficult for Vim to work in a Kitty terminal. Some exceptions have been hard coded, but it is not at @@ -448,6 +448,7 @@ Added by Vim (there are no standard codes for these): t_AU set underline color (ANSI) *t_AU* *'t_AU'* t_Ce undercurl and underline end *t_Ce* *'t_Ce'* t_Cs undercurl (curly underline) mode *t_Cs* *'t_Cs'* + t_CF set alternate font (using index 0 - 10) *t_CF* *'t_CF'* t_Us double underline mode *t_Us* *'t_Us'* t_ds dotted underline mode *t_ds* *'t_ds'* t_Ds dashed underline mode *t_Ds* *'t_Ds'* diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt index c5331fa..c99b882 100644 --- a/runtime/doc/terminal.txt +++ b/runtime/doc/terminal.txt @@ -1,4 +1,4 @@ -*terminal.txt* For Vim version 9.1. Last change: 2023 Nov 08 +*terminal.txt* For Vim version 9.1. Last change: 2024 Mar 17 VIM REFERENCE MANUAL by Bram Moolenaar @@ -208,6 +208,7 @@ Command syntax ~ [command]. Use `:execute` if you must have a Vim command following in the same line. + *terminal-bufname* A new buffer will be created, using [command] or 'shell' as the name, prefixed with a "!". If a buffer by this name already exists a number is added in @@ -302,6 +303,12 @@ current window into a terminal window. If there are unsaved changes this fails, use ! to force, as usual. *terminal-close* +When the terminal job finishes and no [command] was given (e.g. the 'shell' +command was executed), the terminal window will be closed by default (unless +the buffer in next window receiving the space has the 'nobuflisted' option set, +in which case the terminal window would not be closed automatically, but a new +empty buffer would be opened in that window). + When the terminal window is closed, e.g. when the shell exits and "++close" argument was used, and this is the last normal Vim window, then Vim will exit. This is like using |:quit| in a normal window. Help and preview windows are @@ -1024,17 +1031,17 @@ This can be used to pass the current directory from a shell to Vim. Put this in your .vimrc: > def g:Tapi_lcd(_, path: string) if isdirectory(path) - execute 'silent lcd ' .. fnameescape(path) - endif + execute 'silent lcd ' .. fnameescape(path) + endif enddef < And, in a bash init file: > - if [[ -n "$VIM_TERMINAL" ]]; then - PROMPT_COMMAND='_vim_sync_PWD' - function _vim_sync_PWD() { - printf '\033]51;["call", "Tapi_lcd", "%q"]\007' "$PWD" - } - fi + if [[ -n "$VIM_TERMINAL" ]]; then + PROMPT_COMMAND='_vim_sync_PWD' + function _vim_sync_PWD() { + printf '\033]51;["call", "Tapi_lcd", "%q"]\007' "$PWD" + } + fi < Or, for zsh: > if [[ -n "$VIM_TERMINAL" ]]; then @@ -1402,8 +1409,8 @@ Other commands ~ *:Asm* jump to the window with the disassembly, create it if there isn't one *:Var* jump to the window with the local and argument variables, - create it if there isn't one. This window updates whenever the - program is stopped + create it if there isn't one. This window updates whenever the + program is stopped Events ~ *termdebug-events* diff --git a/runtime/doc/testing.txt b/runtime/doc/testing.txt index dabdd32..356d74e 100644 --- a/runtime/doc/testing.txt +++ b/runtime/doc/testing.txt @@ -1,4 +1,4 @@ -*testing.txt* For Vim version 9.1. Last change: 2023 May 18 +*testing.txt* For Vim version 9.1. Last change: 2024 Feb 18 VIM REFERENCE MANUAL by Bram Moolenaar @@ -234,6 +234,8 @@ test_mswin_event({event}, {args}) *test_mswin_event()* {event} is a String and the supported values are: "mouse" mouse event. "key" keyboard event. + "set_keycode_trans_strategy" + Change the key translation method. "mouse": Inject either a mouse button click, or a mouse move, event. @@ -290,6 +292,15 @@ test_mswin_event({event}, {args}) *test_mswin_event()* unprocessed key events. All other {args} items are optional when this is set and true. + "set_keycode_trans_strategy": + |w32-experimental-keycode-trans-strategy| + Switch the keycode translation method. The supported methods + are: + experimental: The method used after Patch v8.2.4807 + using ToUnicode() Win API call. + classic: The method used pre Patch v8.2.4807 + using the TranslateMessage() Win API call. + Returns TRUE if the event is successfully added or executed, FALSE if there is a failure. diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt index 9847ff7..2b4a70a 100644 --- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -1,4 +1,4 @@ -*todo.txt* For Vim version 9.1. Last change: 2023 Dec 14 +*todo.txt* For Vim version 9.1. Last change: 2024 Mar 03 VIM REFERENCE MANUAL by Bram Moolenaar @@ -130,11 +130,8 @@ Further Vim9 improvements: Issue #11822: any.Func() can be a dict or an object call, need to handle this at runtime. Also see #12198 for an example. Possibly issue #11981 can be fixed at the same time (has two examples). - - Make ":defcompile ClassName" compile all functions and methods in the - class. - Forward declaration of a class? E.g. for Clone() function. Email lifepillar 2023 Mar 26 - - object empty(), len() - can class define a method to be used for them? - When "Meta" is a class, is "const MetaAlias = Meta" allowed? It should either work or given an error. Possibly give an error now and implement it later (using a typedef). #12006 @@ -958,9 +955,6 @@ When 'sidescrolloff' is set, using "zl" to go to the end of the line, suddenly scrolls back. Should allow for this scrolling, like 'scrolloff' does when using CTRL-E. (Yee Cheng Chin, #3721) -Add function to make use of internal diff, working on two lists and returning -unified diff (list of lines). - When splitting a window with few text lines, the relative cursor position is kept, which means part of the text isn't displayed. Better show all the text when possible. (Dylan Lloyd, #3973) @@ -1123,9 +1117,6 @@ When t_Co is changed from termresponse, the OptionSet autocommand event isn't triggered. Use the code from the end of set_num_option() in set_color_count(). -Add another autocommand like TermResponse that is fired for the other terminal -responses, such as bg and fg. Use "bg", "fg", "blink", etc. for the name. - When using command line window, CmdlineLeave is triggered without CmdlineEnter. (xtal8, 2017 Oct 30, #2263) Add some way to get the nested state. Although CmdwinEnter is obviously @@ -4672,7 +4663,6 @@ GUI: Autocommands: -9 Add WinNewPre - before creating a new window. #10635 9 When triggering WinNew provide the window ID somehow. #10633 9 Rework the code from FEAT_OSFILETYPE for autocmd-osfiletypes to use 'filetype'. Only for when the current buffer is known. diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt index 2286d48..04a9afb 100644 --- a/runtime/doc/usr_41.txt +++ b/runtime/doc/usr_41.txt @@ -1,4 +1,4 @@ -*usr_41.txt* For Vim version 9.1. Last change: 2023 May 06 +*usr_41.txt* For Vim version 9.1. Last change: 2024 Feb 25 VIM USER MANUAL - by Bram Moolenaar @@ -69,7 +69,7 @@ The output of the example code is: In the first line the `vim9script` command makes clear this is a new, |Vim9| script file. That matters for how the rest of the file is used. It is -recommended to put it in the very fist line, before any comments. +recommended to put it in the very first line, before any comments. *vim9-declarations* The `var i = 1` command declares the "i" variable and initializes it. The generic form is: > @@ -798,6 +798,7 @@ List manipulation: *list-functions* filter() remove selected items from a List map() change each List item mapnew() make a new List with changed items + foreach() apply function to List items reduce() reduce a List to a value slice() take a slice of a List sort() sort a List @@ -829,6 +830,7 @@ Dictionary manipulation: *dict-functions* filter() remove selected entries from a Dictionary map() change each Dictionary entry mapnew() make a new Dictionary with changed items + foreach() apply function to Dictionary items keys() get List of Dictionary keys values() get List of Dictionary values items() get List of Dictionary key-value pairs @@ -927,6 +929,7 @@ Cursor and mark position: *cursor-functions* *mark-functions* Working with text in the current buffer: *text-functions* getline() get a line or list of lines from the buffer + getregion() get a region of text from the buffer setline() replace a line in the buffer append() append line or list of lines in the buffer indent() indent of a specific line @@ -1366,6 +1369,7 @@ Various: *various-functions* changenr() return number of most recent change cscope_connection() check if a cscope connection exists did_filetype() check if a FileType autocommand was used + diff() diff two Lists of strings eventhandler() check if invoked by an event handler getpid() get process ID of Vim getscriptinfo() get list of sourced vim scripts diff --git a/runtime/doc/version9.txt b/runtime/doc/version9.txt index 697fd79..bf16d49 100644 --- a/runtime/doc/version9.txt +++ b/runtime/doc/version9.txt @@ -1,4 +1,4 @@ -*version9.txt* For Vim version 9.1. Last change: 2024 Jan 05 +*version9.txt* For Vim version 9.1. Last change: 2024 Mar 03 VIM REFERENCE MANUAL by Bram Moolenaar @@ -41535,4 +41535,88 @@ Patch 9.0.2190 Problem: proto files need update Solution: re-generate them +============================================================================== +VERSION 9.2 *version-9.2* *version9.2* *vim-9.2* + +This section is about improvements made between version 9.1 and 9.2 +and is a work in progress. + +Support for Wayland UI. + +Vim9 script +----------- +Add support for internal builtin functions with vim9 objects, see +|builtin-object-methods| + +Other improvements *new-other-9.2* +------------------ + +Changed *changed-9.2* +------- + +Added *added-9.2* +----- + +Various syntax, indent and other plugins were added. + +Functions: ~ + +|diff()| diff two Lists of strings +|foreach()| apply function to List items +|matchbufline()| all the matches of a pattern in a buffer +|matchstrlist()| all the matches of a pattern in a List of strings +|getregion()| get a region of text from a buffer + + +Autocommands: ~ + +|TermResponseAll| after the terminal response to |t_RV| and others is + received +|WinNewPre| before creating a new window + + +Commands: ~ + + +Options: ~ + +'winfixbuf' Keep buffer focused in a window + +============================================================================== +INCOMPATIBLE CHANGES *incompatible-9.2* + +Improved/Different MS-Windows mapping support +|w32-experimental-keycode-trans-strategy| + +============================================================================== +IMPROVEMENTS *improvements-9.2* + +Support for command-line completion of 'keymap' option values. + +Support for compiling all the methods in a Vim9 class using |:defcompile|. + +Support for alternate font highlighting using |t_CF| terminal code. + +Support for Super key mappings in GTK using . + +Improved visual highlighting. + +Python3 support in OpenVMS. + +============================================================================== +COMPILE TIME CHANGES *compile-changes-9.2* + +Support for building with Ruby 3.3. + +Support for building Vim 9 in z/OS (MVS). + +============================================================================== +PATCHES *patches-9.2* *bug-fixes-9.2* + *patches-after-9.1* + +The list of patches that got included since 9.1.0. This includes all the new +features, but does not include runtime file changes (syntax, indent, ftplugin, +documentation, etc.) + + vim:tw=78:ts=8:noet:ft=help:norl:fdm=manual: diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt index b12b1cc..7dd2ab0 100644 --- a/runtime/doc/vim9.txt +++ b/runtime/doc/vim9.txt @@ -1,4 +1,4 @@ -*vim9.txt* For Vim version 9.1. Last change: 2023 Dec 24 +*vim9.txt* For Vim version 9.1. Last change: 2024 Jan 12 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1260,10 +1260,12 @@ Script-local variables in a |Vim9| script must be declared at the script level. They cannot be created in a function, also not in a legacy function. *:defc* *:defcompile* -:defc[ompile] Compile functions defined in the current script that - were not compiled yet. - This will report any errors found during compilation. - This excludes functions defined inside a class. +:defc[ompile] Compile functions and classes (|class-compile|) + defined in the current script that were not compiled + yet. This will report any errors found during + compilation. + +:defc[ompile] MyClass Compile all methods in a class. |class-compile| :defc[ompile] {func} :defc[ompile] debug {func} @@ -1718,8 +1720,8 @@ an example for each category: > Vim does not have a familiar null value; it has various null_ predefined values, for example |null_string|, |null_list|, |null_job|. Primitives do not have a null_. The typical use cases for null_ are: -- to `clear a variable` and release its resources; -- as a `default for a parameter` in a function definition, see |null-compare|. +- to clear a variable and release its resources; +- as a default for a parameter in a function definition, see |null-compare|. For a specialized variable, like `job`, null_ is used to clear the resources. For a container variable, resources can also be cleared by @@ -1771,7 +1773,7 @@ an empty container, do not use null_ in a comparison: > F(null_list) # output: "null" F([]) # output: "not null, empty" F(['']) # output: "not null, not empty" -The above function takes a `list of strings` and reports on it. +The above function takes a list of strings and reports on it. Change the above function signature to accept different types of arguments: > def F(arg: list = null_list) # any type of list def F(arg: any = null) # any type @@ -1789,18 +1791,18 @@ with vim9 null semantics, the programmer may chose to use null_ in comparisons and/or other situations. Elsewhere in the documentation it says: - Quite often a null value is handled the same as an - empty value, but not always + Quite often a null value is handled the same as an empty value, but + not always Here's an example: > vim9script var s1: list var s2: list = null_list echo s1 # output: "[]" echo s2 # output: "[]" - + echo s1 + ['a'] # output: "['a']" echo s2 + ['a'] # output: "['a']" - + echo s1->add('a') # output: "['a']" echo s2->add('a') # E1130: Can not add to null list < @@ -2022,7 +2024,7 @@ Note that this does not work for variables, only for functions. *import-legacy* *legacy-import* `:import` can also be used in legacy Vim script. The imported namespace still becomes script-local, even when the "s:" prefix is not given. For example: > - import "myfile.vim" + import "myfile.vim" call s:myfile.MyFunc() And using the "as name" form: > diff --git a/runtime/doc/vim9class.txt b/runtime/doc/vim9class.txt index 6e94e84..a00a5b7 100644 --- a/runtime/doc/vim9class.txt +++ b/runtime/doc/vim9class.txt @@ -1,4 +1,4 @@ -*vim9class.txt* For Vim version 9.1. Last change: 2024 Jan 06 +*vim9class.txt* For Vim version 9.1. Last change: 2024 Mar 03 VIM REFERENCE MANUAL by Bram Moolenaar @@ -710,6 +710,32 @@ The initialization isn't needed, the list is empty by default. *E1330* Some types cannot be used, such as "void", "null" and "v:none". +Builtin Object Methods ~ + *builtin-object-methods* +Some of the builtin functions like |empty()|, |len()| and |string()| can be +used with an object. An object can implement a method with the same name as +these builtin functions to return an object-specific value. + + *E1412* +The following builtin methods are supported: + *object-empty()* + empty() Invoked by the |empty()| function to check whether an object is + empty. If this method is missing, then true is returned. This + method should not accept any arguments and must return a boolean. + *object-len()* + len() Invoked by the |len()| function to return the length of an + object. If this method is missing in the class, then an error is + given and zero is returned. This method should not accept any + arguments and must return a number. + *object-string()* + string() Invoked by the |string()| function to get a textual + representation of an object. Also used by the |:echo| command + for an object. If this method is missing in the class, then a + built-in default textual representation is used. This method + should not accept any arguments and must return a string. + + *E1413* +A class method cannot be used as a builtin method. Defining an interface ~ *Interface* *:interface* *:endinterface* @@ -830,7 +856,14 @@ Note that the method name must start with "new". If there is no method called "new()" then the default constructor is added, even though there are other constructor methods. +Compiling methods in a Class ~ + *class-compile* +The |:defcompile| command can be used to compile all the class and object +methods defined in a class: > + defcompile MyClass # Compile class "MyClass" + defcompile # Compile the classes in the current script +< ============================================================================== 7. Type definition *typealias* *Vim9-type* *:type* diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt index 8064748..e264e51 100644 --- a/runtime/doc/windows.txt +++ b/runtime/doc/windows.txt @@ -1,4 +1,4 @@ -*windows.txt* For Vim version 9.1. Last change: 2022 Nov 27 +*windows.txt* For Vim version 9.1. Last change: 2024 Feb 20 VIM REFERENCE MANUAL by Bram Moolenaar @@ -519,35 +519,33 @@ horizontally split windows. CTRL-W H does it the other way around. *CTRL-W_K* CTRL-W K Move the current window to be at the very top, using the full - width of the screen. This works like closing the current - window and then creating another one with ":topleft split", - except that the current window contents is used for the new - window. + width of the screen. This works like `:topleft split`, except + it is applied to the current window and no new window is + created. *CTRL-W_J* CTRL-W J Move the current window to be at the very bottom, using the - full width of the screen. This works like closing the current - window and then creating another one with ":botright split", - except that the current window contents is used for the new - window. + full width of the screen. This works like `:botright split`, + except it is applied to the current window and no new window + is created. *CTRL-W_H* CTRL-W H Move the current window to be at the far left, using the - full height of the screen. This works like closing the - current window and then creating another one with - `:vert topleft split`, except that the current window contents - is used for the new window. + full height of the screen. This works like + `:vert topleft split`, except it is applied to the current + window and no new window is created. *CTRL-W_L* CTRL-W L Move the current window to be at the far right, using the full - height of the screen. This works like closing the - current window and then creating another one with - `:vert botright split`, except that the current window - contents is used for the new window. + height of the screen. This works like `:vert botright split`, + except it is applied to the current window and no new window + is created. *CTRL-W_T* CTRL-W T Move the current window to a new tab page. This fails if there is only one window in the current tab page. + This works like `:tab split`, except the previous window is + closed. When a count is specified the new tab page will be opened before the tab page with this index. Otherwise it comes after the current tab page. diff --git a/runtime/filetype.vim b/runtime/filetype.vim index 0c2869a..d53671a 100644 --- a/runtime/filetype.vim +++ b/runtime/filetype.vim @@ -317,6 +317,9 @@ au BufRead,BufNewFile *.chai setf chaiscript " Chatito au BufNewFile,BufRead *.chatito setf chatito +" Chuck +au BufNewFile,BufRead *.ck setf chuck + " Comshare Dimension Definition Language au BufNewFile,BufRead *.cdl setf cdl @@ -531,6 +534,9 @@ au BufNewFile,BufRead *.csp,*.fdr setf csp au BufNewFile,BufRead *.pld setf cupl au BufNewFile,BufRead *.si setf cuplsim +" Dafny +au BufNewFile,BufRead *.dfy setf dafny + " Dart au BufRead,BufNewfile *.dart,*.drt setf dart @@ -643,8 +649,8 @@ au BufNewFile,BufRead *.dsl " DTD (Document Type Definition for XML) au BufNewFile,BufRead *.dtd setf dtd -" DTS/DSTI (device tree files) -au BufNewFile,BufRead *.dts,*.dtsi setf dts +" DTS/DSTI/DTSO (device tree files) +au BufNewFile,BufRead *.dts,*.dtsi,*.dtso,*.its setf dts " EDIF (*.edf,*.edif,*.edn,*.edo) or edn au BufNewFile,BufRead *.ed\(f\|if\|o\) setf edif @@ -856,7 +862,7 @@ au BufNewFile,BufRead *.gts setf typescript.glimmer au BufNewFile,BufRead *.gjs setf javascript.glimmer " Gnuplot scripts -au BufNewFile,BufRead *.gpi,.gnuplot setf gnuplot +au BufNewFile,BufRead *.gpi,*.gnuplot setf gnuplot " Go (Google) au BufNewFile,BufRead *.go setf go @@ -1138,7 +1144,7 @@ au BufNewFile,BufRead *.kt,*.ktm,*.kts setf kotlin au BufNewFile,BufRead *.ks setf kscript " Kconfig -au BufNewFile,BufRead Kconfig,Kconfig.debug setf kconfig +au BufNewFile,BufRead Kconfig,Kconfig.debug,Config.in setf kconfig " Lace (ISE) au BufNewFile,BufRead *.ace,*.ACE setf lace @@ -1241,6 +1247,9 @@ au BufNewFile,BufRead *.lua setf lua " Luau au BufNewFile,BufRead *.luau setf luau +" Luau config +au BufNewFile,BufRead .luaurc setf jsonc + " Luacheck au BufNewFile,BufRead .luacheckrc setf lua @@ -2002,7 +2011,7 @@ au BufNewFile,BufRead catalog setf catalog " Gentoo ebuilds, Arch Linux PKGBUILDs and Alpine Linux APKBUILDs are actually " bash scripts. " NOTE: Patterns ending in a star are further down, these have lower priority. -au BufNewFile,BufRead .bashrc,bashrc,bash.bashrc,.bash[_-]profile,.bash[_-]logout,.bash[_-]aliases,bash-fc[-.],*.ebuild,*.bash,*.eclass,PKGBUILD,APKBUILD call dist#ft#SetFileTypeSH("bash") +au BufNewFile,BufRead .bashrc,bashrc,bash.bashrc,.bash[_-]profile,.bash[_-]logout,.bash[_-]aliases,bash-fc[-.],*.ebuild,*.bash,*.eclass,PKGBUILD,APKBUILD,*.bats call dist#ft#SetFileTypeSH("bash") au BufNewFile,BufRead .kshrc,*.ksh call dist#ft#SetFileTypeSH("ksh") au BufNewFile,BufRead */etc/profile,.profile,*.sh,*.env call dist#ft#SetFileTypeSH(getline(1)) @@ -2391,6 +2400,9 @@ au BufRead,BufNewFile *.vdmpp,*.vpp setf vdmpp au BufRead,BufNewFile *.vdmrt setf vdmrt au BufRead,BufNewFile *.vdmsl,*.vdm setf vdmsl +" Vento +au BufNewFile,BufRead *.vto setf vento + " Vera au BufNewFile,BufRead *.vr,*.vri,*.vrh setf vera @@ -2774,7 +2786,7 @@ au! BufNewFile,BufRead *jarg* au BufNewFile,BufRead *.properties_??_??_* call s:StarSetf('jproperties') " Kconfig -au BufNewFile,BufRead Kconfig.* call s:StarSetf('kconfig') +au BufNewFile,BufRead Kconfig.*,Config.in.* call s:StarSetf('kconfig') " Lilo: Linux loader au BufNewFile,BufRead lilo.conf* call s:StarSetf('lilo') diff --git a/runtime/ftplugin/aap.vim b/runtime/ftplugin/aap.vim index df839c9..cd7e2a4 100644 --- a/runtime/ftplugin/aap.vim +++ b/runtime/ftplugin/aap.vim @@ -1,7 +1,7 @@ " Vim filetype plugin file " Language: Aap recipe " Maintainer: The Vim Project -" Last Change: 2023 Aug 10 +" Last Change: 2024 Jan 14 " Former Maintainer: Bram Moolenaar " Only do this when not done yet for this buffer @@ -28,6 +28,11 @@ setlocal commentstring=#\ %s setlocal expandtab if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") - let b:browsefilter = "Aap Recipe Files (*.aap)\t*.aap\nAll Files (*.*)\t*.*\n" + let b:browsefilter = "Aap Recipe Files (*.aap)\t*.aap\n" + if has("win32") + let b:browsefilter ..= "All Files (*.*)\t*\n" + else + let b:browsefilter ..= "All Files (*)\t*\n" + endif let b:undo_ftplugin ..= " | unlet! b:browsefilter" endif diff --git a/runtime/ftplugin/abap.vim b/runtime/ftplugin/abap.vim index 61db809..8b2040e 100644 --- a/runtime/ftplugin/abap.vim +++ b/runtime/ftplugin/abap.vim @@ -3,7 +3,8 @@ " Author: Steven Oliver " Copyright: Copyright (c) 2013 Steven Oliver " License: You may redistribute this under the same terms as Vim itself -" Last Change: 2023 Aug 28 by Vim Project (undo_ftplugin) +" Last Change: 2023 Aug 28 by Vim Project (undo_ftplugin) +" 2024 Jan 14 by Vim Project (browsefilter) " -------------------------------------------------------------------------- " Only do this when not done yet for this buffer @@ -21,10 +22,14 @@ setlocal suffixesadd=.abap let b:undo_ftplugin = "setl sts< sua< sw<" " Windows allows you to filter the open file dialog -if has("gui_win32") && !exists("b:browsefilter") - let b:browsefilter = "ABAP Source Files (*.abap)\t*.abap\n" . - \ "All Files (*.*)\t*.*\n" - let b:undo_ftplugin .= " | unlet! b:browsefilter" +if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") + let b:browsefilter = "ABAP Source Files (*.abap)\t*.abap\n" + if has("win32") + let b:browsefilter ..= "All Files (*.*)\t*\n" + else + let b:browsefilter ..= "All Files (*)\t*\n" + endif + let b:undo_ftplugin ..= " | unlet! b:browsefilter" endif let &cpo = s:cpo_save diff --git a/runtime/ftplugin/abaqus.vim b/runtime/ftplugin/abaqus.vim index 5931cd9..c16e7b0 100644 --- a/runtime/ftplugin/abaqus.vim +++ b/runtime/ftplugin/abaqus.vim @@ -2,6 +2,7 @@ " Language: Abaqus finite element input file (www.abaqus.com) " Maintainer: Carl Osterwisch " Last Change: 2022 Oct 08 +" 2024 Jan 14 by Vim Project (browsefilter) " Only do this when not done yet for this buffer if exists("b:did_ftplugin") | finish | endif @@ -49,8 +50,12 @@ endif if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") let b:browsefilter = "Abaqus Input Files (*.inp *.inc)\t*.inp;*.inc\n" . \ "Abaqus Results (*.dat)\t*.dat\n" . - \ "Abaqus Messages (*.pre *.msg *.sta)\t*.pre;*.msg;*.sta\n" . - \ "All Files (*.*)\t*.*\n" + \ "Abaqus Messages (*.pre, *.msg, *.sta)\t*.pre;*.msg;*.sta\n" + if has("win32") + let b:browsefilter .= "All Files (*.*)\t*\n" + else + let b:browsefilter .= "All Files (*)\t*\n" + endif let b:undo_ftplugin .= "|unlet! b:browsefilter" endif diff --git a/runtime/ftplugin/ant.vim b/runtime/ftplugin/ant.vim index aee07ca..65e01a1 100644 --- a/runtime/ftplugin/ant.vim +++ b/runtime/ftplugin/ant.vim @@ -1,10 +1,11 @@ " Vim filetype plugin file -" Language: ant +" Language: ant " " This runtime file is looking for a new maintainer. " " Former maintainer: Dan Sharp -" Last Changed: 20 Jan 2009 +" Last Change: 2009 Jan 20 +" 2024 Jan 14 by Vim Project (browsefilter) if exists("b:did_ftplugin") | finish | endif @@ -15,8 +16,12 @@ set cpo-=C " Define some defaults in case the included ftplugins don't set them. let s:undo_ftplugin = "" -let s:browsefilter = "XML Files (*.xml)\t*.xml\n" . - \ "All Files (*.*)\t*.*\n" +let s:browsefilter = "XML Files (*.xml)\t*.xml\n" +if has("win32") + let s:browsefilter .= "All Files (*.*)\t*\n" +else + let s:browsefilter .= "All Files (*)\t*\n" +endif runtime! ftplugin/xml.vim ftplugin/xml_*.vim ftplugin/xml/*.vim let b:did_ftplugin = 1 @@ -30,7 +35,7 @@ if exists("b:browsefilter") endif " Change the :browse e filter to primarily show Ant-related files. -if has("gui_win32") +if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") let b:browsefilter = "Build Files (build.xml)\tbuild.xml\n" . \ "Java Files (*.java)\t*.java\n" . \ "Properties Files (*.prop*)\t*.prop*\n" . diff --git a/runtime/ftplugin/asciidoc.vim b/runtime/ftplugin/asciidoc.vim new file mode 100644 index 0000000..5974e28 --- /dev/null +++ b/runtime/ftplugin/asciidoc.vim @@ -0,0 +1,67 @@ +" Vim filetype plugin file +" Original Author: Maxim Kim +" Language: asciidoc +" Maintainer: Luca Saccarola +" Last Change: 2024 Jan 16 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +if exists('b:undo_ftplugin') + let b:undo_ftplugin .= "|setl cms< com< fo< flp< inex< efm< cfu< fde< fdm<" +else + let b:undo_ftplugin = "setl cms< com< fo< flp< inex< efm< cfu< fde< fdm<" +endif + +" gf to open include::file.ext[] and link:file.ext[] files +setlocal includeexpr=substitute(v:fname,'\\(link:\\\|include::\\)\\(.\\{-}\\)\\[.*','\\2','g') + +setlocal comments= +setlocal commentstring=//\ %s + +setlocal formatoptions+=cqn +setlocal formatlistpat=^\\s*[\\[({]\\?\\([0-9]\\+ +setlocal formatlistpat+=\\\|[a-zA-Z]\\)[\\]:.)}]\\s\\+ +setlocal formatlistpat+=\\\|^\\s*-\\s\\+ +setlocal formatlistpat+=\\\|^\\s*[*]\\+\\s\\+ +setlocal formatlistpat+=\\\|^\\s*[.]\\+\\s\\+ + +function AsciidocFold() + let line = getline(v:lnum) + + if (v:lnum == 1) && (line =~ '^----*$') + return ">1" + endif + + let nested = get(g:, "asciidoc_foldnested", 1) + + " Regular headers + let depth = match(line, '\(^=\+\)\@<=\( .*$\)\@=') + + " Do not fold nested regular headers + if depth > 1 && !nested + let depth = 1 + endif + + if depth > 0 + " fold all sections under title + if depth > 1 && !get(g:, "asciidoc_fold_under_title", 1) + let depth -= 1 + endif + " check syntax, it should be asciidocTitle or asciidocH + let syncode = synstack(v:lnum, 1) + if len(syncode) > 0 && synIDattr(syncode[0], 'name') =~ 'asciidoc\%(H[1-6]\)\|Title' + return ">" . depth + endif + endif + + return "=" +endfunction + +if has("folding") && get(g:, 'asciidoc_folding', 0) + setlocal foldexpr=AsciidocFold() + setlocal foldmethod=expr + let b:undo_ftplugin .= "|setl foldexpr< foldmethod< foldtext<" +endif diff --git a/runtime/ftplugin/aspvbs.vim b/runtime/ftplugin/aspvbs.vim index 70a130d..6979bb8 100644 --- a/runtime/ftplugin/aspvbs.vim +++ b/runtime/ftplugin/aspvbs.vim @@ -1,10 +1,11 @@ " Vim filetype plugin file -" Language: aspvbs +" Language: aspvbs " " This runtime file is looking for a new maintainer. " " Former maintainer: Dan Sharp -" Last Changed: 20 Jan 2009 +" Last Change: 2009 Jan 20 +" 2024 Jan 14 by Vim Project (browsefilter) if exists("b:did_ftplugin") | finish | endif @@ -15,8 +16,12 @@ set cpo-=C " Define some defaults in case the included ftplugins don't set them. let s:undo_ftplugin = "" -let s:browsefilter = "HTML Files (*.html, *.htm)\t*.htm*\n" . - \ "All Files (*.*)\t*.*\n" +let s:browsefilter = "HTML Files (*.html, *.htm)\t*.htm*\n" +if has("win32") + let s:browsefilter .= "All Files (*.*)\t*\n" +else + let s:browsefilter .= "All Files (*)\t*\n" +endif let s:match_words = "" runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim @@ -51,7 +56,7 @@ if exists("loaded_matchit") endif " Change the :browse e filter to primarily show ASP-related files. -if has("gui_win32") +if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") let b:browsefilter="ASP Files (*.asp)\t*.asp\n" . s:browsefilter endif diff --git a/runtime/ftplugin/awk.vim b/runtime/ftplugin/awk.vim index 40fe304..bcd7723 100644 --- a/runtime/ftplugin/awk.vim +++ b/runtime/ftplugin/awk.vim @@ -2,7 +2,7 @@ " Language: awk, nawk, gawk, mawk " Maintainer: Doug Kearns " Previous Maintainer: Antonio Colombo -" Last Change: 2020 Sep 28 +" Last Change: 2024 Jan 14 " This plugin was prepared by Mark Sikora " This plugin was updated as proposed by Doug Kearns @@ -25,8 +25,7 @@ setlocal formatoptions-=t formatoptions+=croql setlocal define=function setlocal suffixesadd+=.awk -let b:undo_ftplugin = "setl fo< com< cms< def< sua<" . - \ " | unlet! b:browsefilter" +let b:undo_ftplugin = "setl fo< com< cms< def< sua<" " TODO: set this in scripts.vim? if exists("g:awk_is_gawk") @@ -49,8 +48,13 @@ if exists("g:awk_is_gawk") endif if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") - let b:browsefilter = "Awk Source Files (*.awk,*.gawk)\t*.awk;*.gawk\n" . - \ "All Files (*.*)\t*.*\n" + let b:browsefilter = "Awk Source Files (*.awk, *.gawk)\t*.awk;*.gawk\n" + if has("win32") + let b:browsefilter .= "All Files (*.*)\t*\n" + else + let b:browsefilter .= "All Files (*)\t*\n" + endif + let b:undo_ftplugin .= " | unlet! b:browsefilter" endif let &cpo = s:cpo_save diff --git a/runtime/ftplugin/basic.vim b/runtime/ftplugin/basic.vim index 4399fbf..32f713b 100644 --- a/runtime/ftplugin/basic.vim +++ b/runtime/ftplugin/basic.vim @@ -1,7 +1,7 @@ " Vim filetype plugin file " Language: BASIC (QuickBASIC 4.5) " Maintainer: Doug Kearns -" Last Change: 2022 Jun 22 +" Last Change: 2024 Jan 14 if exists("b:did_ftplugin") finish @@ -45,8 +45,12 @@ endif if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") let b:browsefilter = "BASIC Source Files (*.bas)\t*.bas\n" .. - \ "BASIC Include Files (*.bi, *.bm)\t*.bi;*.bm\n" .. - \ "All Files (*.*)\t*.*\n" + \ "BASIC Include Files (*.bi, *.bm)\t*.bi;*.bm\n" + if has("win32") + let b:browsefilter ..= "All Files (*.*)\t*\n" + else + let b:browsefilter ..= "All Files (*)\t*\n" + endif let b:basic_set_browsefilter = 1 let b:undo_ftplugin ..= " | unlet! b:browsefilter b:basic_set_browsefilter" endif diff --git a/runtime/ftplugin/c.vim b/runtime/ftplugin/c.vim index 4ddc4a5..e2eebc5 100644 --- a/runtime/ftplugin/c.vim +++ b/runtime/ftplugin/c.vim @@ -1,7 +1,7 @@ " Vim filetype plugin file " Language: C " Maintainer: The Vim Project -" Last Change: 2023 Aug 10 +" Last Change: 2023 Aug 22 " Former Maintainer: Bram Moolenaar " Only do this when not done yet for this buffer @@ -48,24 +48,26 @@ if !exists("b:match_words") let b:undo_ftplugin ..= " | unlet! b:match_skip b:match_words" endif -" Win32 can filter files in the browse dialog +" Win32 and GTK can filter files in the browse dialog if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") if &ft == "cpp" - let b:browsefilter = "C++ Source Files (*.cpp *.c++)\t*.cpp;*.c++\n" . - \ "C Header Files (*.h)\t*.h\n" . - \ "C Source Files (*.c)\t*.c\n" . - \ "All Files (*.*)\t*.*\n" + let b:browsefilter = "C++ Source Files (*.cpp, *.c++)\t*.cpp;*.c++\n" .. + \ "C Header Files (*.h)\t*.h\n" .. + \ "C Source Files (*.c)\t*.c\n" elseif &ft == "ch" - let b:browsefilter = "Ch Source Files (*.ch *.chf)\t*.ch;*.chf\n" . - \ "C Header Files (*.h)\t*.h\n" . - \ "C Source Files (*.c)\t*.c\n" . - \ "All Files (*.*)\t*.*\n" + let b:browsefilter = "Ch Source Files (*.ch, *.chf)\t*.ch;*.chf\n" .. + \ "C Header Files (*.h)\t*.h\n" .. + \ "C Source Files (*.c)\t*.c\n" else - let b:browsefilter = "C Source Files (*.c)\t*.c\n" . - \ "C Header Files (*.h)\t*.h\n" . - \ "Ch Source Files (*.ch *.chf)\t*.ch;*.chf\n" . - \ "C++ Source Files (*.cpp *.c++)\t*.cpp;*.c++\n" . - \ "All Files (*.*)\t*.*\n" + let b:browsefilter = "C Source Files (*.c)\t*.c\n" .. + \ "C Header Files (*.h)\t*.h\n" .. + \ "Ch Source Files (*.ch, *.chf)\t*.ch;*.chf\n" .. + \ "C++ Source Files (*.cpp, *.c++)\t*.cpp;*.c++\n" + endif + if has("win32") + let b:browsefilter ..= "All Files (*.*)\t*\n" + else + let b:browsefilter ..= "All Files (*)\t*\n" endif let b:undo_ftplugin ..= " | unlet! b:browsefilter" endif diff --git a/runtime/ftplugin/clojure.vim b/runtime/ftplugin/clojure.vim index c922d75..4da7554 100644 --- a/runtime/ftplugin/clojure.vim +++ b/runtime/ftplugin/clojure.vim @@ -6,6 +6,7 @@ " URL: https://github.com/clojure-vim/clojure.vim " License: Vim (see :h license) " Last Change: 2022-03-24 +" 2024 Jan 14 by Vim Project (browsefilter) if exists("b:did_ftplugin") finish @@ -66,10 +67,14 @@ endif " Filter files in the browse dialog if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") - let b:browsefilter = "All Files\t*\n" . - \ "Clojure Files\t*.clj;*.cljc;*.cljs;*.cljx\n" . + let b:browsefilter = "Clojure Files\t*.clj;*.cljc;*.cljs;*.cljx\n" . \ "EDN Files\t*.edn\n" . \ "Java Files\t*.java\n" + if has("win32") + let b:browsefilter .= "All Files (*.*)\t*\n" + else + let b:browsefilter .= "All Files (*)\t*\n" + endif let b:undo_ftplugin .= ' | unlet! b:browsefilter' endif diff --git a/runtime/ftplugin/cobol.vim b/runtime/ftplugin/cobol.vim index ec1e954..5e52702 100644 --- a/runtime/ftplugin/cobol.vim +++ b/runtime/ftplugin/cobol.vim @@ -3,6 +3,7 @@ " Maintainer: Ankit Jain " (formerly Tim Pope ) " Last Update: By Ankit Jain (add gtk support) on 15.08.2020 +" 2024 Jan 14 by Vim Project (browsefilter) " Insert mode mappings: " Normal mode mappings: < > << >> [[ ]] [] ][ @@ -39,8 +40,12 @@ endif " add gtk support if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") - let b:browsefilter = "COBOL Source Files (*.cbl, *.cob)\t*.cbl;*.cob;*.lib\n". - \ "All Files (*.*)\t*.*\n" + let b:browsefilter = "COBOL Source Files (*.cbl, *.cob)\t*.cbl;*.cob;*.lib\n" + if has("win32") + let b:browsefilter .= "All Files (*.*)\t*\n" + else + let b:browsefilter .= "All Files (*)\t*\n" + endif endif let b:undo_ftplugin = "setlocal com< cms< fo< et< tw<" . diff --git a/runtime/ftplugin/config.vim b/runtime/ftplugin/config.vim index 73136cb..595fc65 100644 --- a/runtime/ftplugin/config.vim +++ b/runtime/ftplugin/config.vim @@ -1,10 +1,11 @@ " Vim filetype plugin file -" Language: config +" Language: config " " This runtime file is looking for a new maintainer. " " Former maintainer: Dan Sharp -" Last Changed: 20 Jan 2009 +" Last Change: 2009 Jan 20 +" 2024 Jan 14 by Vim Project (browsefilter) if exists("b:did_ftplugin") | finish | endif @@ -15,8 +16,12 @@ set cpo-=C " Define some defaults in case the included ftplugins don't set them. let s:undo_ftplugin = "" -let s:browsefilter = "Bourne Shell Files (*.sh)\t*.sh\n" . - \ "All Files (*.*)\t*.*\n" +let s:browsefilter = "Bourne Shell Files (*.sh)\t*.sh\n" +if has("win32") + let s:browsefilter .= "All Files (*.*)\t*\n" +else + let s:browsefilter .= "All Files (*)\t*\n" +endif let s:match_words = "" runtime! ftplugin/sh.vim ftplugin/sh_*.vim ftplugin/sh/*.vim @@ -31,7 +36,7 @@ if exists("b:browsefilter") endif " Change the :browse e filter to primarily show configure-related files. -if has("gui_win32") +if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") let b:browsefilter="Configure Scripts (configure.*, config.*)\tconfigure*;config.*\n" . \ s:browsefilter endif diff --git a/runtime/ftplugin/cs.vim b/runtime/ftplugin/cs.vim index 0734d11..ada7131 100644 --- a/runtime/ftplugin/cs.vim +++ b/runtime/ftplugin/cs.vim @@ -3,6 +3,7 @@ " Maintainer: Nick Jensen " Former Maintainer: Johannes Zellner " Last Change: 2022-11-16 +" 2024 Jan 14 by Vim Project (browsefilter) " License: Vim (see :h license) " Repository: https://github.com/nickspoons/vim-cs @@ -31,10 +32,14 @@ if exists('loaded_matchit') && !exists('b:match_words') endif if (has('gui_win32') || has('gui_gtk')) && !exists('b:browsefilter') - let b:browsefilter = "C# Source Files (*.cs *.csx)\t*.cs;*.csx\n" . + let b:browsefilter = "C# Source Files (*.cs, *.csx)\t*.cs;*.csx\n" . \ "C# Project Files (*.csproj)\t*.csproj\n" . - \ "Visual Studio Solution Files (*.sln)\t*.sln\n" . - \ "All Files (*.*)\t*.*\n" + \ "Visual Studio Solution Files (*.sln)\t*.sln\n" + if has("win32") + let b:browsefilter ..= "All Files (*.*)\t*\n" + else + let b:browsefilter ..= "All Files (*)\t*\n" + endif let b:undo_ftplugin .= ' | unlet! b:browsefilter' endif diff --git a/runtime/ftplugin/csh.vim b/runtime/ftplugin/csh.vim index 2feec57..a22bee3 100644 --- a/runtime/ftplugin/csh.vim +++ b/runtime/ftplugin/csh.vim @@ -3,7 +3,7 @@ " Maintainer: Doug Kearns " Previous Maintainer: Dan Sharp " Contributor: Johannes Zellner -" Last Change: 2023 Oct 09 +" Last Change: 2024 Jan 14 if exists("b:did_ftplugin") finish @@ -44,8 +44,12 @@ if exists("loaded_matchit") && !exists("b:match_words") endif if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") - let b:browsefilter = "csh Scripts (*.csh)\t*.csh\n" .. - \ "All Files (*.*)\t*.*\n" + let b:browsefilter = "csh Scripts (*.csh)\t*.csh\n" + if has("win32") + let b:browsefilter ..= "All Files (*.*)\t*\n" + else + let b:browsefilter ..= "All Files (*)\t*\n" + endif let b:csh_set_browsefilter = 1 let b:undo_ftplugin ..= " | unlet! b:browsefilter b:csh_set_browsefilter" endif diff --git a/runtime/ftplugin/deb822sources.vim b/runtime/ftplugin/deb822sources.vim new file mode 100644 index 0000000..4936f42 --- /dev/null +++ b/runtime/ftplugin/deb822sources.vim @@ -0,0 +1,16 @@ +" Language: Debian sources.list +" Maintainer: Debian Vim Maintainers +" Last Change: 2024 Mar 20 +" License: Vim License +" URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/ftplugin/deb822sources.vim + +if exists('b:did_ftplugin') + finish +endif +let b:did_ftplugin=1 + +setlocal comments=:# +setlocal commentstring=#%s +setlocal formatoptions-=t + +let b:undo_ftplugin = 'setlocal comments< commentstring< formatoptions<' diff --git a/runtime/ftplugin/diff.vim b/runtime/ftplugin/diff.vim index f2a0820..2daa48a 100644 --- a/runtime/ftplugin/diff.vim +++ b/runtime/ftplugin/diff.vim @@ -1,7 +1,7 @@ " Vim filetype plugin file " Language: Diff " Maintainer: The Vim Project -" Last Change: 2023 Aug 10 +" Last Change: 2023 Aug 22 " Former Maintainer: Bram Moolenaar " Only do this when not done yet for this buffer @@ -19,6 +19,11 @@ setlocal nomodeline let &l:commentstring = "# %s" if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") - let b:browsefilter = "Diff Files (*.diff)\t*.diff\nPatch Files (*.patch)\t*.h\nAll Files (*.*)\t*.*\n" + let b:browsefilter = "Diff Files (*.diff)\t*.diff\nPatch Files (*.patch)\t*.h\n" + if has("win32") + let b:browsefilter ..= "All Files (*.*)\t*\n" + else + let b:browsefilter ..= "All Files (*)\t*\n" + endif let b:undo_ftplugin ..= " | unlet! b:browsefilter" endif diff --git a/runtime/ftplugin/dosbatch.vim b/runtime/ftplugin/dosbatch.vim index f02f26b..5001cf6 100644 --- a/runtime/ftplugin/dosbatch.vim +++ b/runtime/ftplugin/dosbatch.vim @@ -2,6 +2,7 @@ " Language: MS-DOS/Windows .bat files " Maintainer: Mike Williams " Last Change: 12th February 2023 +" 2024 Jan 14 by Vim Project (browsefilter) " " Options Flags: " dosbatch_colons_comment - any value to treat :: as comment line @@ -37,12 +38,17 @@ if executable('help.exe') endif " Define patterns for the browse file filter -if has("gui_win32") && !exists("b:browsefilter") - let b:browsefilter = "DOS Batch Files (*.bat, *.cmd)\t*.bat;*.cmd\nAll Files (*.*)\t*.*\n" +if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") + let b:browsefilter = "DOS Batch Files (*.bat, *.cmd)\t*.bat;*.cmd\n" + if has("win32") + let b:browsefilter ..= "All Files (*.*)\t*\n" + else + let b:browsefilter ..= "All Files (*)\t*\n" + endif endif let b:undo_ftplugin = "setlocal comments< formatoptions< keywordprg<" - \ . "| unlet! b:browsefiler" + \ . "| unlet! b:browsefilter" let &cpo = s:cpo_save unlet s:cpo_save diff --git a/runtime/ftplugin/dtd.vim b/runtime/ftplugin/dtd.vim index a046118..bea8c5c 100644 --- a/runtime/ftplugin/dtd.vim +++ b/runtime/ftplugin/dtd.vim @@ -1,10 +1,11 @@ " Vim filetype plugin file -" Language: dtd +" Language: dtd " " This runtime file is looking for a new maintainer. " " Former maintainer: Dan Sharp -" Last Changed: 20 Jan 2009 +" Last Change: 2009 Jan 20 +" 2024 Jan 14 by Vim Project (browsefilter) if exists("b:did_ftplugin") | finish | endif let b:did_ftplugin = 1 @@ -27,10 +28,14 @@ if exists("loaded_matchit") endif " Change the :browse e filter to primarily show Java-related files. -if has("gui_win32") +if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") let b:browsefilter="DTD Files (*.dtd)\t*.dtd\n" . - \ "XML Files (*.xml)\t*.xml\n" . - \ "All Files (*.*)\t*.*\n" + \ "XML Files (*.xml)\t*.xml\n" + if has("win32") + let b:browsefilter .= "All Files (*.*)\t*\n" + else + let b:browsefilter .= "All Files (*)\t*\n" + endif endif " Undo the stuff we changed. diff --git a/runtime/ftplugin/eiffel.vim b/runtime/ftplugin/eiffel.vim index 216fdde..e193110 100644 --- a/runtime/ftplugin/eiffel.vim +++ b/runtime/ftplugin/eiffel.vim @@ -1,7 +1,7 @@ " Vim filetype plugin " Language: Eiffel " Maintainer: Doug Kearns -" Last Change: 2010 Aug 29 +" Last Change: 2024 Jan 14 if (exists("b:did_ftplugin")) finish @@ -18,8 +18,12 @@ setlocal formatoptions-=t formatoptions+=croql if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") let b:browsefilter = "Eiffel Source Files (*.e)\t*.e\n" . - \ "Eiffel Control Files (*.ecf, *.ace, *.xace)\t*.ecf;*.ace;*.xace\n" . - \ "All Files (*.*)\t*.*\n" + \ "Eiffel Control Files (*.ecf, *.ace, *.xace)\t*.ecf;*.ace;*.xace\n" + if has("win32") + let b:browsefilter .= "All Files (*.*)\t*\n" + else + let b:browsefilter .= "All Files (*)\t*\n" + endif endif if exists("loaded_matchit") && !exists("b:match_words") diff --git a/runtime/ftplugin/eruby.vim b/runtime/ftplugin/eruby.vim index 893fa58..b5c4665 100644 --- a/runtime/ftplugin/eruby.vim +++ b/runtime/ftplugin/eruby.vim @@ -4,6 +4,7 @@ " URL: https://github.com/vim-ruby/vim-ruby " Release Coordinator: Doug Kearns " Last Change: 2022 May 15 +" 2024 Jan 14 by Vim Project (browsefilter) " Only do this when not done yet for this buffer if exists("b:did_ftplugin") @@ -15,7 +16,11 @@ set cpo-=C " Define some defaults in case the included ftplugins don't set them. let s:undo_ftplugin = "" -let s:browsefilter = "All Files (*.*)\t*.*\n" +if has("win32") + let s:browsefilter = "All Files (*.*)\t*\n" +else + let s:browsefilter = "All Files (*)\t*\n" +endif let s:match_words = "" if !exists("g:eruby_default_subtype") @@ -109,8 +114,8 @@ exe 'cmap