diff --git a/.github/CODEOWNERS_vim b/.github/CODEOWNERS_vim index 6bdc00ecb9..9bac8b2dd1 100644 --- a/.github/CODEOWNERS_vim +++ b/.github/CODEOWNERS_vim @@ -9,20 +9,16 @@ # 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/netrw.vim @cecamp -runtime/autoload/netrwFileHandlers.vim @cecamp -runtime/autoload/netrwSettings.vim @cecamp +runtime/autoload/modula2.vim @dkearns 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 runtime/colors/default.vim @habamax @romainl @neutaaaaan @@ -64,6 +60,7 @@ runtime/compiler/eruby.vim @dkearns runtime/compiler/fbc.vim @dkearns runtime/compiler/gawk.vim @dkearns runtime/compiler/gjs.vim @dkearns +runtime/compiler/gm2.vim @dkearns runtime/compiler/go.vim @dbarnett runtime/compiler/haml.vim @tpope runtime/compiler/hare.vim @rsaihe @@ -105,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 @@ -124,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 @@ -164,6 +156,7 @@ runtime/ftplugin/icon.vim @dkearns runtime/ftplugin/indent.vim @dkearns runtime/ftplugin/ishd.vim @dkearns runtime/ftplugin/j.vim @glts +runtime/ftplugin/java.vim @zzzyxwvut runtime/ftplugin/javascript.vim @dkearns runtime/ftplugin/javascriptreact.vim @dkearns runtime/ftplugin/json.vim @dbarnett @@ -179,8 +172,8 @@ 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 runtime/ftplugin/nginx.vim @chr4 runtime/ftplugin/nroff.vim @a-vrma @@ -201,14 +194,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 @@ -235,6 +223,7 @@ runtime/ftplugin/typescript.vim @dkearns runtime/ftplugin/typescriptreact.vim @dkearns runtime/ftplugin/unison.vim @chuwy runtime/ftplugin/vdf.vim @ObserverOfTime +runtime/ftplugin/vim.vim @dkearns runtime/ftplugin/wast.vim @rhysd runtime/ftplugin/wget.vim @dkearns runtime/ftplugin/wget2.vim @dkearns @@ -298,14 +287,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 @@ -323,21 +307,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 @@ -354,14 +336,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 @@ -377,11 +358,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 @@ -408,6 +387,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 @@ -418,7 +398,7 @@ runtime/syntax/icon.vim @dkearns runtime/syntax/indent.vim @dkearns runtime/syntax/j.vim @glts runtime/syntax/jargon.vim @h3xx -runtime/syntax/java.vim @fleiner +runtime/syntax/java.vim @zzzyxwvut runtime/syntax/javascript.vim @fleiner runtime/syntax/jsonc.vim @izhakjakov runtime/syntax/julia.vim @carlobaldassi @@ -426,9 +406,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 @@ -437,13 +415,15 @@ 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 +runtime/syntax/modula2.vim @dkearns +runtime/syntax/modula2/opt/iso.vim @trijezdci +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 @@ -468,7 +448,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 @@ -478,11 +457,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 @@ -490,9 +466,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 @@ -506,11 +480,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 @@ -522,7 +494,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 @@ -530,18 +501,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 @@ -553,6 +524,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/actions/universal-package/action.yml b/.github/actions/universal-package/action.yml index 18b4b06350..c1fd5adacb 100644 --- a/.github/actions/universal-package/action.yml +++ b/.github/actions/universal-package/action.yml @@ -47,14 +47,18 @@ runs: xcode_version=$(xcodebuild -version | tail -1 | sed -E 's/Build version (.*)/\1/') echo "xcode_version=$xcode_version" >> $GITHUB_OUTPUT + # Find Homebrew's install location which could be /usr/local or /opt/homebrew + brew_prefix=$(brew --prefix) + echo "brew_prefix=$brew_prefix" >> $GITHUB_OUTPUT + echo '::endgroup::' - name: Cache keg id: cache-keg - uses: actions/cache@v3 + uses: actions/cache@v4 with: - path: /usr/local/Cellar/${{ inputs.formula }} - key: ${{ inputs.formula }}-homebrew-cache-custom-unified-xcode${{ steps.setup-formula.outputs.xcode_version }}-${{ hashFiles(format('{0}.rb', inputs.formula)) }} + path: ${{ steps.setup-formula.outputs.brew_prefix }}/Cellar/${{ inputs.formula }} + key: ${{ inputs.formula }}-homebrew-cache-custom-unified-prefix${{ steps.setup-formula.outputs.brew_prefix }}-xcode${{ steps.setup-formula.outputs.xcode_version }}-${{ hashFiles(format('{0}.rb', inputs.formula)) }} - name: Install formula shell: bash @@ -65,7 +69,7 @@ runs: # This will be a no-op if formula was cached brew install --formula -s ./${formula}.rb - # If formula was cached, this step is necessary to relink it to /usr/local/ + # If formula was cached, this step is necessary to relink it to brew prefix (e.g. /usr/local) brew unlink ${formula} && brew link ${formula} echo '::endgroup::' @@ -74,11 +78,11 @@ runs: for content in "${contents[@]}"; do # Print out the archs and verify they are universal fat binary. - lipo -info /usr/local/${content} | grep 'x86_64 arm64' + lipo -info $(brew --prefix)/${content} | grep 'x86_64 arm64' # Make sure deployment target is correct. Later macOS versions have a different binary format (just search for # "minos") but for 10.13 we need to look for LC_VERSION_MIN_MACOSX. - otool -l /usr/local/${content} | grep -A 2 LC_VERSION_MIN_MACOSX | tail -1 | grep "${MACOSX_DEPLOYMENT_TARGET}" + otool -l $(brew --prefix)/${content} | grep -A 2 LC_VERSION_MIN_MACOSX | tail -1 | grep "${MACOSX_DEPLOYMENT_TARGET}" done echo '::endgroup::' diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 5ace4600a1..54873486da 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -4,3 +4,5 @@ updates: directory: "/" schedule: interval: "weekly" + commit-message: + prefix: "CI" diff --git a/.github/labeler.yml b/.github/labeler.yml index 93cd087a86..aab3af32d0 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -1,106 +1,155 @@ # list of labels and minimatch globs to match to apply the label. CI: -- any: ['.cirrus.yml'] -- any: ['.github/dependabot.yml'] -- any: ['.github/labeler.yml'] -- any: ['.github/workflows/*'] -- any: ['.appveyor.yml'] -- any: ['.codecov.yml'] + - all: + - changed-files: + - any-glob-to-any-file: + - '.cirrus.yml' + - '.github/dependabot.yml' + - '.github/labeler.yml' + - '.github/workflows/*' + - '.appveyor.yml' + - '.codecov.yml' documentation: -- all: ['*/doc/*'] + - all: + - changed-files: + - any-glob-to-all-files: + - '*/doc/*' translation: -- any: ['src/po/*.po'] + - all: + - changed-files: + - any-glob-to-any-file: + - 'src/po/*.po' if_lua: -- any: ['src/if_lua.c'] -- any: ['src/proto/if_lua.pro'] -- any: ['runtime/doc/if_lua.txt'] + - all: + - changed-files: + - any-glob-to-any-file: + - 'src/if_lua.c' + - 'src/proto/if_lua.pro' + - 'runtime/doc/if_lua.txt' if_mzscheme: -- any: ['src/if_mzsch.c'] -- any: ['src/if_mzsch.h'] -- any: ['src/proto/if_mzsch.pro'] -- any: ['runtime/doc/if_mzsch.txt'] + - all: + - changed-files: + - any-glob-to-any-file: + - 'src/if_mzsch.c' + - 'src/if_mzsch.h' + - 'src/proto/if_mzsch.pro' + - 'runtime/doc/if_mzsch.txt' if_perl: -- any: ['src/if_perl.xs'] -- any: ['src/if_perlsfio.c'] -- any: ['src/proto/if_perl.pro'] -- any: ['src/proto/if_perlsfio.pro'] -- any: ['runtime/doc/if_perl.txt'] + - all: + - changed-files: + - any-glob-to-any-file: + - 'src/if_perl.xs' + - 'src/if_perlsfio.c' + - 'src/proto/if_perl.pro' + - 'src/proto/if_perlsfio.pro' + - 'runtime/doc/if_perl.txt' if_python: -- any: ['src/if_py_both.h'] -- any: ['runtime/doc/if_pyth.txt'] -- any: ['src/if_python.c'] -- any: ['src/if_python3.c'] -- any: ['src/proto/if_python.pro'] -- any: ['src/proto/if_python3.pro'] + - all: + - changed-files: + - any-glob-to-any-file: + - 'src/if_py_both.h' + - 'runtime/doc/if_pyth.txt' + - 'src/if_python.c' + - 'src/if_python3.c' + - 'src/proto/if_python.pro' + - 'src/proto/if_python3.pro' if_ruby: -- any: ['src/if_ruby.c'] -- any: ['src/proto/if_ruby.pro'] -- any: ['runtime/doc/if_ruby.txt'] + - all: + - changed-files: + - any-glob-to-any-file: + - 'src/if_ruby.c' + - 'src/proto/if_ruby.pro' + - 'runtime/doc/if_ruby.txt' if_tcl: -- any: ['src/if_tcl.c'] -- any: ['src/proto/if_tcl.pro'] -- any: ['runtime/doc/if_tcl.txt'] + - all: + - changed-files: + - any-glob-to-any-file: + - 'src/if_tcl.c' + - 'src/proto/if_tcl.pro' + - 'runtime/doc/if_tcl.txt' installer: -- any: ['nsis/**'] -- any: ['src/dosinst.*'] -- any: ['src/uninstall.c'] + - all: + - changed-files: + - any-glob-to-any-file: + - 'nsis/**' + - 'src/dosinst.*' + - 'src/uninstall.c' platform-mac: -- any: ['src/INSTALLmac.txt'] -- any: ['src/os_mac*'] -- any: ['src/proto/os_mac*'] + - all: + - changed-files: + - any-glob-to-any-file: + - 'src/INSTALLmac.txt' + - 'src/os_mac*' + - 'src/proto/os_mac*' platform-windows: -- any: ['nsis/**'] -- any: ['src/*.bat'] -- any: ['src/*.bmp'] -- any: ['src/*.ico'] -- any: ['src/GvimExt/*'] -- any: ['src/INSTALLpc.txt'] -- any: ['src/Make_cyg*.mak'] -- any: ['src/Make_ming.mak'] -- any: ['src/Make_mvc.mak'] -- any: ['src/dosinst.*'] -- any: ['src/gui_dwrite.*'] -- any: ['src/gui_w32*'] -- any: ['src/if_ole.*'] -- any: ['src/iid_ole.c'] -- any: ['src/os_mswin*'] -- any: ['src/os_w32*'] -- any: ['src/os_win32.*'] -- any: ['src/proto/gui_w32.pro'] -- any: ['src/proto/os_mswin.pro'] -- any: ['src/proto/os_win32.pro'] -- any: ['src/proto/winclip.pro'] -- any: ['src/uninstall.c'] -- any: ['src/vim.manifest'] -- any: ['src/vim.rc'] -- any: ['src/vimrun.c'] -- any: ['src/winclip.c'] -- any: ['src/xpm/**'] -- any: ['src/xpm_w32.*'] + - all: + - changed-files: + - any-glob-to-any-file: + - 'nsis/**' + - 'src/*.bat' + - 'src/*.bmp' + - 'src/*.ico' + - 'src/GvimExt/*' + - 'src/INSTALLpc.txt' + - 'src/Make_cyg*.mak' + - 'src/Make_ming.mak' + - 'src/Make_mvc.mak' + - 'src/dosinst.*' + - 'src/gui_dwrite.*' + - 'src/gui_w32*' + - 'src/if_ole.*' + - 'src/iid_ole.c' + - 'src/os_mswin*' + - 'src/os_w32*' + - 'src/os_win32.*' + - 'src/proto/gui_w32.pro' + - 'src/proto/os_mswin.pro' + - 'src/proto/os_win32.pro' + - 'src/proto/winclip.pro' + - 'src/uninstall.c' + - 'src/vim.manifest' + - 'src/vim.rc' + - 'src/vimrun.c' + - 'src/winclip.c' + - 'src/xpm/**' + - 'src/xpm_w32.*' runtime: -- any: ['runtime/ftplugin'] -- any: ['runtime/syntax'] -- any: ['runtime/indent'] -- any: ['runtime/pack/dist/opt/termdebug/plugin/termdebug.vim'] - -termdebug: runtime/pack/dist/opt/termdebug/plugin/termdebug.vim + - all: + - changed-files: + - any-glob-to-any-file: + - 'runtime/ftplugin' + - 'runtime/syntax' + - 'runtime/indent' + - 'runtime/pack/dist/opt/termdebug/plugin/termdebug.vim' + +termdebug: + - all: + - changed-files: + - any-glob-to-any-file: + - 'runtime/pack/dist/opt/termdebug/plugin/termdebug.vim' plugin-netrw: -- any: ['runtime/plugin/netrwPlugin.vim'] -- any: ['runtime/autoload/netrw*'] + - all: + - changed-files: + - any-glob-to-any-file: + - 'runtime/plugin/netrwPlugin.vim' + - 'runtime/autoload/netrw*' xxd: -- any: ['src/xxd/*'] + - all: + - changed-files: + - any-glob-to-any-file: + - 'src/xxd/*' diff --git a/.github/workflows/ci-macvim.yaml b/.github/workflows/ci-macvim.yaml index 7c81411b45..022f2d1c76 100644 --- a/.github/workflows/ci-macvim.yaml +++ b/.github/workflows/ci-macvim.yaml @@ -25,9 +25,9 @@ env: VERSIONER_PERL_VERSION: '5.30' # macOS default Perl installation uses this to determine which one to use vi_cv_path_python: /Library/Frameworks/Python.framework/Versions/2.7/bin/python - vi_cv_path_python3: /usr/local/bin/python3 - vi_cv_path_plain_lua: /usr/local/bin/lua - vi_cv_path_ruby: /usr/local/opt/ruby/bin/ruby + vi_cv_path_python3: "%s/bin/python3" + vi_cv_path_plain_lua: "%s/bin/lua" + vi_cv_path_ruby: "%s/opt/ruby/bin/ruby" vi_cv_dll_name_perl: /System/Library/Perl/%s/darwin-thread-multi-2level/CORE/libperl.dylib vi_cv_dll_name_python: /Library/Frameworks/Python.framework/Versions/2.7/Python vi_cv_dll_name_python3: /usr/local/Frameworks/Python.framework/Versions/Current/Python @@ -65,10 +65,16 @@ jobs: legacy: true publish_postfix: '_10.9' - # Most up to date OS and Xcode. Used to publish release for the main build. - os: macos-13 - xcode: '15.0' + xcode: '15.2' + optimized: true + + # Most up to date OS and Xcode. Used to publish release for the main build. + # This runner uses Apple Silicon. + - os: macos-14 + xcode: '15.2' publish: true + optimized: true runs-on: ${{ matrix.os }} @@ -120,6 +126,21 @@ jobs: # Set up remaining packages and tools - name: Install packages + run: | + brew install libtool + + - name: Install packages for testing + run: | + # Apple diff is broken. Use GNU diff instead. See http://github.com/vim/vim/issues/14056. + brew install diffutils + + - name: Grant microphone access for macos-14 + if: matrix.os == '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: Install scripting runtimes if: matrix.publish run: | # We no longer need to install/update Python 3, as it's guaranteed to @@ -129,11 +150,15 @@ jobs: brew install ruby brew install lua - if [[ -d /usr/local/Cellar/perl ]]; then + if [[ -d $(brew --prefix)/Cellar/perl ]]; then # We just use system perl to reduce dependencies brew unlink perl fi + echo "vi_cv_path_python3=$(printf $vi_cv_path_python3 $(brew --prefix))" >> $GITHUB_ENV + echo "vi_cv_path_plain_lua=$(printf $vi_cv_path_plain_lua $(brew --prefix))" >> $GITHUB_ENV + echo "vi_cv_path_ruby=$(printf $vi_cv_path_ruby $(brew --prefix))" >> $GITHUB_ENV + # With Perl, we need to manually specify the version number because the dylib path depends on it. echo "vi_cv_dll_name_perl=$(printf $vi_cv_dll_name_perl $VERSIONER_PERL_VERSION)" >> $GITHUB_ENV @@ -155,6 +180,7 @@ jobs: set -o verbose CONFOPT=( + --with-local-dir=$(brew --prefix) --with-features=huge --enable-netbeans --with-tlib=ncurses @@ -170,12 +196,11 @@ jobs: --with-python3-stable-abi=3.9 # macOS and Xcode currently ships 3.9, so we don't want go higher than that. --enable-rubyinterp=dynamic --enable-luainterp=dynamic - --with-lua-prefix=/usr/local + --with-lua-prefix=$(brew --prefix) --with-macarchs="$MACVIM_ARCHS" ) else CONFOPT+=( - --with-macarchs=x86_64 --disable-sparkle # Disable Sparkle for testing that this flag builds and works ) fi @@ -193,10 +218,8 @@ jobs: sed -i.bak -f ci/config.mk.clang-12.sed src/auto/config.mk fi - if ${{ matrix.publish == true && ! matrix.legacy }}; then - # Only do O3/link-time optimizations for publish builds, so the other ones can still finish quickly to give - # quick feedbacks. Only do this for non-legacy builds now as it seems the older toolchain doesn't work as - # well for this. + if ${{ matrix.optimized == true }}; then + # Additional optimizations like link-time optimizations that are a bit slower to build. sed -i.bak -f ci/config.mk.optimized.sed src/auto/config.mk fi @@ -276,10 +299,16 @@ jobs: # Smoketest scripting languages macvim_excmd -c 'lua print("Test")' | grep Test macvim_excmd -c 'perl VIM::Msg("Test")' | grep Test - macvim_excmd -c 'py print "Test"' | grep Test macvim_excmd -c 'py3 print("Test")' | grep Test macvim_excmd -c 'ruby puts("Test")' | grep Test + if [[ "$(uname -m)" == "x86_64" ]]; then + macvim_excmd -c 'py print "x86 Test"' | grep Test + else + # Python2 doesn't work in Apple Silicon, test under Rosetta + (VIM_BIN="arch -x86_64 ${VIM_BIN}"; macvim_excmd -c 'py print "rosetta Test"' | grep Test) + fi + # Check that localized messages work by printing ':version' and checking against localized word macvim_excmd -c 'lang es_ES' -c 'version' | grep Enlazado diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 13281405af..d84920b22e 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -48,7 +48,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v2 + uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -59,7 +59,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@v2 + uses: github/codeql-action/autobuild@v3 # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -73,4 +73,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + uses: github/codeql-action/analyze@v3 diff --git a/.github/workflows/label.yml b/.github/workflows/label.yml index e4ed948698..d23c4d403f 100644 --- a/.github/workflows/label.yml +++ b/.github/workflows/label.yml @@ -17,8 +17,6 @@ jobs: pull-requests: write steps: - - uses: actions/labeler@v4 + - uses: actions/labeler@v5 with: repo-token: "${{ secrets.GITHUB_TOKEN }}" - configuration-path: .github/labeler.yml - sync-labels: '' diff --git a/.gitignore b/.gitignore index 214cb73f9d..2edfedf90c 100644 --- a/.gitignore +++ b/.gitignore @@ -148,6 +148,12 @@ src/a.out.dSYM # Generated by "make install" runtime/doc/doctags +runtime/doc/tags-* + +# 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-* diff --git a/.hgignore b/.hgignore index 14fc3ecc51..8b73f1b82a 100644 --- a/.hgignore +++ b/.hgignore @@ -98,6 +98,7 @@ src/kword_test # Generated by "make install" runtime/doc/doctags +runtime/doc/tags-* # Generated by "make shadow". The directory names could be anything but we # restrict them to shadow (the default) or shadow-* diff --git a/Filelist b/Filelist index efb2daa12c..57eb8dd402 100644 --- a/Filelist +++ b/Filelist @@ -1,10 +1,9 @@ # List of distributed Vim files. # Used by Makefile. -# source files for all source archives +# Source files for all source archives. SRC_ALL = \ .cirrus.yml \ - .coveralls.yml \ .gitattributes \ .github/CODEOWNERS \ .github/ISSUE_TEMPLATE/bug_report.yml \ @@ -21,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 \ @@ -430,7 +430,7 @@ SRC_ALL = \ src/xdiff/xutils.h \ -# source files for Unix only +# Source files for Unix-like only. SRC_UNIX = \ Makefile \ Filelist \ @@ -496,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 \ @@ -522,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 \ @@ -596,9 +596,10 @@ SRC_DOS = \ nsis/gvim_version.nsh \ nsis/README.txt \ nsis/lang/*.nsi \ + nsis/lang/README.txt \ 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 \ @@ -615,10 +616,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 \ @@ -632,7 +633,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 \ @@ -641,7 +642,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 \ @@ -650,7 +651,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 \ @@ -664,7 +665,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 \ @@ -672,7 +673,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) \ @@ -687,7 +688,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 \ @@ -778,12 +779,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 \ @@ -819,15 +820,23 @@ RT_SCRIPTS = \ runtime/plugin/README.txt \ runtime/syntax/*.vim \ runtime/syntax/README.txt \ + runtime/syntax/modula2/opt/*.vim \ runtime/syntax/shared/*.vim \ runtime/syntax/shared/README.txt \ 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 +844,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 +856,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,19 +867,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 = \ @@ -892,7 +904,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) \ @@ -900,46 +912,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) \ @@ -948,7 +960,7 @@ BIN_EXTRA = \ $(BIN_VMS) \ $(BIN_OS2) \ -# all files for extra archive +# All files for extra archive. EXTRA = \ $(BIN_EXTRA) \ $(ROOT_EXTRA) \ @@ -957,7 +969,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 \ @@ -977,6 +989,7 @@ IN_README_DIR = \ README_src.txt \ README_srcdos.txt \ README_unix.txt \ + README_vimlogo.txt \ README_vms.txt \ README_w32s.txt \ Contents \ @@ -987,8 +1000,9 @@ IN_README_DIR = \ src.info \ vimdir.info \ -# generic language files +# Generic language files. LANG_GEN = \ + README.??x.txt \ runtime/doc/*-da.1 \ runtime/doc/*-da.UTF-8.1 \ runtime/doc/*-de.1 \ @@ -1004,6 +1018,7 @@ LANG_GEN = \ runtime/doc/*-ru.UTF-8.1 \ runtime/doc/*-tr.1 \ runtime/doc/*-tr.UTF-8.1 \ + runtime/doc/uganda.??x \ runtime/lang/README.txt \ runtime/lang/Makefile \ runtime/lang/Make_all.mak \ @@ -1040,7 +1055,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 \ @@ -1050,7 +1065,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 \ @@ -1070,10 +1085,9 @@ 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 \ - runtime/lang/Make_mvc.mak \ # Files in the repository that are deliberately not listed above, and will thus # be excluded from distribution tarballs and the like. diff --git a/Makefile b/Makefile index e9e43c1d7e..f4db80fb82 100644 --- a/Makefile +++ b/Makefile @@ -94,7 +94,7 @@ syntaxtest: # Before creating an archive first delete all backup files, *.orig, etc. MAJOR = 9 -MINOR = 0 +MINOR = 1 # CHECKLIST for creating a new version: # @@ -267,7 +267,7 @@ dist: # Copy README files to the top directory. prepare: if test -f runtime/doc/uganda.nsis.txt; then \ - rm runtime/doc/uganda.nsis.txt; fi + rm runtime/doc/uganda.nsis.???; fi for name in $(IN_README_DIR); do \ cp READMEdir/"$$name" .; \ done @@ -407,12 +407,8 @@ amisrc: dist prepare gzip -9 dist/vim$(VERSION)src.tar mv dist/vim$(VERSION)src.tar.gz dist/vim$(VERSION)src.tgz -no_title.vim: Makefile - echo "set notitle noicon nocp nomodeline viminfo=" >no_title.vim - # MS-DOS sources -dossrc: dist no_title.vim dist/$(COMMENT_SRC) \ - runtime/doc/uganda.nsis.txt \ +dossrc: dist dist/$(COMMENT_SRC) runtime/doc/uganda.nsis.txt \ nsis/gvim_version.nsh -rm -rf dist/vim$(VERSION)src.zip -rm -rf dist/vim @@ -424,16 +420,14 @@ dossrc: dist no_title.vim dist/$(COMMENT_SRC) \ $(SRC_DOS_BIN) \ $(SRC_AMI_DOS) \ $(SRC_DOS_UNIX) \ - runtime/doc/uganda.nsis.txt \ + runtime/doc/uganda.nsis.??? \ nsis/gvim_version.nsh \ | (cd dist/vim/$(VIMRTDIR); tar xf -) mv dist/vim/$(VIMRTDIR)/runtime/* dist/vim/$(VIMRTDIR) rmdir dist/vim/$(VIMRTDIR)/runtime - # This file needs to be in dos fileformat for NSIS. - $(VIM) -e -X -u no_title.vim -c ":set tx|wq" dist/vim/$(VIMRTDIR)/doc/uganda.nsis.txt cd dist && zip -9 -rD -z vim$(VERSION)src.zip vim <$(COMMENT_SRC) -runtime/doc/uganda.nsis.txt: runtime/doc/uganda.txt +runtime/doc/uganda.nsis.txt: runtime/doc/uganda.??? cd runtime/doc && $(MAKE) uganda.nsis.txt nsis/gvim_version.nsh: Makefile @@ -450,7 +444,7 @@ dosrt: dist dist/$(COMMENT_RT) dosrt_files # Split in two parts to avoid an "argument list too long" error. # We no longer convert the files from unix to dos fileformat. -dosrt_files: dist prepare no_title.vim +dosrt_files: dist prepare -rm -rf dist/vim mkdir dist/vim mkdir dist/vim/$(VIMRTDIR) @@ -506,7 +500,7 @@ dosbin: prepare dosbin_gvim dosbin_w32 dosbin_ole $(DOSBIN_S) -rm $(IN_README_DIR) # make Win32 gvim -dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM) +dosbin_gvim: dist dist/$(COMMENT_GVIM) -rm -rf dist/gvim$(VERSION).zip -rm -rf dist/vim mkdir dist/vim @@ -528,7 +522,7 @@ dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM) cp gvim.pdb dist/gvim$(VERSION).pdb # make Win32 console -dosbin_w32: dist no_title.vim dist/$(COMMENT_W32) +dosbin_w32: dist dist/$(COMMENT_W32) -rm -rf dist/vim$(VERSION)w32.zip -rm -rf dist/vim mkdir dist/vim @@ -545,7 +539,7 @@ dosbin_w32: dist no_title.vim dist/$(COMMENT_W32) cp vimw32.pdb dist/vim$(VERSION)w32.pdb # make Win32 gvim with OLE -dosbin_ole: dist no_title.vim dist/$(COMMENT_OLE) +dosbin_ole: dist dist/$(COMMENT_OLE) -rm -rf dist/gvim$(VERSION)ole.zip -rm -rf dist/vim mkdir dist/vim diff --git a/README.rux.txt b/README.rux.txt new file mode 100644 index 0000000000..5c92b85634 --- /dev/null +++ b/README.rux.txt @@ -0,0 +1,161 @@ +README.rux.txt для версии 9.1 программы Vim — Vi IMproved. + + +ЧТО ТАКОЕ РЕДАКТОР VIM? + +Программа Vim — это значительно улучшенная версия старого доброго редактора Vi +из системы UNIX. При разработке этого редактора было добавлено множество новых +возможностей: многоуровневая отмена изменений, подсветка синтаксиса, журнал +командной строки, интерактивная справка, проверка орфографии, подстановка +наименований файлов и команд, операции с произвольными блоками текста, +встроенный язык программирования и т. д. Также доступен графический интерфейс +пользователя (GUI). И при этом сохраняется совместимость с редактором Vi, +и те, у кого Vi «в крови», будут чувствовать себя как дома. Подробности о +различиях с редактором Vi см. в файле "runtime/doc/vi_diff.txt". + +Этот редактор очень удобен для работы с исходным кодом программ, а также +разного рода других текстовых файлов. Все команды вводятся набором обычных +символов клавиатуры, поэтому те, кто освоил десятипальцевый метод печати, могут +работать очень быстро. Кроме того, пользователи могут назначить на +функциональные клавиши клавиатуры необходимые команды, и использовать +манипулятор «мышь». + +Редактор Vim работает в ОС MS Windows (7, 8, 10, 11), macOS, Haiku, VMS и +практически во всех UNIX-подобных системах. А перенос на другие платформы не +должен представлять особой сложности. +Предыдущие версии редактора Vim работают в операционных системах OS/2, MS-DOS, +MS Windows 95/98/Me/NT/2000/XP/Vista, AmigaDOS, Atari MiNT, BeOS и RISC OS. +Но поддержка этих версий больше не осуществляется. + + +ПРЕДОСТАВЛЕНИЕ РЕДАКТОРА Vim + +Для установки редактора Vim можно воспользоваться привычным диспетчером пакетов. +В системах Mac и Linux уже предустановленна начальная версия программы Vim, +но вам все равно нужно установить редактор Vim, если вы хотите получить больше +возможностей. + +Существуют отдельные версии для Unix, PC, Amiga и некоторых других систем. +Данный файл README.rux.txt поставляется вместе с архивом рабочих файлов +программы. Этот архив включает в себя документацию, файлы подсветки синтаксиса +и другие файлы, которые используются редактором во время работы. Чтобы +запустить программу Vim, вы должны получить либо архив с исполняемыми файлами, +либо архив с исходным кодом. Какой из них вам нужен, зависит от того, на какой +системе вы хотите запустить редактор Vim, и есть ли для этой системы +исполняемые файлы или вы должны компилировать программу самостоятельно. +Чтобы узнать о доступных в настоящее время пакетах программы, посмотрите на +веб‐странице https://www.vim.org/download.php. + +Несколько полезных мест, где можно получить последнюю версию редактора Vim: +* Посмотрите в git-хранилище на GitHub: https://github.com/vim/vim. +* Получить исходный код в виде архива: https://github.com/vim/vim/releases. +* Получить исполняемый файл для ОС Windows из хранилища vim-win32-installer: +https://github.com/vim/vim-win32-installer/releases. + + +КОМПИЛЯЦИЯ РЕДАКТОРА Vim + +Если для вашей системы уже есть готовые исполняемые файлы, вам не нужно самому +компилировать редактор Vim. Если вы скачали архив с исходным кодом, то всё +необходимое для компиляции программы Vim находится в каталоге "src". +Инструкции смотрите в файле src/INSTALL. + + +УСТАНОВКА ПРОГРАММЫ Vim + +Инструкции для конкретной системы смотрите в одном из нижеуказанных файлов. +Или в каталоге READMEdir (на https://github.com/vim/vim), или в основном +каталоге (если вы распаковываете архив): + +README_ami.txt Amiga +README_unix.txt Unix +README_dos.txt MS-DOS и MS Windows +README_mac.txt Macintosh +README_haiku.txt Haiku +README_vms.txt VMS + +Существует ещё несколько файлов README_*.txt, в зависимости от предоставляемого +пакета. + + +ДОКУМЕНТАЦИЯ ПО РЕДАКТОРУ Vim + +Учебник Vim — это часовой практический курс для начинающих. Как правило, для +работы с ним нужно набрать команду "vimtutor". Чтобы получить дополнительную +информацию, смотрите раздел документации ":help tutor". + +Лучше всего воспользоваться командой ":help" в редакторе Vim. Если у вас ещё +нет исполняемого файла программы, прочитайте файл "runtime/doc/help.txt". +В нём содержатся отсылки на другие полезные файлы документации. Руководство +пользователя можно читать как книгу, и оно рекомендуется для обучения работе +с редактором Vim. Смотрите ":help user-manual". + + +ЛИЦЕНЗИОННЫЕ ПРАВА + +Редактор Vim является благотворительным программным обеспечением. +Использование и копирование программы Vim не ограничено, однако рекомендуется +сделать добровольное пожертвование для нуждающихся детей в Уганде. Чтобы узнать +подробности, прочитайте, пожалуйста, файл "runtime/doc/uganda.rux" (введите +команду ":help uganda" в редакторе Vim). + +Краткое описание лицензии. +Нет никаких ограничений на использование или распространение немодифицированной +копии программы Vim. Части программы Vim также могут предоставляться отдельно, +но текст лицензии Vim всегда должен быть включён в поставку. +Для модифицированных версий программы действует несколько ограничений. +Лицензия Vim совместима с лицензией GNU GPL, вы можете компилировать +и распространять программу Vim с библиотеками, лицензированными под GNU GPL. + + +ФИНАНСОВАЯ ПОДДЕРЖКА ДЛЯ РАЗРАБОТКИ РЕДАКТОРА Vim + +Устранение ошибок и добавление новых функциональных возможностей требует +вложения немалого количества времени и сил. Выразить признательность за труд +и подкрепить заинтересованность разработчиков программы в дальнейшей работе +над редактором Vim можно с помощью оказания финансовой поддержки. + +Пожертвованные вами деньги будут в основном направлены на оказание помощи детям +Уганды, см. "runtime/doc/uganda.rux". Однако в любом случае финансирование +будет способствовать повышению заинтересованности команды разработчиков +в продолжении работы над редактором Vim! + +Самая свежая информация об оказании финансовой поддержки публикуется на +веб-сайте программы Vim: + https://www.vim.org/sponsor/ + + +ПОМОЩЬ В РАЗРАБОТКЕ РЕДАКТОРА Vim + +Если вы хотите помочь сделать редактор Vim лучше, смотрите файл CONTRIBUTING.md. + + +ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ + +Для системе macOS вы може использовать MacVim: https://macvim.org + +Последние новости о редакторе Vim можно найти на его домашней странице: + https://www.vim.org/ + +Если у вас возникли вопросы, посмотрите полезные советы или документацию по +редактору Vim: + https://www.vim.org/docs.php + https://vim.fandom.com/wiki/Vim_Tips_Wiki + +Если у вас все ещё остались вопросы или есть сложности, воспользуйтесь одним +из списков рассылки, чтобы обсудить их с пользователями и разработчиками: + https://www.vim.org/maillist.php + +Если ничего не помогает, сообщайте об ошибках непосредственно в список рассылки +vim-dev: + + + +ОСНОВНОЙ АВТОР ПРОГРАММЫ + +Большая часть редактора Vim была создана Брамом Моленаром , +см. ":help Bram-Moolenaar" + +Присылайте все прочие комментарии, исправления, цветы и предложения в список +рассылки vim-dev: + diff --git a/README.txt b/README.txt index 159e8aec20..bdfefaf8d7 100644 --- a/README.txt +++ b/README.txt @@ -1,4 +1,4 @@ -README.txt for version 9.0 of Vim: Vi IMproved. +README.txt for version 9.1 of Vim: Vi IMproved. WHAT IS VIM? @@ -6,10 +6,9 @@ WHAT IS VIM? Vim is a greatly improved version of the good old UNIX editor Vi. Many new features have been added: multi-level undo, syntax highlighting, command line history, on-line help, spell checking, filename completion, block operations, -script language, etc. There is also a Graphical User Interface (GUI) -available. Still, Vi compatibility is maintained, those who have Vi "in the -fingers" will feel at home. See "runtime/doc/vi_diff.txt" for differences with -Vi. +script language, etc. There is also a Graphical User Interface (GUI) available. +Still, Vi compatibility is maintained, those who have Vi "in the fingers" will +feel at home. See "runtime/doc/vi_diff.txt" for differences with Vi. This editor is very useful for editing programs and other plain text files. All commands are given with normal keyboard characters, so those who can type @@ -60,9 +59,10 @@ README_ami.txt Amiga README_unix.txt Unix README_dos.txt MS-DOS and MS-Windows README_mac.txt Macintosh +README_haiku.txt Haiku README_vms.txt VMS -There are more README_*.txt files, depending on the distribution you used. +There are other README_*.txt files, depending on the distribution you used. DOCUMENTATION @@ -71,9 +71,9 @@ The Vim tutor is a one hour training course for beginners. Often it can be started as "vimtutor". See ":help tutor" for more information. The best is to use ":help" in Vim. If you don't have an executable yet, read -"runtime/doc/help.txt". It contains pointers to the other documentation -files. The User Manual reads like a book and is recommended to learn to use -Vim. See ":help user-manual". +"runtime/doc/help.txt". It contains pointers to the other documentation files. +The User Manual reads like a book and is recommended to learn to use Vim. See +":help user-manual". COPYING @@ -92,15 +92,14 @@ distribute it. SPONSORING Fixing bugs and adding new features takes a lot of time and effort. To show -your appreciation for the work and motivate Bram and others to continue -working on Vim please send a donation. +your appreciation for the work and motivate developers to continue working on +Vim please send a donation. -Since Bram is back to a paid job the money will now be used to help children -in Uganda. See runtime/doc/uganda.txt. But at the same time donations -increase Bram's motivation to keep working on Vim! +The money you donated will be mainly used to help children in Uganda. See +"runtime/doc/uganda.txt". But at the same time donations increase the +development team motivation to keep working on Vim! For the most recent information about sponsoring look on the Vim web site: - https://www.vim.org/sponsor/ @@ -111,6 +110,8 @@ If you would like to help make Vim better, see the CONTRIBUTING.md file. INFORMATION +If you are on macOS, you can use MacVim: https://macvim.org + The latest news about Vim can be found on the Vim home page: https://www.vim.org/ @@ -118,8 +119,8 @@ If you have problems, have a look at the Vim documentation or tips: https://www.vim.org/docs.php https://vim.fandom.com/wiki/Vim_Tips_Wiki -If you still have problems or any other questions, use one of the mailing -lists to discuss them with Vim users and developers: +If you still have problems or any other questions, use one of the mailing lists +to discuss them with Vim users and developers: https://www.vim.org/maillist.php If nothing else works, report bugs directly to the vim-dev mailing list: @@ -128,8 +129,7 @@ If nothing else works, report bugs directly to the vim-dev mailing list: MAIN AUTHOR -Most of Vim was created by Bram Moolenaar |Bram-Moolenaar| +Most of Vim was created by Bram Moolenaar , ":help Bram-Moolenaar" -Send any other comments, patches, flowers and suggestions to the vim-dev mailing list: - - +Send any other comments, patches, flowers and suggestions to the vim-dev +mailing list: diff --git a/README_vim.md b/README_vim.md index 39de098cf3..6e6cf11b89 100644 --- a/README_vim.md +++ b/README_vim.md @@ -109,12 +109,12 @@ distribute it. ## Sponsoring Fixing bugs and adding new features takes a lot of time and effort. To show -your appreciation for the work and motivate Bram and others to continue -working on Vim please send a donation. +your appreciation for the work and motivate developers to continue working on +Vim please send a donation. -Since Bram is back to a paid job the money will now be used to help children -in Uganda. See [`runtime/doc/uganda.txt`](./runtime/doc/uganda.txt). But -at the same time donations increase Bram's motivation to keep working on Vim! +The money you donated will be mainly used to help children in Uganda. See +[`runtime/doc/uganda.txt`](./runtime/doc/uganda.txt). But at the same time +donations increase the development team motivation to keep working on Vim! For the most recent information about sponsoring look on the Vim web site: https://www.vim.org/sponsor/ @@ -126,7 +126,7 @@ If you would like to help make Vim better, see the ## Information -If you are on macOS, you can use [Macvim](https://macvim-dev.github.io/macvim/). +If you are on macOS, you can use [MacVim](https://macvim.org). The latest news about Vim can be found on the Vim home page: https://www.vim.org/ @@ -150,4 +150,4 @@ Most of Vim was created by Bram Moolenaar `` Send any other comments, patches, flowers and suggestions to the vim-dev mailing list: `` -This is `README.md` for version 9.0 of Vim: Vi IMproved. +This is `README.md` for version 9.1 of Vim: Vi IMproved. diff --git a/READMEdir/Contents b/READMEdir/Contents index d58dbf276e..48b7c59ec5 100644 --- a/READMEdir/Contents +++ b/READMEdir/Contents @@ -9,15 +9,15 @@ Vim Vi IMproved. A clone of the UNIX text editor Vi. Very useful messages, shows current file name in window title, on-line help, rectangular cut/paste, etc., etc., etc... - Version 9.0. Also runs under UNIX, MS-Windows, Mac, etc. - vim90rt.tgz contains the documentation and syntax files. - vim90bin.tgz contains the binaries. - vim90src.tgz contains the sources. + Version 9.1. Also runs under UNIX, MS-Windows, Mac, etc. + vim91rt.tgz contains the documentation and syntax files. + vim91bin.tgz contains the binaries. + vim91src.tgz contains the sources. Author: Bram Moolenaar et al. Xxd Hex dumper and reader. Can be used to view files as hex, edit them and write them back. Can also be used to patch files. - Version 2022 Jan 14 + Version 2023 Oct 25 Author: Juergen Weigert diff --git a/READMEdir/README_ami.txt b/READMEdir/README_ami.txt index b0f8b2dc57..f9815108d1 100644 --- a/READMEdir/README_ami.txt +++ b/READMEdir/README_ami.txt @@ -1,4 +1,4 @@ -README_ami.txt for version 9.0 of Vim: Vi IMproved. +README_ami.txt for version 9.1 of Vim: Vi IMproved. This file explains the installation of Vim on Amiga systems. See README.txt for general information about Vim. @@ -16,8 +16,8 @@ easily upgrade to a new version. For example: You would then unpack the archives like this: cd dh0:editors - tar xf t:vim90bin.tar - tar xf t:vim90rt.tar + tar xf t:vim91bin.tar + tar xf t:vim91rt.tar Set the $VIM environment variable to point to the top directory of your Vim files. For the above example: diff --git a/READMEdir/README_amibin.txt b/READMEdir/README_amibin.txt index 2e36b32940..ce03f14f7f 100644 --- a/READMEdir/README_amibin.txt +++ b/READMEdir/README_amibin.txt @@ -1,4 +1,4 @@ -README_amibin.txt for version 9.0 of Vim: Vi IMproved. +README_amibin.txt for version 9.1 of Vim: Vi IMproved. See "README.txt" for general information about Vim. See "README_ami.txt" for installation instructions for the Amiga. diff --git a/READMEdir/README_amisrc.txt b/READMEdir/README_amisrc.txt index e014a1d0ac..1d729b823d 100644 --- a/READMEdir/README_amisrc.txt +++ b/READMEdir/README_amisrc.txt @@ -1,4 +1,4 @@ -README_amisrc.txt for version 9.0 of Vim: Vi IMproved. +README_amisrc.txt for version 9.1 of Vim: Vi IMproved. See "README.txt" for general information about Vim. See "README_ami.txt" for installation instructions for the Amiga. diff --git a/READMEdir/README_bindos.txt b/READMEdir/README_bindos.txt index dcece08405..fd9b769081 100644 --- a/READMEdir/README_bindos.txt +++ b/READMEdir/README_bindos.txt @@ -1,4 +1,4 @@ -README_bindos.txt for version 9.0 of Vim: Vi IMproved. +README_bindos.txt for version 9.1 of Vim: Vi IMproved. See "README.txt" for general information about Vim. See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows. @@ -8,9 +8,9 @@ These files are in the runtime archive (vim90rt.zip). There are several binary distributions of Vim for the PC. You would normally pick only one of them, but it's also possible to install several. These ones are available (the version number may differ): - vim90w32.zip Windows 95/98/NT/etc. console version - gvim90.zip Windows 95/98/NT/etc. GUI version - gvim90ole.zip Windows 95/98/NT/etc. GUI version with OLE + vim91w32.zip Windows 95/98/NT/etc. console version + gvim91.zip Windows 95/98/NT/etc. GUI version + gvim91ole.zip Windows 95/98/NT/etc. GUI version with OLE -You MUST also get the runtime archive (vim90rt.zip). -The sources are also available (vim90src.zip). +You MUST also get the runtime archive (vim91rt.zip). +The sources are also available (vim91src.zip). diff --git a/READMEdir/README_dos.txt b/READMEdir/README_dos.txt index 73b70a668d..6a7905d771 100644 --- a/READMEdir/README_dos.txt +++ b/READMEdir/README_dos.txt @@ -1,4 +1,4 @@ -README_dos.txt for version 9.0 of Vim: Vi IMproved. +README_dos.txt for version 9.1 of Vim: Vi IMproved. This file explains the installation of Vim on MS-Windows systems. See "README.txt" for general information about Vim. @@ -41,19 +41,19 @@ These are the normal steps to install Vim from the .zip archives: located. Check the $VIM setting to see where it points to: set VIM For example, if you have - C:\vim\vim90 + C:\vim\vim91 do cd C:\ Binary and runtime Vim archives are normally unpacked in the same location, on top of each other. -2. Unpack the zip archives. This will create a new directory "vim\vim90", +2. Unpack the zip archives. This will create a new directory "vim\vim91", in which all the distributed Vim files are placed. Since the directory name includes the version number, it is unlikely that you overwrite existing files. Examples: - pkunzip -d gvim90.zip - unzip vim90w32.zip + pkunzip -d gvim91.zip + unzip vim91w32.zip You need to unpack the runtime archive and at least one of the binary archives. When using more than one binary version, be careful not to @@ -65,7 +65,7 @@ These are the normal steps to install Vim from the .zip archives: won't move or copy the runtime files. 3. Change to the new directory: - cd vim\vim90 + cd vim\vim91 Run the "install.exe" program. It will ask you a number of questions about how you would like to have your Vim setup. Among these are: - You can tell it to write a "_vimrc" file with your preferences in the @@ -76,8 +76,8 @@ These are the normal steps to install Vim from the .zip archives: console or in a shell. You can select one of the directories in your $PATH. If you skip this, you can add Vim to the search path manually: The simplest is to add a line to your autoexec.bat. Examples: - set path=%path%;C:\vim\vim90 - set path=%path%;D:\editors\vim\vim90 + set path=%path%;C:\vim\vim91 + set path=%path%;D:\editors\vim\vim91 - Create entries for Vim on the desktop and in the Start menu. That's it! @@ -89,8 +89,8 @@ Remarks: won't show a menubar. Then you need to set the $VIM environment variable to point to the top directory of your Vim files. Example: set VIM=C:\editors\vim - Vim version 9.0 will look for your vimrc file in $VIM, and for the runtime - files in $VIM/vim90. See ":help $VIM" for more information. + Vim version 9.1 will look for your vimrc file in $VIM, and for the runtime + files in $VIM/vim91. See ":help $VIM" for more information. - To avoid confusion between distributed files of different versions and your own modified vim scripts, it is recommended to use this directory layout: @@ -101,14 +101,14 @@ Remarks: C:\vim\vimfiles\ftplugin\*.vim Filetype plugins C:\vim\... Other files you made. Distributed files: - C:\vim\vim90\vim.exe The Vim version 9.0 executable. - C:\vim\vim90\doc\*.txt The version 9.0 documentation files. - C:\vim\vim90\bugreport.vim A Vim version 9.0 script. - C:\vim\vim90\... Other version 9.0 distributed files. + C:\vim\vim91\vim.exe The Vim version 9.1 executable. + C:\vim\vim91\doc\*.txt The version 9.1 documentation files. + C:\vim\vim91\bugreport.vim A Vim version 9.1 script. + C:\vim\vim91\... Other version 9.1 distributed files. In this case the $VIM environment variable would be set like this: set VIM=C:\vim - Then $VIMRUNTIME will automatically be set to "$VIM\vim90". Don't add - "vim90" to $VIM, that won't work. + Then $VIMRUNTIME will automatically be set to "$VIM\vim91". Don't add + "vim91" to $VIM, that won't work. - You can put your Vim executable anywhere else. If the executable is not with the other Vim files, you should set $VIM. The simplest is to add a line @@ -132,8 +132,8 @@ Remarks: Select Properties. 5. In the Program tab, change the "Cmdline" to add "/c" and the name of the Vim executable. Examples: - C:\command.com /c C:\vim\vim90\vim.exe - C:\command.com /c D:\editors\vim\vim90\vim.exe + C:\command.com /c C:\vim\vim91\vim.exe + C:\command.com /c D:\editors\vim\vim91\vim.exe 6. Select the font, window size, etc. that you like. If this isn't possible, select "Advanced" in the Program tab, and deselect "MS-DOS mode". diff --git a/READMEdir/README_extra.txt b/READMEdir/README_extra.txt index de74434999..e8a0848152 100644 --- a/READMEdir/README_extra.txt +++ b/READMEdir/README_extra.txt @@ -1,4 +1,4 @@ -README_extra.txt for version 9.0 of Vim: Vi IMproved. +README_extra.txt for version 9.1 of Vim: Vi IMproved. These extra files of Vim are for special purposes. This README explains what the files are for. For general information about Vim, see the "README.txt" diff --git a/READMEdir/README_haiku.txt b/READMEdir/README_haiku.txt index b8bcd75b95..e4caf71ace 100644 --- a/READMEdir/README_haiku.txt +++ b/READMEdir/README_haiku.txt @@ -1,4 +1,4 @@ -README_haiku.txt for version 9.0 of Vim: Vi IMproved. +README_haiku.txt for version 9.1 of Vim: Vi IMproved. This file explains the installation of Vim on Haiku operating system. See "README.txt" for general information about Vim. diff --git a/READMEdir/README_mac.txt b/READMEdir/README_mac.txt index b325238b63..3e5160e8d3 100644 --- a/READMEdir/README_mac.txt +++ b/READMEdir/README_mac.txt @@ -1,4 +1,4 @@ -README_mac.txt for version 9.0 of Vim: Vi IMproved. +README_mac.txt for version 9.1 of Vim: Vi IMproved. How to install MacVim? ======================== diff --git a/READMEdir/README_ole.txt b/READMEdir/README_ole.txt index 85ad478e51..86b343be35 100644 --- a/READMEdir/README_ole.txt +++ b/READMEdir/README_ole.txt @@ -1,4 +1,4 @@ -README_ole.txt for version 9.0 of Vim: Vi IMproved. +README_ole.txt for version 9.1 of Vim: Vi IMproved. This archive contains gvim.exe with OLE interface. This version of gvim.exe can also load a number of interface dynamically (you diff --git a/READMEdir/README_os2.txt b/READMEdir/README_os2.txt index 19b6a53606..a440918e18 100644 --- a/READMEdir/README_os2.txt +++ b/READMEdir/README_os2.txt @@ -1,4 +1,4 @@ -README_os2.txt for version 9.0 of Vim: Vi IMproved. +README_os2.txt for version 9.1 of Vim: Vi IMproved. This file used to explain the installation of Vim on OS/2 systems. However, support for OS/2 has been removed in patch 7.4.1008. diff --git a/READMEdir/README_os390.txt b/READMEdir/README_os390.txt index ecbe8cadc9..94709792c7 100644 --- a/READMEdir/README_os390.txt +++ b/READMEdir/README_os390.txt @@ -1,4 +1,4 @@ -README_os390.txt for version 9.0 of Vim: Vi IMproved. +README_os390.txt for version 9.1 of Vim: Vi IMproved. This readme explains how to build Vim on z/OS. Formerly called OS/390. See "README.txt" for general information about Vim. diff --git a/READMEdir/README_src.txt b/READMEdir/README_src.txt index 96a94dbd12..fc5ea15dfe 100644 --- a/READMEdir/README_src.txt +++ b/READMEdir/README_src.txt @@ -1,8 +1,8 @@ -README_src.txt for version 9.0 of Vim: Vi IMproved. +README_src.txt for version 9.1 of Vim: Vi IMproved. The source archive contains the files needed to compile Vim on Unix systems. It is packed for Unix systems (NL line separator). For more information, see the README.txt file that comes with the runtime -archive (vim-9.0-rt.tar.gz). To be able to run Vim you MUST get the runtime +archive (vim-9.1-rt.tar.gz). To be able to run Vim you MUST get the runtime archive too! diff --git a/READMEdir/README_srcdos.txt b/READMEdir/README_srcdos.txt index a5fd9feeb8..ff69e482a7 100644 --- a/READMEdir/README_srcdos.txt +++ b/READMEdir/README_srcdos.txt @@ -1,4 +1,4 @@ -README_srcdos.txt for version 9.0 of Vim: Vi IMproved. +README_srcdos.txt for version 9.1 of Vim: Vi IMproved. See "README.txt" for general information about Vim. See "README_dos.txt" for installation instructions for MS-Windows. diff --git a/READMEdir/README_unix.txt b/READMEdir/README_unix.txt index 9222a5de89..196628f114 100644 --- a/READMEdir/README_unix.txt +++ b/READMEdir/README_unix.txt @@ -1,4 +1,4 @@ -README_unix.txt for version 9.0 of Vim: Vi IMproved. +README_unix.txt for version 9.1 of Vim: Vi IMproved. This file explains the installation of Vim on Unix systems. See "README.txt" for general information about Vim. diff --git a/READMEdir/README_vimlogo.txt b/READMEdir/README_vimlogo.txt new file mode 100644 index 0000000000..9798b108d1 --- /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/READMEdir/README_vms.txt b/READMEdir/README_vms.txt index f55c7c01e3..4c47921c67 100644 --- a/READMEdir/README_vms.txt +++ b/READMEdir/README_vms.txt @@ -1,4 +1,4 @@ -README_vms.txt for version 9.0 of Vim: Vi IMproved. +README_vms.txt for version 9.1 of Vim: Vi IMproved. This file explains the installation of Vim on VMS systems. See "README.txt" in the runtime archive for information about Vim. @@ -19,14 +19,16 @@ src/INSTALLvms.txt. To use the binary version, you need one of these archives: - vim-XX-exe-ia64-gui.zip IA64 GUI/Motif executables - vim-XX-exe-ia64-gtk.zip IA64 GUI/GTK executables - vim-XX-exe-ia64-term.zip IA64 console executables + vim-XX-exe-x86-gui.zip X86_64 GUI/Motif executables + vim-XX-exe-x86-term.zip X86_64 console executables + vim-XX-exe-ia64-gui.zip IA64 GUI/Motif executables + vim-XX-exe-ia64-gtk.zip IA64 GUI/GTK executables + vim-XX-exe-ia64-term.zip IA64 console executables vim-XX-exe-axp-gui.zip Alpha GUI/Motif executables vim-XX-exe-axp-gtk.zip Alpha GUI/GTK executables - vim-XX-exe-axp-term.zip Alpha console executables + vim-XX-exe-axp-term.zip Alpha console executables vim-XX-exe-vax-gui.zip VAX GUI executables - vim-XX-exe-vax-term.zip VAX console executables + vim-XX-exe-vax-term.zip VAX console executables and of course vim-XX-runtime.zip runtime files @@ -34,6 +36,8 @@ and of course The binary archives contain: vim.exe, ctags.exe, xxd.exe files, but there are also prepared "deploy ready" archives: +vim-XX-x86.zip GUI and console executables with runtime and + help files for X86_64 systems vim-XX-ia64.zip GUI and console executables with runtime and help files for IA64 systems vim-XX-axp.zip GUI and console executables with runtime and diff --git a/READMEdir/README_w32s.txt b/READMEdir/README_w32s.txt index a65f1c9ef7..d71faeb4ee 100644 --- a/READMEdir/README_w32s.txt +++ b/READMEdir/README_w32s.txt @@ -1,4 +1,4 @@ -README_w32s.txt for version 9.0 of Vim: Vi IMproved. +README_w32s.txt for version 9.1 of Vim: Vi IMproved. This file used to explain the installation of Vim on MS-Windows 3.1 and 3.11 systems. However, support for MS-Windows 3.1 and 3.11 has been removed in diff --git a/ci/remove_snap.sh b/ci/remove_snap.sh new file mode 100644 index 0000000000..a812307d3b --- /dev/null +++ b/ci/remove_snap.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env sh +pushd /etc/apt/preferences.d/ +cat > nosnap.pref < option to the + "makensis.exe" program via the command line. + +5. For the terminal window to work in Vim, the library winpty is required. + You can get it at the following url: + https://github.com/rprichard/winpty/releases/download/0.4.3/winpty-0.4.3-msvc2015.zip + For the 32-bit version, rename "winpty.dll" from ia32/bin to "winpty32.dll", + and for the 64-bit version — "winpty.dll" from x64/bin to "winpty64.dll". + Put the renamed file and "winpty-agent.exe" in "../.." (above the "vim91" + directory). However, you can specify another directory by passing + /DVIMTOOLS= option to the "makensis.exe" program via the command line. + +6. To use stronger encryption, add the Sodium library. You can get it here: + https://github.com/jedisct1/libsodium/releases/download/1.0.19-RELEASE/libsodium-1.0.19-msvc.zip + Unpack the archive. Put the "libsodium.dll" from + path/to/libsodium/Win32/Release/v143/dynamic for the 32‐bit version or + path/to/libsodium/X64/Release/v143/dynamic for the 64‐bit version in the + "../.." directory (above the "vim91" directory, where "diff.exe" and + "winpty{32|64}.dll"). + +7. On MS Windows do "nmake.exe -f Make_mvc.mak uganda.nsis.txt" in runtime/doc. + On Unix-like system do "make runtime/doc/uganda.nsis.txt" in top directory + or "make uganda.nsis.txt" in runtime/doc. The created files + "uganda.nsis.???" will be automatically converted to DOS file format. + +8. Get gettext and iconv DLLs from the following site: https://github.com/mlocati/gettext-iconv-windows/releases Both 64- and 32-bit versions are needed. Download the files gettextX.X.X.X-iconvX.XX-shared-{32,64}.zip, extract @@ -53,25 +70,39 @@ To build the installable .exe: | libiconv-2.dll | libgcc_s_sjlj-1.dll | - ` gettext64/ + + gettext64/ libintl-8.dll libiconv-2.dll - The default is "..", however, you can change it by - passing /DGETTEXT=... option to the makensis command. + The default is "..", however, you can specify another + directory by passing /DGETTEXT= option to "makensis.exe" program via + the command line. Install NSIS if you didn't do that already. -Also install UPX, if you want a compressed file. -Download and include the ShellExecAsUser.dll Unicode version which can be -sourced from: https://nsis.sourceforge.io/ShellExecAsUser_plug-in +Download Unicode version the ShellExecAsUser plug-in for NSIS from: + https://nsis.sourceforge.io/ShellExecAsUser_plug-in +and put ShellExecAsUser.dll to path\to\NSIS\Plugins\x86-unicode Unpack the images: cd nsis - unzip icons.zip + unzip icons.zip or 7z x icons.zip (on Unix-like or MS Windows) + WinRar.exe x icons.zip (on MS Windows) Then build gvim.exe: - cd nsis - makensis gvim.nsi + makensis.exe [options] gvim.nsi + +Options (not mandatory): + /DVIMSRC= — directory where location of gvim_ole.exe, vimw32.exe, + GvimExt/*, etc. + /DVIMRT= — directory where location of runtime files + /DVIMTOOLS= — directory where location of extra tools: diff.exe, + winpty{32|64}.dll, winpty-agent.exe, libsodium.dll + /DGETTEXT= — directory where location of gettext libraries + /DHAVE_UPX=1 — additional compression of the installer. UPX program + must be installed. + /DHAVE_NLS=0 — do not add native language support + /DHAVE_MULTI_LANG=0 — to create an English-only the installer + /DWIN64=1 — to create a 64-bit the installer diff --git a/nsis/gvim.nsi b/nsis/gvim.nsi index 3a6dc29856..b8ef079dba 100644 --- a/nsis/gvim.nsi +++ b/nsis/gvim.nsi @@ -1,6 +1,6 @@ # NSIS file to create a self-installing exe for Vim. # It requires NSIS version 3.0 or later. -# Last Change: 2014 Nov 5 +# Last Change: 2024 Mar 20 Unicode true @@ -17,7 +17,7 @@ Unicode true !define VIMRT ".." !endif -# Location of extra tools: diff.exe +# Location of extra tools: diff.exe, winpty{32|64}.dll, winpty-agent.exe, etc. !ifndef VIMTOOLS !define VIMTOOLS ..\.. !endif @@ -29,40 +29,82 @@ Unicode true !define GETTEXT ${VIMRT} !endif -# Comment the next line if you don't have UPX. -# Get it at https://upx.github.io/ -!define HAVE_UPX +# If you have UPX, use the switch /DHAVE_UPX=1 on the command line makensis.exe. +# This property will be set to 1. Get it at https://upx.github.io/ +!ifndef HAVE_UPX + !define HAVE_UPX 0 +!endif -# Comment the next line if you do not want to add Native Language Support -!define HAVE_NLS +# If you do not want to add Native Language Support, use the switch /DHAVE_NLS=0 +# in the command line makensis.exe. This property will be set to 0. +!ifndef HAVE_NLS + !define HAVE_NLS 1 +!endif -# Comment the following line to create an English-only installer: -!define HAVE_MULTI_LANG +# To create an English-only the installer, use the switch /DHAVE_MULTI_LANG=0 on +# the command line makensis.exe. This property will be set to 0. +!ifndef HAVE_MULTI_LANG + !define HAVE_MULTI_LANG 1 +!endif -# Uncomment the next line if you want to create a 64-bit installer. -#!define WIN64 +# if you want to create a 64-bit the installer, use the switch /DWIN64=1 on +# the command line makensis.exe. This property will be set to 1. +!ifndef WIN64 + !define WIN64 0 +!endif !include gvim_version.nsh # for version number -# Definition of Patch for Vim +# Definition of Patch for Vim. !ifndef PATCHLEVEL !define PATCHLEVEL 0 !endif # ----------- No configurable settings below this line ----------- -!include "Library.nsh" # For DLL install +!include "Library.nsh" # for DLL install !include "LogicLib.nsh" !include "MUI2.nsh" !include "nsDialogs.nsh" !include "Sections.nsh" !include "x64.nsh" +# See https://nsis.sourceforge.io/LogicLib +;FileExists is already part of LogicLib, but returns true for directories +;as well as files +!macro _FileExists2 _a _b _t _f + !insertmacro _LOGICLIB_TEMP + StrCpy $_LOGICLIB_TEMP "0" +;if path is not blank, continue to next check + StrCmp `${_b}` `` +4 0 +;if path exists, continue to next check (IfFileExists returns true if this +;is a directory) + IfFileExists `${_b}` `0` +3 +;if path is not a directory, continue to confirm exists + IfFileExists `${_b}\*.*` +2 0 + StrCpy $_LOGICLIB_TEMP "1" ;file exists +;now we have a definitive value - the file exists or it does not + StrCmp $_LOGICLIB_TEMP "1" `${_t}` `${_f}` +!macroend +!undef FileExists +!define FileExists `"" FileExists2` +!macro _DirExists _a _b _t _f + !insertmacro _LOGICLIB_TEMP + StrCpy $_LOGICLIB_TEMP "0" +;if path is not blank, continue to next check + StrCmp `${_b}` `` +3 0 +;if directory exists, continue to confirm exists + IfFileExists `${_b}\*.*` 0 +2 + StrCpy $_LOGICLIB_TEMP "1" + StrCmp $_LOGICLIB_TEMP "1" `${_t}` `${_f}` +!macroend +!define DirExists `"" DirExists` + !define PRODUCT "Vim ${VER_MAJOR}.${VER_MINOR}" !define UNINST_REG_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall" !define UNINST_REG_KEY_VIM "${UNINST_REG_KEY}\${PRODUCT}" -!ifdef WIN64 +!if ${WIN64} Name "${PRODUCT} (x64)" !else Name "${PRODUCT}" @@ -75,11 +117,11 @@ ManifestDPIAware true SetDatablockOptimize on RequestExecutionLevel highest -!ifdef HAVE_UPX +!if ${HAVE_UPX} !packhdr temp.dat "upx --best --compress-icons=1 temp.dat" !endif -!ifdef WIN64 +!if ${WIN64} !define BIT 64 !else !define BIT 32 @@ -96,6 +138,8 @@ RequestExecutionLevel highest # Show all languages, despite user's codepage: !define MUI_LANGDLL_ALLLANGUAGES +# Always show dialog choice language +#!define MUI_LANGDLL_ALWAYSSHOW !define MUI_LANGDLL_REGISTRY_ROOT "HKCU" !define MUI_LANGDLL_REGISTRY_KEY "Software\Vim" !define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language" @@ -113,13 +157,13 @@ RequestExecutionLevel highest !define MUI_COMPONENTSPAGE_SMALLDESC !define MUI_LICENSEPAGE_CHECKBOX -!define MUI_FINISHPAGE_RUN -!define MUI_FINISHPAGE_RUN_FUNCTION LaunchApplication -!define MUI_FINISHPAGE_RUN_TEXT $(str_show_readme) +!define MUI_FINISHPAGE_SHOWREADME +!define MUI_FINISHPAGE_SHOWREADME_TEXT $(str_show_readme) +!define MUI_FINISHPAGE_SHOWREADME_FUNCTION LaunchApplication # This adds '\Vim' to the user choice automagically. The actual value is # obtained below with CheckOldVim. -!ifdef WIN64 +!if ${WIN64} !define DEFAULT_INSTDIR "$PROGRAMFILES64\Vim" !else !define DEFAULT_INSTDIR "$PROGRAMFILES\Vim" @@ -139,7 +183,7 @@ SilentInstall normal # Installer pages !insertmacro MUI_PAGE_WELCOME -!insertmacro MUI_PAGE_LICENSE "${VIMRT}\doc\uganda.nsis.txt" +!insertmacro MUI_PAGE_LICENSE $(page_lic_file) !insertmacro MUI_PAGE_COMPONENTS Page custom SetCustom ValidateCustom #!define MUI_PAGE_CUSTOMFUNCTION_LEAVE VimFinalCheck @@ -163,13 +207,15 @@ Page custom SetCustom ValidateCustom !include "lang\english.nsi" # Include support for other languages: -!ifdef HAVE_MULTI_LANG +!if ${HAVE_MULTI_LANG} !include "lang\danish.nsi" !include "lang\dutch.nsi" !include "lang\german.nsi" + !include "lang\greek.nsi" !include "lang\italian.nsi" !include "lang\japanese.nsi" !include "lang\russian.nsi" + !include "lang\serbian.nsi" !include "lang\simpchinese.nsi" !include "lang\tradchinese.nsi" !include "lang\turkish.nsi" @@ -319,7 +365,7 @@ FunctionEnd Function LaunchApplication SetOutPath $0 - ShellExecAsUser::ShellExecAsUser "" "$0\gvim.exe" '-R "$0\README.txt"' + ShellExecAsUser::ShellExecAsUser "" "$0\gvim.exe" '-R "$0\$(vim_readme_file)"' FunctionEnd ########################################################## @@ -363,9 +409,6 @@ Section "$(str_section_exe)" id_section_exe File /oname=gvim.exe ${VIMSRC}\gvim_ole.exe !if /FileExists "${VIMSRC}\vim${BIT}.dll" File ${VIMSRC}\vim${BIT}.dll -!endif -!if /FileExists "${VIMRT}\libsodium.dll" - File ${VIMRT}\libsodium.dll !endif File /oname=install.exe ${VIMSRC}\installw32.exe File /oname=uninstall.exe ${VIMSRC}\uninstallw32.exe @@ -377,9 +420,18 @@ Section "$(str_section_exe)" id_section_exe File ..\uninstall.txt File ${VIMRT}\*.vim +!if /FileExists "${VIMTOOLS}\diff.exe" File ${VIMTOOLS}\diff.exe +!endif +!if /FileExists "${VIMTOOLS}\winpty${BIT}.dll" File ${VIMTOOLS}\winpty${BIT}.dll +!endif +!if /FileExists "${VIMTOOLS}\winpty-agent.exe" File ${VIMTOOLS}\winpty-agent.exe +!endif +!if /FileExists "${VIMTOOLS}\libsodium.dll" + File ${VIMTOOLS}\libsodium.dll +!endif SetOutPath $0\colors File /r ${VIMRT}\colors\*.* @@ -388,17 +440,22 @@ Section "$(str_section_exe)" id_section_exe File ${VIMRT}\compiler\*.* SetOutPath $0\doc - File ${VIMRT}\doc\*.txt + File /x uganda.nsis.txt ${VIMRT}\doc\*.txt File ${VIMRT}\doc\tags SetOutPath $0\ftplugin File ${VIMRT}\ftplugin\*.* SetOutPath $0\indent - File ${VIMRT}\indent\*.* + File ${VIMRT}\indent\README.txt + File ${VIMRT}\indent\*.vim + + SetOutPath $0\keymap + File ${VIMRT}\keymap\README.txt + File ${VIMRT}\keymap\*.vim SetOutPath $0\macros - File /r ${VIMRT}\macros\*.* + File /r /x *.info ${VIMRT}\macros\*.* SetOutPath $0\pack File /r ${VIMRT}\pack\*.* @@ -416,7 +473,7 @@ Section "$(str_section_exe)" id_section_exe File ${VIMSRC}\vim.ico SetOutPath $0\syntax - File /r ${VIMRT}\syntax\*.* + File /r /x testdir /x generator /x Makefile ${VIMRT}\syntax\*.* SetOutPath $0\spell File ${VIMRT}\spell\*.txt @@ -428,7 +485,7 @@ Section "$(str_section_exe)" id_section_exe File ${VIMRT}\tools\*.* SetOutPath $0\tutor - File ${VIMRT}\tutor\*.* + File /x Makefile /x *.info ${VIMRT}\tutor\*.* SectionEnd ########################################################## @@ -554,15 +611,116 @@ SectionGroup $(str_group_plugin) id_group_plugin SectionGroupEnd ########################################################## -!ifdef HAVE_NLS +!if ${HAVE_NLS} Section "$(str_section_nls)" id_section_nls SectionIn 1 3 +#; FIXME: When adding new translations, do not forget to make changes here. + SetOutPath $0 +!if /FileExists ..\README.dax.txt + ${If} $Language = ${LANG_DANISH} + File ..\README.dax.txt + ${EndIf} +!endif +!if /FileExists ..\README.nlx.txt + ${If} $Language = ${LANG_DUTCH} + File ..\README.nlx.txt + ${EndIf} +!endif +!if /FileExists ..\README.dex.txt + ${If} $Language = ${LANG_GERMAN} + File ..\README.dex.txt + ${EndIf} +!endif +!if /FileExists ..\README.itx.txt + ${If} $Language = ${LANG_ITALIAN} + File ..\README.itx.txt + ${EndIf} +!endif +!if /FileExists ..\README.jax.txt + ${If} $Language = ${LANG_JAPANESE} + File ..\README.jax.txt + ${EndIf} +!endif +!if /FileExists ..\README.rux.txt + ${If} $Language = ${LANG_RUSSIAN} + File ..\README.rux.txt + ${EndIf} +!endif +!if /FileExists ..\README.srx.txt + ${If} $Language = ${LANG_SERBIAN} + File ..\README.srx.txt + ${EndIf} +!endif +!if /FileExists ..\README.cnx.txt + ${If} $Language = ${LANG_SIMPCHINESE} + File ..\README.cnx.txt + ${EndIf} +!endif +!if /FileExists ..\README.twx.txt + ${If} $Language = ${LANG_TRADCHINESE} + File ..\README.twx.txt + ${EndIf} +!endif +!if /FileExists ..\README.trx.txt + ${OrIf} $Language = ${LANG_TURKISH} + File ..\README.trx.txt + ${EndIf} +!endif +#; FIXME: When adding new translations, do not forget to make changes here. + SetOutPath $0\doc +!if /FileExists "${VIMRT}\doc\uganda.dax" + ${If} $Language = ${LANG_DANISH} + File ${VIMRT}\doc\uganda.dax + ${EndIf} +!endif +!if /FileExists "${VIMRT}\doc\uganda.nlx" + ${If} $Language = ${LANG_DUTCH} + File ${VIMRT}\doc\uganda.nlx + ${EndIf} +!endif +!if /FileExists "${VIMRT}\doc\uganda.dex" + ${If} $Language = ${LANG_GERMAN} + File ${VIMRT}\doc\uganda.dex + ${EndIf} +!endif +!if /FileExists "${VIMRT}\doc\uganda.itx" + ${If} $Language = ${LANG_ITALIAN} + File ${VIMRT}\doc\uganda.itx + ${EndIf} +!endif +!if /FileExists "${VIMRT}\doc\uganda.jax" + ${If} $Language = ${LANG_JAPANESE} + File ${VIMRT}\doc\uganda.jax + ${EndIf} +!endif +!if /FileExists "${VIMRT}\doc\uganda.rux" + ${If} $Language = ${LANG_RUSSIAN} + File ${VIMRT}\doc\uganda.rux + ${EndIf} +!endif +!if /FileExists "${VIMRT}\doc\uganda.srx" + ${If} $Language = ${LANG_SERBIAN} + File ${VIMRT}\doc\uganda.srx + ${EndIf} +!endif +!if /FileExists "${VIMRT}\doc\uganda.cnx" + ${If} $Language = ${LANG_SIMPCHINESE} + File ${VIMRT}\doc\uganda.cnx + ${EndIf} +!endif +!if /FileExists "${VIMRT}\doc\uganda.twx" + ${If} $Language = ${LANG_TRADCHINESE} + File ${VIMRT}\doc\uganda.twx + ${EndIf} +!endif +!if /FileExists "${VIMRT}\doc\uganda.trx" + ${If} $Language = ${LANG_TURKISH} + File ${VIMRT}\doc\uganda.trx + ${EndIf} +!endif SetOutPath $0\lang - File /r ${VIMRT}\lang\*.* - SetOutPath $0\keymap - File ${VIMRT}\keymap\README.txt - File ${VIMRT}\keymap\*.vim + File /r /x Makefile ${VIMRT}\lang\*.* SetOutPath $0 !insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \ "${GETTEXT}\gettext${BIT}\libintl-8.dll" \ @@ -570,12 +728,12 @@ Section "$(str_section_nls)" id_section_nls !insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \ "${GETTEXT}\gettext${BIT}\libiconv-2.dll" \ "$0\libiconv-2.dll" "$0" - !if /FileExists "${GETTEXT}\gettext${BIT}\libgcc_s_sjlj-1.dll" - # Install libgcc_s_sjlj-1.dll only if it is needed. - !insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \ - "${GETTEXT}\gettext${BIT}\libgcc_s_sjlj-1.dll" \ - "$0\libgcc_s_sjlj-1.dll" "$0" - !endif +# Install libgcc_s_sjlj-1.dll only if it is needed. +# !if /FileExists "${GETTEXT}\gettext${BIT}\libgcc_s_sjlj-1.dll" +# !insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \ +# "${GETTEXT}\gettext${BIT}\libgcc_s_sjlj-1.dll" \ +# "$0\libgcc_s_sjlj-1.dll" "$0" +# !endif ${If} ${SectionIsSelected} ${id_section_editwith} ${If} ${RunningX64} @@ -601,12 +759,12 @@ Section "$(str_section_nls)" id_section_nls !insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \ "${GETTEXT}\gettext32\libiconv-2.dll" \ "$0\GvimExt32\libiconv-2.dll" "$0\GvimExt32" - !if /FileExists "${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll" - # Install libgcc_s_sjlj-1.dll only if it is needed. - !insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \ - "${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll" \ - "$0\GvimExt32\libgcc_s_sjlj-1.dll" "$0\GvimExt32" - !endif +# Install libgcc_s_sjlj-1.dll only if it is needed. +# !if /FileExists "${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll" +# !insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \ +# "${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll" \ +# "$0\GvimExt32\libgcc_s_sjlj-1.dll" "$0\GvimExt32" +# !endif ${EndIf} SectionEnd !endif @@ -647,7 +805,7 @@ Section -post SectionGetSize ${id_section_editwith} $4 IntOp $3 $3 + $4 ${EndIf} -!ifdef HAVE_NLS +!if ${HAVE_NLS} ${If} ${SectionIsSelected} ${id_section_nls} SectionGetSize ${id_section_nls} $4 IntOp $3 $3 + $4 @@ -677,7 +835,7 @@ Section -post !insertmacro SaveSectionSelection ${id_section_vimrc} "select_vimrc" !insertmacro SaveSectionSelection ${id_section_pluginhome} "select_pluginhome" !insertmacro SaveSectionSelection ${id_section_pluginvim} "select_pluginvim" -!ifdef HAVE_NLS +!if ${HAVE_NLS} !insertmacro SaveSectionSelection ${id_section_nls} "select_nls" !endif ${If} ${RunningX64} @@ -710,7 +868,7 @@ SectionEnd !macroend Function .onInit -!ifdef HAVE_MULTI_LANG +!if ${HAVE_MULTI_LANG} # Select a language (or read from the registry). !insertmacro MUI_LANGDLL_DISPLAY !endif @@ -748,7 +906,7 @@ Function .onInit !insertmacro LoadSectionSelection ${id_section_vimrc} "select_vimrc" !insertmacro LoadSectionSelection ${id_section_pluginhome} "select_pluginhome" !insertmacro LoadSectionSelection ${id_section_pluginvim} "select_pluginvim" -!ifdef HAVE_NLS +!if ${HAVE_NLS} !insertmacro LoadSectionSelection ${id_section_nls} "select_nls" !endif # Load the default _vimrc settings from the registry (if any). @@ -806,12 +964,12 @@ Function SetCustom # 1st group - Compatibility - ${NSD_CreateGroupBox} 0 0 100% 32% $(str_msg_compat_title) + ${NSD_CreateGroupBox} 0u 0u 296u 44u $(str_msg_compat_title) Pop $3 - ${NSD_CreateLabel} 5% 10% 35% 8% $(str_msg_compat_desc) + ${NSD_CreateLabel} 16u 14u 269u 10u $(str_msg_compat_desc) Pop $3 - ${NSD_CreateDropList} 18% 19% 75% 8% "" + ${NSD_CreateDropList} 42u 26u 237u 13u "" Pop $vim_nsd_compat ${NSD_CB_AddString} $vim_nsd_compat $(str_msg_compat_vi) ${NSD_CB_AddString} $vim_nsd_compat $(str_msg_compat_vim) @@ -831,12 +989,12 @@ Function SetCustom # 2nd group - Key remapping - ${NSD_CreateGroupBox} 0 35% 100% 31% $(str_msg_keymap_title) + ${NSD_CreateGroupBox} 0u 48u 296u 44u $(str_msg_keymap_title) Pop $3 - ${NSD_CreateLabel} 5% 45% 90% 8% $(str_msg_keymap_desc) + ${NSD_CreateLabel} 16u 62u 269u 10u $(str_msg_keymap_desc) Pop $3 - ${NSD_CreateDropList} 38% 54% 55% 8% "" + ${NSD_CreateDropList} 42u 74u 236u 13u "" Pop $vim_nsd_keymap ${NSD_CB_AddString} $vim_nsd_keymap $(str_msg_keymap_default) ${NSD_CB_AddString} $vim_nsd_keymap $(str_msg_keymap_windows) @@ -850,12 +1008,12 @@ Function SetCustom # 3rd group - Mouse behavior - ${NSD_CreateGroupBox} 0 69% 100% 31% $(str_msg_mouse_title) + ${NSD_CreateGroupBox} 0u 95u 296u 44u $(str_msg_mouse_title) Pop $3 - ${NSD_CreateLabel} 5% 79% 90% 8% $(str_msg_mouse_desc) + ${NSD_CreateLabel} 16u 108u 269u 10u $(str_msg_mouse_desc) Pop $3 - ${NSD_CreateDropList} 23% 87% 70% 8% "" + ${NSD_CreateDropList} 42u 121u 237u 13u "" Pop $vim_nsd_mouse ${NSD_CB_AddString} $vim_nsd_mouse $(str_msg_mouse_default) ${NSD_CB_AddString} $vim_nsd_mouse $(str_msg_mouse_windows) @@ -922,7 +1080,7 @@ FunctionEnd !insertmacro MUI_DESCRIPTION_TEXT ${id_group_plugin} $(str_desc_plugin) !insertmacro MUI_DESCRIPTION_TEXT ${id_section_pluginhome} $(str_desc_plugin_home) !insertmacro MUI_DESCRIPTION_TEXT ${id_section_pluginvim} $(str_desc_plugin_vim) -!ifdef HAVE_NLS +!if ${HAVE_NLS} !insertmacro MUI_DESCRIPTION_TEXT ${id_section_nls} $(str_desc_nls) !endif !insertmacro MUI_FUNCTION_DESCRIPTION_END @@ -932,7 +1090,7 @@ FunctionEnd # Uninstaller Functions and Sections Function un.onInit -!ifdef HAVE_MULTI_LANG +!if ${HAVE_MULTI_LANG} # Get the language from the registry. !insertmacro MUI_UNGETLANGUAGE !endif @@ -942,7 +1100,7 @@ Section "un.$(str_unsection_register)" id_unsection_register SectionIn RO # Apparently $INSTDIR is set to the directory where the uninstaller is - # created. Thus the "vim61" directory is included in it. + # created. Thus the "vim91" directory is included in it. StrCpy $0 "$INSTDIR" # delete the context menu entry and batch files @@ -1039,6 +1197,7 @@ Section "un.$(str_unsection_exe)" id_unsection_exe RMDir /r $0\tutor RMDir /r $0\lang RMDir /r $0\keymap + RMDir /r $0\bitmaps Delete $0\*.exe Delete $0\*.bat Delete $0\*.vim @@ -1048,14 +1207,17 @@ Section "un.$(str_unsection_exe)" id_unsection_exe MessageBox MB_OK|MB_ICONEXCLAMATION $(str_msg_rm_exe_fail) /SD IDOK ${EndIf} - # No error message if the "vim62" directory can't be removed, the + # No error message if the "vim91" directory can't be removed, the # gvimext.dll may still be there. RMDir $0 SectionEnd # Remove "vimfiles" directory under the specified directory. !macro RemoveVimfiles dir - ${If} ${FileExists} ${dir}\vimfiles + ${If} ${FileExists} ${dir}\_viminfo + Delete ${dir}\_viminfo + ${EndIf} + ${If} ${DirExists} ${dir}\vimfiles RMDir ${dir}\vimfiles\colors RMDir ${dir}\vimfiles\compiler RMDir ${dir}\vimfiles\doc @@ -1065,6 +1227,9 @@ SectionEnd RMDir ${dir}\vimfiles\keymap RMDir ${dir}\vimfiles\plugin RMDir ${dir}\vimfiles\syntax + ${If} ${FileExists} ${dir}\vimfiles\.netrwhist* + Delete ${dir}\vimfiles\.netrwhist* + ${EndIf} RMDir ${dir}\vimfiles ${EndIf} !macroend diff --git a/nsis/gvim_version.nsh b/nsis/gvim_version.nsh index d8639a6bc8..aee434ba06 100644 --- a/nsis/gvim_version.nsh +++ b/nsis/gvim_version.nsh @@ -2,5 +2,5 @@ !ifndef __GVIM_VER__NSH__ !define __GVIM_VER__NSH__ !define VER_MAJOR 9 -!define VER_MINOR 0 +!define VER_MINOR 1 !endif diff --git a/nsis/lang/README.txt b/nsis/lang/README.txt new file mode 100644 index 0000000000..68ff1124ca --- /dev/null +++ b/nsis/lang/README.txt @@ -0,0 +1,34 @@ +This directory contains a file with text strings for gVim installer. +It also contains files with translations of the text strings for gVim installer +into different languages. + +For translators. + +If you want to prepare a translation for the gVim installer, use the file +"english.nsi" as a master file. See the other translation files in this +directory. +Note that in the definition of the MUI_LANGUAGE macro, the name of the language +to be translated must be the English name of the language. +The name of the file with the translation must match the name of the target +language. +Also, when translating strings, pay attention to some restrictions on the +allowable length of strings. For example: + component description field - 117 characters; + description above the drop-down lists on the .vimrc page - 53 characters; + drop-down lists on the .vimrc page - 55 characters. +Characters in this case mean characters of the English alphabet. + +If you do not yet have a translated "uganda.txt" file and a main "README.txt" +file, set the following values: + +for the license file +LicenseLangString page_lic_file 0 "${VIMRT}\doc\uganda.nsis.txt" + +for the readme.txt file +LangString vim_readme_file 0 "README.txt" + +Once you have the translations of these files, then set the values for these +variables similarly to what is done in the other translation files. +Also add the appropriate entries to the "gvim.nsi" file as done for other +languages. + diff --git a/nsis/lang/danish.nsi b/nsis/lang/danish.nsi index b365413c1d..ceb18be2f1 100644 --- a/nsis/lang/danish.nsi +++ b/nsis/lang/danish.nsi @@ -3,6 +3,7 @@ # danish.nsi: Danish language strings for gvim NSIS installer. # # Locale ID : 1030 +# Locale Name : da # fileencoding : UTF-8 # Author : scootergrisen @@ -14,6 +15,20 @@ LangString ^SetupCaption ${LANG_DANISH} "$(^Name) Setup" LangString ^UninstallCaption ${LANG_DANISH} "$(^Name) Uninstall" +############################################################################## +# Translated license file for the license page {{{1 +############################################################################## + +LicenseLangString page_lic_file 0 "${VIMRT}\doc\uganda.nsis.txt" +#LicenseLangString page_lic_file ${LANG_DANISH} "${VIMRT}\doc\uganda.nsis.dax" + +############################################################################## +# Translated README.txt file, which is opened after installation {{{1 +############################################################################## + +LangString vim_readme_file 0 "README.txt" +#LangString vim_readme_file ${LANG_DANISH} "README.dax.txt" + ############################################################################## # MUI Configuration Strings {{{1 ############################################################################## diff --git a/nsis/lang/dutch.nsi b/nsis/lang/dutch.nsi index 1d1322411e..49b1ed07c9 100644 --- a/nsis/lang/dutch.nsi +++ b/nsis/lang/dutch.nsi @@ -17,6 +17,20 @@ LangString ^SetupCaption ${LANG_DUTCH} \ LangString ^UninstallCaption ${LANG_DUTCH} \ "$(^Name) Uninstall" +############################################################################## +# Translated license file for the license page {{{1 +############################################################################## + +LicenseLangString page_lic_file 0 "${VIMRT}\doc\uganda.nsis.txt" +#LicenseLangString page_lic_file ${LANG_DUTCH} "${VIMRT}\doc\uganda.nsis.nlx" + +############################################################################## +# Translated README.txt file, which is opened after installation {{{1 +############################################################################## + +LangString vim_readme_file 0 "README.txt" +#LangString vim_readme_file ${LANG_DUTCH} "README.nlx.txt" + ############################################################################## # MUI Configuration Strings {{{1 ############################################################################## diff --git a/nsis/lang/english.nsi b/nsis/lang/english.nsi index e1be985e15..6f69f58df1 100644 --- a/nsis/lang/english.nsi +++ b/nsis/lang/english.nsi @@ -3,6 +3,7 @@ # english.nsi: English language strings for gvim NSIS installer. # # Locale ID : 1033 +# Locale Name : en # fileencoding : UTF-8 # Author : Guopeng Wen, Ken Takata @@ -16,6 +17,18 @@ LangString ^SetupCaption ${LANG_ENGLISH} \ LangString ^UninstallCaption ${LANG_ENGLISH} \ "$(^Name) Uninstall" +############################################################################## +# License file for the license page {{{1 +############################################################################## + +LicenseLangString page_lic_file ${LANG_ENGLISH} "${VIMRT}\doc\uganda.nsis.txt" + +############################################################################## +# README.txt file, which is opened after installation {{{1 +############################################################################## + +LangString vim_readme_file ${LANG_ENGLISH} "README.txt" + ############################################################################## # MUI Configuration Strings {{{1 ############################################################################## diff --git a/nsis/lang/german.nsi b/nsis/lang/german.nsi index b976ef4a2f..21cf80e52e 100644 --- a/nsis/lang/german.nsi +++ b/nsis/lang/german.nsi @@ -3,6 +3,7 @@ # german.nsi : German language strings for gvim NSIS installer. # # Locale ID : 1031 +# Locale Name : de # fileencoding : UTF-8 # Author : Christian Brabandt, tux @@ -16,6 +17,20 @@ LangString ^SetupCaption ${LANG_GERMAN} \ LangString ^UninstallCaption ${LANG_GERMAN} \ "$(^Name) Uninstall" +############################################################################## +# Translated license file for the license page {{{1 +############################################################################## + +LicenseLangString page_lic_file 0 "${VIMRT}\doc\uganda.nsis.txt" +#LicenseLangString page_lic_file ${LANG_GERMAN} "${VIMRT}\doc\uganda.nsis.dex" + +############################################################################## +# Translated README.txt file, which is opened after installation {{{1 +############################################################################## + +LangString vim_readme_file 0 "README.txt" +#LangString vim_readme_file ${LANG_GERMAN} "README.dex.txt" + ############################################################################## # MUI Configuration Strings {{{1 ############################################################################## diff --git a/nsis/lang/greek.nsi b/nsis/lang/greek.nsi new file mode 100644 index 0000000000..b92d3f326b --- /dev/null +++ b/nsis/lang/greek.nsi @@ -0,0 +1,291 @@ +# vi:set ts=8 sts=4 sw=4 et fdm=marker: +# +# greek.nsi: Greek language strings for gvim NSIS installer. +# +# Locale ID : 1032 +# Locale Name : el +# fileencoding : UTF-8 +# Author : Christos Longros + +!insertmacro MUI_LANGUAGE "Greek" + + +# Overwrite the default translation. +# These strings should be always English. Otherwise dosinst.c fails. +LangString ^SetupCaption ${LANG_GREEK} \ + "$(^Name) Setup" +LangString ^UninstallCaption ${LANG_GREEK} \ + "$(^Name) Uninstall" + +############################################################################## +# Translated license file for the license page {{{1 +############################################################################## + +LicenseLangString page_lic_file 0 "${VIMRT}\doc\uganda.nsis.txt" +#LicenseLangString page_lic_file ${LANG_GREEK} "${VIMRT}\doc\uganda.nsis.elx" + +############################################################################## +# Translated README.txt file, which is opened after installation {{{1 +############################################################################## + +LangString vim_readme_file 0 "README.txt" +#LangString vim_readme_file ${LANG_GREEK} "README.elx.txt" + +############################################################################## +# MUI Configuration Strings {{{1 +############################################################################## + +#LangString str_dest_folder ${LANG_GREEK} \ +# "Φάκελος προορισμός (Πρέπει να τελειώνει σε $\"vim$\")" + +LangString str_show_readme ${LANG_GREEK} \ + "Εμφάνιση README μετά την ολοκλήρωση της εγκατάστασης" + +# Install types: +LangString str_type_typical ${LANG_GREEK} \ + "Typical" + +LangString str_type_minimal ${LANG_GREEK} \ + "Minimal" + +LangString str_type_full ${LANG_GREEK} \ + "Full" + + +############################################################################## +# Section Titles & Description {{{1 +############################################################################## + +LangString str_section_old_ver ${LANG_GREEK} \ + "Απεγκατάσταση υπάρχουσων εκδόσεων" +LangString str_desc_old_ver ${LANG_GREEK} \ + "Απεγκατάσταση υπάρχουσων εκδόσεων Vim από το σύστημά σας." + +LangString str_section_exe ${LANG_GREEK} \ + "Vim GUI and runtime files" +LangString str_desc_exe ${LANG_GREEK} \ + "Vim GUI executables and runtime files. This component is required." + +LangString str_section_console ${LANG_GREEK} \ + "Vim console program" +LangString str_desc_console ${LANG_GREEK} \ + "Console version of Vim (vim.exe)." + +LangString str_section_batch ${LANG_GREEK} \ + "Δημιουργία αρχείων .bat" +LangString str_desc_batch ${LANG_GREEK} \ + "Δημιουργία αρχείων .bat από παράγωγα Vim στον κατάλογο των Windows για \ + χρήση γραμμής εντολών." + +LangString str_group_icons ${LANG_GREEK} \ + "Δημιουργία εικονιδίων Vim" +LangString str_desc_icons ${LANG_GREEK} \ + "Δημιουργία εικονιδίων για τον Vim σε διάφορες τοποθεσίες για την διευκόλυνση της προσβασιμότητας." + +LangString str_section_desktop ${LANG_GREEK} \ + "Στην επιφάνεια εργασίας" +LangString str_desc_desktop ${LANG_GREEK} \ + "Δημιουργία εικονιδίων για gVim εκτελέσιμα στην επιφάνεια εργασίας." + +LangString str_section_start_menu ${LANG_GREEK} \ + "In the Start Menu Programs Folder" +LangString str_desc_start_menu ${LANG_GREEK} \ + "Προσθήκη του Vim στον φάκελο προγραμμάτων του μενού εκκίνησης." + +#LangString str_section_quick_launch ${LANG_GREEK} \ +# "In the Quick Launch Bar" +#LangString str_desc_quick_launch ${LANG_GREEK} \ +# "Add Vim shortcut in the quick launch bar." + +LangString str_section_edit_with ${LANG_GREEK} \ + "Add Vim Context Menu" +LangString str_desc_edit_with ${LANG_GREEK} \ + "Add Vim to the $\"Open With...$\" context menu list." + +#LangString str_section_edit_with32 ${LANG_GREEK} \ +# "32-bit Version" +#LangString str_desc_edit_with32 ${LANG_GREEK} \ +# "Add Vim to the $\"Open With...$\" context menu list \ +# for 32-bit applications." + +#LangString str_section_edit_with64 ${LANG_GREEK} \ +# "64-bit Version" +#LangString str_desc_edit_with64 ${LANG_GREEK} \ +# "Add Vim to the $\"Open With...$\" context menu list \ +# for 64-bit applications." + +LangString str_section_vim_rc ${LANG_GREEK} \ + "Δημιουργία προεπιλεγμένων ρυθμίσεων" +LangString str_desc_vim_rc ${LANG_GREEK} \ + "Δημιουργία προεπιλεγμένου αρχείου ρυθμίσεων (_vimrc) αν δεν υπάρχει ήδη." + +LangString str_group_plugin ${LANG_GREEK} \ + "Δημιουργία καταλόγων Plugin" +LangString str_desc_plugin ${LANG_GREEK} \ + "Δημιουργία καταλόγων plugin. Οι κατάλογοι Plugin επιτρέπουν την επέκταση του Vim \ + με την μεταφορά ενός αρχείου σε έναν κατάλογο." + +LangString str_section_plugin_home ${LANG_GREEK} \ + "Private" +LangString str_desc_plugin_home ${LANG_GREEK} \ + "Δημιουργία καταλόγων plugin στον κατάλογο HOME." + +LangString str_section_plugin_vim ${LANG_GREEK} \ + "Shared" +LangString str_desc_plugin_vim ${LANG_GREEK} \ + "Δημιουργία καταλόγων plugin στον κατάλογο εγκατάστασης του Vim, χρησιμοποιείται από \ + όλους στο σύστημα." + +LangString str_section_nls ${LANG_GREEK} \ + "Native Language Support" +LangString str_desc_nls ${LANG_GREEK} \ + "Install files for native language support." + +LangString str_unsection_register ${LANG_GREEK} \ + "Unregister Vim" +LangString str_desc_unregister ${LANG_GREEK} \ + "Unregister Vim from the system." + +LangString str_unsection_exe ${LANG_GREEK} \ + "Remove Vim Executables/Runtime Files" +LangString str_desc_rm_exe ${LANG_GREEK} \ + "Remove all Vim executables and runtime files." + +LangString str_ungroup_plugin ${LANG_GREEK} \ + "Remove plugin directories" +LangString str_desc_rm_plugin ${LANG_GREEK} \ + "Remove the plugin directories if they are empty." + +LangString str_unsection_plugin_home ${LANG_GREEK} \ + "Private" +LangString str_desc_rm_plugin_home ${LANG_GREEK} \ + "Remove the plugin directories from HOME directory." + +LangString str_unsection_plugin_vim ${LANG_GREEK} \ + "Shared" +LangString str_desc_rm_plugin_vim ${LANG_GREEK} \ + "Remove the plugin directories from Vim install directory." + +LangString str_unsection_rootdir ${LANG_GREEK} \ + "Remove the Vim root directory" +LangString str_desc_rm_rootdir ${LANG_GREEK} \ + "Remove the Vim root directory. It contains your Vim configuration files!" + + +############################################################################## +# Messages {{{1 +############################################################################## + +#LangString str_msg_too_many_ver ${LANG_GREEK} \ +# "Found $vim_old_ver_count Vim versions on your system.$\r$\n\ +# This installer can only handle ${VIM_MAX_OLD_VER} versions \ +# at most.$\r$\n\ +# Please remove some versions and start again." + +#LangString str_msg_invalid_root ${LANG_GREEK} \ +# "Invalid install path: $vim_install_root!$\r$\n\ +# It should end with $\"vim$\"." + +#LangString str_msg_bin_mismatch ${LANG_GREEK} \ +# "Binary path mismatch!$\r$\n$\r$\n\ +# Expect the binary path to be $\"$vim_bin_path$\",$\r$\n\ +# but system indicates the binary path is $\"$INSTDIR$\"." + +#LangString str_msg_vim_running ${LANG_GREEK} \ +# "Vim is still running on your system.$\r$\n\ +# Please close all instances of Vim before you continue." + +#LangString str_msg_register_ole ${LANG_GREEK} \ +# "Attempting to register Vim with OLE. \ +# There is no message indicates whether this works or not." + +#LangString str_msg_unreg_ole ${LANG_GREEK} \ +# "Attempting to unregister Vim with OLE. \ +# There is no message indicates whether this works or not." + +#LangString str_msg_rm_start ${LANG_GREEK} \ +# "Uninstalling the following version:" + +#LangString str_msg_rm_fail ${LANG_GREEK} \ +# "Fail to uninstall the following version:" + +#LangString str_msg_no_rm_key ${LANG_GREEK} \ +# "Cannot find uninstaller registry key." + +#LangString str_msg_no_rm_reg ${LANG_GREEK} \ +# "Cannot find uninstaller from registry." + +#LangString str_msg_no_rm_exe ${LANG_GREEK} \ +# "Cannot access uninstaller." + +#LangString str_msg_rm_copy_fail ${LANG_GREEK} \ +# "Fail to copy uninstaller to temporary directory." + +#LangString str_msg_rm_run_fail ${LANG_GREEK} \ +# "Αποτυχία εκτέλεσης της λειτουργίας απεγκατάστασης." + +#LangString str_msg_abort_install ${LANG_GREEK} \ +# "Installer will abort." + +LangString str_msg_install_fail ${LANG_GREEK} \ + "Η εγκατάσταση απέτυχε. Better luck next time." + +LangString str_msg_rm_exe_fail ${LANG_GREEK} \ + "Μερικά αρχεία στο $0 δεν έχουν διαγραφεί!$\r$\n\ + Πρέπει να το κάνετε χειροκίνητα." + +#LangString str_msg_rm_root_fail ${LANG_GREEK} \ +# "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Αδύνατη η αφαίρεση $\"$vim_install_root$\", δεν είναι κενό!" + +LangString str_msg_uninstalling ${LANG_GREEK} \ + "Απεγκατάσταση παλιάς έκδοσης the old version..." + +LangString str_msg_registering ${LANG_GREEK} \ + "Καταχώρηση..." + +LangString str_msg_unregistering ${LANG_GREEK} \ + "Unregistering..." + + +############################################################################## +# Dialog Box {{{1 +############################################################################## + +LangString str_vimrc_page_title ${LANG_GREEK} \ + "Επιλογή ρυθμίσεων _vimrc" +LangString str_vimrc_page_subtitle ${LANG_GREEK} \ + "Choose the settings for enhancement, keyboard and mouse." + +LangString str_msg_compat_title ${LANG_GREEK} \ + " Συμπεριφορά Vi / Vim " +LangString str_msg_compat_desc ${LANG_GREEK} \ + "&Compatibility and enhancements" +LangString str_msg_compat_vi ${LANG_GREEK} \ + "Vi compatible" +LangString str_msg_compat_vim ${LANG_GREEK} \ + "Vim original" +LangString str_msg_compat_defaults ${LANG_GREEK} \ + "Vim with some enhancements (load defaults.vim)" +LangString str_msg_compat_all ${LANG_GREEK} \ + "Vim with all enhancements (load vimrc_example.vim) (Default)" + +LangString str_msg_keymap_title ${LANG_GREEK} \ + " Mappings " +LangString str_msg_keymap_desc ${LANG_GREEK} \ + "&Remap a few keys for Windows (Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F, etc)" +LangString str_msg_keymap_default ${LANG_GREEK} \ + "Do not remap keys (Default)" +LangString str_msg_keymap_windows ${LANG_GREEK} \ + "Remap a few keys" + +LangString str_msg_mouse_title ${LANG_GREEK} \ + " Ποντίκι " +LangString str_msg_mouse_desc ${LANG_GREEK} \ + "&Behavior of right and left buttons" +LangString str_msg_mouse_default ${LANG_GREEK} \ + "Right: popup menu, Left: visual mode (Default)" +LangString str_msg_mouse_windows ${LANG_GREEK} \ + "Right: popup menu, Left: select mode (Windows)" +LangString str_msg_mouse_unix ${LANG_GREEK} \ + "Right: extends selection, Left: visual mode (Unix)" + diff --git a/nsis/lang/italian.nsi b/nsis/lang/italian.nsi index 029737f035..5f326809a7 100644 --- a/nsis/lang/italian.nsi +++ b/nsis/lang/italian.nsi @@ -3,6 +3,7 @@ # italian.nsi : Italian language strings for gvim NSIS installer. # # Locale ID : 1040 +# Locale Name : it # fileencoding : UTF-8 # Author : Antonio Colombo, bovirus - revision: 12.05.2023 @@ -16,6 +17,20 @@ LangString ^SetupCaption ${LANG_ITALIAN} \ LangString ^UninstallCaption ${LANG_ITALIAN} \ "$(^Name) Uninstall" +############################################################################## +# Translated license file for the license page {{{1 +############################################################################## + +LicenseLangString page_lic_file 0 "${VIMRT}\doc\uganda.nsis.txt" +#LicenseLangString page_lic_file ${LANG_ITALIAN} "${VIMRT}\doc\uganda.nsis.itx" + +############################################################################## +# Translated README.txt file, which is opened after installation {{{1 +############################################################################## + +LangString vim_readme_file 0 "README.txt" +#LangString vim_readme_file ${LANG_ITALIAN} "README.itx.txt" + ############################################################################## # MUI Configuration Strings {{{1 ############################################################################## diff --git a/nsis/lang/japanese.nsi b/nsis/lang/japanese.nsi index 58f4dccc1b..d290355d10 100644 --- a/nsis/lang/japanese.nsi +++ b/nsis/lang/japanese.nsi @@ -3,6 +3,7 @@ # japanese.nsi: Japanese language strings for gvim NSIS installer. # # Locale ID : 1041 +# Locale Name : ja # fileencoding : UTF-8 # Author : Ken Takata @@ -26,6 +27,20 @@ LangString ^SpaceRequired ${LANG_JAPANESE} \ LangString ^InstallBtn ${LANG_JAPANESE} \ "インストール(&I)" +############################################################################## +# Translated license file for the license page {{{1 +############################################################################## + +LicenseLangString page_lic_file 0 "${VIMRT}\doc\uganda.nsis.txt" +#LicenseLangString page_lic_file ${LANG_JAPANESE} "${VIMRT}\doc\uganda.nsis.jax" + +############################################################################## +# Translated README.txt file, which is opened after installation {{{1 +############################################################################## + +LangString vim_readme_file 0 "README.txt" +#LangString vim_readme_file ${LANG_JAPANESE} "README.jax.txt" + ############################################################################## # MUI Configuration Strings {{{1 ############################################################################## diff --git a/nsis/lang/russian.nsi b/nsis/lang/russian.nsi index e4512081a9..876bef2b89 100644 --- a/nsis/lang/russian.nsi +++ b/nsis/lang/russian.nsi @@ -3,7 +3,7 @@ # russian.nsi: Russian language strings for gvim NSIS installer. # # Locale ID : 1049 -# Locale name : ru-RU +# Locale name : ru # fileencoding : UTF-8 # Author : Restorer @@ -17,25 +17,37 @@ LangString ^SetupCaption ${LANG_RUSSIAN} \ LangString ^UninstallCaption ${LANG_RUSSIAN} \ "$(^Name) Uninstall" +############################################################################## +# Translated license file for the license page {{{1 +############################################################################## + +LicenseLangString page_lic_file ${LANG_RUSSIAN} "${VIMRT}\doc\uganda.nsis.rux" + +############################################################################## +# Translated README.txt file, which is opened after installation {{{1 +############################################################################## + +LangString vim_readme_file ${LANG_RUSSIAN} "README.rux.txt" + ############################################################################## # MUI Configuration Strings {{{1 ############################################################################## #LangString str_dest_folder ${LANG_RUSSIAN} \ -# "Маршрут к каталогу установки (должен оканчиваться каталогом $\"vim$\")" +# "Маршрут установки программы (должен завершаться каталогом $\"vim$\")" LangString str_show_readme ${LANG_RUSSIAN} \ - "После окончания установки ознакомиться с кратким описанием" + " Ознакомиться с кратким описанием программы" # Install types: LangString str_type_typical ${LANG_RUSSIAN} \ - "Стандартная" + "Стандартный" LangString str_type_minimal ${LANG_RUSSIAN} \ - "Минимальная" + "Минимальный" LangString str_type_full ${LANG_RUSSIAN} \ - "Полная" + "Полный" ############################################################################## @@ -50,59 +62,61 @@ LangString str_desc_old_ver ${LANG_RUSSIAN} \ LangString str_section_exe ${LANG_RUSSIAN} \ "Графический интерфейс и вспомогательные файлы" LangString str_desc_exe ${LANG_RUSSIAN} \ - "Графический интерфейс программы Vim и все необходимые для этого файлы. \ + "Исполняемые файлы и все необходимые для работы программы файлы. \ Это обязательный компонент" LangString str_section_console ${LANG_RUSSIAN} \ "Консольная программа Vim" LangString str_desc_console ${LANG_RUSSIAN} \ - "Вариант редактора Vim (vim.exe), используемый в командной оболочке" + "Вариант редактора Vim (vim.exe), используемый для работы в командной \ + оболочке" LangString str_section_batch ${LANG_RUSSIAN} \ "Создать командные файлы" LangString str_desc_batch ${LANG_RUSSIAN} \ - "Создание командных bat-файлов позволяющих работать с редактором \ - Vim из командной строки Windows" + "Создание командных bat-файлов в каталоге Windows для работы с редактором \ + Vim из командной строки" LangString str_group_icons ${LANG_RUSSIAN} \ "Создать ярлыки для редактора Vim" LangString str_desc_icons ${LANG_RUSSIAN} \ - "Создание ярлыков редактора Vim для облегчения запуска программы" + "Создание ярлыков программы для удобного и быстрого запуска редактора Vim" LangString str_section_desktop ${LANG_RUSSIAN} \ "На Рабочем столе" LangString str_desc_desktop ${LANG_RUSSIAN} \ - "Создание ярлыков программы Gvim на Рабочем столе" + "Создание ярлыков редактора Vim на Рабочем столе" LangString str_section_start_menu ${LANG_RUSSIAN} \ "В меню кнопки Пуск" LangString str_desc_start_menu ${LANG_RUSSIAN} \ - "Создание ярлыков программы Gvim в меню кнопки Пуск" + "Создание ярлыков редактора Vim в меню кнопки Пуск" #LangString str_section_quick_launch ${LANG_RUSSIAN} \ # "На панели быстрого запуска" #LangString str_desc_quick_launch ${LANG_RUSSIAN} \ -# "Создание ярлыков программы GVim на панели быстрого запуска" +# "Создание ярлыков редактора Vim на панели быстрого запуска" LangString str_section_edit_with ${LANG_RUSSIAN} \ - "В контекстном меню" + "Запуск редактора Vim из контекстного меню" LangString str_desc_edit_with ${LANG_RUSSIAN} \ - "Добавление вызова программы Gvim в пункт $\"Открыть с помощью...$\" контекстного меню" + "Добавление необходимой строки в пункт контекстного меню \ + «Открыть с помощью...»" #LangString str_section_edit_with32 ${LANG_RUSSIAN} \ -# "32-разрядная версия программы" +# "Для 32-разрядной версии программы" #LangString str_desc_edit_with32 ${LANG_RUSSIAN} \ -# "Добавление вызова программы Gvim в пункт $\"Открыть с помощью...$\" контекстного меню \ -# для 32-разрядных приложений" +# "Добавление в пункт контекстного меню \ +# «Открыть с помощью...» 32-разрядных приложений" #LangString str_section_edit_with64 ${LANG_RUSSIAN} \ -# "64-разрядная версия программы" +# "Для 64-разрядной версии программы" #LangString str_desc_edit_with64 ${LANG_RUSSIAN} \ -# "Добавление вызова программы Gvim в пункт $\"Открыть с помощью...$\" контекстного меню \ -# для 64-разрядных приложений" +# "Добавление в пункт контекстного меню \ +# «Открыть с помощью...» 64-разрядных приложений" LangString str_section_vim_rc ${LANG_RUSSIAN} \ - "Настройки программы по умолчанию" + "Начальная настройка программы" LangString str_desc_vim_rc ${LANG_RUSSIAN} \ "Создание файла _vimrc с предустановленными настройками, если нет других \ файлов настроек" @@ -110,25 +124,31 @@ LangString str_desc_vim_rc ${LANG_RUSSIAN} \ LangString str_group_plugin ${LANG_RUSSIAN} \ "Создать каталог для подключаемых модулей" LangString str_desc_plugin ${LANG_RUSSIAN} \ - "Создание каталога для размещения подключаемых модулей, которые расширяют \ - возможности редактора Vim" + "Создание каталога для подключаемых модулей, которые расширяют возможности \ + редактора Vim" LangString str_section_plugin_home ${LANG_RUSSIAN} \ "Личный каталог" LangString str_desc_plugin_home ${LANG_RUSSIAN} \ - "Создание каталога для подключаемых модулей в домашнем каталоге пользователя" + "В домашнем каталоге пользователя. Модули в этом каталоге доступны только \ + этому пользователю" LangString str_section_plugin_vim ${LANG_RUSSIAN} \ "Общий каталог" LangString str_desc_plugin_vim ${LANG_RUSSIAN} \ - "Создание каталога для подключаемых модулей в каталоге установки редактора Vim. \ - Модули в этом каталоге будут доступны для любого пользователя \ - зарегистрировавшегося в системе" + "В каталоге установки редактора Vim. Модули в этом каталоге доступны для \ + всех пользователей" + +#LangString str_section_vis_vim ${LANG_RUSSIAN} \ +# "Подключаемый модуль VisVim" +#LangString str_desc_vis_vim ${LANG_RUSSIAN} \ +# "Подключаемый модуль VisVim используется для интеграции с \ +# Microsoft Visual Studio" LangString str_section_nls ${LANG_RUSSIAN} \ "Поддержка региональных языков" LangString str_desc_nls ${LANG_RUSSIAN} \ - "Установка файлов для поддержки региональных языков операционной системы" + "Установка файлов для работы программе на различных региональных языках" LangString str_unsection_register ${LANG_RUSSIAN} \ "Отменить регистрацию компонентов программы Vim" @@ -158,8 +178,8 @@ LangString str_desc_rm_plugin_vim ${LANG_RUSSIAN} \ LangString str_unsection_rootdir ${LANG_RUSSIAN} \ "Удалить основной каталог программы Vim" LangString str_desc_rm_rootdir ${LANG_RUSSIAN} \ - "Удаление основного каталога программы Vim. В этом каталоге находятся файлы \ - настроек!" + "Удаление основного каталога программы Vim. В этом каталоге находятся \ + файлы настроек!" ############################################################################## @@ -199,10 +219,11 @@ LangString str_desc_rm_rootdir ${LANG_RUSSIAN} \ # "Произошёл сбой при выполнении удаления следующих версий программы:" #LangString str_msg_no_rm_key ${LANG_RUSSIAN} \ -# "Не удалось найти раздел реестра, содержащий информацию об удалении программы" +# "Не удалось найти раздел реестра, содержащий информацию об удалении \ +# программы" #LangString str_msg_no_rm_reg ${LANG_RUSSIAN} \ -# "Не удалось найти программу выполняющую удаление, указанную в разделе реестра" +# "Не удалось найти указанную в реестре программу, которая выполняет удаление" #LangString str_msg_no_rm_exe ${LANG_RUSSIAN} \ # "Отсутствуют права на доступ к программе, выполняющей удаление" @@ -219,14 +240,15 @@ LangString str_desc_rm_rootdir ${LANG_RUSSIAN} \ LangString str_msg_install_fail ${LANG_RUSSIAN} \ "Произошла ошибка при установке программы. Попробуйте повторить установку \ немного попозже" -# когда луна будет в другой фазе и ветер должен дуть с юго‐запада +# когда Луна будет в другой фазе и ветер должен дуть с юго‐запада LangString str_msg_rm_exe_fail ${LANG_RUSSIAN} \ "Некоторые файлы не были удалены из каталога $0 $\r$\n\ Необходимо выполнить их удаление самостоятельно" #LangString str_msg_rm_root_fail ${LANG_RUSSIAN} \ -# "Внимание! В каталоге $\"$vim_install_root$\" содержатся файлы. Удаление каталога не выполнено" +# "Внимание! В каталоге $\"$vim_install_root$\" содержатся файлы. Удаление \ +# каталога не выполнено" LangString str_msg_uninstalling ${LANG_RUSSIAN} \ "Удаление предыдущих версий программ..." @@ -245,7 +267,8 @@ LangString str_msg_unregistering ${LANG_RUSSIAN} \ LangString str_vimrc_page_title ${LANG_RUSSIAN} \ "Установка параметров программы" LangString str_vimrc_page_subtitle ${LANG_RUSSIAN} \ - "Параметры, используемые для клавиатуры, «мыши» и функциональности программы" + "Параметры, используемые для клавиатуры, манипулятора «мышь» и \ + функциональности программы" LangString str_msg_compat_title ${LANG_RUSSIAN} \ " Варианты использования программы " @@ -256,27 +279,26 @@ LangString str_msg_compat_vi ${LANG_RUSSIAN} \ LangString str_msg_compat_vim ${LANG_RUSSIAN} \ "Работа в варианте функциональности редактора Vim" LangString str_msg_compat_defaults ${LANG_RUSSIAN} \ - "Работа редактора Vim с некоторыми улучшениями (файл defaults.vim)" + "Включить некоторые улучшения (из файла defaults.vim)" LangString str_msg_compat_all ${LANG_RUSSIAN} \ - "Работа редактора Vim со всеми улучшениями (файл vimrc_example.vim). \ - Используется по умолчанию" + "Включить все улучшения (из файла vimrc_example.vim). Стандартно" LangString str_msg_keymap_title ${LANG_RUSSIAN} \ " Клавиатурные команды " LangString str_msg_keymap_desc ${LANG_RUSSIAN} \ - "Клавиатурные команды используемые в ОС Windows (CTRL+V, CTRL+C, CTRL+S, CTRL+F и т. п.)" + "Изменение клавиатурных команд CTRL+V, CTRL+C, CTRL+S, CTRL+F и т. п." LangString str_msg_keymap_default ${LANG_RUSSIAN} \ - "Не изменять клавиатурные команды. Использовать принятые в редакторе Vim" + "Без изменения, использовать как принято в редакторе Vim" LangString str_msg_keymap_windows ${LANG_RUSSIAN} \ - "Изменить указанные клавиатурные команды" + "Изменить и использовать как принято в ОС Windows" LangString str_msg_mouse_title ${LANG_RUSSIAN} \ " Манипулятор «мышь» " LangString str_msg_mouse_desc ${LANG_RUSSIAN} \ - "Действий правой и левой кнопки манипулятора «мышь»" + "Действия правой и левой кнопки манипулятора «мышь»" LangString str_msg_mouse_default ${LANG_RUSSIAN} \ - "Правая кнопка — всплывающее меню, левая кнопка — режим визуальный" + "Правая — всплывающее меню, левая — режим визуальный (Vim)" LangString str_msg_mouse_windows ${LANG_RUSSIAN} \ - "Правая кнопка — всплывающее меню, левая кнопка — режим выборки (как в ОС Windows)" + "Правая — всплывающее меню, левая — режим выборки (Windows)" LangString str_msg_mouse_unix ${LANG_RUSSIAN} \ - "Правая кнопка — расширяемый режим выбора, левая кнопка — режим визуальный (как в UNIX‐подобных ОС)" + "Правая — расширение выборки, левая — режим визуальный (UNIX)" diff --git a/nsis/lang/serbian.nsi b/nsis/lang/serbian.nsi index 9912ec5df8..122727d11a 100644 --- a/nsis/lang/serbian.nsi +++ b/nsis/lang/serbian.nsi @@ -3,10 +3,11 @@ # serbian.nsi: Serbian language strings for gvim NSIS installer. # # Locale ID : 3098 +# Locale Name : sr # fileencoding : UTF-8 # Author : Ivan Pešić -!insertmacro MUI_LANGUAGE "Српски" +!insertmacro MUI_LANGUAGE "Serbian" # Overwrite the default translation. @@ -16,6 +17,20 @@ LangString ^SetupCaption ${LANG_SERBIAN} \ LangString ^UninstallCaption ${LANG_SERBIAN} \ "$(^Name) Uninstall" +############################################################################## +# Translated license file for the license page {{{1 +############################################################################## + +LicenseLangString page_lic_file 0 "${VIMRT}\doc\uganda.nsis.txt" +#LicenseLangString page_lic_file ${LANG_SERBIAN} "${VIMRT}\doc\uganda.nsis.srx" + +############################################################################## +# Translated README.txt file, which is opened after installation {{{1 +############################################################################## + +LangString vim_readme_file 0 "README.txt" +#LangString vim_readme_file ${LANG_SERBIAN} "README.srx.txt" + ############################################################################## # MUI Configuration Strings {{{1 ############################################################################## diff --git a/nsis/lang/simpchinese.nsi b/nsis/lang/simpchinese.nsi index 2c80054d19..8d2d073f79 100644 --- a/nsis/lang/simpchinese.nsi +++ b/nsis/lang/simpchinese.nsi @@ -4,6 +4,7 @@ # installer. # # Locale ID : 2052 +# Locale Name : cn # fileencoding : UTF-8 # Author : Guopeng Wen, David Liu @@ -17,6 +18,21 @@ LangString ^SetupCaption ${LANG_SIMPCHINESE} \ LangString ^UninstallCaption ${LANG_SIMPCHINESE} \ "$(^Name) Uninstall" +############################################################################## +# Translated license file for the license page {{{1 +############################################################################## + +LicenseLangString page_lic_file 0 "${VIMRT}\doc\uganda.nsis.txt" +#LicenseLangString page_lic_file ${LANG_SIMPCHINESE} \ +# "${VIMRT}\doc\uganda.nsis.cnx" + +############################################################################## +# Translated README.txt file, which is opened after installation {{{1 +############################################################################## + +LangString vim_readme_file 0 "README.txt" +#LangString vim_readme_file ${LANG_SIMPCHINESE} "README.cnx.txt" + ############################################################################## # MUI Configuration Strings {{{1 ############################################################################## diff --git a/nsis/lang/tradchinese.nsi b/nsis/lang/tradchinese.nsi index 16b6747c20..66bb1b8800 100644 --- a/nsis/lang/tradchinese.nsi +++ b/nsis/lang/tradchinese.nsi @@ -4,6 +4,7 @@ # installer. # # Locale ID : 1028 +# Locale Name : tw # fileencoding : UTF-8 # Author : Guopeng Wen @@ -17,6 +18,21 @@ LangString ^SetupCaption ${LANG_TRADCHINESE} \ LangString ^UninstallCaption ${LANG_TRADCHINESE} \ "$(^Name) Uninstall" +############################################################################## +# Translated license file for the license page {{{1 +############################################################################## + +LicenseLangString page_lic_file 0 "${VIMRT}\doc\uganda.nsis.txt" +#LicenseLangString page_lic_file ${LANG_TRADCHINESE} \ +# "${VIMRT}\doc\uganda.nsis.twx" + +############################################################################## +# Translated README.txt file, which is opened after installation {{{1 +############################################################################## + +LangString vim_readme_file 0 "README.txt" +#LangString vim_readme_file ${LANG_TRADCHINESE} "README.twx.txt" + ############################################################################## # MUI Configuration Strings {{{1 ############################################################################## diff --git a/nsis/lang/turkish.nsi b/nsis/lang/turkish.nsi index 1046b8195d..429cbb3d90 100644 --- a/nsis/lang/turkish.nsi +++ b/nsis/lang/turkish.nsi @@ -1,4 +1,9 @@ +# vi:set ts=8 sts=4 sw=4 et fdm=marker: +# # turkish.nsi: Turkish language strings for gvim NSIS installer. +# +# Locale ID : 1055 +# Locale Name : tr # fileencoding : UTF-8 # Author : Emir SARI @@ -11,6 +16,22 @@ LangString ^SetupCaption ${LANG_TURKISH} \ LangString ^UninstallCaption ${LANG_TURKISH} \ "$(^Name) Uninstall" +############################################################################## +# Translated license file for the license page {{{1 +############################################################################## + +LicenseLangString page_lic_file 0 "${VIMRT}\doc\uganda.nsis.txt" +#LicenseLangString page_lic_file ${LANG_TURKISH} "${VIMRT}\doc\uganda.nsis.trx" + +############################################################################## +# Translated README.txt file, which is opened after installation {{{1 +############################################################################## + +LangString vim_readme_file 0 "README.txt" +#LangString vim_readme_file ${LANG_TURKISH} "README.trx.txt" + +############################################################################## + LangString str_show_readme ${LANG_TURKISH} \ "Kurulum bittikten sonra README dosyasını aç" diff --git a/runtime/autoload/context.vim b/runtime/autoload/context.vim index fc59309768..07edd9ae4e 100644 --- a/runtime/autoload/context.vim +++ b/runtime/autoload/context.vim @@ -3,7 +3,7 @@ vim9script # Language: ConTeXt typesetting engine # Maintainer: Nicola Vitacolonna # Former Maintainers: Nikolai Weibull -# Latest Revision: 2022 Sep 19 +# Latest Revision: 2023 Dec 26 # Typesetting {{{ import autoload './typeset.vim' diff --git a/runtime/autoload/dist/ft.vim b/runtime/autoload/dist/ft.vim index 53c56f6b52..05f1611b22 100644 --- a/runtime/autoload/dist/ft.vim +++ b/runtime/autoload/dist/ft.vim @@ -2,15 +2,17 @@ vim9script # Vim functions for file type detection # -# Maintainer: The Vim Project -# Last Change: 2023 Aug 10 +# Maintainer: The Vim Project +# Last Change: 2024 Feb 18 # Former Maintainer: Bram Moolenaar # These functions are moved here from runtime/filetype.vim to make startup # faster. export def Check_inp() - if getline(1) =~ '^\*' + if getline(1) =~ '%%' + setf tex + elseif getline(1) =~ '^\*' setf abaqus else var n = 1 @@ -279,6 +281,23 @@ export def DtraceCheck() endif enddef +export def FTdef() + # LaTeX def files are usually generated by docstrip, which will output '%%' in first line + if getline(1) =~ '%%' + setf tex + endif + if get(g:, "filetype_def", "") == "modula2" || IsModula2() + SetFiletypeModula2() + return + endif + + if exists("g:filetype_def") + exe "setf " .. g:filetype_def + else + setf def + endif +enddef + export def FTe() if exists('g:filetype_euphoria') exe 'setf ' .. g:filetype_euphoria @@ -517,16 +536,53 @@ def IsLProlog(): bool return getline(lnum) =~ '\= 0 + dialect = matches[1] + endif + if index(KNOWN_EXTENSIONS, matches[2]) >= 0 + extension = matches[2] + endif + break + endif + endfor + + modula2#SetDialect(dialect, extension) + + setf modula2 +enddef + # Determine if *.mod is ABB RAPID, LambdaProlog, Modula-2, Modsim III or go.mod export def FTmod() + if get(g:, "filetype_mod", "") == "modula2" || IsModula2() + SetFiletypeModula2() + return + endif + if exists("g:filetype_mod") exe "setf " .. g:filetype_mod elseif expand("") =~ '\ +# Last update: 2023-12-10 +# +# Set of functions to format/beautify JSON data structures. +# +# Could be used to reformat a minified json in a buffer (put it into ~/.vim/ftplugin/json.vim): +# import autoload 'dist/json.vim' +# setl formatexpr=json.FormatExpr() +# +# Or to get a formatted string out of vim's dict/list/string: +# vim9script +# import autoload 'dist/json.vim' +# echo json.Format({ +# "widget": { "debug": "on", "window": { "title": "Sample \"Konfabulator\" Widget", +# "name": "main_window", "width": 500, "height": 500 +# }, +# "image": { "src": "Images/Sun.png", "name": "sun1", "hOffset": 250, +# "vOffset": 250, "alignment": "center" }, +# "text": { "data": "Click Here", "size": 36, "style": "bold", "name": "text1", +# "hOffset": 250, "vOffset": 100, "alignment": "center", +# "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;" } } +# }) +# +# Should output: +# { +# "widget": { +# "debug": "on", +# "window": { +# "title": "Sample \"Konfabulator\" Widget", +# "name": "main_window", +# "width": 500, +# "height": 500 +# }, +# "image": { +# "src": "Images/Sun.png", +# "name": "sun1", +# "hOffset": 250, +# "vOffset": 250, +# "alignment": "center" +# }, +# "text": { +# "data": "Click Here", +# "size": 36, +# "style": "bold", +# "name": "text1", +# "hOffset": 250, +# "vOffset": 100, +# "alignment": "center", +# "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;" +# } +# } +# } +# +# NOTE: order of `key: value` pairs is not kept. +# +# You can also use a JSON string instead of vim's dict/list to maintain order: +# echo json.Format('{"hello": 1, "world": 2}') +# { +# "hello": 1, +# "world": 2 +# } + + +# To be able to reformat with `gq` add following to `~/.vim/ftplugin/json.vim`: +# import autoload 'dist/json.vim' +# setl formatexpr=json.FormatExpr() +export def FormatExpr(): number + FormatRange(v:lnum, v:lnum + v:count - 1) + return 0 +enddef + + +# import autoload 'dist/json.vim' +# command -range=% JSONFormat json.FormatRange(, ) +export def FormatRange(line1: number, line2: number) + var indent_base = matchstr(getline(line1), '^\s*') + var indent = &expandtab ? repeat(' ', &shiftwidth) : "\t" + + var [l1, l2] = line1 > line2 ? [line2, line1] : [line1, line2] + + var json_src = getline(l1, l2)->join() + var json_fmt = Format(json_src, {use_tabs: !&et, indent: &sw, indent_base: indent_base})->split("\n") + + exe $":{l1},{l2}d" + + if line('$') == 1 && getline(1) == '' + setline(l1, json_fmt[0]) + append(l1, json_fmt[1 : ]) + else + append(l1 - 1, json_fmt) + endif +enddef + + +# Format JSON string or dict/list as JSON +# import autoload 'dist/json.vim' +# echo json.Format('{"hello": "world"}', {use_tabs: false, indent: 2, indent_base: 0}) + +# { +# "hello": "world" +# } + +# echo json.Format({'hello': 'world'}, {use_tabs: false, indent: 2, indent_base: 0}) +# { +# "hello": "world" +# } +# +# Note, when `obj` is dict, order of the `key: value` pairs might be different: +# echo json.Format({'hello': 1, 'world': 2}) +# { +# "world": 2, +# "hello": 1 +# } +export def Format(obj: any, params: dict = {}): string + var obj_str = '' + if type(obj) == v:t_string + obj_str = obj + else + obj_str = json_encode(obj) + endif + + var indent_lvl = 0 + var indent_base = get(params, "indent_base", "") + var indent = get(params, "use_tabs", false) ? "\t" : repeat(' ', get(params, "indent", 2)) + var json_line = indent_base + var json = "" + var state = "" + for char in obj_str + if state == "" + if char =~ '[{\[]' + json_line ..= char + json ..= json_line .. "\n" + indent_lvl += 1 + json_line = indent_base .. repeat(indent, indent_lvl) + elseif char =~ '[}\]]' + if json_line !~ '^\s*$' + json ..= json_line .. "\n" + indent_lvl -= 1 + if indent_lvl < 0 + json_line = strpart(indent_base, -indent_lvl * len(indent)) + else + json_line = indent_base .. repeat(indent, indent_lvl) + endif + elseif json =~ '[{\[]\n$' + json = json[ : -2] + json_line = substitute(json_line, '^\s*', '', '') + indent_lvl -= 1 + endif + json_line ..= char + elseif char == ':' + json_line ..= char .. ' ' + elseif char == '"' + json_line ..= char + state = 'QUOTE' + elseif char == ',' + json_line ..= char + json ..= json_line .. "\n" + json_line = indent_base .. repeat(indent, indent_lvl) + elseif char !~ '\s' + json_line ..= char + endif + elseif state == "QUOTE" + json_line ..= char + if char == '\' + state = "ESCAPE" + elseif char == '"' + state = "" + endif + elseif state == "ESCAPE" + state = "QUOTE" + json_line ..= char + else + json_line ..= char + endif + endfor + if json_line !~ '^\s*$' + json ..= json_line .. "\n" + endif + return json +enddef diff --git a/runtime/autoload/dist/man.vim b/runtime/autoload/dist/man.vim index 7f7d137113..708e1062b4 100644 --- a/runtime/autoload/dist/man.vim +++ b/runtime/autoload/dist/man.vim @@ -3,7 +3,7 @@ " Maintainer: Jason Franklin " 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/script.vim b/runtime/autoload/dist/script.vim index 1685093d54..f58899af31 100644 --- a/runtime/autoload/dist/script.vim +++ b/runtime/autoload/dist/script.vim @@ -225,6 +225,10 @@ export def Exe2filetype(name: string, line1: string): string elseif name =~ '^dart\>' return 'dart' + # Execline (s6) + elseif name =~ '^execlineb\>' + return 'execline' + endif return '' diff --git a/runtime/autoload/dist/vimindent.vim b/runtime/autoload/dist/vimindent.vim index a5e04a5391..07b21538e1 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 1b14fe1bd9..1fd4e63025 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/modula2.vim b/runtime/autoload/modula2.vim new file mode 100644 index 0000000000..284dc2768f --- /dev/null +++ b/runtime/autoload/modula2.vim @@ -0,0 +1,31 @@ +" Vim filetype plugin file +" Language: Modula-2 +" Maintainer: Doug Kearns +" Last Change: 2024 Jan 04 + +" Dialect can be one of pim, iso, r10 +function modula2#GetDialect() abort + + if exists("b:modula2.dialect") + return b:modula2.dialect + endif + + if exists("g:modula2_default_dialect") + let dialect = g:modula2_default_dialect + else + let dialect = "pim" + endif + + return dialect +endfunction + +function modula2#SetDialect(dialect, extension = "") abort + if exists("b:modula2") + unlockvar! b:modula2 + endif + + let b:modula2 = #{ dialect: a:dialect, extension: a:extension } + lockvar! b:modula2 +endfunction + +" vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker: diff --git a/runtime/autoload/netrw.vim b/runtime/autoload/netrw.vim index 6536317225..e2152b0dfc 100644 --- a/runtime/autoload/netrw.vim +++ b/runtime/autoload/netrw.vim @@ -1,11 +1,15 @@ " 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 +" 2024 Apr 03 by Vim Project: detect filetypes for remote edited files +" 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, @@ -1800,7 +1804,9 @@ fun! s:NetrwOptionsRestore(vt) " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("")) if !exists("{a:vt}netrw_optionsave") " call Decho("case ".a:vt."netrw_optionsave : doesn't exist",'~'.expand("")) - if filereadable(expand("%")) + + " filereadable() returns zero for remote files (e.g. scp://localhost//etc/fstab) + if filereadable(expand("%")) || expand("%") =~# '^\w\+://\f\+/' " call Decho("..doing filetype detect anyway") filetype detect " call Decho("..settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("")) @@ -2020,7 +2026,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 +2127,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 +2550,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 @@ -2724,7 +2730,7 @@ fun! netrw#NetWrite(...) range let url= g:netrw_choice call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_http_put_cmd." ".s:ShellEscape(tmpfile,1)." ".s:ShellEscape(url,1) ) elseif !exists("g:netrw_quiet") - call netrw#ErrorMsg(s:ERROR,"can't write to http using <".g:netrw_http_put_cmd.">".",16) + call netrw#ErrorMsg(s:ERROR,"can't write to http using <".g:netrw_http_put_cmd.">",16) endif "......................................... @@ -2817,7 +2823,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 +3012,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 +5009,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 @@ -5315,7 +5321,8 @@ fun! s:NetrwBrowseUpDir(islocal) endif call s:RestorePosn(s:netrw_posn) let curdir= substitute(curdir,'^.*[\/]','','') - call search('\<'.curdir.'/','wc') + let curdir= '\<'. escape(curdir, '~'). '/' + call search(curdir,'wc') endif " call Dret("s:NetrwBrowseUpDir") endfun @@ -6126,7 +6133,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()) @@ -6160,7 +6167,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)) @@ -6678,14 +6685,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.'")' @@ -6779,22 +6786,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.'")' @@ -7505,7 +7512,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)) @@ -7861,7 +7868,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 @@ -7875,10 +7882,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) @@ -9477,7 +9480,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("")) @@ -9502,7 +9505,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()) @@ -9515,8 +9517,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()) @@ -10214,7 +10223,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 @@ -10330,7 +10339,7 @@ fun! s:NetrwRemoteFtpCmd(path,listcmd) setl ff=unix " restore settings - let &ff= ffkeep + let &l:ff= ffkeep " call Dret("NetrwRemoteFtpCmd") return @@ -10367,7 +10376,7 @@ fun! s:NetrwRemoteFtpCmd(path,listcmd) endif " restore settings " {{{3 - let &ff= ffkeep + let &l:ff= ffkeep " call Dret("NetrwRemoteFtpCmd") endfun @@ -10380,7 +10389,7 @@ fun! s:NetrwRemoteListing() let w:netrw_bannercnt= s:bannercnt endif if !exists("w:netrw_bannercnt") && exists("b:bannercnt") - let w:netrw_bannercnt= s:bannercnt + let w:netrw_bannercnt= b:bannercnt endif call s:RemotePathAnalysis(b:netrw_curdir) @@ -10671,7 +10680,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("")) @@ -10684,7 +10693,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 @@ -10962,6 +10971,10 @@ fun! s:LocalBrowseRefresh() " call Dret("s:LocalBrowseRefresh : don't refresh when focus not on netrw window") return endif + if !empty(getcmdwintype()) + " cannot move away from cmdline window, see :h E11 + return + endif if exists("s:netrw_events") && s:netrw_events == 1 " s:LocalFastBrowser gets called (indirectly) from a let s:netrw_events= 2 @@ -11188,16 +11201,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 @@ -11274,6 +11287,10 @@ endfun fun! s:NetrwLocalRename(path) range " call Dfunc("NetrwLocalRename(path<".a:path.">)") + if !exists("w:netrw_bannercnt") + let w:netrw_bannercnt= b:netrw_bannercnt + endif + " preparation for removing multiple files/directories let ykeep = @@ let ctr = a:firstline @@ -11375,6 +11392,10 @@ fun! s:NetrwLocalRm(path) range " call Dfunc("s:NetrwLocalRm(path<".a:path.">)") " call Decho("firstline=".a:firstline." lastline=".a:lastline,'~'.expand("")) + if !exists("w:netrw_bannercnt") + let w:netrw_bannercnt= b:netrw_bannercnt + endif + " preparation for removing multiple files/directories let ykeep = @@ let ret = 0 @@ -11574,7 +11595,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 @@ -12209,7 +12230,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 d07235c107..2b6f8f7a0f 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 d65f83144e..5525c0d035 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/racket.vim b/runtime/autoload/racket.vim new file mode 100644 index 0000000000..50c24b0b06 --- /dev/null +++ b/runtime/autoload/racket.vim @@ -0,0 +1,213 @@ +" Maintainer: D. Ben Knoble +" URL: https://github.com/benknoble/vim-racket +" Last Change: 2023 Sep 22 +vim9script + +def MakePatternFromLiterals(xs: list): string + return printf('\V%s', xs->mapnew((_, v) => escape(v, '\'))->join('\|')) +enddef + +const openers = ['(', '[', '{'] +const closers = {'(': ')', '[': ']', '{': '}'} +const brackets_pattern: string = closers->items()->flattennew()->MakePatternFromLiterals() + +# transliterated from a modified copy of src/indent.c + +export def Indent(): number + if InHerestring(v:lnum) + return -1 + endif + # Indent from first column to avoid odd results from nested forms. + cursor(v:lnum, 1) + const bracket = FindBracket() + if bracket == null_dict || !bracket.found + return -1 + endif + + # assert_report(printf('{lnum: %d, str: %s, found: %s, line: %d, column: %d}', + # v:lnum, getline(bracket.line)[bracket.column - 1], bracket.found, bracket.line, bracket.column)) + # N.B. Column =/= Line Index; Columns start at 1 + const amount: number = bracket.column + const line = getline(bracket.line) + + const lw = Lispword(line[bracket.column :]) + if !IsForFold(lw) # skip: see comments about for/fold special case below + # "Extra trick" + var current = prevnonblank(v:lnum - 1) + while current > bracket.line + cursor(current, 1) + if getline(current) !~# '^\s*;' && synID(current, 1, 0)->synIDattr('name') !~? 'string' && FindBracket() == bracket + return indent(current) + endif + current = prevnonblank(current - 1) + endwhile + cursor(v:lnum, 1) + endif + + if index(openers, line[bracket.column - 1]) >= 0 && !empty(lw) + # Special case for/fold &co. The iterator clause (2nd form) is indented + # under the accumulator clause (1st form). Everything else is standard. + const start_of_first_form = match(line[bracket.column :], MakePatternFromLiterals(openers)) + # assert_report(printf('{line: %s}', line)) + # assert_report(printf('{start: %s}', start_of_first_form >= 0 ? line[bracket.column + start_of_first_form :] : '')) + if IsForFold(lw) && IsSecondForm(bracket.line, bracket.column, v:lnum) && start_of_first_form >= 0 + return amount + start_of_first_form + else + # Lispword, but not for/fold second form (or first form couldn't be + # found): indent like define or lambda. + # 2 extra indent, but subtract 1 for columns starting at 1. + # Current vim9 doesn't constant fold "x + 2 - 1", so write "x + 1" + return amount + 1 + endif + else + # assert_report(printf('{line: %s}', line[bracket.column :])) + return amount + IndentForContinuation(bracket.line, bracket.column, line[bracket.column :]) + endif +enddef + +def InHerestring(start: number): bool + return synID(start, col([start, '$']) - 1, 0)->synIDattr('name') =~? 'herestring' +enddef + +def FindBracket(): dict + const paren = FindMatch('(', ')') + const square = FindMatch('\[', ']') + const curly = FindMatch('{', '}') + return null_dict + ->MatchMax(paren) + ->MatchMax(square) + ->MatchMax(curly) +enddef + +def Lispword(line: string): string + # assume keyword on same line as opener + const word: string = matchstr(line, '^\s*\k\+\>')->trim() + # assert_report(printf('line: %s; word: %s', line, word)) + # assert_report(&l:lispwords->split(',')->index(word) >= 0 ? 't' : 'f') + return &l:lispwords->split(',')->index(word) >= 0 ? word : '' +enddef + +# line contains everything on line_nr after column +def IndentForContinuation(line_nr: number, column: number, line: string): number + const end = len(line) + var indent = match(line, '[^[:space:]]') + # first word is a string or some other literal (or maybe a form); assume that + # the current line is outside such a thing + if indent < end && ['"', '#']->index(line[indent]) >= 0 + return indent + endif + if indent < end && ["'", '`']->index(line[indent]) >= 0 + # could be a form or a word. Advance one and see. + ++indent + endif + if indent < end && ['(', '[', '{']->index(line[indent]) >= 0 + # there's a form; assume outside, but need to skip it to see if any others + cursor(line_nr, column + indent + 1) + # assert_report(getline(line_nr)[column + indent :]) + normal! % + const [_, matched_line, matched_col, _, _] = getcursorcharpos() + if line_nr != matched_line || matched_col == column + indent + 1 + return indent + endif + indent = matched_col - column + endif + var in_delim: bool + var quoted: bool + while indent < end && (line[indent] !~# '\s' || in_delim || quoted) + if line[indent] == '\' && !in_delim + quoted = true + else + quoted = false + endif + if line[indent] == '|' && !quoted + in_delim = !in_delim + endif + ++indent + endwhile + # not handling newlines in first words + if quoted || in_delim + return 0 + endif + # no other word on this line + if indent == end + return 0 + endif + # find beginning of next word + indent += match(line[indent :], '[^[:space:]]') + return indent +enddef + +def FindMatch(start: string, end: string): dict + # TODO too slow… + # could try replicating C? might have false positives. Or make "100" + # configurable number: for amounts of indent bodies, we're still fast enough… + const [linenr, column] = searchpairpos(start, '', end, 'bnzW', + () => + synID(line('.'), col('.'), 0)->synIDattr('name') =~? 'char\|string\|comment', + line('.') > 100 ? line('.') - 100 : 0) + if linenr > 0 && column > 0 + return {found: true, line: linenr, column: column} + else + return {found: false, line: linenr, column: column} + endif +enddef + +def MatchMax(left: dict, right: dict): dict + if left == null_dict || !left.found + return right + endif + if right == null_dict || !right.found + return left + endif + # left and right non-null, both found + return PosLT(left, right) ? right : left +enddef + +def PosLT(left: dict, right: dict): bool + return left.line != right.line + \ ? left.line < right.line + \ : (left.column != right.column && left.column < right.column) +enddef + +def IsForFold(word: string): bool + return ['for/fold', 'for/foldr', 'for*/fold', 'for*/foldr']->index(word) >= 0 +enddef + +def IsSecondForm(blnum: number, bcol: number, vlnum: number): bool + var forms_seen: number # "top-level" (inside for/fold) counter only + var [lnum, col] = [blnum, bcol + 1] + cursor(lnum, col) + var stack: list = [] + + while lnum <= vlnum + const found = search(brackets_pattern, '', vlnum, 0, () => + synID(line('.'), col('.'), 0)->synIDattr('name') =~? 'char\|string\|comment') + if found <= 0 + break + endif + const pos = getcursorcharpos() + lnum = pos[1] + col = pos[2] + var current_char = getline(lnum)[col - 1] + # assert_report(printf('search: %d, %d: %s', lnum, col, current_char)) + # assert_report(printf('forms seen post-search: %d', forms_seen)) + if index(openers, current_char) >= 0 + insert(stack, current_char) + elseif !empty(stack) && current_char ==# closers[stack[0]] + stack = stack[1 :] + if empty(stack) + ++forms_seen + endif + else + # parse failure of some kind: not an opener or not the correct closer + return false + endif + # assert_report(printf('forms seen pre-check: %d', forms_seen)) + if forms_seen > 2 + return false + endif + endwhile + + # assert_report(printf('forms seen pre-return: %d', forms_seen)) + return forms_seen == 2 || (forms_seen == 1 && !empty(stack)) +enddef diff --git a/runtime/autoload/rubycomplete.vim b/runtime/autoload/rubycomplete.vim index 3677b25aeb..6ead0fd837 100644 --- a/runtime/autoload/rubycomplete.vim +++ b/runtime/autoload/rubycomplete.vim @@ -2,8 +2,7 @@ " Language: Ruby " Maintainer: Mark Guzman " URL: https://github.com/vim-ruby/vim-ruby -" Release Coordinator: Doug Kearns -" Last Change: 2020 Apr 12 +" Last Change: 2023 Dec 31 " ---------------------------------------------------------------------------- " " Ruby IRB/Complete author: Keiju ISHITSUKA(keiju@ishitsuka.com) @@ -490,7 +489,7 @@ class VimRubyCompletion trail = "%s%s" % [ dir, sub ] tcfg = "%sconfig" % trail - if File.exists?( tcfg ) + if File.exist?( tcfg ) rails_base = trail break end @@ -503,7 +502,7 @@ class VimRubyCompletion bootfile = rails_base + "config/boot.rb" envfile = rails_base + "config/environment.rb" - if File.exists?( bootfile ) && File.exists?( envfile ) + if File.exist?( bootfile ) && File.exist?( envfile ) begin require bootfile require envfile diff --git a/runtime/autoload/tar.vim b/runtime/autoload/tar.vim index adfc10c92b..9c4f16d7f6 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 9c7dcbda0f..774b798a83 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 e61293c357..c0034f8a7a 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 7ac44c868c..f95cf272aa 100644 --- a/runtime/colors/blue.vim +++ b/runtime/colors/blue.vim @@ -4,16 +4,16 @@ " Maintainer: Original maintainer Steven Vertigan " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 02 Sep 2022 09:41:44 MSK +" Last Updated: Mon 08 Jan 2024 09:42:49 AM AEDT -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'blue' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff'] @@ -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 @@ -583,4 +583,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/darkblue.vim b/runtime/colors/darkblue.vim index 140e7d47c9..b792b90fb2 100644 --- a/runtime/colors/darkblue.vim +++ b/runtime/colors/darkblue.vim @@ -4,16 +4,16 @@ " Maintainer: Original author Bohdan Vlasyuk " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 02 Sep 2022 09:40:36 MSK +" Last Updated: Mon 08 Jan 2024 09:43:03 AM AEDT -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'darkblue' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#000000', '#8b0000', '#90f020', '#ffa500', '#00008b', '#8b008b', '#008b8b', '#c0c0c0', '#808080', '#ffa0a0', '#90f020', '#ffff60', '#0030ff', '#ff00ff', '#90fff0', '#ffffff'] @@ -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 @@ -467,4 +467,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/delek.vim b/runtime/colors/delek.vim index 9543b568f6..16de514b57 100644 --- a/runtime/colors/delek.vim +++ b/runtime/colors/delek.vim @@ -4,16 +4,16 @@ " Maintainer: Original maintainer David Schweikert " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Sun 04 Sep 2022 09:31:26 MSK +" Last Updated: Fri 15 Dec 2023 20:05:34 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=light hi clear let g:colors_name = 'delek' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#ffffff', '#0000ff', '#00cd00', '#cd00cd', '#008b8b', '#0000ff', '#ff1493', '#bcbcbc', '#ee0000', '#0000ff', '#00cd00', '#cd00cd', '#008b8b', '#0000ff', '#ff1493', '#000000'] @@ -408,4 +408,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/desert.vim b/runtime/colors/desert.vim index 41ed976fa4..e639653da2 100644 --- a/runtime/colors/desert.vim +++ b/runtime/colors/desert.vim @@ -4,16 +4,16 @@ " Maintainer: Original maintainer Hans Fugal " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 02 Sep 2022 09:39:21 MSK +" Last Updated: Fri 15 Dec 2023 20:05:34 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'desert' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#7f7f8c', '#cd5c5c', '#9acd32', '#bdb76b', '#75a0ff', '#eeee00', '#cd853f', '#666666', '#8a7f7f', '#ff0000', '#89fb98', '#f0e68c', '#6dceeb', '#ffde9b', '#ffa0a0', '#c2bfa5'] @@ -397,4 +397,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/elflord.vim b/runtime/colors/elflord.vim index e9efd3de59..3a72dfb46c 100644 --- a/runtime/colors/elflord.vim +++ b/runtime/colors/elflord.vim @@ -3,16 +3,16 @@ " Maintainer: original maintainer Ron Aaron " Website: https://www.github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 02 Sep 2022 09:44:22 MSK +" Last Updated: Fri 15 Dec 2023 20:05:35 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'elflord' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) hi! link Terminal Normal hi! link Boolean Constant @@ -446,4 +446,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/evening.vim b/runtime/colors/evening.vim index be6c43ff34..2753daa440 100644 --- a/runtime/colors/evening.vim +++ b/runtime/colors/evening.vim @@ -4,16 +4,16 @@ " Maintainer: Original maintainer Steven Vertigan " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Sun 04 Sep 2022 09:48:34 MSK +" Last Updated: Mon 08 Jan 2024 09:43:27 AM AEDT -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'evening' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0087ff', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff'] @@ -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 @@ -528,4 +528,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/habamax.vim b/runtime/colors/habamax.vim index 77a2f566a2..f32a5494ac 100644 --- a/runtime/colors/habamax.vim +++ b/runtime/colors/habamax.vim @@ -4,16 +4,16 @@ " Maintainer: Maxim Kim " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 24 Mar 2023 20:28:06 AEDT +" Last Updated: Mon 08 Jan 2024 09:39:53 AM AEDT -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'habamax' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#1c1c1c', '#d75f5f', '#87af87', '#afaf87', '#5f87af', '#af87af', '#5f8787', '#9e9e9e', '#767676', '#d7875f', '#afd7af', '#d7d787', '#87afd7', '#d7afd7', '#87afaf', '#bcbcbc'] @@ -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 @@ -465,4 +469,4 @@ endif " Color: white #dadada 253 white " Term colors: color00 color01 color02 color03 color04 color05 color06 color07 " Term colors: color08 color09 color10 color11 color12 color13 color14 color15 -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/industry.vim b/runtime/colors/industry.vim index 0946fe996b..dd40f34cf4 100644 --- a/runtime/colors/industry.vim +++ b/runtime/colors/industry.vim @@ -4,16 +4,16 @@ " Maintainer: Original maintainer Shian Lee. " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Sun 04 Sep 2022 09:50:04 MSK +" Last Updated: Fri 15 Dec 2023 20:05:36 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'industry' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#303030', '#870000', '#5fd75f', '#afaf00', '#87afff', '#af00af', '#00afaf', '#6c6c6c', '#444444', '#ff0000', '#00ff00', '#ffff00', '#005fff', '#ff00ff', '#00ffff', '#ffffff'] @@ -409,4 +409,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/koehler.vim b/runtime/colors/koehler.vim index 2505e8ec47..71858f0507 100644 --- a/runtime/colors/koehler.vim +++ b/runtime/colors/koehler.vim @@ -3,16 +3,16 @@ " Maintainer: original maintainer Ron Aaron " Website: https://www.github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 02 Sep 2022 09:23:56 MSK +" Last Updated: Fri 15 Dec 2023 20:05:36 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'koehler' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) hi! link Terminal Normal hi! link Boolean Constant @@ -423,4 +423,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/lists/csscolors.vim b/runtime/colors/lists/csscolors.vim index 74955226c2..986333d779 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 7d81c6f75e..c8df0c9167 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 94a3863236..3546710a3d 100644 --- a/runtime/colors/lunaperche.vim +++ b/runtime/colors/lunaperche.vim @@ -4,20 +4,36 @@ " Maintainer: Maxim Kim " Website: https://www.github.com/vim/colorschemes " License: Vim License (see `:help license`) -" Last Updated: Sun 26 Mar 2023 23:04:18 AEDT +" Last Updated: Mon 08 Jan 2024 09:41:03 AM AEDT -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 hi clear let g:colors_name = 'lunaperche' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) hi! link helpVim Title hi! link helpHeader Title hi! link helpHyperTextJump Underlined +hi! link fugitiveSymbolicRef PreProc +hi! link fugitiveHeading Statement +hi! link fugitiveStagedHeading Statement +hi! link fugitiveUnstagedHeading Statement +hi! link fugitiveUntrackedHeading Statement +hi! link fugitiveStagedModifier PreProc +hi! link fugitiveUnstagedModifier PreProc +hi! link fugitiveHash Constant hi! link diffFile PreProc hi! link markdownHeadingDelimiter Special +hi! link rstSectionDelimiter Statement +hi! link rstDirective PreProc +hi! link rstHyperlinkReference Special +hi! link rstFieldName Constant +hi! link rstDelimiter Special +hi! link rstInterpretedText Special +hi! link rstCodeBlock Normal +hi! link rstLiteralBlock rstCodeBlock hi! link markdownUrl String hi! link colortemplateKey Statement hi! link xmlTagName Statement @@ -118,10 +134,10 @@ if &background ==# 'dark' hi WildMenu guifg=#000000 guibg=#ffd787 gui=bold cterm=bold hi debugPC guifg=#5f87af guibg=NONE gui=reverse cterm=reverse hi debugBreakpoint guifg=#5fafaf guibg=NONE gui=reverse cterm=reverse - hi Cursor guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse + hi Cursor guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE hi lCursor guifg=#ff5fff guibg=#000000 gui=reverse cterm=reverse hi Visual guifg=#ffffff guibg=#005f87 gui=NONE cterm=NONE - hi MatchParen guifg=#c5e7c5 guibg=#000000 gui=reverse cterm=reverse + hi MatchParen guifg=#ff00af guibg=NONE gui=bold cterm=bold hi VisualNOS guifg=#000000 guibg=#5fafaf gui=NONE cterm=NONE hi CursorLine guifg=NONE guibg=#262626 gui=NONE cterm=NONE hi CursorColumn guifg=NONE guibg=#262626 gui=NONE cterm=NONE @@ -148,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 @@ -208,10 +225,10 @@ else hi WildMenu guifg=#000000 guibg=#ffd787 gui=bold cterm=bold hi debugPC guifg=#005fd7 guibg=NONE gui=reverse cterm=reverse hi debugBreakpoint guifg=#005f5f guibg=NONE gui=reverse cterm=reverse - hi Cursor guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse + hi Cursor guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE hi lCursor guifg=#ff00ff guibg=#000000 gui=reverse cterm=reverse hi Visual guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE - hi MatchParen guifg=NONE guibg=#c5e7c5 gui=NONE cterm=NONE + hi MatchParen guifg=#ff00af guibg=NONE gui=bold cterm=bold hi VisualNOS guifg=#ffffff guibg=#008787 gui=NONE cterm=NONE hi CursorLine guifg=NONE guibg=#eeeeee gui=NONE cterm=NONE hi CursorColumn guifg=NONE guibg=#eeeeee gui=NONE cterm=NONE @@ -238,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 @@ -262,8 +280,24 @@ if s:t_Co >= 256 hi! link helpVim Title hi! link helpHeader Title hi! link helpHyperTextJump Underlined + hi! link fugitiveSymbolicRef PreProc + hi! link fugitiveHeading Statement + hi! link fugitiveStagedHeading Statement + hi! link fugitiveUnstagedHeading Statement + hi! link fugitiveUntrackedHeading Statement + hi! link fugitiveStagedModifier PreProc + hi! link fugitiveUnstagedModifier PreProc + hi! link fugitiveHash Constant hi! link diffFile PreProc hi! link markdownHeadingDelimiter Special + hi! link rstSectionDelimiter Statement + hi! link rstDirective PreProc + hi! link rstHyperlinkReference Special + hi! link rstFieldName Constant + hi! link rstDelimiter Special + hi! link rstInterpretedText Special + hi! link rstCodeBlock Normal + hi! link rstLiteralBlock rstCodeBlock hi! link markdownUrl String hi! link colortemplateKey Statement hi! link xmlTagName Statement @@ -362,7 +396,7 @@ if s:t_Co >= 256 hi debugPC ctermfg=67 ctermbg=NONE cterm=reverse hi debugBreakpoint ctermfg=73 ctermbg=NONE cterm=reverse hi Visual ctermfg=231 ctermbg=24 cterm=NONE - hi MatchParen ctermfg=30 ctermbg=16 cterm=reverse + hi MatchParen ctermfg=199 ctermbg=NONE cterm=bold hi VisualNOS ctermfg=16 ctermbg=73 cterm=NONE hi CursorLine ctermfg=NONE ctermbg=235 cterm=NONE hi CursorColumn ctermfg=NONE ctermbg=235 cterm=NONE @@ -389,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 @@ -447,7 +482,7 @@ if s:t_Co >= 256 hi debugPC ctermfg=26 ctermbg=NONE cterm=reverse hi debugBreakpoint ctermfg=23 ctermbg=NONE cterm=reverse hi Visual ctermfg=231 ctermbg=67 cterm=NONE - hi MatchParen ctermfg=30 ctermbg=231 cterm=reverse + hi MatchParen ctermfg=199 ctermbg=NONE cterm=bold hi VisualNOS ctermfg=231 ctermbg=30 cterm=NONE hi CursorLine ctermfg=NONE ctermbg=255 cterm=NONE hi CursorColumn ctermfg=NONE ctermbg=255 cterm=NONE @@ -474,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 @@ -537,8 +573,7 @@ if s:t_Co >= 16 hi WildMenu ctermfg=black ctermbg=yellow cterm=bold hi debugPC ctermfg=darkblue ctermbg=NONE cterm=reverse hi debugBreakpoint ctermfg=darkcyan ctermbg=NONE cterm=reverse - hi Visual ctermfg=white ctermbg=darkblue cterm=NONE - hi MatchParen ctermfg=darkcyan ctermbg=black cterm=reverse + hi MatchParen ctermfg=NONE ctermbg=NONE cterm=bold,underline hi VisualNOS ctermfg=black ctermbg=darkcyan cterm=NONE hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline hi CursorColumn ctermfg=black ctermbg=yellow cterm=NONE @@ -565,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 @@ -623,7 +659,7 @@ if s:t_Co >= 16 hi debugPC ctermfg=darkblue ctermbg=NONE cterm=reverse hi debugBreakpoint ctermfg=darkcyan ctermbg=NONE cterm=reverse hi Visual ctermfg=white ctermbg=darkblue cterm=NONE - hi MatchParen ctermfg=darkcyan ctermbg=white cterm=reverse + hi MatchParen ctermfg=NONE ctermbg=NONE cterm=bold,underline hi VisualNOS ctermfg=black ctermbg=cyan cterm=NONE hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline hi CursorColumn ctermfg=black ctermbg=yellow cterm=NONE @@ -650,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 @@ -714,7 +751,7 @@ if s:t_Co >= 8 hi debugPC ctermfg=darkblue ctermbg=NONE cterm=reverse hi debugBreakpoint ctermfg=darkcyan ctermbg=NONE cterm=reverse hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse - hi MatchParen ctermfg=darkcyan ctermbg=black cterm=reverse + hi MatchParen ctermfg=magenta ctermbg=NONE cterm=bold hi VisualNOS ctermfg=black ctermbg=darkcyan cterm=NONE hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline hi CursorColumn ctermfg=black ctermbg=darkyellow cterm=NONE @@ -781,7 +818,7 @@ if s:t_Co >= 8 hi debugPC ctermfg=darkblue ctermbg=NONE cterm=reverse hi debugBreakpoint ctermfg=darkcyan ctermbg=NONE cterm=reverse hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse - hi MatchParen ctermfg=darkcyan ctermbg=grey cterm=reverse + hi MatchParen ctermfg=magenta ctermbg=NONE cterm=bold hi VisualNOS ctermfg=black ctermbg=darkcyan cterm=NONE hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline hi CursorColumn ctermfg=black ctermbg=darkyellow cterm=NONE @@ -906,7 +943,7 @@ endif " Color: colorC #FFFFFF 231 white " Color: colorlC #FF5FFF 207 magenta " Color: colorV #005F87 24 darkblue -" Color: colorMP #C5E7C5 30 darkcyan +" Color: colorMP #ff00af 199 magenta " Color: colorPMenuSel #4e4e4e 239 darkcyan " Color: colorDim #878787 102 grey " Color: diffAdd #875f87 96 darkmagenta @@ -941,7 +978,7 @@ endif " Color: colorC #000000 16 black " Color: colorlC #FF00FF 201 magenta " Color: colorV #5F87AF 67 darkblue -" Color: colorMP #C5E7C5 30 darkcyan +" Color: colorMP #ff00af 199 magenta " Color: colorPMenuSel #C6C6C6 251 darkcyan " Color: colorDim #626262 241 darkgrey " Color: diffAdd #D7AFD7 182 darkmagenta @@ -952,4 +989,4 @@ endif " Term colors: color00 color01 color02 color03 color04 color05 color06 color07 " Term colors: color08 color09 color10 color11 color12 color13 color14 color15 " Background: any -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/morning.vim b/runtime/colors/morning.vim index f1ac73fe3d..1644b04df8 100644 --- a/runtime/colors/morning.vim +++ b/runtime/colors/morning.vim @@ -4,16 +4,16 @@ " Maintainer: Original maintainer Bram Moolenaar " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 02 Sep 2022 09:46:24 MSK +" Last Updated: Fri 15 Dec 2023 20:05:37 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=light hi clear let g:colors_name = 'morning' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#e4e4e4', '#a52a2a', '#ff00ff', '#6a0dad', '#008787', '#2e8b57', '#6a5acd', '#bcbcbc', '#0000ff', '#a52a2a', '#ff00ff', '#6a0dad', '#008787', '#2e8b57', '#6a5acd', '#000000'] @@ -400,4 +400,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/murphy.vim b/runtime/colors/murphy.vim index 3dcff2c3c0..a6a08ed41a 100644 --- a/runtime/colors/murphy.vim +++ b/runtime/colors/murphy.vim @@ -4,16 +4,16 @@ " Maintainer: Original maintainer Ron Aaron . " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 02 Sep 2022 09:47:20 MSK +" Last Updated: Mon 08 Jan 2024 09:50:15 AM AEDT -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'murphy' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#303030', '#ffa700', '#005f00', '#ffd7af', '#87afff', '#ffafaf', '#00afaf', '#bcbcbc', '#444444', '#ff0000', '#00875f', '#ffff00', '#005fff', '#ff00ff', '#00ffff', '#ffffff'] @@ -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 @@ -394,4 +396,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/pablo.vim b/runtime/colors/pablo.vim index 17e3d7764f..bd5693ec8b 100644 --- a/runtime/colors/pablo.vim +++ b/runtime/colors/pablo.vim @@ -3,16 +3,16 @@ " Maintainer: Original maintainerRon Aaron " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Wed 14 Sep 2022 19:05:27 MSK +" Last Updated: Fri 15 Dec 2023 20:05:38 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'pablo' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff'] @@ -427,4 +427,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/peachpuff.vim b/runtime/colors/peachpuff.vim index 0622ce6f87..392945a375 100644 --- a/runtime/colors/peachpuff.vim +++ b/runtime/colors/peachpuff.vim @@ -4,16 +4,16 @@ " Maintainer: Original maintainer David Ne\v{c}as (Yeti) " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 02 Sep 2022 09:50:02 MSK +" Last Updated: Fri 15 Dec 2023 20:05:39 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=light hi clear let g:colors_name = 'peachpuff' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#ffdab9', '#a52a2a', '#c00058', '#cd00cd', '#008b8b', '#2e8b57', '#6a5acd', '#737373', '#406090', '#a52a2a', '#c00058', '#cd00cd', '#008b8b', '#2e8b57', '#6a5acd', '#000000'] @@ -405,4 +405,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/quiet.vim b/runtime/colors/quiet.vim index fc30b165f3..1a8603a8a0 100644 --- a/runtime/colors/quiet.vim +++ b/runtime/colors/quiet.vim @@ -4,14 +4,14 @@ " Maintainer: Maxence Weynans " Website: https://github.com/vim/colorschemes " License: Vim License (see `:help license`)` -" Last Updated: Wed 15 Mar 2023 06:45:06 PM CET +" Last Updated: Fri 15 Dec 2023 20:05:39 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 hi clear let g:colors_name = 'quiet' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) hi! link Terminal Normal hi! link StatusLineTerm StatusLine @@ -742,4 +742,4 @@ endif " Term colors: light0 light1 light2 light3 light4 light5 light6 light7 " Term colors: light8 light9 light10 light11 light12 light13 light14 light15 " Background: any -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/retrobox.vim b/runtime/colors/retrobox.vim index 2295ae7936..46d269f983 100644 --- a/runtime/colors/retrobox.vim +++ b/runtime/colors/retrobox.vim @@ -4,14 +4,14 @@ " Maintainer: Maxim Kim , ported from gruvbox8 of Lifepillar " Website: https://www.github.com/vim/colorschemes " License: Vim License (see `:help license`) -" Last Updated: Sun 12 Mar 2023 15:14:04 AEDT +" Last Updated: Fri 15 Dec 2023 20:05:40 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 hi clear let g:colors_name = 'retrobox' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) hi! link CursorColumn CursorLine hi! link StatusLineTerm StatusLine @@ -61,7 +61,7 @@ if &background ==# 'dark' hi WildMenu guifg=#83a598 guibg=#504945 gui=bold cterm=bold hi EndOfBuffer guifg=#504945 guibg=NONE gui=NONE cterm=NONE hi Conceal guifg=#83a598 guibg=NONE gui=NONE cterm=NONE - hi Cursor guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse + hi Cursor guifg=#1c1c1c guibg=#fbf1c7 gui=NONE cterm=NONE hi DiffAdd guifg=#b8bb26 guibg=#1c1c1c gui=reverse cterm=reverse hi DiffChange guifg=#8ec07c guibg=#1c1c1c gui=reverse cterm=reverse hi DiffDelete guifg=#fb4934 guibg=#1c1c1c gui=reverse cterm=reverse @@ -112,7 +112,7 @@ if &background ==# 'dark' hi Type guifg=#fabd2f guibg=NONE gui=NONE cterm=NONE hi Typedef guifg=#fabd2f guibg=NONE gui=NONE cterm=NONE hi Underlined guifg=#83a598 guibg=NONE gui=underline cterm=underline - hi CursorIM guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse + hi CursorIM guifg=#1c1c1c guibg=#fbf1c7 gui=NONE cterm=NONE else " Light background if (has('termguicolors') && &termguicolors) || has('gui_running') @@ -152,7 +152,7 @@ else hi WildMenu guifg=#076678 guibg=#e5d4b1 gui=bold cterm=bold hi EndOfBuffer guifg=#e5d4b1 guibg=NONE gui=NONE cterm=NONE hi Conceal guifg=#076678 guibg=NONE gui=NONE cterm=NONE - hi Cursor guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse + hi Cursor guifg=#fbf1c7 guibg=#282828 gui=NONE cterm=NONE hi DiffAdd guifg=#79740e guibg=#fbf1c7 gui=reverse cterm=reverse hi DiffChange guifg=#427b58 guibg=#fbf1c7 gui=reverse cterm=reverse hi DiffDelete guifg=#9d0006 guibg=#fbf1c7 gui=reverse cterm=reverse @@ -203,7 +203,7 @@ else hi Type guifg=#b57614 guibg=NONE gui=NONE cterm=NONE hi Typedef guifg=#b57614 guibg=NONE gui=NONE cterm=NONE hi Underlined guifg=#076678 guibg=NONE gui=underline cterm=underline - hi CursorIM guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse + hi CursorIM guifg=#fbf1c7 guibg=#282828 gui=NONE cterm=NONE endif if s:t_Co >= 256 @@ -242,7 +242,7 @@ if s:t_Co >= 256 hi WildMenu ctermfg=109 ctermbg=239 cterm=bold hi EndOfBuffer ctermfg=239 ctermbg=NONE cterm=NONE hi Conceal ctermfg=109 ctermbg=NONE cterm=NONE - hi Cursor ctermfg=NONE ctermbg=NONE cterm=reverse + hi Cursor ctermfg=234 ctermbg=230 cterm=NONE hi DiffAdd ctermfg=142 ctermbg=234 cterm=reverse hi DiffChange ctermfg=107 ctermbg=234 cterm=reverse hi DiffDelete ctermfg=203 ctermbg=234 cterm=reverse @@ -293,7 +293,7 @@ if s:t_Co >= 256 hi Type ctermfg=214 ctermbg=NONE cterm=NONE hi Typedef ctermfg=214 ctermbg=NONE cterm=NONE hi Underlined ctermfg=109 ctermbg=NONE cterm=underline - hi CursorIM ctermfg=NONE ctermbg=NONE cterm=reverse + hi CursorIM ctermfg=234 ctermbg=230 cterm=NONE else " Light background hi Normal ctermfg=237 ctermbg=230 cterm=NONE @@ -330,7 +330,7 @@ if s:t_Co >= 256 hi WildMenu ctermfg=23 ctermbg=188 cterm=bold hi EndOfBuffer ctermfg=188 ctermbg=NONE cterm=NONE hi Conceal ctermfg=23 ctermbg=NONE cterm=NONE - hi Cursor ctermfg=NONE ctermbg=NONE cterm=reverse + hi Cursor ctermfg=230 ctermbg=235 cterm=NONE hi DiffAdd ctermfg=64 ctermbg=230 cterm=reverse hi DiffChange ctermfg=29 ctermbg=230 cterm=reverse hi DiffDelete ctermfg=124 ctermbg=230 cterm=reverse @@ -381,7 +381,7 @@ if s:t_Co >= 256 hi Type ctermfg=172 ctermbg=NONE cterm=NONE hi Typedef ctermfg=172 ctermbg=NONE cterm=NONE hi Underlined ctermfg=23 ctermbg=NONE cterm=underline - hi CursorIM ctermfg=NONE ctermbg=NONE cterm=reverse + hi CursorIM ctermfg=230 ctermbg=235 cterm=NONE endif unlet s:t_Co finish @@ -423,7 +423,7 @@ if s:t_Co >= 16 hi WildMenu ctermfg=White ctermbg=Black cterm=bold hi EndOfBuffer ctermfg=DarkGray ctermbg=NONE cterm=NONE hi Conceal ctermfg=Blue ctermbg=NONE cterm=NONE - hi Cursor ctermfg=NONE ctermbg=NONE cterm=reverse + hi Cursor ctermfg=Black ctermbg=White cterm=NONE hi DiffAdd ctermfg=Green ctermbg=Black cterm=reverse hi DiffChange ctermfg=Cyan ctermbg=Black cterm=reverse hi DiffDelete ctermfg=Red ctermbg=Black cterm=reverse @@ -474,7 +474,7 @@ if s:t_Co >= 16 hi Type ctermfg=Yellow ctermbg=NONE cterm=NONE hi Typedef ctermfg=Yellow ctermbg=NONE cterm=NONE hi Underlined ctermfg=Blue ctermbg=NONE cterm=underline - hi CursorIM ctermfg=NONE ctermbg=NONE cterm=reverse + hi CursorIM ctermfg=Black ctermbg=White cterm=NONE else " Light background hi Normal ctermfg=Black ctermbg=White cterm=NONE @@ -511,7 +511,7 @@ if s:t_Co >= 16 hi WildMenu ctermfg=Black ctermbg=White cterm=bold hi EndOfBuffer ctermfg=Grey ctermbg=NONE cterm=NONE hi Conceal ctermfg=Blue ctermbg=NONE cterm=NONE - hi Cursor ctermfg=NONE ctermbg=NONE cterm=reverse + hi Cursor ctermfg=White ctermbg=DarkGray cterm=NONE hi DiffAdd ctermfg=Green ctermbg=White cterm=reverse hi DiffChange ctermfg=Cyan ctermbg=White cterm=reverse hi DiffDelete ctermfg=Red ctermbg=White cterm=reverse @@ -562,7 +562,7 @@ if s:t_Co >= 16 hi Type ctermfg=Yellow ctermbg=NONE cterm=NONE hi Typedef ctermfg=Yellow ctermbg=NONE cterm=NONE hi Underlined ctermfg=Blue ctermbg=NONE cterm=underline - hi CursorIM ctermfg=NONE ctermbg=NONE cterm=reverse + hi CursorIM ctermfg=White ctermbg=DarkGray cterm=NONE endif unlet s:t_Co finish @@ -604,7 +604,7 @@ if s:t_Co >= 8 hi WildMenu ctermfg=Blue ctermbg=DarkGray cterm=bold hi EndOfBuffer ctermfg=NONE ctermbg=NONE cterm=NONE hi Conceal ctermfg=Blue ctermbg=NONE cterm=NONE - hi Cursor ctermfg=NONE ctermbg=NONE cterm=reverse + hi Cursor ctermfg=Black ctermbg=White cterm=NONE hi DiffAdd ctermfg=Green ctermbg=Black cterm=reverse hi DiffChange ctermfg=Cyan ctermbg=Black cterm=reverse hi DiffDelete ctermfg=Red ctermbg=Black cterm=reverse @@ -655,7 +655,7 @@ if s:t_Co >= 8 hi Type ctermfg=Yellow ctermbg=NONE cterm=NONE hi Typedef ctermfg=Yellow ctermbg=NONE cterm=NONE hi Underlined ctermfg=Blue ctermbg=NONE cterm=underline - hi CursorIM ctermfg=NONE ctermbg=NONE cterm=reverse + hi CursorIM ctermfg=Black ctermbg=White cterm=NONE else " Light background hi Normal ctermfg=Black ctermbg=Grey cterm=NONE @@ -692,7 +692,7 @@ if s:t_Co >= 8 hi WildMenu ctermfg=Blue ctermbg=Grey cterm=bold hi EndOfBuffer ctermfg=NONE ctermbg=NONE cterm=NONE hi Conceal ctermfg=Blue ctermbg=NONE cterm=NONE - hi Cursor ctermfg=NONE ctermbg=NONE cterm=reverse + hi Cursor ctermfg=White ctermbg=DarkGray cterm=NONE hi DiffAdd ctermfg=Green ctermbg=White cterm=reverse hi DiffChange ctermfg=Cyan ctermbg=White cterm=reverse hi DiffDelete ctermfg=Red ctermbg=White cterm=reverse @@ -743,7 +743,7 @@ if s:t_Co >= 8 hi Type ctermfg=Yellow ctermbg=NONE cterm=NONE hi Typedef ctermfg=Yellow ctermbg=NONE cterm=NONE hi Underlined ctermfg=Blue ctermbg=NONE cterm=underline - hi CursorIM ctermfg=NONE ctermbg=NONE cterm=reverse + hi CursorIM ctermfg=White ctermbg=DarkGray cterm=NONE endif unlet s:t_Co finish @@ -871,4 +871,4 @@ endif " Term colors: fg1 neutralred neutralgreen neutralyellow neutralblue neutralpurple neutralaqua fg4 " Term colors: grey red green yellow blue purple aqua bg0 " Background: any -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/ron.vim b/runtime/colors/ron.vim index a7302a44eb..684b485067 100644 --- a/runtime/colors/ron.vim +++ b/runtime/colors/ron.vim @@ -3,16 +3,16 @@ " Maintainer: original maintainer Ron Aaron " Website: https://www.github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 02 Sep 2022 09:50:56 MSK +" Last Updated: Fri 15 Dec 2023 20:05:41 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'ron' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) hi! link Terminal Normal hi! link Boolean Constant @@ -441,4 +441,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/shine.vim b/runtime/colors/shine.vim index fe1ee15203..ec7da8cb17 100644 --- a/runtime/colors/shine.vim +++ b/runtime/colors/shine.vim @@ -4,16 +4,16 @@ " Maintainer: Original maintainer is Yasuhiro Matsumoto " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 02 Sep 2022 09:51:42 MSK +" Last Updated: Fri 15 Dec 2023 20:05:41 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=light hi clear let g:colors_name = 'shine' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#000000', '#8b0000', '#006400', '#ffff00', '#00008b', '#6a0dad', '#008b8b', '#dadada', '#767676', '#ffafaf', '#90ee90', '#ffff60', '#add8e6', '#ff00ff', '#00ffff', '#ffffff'] @@ -413,4 +413,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/slate.vim b/runtime/colors/slate.vim index 8c43fb6ed6..d58d07850d 100644 --- a/runtime/colors/slate.vim +++ b/runtime/colors/slate.vim @@ -4,16 +4,16 @@ " Maintainer: Original maintainer Ralph Amissah " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 02 Sep 2022 09:52:25 MSK +" Last Updated: Fri 15 Dec 2023 20:05:41 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'slate' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff'] @@ -428,4 +428,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/sorbet.vim b/runtime/colors/sorbet.vim index 6b73c27087..a762dfb613 100644 --- a/runtime/colors/sorbet.vim +++ b/runtime/colors/sorbet.vim @@ -4,16 +4,16 @@ " Maintainer: Maxence Weynans " Website: https://github.com/vim/colorschemes " License: Vim License (see `:help license`)` -" Last Updated: Wed 15 Mar 2023 05:40:19 PM CET +" Last Updated: Fri 15 Dec 2023 20:05:42 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'sorbet' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) hi! link Terminal Normal hi! link StatusLineTerm StatusLine @@ -441,4 +441,4 @@ endif " Color: errorred #ff5f5f 203 red " Term colors: dark0 dark1 dark2 dark3 dark4 dark5 dark6 dark7 " Term colors: dark8 dark9 dark10 dark11 dark12 dark13 dark14 dark15 -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/torte.vim b/runtime/colors/torte.vim index 7ea5a69196..2ad17b05b0 100644 --- a/runtime/colors/torte.vim +++ b/runtime/colors/torte.vim @@ -4,16 +4,16 @@ " Maintainer: Original maintainer Thorsten Maerz " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 02 Sep 2022 09:53:21 MSK +" Last Updated: Fri 15 Dec 2023 20:05:42 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'torte' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff'] @@ -420,4 +420,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/wildcharm.vim b/runtime/colors/wildcharm.vim index 900e948a94..ee1f37625c 100644 --- a/runtime/colors/wildcharm.vim +++ b/runtime/colors/wildcharm.vim @@ -4,14 +4,14 @@ " Maintainer: Maxim Kim " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Sun 12 Mar 2023 18:46:06 AEDT +" Last Updated: Mon 08 Jan 2024 09:40:36 AM AEDT -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 hi clear let g:colors_name = 'wildcharm' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) hi! link Terminal Normal hi! link StatuslineTerm Statusline @@ -51,8 +51,8 @@ if &background ==# 'dark' hi PmenuExtra guifg=#767676 guibg=#303030 gui=NONE cterm=NONE hi PmenuExtraSel guifg=#000000 guibg=#ffaf00 gui=NONE cterm=NONE hi SignColumn guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE - hi Error guifg=#ffffff guibg=#d7005f gui=NONE cterm=NONE - hi ErrorMsg guifg=#ffffff guibg=#d7005f gui=NONE cterm=NONE + hi Error guifg=#d7005f guibg=#ffffff gui=reverse cterm=reverse + hi ErrorMsg guifg=#d7005f guibg=#ffffff gui=reverse cterm=reverse hi ModeMsg guifg=NONE guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=bold hi MoreMsg guifg=#00d75f guibg=NONE gui=NONE cterm=NONE hi Question guifg=#ff87ff guibg=NONE gui=NONE cterm=NONE @@ -63,9 +63,9 @@ if &background ==# 'dark' hi WildMenu guifg=#000000 guibg=#ffaf00 gui=NONE cterm=NONE hi debugPC guifg=#0087d7 guibg=NONE gui=reverse cterm=reverse hi debugBreakpoint guifg=#00afaf guibg=NONE gui=reverse cterm=reverse - hi Cursor guifg=#ffffff guibg=#000000 gui=reverse cterm=reverse - hi lCursor guifg=#ff5fff guibg=#000000 gui=reverse cterm=reverse - hi Visual guifg=#000000 guibg=#0087d7 gui=NONE cterm=NONE + hi Cursor guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE + hi lCursor guifg=#000000 guibg=#ff5fff gui=NONE cterm=NONE + hi Visual guifg=#0087d7 guibg=#000000 gui=reverse cterm=reverse hi VisualNOS guifg=#000000 guibg=#00afff gui=NONE cterm=NONE hi CursorLine guifg=NONE guibg=#262626 gui=NONE cterm=NONE hi CursorColumn guifg=NONE guibg=#262626 gui=NONE cterm=NONE @@ -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') @@ -125,8 +126,8 @@ else hi PmenuExtra guifg=#808080 guibg=#e4e4e4 gui=NONE cterm=NONE hi PmenuExtraSel guifg=#ffffff guibg=#d78700 gui=NONE cterm=NONE hi SignColumn guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE - hi Error guifg=#ffffff guibg=#d70000 gui=NONE cterm=NONE - hi ErrorMsg guifg=#ffffff guibg=#d70000 gui=NONE cterm=NONE + hi Error guifg=#d70000 guibg=#ffffff gui=reverse cterm=reverse + hi ErrorMsg guifg=#d70000 guibg=#ffffff gui=reverse cterm=reverse hi ModeMsg guifg=NONE guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=bold hi MoreMsg guifg=#008700 guibg=NONE gui=NONE cterm=NONE hi Question guifg=#870087 guibg=NONE gui=NONE cterm=NONE @@ -137,9 +138,9 @@ else hi WildMenu guifg=#ffffff guibg=#d78700 gui=NONE cterm=NONE hi debugPC guifg=#005faf guibg=NONE gui=reverse cterm=reverse hi debugBreakpoint guifg=#008787 guibg=NONE gui=reverse cterm=reverse - hi Cursor guifg=#000000 guibg=#ffffff gui=reverse cterm=reverse - hi lCursor guifg=#ff00ff guibg=#000000 gui=reverse cterm=reverse - hi Visual guifg=#ffffff guibg=#0087d7 gui=NONE cterm=NONE + hi Cursor guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE + hi lCursor guifg=#000000 guibg=#ff00ff gui=NONE cterm=NONE + hi Visual guifg=#0087d7 guibg=#ffffff gui=reverse cterm=reverse hi VisualNOS guifg=#ffffff guibg=#005faf gui=NONE cterm=NONE hi CursorLine guifg=NONE guibg=#eeeeee gui=NONE cterm=NONE hi CursorColumn guifg=NONE guibg=#eeeeee gui=NONE cterm=NONE @@ -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 @@ -207,8 +209,8 @@ if s:t_Co >= 256 hi PmenuExtra ctermfg=243 ctermbg=236 cterm=NONE hi PmenuExtraSel ctermfg=16 ctermbg=214 cterm=NONE hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE - hi Error ctermfg=231 ctermbg=161 cterm=NONE - hi ErrorMsg ctermfg=231 ctermbg=161 cterm=NONE + hi Error ctermfg=161 ctermbg=231 cterm=reverse + hi ErrorMsg ctermfg=161 ctermbg=231 cterm=reverse hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold hi MoreMsg ctermfg=41 ctermbg=NONE cterm=NONE hi Question ctermfg=213 ctermbg=NONE cterm=NONE @@ -219,7 +221,7 @@ if s:t_Co >= 256 hi WildMenu ctermfg=16 ctermbg=214 cterm=NONE hi debugPC ctermfg=32 ctermbg=NONE cterm=reverse hi debugBreakpoint ctermfg=37 ctermbg=NONE cterm=reverse - hi Visual ctermfg=16 ctermbg=32 cterm=NONE + hi Visual ctermfg=32 ctermbg=16 cterm=reverse hi VisualNOS ctermfg=16 ctermbg=39 cterm=NONE hi CursorLine ctermfg=NONE ctermbg=235 cterm=NONE hi CursorColumn ctermfg=NONE ctermbg=235 cterm=NONE @@ -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 @@ -276,8 +279,8 @@ if s:t_Co >= 256 hi PmenuExtra ctermfg=240 ctermbg=254 cterm=NONE hi PmenuExtraSel ctermfg=231 ctermbg=172 cterm=NONE hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE - hi Error ctermfg=231 ctermbg=160 cterm=NONE - hi ErrorMsg ctermfg=231 ctermbg=160 cterm=NONE + hi Error ctermfg=160 ctermbg=231 cterm=reverse + hi ErrorMsg ctermfg=160 ctermbg=231 cterm=reverse hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold hi MoreMsg ctermfg=28 ctermbg=NONE cterm=NONE hi Question ctermfg=90 ctermbg=NONE cterm=NONE @@ -288,7 +291,7 @@ if s:t_Co >= 256 hi WildMenu ctermfg=231 ctermbg=172 cterm=NONE hi debugPC ctermfg=25 ctermbg=NONE cterm=reverse hi debugBreakpoint ctermfg=30 ctermbg=NONE cterm=reverse - hi Visual ctermfg=231 ctermbg=32 cterm=NONE + hi Visual ctermfg=32 ctermbg=231 cterm=reverse hi VisualNOS ctermfg=231 ctermbg=25 cterm=NONE hi CursorLine ctermfg=NONE ctermbg=255 cterm=NONE hi CursorColumn ctermfg=NONE ctermbg=255 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 @@ -350,8 +354,8 @@ if s:t_Co >= 16 hi PmenuExtra ctermfg=darkgrey ctermbg=grey cterm=NONE hi PmenuExtraSel ctermfg=black ctermbg=darkyellow cterm=NONE hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE - hi Error ctermfg=white ctermbg=darkred cterm=NONE - hi ErrorMsg ctermfg=white ctermbg=darkred cterm=NONE + hi Error ctermfg=darkred ctermbg=white cterm=reverse + hi ErrorMsg ctermfg=darkred ctermbg=white cterm=reverse hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold hi MoreMsg ctermfg=green ctermbg=NONE cterm=NONE hi Question ctermfg=magenta ctermbg=NONE cterm=NONE @@ -362,7 +366,7 @@ if s:t_Co >= 16 hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE hi debugPC ctermfg=darkblue ctermbg=NONE cterm=reverse hi debugBreakpoint ctermfg=darkcyan ctermbg=NONE cterm=reverse - hi Visual ctermfg=black ctermbg=darkblue cterm=NONE + hi Visual ctermfg=darkblue ctermbg=black cterm=reverse hi VisualNOS ctermfg=black ctermbg=blue cterm=NONE hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline hi CursorColumn ctermfg=black ctermbg=yellow cterm=NONE @@ -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 @@ -419,8 +424,8 @@ if s:t_Co >= 16 hi PmenuExtra ctermfg=darkgrey ctermbg=grey cterm=NONE hi PmenuExtraSel ctermfg=black ctermbg=darkyellow cterm=NONE hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE - hi Error ctermfg=white ctermbg=red cterm=NONE - hi ErrorMsg ctermfg=white ctermbg=red cterm=NONE + hi Error ctermfg=red ctermbg=white cterm=reverse + hi ErrorMsg ctermfg=red ctermbg=white cterm=reverse hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE hi Question ctermfg=darkmagenta ctermbg=NONE cterm=NONE @@ -431,7 +436,7 @@ if s:t_Co >= 16 hi WildMenu ctermfg=white ctermbg=yellow cterm=NONE hi debugPC ctermfg=darkblue ctermbg=NONE cterm=reverse hi debugBreakpoint ctermfg=darkcyan ctermbg=NONE cterm=reverse - hi Visual ctermfg=white ctermbg=blue cterm=NONE + hi Visual ctermfg=blue ctermbg=white cterm=reverse hi VisualNOS ctermfg=white ctermbg=darkblue cterm=NONE hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline hi CursorColumn ctermfg=black ctermbg=yellow 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 @@ -505,12 +511,12 @@ if s:t_Co >= 8 hi WildMenu ctermfg=black ctermbg=darkyellow cterm=NONE hi debugPC ctermfg=darkblue ctermbg=NONE cterm=reverse hi debugBreakpoint ctermfg=darkcyan ctermbg=NONE cterm=reverse - hi Visual ctermfg=black ctermbg=darkblue cterm=NONE + hi Visual ctermfg=darkblue ctermbg=black cterm=reverse hi MatchParen ctermfg=NONE ctermbg=NONE cterm=bold,underline 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 @@ -572,7 +578,7 @@ if s:t_Co >= 8 hi WildMenu ctermfg=black ctermbg=darkyellow cterm=NONE hi debugPC ctermfg=darkblue ctermbg=NONE cterm=reverse hi debugBreakpoint ctermfg=darkcyan ctermbg=NONE cterm=reverse - hi Visual ctermfg=grey ctermbg=darkblue cterm=NONE + hi Visual ctermfg=darkblue ctermbg=grey cterm=reverse hi MatchParen ctermfg=NONE ctermbg=NONE cterm=bold,underline hi VisualNOS ctermfg=black ctermbg=darkblue cterm=NONE hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline @@ -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 @@ -750,4 +756,4 @@ endif " Term colors: color00 color01 color02 color03 color04 color05 color06 color07 " Term colors: color08 color09 color10 color11 color12 color13 color14 color15 " Background: any -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/zaibatsu.vim b/runtime/colors/zaibatsu.vim index d574c5eb6f..dba860397d 100644 --- a/runtime/colors/zaibatsu.vim +++ b/runtime/colors/zaibatsu.vim @@ -4,16 +4,16 @@ " Maintainer: Romain Lafourcade " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Sun Mar 12 17:21:15 2023 +" Last Updated: Fri 15 Dec 2023 20:05:43 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'zaibatsu' -let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#0e0024', '#d7005f', '#00af5f', '#ffaf00', '#5f5fff', '#d700ff', '#00afff', '#d7d5db', '#878092', '#ff5faf', '#00d700', '#ffd700', '#8787ff', '#ff87ff', '#00ffff', '#ffffff'] @@ -560,4 +560,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/zellner.vim b/runtime/colors/zellner.vim index 86340eb5b0..8a15004d5e 100644 --- a/runtime/colors/zellner.vim +++ b/runtime/colors/zellner.vim @@ -4,16 +4,16 @@ " Maintainer: Original maintainer Ron Aaron " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 02 Sep 2022 09:54:15 MSK +" Last Updated: Fri 15 Dec 2023 20:05:44 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=light hi clear let g:colors_name = 'zellner' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#ffffff', '#a52a2a', '#ff00ff', '#a020f0', '#0000ff', '#0000ff', '#ff00ff', '#a9a9a9', '#ff0000', '#a52a2a', '#ff00ff', '#a020f0', '#0000ff', '#0000ff', '#ff00ff', '#000000'] @@ -408,4 +408,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/compiler/ant.vim b/runtime/compiler/ant.vim index 0605c69fab..6219b01c36 100644 --- a/runtime/compiler/ant.vim +++ b/runtime/compiler/ant.vim @@ -2,16 +2,13 @@ " Compiler: ant " Maintainer: Johannes Zellner " Last Change: Mi, 13 Apr 2005 22:50:07 CEST +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish endif let current_compiler = "ant" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/bcc.vim b/runtime/compiler/bcc.vim index 5bd284a581..2d9d4fbb36 100644 --- a/runtime/compiler/bcc.vim +++ b/runtime/compiler/bcc.vim @@ -2,16 +2,13 @@ " Compiler: bcc - Borland C " Maintainer: Emile van Raaij (eraaij@xs4all.nl) " Last Change: 2004 Mar 27 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish endif let current_compiler = "bcc" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - " A workable errorformat for Borland C CompilerSet errorformat=%*[^0-9]%n\ %f\ %l:\ %m diff --git a/runtime/compiler/bdf.vim b/runtime/compiler/bdf.vim index b062e847aa..2aaa93bc27 100644 --- a/runtime/compiler/bdf.vim +++ b/runtime/compiler/bdf.vim @@ -1,7 +1,9 @@ " Vim compiler file " Compiler: BDF to PCF Conversion " Previous Maintainer: Nikolai Weibull -" Latest Revision: 2006-04-19 +" Contributors: Enno Nagel +" Last Change: 2024 Mar 29 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish @@ -11,9 +13,8 @@ let current_compiler = "bdf" let s:cpo_save = &cpo set cpo-=C -setlocal makeprg=bdftopcf\ $* - -setlocal errorformat=%ABDF\ %trror\ on\ line\ %l:\ %m, +CompilerSet makeprg=bdftopcf\ $* +CompilerSet errorformat=%ABDF\ %trror\ on\ line\ %l:\ %m, \%-Z%p^, \%Cbdftopcf:\ bdf\ input\\,\ %f\\,\ corrupt, \%-G%.%# diff --git a/runtime/compiler/cargo.vim b/runtime/compiler/cargo.vim index aa9b01e93c..bbea45dee7 100644 --- a/runtime/compiler/cargo.vim +++ b/runtime/compiler/cargo.vim @@ -2,6 +2,7 @@ " Compiler: Cargo Compiler " Maintainer: Damien Radtke " Latest Revision: 2023-09-11 +" 2024 Apr 05 by The Vim Project (removed :CompilerSet definition) " For bugs, patches and license go to https://github.com/rust-lang/rust.vim if exists('current_compiler') @@ -15,10 +16,6 @@ let s:save_cpo = &cpo set cpo&vim " vint: +ProhibitAbbreviationOption -if exists(':CompilerSet') != 2 - command -nargs=* CompilerSet setlocal -endif - if exists('g:cargo_makeprg_params') execute 'CompilerSet makeprg=cargo\ '.escape(g:cargo_makeprg_params, ' \|"').'\ $*' else diff --git a/runtime/compiler/checkstyle.vim b/runtime/compiler/checkstyle.vim index 4ebd9e15b5..3c17ee45bf 100644 --- a/runtime/compiler/checkstyle.vim +++ b/runtime/compiler/checkstyle.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: Checkstyle " Maintainer: Doug Kearns -" Last Change: 2020 Aug 2 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "checkstyle" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/cm3.vim b/runtime/compiler/cm3.vim index 3de51282e6..0ec360855c 100644 --- a/runtime/compiler/cm3.vim +++ b/runtime/compiler/cm3.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: Critical Mass Modula-3 Compiler " Maintainer: Doug Kearns -" Last Change: 2021 Apr 08 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "cm3" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/context.vim b/runtime/compiler/context.vim index 4cabf145c5..093943e22d 100644 --- a/runtime/compiler/context.vim +++ b/runtime/compiler/context.vim @@ -3,7 +3,9 @@ vim9script # Language: ConTeXt typesetting engine # Maintainer: Nicola Vitacolonna # Former Maintainers: Nikolai Weibull -# Latest Revision: 2022 Aug 12 +# Contributors: Enno Nagel +# Last Change: 2024 Mar 29 +# 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("g:current_compiler") finish @@ -11,15 +13,12 @@ endif import autoload '../autoload/context.vim' -if exists(":CompilerSet") != 2 # Older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - g:current_compiler = 'context' if get(b:, 'context_ignore_makefile', get(g:, 'context_ignore_makefile', 0)) || (!filereadable('Makefile') && !filereadable('makefile')) - &l:makeprg = join(context.ConTeXtCmd(shellescape(expand('%:p:t'))), ' ') + var makeprg = join(context.ConTeXtCmd(shellescape(expand('%:p:t'))), ' ') + execute 'CompilerSet makeprg=' .. escape(makeprg, ' ') else g:current_compiler = 'make' endif diff --git a/runtime/compiler/cs.vim b/runtime/compiler/cs.vim index 4f6dd3cdfd..123dff854f 100644 --- a/runtime/compiler/cs.vim +++ b/runtime/compiler/cs.vim @@ -3,6 +3,7 @@ " Maintainer: Yichao Zhou (broken.zhou@gmail.com) " Previous Maintainer: Joseph H. Yao (hyao@sina.com) " Last Change: Jul 22, 2019 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish @@ -11,10 +12,6 @@ let current_compiler = "cs" let s:keepcpo= &cpo set cpo&vim -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - CompilerSet errorformat& CompilerSet errorformat+=%f(%l\\,%v):\ %t%*[^:]:\ %m, \%trror%*[^:]:\ %m, diff --git a/runtime/compiler/csslint.vim b/runtime/compiler/csslint.vim index 14c4289a24..608cc74864 100644 --- a/runtime/compiler/csslint.vim +++ b/runtime/compiler/csslint.vim @@ -1,16 +1,13 @@ " Vim compiler file " Compiler: csslint for CSS -" Maintainer: Daniel Moch -" Last Change: 2016 May 21 +" Maintainer: Daniel Moch +" Last Change: 2016 May 21 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish endif let current_compiler = "csslint" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - CompilerSet makeprg=csslint\ --format=compact CompilerSet errorformat=%-G,%-G%f:\ lint\ free!,%f:\ line\ %l\\,\ col\ %c\\,\ %trror\ -\ %m,%f:\ line\ %l\\,\ col\ %c\\,\ %tarning\ -\ %m,%f:\ line\ %l\\,\ col\ %c\\,\ %m diff --git a/runtime/compiler/cucumber.vim b/runtime/compiler/cucumber.vim index 17ce3627c1..8089a5ee5c 100644 --- a/runtime/compiler/cucumber.vim +++ b/runtime/compiler/cucumber.vim @@ -2,16 +2,13 @@ " Compiler: Cucumber " Maintainer: Tim Pope " Last Change: 2016 Aug 29 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish endif let current_compiler = "cucumber" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo-=C diff --git a/runtime/compiler/dart.vim b/runtime/compiler/dart.vim index f9ebfe1b27..9577236bee 100644 --- a/runtime/compiler/dart.vim +++ b/runtime/compiler/dart.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: Dart VM " Maintainer: Doug Kearns -" Last Change: 2019 May 08 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "dart" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/dart2js.vim b/runtime/compiler/dart2js.vim index b6a4e4d530..a05dead2a9 100644 --- a/runtime/compiler/dart2js.vim +++ b/runtime/compiler/dart2js.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: Dart to JavaScript Compiler " Maintainer: Doug Kearns -" Last Change: 2019 May 08 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "dart2js" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/dart2native.vim b/runtime/compiler/dart2native.vim index 51bdab0cc3..6604fc4bd4 100644 --- a/runtime/compiler/dart2native.vim +++ b/runtime/compiler/dart2native.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: Dart to Native Compiler " Maintainer: Doug Kearns -" Last Change: 2019 May 08 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "dart2native" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/dartanalyser.vim b/runtime/compiler/dartanalyser.vim index e691d80b61..48a976a016 100644 --- a/runtime/compiler/dartanalyser.vim +++ b/runtime/compiler/dartanalyser.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: Dart Analyzer " Maintainer: Doug Kearns -" Last Change: 2019 May 08 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "dartanalyzer" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/dartdevc.vim b/runtime/compiler/dartdevc.vim index e8d1988ed6..16e4ed7ced 100644 --- a/runtime/compiler/dartdevc.vim +++ b/runtime/compiler/dartdevc.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: Dart Development Compiler " Maintainer: Doug Kearns -" Last Change: 2019 May 08 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "dartdevc" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/dartdoc.vim b/runtime/compiler/dartdoc.vim index 26b38d8dd4..78f0d241a4 100644 --- a/runtime/compiler/dartdoc.vim +++ b/runtime/compiler/dartdoc.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: Dart Documentation Generator " Maintainer: Doug Kearns -" Last Change: 2019 May 08 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "dartdoc" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/dartfmt.vim b/runtime/compiler/dartfmt.vim index 2e4ab02ad3..d204df8a73 100644 --- a/runtime/compiler/dartfmt.vim +++ b/runtime/compiler/dartfmt.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: Dart Formatter " Maintainer: Doug Kearns -" Last Change: 2019 May 08 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "dartfmt" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/decada.vim b/runtime/compiler/decada.vim index 0bf5487c89..11b0cb412a 100644 --- a/runtime/compiler/decada.vim +++ b/runtime/compiler/decada.vim @@ -14,6 +14,7 @@ " 08.09.2006 MK Correct double load protection. " Help Page: compiler-decada "------------------------------------------------------------------------------ +" Last Change: 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if (exists("current_compiler") && current_compiler == "decada") || version < 700 finish @@ -34,13 +35,6 @@ if !exists("g:decada") call g:decada.Set_Session () endif -if exists(":CompilerSet") != 2 - " - " plugin loaded by other means then the "compiler" command - " - command -nargs=* CompilerSet setlocal -endif - execute "CompilerSet makeprg=" . escape (g:decada.Make_Command, ' ') execute "CompilerSet errorformat=" . escape (g:decada.Error_Format, ' ') diff --git a/runtime/compiler/dot.vim b/runtime/compiler/dot.vim index 0327739aae..145411ebd3 100644 --- a/runtime/compiler/dot.vim +++ b/runtime/compiler/dot.vim @@ -1,15 +1,15 @@ " Vim compiler file " Compiler: ATT dot " Maintainer: Marcos Macedo -" Last Change: 2004 May 16 +" Last Change: 2024 March 21 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish endif let current_compiler = "dot" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - CompilerSet makeprg=dot\ -T$*\ \"%:p\"\ -o\ \"%:p:r.$*\" +" matches error messages as below skipping final part after line number +" Error: ./file.dot: syntax error in line 1 near 'rankdir' +CompilerSet errorformat=%trror:\ %f:\ %m\ in\ line\ %l%.%# diff --git a/runtime/compiler/dotnet.vim b/runtime/compiler/dotnet.vim index ac64084663..1290357221 100644 --- a/runtime/compiler/dotnet.vim +++ b/runtime/compiler/dotnet.vim @@ -2,6 +2,7 @@ " Compiler: dotnet build (.NET CLI) " Maintainer: Nick Jensen " Last Change: 2022-12-06 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) " License: Vim (see :h license) " Repository: https://github.com/nickspoons/vim-cs @@ -10,10 +11,6 @@ if exists("current_compiler") endif let current_compiler = "dotnet" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/erlang.vim b/runtime/compiler/erlang.vim index e22887e05e..b30b5c11e7 100644 --- a/runtime/compiler/erlang.vim +++ b/runtime/compiler/erlang.vim @@ -2,6 +2,7 @@ " Compiler: Erlang " Maintainer: Dmitry Vasiliev " Last Change: 2019 Jul 23 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish diff --git a/runtime/compiler/eruby.vim b/runtime/compiler/eruby.vim index a81a3f3b77..815d082f86 100644 --- a/runtime/compiler/eruby.vim +++ b/runtime/compiler/eruby.vim @@ -3,17 +3,13 @@ " Maintainer: Doug Kearns " URL: https://github.com/vim-ruby/vim-ruby " Release Coordinator: Doug Kearns -" Last Change: 2018 Jan 25 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "eruby" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo-=C diff --git a/runtime/compiler/eslint.vim b/runtime/compiler/eslint.vim index 7d57acbdf4..db7a665991 100644 --- a/runtime/compiler/eslint.vim +++ b/runtime/compiler/eslint.vim @@ -2,15 +2,12 @@ " Compiler: ESLint for JavaScript " Maintainer: Romain Lafourcade " Last Change: 2020 August 20 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish endif let current_compiler = "eslint" -if exists(":CompilerSet") != 2 - command -nargs=* CompilerSet setlocal -endif - CompilerSet makeprg=npx\ eslint\ --format\ compact CompilerSet errorformat=%f:\ line\ %l\\,\ col\ %c\\,\ %m,%-G%.%# diff --git a/runtime/compiler/fbc.vim b/runtime/compiler/fbc.vim index 1c29392da8..afedc32dff 100644 --- a/runtime/compiler/fbc.vim +++ b/runtime/compiler/fbc.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: FreeBASIC Compiler " Maintainer: Doug Kearns -" Last Change: 2015 Jan 10 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "fbc" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/fortran_F.vim b/runtime/compiler/fortran_F.vim index d9cb47cc1f..7f6ec818e0 100644 --- a/runtime/compiler/fortran_F.vim +++ b/runtime/compiler/fortran_F.vim @@ -3,17 +3,14 @@ " URL: http://www.unb.ca/chem/ajit/compiler/fortran_F.vim " Maintainer: Ajit J. Thakkar (ajit AT unb.ca); " Version: 0.2 -" Last Change: 2004 Mar 27 +" Last Change: 2004 Mar 27 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish endif let current_compiler = "fortran_F" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cposet=&cpoptions set cpoptions-=C diff --git a/runtime/compiler/fortran_cv.vim b/runtime/compiler/fortran_cv.vim index bc217bdc66..ea46d99af4 100644 --- a/runtime/compiler/fortran_cv.vim +++ b/runtime/compiler/fortran_cv.vim @@ -2,16 +2,13 @@ " Compiler: Compaq Visual Fortran " Maintainer: Joh.-G. Simon (johann-guenter.simon@linde-le.com) " Last Change: 11/05/2002 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish endif let current_compiler = "fortran_cv" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cposet = &cpoptions set cpoptions-=C diff --git a/runtime/compiler/fortran_elf90.vim b/runtime/compiler/fortran_elf90.vim index 34c33cfaf8..903701e8e6 100644 --- a/runtime/compiler/fortran_elf90.vim +++ b/runtime/compiler/fortran_elf90.vim @@ -4,17 +4,14 @@ " URL: http://www.unb.ca/chem/ajit/compiler/fortran_elf90.vim " Maintainer: Ajit J. Thakkar (ajit AT unb.ca); " Version: 0.2 -" Last Change: 2004 Mar 27 +" Last Change: 2004 Mar 27 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish endif let current_compiler = "fortran_elf90" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cposet=&cpoptions set cpoptions-=C diff --git a/runtime/compiler/fortran_g77.vim b/runtime/compiler/fortran_g77.vim index 744ce6a334..dcac2a7c9a 100644 --- a/runtime/compiler/fortran_g77.vim +++ b/runtime/compiler/fortran_g77.vim @@ -2,6 +2,7 @@ " Compiler: g77 (GNU Fortran) " Maintainer: Ralf Wildenhues " Last Change: $Date: 2004/06/13 18:17:36 $ +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) " $Revision: 1.1 $ if exists("current_compiler") @@ -9,10 +10,6 @@ if exists("current_compiler") endif let current_compiler = "fortran_g77" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo-=C diff --git a/runtime/compiler/fortran_lf95.vim b/runtime/compiler/fortran_lf95.vim index 685fee7b4a..2cb71589b2 100644 --- a/runtime/compiler/fortran_lf95.vim +++ b/runtime/compiler/fortran_lf95.vim @@ -3,17 +3,14 @@ " URL: http://www.unb.ca/chem/ajit/compiler/fortran_lf95.vim " Maintainer: Ajit J. Thakkar (ajit AT unb.ca); " Version: 0.2 -" Last Change: 2004 Mar 27 +" Last Change: 2004 Mar 27 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish endif let current_compiler = "fortran_lf95" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cposet=&cpoptions set cpoptions-=C diff --git a/runtime/compiler/fpc.vim b/runtime/compiler/fpc.vim index de8e2fe3dc..0d321ab4c7 100644 --- a/runtime/compiler/fpc.vim +++ b/runtime/compiler/fpc.vim @@ -2,16 +2,13 @@ " Compiler: FPC 2.1 " Maintainer: Jaroslaw Blasiok " Last Change: 2005 October 07 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish endif let current_compiler = "fpc" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - " NOTE: compiler must be run with -vb to write whole source path, not only file " name. CompilerSet errorformat=%f(%l\\,%c)\ %m diff --git a/runtime/compiler/g95.vim b/runtime/compiler/g95.vim index ecb3212cbe..e0b3a688f2 100644 --- a/runtime/compiler/g95.vim +++ b/runtime/compiler/g95.vim @@ -2,6 +2,7 @@ " Maintainer: H Xu " Version: 0.1.3 " Last Change: 2012 Apr 30 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) " Homepage: http://www.vim.org/scripts/script.php?script_id=3492 " https://bitbucket.org/xuhdev/compiler-g95.vim " License: Same as Vim @@ -13,10 +14,6 @@ let current_compiler = 'g95' let s:keepcpo= &cpo set cpo&vim -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - CompilerSet errorformat= \%AIn\ file\ %f:%l, \%-C%p1, diff --git a/runtime/compiler/gawk.vim b/runtime/compiler/gawk.vim index a109eb8642..f2a360d5f3 100644 --- a/runtime/compiler/gawk.vim +++ b/runtime/compiler/gawk.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: GNU Awk " Maintainer: Doug Kearns -" Last Change: 2020 Feb 10 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "gawk" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/gcc.vim b/runtime/compiler/gcc.vim index 30e5149f9f..7b6ebb98f4 100644 --- a/runtime/compiler/gcc.vim +++ b/runtime/compiler/gcc.vim @@ -1,10 +1,11 @@ " Vim compiler file -" Compiler: GNU C Compiler -" Previous Maintainer: Nikolai Weibull -" Latest Revision: 2010-10-14 -" changed pattern for entering/leaving directories -" by Daniel Hahler, 2019 Jul 12 -" added line suggested by Anton Lindqvist 2016 Mar 31 +" Compiler: GNU C Compiler +" Previous Maintainer: Nikolai Weibull +" Last Change: 2010 Oct 14 +" changed pattern for entering/leaving directories +" by Daniel Hahler, 2019 Jul 12 +" added line suggested by Anton Lindqvist 2016 Mar 31 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish diff --git a/runtime/compiler/gfortran.vim b/runtime/compiler/gfortran.vim index 1e4e5cf4f4..1fea3bcb18 100644 --- a/runtime/compiler/gfortran.vim +++ b/runtime/compiler/gfortran.vim @@ -2,6 +2,7 @@ " Maintainer: H Xu " Version: 0.1.3 " Last Change: 2012 Apr 30 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) " Homepage: http://www.vim.org/scripts/script.php?script_id=3496 " https://bitbucket.org/xuhdev/compiler-gfortran.vim " License: Same as Vim @@ -13,10 +14,6 @@ let current_compiler = 'gfortran' let s:keepcpo= &cpo set cpo&vim -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - CompilerSet errorformat= \%A%f:%l.%c:, \%-Z%trror:\ %m, diff --git a/runtime/compiler/gjs.vim b/runtime/compiler/gjs.vim index e033764030..b1be8cf3e6 100644 --- a/runtime/compiler/gjs.vim +++ b/runtime/compiler/gjs.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: GJS (Gnome JavaScript Bindings) " Maintainer: Doug Kearns -" Last Change: 2019 Jul 10 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "gjs" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/gm2.vim b/runtime/compiler/gm2.vim new file mode 100644 index 0000000000..954da9d0e7 --- /dev/null +++ b/runtime/compiler/gm2.vim @@ -0,0 +1,22 @@ +" Vim compiler file +" Compiler: GNU Modula-2 Compiler +" Maintainer: Doug Kearns +" Last Change: 2024 Apr 03 + +if exists("current_compiler") + finish +endif +let current_compiler = "gm2" + +let s:cpo_save = &cpo +set cpo&vim + +CompilerSet makeprg=gm2 +CompilerSet errorformat=%-G%f:%l:%c:\ error:\ compilation\ failed, + \%f:%l:%c:\ %trror:\ %m, + \%f:%l:%c:\ %tarning:\ %m, + \%f:%l:%c:\ %tote:\ %m, + \%-G%.%# + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/compiler/gnat.vim b/runtime/compiler/gnat.vim index 3ad1eb4e3f..086edbede3 100644 --- a/runtime/compiler/gnat.vim +++ b/runtime/compiler/gnat.vim @@ -52,13 +52,6 @@ if !exists("g:gnat") call g:gnat.Set_Session () endif -if exists(":CompilerSet") != 2 - " - " plugin loaded by other means then the "compiler" command - " - command -nargs=* CompilerSet setlocal -endif - execute "CompilerSet makeprg=" . escape (g:gnat.Get_Command('Make'), ' ') execute "CompilerSet errorformat=" . escape (g:gnat.Error_Format, ' ') diff --git a/runtime/compiler/go.vim b/runtime/compiler/go.vim index cf638f23d6..9c1a6f3119 100644 --- a/runtime/compiler/go.vim +++ b/runtime/compiler/go.vim @@ -2,16 +2,13 @@ " Compiler: Go " Maintainer: David Barnett (https://github.com/google/vim-ft-go) " Last Change: 2014 Aug 16 +" 2024 Apr 05 by The Vim Project (removed :CompilerSet definition) if exists('current_compiler') finish endif let current_compiler = 'go' -if exists(':CompilerSet') != 2 - command -nargs=* CompilerSet setlocal -endif - let s:save_cpo = &cpo set cpo-=C diff --git a/runtime/compiler/haml.vim b/runtime/compiler/haml.vim index 9464c3dc85..99c171d76c 100644 --- a/runtime/compiler/haml.vim +++ b/runtime/compiler/haml.vim @@ -2,16 +2,13 @@ " Compiler: Haml " Maintainer: Tim Pope " Last Change: 2016 Aug 29 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish endif let current_compiler = "haml" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo-=C diff --git a/runtime/compiler/hare.vim b/runtime/compiler/hare.vim index c0fa68cc00..c98bbb9c63 100644 --- a/runtime/compiler/hare.vim +++ b/runtime/compiler/hare.vim @@ -2,6 +2,7 @@ " Compiler: Hare Compiler " Maintainer: Amelia Clarke " Last Change: 2022-09-21 +" 2024 Apr 05 by The Vim Project (removed :CompilerSet definition) if exists("g:current_compiler") finish @@ -11,10 +12,6 @@ let g:current_compiler = "hare" let s:cpo_save = &cpo set cpo&vim -if exists(':CompilerSet') != 2 - command -nargs=* CompilerSet setlocal -endif - if filereadable("Makefile") || filereadable("makefile") CompilerSet makeprg=make else diff --git a/runtime/compiler/hp_acc.vim b/runtime/compiler/hp_acc.vim index 15d5ce5f19..f6ccc57c73 100644 --- a/runtime/compiler/hp_acc.vim +++ b/runtime/compiler/hp_acc.vim @@ -3,6 +3,7 @@ " Maintainer: Matthias Ulrich " URL: http://www.subhome.de/vim/hp_acc.vim " Last Change: 2012 Apr 30 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) " " aCC --version says: "HP ANSI C++ B3910B A.03.13" " This compiler has been tested on: @@ -22,10 +23,6 @@ let current_compiler = "hp_acc" let s:keepcpo= &cpo set cpo&vim -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - CompilerSet errorformat=%A%trror\ %n\:\ \"%f\"\\,\ line\ %l\ \#\ %m, \%A%tarning\ (suggestion)\ %n\:\ \"%f\"\\,\ line\ %l\ \#\ %m\ %#, \%A%tarning\ %n\:\ \"%f\"\\,\ line\ %l\ \#\ %m\ %#, diff --git a/runtime/compiler/icc.vim b/runtime/compiler/icc.vim index 751fba65c7..37958f1c94 100644 --- a/runtime/compiler/icc.vim +++ b/runtime/compiler/icc.vim @@ -2,16 +2,13 @@ " Compiler: icc - Intel C++ " Maintainer: Peter Puck " Last Change: 2004 Mar 27 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish endif let current_compiler = "icc" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - " I think that Intel is calling the compiler icl under Windows CompilerSet errorformat=%-Z%p^,%f(%l):\ remark\ #%n:%m,%f(%l)\ :\ (col.\ %c)\ remark:\ %m,%E%f(%l):\ error:\ %m,%E%f(%l):\ error:\ #%n:\ %m,%W%f(%l):\ warning\ #%n:\ %m,%W%f(%l):\ warning:\ %m,%-C%.%# diff --git a/runtime/compiler/icon.vim b/runtime/compiler/icon.vim index 40f67930f7..8b46af2a13 100644 --- a/runtime/compiler/icon.vim +++ b/runtime/compiler/icon.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: Icon Compiler " Maintainer: Doug Kearns -" Last Change: 2022 Jun 16 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "icont" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/ifort.vim b/runtime/compiler/ifort.vim index 3a60d0cd12..8c58ba685d 100644 --- a/runtime/compiler/ifort.vim +++ b/runtime/compiler/ifort.vim @@ -2,6 +2,7 @@ " Maintainer: H Xu " Version: 0.1.1 " Last Change: 2012 Apr 30 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) " Homepage: http://www.vim.org/scripts/script.php?script_id=3497 " https://bitbucket.org/xuhdev/compiler-ifort.vim " License: Same as Vim @@ -13,10 +14,6 @@ let current_compiler = 'ifort' let s:keepcpo= &cpo set cpo&vim -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - CompilerSet errorformat= \%A%f(%l):\ %trror\ \#%n:\ %m, \%A%f(%l):\ %tarning\ \#%n:\ %m, diff --git a/runtime/compiler/intel.vim b/runtime/compiler/intel.vim index 254d13b6d8..cde62b1c48 100644 --- a/runtime/compiler/intel.vim +++ b/runtime/compiler/intel.vim @@ -2,6 +2,7 @@ " Compiler: Intel C++ 7.1 " Maintainer: David Harrison " Last Change: 2012 Apr 30 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish @@ -10,10 +11,6 @@ let current_compiler = "intel" let s:keepcpo= &cpo set cpo&vim -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - CompilerSet errorformat=%E%f(%l):\ error:\ %m, \%W%f(%l):\ warning:\ %m, \%I%f(%l):\ remark\ #%n:\ %m, diff --git a/runtime/compiler/irix5_c.vim b/runtime/compiler/irix5_c.vim index f440e74f05..f70bfb1ea7 100644 --- a/runtime/compiler/irix5_c.vim +++ b/runtime/compiler/irix5_c.vim @@ -2,6 +2,7 @@ " Compiler: SGI IRIX 5.3 cc " Maintainer: David Harrison " Last Change: 2012 Apr 30 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish @@ -10,10 +11,6 @@ let current_compiler = "irix5_c" let s:keepcpo= &cpo set cpo&vim -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - CompilerSet errorformat=\%Ecfe:\ Error:\ %f\\,\ line\ %l:\ %m, \%Wcfe:\ Warning:\ %n:\ %f\\,\ line\ %l:\ %m, \%Wcfe:\ Warning\ %n:\ %f\\,\ line\ %l:\ %m, diff --git a/runtime/compiler/irix5_cpp.vim b/runtime/compiler/irix5_cpp.vim index 0112dc1cbc..85ab8c67f2 100644 --- a/runtime/compiler/irix5_cpp.vim +++ b/runtime/compiler/irix5_cpp.vim @@ -2,6 +2,7 @@ " Compiler: SGI IRIX 5.3 CC or NCC " Maintainer: David Harrison " Last Change: 2012 Apr 30 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish @@ -10,10 +11,6 @@ let current_compiler = "irix5_cpp" let s:keepcpo= &cpo set cpo&vim -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - CompilerSet errorformat=%E\"%f\"\\,\ line\ %l:\ error(%n):\ , \%E\"%f\"\\,\ line\ %l:\ error(%n):\ %m, \%W\"%f\"\\,\ line\ %l:\ warning(%n):\ %m, diff --git a/runtime/compiler/javac.vim b/runtime/compiler/javac.vim index 8507efd67c..f5fe84124f 100644 --- a/runtime/compiler/javac.vim +++ b/runtime/compiler/javac.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: Java Development Kit Compiler " Maintainer: Doug Kearns -" Last Change: 2019 Oct 21 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "javac" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/jest.vim b/runtime/compiler/jest.vim index a4bb549de1..663123c30f 100644 --- a/runtime/compiler/jest.vim +++ b/runtime/compiler/jest.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: Jest " Maintainer: Doug Kearns -" Last Change: 2021 Nov 20 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "jest" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/jikes.vim b/runtime/compiler/jikes.vim index 2d4500e894..f12c2cf5f1 100644 --- a/runtime/compiler/jikes.vim +++ b/runtime/compiler/jikes.vim @@ -2,6 +2,7 @@ " Compiler: Jikes " Maintainer: Dan Sharp " Last Change: 2019 Jul 23 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) " URL: http://dwsharp.users.sourceforge.net/vim/compiler if exists("current_compiler") @@ -9,10 +10,6 @@ if exists("current_compiler") endif let current_compiler = "jikes" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - " Jikes defaults to printing output on stderr CompilerSet makeprg=jikes\ -Xstdout\ +E\ \"%:S\" CompilerSet errorformat=%f:%l:%v:%*\\d:%*\\d:%*\\s%m diff --git a/runtime/compiler/jjs.vim b/runtime/compiler/jjs.vim index 09a973683a..543d9ca3d4 100644 --- a/runtime/compiler/jjs.vim +++ b/runtime/compiler/jjs.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: Nashorn Shell " Maintainer: Doug Kearns -" Last Change: 2018 Jan 9 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "jjs" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/jshint.vim b/runtime/compiler/jshint.vim index 865591cd2b..9879ef49e5 100644 --- a/runtime/compiler/jshint.vim +++ b/runtime/compiler/jshint.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: JSHint " Maintainer: Doug Kearns -" Last Change: 2019 Jul 10 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "jshint" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/jsonlint.vim b/runtime/compiler/jsonlint.vim index 5466dcc7f4..6283b1b01f 100644 --- a/runtime/compiler/jsonlint.vim +++ b/runtime/compiler/jsonlint.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: JSON Lint " Maintainer: Doug Kearns -" Last Change: 2019 Jul 10 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "jsonlint" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/mcs.vim b/runtime/compiler/mcs.vim index c606586870..0c265b3de5 100644 --- a/runtime/compiler/mcs.vim +++ b/runtime/compiler/mcs.vim @@ -1,8 +1,9 @@ " Vim compiler file -" Compiler: Mono C# Compiler -" Maintainer: Jarek Sobiecki -" Last Updated By: Peter Collingbourne -" Latest Revision: 2012 Jul 19 +" Compiler: Mono C# Compiler +" Maintainer: Jarek Sobiecki +" Contributors: Peter Collingbourne and Enno Nagel +" Last Change: 2024 Mar 29 +" 2024 Apr 05 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish @@ -12,7 +13,8 @@ let current_compiler = "mcs" let s:cpo_save = &cpo set cpo-=C -setlocal errorformat= +CompilerSet makeprg=mcs +CompilerSet errorformat= \%D%.%#Project\ \"%f/%[%^/\"]%#\"%.%#, \%X%.%#Done\ building\ project\ \"%f/%[%^/\"]%#\"%.%#, \%-G%\\s%.%#, diff --git a/runtime/compiler/mips_c.vim b/runtime/compiler/mips_c.vim index a0ebfe7ba2..544f314a1a 100644 --- a/runtime/compiler/mips_c.vim +++ b/runtime/compiler/mips_c.vim @@ -2,6 +2,7 @@ " Compiler: SGI IRIX 6.5 MIPS C (cc) " Maintainer: David Harrison " Last Change: 2012 Apr 30 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish @@ -10,10 +11,6 @@ let current_compiler = "mips_c" let s:keepcpo= &cpo set cpo&vim -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - CompilerSet errorformat=%Ecc\-%n\ %.%#:\ ERROR\ File\ =\ %f\%\\,\ Line\ =\ %l, \%Wcc\-%n\ %.%#:\ WARNING\ File\ =\ %f\%\\,\ Line\ =\ %l, \%Icc\-%n\ %.%#:\ REMARK\ File\ =\ %f\%\\,\ Line\ =\ %l, diff --git a/runtime/compiler/mipspro_c89.vim b/runtime/compiler/mipspro_c89.vim index 20eb70d3fe..4d6bdabeef 100644 --- a/runtime/compiler/mipspro_c89.vim +++ b/runtime/compiler/mipspro_c89.vim @@ -2,6 +2,7 @@ " Compiler: SGI IRIX 6.5 MIPSPro C (c89) " Maintainer: David Harrison " Last Change: 2012 Apr 30 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish @@ -10,10 +11,6 @@ let current_compiler = "mipspro_c89" let s:keepcpo= &cpo set cpo&vim -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - CompilerSet errorformat=%Ecc\-%n\ %.%#:\ ERROR\ File\ =\ %f\%\\,\ Line\ =\ %l, \%Wcc\-%n\ %.%#:\ WARNING\ File\ =\ %f\%\\,\ Line\ =\ %l, \%Icc\-%n\ %.%#:\ REMARK\ File\ =\ %f\%\\,\ Line\ =\ %l, diff --git a/runtime/compiler/mipspro_cpp.vim b/runtime/compiler/mipspro_cpp.vim index 2f43af8455..9aac2a6564 100644 --- a/runtime/compiler/mipspro_cpp.vim +++ b/runtime/compiler/mipspro_cpp.vim @@ -2,6 +2,7 @@ " Compiler: SGI IRIX 6.5 MIPSPro C++ (CC) " Maintainer: David Harrison " Last Change: 2012 Apr 30 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish @@ -10,10 +11,6 @@ let current_compiler = "mipspro_cpp" let s:keepcpo= &cpo set cpo&vim -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - CompilerSet errorformat=%Ecc\-%n\ %.%#:\ ERROR\ File\ =\ %f\%\\,\ Line\ =\ %l, \%Wcc\-%n\ %.%#:\ WARNING\ File\ =\ %f\%\\,\ Line\ =\ %l, \%Icc\-%n\ %.%#:\ REMARK\ File\ =\ %f\%\\,\ Line\ =\ %l, diff --git a/runtime/compiler/modelsim_vcom.vim b/runtime/compiler/modelsim_vcom.vim index 6aa1bde0b3..8c6b8063ad 100644 --- a/runtime/compiler/modelsim_vcom.vim +++ b/runtime/compiler/modelsim_vcom.vim @@ -1,7 +1,9 @@ " Vim Compiler File " Compiler: Modelsim Vcom " Maintainer: Paul Baleme -" Last Change: September 8, 2003 +" Contributors: Enno Nagel +" Last Change: 2024 Mar 29 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) " Thanks to: allanherriman@hotmail.com if exists("current_compiler") @@ -9,12 +11,9 @@ if exists("current_compiler") endif let current_compiler = "modelsim_vcom" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif +CompilerSet makeprg=vcom "setlocal errorformat=\*\*\ %tRROR:\ %f(%l):\ %m,%tRROR:\ %f(%l):\ %m,%tARNING\[%*[0-9]\]:\ %f(%l):\ %m,\*\*\ %tRROR:\ %m,%tRROR:\ %m,%tARNING\[%*[0-9]\]:\ %m - "setlocal errorformat=%tRROR:\ %f(%l):\ %m,%tARNING\[%*[0-9]\]:\ %m CompilerSet errorformat=\*\*\ %tRROR:\ %f(%l):\ %m,\*\*\ %tRROR:\ %m,\*\*\ %tARNING:\ %m,\*\*\ %tOTE:\ %m,%tRROR:\ %f(%l):\ %m,%tARNING\[%*[0-9]\]:\ %f(%l):\ %m,%tRROR:\ %m,%tARNING\[%*[0-9]\]:\ %m diff --git a/runtime/compiler/msbuild.vim b/runtime/compiler/msbuild.vim index 3652ca0e04..c871efaf3d 100644 --- a/runtime/compiler/msbuild.vim +++ b/runtime/compiler/msbuild.vim @@ -2,6 +2,7 @@ " Compiler: Microsoft Visual Studio C# " Maintainer: Chiel ten Brinke (ctje92@gmail.com) " Last Change: 2013 May 13 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish @@ -10,10 +11,6 @@ let current_compiler = "msbuild" let s:keepcpo= &cpo set cpo&vim -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - CompilerSet errorformat=\ %#%f(%l\\\,%c):\ %m CompilerSet makeprg=msbuild\ /nologo\ /v:q\ /property:GenerateFullPaths=true diff --git a/runtime/compiler/msvc.vim b/runtime/compiler/msvc.vim index 0d5660c103..3d40de5b7f 100644 --- a/runtime/compiler/msvc.vim +++ b/runtime/compiler/msvc.vim @@ -2,6 +2,7 @@ " Compiler: Microsoft Visual C " Maintainer: The Vim Project " Last Change: 2023 Aug 10 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) " Former Maintainer: Bram Moolenaar if exists("current_compiler") diff --git a/runtime/compiler/neato.vim b/runtime/compiler/neato.vim index bd184b7f6e..0f36734130 100644 --- a/runtime/compiler/neato.vim +++ b/runtime/compiler/neato.vim @@ -1,15 +1,15 @@ " Vim compiler file " Compiler: ATT neato " Maintainer: Marcos Macedo -" Last Change: 2004 May 16 +" Last Change: 2024 March 21 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish endif let current_compiler = "neato" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - CompilerSet makeprg=neato\ -T$*\ \"%:p\"\ -o\ \"%:p:r.$*\" +" matches error messages as below skipping final part after line number +" Error: ./file.dot: syntax error in line 1 near 'rankdir' +CompilerSet errorformat=%trror:\ %f:\ %m\ in\ line\ %l%.%# diff --git a/runtime/compiler/ocaml.vim b/runtime/compiler/ocaml.vim index faa8af1f5f..754289fc14 100644 --- a/runtime/compiler/ocaml.vim +++ b/runtime/compiler/ocaml.vim @@ -3,6 +3,7 @@ " Maintainer: Markus Mottl " URL: https://github.com/ocaml/vim-ocaml " Last Change: +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) " 2020 Mar 28 - Improved error format (Thomas Leonard) " 2017 Nov 26 - Improved error format (Markus Mottl) " 2013 Aug 27 - Added a new OCaml error format (Markus Mottl) diff --git a/runtime/compiler/onsgmls.vim b/runtime/compiler/onsgmls.vim index 68925ef459..4306f99de5 100644 --- a/runtime/compiler/onsgmls.vim +++ b/runtime/compiler/onsgmls.vim @@ -2,16 +2,13 @@ " Compiler: onsgmls " Maintainer: Robert Rowsome " Last Change: 2019 Jul 23 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish endif let current_compiler = "onsgmls" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo-=C diff --git a/runtime/compiler/pandoc.vim b/runtime/compiler/pandoc.vim new file mode 100644 index 0000000000..6c151930c5 --- /dev/null +++ b/runtime/compiler/pandoc.vim @@ -0,0 +1,55 @@ +" Vim compiler file +" Compiler: Pandoc +" Maintainer: Konfekt +" +" Expects output file extension, say `:make html` or `:make pdf`. +" Passes additional arguments to pandoc, say `:make html --self-contained`. + +if exists("current_compiler") + finish +endif + +let s:keepcpo = &cpo +set cpo&vim + +let current_compiler = 'pandoc' + +" As of 2024-04-08 pandoc supports the following text input formats with +" an ftplugin on Github: +let s:supported_filetypes = + \ [ 'bibtex', 'markdown', 'creole', 'json', 'csv', 'tsv', 'docbook', + \ 'xml', 'fb2', 'html', 'jira', 'tex', 'mediawiki', 'nroff', 'org', + \ 'rtf', 'rst', 't2t', 'textile', 'twiki', 'typst', 'vimwiki' ] +" .. and out of those the following are included in Vim's runtime: +" 'xml', 'tex', 'html', 'rst', 'json', 'nroff', 'markdown' + +silent! function s:PandocFiletype(filetype) abort + let ft = a:filetype + if ft ==# 'pandoc' + return 'markdown' + elseif ft ==# 'tex' + return 'latex' + elseif ft ==# 'xml' + " Pandoc does not support XML as a generic input format, but it does support + " EndNote XML and Jats XML out of which the latter seems more universal. + return 'jats' + elseif ft ==# 'text' || empty(ft) + return 'markdown' + elseif index(s:supported_filetypes, &ft) >= 0 + return ft + else + echomsg 'Unsupported filetype: ' . ft . ', falling back to Markdown as input format!' + return 'markdown' + endif +endfunction +execute 'CompilerSet makeprg=pandoc\ --standalone' . + \ '\ --metadata\ title=%:t:r:S' . + \ '\ --metadata\ lang=' . matchstr(&spelllang, '^\a\a') . + \ '\ --from=' . s:PandocFiletype(&filetype) . + \ '\ ' . escape(get(b:, 'pandoc_compiler_args', get(g:, 'pandoc_compiler_args', '')), ' ') . + \ '\ --output\ %:r:S.$*\ %:S' + +CompilerSet errorformat="%f",\ line\ %l:\ %m + +let &cpo = s:keepcpo +unlet s:keepcpo diff --git a/runtime/compiler/pbx.vim b/runtime/compiler/pbx.vim index 9e81ea7355..5a45f7ffe0 100644 --- a/runtime/compiler/pbx.vim +++ b/runtime/compiler/pbx.vim @@ -2,16 +2,13 @@ " Compiler: Apple Project Builder " Maintainer: Alexander von Below (public@vonBelow.Com) " Last Change: 2004 Mar 27 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish endif let current_compiler = "pbx" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - " The compiler actually is gcc, so the errorformat is unchanged CompilerSet errorformat& diff --git a/runtime/compiler/perl.vim b/runtime/compiler/perl.vim index 21e384fb85..6aeaac3fa1 100644 --- a/runtime/compiler/perl.vim +++ b/runtime/compiler/perl.vim @@ -6,16 +6,13 @@ " Bugs/requests: https://github.com/vim-perl/vim-perl/issues " License: Vim License (see :help license) " Last Change: 2021 Nov 2 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish endif let current_compiler = "perl" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:savecpo = &cpo set cpo&vim diff --git a/runtime/compiler/perlcritic.vim b/runtime/compiler/perlcritic.vim index cf0678eeb2..4b5f34dd2e 100644 --- a/runtime/compiler/perlcritic.vim +++ b/runtime/compiler/perlcritic.vim @@ -6,16 +6,13 @@ " Bugs/requests: https://github.com/vim-perl/vim-perl/issues " License: Vim License (see :help license) " Last Change: 2021 Oct 20 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish endif let current_compiler = "perlcritic" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/php.vim b/runtime/compiler/php.vim index 92f93b89fc..f5d521098b 100644 --- a/runtime/compiler/php.vim +++ b/runtime/compiler/php.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: PHP CLI " Maintainer: Doug Kearns -" Last Change: 2013 Jun 25 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "php" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo-=C diff --git a/runtime/compiler/pip_compile.vim b/runtime/compiler/pip_compile.vim new file mode 100644 index 0000000000..ca4d509660 --- /dev/null +++ b/runtime/compiler/pip_compile.vim @@ -0,0 +1,43 @@ +" the Requirements File Format syntax support for Vim +" Version: 1.8.0 +" Author: raimon +" Upstream: https://github.com/raimon49/requirements.txt.vim +" License: MIT LICENSE +" The MIT License (MIT) +" +" Copyright (c) 2015 raimon +" +" Permission is hereby granted, free of charge, to any person obtaining a copy +" of this software and associated documentation files (the "Software"), to deal +" in the Software without restriction, including without limitation the rights +" to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +" copies of the Software, and to permit persons to whom the Software is +" furnished to do so, subject to the following conditions: +" +" The above copyright notice and this permission notice shall be included in all +" copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +" OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +" SOFTWARE. + +if exists('b:current_compiler') + finish +endif +let b:current_compiler = 'pip_compile' + +let s:save_cpoptions = &cpoptions +set cpoptions&vim + +CompilerSet makeprg=pip-compile\ %:S +CompilerSet errorformat=%ECould\ not\ find\ a\ version\ that\ matches\ %o\ (from\ -r\ %f\ (line\ %l)), + \%C%m, + \%Z, + \%-G%.%# +let &cpoptions = s:save_cpoptions +unlet s:save_cpoptions +" vim: et sw=4 ts=4 sts=4: diff --git a/runtime/compiler/podchecker.vim b/runtime/compiler/podchecker.vim index 2cd4e13660..20faaa4bcc 100644 --- a/runtime/compiler/podchecker.vim +++ b/runtime/compiler/podchecker.vim @@ -6,16 +6,13 @@ " Bugs/requests: https://github.com/vim-perl/vim-perl/issues " License: Vim License (see :help license) " Last Change: 2021 Oct 20 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish endif let current_compiler = "podchecker" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/powershell.vim b/runtime/compiler/powershell.vim index 45d5ec2191..821fea4085 100644 --- a/runtime/compiler/powershell.vim +++ b/runtime/compiler/powershell.vim @@ -1,17 +1,16 @@ " Vim compiler file " Compiler: powershell " URL: https://github.com/PProvost/vim-ps1 -" Last Change: 2020 Mar 30 +" Contributors: Enno Nagel +" Last Change: 2024 Mar 29 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) +" 2024 Apr 05 by The Vim Project (avoid leaving behind g:makeprg) if exists("current_compiler") finish endif let current_compiler = "powershell" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo-=C @@ -37,7 +36,7 @@ let g:ps1_efm_show_error_categories = get(g:, 'ps1_efm_show_error_categories', 0 " Use absolute path because powershell requires explicit relative paths " (./file.ps1 is okay, but # expands to file.ps1) -let &l:makeprg = g:ps1_makeprg_cmd .' %:p:S' +let s:makeprg = g:ps1_makeprg_cmd .. ' %:p:S' " Parse file, line, char from callstacks: " Write-Ouput : The term 'Write-Ouput' is not recognized as the name of a @@ -50,6 +49,8 @@ let &l:makeprg = g:ps1_makeprg_cmd .' %:p:S' " + CategoryInfo : ObjectNotFound: (Write-Ouput:String) [], CommandNotFoundException " + FullyQualifiedErrorId : CommandNotFoundException +execute 'CompilerSet makeprg=' .. escape(s:makeprg, ' ') + " Showing error in context with underlining. CompilerSet errorformat=%+G+%m " Error summary. diff --git a/runtime/compiler/pylint.vim b/runtime/compiler/pylint.vim index 93079ce61d..14e9696dbb 100644 --- a/runtime/compiler/pylint.vim +++ b/runtime/compiler/pylint.vim @@ -2,15 +2,12 @@ " Compiler: Pylint for Python " Maintainer: Daniel Moch " Last Change: 2016 May 20 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish endif let current_compiler = "pylint" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - CompilerSet makeprg=pylint\ --output-format=text\ --msg-template=\"{path}:{line}:{column}:{C}:\ [{symbol}]\ {msg}\"\ --reports=no CompilerSet errorformat=%A%f:%l:%c:%t:\ %m,%A%f:%l:\ %m,%A%f:(%l):\ %m,%-Z%p^%.%#,%-G%.%# diff --git a/runtime/compiler/pyunit.vim b/runtime/compiler/pyunit.vim index 2a4ea92b68..2368346dd2 100644 --- a/runtime/compiler/pyunit.vim +++ b/runtime/compiler/pyunit.vim @@ -2,15 +2,12 @@ " Compiler: Unit testing tool for Python " Maintainer: Max Ischenko " Last Change: 2004 Mar 27 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish endif let current_compiler = "pyunit" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - CompilerSet efm=%C\ %.%#,%A\ \ File\ \"%f\"\\,\ line\ %l%.%#,%Z%[%^\ ]%\\@=%m diff --git a/runtime/compiler/raco.vim b/runtime/compiler/raco.vim index bd10859aa9..d35d86b8c2 100644 --- a/runtime/compiler/raco.vim +++ b/runtime/compiler/raco.vim @@ -3,12 +3,9 @@ " Maintainer: D. Ben Knoble " URL: https://github.com/benknoble/vim-racket " Last Change: 2022 Aug 12 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) let current_compiler = 'raco' -if exists(":CompilerSet") != 2 - command -nargs=* CompilerSet setlocal -endif - CompilerSet makeprg=raco CompilerSet errorformat=%f:%l:%c:%m diff --git a/runtime/compiler/racomake.vim b/runtime/compiler/racomake.vim index dae95fec42..bd2c327037 100644 --- a/runtime/compiler/racomake.vim +++ b/runtime/compiler/racomake.vim @@ -3,12 +3,9 @@ " Maintainer: D. Ben Knoble " URL: https://github.com/benknoble/vim-racket " Last Change: 2022 Aug 12 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) let current_compiler = 'racomake' -if exists(":CompilerSet") != 2 - command -nargs=* CompilerSet setlocal -endif - CompilerSet makeprg=raco\ make\ --\ % CompilerSet errorformat=%f:%l:%c:%m diff --git a/runtime/compiler/racosetup.vim b/runtime/compiler/racosetup.vim index 1efe8a15a2..e16faf081a 100644 --- a/runtime/compiler/racosetup.vim +++ b/runtime/compiler/racosetup.vim @@ -3,12 +3,9 @@ " Maintainer: D. Ben Knoble " URL: https://github.com/benknoble/vim-racket " Last Change: 2022 Aug 12 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) let current_compiler = 'racosetup' -if exists(":CompilerSet") != 2 - command -nargs=* CompilerSet setlocal -endif - CompilerSet makeprg=raco\ setup CompilerSet errorformat=%f:%l:%c:%m diff --git a/runtime/compiler/racotest.vim b/runtime/compiler/racotest.vim index d2a1a3c0f3..3ac11737d2 100644 --- a/runtime/compiler/racotest.vim +++ b/runtime/compiler/racotest.vim @@ -3,12 +3,9 @@ " Maintainer: D. Ben Knoble " URL: https://github.com/benknoble/vim-racket " Last Change: 2022 Aug 12 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) let current_compiler = 'racotest' -if exists(":CompilerSet") != 2 - command -nargs=* CompilerSet setlocal -endif - CompilerSet makeprg=raco\ test\ % CompilerSet errorformat=location:%f:%l:%c diff --git a/runtime/compiler/rake.vim b/runtime/compiler/rake.vim index 3d11a31f89..5b3c7f4092 100644 --- a/runtime/compiler/rake.vim +++ b/runtime/compiler/rake.vim @@ -4,16 +4,13 @@ " URL: https://github.com/vim-ruby/vim-ruby " Release Coordinator: Doug Kearns " Last Change: 2018 Mar 02 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish endif let current_compiler = "rake" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo-=C diff --git a/runtime/compiler/rhino.vim b/runtime/compiler/rhino.vim index 30f3dd3252..b6fc9c8d8c 100644 --- a/runtime/compiler/rhino.vim +++ b/runtime/compiler/rhino.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: Rhino Shell (JavaScript in Java) " Maintainer: Doug Kearns -" Last Change: 2019 Jul 10 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "rhino" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/rime_deployer.vim b/runtime/compiler/rime_deployer.vim new file mode 100644 index 0000000000..e0c8daef6e --- /dev/null +++ b/runtime/compiler/rime_deployer.vim @@ -0,0 +1,30 @@ +" Vim Compiler File +" Language: rime_deployer +" Maintainer: Wu, Zhenyu +" URL: https://rime.im +" Latest Revision: 2024-04-09 + +if exists('b:current_compiler') + finish +endif +let b:current_compiler = 'rime_deployer' + +let s:save_cpoptions = &cpoptions +set cpoptions&vim + +" Android Termux +let s:prefix = getenv('PREFIX') +if s:prefix == v:null + let s:prefix = '/usr' +endif +" Android, NixOS, GNU/Linux, BSD +for s:shared_data_dir in ['/sdcard/rime-data', '/run/current-system/sw/share/rime-data', '/usr/local/share/rime-data', s:prefix . '/share/rime-data'] + if isdirectory(s:shared_data_dir) + break + endif +endfor +execute 'CompilerSet makeprg=rime_deployer\ --build\ %:p:h:S\' s:shared_data_dir +unlet s:prefix s:shared_data_dir + +let &cpoptions = s:save_cpoptions +unlet s:save_cpoptions diff --git a/runtime/compiler/rspec.vim b/runtime/compiler/rspec.vim index 0cfce04572..ee848f703a 100644 --- a/runtime/compiler/rspec.vim +++ b/runtime/compiler/rspec.vim @@ -4,16 +4,13 @@ " URL: https://github.com/vim-ruby/vim-ruby " Release Coordinator: Doug Kearns " Last Change: 2018 Aug 07 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish endif let current_compiler = "rspec" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo-=C diff --git a/runtime/compiler/rst.vim b/runtime/compiler/rst.vim index 392bea6ae0..72b6a58b67 100644 --- a/runtime/compiler/rst.vim +++ b/runtime/compiler/rst.vim @@ -2,7 +2,8 @@ " Compiler: sphinx >= 1.0.8, http://www.sphinx-doc.org " Description: reStructuredText Documentation Format " Previous Maintainer: Nikolai Weibull -" Latest Revision: 2017-03-31 +" Last Change: 2017 Mar 31 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish @@ -12,10 +13,6 @@ let current_compiler = "rst" let s:cpo_save = &cpo set cpo&vim -if exists(":CompilerSet") != 2 - command -nargs=* CompilerSet setlocal -endif - CompilerSet errorformat= \%f\\:%l:\ %tEBUG:\ %m, \%f\\:%l:\ %tNFO:\ %m, diff --git a/runtime/compiler/rubocop.vim b/runtime/compiler/rubocop.vim index 7764b4ad20..9d2f01499f 100644 --- a/runtime/compiler/rubocop.vim +++ b/runtime/compiler/rubocop.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: RuboCop " Maintainer: Doug Kearns -" Last Change: 2019 Jul 10 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "rubocop" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/ruby.vim b/runtime/compiler/ruby.vim index 82d4d1c876..70dff5bf24 100644 --- a/runtime/compiler/ruby.vim +++ b/runtime/compiler/ruby.vim @@ -5,16 +5,13 @@ " URL: https://github.com/vim-ruby/vim-ruby " Release Coordinator: Doug Kearns " Last Change: 2019 Jan 06 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish endif let current_compiler = "ruby" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo-=C diff --git a/runtime/compiler/rubyunit.vim b/runtime/compiler/rubyunit.vim index 48e8fa41ab..e59873fa21 100644 --- a/runtime/compiler/rubyunit.vim +++ b/runtime/compiler/rubyunit.vim @@ -4,16 +4,13 @@ " URL: https://github.com/vim-ruby/vim-ruby " Release Coordinator: Doug Kearns " Last Change: 2014 Mar 23 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish endif let current_compiler = "rubyunit" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo-=C diff --git a/runtime/compiler/rustc.vim b/runtime/compiler/rustc.vim index efcf24ed80..b3c8091987 100644 --- a/runtime/compiler/rustc.vim +++ b/runtime/compiler/rustc.vim @@ -14,10 +14,6 @@ let s:save_cpo = &cpo set cpo&vim " vint: +ProhibitAbbreviationOption -if exists(":CompilerSet") != 2 - command -nargs=* CompilerSet setlocal -endif - if get(g:, 'rustc_makeprg_no_percent', 0) CompilerSet makeprg=rustc else diff --git a/runtime/compiler/sass.vim b/runtime/compiler/sass.vim index 9c540ac443..d0ed65cfa5 100644 --- a/runtime/compiler/sass.vim +++ b/runtime/compiler/sass.vim @@ -2,16 +2,13 @@ " Compiler: Sass " Maintainer: Tim Pope " Last Change: 2016 Aug 29 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish endif let current_compiler = "sass" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo-=C diff --git a/runtime/compiler/scdoc.vim b/runtime/compiler/scdoc.vim index c37969f89c..364ddc179c 100644 --- a/runtime/compiler/scdoc.vim +++ b/runtime/compiler/scdoc.vim @@ -2,6 +2,7 @@ " Compiler: scdoc " Maintainer: Gregory Anders " Last Updated: 2019-10-24 +" 2024 Apr 05 by The Vim Project (removed :CompilerSet definition) " Upstream: https://github.com/gpanders/vim-scdoc if exists('current_compiler') @@ -9,9 +10,5 @@ if exists('current_compiler') endif let current_compiler = 'scdoc' -if exists(':CompilerSet') != 2 - command -nargs=* CompilerSet setlocal -endif - CompilerSet makeprg=scdoc\ <\ %\ 2>&1 CompilerSet errorformat=Error\ at\ %l:%c:\ %m,%-G%.%# diff --git a/runtime/compiler/se.vim b/runtime/compiler/se.vim index 38fd10c131..c9332277e5 100644 --- a/runtime/compiler/se.vim +++ b/runtime/compiler/se.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: se (Liberty Eiffel Compiler) " Maintainer: Doug Kearns -" Last Change: 2013 Jun 29 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "se" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo-=C diff --git a/runtime/compiler/shellcheck.vim b/runtime/compiler/shellcheck.vim index 7550439aa2..5eeddc69c1 100644 --- a/runtime/compiler/shellcheck.vim +++ b/runtime/compiler/shellcheck.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: ShellCheck " Maintainer: Doug Kearns -" Last Change: 2020 Sep 4 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "shellcheck" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/sml.vim b/runtime/compiler/sml.vim index a0b13b6c8a..e829e20e8c 100644 --- a/runtime/compiler/sml.vim +++ b/runtime/compiler/sml.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: SML/NJ Compiler " Maintainer: Doug Kearns -" Last Change: 2022 Feb 09 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "sml" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/spectral.vim b/runtime/compiler/spectral.vim index bd13c51f43..f1ea8653e5 100644 --- a/runtime/compiler/spectral.vim +++ b/runtime/compiler/spectral.vim @@ -2,16 +2,13 @@ " Compiler: Spectral for YAML " Maintainer: Romain Lafourcade " Last Change: 2021 July 21 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish endif let current_compiler = "spectral" -if exists(":CompilerSet") != 2 - command -nargs=* CompilerSet setlocal -endif - CompilerSet makeprg=spectral\ lint\ %\ -f\ text CompilerSet errorformat=%f:%l:%c\ %t%.%\\{-}\ %m diff --git a/runtime/compiler/splint.vim b/runtime/compiler/splint.vim index 3d7ada6d1d..e00460149c 100644 --- a/runtime/compiler/splint.vim +++ b/runtime/compiler/splint.vim @@ -3,6 +3,7 @@ " Maintainer: Ralf Wildenhues " Splint Home: http://www.splint.org/ " Last Change: 2019 Jul 23 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) " $Revision: 1.3 $ if exists("current_compiler") @@ -10,10 +11,6 @@ if exists("current_compiler") endif let current_compiler = "splint" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo-=C diff --git a/runtime/compiler/standard.vim b/runtime/compiler/standard.vim index 50b7c97ca7..fdc79ae2ba 100644 --- a/runtime/compiler/standard.vim +++ b/runtime/compiler/standard.vim @@ -2,15 +2,12 @@ " Compiler: Standard for JavaScript " Maintainer: Romain Lafourcade " Last Change: 2020 August 20 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish endif let current_compiler = "standard" -if exists(":CompilerSet") != 2 - command -nargs=* CompilerSet setlocal -endif - CompilerSet makeprg=npx\ standard CompilerSet errorformat=%f:%l:%c:\ %m,%-G%.%# diff --git a/runtime/compiler/stylelint.vim b/runtime/compiler/stylelint.vim index 784a61d46a..22acea9eb0 100644 --- a/runtime/compiler/stylelint.vim +++ b/runtime/compiler/stylelint.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: Stylelint " Maintainer: Doug Kearns -" Last Change: 2020 Jun 10 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "stylelint" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/tcl.vim b/runtime/compiler/tcl.vim index 81af185f5e..1e6d1f39e1 100644 --- a/runtime/compiler/tcl.vim +++ b/runtime/compiler/tcl.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: tcl " Maintainer: Doug Kearns -" Last Change: 2004 Nov 27 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "tcl" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - CompilerSet makeprg=tcl CompilerSet errorformat=%EError:\ %m,%+Z\ %\\{4}(file\ \"%f\"\ line\ %l),%-G%.%# diff --git a/runtime/compiler/tex.vim b/runtime/compiler/tex.vim index 65e15cf6e2..282b3a0588 100644 --- a/runtime/compiler/tex.vim +++ b/runtime/compiler/tex.vim @@ -1,7 +1,10 @@ " Vim compiler file " Compiler: TeX " Maintainer: Artem Chuprina -" Last Change: 2012 Apr 30 +" Contributors: Enno Nagel +" Last Change: 2024 Mar 29 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) +" 2024 Apr 05 by The Vim Project (avoid leaving behind g:makeprg) if exists("current_compiler") finish @@ -9,10 +12,6 @@ endif let s:keepcpo= &cpo set cpo&vim -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - " If makefile exists and we are not asked to ignore it, we use standard make " (do not redefine makeprg) if exists('b:tex_ignore_makefile') || exists('g:tex_ignore_makefile') || @@ -27,7 +26,8 @@ if exists('b:tex_ignore_makefile') || exists('g:tex_ignore_makefile') || else let current_compiler = "latex" endif - let &l:makeprg=current_compiler.' -interaction=nonstopmode' + let s:makeprg=current_compiler .. ' -interaction=nonstopmode' + execute 'CompilerSet makeprg=' .. escape(s:makeprg, ' ') else let current_compiler = 'make' endif diff --git a/runtime/compiler/tidy.vim b/runtime/compiler/tidy.vim index 3f8e68ebf2..9e72207862 100644 --- a/runtime/compiler/tidy.vim +++ b/runtime/compiler/tidy.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: HTML Tidy " Maintainer: Doug Kearns -" Last Change: 2020 Sep 4 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "tidy" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/ts-node.vim b/runtime/compiler/ts-node.vim index 14f0ea790c..1b46d3bf5a 100644 --- a/runtime/compiler/ts-node.vim +++ b/runtime/compiler/ts-node.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: TypeScript Runner " Maintainer: Doug Kearns -" Last Change: 2020 Feb 10 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "node" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/tsc.vim b/runtime/compiler/tsc.vim index a246fc7751..76f525baa6 100644 --- a/runtime/compiler/tsc.vim +++ b/runtime/compiler/tsc.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: TypeScript Compiler " Maintainer: Doug Kearns -" Last Change: 2020 Feb 10 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "tsc" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/typedoc.vim b/runtime/compiler/typedoc.vim index 3be06f3d4e..7a152e85fd 100644 --- a/runtime/compiler/typedoc.vim +++ b/runtime/compiler/typedoc.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: TypeDoc " Maintainer: Doug Kearns -" Last Change: 2020 Feb 10 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "typedoc" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/vimdoc.vim b/runtime/compiler/vimdoc.vim new file mode 100644 index 0000000000..a30355f855 --- /dev/null +++ b/runtime/compiler/vimdoc.vim @@ -0,0 +1,20 @@ +" Vim Compiler File +" Language: vimdoc +" Maintainer: Wu, Zhenyu +" Latest Revision: 2024-04-13 +" +" If you can not find 'vimdoc' in the package manager of your distribution e.g +" 'pip', then you may need to build it from its source. + +if exists('b:current_compiler') + finish +endif +let b:current_compiler = 'vimdoc' + +let s:save_cpoptions = &cpoptions +set cpoptions&vim + +CompilerSet makeprg=vimdoc + +let &cpoptions = s:save_cpoptions +unlet s:save_cpoptions diff --git a/runtime/compiler/xbuild.vim b/runtime/compiler/xbuild.vim index b508a4616a..42c7c65f53 100644 --- a/runtime/compiler/xbuild.vim +++ b/runtime/compiler/xbuild.vim @@ -2,6 +2,7 @@ " Compiler: Mono C# " Maintainer: Chiel ten Brinke (ctje92@gmail.com) " Last Change: 2013 May 13 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish @@ -11,10 +12,6 @@ let current_compiler = "xbuild" let s:keepcpo= &cpo set cpo&vim -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - CompilerSet errorformat=\ %#%f(%l\\\,%c):\ %m CompilerSet makeprg=xbuild\ /nologo\ /v:q\ /property:GenerateFullPaths=true diff --git a/runtime/compiler/xmllint.vim b/runtime/compiler/xmllint.vim index 79d38b4d14..16eebb45ce 100644 --- a/runtime/compiler/xmllint.vim +++ b/runtime/compiler/xmllint.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: Libxml2 Command-Line Tool " Maintainer: Doug Kearns -" Last Change: 2020 Jul 30 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "xmllint" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/xmlwf.vim b/runtime/compiler/xmlwf.vim index 3de9d08d55..2e38ca4aba 100644 --- a/runtime/compiler/xmlwf.vim +++ b/runtime/compiler/xmlwf.vim @@ -2,6 +2,7 @@ " Compiler: xmlwf " Maintainer: Robert Rowsome " Last Change: 2019 Jul 23 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish @@ -11,10 +12,6 @@ let current_compiler = "xmlwf" let s:cpo_save = &cpo set cpo&vim -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - CompilerSet makeprg=xmlwf\ %:S CompilerSet errorformat=%f:%l%c:%m diff --git a/runtime/compiler/xo.vim b/runtime/compiler/xo.vim index 525657d4bb..74804ca6d0 100644 --- a/runtime/compiler/xo.vim +++ b/runtime/compiler/xo.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: XO " Maintainer: Doug Kearns -" Last Change: 2019 Jul 10 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "xo" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/compiler/yamllint.vim b/runtime/compiler/yamllint.vim index 889b04b63c..88e2efb27a 100644 --- a/runtime/compiler/yamllint.vim +++ b/runtime/compiler/yamllint.vim @@ -2,15 +2,12 @@ " Compiler: Yamllint for YAML " Maintainer: Romain Lafourcade " Last Change: 2021 July 21 +" 2024 Apr 03 by The Vim Project (removed :CompilerSet definition) if exists("current_compiler") finish endif let current_compiler = "yamllint" -if exists(":CompilerSet") != 2 - command -nargs=* CompilerSet setlocal -endif - CompilerSet makeprg=yamllint\ -f\ parsable diff --git a/runtime/compiler/zig.vim b/runtime/compiler/zig.vim index 2cc6831329..44014a3775 100644 --- a/runtime/compiler/zig.vim +++ b/runtime/compiler/zig.vim @@ -10,10 +10,6 @@ let current_compiler = "zig" let s:save_cpo = &cpo set cpo&vim -if exists(":CompilerSet") != 2 - command -nargs=* CompilerSet setlocal -endif - " a subcommand must be provided for the this compiler (test, build-exe, etc) if has('patch-7.4.191') CompilerSet makeprg=zig\ \$*\ \%:S diff --git a/runtime/compiler/zig_build.vim b/runtime/compiler/zig_build.vim index 0441267b64..5a61c9f423 100644 --- a/runtime/compiler/zig_build.vim +++ b/runtime/compiler/zig_build.vim @@ -1,6 +1,7 @@ " Vim compiler file " Compiler: Zig Compiler (zig build) " Upstream: https://github.com/ziglang/zig.vim +" Last Change: 2024 Apr 05 by The Vim Project (removed :CompilerSet definition) if exists('current_compiler') finish @@ -11,11 +12,6 @@ let current_compiler = 'zig_build' let s:save_cpo = &cpo set cpo&vim - -if exists(':CompilerSet') != 2 - command -nargs=* CompilerSet setlocal -endif - if exists('g:zig_build_makeprg_params') execute 'CompilerSet makeprg=zig\ build\ '.escape(g:zig_build_makeprg_params, ' \|"').'\ $*' else diff --git a/runtime/compiler/zig_build_exe.vim b/runtime/compiler/zig_build_exe.vim index 20f0bb3366..259d0e267b 100644 --- a/runtime/compiler/zig_build_exe.vim +++ b/runtime/compiler/zig_build_exe.vim @@ -1,6 +1,7 @@ " Vim compiler file " Compiler: Zig Compiler (zig build-exe) " Upstream: https://github.com/ziglang/zig.vim +" Last Change: 2024 Apr 05 by The Vim Project (removed :CompilerSet definition) if exists('current_compiler') finish @@ -11,11 +12,6 @@ let current_compiler = 'zig_build_exe' let s:save_cpo = &cpo set cpo&vim - -if exists(':CompilerSet') != 2 - command -nargs=* CompilerSet setlocal -endif - if has('patch-7.4.191') CompilerSet makeprg=zig\ build-exe\ \%:S\ \$* else diff --git a/runtime/compiler/zig_test.vim b/runtime/compiler/zig_test.vim index a82d2a6378..dafeb6f1e3 100644 --- a/runtime/compiler/zig_test.vim +++ b/runtime/compiler/zig_test.vim @@ -1,6 +1,7 @@ " Vim compiler file " Compiler: Zig Compiler (zig test) " Upstream: https://github.com/ziglang/zig.vim +" Last Change: 2024 Apr 05 by The Vim Project (removed :CompilerSet definition) if exists('current_compiler') finish @@ -11,11 +12,6 @@ let current_compiler = 'zig_test' let s:save_cpo = &cpo set cpo&vim - -if exists(':CompilerSet') != 2 - command -nargs=* CompilerSet setlocal -endif - if has('patch-7.4.191') CompilerSet makeprg=zig\ test\ \%:S\ \$* else diff --git a/runtime/compiler/zsh.vim b/runtime/compiler/zsh.vim index 5703c1fc44..bd195582c1 100644 --- a/runtime/compiler/zsh.vim +++ b/runtime/compiler/zsh.vim @@ -1,17 +1,13 @@ " Vim compiler file " Compiler: Zsh " Maintainer: Doug Kearns -" Last Change: 2020 Sep 6 +" Last Change: 2024 Apr 03 if exists("current_compiler") finish endif let current_compiler = "zsh" -if exists(":CompilerSet") != 2 " older Vim always used :setlocal - command -nargs=* CompilerSet setlocal -endif - let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/doc/Make_mvc.mak b/runtime/doc/Make_mvc.mak index 656cf75926..f2fbc52ed5 100644 --- a/runtime/doc/Make_mvc.mak +++ b/runtime/doc/Make_mvc.mak @@ -1,7 +1,7 @@ # # Makefile for the Vim documentation on Windows # -# 17.11.23, Restorer, +# 20.03.24, Restorer, # Common components !INCLUDE Make_all.mak @@ -23,7 +23,7 @@ ICONV_PATH = D:\Programs\GetText\bin # If the "touch" program is installed on the system, but it is not registered # in the %PATH% environment variable, then specify the full path to this file. !IF EXIST ("touch.exe") -TOUCH = "touch.exe" %1 +TOUCH = touch.exe %1 !ELSE TOUCH = if exist %1 ( copy /b %1+,, ) else ( type nul >%1 ) !ENDIF @@ -33,12 +33,15 @@ TOUCH = if exist %1 ( copy /b %1+,, ) else ( type nul >%1 ) # If the "iconv" program is installed on the system, but it is not registered # in the %PATH% environment variable, then specify the full path to this file. !IF EXIST ("iconv.exe") -ICONV = "iconv.exe" +ICONV = iconv.exe !ELSEIF EXIST ("$(ICONV_PATH)\iconv.exe") 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 -Path . -Force -ItemType file -Name tags doctags : doctags.c $(CC) doctags.c @@ -64,15 +67,12 @@ 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:.*', ''}) \ - ^| Set-Content $*$$ext - !@powershell -nologo -noprofile -Command \ - $$ext=(Get-Item $?).Extension; \ - (Get-Content -Raw $(@B)$$ext).Trim() -replace '(\r\n){3,}', '$$1$$1' \ - ^| Set-Content $(@B)$$ext - + ! $(PS) $(PSFLAGS) (Get-Content $? -Encoding UTF8 \ + ^| %%{$$_ -replace '[\t\s]*\*.*\*', '' -replace 'vim:tw=\d\d:.*', ''}) \ + ^| Set-Content \"$(@B)$$((Get-Item $?).Extension)\" -Encoding Unicode + ! $(PS) $(PSFLAGS)\ + (Get-Content $(@B)$$((Get-Item $?).Extension) -Raw).Trim() -replace '(\r\n){3,}', '$$1$$1' \ + ^| Set-Content \"$(@B)$$((Get-Item $?).Extension)\" -Encoding Unicode # TODO: #html: noerrors tags $(HTMLS) @@ -105,7 +105,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 +203,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 +212,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 +222,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 +232,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 +242,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 +252,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 +262,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 +272,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 +282,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 +292,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 +302,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 +312,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 +322,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 +332,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 +342,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 +352,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 +362,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 +372,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 +382,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 +392,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 +402,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 +412,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 +422,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 +432,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 +442,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 +452,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 +462,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 +472,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 +482,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 fc042872cf..30a4f08bd7 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,30 +29,36 @@ 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 - -uganda.nsis.txt: uganda.txt - sed -e 's/[ ]*\*[-a-zA-Z0-9.]*\*//g' -e 's/vim:tw=78:.*//' \ - uganda.txt | uniq >uganda.nsis.txt + nroff -man $< | sed -e s/.//g > $@ + +uganda.nsis.txt : uganda.??? + for dpn in $?; do \ + trg=$@; \ + sed -e 's/[ ]*\*.*\*//g' -e 's/vim:tw=[[:digit:]][[:digit:]]:.*//' \ + $${dpn} | uniq > $${trg%txt}$${dpn##*.}; \ + done +# This files needs to be in dos fileformat for NSIS. + $(VIMEXE) -e -X -u NONE --cmd "set notitle noicon nocp noml viminfo=" \ + -c "argdo write ++ff=dos" -c "qa" uganda.nsis.??? # Awk version of .txt to .html conversion. html: noerrors tags $(HTMLS) @@ -68,10 +75,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 +91,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 +99,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/arabic.txt b/runtime/doc/arabic.txt index ff1cac4350..b8fccf241a 100644 --- a/runtime/doc/arabic.txt +++ b/runtime/doc/arabic.txt @@ -1,4 +1,4 @@ -*arabic.txt* For Vim version 9.0. Last change: 2021 Jun 22 +*arabic.txt* For Vim version 9.1. Last change: 2021 Jun 22 VIM REFERENCE MANUAL by Nadim Shaikli diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt index a0543a2f02..16d162a1ff 100644 --- a/runtime/doc/autocmd.txt +++ b/runtime/doc/autocmd.txt @@ -1,4 +1,4 @@ -*autocmd.txt* For Vim version 9.0. Last change: 2023 May 20 +*autocmd.txt* For Vim version 9.1. Last change: 2024 Mar 26 VIM REFERENCE MANUAL by Bram Moolenaar @@ -342,6 +342,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 @@ -382,6 +383,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 @@ -428,6 +430,9 @@ Name triggered by ~ |SessionLoadPost| after loading a session file +|SessionWritePost| After writing the session file using + the |:mksession| command. + |MenuPopup| just before showing the popup menu |CompleteChanged| after Insert mode completion menu changed |CompleteDonePre| after Insert mode completion is done, before clearing @@ -1105,7 +1110,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 @@ -1120,6 +1125,9 @@ SafeStateAgain Like SafeState but after processing any *SessionLoadPost* SessionLoadPost After loading the session file created using + the |:mksession| command. + *SessionWritePost* +SessionWritePost After writing a session file by calling the |:mksession| command. *ShellCmdPost* ShellCmdPost After executing a shell command with |:!cmd|, @@ -1228,6 +1236,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 @@ -1379,6 +1405,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 c40f1ca53c..d156579f46 100644 --- a/runtime/doc/builtin.txt +++ b/runtime/doc/builtin.txt @@ -1,4 +1,4 @@ -*builtin.txt* For Vim version 9.0. Last change: 2023 Nov 20 +*builtin.txt* For Vim version 9.1. Last change: 2024 Apr 07 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}]) @@ -216,12 +220,12 @@ getbufvar({buf}, {varname} [, {def}]) any variable {varname} in buffer {buf} getcellwidths() List get character cell width overrides getchangelist([{buf}]) List list of change list items -getchar([expr]) Number or String +getchar([{expr}]) Number or String get one character from the user getcharmod() Number modifiers for the last typed character getcharpos({expr}) List position of cursor, mark, etc. getcharsearch() Dict last character search -getcharstr([expr]) String get one character from the user +getcharstr([{expr}]) String get one character from the user getcmdcompltype() String return the type of the current command-line completion getcmdline() String return the current command-line @@ -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 @@ -370,6 +376,8 @@ matchadd({group}, {pattern} [, {priority} [, {id} [, {dict}]]]) matchaddpos({group}, {pos} [, {priority} [, {id} [, {dict}]]]) Number highlight positions with {group} matcharg({nr}) List arguments of |:match| +matchbufline({buf}, {pat}, {lnum}, {end}, [, {dict}) + List all the {pat} matches in buffer {buf} matchdelete({id} [, {win}]) Number delete match identified by {id} matchend({expr}, {pat} [, {start} [, {count}]]) Number position where {pat} ends in {expr} @@ -381,6 +389,8 @@ matchlist({expr}, {pat} [, {start} [, {count}]]) List match and submatches of {pat} in {expr} matchstr({expr}, {pat} [, {start} [, {count}]]) String {count}'th match of {pat} in {expr} +matchstrlist({list}, {pat} [, {dict}) + List all the {pat} matches in {list} matchstrpos({expr}, {pat} [, {start} [, {count}]]) List {count}'th match of {pat} in {expr} max({expr}) Number maximum value of items in {expr} @@ -388,7 +398,7 @@ menu_info({name} [, {mode}]) Dict get menu item information min({expr}) Number minimum value of items in {expr} mkdir({name} [, {flags} [, {prot}]]) Number create directory {name} -mode([expr]) String current editing mode +mode([{expr}]) String current editing mode mzeval({expr}) any evaluate |MzScheme| expression nextnonblank({lnum}) Number line nr of non-blank line >= {lnum} nr2char({expr} [, {utf8}]) String single char with ASCII/UTF-8 value {expr} @@ -691,7 +701,7 @@ test_override({expr}, {val}) none test with Vim internal overrides test_refcount({expr}) Number get the reference count of {expr} test_setmouse({row}, {col}) none set the mouse position for testing test_settime({expr}) none set current time for testing -test_srand_seed([seed]) none set seed for testing srand() +test_srand_seed([{seed}]) none set seed for testing srand() test_unknown() any unknown value for testing test_void() any void value for testing timer_info([{id}]) List information about timers @@ -721,7 +731,7 @@ virtcol({expr} [, {list} [, {winid}]) screen column of cursor or mark virtcol2col({winid}, {lnum}, {col}) Number byte index of a character on screen -visualmode([expr]) String last visual mode used +visualmode([{expr}]) String last visual mode used wildmenumode() Number whether 'wildmenu' mode is active win_execute({id}, {command} [, {silent}]) String execute {command} in window {id} @@ -1763,7 +1773,7 @@ confirm({msg} [, {choices} [, {default} [, {type}]]]) made. It returns the number of the choice. For the first choice this is 1. Note: confirm() is only supported when compiled with dialog - support, see |+dialog_con| and |+dialog_gui|. + support, see |+dialog_con| |+dialog_con_gui| and |+dialog_gui|. {msg} is displayed in a |dialog| with {choices} as the alternatives. When {choices} is missing or empty, "&OK" is @@ -2042,6 +2052,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 @@ -2191,6 +2267,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() method in the object + (if present) returns true. |object-empty()| For a long |List| this is much faster than comparing the length with zero. @@ -2231,7 +2309,8 @@ eval({string}) Evaluate {string} and return the result. Especially useful to turn the result of |string()| back into the original value. This works for Numbers, Floats, Strings, Blobs and composites of them. Also works for |Funcref|s that refer to existing - functions. + functions. In |Vim9| script, it can be used to obtain |enum| + values from their fully qualified names. Can also be used as a |method|: > argv->join()->eval() @@ -2331,11 +2410,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 @@ -2466,6 +2545,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: @@ -2993,6 +3075,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 @@ -3201,6 +3322,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 @@ -3334,16 +3457,16 @@ getchangelist([{buf}]) *getchangelist()* Can also be used as a |method|: > GetBufnr()->getchangelist() -getchar([expr]) *getchar()* +getchar([{expr}]) *getchar()* Get a single character from the user or input stream. - If [expr] is omitted, wait until a character is available. - If [expr] is 0, only get a character when one is available. + If {expr} is omitted, wait until a character is available. + If {expr} is 0, only get a character when one is available. Return zero otherwise. - If [expr] is 1, only check if a character is available, it is + If {expr} is 1, only check if a character is available, it is not consumed. Return zero if no character available. If you prefer always getting a string use |getcharstr()|. - Without [expr] and when [expr] is 0 a whole character or + Without {expr} and when {expr} is 0 a whole character or special key is returned. If it is a single character, the result is a Number. Use |nr2char()| to convert it to a String. Otherwise a String is returned with the encoded character. @@ -3353,11 +3476,11 @@ getchar([expr]) *getchar()* also a String when a modifier (shift, control, alt) was used that is not included in the character. - When [expr] is 0 and Esc is typed, there will be a short delay + When {expr} is 0 and Esc is typed, there will be a short delay while Vim waits to see if this is the start of an escape sequence. - When [expr] is 1 only the first byte is returned. For a + When {expr} is 1 only the first byte is returned. For a one-byte character it is the character itself as a number. Use nr2char() to convert it to a String. @@ -3425,7 +3548,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. @@ -3468,13 +3591,13 @@ getcharsearch() *getcharsearch()* < Also see |setcharsearch()|. -getcharstr([expr]) *getcharstr()* +getcharstr([{expr}]) *getcharstr()* Get a single character from the user or input stream as a string. - If [expr] is omitted, wait until a character is available. - If [expr] is 0 or false, only get a character when one is + If {expr} is omitted, wait until a character is available. + If {expr} is 0 or false, only get a character when one is available. Return an empty string otherwise. - If [expr] is 1 or true, only check if a character is + If {expr} is 1 or true, only check if a character is available, it is not consumed. Return an empty string if no character is available. Otherwise this works like |getchar()|, except that a number @@ -3568,6 +3691,7 @@ getcompletion({pat}, {type} [, {filtered}]) *getcompletion()* help help subjects highlight highlight groups history |:history| suboptions + keymap keyboard mappings locale locale names (as output of locale -a) mapclear buffer argument mapping mapping name @@ -4152,6 +4276,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: @@ -4378,14 +4555,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()* @@ -5060,12 +5239,12 @@ insert({object}, {item} [, {idx}]) *insert()* *instanceof()* *E614* *E616* *E693* instanceof({object}, {class}) The result is a Number, which is |TRUE| when the {object} - argument is a direct or indirect instance of a |Class| - specified by {class}. - When {class} is a |List| the function returns |TRUE| when + argument is a direct or indirect instance of a |Class|, + |Interface|, or class |:type| alias specified by {class}. + If {class} is varargs, the function returns |TRUE| when {object} is an instance of any of the specified classes. Example: > - instanceof(animal, [Dog, Cat]) + instanceof(animal, Dog, Cat) < Can also be used as a |method|: > myobj->instanceof(mytype) @@ -5165,8 +5344,12 @@ items({dict}) *items()* for [key, value] in items(mydict) echo key .. ': ' .. value endfor +< + A List or a String argument is also supported. In these + cases, items() returns a List with the index and the value at + the index. -< Can also be used as a |method|: > + Can also be used as a |method|: > mydict->items() job_ functions are documented here: |job-functions-details| @@ -5305,7 +5488,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 (|object-len()|). + Otherwise returns zero. Can also be used as a |method|: > mylist->len() @@ -5926,6 +6111,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 @@ -6052,6 +6238,54 @@ matcharg({nr}) *matcharg()* Can also be used as a |method|: > GetMatch()->matcharg() +< + *matchbufline()* +matchbufline({buf}, {pat}, {lnum}, {end}, [, {dict}]) + Returns the |List| of matches in lines from {lnum} to {end} in + buffer {buf} where {pat} matches. + + {lnum} and {end} can either be a line number or the string "$" + to refer to the last line in {buf}. + + The {dict} argument supports following items: + submatches include submatch information (|/\(|) + + 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 + 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'}] +< + 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 + \ {'submatches': v:true}) + [{'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. + + Can also be used as a |method|: > + GetBuffer()->matchbufline('mypat', 1, '$') matchdelete({id} [, {win}) *matchdelete()* *E802* *E803* Deletes a match with ID {id} previously defined by |matchadd()| @@ -6185,6 +6419,43 @@ matchlist({expr}, {pat} [, {start} [, {count}]]) *matchlist()* Can also be used as a |method|: > GetText()->matchlist('word') +< + *matchstrlist()* +matchstrlist({list}, {pat} [, {dict}]) + Returns the |List| of matches in {list} where {pat} matches. + {list} is a |List| of strings. {pat} is matched against each + string in {list}. + + The {dict} argument supports following items: + submatches include submatch information (|/\(|) + + For each match, a |Dict| with the following items is returned: + byteidx starting byte index of the match. + idx index in {list} of the match. + text matched string + 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'}] +< + If "submatches" is present and is v:true, then submatches like + "\1", "\2", etc. are also returned. Example: > + :echo matchstrlist(['acd'], '\(a\)\?\(b\)\?\(c\)\?\(.*\)', + \ #{submatches: v:true}) + [{'idx': 0, '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. + + Can also be used as a |method|: > + GetListOfStrings()->matchstrlist('mypat') matchstr({expr}, {pat} [, {start} [, {count}]]) *matchstr()* Same as |match()|, but return the matched string. Example: > @@ -6379,8 +6650,8 @@ mkdir({name} [, {flags} [, {prot}]]) GetName()->mkdir() < *mode()* -mode([expr]) Return a string that indicates the current mode. - If [expr] is supplied and it evaluates to a non-zero Number or +mode([{expr}]) Return a string that indicates the current mode. + If {expr} is supplied and it evaluates to a non-zero Number or a non-empty String (|non-zero-arg|), then the full mode is returned, otherwise only the first letter is returned. Also see |state()|. @@ -6690,9 +6961,9 @@ printf({fmt}, {expr1} ...) *printf()* < This limits the length of the text used from "line" to "width" bytes. - If the argument to be formatted is specified using a posional - argument specifier, and a '*' is used to indicate that a - number argument is to be used to specify the width or + If the argument to be formatted is specified using a + positional argument specifier, and a '*' is used to indicate + that a number argument is to be used to specify the width or precision, the argument(s) to be used must also be specified using a {n$} positional argument specifier. See |printf-$|. @@ -6837,6 +7108,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") @@ -7302,9 +7576,9 @@ reltime({start}, {end}) *reltime()* echo startTime->reltime()->reltimestr() < Without an argument reltime() returns the current time (the - representation is system-dependent, it can not be used as the + representation is system-dependent, it cannot be used as the wall-clock time, see |localtime()| for that). - With one argument is returns the time passed since the time + With one argument it returns the time passed since the time specified in the argument. With two arguments it returns the time passed between {start} and {end}. @@ -7712,6 +7986,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 @@ -8818,7 +9093,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. @@ -9215,8 +9491,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: > @@ -9234,7 +9510,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. @@ -9347,11 +9623,17 @@ string({expr}) Return {expr} converted to a String. If {expr} is a Number, Dictionary {key: value, key: value} Class class SomeName Object object of SomeName {lnum: 1, col: 3} + Enum enum EnumName + EnumValue enum name.value {name: str, ordinal: nr} When a |List| or |Dictionary| has a recursive reference it is 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. |object-string()| + Can also be used as a |method|: > mylist->string() @@ -10205,6 +10487,9 @@ type({expr}) The result is a Number representing the type of {expr}. Blob: 10 |v:t_blob| Class: 12 |v:t_class| Object: 13 |v:t_object| + Typealias: 14 |v:t_typealias| + Enum: 15 |v:t_enum| + EnumValue: 16 |v:t_enumvalue| For backward compatibility, this method can be used: > :if type(myvar) == type(0) :if type(myvar) == type("") @@ -10577,17 +10862,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. @@ -10696,7 +10980,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 @@ -10938,6 +11224,7 @@ cscope Compiled with |cscope| support. cursorbind Compiled with |'cursorbind'| (always true) debug Compiled with "DEBUG" defined. dialog_con Compiled with console dialog support. +dialog_con_gui Compiled with console and GUI dialog support. dialog_gui Compiled with GUI dialog support. diff Compiled with |vimdiff| and 'diff' support. digraphs Compiled with support for digraphs. diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt index 7e20cf0611..fad389b2ff 100644 --- a/runtime/doc/change.txt +++ b/runtime/doc/change.txt @@ -1,4 +1,4 @@ -*change.txt* For Vim version 9.0. Last change: 2023 Nov 15 +*change.txt* For Vim version 9.1. Last change: 2024 Apr 14 VIM REFERENCE MANUAL by Bram Moolenaar @@ -452,9 +452,12 @@ octal number. Note that when 'nrformats' includes "octal", decimal numbers with leading zeros cause mistakes, because they can be confused with octal numbers. -Note similarly, when 'nrformats' includes "bin", binary numbers with a leading -'0x' or '0X' can be interpreted as hexadecimal rather than binary since '0b' -are valid hexadecimal digits. +Note similarly, when 'nrformats' includes both "bin" and "hex", binary numbers +with a leading '0x' or '0X' can be interpreted as hexadecimal rather than +binary since '0b' are valid hexadecimal digits. CTRL-A on "0x0b11" results in +"0x0b12", not "0x0b100". +When 'nrformats' includes "bin" and doesn't include "hex", CTRL-A on "0b11" in +"0x0b11" results in "0x0b100". When the number under the cursor is too big to fit into 32 or 64 bit (depending on how Vim was build), it will be rounded off to the nearest number @@ -1342,8 +1345,8 @@ expression (like with the "/" command). The expression must evaluate to a String. A Number is always automatically converted to a String. For the "p" and ":put" command, if the result is a Float it's converted into a String. If the result is a List each element is -turned into a String and used as a line. A Dictionary or FuncRef results in -an error message (use string() to convert). +turned into a String and used as a line. A Dictionary is converted into a +String. A FuncRef results in an error message (use string() to convert). If the "= register is used for the "p" command, the String is split up at characters. If the String ends in a , it is regarded as a linewise diff --git a/runtime/doc/channel.txt b/runtime/doc/channel.txt index a8cb196e1a..d625a01b24 100644 --- a/runtime/doc/channel.txt +++ b/runtime/doc/channel.txt @@ -1,4 +1,4 @@ -*channel.txt* For Vim version 9.0. Last change: 2023 Aug 15 +*channel.txt* For Vim version 9.1. Last change: 2023 Aug 15 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt index cbcf0ad274..13c4d729b7 100644 --- a/runtime/doc/cmdline.txt +++ b/runtime/doc/cmdline.txt @@ -1,4 +1,4 @@ -*cmdline.txt* For Vim version 9.0. Last change: 2023 Nov 15 +*cmdline.txt* For Vim version 9.1. Last change: 2023 Dec 09 VIM REFERENCE MANUAL by Bram Moolenaar @@ -463,9 +463,8 @@ CTRL-T When 'incsearch' is set, entering a search pattern for "/" or keyboard T is above G. The 'wildchar' option defaults to (CTRL-E when in Vi compatible mode; in -a previous version was used). In the pattern standard wildcards '*' and -'?' are accepted when matching file names. '*' matches any string, '?' -matches exactly one character. +a previous version was used). In the pattern standard |wildcards| are +accepted when matching file names. When repeating 'wildchar' or CTRL-N you cycle through the matches, eventually ending up back to what was typed. If the first match is not what you wanted, diff --git a/runtime/doc/debug.txt b/runtime/doc/debug.txt index 6fd88b679a..1d3090af8f 100644 --- a/runtime/doc/debug.txt +++ b/runtime/doc/debug.txt @@ -1,4 +1,4 @@ -*debug.txt* For Vim version 9.0. Last change: 2019 May 07 +*debug.txt* For Vim version 9.1. Last change: 2019 May 07 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/debugger.txt b/runtime/doc/debugger.txt index 5c5c8d33db..6b2b2528e5 100644 --- a/runtime/doc/debugger.txt +++ b/runtime/doc/debugger.txt @@ -1,4 +1,4 @@ -*debugger.txt* For Vim version 9.0. Last change: 2019 Dec 21 +*debugger.txt* For Vim version 9.1. Last change: 2019 Dec 21 VIM REFERENCE MANUAL by Gordon Prieur diff --git a/runtime/doc/develop.txt b/runtime/doc/develop.txt index 9325694755..1b1ad85616 100644 --- a/runtime/doc/develop.txt +++ b/runtime/doc/develop.txt @@ -1,4 +1,4 @@ -*develop.txt* For Vim version 9.0. Last change: 2022 Sep 20 +*develop.txt* For Vim version 9.1. Last change: 2022 Sep 20 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/diff.txt b/runtime/doc/diff.txt index 3caa7cf60a..e3abbdeff5 100644 --- a/runtime/doc/diff.txt +++ b/runtime/doc/diff.txt @@ -1,4 +1,4 @@ -*diff.txt* For Vim version 9.0. 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/digraph.txt b/runtime/doc/digraph.txt index 624aa27fad..6bed065235 100644 --- a/runtime/doc/digraph.txt +++ b/runtime/doc/digraph.txt @@ -1,4 +1,4 @@ -*digraph.txt* For Vim version 9.0. Last change: 2023 Oct 20 +*digraph.txt* For Vim version 9.1. Last change: 2023 Oct 20 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt index 7ebb41e82e..ca8f0aee85 100644 --- a/runtime/doc/editing.txt +++ b/runtime/doc/editing.txt @@ -1,4 +1,4 @@ -*editing.txt* For Vim version 9.0. Last change: 2023 Sep 27 +*editing.txt* For Vim version 9.1. Last change: 2024 Apr 12 VIM REFERENCE MANUAL by Bram Moolenaar @@ -658,9 +658,12 @@ list of the current window. :[count]arge[dit][!] [++opt] [+cmd] {name} .. *:arge* *:argedit* Add {name}s to the argument list and edit it. - When {name} already exists in the argument list, this - entry is edited. - This is like using |:argadd| and then |:edit|. + There is no check for duplicates, it is possible to + add a file to the argument list twice |:argded|. + This is like using |:argadd| and then |:edit| (with + the small exception that |:edit| does not change the + argument list, so the argument list pointer isn't + changed). Spaces in filenames have to be escaped with "\". [count] is used like with |:argadd|. If the current file cannot be |abandon|ed {name}s will @@ -679,12 +682,12 @@ list of the current window. If the argument list is "a b c", and "b" is the current argument, then these commands result in: command new argument list ~ - :argadd x a b x c - :0argadd x x a b c - :1argadd x a x b c - :$argadd x a b c x + :argadd x a [b] x c + :0argadd x x a [b] c + :1argadd x a x [b] c + :$argadd x a [b] c x And after the last one: - :+2argadd y a b c x y + :+2argadd y a [b] c x y There is no check for duplicates, it is possible to add a file to the argument list twice. You can use |:argdedupe| to fix it afterwards: > @@ -1329,8 +1332,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 24428887a8..92a116e52e 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1,4 +1,4 @@ -*eval.txt* For Vim version 9.0. Last change: 2023 Nov 20 +*eval.txt* For Vim version 9.1. Last change: 2024 Mar 28 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()|. @@ -879,7 +911,8 @@ Expression syntax summary, from least to most significant: expr5 isnot expr5 different |List|, |Dictionary| or |Blob| instance -|expr5| expr6 << expr6 bitwise left shift +|expr5| expr6 + expr6 << expr6 bitwise left shift expr6 >> expr6 bitwise right shift |expr6| expr7 @@ -2004,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: > @@ -2038,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 @@ -2569,6 +2611,12 @@ v:t_blob Value of |Blob| type. Read-only. See: |type()| v:t_class Value of |class| type. Read-only. See: |type()| *v:t_object* *t_object-variable* v:t_object Value of |object| type. Read-only. See: |type()| + *v:t_typealias* *t_typealias-variable* +v:t_typealias Value of |typealias| type. Read-only. See: |type()| + *v:t_enum* *t_enum-variable* +v:t_enum Value of |enum| type. Read-only. See: |type()| + *v:t_enumvalue* *t_enumvalue-variable* +v:t_enumvalue Value of |enumvalue| type. Read-only. See: |type()| *v:termresponse* *termresponse-variable* v:termresponse The escape sequence returned by the terminal for the |t_RV| @@ -2577,8 +2625,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 @@ -2590,27 +2639,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()`. @@ -2802,6 +2861,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|. @@ -4839,7 +4900,7 @@ have Vim execute random executables or may have forbidden to do so for specific filetypes by setting the "_exec" variable (|plugin_exec|). It returns |true| or |false| to indicate whether the plugin should run the given -exectuable. It takes the following arguments: +executable. It takes the following arguments: argument type ~ diff --git a/runtime/doc/farsi.txt b/runtime/doc/farsi.txt index a2afab4fa0..f4474038d4 100644 --- a/runtime/doc/farsi.txt +++ b/runtime/doc/farsi.txt @@ -1,4 +1,4 @@ -*farsi.txt* For Vim version 9.0. Last change: 2019 May 05 +*farsi.txt* For Vim version 9.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Mortaza Ghassab Shiran diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt index e35ffb83b5..f13cfc60d1 100644 --- a/runtime/doc/filetype.txt +++ b/runtime/doc/filetype.txt @@ -1,4 +1,4 @@ -*filetype.txt* For Vim version 9.0. Last change: 2023 Dec 05 +*filetype.txt* For Vim version 9.1. Last change: 2024 Apr 09 VIM REFERENCE MANUAL by Bram Moolenaar @@ -148,6 +148,7 @@ variables can be used to overrule the filetype used for certain extensions: *.cls g:filetype_cls *.csh g:filetype_csh |ft-csh-syntax| *.dat g:filetype_dat + *.def g:filetype_def *.f g:filetype_f |ft-forth-syntax| *.frm g:filetype_frm |ft-form-syntax| *.fs g:filetype_fs |ft-forth-syntax| @@ -156,6 +157,8 @@ variables can be used to overrule the filetype used for certain extensions: *.inc g:filetype_inc *.lsl g:filetype_lsl *.m g:filetype_m |ft-mathematica-syntax| + *.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,*.md + g:filetype_md |ft-pandoc-syntax| *.mod g:filetype_mod *.p g:filetype_p |ft-pascal-syntax| *.pl g:filetype_pl @@ -169,6 +172,7 @@ variables can be used to overrule the filetype used for certain extensions: *.sh g:bash_is_sh |ft-sh-syntax| *.tex g:tex_flavor |ft-tex-plugin| *.typ g:filetype_typ + *.v g:filetype_v *.w g:filetype_w |ft-cweb-syntax| For a few filetypes the global variable is used only when the filetype could @@ -435,6 +439,19 @@ So to enable this only for ruby, set the following variable: > If both, the global `plugin_exec` and the `_exec` specific variable are set, the filetype specific variable should have precedent. + +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 + + AWK *ft-awk-plugin* Support for features specific to GNU Awk, like @include, can be enabled by @@ -494,7 +511,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 @@ -508,7 +525,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 > @@ -610,6 +627,18 @@ The mapping can be disabled with: > let g:no_gprof_maps = 1 +JSON-FORMAT *ft-json-plugin* + +JSON filetype can be extended to use 'formatexpr' and "json.FormatExpr()" +function for json formatting (using |gq|). + +Add following lines to $HOME/.vim/ftplugin/json.vim: > + + vim9script + import autoload 'dist/json.vim' + setl formatexpr=json.FormatExpr() + + MAIL *ft-mail-plugin* Options: @@ -767,6 +796,14 @@ To enable this behavior, set the following variable in your vimrc: > let g:rst_style = 1 +RNOWEB *ft-rnoweb-plugin* + +The 'formatexpr' option is set dynamically with different values for R code +and for LaTeX code. If you prefer that 'formatexpr' is not set, add to your +|vimrc|: > + let rnw_dynamic_comments = 0 + + RPM SPEC *ft-spec-plugin* Since the text for this plugin is rather long it has been put in a separate diff --git a/runtime/doc/fold.txt b/runtime/doc/fold.txt index e8078be22c..b290492050 100644 --- a/runtime/doc/fold.txt +++ b/runtime/doc/fold.txt @@ -1,4 +1,4 @@ -*fold.txt* For Vim version 9.0. Last change: 2023 Mar 24 +*fold.txt* For Vim version 9.1. Last change: 2023 Mar 24 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/ft_ada.txt b/runtime/doc/ft_ada.txt index fe002564e0..35dd534bb1 100644 --- a/runtime/doc/ft_ada.txt +++ b/runtime/doc/ft_ada.txt @@ -1,4 +1,4 @@ -*ft_ada.txt* For Vim version 9.0. Last change: 2022 Mar 13 +*ft_ada.txt* For Vim version 9.1. Last change: 2022 Mar 13 ADA FILE TYPE PLUG-INS REFERENCE MANUAL~ @@ -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_context.txt b/runtime/doc/ft_context.txt index 6303357ec7..fa8316457b 100644 --- a/runtime/doc/ft_context.txt +++ b/runtime/doc/ft_context.txt @@ -1,4 +1,4 @@ -*ft_context.txt* For Vim version 9.0. Last change: 2022 Sep 27 +*ft_context.txt* For Vim version 9.1. Last change: 2024 Jan 01 This is the documentation for the ConTeXt filetype plugin. @@ -103,13 +103,13 @@ Stop all the ConTeXt jobs currently running in the background. Settings ~ *'b:context_ignore_makefile'* *'g:context_ignore_makefile'* -`:make` can be used to (synchronously) typeset a document. If a Makefile exists +|:make| can be used to (synchronously) typeset a document. If a Makefile exists and this option is not set, standard `make` is used. If this option is set, `mtxrun` is invoked instead, even if a Makefile exists. > g:context_ignore_makefile = 0 < -NOTE: before using `:make`, set the working directory of the buffer to the +NOTE: before using |:make|, set the working directory of the buffer to the directory of the file to be typeset. *'g:context_extra_options'* diff --git a/runtime/doc/ft_mp.txt b/runtime/doc/ft_mp.txt index 595bc0241c..11ddd3b796 100644 --- a/runtime/doc/ft_mp.txt +++ b/runtime/doc/ft_mp.txt @@ -1,4 +1,4 @@ -*ft_mp.txt* For Vim version 9.0. Last change: 2022 Aug 12 +*ft_mp.txt* For Vim version 9.1. Last change: 2022 Aug 12 This is the documentation for the METAFONT and MetaPost filetype plugins. Unless otherwise specified, the commands, settings and mappings defined below diff --git a/runtime/doc/ft_rust.txt b/runtime/doc/ft_rust.txt index fb8141c14d..564f3e774a 100644 --- a/runtime/doc/ft_rust.txt +++ b/runtime/doc/ft_rust.txt @@ -160,7 +160,7 @@ g:rustfmt_emit_files~ provided) instead of '--write-mode=overwrite'. > let g:rustfmt_emit_files = 0 - +< *g:rust_playpen_url* g:rust_playpen_url~ Set this option to override the url for the playpen to use: > diff --git a/runtime/doc/ft_sql.txt b/runtime/doc/ft_sql.txt index 0bf98861e6..110784d8cf 100644 --- a/runtime/doc/ft_sql.txt +++ b/runtime/doc/ft_sql.txt @@ -1,4 +1,4 @@ -*ft_sql.txt* For Vim version 9.0. Last change: 2022 Apr 06 +*ft_sql.txt* For Vim version 9.1. Last change: 2022 Apr 06 by David Fishburn @@ -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.txt b/runtime/doc/gui.txt index f9b1d27797..9d320954ec 100644 --- a/runtime/doc/gui.txt +++ b/runtime/doc/gui.txt @@ -1,4 +1,4 @@ -*gui.txt* For Vim version 9.0. Last change: 2023 Apr 29 +*gui.txt* For Vim version 9.1. Last change: 2023 Apr 29 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/gui_w32.txt b/runtime/doc/gui_w32.txt index d8ce03e514..c6f5725d82 100644 --- a/runtime/doc/gui_w32.txt +++ b/runtime/doc/gui_w32.txt @@ -1,4 +1,4 @@ -*gui_w32.txt* For Vim version 9.0. 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 8e29c59e65..2b4e274e4a 100644 --- a/runtime/doc/gui_x11.txt +++ b/runtime/doc/gui_x11.txt @@ -1,4 +1,4 @@ -*gui_x11.txt* For Vim version 9.0. Last change: 2022 Apr 03 +*gui_x11.txt* For Vim version 9.1. Last change: 2024 Jan 30 VIM REFERENCE MANUAL by Bram Moolenaar @@ -589,7 +589,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* @@ -656,6 +657,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/hangulin.txt b/runtime/doc/hangulin.txt index 76db5b2497..3f37d8eb83 100644 --- a/runtime/doc/hangulin.txt +++ b/runtime/doc/hangulin.txt @@ -1,4 +1,4 @@ -*hangulin.txt* For Vim version 9.0. Last change: 2019 Nov 21 +*hangulin.txt* For Vim version 9.1. Last change: 2019 Nov 21 VIM REFERENCE MANUAL by Chi-Deok Hwang and Sung-Hyun Nam diff --git a/runtime/doc/hebrew.txt b/runtime/doc/hebrew.txt index 2644f81a50..c30b452e29 100644 --- a/runtime/doc/hebrew.txt +++ b/runtime/doc/hebrew.txt @@ -1,4 +1,4 @@ -*hebrew.txt* For Vim version 9.0. Last change: 2019 May 05 +*hebrew.txt* For Vim version 9.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Ron Aaron (and Avner Lottem) diff --git a/runtime/doc/help.txt b/runtime/doc/help.txt index 9262dee2f2..343ea76059 100644 --- a/runtime/doc/help.txt +++ b/runtime/doc/help.txt @@ -1,4 +1,4 @@ -*help.txt* For Vim version 9.0. Last change: 2022 Dec 03 +*help.txt* For Vim version 9.1. Last change: 2022 Dec 03 VIM - main help file k diff --git a/runtime/doc/helphelp.txt b/runtime/doc/helphelp.txt index 61bd218487..40039e3916 100644 --- a/runtime/doc/helphelp.txt +++ b/runtime/doc/helphelp.txt @@ -1,4 +1,4 @@ -*helphelp.txt* For Vim version 9.0. Last change: 2022 Jan 08 +*helphelp.txt* For Vim version 9.1. Last change: 2024 Apr 10 VIM REFERENCE MANUAL by Bram Moolenaar @@ -315,7 +315,7 @@ Hints for translators: using the "tag@en" notation. - Make a package with all the files and the tags file available for download. Users can drop it in one of the "doc" directories and start use it. - Report this to Bram, so that he can add a link on www.vim.org. + Report to the development team, so they can add a link on www.vim.org. - Use the |:helptags| command to generate the tags files. It will find all languages in the specified directory. diff --git a/runtime/doc/howto.txt b/runtime/doc/howto.txt index 75169a99be..e71ee8436b 100644 --- a/runtime/doc/howto.txt +++ b/runtime/doc/howto.txt @@ -1,4 +1,4 @@ -*howto.txt* For Vim version 9.0. Last change: 2006 Apr 02 +*howto.txt* For Vim version 9.1. Last change: 2006 Apr 02 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/if_cscop.txt b/runtime/doc/if_cscop.txt index 8f98161e79..3fa8f817f4 100644 --- a/runtime/doc/if_cscop.txt +++ b/runtime/doc/if_cscop.txt @@ -1,4 +1,4 @@ -*if_cscop.txt* For Vim version 9.0. Last change: 2022 Jan 08 +*if_cscop.txt* For Vim version 9.1. Last change: 2022 Jan 08 VIM REFERENCE MANUAL by Andy Kahn diff --git a/runtime/doc/if_lua.txt b/runtime/doc/if_lua.txt index 63ee91aee0..e779d0aa82 100644 --- a/runtime/doc/if_lua.txt +++ b/runtime/doc/if_lua.txt @@ -1,4 +1,4 @@ -*if_lua.txt* For Vim version 9.0. Last change: 2021 Aug 06 +*if_lua.txt* For Vim version 9.1. Last change: 2021 Aug 06 VIM REFERENCE MANUAL by Luis Carvalho diff --git a/runtime/doc/if_mzsch.txt b/runtime/doc/if_mzsch.txt index 9e9b252e76..ea54012984 100644 --- a/runtime/doc/if_mzsch.txt +++ b/runtime/doc/if_mzsch.txt @@ -1,4 +1,4 @@ -*if_mzsch.txt* For Vim version 9.0. Last change: 2020 Oct 14 +*if_mzsch.txt* For Vim version 9.1. Last change: 2020 Oct 14 VIM REFERENCE MANUAL by Sergey Khorev diff --git a/runtime/doc/if_ole.txt b/runtime/doc/if_ole.txt index 39d70a84f7..c546e971a6 100644 --- a/runtime/doc/if_ole.txt +++ b/runtime/doc/if_ole.txt @@ -1,4 +1,4 @@ -*if_ole.txt* For Vim version 9.0. Last change: 2023 Nov 19 +*if_ole.txt* For Vim version 9.1. Last change: 2023 Nov 19 VIM REFERENCE MANUAL by Paul Moore @@ -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/if_perl.txt b/runtime/doc/if_perl.txt index 5cc992d0d2..86edd05a0a 100644 --- a/runtime/doc/if_perl.txt +++ b/runtime/doc/if_perl.txt @@ -1,4 +1,4 @@ -*if_perl.txt* For Vim version 9.0. Last change: 2023 May 14 +*if_perl.txt* For Vim version 9.1. Last change: 2023 May 14 VIM REFERENCE MANUAL by Sven Verdoolaege diff --git a/runtime/doc/if_pyth.txt b/runtime/doc/if_pyth.txt index 4ea6d13802..8456d08c66 100644 --- a/runtime/doc/if_pyth.txt +++ b/runtime/doc/if_pyth.txt @@ -1,4 +1,4 @@ -*if_pyth.txt* For Vim version 9.0. Last change: 2023 Oct 25 +*if_pyth.txt* For Vim version 9.1. Last change: 2023 Oct 25 VIM REFERENCE MANUAL by Paul Moore diff --git a/runtime/doc/if_ruby.txt b/runtime/doc/if_ruby.txt index caecc6d2c9..6a01568a90 100644 --- a/runtime/doc/if_ruby.txt +++ b/runtime/doc/if_ruby.txt @@ -1,4 +1,4 @@ -*if_ruby.txt* For Vim version 9.0. Last change: 2019 Jul 21 +*if_ruby.txt* For Vim version 9.1. Last change: 2019 Jul 21 VIM REFERENCE MANUAL by Shugo Maeda diff --git a/runtime/doc/if_sniff.txt b/runtime/doc/if_sniff.txt index 27db68871d..7cbb0ff972 100644 --- a/runtime/doc/if_sniff.txt +++ b/runtime/doc/if_sniff.txt @@ -1,4 +1,4 @@ -*if_sniff.txt* For Vim version 9.0. Last change: 2016 Feb 27 +*if_sniff.txt* For Vim version 9.1. Last change: 2016 Feb 27 VIM REFERENCE MANUAL diff --git a/runtime/doc/if_tcl.txt b/runtime/doc/if_tcl.txt index 7091469ac7..4ed789a0a7 100644 --- a/runtime/doc/if_tcl.txt +++ b/runtime/doc/if_tcl.txt @@ -1,4 +1,4 @@ -*if_tcl.txt* For Vim version 9.0. Last change: 2022 Jan 08 +*if_tcl.txt* For Vim version 9.1. Last change: 2022 Jan 08 VIM REFERENCE MANUAL by Ingo Wilken diff --git a/runtime/doc/indent.txt b/runtime/doc/indent.txt index c65a616474..fe24505ed1 100644 --- a/runtime/doc/indent.txt +++ b/runtime/doc/indent.txt @@ -1,4 +1,4 @@ -*indent.txt* For Vim version 9.0. Last change: 2023 Dec 05 +*indent.txt* For Vim version 9.1. Last change: 2024 Feb 29 VIM REFERENCE MANUAL by Bram Moolenaar @@ -712,15 +712,16 @@ clojure-mode.el: FORTRAN *ft-fortran-indent* -Block if, select case, where, and forall constructs are indented. So are -type, interface, associate, block, and enum constructs. The indenting of -subroutines, functions, modules, and program blocks is optional. Comments, -labeled statements, and continuation lines are indented if the Fortran is in -free source form, whereas they are not indented if the Fortran is in fixed -source form because of the left margin requirements. Hence manual indent -corrections will be necessary for labelled statements and continuation lines -when fixed source form is being used. For further discussion of the method -used for the detection of source format see |ft-fortran-syntax|. +Block if, select case, select type, select rank, where, forall, type, +interface, associate, block, enum, critical, and change team constructs are +indented. The indenting of subroutines, functions, modules, and program blocks +is optional. Comments, labeled statements, and continuation lines are indented +if the Fortran is in free source form, whereas they are not indented if the +Fortran is in fixed source form because of the left margin requirements. Hence +manual indent corrections will be necessary for labeled statements and +continuation lines when fixed source form is being used. For further +discussion of the method used for the detection of source format see +|ft-fortran-syntax|. Do loops ~ All do loops are left unindented by default. Do loops can be unstructured in @@ -1040,8 +1041,8 @@ r_indent_comment_column, as in the example below: let r_indent_comment_column = 30 < Any code after a line that ends with "<-" is indented. Emacs/ESS does not -indent the code if it is a top level function. If you prefer that the -Vim-R-plugin behaves like Emacs/ESS in this regard, put in your |vimrc|: +indent the code if it is a top-level function. If you prefer a behavior like +Emacs/ESS one in this regard, put in your |vimrc|: > let r_indent_ess_compatible = 1 < @@ -1254,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 7b436092ce..9a4eb4269c 100644 --- a/runtime/doc/index.txt +++ b/runtime/doc/index.txt @@ -1,4 +1,4 @@ -*index.txt* For Vim version 9.0. Last change: 2023 Jan 09 +*index.txt* For Vim version 9.1. Last change: 2023 Jan 09 VIM REFERENCE MANUAL by Bram Moolenaar @@ -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/insert.txt b/runtime/doc/insert.txt index 8696e912f3..6ebd83e3e7 100644 --- a/runtime/doc/insert.txt +++ b/runtime/doc/insert.txt @@ -1,4 +1,4 @@ -*insert.txt* For Vim version 9.0. Last change: 2022 Sep 30 +*insert.txt* For Vim version 9.1. Last change: 2024 Jan 04 VIM REFERENCE MANUAL by Bram Moolenaar @@ -168,22 +168,22 @@ CTRL-R CTRL-O {register} *i_CTRL-R_CTRL-O* auto-indent. Does the same as pasting with the mouse ||. When the register is linewise this will insert the text above the current line, like with `P`. - Does not replace characters! The '.' register (last inserted text) is still inserted as typed. After this command, the '.' register contains the command typed and not the text. I.e., the literals "^R^O" and not the text from the register. + Does not replace characters in |Replace-mode|! CTRL-R CTRL-P {register} *i_CTRL-R_CTRL-P* Insert the contents of a register literally and fix the indent, like |[|. - Does not replace characters! The '.' register (last inserted text) is still inserted as typed. After this command, the '.' register contains the command typed and not the text. I.e., the literals "^R^P" and not the text from the register. + Does not replace characters in |Replace-mode|! *i_CTRL-T* CTRL-T Insert one shiftwidth of indent at the start of the current diff --git a/runtime/doc/intro.txt b/runtime/doc/intro.txt index 567f347f94..12808a5b5a 100644 --- a/runtime/doc/intro.txt +++ b/runtime/doc/intro.txt @@ -1,4 +1,4 @@ -*intro.txt* For Vim version 9.0. Last change: 2023 Nov 18 +*intro.txt* For Vim version 9.1. Last change: 2024 Apr 11 VIM REFERENCE MANUAL by Bram Moolenaar @@ -132,9 +132,9 @@ There are three ways to report bugs: 3. Send bug reports to: Vim Developers This is a maillist, you need to become a member first and many people will see the message. If you don't want that, e.g. because it is a security - issue, please contact any of the current Vim maintainers - https://github.com/orgs/vim/people (but not Bram or the vim-dev ML). - In the future, a proper process for handling security issues will be setup. + issue, please contact the current Vim maintainers at the e-mail address + or create a security advisory at Github: + https://github.com/vim/vim/security/advisories Please be brief; all the time that is spent on answering mail is subtracted from the time that is spent on improving Vim! Always give a reproducible @@ -145,7 +145,7 @@ Preferably start Vim with: > Where reproduce.vim is a script that reproduces the problem. Try different machines, if relevant (is this an MS-Windows specific bug perhaps?). -Send me patches if you can! If you create a pull request on +Send patches if you can! If you create a pull request on https://github.com/vim/vim then the automated checks will run and report any obvious problems. But you can also send the patch by email (use an attachment to avoid white space changes). @@ -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 c6b2cd91f3..20b2b081ad 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 1dcd99bf92..12297261c7 100644 --- a/runtime/doc/map.txt +++ b/runtime/doc/map.txt @@ -1,4 +1,4 @@ -*map.txt* For Vim version 9.0. Last change: 2023 May 28 +*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| @@ -406,7 +407,7 @@ Note: *E1255* *E1136* and commands must terminate, that is, they must be followed by in the {rhs} of the mapping definition. |Command-line| mode is never -entered. +entered. To use a literal in the {rhs}, use ||. 1.3 MAPPING AND MODES *:map-modes* @@ -586,10 +587,12 @@ While mappings are being listed, it is not possible to add or clear mappings, e.g. from a timer callback. *E1309* *:map-verbose* -When 'verbose' is non-zero, listing a key map will also display where it was +When 'verbose' is non-zero, the detected and used 'keyprotocol' value will be +displayed in the first line. Also a key map will also display where it was last defined. Example: > :verbose map * + Kitty keyboard protocol: Cleared n * * * Last set from /home/abcd/.vimrc @@ -983,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 @@ -1046,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 @@ -1073,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 @@ -1629,6 +1641,7 @@ completion can be enabled: -complete=help help subjects -complete=highlight highlight groups -complete=history :history suboptions + -complete=keymap keyboard mappings -complete=locale locale names (as output of locale -a) -complete=mapclear buffer argument -complete=mapping mapping name diff --git a/runtime/doc/mbyte.txt b/runtime/doc/mbyte.txt index 81d391c3e5..91154a7449 100644 --- a/runtime/doc/mbyte.txt +++ b/runtime/doc/mbyte.txt @@ -1,4 +1,4 @@ -*mbyte.txt* For Vim version 9.0. Last change: 2022 Apr 03 +*mbyte.txt* For Vim version 9.1. Last change: 2022 Apr 03 VIM REFERENCE MANUAL by Bram Moolenaar et al. diff --git a/runtime/doc/message.txt b/runtime/doc/message.txt index f8a9fdfa60..6453b95fab 100644 --- a/runtime/doc/message.txt +++ b/runtime/doc/message.txt @@ -1,4 +1,4 @@ -*message.txt* For Vim version 9.0. Last change: 2023 Nov 08 +*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 ~ @@ -135,8 +142,6 @@ This happens when an Ex command executes an Ex command that executes an Ex command, etc. The limit is 200 or the value of 'maxfuncdepth', whatever is larger. When it's more there probably is an endless loop. Probably a |:execute| or |:source| command is involved. -Can also happen with a recursive callback function (|job-callback|). -A limit of 20 is used here. *E254* Cannot allocate color {name} ~ diff --git a/runtime/doc/mlang.txt b/runtime/doc/mlang.txt index 8997e1c27f..82c9772a72 100644 --- a/runtime/doc/mlang.txt +++ b/runtime/doc/mlang.txt @@ -1,4 +1,4 @@ -*mlang.txt* For Vim version 9.0. Last change: 2022 Sep 17 +*mlang.txt* For Vim version 9.1. Last change: 2022 Sep 17 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt index 403ef4f307..8c07fbf53e 100644 --- a/runtime/doc/motion.txt +++ b/runtime/doc/motion.txt @@ -1,4 +1,4 @@ -*motion.txt* For Vim version 9.0. Last change: 2023 Sep 28 +*motion.txt* For Vim version 9.1. Last change: 2023 Dec 27 VIM REFERENCE MANUAL by Bram Moolenaar @@ -600,7 +600,8 @@ i] *v_i]* *v_i[* *i]* *i[* i[ "inner [] block", select [count] '[' ']' blocks. This goes backwards to the [count] unclosed '[', and finds the matching ']'. The enclosed text is selected, - excluding the '[' and ']'. The |cpo-M| option flag + excluding the '[' and ']'. It's an error to select an + empty inner block like "[]". The |cpo-M| option flag is used to handle escaped brackets. When used in Visual mode it is made characterwise. @@ -618,7 +619,8 @@ i( *vib* *v_ib* *v_i(* *ib* ib "inner block", select [count] blocks, from "[count] [(" to the matching ')', excluding the '(' and ')' (see |[(|). If the cursor is not inside a () block, then - find the next "(". The |cpo-M| option flag + find the next "(". It's an error to select an empty + inner block like "()". The |cpo-M| option flag is used to handle escaped parenthesis. When used in Visual mode it is made characterwise. @@ -632,8 +634,9 @@ a< "a <> block", select [count] <> blocks, from the i> *v_i>* *v_i<* *i>* *i<* i< "inner <> block", select [count] <> blocks, from the [count]'th unmatched '<' backwards to the matching - '>', excluding the '<' and '>'. The |cpo-M| option flag - is used to handle escaped '<' and '>'. + '>', excluding the '<' and '>'. It's an error to + select an empty inner block like "<>". The |cpo-M| + option flag is used to handle escaped '<' and '>'. When used in Visual mode it is made characterwise. *v_at* *at* @@ -663,7 +666,8 @@ i} *v_i}* *i}* *i{* i{ *v_iB* *v_i{* *iB* iB "inner Block", select [count] Blocks, from "[count] [{" to the matching '}', excluding the '{' and '}' (see - |[{|). The |cpo-M| option flag is used to handle + |[{|). It's an error to select an empty inner block + like "{}". The |cpo-M| option flag is used to handle escaped braces. When used in Visual mode it is made characterwise. @@ -1310,14 +1314,12 @@ bring you back to the switch statement. ]m Go to [count] next start of a method (for Java or similar structured language). When not before the start of a method, jump to the start or end of the - class. When no '{' is found after the cursor, this is - an error. |exclusive| motion. + class. |exclusive| motion. *]M* ]M Go to [count] next end of a method (for Java or similar structured language). When not before the end of a method, jump to the start or end of the class. - When no '}' is found after the cursor, this is an - error. |exclusive| motion. + |exclusive| motion. *[m* [m Go to [count] previous start of a method (for Java or similar structured language). When not after the diff --git a/runtime/doc/netbeans.txt b/runtime/doc/netbeans.txt index 905c79791f..a62123ce64 100644 --- a/runtime/doc/netbeans.txt +++ b/runtime/doc/netbeans.txt @@ -1,4 +1,4 @@ -*netbeans.txt* For Vim version 9.0. Last change: 2023 Nov 26 +*netbeans.txt* For Vim version 9.1. Last change: 2023 Nov 26 VIM REFERENCE MANUAL by Gordon Prieur et al. diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index b1069c5836..8e3417e18e 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -1,4 +1,4 @@ -*options.txt* For Vim version 9.0. Last change: 2023 Nov 20 +*options.txt* For Vim version 9.1. Last change: 2024 Mar 29 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 @@ -994,11 +1008,11 @@ A jump table for the options with a short description can be found at |Q_op|. what the background color looks like. For changing the background color, see |:hi-normal|. - When 'background' is set Vim will adjust the default color groups for - the new value. But the colors used for syntax highlighting will not - change. *g:colors_name* + When 'background' is changed Vim will adjust the default color groups + for the new value. But the colors used for syntax highlighting will + not change. *g:colors_name* When a color scheme is loaded (the "g:colors_name" variable is set) - setting 'background' will cause the color scheme to be reloaded. If + changing 'background' will cause the color scheme to be reloaded. If the color scheme adjusts to the value of 'background' this will work. However, if the color scheme sets 'background' itself the effect may be undone. First delete the "g:colors_name" variable when needed. @@ -2934,7 +2948,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 @@ -3493,12 +3507,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 @@ -3519,7 +3531,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 ~ @@ -3930,9 +3942,9 @@ A jump table for the options with a short description can be found at |Q_op|. :s///gg subst. all subst. one NOTE: This option is reset when 'compatible' is set. - DEPRECATED: Setting this option may break plugins that are not aware - of this option. Also, many users get confused that adding the /g flag - has the opposite effect of that it normally does. + Setting this option may break plugins that rely on the default + behavior of the 'g' flag. This will also make the 'g' flag have the + opposite effect of that documented in |:s_g|. This option is not used in |Vim9| script. *'grepformat'* *'gfm'* @@ -4094,7 +4106,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. @@ -5337,7 +5349,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 @@ -5413,7 +5425,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 @@ -5608,6 +5620,7 @@ A jump table for the options with a short description can be found at |Q_op|. Increasing this limit above 200 also changes the maximum for Ex command recursion, see |E169|. See also |:function|. + Also used for maximum depth of callback functions. *'maxmapdepth'* *'mmd'* *E223* 'maxmapdepth' 'mmd' number (default 1000) @@ -6586,7 +6599,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 @@ -7372,7 +7385,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]" @@ -7620,8 +7633,7 @@ A jump table for the options with a short description can be found at |Q_op|. highlighted with |hl-NonText|. You may also want to add "lastline" to the 'display' option to show as much of the last line as possible. - NOTE: only partly implemented, currently works with CTRL-E, CTRL-Y - and scrolling with the mouse. + NOTE: partly implemented, doesn't work yet for |gj| and |gk|. *'softtabstop'* *'sts'* 'softtabstop' 'sts' number (default 0) @@ -8140,6 +8152,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) @@ -8222,7 +8236,7 @@ A jump table for the options with a short description can be found at |Q_op|. appear wrong in many places, e.g., when printing it. The value must be more than 0 and less than 10000. - There are four main ways to use tabs in Vim: + There are five main ways to use tabs in Vim: 1. Always keep 'tabstop' at 8, set 'softtabstop' and 'shiftwidth' to 4 (or 3 or whatever you prefer) and use 'noexpandtab'. Then Vim will use a mix of tabs and spaces, but typing and will @@ -8714,8 +8728,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. @@ -9595,11 +9612,20 @@ A jump table for the options with a short description can be found at |Q_op|. will scroll 'window' minus two lines, with a minimum of one. When 'window' is equal to 'lines' minus one CTRL-F and CTRL-B scroll in a much smarter way, taking care of wrapping lines. - When resizing the Vim window, the value is smaller than 1 or more than - or equal to 'lines' it will be set to 'lines' minus 1. + When resizing the Vim window, and the value is smaller than 1 or more + than or equal to 'lines' it will be set to 'lines' minus 1. 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_390.txt b/runtime/doc/os_390.txt index 42c8a8b51b..e15cd258f7 100644 --- a/runtime/doc/os_390.txt +++ b/runtime/doc/os_390.txt @@ -1,4 +1,4 @@ -*os_390.txt* For Vim version 9.0. Last change: 2019 Dec 07 +*os_390.txt* For Vim version 9.1. Last change: 2019 Dec 07 VIM REFERENCE MANUAL by Ralf Schandl diff --git a/runtime/doc/os_amiga.txt b/runtime/doc/os_amiga.txt index 062ad3b2e7..32d460281c 100644 --- a/runtime/doc/os_amiga.txt +++ b/runtime/doc/os_amiga.txt @@ -1,4 +1,4 @@ -*os_amiga.txt* For Vim version 9.0. Last change: 2010 Aug 14 +*os_amiga.txt* For Vim version 9.1. Last change: 2010 Aug 14 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/os_beos.txt b/runtime/doc/os_beos.txt index 8a2ac487be..5ac41597ff 100644 --- a/runtime/doc/os_beos.txt +++ b/runtime/doc/os_beos.txt @@ -1,4 +1,4 @@ -*os_beos.txt* For Vim version 9.0. Last change: 2020 Jun 07 +*os_beos.txt* For Vim version 9.1. Last change: 2020 Jun 07 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/os_dos.txt b/runtime/doc/os_dos.txt index e5e405caf4..e81ba9a5ab 100644 --- a/runtime/doc/os_dos.txt +++ b/runtime/doc/os_dos.txt @@ -1,4 +1,4 @@ -*os_dos.txt* For Vim version 9.0. Last change: 2006 Mar 30 +*os_dos.txt* For Vim version 9.1. Last change: 2006 Mar 30 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/os_haiku.txt b/runtime/doc/os_haiku.txt index fdcf7fe783..8fe8c9f56c 100644 --- a/runtime/doc/os_haiku.txt +++ b/runtime/doc/os_haiku.txt @@ -1,4 +1,4 @@ -*os_haiku.txt* For Vim version 9.0. Last change: 2020 May 13 +*os_haiku.txt* For Vim version 9.1. Last change: 2020 May 13 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/os_mac.txt b/runtime/doc/os_mac.txt index 5d1f38c7d9..6c1cfb35a4 100644 --- a/runtime/doc/os_mac.txt +++ b/runtime/doc/os_mac.txt @@ -1,4 +1,4 @@ -*os_mac.txt* For Vim version 9.0. Last change: 2019 Apr 21 +*os_mac.txt* For Vim version 9.1. Last change: 2019 Apr 21 VIM REFERENCE MANUAL by Bram Moolenaar et al. diff --git a/runtime/doc/os_mint.txt b/runtime/doc/os_mint.txt index 4273c55012..54d40a3df7 100644 --- a/runtime/doc/os_mint.txt +++ b/runtime/doc/os_mint.txt @@ -1,4 +1,4 @@ -*os_mint.txt* For Vim version 9.0. Last change: 2020 Jul 14 +*os_mint.txt* For Vim version 9.1. Last change: 2020 Jul 14 VIM REFERENCE MANUAL by Jens M. Felderhoff diff --git a/runtime/doc/os_msdos.txt b/runtime/doc/os_msdos.txt index 67821ed474..d6d67f0040 100644 --- a/runtime/doc/os_msdos.txt +++ b/runtime/doc/os_msdos.txt @@ -1,4 +1,4 @@ -*os_msdos.txt* For Vim version 9.0. Last change: 2016 Feb 26 +*os_msdos.txt* For Vim version 9.1. Last change: 2016 Feb 26 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/os_os2.txt b/runtime/doc/os_os2.txt index a07767ef90..bd24d139ae 100644 --- a/runtime/doc/os_os2.txt +++ b/runtime/doc/os_os2.txt @@ -1,4 +1,4 @@ -*os_os2.txt* For Vim version 9.0. Last change: 2015 Dec 31 +*os_os2.txt* For Vim version 9.1. Last change: 2015 Dec 31 VIM REFERENCE MANUAL by Paul Slootman diff --git a/runtime/doc/os_qnx.txt b/runtime/doc/os_qnx.txt index ade1c7a56f..e1a586d148 100644 --- a/runtime/doc/os_qnx.txt +++ b/runtime/doc/os_qnx.txt @@ -1,4 +1,4 @@ -*os_qnx.txt* For Vim version 9.0. Last change: 2005 Mar 29 +*os_qnx.txt* For Vim version 9.1. Last change: 2005 Mar 29 VIM REFERENCE MANUAL by Julian Kinraid diff --git a/runtime/doc/os_risc.txt b/runtime/doc/os_risc.txt index 92af8cd6bc..dad3549b98 100644 --- a/runtime/doc/os_risc.txt +++ b/runtime/doc/os_risc.txt @@ -1,4 +1,4 @@ -*os_risc.txt* For Vim version 9.0. Last change: 2011 May 10 +*os_risc.txt* For Vim version 9.1. Last change: 2011 May 10 VIM REFERENCE MANUAL by Thomas Leonard diff --git a/runtime/doc/os_unix.txt b/runtime/doc/os_unix.txt index 9908b154cf..90069a20b2 100644 --- a/runtime/doc/os_unix.txt +++ b/runtime/doc/os_unix.txt @@ -1,4 +1,4 @@ -*os_unix.txt* For Vim version 9.0. Last change: 2022 Nov 25 +*os_unix.txt* For Vim version 9.1. Last change: 2022 Nov 25 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/os_vms.txt b/runtime/doc/os_vms.txt index 3c5d51707f..862f31d07f 100644 --- a/runtime/doc/os_vms.txt +++ b/runtime/doc/os_vms.txt @@ -1,4 +1,4 @@ -*os_vms.txt* For Vim version 9.0. Last change: 2022 Nov 25 +*os_vms.txt* For Vim version 9.1. Last change: 2023 Dec 14 VIM REFERENCE MANUAL @@ -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 @@ -767,11 +767,11 @@ GNU_TOOLS.ZIP package downloadable from http://www.polarhome.com/vim/ Version 9.0 (2023 Nov 27) - Vim is ported to the X86_64 architecture - - IMPORTANT: because of the getline function name used in stucts like in ex_cmds.h + - IMPORTANT: because of the getline function name used in structs like in ex_cmds.h on X86_64 the CRTL_VER is kept under 80500000 level. The proper solution would be to rename the getline function to something else in the struct (and in all places it is used) - and avoiding to use POSIX functions in structs, but this change would - impact on all other operating systems. (added the the VMS TODO list) + impact on all other operating systems. (added to the VMS TODO list) Read more about at https://forum.vmssoftware.com/viewtopic.php?f=38&t=8914&p=20049 - os_vms_conf.h includes have been reviewed for all architectures - added support for the MODIFIED_BY define diff --git a/runtime/doc/os_win32.txt b/runtime/doc/os_win32.txt index 1156dd5383..bbe9940089 100644 --- a/runtime/doc/os_win32.txt +++ b/runtime/doc/os_win32.txt @@ -1,4 +1,4 @@ -*os_win32.txt* For Vim version 9.0. Last change: 2023 Dec 04 +*os_win32.txt* For Vim version 9.1. Last change: 2023 Dec 04 VIM REFERENCE MANUAL by George Reilly diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt index 70227a72e2..2d1898de52 100644 --- a/runtime/doc/pattern.txt +++ b/runtime/doc/pattern.txt @@ -1,4 +1,4 @@ -*pattern.txt* For Vim version 9.0. Last change: 2023 Oct 23 +*pattern.txt* For Vim version 9.1. Last change: 2023 Oct 23 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/pi_getscript.txt b/runtime/doc/pi_getscript.txt index 77805880ae..e86932c356 100644 --- a/runtime/doc/pi_getscript.txt +++ b/runtime/doc/pi_getscript.txt @@ -1,4 +1,4 @@ -*pi_getscript.txt* For Vim version 9.0. Last change: 2017 Aug 01 +*pi_getscript.txt* For Vim version 9.1. Last change: 2017 Aug 01 > GETSCRIPT REFERENCE MANUAL by Charles E. Campbell < diff --git a/runtime/doc/pi_gzip.txt b/runtime/doc/pi_gzip.txt index 71e76cc283..c34db27847 100644 --- a/runtime/doc/pi_gzip.txt +++ b/runtime/doc/pi_gzip.txt @@ -1,4 +1,4 @@ -*pi_gzip.txt* For Vim version 9.0. Last change: 2023 Nov 14 +*pi_gzip.txt* For Vim version 9.1. Last change: 2023 Nov 14 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt index 30c1646605..2b22105d56 100644 --- a/runtime/doc/pi_netrw.txt +++ b/runtime/doc/pi_netrw.txt @@ -1,4 +1,4 @@ -*pi_netrw.txt* For Vim version 9.0. 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/pi_paren.txt b/runtime/doc/pi_paren.txt index 9af0e9c951..719353fa94 100644 --- a/runtime/doc/pi_paren.txt +++ b/runtime/doc/pi_paren.txt @@ -1,4 +1,4 @@ -*pi_paren.txt* For Vim version 9.0. Last change: 2013 May 08 +*pi_paren.txt* For Vim version 9.1. Last change: 2013 May 08 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/pi_spec.txt b/runtime/doc/pi_spec.txt index 27d60b8feb..a8d26cdb13 100644 --- a/runtime/doc/pi_spec.txt +++ b/runtime/doc/pi_spec.txt @@ -1,4 +1,4 @@ -*pi_spec.txt* For Vim version 9.0. Last change: 2006 Apr 24 +*pi_spec.txt* For Vim version 9.1. Last change: 2006 Apr 24 by Gustavo Niemeyer ~ diff --git a/runtime/doc/pi_tar.txt b/runtime/doc/pi_tar.txt index 37b2886d86..0ab111c283 100644 --- a/runtime/doc/pi_tar.txt +++ b/runtime/doc/pi_tar.txt @@ -1,4 +1,4 @@ -*pi_tar.txt* For Vim version 9.0. Last change: 2022 Oct 17 +*pi_tar.txt* For Vim version 9.1. Last change: 2022 Oct 17 +====================+ | Tar File Interface | diff --git a/runtime/doc/pi_vimball.txt b/runtime/doc/pi_vimball.txt index 045c5c4f8d..35d4d7cbff 100644 --- a/runtime/doc/pi_vimball.txt +++ b/runtime/doc/pi_vimball.txt @@ -1,4 +1,4 @@ -*pi_vimball.txt* For Vim version 9.0. Last change: 2016 Apr 11 +*pi_vimball.txt* For Vim version 9.1. Last change: 2016 Apr 11 ---------------- Vimball Archiver diff --git a/runtime/doc/pi_zip.txt b/runtime/doc/pi_zip.txt index 14ae340155..2e98becf18 100644 --- a/runtime/doc/pi_zip.txt +++ b/runtime/doc/pi_zip.txt @@ -1,4 +1,4 @@ -*pi_zip.txt* For Vim version 9.0. Last change: 2023 Nov 05 +*pi_zip.txt* For Vim version 9.1. Last change: 2023 Nov 05 +====================+ | Zip File Interface | diff --git a/runtime/doc/popup.txt b/runtime/doc/popup.txt index 463bc9a2be..f5cb12fb9d 100644 --- a/runtime/doc/popup.txt +++ b/runtime/doc/popup.txt @@ -1,4 +1,4 @@ -*popup.txt* For Vim version 9.0. Last change: 2022 Oct 07 +*popup.txt* For Vim version 9.1. Last change: 2022 Oct 07 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/print.txt b/runtime/doc/print.txt index f35f3cf0a9..7b4f403bf6 100644 --- a/runtime/doc/print.txt +++ b/runtime/doc/print.txt @@ -1,4 +1,4 @@ -*print.txt* For Vim version 9.0. Last change: 2022 Oct 01 +*print.txt* For Vim version 9.1. Last change: 2022 Oct 01 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt index cbfd791d5d..e659d39508 100644 --- a/runtime/doc/quickfix.txt +++ b/runtime/doc/quickfix.txt @@ -1,4 +1,4 @@ -*quickfix.txt* For Vim version 9.0. Last change: 2023 Jan 18 +*quickfix.txt* For Vim version 9.1. Last change: 2023 Apr 15 VIM REFERENCE MANUAL by Bram Moolenaar @@ -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 @@ -1321,6 +1321,15 @@ If Vim was started from the compiler, the :sh and some :! commands will not work, because Vim is then running in the same process as the compiler and stdin (standard input) will not be interactive. +PANDOC *quickfix-pandoc* *compiler-pandoc* + +The Pandoc compiler plugin expects that an output file type extension is +passed to make, say :make html or :make pdf. + +Additional arguments can be passed to pandoc: + +- either by appending them to make, say `:make html --self-contained` . +- or setting them in `b:pandoc_compiler_args` or `g:pandoc_compiler_args` PERL *quickfix-perl* *compiler-perl* diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt index 4314134c8d..583df7be99 100644 --- a/runtime/doc/quickref.txt +++ b/runtime/doc/quickref.txt @@ -1,4 +1,4 @@ -*quickref.txt* For Vim version 9.0. Last change: 2023 Dec 05 +*quickref.txt* For Vim version 9.1. Last change: 2024 Mar 03 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1013,6 +1013,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/quotes.txt b/runtime/doc/quotes.txt index 181682d448..0eeb1b6916 100644 --- a/runtime/doc/quotes.txt +++ b/runtime/doc/quotes.txt @@ -1,4 +1,4 @@ -*quotes.txt* For Vim version 9.0. Last change: 2018 Mar 29 +*quotes.txt* For Vim version 9.1. Last change: 2018 Mar 29 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/recover.txt b/runtime/doc/recover.txt index bfc59d31e9..fd817ebc62 100644 --- a/runtime/doc/recover.txt +++ b/runtime/doc/recover.txt @@ -1,4 +1,4 @@ -*recover.txt* For Vim version 9.0. Last change: 2023 Apr 22 +*recover.txt* For Vim version 9.1. Last change: 2023 Apr 22 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/remote.txt b/runtime/doc/remote.txt index 1603269bfe..460d61fbe2 100644 --- a/runtime/doc/remote.txt +++ b/runtime/doc/remote.txt @@ -1,4 +1,4 @@ -*remote.txt* For Vim version 9.0. Last change: 2022 Feb 17 +*remote.txt* For Vim version 9.1. Last change: 2022 Feb 17 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt index 247dd0992c..e95b6a1ae6 100644 --- a/runtime/doc/repeat.txt +++ b/runtime/doc/repeat.txt @@ -1,4 +1,4 @@ -*repeat.txt* For Vim version 9.0. Last change: 2023 May 26 +*repeat.txt* For Vim version 9.1. Last change: 2023 May 26 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/rileft.txt b/runtime/doc/rileft.txt index 623ac387b4..8589bb6a35 100644 --- a/runtime/doc/rileft.txt +++ b/runtime/doc/rileft.txt @@ -1,4 +1,4 @@ -*rileft.txt* For Vim version 9.0. Last change: 2022 Oct 12 +*rileft.txt* For Vim version 9.1. Last change: 2022 Oct 12 VIM REFERENCE MANUAL by Avner Lottem diff --git a/runtime/doc/russian.txt b/runtime/doc/russian.txt index 4e8c5ed5c9..bf6493d5e3 100644 --- a/runtime/doc/russian.txt +++ b/runtime/doc/russian.txt @@ -1,4 +1,4 @@ -*russian.txt* For Vim version 9.0. Last change: 2006 Apr 24 +*russian.txt* For Vim version 9.1. Last change: 2006 Apr 24 VIM REFERENCE MANUAL by Vassily Ragosin diff --git a/runtime/doc/scroll.txt b/runtime/doc/scroll.txt index 91fa22824f..cf79353121 100644 --- a/runtime/doc/scroll.txt +++ b/runtime/doc/scroll.txt @@ -1,4 +1,4 @@ -*scroll.txt* For Vim version 9.0. Last change: 2022 Oct 17 +*scroll.txt* For Vim version 9.1. Last change: 2022 Oct 17 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/sign.txt b/runtime/doc/sign.txt index d9bfed697c..02240f01a3 100644 --- a/runtime/doc/sign.txt +++ b/runtime/doc/sign.txt @@ -1,4 +1,4 @@ -*sign.txt* For Vim version 9.0. Last change: 2023 Feb 21 +*sign.txt* For Vim version 9.1. Last change: 2023 Feb 21 VIM REFERENCE MANUAL by Gordon Prieur diff --git a/runtime/doc/spell.txt b/runtime/doc/spell.txt index 941ef9dc8a..dea3adb87a 100644 --- a/runtime/doc/spell.txt +++ b/runtime/doc/spell.txt @@ -1,4 +1,4 @@ -*spell.txt* For Vim version 9.0. Last change: 2023 May 25 +*spell.txt* For Vim version 9.1. Last change: 2023 May 25 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/sponsor.txt b/runtime/doc/sponsor.txt index 8c25b5cd2c..7a12c5ecd2 100644 --- a/runtime/doc/sponsor.txt +++ b/runtime/doc/sponsor.txt @@ -1,4 +1,4 @@ -*sponsor.txt* For Vim version 9.0. Last change: 2023 Mar 24 +*sponsor.txt* For Vim version 9.1. Last change: 2023 Mar 24 VIM REFERENCE MANUAL by Bram Moolenaar @@ -8,11 +8,12 @@ SPONSOR VIM DEVELOPMENT *sponsor* Fixing bugs and adding new features takes a lot of time and effort. To show -your appreciation for the work and motivate Bram and others to continue -working on Vim please send a donation. +your appreciation for the work and motivate developers to continue working on +Vim please send a donation. -Since Bram does not need the money it will be used to help children in Uganda, -see |uganda|. Donations increase Bram's motivation to keep working on Vim! +The money you donated will be mainly used to help children in Uganda. See +|uganda|. But at the same time donations increase the development team +motivation to keep working on Vim! For the most recent information about sponsoring look on the Vim web site: @@ -39,22 +40,12 @@ More explanations can be found in the |register-faq|. VOTE FOR FEATURES *vote-for-features* -To give registered Vim users and sponsors an advantage over lurkers they can -vote for the items Bram should work on. How does this voting work? +Note: Voting for features has been discontinued since the passing of |Bram| in +2023. The following two links still work, but they are no longer updated. So +they now only provide a historic view as of summer 2023. -1. You send at least 10 euro. See below for ways to transfer money - |send-money|. - -2. You will be e-mailed a registration key. Enter this key on your account - page on the Vim website. You can easily create an account if you don't - have one yet. - -3. You can enter your votes on the voting page. There is a link to that page - on your account page after entering a registration key. Your votes will - be counted for two years. - -4. The voting results appear on the results page, which is visible for - everybody: http://www.vim.org/sponsor/vote_results.php +The voting results appear on the results page, which is visible for everybody: +http://www.vim.org/sponsor/vote_results.php Additionally, once you have sent 100 euro or more in total, your name appears in the "Vim hall of honour": http://www.vim.org/sponsor/hall_of_honour.php @@ -84,8 +75,9 @@ QUESTIONS AND ANSWERS *sponsor-faq* *register-faq* Why should I give money? -If you do not show your appreciation for Vim then Bram will be less motivated -to fix bugs and add new features. He will do something else instead. +If you do not show your appreciation for Vim, the development team will be +less motivated to fix bugs and add new features. They will do something else +instead. How much money should I send? @@ -96,18 +88,6 @@ professional use: 30 Euro per year per person. Send at least 10 euro to be able to vote for features. -What do I get in return? - -Each registered Vim user and sponsor who donates at least 10 euro will be able -to vote for new features. These votes will give priority to the work on Vim. -The votes are valid for two years. The more money you send the more your -votes count |votes-counted|. - -If you send 100 Euro or more in total you will be mentioned on the "Vim hall -of honour" page on the Vim web site. But only if you enable this on your -account page. You can also select whether the amount will be visible. - - How do I become a Vim sponsor or registered Vim user? Send money, as explained above |send-money| and include your e-mail address. @@ -152,29 +132,6 @@ No, suggestions for improving Vim can always be given. For improvements use the developer |maillist|, for reporting bugs see |bugs|. -How are my votes counted? *votes-counted* - -You may vote when you send 10 euro or more. You can enter up to ten votes. -You can select the same item several times to give it more points. You can -also enter three counter votes, these count as negative points. - -When you send 30 euro or more the points are doubled. Above 100 euro they -count four times, above 300 euro they count six times, above 1000 euro ten -times. - - -Can I change my votes? - -You can change your votes any time you like, up to two years after you -sent money. The points will be counted right away. - - -Can I add an item to vote on? - -Not directly. You can suggest items to vote on to Bram. He will consider -fitting your item into the list. - - How about Charityware? Currently the Vim donations go to |uganda| anyway. Thus it doesn't matter if @@ -184,18 +141,17 @@ for features. I donated $$$, now please add feature XYZ! -There is no direct relation between your donation and the work Bram does. -Otherwise you would be paying for work and we would have to pay tax over the -donation. If you want to hire Bram for specific work, contact him directly, -don't use the donation system. +There is no direct relation between your donation and the work developers +does. Otherwise you would be paying for work and we would have to pay tax +over the donation. If you want to hire one of the developers for specific +work, contact them directly, don't use the donation system. Are the donations tax deductible? That depends on your country. The donations to help the children in |Uganda| are tax deductible in Holland, Germany, Canada and in the USA. See the ICCF -website http://iccf-holland.org/donate.html. You must send an e-mail to Bram -to let him know that the donation is done because of the use of Vim. +website http://iccf-holland.org/donate.html. Can you send me a bill? diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt index 56acd6c294..8ca570a66f 100644 --- a/runtime/doc/starting.txt +++ b/runtime/doc/starting.txt @@ -1,4 +1,4 @@ -*starting.txt* For Vim version 9.0. Last change: 2023 Oct 20 +*starting.txt* For Vim version 9.1. Last change: 2024 Apr 15 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: @@ -809,7 +811,8 @@ accordingly. Vim proceeds in this order: name. Also see |vimrc-intro|. Places for your personal initializations: - Unix $HOME/.vimrc or $HOME/.vim/vimrc + Unix $HOME/.vimrc, $HOME/.vim/vimrc + or $XDG_CONFIG_HOME/vim/vimrc MS-Windows $HOME/_vimrc, $HOME/vimfiles/vimrc or $VIM/_vimrc Amiga s:.vimrc, home:.vimrc, home:vimfiles:vimrc @@ -833,7 +836,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 @@ -852,15 +855,16 @@ accordingly. Vim proceeds in this order: I The environment variable VIMINIT (see also |compatible-default|) (*) The value of $VIMINIT is used as an Ex command line. II The user vimrc file(s): - "$HOME/.vimrc" (for Unix) (*) - "$HOME/.vim/vimrc" (for Unix) (*) - "s:.vimrc" (for Amiga) (*) - "home:.vimrc" (for Amiga) (*) - "home:vimfiles:vimrc" (for Amiga) (*) - "$VIM/.vimrc" (for Amiga) (*) - "$HOME/_vimrc" (for Win32) (*) - "$HOME/vimfiles/vimrc" (for Win32) (*) - "$VIM/_vimrc" (for Win32) (*) + "$HOME/.vimrc" (for Unix) (*) + "$HOME/.vim/vimrc" (for Unix) (*) + "$HOME/.config/vim/vimrc" (for Unix) (*) + "s:.vimrc" (for Amiga) (*) + "home:.vimrc" (for Amiga) (*) + "home:vimfiles:vimrc" (for Amiga) (*) + "$VIM/.vimrc" (for Amiga) (*) + "$HOME/_vimrc" (for Win32) (*) + "$HOME/vimfiles/vimrc" (for Win32) (*) + "$VIM/_vimrc" (for Win32) (*) "$HOME/config/settings/vim/vimrc" (for Haiku) (*) Note: For Unix and Amiga, when ".vimrc" does not exist, @@ -930,7 +934,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 @@ -974,7 +978,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) @@ -1084,15 +1088,53 @@ defaults.vim from your .vimrc, first unlet skip_defaults_vim, as in the example above. + *xdg-base-dir* *$XDG_CONFIG_HOME* +XDG Base Directory Specification ~ + +The XDG Base Directory Specification aims to define a standard location for +configuration files used by applications. This is mainly done to prevent +the legacy behavior of dumping everything into the users home directory. +The specification can be found online at +https://specifications.freedesktop.org/basedir-spec/latest/ + +The location of this standard configuration directory is configurable by the +user, using environment variable but should also give fallback in case those +variables weren't set. + +This is not an exhaustive list of those directories: + Environment var default location Description ~ + `$XDG_CACHE_HOME` $HOME/.cache Ephemeral data files + `$XDG_CONFIG_HOME` $HOME/.config Configuration files + `$XDG_DATA_HOME` $HOME/.local/share Persistent data files + `$XDG_STATE_HOME` $HOME/.local/state State data files + +Vim will only care of the `$XDG_CONFIG_HOME` directory, the others are not +(yet) used for its various configuration and state files. + + *xdg-vimrc* +Vim, on Unix systems, will look at `$XDG_CONFIG_HOME/vim/vimrc` for its +configuration (see |vimrc|) but it will source it only if no other +initialization file is found in `$HOME` or `$HOME/.vim` (thus making this +feature backward compatible). However, if you want to migrate to use +`$XDG_CONFIG_HOME/vim/` directory, you will have to move away your `~/.vimrc` +and `~/.vim/vimrc` file. + + *xdg-runtime* +When the |xdg-vimrc| is used the |'runtimepath'| will be modified accordingly +to respect the |xdg-base-dir|: > + + "$XDG_CONFIG_HOME/vim,$VIMRUNTIME,/after,$XDG_CONFIG_HOME/vim/after" +< + 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 @@ -1249,9 +1291,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* @@ -1296,7 +1338,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. @@ -1357,8 +1399,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 @@ -1370,16 +1412,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", @@ -1406,14 +1448,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 @@ -1428,14 +1470,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 @@ -1469,7 +1510,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. @@ -1542,12 +1583,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 @@ -1559,7 +1601,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. @@ -1591,11 +1633,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"' @@ -1640,14 +1682,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 > @@ -1671,7 +1713,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 @@ -1683,10 +1725,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 @@ -1704,7 +1746,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 0a2b1ca5f5..3e6a7e0267 100644 --- a/runtime/doc/syntax.txt +++ b/runtime/doc/syntax.txt @@ -1,4 +1,4 @@ -*syntax.txt* For Vim version 9.0. Last change: 2023 Dec 05 +*syntax.txt* For Vim version 9.1. Last change: 2024 Apr 13 VIM REFERENCE MANUAL by Bram Moolenaar @@ -271,6 +271,10 @@ you can see the actual color, except for "Ignore"): *Todo anything that needs extra attention; mostly the keywords TODO FIXME and XXX + *Added added line in a diff + *Changed changed line in a diff + *Removed removed line in a diff + The names marked with * are the preferred groups; the others are minor groups. For the preferred groups, the "syntax.vim" file contains default highlighting. The minor groups are linked to the preferred groups, so they get the same @@ -1001,27 +1005,29 @@ An alternative is to switch to the C++ highlighting: > Variable Highlight ~ *c_gnu* GNU gcc specific items *c_comment_strings* strings and numbers inside a comment -*c_space_errors* trailing white space and spaces before a -*c_no_trail_space_error* ... but no trailing spaces +*c_space_errors* trailing white space and spaces before a +*c_no_trail_space_error* ... but no trailing spaces *c_no_tab_space_error* ... but no spaces before a *c_no_bracket_error* don't highlight {}; inside [] as errors *c_no_curly_error* don't highlight {}; inside [] and () as errors; - except { and } in first column - Default is to highlight them, otherwise you - can't spot a missing ")". + ...except { and } in first column + Default is to highlight them, otherwise you + can't spot a missing ")". *c_curly_error* highlight a missing } by finding all pairs; this forces syncing from the start of the file, can be slow *c_no_ansi* don't do standard ANSI types and constants -*c_ansi_typedefs* ... but do standard ANSI types +*c_ansi_typedefs* ... but do standard ANSI types *c_ansi_constants* ... but do standard ANSI constants *c_no_utf* don't highlight \u and \U in strings -*c_syntax_for_h* for *.h files use C syntax instead of C++ and use objc +*c_syntax_for_h* for *.h files use C syntax instead of C++ and use objc syntax instead of objcpp *c_no_if0* don't highlight "#if 0" blocks as comments *c_no_cformat* don't highlight %-formats in strings *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: > @@ -1270,7 +1276,6 @@ there are very long lines in the file. To disable translations: > Also see |diff-slow|. - DIRCOLORS *dircolors.vim* *ft-dircolors-syntax* The dircolors utility highlighting definition has one option. It exists to @@ -1326,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: > @@ -1589,13 +1597,12 @@ edit F# or Fortran at all, use this in your startup vimrc: > FORTRAN *fortran.vim* *ft-fortran-syntax* Default highlighting and dialect ~ -Highlighting appropriate for Fortran 2008 is used by default. This choice -should be appropriate for most users most of the time because Fortran 2008 is -almost a superset of previous versions (Fortran 2003, 95, 90, and 77). A -small number of features new to Fortran 2018 and Fortran 2023 are supported -and the complete transition to Fortran 2023 will be completed in the future. -A few legacy constructs deleted or declared obsolescent in recent Fortran -standards are highlighted as todo items. +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 fortran_dialect is now silently ignored. Since computers are much faster now, @@ -1605,7 +1612,7 @@ Fortran source code form ~ Fortran code can be in either fixed or free source form. Note that the syntax highlighting will not be correct if the form is incorrectly set. -When you create a new fortran file, the syntax script assumes fixed source +When you create a new Fortran file, the syntax script assumes fixed source form. If you always use free source form, then > :let fortran_free_source=1 in your .vimrc prior to the :syntax on command. If you always use fixed @@ -1619,10 +1626,10 @@ file. For more information on ftplugin files, see |ftplugin|. Note that this will work only if the "filetype plugin indent on" command precedes the "syntax on" command in your .vimrc file. -When you edit an existing fortran file, the syntax script will assume free +When you edit an existing Fortran file, the syntax script will assume free source form if the fortran_free_source variable has been set, and assumes -fixed source form if the fortran_fixed_source variable has been set. If -neither of these variables have been set, the syntax script attempts to +fixed source form if the fortran_fixed_source variable has been set. Suppose +neither of these variables have been set. In that case, the syntax script attempts to determine which source form has been used by examining the file extension using conventions common to the ifort, gfortran, Cray, NAG, and PathScale compilers (.f, .for, .f77 for fixed-source, .f90, .f95, .f03, .f08 for @@ -1643,7 +1650,7 @@ script allows a maximum line length of 80 characters as do all compilers created in the last three decades. An even longer line length of 132 characters is allowed if you set the variable fortran_extended_line_length with a command such as > - :let fortran_line_length=1 + :let fortran_extended_line_length=1 placed prior to the :syntax on command. If you want additional highlighting of the CUDA Fortran extensions, you should @@ -1657,37 +1664,30 @@ command such as > :let fortran_vendor_intrinsics=1 placed prior to the :syntax on command. -Tabs in fortran files ~ +Tabs in Fortran files ~ Tabs are not recognized by the Fortran standards. Tabs are not a good idea in -fixed format fortran source code which requires fixed column boundaries. +fixed format Fortran source code which requires fixed column boundaries. Therefore, tabs are marked as errors. Nevertheless, some programmers like -using tabs. If your fortran files contain tabs, then you should set the +using tabs. If your Fortran files contain tabs, then you should set the variable fortran_have_tabs in your .vimrc with a command such as > :let fortran_have_tabs=1 placed prior to the :syntax on command. Unfortunately, the use of tabs will mean that the syntax file will not be able to detect incorrect margins. -Syntax folding of fortran files ~ -If you wish to use foldmethod=syntax, then you must first set the variable -fortran_fold with a command such as > +Syntax folding of Fortran files ~ +Vim will fold your file using foldmethod=syntax, if you set the variable +fortran_fold in your .vimrc with a command such as > :let fortran_fold=1 to instruct the syntax script to define fold regions for program units, that is main programs starting with a program statement, subroutines, function -subprograms, block data subprograms, interface blocks, and modules. If you -also set the variable fortran_fold_conditionals with a command such as > +subprograms, modules, submodules, blocks of comment lines, and block data +units. Block, interface, associate, critical, type definition, and change team +constructs will also be folded. If you also set the variable +fortran_fold_conditionals with a command such as > :let fortran_fold_conditionals=1 -then fold regions will also be defined for do loops, if blocks, and select -case constructs. If you also set the variable fortran_fold_multilinecomments -with a command such as > - :let fortran_fold_multilinecomments=1 -then fold regions will also be defined for three or more consecutive comment -lines. Note that defining fold regions can be slow for large files. - -If fortran_fold, and possibly fortran_fold_conditionals and/or -fortran_fold_multilinecomments, have been set, then vim will fold your file if -you set foldmethod=syntax. Comments or blank lines placed between two program -units are not folded because they are seen as not belonging to any program -unit. +then fold regions will also be defined for do loops, if blocks, select case, +select type, and select rank constructs. Note that defining fold regions can +be slow for large files. The syntax/fortran.vim script contains embedded comments that tell you how to comment and/or uncomment some lines to (a) activate recognition of some @@ -1700,7 +1700,7 @@ Parenthesis checking does not catch too few closing parentheses. Hollerith strings are not recognized. Some keywords may be highlighted incorrectly because Fortran90 has no reserved words. -For further information related to fortran, see |ft-fortran-indent| and +For further information related to Fortran, see |ft-fortran-indent| and |ft-fortran-plugin|. FREEBASIC *freebasic.vim* *ft-freebasic-syntax* @@ -2236,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* @@ -2249,6 +2258,56 @@ have the following in your .vimrc: > let filetype_m = "mma" +MODULA2 *modula2.vim* *ft-modula2-syntax* + +Vim will recognise comments with dialect tags to automatically select a given +dialect. + +The syntax for a dialect tag comment is: > + + taggedComment := + '(*!' dialectTag '*)' + ; + + dialectTag := + m2pim | m2iso | m2r10 + ; + + reserved words + m2pim = 'm2pim', m2iso = 'm2iso', m2r10 = 'm2r10' + +A dialect tag comment is recognised by Vim if it occurs within the first 200 +lines of the source file. Only the very first such comment is recognised, any +additional dialect tag comments are ignored. + +Example: > + + DEFINITION MODULE FooLib; (*!m2pim*) + ... + +Variable g:modula2_default_dialect sets the default Modula-2 dialect when the +dialect cannot be determined from the contents of the Modula-2 file: if +defined and set to 'm2pim', the default dialect is PIM. + +Example: > + + let g:modula2_default_dialect = 'm2pim' + + +Highlighting is further configurable for each dialect via the following +variables. + +Variable Highlight ~ +*modula2_iso_allow_lowline* allow low line in identifiers +*modula2_iso_disallow_octals* disallow octal integer literals +*modula2_iso_disallow_synonyms* disallow "@", "&" and "~" synonyms + +*modula2_pim_allow_lowline* allow low line in identifiers +*modula2_pim_disallow_octals* disallow octal integer literals +*modula2_pim_disallow_synonyms* disallow "&" and "~" synonyms + +*modula2_r10_allow_lowline* allow low line in identifiers + MOO *moo.vim* *ft-moo-syntax* If you use C-style comments inside expressions and find it mangles your @@ -2408,6 +2467,95 @@ by the camlp4 preprocessor. Setting the variable > prevents highlighting of "end" as error, which is useful when sources contain very long structures that Vim does not synchronize anymore. +PANDOC *ft-pandoc-syntax* + +By default, markdown files will be detected as filetype "markdown". +Alternatively, you may want them to be detected as filetype "pandoc" instead. +To do so, set the following: > + + :let g:markdown_md = 'pandoc' + +The pandoc syntax plugin uses |conceal| for pretty highlighting. Default is 1 > + + :let g:pandoc#syntax#conceal#use = 1 + +To specify elements that should not be concealed, set the following variable: > + + :let g:pandoc#syntax#conceal#blacklist = [] + +This is a list of the rules wich can be used here: + + - titleblock + - image + - block + - subscript + - superscript + - strikeout + - atx + - codeblock_start + - codeblock_delim + - footnote + - definition + - list + - newline + - dashes + - ellipses + - quotes + - inlinecode + - inlinemath + +You can customize the way concealing works. For example, if you prefer to mark +footnotes with the `*` symbol: > + + :let g:pandoc#syntax#conceal#cchar_overrides = {"footnote" : "*"} + +To conceal the urls in links, use: > + + :let g:pandoc#syntax#conceal#urls = 1 + +Prevent highlighting specific codeblock types so that they remain Normal. +Codeblock types include "definition" for codeblocks inside definition blocks +and "delimited" for delimited codeblocks. Default = [] > + + :let g:pandoc#syntax#codeblocks#ignore = ['definition'] + +Use embedded highlighting for delimited codeblocks where a language is +specified. Default = 1 > + + :let g:pandoc#syntax#codeblocks#embeds#use = 1 + +For specify what languages and using what syntax files to highlight embeds. This is a +list of language names. When the language pandoc and vim use don't match, you +can use the "PANDOC=VIM" syntax. For example: > + + :let g:pandoc#syntax#codeblocks#embeds#langs = ["ruby", "bash=sh"] + +To use italics and strong in emphases. Default = 1 > + + :let g:pandoc#syntax#style#emphases = 1 + +"0" will add "block" to g:pandoc#syntax#conceal#blacklist, because otherwise +you couldn't tell where the styles are applied. + +To add underline subscript, superscript and strikeout text styles. Default = 1 > + + :let g:pandoc#syntax#style#underline_special = 1 + +Detect and highlight definition lists. Disabling this can improve performance. +Default = 1 (i.e., enabled by default) > + + :let g:pandoc#syntax#style#use_definition_lists = 1 + +The pandoc syntax script also comes with the following commands: > + + :PandocHighlight LANG + +Enables embedded highlighting for language LANG in codeblocks. Uses the +syntax for items in g:pandoc#syntax#codeblocks#embeds#langs. > + + :PandocUnhighlight LANG + +Disables embedded highlighting for language LANG in codeblocks. PAPP *papp.vim* *ft-papp-syntax* @@ -2841,10 +2989,20 @@ To highlight R code in knitr chunk headers: > let rmd_syn_hl_chunk = 1 By default, chunks of R code will be highlighted following the rules of R -language. If you want proper syntax highlighting of chunks of other languages, -you should add them to either `markdown_fenced_languages` or -`rmd_fenced_languages`. For example to properly highlight both R and Python, -you may add this to your |vimrc|: > +language. Moreover, whenever the buffer is saved, Vim scans the buffer and +highlights other languages if they are present in new chunks. LaTeX code also +is automatically recognized and highlighted when the buffer is saved. This +behavior can be controlled with the variables `rmd_dynamic_fenced_languages`, +and `rmd_include_latex` whose valid values are: > + let rmd_dynamic_fenced_languages = 0 " No autodetection of languages + let rmd_dynamic_fenced_languages = 1 " Autodetection of languages + let rmd_include_latex = 0 " Don't highlight LaTeX code + let rmd_include_latex = 1 " Autodetect LaTeX code + let rmd_include_latex = 2 " Always include LaTeX highlighting + +If the value of `rmd_dynamic_fenced_languages` is 0, you still can set the +list of languages whose chunks of code should be properly highlighted, as in +the example: > let rmd_fenced_languages = ['r', 'python'] @@ -3606,12 +3764,15 @@ Some folding is now supported with syntax/vim.vim: > g:vimsyn_folding == 0 or doesn't exist: no syntax-based folding g:vimsyn_folding =~ 'a' : augroups g:vimsyn_folding =~ 'f' : fold functions + g:vimsyn_folding =~ 'h' : fold heredocs + g:vimsyn_folding =~ 'H' : fold Vim9-script legacy headers g:vimsyn_folding =~ 'l' : fold lua script g:vimsyn_folding =~ 'm' : fold mzscheme script g:vimsyn_folding =~ 'p' : fold perl script g:vimsyn_folding =~ 'P' : fold python script g:vimsyn_folding =~ 'r' : fold ruby script g:vimsyn_folding =~ 't' : fold tcl script +let g:vimsyn_folding = 'acfhlmpPrt' < *g:vimsyn_noerror* Not all error highlighting that syntax/vim.vim does may be correct; Vim script @@ -5208,7 +5369,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. @@ -5247,6 +5409,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 @@ -5319,8 +5489,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. @@ -5418,6 +5588,9 @@ MessageWindow Messages popup window used by `:echowindow`. If not defined |hl-WarningMsg| is used. *hl-ModeMsg* ModeMsg 'showmode' message (e.g., "-- INSERT --"). + *hl-MsgArea* +MsgArea Command-line area, also used for outputting messages, see also + 'cmdheight' *hl-MoreMsg* MoreMsg |more-prompt| *hl-NonText* diff --git a/runtime/doc/tabpage.txt b/runtime/doc/tabpage.txt index a010e2fd27..a922604c81 100644 --- a/runtime/doc/tabpage.txt +++ b/runtime/doc/tabpage.txt @@ -1,4 +1,4 @@ -*tabpage.txt* For Vim version 9.0. Last change: 2022 Feb 02 +*tabpage.txt* For Vim version 9.1. Last change: 2024 Mar 25 VIM REFERENCE MANUAL by Bram Moolenaar @@ -196,7 +196,7 @@ gt *i_CTRL-* *i_* :1tabnext " go to the first tab page :$tabnext " go to the last tab page :tabnext $ " as above - :tabnext # " go to the last accessed tab page + :tabnext # " go to the last accessed tab page :tabnext - " go to the previous tab page :tabnext -1 " as above :tabnext + " go to the next tab page @@ -248,13 +248,12 @@ REORDERING TAB PAGES: Move the current tab page to after tab page N. Use zero to make the current tab page the first one. N is counted before the move, thus if the second tab is the current one, - `:tabmove 1` and `:tabmove 2` have no effect. + `:tabmove 1` and `:tabmove 2` have no effect. Without N the tab page is made the last one. > :.tabmove " do nothing :-tabmove " move the tab page to the left :+tabmove " move the tab page to the right - :0tabmove " move the tab page to the beginning of the tab - " list + :0tabmove " move the tab page to the first :tabmove 0 " as above :tabmove " move the tab page to the last :$tabmove " as above diff --git a/runtime/doc/tags b/runtime/doc/tags index c8541b5767..855eaf4084 100644 --- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -12,6 +12,7 @@ $VIM starting.txt /*$VIM* $VIM-use version5.txt /*$VIM-use* $VIMRUNTIME starting.txt /*$VIMRUNTIME* $VIM_POSIX vi_diff.txt /*$VIM_POSIX* +$XDG_CONFIG_HOME starting.txt /*$XDG_CONFIG_HOME* $quote eval.txt /*$quote* % motion.txt /*%* %:. cmdline.txt /*%:.* @@ -1042,6 +1043,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'* @@ -1174,6 +1176,7 @@ $quote eval.txt /*$quote* 't_vi' term.txt /*'t_vi'* 't_vs' term.txt /*'t_vs'* 't_xn' term.txt /*'t_xn'* +'t_xo' term.txt /*'t_xo'* 't_xs' term.txt /*'t_xs'* 'ta' options.txt /*'ta'* 'tabline' options.txt /*'tabline'* @@ -1313,6 +1316,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'* @@ -2182,6 +2186,7 @@ $quote eval.txt /*$quote* :Stop terminal.txt /*:Stop* :TOhtml syntax.txt /*:TOhtml* :TarDiff pi_tar.txt /*:TarDiff* +:Tbreak terminal.txt /*:Tbreak* :Termdebug terminal.txt /*:Termdebug* :TermdebugCommand terminal.txt /*:TermdebugCommand* :Texplore pi_netrw.txt /*:Texplore* @@ -2898,6 +2903,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* @@ -2910,6 +2916,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* @@ -3496,6 +3503,7 @@ $quote eval.txt /*$quote* :tf tagsrch.txt /*:tf* :tfirst tagsrch.txt /*:tfirst* :th eval.txt /*:th* +:this vim9class.txt /*:this* :throw eval.txt /*:throw* :tj tagsrch.txt /*:tj* :tjump tagsrch.txt /*:tjump* @@ -4186,6 +4194,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* @@ -4545,9 +4554,43 @@ E139 message.txt /*E139* E1390 vim9class.txt /*E1390* E1391 eval.txt /*E1391* E1392 eval.txt /*E1392* +E1393 vim9class.txt /*E1393* +E1394 vim9class.txt /*E1394* +E1395 vim9class.txt /*E1395* +E1396 vim9class.txt /*E1396* +E1397 vim9class.txt /*E1397* +E1398 vim9class.txt /*E1398* +E1399 vim9class.txt /*E1399* E140 message.txt /*E140* +E1400 vim9class.txt /*E1400* +E1401 vim9class.txt /*E1401* +E1402 vim9class.txt /*E1402* +E1403 vim9class.txt /*E1403* +E1405 vim9class.txt /*E1405* +E1406 vim9class.txt /*E1406* +E1407 vim9class.txt /*E1407* +E1408 vim9class.txt /*E1408* +E1409 vim9class.txt /*E1409* E141 message.txt /*E141* +E1410 vim9class.txt /*E1410* +E1411 vim9class.txt /*E1411* +E1412 vim9class.txt /*E1412* +E1413 vim9class.txt /*E1413* +E1414 vim9class.txt /*E1414* +E1415 vim9class.txt /*E1415* +E1416 vim9class.txt /*E1416* +E1417 vim9class.txt /*E1417* +E1418 vim9class.txt /*E1418* +E1419 vim9class.txt /*E1419* E142 message.txt /*E142* +E1420 vim9class.txt /*E1420* +E1421 vim9class.txt /*E1421* +E1422 vim9class.txt /*E1422* +E1423 vim9class.txt /*E1423* +E1424 vim9class.txt /*E1424* +E1425 vim9class.txt /*E1425* +E1426 vim9class.txt /*E1426* +E1429 vim9class.txt /*E1429* E143 autocmd.txt /*E143* E144 various.txt /*E144* E145 starting.txt /*E145* @@ -4569,6 +4612,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* @@ -5550,6 +5596,7 @@ InsertEnter autocmd.txt /*InsertEnter* InsertLeave autocmd.txt /*InsertLeave* InsertLeavePre autocmd.txt /*InsertLeavePre* Integer eval.txt /*Integer* +Interface vim9class.txt /*Interface* J change.txt /*J* Japanese mbyte.txt /*Japanese* Job eval.txt /*Job* @@ -5745,6 +5792,7 @@ Select-mode-mapping visual.txt /*Select-mode-mapping* Session starting.txt /*Session* SessionLoad-variable starting.txt /*SessionLoad-variable* SessionLoadPost autocmd.txt /*SessionLoadPost* +SessionWritePost autocmd.txt /*SessionWritePost* ShellCmdPost autocmd.txt /*ShellCmdPost* ShellFilterPost autocmd.txt /*ShellFilterPost* SigUSR1 autocmd.txt /*SigUSR1* @@ -5780,6 +5828,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* @@ -5853,6 +5902,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* @@ -6038,6 +6088,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* @@ -6191,6 +6242,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* @@ -6238,12 +6290,15 @@ bug-fixes-6 version6.txt /*bug-fixes-6* 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* @@ -6352,6 +6407,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* @@ -6420,6 +6477,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()* @@ -6502,6 +6560,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()* @@ -6560,6 +6619,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* @@ -6567,6 +6627,7 @@ compiler-gcc quickfix.txt /*compiler-gcc* compiler-gnat ft_ada.txt /*compiler-gnat* compiler-hpada ft_ada.txt /*compiler-hpada* compiler-manx quickfix.txt /*compiler-manx* +compiler-pandoc quickfix.txt /*compiler-pandoc* compiler-perl quickfix.txt /*compiler-perl* compiler-pyunit quickfix.txt /*compiler-pyunit* compiler-select quickfix.txt /*compiler-select* @@ -6826,7 +6887,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* @@ -6927,6 +6990,12 @@ encryption editing.txt /*encryption* end intro.txt /*end* end-of-file pattern.txt /*end-of-file* enlightened-terminal syntax.txt /*enlightened-terminal* +enum vim9class.txt /*enum* +enum-constructor vim9class.txt /*enum-constructor* +enum-name vim9class.txt /*enum-name* +enum-ordinal vim9class.txt /*enum-ordinal* +enum-values vim9class.txt /*enum-values* +enumvalue vim9class.txt /*enumvalue* environ() builtin.txt /*environ()* eol-and-eof editing.txt /*eol-and-eof* erlang.vim syntax.txt /*erlang.vim* @@ -7225,6 +7294,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* @@ -7254,6 +7324,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* @@ -7317,6 +7388,7 @@ ft-ia64-syntax syntax.txt /*ft-ia64-syntax* ft-inform-syntax syntax.txt /*ft-inform-syntax* ft-java-syntax syntax.txt /*ft-java-syntax* ft-javascript-omni insert.txt /*ft-javascript-omni* +ft-json-plugin filetype.txt /*ft-json-plugin* ft-json-syntax syntax.txt /*ft-json-syntax* ft-ksh-syntax syntax.txt /*ft-ksh-syntax* ft-lace-syntax syntax.txt /*ft-lace-syntax* @@ -7346,6 +7418,7 @@ ft-metapost-intro ft_mp.txt /*ft-metapost-intro* ft-metapost-mappings ft_mp.txt /*ft-metapost-mappings* ft-metapost-settings ft_mp.txt /*ft-metapost-settings* ft-mma-syntax syntax.txt /*ft-mma-syntax* +ft-modula2-syntax syntax.txt /*ft-modula2-syntax* ft-moo-syntax syntax.txt /*ft-moo-syntax* ft-msql-syntax syntax.txt /*ft-msql-syntax* ft-n1ql-syntax syntax.txt /*ft-n1ql-syntax* @@ -7353,6 +7426,7 @@ ft-nasm-syntax syntax.txt /*ft-nasm-syntax* ft-ncf-syntax syntax.txt /*ft-ncf-syntax* ft-nroff-syntax syntax.txt /*ft-nroff-syntax* ft-ocaml-syntax syntax.txt /*ft-ocaml-syntax* +ft-pandoc-syntax syntax.txt /*ft-pandoc-syntax* ft-papp-syntax syntax.txt /*ft-papp-syntax* ft-pascal-syntax syntax.txt /*ft-pascal-syntax* ft-pdf-plugin filetype.txt /*ft-pdf-plugin* @@ -7381,6 +7455,7 @@ ft-rego-syntax syntax.txt /*ft-rego-syntax* ft-rexx-syntax syntax.txt /*ft-rexx-syntax* ft-rmd-plugin filetype.txt /*ft-rmd-plugin* ft-rmd-syntax syntax.txt /*ft-rmd-syntax* +ft-rnoweb-plugin filetype.txt /*ft-rnoweb-plugin* ft-rrst-plugin filetype.txt /*ft-rrst-plugin* ft-rrst-syntax syntax.txt /*ft-rrst-syntax* ft-rst-plugin filetype.txt /*ft-rst-plugin* @@ -7419,6 +7494,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* @@ -7612,7 +7688,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* @@ -7672,6 +7747,7 @@ g:rust_conceal_mod_path ft_rust.txt /*g:rust_conceal_mod_path* g:rust_conceal_pub ft_rust.txt /*g:rust_conceal_pub* g:rust_fold ft_rust.txt /*g:rust_fold* g:rust_keep_autopairs_default ft_rust.txt /*g:rust_keep_autopairs_default* +g:rust_playpen_url ft_rust.txt /*g:rust_playpen_url* g:rust_recommended_style ft_rust.txt /*g:rust_recommended_style* g:rust_shortener_url ft_rust.txt /*g:rust_shortener_url* g:rust_use_custom_ctags_defs ft_rust.txt /*g:rust_use_custom_ctags_defs* @@ -7817,6 +7893,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* @@ -7936,6 +8014,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* @@ -8024,6 +8103,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* @@ -8079,6 +8159,7 @@ hl-Menu syntax.txt /*hl-Menu* hl-MessageWindow syntax.txt /*hl-MessageWindow* hl-ModeMsg syntax.txt /*hl-ModeMsg* hl-MoreMsg syntax.txt /*hl-MoreMsg* +hl-MsgArea syntax.txt /*hl-MsgArea* hl-NonText syntax.txt /*hl-NonText* hl-Normal syntax.txt /*hl-Normal* hl-Pmenu syntax.txt /*hl-Pmenu* @@ -8307,6 +8388,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* @@ -8323,6 +8405,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* @@ -8727,9 +8810,11 @@ 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()* +matchbufline() builtin.txt /*matchbufline()* matchdelete() builtin.txt /*matchdelete()* matchend() builtin.txt /*matchend()* matchfuzzy() builtin.txt /*matchfuzzy()* @@ -8738,6 +8823,7 @@ matchit-install usr_05.txt /*matchit-install* matchlist() builtin.txt /*matchlist()* matchparen pi_paren.txt /*matchparen* matchstr() builtin.txt /*matchstr()* +matchstrlist() builtin.txt /*matchstrlist()* matchstrpos() builtin.txt /*matchstrpos()* matlab-indent indent.txt /*matlab-indent* matlab-indenting indent.txt /*matlab-indenting* @@ -8793,6 +8879,14 @@ modeline options.txt /*modeline* modeline-local options.txt /*modeline-local* modeline-version options.txt /*modeline-version* modifyOtherKeys map.txt /*modifyOtherKeys* +modula2.vim syntax.txt /*modula2.vim* +modula2_iso_allow_lowline syntax.txt /*modula2_iso_allow_lowline* +modula2_iso_disallow_octals syntax.txt /*modula2_iso_disallow_octals* +modula2_iso_disallow_synonyms syntax.txt /*modula2_iso_disallow_synonyms* +modula2_pim_allow_lowline syntax.txt /*modula2_pim_allow_lowline* +modula2_pim_disallow_octals syntax.txt /*modula2_pim_disallow_octals* +modula2_pim_disallow_synonyms syntax.txt /*modula2_pim_disallow_synonyms* +modula2_r10_allow_lowline syntax.txt /*modula2_r10_allow_lowline* moo.vim syntax.txt /*moo.vim* more-compatible version5.txt /*more-compatible* more-prompt message.txt /*more-prompt* @@ -8826,6 +8920,7 @@ multilang mlang.txt /*multilang* multilang-menus mlang.txt /*multilang-menus* multilang-messages mlang.txt /*multilang-messages* multilang-scripts mlang.txt /*multilang-scripts* +multiple-constructors vim9class.txt /*multiple-constructors* mvim gui_mac.txt /*mvim* mvim:// gui_mac.txt /*mvim:\/\/* myfiletypefile syntax.txt /*myfiletypefile* @@ -9169,6 +9264,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* @@ -9224,7 +9320,11 @@ notepad gui_w32.txt /*notepad* nr2char() builtin.txt /*nr2char()* nroff.vim syntax.txt /*nroff.vim* null vim9.txt /*null* +null-anomalies vim9.txt /*null-anomalies* +null-compare vim9.txt /*null-compare* +null-details vim9.txt /*null-details* null-variable eval.txt /*null-variable* +null-variables vim9.txt /*null-variables* null_blob vim9.txt /*null_blob* null_channel vim9.txt /*null_channel* null_class vim9.txt /*null_class* @@ -9246,8 +9346,13 @@ o_V motion.txt /*o_V* 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* @@ -9334,7 +9439,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* @@ -9620,6 +9728,7 @@ quickfix-functions usr_41.txt /*quickfix-functions* quickfix-gcc quickfix.txt /*quickfix-gcc* quickfix-index quickfix.txt /*quickfix-index* quickfix-manx quickfix.txt /*quickfix-manx* +quickfix-pandoc quickfix.txt /*quickfix-pandoc* quickfix-parse quickfix.txt /*quickfix-parse* quickfix-perl quickfix.txt /*quickfix-perl* quickfix-size quickfix.txt /*quickfix-size* @@ -10268,6 +10377,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_:* @@ -10373,6 +10483,8 @@ t_dl term.txt /*t_dl* t_ds term.txt /*t_ds* t_ed version4.txt /*t_ed* t_el version4.txt /*t_el* +t_enum-variable eval.txt /*t_enum-variable* +t_enumvalue-variable eval.txt /*t_enumvalue-variable* t_f1 version4.txt /*t_f1* t_f10 version4.txt /*t_f10* t_f2 version4.txt /*t_f2* @@ -10451,6 +10563,7 @@ t_ti term.txt /*t_ti* t_tp version4.txt /*t_tp* t_ts term.txt /*t_ts* t_ts_old version4.txt /*t_ts_old* +t_typealias-variable eval.txt /*t_typealias-variable* t_u7 term.txt /*t_u7* t_ue term.txt /*t_ue* t_undo version4.txt /*t_undo* @@ -10461,6 +10574,7 @@ t_ve term.txt /*t_ve* t_vi term.txt /*t_vi* t_vs term.txt /*t_vs* t_xn term.txt /*t_xn* +t_xo term.txt /*t_xo* t_xs term.txt /*t_xs* tab intro.txt /*tab* tab-page tabpage.txt /*tab-page* @@ -10625,6 +10739,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* @@ -10769,6 +10884,7 @@ type-casting vim9.txt /*type-casting* type-checking vim9.txt /*type-checking* type-inference vim9.txt /*type-inference* type-mistakes tips.txt /*type-mistakes* +typealias vim9class.txt /*typealias* typename() builtin.txt /*typename()* u undo.txt /*u* uganda uganda.txt /*uganda* @@ -10944,6 +11060,8 @@ v:t_bool eval.txt /*v:t_bool* v:t_channel eval.txt /*v:t_channel* v:t_class eval.txt /*v:t_class* v:t_dict eval.txt /*v:t_dict* +v:t_enum eval.txt /*v:t_enum* +v:t_enumvalue eval.txt /*v:t_enumvalue* v:t_float eval.txt /*v:t_float* v:t_func eval.txt /*v:t_func* v:t_job eval.txt /*v:t_job* @@ -10952,6 +11070,7 @@ v:t_none eval.txt /*v:t_none* v:t_number eval.txt /*v:t_number* v:t_object eval.txt /*v:t_object* v:t_string eval.txt /*v:t_string* +v:t_typealias eval.txt /*v:t_typealias* v:termblinkresp eval.txt /*v:termblinkresp* v:termrbgresp eval.txt /*v:termrbgresp* v:termresponse eval.txt /*v:termresponse* @@ -11086,6 +11205,7 @@ val-variable eval.txt /*val-variable* valgrind debug.txt /*valgrind* values() builtin.txt /*values()* var-functions usr_41.txt /*var-functions* +variable-categories vim9.txt /*variable-categories* variable-scope eval.txt /*variable-scope* variable-types vim9.txt /*variable-types* variables eval.txt /*variables* @@ -11119,6 +11239,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* @@ -11135,6 +11256,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* @@ -11154,6 +11276,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* @@ -11181,6 +11304,7 @@ vim9 vim9.txt /*vim9* vim9-access-modes vim9class.txt /*vim9-access-modes* vim9-autoload vim9.txt /*vim9-autoload* vim9-boolean vim9.txt /*vim9-boolean* +vim9-class vim9class.txt /*vim9-class* vim9-classes vim9.txt /*vim9-classes* vim9-const vim9.txt /*vim9-const* vim9-curly vim9.txt /*vim9-curly* @@ -11293,13 +11417,13 @@ vms-problems os_vms.txt /*vms-problems* vms-started os_vms.txt /*vms-started* vms-usage os_vms.txt /*vms-usage* vote-for-features sponsor.txt /*vote-for-features* -votes-counted sponsor.txt /*votes-counted* votes-for-changes todo.txt /*votes-for-changes* vreplace-mode insert.txt /*vreplace-mode* 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* @@ -11419,6 +11543,9 @@ x11-clientserver remote.txt /*x11-clientserver* x11-cut-buffer gui_x11.txt /*x11-cut-buffer* x11-selection gui_x11.txt /*x11-selection* xattr editing.txt /*xattr* +xdg-base-dir starting.txt /*xdg-base-dir* +xdg-runtime starting.txt /*xdg-runtime* +xdg-vimrc starting.txt /*xdg-vimrc* xf86conf.vim syntax.txt /*xf86conf.vim* xfontset mbyte.txt /*xfontset* xfree-xterm syntax.txt /*xfree-xterm* diff --git a/runtime/doc/tagsrch.txt b/runtime/doc/tagsrch.txt index f90632c0cc..d3d549ab2e 100644 --- a/runtime/doc/tagsrch.txt +++ b/runtime/doc/tagsrch.txt @@ -1,4 +1,4 @@ -*tagsrch.txt* For Vim version 9.0. 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 95d1cffa97..1256d750d2 100644 --- a/runtime/doc/term.txt +++ b/runtime/doc/term.txt @@ -1,4 +1,4 @@ -*term.txt* For Vim version 9.0. Last change: 2023 Nov 20 +*term.txt* For Vim version 9.1. Last change: 2024 Apr 14 VIM REFERENCE MANUAL by Bram Moolenaar @@ -313,7 +313,7 @@ convert all key sequences to their 8-bit variants. *xterm-terminfo-entries* For some time the terminfo entries were insufficient to describe all the -features tht Vim can use. The builtin xterm termcap entries did have these, +features that Vim can use. The builtin xterm termcap entries did have these, with the result that several terminals that were similar enough to xterm took advantage of these by prefixing "xterm-" to the terminal name in $TERM. @@ -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 @@ -382,7 +382,7 @@ The options are listed below. The associated termcap code is always equal to the last two characters of the option name. Only one termcap code is required: Cursor motion, 't_cm'. -The options 't_da', 't_db', 't_ms', 't_xs', 't_xn' represent flags in the +The options 't_da', 't_db', 't_ms', 't_xs', 't_xn', 't_xo' represent flags in the termcap. When the termcap flag is present, the option will be set to "y". But any non-empty string means that the flag is set. An empty string means that the flag is not set. 't_CS' works like this too, but it isn't a termcap @@ -441,6 +441,11 @@ OUTPUT CODES *terminal-output-codes* *t_xn* *'t_xn'* t_xn if non-empty, writing a character at the last screen cell does not cause scrolling + *t_xo* *'t_xo'* + t_xo if non-empty, terminal uses xon/xoff handshaking, mapping + CTRL-S will not be possible then, since it is used for flow + control (used by vt420 terminal). Setting this flag has only + an effect when starting Vim. t_ZH italics mode *t_ZH* *'t_ZH'* t_ZR italics end *t_ZR* *'t_ZR'* @@ -448,6 +453,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 3869bcdfba..c99b882cf9 100644 --- a/runtime/doc/terminal.txt +++ b/runtime/doc/terminal.txt @@ -1,4 +1,4 @@ -*terminal.txt* For Vim version 9.0. 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 @@ -1331,6 +1338,9 @@ gdb: *:Break* set a breakpoint at the cursor position :Break {position} set a breakpoint at the specified position + *:Tbreak* set a temporary breakpoint at the cursor position + :Tbreak {position} + set a temporary breakpoint at the specified position *:Clear* delete the breakpoint at the cursor position *:Step* execute the gdb "step" command @@ -1399,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 2d78c0ec12..9b9f60b667 100644 --- a/runtime/doc/testing.txt +++ b/runtime/doc/testing.txt @@ -1,4 +1,4 @@ -*testing.txt* For Vim version 9.0. Last change: 2023 May 18 +*testing.txt* For Vim version 9.1. Last change: 2024 Apr 07 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. @@ -427,8 +438,8 @@ test_settime({expr}) *test_settime()* GetTime()->test_settime() -test_srand_seed([seed]) *test_srand_seed()* - When [seed] is given this sets the seed value used by +test_srand_seed([{seed}]) *test_srand_seed()* + When {seed} is given this sets the seed value used by `srand()`. When omitted the test seed is removed. diff --git a/runtime/doc/textprop.txt b/runtime/doc/textprop.txt index 14fe2977a4..bf7fd16f17 100644 --- a/runtime/doc/textprop.txt +++ b/runtime/doc/textprop.txt @@ -1,4 +1,4 @@ -*textprop.txt* For Vim version 9.0. Last change: 2023 Apr 23 +*textprop.txt* For Vim version 9.1. Last change: 2023 Apr 23 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/tips.txt b/runtime/doc/tips.txt index 0dfddb2551..7ed8e0010f 100644 --- a/runtime/doc/tips.txt +++ b/runtime/doc/tips.txt @@ -1,4 +1,4 @@ -*tips.txt* For Vim version 9.0. Last change: 2023 Aug 10 +*tips.txt* For Vim version 9.1. Last change: 2023 Aug 10 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt index 5e844a0b03..8712008cfe 100644 --- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -1,4 +1,4 @@ -*todo.txt* For Vim version 9.0. Last change: 2023 Jun 08 +*todo.txt* For Vim version 9.1. Last change: 2024 Mar 28 VIM REFERENCE MANUAL by Bram Moolenaar @@ -122,7 +122,6 @@ Upcoming larger works: Further Vim9 improvements: - Classes and Interfaces. See |vim9-classes| - - "final" object members - can only be set in the constructor. - Cannot use class type of itself in the method (Issue #12369) - Getting member of variable with "any" type should be handled at runtime. Remove temporary solution from #12096 / patch 9.0.1375. @@ -131,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 @@ -148,7 +144,6 @@ Further Vim9 improvements: - More efficient way for interface member index than iterating over list? - a variant of type() that returns a different type for each class? list and list should also differ. -- implement :enum - Promise class, could be used to wait on a popup close callback? - class local to a function - Use Vim9 for more runtime files. @@ -959,9 +954,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) @@ -1124,9 +1116,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 @@ -4673,7 +4662,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/uganda.rux b/runtime/doc/uganda.rux new file mode 100644 index 0000000000..783c6d5ddd --- /dev/null +++ b/runtime/doc/uganda.rux @@ -0,0 +1,340 @@ +*uganda.txt* для Vim version 9.1 редакция от 02 марта 2022 г. + + + СПРАВОЧНИК ПО РЕДАКТОРУ VIM + автор Брам Моленар + + + *uganda* *Uganda* *copying* *copyright* *license* +КРАТКОЕ ОПИСАНИЕ + *iccf* *ICCF* +Редактор Vim является благотворительным программным обеспечением. +Использование и копирование программы Vim не ограничено, однако +рекомендуется сделать добровольное пожертвование для нуждающихся детей в +Уганде. Ознакомьтесь с разделом |kcc| далее в этом документе или посетите +веб-сайт организации ICCF, доступный по указанным ниже адресам: + + https://iccf-holland.org/ + https://www.vim.org/iccf/ + https://www.iccf.nl/ + +Также возможно оказание финансовой помощи для разработки программы Vim. +Люди, пожертвовавшие на развитие программы, получают право голосовать за +внедрение в редактор функциональных возможностей. См. раздел |sponsor|. +В любом случае деньги направляются в Уганду. + +Документация, поставляемая в составе программы Vim, распространяется на +условиях лицензии на Открытые публикации, см. раздел |manual-copyright|. + +=== начало лицензии === + +ЛИЦЕНЗИЯ VIM + +I) Неизменённые копии программы Vim могут распространяться без ограничения + при условии включения данного текста лицензии. Распространение + неизменённых копий отдельных частей программы Vim также возможно при + соблюдении условия о включении данного текста лицензии. Подобным образом + разрешается добавлять исполняемые файлы, скомпилированные из + неизменённого исходного кода программы Vim, а также собственные примеры + использования и командные файлы редактора Vim. + +II) Изменённую (или дополненную) версию программы Vim, включающую + исполняемые файлы и/или исходный код, допускается распространять при + соблюдении следующих четырёх условий: + 1) Текст настоящей лицензии должен включаться в состав распространяемой + версии программы Vim без изменений. + 2) Изменённая версия программы Vim должна распространяться одним из + следующих пяти способов: + a) При внесении изменений в программу Vim, в дистрибутиве должны + быть явно указаны контактные данные лица, внёсшего эти изменения. + Ответственному разработчику по его запросу (в любой форме) должна + быть безвозмездно предоставлена копия распространяемой изменённой + версии программы Vim, включая её исходный код. Ответственный + разработчик оставляет за собой право включать сделанные изменения + в официальную версию программы Vim. Конкретные действия + ответственного разработчика, относительно переданных изменений, а + также лицензионные условия, на основании которых будет + осуществляться их распространение, могут быть дополнительно + согласованы. Если согласование не проводилось, сделанные изменения + будут распространяться на условиях настоящей лицензии или более + поздней её версии. Лица, в данное время являющиеся ответственными + за рабзработку, указаны в перечне по следующему адресу: + https://github.com/orgs/vim/people. В случае изменения этой + информации, актуальные данные будут опубликованы на + соответствующих ресурсах (вероятнее всего по интернет‐адресам + vim.sf.net, www.vim.org и/или comp.editors). В случае полной + невозможности установить контакт с ответственным разработчиком, + обязательства по отправке изменений утрачивают силу. После + передачи подтверждения о получении изменений от ответственного + разработчика, необходимость в повторной отправке копии изменённой + программы Vim неприменима. + b) Если лицом получена изменённая версия программа Vim, + распространяющаяся на условиях, указанных в ч. II) п. 2) пп. а) + допускается дальнейшее её распространение этим лицом без внесения + изменений и согласно ч. I) настоящей лицензии. В случае внесения + дополнительных изменений, на эти изменения будут распространяться + условия, указанные в ч. II) п. 2) пп. a). + c) Каждая копия распространяемой изменённой версии программы Vim + должна включать информацию обо всех произведённых изменениях, + включая исходный код. Эта информация может быть представлена в + виде построчного сравнения файлов. Выбор лицензии, по условиям + которой будет распространяться добавленный код, остаётся за + автором этих изменений. Изменения и лицензия на эти изменения не + должны запрещать другим лицам внесение своих собственных + изменений в официальную версию программы Vim. + d) Изменённая версия программы Vim, содержащая изменения в + соответствии с ч. II) п. 2 пп. c), может распространяться без + исходного кода для этих изменений, при соблюдении следующих трёх + условий: + - Лицензия, применяемая к внесённым изменениям, предоставляет + ответственному разработчику программы Vim возможность + безвозмездного и неограниченного распространения этих изменений, + а также право на безвозмездное и неограниченное включение этих + изменений в официальную версию программы Vim. + - Изменения должны сохраняться не менее трёх лет со времени + распространения соответствующей изменённой версии программы Vim. + В течение этого периода по запросу ответственного разработчика + или другого пользователя изменённой версии программы Vim + (в любой форме) необходимо предоставить исходный код данных + изменений. + - В дистрибутиве изменённой версии программы Vim должны быть явно + указаны контактные данные лица, внёсшего эти изменения. + Контактные данные должны сохранять актуальность в течение + не менее трёх лет со времени последнего распространения + соответствующей изменённой версии программы Vim или как можно + дольше. + e) Если к изменениям, внесённым в программу Vim, применимы условия + лицензии GNU General Public License (GNU GPL), допускается + распространение изменённой версия программы Vim на условиях + лицензии GNU GPL версии 2 или любой более поздней версии этой + лицензии. + 3) Необходимо добавить соответствующую информацию, которая должна быть + выведена в результате выполнения команды ":version" в программе Vim, + а также на экране приветствия программы Vim, чтобы пользователь + изменённой версии программы Vim имел возможность определить, что он + пользуется изменённой версией. При распространении на условиях, + указанных в ч. II) п. 2) пп. e) такую информацию требуется добавлять + только в том случае, когда она не противоречит лицензии, + распространяющейся на эти изменения. + 4) Контактная информация, которая указывается по требованию ч. II) п. 2) + пп. a) и ч. II) п. 2) пп. d) не должна удаляться или изменяться никем + другим, кроме лица, указавшего данную контактную информацию. + +III) При распространении изменённой версии программы Vim рекомендуется + пользоваться лицензией Vim для произведённых изменений и обеспечить + доступ к этим изменениям ответственного разработчика, включая исходный + код изменений. Предпочтительным способом предоставления доступа к + произведённым изменениям является отправка этих изменений по + электронной почте или загрузка файлов на сервер с отправкой URL-адреса + по электронной почте. Если количество изменений незначительно + (например, изменения в файле Makefile) достаточно будет отправить по + электронной почте файл построчного сравнения. Изменения или URL-адреса + должны быть отправлены на адрес электронной почты maintainer@vim.org + +IV) Не допускается удаление настоящей лицензия из дистрибутива исходного + кода программы Vim, его отдельных частей или изменённой версии. + Допускается использование настоящей лицензию для предыдущих изменённых + выпусков программы Vim, взамен тех лицензий, с которыми они + распространялись. + +=== конец лицензии === + +Примечание. + +- Если вам нравится программа Vim, дочитайте до конца и подумайте над + оказанием помощи нуждающимся детям в Уганде. + +- При наличии желания поддержать дальнейшую разработку программы Vim, + рассмотрите возможность оказания финансовой поддержки (см. раздел + |sponsor|). В любом случае деньги отправляются в Уганду. + +- Ричард Столлман (Richard Stallman) подтвердил, что лицензия Vim совместима + с лицензией GNU GPL. С момента его последней проверки были внесены + незначительные изменения, но они не должны оказать на это никакого влияния. + +- Если сборка программы Vim осуществляется с использованием библиотеки, на + которую распространяется лицензия GNU GPL, дальнейшее распространение + программы может осуществляться только на условиях лицензии GNU GPL. Даже + если в саму программу Vim не было внесено никаких изменений. + +- Если были внесены изменения, на которые распространяется лицензия GNU GPL, + все дальнейшие изменения также должны добавляться на условиях лицензии + GNU GPL или другой совместимой лицензии. + +- При распространении изменённой версии программы Vim, своё имя и контактную + информацию можно добавлять с помощью аргумента конфигурации + "--with-modified-by" или директивы define MODIFIED_BY. + +============================================================================== +Детский центр в Кибаале *kcc* *Kibaale* *charity* + +Детский центр в Кибаале (Kibaale Children's Centre, KCC) находится в гор. +Кибаал. Это небольшой городок в восточной Африке на юге Уганды недалеко от +Танзании на территории округа Ракаи. Большая часть населения занимается +земледелием. Несмотря на бедность жителей, здесь обычно бывает достаточно +пищи. Однако по числу заболевших СПИД этот округ превосходит любую другую +точку планеты. Существует мнение, что именно отсюда началось распространение +этой смертельной болезни. По некоторым оценкам в прошлом от 10 до 30 +процентов жителей Уганды были заражены ВИЧ. Высокая смертность родителей +стала причиной появления большого количества сирот. При населении округа +в 350 000 человек, 60 000 детей потеряло одного или обоих родителей. Однако +даже несомненные успехи в уменьшении масштабов распространения СПИД +не могут привести к полному исчезновению проблем. + +Дети очень нуждаются в помощи. Организация KCC прилагает все усилия для +предоставления нуждающимся пищи, медицинской помощи и образования. Пища и +медицинская помощь предоставляются для поддержания здоровья, а образование +даёт возможность позаботиться о себе в будущем. Организация KCC работает на +базе христианской миссии, но помощь оказывается всем детям независимо от их +приверженности к какой-либо религии. + +В данном случае ключом к решению проблем является возможность получения +образования. В последнее время при правлении президента Иди Амина (Idi Amin +Dada Oumee), а также в ходе последовавших гражданских войн, этой проблеме не +уделялось достаточно внимания. Однако сейчас после стабилизации деятельности +правительства детям и их родителям нужно учиться жить и заботиться самим о +себе, избегая при этом риска заражения инфекционными заболеваниями. Поэтому +наряду с оказанием помощи больным и голодающим, основной целью миссии +является предупреждение заболеваемости и прививание навыков по употреблению +здоровой пищи. + +Большинство сирот проживают у близких родственников, воспитываются дядями +или старшими сёстрами. Вследствие больших размеров семей и низких доходов +(если таковые имеются), большим везением для ребёнка будет обеспечение +здоровым питанием. Про одежду, медицинскую помощь и школьное обучение +говорить уже не приходится. Для оказания помощи таким нуждающимся детям была +организована программа оказания финансовой помощи. Она позволяет взять +ребёнка на финансовое обеспечение. За несколько долларов в месяц организация +KCC обеспечит его необходимыми предметами обихода, будет следить за его +здоровьем, организует школьное обучение, а также сделает всё необходимое для +ребёнка и семьи, которая поддерживает его развитие. + +Помимо непосредственного оказания помощи ребёнку, необходимо также проводить +комплексное развитие среды, в которой живут дети. С этой целью организация +KCC предоставляет школам помощь по улучшению методов обучения. На базе +центра имеется показательная школа, в которой организуется обучение для +учителей. Также проводится обучение медицинских работников, прививаются +санитарно-гигиенические нормы, пропагандируется постройка туалетов +надлежащей конструкции в местах проживания. Также лично мною была оказана +помощь в постройке производственного объекта по созданию железобетонных плит, +которые применяются при постройке туалетов и продаются по сниженным ценам. + +На балансе проекта содержится клиника, в которой предоставляется медицинская +помощь детям и их семьям. В 2020 году было открыто родильное отделение и +пункт круглосуточного оказания медицинской помощи. При необходимости +осуществляется доставка в больницу. Проводятся программы иммунизации +населения, и предоставляется помощь при вспышках эпидемии (случаются вспышки +кори и холеры). + *donate* +С лета 1994 года до лета 1995 года мне целый год довелось провести в центре, +работая там в качестве волонтёра. Я помогал в расширении центра и трудился в +сфере водоснабжения и санитарно-гигиенического контроля. Там я убедился в +эффективности той помощи, которую оказывает организация KCC. По возвращении +в Нидерланды утвердилось желание продолжить поддержку организации KCC. +С этой целью я провожу сбор средств и организую программу оказания +финансовой помощи. Поэтому предлагаю вам рассмотреть одну из следующих +возможностей: + +1. Предоставить финансовую помощь ребёнку в начальной школе — 17 евро в + месяц (или больше). +2. Предоставить финансовую помощь ребёнку в средней школе — 25 евро в месяц + (или больше). +3. Предоставить финансовую помощь клинике — любая сумма раз в месяц или + в квартал. +4. Единовременное пожертвование. + +По сравнению с другими программами оказания финансовой поддержки детям, +указанные выше суммы выглядят весьма скромно. Причина столь небольшого +размера пожертвований заключается в том, что деньги направляются +непосредственно в центр. На администрацию тратиться менее 5 %, что стало +возможным благодаря малым размерам организации и привлечению волонтёров. +Если вы предполагаете взять на финансовое обеспечение ребёнка, то важно +понимать, что регулярное оказание помощи должно осуществляться на протяжении +не менее одного года. + +Я понимаю, что вам нужны гарантии поступления средств по адресу. Прежде +всего, я готов предоставить свои личные гарантии, как автор программы Vim. +Я доверяю людям, работающим в этом центре, и знаю их лично. Кроме того, +финансирование и инспектирование центра осуществлялось совместно с такими +общеизвестными благотворительными организациями, как «World Vision», +«Save the Children», а теперь центр находится на попечении организации +«Pacific Academy Outreach Society». Посещение центра осуществляется (за свой +собственный счёт) примерно раз в год для проверки хода выполнения текущих +задач. Я сам неоднократно посещал этот центр, начиная с 1993 года. Отчёты о +посещениях размещаются на веб-сайте организации ICCF. + +Если у вас остались вопросы, можете задать их по электронной почте +. + +Адрес центра: + Kibaale Children's Centre + p.o. box 1658 + Masaka, Uganda, East Africa + +Перечисление средств *iccf-donations* + +Самая свежая информация доступна на веб-сайте организации ICCF! +См. раздел |iccf|. + + + США + Можно использовать методы, перечисленные ниже. Если + требуется отправить чек, то отправьте его нашему партнёру в + Канаде, адрес: https://www.kuwasha.net/ + + Канада + Свяжитесь с командой Kuwasha в гор. Сарри, Канада. Они + могут оказать содействие благотворителям из Канады для + помощи детям в гор. Кибаале. Команда Kuwasha переводит 100% + средств, поступивших в пользу проекта в Уганде. + Единовременное пожертвование может быть отправлено им + напрямую. При этом прошу отправлять мне сообщение, для учёта + информации о количестве средств, пожертвованных благодаря + программе Vim. + На их веб-сайте также можно ознакомиться с информацией по + оказанию финансовой поддержки https://www.kuwasha.net/ + При отправке пожертвований через Kuwasha вы получите + налоговое уведомление, которое можно будет подать вместе с + налоговой декларацией. + + Нидерланды + Перевод на счёт «Stichting ICCF Holland», Amersfoort. Можно + будет получить налоговый вычет, если вы проживаете в + Нидерландах. Банк ING, IBAN: NL95 INGB 0004 5487 74 + + Германия + Можно сделать пожертвование, дающее право на налоговый + вычет. Ознакомьтесь с последней информацией на веб-сайте + организации ICCF + https://iccf-holland.org/germany.html + + Европа + Банковский перевод. См. далее рубрику «Другие варианты», + где указан код Swift и номер IBAN. + Любые другие платёжные методы также должны работать. + Проконсультируйтесь по вопросу отправки средств на + благотворительные цели. + + Банковская карта + Можно воспользоваться платёжной системой PayPal для + отправки денег с банковской карты. Это наиболее + распространённая и чрезвычайно простая в использовании + платёжная система на основе сети Интернет. Больше информации + можно найти по адресу + https://www.paypal.com/en_US/mrb/pal=XAC62PML3GF8Q + Адрес электронной почты для обсуждения вопросов по + отправке средств + Bram@iccf-holland.org + + Другие варианты + Средства можно отправить на указанный ниже счёт. + Банк ING. IBAN: NL95 INGB 0004 5487 74 + Код SWIFT: INGBNL2A + на имя «stichting ICCF Holland», Amersfoort + Чеки не принимаются. + +============================================================================= +© Казорин Сергей, перевод на русский язык, 2022, +© Restorer, редакторская правка, 2022, + + vim:tw=78:ts=8:noet:ft=help:norl: diff --git a/runtime/doc/uganda.txt b/runtime/doc/uganda.txt index 3a2474793a..6b77050453 100644 --- a/runtime/doc/uganda.txt +++ b/runtime/doc/uganda.txt @@ -1,4 +1,4 @@ -*uganda.txt* For Vim version 9.0. Last change: 2022 Mar 02 +*uganda.txt* For Vim version 9.1. Last change: 2022 Mar 02 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/undo.txt b/runtime/doc/undo.txt index dc2274c14c..40edf2fdf5 100644 --- a/runtime/doc/undo.txt +++ b/runtime/doc/undo.txt @@ -1,4 +1,4 @@ -*undo.txt* For Vim version 9.0. Last change: 2022 Jun 02 +*undo.txt* For Vim version 9.1. Last change: 2022 Jun 02 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/userfunc.txt b/runtime/doc/userfunc.txt index 1fe780076c..f6d3d0a8f3 100644 --- a/runtime/doc/userfunc.txt +++ b/runtime/doc/userfunc.txt @@ -1,4 +1,4 @@ -*userfunc.txt* For Vim version 9.0. Last change: 2023 May 23 +*userfunc.txt* For Vim version 9.1. Last change: 2023 May 23 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/usr_01.txt b/runtime/doc/usr_01.txt index 65e445c572..096048fd13 100644 --- a/runtime/doc/usr_01.txt +++ b/runtime/doc/usr_01.txt @@ -1,4 +1,4 @@ -*usr_01.txt* For Vim version 9.0. Last change: 2023 May 12 +*usr_01.txt* For Vim version 9.1. Last change: 2023 May 12 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_02.txt b/runtime/doc/usr_02.txt index 680a4e607d..486426ed7e 100644 --- a/runtime/doc/usr_02.txt +++ b/runtime/doc/usr_02.txt @@ -1,4 +1,4 @@ -*usr_02.txt* For Vim version 9.0. Last change: 2021 Apr 24 +*usr_02.txt* For Vim version 9.1. Last change: 2021 Apr 24 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_03.txt b/runtime/doc/usr_03.txt index b2abc430d7..eb9e311d0b 100644 --- a/runtime/doc/usr_03.txt +++ b/runtime/doc/usr_03.txt @@ -1,4 +1,4 @@ -*usr_03.txt* For Vim version 9.0. Last change: 2023 Mar 13 +*usr_03.txt* For Vim version 9.1. Last change: 2023 Mar 13 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_04.txt b/runtime/doc/usr_04.txt index 91c13aa4a3..b81fccc51d 100644 --- a/runtime/doc/usr_04.txt +++ b/runtime/doc/usr_04.txt @@ -1,4 +1,4 @@ -*usr_04.txt* For Vim version 9.0. Last change: 2021 Feb 22 +*usr_04.txt* For Vim version 9.1. Last change: 2021 Feb 22 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_05.txt b/runtime/doc/usr_05.txt index 2755999737..05239eeeb6 100644 --- a/runtime/doc/usr_05.txt +++ b/runtime/doc/usr_05.txt @@ -1,4 +1,4 @@ -*usr_05.txt* For Vim version 9.0. Last change: 2023 Sep 12 +*usr_05.txt* For Vim version 9.1. Last change: 2023 Sep 12 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_06.txt b/runtime/doc/usr_06.txt index 2b6fa51336..6d76c53e14 100644 --- a/runtime/doc/usr_06.txt +++ b/runtime/doc/usr_06.txt @@ -1,4 +1,4 @@ -*usr_06.txt* For Vim version 9.0. Last change: 2021 Nov 07 +*usr_06.txt* For Vim version 9.1. Last change: 2021 Nov 07 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_07.txt b/runtime/doc/usr_07.txt index 2be3062ac8..ea4875ec58 100644 --- a/runtime/doc/usr_07.txt +++ b/runtime/doc/usr_07.txt @@ -1,4 +1,4 @@ -*usr_07.txt* For Vim version 9.0. Last change: 2020 Mar 23 +*usr_07.txt* For Vim version 9.1. Last change: 2020 Mar 23 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_08.txt b/runtime/doc/usr_08.txt index 148f0cf86d..a24473baa6 100644 --- a/runtime/doc/usr_08.txt +++ b/runtime/doc/usr_08.txt @@ -1,4 +1,4 @@ -*usr_08.txt* For Vim version 9.0. Last change: 2021 May 20 +*usr_08.txt* For Vim version 9.1. Last change: 2021 May 20 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_09.txt b/runtime/doc/usr_09.txt index 43394da6ea..6fac5c2a71 100644 --- a/runtime/doc/usr_09.txt +++ b/runtime/doc/usr_09.txt @@ -1,4 +1,4 @@ -*usr_09.txt* For Vim version 9.0. Last change: 2017 Aug 11 +*usr_09.txt* For Vim version 9.1. Last change: 2017 Aug 11 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_10.txt b/runtime/doc/usr_10.txt index 220a7ab0ad..4ffd235562 100644 --- a/runtime/doc/usr_10.txt +++ b/runtime/doc/usr_10.txt @@ -1,4 +1,4 @@ -*usr_10.txt* For Vim version 9.0. Last change: 2019 Nov 22 +*usr_10.txt* For Vim version 9.1. Last change: 2019 Nov 22 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_11.txt b/runtime/doc/usr_11.txt index 3a61082cbc..9ba6f4420e 100644 --- a/runtime/doc/usr_11.txt +++ b/runtime/doc/usr_11.txt @@ -1,4 +1,4 @@ -*usr_11.txt* For Vim version 9.0. Last change: 2020 Oct 25 +*usr_11.txt* For Vim version 9.1. Last change: 2020 Oct 25 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_12.txt b/runtime/doc/usr_12.txt index a5f75ec8c2..fb90c613be 100644 --- a/runtime/doc/usr_12.txt +++ b/runtime/doc/usr_12.txt @@ -1,4 +1,4 @@ -*usr_12.txt* For Vim version 9.0. Last change: 2022 Nov 19 +*usr_12.txt* For Vim version 9.1. Last change: 2022 Nov 19 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_20.txt b/runtime/doc/usr_20.txt index 479f57c76b..486f18f991 100644 --- a/runtime/doc/usr_20.txt +++ b/runtime/doc/usr_20.txt @@ -1,4 +1,4 @@ -*usr_20.txt* For Vim version 9.0. Last change: 2021 Nov 18 +*usr_20.txt* For Vim version 9.1. Last change: 2021 Nov 18 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_21.txt b/runtime/doc/usr_21.txt index 2f6ee9c5de..95ded58eaf 100644 --- a/runtime/doc/usr_21.txt +++ b/runtime/doc/usr_21.txt @@ -1,4 +1,4 @@ -*usr_21.txt* For Vim version 9.0. Last change: 2019 Apr 25 +*usr_21.txt* For Vim version 9.1. Last change: 2019 Apr 25 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_22.txt b/runtime/doc/usr_22.txt index 8ed1028506..57862edaa0 100644 --- a/runtime/doc/usr_22.txt +++ b/runtime/doc/usr_22.txt @@ -1,4 +1,4 @@ -*usr_22.txt* For Vim version 9.0. Last change: 2020 Mar 28 +*usr_22.txt* For Vim version 9.1. Last change: 2020 Mar 28 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_23.txt b/runtime/doc/usr_23.txt index cbcc4844c9..016f74295b 100644 --- a/runtime/doc/usr_23.txt +++ b/runtime/doc/usr_23.txt @@ -1,4 +1,4 @@ -*usr_23.txt* For Vim version 9.0. Last change: 2020 Dec 19 +*usr_23.txt* For Vim version 9.1. Last change: 2020 Dec 19 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_24.txt b/runtime/doc/usr_24.txt index 361ce1bb83..72f43f0681 100644 --- a/runtime/doc/usr_24.txt +++ b/runtime/doc/usr_24.txt @@ -1,4 +1,4 @@ -*usr_24.txt* For Vim version 9.0. Last change: 2018 Mar 18 +*usr_24.txt* For Vim version 9.1. Last change: 2018 Mar 18 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_25.txt b/runtime/doc/usr_25.txt index 2f25a9fb2a..af013bcfe7 100644 --- a/runtime/doc/usr_25.txt +++ b/runtime/doc/usr_25.txt @@ -1,4 +1,4 @@ -*usr_25.txt* For Vim version 9.0. Last change: 2016 Mar 28 +*usr_25.txt* For Vim version 9.1. Last change: 2016 Mar 28 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_26.txt b/runtime/doc/usr_26.txt index 7fec325cfa..81345f4598 100644 --- a/runtime/doc/usr_26.txt +++ b/runtime/doc/usr_26.txt @@ -1,4 +1,4 @@ -*usr_26.txt* For Vim version 9.0. Last change: 2006 Apr 24 +*usr_26.txt* For Vim version 9.1. Last change: 2006 Apr 24 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_27.txt b/runtime/doc/usr_27.txt index 54e5c3a4bf..bb5b5657a3 100644 --- a/runtime/doc/usr_27.txt +++ b/runtime/doc/usr_27.txt @@ -1,4 +1,4 @@ -*usr_27.txt* For Vim version 9.0. Last change: 2019 Jul 14 +*usr_27.txt* For Vim version 9.1. Last change: 2019 Jul 14 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_28.txt b/runtime/doc/usr_28.txt index d0c351667c..54111665d3 100644 --- a/runtime/doc/usr_28.txt +++ b/runtime/doc/usr_28.txt @@ -1,4 +1,4 @@ -*usr_28.txt* For Vim version 9.0. Last change: 2008 Jun 14 +*usr_28.txt* For Vim version 9.1. Last change: 2008 Jun 14 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_29.txt b/runtime/doc/usr_29.txt index 20712f27a0..a534c6f1cd 100644 --- a/runtime/doc/usr_29.txt +++ b/runtime/doc/usr_29.txt @@ -1,4 +1,4 @@ -*usr_29.txt* For Vim version 9.0. Last change: 2022 Mar 13 +*usr_29.txt* For Vim version 9.1. Last change: 2022 Mar 13 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_30.txt b/runtime/doc/usr_30.txt index a23df96606..19a1259fe2 100644 --- a/runtime/doc/usr_30.txt +++ b/runtime/doc/usr_30.txt @@ -1,4 +1,4 @@ -*usr_30.txt* For Vim version 9.0. Last change: 2007 Nov 10 +*usr_30.txt* For Vim version 9.1. Last change: 2007 Nov 10 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_31.txt b/runtime/doc/usr_31.txt index 455274f4fc..5e4a261e56 100644 --- a/runtime/doc/usr_31.txt +++ b/runtime/doc/usr_31.txt @@ -1,4 +1,4 @@ -*usr_31.txt* For Vim version 9.0. Last change: 2020 Jul 28 +*usr_31.txt* For Vim version 9.1. Last change: 2020 Jul 28 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_32.txt b/runtime/doc/usr_32.txt index 9733d709cb..6ab89622bf 100644 --- a/runtime/doc/usr_32.txt +++ b/runtime/doc/usr_32.txt @@ -1,4 +1,4 @@ -*usr_32.txt* For Vim version 9.0. Last change: 2010 Jul 20 +*usr_32.txt* For Vim version 9.1. Last change: 2010 Jul 20 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_40.txt b/runtime/doc/usr_40.txt index 27323c6f4e..b8dfae6b78 100644 --- a/runtime/doc/usr_40.txt +++ b/runtime/doc/usr_40.txt @@ -1,4 +1,4 @@ -*usr_40.txt* For Vim version 9.0. Last change: 2022 Jun 23 +*usr_40.txt* For Vim version 9.1. Last change: 2022 Jun 23 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt index 3961f5de19..71dc01782b 100644 --- a/runtime/doc/usr_41.txt +++ b/runtime/doc/usr_41.txt @@ -1,4 +1,4 @@ -*usr_41.txt* For Vim version 9.0. 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: > @@ -743,10 +743,13 @@ String manipulation: *string-functions* toupper() turn a string to uppercase charclass() class of a character match() position where a pattern matches in a string + matchbufline() all the matches of a pattern in a buffer matchend() position where a pattern match ends in a string matchfuzzy() fuzzy matches a string in a list of strings matchfuzzypos() fuzzy matches a string in a list of strings matchstr() match of a pattern in a string + matchstrlist() all the matches of a pattern in a List of + strings matchstrpos() match and positions of a pattern in a string matchlist() like matchstr() and also return submatches stridx() first index of a short string in a long string @@ -795,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 @@ -826,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 @@ -924,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 @@ -1363,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/usr_42.txt b/runtime/doc/usr_42.txt index cef7ae028a..2763ff2833 100644 --- a/runtime/doc/usr_42.txt +++ b/runtime/doc/usr_42.txt @@ -1,4 +1,4 @@ -*usr_42.txt* For Vim version 9.0. Last change: 2008 May 05 +*usr_42.txt* For Vim version 9.1. Last change: 2008 May 05 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_43.txt b/runtime/doc/usr_43.txt index 9095a8ec32..41b08de187 100644 --- a/runtime/doc/usr_43.txt +++ b/runtime/doc/usr_43.txt @@ -1,4 +1,4 @@ -*usr_43.txt* For Vim version 9.0. Last change: 2015 Oct 23 +*usr_43.txt* For Vim version 9.1. Last change: 2015 Oct 23 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_44.txt b/runtime/doc/usr_44.txt index 11a0286074..1d1b5a1e17 100644 --- a/runtime/doc/usr_44.txt +++ b/runtime/doc/usr_44.txt @@ -1,4 +1,4 @@ -*usr_44.txt* For Vim version 9.0. Last change: 2017 May 06 +*usr_44.txt* For Vim version 9.1. Last change: 2017 May 06 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_45.txt b/runtime/doc/usr_45.txt index 7e919a9426..4a3684e5a2 100644 --- a/runtime/doc/usr_45.txt +++ b/runtime/doc/usr_45.txt @@ -1,4 +1,4 @@ -*usr_45.txt* For Vim version 9.0. Last change: 2022 May 13 +*usr_45.txt* For Vim version 9.1. Last change: 2022 May 13 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_50.txt b/runtime/doc/usr_50.txt index fc46388c09..ee377cabef 100644 --- a/runtime/doc/usr_50.txt +++ b/runtime/doc/usr_50.txt @@ -1,4 +1,4 @@ -*usr_50.txt* For Vim version 9.0. Last change: 2022 Jun 20 +*usr_50.txt* For Vim version 9.1. Last change: 2022 Jun 20 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_51.txt b/runtime/doc/usr_51.txt index e83324a660..b0bf792243 100644 --- a/runtime/doc/usr_51.txt +++ b/runtime/doc/usr_51.txt @@ -1,4 +1,4 @@ -*usr_51.txt* For Vim version 9.0. Last change: 2022 Jun 03 +*usr_51.txt* For Vim version 9.1. Last change: 2024 Apr 04 VIM USER MANUAL - by Bram Moolenaar @@ -649,13 +649,9 @@ When you write a compiler file and put it in your personal runtime directory make the default file skip the settings. *:CompilerSet* The second mechanism is to use ":set" for ":compiler!" and ":setlocal" for -":compiler". Vim defines the ":CompilerSet" user command for this. However, -older Vim versions don't, thus your plugin should define it then. This is an -example: > +":compiler". Vim defines the ":CompilerSet" user command for this. This is +an example: > - if exists(":CompilerSet") != 2 - command -nargs=* CompilerSet setlocal - endif CompilerSet errorformat& " use the default 'errorformat' CompilerSet makeprg=nmake diff --git a/runtime/doc/usr_52.txt b/runtime/doc/usr_52.txt index 787dd91e6a..222b899c32 100644 --- a/runtime/doc/usr_52.txt +++ b/runtime/doc/usr_52.txt @@ -1,4 +1,4 @@ -*usr_52.txt* For Vim version 9.0. Last change: 2022 Jun 04 +*usr_52.txt* For Vim version 9.1. Last change: 2022 Jun 04 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_90.txt b/runtime/doc/usr_90.txt index 781a0ffdff..418f1f0dc1 100644 --- a/runtime/doc/usr_90.txt +++ b/runtime/doc/usr_90.txt @@ -1,4 +1,4 @@ -*usr_90.txt* For Vim version 9.0. Last change: 2022 May 13 +*usr_90.txt* For Vim version 9.1. Last change: 2022 May 13 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_toc.txt b/runtime/doc/usr_toc.txt index 655d6a90db..4cb404bc87 100644 --- a/runtime/doc/usr_toc.txt +++ b/runtime/doc/usr_toc.txt @@ -1,4 +1,4 @@ -*usr_toc.txt* For Vim version 9.0. Last change: 2022 Jun 20 +*usr_toc.txt* For Vim version 9.1. Last change: 2022 Jun 20 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt index 4c5866e9dc..d58ee79aa5 100644 --- a/runtime/doc/various.txt +++ b/runtime/doc/various.txt @@ -1,4 +1,4 @@ -*various.txt* For Vim version 9.0. Last change: 2023 Sep 27 +*various.txt* For Vim version 9.1. Last change: 2023 Sep 27 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/version4.txt b/runtime/doc/version4.txt index 052cbbd639..ab358d2884 100644 --- a/runtime/doc/version4.txt +++ b/runtime/doc/version4.txt @@ -1,4 +1,4 @@ -*version4.txt* For Vim version 9.0. Last change: 2006 Apr 24 +*version4.txt* For Vim version 9.1. Last change: 2006 Apr 24 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/version5.txt b/runtime/doc/version5.txt index cde0ad05a3..19fcf9e1cc 100644 --- a/runtime/doc/version5.txt +++ b/runtime/doc/version5.txt @@ -1,4 +1,4 @@ -*version5.txt* For Vim version 9.0. Last change: 2022 Nov 09 +*version5.txt* For Vim version 9.1. Last change: 2022 Nov 09 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/version6.txt b/runtime/doc/version6.txt index e14e158867..f4d2a98585 100644 --- a/runtime/doc/version6.txt +++ b/runtime/doc/version6.txt @@ -1,4 +1,4 @@ -*version6.txt* For Vim version 9.0. Last change: 2022 Apr 06 +*version6.txt* For Vim version 9.1. Last change: 2022 Apr 06 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt index 0e26108ed7..f30b88e99d 100644 --- a/runtime/doc/version7.txt +++ b/runtime/doc/version7.txt @@ -1,4 +1,4 @@ -*version7.txt* For Vim version 9.0. Last change: 2021 May 17 +*version7.txt* For Vim version 9.1. Last change: 2021 May 17 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/version8.txt b/runtime/doc/version8.txt index fd30bbc73b..1d36c78b1a 100644 --- a/runtime/doc/version8.txt +++ b/runtime/doc/version8.txt @@ -1,4 +1,4 @@ -*version8.txt* For Vim version 9.0. Last change: 2022 Feb 26 +*version8.txt* For Vim version 9.1. Last change: 2022 Feb 26 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/version9.txt b/runtime/doc/version9.txt index 09d6b3b7e3..c2779236ce 100644 --- a/runtime/doc/version9.txt +++ b/runtime/doc/version9.txt @@ -1,4 +1,4 @@ -*version9.txt* For Vim version 9.0. Last change: 2023 Aug 09 +*version9.txt* For Vim version 9.1. Last change: 2024 Apr 14 VIM REFERENCE MANUAL by Bram Moolenaar @@ -29,6 +29,11 @@ COMPILE TIME CHANGES |compile-changes-9| PATCHES |patches-9| +VERSION 9.1 |version-9.1| +Changed |changed-9.1| +Added |added-9.1| +Patches |patches-9.1| + See |vi_diff.txt| for an overview of differences between Vi and Vim 9.0. See |version4.txt|, |version5.txt|, |version6.txt|, |version7.txt| and @@ -12952,7 +12957,7 @@ Files: src/fileio.c Patch 8.2.2056 Problem: Configure fails when building with the "implicit-function-declaration" error enabled, specifically on Mac. -Solution: Declear the functions like in the source code. (suggestion by +Solution: Declare the functions like in the source code. (suggestion by Clemens Lang, closes #7380) Files: src/configure.ac, src/auto/configure @@ -18857,7 +18862,7 @@ Solution: Do not handle text properties when deleting a line for splitting a Files: src/structs.h, src/memline.c, src/testdir/test_textprop.vim Patch 8.2.3063 -Problem: Crash when switching 'cryptmethod' to xchaha20 with an existing +Problem: Crash when switching 'cryptmethod' to xchacha20 with an existing undo file. (Martin Tournoij) Solution: Disable reading undo file when decoding can't be done inplace. (issue #8467) @@ -19814,7 +19819,7 @@ Solution: Add missing changes. Files: src/globals.h Patch 8.2.3218 -Problem: When using xchaha20 crypt undo file is not removed. +Problem: When using xchacha20 crypt undo file is not removed. Solution: Reset 'undofile' and delete the file. (Christian Brabandt, closes #8630, closes #8467) Files: src/bufwrite.c, src/crypt.c, src/proto/undo.pro, @@ -29038,7 +29043,7 @@ Files: src/testdir/test_autocmd.vim Patch 8.2.4729 Problem: HEEx and Surface templates do not need a separate filetype. -Solution: Use Eelixir for the similar filetypes. (Aaron Tinio, closes #10124) +Solution: Use Elixir for the similar filetypes. (Aaron Tinio, closes #10124) Files: runtime/filetype.vim, src/testdir/test_filetype.vim Patch 8.2.4730 @@ -29634,7 +29639,7 @@ Solution: Use K_ZERO instead. Use macros instead of hard coded values. Files: src/getchar.c, src/misc2.c, src/testdir/test_termcodes.vim Patch 8.2.4830 -Problem: Possible endless loop if there is unused typahead. +Problem: Possible endless loop if there is unused typeahead. Solution: Only loop when the typeahead changed. Files: src/channel.c @@ -31683,24 +31688,132 @@ Files: runtime/makemenu.vim VERSION 9.1 *version-9.1* *version9.1* *vim-9.1* This section is about improvements made between version 9.0 and 9.1. +The release 9.1 is dedicated to Vim's Benevolent dictator for life +|Bram-Moolenaar|. This release has hundreds of bug fixes, there are a few new features and there are many minor improvements. Vim9 classes ------------ +Support for classes and objects in a Vim9 script are added. This is described +in |vim9-class|. The following features are supported: + - Defining classes and instantiating objects + - Multiple constructors + - Class variables and methods + - Object variables and methods + - Public and protected access for variables and methods + - Constant and final object/class variables + - Extending classes (single inheritance) + - Interfaces + - Abstract classes + - Exporting classes + +Support for creating a type alias for an existing type is added. Virtual text ------------ +Support for adding |virtual-text| to a buffer is added. This is useful for +language server features (e.g. inlay hints) Smooth Scroll ------------- +Support for scrolling text using screen lines instead of file lines is added. +Refer to the 'smoothscroll' option. + +The EditorConfig (|editorconfig-install|) and the JSON formatting +(|ft-json-plugin|) plugins are included. + +OpenVMS x86_64 platform port: http://www.polarhome.com/vim/ Other improvements *new-other-9.1* ------------------ +- Support for undercurl (|t_Ce|), double underline (|t_Us|), dotted underline + (|t_ds|) and dashed underline (|t_Ds|) termcap entries and + highlight modes (|highlight-term|). +- The 'fillchars' option is now a global-local option and allows to + specify the character used for the last window line. +- The |:vertical| and |:horizontal| modifiers can be used with ":wincmd =" + command to equalize windows vertically or horizontally. +- |:defer| command to defer the execution of a function till the end of a + function. +- Support for closing a tab page using the middle mouse button. +- Sound support in MacOS. +- The |prop_remove()| function can now remove multiple text properties. +- The |items()| function now supports a List or a String argument. +- The |repeat()| function now supports blob repeat. +- Command line completion support for |:runtime| command. +- Support for custom completion using |getcompletion()|. +- Command-line completion support for option values. +- Support for multiple "%=" items in 'statusline'. +- Support for the PmenuKind, PmenuKindSel, PmenuExtra and PmenuExtraSel + highlight groups. +- Text properties can override 'cursorline' highlight. +- Support for echoing messages in a popup window |:echowindow|. +- Control scroll behavior when splitting windows 'splitkeep'. +- Support for mouse scrolling in the MS-Windows console. +- Support for using different keyboard protocols 'keyprotocol' + (xterm |modifyOtherKeys| and Kitty terminal protocol (CSI u) support). +- Support for UTF-16 string index. +- Quickfix list items can have associated custom user data. +- |reverse()| supports reversing a string. +- 'switchbuf' is used by more commands. +- |undotree()| can be used with any buffer. +- |printf()| supports positional arguments. +- |col()|, |charcol()| and |virtcol()| can be used with different windows. +- Support for Python3 stable ABI (|python-stable|). +- Use |jumplist| like a stack 'jumpoptions'. +- Support for writing extended attributes in Linux (|xattr|). +- 'errorformat' supports parsing a buffer number ("%b"). +- Support for building the python interface using Python 3.12. +- |matchaddpos()| is no longer limited to 8 positions. +- |readblob()| allows to read part of a file. +- 'shortmess' allows to suppress "scanning" messages. +- Add the XChaCha20v2 encryption method 'cryptmethod'. +- Add support for testing syntax files. +- Support "**" for filename expansion with bash using globstar setting. +- Add quadruple prime digraph using 4'. +- Better high dpi support on Windows. +- Various fixes for unsafe memory access, memory leaks, buffer overflows + and potential crashes. +- Termdebug: Support for the variables window (|termdebug_variables_window|), + moving up/down the stack frames (|termdebug-frames|) and setting temporary + breakpoints (|:Tbreak|). +- xxd: support for using colors in the hex dump output (xxd -R). +- xxd: reversing a bit dump (xxd -r). +- xxd: customize the variable name used in the C include output (xxd -n). Changed *changed-9.1* ------- +- The features |++builtin_terms|, |+cmdline_info|, |+cmdwin|, |+file_in_path|, + |+float|, |+path_extra|, |+textobjects|, |+wildignore| and |+wildmenu| are + available in all the builds. +- Support for Windows-XP is dropped. +- Support for VisVim is removed. +- The "small" and "big" builds are dropped in favor of "tiny" and "huge" + builds. +- Mention the detected 'keyprotocol' on ":verbose map" when listing mappings. +- The optional Content-Type header is removed from the LSP messages. +- |charidx()| returns the character length when the index is one more than the + last byte index. +- Ctrl-Q works like Ctrl-V in replace mode. +- |popup_filter_menu()| now wraps around. +- |popup_create()| now aborts on an error. +- |g| now jumps to the last non-blank character. +- dot and hyphen are supported in highlight group names. +- |executable()| resolves symlinks on MS-Windows. +- Ruby 1.8 support is dropped. +- 'ttyfast' is always set. +- |virtcol2col()| returns the first byte for a multi-byte character. +- |i_CTRL-O| resets Select Mode. +- |mode()| returns more submodes. +- r with CTRL-C on a visual area replaces using CTRL-C consistently. +- The matchparen plugin no longer uses hard coded match id 3. +- The Statusline no longer uses hard coded values "^" and "=" if the + highlighting groups for the statusline have been cleared. +- 'maxfuncdepth' setting is also used for the maximum callback depth. +- Migrate to autoconf 2.71. +- Start using C99 feature (declare variable in for loops). Added *added-9.1* ----- @@ -31710,7 +31823,7 @@ Various syntax, indent and other plugins were added. Functions: ~ |err_teapot()| produce error 418 or 503 -|getbufoneline()| get a one line from the specified buffer +|getbufoneline()| get a single line from the specified buffer |getcellwidths()| get character cell width overrides |getmouseshape()| get name of the current mouse shape |getscriptinfo()| get list of sourced vim scripts @@ -31733,21 +31846,23 @@ Autocommands: ~ Commands: ~ -|:abstract| define an Vim9 abstract class +|:abstract| define a Vim9 abstract class |:class| start of a class specification |:defer| call function when current function is done |:echowindow| same as :echomsg, but use a popup window |:endinterface| end of an interface specification |:endclass| end of a class specification -|:horizontal| following window command work horizontally +|:horizontal| following window command works horizontally |:interface| start of an interface specification |:public| prefix for a class or object member |:static| prefix for a class member or function |:this| prefix for an object member +|:type| create a type alias Options: ~ +'endoffile' write CTRL-Z at end of the file 'jumpoptions' specifies how jumping is done 'keyprotocol' what keyboard protocol to use for what terminal 'lispoptions' changes how Lisp indenting is done @@ -31755,9 +31870,9766 @@ Options: ~ 'smoothscroll' scroll by screen lines when 'wrap' is set 'splitkeep' determines scroll behavior for split windows +============================================================================== +PATCHES *patches-9.1* *bug-fixes-9.1* + *patches-after-9.0* + +The list of patches that got included since 9.0.0. This includes all the new +features, but does not include runtime file changes (syntax, indent, ftplugin, +documentation, etc.) -Patches *patches-9.1* -------- +Note: authorship and the list of changed files is left out and only visible +through `git log` for each commit. + +Patch 9.0.0001 +Problem: Travis CI is no longer used. +Solution: Delete the Travis CI configuration. (Hugo Osvaldo Barrera, + closes #10636) + +Patch 9.0.0002 +Problem: Map functionality outside of map.c. +Solution: Move f_hasmapto() to map.c. Rename a function. (closes #10611) + +Patch 9.0.0003 +Problem: Functions are global while they could be local. +Solution: Add "static". Add a few tests. (Yegappan Lakshmanan, + closes #10612) + +Patch 9.0.0004 +Problem: Plural messages not translated properly. +Solution: Use ngettext() in a few more places. (Matvey Tarasov, + closes #10606) + +Patch 9.0.0005 +Problem: Hare files are not recognized. +Solution: Add a filetype pattern. (Hugo Osvaldo Barrera, closes #10630) + +Patch 9.0.0006 +Problem: Not all Visual Basic files are recognized. +Solution: Change detection of *.cls files. (Doug Kearns) + +Patch 9.0.0007 +Problem: No support for double, dotted and dashed underlines. +Solution: Add the termcap entries and highlight modes. (closes #9553) + +Patch 9.0.0008 +Problem: Cannot specify the variable name for "xxd -i". +Solution: Add the "-name" argument. (David Gow, closes #10599) + +Patch 9.0.0009 +Problem: Going past the end of a menu item with only modifier. +Solution: Check for NUL. + +Patch 9.0.0010 +Problem: Returning 0 for has('patch-9.0.0') is inconsistent. +Solution: Make it return 1. (closes #10640) + +Patch 9.0.0011 +Problem: Reading beyond the end of the line with put command. +Solution: Adjust the end mark position. + +Patch 9.0.0012 +Problem: Signature files not detected properly. +Solution: Add a function to better detect signature files. (Doug Kearns) + +Patch 9.0.0013 +Problem: Reproducing memory access errors can be difficult. +Solution: When testing, copy each line to allocated memory, so that valgrind + can detect accessing memory before and/or after it. Fix uncovered + problems. + +Patch 9.0.0014 +Problem: Missing part of the test override change. +Solution: Add the missing part. + +Patch 9.0.0015 +Problem: With EXITFREE defined terminal menus are not cleared. +Solution: Also clear terminal menus. Remove condition that is always true. + (closes #10641) + +Patch 9.0.0016 +Problem: Comparing line pointer for 'breakindent' is not reliable. +Solution: Make a copy of the line. + +Patch 9.0.0017 +Problem: Accessing memory beyond the end of the line. +Solution: Stop Visual mode when closing a window. + +Patch 9.0.0018 +Problem: Going over the end of the typeahead. +Solution: Put a NUL after the typeahead. + +Patch 9.0.0019 +Problem: Timers test not run where possible. +Solution: Adjust platform checks. (closes #10645) + +Patch 9.0.0020 +Problem: With some completion reading past end of string. +Solution: Check the length of the string. + +Patch 9.0.0021 +Problem: Invalid memory access when adding word with a control character to + the internal spell word list. +Solution: Disallow adding a word with control characters or a trailing + slash. + +Patch 9.0.0022 +Problem: Spell test fails. +Solution: Expect new error is given. + +Patch 9.0.0023 +Problem: On Solaris timer_create() exists but does not work. +Solution: Adjust the configure check to run the test program. + (closes #10647) + +Patch 9.0.0024 +Problem: May access part of typeahead buf that isn't filled. +Solution: Check length of typeahead. + +Patch 9.0.0025 +Problem: Accessing beyond allocated memory when using the cmdline window in + Ex mode. +Solution: Use "*" instead of "'<,'>" for Visual mode. + +Patch 9.0.0026 +Problem: Accessing freed memory with diff put. +Solution: Bail out when diff pointer is no longer valid. + +Patch 9.0.0027 +Problem: The command line test is getting quite big. +Solution: Move command line window tests to a separate file. + +Patch 9.0.0028 +Problem: MS-Windows: tests fail if there is a stray "runtime" directory. +Solution: Only use a "runtime" directory if it contains "defaults.vim". + +Patch 9.0.0029 +Problem: The bitmaps/vim.ico file is not in the distribution. +Solution: Add it back to the distribution. Adjust the build rules to have + it end up in the right place. + +Patch 9.0.0030 +Problem: Matchfuzzy test depends on path of current directory. +Solution: Use fnamemodify() to remove the path. (Robin Becker, + closes #10650) + +Patch 9.0.0031 +Problem: of user command does not have correct verbose value. +Solution: Use the value from the command modifier. (closes #10651) + +Patch 9.0.0032 +Problem: In the quickfix window 'cursorline' overrules QuickFixLine + highlighting. +Solution: Combine the attributes. Add a test. (closes #10654) + +Patch 9.0.0033 +Problem: On a Belgian keyboard CTRL-[ does not work. +Solution: Handle GDK_KEY_dead_circumflex. (Anton Sharonov, closes #10658) + +Patch 9.0.0034 +Problem: Spell tests do not always clear the word list. +Solution: Clear the word list in TearDown(). (closes #10659) + +Patch 9.0.0035 +Problem: Spell dump may go beyond end of an array. +Solution: Limit the word length. + +Patch 9.0.0036 +Problem: 'fillchars' cannot have window-local values. +Solution: Make 'fillchars' global-local. (closes #5206) + +Patch 9.0.0037 +Problem: Build error. +Solution: Add missing change. + +Patch 9.0.0038 +Problem: 'listchars' test fails. +Solution: Use window-local value after setting the global value + +Patch 9.0.0039 +Problem: Not all systems have GDK_KEY_dead_circumflex. (Hisashi T Fujinaka) +Solution: Add an #ifdef. + +Patch 9.0.0040 +Problem: Use of set_chars_option() is confusing. +Solution: Add "apply" argument to store the result or not. Merge similar + code. + +Patch 9.0.0041 +Problem: A couple of filetype patterns do not have "*" before "/etc". +Solution: Add the star. (Jonas Strittmatter, closes #10662) + +Patch 9.0.0042 +Problem: Missing change for filetype detection. +Solution: Include change to detect guile from shebang line. + +Patch 9.0.0043 +Problem: Insufficient testing for bracket commands. +Solution: Add a few more tests. (closes #10668) + +Patch 9.0.0044 +Problem: Typos in comments, wrapping lines. +Solution: Adjust comments. Wrap lines. + +Patch 9.0.0045 +Problem: Reading past end of completion with a long line and 'infercase' + set. +Solution: Allocate the string if needed. + +Patch 9.0.0046 +Problem: Reading past end of completion with duplicate match. +Solution: Check string length + +Patch 9.0.0047 +Problem: Using freed memory with recursive substitute. +Solution: Always make a copy for reg_prev_sub. + +Patch 9.0.0048 +Problem: Cursor in wrong column with mouse click after concealed text. +Solution: Store the text column when drawing text. + +Patch 9.0.0049 +Problem: Csv and tsv files are not recognized. +Solution: Add patterns fo csv and tsv files. (Leandro Lourenci, + closes #10680) + +Patch 9.0.0050 +Problem: Split else-of is confusing. +Solution: Join the lines. (closes #10696) + +Patch 9.0.0051 +Problem: Using CTRL-C with :append may hang Vim. +Solution: Reset got_int. (closes #10729, closes #10728) + +Patch 9.0.0052 +Problem: "zG" may throw an error if invalid character follows. +Solution: Pass the word length to valid_spell_word(). (Ken Takata, + closes #10737) + +Patch 9.0.0053 +Problem: E1281 not tested with the old regexp engine. +Solution: Loop over the values of 'regexp'. (Dominique Pellé, closes #10695) + +Patch 9.0.0054 +Problem: Compiler warning for size_t to int conversion. +Solution: Add type cast. (Mike Williams, closes #10741) + +Patch 9.0.0055 +Problem: Bitbake files are not detected. +Solution: Add bitbake filetype detection by file name and contents. (Gregory + Anders, closes #10697) + +Patch 9.0.0056 +Problem: Wrong line number reported when :cexpr fails in :def function. +Solution: Set line_number before executing :cexpr. (closes #10735) + +Patch 9.0.0057 +Problem: has('patch-xxx') returns true. +Solution: Check for digit. (closes #10751) + +Patch 9.0.0058 +Problem: Win32: cannot test low level events. +Solution: Add "sendevent" to test_gui_event(). (Yegappan Lakshmanan, + closes #10679) + +Patch 9.0.0059 +Problem: Test file has wrong name. +Solution: Rename the file. Various small fixes. (closes #10674) + +Patch 9.0.0060 +Problem: Accessing uninitialized memory when completing long line. +Solution: Terminate string with NUL. + +Patch 9.0.0061 +Problem: ml_get error with nested autocommand. +Solution: Also check line numbers for a nested autocommand. (closes #10761) + +Patch 9.0.0062 +Problem: Compiler warnings for signed/unsigned char. +Solution: Add type casts. (John Marriott) + +Patch 9.0.0063 +Problem: Too many type casts for dict_get functions. +Solution: Change the key argument from "char_u *" to "char *". + +Patch 9.0.0064 +Problem: Confusing error when using "q:" in command line window. +Solution: Check for the situation and give a better error message. + (closes #10756) + +Patch 9.0.0065 +Problem: Cross-compiling doesn't work because of timer_create check. +Solution: Use AC_CACHE_CHECK(). (Richard Purdie, closes #10777) + +Patch 9.0.0066 +Problem: Switching window unnecessarily when getting buffer options. +Solution: Do not switch window when getting buffer options. (closes #10767) + +Patch 9.0.0067 +Problem: Cannot show virtual text. +Solution: Initial changes for virtual text support, using text properties. + +Patch 9.0.0068 +Problem: Build fails with tiny features. +Solution: Add #ifdef. + +Patch 9.0.0069 +Problem: Leaking memory when using text prop with inserted text. +Solution: Clear the growarray with text. + +Patch 9.0.0070 +Problem: Using utfc_ptr2char_len() when length is negative. +Solution: Check value of length. (closes #10760) + +Patch 9.0.0071 +Problem: Command overlaps with printed text in scrollback. +Solution: Clear until end-of-line and use correct message chunk. + (closes #10765, closes #10764) + +Patch 9.0.0072 +Problem: Compiler warning for uninitialized variable. +Solution: Initialize it. (John Marriott) + +Patch 9.0.0073 +Problem: Too many files recognized as bsdl. +Solution: Use pattern "*.bsd" instead of "*bsd". (Martin Tournoij, + closes #10783) + +Patch 9.0.0074 +Problem: Coverity warns for double free. +Solution: Reset cts_text_prop_count when freeing cts_text_props. + +Patch 9.0.0075 +Problem: Some compilers warn for using an uninitialized variable. (Tony + Mechelynck) +Solution: Initialize the variable. + +Patch 9.0.0076 +Problem: No test for what patch 8.1.1424 fixes. +Solution: Add a test. (closes #10789) + +Patch 9.0.0077 +Problem: When switching window in autocmd the restored cursor position may + be wrong. +Solution: Do not restore the cursor if it was not set. (closes #10775) + +Patch 9.0.0078 +Problem: Star register is changed when deleting and both "unnamed" and + "unnamedplus" are in 'clipboard'. +Solution: Make the use of the star register work as documented. (Ernie Rael, + closes #10669) + +Patch 9.0.0079 +Problem: Error in autoload script not reported for 'foldexpr'. +Solution: Reset "emsg_off" when auto-loading a script. (closes #10685) + +Patch 9.0.0080 +Problem: Compiler warning for size_t to int conversion. +Solution: Add type casts. (Mike Williams, closes #10795) + +Patch 9.0.0081 +Problem: Command line completion of user command may have duplicates. + (Dani Dickstein) +Solution: Skip global user command if an identical buffer-local one is + defined. (closes #10797) + +Patch 9.0.0082 +Problem: Cannot interrupt global command from command line. +Solution: Reset got_int in another place. (closes #10739) + +Patch 9.0.0083 +Problem: ModeChanged event not triggered when leaving the cmdline window. +Solution: Call may_trigger_modechanged(). (closes #10791) + +Patch 9.0.0084 +Problem: Using "terraform" filetype for .tfvars file is bad. +Solution: use "terraform-vars", so that different completion and other + mechanisms can be used. (Radek Simko, closes #10755) + +Patch 9.0.0085 +Problem: ":write" fails after ":file name" and the ":edit". +Solution: Reset BF_NOTEDITED when using ":edit". (closes #10790) + +Patch 9.0.0086 +Problem: Tabline is not redrawn when entering command line. +Solution: Set "redraw_tabline". (closes #10771) + +Patch 9.0.0087 +Problem: MS-Windows: CTRL-[ on Belgian keyboard does not work like Esc. +Solution: Figure out what the key code means. (Anton Sharonov, + closes #10687, closes #10454) + +Patch 9.0.0088 +Problem: Pattern for detecting bitbake files is not sufficient. +Solution: Adjust the pattern. (Gregory Anders, closes #10743) + +Patch 9.0.0089 +Problem: Fuzzy argument completion doesn't work for shell commands. +Solution: Check for cmdidx not being CMD_bang. (Yegappan Lakshmanan, + closes #10769) + +Patch 9.0.0090 +Problem: No error when assigning bool to a string option with setwinvar(). +Solution: Give an error (closes #10766) + +Patch 9.0.0091 +Problem: Duplicate error number. +Solution: Use unique error number. + +Patch 9.0.0092 +Problem: Plugins cannot change v:completed_item. +Solution: Make v:completed_item writeable. (Shougo Matsushita, + closes #10801) + +Patch 9.0.0093 +Problem: Sway config files are recognized as i3config. +Solution: Recognize swayconfig separately. (James Eapen, closes #10672) + +Patch 9.0.0094 +Problem: Cursor restored unexpected with nested autocommand. +Solution: Do not restore the cursor when it was moved intentionally. + (closes #10780) + +Patch 9.0.0095 +Problem: Conditions are always true. +Solution: Remove useless conditions. (closes #10802) + +Patch 9.0.0096 +Problem: Flag "new_value_alloced" is always true. +Solution: Remove "new_value_alloced". (closes #10792) + +Patch 9.0.0097 +Problem: Long quickfix line is truncated for :clist. +Solution: Allocate a buffer if needed. + +Patch 9.0.0098 +Problem: missing include file in timer_create configure check. +Solution: Include stdlib.h. + +Patch 9.0.0099 +Problem: Scrollback can be wrong after redrawing the command line. +Solution: Clear unfinished scrollback when redrawing. (closes #10807) + +Patch 9.0.0100 +Problem: Get hit-enter prompt for system() when '!' is in 'guioptions'. +Solution: Do not call wait_return() when not redrawing. (closes #3327) + +Patch 9.0.0101 +Problem: Invalid memory access in diff mode with "dp" and undo. +Solution: Make sure the line number does not go below one. + +Patch 9.0.0102 +Problem: Reading past end of line with insert mode completion. +Solution: Check text length. + +Patch 9.0.0103 +Problem: If running configure with cached results -lrt may be missing. +Solution: Use two cache variables, one without and one with -lrt. + (closes #10799) Swap checks to avoid adding -lrt unnecessarily. + +Patch 9.0.0104 +Problem: Going beyond allocated memory when evaluating string constant. +Solution: Properly skip over form. + +Patch 9.0.0105 +Problem: Illegal memory access when pattern starts with illegal byte. +Solution: Do not match a character with an illegal byte. + +Patch 9.0.0106 +Problem: Illegal byte regexp test doesn't fail when fix is reversed. +Solution: Make sure illegal bytes end up in sourced script file. + +Patch 9.0.0107 +Problem: Condition always has the same value. +Solution: Remove the condition. + +Patch 9.0.0108 +Problem: Configure check for timer_create may give wrong error. +Solution: Give a warning instead of an error. + +Patch 9.0.0109 +Problem: Writing over the end of a buffer on stack when making list of + spell suggestions. +Solution: Make sure suggested word is not too long. (closes #10812) + +Patch 9.0.0110 +Problem: Help tag generation picks up words in code examples. +Solution: Skip over examples. (Carlo Teubner, closes #10813) + +Patch 9.0.0111 +Problem: "nocombine" is missing from synIDattr(). +Solution: Add "nocombine". (Muni Tanjim, closes #10816) + +Patch 9.0.0112 +Problem: MS-Windows: test fails because file already exists. +Solution: Wait a little while until the file is gone. + +Patch 9.0.0113 +Problem: has() is not strict about parsing the patch version. +Solution: Check the version more strictly. (Ken Takata, closes #10752) + +Patch 9.0.0114 +Problem: The command line takes up space even when not used. +Solution: Allow for 'cmdheight' to be set to zero. (Shougo Matsushita, + closes #10675, closes #940) + +Patch 9.0.0115 +Problem: When 'cmdheight' is zero pressing ':' may scroll a window. +Solution: Add the made_cmdheight_nonzero flag and set 'scrolloff' to zero. + +Patch 9.0.0116 +Problem: Virtual text not displayed if 'signcolumn' is "yes". +Solution: Set c_extra and c_final to NUL. + +Patch 9.0.0117 +Problem: Text of removed textprop with text is not freed. +Solution: Free the text when the property is removed. Reduce the array size + to ignore NULLs at the end. + +Patch 9.0.0118 +Problem: No test for what patch 9.0.0155 fixes. +Solution: Add a test. Fix typos. (closes #10822) + +Patch 9.0.0119 +Problem: Tiny chance that creating a backup file fails. +Solution: Check for EEXIST error. (Ken Takata, closes #10821) + +Patch 9.0.0120 +Problem: MS-Windows GUI: cannot use AltGr + Space. +Solution: Check for VK_MENU instead of VK_LMENU. (Anton Sharonov, + closes #10820, closes #10753) + +Patch 9.0.0121 +Problem: Cannot put virtual text after or below a line. +Solution: Add "text_align" and "text_wrap" arguments. + +Patch 9.0.0122 +Problem: Breakindent test fails. +Solution: Fix condition. + +Patch 9.0.0123 +Problem: Cannot build with small features. +Solution: Add #ifdef. + +Patch 9.0.0124 +Problem: Code has more indent than needed. +Solution: Use continue and return statements. (closes #10824) + +Patch 9.0.0125 +Problem: Cursor positioned wrong with virtual text after the line. +Solution: Clear cts_with_trailing. + +Patch 9.0.0126 +Problem: Expanding file names fails in directory with more than 255 + entries. +Solution: Use an int instead of char_u to count. (John Drouhard, + closes #10818) + +Patch 9.0.0127 +Problem: Unused variable. +Solution: Remove the variable. (closes #10829) + +Patch 9.0.0128 +Problem: Coverity complains about possible double free. +Solution: Clear the pointer to avoid warnings. + +Patch 9.0.0129 +Problem: Compiler warning for int/size_t usage. +Solution: Add a type cast. (Mike Williams, closes #10830) + +Patch 9.0.0130 +Problem: Cursor position wrong when inserting around virtual text. +Solution: Update the cursor position properly. + +Patch 9.0.0131 +Problem: Virtual text with Tab is not displayed correctly. +Solution: Change any Tab to a space. + +Patch 9.0.0132 +Problem: Multi-byte characters in virtual text not handled correctly. +Solution: Count screen cells instead of bytes. + +Patch 9.0.0133 +Problem: Virtual text after line moves to joined line. (Yegappan + Lakshmanan) +Solution: When joining lines only keep virtual text after the last line. + +Patch 9.0.0134 +Problem: No test for text property with column zero. +Solution: Add a test. Add message to assert for no open popups. + +Patch 9.0.0135 +Problem: Comment about tabpage line above the wrong code. +Solution: Move the comment. (closes #10836) + +Patch 9.0.0136 +Problem: After CTRL-Left-mouse click a mouse scroll also has CTRL. +Solution: Reset orig_mouse_code also for wheel events. (closes #10840) + +Patch 9.0.0137 +Problem: Debugger test may fail when $CWD is very long. +Solution: Skip the test if the directory name is too long. (James McCoy, + closes #10837) + +Patch 9.0.0138 +Problem: Not enough characters accepted for 'spellfile'. +Solution: Add vim_is_fname_char() and use it for 'spellfile'. + +Patch 9.0.0139 +Problem: Truncating virtual text after a line not implemented. + Cursor positioning wrong with Newline in the text. +Solution: Implement truncating. Disallow control characters in the text. + (closes #10842) + +Patch 9.0.0140 +Problem: execute() does not use the "legacy" command modifier. +Solution: pass the command modifier in sticky_cmdmod_flags. (Kota Kato, + closes #10845) + +Patch 9.0.0141 +Problem: "delmenu" does not remove autocommands. Running menu test function + alone fails. +Solution: Delete autocommands Make sure there is at least one menu. + (closes #10848) + +Patch 9.0.0142 +Problem: Crash when adding and removing virtual text. (Ben Jackson) +Solution: Check that the text of the text property still exists. + +Patch 9.0.0143 +Problem: Cursor positioned after virtual text in empty line. +Solution: Keep cursor in the first column. (closes #10786) + +Patch 9.0.0144 +Problem: Text property cannot override 'cursorline' highlight. +Solution: Add the "override" flag to prop_type_add(). (closes #5533, + closes #8225). + +Patch 9.0.0145 +Problem: Substitute that joins lines drops text properties. +Solution: Move text properties of the last line to the new line. + +Patch 9.0.0146 +Problem: Missing part of change for "override" flag. +Solution: Add the missing change. + +Patch 9.0.0147 +Problem: Cursor positioned wrong after two text properties with virtual + text and "below" alignment. (Tim Pope) +Solution: Do not stop after a text property using MAXCOL. (closes #10849) + +Patch 9.0.0148 +Problem: A "below" aligned text property gets 'showbreak' displayed. +Solution: Do not use 'showbreak' before or in virtual text. (issue #10851) + +Patch 9.0.0149 +Problem: Test for fuzzy completion fails sometimes. +Solution: Use a more specific file name to minimize the chance of matching a + random directory name. (closes #10854) + +Patch 9.0.0150 +Problem: Error for using #{ in an expression is a bit confusing. +Solution: Mention that this error is only given for an expression. + Avoid giving the error more than once. (closes #10855) + +Patch 9.0.0151 +Problem: A "below" aligned text property does not work with 'nowrap'. +Solution: Start a new screen line to display the virtual text. + (closes #10851) + +Patch 9.0.0152 +Problem: Warning for unused argument in small build. +Solution: Add "UNUSED". + +Patch 9.0.0153 +Problem: No fold and sign column for virtual text with "below" align and + 'nowrap'. +Solution: Go back to draw state WL_START when moving to the next line. + (closes #10851) + +Patch 9.0.0154 +Problem: Text properties wrong after splitting a line. +Solution: Check for text properties after the line. (closes #10857) + +Patch 9.0.0155 + +Patch 9.0.0156 +Problem: Giving E1170 only in an expression is confusing. +Solution: Give E1170 for any "#{ comment". (closes #10855) + +Patch 9.0.0157 +Problem: 'showbreak' displayed below truncated "after" text prop. +Solution: Suppress 'showbreak' when "after" prop doesn't wrap. + +Patch 9.0.0158 +Problem: With 'nowrap' "below" property not displayed correctly. +Solution: Adjust virtual text with 'nowrap', do not truncate. + +Patch 9.0.0159 +Problem: Cannot build with small features. +Solution: Check for E1170 only with FEAT_EVAL. + +Patch 9.0.0160 +Problem: Some diff mode tests fail. +Solution: Only advance "ptr" when a text property follows. + +Patch 9.0.0161 +Problem: Warning for uninitialized variable. (Tony Mechelynck) +Solution: Initialize line_attr_save. + +Patch 9.0.0162 +Problem: Text property "below" gets indent if 'breakindent' is set. (Tim + Pope) +Solution: Do not put indent before text property. (closes #10859) + +Patch 9.0.0163 +Problem: Text property not adjusted for text inserted with "p". +Solution: Adjust column and length of text properties. + +Patch 9.0.0164 +Problem: Using freed memory with put command. +Solution: Get byte offset before replacing the line. + +Patch 9.0.0165 +Problem: Looking up a text property type by ID is slow. +Solution: Keep an array of property types sorted on ID. + +Patch 9.0.0166 +Problem: When using text properties the line text length is computed twice. +Solution: If the text length was already computed don't do it again. + +Patch 9.0.0167 +Problem: Checking for text properties could be a bit more efficient. +Solution: Return early when there are no text properties. Update TODO + items. + +Patch 9.0.0168 +Problem: Cursor positioned wrong with two virtual text properties close + together. (Ben Jackson) +Solution: Add the original size, not the computed one. (closes #10864) + +Patch 9.0.0169 +Problem: Insufficient testing for line2byte() with text properties. +Solution: Add tests with a lot of text. + +Patch 9.0.0170 +Problem: Various minor code formatting issues. +Solution: Improve code formatting. + +Patch 9.0.0171 +Problem: Quickfix line highlight is overruled by 'cursorline'. +Solution: Reverse the combination of attributes. (closes #10654) + +Patch 9.0.0172 +Problem: Trying to allocate zero bytes. +Solution: Do not allocate the proptype array when there are none. + (closes #10867) + +Patch 9.0.0173 +Problem: Assert fails only on MS-Windows. +Solution: Disable the assert for now. + +Patch 9.0.0174 +Problem: No error for using "#{ comment" in a compiled function. +Solution: Make error checking for "#{" consistent. (closes #10855) + +Patch 9.0.0175 +Problem: Spell checking for capital not working with trailing space. +Solution: Do not calculate cap_col at the end of the line. (Christian + Brabandt, closes #10870, issue #10838) + +Patch 9.0.0176 +Problem: Checking character options is duplicated and incomplete. +Solution: Move checking to check_chars_options(). (closes #10863) + +Patch 9.0.0177 +Problem: Cursor position wrong with 'virtualedit' and mouse click after end + of the line. (Hermann Mayer) +Solution: Do not use ScreenCols[] when 'virtualedit' is active. + (closes #10868) + +Patch 9.0.0178 +Problem: Cursor position wrong with virtual text before Tab. +Solution: Use the byte length, not the cell with, to compare the column. + Correct tab size after text prop. (closes #10866) + +Patch 9.0.0179 +Problem: Cursor position wrong with wrapping virtual text in empty line. +Solution: Adjust handling of an empty line. (closes #10875) + +Patch 9.0.0180 +Problem: Stray logfile appears when running tests. +Solution: Remove ch_logfile() calls. + +Patch 9.0.0181 +Problem: Textprop test with line2byte() fails on MS-Windows. +Solution: Fix updating chunks in ml_delete_int(). + +Patch 9.0.0182 +Problem: Quarto files are not recognized. +Solution: Recognize quarto files by the extension. (Jonas Strittmatter, + closes #10880) + +Patch 9.0.0183 +Problem: Extra space after virtual text when 'linebreak' is set. +Solution: Do not count virtual text when getting linebreak value. + (closes #10884) + +Patch 9.0.0184 +Problem: Virtual text prop highlight continues after truncation. +Solution: Recompute the length of attributes. + +Patch 9.0.0185 +Problem: Virtual text does not show if there is a text prop at same + position. (Ben Jackson) +Solution: Fix the sorting of properties. (closes #10879) + +Patch 9.0.0186 +Problem: Virtual text without highlighting does not show. (Ben Jackson) +Solution: Use a text property when it has highlighting or when it has text. + (closes #10878) + +Patch 9.0.0187 +Problem: Command line height changes when maximizing window height. +Solution: Do not change the command line height. (closes #10885) + +Patch 9.0.0188 +Problem: Strange effects when using virtual text with "text_align" and + non-zero column. (Martin Tournoij) +Solution: Give an error. (closes #10888) + +Patch 9.0.0189 +Problem: Invalid memory access for text prop without highlight. +Solution: Check for a valid highlight ID. + +Patch 9.0.0190 +Problem: The way 'cmdheight' can be made zero is inconsistent. +Solution: Only make 'cmdheight' zero when setting it explicitly, not when + resizing windows. (closes #10890) + +Patch 9.0.0191 +Problem: Messages test fails; window size incorrect when 'cmdheight' is + made smaller. +Solution: Properly cleanup after test with cmdheight zero. Resize windows + correctly when 'cmdheight' gets smaller. + +Patch 9.0.0192 +Problem: Possible invalid memory access when 'cmdheight' is zero. (Martin + Tournoij) +Solution: Avoid going over the end of w_lines[] when w_height is Rows. + (closes #10882) + +Patch 9.0.0193 +Problem: Search and match highlight interfere with virtual text highlight. + (Ben Jackson) +Solution: Check for match highlight after text properties. Reset and + restore search highlight when showing virtual text. + (closes #10892) + +Patch 9.0.0194 +Problem: Cursor displayed in wrong position after removing text prop. (Ben + Jackson) +Solution: Invalidate the cursor position. (closes #10898) + +Patch 9.0.0195 +Problem: Metafun files are not recognized. +Solution: Add filetype detection patterns. + +Patch 9.0.0196 +Problem: Finding value in list may require a for loop. +Solution: Add indexof(). (Yegappan Lakshmanan, closes #10903) + +Patch 9.0.0197 +Problem: Astro files are not detected. +Solution: Add a pattern to match Astro files. (Emilia Zapata, closes #10904) + +Patch 9.0.0198 +Problem: ml_get error when switching buffer in Visual mode. +Solution: End Visual mode when switching buffer. (closes #10902) + +Patch 9.0.0199 +Problem: Cursor position wrong with two right-aligned virtual texts. +Solution: Add the padding for right-alignment. (issue #10906) + +Patch 9.0.0200 +Problem: cursor in a wrong position if 'wrap' is off and using two right + aligned text props in one line. +Solution: Count an extra line for a right aligned text property after a + below or right aligned text property. (issue #10909) + +Patch 9.0.0201 +Problem: CursorLine highlight overrules virtual text highlight. +Solution: Let extra attribute overrule line attribute. (closes #10909) + +Patch 9.0.0202 +Problem: Code and help for indexof() is not ideal. +Solution: Refactor the code, improve the help. (Yegappan Lakshmanan, + closes #10908) + +Patch 9.0.0203 +Problem: Confusing variable name. +Solution: Use "prim_aep" instead of "spell_aep". + +Patch 9.0.0204 +Problem: indexof() may leak memory. +Solution: Free allocated values. (Yegappan Lakshmanan, closes #10916) + +Patch 9.0.0205 +Problem: Cursor in wrong position when inserting after virtual text. (Ben + Jackson) +Solution: Put the cursor after the virtual text, where the text will be + inserted. (closes #10914) + +Patch 9.0.0206 +Problem: Redraw flags are not named specifically. +Solution: Prefix "UPD_" to the flags, for UPDate_screen(). + +Patch 9.0.0207 +Problem: Stacktrace not shown when debugging. +Solution: Set msg_scroll in msg_source(). (closes #10917) + +Patch 9.0.0208 +Problem: The override flag has no effect for virtual text. (Ben Jackson) +Solution: Make the override flag work. (closes #10915) + +Patch 9.0.0209 +Problem: Build error with small features. +Solution: Add #ifdef. + +Patch 9.0.0210 +Problem: 'list' mode does not work properly with virtual text. +Solution: Show the "$" at the right position. (closes #10913) + +Patch 9.0.0211 +Problem: Invalid memory access when compiling :lockvar. +Solution: Don't read past the end of the line. + +Patch 9.0.0212 +Problem: Invalid memory access when compiling :unlet. +Solution: Don't read past the end of the line. + +Patch 9.0.0213 +Problem: Using freed memory with error in assert argument. +Solution: Make a copy of the error. + +Patch 9.0.0214 +Problem: Splitting a line may duplicate virtual text. (Ben Jackson) +Solution: Don't duplicate a text property with virtual text. Make + auto-indenting work better. (closes #10919) + +Patch 9.0.0215 +Problem: Not passing APC_INDENT flag. +Solution: Pass the flag where it's needed. + +Patch 9.0.0216 +Problem: Undo earlier test sometimes fails on MS-Windows. +Solution: Use another file name. + +Patch 9.0.0217 +Problem: 'shellslash' works differently when sourcing a script again. +Solution: Use the name from the script item. (closes #10920) + +Patch 9.0.0218 +Problem: Reading before the start of the line. +Solution: When displaying "$" check the column is not negative. + +Patch 9.0.0219 +Problem: Cannot make a funcref with "s:func" in a def function in legacy + script. +Solution: Allow for using a lower case function name after "s:". (Kota Kato, + closes #10926) + +Patch 9.0.0220 +Problem: Invalid memory access with for loop over NULL string. +Solution: Make sure mb_ptr2len() consistently returns zero for NUL. + +Patch 9.0.0221 +Problem: Accessing freed memory if compiling nested function fails. +Solution: Mess up the variable name so that it won't be found. + +Patch 9.0.0222 +Problem: No good reason why text objects are only in larger builds. +Solution: Graduate +textobjects. + +Patch 9.0.0223 +Problem: Typo in diffmode test. +Solution: Fix the typo. (closes #10932) + +Patch 9.0.0224 +Problem: Using NULL pointer when skipping compiled code. +Solution: Check for skipping. + +Patch 9.0.0225 +Problem: Using freed memory with multiple line breaks in expression. +Solution: Free eval_tofree later. + +Patch 9.0.0226 +Problem: job_start() test may fail under valgrind. +Solution: Wait until the job is running. + +Patch 9.0.0227 +Problem: Cannot read error message when abort() is called. +Solution: Output a newline before calling abort(). + +Patch 9.0.0228 +Problem: Crash when pattern looks below the last line. +Solution: Consider invalid lines to be empty. (closes #10938) + +Patch 9.0.0229 +Problem: Vim9: error message for missing type is not clear. +Solution: Mention the context. (issue #10944) + +Patch 9.0.0230 +Problem: No error for comma missing in list in :def function. +Solution: Check for missing comma. (closes #10943) + +Patch 9.0.0231 +Problem: Expanding "**" may loop forever with directory links. +Solution: Check for being interrupted. (closes #10946) + +Patch 9.0.0232 +Problem: Test with BufNewFile autocmd is flaky. +Solution: Use another file name. + +Patch 9.0.0233 +Problem: Removing multiple text properties takes many calls. +Solution: Pass a list to prop_remove(). (Ben Jackson, closes #10945) + +Patch 9.0.0234 +Problem: Cannot make difference between the end of :normal and a character + in its argument. +Solution: Add the "typebuf_was_empty" flag. (closes #10950) + +Patch 9.0.0235 +Problem: 'autoshelldir' does not work with chunked response. +Solution: Collect chunks before parsing OSC 7. (closes #10949) + +Patch 9.0.0236 +Problem: Popup menu not removed when 'wildmenu' reset while it is visible. +Solution: Do not check p_wmnu, only pum_visible(). (closes #10953) + +Patch 9.0.0237 +Problem: Mac: cannot build if dispatch.h is not available. +Solution: Add #ifdef. (Evan Miller, closes #10954) + +Patch 9.0.0238 +Problem: Shift-Tab shows matches on cmdline when 'wildmenu' is off. +Solution: Only show matches when 'wildmode' contains "list". (closes #10951) + +Patch 9.0.0239 +Problem: Build failure without the +wildmenu feature. +Solution: Move parenthesis. + +Patch 9.0.0240 +Problem: Crash when using ":mkspell" with an empty .dic file. +Solution: Check for an empty word tree. + +Patch 9.0.0241 +Problem: "make install" does not install shared syntax file. (James McCoy) +Solution: Install and uninstall the shared syntax files. (closes #10956) + +Patch 9.0.0242 +Problem: "make install" still fails. (Wilhelm Payne) +Solution: Also add the directory to installrtbase. (Dominique Pellé) + +Patch 9.0.0243 +Problem: Text properties "below" sort differently on MS-Windows. +Solution: Use the ID as a tie breaker. (closes #10958) + +Patch 9.0.0244 +Problem: Cannot easily get the list of sourced scripts. +Solution: Add the getscriptinfo() function. (Yegappan Lakshmanan, + closes #10957) + +Patch 9.0.0245 +Problem: Mechanism to prevent recursive screen updating is incomplete. +Solution: Add "redraw_not_allowed" and set it in build_stl_str_hl(). + (issue #10952) + +Patch 9.0.0246 +Problem: Using freed memory when 'tagfunc' deletes the buffer. +Solution: Make a copy of the tag name. + +Patch 9.0.0247 +Problem: Cannot add padding to virtual text without highlight. +Solution: Add the "text_padding_left" argument. (issue #10906) + +Patch 9.0.0248 +Problem: Duplicate code in finding a script in the execution stack. +Solution: Reduce duplicate code. (closes #10961) + +Patch 9.0.0249 +Problem: No test for what 9.0.0234 fixes. +Solution: Add a test. (issue #10950) + +Patch 9.0.0250 +Problem: Slightly inconsistent error messages. +Solution: Make it "Using a Float". (closes #10959) + +Patch 9.0.0251 +Problem: Test output shows up in git. +Solution: Ignore the "failed" directory. (Yao-Ching Huang, closes #10969) + +Patch 9.0.0252 +Problem: Cursor in wrong place after virtual text. +Solution: Do not change the length of a virtual text property. + (closes #10964) + +Patch 9.0.0253 +Problem: A symlink to an autoload script results in two entries in the list + of scripts, items expected in one are actually in the other. +Solution: Have one script item refer to the actually sourced one. + (closes #10960) + +Patch 9.0.0254 +Problem: Typo in function name. +Solution: Rename the function. (closes #10971) + +Patch 9.0.0255 +Problem: Build failure without the eval feature. +Solution: Add #ifdef. + +Patch 9.0.0256 +Problem: Compiler warning for uninitialized variables. +Solution: Initialize the variables. + +Patch 9.0.0257 +Problem: "->" in ":scriptnames" output not tested yet. +Solution: Add a check. + +Patch 9.0.0258 +Problem: MS-Windows installer skips syntax/shared. +Solution: Use "File /r" in the installer script. (Ken Takata, closes #10972) + +Patch 9.0.0259 +Problem: Crash with mouse click when not initialized. +Solution: Check TabPageIdxs[] is not NULL. + +Patch 9.0.0260 +Problem: Using freed memory when using 'quickfixtextfunc' recursively. +Solution: Do not allow for recursion. + +Patch 9.0.0261 +Problem: bufload() reads a file even if the name is not a file name. (Cyker + Way) +Solution: Do not read the file when the buffer name is not a file name. + (closes #10975) + +Patch 9.0.0262 +Problem: Build failure without the +quickfix feature. +Solution: Add #ifdef. + +Patch 9.0.0263 +Problem: Too many #ifdefs. +Solution: Make some functions always available. + +Patch 9.0.0264 +Problem: CI still runs on Ubuntu 18.04. +Solution: Run CI on Ubuntu 20.04. (closes #10582) + +Patch 9.0.0265 +Problem: No good reason why the "gf" command is not in the tiny version. +Solution: Graduate the file_in_path feature. + +Patch 9.0.0266 +Problem: Compiler warning for unused argument. +Solution: Add UNUSED. + +Patch 9.0.0267 +Problem: Coverity workflow still uses Ubuntu 18.04. +Solution: Use Ubuntu 20.04 + +Patch 9.0.0268 +Problem: Build error without the +eval feature. +Solution: Remove #ifdef. + +Patch 9.0.0269 +Problem: getscriptinfo() does not include the version. Cannot select + entries by script name. +Solution: Add the "version" item and the "name" argument. (Yegappan + Lakshmanan, closes #10962) + +Patch 9.0.0270 +Problem: Some values of 'path' and 'tags' do not work in the tiny version. +Solution: Graduate the +path_extra feature. + +Patch 9.0.0271 +Problem: Using INIT() in non-header files. +Solution: Remove INIT(). (closes #10981) + +Patch 9.0.0272 +Problem: BufReadCmd not triggered when loading a "nofile" buffer. (Maxim + Kim) +Solution: Call readfile() but bail out before reading a file. + (closes #10983) + +Patch 9.0.0273 +Problem: Konsole termresponse not recognized. +Solution: Handle Konsole like libvterm, set 'ttymouse' to "sgr". + (closes #10990) + +Patch 9.0.0274 +Problem: Netrw plugin does not show remote files. +Solution: Do read a file when 'buftype' is "acwrite". (closes #10983) + +Patch 9.0.0275 +Problem: BufEnter not triggered when using ":edit" in "nofile" buffer. +Solution: Let readfile() return NOTDONE. (closes #10986) + +Patch 9.0.0276 +Problem: 'buftype' values not sufficiently tested. +Solution: Add and extend tests with 'buftype' values. (closes #10988) + +Patch 9.0.0277 +Problem: Coverity CI: update-alternatives not needed with Ubuntu 20.04. +Solution: Remove update-alternatives for Lua. (closes #10987) + +Patch 9.0.0278 +Problem: The +wildignore feature is nearly always available. +Solution: Graduate +wildignore for consistency. + +Patch 9.0.0279 +Problem: The tiny version has the popup menu but not 'wildmenu'. +Solution: Graduate the wildmenu feature. + +Patch 9.0.0280 +Problem: The builtin termcap list depends on the version. +Solution: Always include all termcap entries. Remove duplicate lines. + +Patch 9.0.0281 +Problem: Build failure without the +eval feature. +Solution: Add #ifdef. + +Patch 9.0.0282 +Problem: A nested timeout stops the previous timeout. +Solution: Ignore any nested timeout. + +Patch 9.0.0283 +Problem: Cannot complete "syn list @cluster". +Solution: Recognize and handle "list @". (Björn Linse, closes #10990) + +Patch 9.0.0284 +Problem: Using static buffer for multiple completion functions. +Solution: Use one buffer in expand_T. + +Patch 9.0.0285 +Problem: It is not easy to change the command line from a plugin. +Solution: Add setcmdline(). (Shougo Matsushita, closes #10869) + +Patch 9.0.0286 +Problem: Using freed memory when location list changed in autocmd. +Solution: Return QF_ABORT and handle it. (Yegappan Lakshmanan, + closes #10993) + +Patch 9.0.0287 +Problem: Irix systems no longer exist. +Solution: Remove references to Irix. (Yegappan Lakshmanan, closes #10994) + +Patch 9.0.0288 +Problem: When 'cmdheight' is zero some messages are not displayed. +Solution: Use a popup notification window. + +Patch 9.0.0289 +Problem: Invalid memory write. +Solution: Do not put NUL in a static string. + +Patch 9.0.0290 +Problem: Compiler warning for variable set but not used. +Solution: Add #ifdef. + +Patch 9.0.0291 +Problem: Test failing. +Solution: Run test with cmdheight=0 last. + +Patch 9.0.0292 +Problem: Test causes another test to fail. +Solution: Redraw to remove the popup window + +Patch 9.0.0293 +Problem: Messages window not hidden when starting a command line. +Solution: Hide the messages window. (closes #10996) + +Patch 9.0.0294 +Problem: Crash when 'cmdheight' is 0 and popup_clear() used. +Solution: Reset "message_win" when the message popup is cleared. Close the + popup when 'cmdheight' is non-zero. Add a screendump test. + +Patch 9.0.0295 +Problem: GUI drop files test sometimes fails. +Solution: Mark the test as flaky. + +Patch 9.0.0296 +Problem: Message in popup is shortened unnecessary. +Solution: Do not use 'showcmd' and 'ruler' for a message in the popup. + Set the timer when unhiding the message popup. + +Patch 9.0.0297 +Problem: Cursor position wrong after right aligned virtual text. (Iizuka + Masashi) +Solution: Take the width of the column offset into account. (closes #10997) + Also fix virtual text positioning. + +Patch 9.0.0298 +Problem: Compiler warning for size_t to int conversion. +Solution: Add a type cast. (Wilhelm Payne, closes #11000) + +Patch 9.0.0299 +Problem: Error messages for setcmdline() could be better. +Solution: Use more specific error messages. (Yegappan Lakshmanan, + closes #10995) + +Patch 9.0.0300 +Problem: 'cpoptions' tests are flaky. +Solution: Use a different file name for each test. + +Patch 9.0.0301 +Problem: The message window popup is delayed after an error message. +Solution: Do not set emsg_on_display when using the message window. + +Patch 9.0.0302 +Problem: CI for Coverity is bothered by deprecation warnings. +Solution: Ignore deprecation warnings. (closes #11002) + +Patch 9.0.0303 +Problem: It is not easy to get information about a script. +Solution: Make getscriptinfo() return the version. When selecting a specific + script return functions and variables. (Yegappan Lakshmanan, + closes #10991) + +Patch 9.0.0304 +Problem: WinScrolled is not triggered when only skipcol changes. +Solution: Add w_last_skipcol and use it. (closes #10998) + +Patch 9.0.0305 +Problem: CI lists useless deprecation warnings. +Solution: Ignore deprecation warnings. (closes #11003) + +Patch 9.0.0306 +Problem: Buffer write message is two lines in message popup window. +Solution: Overwrite message if "msg_scroll" is off. + +Patch 9.0.0307 +Problem: :echomsg doesn't work properly with cmdheight=0. +Solution: Improve scrolling and displaying. + +Patch 9.0.0308 +Problem: When cmdheight is zero the attention prompt doesn't show. +Solution: Do not use the message window for a prompt. + +Patch 9.0.0309 +Problem: Invalid memory access when cmdheight is zero. +Solution: Check index in w_lines is smaller than Rows. + +Patch 9.0.0310 +Problem: Output of :messages disappears when cmdheight is zero. +Solution: Do not use the messages window for :messages. Make Esc close the + messages window. + +Patch 9.0.0311 +Problem: Test for hit-Enter prompt fails. +Solution: Only reset cmdline_row when 'cmdheight' is zero. + +Patch 9.0.0312 +Problem: Test for cmdheight zero fails. +Solution: Do not close the messages window for CTRL-C. + +Patch 9.0.0313 +Problem: Using common name in tests leads to flaky tests. +Solution: Rename files and directories to be more specific. + +Patch 9.0.0314 +Problem: VDM files are not recognized. +Solution: Add patterns for VDM files. (Alessandro Pezzoni, closes #11004) + +Patch 9.0.0315 +Problem: Shell command is displayed in message window. +Solution: Do not echo the shell command in the message window. + +Patch 9.0.0316 +Problem: Screen flickers when 'cmdheight' is zero. +Solution: Redraw over existing text instead of clearing. + +Patch 9.0.0317 +Problem: When updating the whole screen a popup may not be redrawn. +Solution: Mark the screen and windows for redraw also when not clearing. + Also mark popup windows for redraw. + +Patch 9.0.0318 +Problem: Clearing screen causes flicker. +Solution: Do not clear but redraw in more cases. Add () to "wait_return". + +Patch 9.0.0319 +Problem: Godot shader files are not recognized. +Solution: Add patterns for "gdshader". (Maxim Kim, closes #11006) + +Patch 9.0.0320 +Problem: Command line type of CmdlineChange differs from getcmdtype(). +Solution: Use the same type. (closes #11005) + +Patch 9.0.0321 +Problem: Cannot use the message popup window directly. +Solution: Add ":echowindow". + +Patch 9.0.0322 +Problem: Crash when no errors and 'quickfixtextfunc' is set. +Solution: Do not handle errors if there aren't any. + +Patch 9.0.0323 +Problem: Using common name in tests leads to flaky tests. +Solution: Rename files and directories to be more specific. + +Patch 9.0.0324 +Problem: MS-Windows: resolve() test fails. +Solution: Revert renaming the directory. + +Patch 9.0.0325 +Problem: MS-Windows: completion test fails. +Solution: Adjust directory prefix. + +Patch 9.0.0326 +Problem: Some changes for cmdheight=0 are not needed. +Solution: Revert resize behavior if height is greater than the available + space. (Shougo Matsushita, closes #11008) + +Patch 9.0.0327 +Problem: items() does not work on a list. (Sergey Vlasov) +Solution: Make items() work on a list. (closes #11013) + +Patch 9.0.0328 +Problem: OLD_DIGRAPHS is unused. +Solution: Remove OLD_DIGRAPHS. Also drop HPUX_DIGRAPHS. + +Patch 9.0.0329 +Problem: ":highlight" hangs when 'cmdheight' is zero. +Solution: Add to msg_col when using the message window. (closes #11014) + +Patch 9.0.0330 +Problem: Method tests fail. +Solution: Adjust for change of items(). + +Patch 9.0.0331 +Problem: Cannot use items() on a string. +Solution: Make items() work on a string. (closes #11016) + +Patch 9.0.0332 +Problem: Overwrite check may block BufWriteCmd. +Solution: Do not use overwrite check when 'buftype' is "acwrite". + (closes #11011) + +Patch 9.0.0333 +Problem: Method test fails. +Solution: Adjust test for items() now working on string. + +Patch 9.0.0334 +Problem: Test does not properly clean up. +Solution: Fix typo in argument of delete(). (Dominique Pellé, closes #11010) + +Patch 9.0.0335 +Problem: Checks for Dictionary argument often give a vague error message. +Solution: Give a useful error message. (Yegappan Lakshmanan, closes #11009) + +Patch 9.0.0336 +Problem: Tests are flaky because of using a common file name. +Solution: Rename files and directories to be more unique. + +Patch 9.0.0337 +Problem: Flicker when resetting cmdline_row after updating the screen. +Solution: Do not update cmdline_row. (issue #11017) + +Patch 9.0.0338 +Problem: Return value of list_append_list() not always checked. +Solution: Check return value and handle failure. + +Patch 9.0.0339 +Problem: No check if the return value of XChangeGC() is NULL. +Solution: Only use the return value when it is not NULL. (closes #11020) + +Patch 9.0.0340 +Problem: The 'cmdheight' zero support causes too much trouble. +Solution: Revert support for 'cmdheight' being zero. + +Patch 9.0.0341 +Problem: mapset() does not restore mapping properly. +Solution: Use an empty string for . (closes #11022) + +Patch 9.0.0342 +Problem: ":wincmd =" equalizes in two directions. +Solution: Make ":vertical wincmd =" equalize vertically only and + ":horizontal wincmd =" equalize horizontally only. + +Patch 9.0.0343 +Problem: ColorScheme autocommand triggered when colorscheme is not found. + (Romain Lafourcade) +Solution: Only trigger ColorScheme when loading the colorscheme succeeds. + (closes #11024) + +Patch 9.0.0344 +Problem: MS-Windows: background color wrong in Console. +Solution: Figure out the default console background color. (Yasuhiro + Matsumoto, issue #10310) + +Patch 9.0.0345 +Problem: Error message for list argument could be clearer. +Solution: Include the argument number. (Yegappan Lakshmanan, closes #11027) + +Patch 9.0.0346 +Problem: :horizontal modifier not fully supported. +Solution: Also use :horizontal for completion and user commands. + (closes #11025) + +Patch 9.0.0347 +Problem: MS-Windows: cannot set cursor shape in Windows Terminal. +Solution: Make cursor shape work with Windows Terminal. (Ken Takata, + closes #11028, closes #6576) + +Patch 9.0.0348 +Problem: MS-Windows: GUI mouse move event test is flaky. +Solution: Wait for a little while for the first move event. + +Patch 9.0.0349 +Problem: Filetype of *.sil files not well detected. +Solution: Inspect the file contents to guess the filetype. + +Patch 9.0.0350 +Problem: :echowindow does not work in a compiled function. +Solution: Handle the expression at compile time. + +Patch 9.0.0351 +Problem: Message window may obscure the command line. +Solution: Reduce the maximum height of the message window. + +Patch 9.0.0352 +Problem: using :echowindow in a timer clears part of message +Solution: Do not use msg_clr_eos(). + +Patch 9.0.0353 +Problem: Missing entry in switch. +Solution: Add ISN_ECHOWINDOW. + +Patch 9.0.0354 +Problem: MS-Windows: starting a python server for test sometimes fails. +Solution: Increase the waiting time for the port. + +Patch 9.0.0355 +Problem: Check for uppercase char in autoload name is wrong, it checks the + name of the script. +Solution: Remove the check. (closes #11031) + +Patch 9.0.0356 +Problem: :echowindow sets the in_echowindow flag too early. +Solution: Set in_echowindow only when outputting the text. (Yasuhiro + Matsumoto, closes #11033) + +Patch 9.0.0357 +Problem: 'linebreak' interferes with text property highlight if there is + syntax highlighting. +Solution: Check the text prop attributes after combining with syntax + attributes. (closes #11035) + +Patch 9.0.0358 +Problem: 'breakindent' does not indent non-lists with + "breakindentopt=list:-1". +Solution: Adjust indent computation. (Maxim Kim, closes #11038) + +Patch 9.0.0359 +Problem: Error message for wrong argument type is not specific. +Solution: Include more information in the error. (Yegappan Lakshmanan, + closes #11037) + +Patch 9.0.0360 +Problem: Crash when invalid line number on :for is ignored. +Solution: Do not check breakpoint for non-existing line. + +Patch 9.0.0361 +Problem: Removing a listener may result in a memory leak and remove + subsequent listeners. +Solution: Init the "prev" pointer only once. (Yegappan Lakshmanan, + closes #11039) + +Patch 9.0.0362 +Problem: Expanding ":e %" does not work for remote files. +Solution: If the "%" or "#" file does not exist add the expansion anyway. + +Patch 9.0.0363 +Problem: Common names in test files causes tests to be flaky. +Solution: Use more specific names. + +Patch 9.0.0364 +Problem: Clang static analyzer gives warnings. +Solution: Avoid the warnings. (Yegappan Lakshmanan, closes #11043) + +Patch 9.0.0365 +Problem: File name used in test is unusual. +Solution: Rename it. (Dominique Pellé, closes #11044) + +Patch 9.0.0366 +Problem: Cannot use import->Func() in lambda. (Israel Chauca Fuentes) +Solution: Adjust how an expression in a lambda is parsed. (closes #11042) + +Patch 9.0.0367 +Problem: Coverity complains about dropping sign of character. +Solution: Add explicit type cast. + +Patch 9.0.0368 +Problem: Old Coverity warning for using NULL pointer. +Solution: Bail out if dictionary allocation fails. + +Patch 9.0.0369 +Problem: A failing flaky test doesn't mention the time. +Solution: Add the time for debugging. Improve error message. + +Patch 9.0.0370 +Problem: Cleaning up afterwards can make a function messy. +Solution: Add the :defer command. + +Patch 9.0.0371 +Problem: Compiler warning for uninitialized variable. +Solution: Initialize the variable. (John Marriott) + +Patch 9.0.0372 +Problem: MS-Windows: "%T" time format does not appear to work. +Solution: Use "%H:%M:%S" instead. + +Patch 9.0.0373 +Problem: Coverity warns for NULL check and unused return value. +Solution: Remove the NULL check, it was already checked earlier. Add (void) + to ignore the return value. + +Patch 9.0.0374 +Problem: Coverity still complains about dropping sign of character. +Solution: Add intermediate variable. + +Patch 9.0.0375 +Problem: The footer feature is unused. +Solution: Remove FEAT_FOOTER and code. + +Patch 9.0.0376 +Problem: Clang warns for dead assignments. +Solution: Adjust the code. (Yegappan Lakshmanan, closes #11048) + +Patch 9.0.0377 +Problem: Argument assignment does not work. +Solution: Skip over "=". + +Patch 9.0.0378 +Problem: Compiler warning for uninitialized variable. (Tony Mechelynck) +Solution: Initialize it. + +Patch 9.0.0379 +Problem: Cleaning up after writefile() is a hassle. +Solution: Add the 'D' flag to defer deleting the written file. Very useful + in tests. + +Patch 9.0.0380 +Problem: Deleting files in tests is a hassle. +Solution: Use the new 'D' flag of writefile(). + + +Problem: Deleting files in tests is a hassle. +Solution: Use the new 'D' flag of writefile(). + +Patch 9.0.0381 +Problem: Writefile test leaves files behind. +Solution: Fix the file names of files to be deleted. (Dominique Pellé, + closes #11056) + +Patch 9.0.0382 +Problem: Freeing the wrong string on failure. +Solution: Adjust the argument. Reorder the code. + +Patch 9.0.0383 +Problem: Coverity complains about unused value. +Solution: Use the value. + +Patch 9.0.0384 +Problem: Coverity still complains about using return value of getc(). +Solution: Check for EOF. + +Patch 9.0.0385 +Problem: GUI: when CTRL-D is mapped in Insert mode it gets inserted. + (Yasuhiro Matsumoto) +Solution: Also recognize modifier starting with CSI. (closes #11057) + +Patch 9.0.0386 +Problem: Some code blocks are nested too deep. +Solution: Bail out earlier. (Yegappan Lakshmanan, closes #11058) + +Patch 9.0.0387 +Problem: repeating a mapping does not use the right script + context. +Solution: When using a mapping put {sid}; in the redo buffer. + (closes #11049) + +Patch 9.0.0388 +Problem: The do_arg_all() function is too long. +Solution: Split the function in smaller parts. (Yegappan Lakshmanan, + closes #11062) + +Patch 9.0.0389 +Problem: Crash when 'tagfunc' closes the window. +Solution: Bail out when the window was closed. + +Patch 9.0.0390 +Problem: Cannot use a partial with :defer. +Solution: Add the partial arguments before the other arguments. Disallow + using a dictionary. + +Patch 9.0.0391 +Problem: Using separate delete() call instead of writefile() 'D' flag. +Solution: Use the writefile 'D' flag. + +Patch 9.0.0392 +Problem: Inverted condition is a bit confusing. +Solution: Remove the "!" and swap the blocks. (Ken Takata) + +Patch 9.0.0393 +Problem: Signals test often fails on FreeBSD. +Solution: Use separate files for Suspend and Resume. (Ken Takata, + closes #11065) + +Patch 9.0.0394 +Problem: Cygwin: multibyte characters may be broken in terminal window. +Solution: Adjust how to read and write on the channel. (Ken Takata, + closes #11063) + +Patch 9.0.0395 +Problem: Clang warnings for function prototypes. +Solution: Remove incomplete function prototypes. (closes #11068) + +Patch 9.0.0396 +Problem: :findrepl does not escape '&' and '~' properly. +Solution: Escape depending on the value of 'magic'. (closes #11067) + +Patch 9.0.0397 +Problem: :defer not tested with exceptions and ":qa!". +Solution: Test :defer works when exceptions are thrown and when ":qa!" is + used. Invoke the deferred calls on exit. + +Patch 9.0.0398 +Problem: Members of funccall_T are inconsistently named. +Solution: Use the "fc_" prefix for all members. + +Patch 9.0.0399 +Problem: Using :defer in expression funcref not tested. +Solution: Add a test. Fix uncovered problems. + +Patch 9.0.0400 +Problem: GUI test sometimes hangs on CI. +Solution: Delete a test file explicitly. (Ken Takata, closes #11072) + +Patch 9.0.0401 +Problem: CI uses older clang version. +Solution: Switch from clang 14 to 15. (closes #11066) + +Patch 9.0.0402 +Problem: Javascript module files are not recognized. +Solution: Recognize "*.jsm" files as Javascript. (Brett Holman, + closes #11069) + +Patch 9.0.0403 +Problem: 'equalalways' may be off when 'laststatus' is zero. +Solution: call last_status() before win_equal(). (Luuk van Baal, + closes #11070) + +Patch 9.0.0404 +Problem: Crash when passing invalid arguments to assert_fails(). +Solution: Check for NULL string. + +Patch 9.0.0405 +Problem: Arguments in a partial not used by a :def function. +Solution: Put the partial arguments on the stack. + +Patch 9.0.0406 +Problem: Deferred functions not invoked when partial func exits. +Solution: Create a funccall_T when calling a :def function. + +Patch 9.0.0407 +Problem: matchstr() does match column offset. (Yasuhiro Matsumoto) +Solution: Accept line number zero. (closes #10938) + +Patch 9.0.0408 +Problem: GUI test sometimes fails on MS-Windows. +Solution: Make sure Vim is the foreground window. (Ken Takata, closes #11077) + +Patch 9.0.0409 +Problem: #{g:x} was seen as a curly-braces expression. +Solution: Do never see #{} as a curly-braces expression. (closes #11075) + +Patch 9.0.0410 +Problem: Struct member cts_lnum is unused. +Solution: Delete it. + +Patch 9.0.0411 +Problem: Only created files can be cleaned up with one call. +Solution: Add flags to mkdir() to delete with a deferred function. + Expand the writefile() name to a full path to handle changing + directory. + +Patch 9.0.0412 +Problem: Compiler warning for unused argument. +Solution: Add UNUSED. + +Patch 9.0.0413 +Problem: ASAN reports a memory leak. +Solution: Free the string received from the server. (Ken Takata, + closes #11080) + +Patch 9.0.0414 +Problem: matchstr() still does not match column offset when done after a + text search. +Solution: Only use the line number for a multi-line search. Fix the test. + (closes #10938) + +Patch 9.0.0415 +Problem: On MS-Windows some tests are flaky. +Solution: Add sleeps, disable swapfile, mark test as flaky. (Ken Takata, + closes #11082) + +Patch 9.0.0416 +Problem: ml_get error when appending lines in popup window. +Solution: Only update w_topline when w_buffer matches curbuf. + (closes #11074) + +Patch 9.0.0417 +Problem: Jsonnet files are not recognized. +Solution: Add a pattern for Jsonnet files. (Cezary Drożak, closes #11073, + closes #11081) + +Patch 9.0.0418 +Problem: Manually deleting temp test files. +Solution: Use the 'D' flag of writefile() and mkdir(). + +Patch 9.0.0419 +Problem: The :defer command does not check the function argument count and + types. +Solution: Check the function arguments when adding a deferred function. + +Patch 9.0.0420 +Problem: Function went missing. +Solution: Add the function back. + +Patch 9.0.0421 +Problem: MS-Windows makefiles are inconsistently named. +Solution: Use consistent names. (Ken Takata, closes #11088) + +Patch 9.0.0422 +Problem: Not enough testing of the :all command. +Solution: Add more testing. (Yegappan Lakshmanan, closes #11091) + +Patch 9.0.0423 +Problem: "for" and "while" not recognized after :vim9cmd and :legacy. + (Emanuele Torre) +Solution: Recognize all the command modifiers. (closes #11087) + Add a test to check the list of modifiers. + +Patch 9.0.0424 +Problem: gitattributes files are not recognized. +Solution: Add patterns to match gitattributes files. (closes #11085) + +Patch 9.0.0425 +Problem: Autocmd test is a bit flaky on MS-Windows. +Solution: Add a bit more sleeping. (Ken Takata, closes #11095) + +Patch 9.0.0426 +Problem: Failed flaky tests reports only start time. +Solution: Also report the end time. + +Patch 9.0.0427 +Problem: Drupal theme files are not recognized. +Solution: Use php filetype for Drupl theme files. Remove trailing spaces. + (Rodrigo Aguilera, closes #11096) + +Patch 9.0.0428 +Problem: Autocmd test uses common file name. +Solution: Use unique name to reduce flakiness. + +Patch 9.0.0429 +Problem: Not all keys are tested for the MS-Windows GUI. +Solution: Add more key codes to the list. (Yegappan Lakshmanan, + closes #11097) + +Patch 9.0.0430 +Problem: Cannot use repeat() with a blob. +Solution: Implement blob repeat. (closes #11090) + +Patch 9.0.0431 +Problem: Current mode shows in message window. +Solution: Reset in_echowindow before redrawing. (issue #11094) + +Patch 9.0.0432 +Problem: Crash when using for loop variable in closure. +Solution: Check that the variable wasn't deleted. (issue #11094) + +Patch 9.0.0433 +Problem: Coverity warns for not checking allocation failure. +Solution: Check that allocating a list or blob succeeded. + +Patch 9.0.0434 +Problem: gitignore files are not recognized. +Solution: Add patterns for the gitignore filetype. (closes #11102) + +Patch 9.0.0435 +Problem: Compiler warning for uninitialized variable. +Solution: Initialize it. + +Patch 9.0.0436 +Problem: CI: running tests in parallel causes flakiness. +Solution: Reorganize the MS-Windows runs. (Ken Takata, closes #11101) + +Patch 9.0.0437 +Problem: No error when a custom completion function returns something else + than the expected list. +Solution: Give an error. (closes #11100) + +Patch 9.0.0438 +Problem: Cannot put virtual text above a line. +Solution: Add the "above" value for "text_align". + +Patch 9.0.0439 +Problem: Cursor wrong if inserting before line with virtual text above. +Solution: Add the width of the "above" virtual text to the cursor position. + (issue #11084) + +Patch 9.0.0440 +Problem: Crash when using mkdir() with "R" flag in compiled function. +Solution: Reserve a variable for deferred function calls. Handle more than + one argument. + +Patch 9.0.0441 +Problem: Closure in for loop test fails on some systems. +Solution: Do not wait for the ruler to show up. (issue #11106) + +Patch 9.0.0442 +Problem: Virtual text "above" doesn't handle line numbers. +Solution: Take the left column offset into account. (issue #11084) + Also make padding work. + +Patch 9.0.0443 +Problem: Blueprint files are not recognized. +Solution: Add a pattern for blueprint files. (Gabriele Musco, closes #11107) + +Patch 9.0.0444 +Problem: Trying to declare g:variable gives confusing error. +Solution: Give a better error message. (closes #11108) + +Patch 9.0.0445 +Problem: When opening/closing window text moves up/down. +Solution: Add the 'splitscroll' option. When off text will keep its + position as much as possible. + +Patch 9.0.0446 +Problem: Message window may be positioned too low. +Solution: Compute cmdline_row before computing the position. + +Patch 9.0.0447 +Problem: Using :echowin while at the hit-enter prompt causes problems. +Solution: Do not prompt for :echowin. Postpone showing the message window. + Start the timer when the window is displayed. + +Patch 9.0.0448 +Problem: SubRip files are not recognized. +Solution: Add a pattern for SubRip. (closes #11113) + +Patch 9.0.0449 +Problem: There is no easy way to translate a string with a key code into a + readable string. +Solution: Add the keytrans() function. (closes #11114) + +Patch 9.0.0450 +Problem: Return value of argument check functions is inconsistent. +Solution: Return OK/FAIL instead of TRUE/FALSE. (closes #11112) + +Patch 9.0.0451 +Problem: Virtual text "above" does not work with 'nowrap'. +Solution: Do wrap the line after. (closes #11084) + +Patch 9.0.0452 +Problem: Visual highlighting extends into virtual text prop. +Solution: Do not highlight what isn't actually selected. Fix ordering of + stored text props. + +Patch 9.0.0453 +Problem: On an AZERTY keyboard digit keys get the shift modifier. +Solution: Remove the shift modifier from digit keys. (closes #11109) + +Patch 9.0.0454 +Problem: Incorrect color for modeless selection with GTK. +Solution: Use simple inversion instead of XOR. (closes #11111) + +Patch 9.0.0455 +Problem: A few problems with 'splitscroll'. +Solution: Fix 'splitscroll' problems. (Luuk van Baal, closes #11117) + +Patch 9.0.0456 +Problem: Function called at debug prompt is also debugged. +Solution: Reset the debug level while entering the debug command. + (closes #11118) + +Patch 9.0.0457 +Problem: Substitute prompt does not highlight an empty match. +Solution: Highlight at least one character. + +Patch 9.0.0458 +Problem: Splitting a line with a text prop "above" moves it to a new line + below. +Solution: Keep an "above" text prop above the first line. + +Patch 9.0.0459 +Problem: Vim9: block in for loop doesn't behave like a code block. +Solution: Use a new block ID for each loop at the script level. + +Patch 9.0.0460 +Problem: Loop variable can't be found. +Solution: Adjust block_id of the loop variable each round. + +Patch 9.0.0461 +Problem: 'scroll' is not always updated. +Solution: Call win_init_size() at the right place. + +Patch 9.0.0462 +Problem: ASAN warning for integer overflow. +Solution: Check for tp_col to be MAXCOL. + +Patch 9.0.0463 +Problem: Command line test leaves directory behind. +Solution: Use the "R" flag on the first mkdir(). (Dominique Pellé, + closes #11127) + +Patch 9.0.0464 +Problem: With virtual text "above" indenting doesn't work well. +Solution: Ignore text properties while adjusting indent. (issue #11084) + +Patch 9.0.0465 +Problem: Cursor moves when cmdwin is closed when 'splitscroll' is off. +Solution: Temporarily set 'splitscroll' when jumping back to the original + window. (closes #11128) + +Patch 9.0.0466 +Problem: Virtual text wrong after adding line break after line. +Solution: Pass an "eol" flag to where text properties are adjusted. + (closes #11131) + +Patch 9.0.0467 +Problem: Build failure. +Solution: Add missing change. + +Patch 9.0.0468 +Problem: Execution stack underflow without the +eval feature. (Dominique + Pellé) +Solution: Add to execution stack without FEAT_EVAL. (closes #11135) + +Patch 9.0.0469 +Problem: Cursor moves if cmdwin is closed when 'splitscroll' is off. +Solution: Skip win_fix_cursor if called when cmdwin is open or closing. + (Luuk van Baal, closes #11134) + +Patch 9.0.0470 +Problem: In a :def function all closures in a loop get the same variables. +Solution: When in a loop and a closure refers to a variable declared in the + loop, prepare for making a copy of variables for each closure. + +Patch 9.0.0471 +Problem: No test for what patch 9.0.0469 fixes. +Solution: Add a test. (closes #11140) + +Patch 9.0.0472 +Problem: Virtual text "below" doesn't show in list mode. +Solution: Reset lcs_eol_one when displaying text property. + +Patch 9.0.0473 +Problem: fullcommand() only works for the current script version. +Solution: Add an optional argument for the script version. + +Patch 9.0.0474 +Problem: fullcommand() test failure. +Solution: Update function table. + +Patch 9.0.0475 +Problem: Not using deferred delete in tests. +Solution: Use deferred delete more often. + +Patch 9.0.0476 +Problem: Varargs does not work for replacement function of substitute(). +Solution: Check the varargs flag of the function. (closes #11142) + +Patch 9.0.0477 +Problem: Missing dependency may cause crashes on incomplete build. +Solution: Add dependency. + +Patch 9.0.0478 +Problem: Test for 'splitscroll' takes too much time. +Solution: Only test some of the combinations. (Luuk van Baal, closes #11139) + +Patch 9.0.0479 +Problem: In a :def function all closures in a loop get the same variables. +Solution: Use a separate list of variables for LOADOUTER and SAVEOUTER. + +Patch 9.0.0480 +Problem: Cannot use a :def varargs function with substitute(). +Solution: Use has_varargs(). (closes #11146) + +Patch 9.0.0481 +Problem: In a :def function all closures in a loop get the same variables. +Solution: Use a separate list of variables for LOADOUTER and STOREOUTER. + Not copied at end of loop yet. + +Patch 9.0.0482 +Problem: "g0" moves to wrong location with virtual text "above". +Solution: Compensate for the extra columns. (closes #11141) Also fix "g$" + +Patch 9.0.0483 +Problem: Illegal memory access when replacing in virtualedit mode. +Solution: Check for replacing NUL after Tab. + +Patch 9.0.0484 +Problem: In a :def function all closures in a loop get the same variables. +Solution: Add ENDLOOP at break, continue and return if needed. + +Patch 9.0.0485 +Problem: In a :def function all closures in a loop get the same variables. +Solution: Make a copy of loop variables used in a closure. + +Patch 9.0.0486 +Problem: Text scrolled with 'nosplitscroll', autocmd win opened and help + window closed. +Solution: Skip win_fix_scroll() in more situations. (Luuk van Baal, + closes #11150) + +Patch 9.0.0487 +Problem: Using freed memory with combination of closures. +Solution: Do not use a partial after it has been freed through the + funcstack. + +Patch 9.0.0488 +Problem: Cursor in wrong position with virtual text "above" and + 'showbreak'. +Solution: Take the first character column into account. (closes #11149) + +Patch 9.0.0489 +Problem: Using "end_lnum" with virtual text causes problems. +Solution: Disallow using "end_lnum" with virtual text. (closes #11151) + Also disallow "end_col" and "length". + +Patch 9.0.0490 +Problem: Using freed memory with cmdwin and BufEnter autocmd. +Solution: Make sure pointer to b_p_iminsert is still valid. + +Patch 9.0.0491 +Problem: No good reason to build without the float feature. +Solution: Remove configure check for float and "#ifdef FEAT_FLOAT". + +Patch 9.0.0492 +Problem: Cmdwin test fails on MS-Windows. +Solution: Skip test on MS-Windows. + +Patch 9.0.0493 +Problem: Perl test fails. +Solution: Remove remaining FEAT_EVAL. + +Patch 9.0.0494 +Problem: Small build misses float function declarations. +Solution: Adjust #ifdefs. + +Patch 9.0.0495 +Problem: Closure doesn't work properly in nested loop. +Solution: Save variables up to the outer loop. + +Patch 9.0.0496 +Problem: No good reason to keep supporting Windows-XP. +Solution: Drop Windows-XP support. (Ken Takata, closes #11089) + +Patch 9.0.0497 +Problem: LyRiCs files are not recognized. +Solution: Add a pattern to detect LyRiCs files. (closes #11155) + +Patch 9.0.0498 +Problem: Various small issues. +Solution: Various small fixes. + +Patch 9.0.0499 +Problem: In :def function list created after const is locked. +Solution: Reset v_lock. (closes #11154) + +Patch 9.0.0500 +Problem: When quitting the cmdline window with CTRL-C it remains visible. +Solution: Redraw to avoid confusion. Adjust the error message. + (closes #11152) Adjust the cursor position after CTRL-C. + +Patch 9.0.0501 +Problem: Warning for using uninitialized value in mouse test. +Solution: Clear ScreenCols when allocating it. (Dominique Pellé) + +Patch 9.0.0502 +Problem: A closure in a nested loop in a :def function does not work. +Solution: Use an array of loopvars, one per loop level. + +Patch 9.0.0503 +Problem: Build failure. +Solution: Add missing changes. + +Patch 9.0.0504 +Problem: still a Build failure. +Solution: Add another missing changes. Avoid compiler warning. + +Patch 9.0.0505 +Problem: Various problems with 'nosplitscroll'. +Solution: Fix 'nosplitscroll' problems. (Luuk van Baal, closes #11166) + +Patch 9.0.0506 +Problem: Line number argument for :badd does not work. +Solution: Set the last cursor position in the new buffer. (closes #11161) + +Patch 9.0.0507 +Problem: Command line cleared when using :redrawstatus in CmdlineChanged + autocommand event. +Solution: Postpone the redraw. (closes #11162) + +Patch 9.0.0508 +Problem: When the channel test fails there is no clue why. +Solution: Add info about the job status. (Ken Takata, closes #11175) + +Patch 9.0.0509 +Problem: Confusing error for "saveas" command with "nofile" buffer. +Solution: Give a clearer error message. (closes #11171) + +Patch 9.0.0510 +Problem: Chatito files are not recognized. +Solution: Add a pattern for Chatito files. (closes #11174) + +Patch 9.0.0511 +Problem: Unnecessary scrolling for message of only one line. +Solution: Only set msg_scroll when needed. (closes #11178) + +Patch 9.0.0512 +Problem: Cannot redraw the status lines when editing a command. +Solution: Only postpone the redraw when messages have scrolled. + (closes #11170) + +Patch 9.0.0513 +Problem: May not be able to use a pattern ad the debug prompt. +Solution: Temporarily disable the timeout. (closes #11164) + +Patch 9.0.0514 +Problem: Terminal test sometimes hangs. +Solution: Add a bit more information to the test output. (issue #11179) + +Patch 9.0.0515 +Problem: Virtual text highlight starts too early when 'number' is set. +Solution: Set column offset when wrapping. (issue #11138) + +Patch 9.0.0516 +Problem: Virtual text "above" highlights gap after it. +Solution: Do not highlight the gap. (closes #11138) + +Patch 9.0.0517 +Problem: When at the command line :redrawstatus does not work well. +Solution: Only update the statuslines instead of the screen. (closes #11180) + +Patch 9.0.0518 +Problem: Virtual text highlight starts too early with 'nowrap' and 'number' + set. +Solution: Add the offset to the attribute skip count. (issue #11138) + +Patch 9.0.0519 +Problem: The win_line() function is much too long. +Solution: Move the code to draw the line number to a separate function. + +Patch 9.0.0520 +Problem: Declaring a loop variable at the start of a block is clumsy. +Solution: Declare the variable inside the loop in a few places to see if + this works. + +Patch 9.0.0521 +Problem: Compiler warns for unused argument in small version. +Solution: Add UNUSED. + +Patch 9.0.0522 +Problem: Build fails on Appveyor. +Solution: Select Visual Studio 2015 for the build tools. + +Patch 9.0.0523 +Problem: more compiler warnings for arguments in small version +Solution: Adjust #ifdefs. + +Patch 9.0.0524 +Problem: Build instructions for MS-Windows are outdated. +Solution: Remove instructions for old MSVC versions. + +Patch 9.0.0525 +Problem: Manually deleting temp test files. +Solution: Add the 'D' flag to writefile(). + +Patch 9.0.0526 +Problem: MS-Windows: still some support for XP and old compilers. +Solution: Remove XP support and mention of old compilers. (Ken Takata, + closes #11183) + +Patch 9.0.0527 +Problem: Long sign text may overflow buffer. +Solution: Use a larger buffer. Prevent for overflow. + +Patch 9.0.0528 +Problem: MS-Windows: no batch files for more recent MSVC versions. +Solution: Add batch files for 2017, 2019 and 2022. (Ken Takata, + closes #11184) + +Patch 9.0.0529 +Problem: Appveyor setup contains outdated lines. +Solution: Remove outdated lines. (Ken Takata, closes #11182) + +Patch 9.0.0530 +Problem: Using freed memory when autocmd changes mark. +Solution: Copy the mark before editing another buffer. + +Patch 9.0.0531 +Problem: The win_line() function is much too long. +Solution: Move code to separate functions. + +Patch 9.0.0532 +Problem: Edit test is flaky when run under valgrind. +Solution: Send some text to the terminal to trigger a redraw. + +Patch 9.0.0533 +Problem: The win_line() function is much too long. +Solution: Move code to separate functions. + +Patch 9.0.0534 +Problem: Line number is displayed at virtual text "above". +Solution: Show the line number at the text line. + +Patch 9.0.0535 +Problem: Closure gets wrong value in for loop with two loop variables. +Solution: Correctly compute the number of loop variables to clear. + +Patch 9.0.0536 +Problem: CI: codecov action update available. +Solution: Update Codecov 3.1.0 to 3.3.1. (closes #11188) + +Patch 9.0.0537 +Problem: The do_set() function is much too long. +Solution: Move setting of a string option to a separate function. + +Patch 9.0.0538 +Problem: Manually deleting test temp files. +Solution: Add the 'D' flag to writefile(). + +Patch 9.0.0539 +Problem: Long message test can be flaky. +Solution: Wait for more prompt instead of ruler. + +Patch 9.0.0540 +Problem: Assigning stack variable to argument confuses Coverity. +Solution: Use a local pointer, also makes the code simpler. + +Patch 9.0.0541 +Problem: Terminal pwd test fails with a very long path name. +Solution: Join two lines. + +Patch 9.0.0542 +Problem: MSVC build still has support for 2012 edition. +Solution: Drop MSVC 2012 support. (Ken Takata, closes #11191) + +Patch 9.0.0543 +Problem: Insufficient testing for assert and test functions. +Solution: Add a few more tests. (Yegappan Lakshmanan, closes #11190) + +Patch 9.0.0544 +Problem: Minor issues with setting a string option. +Solution: Adjust the code, add a test. (closes #11192) + +Patch 9.0.0545 +Problem: When a test is slow and CI times out there is no time info. +Solution: Add the elapsed time to the "Executing" message. + +Patch 9.0.0546 +Problem: Supporting Ruby 1.8 makes code complicated. +Solution: Drop Ruby 1.8 support, it is ancient. (Ken Takata, closes #11195) + +Patch 9.0.0547 +Problem: Looping over empty out_loop[] entries. +Solution: Store the array size. + +Patch 9.0.0548 +Problem: reduce() with a compiled lambda could be faster. +Solution: Call eval_expr_typval() instead of call_func() directly. + +Patch 9.0.0549 +Problem: Duplicated code in calling a :def function. +Solution: Simplify the code. + +Patch 9.0.0550 +Problem: Crash when closing a tabpage and buffer is NULL. +Solution: Adjust how autocommands are triggered when closing a window. + (closes #11198, closes #11197) + +Patch 9.0.0551 +Problem: Mode message is delayed when :echowin was used. (Maxim Kim) +Solution: Save and restore msg_didout in :echowin. (closes #11193) + +Patch 9.0.0552 +Problem: Crash when using NUL in buffer that uses :source. +Solution: Don't get a next line when skipping over NL. + +Patch 9.0.0553 +Problem: No error for "|" after "{" in lambda. +Solution: Check for invalid "|". (closes #11199) + +Patch 9.0.0554 +Problem: Using freed memory when command follows lambda. +Solution: Don't free what is still in use. (closes #11201) + +Patch 9.0.0555 +Problem: Scrolling with 'nosplitscroll' in callback changing curwin. +Solution: Invalidate w_cline_row in the right place. (Luuk van Baal, + closes #11185) + +Patch 9.0.0556 +Problem: Leaking memory with nested functions. +Solution: Free saved pointer. + +Patch 9.0.0557 +Problem: Valgrind reports possibly leaked memory. +Solution: Move the problematic test function to the "fails" test file to + avoid obscuring real memory leaks. + +Patch 9.0.0558 +Problem: Coverity warns for possibly using NULL pointer. +Solution: Only use "evalarg" when not NULL. + +Patch 9.0.0559 +Problem: Timer test may get stuck at hit-enter prompt. +Solution: Feed some more characters. + +Patch 9.0.0560 +Problem: Elapsed time since testing started is not visible. +Solution: Show the elapsed time while running tests. + +Patch 9.0.0561 +Problem: When a test gets stuck it just hangs forever. +Solution: Set a timeout of 30 seconds. + +Patch 9.0.0562 +Problem: HSL playlist files are not recognized. +Solution: Add a pattern to recognize HSL playlist files. (Benoît Ryder, + closes #11204) + +Patch 9.0.0563 +Problem: Timer_info() test fails. +Solution: Ignore test timeout timer. Don't use test_null_job() when not + available. + +Patch 9.0.0564 +Problem: A few tests keep failing on MacOS M1. +Solution: Add a test check CheckNotMacM1. Fix timer tests. + +Patch 9.0.0565 +Problem: Cscope test causes problems when code for test timeout timer is + included (even when commented out). +Solution: Disable part of the cscope test for now. + +Patch 9.0.0566 +Problem: Nim files are not recognized. +Solution: Add patterns for Nim files. (Nbiba Bedis, closes #11205) + +Patch 9.0.0567 +Problem: 'completeopt' "longest" is not used for complete(). +Solution: Also use "longest" for complete(). (Bjorn Linse, closes #11206) + +Patch 9.0.0568 +Problem: Autocmd code is indented more than needed. +Solution: Break out sooner. (Yegappan Lakshmanan, closes #11208) + Also in user function code. + +Patch 9.0.0569 +Problem: Cannot easily get out when using "vim file | grep word". +Solution: Without changes let CTRL-C exit Vim. Otherwise give a message on + stderr. (closes #11209) + +Patch 9.0.0570 +Problem: CI for Windows is still using codecov action 3.1.0. +Solution: Use action 3.1.1. (closes #11212) + +Patch 9.0.0571 +Problem: MS-Windows: CTRL-C can make Vim exit. +Solution: Check the not-a-term argument. + +Patch 9.0.0572 +Problem: Insert complete tests leave a mapping behind. +Solution: Use a buffer-local mapping. (closes #11211) + +Patch 9.0.0573 +Problem: Outdated dependencies go unnoticed. +Solution: Use github Dependabot. (closes #11213) + +Patch 9.0.0574 +Problem: Timer garbage collect test hangs on Mac M1. +Solution: Properly check for Mac M1 and skip the test. + +Patch 9.0.0575 +Problem: The getchar() function behaves strangely with bracketed paste. +Solution: Do not handle paste-start in getchar(). (issue #11172) + +Patch 9.0.0576 +Problem: Unused loop variables. +Solution: Use a while loop instead. (closes #11214) + +Patch 9.0.0577 +Problem: Buffer underflow with unexpected :finally. +Solution: Check CSF_TRY can be found. + +Patch 9.0.0578 +Problem: One timer test fails on Mac M1. +Solution: Skip the test on Mac M1. + +Patch 9.0.0579 +Problem: Using freed memory when 'tagfunc' wipes out buffer that holds + 'complete'. +Solution: Make a copy of the option. Make sure cursor position is valid. + +Patch 9.0.0580 +Problem: No CI running for MacOS on M1. +Solution: Add a cirrus CI task. (closes #11203) + +Patch 9.0.0581 +Problem: Adding a character for incsearch fails at end of line. +Solution: Only check cursor line number. + +Patch 9.0.0582 +Problem: Channel cwd test fails on Cirrus CI. +Solution: Also remove /private from the expected directory. + +Patch 9.0.0583 +Problem: Only recognizing .m3u8 files is inconsistent. +Solution: Also match .m3u files. (issue #11204) + +Patch 9.0.0584 +Problem: Cscope test with wrong executable name fails. +Solution: Use /bin/sh to execute the command. (Yegappan Lakshmanan) + +Patch 9.0.0585 +Problem: When long message test fails the error message is not visible. +Solution: Dump more lines. + +Patch 9.0.0586 +Problem: Missing change in test. +Solution: Add the test change. + +Patch 9.0.0587 +Problem: Unicode tables are outdated. +Solution: Update to Unicode release 15. (Christian Brabandt, closes #11220) + +Patch 9.0.0588 +Problem: MorphOS build is broken. +Solution: Add "-lm" to LDFLAGS and "-noixemul" to CFLAGS. (Ola Söder, + closes #11222) + +Patch 9.0.0589 +Problem: On AmigaOS4 the pid is available but the task address is used. +Solution: Use getpid(). (Ola Söder, closes #11224) + +Patch 9.0.0590 +Problem: After exiting Insert mode spelling is not checked in the next + line. +Solution: When spelling is enabled redraw the next line after exiting Insert + mode in case the spell highlight needs updating. + +Patch 9.0.0591 +Problem: Message window popup shows on only one tab page. (Naruhiko + Nishino) +Solution: Show the message window popup on all tab pages. (closes #11231) + +Patch 9.0.0592 +Problem: Display not cleared when scrolling back in messages, a background + color is set and t_ut is empty. +Solution: Clear to the end of the display if needed. (closes #8973) + +Patch 9.0.0593 +Problem: CI actions have too many permissions. +Solution: Restrict permissions to what is required. (closes #11223) + +Patch 9.0.0594 +Problem: Makefile error message causes a shell error. +Solution: Put the message in single quotes. (closes #11232) + +Patch 9.0.0595 +Problem: Extra newline in messages after a verbose shell message. +Solution: Output the newline with msg_putchar_attr(). (closes #11233) + Make it possible to filter a screendump before comparing it. + +Patch 9.0.0596 +Problem: CI on Mac M1 has the channel feature disabled. +Solution: Include the channel feature. + +Patch 9.0.0597 +Problem: Cannot close a tab page with the middle mouse button. +Solution: Support closing a tab page with the middle mouse button, like many + other programs. (closes #10746) + +Patch 9.0.0598 +Problem: Using negative array index with negative width window. +Solution: Make sure the window width does not become negative. + +Patch 9.0.0599 +Problem: Latexmkrc files are not recognized. +Solution: Use Perl filetype for latexmkrc files. (closes #11241) + +Patch 9.0.0600 +Problem: GYP files are not recognized. +Solution: Recognize GYP files. (closes #11242) + +Patch 9.0.0601 +Problem: Too much indent. +Solution: Return out early from a function. (Yegappan Lakshmanan, + close #11238) + +Patch 9.0.0602 +Problem: New TypeScript extensions are not recognized. +Solution: Recognize .mts and .cts files. (closes #11237) + +Patch 9.0.0603 +Problem: With 'nosplitscroll' folds are not handled correctly. +Solution: Take care of closed folds when moving the cursor. (Luuk van Baal, + closes #11234) + +Patch 9.0.0604 +Problem: Luacheckrc file is not recognized. +Solution: Use lua filetype for luacheckrc. (closes #11236) + +Patch 9.0.0605 +Problem: Dump file missing. +Solution: Add the missing dump file. (issue #11234) + +Patch 9.0.0606 +Problem: system() opens a terminal window when using the GUI and "!" is in + 'guioptions'. +Solution: Do not use a terminal window when the SHELL_SILENT flag is used. + (closes #11202) + +Patch 9.0.0607 +Problem: Verbose echo message test fails on Mac OS. +Solution: Skip the test on Mac OS. + +Patch 9.0.0608 +Problem: With spell checking, deleting a full stop at the end of a line + does not update SpellCap at the start of the next line. +Solution: Update the next line when characters have been deleted. Also when + using undo. + +Patch 9.0.0609 +Problem: Blockedit test fails because of wrong indent. +Solution: Adjust the expected text temporarily + +Patch 9.0.0610 +Problem: Global interrupt test fails when run under valgrind. +Solution: Use TermWait(). + +Patch 9.0.0611 +Problem: Tests delete files with a separate delete() call. +Solution: Use deferred delete. + +Patch 9.0.0612 +Problem: Blockedit test passes with wrong result. +Solution: Add a "vim9script" line to make indenting work. + +Patch 9.0.0613 +Problem: Running source tests leaves file behind. +Solution: Add the "D" flag to writefile(). (Dominique Pellé, closes #11243) + Also do this for other writefile() calls and drop delete(). + +Patch 9.0.0614 +Problem: SpellFileMissing autocmd may delete buffer. +Solution: Disallow deleting the current buffer to avoid using freed memory. + +Patch 9.0.0615 +Problem: Using reduce() on a list from range() is a bit slow. +Solution: Avoid materializing the list. + +Patch 9.0.0616 +Problem: Spell test fails because error message changed. +Solution: Adjust expected error message. + +Patch 9.0.0617 +Problem: Calling function for reduce() has too much overhead. +Solution: Only call clear_tv() when needed. + +Patch 9.0.0618 +Problem: Calling function for reduce() has too much overhead. +Solution: Do not create a funccall_T every time. + +Patch 9.0.0619 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0620 +Problem: matchaddpos() can only add up to 8 matches. +Solution: Allocate the array of positions. (closes #11248) + +Patch 9.0.0621 +Problem: Filetype test leaves file behind. +Solution: Add deferred delete flag to writefile(). (Dominique Pellé, + closes #11249) + +Patch 9.0.0622 +Problem: matchaddpos() can get slow when adding many matches. +Solution: Update the next available match ID when manually picking an ID and + remove check if the available ID can be used. (idea by Rick Howe) + +Patch 9.0.0623 +Problem: Error for modifying a const is not detected at compile time. +Solution: Add TTFLAG_CONST and check for it in add() and extend(). + +Patch 9.0.0624 +Problem: Leaking argument type array. +Solution: Add allocated memory to type_gap. + +Patch 9.0.0625 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0626 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0627 +Problem: "const" and "final" both make the type a constant. (Daniel + Steinberg) +Solution: Only have "const" make the type a constant. + +Patch 9.0.0628 +Problem: Coverity warns for not checking return value. +Solution: Check the return value and simplify the code. + +Patch 9.0.0629 +Problem: Get an error for using const only when executing. +Solution: Check for const at compile time for filter(), map(), remove(), + reverse(), sort() and uniq(). + +Patch 9.0.0630 +Problem: In Vim9 script a numbered function cannot be called. +Solution: Do not require "g:" before a numbered function name. + (closes #11254) + +Patch 9.0.0631 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0632 +Problem: Calling a function from an "expr" option has too much overhead. +Solution: Add call_simple_func() and use it for 'foldexpr' + +Patch 9.0.0633 +Problem: FEAT_TITLE was removed but is still used. +Solution: Remove FEAT_TITLE. (Naruhiko Nishino, closes #11256) + +Patch 9.0.0634 +Problem: Evaluating "expr" options has more overhead than needed. +Solution: Use call_simple_func() for 'foldtext', 'includeexpr', 'printexpr', + "expr" of 'spellsuggest', 'diffexpr', 'patchexpr', 'balloonexpr', + 'formatexpr', 'indentexpr' and 'charconvert'. + +Patch 9.0.0635 +Problem: Build error and compiler warnings. +Solution: Add missing change. Add type casts. + +Patch 9.0.0636 +Problem: Underline color does not work in terminals that don't send a + termresponse. +Solution: Do output t_8u if it was set explicitly. (closes #11253) + +Patch 9.0.0637 +Problem: Syntax of commands in Vim9 script depends on +eval feature. +Solution: Use same syntax with and without the +eval feature. + +Patch 9.0.0638 +Problem: Popup menu highlight wrong on top of preview popup. (Yegappan + Lakshmanan) +Solution: Also check for the popup menu in screen_line(). + +Patch 9.0.0639 +Problem: Checking for popup in screen_char() is too late, the attribute has + already been changed. +Solution: Move check for popup to where screen_char() is called. + +Patch 9.0.0640 +Problem: Cannot scroll by screen line if a line wraps. +Solution: Add the 'smoothscroll' option. Only works for CTRL-E and CTRL-Y + so far. + +Patch 9.0.0641 +Problem: Missing part of the new option code. +Solution: Add missing WV_SMS. + +Patch 9.0.0642 +Problem: Breakindent test fails. +Solution: Correct logic for resetting need_showbreak. + +Patch 9.0.0643 +Problem: Smoothscroll test fails. +Solution: Check if skipcol changed. + +Patch 9.0.0644 +Problem: 'smoothscroll' is not copied to a new window on :split. +Solution: Copy the option value. Add a test. + +Patch 9.0.0645 +Problem: CTRL-Y does not stop at line 1. (John Marriott) +Solution: Stop at line 1 when 'smoothscroll' is not set. (closes #11261) + +Patch 9.0.0646 +Problem: with 'smoothscroll' set CTRL-E does not work properly when + 'foldmethod' is set to "indent". (Yee Cheng Chin) +Solution: Merge the code for scrolling with folds and 'smoothscroll'. + (closes #11262) + +Patch 9.0.0647 +Problem: The 'splitscroll' option is not a good name. +Solution: Rename 'splitscroll' to 'splitkeep' and make it a string option, + also supporting "topline". (Luuk van Baal, closes #11258) + +Patch 9.0.0648 +Problem: When using powershell input redirection does not work. +Solution: Use a different shell command for powershell. (Yegappan + Lakshmanan, closes #11257) + +Patch 9.0.0649 +Problem: No indication when the first line is broken for 'smoothscroll'. +Solution: Show "<<<" in the first line. + +Patch 9.0.0650 +Problem: Some tests are failing. +Solution: Adjust for "<<<" showing up. + +Patch 9.0.0651 +Problem: Build fails without the +conceal feature. +Solution: Rename called function. + +Patch 9.0.0652 +Problem: 'smoothscroll' not tested with 'number' and "n" in 'cpo'. +Solution: Add tests, fix uncovered problem. + +Patch 9.0.0653 +Problem: BS and DEL do not work properly in an interactive shell. (Gary + Johnson) +Solution: Adjust the length for replaced codes. + +Patch 9.0.0654 +Problem: Breakindent test fails. +Solution: Temporarily accept wrong result. + +Patch 9.0.0655 +Problem: passing modifier codes to a shell running in the GUI. (Gary + Johnson) +Solution: Include modifier codes into the key and drop the modifiers. + +Patch 9.0.0656 +Problem: Cannot specify another character to use instead of '@' at the end + of the window. +Solution: Add "lastline" to 'fillchars'. (Martin Tournoij, closes #11264, + closes #10963) + +Patch 9.0.0657 +Problem: Too many #ifdefs. +Solution: Graduate the +cmdwin feature. Now the tiny and small builds are + equal, drop the small build. (Martin Tournoij, closes #11268) + +Patch 9.0.0658 +Problem: Tiny build fails on Mac OS. +Solution: Define FEAT_CLIPBOARD only for normal build. + +Patch 9.0.0659 +Problem: Wrong type of comment in SetSyn() function. +Solution: Use Vim9 comment. (closes #11278) + +Patch 9.0.0660 +Problem: Mapping with CTRL keys does not work in the GUI. +Solution: Recognize CSI next to K_SPECIAL. (closes #11275, closes #11270) + +Patch 9.0.0661 +Problem: Multi-byte "lastline" item in 'fillchars' does not work properly + when the window is two columns wide. +Solution: Compute the text length correctly. (closes #11280) + +Patch 9.0.0662 +Problem: Concealed characters do not work correctly. +Solution: Subtract boguscols instead of adding them. (closes #11273) + +Patch 9.0.0663 +Problem: Tests check for +cmdwin feature which is always present. +Solution: Remove the checks. (closes #11287) + +Patch 9.0.0664 +Problem: Bad redrawing with spell checking, using "C" and "$" in 'cpo'. +Solution: Do not redraw the next line when "$" is in 'cpo'. (closes #11285) + +Patch 9.0.0665 +Problem: Setting 'cmdheight' has no effect if last window was resized. +Solution: Do apply 'cmdheight' when told to. Use the frame height instead + of the cmdline_row. (closes #11286) + +Patch 9.0.0666 +Problem: Spacing-combining characters handled as composing, causing text to + take more space than expected. +Solution: Handle characters marked with "Mc" not as composing. + (closes #11282) + +Patch 9.0.0667 +Problem: ml_get error when 'splitkeep' is "screen". (Marius Gedminas) +Solution: Check the botline is not too large. (Luuk van Baal, + closes #11293, closes #11292) + +Patch 9.0.0668 +Problem: CI on Mac M1 only uses clang +Solution: Also run with gcc. (closes #11263) + +Patch 9.0.0669 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0670 +Problem: No space for command line when there is a tabline. +Solution: Correct computation of where the command line should be. + (closes #11295) + +Patch 9.0.0671 +Problem: Negative topline using CTRL-Y with 'smoothscroll' and 'diff'. + (Ernie Rael) +Solution: Only use 'smoothscroll' when 'wrap' is set. + +Patch 9.0.0672 +Problem: Cursor line only partly shows with 'smoothscroll' and 'scrolloff' + zero. +Solution: Do not use 'smoothscroll' when adjusting the bottom of the window. + (closes #11269) + +Patch 9.0.0673 +Problem: First line not scrolled properly with 'smoothscroll' and + 'scrolloff' zero and using "k". +Solution: Make sure the cursor position is visible. + +Patch 9.0.0674 +Problem: Build error with tiny version. +Solution: Use PLINES_NOFILL macro. + +Patch 9.0.0675 +Problem: Search test screendump is outdated. +Solution: Update the screendump for improved display. + +Patch 9.0.0676 +Problem: CI on Mac M1 with gcc actually uses clang. +Solution: Remove the gcc task. (Ozaki Kiichi, closes #11297) + +Patch 9.0.0677 +Problem: Breakindent test accepts wrong result. +Solution: Fix the number column and adjust the expected text. + +Patch 9.0.0678 +Problem: Using exclamation marks on :function. +Solution: Use :func and :endfunc as usual. + +Patch 9.0.0679 +Problem: Tests failing with 'smoothscroll', 'number' and "n" in 'cpo'. +Solution: Do not count number column in topline if columns are skipped. + +Patch 9.0.0680 +Problem: Tests failing with 'breakindent', 'number' and "n" in 'cpo'. +Solution: Do count the number column in topline if 'breakindent' is set. + +Patch 9.0.0681 +Problem: "<<<" shows for 'smoothscroll' even when 'showbreak is set. +Solution: When 'showbreak' is set do not display "<<<". + +Patch 9.0.0682 +Problem: Crash when popup with deleted timer is closed. (Igbanam + Ogbuluijah) +Solution: Check the timer still exists. (closes #11301) + +Patch 9.0.0683 +Problem: Cannot specify a time for :echowindow. +Solution: A count can be used to specify the display time. Add + popup_findecho(). + +Patch 9.0.0684 +Problem: Skipped :exe command fails compilation on MS-Windows. +Solution: Adjust return value when skipping. + +Patch 9.0.0685 +Problem: FORTIFY_SOURCE causes a crash in Vim9 script. +Solution: Use a pointer to the first char. (Yee Cheng Chin, closes #11302) + +Patch 9.0.0686 +Problem: The right ALT key does not work on some MS-Windows keyboards. +Solution: Adjust the modifiers based on GetKeyState(). (Anton Sharonov, + closes #11300) + +Patch 9.0.0687 +Problem: "export def" does not work in a nested block. +Solution: Do not handle "export" with a separate function but in the same + command stack. (closes #11304) + +Patch 9.0.0688 +Problem: Debugger does not display the whole command. +Solution: Set ea.cmd before checking for a breakpoint. + +Patch 9.0.0689 +Problem: Compiler warning for unused function. +Solution: Add #ifdef. (John Marriott) + +Patch 9.0.0690 +Problem: Buffer size for expanding tab not correctly computed. +Solution: Correctly use size of end character. + +Patch 9.0.0691 +Problem: lalloc(0) error in listchars test. +Solution: Skip generating text for tab if tab_len is zero. + +Patch 9.0.0692 +Problem: PoE filter files are not recognized. +Solution: Add a pattern to detect PoE filter files. (closes #11305) + +Patch 9.0.0693 +Problem: browse() first argument cannot be a bool. +Solution: Use tv_get_bool_chk() instead of tv_get_number_chk(). + (closes #11308) + +Patch 9.0.0694 +Problem: No native sound support on Mac OS. +Solution: Add sound support for Mac OS. (Yee Cheng Chin, closes #11274) + +Patch 9.0.0695 +Problem: Failing check for dictionary type for const any. +Solution: Check for any type properly. (closes #11310) + +Patch 9.0.0696 +Problem: It is unclear if the +rightleft and +arabic features are actively + being used. +Solution: Disable the features, await feedback. + +Patch 9.0.0697 +Problem: Cursor in wrong position with Visual substitute. +Solution: When restoring 'linebreak' mark the virtual column as invalid. + (closes #11309, closes #11311) + +Patch 9.0.0698 +Problem: VisVim is outdated, does not work with current Visual Studio. +Solution: Remove VisVim. (Martin Tournoij) + +Patch 9.0.0699 +Problem: Tiny build fails. +Solution: Add #ifdef. + +Patch 9.0.0700 +Problem: There is no real need for a "big" build. +Solution: Move common features to "normal" build, less often used features + to the "huge" build. (Martin Tournoij, closes #11283) + +Patch 9.0.0701 +Problem: With 'smoothscroll' the cursor position s not adjusted in a long + line. +Solution: Move the cursor further up or down in the line. + +Patch 9.0.0702 +Problem: Incomplete testing cursor position after change with 'linebreak' + set. +Solution: Add a test and move test cases together. (closes #11313) + +Patch 9.0.0703 +Problem: Failing check for argument type for const any. +Solution: Check for any type properly. (closes #11316) + +Patch 9.0.0704 +Problem: CI runs "tiny" and "small" builds, which are the same. +Solution: Remove the "small" build. (Naruhiko Nishino, closes #11315) + +Patch 9.0.0705 +Problem: Virtual text truncation does not take padding into account. +Solution: Subtract the padding from the available space. (closes #11318) + +Patch 9.0.0706 +Problem: :help in a narrow window always opens at the top. +Solution: Respect 'splitbelow'. (closes #11319) + +Patch 9.0.0707 +Problem: With 'smoothscroll' and 'scrolloff' non-zero the cursor position + is not properly adjusted in a long line. +Solution: Move the cursor further up or down in the line. + +Patch 9.0.0708 +Problem: :confirm does not work properly for a terminal buffer. +Solution: Handle :confirm for a terminal buffer differently. (Yee Cheng + Chin, closes #11312) + +Patch 9.0.0709 +Problem: Virtual text "after" not correct with 'nowrap'. +Solution: Do not display "after" text prop on the next line when 'wrap' is + off. + +Patch 9.0.0710 +Problem: Quitting/unloading/hiding a terminal buffer does not always work + properly. +Solution: Avoid that ":q!" leaves an empty buffer behind. ":bunload!" also + kills the job and unloads the buffer. ":hide" does not unload the + buffer. (Yee Cheng Chin, closes #11323) + +Patch 9.0.0711 +Problem: SubStation Alpha files are not recognized. +Solution: Add patterns for SubStation Alpha files. (closes #11332) + +Patch 9.0.0712 +Problem: Wrong column when calling setcursorcharpos() with zero lnum. +Solution: Set the line number before calling buf_charidx_to_byteidx(). + (closes #11329) + +Patch 9.0.0713 +Problem: of MenuPopup event is expanded like a file name. +Solution: Do not expand for MenuPopup. (closes #11328) + +Patch 9.0.0714 +Problem: With 'nowrap' two virtual text below not displayed correctly. +Solution: Set text_prop_follows before continuing. Correct for number + column. (closes #11333) + +Patch 9.0.0715 +Problem: Wrong argument for append() gives two error messages. +Solution: When getting an error for a number argument don't try using it as + a string. (closes #11335) + +Patch 9.0.0716 +Problem: With 'nowrap' virtual text "after" does not scroll left. +Solution: Skip part of the virtual text that is left of the window. + (closes #11320) Fix going beyond the last column of the window. + +Patch 9.0.0717 +Problem: Compiler warning for unused variable in tiny build. +Solution: Add #ifdefs. + +Patch 9.0.0718 +Problem: Extra empty line between two virtual text "below" when 'wrap' and + 'number' are set. +Solution: Reset "before" when there is no text in the screen line. + (closes #11334) + +Patch 9.0.0719 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0720 +Problem: MS-Windows GUI may have pixel dust from antialiasing. +Solution: When a character changes also redraw the next one. (issue #8532) + +Patch 9.0.0721 +Problem: Virtual text "above" with padding not displayed correctly. +Solution: Take padding into account when truncating. (closes #11340) + +Patch 9.0.0722 +Problem: Virtual text "after" does not show with 'list' set. +Solution: Do not break out of the loop when another text prop follows. + (closes #11337) + +Patch 9.0.0723 +Problem: Extra empty line below virtual text when 'list' is set. +Solution: Do not reset lcs_eol_one but set text_prop_follows. (closes #11339) + +Patch 9.0.0724 +Problem: Closure in compiled function gets same variable in block. +Solution: At the end of a block to not always reset the variable count. + (issue #11094) + +Patch 9.0.0725 +Problem: Virtual text "after" wraps to next line even when 'wrap' is off + and 'list' is set. +Solution: Do not use the minimum width when 'wrap' is off. (issue #11336) + +Patch 9.0.0726 +Problem: Looping over list of lists and changing the list contents works in + Vim9 script, not in a compiled function. +Solution: Mark the loop variable final instead of const. (closes #11347) + +Patch 9.0.0727 +Problem: Help in the repository differs from patched version too much. +Solution: Make a patch for a few help files. + +Patch 9.0.0728 +Problem: extend() test fails. +Solution: Item is final, not const. + +Patch 9.0.0729 +Problem: The rightleft and arabic features are disabled. +Solution: Re-enable the features, some users want to use the functionality. + +Patch 9.0.0730 +Problem: Startup test fails with right-left feature. +Solution: Do not delete test file too early. + +Patch 9.0.0731 +Problem: clang-tidy configuration files are not recognized. +Solution: Recognize clang-tidy files as yaml. (closes #11350) + +Patch 9.0.0732 +Problem: No check for white space before and after "=<<". (Doug Kearns) +Solution: Check for white space in Vim9 script. (closes #11351) + +Patch 9.0.0733 +Problem: Use of strftime() is not safe. +Solution: Check the return value of strftime(). Use a larger buffer and + correctly pass the available space. (Dominique Pellé, closes + #11348) + +Patch 9.0.0734 +Problem: Cursor position invalid when scrolling with 'smoothscroll' set. + (Ernie Rael) +Solution: Add w_valid_skipcol and clear flags when it changes. Adjust + w_skipcol after moving the cursor. + +Patch 9.0.0735 +Problem: Breakindent and scrolloff tests fail. +Solution: Temporarily skip the assertions. + +Patch 9.0.0736 +Problem: Quickfix listing does not handle very long messages. +Solution: Use a growarray instead of a fixed size buffer. (Yegappan + Lakshmanan, closes #11357) + +Patch 9.0.0737 +Problem: Lisp word only recognized when a space follows. +Solution: Also match a word at the end of a line. Rename the test. Use a + compiled function to avoid backslashes. + +Patch 9.0.0738 +Problem: Cannot suppress completion "scanning" messages. +Solution: Add the "C" flag in 'shortmess'. (Bjorn Linse, closes #11354) + +Patch 9.0.0739 +Problem: Mouse column not correctly used for popup_setpos. +Solution: Adjust off-by-one error and handle Visual line selection properly. + (Yee Cheng Chin, closes #11356) + +Patch 9.0.0740 +Problem: prop_add_list() gives multiple errors for invalid argument. +Solution: Only give one error message. + +Patch 9.0.0741 +Problem: Cannot specify an ID for each item with prop_add_list(). (Sergey + Vlasov) +Solution: Add an optional fifth number to the item. (closes #11360) + +Patch 9.0.0742 +Problem: Reading past end of the line when compiling a function with + errors. +Solution: Do not return an invalid pointer. Fix skipping redirection. + +Patch 9.0.0743 +Problem: Starting cscope on Unix does not quote the arguments correctly. + (Gary Johnson) +Solution: Move the final quote after the arguments. + +Patch 9.0.0744 +Problem: In script in autoload dir exported variable is not found. (Doug + Kearns) +Solution: Find the variable with the "script#" prefix. (closes #11361) + +Patch 9.0.0745 +Problem: Wrong cursor position when using "gj" and "gk" in a long line. +Solution: Adjust computations for the cursor position and skipcol. Re-enable + tests that pass now, disable failing breakindent test. + +Patch 9.0.0746 +Problem: Breakindent test cases are commented out. +Solution: Adjust expected result to slightly different behavior. Correct + computations for cursor position. + +Patch 9.0.0747 +Problem: Too many #ifdefs. +Solution: Graduate the +cmdline_info feature. (Martin Tournoij, + closes #11330) + +Patch 9.0.0748 +Problem: Kitty may send key without modifiers with CSI u code. +Solution: Handle CSI u code without modifiers. (Trygve Aaberge, + closes #11364) + +Patch 9.0.0749 +Problem: Alloc/free of buffer for each quickfix entry is inefficient. +Solution: Use a shared grow array. (Yegappan Lakshmanan, closes #11365) + +Patch 9.0.0750 +Problem: Crash when popup closed in callback. (Maxim Kim) +Solution: In syntax_end_parsing() check that syn_block is valid. + +Patch 9.0.0751 +Problem: 'scrolloff' does not work well with 'smoothscroll'. +Solution: Make positioning the cursor a bit better. Rename functions. + +Patch 9.0.0752 +Problem: Rprofile files are not recognized. +Solution: Recognize Rprofile files as "r". (closes #11369) + +Patch 9.0.0753 +Problem: Some Ex commands are not in the help index. +Solution: Add the missing commands. Add a script to check all Ex commands + are in the help index. (Yee Cheng Chin, closes #11371) + +Patch 9.0.0754 +Problem: 'indentexpr' overrules lisp indenting in one situation. +Solution: Add "else" to keep the lisp indent. (issue #11327) + +Patch 9.0.0755 +Problem: Huge build on macos always fails on CI. +Solution: Temporarily disable the perl interface. + +Patch 9.0.0756 +Problem: No autocmd event for changing text in a terminal window. +Solution: Add TextChangedT. (Shougo Matsushita, closes #11366) + +Patch 9.0.0757 +Problem: Line number not visible with 'smoothscroll', 'nu' and 'rnu'. +Solution: Put the ">>>" after the line number instead of on top. + +Patch 9.0.0758 +Problem: "precedes" from 'listchars' overwritten by <<< for 'smoothscroll'. +Solution: Keep the "precedes" character. + +Patch 9.0.0759 +Problem: Huge build on macos does not use Perl. +Solution: Re-enable the Perl interface using "dynamic". (closes #11375) + +Patch 9.0.0760 +Problem: Display test for 'listchars' "precedes" fails. +Solution: Correct the expected result. + +Patch 9.0.0761 +Problem: Cannot use 'indentexpr' for Lisp indenting. +Solution: Add the 'lispoptions' option. + +Patch 9.0.0762 +Problem: Build failure. +Solution: Add missing change. + +Patch 9.0.0763 +Problem: MS-Windows: warning for using int for size_t. +Solution: Declare variable as size_t. + +Patch 9.0.0764 +Problem: Indent and option tests fail. +Solution: Change OP_INDENT. Add entry to options test table. + +Patch 9.0.0765 +Problem: With a Visual block a put command column may go negative. +Solution: Check that the column does not become negative. + +Patch 9.0.0766 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0767 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0768 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0769 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0770 +Problem: Quickfix commands may keep memory allocated. +Solution: Free memory when it's a bit much. (Yegappan Lakshmanan, + closes #11379) + +Patch 9.0.0771 +Problem: Cannot always tell the difference between tex and rexx files. +Solution: Recognize tex by a leading backslash. (Martin Tournoij, + closes #11380) + +Patch 9.0.0772 +Problem: The libvterm code is outdated. +Solution: Include libvterm changes from revision 790 to 801. + +Patch 9.0.0773 +Problem: Huge build on MacOS uses dynamic Perl. +Solution: Use built-in Perl, uninstall the brew one. (closes #11382) + +Patch 9.0.0774 +Problem: The libvterm code is outdated. +Solution: Include libvterm changes from revision 802 to 817. Revert some + changes made for C89. + +Patch 9.0.0775 +Problem: MS-Windows: mouse scrolling not supported in the console. +Solution: Add event handling for mouse scroll events. (Christopher + Plewright, closes #11374) + +Patch 9.0.0776 +Problem: MSVC can't have field name "small". +Solution: Rename small to smallfont. + +Patch 9.0.0777 +Problem: Code is indented too much. +Solution: Use an early return. (Yegappan Lakshmanan, closes #11386) + +Patch 9.0.0778 +Problem: Indexing of unknown const type fails during compilation. +Solution: Check for "any" properly. (closes #11389) + +Patch 9.0.0779 +Problem: lsl and lm3 file extensions are not recognized. +Solution: Add *.lsl and *.lm3 patterns. (Doug Kearns, closes #11384) + +Patch 9.0.0780 +Problem: 'scroll' value computed in unexpected location. +Solution: Compute 'scroll' when the window height is changed. (Luuk van + Baal, closes #11387) + +Patch 9.0.0781 +Problem: Workaround to rename "small" to "smallfont" is clumsy. +Solution: Undefine "small" after including windows.h. (Ken Takata) + +Patch 9.0.0782 +Problem: OpenVPN files are not recognized. +Solution: Add patterns for OpenVPN files. (closes #11391) + +Patch 9.0.0783 +Problem: ":!" doesn't do anything but does update the previous command. +Solution: Do not have ":!" change the previous command. (Martin Tournoij, + closes #11372) + +Patch 9.0.0784 +Problem: Text prop "above" not displayed correctly with 'number' and "n" in + 'cpo'. +Solution: Draw the line number column until the line text is reached. + +Patch 9.0.0785 +Problem: Memory leak with empty shell command. +Solution: Free the allocated memory when bailing out. + +Patch 9.0.0786 +Problem: User command does not get number from :tab modifier. +Solution: Include the number. (closes #11393, closes #6901) + +Patch 9.0.0787 +Problem: MS-Windows: mouse scrolling in terminal misbehaves without dll. +Solution: Add #ifdef as a temporary solution. (Christopher Plewright, + closes #11392) + +Patch 9.0.0788 +Problem: ModeChanged autocmd not executed when Visual mode is ended with + CTRL-C. +Solution: Do not trigger the autocmd when got_int is set. (closes #11394) + +Patch 9.0.0789 +Problem: Dummy buffer ends up in a window. +Solution: Disallow navigating to a dummy buffer. + +Patch 9.0.0790 +Problem: Test for dummy buffer does not always produce the E86 error. +Solution: Do not check if the error is produced. + +Patch 9.0.0791 +Problem: At the hit-Enter prompt the End and Home keys may not work. +Solution: Use the special "@" code for End and Home, like it was done for + the cursor keys in patch 8.2.2246. (Trygve Aaberge, closes #11396) + +Patch 9.0.0792 +Problem: MS-Windows: compiler complains about unused function. +Solution: Add #ifdef. (John Marriott) + +Patch 9.0.0793 +Problem: MS-Windows: mouse scroll events only work with the dll. +Solution: Accept CSI codes for MS-Windows without the GUI. (Christopher + Plewright, closes #11401) + +Patch 9.0.0794 +Problem: There is no way to find out if an escape sequence with + modifyOtherKeys has been seen. +Solution: Add a notice with ":verbose map". + +Patch 9.0.0795 +Problem: readblob() always reads the whole file. +Solution: Add arguments to read part of the file. (Ken Takata, + closes #11402) + +Patch 9.0.0796 +Problem: Mapping test fails in some situations. +Solution: Find the line with the verbose information. + +Patch 9.0.0797 +Problem: Order of assert function arguments is reverted. +Solution: Swap the arguments. (closes #11399) + +Patch 9.0.0798 +Problem: Clang format configuration files are not recognized. +Solution: Use yaml for Clang format configuration files. (Marwin Glaser, + closes #11398) + +Patch 9.0.0799 +Problem: In compiled function ->() on next line not recognized. +Solution: Also check for "(". (closes #11405) + +Patch 9.0.0800 +Problem: Compiler complains about repeated typedef. +Solution: Remove one typedef. + +Patch 9.0.0801 +Problem: The modifyOtherKeys flag is set when it should not. +Solution: Do not handle special key codes with a modifier value above 16 as + a modifyOtherKeys value. (issue #11403) + +Patch 9.0.0802 +Problem: MS-Windows: cannot map console mouse scroll events. +Solution: Change CSI to K_SPECIAL when checking for a mapping. (Christopher + Plewright, closes #11410) + +Patch 9.0.0803 +Problem: readblob() cannot read from character device. +Solution: Use S_ISCHR() to not check the size. (Ken Takata, closes #11407) + +Patch 9.0.0804 +Problem: Crash when trying to divide the largest negative number by -1. +Solution: Handle this case specifically. + +Patch 9.0.0805 +Problem: Filetype autocmd may cause freed memory access. +Solution: Set the quickfix-busy flag while filling the buffer. + +Patch 9.0.0806 +Problem: 'langmap' works differently when there are modifiers. +Solution: Only apply 'langmap' to a character where modifiers have no + effect. (closes #11395, closes #11404) + +Patch 9.0.0807 +Problem: With 'smoothscroll' typing "0" may not go to the first column. +Solution: Recompute w_cline_height when needed. Do not scroll up when it + would move the cursor. + +Patch 9.0.0808 +Problem: jsonnet filetype detection has a typo. +Solution: Change "libjsonnet" to "libsonnet". (Maxime Brunet, closes #11412) + +Patch 9.0.0809 +Problem: Test for job writing to buffer fails. +Solution: Correct w_topline when deleting a buffer line. + +Patch 9.0.0810 +Problem: readblob() returns empty when trying to read too much. +Solution: Return what is available. + +Patch 9.0.0811 +Problem: Error if :echowin is preceded by a command modifier. +Solution: Do not give an error for range when there is a modifier. + (closes #11414) + +Patch 9.0.0812 +Problem: GUI mouse scrollwheel mappings don't work. +Solution: Add check for "gui.in_use". (Christopher Plewright, closes #11418) + +Patch 9.0.0813 +Problem: Kitty terminal is not recognized. +Solution: Recognize Kitty by the termresponse and then do not set + seenModifyOtherKeys, since Kitty doesn't support that. + (issue #11413) + +Patch 9.0.0814 +Problem: Aws config files are not recognized. +Solution: Use "confini" for aws config files. (Justin M. Keyes, + closes #11416) + +Patch 9.0.0815 +Problem: ":!" does not switch to the alternate screen. +Solution: For ":!" don't clear the previous command. (closes #11420, + closes #11409) + +Patch 9.0.0816 +Problem: CTRL-Z at end of file is always dropped. +Solution: Add the 'endoffile' option, like the 'endofline' option. + (closes #11408, closes #11397) + +Patch 9.0.0817 +Problem: Build error. +Solution: correct variable name. + +Patch 9.0.0818 +Problem: "!ls" does not work. +Solution: Do not free memory that is in use. + +Patch 9.0.0819 +Problem: Still a build error, tests are failing. +Solution: Correct recent changes. Add missing init for 'eof'. + +Patch 9.0.0820 +Problem: Memory leak with empty shell command. +Solution: Free the empty string. + +Patch 9.0.0821 +Problem: Memory leak with empty shell command. +Solution: Free the empty string. + +Patch 9.0.0822 +Problem: Crash when dragging the statusline with a mapping. +Solution: Check for valid window pointer. (issue #11427) + +Patch 9.0.0823 +Problem: Mouse drag test fails. +Solution: Only reset the mouse click flag when actually switching to another + tab page. Disable test that keeps failing. + +Patch 9.0.0824 +Problem: Crash when using win_move_separator() in other tab page. +Solution: Check for valid window in current tab page. + (closes #11479, closes #11427) + +Patch 9.0.0825 +Problem: Cannot drag an entry in the tabpage line. +Solution: Clear dragwin instead of got_click. (closes #11483, + closes #11482) + +Patch 9.0.0826 +Problem: If 'endofline' is set the CTRL-Z may be written in the wrong + place. +Solution: Write CTRL-Z at the end of the file. Update the help to explain + the possibilities better. (Ken Takata, closes #11486) + +Patch 9.0.0827 +Problem: The key in tmux doesn't work when 'term' is set to "xterm". + (Dominique Pellé) +Solution: Only use '@' in a termcap key entry for "1" when ";" follows. + (closes #11429) + +Patch 9.0.0828 +Problem: Various typos. +Solution: Correct typos. (closes #11432) + +Patch 9.0.0829 +Problem: Wrong counts in macro comment. +Solution: Update the value counts. (closes #11480) + +Patch 9.0.0830 +Problem: Compiling with Perl on Mac 12 fails. +Solution: Suppress infinite warnings. (closes #11499) + +Patch 9.0.0831 +Problem: Compiler warning for redefining HAVE_DUP. +Solution: Undefine HAVE_DUP if needed. (Ozaki Kiichi, closes #11484) + +Patch 9.0.0832 +Problem: Deprecation warning causes build failure. +Solution: Suppress deprecation warning. (closes #11503) + +Patch 9.0.0833 +Problem: Mac: no +sound feature in huge build. +Solution: Enable +sound in Mac huge build. (closes #11497) + +Patch 9.0.0834 +Problem: Warning for missing return type. +Solution: Add "int". (San James, closes #11496) + +Patch 9.0.0835 +Problem: The window title is not redrawn when 'endoffile' changes. +Solution: redraw the window title when 'endoffile' is changed. (Ken Takata, + closes #11488) + +Patch 9.0.0836 +Problem: Wrong error when using extend() with funcref. +Solution: Better check the variable type. (closes #11468, closes #11455) + +Patch 9.0.0837 +Problem: append() reports failure when not appending anything. +Solution: Only report failure when appending something. (closes #11498) + +Patch 9.0.0838 +Problem: Compiler warnings for unused variables. +Solution: Adjust #ifdef and remove unused variables. (John Marriott) + +Patch 9.0.0839 +Problem: Test may fail depending on sequence of events. +Solution: Accept error codes in either order. (Yee Cheng Chin, + closes #11510) + +Patch 9.0.0840 +Problem: Cannot change a slice of a const list. (Takumi KAGIYAMA) +Solution: Remove the const flag from the slice type. (closes #11490) + +Patch 9.0.0841 +Problem: deletebufline() does not always return 1 on failure. +Solution: Refactor the code to make it work more predictable. (closes #11511) + +Patch 9.0.0842 +Problem: Unicode range for Apple SF symbols is outdated. +Solution: Update to SF Symbols 4. (Yee Cheng Chin, closes #11474) + +Patch 9.0.0843 +Problem: VHS tape files are not recognized. +Solution: Add a filetype pattern. (Carlos Alexandro Becker, closes #11452) + +Patch 9.0.0844 +Problem: Handling 'statusline' errors is spread out. +Solution: Pass the option name to the lower levels so the option can be + reset there when an error is encountered. (Luuk van Baal, + closes #11467) + +Patch 9.0.0845 +Problem: Shell command with just space gives strange error. +Solution: Skip white space at start of the argument. (Christian Brabandt, + Shane-XB-Qian, closes #11515, closes #11495) + +Patch 9.0.0846 +Problem: Using assert_fails() may cause hit-enter prompt. +Solution: Set no_wait_return. (closes #11522) + +Patch 9.0.0847 +Problem: CI: not totally clear what MS-Windows version is used. +Solution: Show the Windows version. (Ken Takata, closes #11524) + +Patch 9.0.0848 +Problem: Help item for --log argument is not aligned nicely. +Solution: Add a Tab. (Ken Takata, closes #11521) + +Patch 9.0.0849 +Problem: Terminal mouse test is a bit flaky. +Solution: Add WaitFor() calls. (James McCoy closes #11519) Tune wait times + to reduce flakiness. + +Patch 9.0.0850 +Problem: MS-Windows Terminal has unstable color control. +Solution: Do not try to read the old command prompt colortable, use modern + VT sequences. (Christopher Plewright, closes #11450, + closes #11373) + +Patch 9.0.0851 +Problem: Terminal mouse test is still flaky. +Solution: Also use WaitForAssert(). + +Patch 9.0.0852 +Problem: Crypt test is skipped if xxd is not found. +Solution: Find xxd where it was supposed to be build. + +Patch 9.0.0853 +Problem: Terminal mouse test is still flaky on MacOS M1. +Solution: Also wait for the file to have some contents. + +Patch 9.0.0854 +Problem: No proper test for what 9.0.0846 fixes. +Solution: Run test in a terminal so that the hit-enter prompt can show up. + (closes #11523) + +Patch 9.0.0855 +Problem: Comment not located above the code it refers to. +Solution: Move the comment. (closes #11527) + +Patch 9.0.0856 +Problem: MS-Windows: executable not found when running individual test. +Solution: Also look for vimd.exe. (Christopher Plewright, closes #11525) + +Patch 9.0.0857 +Problem: Selecting MSVC 2017 does not set $PLATFORM. +Solution: Use $VSCMD_ARG_TGT_ARCH. (Ken Takata, closes #11485) + +Patch 9.0.0858 +Problem: "!!sort" in a closed fold sorts too many lines. +Solution: Round to end of fold after adding the line count. (closes #11487) + +Patch 9.0.0859 +Problem: Compiler warning for unused variable. +Solution: Add #ifdef. + +Patch 9.0.0860 +Problem: MS-Windows: windres fails with clang 15.0.4. +Solution: Use llvm-windres. (John Marriott) + +Patch 9.0.0861 +Problem: Solution for "!!sort" in closed fold is not optimal. +Solution: Use a different range instead of the subtle difference in handling + a range with an offset. (issue #11487) + +Patch 9.0.0862 +Problem: Default value of 'endoffile' is wrong. +Solution: The default must be 'noendoffile'. + +Patch 9.0.0863 +Problem: col() and charcol() only work for the current window. +Solution: Add an optional winid argument. (Yegappan Lakshmanan, + closes #11466, closes #11461) + +Patch 9.0.0864 +Problem: Crash when using "!!" without a previous shell command. +Solution: Check "prevcmd" is not NULL. (closes #11487) + +Patch 9.0.0865 +Problem: Duplicate arguments are not always detected. +Solution: Expand to full path before comparing arguments. (Nir Lichtman, + closes #11505, closes #9402) + +Patch 9.0.0866 +Problem: No test for what patch 8.2.2207 fixes. +Solution: Add a test case. (closes #11531) + +Patch 9.0.0867 +Problem: Wildmenu redrawing code is spread out. +Solution: Refactor to move code together. (closes #11528) + +Patch 9.0.0868 +Problem: MS-Windows: after Vim exits console resizing does not work + properly. +Solution: Restore screen behavior checks for various WT and VTP + combinations. (Christopher Plewright, closes #11526, + closes #11507) + +Patch 9.0.0869 +Problem: Bogus error when string used after :elseif. +Solution: Do not consider a double quote the start of a comment. + (closes #11534) + +Patch 9.0.0870 +Problem: Get E967 when using text property in quickfix window. (Sergey + Vlasov) +Solution: Do not add an extra NUL and compute the text length correctly. + (closes #11513) + +Patch 9.0.0871 +Problem: Using freed memory when clearing augroup at more prompt. +Solution: Delay clearing augroup until it's safe. (closes #11441) + +Patch 9.0.0872 +Problem: Code is indented more than needed. +Solution: Return early. (Yegappan Lakshmanan, closes #11538) + +Patch 9.0.0873 +Problem: Using freed memory when executing mapclear at the more prompt. +Solution: Do not clear mappings while listing them. (closes #11438) + +Patch 9.0.0874 +Problem: Using freed memory when executing unmenu at the more prompt. +Solution: Do not clear menus while listing them. (closes #11439) + +Patch 9.0.0875 +Problem: Using freed memory when executing delfunc at the more prompt. +Solution: Check function list not changed in another place. (closes #11437) + +Patch 9.0.0876 +Problem: Code is indented more than needed. +Solution: Split ExpandEscape() in two. (Yegappan Lakshmanan, closes #11539) + +Patch 9.0.0877 +Problem: Using freed memory with :comclear while listing commands. +Solution: Bail out when the command list has changed. (closes #11440) + +Patch 9.0.0878 +Problem: Coverity warns for dead code. +Solution: Remove the dead code. + +Patch 9.0.0879 +Problem: Unnecessary nesting in makefile. +Solution: Join "else" and "ifeq". (Ken Takata, closes #11547) + +Patch 9.0.0880 +Problem: Preprocessor indenting is off. +Solution: Adjust preprocessor indentation. (Ken Takata, closes #11546) + +Patch 9.0.0881 +Problem: Cannot get the currently showing mouse shape. +Solution: Add getmouseshape(). + +Patch 9.0.0882 +Problem: Using freed memory after SpellFileMissing autocmd uses bwipe. +Solution: Bail out if the window no longer exists. + +Patch 9.0.0883 +Problem: A silent mapping may cause dots on the command line. +Solution: Don't show dots for completion if they are not going to be removed + again. (closes #11501) + +Patch 9.0.0884 +Problem: Mouse shape remains in op-pending mode after failed change. +Solution: Reset finish_op and restore it. (closes #11545) + +Patch 9.0.0885 +Problem: Informational message has an error message number. +Solution: Use a message without an error number. (closes #11530) + +Patch 9.0.0886 +Problem: Horizontal mouse scroll only works in the GUI. +Solution: Make horizontal mouse scroll also work in a terminal. + (Christopher Plewright, closes #11448) + +Patch 9.0.0887 +Problem: Cannot easily try out what codes various keys produce. +Solution: Add a script to gather key code information, with an initial list + of codes to compare with. + +Patch 9.0.0888 +Problem: MS-Windows GUI: CTRL-] does not work on Swiss keyboard. +Solution: Check the key code and don't consider it as a dead key. (Aedin + Louis Xavier, closes #11556) + +Patch 9.0.0889 +Problem: Keycode check script has a few flaws. +Solution: Sort on terminal name. Ignore XTGETTCAP responses. Check for + version and status response. Update entries. + +Patch 9.0.0890 +Problem: No test for what patch 9.0.0827 fixes. +Solution: Add a test (still doesn't fail when fix is reverted). + +Patch 9.0.0891 +Problem: Virtual text below after match has wrong highlight. +Solution: Restore search_attr only after the virtual text. + (closes #11446) + +Patch 9.0.0892 +Problem: May redraw when not needed, causing slow scrolling. +Solution: Do not redraw when w_skipcol doesn't change. When w_skipcol + changes only redraw from the top. (issue #11559) + +Patch 9.0.0893 +Problem: 'smoothscroll' cursor calculations wrong when 'number' is set. +Solution: Correct the code that computes the width. (closes #11492) + +Patch 9.0.0894 +Problem: Virtual text property highlight ignores window background. +Solution: Combine text prop attribute with win_attr into extra_attr. + (closes #11462) + +Patch 9.0.0895 +Problem: File renamed twice in test; missing feature check. +Solution: Remove a rename() call. Add check for cryptv feature. + (closes #11564) + +Patch 9.0.0896 +Problem: Test for home key fails when 'term' is "tmux". +Solution: Only save termcap entries that exist. Adjust code for xHome to + what xterm uses. (closes #11566) + +Patch 9.0.0897 +Problem: Clinical Quality Language files are not recognized. +Solution: Add the "*.cql" pattern. (Matthew Gramigna, closes #11452) + +Patch 9.0.0898 +Problem: With 'smoothscroll' cursor is one screen line too far down. (Ernie + Rael) +Solution: Add a test that currently has the wrong result so that a fix can + be made. (issue #11436) + +Patch 9.0.0899 +Problem: The builtin terminals are in one long list. +Solution: Refactor into multiple lists and an index of the lists. + +Patch 9.0.0900 +Problem: Cursor moves too far with 'smoothscroll'. +Solution: Only move as far as really needed. (Yee Cheng Chin, closes #11504) + +Patch 9.0.0901 +Problem: Setting w_leftcol and handling side effects is confusing. +Solution: Use a function to set w_leftcol() and handle side effects. + +Patch 9.0.0902 +Problem: Some mouse scroll code is not in a good place. +Solution: Refactor the code. (Christopher Plewright, closes #11561) + +Patch 9.0.0903 +Problem: Key code checker doesn't check modifyOtherKeys resource. +Solution: Request the modifyOtherKeys resource value. Drop resource DCS + responses. + +Patch 9.0.0904 +Problem: Various comment and indent flaws. +Solution: Improve comments and indenting. + +Patch 9.0.0905 +Problem: Virtual text after the line wraps when 'wrap' is off. +Solution: Only set text_prop_follows when wrapping. (closes #11463) + +Patch 9.0.0906 +Problem: Mouse scroll code is not optimal. +Solution: Properly organise Normal mode, Insert mode and common code. + (Christopher Plewright, closes #11572) + +Patch 9.0.0907 +Problem: Restoring window after WinScrolled may fail. +Solution: Lock the window layout when triggering WinScrolled. + +Patch 9.0.0908 +Problem: With 'smoothscroll' cursor may end up in wrong position. +Solution: Correct the computation of screen lines. (Yee Cheng Chin, + closes #11502) + +Patch 9.0.0909 +Problem: Error message for layout change does not match action. +Solution: Pass the command to where the error is given. (closes #11573) + +Patch 9.0.0910 +Problem: Setting lines in another buffer may not work well. +Solution: Make sure the buffer being changed has a window. (issue #11558) + +Patch 9.0.0911 +Problem: With 'smoothscroll' set mouse click position may be wrong. +Solution: Adjust computations for w_skipcol. (Yee Cheng Chin, closes #11514) + +Patch 9.0.0912 +Problem: libvterm with modifyOtherKeys level 2 does not match xterm. +Solution: Adjust key code escape sequences to be the same as what xterm + sends in modifyOtherKeys level 2 mode. Check the value of + no_reduce_keys before using it. + +Patch 9.0.0913 +Problem: Only a change in the current window triggers the WinScrolled + event. +Solution: Trigger WinScrolled if any window scrolled or changed size. + (issue #11576) + +Patch 9.0.0914 +Problem: deletebufline() may move marks in the wrong window. +Solution: Find a window for the buffer being changed. (closes #11583) + +Patch 9.0.0915 +Problem: WinScrolled may trigger immediately when defined. +Solution: Initialize the fields in all windows. (closes #11582) + +Patch 9.0.0916 +Problem: getbufline() is inefficient for getting a single line. +Solution: Add getbufoneline(). + +Patch 9.0.0917 +Problem: The WinScrolled autocommand event is not enough. +Solution: Add WinResized and provide information about what changed. + (closes #11576) + +Patch 9.0.0918 +Problem: MS-Windows: modifier keys do not work with mouse scroll events. +Solution: Use K_SPECIAL instead of CSI for the modifier keys. (Christopher + Plewright, closes #11587) + +Patch 9.0.0919 +Problem: Build failure with tiny features. +Solution: Adjust #ifdef's. + +Patch 9.0.0920 +Problem: Cannot find an import prefixed with "s:". (Doug Kearns) +Solution: Skip over the "s:". (closes #11585) + +Patch 9.0.0921 +Problem: Missing defined(PROTO) in #ifdef. +Solution: Adjust #ifdef so that proto works with different features. + Clean up some preprocessor indenting. + +Patch 9.0.0922 +Problem: Mermaid files are not recognized. +Solution: Add patterns for Mermaid. (Crag MacEachern) + +Patch 9.0.0923 +Problem: Second SIGWINCH signal may be ignored. +Solution: When set_shellsize() is busy when called then run the inner code + again when it's done. (issue #424) + +Patch 9.0.0924 +Problem: The first termcap entry of a builtin termcap is not used. +Solution: Remove increment that was previously skipping the KS_NAME entry. + +Patch 9.0.0925 +Problem: Two conditions are always false. +Solution: Remove the conditions. Update return value types to make clear + what could be returned. (closes #11593) + +Patch 9.0.0926 +Problem: Coverity warns for not using return value of dict_add(). +Solution: When dict_add() fails then don't call hash_remove(). + +Patch 9.0.0927 +Problem: Coverity warns for using a NULL pointer. +Solution: Check for memory allocation failure. + +Patch 9.0.0928 +Problem: Using Ruby LDFLAGS may cause build problems. +Solution: Do not add Ruby LDFLAGS to Vim's LDFLAGS. (Zdenek Dohnal, + closes #11592) + +Patch 9.0.0929 +Problem: Build failure with tiny version. (Tony Mechelynck) +Solution: Add #ifdef. + +Patch 9.0.0930 +Problem: Cannot debug the Kitty keyboard protocol with TermDebug. +Solution: Add Kitty keyboard protocol support to the libvterm fork. + Recognize the escape sequences that the protocol generates. Add + the 'keyprotocol' option to allow the user to specify for which + terminal what protocol is to be used, instead of hard-coding this. + Add recognizing the kitty keyboard protocol status. + +Patch 9.0.0931 +Problem: MS-Windows: mouse column limited to 223. +Solution: Use two bytes for each mouse coordinate. Add the mouse position + to scroll events. (Christopher Plewright, closes #11597) + +Patch 9.0.0932 +Problem: Oblivion files are not recognized. +Solution: Recognize Oblivion files and alike as "obse". (closes #11540) + +Patch 9.0.0933 +Problem: Kitty shows "already at oldest change" on startup. +Solution: When receiving the keyboard protocol state return the ignore key. + (closes #11601) + +Patch 9.0.0934 +Problem: Various code formatting issues. +Solution: Improve code formatting. + +Patch 9.0.0935 +Problem: When using dash it may not be recognize as filetype "sh". +Solution: Add checks for "dash". (Eisuke Kawashima, closes #11600) + +Patch 9.0.0936 +Problem: Wrong type for "isunnamed" returned by getreginfo(). +Solution: Use VAR_BOOL instead of VAR_SPECIAL. (closes #11598) + +Patch 9.0.0937 +Problem: Forked repositories send out useless email. +Solution: When Coverity fails to run just ignore it. (Shane-XB-Qian, + closes #11604) + +Patch 9.0.0938 +Problem: MS-Windows: debug executable not found when running test. +Solution: Look for vimd.exe. (Christopher Plewright, closes #11602) + +Patch 9.0.0939 +Problem: Still using simplified mappings when using the kitty keyboard + protocol. +Solution: Use the kitty_protocol_state value to decide whether to use + simplified mappings. Improve how seenModifyOtherKeys is set and + reset. + +Patch 9.0.0940 +Problem: Crash when typing a letter in a terminal window. (Shane-XB-Qian) +Solution: Use the "vterm" variable instead of getting the terminal pointer + from the current buffer. (closes #11608) + +Patch 9.0.0941 +Problem: CI failures in sound dummy. +Solution: Temporarily disable building sound dummy. (closes #11610) + +Patch 9.0.0942 +Problem: Workflow Description Language files are not recognized. +Solution: Add a pattern for the "wdl" filetype. (Matt Dunford, + closes #11611) + +Patch 9.0.0943 +Problem: Pretending to go out of Insert mode when Esc is received has side + effects. +Solution: When the kitty keyboard protocol is enabled expect Esc to always + be the start of an escape sequence. + +Patch 9.0.0944 +Problem: 'cursorline' causes virtual text highlight to continue. +Solution: Save and restore line_attr. (closes #11588) + +Patch 9.0.0945 +Problem: Failures in the cursorline test. +Solution: Reset extra_attr only after a text property. + +Patch 9.0.0946 +Problem: CI: Error in Coverity flow is not reported. +Solution: Use another way to avoid errors in a forked repository. (Ken + Takata, closes #11609) + +Patch 9.0.0947 +Problem: Invalid memory access in substitute with function that goes to + another file. +Solution: Check for text locked in CTRL-W gf. + +Patch 9.0.0948 +Problem: 'ttyfast' is set for arbitrary terminals. +Solution: Always set 'ttyfast'. (closes #11549) + +Patch 9.0.0949 +Problem: Crash when unletting a variable while listing variables. +Solution: Disallow changing a hashtable while going over the entries. + (closes #11435) + +Patch 9.0.0950 +Problem: The pattern "\_s\zs" matches at EOL. +Solution: Make the pattern "\_s\zs" match at the start of the next line. + (closes #11617) + +Patch 9.0.0951 +Problem: Trying every character position for a match is inefficient. +Solution: Use the start position of the match ignoring "\zs". + +Patch 9.0.0952 +Problem: Eclipse preference files are not recognized. +Solution: Add a pattern to use "jproperties" for Eclipse preference files. + (closes #11618) + +Patch 9.0.0953 +Problem: Part of making search more efficient is missing. +Solution: Add the change in searchit(). + +Patch 9.0.0954 +Problem: Cannot detect whether modifyOtherKeys is enabled. +Solution: Use XTQMODKEYS introduced by xterm version 377 to request the + modifyOtherKeys level. Update the keycode check results. + +Patch 9.0.0955 +Problem: Libvterm does not support the XTQMODKEYS request. +Solution: Implement the XTQMODKEYS request and response. Update the keycode + check results. + +Patch 9.0.0956 +Problem: Terminal tests fail when using key with modifier. +Solution: Use the modifyOtherKeys encoding when using RunVimInTerminal(). + +Patch 9.0.0957 +Problem: Tests fail without the terminal feature. +Solution: Move functions to another utility script. + +Patch 9.0.0958 +Problem: Messages test is flaky. +Solution: Add a short delay. + +Patch 9.0.0959 +Problem: Error when using the "File Settings / Text Width" menu. +Solution: Use str2nr(). (closes #11624) + +Patch 9.0.0960 +Problem: Error when using the "Tools / Spelling / Find More Languages" + menu. +Solution: Remove "". Reset "g:menutrans_set_lang_to" when 'encoding' + changes. (closes #11625) + +Patch 9.0.0961 +Problem: Using deletebufline() may jump to another window. +Solution: Do not use a window where the buffer was only in the past. + (closes #11594) + +Patch 9.0.0962 +Problem: Virtual text below cannot be placed below empty lines. +Solution: Add one character. (James Alvarado, closes #11606, closes #11520) + +Patch 9.0.0963 +Problem: Function name does not match autocmd event name. +Solution: Rename "optionsset" to "optionset". (closes #11630) + +Patch 9.0.0964 +Problem: Status line of other window not redrawn when dragging it when + 'splitkeep' is set to "screen". +Solution: Set w_redr_status earlier. (Luuk van Baal, closes #11635, + closes #11632) + +Patch 9.0.0965 +Problem: Using one window for executing autocommands is insufficient. +Solution: Use up to five windows for executing autocommands. + +Patch 9.0.0966 +Problem: Some compilers don't allow a declaration after a label. +Solution: Move the declaration to the start of the block. (John Marriott) + +Patch 9.0.0967 +Problem: Leaking memory from autocmd windows. +Solution: Free window when auc_win is not NULL. + +Patch 9.0.0968 +Problem: GUI mouse event test is a bit flaky. +Solution: Mark the test case as flaky. Move test function failure checks to + a separate test function. + +Patch 9.0.0969 +Problem: Matchparen highlight is not updated when switching buffers. +Solution: Listen to the BufLeave and the BufWinEnter autocmd events. + (closes #11626) + +Patch 9.0.0970 +Problem: Coverity warns for uninitialized variable. +Solution: Initialize "ren_ret". + +Patch 9.0.0971 +Problem: Escape sequences not recognized without the termresponse feature. +Solution: Recognize escape sequences to avoid display mess up. + +Patch 9.0.0972 +Problem: Build failure on some systems. +Solution: Adjust #ifdefs related to the termresponse feature. + +Patch 9.0.0973 +Problem: Kitty keyboard protocol key not decoded when it has an unsupported + modifier, such as NumLock. +Solution: Accept a key with any modifier. (closes #11638) + +Patch 9.0.0974 +Problem: Even when Esc is encoded a timeout is used. +Solution: Use K_ESC when an encoded Esc is found. + +Patch 9.0.0975 +Problem: Virtual text below an empty line is misplaced when 'number' is + set. +Solution: Adjust the computations. (closes #11629) + +Patch 9.0.0976 +Problem: Enabling the kitty keyboard protocol uses push/pop. +Solution: Use the start/stop codes to avoid unpredictable behavior. + +Patch 9.0.0977 +Problem: It is not easy to see what client-server commands are doing. +Solution: Add channel log messages if ch_log() is available. Move the + channel logging and make it available with the +eval feature. + +Patch 9.0.0978 +Problem: Build errors without the +channel feature. (John Marriott) +Solution: Adjust #ifdefs. + +Patch 9.0.0979 +Problem: ch_log() text can be hard to find in the log file. +Solution: Prepend "ch_log()" to the text. + +Patch 9.0.0980 +Problem: The keyboard state response may end up in a shell command. +Solution: Only request the keyboard protocol state when the typeahead is + empty, no more commands are following and not exiting. Add the + t_RK termcap entry for this. + +Patch 9.0.0981 +Problem: Build error in tiny version. +Solution: Add #ifdef. + +Patch 9.0.0982 +Problem: 'cursorline' not drawn before virtual text below. +Solution: Add the 'cursorline' attribute to the empty space. (closes #11647) + +Patch 9.0.0983 +Problem: Stray characters displayed when starting the GUI. +Solution: Add t_RK to the list of terminal options. + +Patch 9.0.0984 +Problem: GUI: remote_foreground() does not always work. (Ron Aaron) +Solution: For GTK use gtk_window_set_keep_above(). (issue #11641) + +Patch 9.0.0985 +Problem: When using kitty keyboard protocol function keys may not work. + (Kovid Goyal) +Solution: Recognize CSI ending in [ABCDEFHPQRS] also when the termcap + entries are not specified. (closes #11648) + +Patch 9.0.0986 +Problem: Build failure with tiny version. +Solution: Add #ifdef. + +Patch 9.0.0987 +Problem: File missing from list of distributed files. +Solution: Add logfile.pro to list of distributed files. + +Patch 9.0.0988 +Problem: Using feedkeys() does not show up in a channel log. +Solution: Add ch_log() calls and clean up the code. + +Patch 9.0.0989 +Problem: Popupwin test is more flaky on MacOS. +Solution: Use a longer wait time. + +Patch 9.0.0990 +Problem: Callback name argument is changed by setqflist(). +Solution: Use the expanded function name for the callback, do not store it + in the argument. (closes #11653) + +Patch 9.0.0991 +Problem: Crash when reading help index with various options set. (Marius + Gedminas) +Solution: Do not set wlv.c_extra to NUL when wlv.p_extra is NULL. + (closes #11651) + +Patch 9.0.0992 +Problem: Vim9 script: get E1096 when comment follows return. +Solution: Adjust condition for return without expression. (closes #11654) + +Patch 9.0.0993 +Problem: Display errors when adding or removing text property type. +Solution: Perform a full redraw. Only use text properties for which the + type is defined. (closes #11655) + +Patch 9.0.0994 +Problem: Tests for empty prop type name fail. +Solution: Correct the error number. + +Patch 9.0.0995 +Problem: Padding before virtual text below is highlighted when 'number' and + 'nowrap' are set. +Solution: Save and restore n_attr_skip. (closes #11643) + +Patch 9.0.0996 +Problem: If 'keyprotocol' is empty "xterm" still uses modifyOtherKeys. +Solution: Remove t_TI, t_RK and t_TE from the "xterm" builtin termcap and + let the default value of 'keyprotocol' add those. + +Patch 9.0.0997 +Problem: Coverity warns for dead code. +Solution: Don't use ASCII_ISUPPER() for a negative value. + +Patch 9.0.0998 +Problem: "gk" may reset skipcol when not needed. +Solution: Only reset skipcol if the cursor column is less. + +Patch 9.0.0999 +Problem: Memory may leak. +Solution: Free the sound callback function name if it was allocated. + +Patch 9.0.1000 +Problem: With 'smoothscroll' skipcol may be reset unnecessarily. +Solution: Check the line does actually fit in the window. + +Patch 9.0.1001 +Problem: Classes are not documented or implemented yet. +Solution: Make the first steps at documenting Vim9 objects, classes and + interfaces. Make initial choices for the syntax. Add a skeleton + implementation. Add "public" and "this" in the command table. + +Patch 9.0.1002 +Problem: Command list test fails. +Solution: Add commands added to the list. + +Patch 9.0.1003 +Problem: Tiny build fails. +Solution: Remove #ifdef from error message. + +Patch 9.0.1004 +Problem: Suspend test sometimes fails on MacOS. +Solution: Wait a short while for terminal responses. + +Patch 9.0.1005 +Problem: A failed test may leave a swap file behind. +Solution: Delete the swap file to avoid another test to fail. Use another + file name. + +Patch 9.0.1006 +Problem: Suspend test still sometimes fails on MacOS. +Solution: Wait a little while for terminal responses. + +Patch 9.0.1007 +Problem: There is no way to get a list of swap file names. +Solution: Add the swapfilelist() function. Use it in the test script to + clean up. Remove deleting individual swap files. + +Patch 9.0.1008 +Problem: Test for swapfilelist() fails on MS-Windows. +Solution: Only check the tail of the path. Mark a test as flaky. + +Patch 9.0.1009 +Problem: Test for catch after interrupt is flaky on MS-Windows. +Solution: Mark the test as flaky. + +Patch 9.0.1010 +Problem: Stray warnings for existing swap files. +Solution: Wipe out the buffer until it has no name and no swap file. + +Patch 9.0.1011 +Problem: ml_get error when using screenpos(). +Solution: Give an error for the line number. (closes #11661) + +Patch 9.0.1012 +Problem: Tests may get stuck in buffer with swap file. +Solution: Bail out when bwipe! doesn't get another buffer. + +Patch 9.0.1013 +Problem: Suspend test often fails on Mac OS. +Solution: Make t_RP empty. + +Patch 9.0.1014 +Problem: Zir files are not recognized. +Solution: Add a pattern for Zir files. (closes #11664) + +Patch 9.0.1015 +Problem: Without /dev/urandom srand() seed is too predictable. +Solution: Use micro seconds and XOR with process ID. (Yasuhiro Matsumoto, + closes #11656) + +Patch 9.0.1016 +Problem: screenpos() does not count filler lines for diff mode. +Solution: Add filler lines. (closes 11658) + +Patch 9.0.1017 +Problem: Test for srand() fails on MS-Windows. +Solution: Do not expect the same result a second time. + +Patch 9.0.1018 +Problem: Suspend test still fails on Mac OS. +Solution: Make 'keyprotocol' empty. + +Patch 9.0.1019 +Problem: 'smoothscroll' and virtual text above don't work together. + (Yee Cheng Chin) +Solution: Skip virtual text above when w_skipcol is non-zero. + (closes #11665) + +Patch 9.0.1020 +Problem: Tests call GetSwapFileList() before it is defined. +Solution: Move the call to after defining the function. (Christopher + Plewright) + +Patch 9.0.1021 +Problem: Test trips over g:name. +Solution: Delete g:name after using it. + +Patch 9.0.1022 +Problem: Suspend test fails on Mac OS when suspending Vim. +Solution: Make 'keyprotocol' empty. + +Patch 9.0.1023 +Problem: MS-Windows: dynamic loading of libsodium doesn't work. +Solution: Add "randombytes_random". (Ken Takata, closes #11667) + +Patch 9.0.1024 +Problem: CI doesn't use the latest FreeBSD version. +Solution: Go from 12.3 to 12.4. (closes #11423) + +Patch 9.0.1025 +Problem: WinScrolled is not triggered when filler lines change. +Solution: Add "topfill" to the values that WinScrolled triggers on. + (closes #11668) + +Patch 9.0.1026 +Problem: type of w_last_topfill is wrong. +Solution: Use "int" instead of "linenr_T". (closes #11670) + +Patch 9.0.1027 +Problem: LGTM is soon shutting down. +Solution: Remove LGTM from CI. (closes #11671) + +Patch 9.0.1028 +Problem: Mouse shape test is flaky, especially on Mac OS. +Solution: Instead of starting all timers at the same time, start the next + one in the callback of the previous one. (Yee Cheng Chin, + closes #11673) Also use "bwipe!" instead of "close!" to avoid + swap files remaining. + +Patch 9.0.1029 +Problem: Autoload directory missing from distribution. +Solution: Add the autoload/zig directory to the list of distributed files. + +Patch 9.0.1030 +Problem: Using freed memory with the cmdline popup menu. +Solution: Clear the popup menu when clearing the matches. (closes #11677) + +Patch 9.0.1031 +Problem: Vim9 class is not implemented yet. +Solution: Add very basic class support. + +Patch 9.0.1032 +Problem: Test fails when terminal feature is missing. +Solution: Use CheckRunVimInTerminal. + +Patch 9.0.1033 +Problem: Tiny build fails because of conflicting typedef. +Solution: Remove one typedef. + +Patch 9.0.1034 +Problem: Reporting swap file when windows are split. +Solution: Close extra windows after running a test. + +Patch 9.0.1035 +Problem: Object members are not being marked as used, garbage collection + may free them. +Solution: Mark object members as used. Fix reference counting. + +Patch 9.0.1036 +Problem: Undo misbehaves when writing from an insert mode mapping. +Solution: Sync undo when writing. (closes #11674) + +Patch 9.0.1037 +Problem: lalloc(0) error for a class without members. +Solution: Don't allocate room for members if there aren't any. + Don't create the class if there was an error. + +Patch 9.0.1038 +Problem: Function name does not match what it is used for. +Solution: Include the modifier in the name. (closes #11679) + +Patch 9.0.1039 +Problem: Using a mapping CmdlineChanged may be triggered twice. +Solution: Count the number of times CmdlineChanged is triggered and avoid + doing it twice. (closes #116820 + +Patch 9.0.1040 +Problem: Test for mapping with CmdlineChanged fails. +Solution: Put back the check for the cmdline length not changing. + +Patch 9.0.1041 +Problem: Cannot define a method in a class. +Solution: Implement defining an object method. Make calling an object + method work. + +Patch 9.0.1042 +Problem: ASAN gives false alarm about array access. +Solution: Use an intermediate pointer. + +Patch 9.0.1043 +Problem: Macro has confusing name and is duplicated. +Solution: Use one macro with an understandable name. (closes #11686) + +Patch 9.0.1044 +Problem: Setting window height using Python may cause errors. +Solution: When setting "curwin" also set "curbuf". (closes #11687) + +Patch 9.0.1045 +Problem: In a class object members cannot be initialized. +Solution: Support initializing object members. Make "disassemble" work on + an object method. + +Patch 9.0.1046 +Problem: Class method disassemble test fails on MS-Windows. +Solution: Do not match with a specific size. + +Patch 9.0.1047 +Problem: Matchparen is slow. +Solution: Actually use the position where the match started, not the + position where the search started. (closes #11644) + +Patch 9.0.1048 +Problem: With "screenline" in 'culopt' cursorline highlight is wrong. +Solution: Apply the priority logic also when "screenline is in 'culopt'. + (closes #11696) + +Patch 9.0.1049 +Problem: Crash when opening a very small terminal window. +Solution: Instead of crashing fix the cursor position. (closes #11697) + +Patch 9.0.1050 +Problem: Using freed memory when assigning to variable twice. +Solution: Make copy of the list type. (closes #11691) + +Patch 9.0.1051 +Problem: After a failed CTRL-W ] next command splits window. +Solution: Reset postponed_split. (Rob Pilling, closes #11698) + +Patch 9.0.1052 +Problem: Using freed memory on exit when EXITFREE is defined. +Solution: Make a deep copy of the type. Make sure TTFLAG_STATIC is not set + in the copy. + +Patch 9.0.1053 +Problem: Default constructor arguments are not optional. +Solution: Use "= v:none" to make constructor arguments optional. + +Patch 9.0.1054 +Problem: Object member can't get type from initializer. +Solution: If there is no type specified try to use the type of the + initializer. Check for a valid type. + +Patch 9.0.1055 +Problem: Coverity warns for using uninitialized memory. +Solution: Clear the "lhs" field earlier. + +Patch 9.0.1056 +Problem: Leaking memory when disassembling an object method. +Solution: Free the typval of the class. + +Patch 9.0.1057 +Problem: Conflict between supercollider and scala filetype detection. +Solution: Do not check for "Class : Method", it can appear in both + filetypes. (Chris Kipp, closes #11699) + +Patch 9.0.1058 +Problem: String value of class and object do not have useful information. +Solution: Add the class name and for the object the member values. + +Patch 9.0.1059 +Problem: Build failure with some compilers that can't handle a + declaration directly after a "case" statement. +Solution: Add a block to put the declarations in. + +Patch 9.0.1060 +problem: Private and public object members are not implemented yet. +Solution: Implement private and public object members. + +Patch 9.0.1061 +Problem: Cannot display 'showcmd' somewhere else. +Solution: Add the 'showcmdloc' option. (Luuk van Baal, closes #11684) + +Patch 9.0.1062 +Problem: Some test function names do not match what they are doing. +Solution: Leave out user data for the test that is called "NoUserData". + (closes #11703) + +Patch 9.0.1063 +Problem: When using Kitty a shell command may mess up the key protocol + state. +Solution: Output t_te before t_TE. If t_te switches between the main and + the alternate screen then deactivating the key protocol by t_TE + should happen after switching screen. (issue #11705) + +Patch 9.0.1064 +Problem: Code for making 'shortmess' temporarily empty is repeated. +Solution: Add functions for making 'shortmess' empty and restoring it. + (Christian Brabandt, closes #11709) + +Patch 9.0.1065 +Problem: A shell command switching screens may still have a problem with + the kitty keyboard protocol. +Solution: Disable the kitty keyboard protocol both in the current and the + alternate screen, if there are indications it might be needed. + (issue #11705) Also fix naming. + +Patch 9.0.1066 +Problem: Test function name is wrong. +Solution: Rename to what is actually being tested. (closes #11712) + +Patch 9.0.1067 +Problem: In diff mode virtual text is highlighted incorrectly. (Rick Howe) +Solution: Do not use diff attributes for virtual text. (closes #11714) + +Patch 9.0.1068 +Problem: No information about whether requesting term codes has an effect. +Solution: Add ch_log() calls to report the effect of term code responses. + Avoid deleting an entry and then adding back the same one. + +Patch 9.0.1069 +Problem: Diff mode highlight fails for special characters. +Solution: Adjust condition for setting "diff_hlf". + +Patch 9.0.1070 +Problem: Reading beyond array size. +Solution: Only use name[0] and name[1], do not use "name" as a string. + +Patch 9.0.1071 +Problem: Codecov action version is too specific. +Solution: Only use "v3" to automatically use the latest stable version. + (closes #11720) + +Patch 9.0.1072 +Problem: screenpos() column result in fold may be too small. +Solution: Add space of 'number', sign column, etc. (closes #11715) + +Patch 9.0.1073 +Problem: Using "xterm-kitty" for 'term' causes problems. +Solution: Remove the "xterm-" part when 'term' is set from $TERM. Detect a + few kitty-specific properties based on the version response + instead of the terminal name. + +Patch 9.0.1074 +Problem: Class members are not supported yet. +Solution: Add initial support for class members. + +Patch 9.0.1075 +Problem: build fails if the compiler doesn't allow for a declaration right + after "case". +Solution: Add a block. + +Patch 9.0.1076 +Problem: ASAN complains about NULL argument. +Solution: Skip memmove() when there is nothing to move. + +Patch 9.0.1077 +Problem: Can add text property with negative ID before virtual text + property. +Solution: Remember that a text property with a negative ID was used and give + an appropriate error message. (closes #11725) + Fix index computation. + +Patch 9.0.1078 +Problem: With the +vartabs feature indent folding may use wrong 'tabstop'. +Solution: Use the "buf" argument instead of "curbuf". + +Patch 9.0.1079 +Problem: Leaking memory when defining a user command fails. +Solution: Free "compl_arg" when needed. (closes #11726) + +Patch 9.0.1080 +Problem: The "kitty" terminfo entry is not widespread, resulting in the + kitty terminal not working properly. +Solution: Go back to using "xterm-kitty" and avoid the problems it causes in + another way. + +Patch 9.0.1081 +Problem: Using "->" with split lines does not always work. +Solution: Avoid trying to get another line. (closes #11723) + +Patch 9.0.1082 +Problem: Some jsonc files are not recognized. +Solution: Add patterns for jsonc and move some from json to jsonc. + (closes #11711) + +Patch 9.0.1083 +Problem: Empty and comment lines in a class cause an error. +Solution: Skip empty and comment lines. (closes #11734) + +Patch 9.0.1084 +Problem: Code handling low level MS-Windows events cannot be tested. +Solution: Add test_mswin_event() and tests using it. (Christopher Plewright, + closes #11622) + +Patch 9.0.1085 +Problem: Compiler warns for uninitialized variable. +Solution: Initialize the variable. Remove unused function. (John Marriott) + +Patch 9.0.1086 +Problem: Display wrong in Windows terminal after exiting Vim. +Solution: Apply screen restore fix for Windows 11 also to Windows 10 builds. + (Christopher Plewright, closes #11713, closes #11706) + +Patch 9.0.1087 +Problem: Autocommand test sometimes fails. +Solution: Add a short delay. (James McCoy, closes #11737) + +Patch 9.0.1088 +Problem: Clang warns for unused variable. +Solution: Adjust #ifdef. (John Marriott) + +Patch 9.0.1089 +Problem: unnecessary assignment +Solution: Remove the assignment. (Luuk van Baal, closes #1136) + +Patch 9.0.1090 +Problem: FHIR Shorthand files are not recognized. +Solution: Add a pattern to detect FSH files. (Matthew Gramigna, + closes #11738) + +Patch 9.0.1091 +Problem: Assignment to non-existing member causes a crash. (Yegappan + Lakshmanan) +Solution: Give an error message and bail out when a member cannot be found. + +Patch 9.0.1092 +Problem: Search error message doesn't show used pattern. +Solution: Pass the actually used pattern to where the error message is + given. (Rob Pilling, closes #11742) + +Patch 9.0.1093 +Problem: Using freed memory of object member. (Yegappan Lakshmanan) +Solution: Make a copy of the object member when getting it. + +Patch 9.0.1094 +Problem: Compiler warning when HAS_MESSAGE_WINDOW is not defined. +Solution: Add UNUSED. + +Patch 9.0.1095 +Problem: Using freed memory when declaration fails. (Yegappan Lakshmanan) +Solution: After unreferencing an object set the reference to NULL. + +Patch 9.0.1096 +Problem: Reallocating hashtab when the size didn't change. +Solution: Bail out when the hashtab is already the desired size. + +Patch 9.0.1097 +Problem: Tests are failing. +Solution: Do clean up a hashtab when at the initial size. + +Patch 9.0.1098 +Problem: Code uses too much indent. +Solution: Use an early return. (Yegappan Lakshmanan, closes #11747) + +Patch 9.0.1099 +Problem: Trying to resize a hashtab may cause a problem. +Solution: Do not try to resize a hashtab before adding an item. + +Patch 9.0.1100 +Problem: A hashtab with many removed items is not cleaned up. +Solution: Re-hash a hashtab even when the size didn't change if too many + items were removed. + +Patch 9.0.1101 +Problem: Unused global variable. +Solution: Remove the variable. (closes #11752) + +Patch 9.0.1102 +Problem: Complicated use of #ifdef. +Solution: Simplify #ifdef use. (Ken Takata, closes #11745) + +Patch 9.0.1103 +Problem: jq files are not recognized. +Solution: Add detection of Jq files. (David McDonald, closes #11743) + +Patch 9.0.1104 +Problem: Invalid memory access when checking function argument types. +Solution: Do not check beyond the number of arguments. (closes #11755) + +Patch 9.0.1105 +Problem: Code is indented too much. +Solution: Use an early return. (Yegappan Lakshmanan, closes #11756) + +Patch 9.0.1106 +Problem: Not all postfix files are recognized. +Solution: Recognize main.cf.proto files. (closes #11732) + +Patch 9.0.1107 +Problem: Float constant not recognized as float. +Solution: Check the vartype instead of comparing with t_float. + (closes #11754) + +Patch 9.0.1108 +Problem: Type error when using "any" type and adding a number to a float. +Solution: Accept both a number and a float. (closes #11753) + +Patch 9.0.1109 +Problem: Leaking allocated type. +Solution: Reset the "static" flag in the allocated type copy. + +Patch 9.0.1110 +Problem: Build fails on Mac OS X 10.4/10.5 . +Solution: Check if the dispatch/dispatch.h header exists. (Evan Miller, + closes #11746) + +Patch 9.0.1111 +Problem: Termcap entries for RGB colors are not set automatically. +Solution: Always set the termcap entries when +termguicolors is enabled. + +Patch 9.0.1112 +Problem: test_mswin_event() can hang. +Solution: Add the "execute" argument to process events right away. + (Christopher Plewright, closes #11760) + +Patch 9.0.1113 +Problem: Users cannot easily try out a PR. +Solution: Add an "artifacts" section to the AppVeyor CI config. (Christian + Brabandt, closes #11762) + +Patch 9.0.1114 +Problem: CI does not use the latest Python version. +Solution: Switch from Python 3.10 to 3.11. (closes #11761) + +Patch 9.0.1115 +Problem: Code is indented more than needed. +Solution: Use an early return to reduce indenting. (Yegappan Lakshmanan, + closes #11758) + +Patch 9.0.1116 +Problem: Compiler may complain about an unused function. +Solution: Add #ifdef. (John Marriott) + +Patch 9.0.1117 +Problem: Terminfo entries for bracketed paste are not used. +Solution: Use the newly added terminfo entries for bracketed paste. + Correct mixup of output strings and key codes. + +Patch 9.0.1118 +Problem: Sporadic test failures when using a terminal window. +Solution: Adjust waiting times. (James McCoy, closes #11763) + +Patch 9.0.1119 +Problem: Type of arguments not checked when calling a partial. +Solution: Give an error for a wrong argument type. (closes #11753) + +Patch 9.0.1120 +Problem: Tex filetype detection not sufficiently tested. +Solution: Add more test cases for "tex" detection. (Jonas Strittmatter, + closes #11765) + +Patch 9.0.1121 +Problem: Cursor positioning and display problems with 'smoothscroll' and + using "zt", "zb" or "zz". +Solution: Adjust computations and conditions. (Yee Cheng Chin, + closes #11764) + +Patch 9.0.1122 +Problem: Class member access is not fully tested yet. +Solution: Add more tests. + +Patch 9.0.1123 +Problem: Class function not implemented yet. +Solution: Implement defining and calling a class function. + +Patch 9.0.1124 +Problem: Virtual text at a column position is truncated at the window edge. + (Yegappan Lakshmanan) +Solution: Do not truncated virtual text that is placed at a column. + +Patch 9.0.1125 +Problem: Memory leak when using class functions. +Solution: Clear and free the array with class functions. + +Patch 9.0.1126 +Problem: Bracketed paste can be enabled when pasted text is not recognized. +Solution: Output t_BE only when t_PS and t_PE are set. + +Patch 9.0.1127 +Problem: No error if function argument shadows class member. +Solution: Give an error for shadowing a class member. + +Patch 9.0.1128 +Problem: Build failure. +Solution: Add type cast. Add missing error messages. + +Patch 9.0.1129 +Problem: Sporadic Test_range() failure. +Solution: Clear typeahead. Move to a separate function. (issue #22771) + +Patch 9.0.1130 +Problem: Unexpected output when autoloading a script for an interactive + operation. +Solution: Reset "KeyTyped" while loading a script and when handling a nested + function. (closes #11773) + +Patch 9.0.1131 +Problem: Build failure without the +eval feature. +Solution: Move code inside #ifdef. + +Patch 9.0.1132 +Problem: Code is indented more than needed. +Solution: Use an early return to reduce indentation. (Yegappan Lakshmanan, + closes #11769) + +Patch 9.0.1133 +Problem: Error message names do not match the items. +Solution: Add "_str" when the text contains "%s". + +Patch 9.0.1134 +Problem: Comparing objects uses identity instead of equality. +Solution: Compare the object values. + +Patch 9.0.1135 +Problem: Missing function argument. +Solution: Add ignore case flag. + +Patch 9.0.1136 +Problem: Memory leak when getting class member type from expr. +Solution: Clear the expression result. + +Patch 9.0.1137 +Problem: Some conditions are always false. +Solution: Remove the useless conditions. (closes #11776) + +Patch 9.0.1138 +Problem: Crash when expecting varargs but it is something else. +Solution: Only use the member when the type is a list. (closes #11774) + +Patch 9.0.1139 +Problem: Cannot create a new object in a compiled function. +Solution: Compile the instructions to create a new object. + +Patch 9.0.1140 +Problem: Cannot call an object method in a compiled function. +Solution: Compile the instructions to invoke an object method. + +Patch 9.0.1141 +Problem: 'cursorcolumn' and 'colorcolumn' wrong after concealing and + wrapping line. +Solution: Reset "wlv.vcol_off" after each screen line. (Alexey Radkov, + closes #11777) + +Patch 9.0.1142 +Problem: Crash and/or memory leak when redefining function after error. +Solution: Clear pointer after making a copy. Clear arrays on failure. + (closes #11774) + +Patch 9.0.1143 +Problem: Invalid memory access with bad 'statusline' value. +Solution: Avoid going over the NUL at the end. + +Patch 9.0.1144 +Problem: Reading beyond text. +Solution: Add strlen_maxlen() and use it. + +Patch 9.0.1145 +Problem: Invalid memory access with recursive substitute expression. +Solution: Check the return value of vim_regsub(). + +Patch 9.0.1146 +Problem: MS-Windows: various special keys and modifiers are not mappable. +Solution: Adjust the handling of keys with modifiers. (Christian Plewright, + closes #11768) + +Patch 9.0.1147 +Problem: Cannot access a class member in a compiled function. +Solution: Implement looking up a class member. + +Patch 9.0.1148 +Problem: Cmdline test fails in the GUI. +Solution: Skip the test when running in the GUI. + +Patch 9.0.1149 +Problem: Class members may be garbage collected. +Solution: Mark class members as being in use. + +Patch 9.0.1150 +Problem: :interface is not implemented yet. +Solution: Implement the basics of :interface. + +Patch 9.0.1151 +Problem: Build failure. +Solution: Add missing part of :interface change. + +Patch 9.0.1152 +Problem: Class "implements" argument not implemented. +Solution: Implement "implements" argument. Add basic checks for when a + class implements an interface. + +Patch 9.0.1153 +Problem: Build error with some compilers. +Solution: Clear pointer the right way. + +Patch 9.0.1154 +Problem: Coverity warns for dead code. +Solution: Remove condition that is always true. + +Patch 9.0.1155 +Problem: Cannot use a class as a type. +Solution: Accept a class and interface name as a type. + +Patch 9.0.1156 +Problem: Tests fail because of a different error message. +Solution: Don't give an error if a type name can't be found. + +Patch 9.0.1157 +Problem: "implements" only handles one interface name. +Solution: Handle a comma separated list of names. Check for duplicate + names. + +Patch 9.0.1158 +Problem: Code is indented more than necessary. +Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, + closes #11787) + +Patch 9.0.1159 +Problem: Extends argument for class not implemented yet. +Solution: Basic implementation of "extends". + +Patch 9.0.1160 +Problem: ASAN error for ufunc_T allocated with wrong size. +Solution: Make sure the size can always fit the struct. + +Patch 9.0.1161 +Problem: Coverity warns for using strcpy(). +Solution: Call a function to set the function name. + +Patch 9.0.1162 +Problem: Configure does not handle all FORTIFY_SOURCE variants. +Solution: Also handle Fedora's default FORTIFY_SOURCE flags. (Zdenek Dohnal, + closes #11794) + +Patch 9.0.1163 +Problem: Compiler warning for implicit size_t/int conversion. +Solution: Add a type cast. (Mike Williams, closes #11795) + +Patch 9.0.1164 +Problem: Evaluating string expression advances function line. +Solution: Disable function lines while parsing a string expression. + (Hirohito Higashi, closes #11796) + +Patch 9.0.1165 +Problem: Tests using IPv6 sometimes fail. +Solution: Use getaddrinfo() and use try/catch. (James McCoy, + closes #11783) + +Patch 9.0.1166 +Problem: Code is indented more than necessary. +Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, + closes #11792) + +Patch 9.0.1167 +Problem: EditorConfig files do not have their own filetype. +Solution: Add the "editorconfig" filetype. (Gregory Anders, closes #11779) + +Patch 9.0.1168 +Problem: Code to enable/disable mouse is not from terminfo/termcap. +Solution: Request the "XM" entry and use it to set 'ttymouse' if possible. + +Patch 9.0.1169 +Problem: Some key+modifier tests fail on some AppVeyor images. +Solution: Adjust the tests for key movements and fix the revealed bugs. + (Christopher Plewright, closes #11798) + +Patch 9.0.1170 +Problem: LGTM badge no longer works. +Solution: Remove the LGTM badge. (closes #11799) + +Patch 9.0.1171 +Problem: Screen is not redrawn after using setcellwidths(). +Solution: Redraw the screen when the cell widths have changed. (Yasuhiro + Matsumoto, closes #11800) + +Patch 9.0.1172 +Problem: When 'selection' is "exclusive" then "1v" is one char short. +Solution: Add one character when 'selection' is "exclusive". (closes #11791) + +Patch 9.0.1173 +Problem: Compiler warning for unused variable on non-Unix systems. +Solution: Move #ifdef. (John Marriott) + +Patch 9.0.1174 +Problem: Smali files are not recognized. +Solution: Add a pattern for Smali files. (Amaan Qureshi, closes #11801) + +Patch 9.0.1175 +Problem: The set_ref_in_item() function is too long. +Solution: Use a separate function for more complicated types. (Yegappan + Lakshmanan, closes #11802) + +Patch 9.0.1176 +Problem: smithy files are not recognized. +Solution: Add a pattern for Smithy files. (Chris Kipp, closes #11804) + +Patch 9.0.1177 +Problem: AppVeyor uses some older tools. +Solution: Switch to Visual Studio 2022 and Python 3.11. (Christopher + Plewright, closes #11793) + +Patch 9.0.1178 +Problem: A child class cannot override functions from a base class. +Solution: Allow overriding and implement "super". + +Patch 9.0.1179 +Problem: Not all errors around inheritance are tested. +Solution: Add more tests. Fix uncovered problems. + +Patch 9.0.1180 +Problem: Compiler warnings without the +job feature. +Solution: Adjust #ifdefs. (John Marriott) + +Patch 9.0.1181 +Problem: Class inheritance and typing insufficiently tested. +Solution: Add more tests. Implement missing behavior. + +Patch 9.0.1182 +Problem: go checksum files are not recognized. +Solution: Add the name of go checksum files. (Amaan Qureshi, closes #11803) + +Patch 9.0.1183 +Problem: Code is indented more than necessary. +Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, + closes #11805) + +Patch 9.0.1184 +Problem: Interface of an object is not recognized when checking type. +Solution: Use the interface implemented by an object. + +Patch 9.0.1185 +Problem: Using class from imported script not tested. +Solution: Add tests. Implement what is missing. + +Patch 9.0.1186 +Problem: Imported class does not work when used twice in a line. +Solution: Fix the type parsing. + +Patch 9.0.1187 +Problem: Test for using imported class fails. +Solution: Skip over rest of type. + +Patch 9.0.1188 +Problem: Return value of type() for class and object unclear. +Solution: Add v:t_object and v:t_class. + +Patch 9.0.1189 +Problem: Invalid memory access with folding and using "L". +Solution: Prevent the cursor from moving to line zero. + +Patch 9.0.1190 +Problem: AppVeyor runs much slower with MSVC 2022. +Solution: Go back to MSVC 2015. (Christopher Plewright, closes #11810) + +Patch 9.0.1191 +Problem: Some Bazel files are not recognized. +Solution: Add an extra Bazel pattern. (Keith Smily, closes #11807) + +Patch 9.0.1192 +Problem: No error when class function argument shadows a member. +Solution: Check for shadowing. + +Patch 9.0.1193 +Problem: Cannot map when using the Kitty key protocol. +Solution: Add a non-simplified mapping for K_ESC. (closes #11811) + +Patch 9.0.1194 +Problem: Compiler warning for comparing pointer with int. +Solution: Change NULL to zero. + +Patch 9.0.1195 +Problem: Restoring KeyTyped when building statusline not tested. +Solution: Add a test. Clean up and fix other tests. (closes #11815) + +Patch 9.0.1196 +Problem: Code is indented more than necessary. +Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, + closes #11813) + +Patch 9.0.1197 +Problem: Dump file missing from patch. +Solution: Add missing dump file. + +Patch 9.0.1198 +Problem: Abstract class not supported yet. +Solution: Implement abstract class and add tests. + +Patch 9.0.1199 +Problem: Crash when using kitty and using a mapping with . +Solution: Do not try setting did_simplify when it is NULL. (closes #11817) + +Patch 9.0.1200 +Problem: AppVeyor builds with an old Python version. +Solution: Switch from Python 3.8 to 3.11. (Christopher Plewright, + closes #11814) + +Patch 9.0.1201 +Problem: Assignment with operator doesn't work in object method. +Solution: Handle loading the object member. (closes #11820) Add a few more + tests. + +Patch 9.0.1202 +Problem: Crash when iterating over list of objects. +Solution: Do not make a copy of tt_member for object or class. + (closes #11823) + +Patch 9.0.1203 +Problem: Return type of values() is always list. +Solution: Use the member type if possible. (issue #11822) + +Patch 9.0.1204 +Problem: Expression compiled the wrong way after using an object. +Solution: Generate constants before getting the type. + +Patch 9.0.1205 +Problem: Crash when handling class that extends another class with more + than one object members. +Solution: Correct pointer computations. (closes #11824) + +Patch 9.0.1206 +Problem: Testing with Python on AppVeyor does not work properly. +Solution: Fix typo. Move most lines to the .bat file. (Christopher + Plewright, closes #11828) + +Patch 9.0.1207 +Problem: Error when object type is expected but getting "any". +Solution: When actual type is "any" use a runtime type check. + (closes #11826) + +Patch 9.0.1208 +Problem: Code is indented more than necessary. +Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, + closes #11819) + +Patch 9.0.1209 +Problem: Getting interface member does not always work. +Solution: Convert the index on the interface to the index on the object. + (closes #11825) + +Patch 9.0.1210 +Problem: Compiler complains about declaration after label. +Solution: Move declaration to beginning of block (John Marriott) + +Patch 9.0.1211 +Problem: Storing value in interface member does not always work. +Solution: Convert the index on the interface to the index on the object. + +Patch 9.0.1212 +Problem: Cannot read back what setcellwidths() has done. +Solution: Add getcellwidths(). (Kota Kato, closes #11837) + +Patch 9.0.1213 +Problem: Adding a line below the last one does not expand fold. +Solution: Do not skip mark_adjust() when adding lines below the last one. + (Brandon Simmons, closes #11832, closes #10698) + +Patch 9.0.1214 +Problem: File left behind after running tests. +Solution: Delete the file. (Dominique Pellé, closes #11839) + +Patch 9.0.1215 +Problem: Using isalpha() adds dependency on current locale. +Solution: Do not use isalpha() for recognizing a URL or the end of an Ex + command. (closes #11835) + +Patch 9.0.1216 +Problem: Coverity warns for ignoring return value. +Solution: Break out of loop if function fails. + +Patch 9.0.1217 +Problem: Using an object member in a closure doesn't work. +Solution: Initialize lv_loop_depth. (closes #11840) + +Patch 9.0.1218 +Problem: Completion includes functions that don't work. +Solution: Skip functions that are not implemented. (Kota Kato, + closes #11845) + +Patch 9.0.1219 +Problem: Handling of FORTIFY_SOURCE flags doesn't match Fedora usage. +Solution: Adjust the "sed" patterns. (Zdenek Dohnal, closes #11847) + +Patch 9.0.1220 +Problem: Termcap/terminfo entries do not indicate where modifiers might + appear. +Solution: Add ";*" for function keys where modifiers are likely to be used. + +Patch 9.0.1221 +Problem: Code is indented more than necessary. +Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, + closes #11833) + +Patch 9.0.1222 +Problem: Terminal tests are flaky on MacOS. +Solution: Add TermWait() calls. (Yegappan Lakshmanan, closes #11852) + +Patch 9.0.1223 +Problem: Cannot use setcellwidths() below 0x100. +Solution: Also accept characters between 0x80 and 0x100. (Ken Takata, + closes #11834) + +Patch 9.0.1224 +Problem: Cannot call a :def function with a number for a float argument. +Solution: Accept a number as well, convert it to a float. + +Patch 9.0.1225 +Problem: Reading past the end of a line when formatting text. +Solution: Check for not going over the end of the line. + +Patch 9.0.1226 +Problem: Spurious empty line when using text properties and virtual text. +Solution: Do not set "text_prop_follows" when the other text property is not + virtual text. (closes #11846) + +Patch 9.0.1227 +Problem: No cmdline completion for :runtime. +Solution: Add completion for :runtime. (closes #11853, closes #11447) + Improve the resulting matches. + +Patch 9.0.1228 +Problem: Fuzzy menu completion is only tested in the GUI. +Solution: Make fuzzy menu completion test work without GUI. + (closes #11861) + +Patch 9.0.1229 +Problem: Cap'n Proto files are not recognized. +Solution: Add a pattern and the "capnp" filetype. (Amaan Qureshi, + closes #11862) + +Patch 9.0.1230 +Problem: Apache thrift files are not recognized. +Solution: Add a pattern for thrift files. (Amaan Qureshi, closes #11859) + +Patch 9.0.1231 +Problem: Completion of :runtime does not handle {where} argument. +Solution: Parse the {where} argument. (closes #11863) + +Patch 9.0.1232 +Problem: ColorTable saving and restoring does not work properly. +Solution: Restore ColorTable[16] usage. (Christopher Plewright, + closes #11836) + +Patch 9.0.1233 +Problem: search() loops forever if "skip" is TRUE for all matches. +Solution: Keep the position of the first match. + +Patch 9.0.1234 +Problem: The code style has to be checked manually. +Solution: Add basic code style checks in a test. Fix or avoid uncovered + problems. + +Patch 9.0.1235 +Problem: MS-Windows console: not flushing termguicolors. +Solution: Flush termguicolors. (Christopher Plewright, closes #11871) + +Patch 9.0.1236 +Problem: Code in same_leader() can be simplified. +Solution: Simplify code that is executed only once. (closes #11867) + +Patch 9.0.1237 +Problem: Code is indented more than necessary. +Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, + closes #11858) + +Patch 9.0.1238 +Problem: :runtime completion can be further improved. +Solution: Also complete the {where} argument values and adjust the + completion for that. (closes #11874) + +Patch 9.0.1239 +Problem: Cannot have a line break before an object member access. +Solution: Check for "." in next line. (closes #11864) + +Patch 9.0.1240 +Problem: Cannot access a private object member in a lambda defined inside + the class. +Solution: Go up the context stack to find the class. (closes #11866) + +Patch 9.0.1241 +Problem: Coverity warns for not checking function return value. +Solution: Explicitly ignore the return value. + +Patch 9.0.1242 +Problem: Code for :runtime completion is not consistent. +Solution: Make code for cmdline expansion more consistent. (closes #11875) + +Patch 9.0.1243 +Problem: :setglobal cannot use script-local function for "expr" option. +Solution: Use the pointer to the option value properly. (closes #11883) + +Patch 9.0.1244 +Problem: Cursor briefly displayed in a wrong position when pressing Esc in + Insert mode after autoindent was used. +Solution: Do not adjust the cursor position for assumed deleted white space + if text is following. (closes #11877) + +Patch 9.0.1245 +Problem: Code is indented more than necessary. +Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, + closes #11879) + +Patch 9.0.1246 +Problem: Code is indented more than necessary. +Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, + closes #11887) + +Patch 9.0.1247 +Problem: Divide by zero with 'smoothscroll' set and a narrow window. +Solution: Bail out when the window is too narrow. + +Patch 9.0.1248 +Problem: Cannot export an interface. (Ernie Rael) +Solution: Add the EX_EXPORT flag to :interface. (closes #11884) + +Patch 9.0.1249 +Problem: Cannot export an abstract class. (Ernie Rael) +Solution: Add the EX_EXPORT flag to :abstract. (closes #11884) + +Patch 9.0.1250 +Problem: Cannot use an object method with :defer. (Ernie Rael) +Solution: Find the object method and generate code to call it. + (closes #11886) + +Patch 9.0.1251 +Problem: Checking returned value of ga_grow() is inconsistent. +Solution: Check for FAIL instead of "not OK". (Yegappan Lakshmanan, + closes #11897) + +Patch 9.0.1252 +Problem: MS-Windows: scrollback cropped off on Vim exit. +Solution: Don't call SetConsoleScreenBufferInfoEx when using the alternate + screen buffer. (Christopher Plewright, closes #11882) + +Patch 9.0.1253 +Problem: CI adds repository unnecessarily. +Solution: Remove the line from the workflow. (closes #11900) + +Patch 9.0.1254 +Problem: Calling a method on an interface does not work. +Solution: At runtime figure out what method to call. (closes #11901) + +Patch 9.0.1255 +Problem: Changing 'virtualedit' does not have immediate effect. +Solution: Correct how is checked for a changed value. (closes #11878) + +Patch 9.0.1256 +Problem: NetworkManager connection files are not recognized. +Solution: Add a pattern for NetworkManager connection files. (closes #11893) + +Patch 9.0.1257 +Problem: Code style is not check in test scripts. +Solution: Add basic code style check for test files. + +Patch 9.0.1258 +Problem: Code style test fails. +Solution: Adjust test files. + +Patch 9.0.1259 +Problem: Diffmode test fails. +Solution: Adjust expected result for adjusted indenting. + +Patch 9.0.1260 +Problem: Coverity warns for possible NULL pointer usage. +Solution: Change the condition. + +Patch 9.0.1261 +Problem: Elsa files are not recognized. +Solution: Add a pattern for Elsa files. (Amaan Qureshi, closes #11908) + +Patch 9.0.1262 +Problem: The did_set_string_option function is too long. +Solution: Split off functionality to individual functions. (Yegappan + Lakshmanan, Lewis Russell, closes #11904) + +Patch 9.0.1263 +Problem: KDL files are not recognized. +Solution: Add a pattern for KDL files. (Amaan Qureshi, closes #11898) + +Patch 9.0.1264 +Problem: Motif: compiler warning for unused argument. +Solution: Add "UNUSED". + +Patch 9.0.1265 +Problem: Using an interface method may give a compilation error. +Solution: Do not try to compile the body of a method of an interface. + (closes #11885) + +Patch 9.0.1266 +Problem: Error for space before ": type" is inconsistent. +Solution: Give E1059 in more places. (closes #11868) + +Patch 9.0.1267 +Problem: The did_set_string_option function is too long. +Solution: Further cleanup of handling string options. (Yegappan Lakshmanan, + Lewis Russell, closes #11920) + +Patch 9.0.1268 +Problem: .clangd and .stylelintrc files don't get a filetype. +Solution: Use yaml for .clangd and json for .stylelintrc files. (Mark + Skelton, closes #11916) + +Patch 9.0.1269 +Problem: Channel test often fails on Mac OS. +Solution: Increase the wait time from one to 15 milliseconds. (D. Ben + Knoble, closes #11894) + +Patch 9.0.1270 +Problem: Crash when using search stat in narrow screen. +Solution: Check length of message. (closes #11921) + +Patch 9.0.1271 +Problem: Using sizeof() and subtract array size is tricky. +Solution: Use offsetof() instead. (closes #11926) + +Patch 9.0.1272 +Problem: Typo in pattern for filetype detection. +Solution: Fix the typo. (closes #11924) + +Patch 9.0.1273 +Problem: "1v" may select block with wrong size. (Evgeni Chasnovski) +Solution: Compute "curswant" in the right line. (closes #11925) + +Patch 9.0.1274 +Problem: FIRRTL files are not recognized. +Solution: Add a pattern for FIRRTL files. (Amaan Qureshi, closes #11931) + +Patch 9.0.1275 +Problem: The code for setting options is too complicated. +Solution: Refactor the do_set() function. (Yegappan Lakshmanan, Lewis + Russell, closes #11932) + +Patch 9.0.1276 +Problem: Some mappings with Meta and Shift do not work. +Solution: Apply the Shift modifier to the key. (issue #11913) + +Patch 9.0.1277 +Problem: Cursor may move with autocmd in Visual mode. +Solution: Restore "VIsual_active" before calling check_cursor(). + (closes #11939) + +Patch 9.0.1278 +Problem: go.work.sum files are not recognized. +Solution: Recognize go.work.sum files as the gosum filetype. (Amaan Qureshi, + closes #11940) + +Patch 9.0.1279 +Problem: Display shows lines scrolled down erroneously. (Yishai Lerner) +Solution: Do not change "wl_lnum" at index zero. (closes #11938) + +Patch 9.0.1280 +Problem: Insufficient testing for what 9.0.1265 fixes. +Solution: Add a couple of test cases. (issue #11885) + +Patch 9.0.1281 +Problem: Cadence files are not recognized. +Solution: Recognize Cadence files. (Janez Podhostnik, closes #11951) + +Patch 9.0.1282 +Problem: Ron files are not recognized. +Solution: Recognize Ron files. (Amaan Qureshi, closes #11948) + +Patch 9.0.1283 +Problem: The code for setting options is too complicated. +Solution: Refactor the do_set() function. (Yegappan Lakshmanan, Lewis + Russell, closes #11945) + +Patch 9.0.1284 +Problem: Compiler warnings for uninitialized variables. (Tony Mechelynck) +Solution: Add variable initializations. + +Patch 9.0.1285 +Problem: Various small problems. +Solution: Adjust white space and comments. + +Patch 9.0.1286 +Problem: Coverity warns for using a NULL pointer. +Solution: Bail out whan "varp" is NULL. + +Patch 9.0.1287 +Problem: With the Kitty key protocol Esc with NumLock cannot be mapped. +Solution: Also use K_ESC when there is a modifier. (closes #11811) + +Patch 9.0.1288 +Problem: FunC files are not recognized. +Solution: Recognize FunC files. (Amaan Qureshi, closes #11949) + +Patch 9.0.1289 +Problem: A newer version of clang can be used for CI. +Solution: Switch from clang-15 to clang-16. (closes #11577) + +Patch 9.0.1290 +Problem: CTRL-N and -P on cmdline don't trigger CmdlineChanged. +Solution: Jump to cmdline_changed instead of cmdline_not_changed. + (closes #11956) + +Patch 9.0.1291 +Problem: Move language files are not recognized. +Solution: Recognize Move language files. (Amaan Qureshi, closes #11947) + +Patch 9.0.1292 +Problem: :defer may call the wrong method for an object. (Ernie Rael) +Solution: When en object is from a class that extends or implements, figure + out the method to call at runtime. (closes #11910) + +Patch 9.0.1293 +Problem: The set_num_option() is too long. +Solution: Move code to separate functions. (Yegappan Lakshmanan, + closes #11954) + +Patch 9.0.1294 +Problem: The set_bool_option() function is too long. +Solution: Move code to separate functions. (Yegappan Lakshmanan, + closes #11964) + +Patch 9.0.1295 +Problem: The option initialization function is too long. +Solution: Move code to separate functions. (Yegappan Lakshmanan, + closes #11966) + +Patch 9.0.1296 +Problem: Calling an object method with arguments does not work. (Ernie + Rael) +Solution: Take the argument count into account when looking up the object. + (closes #11911) + +Patch 9.0.1297 +Problem: Wrong value for $LC_CTYPE makes the environ test fail. +Solution: Unset $LC_CTYPE when running tests. (closes #11963) + +Patch 9.0.1298 +Problem: Inserting a register on the command line does not trigger + incsearch or update hlsearch. +Solution: Have cmdline_insert_reg() return CMDLINE_CHANGED when appropriate + and handle it correctly. (Ken Takata, closes #11960) + +Patch 9.0.1299 +Problem: Change for triggering incsearch not sufficiently tested. +Solution: Add a test case. Simplify the code. (closes #11971) + +Patch 9.0.1300 +Problem: 'statusline' only supports one "%=" item. +Solution: Add support for multiple "%=" items. (TJ DeVries, Yegappan + Lakshmanan, closes #11970, closes #11965) + +Patch 9.0.1301 +Problem: Virtual text below empty line not displayed. +Solution: Adjust flags and computations. (closes #11959) + +Patch 9.0.1302 +Problem: On a Belgian keyboard CTRL-] does not work. +Solution: Translate CTRL-$ into CTRL-]. (closes #11831) + +Patch 9.0.1303 +Problem: Motif: scrollbar width/height wrong when maximized. +Solution: Set the width/height when creating the scrollbar. (closes #11946) + +Patch 9.0.1304 +Problem: "$" for 'list' option displayed in wrong position when there are + text properties. +Solution: Adjust logic for order of displayed items. (closes #11959) + +Patch 9.0.1305 +Problem: Cursor in wrong line with virtual text above. +Solution: Count extra line for text property above/below. (closes #11959) + +Patch 9.0.1306 +Problem: No regression test for solved problem of #11959. +Solution: Add a test, also with 'list' set. (closes #11959) + +Patch 9.0.1307 +Problem: Setting 'formatoptions' with :let doesn't check for errors. +Solution: Pass "errbuf" to set_string_option(). (Yegappan Lakshmanan, + closes #11974, closes #11972) + +Patch 9.0.1308 +Problem: The code for setting options is too complicated. +Solution: Refactor the code for setting options. (Yegappan Lakshmanan, + closes #11989) + +Patch 9.0.1309 +Problem: Scrolling two lines with even line count and 'scrolloff' set. +Solution: Adjust how the topline is computed. (closes #10545) + +Patch 9.0.1310 +Problem: 'splitkeep' test has failures. +Solution: Adjust expected cursor line position. + +Patch 9.0.1311 +Problem: Coverity warns for using a NULL pointer. +Solution: Use "empty_option" instead of NULL. + +Patch 9.0.1312 +Problem: Cursor position wrong when splitting window in insert mode. +Solution: Pass the actual mode to win_fix_cursor(). (Luuk van Baal, + closes #11999, + +Patch 9.0.1313 +Problem: Some settings use the current codepage instead of 'encoding'. +Solution: Adjust how options are initialized. (Ken Takata, closes #11992) + +Patch 9.0.1314 +Problem: :messages behavior depends on 'fileformat' of current buffer. +Solution: Pass the buffer pointer to where it is used. (Mirko Ceroni, + closes #11995) + +Patch 9.0.1315 +Problem: Escaping for completion of map command not properly tested. +Solution: Add a few test cases. (closes #12009) + +Patch 9.0.1316 +Problem: MS-Windows: vimfiles dir created with admin group. +Solution: Use ShellExecAsUser to create the vimfiles directory. (Christopher + Plewright, Ken Takata, closes #12000, closes #11888) + +Patch 9.0.1317 +Problem: Crash when using an unset object variable. +Solution: Give an error instead. (closes #12005) + +Patch 9.0.1318 +Problem: Code style test fails. +Solution: Remove trailing white space. + +Patch 9.0.1319 +Problem: PRQL files are not recognized. +Solution: Add a filetype pattern for PRQL files. (Matthias Queitsch, + closes #12018) + +Patch 9.0.1320 +Problem: Checking the type of a null object causes a crash. +Solution: Don't try to get the class of a null object. (closes #12005) + Handle error from calling a user function better. + +Patch 9.0.1321 +Problem: vimscript test fails where using {expr} syntax. +Solution: Only return FCERR_FAILED in call_user_func() for Vim9 script. + +Patch 9.0.1322 +Problem: Crash when indexing "any" which is an object. +Solution: Check the index is a number. Do not check the member type of an + object. (closes #12019) + +Patch 9.0.1323 +Problem: Build failure with +eval feature. +Solution: Add missing part for using funcerror_T. + +Patch 9.0.1324 +Problem: "gj" and "gk" do not move correctly over a closed fold. +Solution: Use the same code as used for "j"/"k" to go to the next/previous + line. (Luuk van Baal, closes #12007) + +Patch 9.0.1325 +Problem: 'colorcolumn' highlight wrong with virtual text above. +Solution: Adjust column of 'colorcolumn' for text property. (closes #12004) + +Patch 9.0.1326 +Problem: Relative line number not updated with virtual text above. +Solution: Adjust the row for the line number for virtual text above. + (closes #12004) + +Patch 9.0.1327 +Problem: Cursor in wrong position below line with virtual text below ending + in multi-byte character. +Solution: When checking for last character take care of multi-byte + character. + +Patch 9.0.1328 +Problem: Error when using "none" for GUI color is confusing. +Solution: Mention that the name should perhaps be "NONE". (closes #1400) + +Patch 9.0.1329 +Problem: Completion of map includes simplified ones. +Solution: Do not complete simplified mappings. (closes #12013) + +Patch 9.0.1330 +Problem: Handling new value of an option has a long "else if" chain. +Solution: Use a function pointer. (Yegappan Lakshmanan, closes #12015) + +Patch 9.0.1331 +Problem: Illegal memory access when using :ball in Visual mode. +Solution: Stop Visual mode when using :ball. (Pavel Mayorov, closes #11923) + +Patch 9.0.1332 +Problem: Crash when using buffer-local user command in cmdline window. + (Karl Yngve Lervåg) +Solution: Use the right buffer to find the user command. (closes #12030, + closes #12029) + +Patch 9.0.1333 +Problem: When redo'ing twice may not get the script ID. +Solution: When "last_used_map" map is not set use "last_used_sid". + (closes #11930) + +Patch 9.0.1334 +Problem: Using tt_member for the class leads to mistakes. +Solution: Add a separate tt_class field. + +Patch 9.0.1335 +Problem: No test for bad use of spaces in help files. +Solution: Add checks for use of spaces in help files. Ignore intentional + spaces. (Hirohito Higashi, closes #11952) + +Patch 9.0.1336 +Problem: Functions without arguments are not always declared properly. +Solution: Use "(void)" instead of "()". (Yegappan Lakshmanan, closes #12031) + +Patch 9.0.1337 +Problem: Yuck files are not recognized. +Solution: Add a filetype pattern for yuck files. (Amaan Qureshi, + closes #12033) + +Patch 9.0.1338 +Problem: :defcompile and :disassemble can't find class method. (Ernie Rael) +Solution: Make a class name and class.method name work. (closes #11984) + +Patch 9.0.1339 +Problem: No test for :disassemble with class function. +Solution: Add a test. + +Patch 9.0.1340 +Problem: Coverity warns for using NULL pointer. +Solution: Check that lhs_type is not NULL. + +Patch 9.0.1341 +Problem: Build error with mzscheme but without GUI. +Solution: Adjust #ifdefs. (Ken Takata, closes #12042) Also fix function + argument. + +Patch 9.0.1342 +Problem: MS-Windows: linking may fail with space in directory name. +Solution: Add quotes. (closes #12050) + +Patch 9.0.1343 +Problem: Check for OSC escape sequence doesn't work. +Solution: Move square bracket to the right place. (Johan Mattsson, + closes #12048) + +Patch 9.0.1344 +Problem: Check for OSC escape sequence doesn't work. +Solution: Fix typo in index. + +Patch 9.0.1345 +Problem: Too many "else if" statements for handling options. +Solution: Add more functions to handle options. (Yegappan Lakshmanan, + closes #12051) + +Patch 9.0.1346 +Problem: Starlark files are not recognized. +Solution: Add patterns for Starlark files. (Amaan Qureshi, closes #12049) + +Patch 9.0.1347 +Problem: "gr CTRL-O" stays in Insert mode. (Pierre Ganty) +Solution: Do not set restart_edit when "cmdchar" is 'v'. (closes #12045) + +Patch 9.0.1348 +Problem: Un-grammar files are not recognized. +Solution: Add patterns for Un-grammar files. (Amaan Qureshi, closes #12034) + +Patch 9.0.1349 +Problem: "gr" with a count fails. +Solution: Break out of the loop only after using the count. + +Patch 9.0.1350 +Problem: CPON files are not recognized. +Solution: Add patterns for CPON files. (Amaan Qureshi, closes #12053) + +Patch 9.0.1351 +Problem: Dhall files are not recognized. +Solution: Add patterns for Dhall files. (Amaan Qureshi, closes #12052) + +Patch 9.0.1352 +Problem: "ignore" files are outdated. +Solution: Update "ignore" files. (Ken Takata, closes #12056) + +Patch 9.0.1353 +Problem: Too many "else if" statements to handle option values. +Solution: Add more functions to handle option value changes. (Yegappan + Lakshmanan, closes #12058) + +Patch 9.0.1354 +Problem: "gr CTRL-G" stays in virtual replace mode. (Pierre Ganty) +Solution: Prepend CTRL-V before control characters. (closes #12045) + +Patch 9.0.1355 +Problem: No error when declaring a class twice. (Ernie Rael) +Solution: Pass different flags when declaring the class. (closes #12057) + +Patch 9.0.1356 +Problem: Cannot cancel "gr" with Esc. +Solution: Make "gr" do nothing. (closes #12064) + +Patch 9.0.1357 +Problem: Using null_object results in an internal error. (Ernie Rael) +Solution: Add instructions for pushing an object and class. (closes #12044) + +Patch 9.0.1358 +Problem: Compilation error with some compilers. +Solution: Avoid using "class" as member name. + +Patch 9.0.1359 +Problem: Too many "else if" statements in handling options. +Solution: Add more functions for handling option changes. (Yegappan + Lakshmanan, closes #12060) + +Patch 9.0.1360 +Problem: Cue files are not recognized. +Solution: Add patterns for Cue files. (Amaan Qureshi, closes #12067) + +Patch 9.0.1361 +Problem: extendnew() not sufficiently tested. +Solution: Add a few more test cases for extendnew(). (closes #12075) + +Patch 9.0.1362 +Problem: ml_get error when going to another tab. (Daniel J. Perry) +Solution: Do not call update_topline() if "curwin" is invalid. + (closes #11907) + +Patch 9.0.1363 +Problem: Crash when :def function has :break in skipped block. (Ernie Rael) +Solution: Don't generate a jump for a skipped :break. (closes #12077) + +Patch 9.0.1364 +Problem: Build error with older Mac OS. +Solution: Adjust #ifdef. (Yee Cheng Chin, closes #12074) + +Patch 9.0.1365 +Problem: Dead test code. +Solution: Remove code that depends on Farsi, which has been removed. + (closes #12084) + +Patch 9.0.1366 +Problem: Functions for setting options are in random order. +Solution: Sort functions alphabetically. (Yegappan Lakshmanan, + closes #12082) + +Patch 9.0.1367 +Problem: Divide by zero in zero-width window. +Solution: Check the width is positive. + +Patch 9.0.1368 +Problem: Bass files are not recognized. +Solution: Add patterns for Bass files. (Amaan Qureshi, closes #12088) + +Patch 9.0.1369 +Problem: Still some "else if" constructs for setting options. +Solution: Add a few more functions for handling options. (Yegappan + Lakshmanan, closes #12090) + +Patch 9.0.1370 +Problem: Crash when using a NULL object. (Ernie Rael) +Solution: Check for NULL and give an error message. (closes #12083) + +Patch 9.0.1371 +Problem: Ballooneval interferes with Insert completion. +Solution: Ignore mouse-move events when completing. (closes #12094, + closes #12092) + +Patch 9.0.1372 +Problem: Test for 'toolbariconsize' may fail. +Solution: Only test 'toolbariconsize' when it is supported. (James McCoy, + closes #12095) + +Patch 9.0.1373 +Problem: Wrong text displayed when using both 'linebreak' and 'list'. +Solution: Only set "c_extra" to NUL when "p_extra" is not empty. (Hirohito + Higashi, closes #12065) + +Patch 9.0.1374 +Problem: Function for setting options not used consistently. +Solution: Use a function for 'encoding' and terminal options. (Yegappan + Lakshmanan, closes #12099) + +Patch 9.0.1375 +Problem: Crash when getting member of obj of unknown class. +Solution: Check for NULL class and give an error message. (Ernie Rael, + closes #12096) + +Patch 9.0.1376 +Problem: Accessing invalid memory with put in Visual block mode. +Solution: Adjust the cursor column if needed. + +Patch 9.0.1377 +Problem: job_status() may return "dead" if the process parent changed. +Solution: Call mch_process_running() to check if the job is still alive. + +Patch 9.0.1378 +Problem: Illegal memory access when using virtual editing. +Solution: Make sure "startspaces" is not negative. + +Patch 9.0.1379 +Problem: Functions for handling options are not ordered. +Solution: Put functions in alphabetical order. (Yegappan Lakshmanan, + closes #12101) + +Patch 9.0.1380 +Problem: CTRL-X on 2**64 subtracts two. (James McCoy) +Solution: Correct computation for large number. (closes #12103) + +Patch 9.0.1381 +Problem: ACCESS_ names have a conflict with on some systems. +Solution: Rename by prepending VIM_. (Ola Söder, closes #12105) + +Patch 9.0.1382 +Problem: Failing test for strptime() doesn't show returned value. +Solution: Use assert_equal() instead of assert_true(). + +Patch 9.0.1383 +Problem: xxd: combination of little endian and cols fails. (Aapo + Rantalainen) +Solution: Round up the space taken by the hex output. (closes #12097) + +Patch 9.0.1384 +Problem: Setting HOMEBREW_NO_AUTO_UPDATE is not needed with Homebrew + version 4. +Solution: Remove setting HOMEBREW_NO_AUTO_UPDATE. (closes #12008) + +Patch 9.0.1385 +Problem: g'Esc is considered an error. +Solution: Make g'Esc silently abandon the command. (closes #12110) + +Patch 9.0.1386 +Problem: Options test fails with some window width. +Solution: Adjust what text the test checks with. (closes #12111) + +Patch 9.0.1387 +Problem: Scrollbar test sporadically fails. +Solution: Mark the scrollbar test as flaky. (Christian Brabandt, + closes #12113) + +Patch 9.0.1388 +Problem: Amiga: not all builds use gethostname(). +Solution: Use gethostname() for all builds except AROS. (Ola Söder, + closes #12107) + +Patch 9.0.1389 +Problem: Amiga: a couple of include files are included twice. +Solution: Remove duplicate includes. (Ola Söder, closes #12106) + +Patch 9.0.1390 +Problem: FOR_ALL_ macros are defined in an unexpected file. +Solution: Move FOR_ALL_ macros to macros.h. Add FOR_ALL_HASHTAB_ITEMS. + (Yegappan Lakshmanan, closes #12109) + +Patch 9.0.1391 +Problem: "clear" macros are not always used. +Solution: Use ALLOC_ONE, VIM_CLEAR, CLEAR_POINTER and CLEAR_FIELD in more + places. (Yegappan Lakshmanan, closes #12104) + +Patch 9.0.1392 +Problem: Using NULL pointer with nested :open command. +Solution: Check that ccline.cmdbuff is not NULL. + +Patch 9.0.1393 +Problem: Cairo files are not recognized. +Solution: Add a pattern for Cairo files. (Amaan Qureshi, closes #12118) + +Patch 9.0.1394 +Problem: Unx Tal files are not recognized. +Solution: Add a pattern for Unx Tal files. (Amaan Qureshi, closes #12117) + +Patch 9.0.1395 +Problem: Odin files are not recognized. +Solution: Add a pattern for Odin files. (Amaan Qureshi, closes #12122) + +Patch 9.0.1396 +Problem: sort(list, 'N') does not work in Vim9 script context. +Solution: Convert string to number without giving an error. (closes #12061) + +Patch 9.0.1397 +Problem: Highlight for popupmenu kind and extra cannot be set. +Solution: Add PmenuKind, PmenuKindSel, PmenuExtra and PmenuExtraSel + highlight groups and use them. (Gianmaria Bajo, closes #12114) + +Patch 9.0.1398 +Problem: Profile test repeats the headers many times. +Solution: Put the headers in script variables. + +Patch 9.0.1399 +Problem: Highlight test script has a few problems. +Solution: Rewrite the script in Vim9 syntax. (closes #10379) + +Patch 9.0.1400 +Problem: find_file_in_path() is not reentrant. +Solution: Instead of global variables pass pointers to the functions. + (closes #12093) + +Patch 9.0.1401 +Problem: Condition is always true. +Solution: Remove the condition. (closes #12139) + +Patch 9.0.1402 +Problem: Crash when using null_class. +Solution: Give an error when trying to use a null class. + +Patch 9.0.1403 +Problem: Unused variables and functions. +Solution: Delete items and adjust #ifdefs. (Dominique Pellé, closes #12145) + +Patch 9.0.1404 +Problem: Compilation error with some compilers. +Solution: Adjust array initialization. (John Marriott) + +Patch 9.0.1405 +Problem: Missing check for out-of-memory. +Solution: Check for alloc() returning NULL pointer. (closes #12149) + +Patch 9.0.1406 +Problem: ILE RPG files are not recognized. +Solution: Add patterns for ILE RPG files. (Andreas Louv, issue #12152) + +Patch 9.0.1407 +Problem: TableGen files are not recognized. +Solution: Add a pattern for TableGen files. (Amaan Qureshi, closes #12156) + +Patch 9.0.1408 +Problem: QMLdir files are not recognized. +Solution: Add a pattern for QMLdir files. (Amaan Qureshi, closes #12161) + +Patch 9.0.1409 +Problem: Racket files are recognized as scheme. +Solution: Recognize rackets files separately. (Gabriel Kakizaki, + closes #12164, closes #12162) + +Patch 9.0.1410 +Problem: MacOS: sed fails on .po files. +Solution: Set $LANG to "C". (Yee Cheng Chin, closes #12153) + +Patch 9.0.1411 +Problem: Accuracy of profiling is not optimal. +Solution: Use CLOCK_MONOTONIC if possible. (Ernie Rael, closes #12129) + +Patch 9.0.1412 +Problem: Pony files are not recognized. +Solution: Add a pattern for Pony files. (Amaan Qureshi, closes #12155) + +Patch 9.0.1413 +Problem: Compiler warning for unused variable. +Solution: Move variable declaration. (John Marriott) + +Patch 9.0.1414 +Problem: in Kitty does not use the Shift modifier. +Solution: Apply the Shift modifier to ASCII letters. (closes #11913) + +Patch 9.0.1415 +Problem: Crystal files are not recognized. +Solution: Add a pattern for Crystal files. (Amaan Qureshi, closes #12175) + +Patch 9.0.1416 +Problem: Crash when collection is modified when using filter(). +Solution: Lock the list/dict/blob. (Ernie Rael, closes #12183) + +Patch 9.0.1417 +Problem: ESDL files are not recognized. +Solution: Add a pattern for ESDL files. (Amaan Qureshi, closes #12174) + +Patch 9.0.1418 +Problem: The included xdiff code is a bit outdated. +Solution: Sync with the latest git xdiff code. (Yee Cheng Chin, + closes #12181) + +Patch 9.0.1419 +Problem: Lean files are not recognized. +Solution: Add a pattern for Lean files. (Amaan Qureshi, closes #12177) + +Patch 9.0.1420 +Problem: Build failure because SIZE_MAX is not defined. +Solution: Define SIZE_MAX when missing. (John Marriott) + +Patch 9.0.1421 +Problem: Nu files are not recognized. +Solution: Add a pattern for Nu files. (Amaan Qureshi, closes #12172) + +Patch 9.0.1422 +Problem: Sage files are not recognized. +Solution: Add a pattern for Sage files. (Amaan Qureshi, closes #12176) + +Patch 9.0.1423 +Problem: WebAssembly Interface Type files are not recognized. +Solution: Add a pattern for WIT files. (Amaan Qureshi, closes #12173) + +Patch 9.0.1424 +Problem: Unused macros are defined. +Solution: Remove the unused macros. + +Patch 9.0.1425 +Problem: "wat" and "wast" files are one filetype. +Solution: Add a separate filetype for "wat" files. (Amaan Qureshi, + closes #12165) + +Patch 9.0.1426 +Problem: Indent wrong after "export namespace" in C++. +Solution: Skip over "inline" and "export" in any order. (Virginia Senioria, + closes #12134, closes #12133) + +Patch 9.0.1427 +Problem: Warning for uninitialized variable. (Tony Mechelynck) +Solution: Add #ifdef. + +Patch 9.0.1428 +Problem: Cursor in wrong position when leaving insert mode. +Solution: Update the w_valid flags. Position the cursor also when not + redrawing. (closes #12137) + +Patch 9.0.1429 +Problem: Invalid memory access when ending insert mode. +Solution: Check if the insert_skip value is valid. + +Patch 9.0.1430 +Problem: Livebook files are not recognized. +Solution: Add a pattern for Livebook files. (Mathias Jean Johansen, + closes #12203) + +Patch 9.0.1431 +Problem: getscriptinfo() loops even when specific SID is given. +Solution: Only loop when needed. Give a clearer error message. + (closes #12207) + +Patch 9.0.1432 +Problem: Completion popup in wrong position with virtual text "above". +Solution: Adjust the column. (closes #12210) + +Patch 9.0.1433 +Problem: On some systems the Lua library is not found. +Solution: Check if a subdirectory for Lua exists. (closes #4475) + +Patch 9.0.1434 +Problem: Crash when adding package already in 'runtimepath'. +Solution: Change order for using 'runtimepath' entries. (closes #12215) + +Patch 9.0.1435 +Problem: Scrolling too many lines when 'wrap' and 'diff' are set. +Solution: Only scroll by screenlines for 'diff' when 'wrap' is not set. + (closes #12211) + +Patch 9.0.1436 +Problem: Cannot compare a typed variable with v:none. +Solution: Allow for "x is v:none" and "x isnot v:none". (issue #12194) + +Patch 9.0.1437 +Problem: Test fails with different error number. +Solution: Adjust the expected error. + +Patch 9.0.1438 +Problem: .fs files are falsely recognized as forth files. +Solution: Check 100 lines for something that looks like forth. (Johan + Kotlinski, closes #12219, closes #11988) + +Patch 9.0.1439 +Problem: Start Insert mode when accessing a hidden prompt buffer. +Solution: Call leaving_window() in aucmd_restbuf(). (Thorben Tröbst, + closes #12148, closes #12147) + +Patch 9.0.1440 +Problem: "rvim" can execute a shell through :diffpatch. +Solution: Disallow the shell "patch" command. + +Patch 9.0.1441 +Problem: MacOS: Python 3 using framework do not set dll name properly. +Solution: Use the framework prefix. (Yee Cheng Chin, closes #12189) + +Patch 9.0.1442 +Problem: mapset() does not restore non-script context. +Solution: Also accept negative sid. (closes #12132) + +Patch 9.0.1443 +Problem: Ending Insert mode when accessing a hidden prompt buffer. +Solution: Don't stop Insert mode when it was active before. (closes #12237) + +Patch 9.0.1444 +Problem: Crash when passing NULL to setcmdline(). (Andreas Louv) +Solution: Use tv_get_string() instead of using v_string directly. + (closes #12231, closes #12227) + +Patch 9.0.1445 +Problem: openSUSE: configure doesn't find the Motif library. (Tony + Mechelynck) +Solution: Also search in /usr/lib64. + +Patch 9.0.1446 +Problem: Unnecessary checks for the "skip" flag when skipping. +Solution: Remove the unnecessary checks. (closes #12254) + +Patch 9.0.1447 +Problem: Condition is always true. +Solution: Remove the useless condition. (closes #12253) + +Patch 9.0.1448 +Problem: Diff test fails on MacOS 13. +Solution: Install GNU diffutils. (Ozaki Kiichi, closes #12258) + +Patch 9.0.1449 +Problem: Test for prompt buffer is flaky. +Solution: Use WaitForAssert() instead of TermWait(). (Ozaki Kiichi, + closes #12247) + +Patch 9.0.1450 +Problem: MacOS: building fails if clock_gettime() is not available. +Solution: Add a configure check for clock_gettime(). (closes #12242) + +Patch 9.0.1451 +Problem: Unnecessary redrawing when 'showcmdloc' is not "last". +Solution: Redraw later when "showcmd_is_clear" is set. (Luuk van Baal, + closes #12260) + +Patch 9.0.1452 +Problem: Code using EVAL_CONSTANT is dead, it is never set. +Solution: Remove EVAL_CONSTANT. (closes #12252) + +Patch 9.0.1453 +Problem: Typos in source code and tests. +Solution: Fix the typos. (Dominique Pellé, closes #12217) + +Patch 9.0.1454 +Problem: Code indenting is confused by macros. +Solution: Put semicolon after the macros instead of inside. (Ozaki Kiichi, + closes #12257) + +Patch 9.0.1455 +Problem: C++ 20 modules are not recognized. +Solution: Add patterns to recognize C++ 20 modules as "cpp". (Ben Jackson, + closes #12261) + +Patch 9.0.1456 +Problem: Shortmess test depends on order of test execution. +Solution: Clear messages. (closes #12264) + +Patch 9.0.1457 +Problem: No regression test for what patch 9.0.1333 fixes. +Solution: Extend existing test to cover the fixed problem. (issue #11930) + +Patch 9.0.1458 +Problem: Buffer overflow when expanding long file name. +Solution: Use a larger buffer and avoid overflowing it. (Yee Cheng Chin, + closes #12201) + +Patch 9.0.1459 +Problem: Typo in name of type. +Solution: Change funccal_T to funccall_T. (closes #12265) + +Patch 9.0.1460 +Problem: Insufficient testing for getcmdcompltype(). +Solution: Add a few more test cases. (closes #12268) + +Patch 9.0.1461 +Problem: Ruler not drawn correctly when using 'rulerformat'. +Solution: Adjust formatting depending on whether the ruler is drawn in the + statusline or the command line. (Sean Dewar, closes #12246) + +Patch 9.0.1462 +Problem: Recursively calling :defer function if it does :qa. +Solution: Clear the defer entry before calling the function. (closes #12266) + +Patch 9.0.1463 +Problem: Virtual text truncation only works with Unicode 'encoding'. +Solution: Convert the ellipsis character to 'encoding' if needed. (Hirohito + Higashi, closes #12233) + +Patch 9.0.1464 +Problem: Strace filetype detection is expensive. +Solution: Match with a cheap pattern first. (Federico Mengozzi, + closes #12220) + +Patch 9.0.1465 +Problem: Haiku build fails. +Solution: Do not include globals.h and proto.h twice. (Ozaki Kiichi, + closes #12273) + +Patch 9.0.1466 +Problem: Cannot use an object member name as a method argument. +Solution: Do not give an error for using an object member name for a method + argument. (Hirohito Higashi, closes #12241, closes #12225) + Fix line number for other argument error. + +Patch 9.0.1467 +Problem: Jenkinsfiles are not recognized as groovy. +Solution: Add a pattern for Jenkinsfiles. (closes #12236) + +Patch 9.0.1468 +Problem: Recursively calling :defer function if it does :qa in a compiled + function. +Solution: Clear the defer entry before calling the function. (closes #12271) + +Patch 9.0.1469 +Problem: Deferred functions not called from autocommands. +Solution: Also go through the funccal_stack. (closes #12267) + +Patch 9.0.1470 +Problem: Deferred functions invoked in unexpected order when using :qa and + autocommands. +Solution: Call deferred functions for the current funccal before using the + stack. (closes #12278) + +Patch 9.0.1471 +Problem: Warnings for function declarations. +Solution: Add argument types. (Michael Jarvis, closes #12277) + +Patch 9.0.1472 +Problem: ":drop fname" may change the last used tab page. +Solution: Restore the last used tab page when :drop has changed it. + (closes #12087) + +Patch 9.0.1473 +Problem: CI does not run sound tests. +Solution: Re-enable sound tests. Use "apt-get" instead of "apt". (Ozaki + Kiichi, closes #12280) + +Patch 9.0.1474 +Problem: CI runs with old version of Ubuntu and tools. +Solution: Update CI to more recent versions. (closes #11092) + +Patch 9.0.1475 +Problem: Busted configuration files are not recognized. +Solution: Recognize busted configuration files as Lua. (Craig MacEachern, + closes #12209) + +Patch 9.0.1476 +Problem: Lines put in non-current window are not displayed. (Marius + Gedminas) +Solution: Don't increment the topline when inserting just above it. + (closes #12212) + +Patch 9.0.1477 +Problem: Crash when recovering from corrupted swap file. +Solution: Check for a valid page count. (closes #12275) + +Patch 9.0.1478 +Problem: Filetypes for *.v files not detected properly. +Solution: Use the file contents to detect the filetype. (Turiiya, + closes #12281) + +Patch 9.0.1479 +Problem: Small source file problems; outdated list of distributed files. +Solution: Small updates to source files and list of distributed files. + +Patch 9.0.1480 +Problem: Using popup menu may leave text in the command line. +Solution: Clear the command line if the popup menu covered it. (Luuk van + Baal, closes #12286) + +Patch 9.0.1481 +Problem: Decrypting with libsodium may fail if the library changes. +Solution: Add parameters used to the encrypted file header. (Christian + Brabandt, closes #12279) + +Patch 9.0.1482 +Problem: Crash when textprop has a very large "padding" value. (Yegappan + Lakshmanan) +Solution: Avoid the "after" count to go negative. + +Patch 9.0.1483 +Problem: += operator does not work on class member. +Solution: Do not skip as if "this." was used. (Christian Brabandt, + closes #12263) + +Patch 9.0.1484 +Problem: Coverity warns for using invalid array index. +Solution: Add entry for Xchacha, even though it is not used. + +Patch 9.0.1485 +Problem: no functions for converting from/to UTF-16 index. +Solution: Add UTF-16 flag to existing functions and add strutf16len() and + utf16idx(). (Yegappan Lakshmanan, closes #12216) + +Patch 9.0.1486 +Problem: Parallel make might not work. +Solution: Add missing dependencies. (Samuel Dionne-Riel, closes #12288) + +Patch 9.0.1487 +Problem: Content-type header for LSP channel not according to spec. +Solution: Use "vscode-jsonrpc" instead of "vim-jsonrpc". (Yegappan + Lakshmanan, closes #12295) + +Patch 9.0.1488 +Problem: xchacha20v2 crypt header is platform dependent. +Solution: Avoid using "size_t". (Ozaki Kiichi, closes #12296) + +Patch 9.0.1489 +Problem: Crypt with libsodium is not tested on CI. +Solution: Configure testing with libsodium. (Ozaki Kiichi, closes #12297) + +Patch 9.0.1490 +Problem: The ModeChanged event may be triggered too often. +Solution: Only trigger ModeChanged when no operator is pending. + (closes #12298) + +Patch 9.0.1491 +Problem: Wrong scrolling with ls=0 and :botright split. +Solution: Add statusline before calling frame_new_height(). (closes #12299) + +Patch 9.0.1492 +Problem: Using uninitialized memory when argument is missing. +Solution: Check there are sufficient arguments before the base. + (closes #12302) + +Patch 9.0.1493 +Problem: Popup menu position wrong in window with toolbar. +Solution: Take the window toolbar into account when positioning the popup + menu. (closes #12308) + +Patch 9.0.1494 +Problem: Crash when recovering from corrupted swap file. +Solution: Bail out when the line index looks wrong. (closes #12276) + +Patch 9.0.1495 +Problem: GTK3: hiding the mouse pointer does not work. (Rory O’Kane) +Solution: Set alpha level to zero. (Kenny Stauffer, closes #12293, + closes #3256) + +Patch 9.0.1496 +Problem: Test restoring register with wrong value. +Solution: Correct name of variable. (closes #12310) + +Patch 9.0.1497 +Problem: The ruler percentage can't be localized. +Solution: Use a string that can be translated. (Emir Sari, closes #12311) + +Patch 9.0.1498 +Problem: In a terminal window the cursor may jump around. (Kenny Stauffer) +Solution: Do not move the cursor to the position for terminal-normal mode. + (closes #12312) + +Patch 9.0.1499 +Problem: Using uninitialized memory with fuzzy matching. +Solution: Initialize the arrays used to store match positions. + +Patch 9.0.1500 +Problem: The falsy operator is not tested properly. +Solution: Add a few more test cases. (closes #12319) + +Patch 9.0.1501 +Problem: Crash with nested :try and :throw in catch block. +Solution: Jump to :endtry before returning from function. (closes #12245) + +Patch 9.0.1502 +Problem: No test for deleting the end of a long wrapped line. +Solution: Add a test to check the right text is displayed. (Luuk van Baal, + closes #12318) + +Patch 9.0.1503 +Problem: Luau files are not recognized. +Solution: Add a patter for Luau files. (Amaan Qureshi, closes #12317) + +Patch 9.0.1504 +Problem: No error when calling remote_startserver() with an empty string. +Solution: Give an error for an empty string. (Hirohito Higashi, + closes #12327) + +Patch 9.0.1505 +Problem: Error when heredoc content looks like heredoc. +Solution: Handle curly expressions. (closes #12325) + +Patch 9.0.1506 +Problem: Line number not displayed when using 'smoothscroll'. +Solution: Adjust condition for showing the line number. (closes #12333) + +Patch 9.0.1507 +Problem: Assert message is confusing with boolean result. assert_inrange() + replaces message instead of adding it. +Solution: Don't put quotes around expected boolean value. Append message + for assert_inrange(). (closes #12342, closes #12341) + +Patch 9.0.1508 +Problem: Catch does not work when lines are joined with a newline. +Solution: Set "nextcmd" appropriately. (closes #12348) + +Patch 9.0.1509 +Problem: Error message lacks mentioning the erroneous argument. +Solution: Specify the argument that the error is for. + +Patch 9.0.1510 +Problem: Misleading variable name for error message. +Solution: Change "name" to "number". (closes #12345) + +Patch 9.0.1511 +Problem: Crash when using wrong arg types to assert_match(). +Solution: Check for NULL pointer. (closes #12349) + +Patch 9.0.1512 +Problem: Inserting lines when scrolling with 'smoothscroll' set. +Solution: Adjust line height computation for w_skipcol. (Luuk van Baal, + closes #12350) + +Patch 9.0.1513 +Problem: Text scrolls unnecessarily when splitting and 'splitkeep' is not + "cursor". +Solution: Avoid resetting w_skipcol. (Luuk van Baal, closes #12334) + +Patch 9.0.1514 +Problem: Test waits unnecessarily long before checking screendump. +Solution: Remove TermWait() call. + +Patch 9.0.1515 +Problem: reverse() does not work for a String. +Solution: Implement reverse() for a String. (Yegappan Lakshmanan, + closes #12179) + +Patch 9.0.1516 +Problem: Cannot use special keys in mapping. +Solution: Do allow for special keys in and mappings. + (closes #12326) + +Patch 9.0.1517 +Problem: MacOS: configure removes -O2 from $CFLAGS. +Solution: Only adjust $CFLAGS for gcc. (closes #12351) + +Patch 9.0.1518 +Problem: Search stats not always visible when searching backwards. +Solution: Do not display the top/bot message on top of the search stats. + (Christian Brabandt, closes #12322, closes #12222) + +Patch 9.0.1519 +Problem: Global 'filetype' is set when it is detected from the file content. +Solution: Set the local 'filetype' option value. + +Patch 9.0.1520 +Problem: Completion for option name includes all bool options. +Solution: Do not recognize the "noinv" prefix. Prefix "no" or "inv" when + appropriate. + +Patch 9.0.1521 +Problem: Failing redo of command with control characters. +Solution: Use AppendToRedobuffLit() for colon commands. (closes #12354) + +Patch 9.0.1522 +Problem: Some functions give two error messages. +Solution: Do not give a second error message. (closes #12352) + +Patch 9.0.1523 +Problem: Some error messages are not marked for translation. +Solution: Surround the messages in _(). (closes #12356) + +Patch 9.0.1524 +Problem: Passing -1 for bool is not always rejected. +Solution: Check for error in a better way. (closes #12358) + +Patch 9.0.1525 +Problem: 'smoothscroll' does not always work properly. +Solution: Do not reset w_skipcol after it was intentionally set. (Luuk van + Baal, closes #12360, closes #12199, closes #12323) + +Patch 9.0.1526 +Problem: Condition is always true. +Solution: Remove unnecessary condition. (closes #12359) + +Patch 9.0.1527 +Problem: Crash when using negative value for term_cols. +Solution: Check for invalid term_cols value. (Kenta Sato, closes #12362) + +Patch 9.0.1528 +Problem: Libsodium encryption is only used with "huge" features, even when + manually enabled through configure. (Tony Mechelynck) +Solution: Remove the condition on FEAT_HUGE. + +Patch 9.0.1529 +Problem: Code style test doesn't check for space after "if". +Solution: Add a test for space. + +Patch 9.0.1530 +Problem: Cursor moves to wrong line when 'foldmethod' is "diff". (Rick + Howe) +Solution: Adjust logic for scrolling. (Luuk van Baal, closes #12364, + closes #12218) + +Patch 9.0.1531 +Problem: Crash when register contents ends up being invalid. +Solution: Check "y_array" is not NULL. + +Patch 9.0.1532 +Problem: Crash when expanding "~" in substitute causes very long text. +Solution: Limit the text length to MAXCOL. + +Patch 9.0.1533 +Problem: Test for 'smoothscroll' is ineffective. +Solution: Change the order of testing "zb" and "zt". (Luuk van Baal, + closes #12366) + +Patch 9.0.1534 +Problem: Test for expanding "~" in substitute takes too long. +Solution: Disable the test for now. + +Patch 9.0.1535 +Problem: Test commented out in a wrong way. +Solution: Use legacy script comment character. + +Patch 9.0.1536 +Problem: CI: sound dummy stopped working. +Solution: Temporarily stop using sound dummy. + +Patch 9.0.1537 +Problem: Message for opening the cmdline window is not translated. +Solution: Add gettext() and scan the defaults script for text to be + translated. (closes #12371) + +Patch 9.0.1538 +Problem: :wqall does not trigger ExitPre. (Bart Libert) +Solution: Move preparations for :qall to a common function. (closes #12374) + +Patch 9.0.1539 +Problem: Typst filetype is not recognized. +Solution: Distinguish between sql and typst. (Gaetan Lepage, closes #12363) + +Patch 9.0.1540 +Problem: reverse() on string doesn't work in compiled function. +Solution: Accept string in argument type check. (Yegappan Lakshmanan, + closes #12377) + +Patch 9.0.1541 +Problem: CI: sound dummy is disabled. +Solution: Make sound dummy work again. (closes #12380) + +Patch 9.0.1542 +Problem: Line not fully displayed if it doesn't fit in the screen. +Solution: Do not reset s_skipcol if not needed. (Luuk van Baal, + closes #12376) + +Patch 9.0.1543 +Problem: Display errors when making topline shorter and 'smoothscroll' is + set. +Solution: Reset w_skipcol when the topline becomes shorter than its current + value. (Luuk van Baal, closes #12367) + +Patch 9.0.1544 +Problem: Recent glibc marks sigset() as a deprecated. +Solution: Use sigaction() in mch_signal() if possible. (Ozaki Kiichi, + closes #12373) + +Patch 9.0.1545 +Problem: Text not scrolled when cursor moved with "g0" and "h". +Solution: Adjust w_skipcol when needed. (Luuk van Baal, closes #12387) + +Patch 9.0.1546 +Problem: Some commands for opening a file don't use 'switchbuf'. +Solution: Use 'switchbuf' for more commands. (Yegappan Lakshmanan, + closes #12383, closes #12381) + +Patch 9.0.1547 +Problem: Coveralls workflow on CI is commented out. +Solution: Remove the Coveralls workflow. (closes #12389) + +Patch 9.0.1548 +Problem: CI: check in sound-dummy module may throw an error. +Solution: Check whether apt-cache can show the package description. + (Christian Brabandt, closes #12390) + +Patch 9.0.1549 +Problem: USD filetype is not recognized. +Solution: Add patterns for USD filetype. (Colin Kennedy, closes #12370) + +Patch 9.0.1550 +Problem: In cmdline window S-Tab does not select previous completion. + (Maxim Kim) +Solution: Add a mapping for S-Tab. (closes #12116) + +Patch 9.0.1551 +Problem: Position of marker for 'smoothscroll' not computed correctly. +Solution: Take 'list' and other options into account. (Luuk van Baal, + closes #12393) + +Patch 9.0.1552 +Problem: CI: sound-dummy module is not installed. +Solution: Invert using the result of the condition. (closes #12394) + +Patch 9.0.1553 +Problem: CI: using slightly outdated gcc version. +Solution: Use "brew" to get a more recent gcc version. (closes #12391) + +Patch 9.0.1554 +Problem: Code for handling 'switchbuf' is repeated. +Solution: Add a function to handle 'switchbuf'. (Yegappan Lakshmanan, + closes #12397) + +Patch 9.0.1555 +Problem: setcharsearch() does not clear last searched char properly. +Solution: Do not accept lastc_bytelen smaller than one. (closes #12398) + +Patch 9.0.1556 +Problem: Vim9: error for missing "return" after "throw". +Solution: Set had_return flag for "throw". (closes #12262) + +Patch 9.0.1557 +Problem: Test failures for unreachable code. +Solution: Add a test override to ignore unreachable code. + +Patch 9.0.1558 +Problem: Wrong error for unreachable code after :throw. +Solution: Adjust the error message. + +Patch 9.0.1559 +Problem: Function argument types not always checked and using v:none may + cause an error. +Solution: Check argument types once the function type is known. Do not give + an error for using v:none as an argument. (closes #12200) + +Patch 9.0.1560 +Problem: Win32: When 'encoding' is set $PATH has duplicate entries. +Solution: Only append the directory if it is not there yet. (Ken Takata, + closes #12400, closes #12372) + +Patch 9.0.1561 +Problem: Display wrong when moving cursor to above the top line and + 'smoothscroll' is set. +Solution: Call adjust_skipcol() in more places and make it work better. + (Luuk van Baal, closes #12395) + +Patch 9.0.1562 +Problem: Mixing package managers is not a good idea. +Solution: Install gcc 13 with apt-get. (closes #12405) + +Patch 9.0.1563 +Problem: GTK3: window manager resize hints are incomplete. +Solution: Use NULL for second argument of gtk_window_set_geometry_hints(). + (Kenny Stauffer closes #11055) + +Patch 9.0.1564 +Problem: Display moves up and down with 'incsearch' and 'smoothscroll'. +Solution: Do not check if w_skipcol changed. (Luuk van Baal, closes #12410, + closes #12409) + +Patch 9.0.1565 +Problem: Json lines files are not recognized. +Solution: Add a pattern to detect "jsonl" files. (issue #7520) + +Patch 9.0.1566 +Problem: Motif: GUI scrollbar test fails in 24 lines terminal. +Solution: Skip the part of the test that fails for now. + +Patch 9.0.1567 +Problem: Profiler calculation may be wrong on 32 bit builds. +Solution: Use 64 bit variable if possible. (Isao Sato, closes #12412) + +Patch 9.0.1568 +Problem: With 'smoothscroll' cursor may move below botline. +Solution: Call redraw_later() if needed, Compute cursor row with adjusted + condition. (Luuk van Baal, closes #12415) + +Patch 9.0.1569 +Problem: Cannot use "this.member" in lambda in class method. +Solution: Adjust check for reserved keyword. (Hirohito Higashi, + closes #12416, closes #12076, closes #12336) + +Patch 9.0.1570 +Problem: Some tests are slow. +Solution: Make a few test cases faster. + +Patch 9.0.1571 +Problem: RedrawingDisabled not used consistently. +Solution: Avoid RedrawingDisabled going negative. Set RedrawingDisabled in + win_split_ins(). (closes #11961) + +Patch 9.0.1572 +Problem: Error messages are not translated. +Solution: Add _(). + +Patch 9.0.1573 +Problem: Error for function name has wrong line number. +Solution: Set the line number before giving the error. + +Patch 9.0.1574 +Problem: MS-Windows: list of translation input files incomplete. +Solution: Move the list of files to a common file. (closes #12426) + +Patch 9.0.1575 +Problem: "file N of M" message is not translated. +Solution: Make argument count message translatable. (close #12429) + +Patch 9.0.1576 +Problem: Users may not know what to do with an internal error. +Solution: Add a translated message with instructions. + +Patch 9.0.1577 +Problem: MS-Windows: context menu translations may be wrong. +Solution: Set the encoding before using gettext(). (Ken Takata, + closes #12441, closes #12431) + +Patch 9.0.1578 +Problem: SpellCap highlight not always updated when needed. +Solution: Handle updating line below closed fold and other situations where + only part of the window is redrawn. (Luuk van Baal, closes #12428, + closes #12420) + +Patch 9.0.1579 +Problem: Some error messages are not translated. +Solution: Add the N_() marker on messages. (closes #12427) + +Patch 9.0.1580 +Problem: CI: indent test hangs on FreeBSD. +Solution: Set 'nomore' when running the indent tests. (Ozaki Kiichi, + closes #12446) + +Patch 9.0.1581 +Problem: Translation does not work for plural argument. +Solution: Use PLURAL_MSG() for errors and with xgettext. (closes #12443) + +Patch 9.0.1582 +Problem: :stopinsert may not work in a popup close handler. (Ben Jackson) +Solution: Restore stop_insert_mode when appropriate. (closes #12452, + closes #12434) + +Patch 9.0.1583 +Problem: Get E304 when using 'cryptmethod' "xchacha20v2". (Steve Mynott) +Solution: Add 4th crypt method to block zero ID check. Avoid syncing a swap + file before reading the file. (closes #12433) + +Patch 9.0.1584 +Problem: Not all meson files are recognized. +Solution: Add "meson.options". (Liam Beguin, closes #12444) + +Patch 9.0.1585 +Problem: Weird use of static variables for spell checking. +Solution: Move the variables to a structure and pass them from win_update() + to win_line(). (Luuk van Baal, closes #12448) + +Patch 9.0.1586 +Problem: Checking translations gives an error for using two messages with + ngettext() that differ in "%" items. +Solution: Adjust the check script to tolerate omitting one "%" item. + +Patch 9.0.1587 +Problem: Corn config files are not recognized. +Solution: Add a pattern for Corn config files. (Jake Stanger, closes #12449) + +Patch 9.0.1588 +Problem: Incsearch not triggered when pasting clipboard register on the + command line. +Solution: Also set "literally" when using a clipboard register. (Ken Takata, + closes #12460) + +Patch 9.0.1589 +Problem: Filetype test contains too many special characters. +Solution: Use Vim9 syntax for a few things. + +Patch 9.0.1590 +Problem: Filetype test has trailing white space. +Solution: Remove trailing white space. + +Patch 9.0.1591 +Problem: Some "gomod" files are not recognized. +Solution: Check for "go.mod" file name before checking out the contents. + (Omar El Halabi, closes #12462) + +Patch 9.0.1592 +Problem: Not all timer tests are marked as flaky. +Solution: Set the flaky flag for all timer tests. (closes #12355) + +Patch 9.0.1593 +Problem: MS-Windows: assert error when compiled with debug mode. +Solution: Adjust arguments to setvbuf(). (Ken Takata, closes #12467) + +Patch 9.0.1594 +Problem: Some internal error messages are translated. +Solution: Consistently do not translate internal error messages. + (closes #12459) + +Patch 9.0.1595 +Problem: Line pointer becomes invalid when using spell checking. +Solution: Call ml_get() at the right places. (Luuk van Baal, closes #12456) + +Patch 9.0.1596 +Problem: :registers command does not work in sandbox. +Solution: Add flag to the command. (closes #12473) + +Patch 9.0.1597 +Problem: Cursor ends up below the window after a put. +Solution: Mark w_crow and w_botline invalid when changing the cursor line. + (closes #12465) + +Patch 9.0.1598 +Problem: screenchar(), screenchars() and screenstring() do not work + properly when 'encoding' is set to a double-byte encoding. +Solution: Fix the way the bytes of the characters are obtained. + (issue #12469) + +Patch 9.0.1599 +Problem: Cursor not adjusted when near top or bottom of window and + 'splitkeep' is not "cursor". +Solution: Move boundary checks to outer cursor move functions, inner + functions should only return valid cursor positions. (Luuk van + Baal, closes #12480) + +Patch 9.0.1600 +Problem: screenpos() does not take w_skipcol into account. +Solution: Subtract w_skipcol from column. (closes #12486, closes #12476) + +Patch 9.0.1601 +Problem: Filetype detection fails for *.conf file without comments. + (Dmitrii Tcyganok) +Solution: Use "conf" filetype as a fallback for an empty .conf file. + (closes #12487, closes #12483) + +Patch 9.0.1602 +Problem: Stray character is visible if 'smoothscroll' marker is displayed + on top of a double-wide character. +Solution: When overwriting a double-width character with the 'smoothscroll' + marker clear the second half. (closes #12469) + +Patch 9.0.1603 +Problem: Display wrong when scrolling multiple lines with 'smoothscroll' + set. +Solution: Redraw when w_skipcol changed. (closes #12477, closes #12468) + +Patch 9.0.1604 +Problem: Errors from the codestyle test are a bit confusing. +Solution: Use assert_report() with a clearer message. Avoid a warning for + an existing swap file. + +Patch 9.0.1605 +Problem: Crash when calling method on super in child constructor. (Israel + Chauca Fuentes) +Solution: Clear the type list. (Ernie Rael, closes #12489, closes #12471) + +Patch 9.0.1606 +Problem: Using freed memory when 'foldcolumn' is set. +Solution: Save extra pointer to free it later. (closes #12492) + +Patch 9.0.1607 +Problem: screenpos() returns wrong row with diff filler lines. +Solution: Only add filler lines when appropriate. Also don't add the + 'smoothscroll' marker when w_skipcol is zero. (closes #12485, + closes #12484) + +Patch 9.0.1608 +Problem: update_topline() is called twice. +Solution: Do not call update_topline() before curs_columns(). (Luuk van + Baal, closes #12495) + +Patch 9.0.1609 +Problem: Crash when an object indirectly references itself. +Solution: Avoid clearing an object while it is already being cleared. + (closes #12494) + +Patch 9.0.1610 +Problem: Display is wrong when 'smoothscroll' is set and scrolling multiple + lines. +Solution: Redraw with UPD_NOT_VALID when "skipcol" is or was set. + (closes #12490, closes #12468) + +Patch 9.0.1611 +Problem: v:maxcol can be changed in a :for loop. +Solution: Check for read-only loop variable. (closes #12470) + +Patch 9.0.1612 +Problem: "skipcol" not reset when using multi-byte characters. +Solution: Compare with w_virtcol instead of w_cursor.col. (closes #12457) + +Patch 9.0.1613 +Problem: Some make output gets picked up by 'errorformat'. +Solution: Ignore make output by default. (Gregory Anders, closes #12481) + +Patch 9.0.1614 +Problem: strlen() called too often for :spellrepall. +Solution: Store the result in a variable. (closes #12497) + +Patch 9.0.1615 +Problem: URL shortcut files are not recognized. +Solution: Add a pattern for URL shortcut files. (closes #12474) + +Patch 9.0.1616 +Problem: Quickfix text field is truncated. +Solution: Fix output of text field after pattern field in quickfix buffer. + (Shane Harper, closes #12498) + +Patch 9.0.1617 +Problem: charidx() and utf16idx() result is not consistent with byteidx(). +Solution: When the index is equal to the length of the text return the + length of the text instead of -1. (Yegappan Lakshmanan, + closes #12503) + +Patch 9.0.1618 +Problem: Trace32 files are not recognized. +Solution: Add patterns for the t32 filetype. (Christoph Sax, closes #12505) + +Patch 9.0.1619 +Problem: The focus gained/lost escape sequences cause trouble for a + terminal where Vim does not expect them. +Solution: Always recognize the codes for focus gained/lost. (closes #12499) + +Patch 9.0.1620 +Problem: Nix files are not recognized from the hashbang line. +Solution: Add a hashbang check. (issue #12507) + +Patch 9.0.1621 +Problem: FILETYPE_FILE is defined to the same value multiple times. Same + for a few similar macros. +Solution: Define FILETYPE_FILE and others in feature.h only + +Patch 9.0.1622 +Problem: Filetype name t32 is a bit obscure. +Solution: Rename t32 to trace32. (Christoph Sax, closes #12512) + +Patch 9.0.1623 +Problem: The program to filetype translation is not exported. +Solution: Export Exe2filetype(). + +Patch 9.0.1624 +Problem: Crash when calling object constructor from legacy script. (Israel + Chauca Fuentes) +Solution: Pass a pointer for "ufunc". (closes #12502) + +Patch 9.0.1625 +Problem: "super" is not considered a reserved name. +Solution: Add "super" to the list of reserved names. (closes #12515) + +Patch 9.0.1626 +Problem: Visual area not shown when using 'showbreak' and start of line is + not visible. (Jaehwang Jung) +Solution: Adjust "fromcol" for the space taken by 'showbreak'. + (closes #12514) + +Patch 9.0.1627 +Problem: No generic mechanism to test syntax plugins. +Solution: Add a syntax plugin test mechanism, using screendumps. Add a + simple test for "c". + +Patch 9.0.1628 +Problem: Syntax tests fail on FreeBSD. +Solution: Pass the Vim executable path with VIMPROG. (Ken Takata, + closes #12535) Adjust the paths. + +Patch 9.0.1629 +Problem: Having utf16idx() rounding up is inconvenient. +Solution: Make utf16idx() round down. (Yegappan Lakshmanan, closes #12523) + +Patch 9.0.1630 +Problem: "make clean" at the toplevel fails. +Solution: Clean the indent and syntax directories in a sub-shell. (Ben + Jackson, closes #12536, closes #12526) + +Patch 9.0.1631 +Problem: Passing a wrong variable type to an option gives multiple errors. +Solution: Bail out early on failure. (closes #12504) + +Patch 9.0.1632 +Problem: Not all cabal config files are recognized. +Solution: Add a couple of patterns. (Marcin Szamotulski, closes #12463) + +Patch 9.0.1633 +Problem: Duplicate code for converting float to string. +Solution: Use tv_get_string(). (closes #12521) + +Patch 9.0.1634 +Problem: Message is cleared when removing mode message (Gary Johnson). +Solution: Do not clear the command line after displaying a message. + +Patch 9.0.1635 +Problem: Error message is cleared when removing mode message. +Solution: Also reset flags when the message is further down. + +Patch 9.0.1636 +Problem: Expanding a pattern interferes with command line completion. +Solution: Set the file index only when appropriate. (closes #12519) + +Patch 9.0.1637 +Problem: Compiler warning for uninitialized variable. +Solution: Move the variable to an inner block and initialize it. (Christian + Brabandt, closes #12549) + +Patch 9.0.1638 +Problem: crypt tests hang and cause memory errors +Solution: Move variable to start of function. + +Patch 9.0.1639 +Problem: Build failure without the crypt feature. +Solution: Adjust #ifdefs + +Patch 9.0.1640 +Problem: Compiler warning for unused variables without the crypt feature. +Solution: Adjust #ifdefs + +Patch 9.0.1641 +Problem: The log file does not give information about window sizes. +Solution: Add a few log messages about obtaining the window size. + +Patch 9.0.1642 +Problem: Build failure with tiny features. +Solution: Add #ifdef's. + +Patch 9.0.1643 +Problem: Filetype detection fails if file name ends in many '~'. +Solution: Strip multiple '~' at the same time. (closes #12553) + +Patch 9.0.1644 +Problem: Not all filetype file name matches are tested. +Solution: Add more file names to test with. (Jonas Strittmatter, + closes #12569) + +Patch 9.0.1645 +Problem: zserio files are not recognized. +Solution: Add a pattern for zserio files. (Dominique Pellé, + closes #12544) + +Patch 9.0.1646 +Problem: CI: codecov may take a very long time to run. +Solution: Add a timeout. (Philip Heiduck, closes #12559) + +Patch 9.0.1647 +Problem: Insufficient testing for syntax plugins. +Solution: Add shell file examples. (Charles Campbell) Create a messages + file for easier debugging and reporting the test results. + +Patch 9.0.1648 +Problem: Result of syntax tests is hard to see. +Solution: List the failed tests. + +Patch 9.0.1649 +Problem: Syntax test failure causes script to abort. +Solution: Fix appending string to list. + +Patch 9.0.1650 +Problem: MS-Windows: default 'viewdir' may include read-only directory. +Solution: Use $HOME instead of $VIM for 'viewdir' default. (closes #12119) + +Patch 9.0.1651 +Problem: Unclear why syntax test fails on Mac. +Solution: Temporarily show the whole "messages" file. + +Patch 9.0.1652 +Problem: Unclear why syntax test fails on Mac. +Solution: Echo v:errors when it's not empty. + +Patch 9.0.1653 +Problem: Amiga: default 'viewdir' may not work. +Solution: Use "home:" instead of "$VIM". Add a test. (Christian Brabandt, + closes #12576) + +Patch 9.0.1654 +Problem: MS-Windows: test for default 'viewdir' fails. +Solution: Escape the pattern. + +Patch 9.0.1655 +Problem: Syntax test fails when Vim window is not tall enough. +Solution: Make sure each terminal window is closed. + +Patch 9.0.1656 +Problem: Syntax test fails when detected shell type differs. +Solution: Avoid using "/bin/sh", it depends on the system. Add a check that + the shell type detection is correct. + +Patch 9.0.1657 +Problem: One more syntax test depends on the system. +Solution: Use "dash" instead of "sh". + +Patch 9.0.1658 +Problem: Autoload files for "zig" are not installed. +Solution: Add install and uninstall rules in the makefile. (Christian + Brabandt, closes #12577, closes #12567) + +Patch 9.0.1659 +Problem: Termdebug: default highlight cleared when changing colorscheme. +Solution: Use a ColorScheme autocommand. (Christian Brabandt, closes #12566, + closes #12555) + +Patch 9.0.1660 +Problem: Error for using matchfuzzy() in Vim9 script returning a list of + dicts. +Solution: Make return type of matchfuzzy() list. (Yegappan Lakshmanan, + closes #12574) + +Patch 9.0.1661 +Problem: BUCK files are not recognized. +Solution: Recognize BUCK files as "bzl". (Son Luong Ngoc, closes #12564) + +Patch 9.0.1662 +Problem: Crash when using a class member twice. (Christian J. Robinson) +Solution: Make a copy of the value. + +Patch 9.0.1663 +Problem: Termdebug on MS-Windows: some file names are not recognized. +Solution: Do not always change \t and \n. (Christian Brabandt, + closes #12565, closes #12560, closes #12550) + +Patch 9.0.1664 +Problem: Divide by zero when scrolling with 'smoothscroll' set. +Solution: Avoid using a negative width. (closes #12540, closes #12528) + +Patch 9.0.1665 +Problem: Empty CmdlineEnter autocommand causes errors in Ex mode. +Solution: Save and restore ex_pressedreturn. (Christian Brabandt, + closes # 12581, closes #12578) + +Patch 9.0.1666 +Problem: Compiler may warn for uninitialized variable. +Solution: Initialize this_props_len. (Christian Brabandt, closes #12599) + +Patch 9.0.1667 +Problem: Regression test doesn't fail when fix is reverted. +Solution: Add "n" to 'cpoptions' instead of using :winsize. (closes #12587, + issue #12528) + +Patch 9.0.1668 +Problem: PEM files are not recognized. +Solution: Add patterns to match PEM files. (closes #12582) + +Patch 9.0.1669 +Problem: Crash syncing swapfile in new buffer when using sodium crypt. + (James McCoy) +Solution: Add checks for sodium encryption. (Christian Brabandt, + closes #12591, closes #12585) + +Patch 9.0.1670 +Problem: Resetting local option to global value is inconsistent. +Solution: Handle "<" specifically for 'scrolloff' and 'sidescrolloff'. + (closes #12594) + +Patch 9.0.1671 +Problem: Termdebug: error with more than 99 breakpoints. +Solution: Use a different sign for breakpoint 100 and over. (closes #12589, + closes #12588) + +Patch 9.0.1672 +Problem: Tabline highlight wrong after truncated double width label. +Solution: Fill up half a double width character later. (closes #12614) + +Patch 9.0.1673 +Problem: Cannot produce a status 418 or 503 message. +Solution: Add err_teapot(). + +Patch 9.0.1674 +Problem: Help for builtin functions is not sorted properly. +Solution: Put err_teapot() help in the right position. + +Patch 9.0.1675 +Problem: Test may run into timeout when using valgrind. +Solution: Use a longer timeout when using valgrind. + +Patch 9.0.1676 +Problem: Warning for buffer in use when exiting early. +Solution: Change file names to be able to see what buffer is in use when + exiting. + +Patch 9.0.1677 +Problem: Typo in syntax test input file. +Solution: Fix the typo and the expected dump files. (THARAK HEGDE, + closes #12635) + +Patch 9.0.1678 +Problem: Blade files are not recognized. +Solution: Add a pattern for Blade files. (closes #12650) + +Patch 9.0.1679 +Problem: Tests may leave leftover files around +Solution: Clean up tests and remove files + +Patch 9.0.1680 +Problem: sodium test fails in Github CI +Solution: Catch sodium_mlock() errors and do not error out + +Patch 9.0.1681 +Problem: Build Failure with Perl 5.38 +Solution: Fix Build Failure + +Patch 9.0.1682 +Problem: crypt: sodium encryption is not portable +Solution: use little-endian byte order for sodium encrypted files + +Patch 9.0.1683 +Problem: need runtime files updated +Solution: merge various github PRs + +Patch 9.0.1684 +Problem: libvterm slightly outdated +Solution: Update libvterm from rev 818 to rev 839 + +Patch 9.0.1685 +Problem: Python 3.11 interface throws deprecation warnings +Solution: ignore those warnings for gcc and clang + +Patch 9.0.1686 +Problem: undotree() only works for the current buffer +Solution: Add an optional "buffer number" parameter to undotree(). If + omitted, use the current buffer for backwards compatibility. + +Patch 9.0.1687 +Problem: mapset() not properly handling script ID +Solution: replace_termcodes() may accept a script ID + +Patch 9.0.1688 +Problem: cannot store custom data in quickfix list +Solution: add `user_data` field for the quickfix list + +Patch 9.0.1689 +Problem: python 3.12 produces warnings and fails test +Solution: Make use of raw strings in python3 tests + +Patch 9.0.1690 +Problem: popup_create() not aborting on errors +Solution: check for errors in arguments given and abort if an error + occurred + +Patch 9.0.1691 +Problem: wrong viewport restored for incsearch and smoothscroll +Solution: Save and restore skipcol as well + +Patch 9.0.1692 +Problem: Android not handling AI_V4MAPPED ai_flag +Solution: don't set AI_V4MAPPED flag when on Android, since + Android's getaddrinfo returns EAI_BADFLAGS if ai_flags + contains it + +Patch 9.0.1693 +Problem: Ctrl-Q not handled like Ctrl-V in replace mode +Solution: Handle Ctrl-Q like Ctrl-V + +Patch 9.0.1694 +Problem: wrong mapping applied when replaying a char search +Solution: Store a NOP after the ESC + +Patch 9.0.1695 +Problem: Crash with overlong textprop above +Solution: Consider only positive padding + +Patch 9.0.1696 +Problem: sodium_mlock may still fail in CI +Solution: Catch E1230 in testscript and skip test + +Patch 9.0.1697 +Problem: incsearch test not sufficient (after 9.0.1691) +Solution: add an additional test + +Patch 9.0.1698 +Problem: Test_map_restore_sid fails in GUI +Solution: Feed an unsimplified Ctrl-B + +Patch 9.0.1699 +Problem: compile warning for xdiff/xutils on MS-Windows +Solution: add explicit type cast from size_t to long + +Patch 9.0.1700 +Problem: Cannot compile with dynamic perl < 5.38 (after 9.0.1681) +Solution: Fix if_perl/dyn from perl 5.32 to 5.38 + +Patch 9.0.1701 +Problem: vim9 crash when class member overridden +Solution: Use method_count field instead + +Patch 9.0.1702 +Problem: Undo test is flaky. +Solution: Apply filter and change time to "1 second ago" in both dumps. + +Patch 9.0.1703 +Problem: Vim9 Calling a method in an extended class fails +Solution: use method index directly + +Patch 9.0.1704 +Problem: Cannot use positional arguments for printf() +Solution: Support positional arguments in string formatting + +Patch 9.0.1705 +Problem: cursor position wrong when clicking on an unprintable char +Solution: Don't update prev_ptr when wlv.n_extra is not zero. + +Patch 9.0.1706 +Problem: typos in the xxd manpage +Solution: Fix typos and formatting + +Patch 9.0.1707 +Problem: Cannot wrap around in popup_filter_menu() +Solution: Allow to wrap around by default + +Patch 9.0.1708 +Problem: getcompletion() fails for user-defined commands +Solution: set context for completion function + +Patch 9.0.1709 +Problem: dynamic build with python 3.12 breaks +Solution: if_python3.c: Fix building dynamic Python3 interpreter + +Patch 9.0.1710 +Problem: sidescrolloff and scrolloff options work slightly + different than other global-local options +Solution: Make it behave consistent for all global-local options + +Patch 9.0.1711 +Problem: dead code in charset.c +Solution: remove it + +Patch 9.0.1712 +Problem: missing null check in object_clear() +Solution: Add null check of cl + +Patch 9.0.1713 +Problem: Github CI fails to load snd-dummy kernel module +Solution: Make installation of linux-modules-extra optional + +Patch 9.0.1714 +Problem: getcompletion() "cmdline" fails after :autocmd +Solution: Use set_cmd_context() instead of set_one_cmd_context(). + +Patch 9.0.1715 +Problem: duplicate test in message_test.c +Solution: Remove duplicate test and make functions static + +Patch 9.0.1716 +Problem: Windows build with python 3.12 and clang fails +Solution: Remove the PyBool_Type function pointer for python 3.12 + +Patch 9.0.1717 +Problem: virtcol2col returns last byte of a multi-byte char +Solution: Make it return the first byte for a multi-byte char + +Patch 9.0.1718 +Problem: dict-completion does not respect region +Solution: respect selected region in dict completion + +Patch 9.0.1719 +Problem: if_lua: crash for Lua functions invoked via Vim callbacks +Solution: Use Lua registry rather than upvalues for udata cache + +Patch 9.0.1720 +Problem: Vim9 class using wrong index for overridden method +Solution: Use correct index for overridden method + +Patch 9.0.1721 +Problem: Build failure on Windows with dynamic lua (after 9.0.1719) +Solution: move definition further down in if_lua + +Patch 9.0.1722 +Problem: wrong error messages when passing wrong types to count() +Solution: fix it + +Patch 9.0.1723 +Problem: Fix regression in {func} argument of reduce() +Solution: pass function name as string again + +Patch 9.0.1724 +Problem: vim9class constructor argument type checking bug +Solution: fix it + +Patch 9.0.1725 +Problem: Wrong cursor position when clicking after concealed text + with 'virtualedit'. +Solution: Store virtual columns in ScreenCols[] instead of text + columns, and always use coladvance() when clicking. + +Patch 9.0.1726 +Problem: incorrect heights in win_size_restore() +Solution: avoid restoring incorrect heights in win_size_restore() + +Patch 9.0.1727 +Problem: minor problems with the teapot() +Solution: remove the null check, update documentation + +Patch 9.0.1728 +Problem: missing winid argument for virtcol() +Solution: Add a {winid} argument to virtcol() + +Patch 9.0.1729 +Problem: screenpos() wrong result with w_skipcol and cpoptions+=n +Solution: Use adjust_plines_for_skipcol() instead of subtracting + w_skipcol. + +Patch 9.0.1730 +Problem: passing multiple patterns to runtime not working +Solution: prepend prefix to each argument separately + +Patch 9.0.1731 +Problem: blockwise Visual highlight not working with virtual text +Solution: Reset the correct variable at the end of virtual selection and + Check for double-width char inside virtual text. + +Patch 9.0.1732 +Problem: vimexpr: shadowing variable +Solution: Rename local variable + +Patch 9.0.1733 +Problem: CI: cannot cache linux-modules-extra +Solution: Enable caching and reduce failed downloads + +Patch 9.0.1734 +Problem: runtime completion fails for multiple args +Solution: Make it work + +Patch 9.0.1735 +Problem: Rename completion specific findex var +Solution: Move "findex" static variable to xp_selected in expand_T + +Patch 9.0.1736 +Problem: Github Actions times out after 20 minutes +Solution: Increase the timeout to 25 minutes + +Patch 9.0.1737 +Problem: Calling a base class method through an extended class fails +Solution: Create lookup table for member index in the interface to + to the member class implementing the interface + +Patch 9.0.1738 +Problem: Duplicate code to reverse a string +Solution: Move reverse_text() to strings.c and remove string_reverse(). + +Patch 9.0.1739 +Problem: leftover files in libvterm +Solution: Fix cleaning of libvterm directory + +Patch 9.0.1740 +Problem: segfault when reading invalid viminfo file +Solution: Check the expected type in the viminfo file + +Patch 9.0.1741 +Problem: No type checking in interfaces +Solution: Implement member type check in vim9 interfaces + +Patch 9.0.1742 +Problem: Wrong curswant when clicking and the second cell of a + double-width char. +Solution: Don't copy virtcol of the first char to the second one. + +Patch 9.0.1743 +Problem: Parameter of gui_gtk:gui_mch_browse incorrectly marked as + UNUSED. +Solution: Remove UNUSED flag. + +Patch 9.0.1744 +Problem: Dead code in open_cmdwin() +Solution: Remove it + +Patch 9.0.1745 +Problem: Missing test coverage for blockwise Visual highlight with + virtual that starts with a double-width char. +Solution: Add a new virtual text to the test. Some other small fixes. + +Patch 9.0.1746 +Problem: vim9class compile error for char/char_u conversion +Solution: Correctly cast to (char *) + +Patch 9.0.1747 +Problem: screenpos() may cause unnecessary redraw. +Solution: Don't unnecessarily reset VALID_WROW flag. + +Patch 9.0.1748 +Problem: CI: cannot label issues automatically +Solution: Create CI labeler + +Patch 9.0.1749 +Problem: Text property highlight doesn't override a sign highlight over + a tab character +Solution: Let text_property override tab highlighting + +Patch 9.0.1750 +Problem: CI: fails because of changed error messages + (after: 9.0.1741) +Solution: Adjust expected error messages + +Patch 9.0.1751 +Problem: CI: labeler configuration not found + (after 9.0.1748) +Solution: set configuration path + +Patch 9.0.1752 +Problem: CI: Coveralls is no longer used +Solution: Remove .coveralls.yml + +Patch 9.0.1753 +Problem: can't move to last non-blank char +Solution: Make g behave like that + +Patch 9.0.1754 +Problem: still ci breakage (after 9.0.1741) +Solution: fix remaining issue + +Patch 9.0.1755 +Problem: CI still fails with sodium mlock error +Solution: catch mlock failure + +Patch 9.0.1756 +Problem: failing cursorline sign test +Solution: only reset char attr, if cursorline + option is not set + +Patch 9.0.1757 +Problem: ex_class() function is too long +Solution: refactor it + +Patch 9.0.1758 +Problem: vim9 no class identifiers in stack dumps +Solution: Prefix class members in stack traces with the class name + followed by a dot. + +Patch 9.0.1759 +Problem: Visual highlight not working with cursor at end of screen line + and 'showbreak'. +Solution: Only update "vcol_prev" when drawing buffer text. + +Patch 9.0.1760 +Problem: vim9 class problem with new() constructor +Solution: Don't allow a return type for the new() class constructor. + +Patch 9.0.1761 +Problem: g behaves different from g +Solution: Make g behave like g + +Patch 9.0.1762 +Problem: Not able to get the virtual text property +Solution: Make prop_list() return virtual text and alignment + +Patch 9.0.1763 +Problem: crash when passing invalid buffer to undotree() +Solution: Use get_buf_arg() instead of tv_get_buf_from_arg(). + +Patch 9.0.1764 +Problem: CI: label should not be set on all yml files +Solution: only set it for specific yml files in .github + +Patch 9.0.1765 +Problem: Error when cross-compiling Vim +Solution: use AC_CHECK_SIZEOF to find sizeof(wchar_t) + +Patch 9.0.1766 +Problem: Runtime: Missing QML support +Solution: Add QML support to Vim + +Patch 9.0.1767 +Problem: '.-' no allowed in highlight group names +Solution: Allow dot and hyphen characters in highlight group names + +Patch 9.0.1768 +Problem: Runtime: no support for bicep files +Solution: Add filetype support for bicepparam + +Patch 9.0.1769 +Problem: executable() ignoring symlinks on Windows +Solution: resolve reparse points + +Patch 9.0.1770 +Problem: lines disappear when modifying chars before virt text +Solution: take virtual text property length into account + +Patch 9.0.1771 +Problem: regex: combining chars in collections not handled +Solution: Check for following combining characters for NFA and BT engine + +Patch 9.0.1772 +Problem: Cursor is adjusted in window that did not change in size by + 'splitkeep'. +Solution: Only check that cursor position is valid in a window that + has changed in size. + +Patch 9.0.1773 +Problem: cannot distinguish Forth and Fortran *.f files +Solution: Add Filetype detection Code + +Patch 9.0.1774 +Problem: no support for custom cmdline completion +Solution: Add new vimscript functions + +Patch 9.0.1775 +Problem: Wrong comparison in vim9type.c +Solution: Change condition to false + +Patch 9.0.1776 +Problem: No support for stable Python 3 ABI +Solution: Support Python 3 stable ABI + +Patch 9.0.1777 +Problem: patch 9.0.1771 causes problems +Solution: revert it + +Patch 9.0.1778 +Problem: if_py_both: code-style issue +Solution: add space + +Patch 9.0.1779 +Problem: Need more state() tests +Solution: Add a few more tests for operator pending mode and register + yank command + +Patch 9.0.1780 +Problem: Vim9 type not defined during object creation +Solution: Define type during object creation and not during class + definition, parse multi-line member initializers, fix lock + initialization + +Patch 9.0.1781 +Problem: Problems when setting bin/paste option +Solution: When setting binary/paste, remember that this also affects + depending options, so that :verbose set returns the right + location. + +Patch 9.0.1782 +Problem: prop_list() does not return text_padding_left +Solution: Store and return the text_padding_left value for text + properties + +Patch 9.0.1783 +Problem: Wrong display with wrapping virtual text or unprintable chars, + 'showbreak' and 'smoothscroll'. +Solution: Don't skip cells taken by 'showbreak' in screen lines before + "w_skipcol". Combined "n_skip" and "skip_cells". + +Patch 9.0.1784 +Problem: redundant else in pum_set_selected() +Solution: Remove it + +Patch 9.0.1785 +Problem: wrong cursor position with 'showbreak' and lcs-eol +Solution: Add size of 'showbreak' before when 'listchars' "eol" is used. + Also fix wrong cursor position with wrapping virtual text on + empty line and 'showbreak'. + +Patch 9.0.1786 +Problem: Vim9: need instanceof() function +Solution: Implement instanceof() builtin + +Patch 9.0.1787 +Problem: Cannot build with latest luajit +Solution: adjust sed regexp and don't expect '-' in version output + +Patch 9.0.1788 +Problem: C4090 warnings in strings.c +Solution: Add type casts + +Patch 9.0.1789 +Problem: too early declaration of variable in pum_set_selected() +Solution: Move declaration to where it is actually used + +Patch 9.0.1790 +Problem: The Content-Type header is an optional header that some LSP + servers struggle with and may crash when encountering it. +Solution: Drop the Content-Type header from all messages, because we use + the default value anyway. + +Patch 9.0.1791 +Problem: No tests for the Termdebug plugin +Solution: Add some simple tests for the Termdebug plugin + +Patch 9.0.1792 +Problem: Normal mode "gM", "gj", "gk" commands behave incorrectly with + virtual text. +Solution: Use linetabsize() instead of linetabsize_str(). + +Patch 9.0.1793 +Problem: obsolete macros in configure script +Solution: Remove those and start moving to autoconf 2.71 + +Patch 9.0.1794 +Problem: autoconf: not correctly detecting include dirs +Solution: make use of python3 to generate includedirs + +Patch 9.0.1795 +Problem: Indentation issues +Solution: Fix code indentation issues. + +Patch 9.0.1796 +Problem: Vim9 problems with null_objects +Solution: Vim9 improve null_object usage + +Patch 9.0.1797 +Problem: Vimball/Visual Basic filetype detection conflict +Solution: runtime(vb): Improve Vimball and Visual Basic detection logic + +Patch 9.0.1798 +Problem: The 'syntax' option has no completion. +Solution: Add syntax option completion. + +Patch 9.0.1799 +Problem: Russian menu translation can be improved +Solution: update the Russian menu files + +Patch 9.0.1800 +Problem: Cursor position still wrong with 'showbreak' and virtual text + after last character or 'listchars' "eol". +Solution: Remove unnecessary w_wcol adjustment in curs_columns(). Also + fix first char of virtual text not shown at the start of a screen + line. + +Patch 9.0.1801 +Problem: Vim9 instanceof() fails in a def func +Solution: allow Objects in compile time check + +Patch 9.0.1802 +Problem: Multiline regex with Visual selection fails when Visual + selection contains virtual text after last char. +Solution: Only include virtual text after last char when getting full + line length. + +Patch 9.0.1803 +Problem: Cannot detect norg markup files +Solution: Add norg markup language detection + +Patch 9.0.1804 +Problem: Vim9: no support for private object methods +Solution: Add support for private object/class methods + +Patch 9.0.1805 +Problem: Vim9: problem compiling object method as function call arg +Solution: After a object/class method call, remove the object/class from + the stack. + +Patch 9.0.1806 +Problem: Vim9: bogus error on export +Solution: Don't error out when the export command is not executed + +Patch 9.0.1807 +Problem: runtime: crystal scripts not recognised +Solution: Filetype detect Crystal scripts by shebang line + +Patch 9.0.1808 +Problem: Termdebug: Typo in Termdebug test +Solution: fix the typos + +Patch 9.0.1809 +Problem: Termdebug test flaky +Solution: wait slightly longer + +Patch 9.0.1810 +Problem: camel-case spelling has issues with digits +Solution: Improve the camCase spell checking by taking digits + and caps into account + +Patch 9.0.1811 +Problem: still some issues with term_debug test +Solution: Use WaitForAssert() + +Patch 9.0.1812 +Problem: CI still fails with sodium_mlock error() +Solution: Catch and ignore E1230 error in test_crypt + +Patch 9.0.1813 +Problem: 'linebreak' is incorrectly drawn after 'breakindent'. +Solution: Don't include 'breakindent' size when already after it. + +Patch 9.0.1814 +Problem: Vim9 no error on duplicate object member var +Solution: detect duplicate members and error out + +Patch 9.0.1815 +Problem: pango_coverage_unref() deprecated in pango > 1.51 +Solution: use g_object_unref() instead + +Patch 9.0.1816 +Problem: configure: sed uses non-portable regex +Solution: use '*' modifier instead of '\?' in regex + for luajit version detection + +Patch 9.0.1817 +Problem: configure: using obsolete AC_HEADER_STDC +Solution: Remove it and re-create configure + +Patch 9.0.1818 +Problem: dynamically linking perl is broken +Solution: Fix all issues + +Patch 9.0.1819 +Problem: Github CI too complex +Solution: CI: Tidy up matrix + +Patch 9.0.1820 +Problem: Rexx files may not be recognised +Solution: Add shebang detection and improve disambiguation of *.cls + files + +Patch 9.0.1821 +Problem: Vim9 constructors are always static +Solution: make the "static" keyword an error + +Patch 9.0.1822 +Problem: Vim9: no check for duplicate members in extended classes +Solution: Check for duplicate members in extended classes. + Fix memory leak. + +Patch 9.0.1823 +Problem: Autoconf 2.69 too old +Solution: Migrate to Autoconf 2.71 + +Patch 9.0.1824 +Problem: Vim9: private members may be modifiable +Solution: prevent modification for def function + +Patch 9.0.1825 +Problem: Wrong cursor position with virtual text before a whitespace + character and 'linebreak'. +Solution: Always set "col_adj" to "size - 1" and apply 'linebreak' after + adding the size of 'breakindent' and 'showbreak'. + +Patch 9.0.1826 +Problem: keytrans() doesn't translate recorded key typed in a GUI +Solution: Handle CSI like K_SPECIAL, like in mb_unescape() + +Patch 9.0.1827 +Problem: xxd: no color support +Solution: Add color support using xxd -R + +Patch 9.0.1828 +Problem: Wrong cursor position with virtual text before double-width + char at window edge. +Solution: Check for double-width char before adding virtual text size. + +Patch 9.0.1829 +Problem: Vim9 missing access-checks for private vars +Solution: Use the proper check for private/readonly variable. Access + level for a member cannot be changed in a class implementing an + interface. Update the code indentation + +Patch 9.0.1830 +Problem: Vim9: crash when accessing a null object +Solution: Check accessing a NULL object in def function + +Patch 9.0.1831 +Problem: Vim9: failing null test +Solution: Use required public keyword + +Patch 9.0.1832 +Problem: xxd: reporting wrong version (after 9.0.1827) +Solution: Update version string + +Patch 9.0.1833 +Problem: runtime files may execute code in current dir +Solution: only execute, if not run from current directory + +Patch 9.0.1834 +Problem: Some problems with xxd coloring +Solution: Fix the following problems: + +Patch 9.0.1835 +Problem: Perl interface has problems with load PL_current_context +Solution: Fix Perl interface to load PL_current_context from library + +Patch 9.0.1836 +Problem: Wrong display with "above" virtual text and 'linebreak' or + 'breakindent' and 'showbreak'. +Solution: Exclude size of "above" virtual text when calculating them. + +Patch 9.0.1837 +Problem: Vim9: class_member_type() can be optimized +Solution: class_member_type() provides more information; + safe an additional alloc()/free() + +Patch 9.0.1838 +Problem: Vim9: Cannot modify class member vars from def function +Solution: Add support for modifying class member variables from a def + function + +Patch 9.0.1839 +Problem: No Makefile rule to build cscope database +Solution: Add rule + +Patch 9.0.1840 +Problem: use-after-free in do_ecmd +Solution: Verify oldwin pointer after reset_VIsual() + +Patch 9.0.1841 +Problem: style: trailing whitespace in ex_cmds.c +Solution: remove it + +Patch 9.0.1842 +Problem: Need more accurate profiling +Solution: Improve profiling results + +Patch 9.0.1843 +Problem: xxd color test flaky +Solution: Filter unneeded lines + +Patch 9.0.1844 +Problem: doc helptags may not be up to date +Solution: Add CI jobs to verify helptags are updated + +Patch 9.0.1845 +Problem: xxd: Test_xxd_color start failing +Solution: Revert changes to dump file + +Patch 9.0.1846 +Problem: crash in fullcommand +Solution: Check for typeval correctly + +Patch 9.0.1847 +Problem: potential oob write in do_addsub() +Solution: don't overflow buf2, check size in for loop() + +Patch 9.0.1848 +Problem: buffer-overflow in vim_regsub_both() +Solution: Check remaining space + +Patch 9.0.1849 +Problem: CI error on different signedness +Solution: cast unsigned to int + +Patch 9.0.1850 +Problem: Vim9: wrong line number where options set +Solution: Set source line number earlier + +Patch 9.0.1851 +Problem: Virtual text at a column causes 'breakindent' and 'showbreak' + to be missing (after patch 9.0.1124). +Solution: Add check for "tp_col" in another place where TP_FLAG_WRAP is + checked. + +Patch 9.0.1852 +Problem: i_CTRL-O does not reset Select Mode +Solution: Reset select mode on CTRL-O in insert mode + +Patch 9.0.1853 +Problem: CI error on different signedness in regexp.c + (after patch 9.0.1848) +Solution: Cast strlen() call to int + +Patch 9.0.1854 +Problem: test_crash1() fails on CI +Solution: don't run Screendump test, verify that it doesn't crash + by running it through a shell command line, testing + the exit value and concatenating success cmd using '&&' + +Patch 9.0.1855 +Problem: mode() doesn't indicate command line for terminal +Solution: make it return 'ct' for command-line from Terminal mode + +Patch 9.0.1856 +Problem: issues with formatting positional arguments +Solution: fix them, add tests and documentation + +Patch 9.0.1857 +Problem: heap-use-after-free in is_qf_win() +Solution: Check buffer is valid before accessing it + +Patch 9.0.1858 +Problem: heap use after free in ins_compl_get_exp() +Solution: validate buffer before accessing it + +Patch 9.0.1859 +Problem: heap-use-after-free in bt_normal() +Solution: check that buffer is still valid + +Patch 9.0.1860 +Problem: CI: test_crash1() is flaky +Solution: Wait a bit longer + +Patch 9.0.1861 +Problem: xxd: issue when -R is specified several times +Solution: Fix command line parsing + +Patch 9.0.1862 +Problem: Vim9 Garbage Collection issues +Solution: Class members are garbage collected early leading to + use-after-free problems. Handle the garbage + collection of classes properly. + +Patch 9.0.1863 +Problem: wrong format specifiers in e_aptypes_is_null_str_nr +Solution: Fix the wrong format specifier + +Patch 9.0.1864 +Problem: crash with bt_quickfix1_poc when cleaning up + and EXITFREE is defined +Solution: Test if buffer is valid in a window, else close + window directly, don't try to access buffer properties + +Patch 9.0.1865 +Problem: Vim9: garbage collection may cause crash +Solution: validate that class members typeval is not null + +Patch 9.0.1866 +Problem: Undo is synced after character find. +Solution: Set no_u_sync when calling gotchars_nop(). + +Patch 9.0.1867 +Problem: Vim9: access to interface statics possible +Solution: Prevent direct access to interface statics + +Patch 9.0.1868 +Problem: test_crash still fails for circle ci +Solution: give even more time to complete + +Patch 9.0.1869 +Problem: Coverity warns about uninitialized var +Solution: initialize it + +Patch 9.0.1870 +Problem: Vim9: disassemble does not show static +Solution: Show static flag + +Patch 9.0.1871 +Problem: Github CI does not run i386 job +Solution: Add a i386 architecture + +Patch 9.0.1872 +Problem: CI: test_crash() fails on CI +Solution: Skip test on BSD + +Patch 9.0.1873 +Problem: heap-buffer-overflow in vim_regsub_both +Solution: Disallow exchanging windows when textlock is active + +Patch 9.0.1874 +Problem: CI may fail in test_recover_empty_swap +Solution: Set directory option + +Patch 9.0.1875 +Problem: Vim9: improve test for disassemble + static +Solution: Add a Vim9 script disassemble test for an interface with + static members + +Patch 9.0.1876 +Problem: Vim9: parsing commands with newlines wrong +Solution: Accept a '\n' for parsing lists and command arguments + +Patch 9.0.1877 +Problem: missing test for patch 9.0.1873 +Solution: add a test trying to exchange windows + +Patch 9.0.1878 +Problem: tests running sh have problems +Solution: Check that dash is installed + +Patch 9.0.1879 +Problem: Vim9: incorrect duplicate class member detection +Solution: Incorrect duplicate class member detection when variable names + have the same prefix. Not able to access class member variables + using an object. Fix coding style issues + +Patch 9.0.1880 +Problem: Vim9: Need more tests for inheritance +Solution: Add access tests and fixes. + +Patch 9.0.1881 +Problem: Test_crash fails on Mac +Solution: Skip test on Mac + +Patch 9.0.1882 +Problem: Trailing white space in tests +Solution: Delete it + +Patch 9.0.1883 +Problem: Vim9: Calling an interface method using a child object fails +Solution: Search methods of parent class + +Patch 9.0.1884 +Problem: Wrong order of arguments for error messages +Solution: Reverse order or arguments for e_aptypes_is_null_nr_str + +Patch 9.0.1885 +Problem: Vim9: no support for abstract methods +Solution: Add support for defining abstract methods in an abstract class + +Patch 9.0.1886 +Problem: Various Typos +Solution: Fix Typos + +Patch 9.0.1887 +Problem: Vim9: class members are accessible via object +Solution: Disable class member variable access using an object + +Patch 9.0.1888 +Problem: Vim9: Problem trying to invoke class method +Solution: Lookup the class method insider other classes + +Patch 9.0.1889 +Problem: Vim9 static tests fail +Solution: Fix tests, make CI happy ;) + +Patch 9.0.1890 +Problem: Vim9: lookup code for class/object repeated +Solution: Refactor and make use of lookup functions + +Patch 9.0.1891 +Problem: No runtime support for Mojo +Solution: Add basic filetype and syntax plugins + +Patch 9.0.1892 +Problem: CI: no FreeBSD 14 support +Solution: Drop support for FreeBSD 12, add FreeBSD 14 + +Patch 9.0.1893 +Problem: CI: strptime test fails on BSD14 +Solution: Skip the test + +Patch 9.0.1894 +Problem: CI: trailing white space in tests +Solution: clean up the trailing white space + +Patch 9.0.1895 +Problem: Vim9: finding method/member is inefficient +Solution: Use lookups + +Patch 9.0.1896 +Problem: "below" virtual text doesn't work with 'rightleft'. +Solution: Use column from right border with 'rightleft'. + +Patch 9.0.1897 +Problem: Vim9: confusing error with .= in compiled functions +Solution: Check in error condition, if .= was attempted and in that case + give a different error message. + +Patch 9.0.1898 +Problem: Vim9: restrict access to static vars and methods +Solution: Class members are accessible only from the class where they are + defined. + +Patch 9.0.1899 +Problem: potential buffer overflow in PBYTE macro +Solution: Check returned memline length + +Patch 9.0.1900 +Problem: Configure script uses non-portable == comparison +Solution: Use the standard and portable "=" instead + +Patch 9.0.1901 +Problem: win32: not correctly freeing environment +Solution: After we call GetEnvironmentStringsW, we should call + FreeEnvironmentStringsW + +Patch 9.0.1902 +Problem: Vim9: Coverity complains about dead code +Solution: Copy only object methods from the super class + to a subclass when extending a class. Fix + Coverity warning. + +Patch 9.0.1903 +Problem: Github Actions fails because snd-dummy modules missing + in current runner images +Solution: ignore modprobe error + +Patch 9.0.1904 +Problem: Cirrus-CI fails because we have used all credits +Solution: Remove FreeBSD 13.1 and MacOS M1 + +Patch 9.0.1905 +Problem: FEAT_FLOAT no longer defined +Solution: Remove last existing FEAT_FLOAT ifdefs in + message_test + +Patch 9.0.1906 +Problem: Vim9: Interfaces should not support class methods and + variables +Solution: Make sure interface follow the interface specification + +Patch 9.0.1907 +Problem: No support for liquidsoap filetypes +Solution: Add liquidsoap filetype detection code + +Patch 9.0.1908 +Problem: undefined behaviour upper/lower function ptrs +Solution: Fix UBSAN error in regexp and simplify upper/lowercase + modifier code + +Patch 9.0.1909 +Problem: Vim9: problem calling class method from other class +Solution: Fix this problem, fix readonly object access, update error + messages. + +Patch 9.0.1910 +Problem: Mac OS X: missing sound support on older versions +Solution: Check Macro MAC_OS_X_VERSION_MIN_REQUIRED + +Patch 9.0.1911 +Problem: Vim9: segfault with null object and instanceof() +Solution: return early + +Patch 9.0.1912 +Problem: Cirrus-CI running out of credits +Solution: disable Cirrus-CI for now + +Patch 9.0.1913 +Problem: if_python: undefined behaviour for function pointers +Solution: Fix if_python undefined behavior for function pointer casts + +Patch 9.0.1914 +Problem: Vim9: few issues when accessing object members +Solution: When calling an object method, check for null object. + Accessing a Dict object member doesn't work. + +Patch 9.0.1915 +Problem: r_CTRL-C works differently in visual mode +Solution: Make r_CTRL-C behave consistent in visual mode + in terminal and Windows GUI + +Patch 9.0.1916 +Problem: Crash when allocating large terminal screen +Solution: Don't allow values > 1000 for terminal + screen columns and rows + +Patch 9.0.1917 +Problem: undefined behaviour with python function pointer +Solution: correctly cast function pointers from void + +Patch 9.0.1918 +Problem: No filetype detection for Authzed filetypes +Solution: Detect the *.zed file extension as authzed filetype + +Patch 9.0.1919 +Problem: Wrong curswant when clicking on empty line or with vsplits. +Solution: Don't check for ScreenCols[] before the start of the window + and handle empty line properly. + +Patch 9.0.1920 +Problem: Vim9: cannot write public var in nested object +Solution: Write variable in nested read-only object reference. + Also test write fails. + +Patch 9.0.1921 +Problem: not possible to use the jumplist like a stack +Solution: Add the 'jumpoptions' setting to make the jumplist + a stack. + +Patch 9.0.1922 +Problem: LSP server request message is misinterpreted as a response message +Solution: Check that the message does not have the "message" field + +Patch 9.0.1923 +Problem: curswant wrong on click with 've' and 'wrap' set +Solution: Add w_leftcol to mouse click column. + +Patch 9.0.1924 +Problem: LSP server message still wrongly handled (after 9.0.1922) +Solution: Handle 'method' messages properly, don't discard them, add + tests. + +Patch 9.0.1925 +Problem: if_python: still undefined behaviour with function pointer +Solution: fix remaining problems + +Patch 9.0.1926 +Problem: Vim9: not enough info in error message +Solution: Add class name, change member to variable, quote names + +Patch 9.0.1927 +Problem: patch 1916 (fixed terminal size) not optimal +Solution: Add defines to make it easier changeable later + +Patch 9.0.1928 +Problem: Vim9: constructor type checking bug +Solution: Fix class constructor regression + +Patch 9.0.1929 +Problem: runtime tests fail with tiny vim +Solution: check for tiny vim, run runtime tests in CI + even for tiny version + +Patch 9.0.1930 +Problem: compiler warnings with clang-17 +Solution: Fix function prototypes and function pointer + +Patch 9.0.1931 +Problem: make test_compilers fails on ubuntu +Solution: set LC_ALL=C + +Patch 9.0.1932 +Problem: Vim9: error when using null object constructor +Solution: Check for a null object only when calling an object method + +Patch 9.0.1933 +Problem: Can change the type of a v: variable using if_lua. +Solution: Add additional handling of v: variables like :let. + +Patch 9.0.1934 +Problem: bwipe fails after switching window from aucmd_win. +Solution: Decrement b_nwindows after switching back to aucmd_win. + +Patch 9.0.1935 +Problem: Vim9: not consistent error messages +Solution: Make error messages more consistent. Use "variable" for + (object/class) member + +Patch 9.0.1936 +Problem: test: using wrong expected message in test_crypt +Solution: make use of single quotes + +Patch 9.0.1937 +Problem: missing test for mouse click + 'virtedit' +Solution: Add test for clicking after eol with 'virtualedit' and wrapped + line + +Patch 9.0.1938 +Problem: multispace wrong when scrolling horizontally +Solution: Update position in "multispace" or "leadmultispace" also in + skipped chars. Reorder conditions to be more consistent. + +Patch 9.0.1939 +Problem: still a problem when processing LSP RPC requests +Solution: When processing async LSP RPC requests, compare sequence + numbers only in response messages + +Patch 9.0.1940 +Problem: wrong upstream version in libvterm README +Solution: correct version to 839 + +Patch 9.0.1941 +Problem: Memory leak detected (after 9.0.1928) +Solution: Free arg_objm in get_lambda_tv() + +Patch 9.0.1942 +Problem: Vim9: execution stack invalidated with null object +Solution: Check for a null object before adjusting the execution stack + +Patch 9.0.1943 +Problem: CI not run with clang-17 +Solution: Update CI to use clang-17 + +Patch 9.0.1944 +Problem: Vim9: function instruction pointer invalidated +Solution: Use the funcref index instead of the instruction pointer + +Patch 9.0.1945 +Problem: Vim9: missing support for ro-vars in interface +Solution: Support only read-only object variables in an interface, + add additional checks when parsing class definitions. + +Patch 9.0.1946 +Problem: filename expansion using ** in bash may fail +Solution: Try to enable the globstar setting + +Patch 9.0.1947 +Problem: Bash Expansion test fails on Windows/MacOS +Solution: Disable Test_glob_extended_bash for now + +Patch 9.0.1948 +Problem: Vim9: object variable "this." should only be used in + constructor +Solution: Disallow to this in normal object methods (other than + constructors) + +Patch 9.0.1949 +Problem: Vim9: allows reserved keywords as members +Solution: Disallow reserved keywords, disallow + duplicate object and class variables + +Patch 9.0.1950 +Problem: Vim9: error codes spread out +Solution: group them together and reserve 100 + more for future use + +Patch 9.0.1951 +Problem: Vim9: hard to debug vim9_class errors from CI +Solution: Include the line number in assert_xxx() calls. Include the + entire error message in the tests. Fix the indentation in the + test file. Add tags for new error codes. + +Patch 9.0.1952 +Problem: Vim9: unused static field +Solution: remove it and simplify code + +Patch 9.0.1953 +Problem: Misplaced comment in errors.h +Solution: Move it up + +Patch 9.0.1954 +Problem: CI: change netrw label in labeller bot +Solution: Rename it to 'plugin-netrw' + +Patch 9.0.1955 +Problem: Vim9: lockvar issues with objects/classes +Solution: fix `get_lhs()` object/class access and avoid `SEGV`, + make error messages more accurate. + +Patch 9.0.1956 +Problem: Custom cmdline completion skips original cmdline when pressing + Ctrl-P at first match if completion function invokes glob(). +Solution: Move orig_save into struct expand_T. + +Patch 9.0.1957 +Problem: termcap options should change on keyprotocol setting +Solution: Apply termcap entries when 'keyprotocol' changes + +Patch 9.0.1958 +Problem: cannot complete option values +Solution: Add completion functions for several options + +Patch 9.0.1959 +Problem: Vim9: methods parameters and types are covariant +Solution: Support contra-variant type check for object method arguments + (similar to Dart). + +Patch 9.0.1960 +Problem: Make CI checks more strict +Solution: Add -Wstrict-prototypes -Wmissing-prototypes to CI, + fix uncovered problems + +Patch 9.0.1961 +Problem: Cmdline completion for 'listchars' fields doesn't include + "multispace" and "leadmultispace" (after 9.0.1958). +Solution: Include "multispace" and "leadmultispace" in lcstab. + +Patch 9.0.1962 +Problem: No support for writing extended attributes +Solution: Add extended attribute support for linux + +Patch 9.0.1963 +Problem: Configure script may not detect xattr correctly +Solution: include sys/xattr instead of attr/xattr, + make Test_write_with_xattr_support() test + xattr feature correctly + +Patch 9.0.1964 +Problem: xattr support fails to build on MacOS X +Solution: Disable xattr support for MacOS X + +Patch 9.0.1965 +Problem: wrong auto/configure script +Solution: regenerate with autoconf 2.71 + +Patch 9.0.1966 +Problem: configure prints stray 6 when checking libruby +Solution: redirect stdout to dev/null + +Patch 9.0.1967 +Problem: xattr errors not translated +Solution: mark for translation, consistently capitalize + first letter. + +Patch 9.0.1968 +Problem: cmdline completion should consider key option +Solution: Disable cmdline completion for key option, slightly + refactor how P_NO_CMD_EXPAND is handled + +Patch 9.0.1969 +Problem: buffer-overflow in trunc_string() +Solution: Add NULL at end of buffer + +Patch 9.0.1970 +Problem: win32: high-dpi support can be improved +Solution: implement WM_GETDPISCALEDSIZE + +Patch 9.0.1971 +Problem: macOS: FEAT_SOUND guard too restrictive +Solution: check for older macOS support properly + +Patch 9.0.1972 +Problem: win32: missing '**' expansion test (after v9.0.1947) +Solution: Add test for MS-Windows + +Patch 9.0.1973 +Problem: Clean up cmdline option completion code +Solution: Fix various minor problems + +Patch 9.0.1974 +Problem: vim9: using contra-variant type-checks (after v9.0.1959) +Solution: Use invariant type checking instead + +Patch 9.0.1975 +Problem: xattr: permission-denied errors on write +Solution: ignore those errors + +Patch 9.0.1976 +Problem: style: space before tab in optionstr.c +Solution: remove the space + +Patch 9.0.1977 +Problem: Vim9: object members can change type +Solution: Check type during assignment to object/class var + +Patch 9.0.1978 +Problem: No filetype detection for just files +Solution: Detect just files (*.just, justfile, etc) + +Patch 9.0.1979 +Problem: Cirrus CI disabled +Solution: re-enable Cirrus CI + +Patch 9.0.1980 +Problem: win32: issues with stable python ABI +Solution: if_python3,win32: Fix Python3 stable ABI + +Patch 9.0.1981 +Problem: Cannot scroll up in diff mode with many filler lines and zero + 'scrolloff'. +Solution: Invalidate w_cline_row before calling comp_botline(). + +Patch 9.0.1982 +Problem: vim9: clean up from v9.0.1955 +Solution: Fix a few remaining issues, improve error message + +Patch 9.0.1983 +Problem: Scrolling non-current window using mouse is inconsistent + depending on 'scrollbind'/'scrolloff' and different from GUI + vertical scrollbar when 'cursorbind' is set. +Solution: Don't move cursor in non-current windows for 'cursorbind' if + cursor in the current window didn't move. + +Patch 9.0.1984 +Problem: CI: Test_open_delay*() fails on FreeBSD 14 +Solution: Skip it on BSD + +Patch 9.0.1985 +Problem: CI: codecov is intrusive +Solution: disable codecov comments + +Patch 9.0.1986 +Problem: Vim9: accepting type-annotations +Solution: Reject type annotations outside of declarations. + +Patch 9.0.1987 +Problem: win32: font-size calculation can be improved +Solution: calculate font size before the window size + +Patch 9.0.1988 +Problem: Vim9: potential use-after-free for class members +Solution: Use the class-related grow array for storing the + member type instead of using a temporary type + list grow array + +Patch 9.0.1989 +Problem: Vim9: double error message given +Solution: Only give second error message, if ther + wasn't one given before + +Patch 9.0.1990 +Problem: strange error number +Solution: change error number, + add doc tag for E1507 + +Patch 9.0.1991 +Problem: no cmdline completion for setting the font +Solution: enable it on Win32 and GTK builds + +Patch 9.0.1992 +Problem: segfault in exmode when redrawing +Solution: skip gui_scroll when exmode_active + +Patch 9.0.1993 +Problem: warning about unused function definition +Solution: add ifdefs + +Patch 9.0.1994 +Problem: inconsistent feature description +Solution: delete old mentioned feature sets small and big + +Patch 9.0.1995 +Problem: Invalid memory access when 'foldexpr' returns empty string. +Solution: Check for NUL. + +Patch 9.0.1996 +Problem: Cannot build with python312 +Solution: Define wrapper types and functions for python 3.12 + +Patch 9.0.1997 +Problem: Some unused code in move.c and string.c +Solution: Remove it + +Patch 9.0.1998 +Problem: xxd: cannot reverse a bit dump +Solution: implement reversing the bit dump using -b -r + +Patch 9.0.1999 +Problem: Vim9: some error messages can be improved +Solution: Mention the defining class for variable access error message + +Patch 9.0.2000 +Problem: Vim9: use-after-free in deep call stack +Solution: Get the objct pointer from execution stack + +Patch 9.0.2001 +Problem: Vim9: segfault with islocked() +Solution: Check that the lval pointer is not null for objects and + class variables + +Patch 9.0.2002 +Problem: Vim9: need cleanup of class related interface code +Solution: Remove the unused class variable and class method related code + for interfaces. + +Patch 9.0.2003 +Problem: xxd: compilation warning +Solution: initialize variables + +Patch 9.0.2004 +Problem: Missing test file +Solution: git-add the file to the repo + +Patch 9.0.2005 +Problem: partially revert patch v9.0.1997 +Solution: add a comment, to make clear it's not used + +Patch 9.0.2006 +Problem: Vim9: need more tests +Solution: add additional disassembly tests + +Patch 9.0.2007 +Problem: Vim9: covariant parameter types allowed when assigning + functions +Solution: Enforce invariant type check for arguments and return value + when assigning a funcref + +Patch 9.0.2008 +Problem: test: undofile left behind +Solution: cleanup undofile + +Patch 9.0.2009 +Problem: cmdline-completion for comma-separated options wrong +Solution: Fix command-line expansions for options with filenames with + commas + +Patch 9.0.2010 +Problem: [security] use-after-free from buf_contents_changed() +Solution: block autocommands + +Patch 9.0.2011 +Problem: INI files not detected +Solution: detect uppercase .INI as dosini files + +Patch 9.0.2012 +Problem: Vim9: error message can be more accurate +Solution: Fix the error messages + +Patch 9.0.2013 +Problem: Unicode tables outdated +Solution: Update Unicode tables to v15.1 (released 23.09.2023) + +Patch 9.0.2014 +Problem: confusing ifdefs in if_.c +Solution: refactor ifndefs to #ifdefs + +Patch 9.0.2015 +Problem: Vim9: does not handle islocked() from a method correctly +Solution: Handle islocked() builtin from a method. + +Patch 9.0.2016 +Problem: Vim9: assignment operators don't work for class vars +Solution: implement it + +Patch 9.0.2017 +Problem: linebreak applies for leading whitespace +Solution: only apply linebreak, once we have found non-breakat chars in + the line + +Patch 9.0.2018 +Problem: complete_info() returns wrong index +Solution: Make order of 'info' in completion_info consistent + +Patch 9.0.2019 +Problem: Vim9: no support for funcrefs +Solution: Add support for object/class funcref members + +Patch 9.0.2020 +Problem: Vim9: islocked() needs more work +Solution: rework islocked() and remove sync_root + from get_lval() + +Patch 9.0.2021 +Problem: Coverity complains about change in charset (after v9.0.2017) +Solution: check pointer t at index 0 + +Patch 9.0.2022 +Problem: When clicking in the middle of a TAB, getmousepos() returns + the column of the next char instead of the TAB. +Solution: Break out of the loop when the vcol to find is inside current + char. Fix invalid memory access when calling virtcol2col() on + an empty line. + +Patch 9.0.2023 +Problem: need more tests for :cq +Solution: Add more tests, including wraparound on linux + +Patch 9.0.2024 +Problem: no filetype detection for Debian sources +Solution: Add new deb822sources filetype + +Patch 9.0.2025 +Problem: no cmdline completion for ++opt args +Solution: Add cmdline completion for :e ++opt=arg and :terminal + [++options] + +Patch 9.0.2026 +Problem: win32: python3 dll loading can be improved +Solution: Load DLL from registry path + +Patch 9.0.2027 +Problem: Vim9: no support for bitwise operators in lambda funcs +Solution: move "evaluate" assignment a bit up in order to decide + to perform bitwise operations + +Patch 9.0.2028 +Problem: confusing build dependencies +Solution: clean them up, make them parallelizable + +Patch 9.0.2029 +Problem: Vim9: no support for partials using call() +Solution: Add support + +Patch 9.0.2030 +Problem: no max callback recursion limit +Solution: bail out, if max call recursion for callback functions + has been reached. + +Patch 9.0.2031 +Problem: `TextChangedI` can trigger on entering Insert mode if there + was previously a change not in Insert mode. +Solution: Make it trigger only when text is actually changed in Insert + mode. + +Patch 9.0.2032 +Problem: Cannot accurately get mouse clicking position when clicking on + a TAB or with virtual text. +Solution: Add a "coladd" field to getmousepos() result. + +Patch 9.0.2033 +Problem: gcc overflow-warning for f_resolve +Solution: use pointer p instead of pointer q[-1] + +Patch 9.0.2034 +Problem: don't try to copy SMACK attribute, when none exist +Solution: return early if SMACK extended attributes do not exist or + if they are not supported + +Patch 9.0.2035 +Problem: [security] use-after-free with wildmenu +Solution: properly clean up the wildmenu when exiting + +Patch 9.0.2036 +Problem: if_python: rework python3.12 build dependency + (after 9.0.1996) +Solution: use PyTuple_Size instead of inlining the Py_SIZE + into the Vim code base + +Patch 9.0.2037 +Problem: A few remaining cmdline completion issues with C-E/Y +Solution: Fix cmdline completion fuzzy/Ctrl-E/Ctrl-Y/options when not + used at the end + +Patch 9.0.2038 +Problem: Vim9: object method funcref not cleaned up after use +Solution: Clean up type stack after using object method funcref, + remove now longer used ISN_DEFEROBJ instruction + +Patch 9.0.2039 +Problem: completion shows current word after completion restart +Solution: remove the word being completed after completion restart + +Patch 9.0.2040 +Problem: trim(): hard to use default mask +Solution: Use default 'mask' when it is v:none + +Patch 9.0.2041 +Problem: trim(): hard to use default mask (partly revert v9.0.2040) +Solution: use default mask when it is empty + +Patch 9.0.2042 +Problem: Test_cq_zero_exmode fails without channel feature +Solution: Make the test check the channel feature + +Patch 9.0.2043 +Problem: Vim9: issue with funcref assignment and varargs +Solution: Fix funcref type checking + +Patch 9.0.2044 +Problem: Vim9: exceptions confuse deferred functions +Solution: save and restore exception state when calling deferred + functions + +Patch 9.0.2045 +Problem: tests: checking for swap files takes time +Solution: don't check for swap files when test has been skipped + +Patch 9.0.2046 +Problem: win32,python: warning that MS_WIN64 got re-defined +Solution: Do not define MS_WIN64, as it is no longer used + +Patch 9.0.2047 +Problem: perl: warning about inconsistent dll linkage +Solution: suppress warning + +Patch 9.0.2048 +Problem: python: uninitialized warning +Solution: initialize 'minor' always + +Patch 9.0.2049 +Problem: Vim9: not recognizing qualified class vars for infix ops +Solution: Drop the class type from the stack before generating the + CLASSMEMBER instruction + +Patch 9.0.2050 +Problem: Vim9: crash with deferred function call and exception +Solution: Save and restore exception state + +Patch 9.0.2051 +Problem: Vim9: wrong error for non-existing object var +Solution: mention object or class depending on whether + the var is an object or class variable. + +Patch 9.0.2052 +Problem: win32: using deprecated wsock32 api +Solution: Use winsock2 (ws2_32) consistently + +Patch 9.0.2053 +Problem: zig filetype detection test wrong +Solution: Remove .zir pattern, add new test for .zon pattern + +Patch 9.0.2054 +Problem: win32: iscygpty needs update +Solution: Update iscygpty to the latest version, make use iswascii() + API function + +Patch 9.0.2055 +Problem: Vim9: non-consistent error messages +Solution: make error messages more consistent with common structure + +Patch 9.0.2056 +Problem: no digraph for quadruple prime +Solution: add quadruple prime digraph using 4' + +Patch 9.0.2057 +Problem: Vim9: no strict type checks for funcrefs varargs +Solution: Perform strict type checking when declaring funcrefs + with vararg declaration, add tests + +Patch 9.0.2058 +Problem: tests: avoid error when no swap files exist +Solution: use unlet! so that no error message is reported + in case the variable does not exists + +Patch 9.0.2059 +Problem: outstanding exceptions may be skipped +Solution: When restoring exception state, process remaining outstanding + exceptions + +Patch 9.0.2060 +Problem: *.{gn,gni} files are not recognized +Solution: Detect some as gn filetype (without adding an extra filetype) + +Patch 9.0.2061 +Problem: not able to detect xkb filetypes +Solution: Detect files below /u/s/X11/xkb as xkb files (without adding + an extra filetype) + +Patch 9.0.2062 +Problem: Janet files are not recognised +Solution: Add filename and shebang detection (without + adding an extra filetype plugin) + +Patch 9.0.2063 +Problem: pacman hooks are detected as conf filetype +Solution: make it consistent to pacman.conf and detect those + hooks as confini + +Patch 9.0.2064 +Problem: cannot use buffer-number for errorformat +Solution: add support for parsing a buffer number using '%b' in + 'errorformat' + +Patch 9.0.2065 +Problem: EXPAND flag set for filetype option +Solution: Remove P_EXPAND flag from the 'filetype' option + +Patch 9.0.2066 +Problem: xxd: corrupting files when reversing bit dumps +Solution: handle reversing bit dump slightly differently + +Patch 9.0.2067 +Problem: xxd: coloring was disabled on Cygwin +Solution: don't include WIN32 + +Patch 9.0.2068 +Problem: [security] overflow in :history +Solution: Check that value fits into int + +Patch 9.0.2069 +Problem: possible to escape bracketed paste mode with Ctrl-C +Solution: Do not handle Ctrl-C specially when key_protocol + is in use, makes bracketed paste mode more robust + +Patch 9.0.2070 +Problem: [security] disallow setting env in restricted mode +Solution: Setting environment variables in restricted mode could + potentially be used to execute shell commands. Disallow this. + +Patch 9.0.2071 +Problem: objdump files not recognized +Solution: detect *.objdump files, add a filetype plugin + +Patch 9.0.2072 +Problem: Vim9: no nr2str conversion in list-unpack +Solution: Generate 2STRING instruction to convert dict index to string + +Patch 9.0.2073 +Problem: typo in quickfix.c comments +Solution: fix them + +Patch 9.0.2074 +Problem: Completion menu may be wrong +Solution: Check for the original direction of the completion menu, + add more tests, make it work with 'noselect' + +Patch 9.0.2075 +Problem: TextChangedI may not always trigger +Solution: trigger it in more cases: for insert/ + append/change operations, and when + opening a new line, + +Patch 9.0.2076 +Problem: Vim9: No support for type aliases +Solution: Implement :type command + +Patch 9.0.2077 +Problem: CI fails because of trailing whitespace in test +Solution: Remove it + +Patch 9.0.2078 +Problem: several problems with type aliases +Solution: Check for more error conditions, add tests, + fix issues + +Patch 9.0.2079 +Problem: Not all Dart files detected +Solution: Add shebang filetype detection for Dart + +Patch 9.0.2080 +Problem: vim9_script test too large +Solution: split vim9 type alias test into + separate test file + +Patch 9.0.2081 +Problem: With 'smoothscroll' set, "w_skipcol" is not reset when unsetting + 'wrap'. Resulting in incorrect calculation of the cursor position. +Solution: Reset "w_skipcol" when unsetting 'wrap'. + +Patch 9.0.2082 +Problem: test_channel may fail because of IPv6 config issues +Solution: Catch and skip the test, if getaddrinfo() fails with + 'Address family not supported' + +Patch 9.0.2083 +Problem: Perl: xsubpp may be in non-standard location +Solution: Add --with-subpp configure option + +Patch 9.0.2084 +Problem: Vim9: abstract static methods are possible +Solution: Disallow abstract static methods + +Patch 9.0.2085 +Problem: Vim9: abstract can be used in interface +Solution: Disallow the use of abstract in an interface + +Patch 9.0.2086 +Problem: code cleanup for option callbacks needed +Solution: remove flag os_doskip, it's not necessary, as we can check, + whether an error message was returned + +Patch 9.0.2087 +Problem: build-failure in vim9class +Solution: reference correct error message, + disable non-failing test + +Patch 9.0.2088 +Problem: Vim9: still allows abstract static methods + (after v9.0.2084, v9.0.2085 and v9.0.2087) +Solution: Disallow abstract static methods + +Patch 9.0.2089 +Problem: sound_playfile() fails when using powershell +Solution: quote filename using doublequotes, don't escape filename, + because it doesn't use the shell + +Patch 9.0.2090 +Problem: complete_info() skips entries with 'noselect' +Solution: Check, if first entry is at original text state + +Patch 9.0.2091 +Problem: Vim9: cannot convert list to string using += + (after 9.0.2072) +Solution: convert dict index to string later in compile_member() + +Patch 9.0.2092 +Problem: tests: failure in test_arabic +Solution: adjust the test for the changed arabic keymap + +Patch 9.0.2093 +Problem: Unsupported option causes rest of modeline test to be skipped. +Solution: Revert the change from patch 8.2.1432. + +Patch 9.0.2094 +Problem: Vim9: need more assignment tests +Solution: Add test for using different types in assignment, function + arguments and return values + +Patch 9.0.2095 +Problem: statusline may look different than expected +Solution: do not check for highlighting of stl and stlnc characters + +Patch 9.0.2096 +Problem: Vim9: confusing usage of private +Solution: clarify and use protected keyword instead + +Patch 9.0.2097 +Problem: No support for cypher files +Solution: Add cypher filetype detection + +Patch 9.0.2098 +Problem: No filetype support for xcompose files +Solution: Add filetype detection + +Patch 9.0.2099 +Problem: Terminal control codes¹ are sent even when silent + mode is on, causing the terminal to clear up +Solution: Block any terminal codes when silent mode is on + +Patch 9.0.2100 +Problem: CI: test_Termdebug fails +Solution: only test for a changed winlayout, if the window + width actually changed + +Patch 9.0.2101 +Problem: CI: test_termdebug may still fail +Solution: use term_wait() to make it more robust + +Patch 9.0.2102 +Problem: matchparen highlight not cleared in completion mode +Solution: Clear matchparen highlighting in completion mode + +Patch 9.0.2103 +Problem: recursive callback may cause issues on some archs +Solution: Decrease the limit drastically to 20 + +Patch 9.0.2104 +Problem: wast filetype should be replaced by wat filetype +Solution: start using the official wat filetype name + +Patch 9.0.2105 +Problem: Skipcol is not reset when topline changed scrolling cursor to top +Solution: reset skipcol + +Patch 9.0.2106 +Problem: [security]: Use-after-free in win_close() +Solution: Check window is valid, before accessing it + +Patch 9.0.2107 +Problem: [security]: FPE in adjust_plines_for_skipcol +Solution: don't divide by zero, return zero + +Patch 9.0.2108 +Problem: [security]: overflow with count for :s command +Solution: Abort the :s command if the count is too large + +Patch 9.0.2109 +Problem: [security]: overflow in nv_z_get_count +Solution: break out, if count is too large + +Patch 9.0.2110 +Problem: [security]: overflow in ex address parsing +Solution: Verify that lnum is positive, before subtracting from + LONG_MAX + +Patch 9.0.2111 +Problem: [security]: overflow in get_number +Solution: Return 0 when the count gets too large + +Patch 9.0.2112 +Problem: [security]: overflow in shift_line +Solution: allow a max indent of INT_MAX + +Patch 9.0.2113 +Problem: Coverity warns for another overflow in shift_line() +Solution: Test for INT_MAX after the if condition, cast integer values + to (long long) before multiplying. + +Patch 9.0.2114 +Problem: overflow detection not accurate when adding digits +Solution: Use a helper function + +Patch 9.0.2115 +Problem: crash when callback function aborts because of recursiveness +Solution: correctly initialize rettv + +Patch 9.0.2116 +Problem: No test for defining sign without attribute +Solution: Add test for defining sign without attributes + +Patch 9.0.2117 +Problem: [security] use-after-free in qf_free_items +Solution: only access qfpnext, if it hasn't been freed + +Patch 9.0.2118 +Problem: [security]: avoid double-free +Solution: Only fee plain_font, when it is not the same as bold_font + +Patch 9.0.2119 +Problem: remove dead-condition in ex_class() +Solution: remove the extra condition + +Patch 9.0.2120 +Problem: un-used assignment in do_source_buffer_init +Solution: Remove it + +Patch 9.0.2121 +Problem: [security]: use-after-free in ex_substitute +Solution: always allocate memory + +Patch 9.0.2122 +Problem: [security]: prevent overflow in indenting +Solution: use long long and remove cast to (int) + +Patch 9.0.2123 +Problem: Problem with initializing the length of range() lists +Solution: Set length explicitly when it shouldn't contain any items + +Patch 9.0.2124 +Problem: INT overflow logic can be simplified +Solution: introduce trim_to_int() function + +Patch 9.0.2125 +Problem: File info disappears immediately when 'cmdheight' has just + decreased due to switching tabpage and 'shortmess' doesn't + contain 'o' or 'O'. +Solution: Make sure msg_row isn't smaller than cmdline_row. + +Patch 9.0.2126 +Problem: Unused assignments when checking the value of 'listchars'. +Solution: Loop only once when just checking the value. Add a test to + check that this change doesn't cause double-free. + +Patch 9.0.2127 +Problem: translation Makefiles can be improved +Solution: Modified and extended po-related Makefiles and + related files + +Patch 9.0.2128 +Problem: No runtime files for SWIG filetypes +Solution: Add syntax and filetype plugins for SWIG (Simplified Wrapper + Interface Generator) description files. + +Patch 9.0.2129 +Problem: [security]: use-after-free in call_dfunc() +Solution: Refresh dfunc pointer + +Patch 9.0.2130 +Problem: some errors with translation Makefiles +Solution: fix issues + +Patch 9.0.2131 +Problem: not all nushell files detected +Solution: use *.nu to detect nushell files + +Patch 9.0.2132 +Problem: Duplicate Netbeans Error Message +Solution: Remove duplicate message + +Patch 9.0.2133 +Problem: Cannot detect overstrike mode in Cmdline mode +Solution: Make mode() return "cr" for overstrike + +Patch 9.0.2134 +Problem: ml_get error when scrolling after delete +Solution: mark topline to be validated in main_loop + if it is larger than current buffers line + count + +Patch 9.0.2135 +Problem: No test for mode() when executing Ex commands +Solution: Add some test cases and simplify several other test cases. + Also add a few more test cases for ModeChanged. + +Patch 9.0.2136 +Problem: MSVC errorformat can be improved +Solution: parse error type and column number in MSVC errorformat + +Patch 9.0.2137 +Problem: Can't detect angular & mustache filetypes +Solution: Detect *.mustache as Mustache filetype; + detect *.component.html as html.angular filetype + +Patch 9.0.2138 +Problem: Overflow logic requires long long +Solution: Define vimlong_T data type to make life easier + for porters + +Patch 9.0.2139 +Problem: html.angular ft is problematic +Solution: partly revert v9.0.2137 + +Patch 9.0.2140 +Problem: [security]: use-after-free in win-enter +Solution: validate window pointer before calling win_enter() + +Patch 9.0.2141 +Problem: [security]: buffer-overflow in suggest_trie_walk +Solution: Check n before using it as index into bytes array + +Patch 9.0.2142 +Problem: [security]: stack-buffer-overflow in option callback functions +Solution: pass size of errbuf down the call stack, use snprintf() + instead of sprintf() + +Patch 9.0.2143 +Problem: [security]: buffer-overflow in ex_substitute +Solution: clear memory after allocating + +Patch 9.0.2144 +Problem: Text properties causes wrong line wrapping to be drawn. +Solution: Find the index of the last text property that inserts text. + +Patch 9.0.2145 +Problem: Wrong scrolling in Insert mode with 'smoothscroll' at the + bottom of the window. +Solution: Don't use set_topline() when 'smoothscroll' is set. + +Patch 9.0.2146 +Problem: text-property without type errors when joining +Solution: count all text-properties, with or without type + before joining lines + +Patch 9.0.2147 +Problem: Type check tests fail without the channel feature +Solution: only run tests, when Vim was build with +channel + +Patch 9.0.2148 +Problem: Vim does not detect pacman.log file +Solution: Detect pacmanlogs and add syntax highlighting + +Patch 9.0.2149 +Problem: [security]: use-after-free in exec_instructions() +Solution: get tv pointer again + +Patch 9.0.2150 +Problem: Using int for errbuflen in option funcs +Solution: Use size_t for errbuflen in string option functions + +Patch 9.0.2151 +Problem: 'breakindent' is not drawn after diff filler lines. +Solution: Correct check for whether 'breakindent' should be drawn. + +Patch 9.0.2152 +Problem: Using type unknown for List/Dict containers +Solution: Use 'any' instead + +Patch 9.0.2153 +Problem: no support to build on OpenVMS +Solution: Add OpenVMS X86_64 platform port + +Patch 9.0.2154 +Problem: The options[] array is not sorted alphabetically. +Solution: Sort it alphabetically. Add a test. Avoid unnecessary loop + iterations in findoption(). + +Patch 9.0.2155 +Problem: Vim9: type not kept when assigning vars +Solution: When assigning a List or a Dict value to a variable of type + 'any', keep the type + +Patch 9.0.2156 +Problem: Vim9: can use typealias in an assignment +Solution: Generate errors when class/typealias involved in the rhs of an + assignment + +Patch 9.0.2157 +Problem: Vim9: incorrectly parses :def func definitions +Solution: check for more context when parsing function args + +Patch 9.0.2158 +Problem: [security]: use-after-free in check_argument_type +Solution: Reset function type pointer when freeing the function type + list + +Patch 9.0.2159 +Problem: screenpos() may crash with neg. column +Solution: validate and correct column + +Patch 9.0.2160 +Problem: instanceof() should use varargs as second arg +Solution: Modify `instanceof()` to use varargs instead of list + +Patch 9.0.2161 +Problem: Vim9: not able to use imported interfaces and classes +Solution: Detect imported class/interfaces names correctly + +Patch 9.0.2162 +Problem: Vim9: type documentation out-dated +Solution: Update documentation, fix typo in type alias + definition + +Patch 9.0.2163 +Problem: Vim9: type can be assigned to list/dict +Solution: Prevent assigning a `type` to a `list` or `dict` + +Patch 9.0.2164 +Problem: Vim9: can use type a func arg/return value +Solution: Check if using type as function argument or return value + +Patch 9.0.2165 +Problem: Vim9: can simplify arg type checking code +Solution: In `f_argcheck` array use `arg_any`, instead of NULL + +Patch 9.0.2166 +Problem: Memory leak in Configure Script when checking GTK +Solution: Free the allocated memory + +Patch 9.0.2167 +Problem: Vim9-script object/class variable declarations use syntax + that is inconsistent with the rest of the language. +Solution: Use :var to declare object and class variables. + +Patch 9.0.2168 +Problem: Moving tabpages on :drop may cause an endless loop +Solution: Disallow moving tabpages on :drop when cleaning up the arglist + first + +Patch 9.0.2169 +Problem: Vim9: builtin funcs may accept a non-value +Solution: Restrict builtin functions that accept `type` + +Patch 9.0.2170 +Problem: Vim9: no support for const/final class/objects vars +Solution: Support final and const object and class variables + +Patch 9.0.2171 +Problem: The options[] array is still not sorted alphabetically + (after: v9.0.2154), causing test failures +Solution: Sort the remaining items + +Patch 9.0.2172 +Problem: Vim9: compiling :defer may fail +Solution: compile defer, when ctx_skip is not SKIP_YES + +Patch 9.0.2173 +Problem: Vim9: Vim crashes when compiling a for statement with a + non-existing type +Solution: Error out when lhs_type is not null + +Patch 9.0.2174 +Problem: Vim9: segfault when assigning to type +Solution: do not clear typeval, add missing patch number + +Patch 9.0.2175 +Problem: Compiler warning for uninitialized var +Solution: initialize variable to NULL + +Patch 9.0.2176 +Problem: Compile error with Motif UI + mouse support (after v9.0.1262) +Solution: Use correct oldval option pointer + +Patch 9.0.2177 +Problem: Wrong cursor position when dragging out of window. +Solution: Don't use ScreenCols[] when mouse is not in current window. + +Patch 9.0.2178 +Problem: reg_executing() returns wrong result in :normal with range + when 'showcmd' is set (after 8.2.4705). +Solution: Reset "pending_end_reg_executing" when executing a register. + +Patch 9.0.2179 +Problem: no filetype detection for execline scripts +Solution: Add filetype detection for execline + +Patch 9.0.2180 +Problem: POSIX function name in exarg struct causes issues + on OpenVMS +Solution: Rename getline member in exarg struct to ea_getline, + remove isinf() workaround for VMS + +Patch 9.0.2181 +Problem: Vim9: missing error messages +Solution: Add one more error message + +Patch 9.0.2182 +Problem: Vim9: need a way to reserve future extension +Solution: reserve double underscore prefix for future use + (Yegappan Lakshmanan) + +Patch 9.0.2183 +Problem: Maximum callback depth is not configurable. +Solution: Revert patch 9.0.2103. Set 'maxfuncdepth' in test. + (zeertzjq) + +Patch 9.0.2184 +Problem: Vim9: inconsistent :type/:class messages +Solution: Update the Messages (Ernie Rael) + +Patch 9.0.2185 +Problem: Coverity complains about not checking return value + in compare_isn_not_values (after 9.0.2184) +Solution: cast return value to "(void)" to make intention clear + +Patch 9.0.2186 +Problem: LTCG compile error on Win/ARM64 for `write_chars()` +Solution: Explicitly initialise the storage to use data rather than BSS + (Saleem Abdulrasool) + +Patch 9.0.2187 +Problem: Visual selection isn't drawn with 'breakindent' when the line + doesn't fit in the window (Jaehwang Jung) +Solution: Adjust wlv->fromcol also for 'breakindent' (zeertzjq) + +Patch 9.0.2188 +Problem: cursor wrong after { in single line buffer + (Edwin Chan) +Solution: do not place the cursor at the end for a single + line buffer when moving backwards (Gary Johnson) + +Patch 9.0.2189 +Problem: Wrong display when 'breakindentopt' contains "sbr" and + 'showbreak' and 'nobreakindent' are set. +Solution: Always reset wlv->need_showbreak regardless of the values of + 'breakindent' and 'showbreak', as they aren't checked when + setting wlv->need_showbreak (zeertzjq) + +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. + +Support for the XDG Desktop Specification |xdg-base-dir| + +Vim9 script +----------- +Add support for internal builtin functions with vim9 objects, see +|builtin-object-methods| + +Enum support for Vim9 script |:enum| + +Other improvements *new-other-9.2* +------------------ + +Changed *changed-9.2* +------- + +- use 'smoothscroll' logic for CTRL-F and CTRL-B for pagewise scrolling +- use 'smoothscroll' logic for CTRL-D and CTRL-U for half-pagewise scrolling + +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: ~ + +|SessionWritePost| after writing the session file |:mksession| +|TermResponseAll| after the terminal response to |t_RV| and others is + received +|WinNewPre| before creating a new window + + +Highlighting: ~ + +|hl-MsgArea| highlighting of the Command-line and messages area. + +Commands: ~ + + +Options: ~ + +'winfixbuf' Keep buffer focused in a window +'t_xo' Terminal uses XON/XOFF handshaking (e.g. vt420). + +============================================================================== +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: + vim:tw=78:ts=8:noet:ft=help:norl:fdm=manual: diff --git a/runtime/doc/vi_diff.txt b/runtime/doc/vi_diff.txt index 433270647f..1714833c83 100644 --- a/runtime/doc/vi_diff.txt +++ b/runtime/doc/vi_diff.txt @@ -1,4 +1,4 @@ -*vi_diff.txt* For Vim version 9.0. Last change: 2022 Apr 03 +*vi_diff.txt* For Vim version 9.1. Last change: 2022 Apr 03 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/vim-tr.1 b/runtime/doc/vim-tr.1 index 8e7bb4f412..0872810d0e 100644 --- a/runtime/doc/vim-tr.1 +++ b/runtime/doc/vim-tr.1 @@ -57,7 +57,7 @@ Biraz daha a .PP vim [seenekler] [dosyalistesi] .PP -Eer dosya listesi salanmamsa, dzenleyici bo bir arabellek aar. +Eer dosya listesi salanmamsa dzenleyici bo bir arabellek aar. Bunun dnda aadaki drt seenekten bir tanesi de bir veya birden ok dosyay dzenlemek iin kullanlabilir. .TP 12 @@ -87,7 +87,7 @@ Ek bilgi i \-q [hatadosyas] Hzl dzelt kipinde balat [hatadosyas] okunur ve ilk hata grntlenir. -Eer [hatadosyas] salanmazsa, dosya ad 'errorfile' seeneinden alnr +Eer [hatadosyas] salanmazsa dosya ad 'errorfile' seeneinden alnr (ntanml olarak Amiga iin "AztecC.Err", dier sistemlerde "errors.err"). Sonraki hatalara ":cn" komutu ile geilebilir. Ek bilgi iin: ":help quickfix". diff --git a/runtime/doc/vim-tr.UTF-8.1 b/runtime/doc/vim-tr.UTF-8.1 index c41980541b..0ce771b236 100644 --- a/runtime/doc/vim-tr.UTF-8.1 +++ b/runtime/doc/vim-tr.UTF-8.1 @@ -57,7 +57,7 @@ Biraz daha açacak olursak: .PP vim [seçenekler] [dosyalistesi] .PP -Eğer dosya listesi sağlanmamışsa, düzenleyici boş bir arabellek açar. +Eğer dosya listesi sağlanmamışsa düzenleyici boş bir arabellek açar. Bunun dışında aşağıdaki dört seçenekten bir tanesi de bir veya birden çok dosyayı düzenlemek için kullanılabilir. .TP 12 @@ -87,7 +87,7 @@ Ek bilgi için: ":help tag\-commands". \-q [hatadosyası] Hızlı düzelt kipinde başlat [hatadosyası] okunur ve ilk hata görüntülenir. -Eğer [hatadosyası] sağlanmazsa, dosya adı 'errorfile' seçeneğinden alınır +Eğer [hatadosyası] sağlanmazsa dosya adı 'errorfile' seçeneğinden alınır (öntanımlı olarak Amiga için "AztecC.Err", diğer sistemlerde "errors.err"). Sonraki hatalara ":cn" komutu ile geçilebilir. Ek bilgi için: ":help quickfix". diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt index d10eae9c06..7a49aa0826 100644 --- a/runtime/doc/vim9.txt +++ b/runtime/doc/vim9.txt @@ -1,4 +1,4 @@ -*vim9.txt* For Vim version 9.0. Last change: 2023 Oct 23 +*vim9.txt* For Vim version 9.1. Last change: 2024 Apr 13 VIM REFERENCE MANUAL by Bram Moolenaar @@ -641,6 +641,14 @@ No command can follow the "{", only a comment can be used there. The block can also be used for defining a user command. Inside the block Vim9 syntax will be used. +This is an example of using here-docs: > + com SomeCommand { + g:someVar =<< trim eval END + ccc + ddd + END + } + If the statements include a dictionary, its closing bracket must not be written at the start of a line. Otherwise, it would be parsed as the end of the block. This does not work: > @@ -1055,8 +1063,11 @@ variable, since they cannot be deleted with `:unlet`. E.g.: > The values can also be useful as the default value for an argument: > def MyFunc(b: blob = null_blob) - if b == null_blob - # b argument was not given + # Note: compare against null, not null_blob, + # to distinguish the default value from an empty blob. + if b == null + # b argument was not given +See |null-compare| for more information about testing against null. It is possible to compare `null` with any value, this will not give a type error. However, comparing `null` with a number, float or bool will always @@ -1257,10 +1268,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} @@ -1508,7 +1521,6 @@ Custom types can be defined with `:type`: > :type MyList list Custom types must start with a capital letter, to avoid name clashes with builtin types added later, similarly to user functions. -{not implemented yet} And classes and interfaces can be used as types: > :class MyClass @@ -1684,7 +1696,7 @@ the type must match: > FuncVA = (v1: string, v: string2): number => 333 # Error! FuncVA = (v: list): number => 3 # Error! -If the destinataion funcref has no specified arguments, then there is no +If the destination funcref has no specified arguments, then there is no argument type checking: > var FuncUnknownArgs: func: number FuncUnknownArgs = (v): number => v # OK @@ -1698,6 +1710,155 @@ argument type checking: > Types are checked for most builtin functions to make it easier to spot mistakes. +Categories of variables, defaults and null handling ~ + *variable-categories* *null-variables* +There are categories of variables: + primitive number, float, boolean + container string, blob, list, dict + specialized function, job, channel, user-defined-object + +When declaring a variable without an initializer, an explicit type must be +provided. Each category has different default initialization semantics. Here's +an example for each category: > + var num: number # primitives default to a 0 equivalent + var cont: list # containers default to an empty container + var spec: job # specialized variables default to null +< +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|. + +For a specialized variable, like `job`, null_ is used to clear the +resources. For a container variable, resources can also be cleared by +assigning an empty container to the variable. For example: > + var j: job = job_start(...) + # ... job does its work + j = null_job # clear the variable and release the job's resources + + var l: list + # ... add lots of stuff to list + l = [] # clear the variable and release container resources +Using the empty container, rather than null_, to clear a container +variable may avoid null complications as described in |null-anomalies|. + +The initialization semantics of container variables and specialized variables +differ. An uninitialized container defaults to an empty container: > + var l1: list # empty container + var l2: list = [] # empty container + var l3: list = null_list # null container +"l1" and "l2" are equivalent and indistinguishable initializations; but "l3" +is a null container. A null container is similar to, but different from, an +empty container, see |null-anomalies|. + +Specialized variables default to null. These job initializations are +equivalent and indistinguishable: > + var j1: job + var j2: job = null_job + var j3 = null_job + +When a list or dict is declared, if the item type is not specified and can not +be inferred, then the type is "any": > + var d1 = {} # type is "dict" + var d2 = null_dict # type is "dict" + +Declaring a function, see |vim9-func-declaration|, is particularly unique. + + *null-compare* +For familiar null compare semantics, where a null container is not equal to +an empty container, do not use null_ in a comparison: > + vim9script + def F(arg: list = null_list) + if arg == null + echo "null" + else + echo printf("not null, %sempty", empty(arg) ? '' : 'not ') + endif + enddef + F() # output: "null" + 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. +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 +< +In the above example, where the goal is to distinguish a null list from an +empty list, comparing against `null` instead of `null_list` is the correct +choice. The basic reason is because "null_list == null" and "[] != null". +Comparing to `null_list` fails since "[] == null_list". In the following section +there are details about comparison results. + + *null-details* *null-anomalies* +This section describes issues about using null and null_; included below +are the enumerated results of null comparisons. In some cases, if familiar +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 +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 +< +Two values equal to a null_ are not necessarily equal to each other: > + vim9script + echo {} == null_dict # true + echo null_dict == null # true + echo {} == null # false +< +Unlike the other containers, an uninitialized string is equal to null. The +'is' operator can be used to determine if it is a null_string: > + vim9script + var s1: string + var s2 = null_string + echo s1 == null # true - this is unexpected + echo s2 == null # true + echo s2 is null_string # true + + var b1: blob + var b2 = null_blob + echo b1 == null # false + echo b2 == null # true +< +Any variable initialized to the null_ is equal to the null_ and is +also equal to null. For example: > + vim9script + var x = null_blob + echo x == null_blob # true + echo x == null # true +< +An uninitialized variable is usually equal to null; it depends on its type: + var s: string s == null + var b: blob b != null *** + var l: list l != null *** + var d: dict d != null *** + var f: func f == null + var j: job j == null + var c: channel c == null + var o: Class o == null + +A variable initialized to empty equals null_; but not null: + var s2: string = "" == null_string != null + var b2: blob = 0z == null_blob != null + var l2: list = [] == null_list != null + var d2: dict = {} == null_dict != null + +NOTE: the specialized variables, like job, default to null value and have no +corresponding empty value. + ============================================================================== 5. Namespace, Import and Export @@ -1870,7 +2031,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 f7ce914628..ef96aa9076 100644 --- a/runtime/doc/vim9class.txt +++ b/runtime/doc/vim9class.txt @@ -1,13 +1,10 @@ -*vim9class.txt* For Vim version 9.0. Last change: 2023 Nov 20 +*vim9class.txt* For Vim version 9.1. Last change: 2024 Apr 13 VIM REFERENCE MANUAL by Bram Moolenaar -NOTE - This is not finished yet, anything can still change! - NOTE - - -Vim9 classes, objects, interfaces, types and enums. +Vim9 classes, objects, interfaces, types and enums. *vim9-class* 1. Overview |Vim9-class-overview| 2. A simple class |Vim9-simple-class| @@ -78,8 +75,8 @@ Let's start with a simple example: a class that stores a text position (see below for how to do this more efficiently): > class TextPosition - this.lnum: number - this.col: number + var lnum: number + var col: number def new(lnum: number, col: number) this.lnum = lnum @@ -103,17 +100,27 @@ below for how to do this more efficiently): > You can create an object from this class with the new() method: > var pos = TextPosition.new(1, 1) - +< The object variables "lnum" and "col" can be accessed directly: > echo $'The text position is ({pos.lnum}, {pos.col})' -< *E1317* *E1327* -If you have been using other object-oriented languages you will notice that -in Vim the object members are consistently referred to with the "this." -prefix. This is different from languages like Java and TypeScript. The -naming convention makes the object members easy to spot. Also, when a -variable does not have the "this." prefix you know it is not an object -variable. +< *E1317* *E1327* *:this* +If you have been using other object-oriented languages you will notice that in +Vim, within a class definition, the declared object members are consistently +referred to with the "this." prefix. This is different from languages like +Java and TypeScript. The naming convention makes the object members easy to +spot. Also, when a variable does not have the "this." prefix you know it is +not an object variable. + *E1411* +From outside the class definition, access an object's methods and variables by +using the object name followed by a dot following by the member: > + + pos.lnum + pos.SetCol(10) +< + *E1405* *E1406* +A class name cannot be used as an expression. A class name cannot be used in +the left-hand-side of an assignment. Object variable write access ~ @@ -137,8 +144,8 @@ the closest valid value. If you don't care about side effects and want to allow the object variable to be changed at any time, you can make it public: > - public this.lnum: number - public this.col: number + public var lnum: number + public var col: number Now you don't need the SetLnum(), SetCol() and SetPosition() methods, setting "pos.lnum" directly above will no longer give an error. @@ -156,8 +163,8 @@ On the other hand, if you do not want the object variables to be read directly from outside the class or its sub-classes, you can make them protected. This is done by prefixing an underscore to the name: > - this._lnum: number - this._col number + var _lnum: number + var _col: number Now you need to provide methods to get the value of the protected variables. These are commonly called getters. We recommend using a name that starts with @@ -167,7 +174,7 @@ These are commonly called getters. We recommend using a name that starts with return this._lnum enddef - def GetCol() number + def GetCol(): number return this._col enddef @@ -205,12 +212,14 @@ the above class): > < Simplifying the new() method ~ *new()* *constructor* +See also |default-constructor| and |multiple-constructors|. + Many constructors take values for the object variables. Thus you very often see this pattern: > class SomeClass - this.lnum: number - this.col: number + var lnum: number + var col: number def new(lnum: number, col: number) this.lnum = lnum @@ -220,7 +229,7 @@ see this pattern: > < *E1390* Not only is this text you need to write, it also has the type of each -variables twice. Since this is so common a shorter way to write new() is +variable twice. Since this is so common a shorter way to write new() is provided: > def new(this.lnum, this.col) @@ -235,8 +244,8 @@ Putting together this way of using new() and making the variables public results in a much shorter class definition than what we started with: > class TextPosition - public this.lnum: number - public this.col: number + public var lnum: number + public var col: number def new(this.lnum, this.col) enddef @@ -265,7 +274,7 @@ always returns an object of the class. *E1386* When invoking an object method, the method name should be preceded by the -object variable name. A object method cannot be invoked using the class +object variable name. An object method cannot be invoked using the class name. ============================================================================== @@ -277,8 +286,8 @@ Class members are declared with "static". They are used by the name without a prefix in the class where they are defined: > class OtherThing - this.size: number - static totalSize: number + var size: number + static var totalSize: number def new(this.size) totalSize += this.size @@ -297,9 +306,9 @@ underscore as the first character in the name, and it can be made public by prefixing "public": > class OtherThing - static total: number # anybody can read, only class can write - static _sum: number # only class can read and write - public static result: number # anybody can read and write + static var total: number # anybody can read, only class can write + static var _sum: number # only class can read and write + public static var result: number # anybody can read and write endclass < *class-method* @@ -308,8 +317,8 @@ variables but they have no access to the object variables, they cannot use the "this" keyword: > class OtherThing - this.size: number - static totalSize: number + var size: number + static var totalSize: number # Clear the total size and return the value it had before. static def ClearTotalSize(): number @@ -319,9 +328,27 @@ variables but they have no access to the object variables, they cannot use the enddef endclass -Inside the class the class method can be called by name directly, outside the -class the class name must be prefixed: `OtherThing.ClearTotalSize()`. To use -a super class method in a child class, the class name must be prefixed. +Inside the class, the class method can be called by name directly, outside the +class, the class name must be prefixed: `OtherThing.ClearTotalSize()`. Also, +the name prefix must be used for public class methods in the special contexts +of class variable initializers and of lambda expressions and nested functions: +> + class OtherThing + static var name: string = OtherThing.GiveName() + + static def GiveName(): string + def DoGiveName(): string + return OtherThing.NameAny() + enddef + + return DoGiveName() + enddef + + static def NameAny(): string + return "any" + enddef + endclass +< Just like object methods the access can be made protected by using an underscore as the first character in the method name: > @@ -336,8 +363,8 @@ underscore as the first character in the method name: > endclass < *E1370* -Note that constructors cannot be declared as "static", because they always -are. +Note that constructors cannot be declared as "static". They are called like a +static but execute as an object method; they have access to "this". To access the class methods and class variables of a super class in an extended class, the class name prefix should be used just as from anywhere @@ -345,14 +372,14 @@ outside of the defining class: > vim9script class Vehicle - static nextID: number = 1000 + static var nextID: number = 1000 static def GetID(): number nextID += 1 return nextID enddef endclass class Car extends Vehicle - this.myID: number + var myID: number def new() this.myID = Vehicle.GetID() enddef @@ -364,6 +391,81 @@ super class. Depending on the class where the member is used the corresponding class member will be used. The type of the class member in a child class can be different from that in the super class. +The double underscore (__) prefix for a class or object method name is +reserved for future use. + + *object-final-variable* *E1409* +The |:final| keyword can be used to make a class or object variable a +constant. Examples: > + + class A + final v1 = [1, 2] # final object variable + public final v2 = {x: 1} # final object variable + static final v3 = 'abc' # final class variable + public static final v4 = 0z10 # final class variable + endclass +< +A final variable can be changed only from a constructor function. Example: > + + class A + final v1: list + def new() + this.v1 = [1, 2] + enddef + endclass + var a = A.new() + echo a.v1 +< +Note that the value of a final variable can be changed. Example: > + + class A + public final v1 = [1, 2] + endclass + var a = A.new() + a.v1[0] = 6 # OK + a.v1->add(3) # OK + a.v1 = [3, 4] # Error +< + *E1408* +Final variables are not supported in an interface. A class or object method +cannot be final. + + *object-const-variable* +The |:const| keyword can be used to make a class or object variable and the +value a constant. Examples: > + + class A + const v1 = [1, 2] # const object variable + public const v2 = {x: 1} # const object variable + static const v3 = 'abc' # const class variable + public static const v4 = 0z10 # const class variable + endclass +< +A const variable can be changed only from a constructor function. Example: > + + class A + const v1: list + def new() + this.v1 = [1, 2] + enddef + endclass + var a = A.new() + echo a.v1 +< +A const variable and its value cannot be changed. Example: > + + class A + public const v1 = [1, 2] + endclass + var a = A.new() + a.v1[0] = 6 # Error + a.v1->add(3) # Error + a.v1 = [3, 4] # Error +< + *E1410* +Const variables are not supported in an interface. A class or object method +cannot be a const. + ============================================================================== 4. Using an abstract class *Vim9-abstract-class* @@ -380,20 +482,20 @@ it is. The Shape class functions as the base for a Square and a Triangle class, for which objects can be created. Example: > abstract class Shape - this.color = Color.Black - this.thickness = 10 + var color = Color.Black + var thickness = 10 endclass class Square extends Shape - this.size: number + var size: number def new(this.size) enddef endclass class Triangle extends Shape - this.base: number - this.height: number + var base: number + var height: number def new(this.base, this.height) enddef @@ -408,17 +510,15 @@ prefix when defining the method: > abstract class Shape abstract def Draw() - abstract static def SetColor() endclass < A static method in an abstract class cannot be an abstract method. *E1373* -A class extending the abstract class must implement all the abstract methods. -The signature (arguments, argument types and return type) must be exactly the -same. If the return type of a method is a class, then that class or one of -its subclasses can be used in the extended method. Class methods in an -abstract class can also be abstract methods. +A non-abstract class extending the abstract class must implement all the +abstract methods. The signature (arguments, argument types and return type) +must be exactly the same. If the return type of a method is a class, then +that class or one of its subclasses can be used in the extended method. ============================================================================== @@ -430,8 +530,8 @@ interface called HasSurface, which specifies one method Surface() that returns a number. This example extends the one above: > abstract class Shape - this.color = Color.Black - this.thickness = 10 + var color = Color.Black + var thickness = 10 endclass interface HasSurface @@ -439,7 +539,7 @@ a number. This example extends the one above: > endinterface class Square extends Shape implements HasSurface - this.size: number + var size: number def new(this.size) enddef @@ -450,8 +550,8 @@ a number. This example extends the one above: > endclass class Triangle extends Shape implements HasSurface - this.base: number - this.height: number + var base: number + var height: number def new(this.base, this.height) enddef @@ -493,7 +593,7 @@ A class is defined between `:class` and `:endclass`. The whole class is defined in one script file. It is not possible to add to a class later. A class can only be defined in a |Vim9| script file. *E1316* -A class cannot be defined inside a function. +A class cannot be defined inside a function. *E1429* It is possible to define more than one class in a script file. Although it usually is better to export only one main class. It can be useful to define @@ -526,7 +626,7 @@ once. They can appear in any order, although this order is recommended: > < *E1355* *E1369* Each variable and method name can be used only once. It is not possible to define a method with the same name and different type of arguments. It is not -possible to use a public and protected member variable with the same name. A +possible to use a public and protected member variable with the same name. An object variable name used in a super class cannot be reused in a child class. @@ -598,13 +698,13 @@ Items in a class ~ *E1318* *E1325* *E1388* Inside a class, in between `:class` and `:endclass`, these items can appear: - An object variable declaration: > - this._protectedVariableName: memberType - this.readonlyVariableName: memberType - public this.readwriteVariableName: memberType + var _protectedVariableName: memberType + var readonlyVariableName: memberType + public var readwriteVariableName: memberType - A class variable declaration: > - static _protectedClassVariableName: memberType - static readonlyClassVariableName: memberType - static public readwriteClassVariableName: memberType + static var _protectedClassVariableName: memberType + static var readonlyClassVariableName: memberType + public static var readwriteClassVariableName: memberType - A constructor method: > def new(arguments) def newName(arguments) @@ -620,16 +720,42 @@ this explicitly with ": {type}". For simple types you can also use an initializer, such as "= 123", and Vim will see that the type is a number. Avoid doing this for more complex types and when the type will be incomplete. For example: > - this.nameList = [] + var nameList = [] This specifies a list, but the item type is unknown. Better use: > - this.nameList: list + var nameList: list 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* *:endinterface* + *Interface* *:interface* *:endinterface* An interface is defined between `:interface` and `:endinterface`. It may be prefixed with `:export`: > @@ -646,7 +772,7 @@ An interface can declare methods with `:def`, including the arguments and return type, but without the body and without `:enddef`. Example: > interface HasSurface - this.size: number + var size: number def Surface(): number endinterface @@ -663,7 +789,7 @@ null object ~ When a variable is declared to have the type of an object, but it is not initialized, the value is null. When trying to use this null object Vim often does not know what class was supposed to be used. Vim then cannot check if -a variable name is correct and you will get an "Using a null object" error, +a variable name is correct and you will get a "Using a null object" error, even when the variable name is invalid. *E1360* *E1362* @@ -674,9 +800,9 @@ defined. This default constructor will have arguments for all the object variables, in the order they were specified. Thus if your class looks like: > class AutoNew - this.name: string - this.age: number - this.gender: Gender + var name: string + var age: number + var gender: Gender endclass Then the default constructor will be: > @@ -690,8 +816,8 @@ value for the object variables will be used. This is a more useful example, with default values: > class TextPosition - this.lnum: number = 1 - this.col: number = 1 + var lnum: number = 1 + var col: number = 1 endclass If you want the constructor to have mandatory arguments, you need to write it @@ -703,7 +829,7 @@ the name, you can define the constructor like this: > < When using the default new() method, if the order of the object variables in the class is changed later, then all the callers of the default new() method -needs to change. To avoid this, the new() method can be explicitly defined +need to change. To avoid this, the new() method can be explicitly defined without any arguments. *E1328* @@ -719,7 +845,7 @@ first. Multiple constructors ~ - + *multiple-constructors* Normally a class has just one new() constructor. In case you find that the constructor is often called with the same arguments you may want to simplify your code by putting those arguments into a second constructor method. For @@ -747,38 +873,173 @@ 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 *Vim9-type* *:type* +7. Type definition *typealias* *Vim9-type* *:type* + + *E1393* *E1395* *E1396* *E1397* *E1398* +A type definition is giving a name to a type specification. This is also +known as a "type alias". The type alias can be used wherever a built-in type +can be used. Example: > + + type ListOfStrings = list + var s: ListOfStrings = ['a', 'b'] + + def ProcessStr(str: ListOfStrings): ListOfStrings + return str + enddef + echo ProcessStr(s) +< + *E1394* +A type alias name must start with an upper case character. Only existing +types can be aliased. -A type definition is giving a name to a type specification. This also known -type alias. For Example: > + *E1399* +A type alias can be created only at the script level and not inside a +function. A type alias can be exported and used across scripts. - :type ListOfStrings = list + *E1400* *E1401* *E1402* *E1403* *E1407* +A type alias cannot be used as an expression. A type alias cannot be used in +the left-hand-side of an assignment. -The type alias can be used wherever a built-in type can be used. The type -alias name must start with an upper case character. A type alias can be -created only at the script level and not inside a function. A type alias can -be exported and used across scripts. +For a type alias name, the |typename()| function returns the type that is +aliased: > + type ListOfStudents = list> + echo typename(ListOfStudents) + typealias>> +< ============================================================================== 8. Enum *Vim9-enum* *:enum* *:endenum* -{not implemented yet} - + *enum* *E1418* *E1419* *E1420* An enum is a type that can have one of a list of values. Example: > - :enum Color - White - Red - Green - Blue - Black - :endenum + :enum Color + White, + Red, + Green, Blue, Black + :endenum +< + *enumvalue* *E1422* +The enum values are separated by commas. More than one enum value can be +listed in a single line. The final enum value should not be followed by a +comma. + +An enum value is accessed using the enum name followed by the value name: > + + var a: Color = Color.Blue +< +Enums are treated as classes, where each enum value is essentially an instance +of that class. Unlike typical object instantiation with the |new()| method, +enum instances cannot be created this way. + +An enum can only be defined in a |Vim9| script file. *E1414* +An enum cannot be defined inside a function. + + *E1415* +An enum name must start with an uppercase letter. The name of an enum value +in an enum can start with an upper or lowercase letter. + + *E1416* +An enum can implement an interface but cannot extend a class: > + enum MyEnum implements MyIntf + Value1, + Value2 + def SomeMethod() + enddef + endenum +< + *enum-constructor* +The enum value objects in an enum are constructed like any other objects using +the |new()| method. Arguments can be passed to the enum constructor by +specifying them after the enum value name, just like calling a function. The +default constructor doesn't have any arguments. + + *E1417* +An enum can contain class variables, class methods, object variables and +object methods. The methods in an enum cannot be |:abstract| methods. + +The following example shows an enum with object variables and methods: > + + vim9script + enum Planet + Earth(1, false), + Jupiter(95, true), + Saturn(146, true) + + var moons: number + var has_rings: bool + def GetMoons(): number + return this.moons + enddef + endenum + echo Planet.Jupiter.GetMoons() + echo Planet.Earth.has_rings +< + *E1421* *E1423* *E1424* *E1425* +Enums and their values are immutable. They cannot be utilized as numerical or +string types. Enum values can declare mutable instance variables. + + *enum-name* +Each enum value object has a "name" instance variable which contains the name +of the enum value. This is a readonly variable. + + *enum-ordinal* *E1426* +Each enum value has an associated ordinal number starting with 0. The ordinal +number of an enum value can be accessed using the "ordinal" instance variable. +This is a readonly variable. Note that if the ordering of the enum values in +an enum is changed, then their ordinal values will also change. + + *enum-values* +All the values in an enum can be accessed using the "values" class variable +which is a List of the enum objects. This is a readonly variable. + +Example: > + enum Planet + Mercury, + Venus, + Earth + endenum + + echo Planet.Mercury + echo Planet.Venus.name + echo Planet.Venus.ordinal + for p in Planet.values + # ... + endfor +< +An enum is a class with class variables for the enum value objects and object +variables for the enum value name and the enum value ordinal: > + + enum Planet + Mercury, + Venus + endenum +< +The above enum definition is equivalent to the following class definition: > + + class Planet + public static final Mercury: Planet = Planet.new('Mercury', 0) + public static final Venus: Planet = Planet.new('Venus', 1) + + public static const values: list = [Planet.Mercury, Planet.Venus] + + public const name: string + public const ordinal: number + endclass +< ============================================================================== 9. Rationale @@ -887,7 +1148,7 @@ in the body, while for other variables this is not needed and often omitted. This leads to a mix of variables with and without "this.", which is inconsistent. -For |Vim9| classes the "this." prefix is always used. Also for declaring the +For |Vim9| classes the "this." prefix is always used for declared methods and variables. Simple and consistent. When looking at the code inside a class it's also directly clear which variable references are object variables and which aren't. @@ -923,28 +1184,28 @@ Following that Vim object variables could be declared like this: > endclass Some users pointed out that this looks more like an assignment than a -declaration. Adding "var" changes that: > +declaration. Adding "var" and omitting "this." changes that: > class Point - var this.x: number - var this.y = 0 + var x: number + var y = 0 endclass We also need to be able to declare class variables using the "static" keyword. There we can also choose to leave out "var": > class Point - var this.x: number + var x: number static count = 0 endclass Or do use it, before "static": > class Point - var this.x: number + var x: number var static count = 0 endclass Or after "static": > class Point - var this.x: number + var x: number static var count = 0 endclass @@ -952,9 +1213,14 @@ This is more in line with "static def Func()". There is no clear preference whether to use "var" or not. The two main reasons to leave it out are: -1. TypeScript, Java and other popular languages do not use it. +1. TypeScript and other popular languages do not use it. 2. Less clutter. +However, it is more common for languages to reuse their general variable and +function declaration syntax for class/object variables and methods. Vim9 also +reuses the general function declaration syntax for methods. So, for the sake +of consistency, we require "var" in these declarations. + Using "ClassName.new()" to construct an object ~ diff --git a/runtime/doc/vimtutor-ja.UTF-8.1 b/runtime/doc/vimtutor-ja.UTF-8.1 index 2ba8f43a48..2e4f69dcec 100644 --- a/runtime/doc/vimtutor-ja.UTF-8.1 +++ b/runtime/doc/vimtutor-ja.UTF-8.1 @@ -35,7 +35,7 @@ vimtutor \- Vim チュートリアル は、Colorado State University の Charles Smith のアイデアを基に、 Colorado School of Mines の Michael C. Pierce と Robert K. Ware の両名によって Vi 向けに作成されたものを基にしています。 -E-mail: bware@mines.colorado.edu. +E-mail: bware@mines.colorado.edu (現在は無効). .br .B Vim に合わせて Bram Moolenaar が変更を加えました。 diff --git a/runtime/doc/visual.txt b/runtime/doc/visual.txt index a91969e41e..3f48915c65 100644 --- a/runtime/doc/visual.txt +++ b/runtime/doc/visual.txt @@ -1,4 +1,4 @@ -*visual.txt* For Vim version 9.0. Last change: 2023 Sep 19 +*visual.txt* For Vim version 9.1. Last change: 2023 Sep 19 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt index 74cec42303..e264e51170 100644 --- a/runtime/doc/windows.txt +++ b/runtime/doc/windows.txt @@ -1,4 +1,4 @@ -*windows.txt* For Vim version 9.0. 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/doc/workshop.txt b/runtime/doc/workshop.txt index f71866dd12..9ec30da950 100644 --- a/runtime/doc/workshop.txt +++ b/runtime/doc/workshop.txt @@ -1,4 +1,4 @@ -*workshop.txt* For Vim version 9.0. Last change: 2019 Jan 17 +*workshop.txt* For Vim version 9.1. Last change: 2019 Jan 17 VIM REFERENCE MANUAL by Gordon Prieur diff --git a/runtime/doc/xxd-ja.UTF-8.1 b/runtime/doc/xxd-ja.UTF-8.1 index 1e06bde814..dabc4771dc 100644 --- a/runtime/doc/xxd-ja.UTF-8.1 +++ b/runtime/doc/xxd-ja.UTF-8.1 @@ -57,7 +57,7 @@ ビット (2進数) ダンプ。 1 オクテットが "1" と "0" の 8 文字で出力されます。 各行の行頭には 16 進数の行番号が表示されます。 -行末には ascii (または ebcdic) で表した場合の文字が表示されます。 +行末には ASCII (または EBCDIC) で表した場合の文字が表示されます。 このモードでは \-p、\-i は機能しません。 .TP .IR \-e @@ -100,7 +100,7 @@ コマンドの説明を出力して終了する。変換は実行されません。 .TP .IR \-i " | " \-include -C インクルードファイル形式で出力します。 +C インクルードファイル形式で出力する。 入力ファイルの名前が付けられた静的配列の定義が出力されます。 標準入力の場合は定義の中身だけ出力されます。 .TP @@ -108,6 +108,10 @@ C インクルードファイル形式で出力します。 .RI < len > オクテットだけ出力する。 .TP +.I "\-n name " | " \-name name" +\-i が使われたときに変数名の出力を上書きする。 +配列は \fIname\fP と名付けられ、長さは \fIname\fP_len と名付けられます。 +.TP .I \-o offset 表示されるファイル位置に .RI < offset > @@ -121,7 +125,20 @@ C インクルードファイル形式で出力します。 ファイルへ出力する場合、出力先のファイルは切り詰めされません。 行番号や特定の書式がないプレーン 16 進ダンプを読み込む場合は、 .I \-r \-p -を指定してください。空白と改行は無視されます。 +の組み合わせを使ってください。空白と改行は無視されます。 +16 進ダンプの代わりにビットダンプを読み込むには、 +.I \-r \-b +の組み合わせを使ってください。 +.TP +.IR \-R " " when +16 進の値に基づいて、16 進の値とその値の両方が同じ色でカラー表示される。 +たいていは、表示可能文字と非表示可能文字を区別するのに有用です。 +.I \fIwhen\fP +は +.BR never ", " always ", あるいは " auto +のいずれかです。 +.BR $NO_COLOR +環境変数が設定されているときは、カラー表示は無効化されます。 .TP .I \-seek offset .IR \-r @@ -160,7 +177,7 @@ infile の 16 進ダンプを編集するときは注意が必要です。 .I xxd \-r は必要な桁 (\-c 引数参照) だけ 16 進データを読み込んで、行の残りを無視します。 -つまり、ascii (または ebcdic) を示している列への変更は無視されます。 +つまり、ASCII (または EBCDIC) を示している列への変更は無視されます。 xxd \-r \-p でプレーン形式 (ポストスクリプト形式) の 16 進ダンプを元に戻す場合は、列の数は影響しません。 2 桁の 16 進数と認識できるものはすべて変換されます。 .PP @@ -177,7 +194,7 @@ xxd \-r \-p でプレーン形式 (ポストスクリプト形式) の 16 進ダ .IR "xxd \-s seek" , の違いは、lseek(2) を使って入力を "巻き戻す" かどうかです。'+' が意味を持つのは、入力が標準入力で、xxd が起動されたときに標準入力のファイル位置がファイルの先頭ではなかった場合です。 -以下の例が分かりやすいかもしれません (もっと混乱するかも!)... +以下の例が分かりやすいかもしれません (もっと混乱するかも!): .PP `cat' が既に標準入力を終わりまで読んでいるので、読む前に標準入力を巻き戻す必要がある。 .br @@ -188,7 +205,7 @@ xxd \-r \-p でプレーン形式 (ポストスクリプト形式) の 16 進ダ .br \fI% sh \-c "dd of=plain_snippet bs=1k count=1; xxd \-s +128 > hex_snippet" < file\fR .PP -ファイル位置 0x100 ( = 1024\-768) から 16 進ダンプする。 +ファイル位置 0x100 (=1024\-768) から 16 進ダンプする。 .br \fI% sh \-c "dd of=plain_snippet bs=1k count=1; xxd \-s +\-768 > hex_snippet" < file\fR .PP @@ -331,8 +348,9 @@ xxd.1 の日付を修正する。 エラーなし。 .TP \-1 -操作がサポートされていない ( -.I xxd \-r \-i +操作がサポートされていない +\%(\c +.I \%xxd \-r \-i はまだ不可です)。 .TP 1 diff --git a/runtime/filetype.vim b/runtime/filetype.vim index e7343bd6ff..4a877f7f84 100644 --- a/runtime/filetype.vim +++ b/runtime/filetype.vim @@ -1,7 +1,7 @@ " Vim support file to detect file types " " Maintainer: The Vim Project -" Last Change: 2023 Aug 10 +" Last Change: 2023 Dec 06 " Former Maintainer: Bram Moolenaar " Listen very carefully, I will say this only once @@ -101,6 +101,9 @@ au BufNewFile,BufRead build.xml setf ant " Arduino au BufNewFile,BufRead *.ino,*.pde setf arduino +" Ash of busybox +au BufNewFile,BufRead .ash_history setf sh + " Apache config file au BufNewFile,BufRead .htaccess,*/etc/httpd/*.conf setf apache au BufNewFile,BufRead */etc/apache2/sites-*/*.com setf apache @@ -280,6 +283,9 @@ endif " Busted (Lua unit testing framework - configuration files) au BufNewFile,BufRead .busted setf lua +" Bundle config +au BufNewFile,BufRead */.bundle/config setf yaml + " C or lpc au BufNewFile,BufRead *.c call dist#ft#FTlpc() au BufNewFile,BufRead *.lpc,*.ulpc setf lpc @@ -293,17 +299,24 @@ au BufNewFile,BufRead calendar setf calendar " Cap'n Proto au BufNewFile,BufRead *.capnp setf capnp +" Cgdb config file +au BufNewFile,BufRead cgdbrc setf cgdbrc + " C# au BufNewFile,BufRead *.cs,*.csx setf cs " CSDL au BufNewFile,BufRead *.csdl setf csdl +" Ctags +au BufNewFile,BufRead *.ctags setf conf + " Cabal au BufNewFile,BufRead *.cabal setf cabal -" Cdrdao TOC -au BufNewFile,BufRead *.toc setf cdrtoc +" Cdrdao TOC or LaTeX \tableofcontents files +au BufNewFile,BufRead *.toc + \ if getline(1) =~# '\\contentsline' |setf tex|else|setf cdrtoc|endif " Cdrdao config au BufNewFile,BufRead */etc/cdrdao.conf,*/etc/defaults/cdrdao,*/etc/default/cdrdao,.cdrdao setf cdrdaoconf @@ -317,6 +330,12 @@ au BufRead,BufNewFile *.chai setf chaiscript " Chatito au BufNewFile,BufRead *.chatito setf chatito +" Chktex +au BufRead,BufNewFile .chktexrc setf conf + +" Chuck +au BufNewFile,BufRead *.ck setf chuck + " Comshare Dimension Definition Language au BufNewFile,BufRead *.cdl setf cdl @@ -348,7 +367,7 @@ au BufNewFile,BufRead *.cypher setf cypher " C++ au BufNewFile,BufRead *.cxx,*.c++,*.hh,*.hxx,*.hpp,*.ipp,*.moc,*.tcc,*.inl setf cpp if has("fname_case") - au BufNewFile,BufRead *.C,*.H setf cpp + au BufNewFile,BufRead *.C,*.H if !&fileignorecase | setf cpp | endif endif " C++ 20 modules (clang) @@ -406,6 +425,9 @@ au BufNewFile,BufRead .clang-format setf yaml " Clang-tidy au BufNewFile,BufRead .clang-tidy setf yaml +" Matplotlib +au BufNewFile,BufRead *.mplstyle,matplotlibrc setf yaml + " Clean au BufNewFile,BufRead *.dcl,*.icl setf clean @@ -415,6 +437,9 @@ au BufNewFile,BufRead *.eni setf cl " Clever or dtd au BufNewFile,BufRead *.ent call dist#ft#FTent() +" Cling +au BufNewFile,BufRead .cling_history setf cpp + " Clipper, FoxPro, ABB RAPID or eviews au BufNewFile,BufRead *.prg\c call dist#ft#FTprg() @@ -424,6 +449,9 @@ au BufNewFile,BufRead *.clj,*.cljs,*.cljx,*.cljc setf clojure " Cmake au BufNewFile,BufRead CMakeLists.txt,*.cmake,*.cmake.in setf cmake +" CmakeCache +autocmd BufRead,BufNewFile CMakeCache.txt setf cmakecache + " Cmusrc au BufNewFile,BufRead */.cmus/{autosave,rc,command-history,*.theme} setf cmusrc au BufNewFile,BufRead */cmus/{rc,*.theme} setf cmusrc @@ -497,6 +525,17 @@ if has("fname_case") au BufNewFile,BufRead *.EU,*.EW,*.EX,*.EXU,*.EXW call dist#ft#EuphoriaCheck() endif +" Execline (s6) scripts +au BufNewFile,BufRead *s6*/\(up\|down\|run\|finish\) setf execline +au BufNewFile,BufRead s6-* setf execline + +" Fontconfig config files +au BufNewFile,BufRead fonts.conf setf xml + +" Libreoffice config files +au BufNewFile,BufRead *.xcu,*.xlb,*.xlc,*.xba setf xml +au BufNewFile,BufRead psprint.conf,sofficerc setf dosini + " Lynx config files au BufNewFile,BufRead lynx.cfg setf lynx @@ -507,6 +546,25 @@ au BufNewFile,BufRead *.lrc setf lyrics au BufNewFile,BufRead *.quake,cm3.cfg setf m3quake au BufNewFile,BufRead m3makefile,m3overrides setf m3build +" XDG mimeapps.list +au BufNewFile,BufRead mimeapps.list setf dosini + +" Many tools written in Python use dosini as their config +" like setuptools, pudb, coverage, pypi, gitlint, oelint-adv, pylint, bpython, mypy +" (must be before *.cfg) +au BufNewFile,BufRead pip.conf,setup.cfg,pudb.cfg,.coveragerc,.pypirc,.gitlint,.oelint.cfg setf dosini +au BufNewFile,BufRead {.,}pylintrc,*/bpython/config,*/mypy/config setf dosini + +" Many tools written in Python use toml as their config, like black +au BufNewFile,BufRead .black setf toml +au BufNewFile,BufRead black + \ if getline(1) =~ 'tool.back' + \| setf toml + \| endif + +" LXQt's programs use dosini as their config +au BufNewFile,BufRead */{lxqt,screengrab}/*.conf setf dosini + " Quake au BufNewFile,BufRead *baseq[2-3]/*.cfg,*id1/*.cfg setf quake au BufNewFile,BufRead *quake[1-3]/*.cfg setf quake @@ -514,6 +572,14 @@ au BufNewFile,BufRead *quake[1-3]/*.cfg setf quake " Quake C au BufNewFile,BufRead *.qc setf c +" LaTeX packages use LaTeX as their configuration, such as: +" ~/.texlive/texmf-config/tex/latex/hyperref/hyperref.cfg +" ~/.texlive/texmf-config/tex/latex/docstrip/docstrip.cfg +au BufNewFile,BufRead */tex/latex/**.cfg setf tex + +" Wakatime config +au BufNewFile,BufRead .wakatime.cfg setf dosini + " Configure files au BufNewFile,BufRead *.cfg\c call dist#ft#FTcfg() @@ -527,6 +593,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 @@ -615,8 +684,12 @@ au BufNewFile,BufRead *.intr setf dylanintr " Dylan au BufNewFile,BufRead *.dylan setf dylan -" Microsoft Module Definition -au BufNewFile,BufRead *.def setf def +" Microsoft Module Definition or Modula-2 +au BufNewFile,BufRead *.def call dist#ft#FTdef() + +if has("fname_case") + au BufNewFile,BufRead *.DEF setf modula2 +endif " Dracula au BufNewFile,BufRead *.drac,*.drc,*lvs,*lpe setf dracula @@ -635,8 +708,11 @@ 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,*.keymap setf dts + +" Earthfile +au BufNewFile,BufRead Earthfile setf earthfile " EDIF (*.edf,*.edif,*.edn,*.edo) or edn au BufNewFile,BufRead *.ed\(f\|if\|o\) setf edif @@ -716,6 +792,9 @@ au BufNewFile,BufRead *.fir setf firrtl " Fish shell au BufNewFile,BufRead *.fish setf fish +" Flatpak config +au BufNewFile,BufRead */flatpak/repo/config setf dosini + " FlexWiki - disabled, because it has side effects when a .wiki file " is not actually FlexWiki "au BufNewFile,BufRead *.wiki setf flexwiki @@ -848,7 +927,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,.gnuplot_history setf gnuplot " Go (Google) au BufNewFile,BufRead *.go setf go @@ -899,11 +978,7 @@ au BufNewFile,BufRead *.hs,*.hsc,*.hs-boot,*.hsig setf haskell au BufNewFile,BufRead *.lhs setf lhaskell au BufNewFile,BufRead *.chs setf chaskell au BufNewFile,BufRead cabal.project setf cabalproject -au BufNewFile,BufRead $HOME/.cabal/config setf cabalconfig -if exists('$XDG_CONFIG_HOME') - au BufNewFile,BufRead $XDG_CONFIG_HOME/cabal/config setf cabalconfig -endif -au BufNewFile,BufRead $HOME/.config/cabal/config setf cabalconfig +au BufNewFile,BufRead */{.,}cabal/config setf cabalconfig au BufNewFile,BufRead cabal.config setf cabalconfig au BufNewFile,BufRead *.persistentmodels setf haskellpersistent @@ -924,7 +999,7 @@ au BufNewFile,BufRead *.vc,*.ev,*.sum,*.errsum setf hercules au BufRead,BufNewFile *.heex setf heex " HEX (Intel) -au BufNewFile,BufRead *.hex,*.h32 setf hex +au BufNewFile,BufRead *.hex,*.ihex,*.int,*.ihe,*.ihx,*.mcs,*.h32,*.h80,*.h86,*.a43,*.a90 setf hex " Hjson au BufNewFile,BufRead *.hjson setf hjson @@ -941,6 +1016,9 @@ au BufRead,BufNewFile *.hoon setf hoon " Tilde (must be before HTML) au BufNewFile,BufRead *.t.html setf tilde +" Translate shell +au BufNewFile,BufRead init.trans,*/etc/translate-shell,.trans setf clojure + " HTML (.shtml and .stm for server side) au BufNewFile,BufRead *.html,*.htm,*.shtml,*.stm call dist#ft#FThtml() au BufNewFile,BufRead *.cshtml setf html @@ -1048,6 +1126,7 @@ au BufNewFile,BufRead *.jj,*.jjt setf javacc " JavaScript, ECMAScript, ES module script, CommonJS script au BufNewFile,BufRead *.js,*.jsm,*.javascript,*.es,*.mjs,*.cjs setf javascript +au BufNewFile,BufRead .node_repl_history setf javascript " JavaScript with React au BufNewFile,BufRead *.jsx setf javascriptreact @@ -1081,15 +1160,18 @@ au BufNewFile,BufRead *.json-patch setf json " Geojson is also json au BufNewFile,BufRead *.geojson setf json -" Jupyter Notebook is also json -au BufNewFile,BufRead *.ipynb setf json +" Jupyter Notebook and jupyterlab config is also json +au BufNewFile,BufRead *.ipynb,*.jupyterlab-settings setf json + +" Sublime config +au BufNewFile,BufRead *.sublime-project,*.sublime-settings,*.sublime-workspace setf json " Other files that look like json au BufNewFile,BufRead .prettierrc,.firebaserc,.stylelintrc setf json " JSONC (JSON with comments) au BufNewFile,BufRead *.jsonc,.babelrc,.eslintrc,.jsfmtrc setf jsonc -au BufNewFile,BufRead .jshintrc,.hintrc,.swrc,[jt]sconfig*.json setf jsonc +au BufNewFile,BufRead .jshintrc,.jscsrc,.vsconfig,.hintrc,.swrc,[jt]sconfig*.json setf jsonc " JSON au BufNewFile,BufRead *.json,*.jsonp,*.webmanifest setf json @@ -1130,7 +1212,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 @@ -1153,8 +1235,11 @@ au BufNewFile,BufRead *.sig call dist#ft#FTsig() " LDAP LDIF au BufNewFile,BufRead *.ldif setf ldif +" Luadoc, Ldoc (must be before *.ld) +au BufNewFile,BufRead config.ld setf lua + " Ld loader -au BufNewFile,BufRead *.ld setf ld +au BufNewFile,BufRead *.ld,*/ldscripts/* setf ld " Lean au BufNewFile,BufRead *.lean setf lean @@ -1189,9 +1274,9 @@ au BufNewFile,BufRead *.ly,*.ily setf lilypond " Lisp (*.el = ELisp, *.cl = Common Lisp) " *.jl was removed, it's also used for Julia, better skip than guess wrong. if has("fname_case") - au BufNewFile,BufRead *.lsp,*.lisp,*.asd,*.el,*.cl,*.L,.emacs,.sawfishrc setf lisp + au BufNewFile,BufRead *.lsp,*.lisp,*.asd,*.el,*.cl,*.L,.emacs,.sawfishrc,*.stsg,*/supertux2/config setf lisp else - au BufNewFile,BufRead *.lsp,*.lisp,*.asd,*.el,*.cl,.emacs,.sawfishrc setf lisp + au BufNewFile,BufRead *.lsp,*.lisp,*.asd,*.el,*.cl,.emacs,.sawfishrc,*.stsg,*/supertux2/config setf lisp endif " SBCL implementation of Common Lisp @@ -1222,22 +1307,29 @@ au BufNewFile,BufRead */etc/login.defs setf logindefs au BufNewFile,BufRead *.lgt setf logtalk " LOTOS -au BufNewFile,BufRead *.lot,*.lotos setf lotos +au BufNewFile,BufRead *.lotos setf lotos + +" LOTOS or LaTeX \listoftables files +au BufNewFile,BufRead *.lot + \ if getline(1) =~# '\\contentsline' |setf tex|else|setf lotos|endif " Lout (also: *.lt) au BufNewFile,BufRead *.lou,*.lout setf lout -" Lua -au BufNewFile,BufRead *.lua setf lua +" Lua, Texlua +au BufNewFile,BufRead *.lua,*.tlu,.lua_history setf lua " Luau au BufNewFile,BufRead *.luau setf luau +" Luau config +au BufNewFile,BufRead .luaurc setf jsonc + " Luacheck au BufNewFile,BufRead .luacheckrc setf lua " Luarocks -au BufNewFile,BufRead *.rockspec setf lua +au BufNewFile,BufRead *.rockspec,rock_manifest setf lua " Linden Scripting Language (Second Life) au BufNewFile,BufRead *.lsl call dist#ft#FTlsl() @@ -1248,6 +1340,7 @@ au BufNewFile,BufRead *.lss setf lss " M4 au BufNewFile,BufRead *.m4 \ if expand("") !~? 'html.m4$\|fvwm2rc' | setf m4 | endif +au BufNewFile,BufRead .m4_history setf m4 " MaGic Point au BufNewFile,BufRead *.mgp setf mgp @@ -1283,7 +1376,12 @@ au BufNewFile,BufRead *.mv,*.mpl,*.mws setf maple au BufNewFile,BufRead *.map setf map " Markdown -au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,*.md setf markdown +au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,*.md + \ if exists("g:filetype_md") | + \ exe "setf " . g:filetype_md | + \ else | + \ setf markdown | + \ endif " Mason au BufNewFile,BufRead *.mason,*.mhtml,*.comp setf mason @@ -1297,6 +1395,9 @@ au BufNewFile,BufRead *.nb setf mma " Maya Extension Language au BufNewFile,BufRead *.mel setf mel +" mbsync +au BufNewFile,BufRead .mbsyncrc setf conf + " Mercurial (hg) commit file au BufNewFile,BufRead hg-editor-*.txt setf hgcommit @@ -1329,15 +1430,15 @@ au BufNewFile,BufRead *.mix,*.mixal setf mix " MMIX or VMS makefile au BufNewFile,BufRead *.mms call dist#ft#FTmms() +" msmtp +au BufNewFile,BufRead .msmtprc setf msmtp + " Symbian meta-makefile definition (MMP) au BufNewFile,BufRead *.mmp setf mmp " ABB Rapid, Modula-2, Modsim III or LambdaProlog au BufNewFile,BufRead *.mod\c call dist#ft#FTmod() -" Modula-2 (.md removed in favor of Markdown, see dist#ft#FTmod for *.MOD) -au BufNewFile,BufRead *.m2,*.DEF,*.mi setf modula2 - " Modula-3 (.m3, .i3, .mg, .ig) au BufNewFile,BufRead *.[mi][3g] setf modula3 @@ -1375,7 +1476,7 @@ au BufNewFile,BufRead mrxvtrc,.mrxvtrc setf mrxvtrc au BufNewFile,BufRead *.msql setf msql " Mysql -au BufNewFile,BufRead *.mysql setf mysql +au BufNewFile,BufRead *.mysql,.mysql_history setf mysql " Tcl Shell RC file au BufNewFile,BufRead tclsh.rc setf tcl @@ -1421,6 +1522,9 @@ au BufNewFile,BufRead Neomuttrc setf neomuttrc " Netrc au BufNewFile,BufRead .netrc setf netrc +" Neofetch +au BufNewFile,BufRead */neofetch/config.conf setf sh + " Nginx au BufNewFile,BufRead *.nginx,nginx*.conf,*nginx.conf,*/etc/nginx/*,*/usr/local/nginx/conf/*,*/nginx/*.conf setf nginx @@ -1456,6 +1560,9 @@ au BufNewFile,BufRead *.mm call dist#ft#FTmm() " Not Quite C au BufNewFile,BufRead *.nqc setf nqc +" notmuch +au BufNewFile,BufRead .notmuch-config setf dosini + " NSE - Nmap Script Engine - uses Lua syntax au BufNewFile,BufRead *.nse setf lua @@ -1478,7 +1585,7 @@ au BufNewFile,BufRead *.ml,*.mli,*.mll,*.mly,.ocamlinit,*.mlt,*.mlp,*.mlip,*.mli au BufNewFile,BufRead *.occ setf occam " Octave -au BufNewFile,BufRead octave.conf,.octaverc,octaverc setf octave +au BufNewFile,BufRead octave.conf,.octaverc,octaverc,*/octave/history setf octave " Odin au BufNewFile,BufRead *.odin setf odin @@ -1511,9 +1618,10 @@ au BufNewFile,BufRead *.org,*.org_archive setf org au BufNewFile,BufRead pf.conf setf pf " ini style config files, using # comments -au BufNewFile,BufRead */etc/pacman.conf,mpv.conf setf confini +au BufNewFile,BufRead pacman.conf,mpv.conf setf confini au BufNewFile,BufRead */.aws/config,*/.aws/credentials setf confini au BufNewFile,BufRead *.nmconnection setf confini +au BufNewFile,BufRead paru.conf setf confini " Pacman hooks au BufNewFile,BufRead *.hook @@ -1521,6 +1629,9 @@ au BufNewFile,BufRead *.hook \ setf confini | \ endif +" Pacman makepkg +au BufNewFile,BufRead {.,}makepkg.conf setf sh + " Pacman log au BufNewFile,BufRead pacman.log setf pacmanlog @@ -1542,8 +1653,16 @@ au BufNewFile,BufRead *.pas setf pascal " Pascal or Puppet manifest au BufNewFile,BufRead *.pp call dist#ft#FTpp() -" Delphi or Lazarus program file -au BufNewFile,BufRead *.dpr,*.lpr setf pascal +" Delphi +au BufNewFile,BufRead *.dpr setf pascal + +" Xilinx labtools project file or Lazarus program file +au BufNewFile,BufRead *.lpr + \ if getline(1) =~# " -" 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 61db8093fb..8b2040e5aa 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 5931cd921d..c16e7b032e 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 aee07ca4b9..65e01a1a76 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 0000000000..5974e28dc2 --- /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/asm.vim b/runtime/ftplugin/asm.vim index f6a92d57d7..0ae1610394 100644 --- a/runtime/ftplugin/asm.vim +++ b/runtime/ftplugin/asm.vim @@ -1,13 +1,23 @@ " Vim filetype plugin file " Language: asm " Maintainer: Colin Caine -" Last Change: 23 May 2020 +" Last Change: 2020 May 23 " 2023 Aug 28 by Vim Project (undo_ftplugin) +" 2024 Apr 09 by Vim Project (add Matchit support) if exists("b:did_ftplugin") | finish | endif let b:did_ftplugin = 1 +setl include=^\\s*%\\s*include setl comments=:;,s1:/*,mb:*,ex:*/,:// setl commentstring=;%s -let b:undo_ftplugin = "setl commentstring< comments<" +let b:undo_ftplugin = "setl commentstring< comments< include<" + +" Matchit support +if !exists('b:match_words') + let b:match_skip = 's:comment\|string\|character\|special' + let b:match_words = '^\s*%\s*if\%(\|num\|idn\|nidn\)\>:^\s*%\s*elif\>:^\s*%\s*else\>:^\s*%\s*endif\>,^\s*%\s*macro\>:^\s*%\s*endmacro\>,^\s*%\s*rep\>:^\s*%\s*endrep\>' + let b:match_ignorecase = 1 + let b:undo_ftplugin ..= " | unlet! b:match_ignorecase b:match_words b:match_skip" +endif diff --git a/runtime/ftplugin/aspvbs.vim b/runtime/ftplugin/aspvbs.vim index 70a130d287..6979bb8f84 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 40fe304cf4..bcd772350a 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 4399fbf3ad..32f713b43e 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/bp.vim b/runtime/ftplugin/bp.vim new file mode 100644 index 0000000000..cb925cb0ec --- /dev/null +++ b/runtime/ftplugin/bp.vim @@ -0,0 +1,14 @@ +" Blueprint build system filetype plugin file +" Language: Blueprint +" Maintainer: Bruno BELANYI +" Latest Revision: 2024-04-10 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +setlocal comments=b:# +setlocal commentstring=#\ %s + +let b:undo_ftplugin = "setlocal comments< commentstring<" diff --git a/runtime/ftplugin/c.vim b/runtime/ftplugin/c.vim index 4ddc4a5392..e2eebc5492 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/cgdbrc.vim b/runtime/ftplugin/cgdbrc.vim new file mode 100644 index 0000000000..46cf135c5c --- /dev/null +++ b/runtime/ftplugin/cgdbrc.vim @@ -0,0 +1,21 @@ +" Vim filetype plugin file +" Language: cgdbrc +" Maintainer: Wu, Zhenyu +" Documentation: https://cgdb.github.io/docs/Configuring-CGDB.html +" Latest Revision: 2024-04-09 + +if exists('b:did_ftplugin') + finish +endif +let b:did_ftplugin = 1 + +let s:save_cpoptions = &cpoptions +set cpoptions&vim + +let b:undo_ftplugin = 'setl com< cms<' + +setlocal commentstring=#%s +setlocal comments=:# + +let &cpoptions = s:save_cpoptions +unlet s:save_cpoptions diff --git a/runtime/ftplugin/clojure.vim b/runtime/ftplugin/clojure.vim index c922d75699..4da7554d85 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 ec1e95456d..5e52702fd5 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 73136cbc66..595fc657b9 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/context.vim b/runtime/ftplugin/context.vim index 75d26cf649..0070f85425 100644 --- a/runtime/ftplugin/context.vim +++ b/runtime/ftplugin/context.vim @@ -4,7 +4,7 @@ vim9script # Language: ConTeXt typesetting engine # Maintainer: Nicola Vitacolonna # Former Maintainers: Nikolai Weibull -# Latest Revision: 2022 Aug 12 +# Latest Revision: 2023 Dec 26 if exists("b:did_ftplugin") finish diff --git a/runtime/ftplugin/cs.vim b/runtime/ftplugin/cs.vim index 0734d11d22..ada71315e1 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 2feec57bb2..a22bee3279 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 0000000000..4936f42bf9 --- /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 f2a0820be9..2daa48aeb4 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 f02f26b1fd..5001cf68bd 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 a046118c70..bea8c5c18a 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/dts.vim b/runtime/ftplugin/dts.vim new file mode 100644 index 0000000000..42e38338b7 --- /dev/null +++ b/runtime/ftplugin/dts.vim @@ -0,0 +1,16 @@ +" Vim filetype plugin file +" Language: dts/dtsi (device tree files) +" Maintainer: Wu, Zhenyu +" Latest Revision: 2024 Apr 12 + +if exists('b:did_ftplugin') + finish +endif +let b:did_ftplugin = 1 + +let b:undo_ftplugin = 'setl inc< cms< com<' + +setlocal include=^\\%(#include\\\|/include/\\) +" same as C +setlocal commentstring& +setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:///,:// diff --git a/runtime/ftplugin/eiffel.vim b/runtime/ftplugin/eiffel.vim index 216fdde162..e193110cde 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/elixir.vim b/runtime/ftplugin/elixir.vim index 50f63673dc..d067f472b7 100644 --- a/runtime/ftplugin/elixir.vim +++ b/runtime/ftplugin/elixir.vim @@ -1,7 +1,7 @@ " Elixir filetype plugin " Language: Elixir " Maintainer: Mitchell Hanberg -" Last Change: 2022 Sep 20 +" Last Change: 2023 Dec 27 if exists("b:did_ftplugin") finish @@ -27,7 +27,13 @@ setlocal shiftwidth=2 softtabstop=2 expandtab iskeyword+=!,? setlocal comments=:# setlocal commentstring=#\ %s -let b:undo_ftplugin = 'setlocal sw< sts< et< isk< com< cms<' +setlocal indentkeys=0#,!^F,o,O +" Enable keys for blocks +setlocal indentkeys+=0=after,0=catch,0=do,0=else,0=end,0=rescue +" Enable keys that are usually the first keys in a line +setlocal indentkeys+=0->,0\|>,0},0],0),> + +let b:undo_ftplugin = 'setlocal sw< sts< et< isk< com< cms< indk<' let &cpo = s:save_cpo unlet s:save_cpo diff --git a/runtime/ftplugin/erlang.vim b/runtime/ftplugin/erlang.vim index 31fa0c3213..1cb57f4c85 100644 --- a/runtime/ftplugin/erlang.vim +++ b/runtime/ftplugin/erlang.vim @@ -5,7 +5,8 @@ " Contributors: Ricardo Catalinas Jiménez " Eduardo Lopez (http://github.com/tapichu) " Arvid Bjurklint (http://github.com/slarwise) -" Last Update: 2021-Nov-22 +" Paweł Zacharek (http://github.com/subc2) +" Last Update: 2023-Dec-20 " License: Vim license " URL: https://github.com/vim-erlang/vim-erlang-runtime @@ -57,7 +58,7 @@ setlocal suffixesadd=.erl,.hrl let &l:include = '^\s*-\%(include\|include_lib\)\s*("\zs\f*\ze")' let &l:define = '^\s*-\%(define\|record\|type\|opaque\)' -let s:erlang_fun_begin = '^\a\w*(.*$' +let s:erlang_fun_begin = '^\l[A-Za-z0-9_@]*(.*$' let s:erlang_fun_end = '^[^%]*\.\s*\(%.*\)\?$' if !exists('*GetErlangFold') @@ -95,9 +96,22 @@ if !exists('*ErlangFoldText') endfunction endif +" The following lines enable the macros/matchit.vim plugin for extended +" matching with the % key. +let b:match_ignorecase = 0 +let b:match_words = + \ '\<\%(begin\|case\|fun\|if\|maybe\|receive\|try\)\>' . + \ ':\<\%(after\|catch\|else\|of\)\>' . + \ ':\,' . + \ '^\l[A-Za-z0-9_@]*' . + \ ':^\%(\%(\t\| \{' . shiftwidth() . + \ '}\)\%([^\t\ %][^%]*\)\?\)\?;\s*\%(%.*\)\?$\|\.[\t\ %]\|\.$' +let b:match_skip = 's:comment\|string\|erlangmodifier\|erlangquotedatom' + let b:undo_ftplugin = "setlocal keywordprg< foldmethod< foldexpr< foldtext<" \ . " comments< commentstring< formatoptions< suffixesadd< include<" \ . " define<" + \ . " | unlet b:match_ignorecase b:match_words b:match_skip" let &cpo = s:cpo_save unlet s:cpo_save diff --git a/runtime/ftplugin/eruby.vim b/runtime/ftplugin/eruby.vim index 893fa58d32..b5c4665d24 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