Compare commits
170 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7dfc9e6121 | ||
|
|
69e6ab6db3 | ||
|
|
5c3d1e3258 | ||
|
|
fa3b1043c6 | ||
|
|
31b78cce6e | ||
|
|
b753d80e59 | ||
|
|
926e2af42e | ||
|
|
16341e7090 | ||
|
|
92f68e26ec | ||
|
|
eac45c558e | ||
|
|
2cb42efc18 | ||
|
|
187df69fd1 | ||
|
|
f39de60608 | ||
|
|
e125ee4b9f | ||
|
|
9919085491 | ||
|
|
7938c40b34 | ||
|
|
67fe77d272 | ||
|
|
2398460232 | ||
|
|
3041cf67d3 | ||
|
|
5ecb452f5b | ||
|
|
4e3df44aa2 | ||
|
|
fe8508eda0 | ||
|
|
6924eb81f4 | ||
|
|
baa8c90cc0 | ||
|
|
8167799651 | ||
|
|
54081f0ce0 | ||
|
|
cb3b752f95 | ||
|
|
13960a8779 | ||
|
|
0ed11ba223 | ||
|
|
ded2b41326 | ||
|
|
7e93d4c617 | ||
|
|
aee34ef23e | ||
|
|
1d96caaa4b | ||
|
|
98800979dc | ||
|
|
e9a27ef373 | ||
|
|
8f09684569 | ||
|
|
cca5dea76e | ||
|
|
7ddba51635 | ||
|
|
cfe502c575 | ||
|
|
06fdfa11c5 | ||
|
|
b53d4fb63e | ||
|
|
ad503fe927 | ||
|
|
0ac1eb3555 | ||
|
|
1c2b258250 | ||
|
|
40daa1358c | ||
|
|
031919c7ac | ||
|
|
fbbaa6ebe9 | ||
|
|
470317f78b | ||
|
|
839fd94265 | ||
|
|
b156588eb7 | ||
|
|
f35bd76b31 | ||
|
|
32f2bb6e1e | ||
|
|
cf7f01252f | ||
|
|
babdb0554a | ||
|
|
d62377386c | ||
|
|
2137710b43 | ||
|
|
d2079cff48 | ||
|
|
cbe53191d0 | ||
|
|
10f69298b4 | ||
|
|
4ec93fec12 | ||
|
|
836b87d699 | ||
|
|
906f306812 | ||
|
|
f4b1a60dd1 | ||
|
|
3cbd7f18e3 | ||
|
|
3956c5b53c | ||
|
|
c98250377d | ||
|
|
829eda7d38 | ||
|
|
d4dbf822dc | ||
|
|
cf665ccd37 | ||
|
|
6f6c0dba9f | ||
|
|
eded33621b | ||
|
|
bc27b6e34f | ||
|
|
ab2fe65fbf | ||
|
|
0e59e67a63 | ||
|
|
c8ce81b0dc | ||
|
|
d82f3cae39 | ||
|
|
5c84d12df1 | ||
|
|
ec032de646 | ||
|
|
06a41ad084 | ||
|
|
9b171bdfd6 | ||
|
|
b0e19f9e1b | ||
|
|
96a0b2a6d5 | ||
|
|
f9f53f5a8f | ||
|
|
520a2c7852 | ||
|
|
0b540c6f38 | ||
|
|
7517a8cadf | ||
|
|
b71f1309a2 | ||
|
|
2525573de7 | ||
|
|
adcfb6caeb | ||
|
|
e370141bf4 | ||
|
|
5ce1e4ad4a | ||
|
|
b87620466c | ||
|
|
2ffb4d0298 | ||
|
|
00b927b295 | ||
|
|
2afdb3a65b | ||
|
|
9cd6d82fbb | ||
|
|
9adb310cf3 | ||
|
|
88d41ab270 | ||
|
|
c54a8eb258 | ||
|
|
221927b2bf | ||
|
|
ba73766788 | ||
|
|
8daae6fea9 | ||
|
|
d22f43111b | ||
|
|
2f5a8c0b5b | ||
|
|
d84cbdb5a3 | ||
|
|
9aa120f7ad | ||
|
|
b8d5c85099 | ||
|
|
2a6be83512 | ||
|
|
d211558044 | ||
|
|
6fa62085ff | ||
|
|
f16d8b2dda | ||
|
|
3e50a28a03 | ||
|
|
6099db9a60 | ||
|
|
e74ec3f523 | ||
|
|
c1e019247d | ||
|
|
df68419ba0 | ||
|
|
a359c9c25e | ||
|
|
7fb90815a0 | ||
|
|
8293574c8b | ||
|
|
e4e4d1c381 | ||
|
|
7f518e044f | ||
|
|
9301b437bc | ||
|
|
de8f8f732a | ||
|
|
7b6add0b4a | ||
|
|
2f4aa50c91 | ||
|
|
71f17fdd5f | ||
|
|
4ac995bf93 | ||
|
|
b1d6db0be5 | ||
|
|
20393bc02d | ||
|
|
1c2f475850 | ||
|
|
583f5aee96 | ||
|
|
f13c856154 | ||
|
|
c6336acfe3 | ||
|
|
649a237bc8 | ||
|
|
53fed23cb7 | ||
|
|
e9a369f9c3 | ||
|
|
a580761a45 | ||
|
|
bb8e5ddb97 | ||
|
|
1054b18291 | ||
|
|
f2b16986a1 | ||
|
|
90e52490b3 | ||
|
|
0dc9a0bc60 | ||
|
|
0980e41161 | ||
|
|
722fbd1554 | ||
|
|
532c5aec6f | ||
|
|
aa68f8a095 | ||
|
|
ce80c59bfd | ||
|
|
c5aad6cca5 | ||
|
|
5a307c361c | ||
|
|
e06b2aea43 | ||
|
|
88d75934c3 | ||
|
|
757c37da6d | ||
|
|
29d11a8326 | ||
|
|
45377e2096 | ||
|
|
7d8e7df551 | ||
|
|
4f9b1243e3 | ||
|
|
d9b82cfe84 | ||
|
|
35cb38d34b | ||
|
|
14dec7b204 | ||
|
|
9943d4790e | ||
|
|
06774a271a | ||
|
|
4dd17a90ee | ||
|
|
08283b28af | ||
|
|
f9f4e27ad7 | ||
|
|
052b86ba63 | ||
|
|
721be7fd0b | ||
|
|
038be2701d | ||
|
|
9d5487f6fd | ||
|
|
20e46fa65b | ||
|
|
7746348c5d |
14
.github/MAINTAINERS
vendored
14
.github/MAINTAINERS
vendored
@@ -149,6 +149,7 @@ runtime/ftplugin/csv.vim @habamax
|
||||
runtime/ftplugin/cucumber.vim @tpope
|
||||
runtime/ftplugin/cuda.vim @ribru17
|
||||
runtime/ftplugin/dart.vim @ribru17
|
||||
runtime/ftplugin/dax.vim @anarion80
|
||||
runtime/ftplugin/deb822sources.vim @jamessan
|
||||
runtime/ftplugin/debchangelog.vim @jamessan
|
||||
runtime/ftplugin/debcontrol.vim @jamessan
|
||||
@@ -179,7 +180,7 @@ runtime/ftplugin/gitconfig.vim @tpope
|
||||
runtime/ftplugin/gitignore.vim @ObserverOfTime
|
||||
runtime/ftplugin/gitrebase.vim @tpope
|
||||
runtime/ftplugin/gitsendemail.vim @tpope
|
||||
runtime/ftplugin/gleam.vim @trilowy
|
||||
runtime/ftplugin/gleam.vim @kirillmorozov
|
||||
runtime/ftplugin/go.vim @dbarnett
|
||||
runtime/ftplugin/goaccess.vim @meonkeys
|
||||
runtime/ftplugin/gomod.vim @yu-yk
|
||||
@@ -221,6 +222,7 @@ runtime/ftplugin/ldapconf.vim @ribru17
|
||||
runtime/ftplugin/leo.vim @ribru17
|
||||
runtime/ftplugin/less.vim @genoma
|
||||
runtime/ftplugin/lex.vim @ribru17
|
||||
runtime/ftplugin/lf.vim @andis-sprinkis
|
||||
runtime/ftplugin/liquid.vim @tpope
|
||||
runtime/ftplugin/lua.vim @dkearns
|
||||
runtime/ftplugin/lc.vim @ribru17
|
||||
@@ -229,6 +231,7 @@ runtime/ftplugin/m17ndb.vim @dseomn
|
||||
runtime/ftplugin/m3build.vim @dkearns
|
||||
runtime/ftplugin/m3quake.vim @dkearns
|
||||
runtime/ftplugin/markdown.vim @tpope
|
||||
runtime/ftplugin/mbsync.vim @fymyte
|
||||
runtime/ftplugin/mediawiki.vim @avidseeker
|
||||
runtime/ftplugin/meson.vim @Liambeguin
|
||||
runtime/ftplugin/modula2.vim @dkearns
|
||||
@@ -254,6 +257,7 @@ runtime/ftplugin/plsql.vim @lee-lindley
|
||||
runtime/ftplugin/pod.vim @petdance @dkearns
|
||||
runtime/ftplugin/poefilter.vim @ObserverOfTime
|
||||
runtime/ftplugin/postscr.vim @mrdubya
|
||||
runtime/ftplugin/pq.vim @anarion80
|
||||
runtime/ftplugin/prisma.vim @ribru17
|
||||
runtime/ftplugin/proto.vim @Limero
|
||||
runtime/ftplugin/ps1.vim @heaths
|
||||
@@ -267,6 +271,7 @@ runtime/ftplugin/qml.vim @ChaseKnowlden
|
||||
runtime/ftplugin/racket.vim @benknoble
|
||||
runtime/ftplugin/rasi.vim @fymyte
|
||||
runtime/ftplugin/readline.vim @dkearns
|
||||
runtime/ftplugin/remind.vim @joereynolds
|
||||
runtime/ftplugin/rescript.vim @ribru17
|
||||
runtime/ftplugin/routeros.vim @zainin
|
||||
runtime/ftplugin/rst.vim @marshallward
|
||||
@@ -412,6 +417,8 @@ 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/brazilian_portuguese-abnt.vim @LuMarquesIlva
|
||||
runtime/keymap/brazilian_portuguese-compact.vim @LuMarquesIlva
|
||||
runtime/keymap/russian-typograph.vim @RestorerZ
|
||||
runtime/keymap/tamil_tscii.vim @yegappan
|
||||
runtime/keymap/ukrainian-enhanced.vim @Dolfost
|
||||
@@ -457,6 +464,7 @@ runtime/syntax/cucumber.vim @tpope
|
||||
runtime/syntax/d.vim @JesseKPhillips
|
||||
runtime/syntax/dart.vim @pr3d4t0r
|
||||
runtime/syntax/datascript.vim @dpelle
|
||||
runtime/syntax/dax.vim @anarion80
|
||||
runtime/syntax/deb822sources.vim @jamessan
|
||||
runtime/syntax/debchangelog.vim @jamessan
|
||||
runtime/syntax/debcontrol.vim @jamessan
|
||||
@@ -547,6 +555,7 @@ runtime/syntax/mailcap.vim @dkearns
|
||||
runtime/syntax/make.vim @rohieb
|
||||
runtime/syntax/mallard.vim @jhradilek
|
||||
runtime/syntax/markdown.vim @tpope
|
||||
runtime/syntax/mbsync.vim @fymyte
|
||||
runtime/syntax/mason.vim @petdance
|
||||
runtime/syntax/mediawiki.vim @avidseeker
|
||||
runtime/syntax/meson.vim @Liambeguin
|
||||
@@ -562,6 +571,8 @@ runtime/syntax/ninja.vim @nico
|
||||
runtime/syntax/nix.vim @equill
|
||||
runtime/syntax/nroff.vim @jmarshall
|
||||
runtime/syntax/nsis.vim @k-takata
|
||||
runtime/syntax/odin.vim @habamax
|
||||
runtime/syntax/omnimark.vim @kennypete
|
||||
runtime/syntax/ondir.vim @jparise
|
||||
runtime/syntax/opencl.vim @Freed-Wu
|
||||
runtime/syntax/openvpn.vim @ObserverOfTime
|
||||
@@ -576,6 +587,7 @@ runtime/syntax/plsql.vim @lee-lindley
|
||||
runtime/syntax/pod.vim @petdance
|
||||
runtime/syntax/poefilter.vim @ObserverOfTime
|
||||
runtime/syntax/postscr.vim @mrdubya
|
||||
runtime/syntax/pq.vim @anarion80
|
||||
runtime/syntax/privoxy.vim @dkearns
|
||||
runtime/syntax/progress.vim @rdnlsmith
|
||||
runtime/syntax/prolog.vim @XVilka
|
||||
|
||||
36
.github/workflows/ci.yml
vendored
36
.github/workflows/ci.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
|
||||
env:
|
||||
CC: ${{ matrix.compiler }}
|
||||
GCC_VER: 13
|
||||
GCC_VER: 14
|
||||
CLANG_VER: 20
|
||||
TEST: test
|
||||
SRCDIR: ./src
|
||||
@@ -29,6 +29,7 @@ jobs:
|
||||
LOG_DIR: ${{ github.workspace }}/logs
|
||||
TERM: xterm
|
||||
DISPLAY: ':99'
|
||||
WAYLAND_DISPLAY: 'wayland-1'
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
|
||||
strategy:
|
||||
@@ -114,6 +115,7 @@ jobs:
|
||||
run: |
|
||||
# This is added by default, and it is often broken, but we don't need anything from it
|
||||
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
|
||||
|
||||
PKGS=( \
|
||||
gettext \
|
||||
libgtk2.0-dev:${{ matrix.architecture }} \
|
||||
@@ -123,6 +125,7 @@ jobs:
|
||||
libxt-dev:${{ matrix.architecture }} \
|
||||
locales-all \
|
||||
software-properties-common \
|
||||
sway \
|
||||
)
|
||||
if ${{ matrix.features == 'huge' }}; then
|
||||
LUA_VER=${{ matrix.lua_ver || '5.4' }}
|
||||
@@ -143,13 +146,15 @@ jobs:
|
||||
libattr1-dev
|
||||
)
|
||||
fi
|
||||
|
||||
sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get install -y "${PKGS[@]}"
|
||||
|
||||
- name: Install gcc-${{ env.GCC_VER }}
|
||||
if: matrix.compiler == 'gcc'
|
||||
run: |
|
||||
# ubuntu-toolchain-r/test PPA for gcc-13 compiler
|
||||
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
|
||||
# disabled because the installation failed, causing test failures
|
||||
# sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
|
||||
sudo apt-get update -y
|
||||
sudo apt-get install -y gcc-${{ env.GCC_VER }}:${{ matrix.architecture }}
|
||||
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ env.GCC_VER }} 100
|
||||
@@ -231,6 +236,8 @@ jobs:
|
||||
sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0
|
||||
sudo usermod -a -G audio "${USER}"
|
||||
sudo bash ci/setup-xvfb.sh
|
||||
# Sway requires user session
|
||||
bash ci/setup-sway.sh
|
||||
|
||||
- name: Check autoconf
|
||||
if: contains(matrix.extra, 'unittests')
|
||||
@@ -266,6 +273,12 @@ jobs:
|
||||
"${SRCDIR}"/vim --version
|
||||
"${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-1.vim -c quit
|
||||
"${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-2.vim -c quit
|
||||
if ${{ matrix.features == 'huge' }}; then
|
||||
# Also check that optional and dynamic features are configured and working
|
||||
"${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 \
|
||||
-c "let g:required=['gettext', 'sodium', 'sound', 'perl', 'python3', 'lua', 'ruby', 'tcl']" \
|
||||
-S ci/if_feat_check.vim -c quit
|
||||
fi
|
||||
|
||||
- name: Test
|
||||
if: matrix.architecture != 'arm64'
|
||||
@@ -349,7 +362,7 @@ jobs:
|
||||
if: matrix.runner == 'macos-15'
|
||||
run: |
|
||||
# Xcode 16 has compiler bugs which are fixed in 16.2+
|
||||
sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
|
||||
sudo xcode-select -s /Applications/Xcode_16.3.app/Contents/Developer
|
||||
|
||||
- name: Set up environment
|
||||
run: |
|
||||
@@ -392,6 +405,12 @@ jobs:
|
||||
"${SRCDIR}"/vim --version
|
||||
"${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-1.vim -c quit
|
||||
"${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-2.vim -c quit
|
||||
if ${{ matrix.features == 'huge' }}; then
|
||||
# Also check that optional and dynamic features are configured and working
|
||||
"${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 \
|
||||
-c "let g:required=['sound', 'perl', 'python3', 'lua', 'ruby', 'tcl']" \
|
||||
-S ci/if_feat_check.vim -c quit
|
||||
fi
|
||||
|
||||
- name: Install packages for testing
|
||||
run: |
|
||||
@@ -608,11 +627,13 @@ jobs:
|
||||
DYNAMIC_PYTHON=yes PYTHON=%PYTHON_DIR% ^
|
||||
DYNAMIC_PYTHON3=yes PYTHON3=%PYTHON3_DIR% ^
|
||||
DYNAMIC_PYTHON3_STABLE_ABI=%PYTHON3_STABLE% ^
|
||||
DYNAMIC_SODIUM=yes SODIUM=%SODIUM_DIR%
|
||||
DYNAMIC_SODIUM=yes SODIUM=%SODIUM_DIR% ^
|
||||
CI_FLAGS=/we4267
|
||||
) else (
|
||||
nmake -nologo -f Make_mvc.mak ^
|
||||
FEATURES=${{ matrix.features }} ^
|
||||
GUI=%GUI% IME=yes ICONV=yes VIMDLL=${{ matrix.VIMDLL }}
|
||||
GUI=%GUI% IME=yes ICONV=yes VIMDLL=${{ matrix.VIMDLL }} ^
|
||||
CI_FLAGS=/we4267
|
||||
)
|
||||
|
||||
- name: Build (MinGW)
|
||||
@@ -663,6 +684,11 @@ jobs:
|
||||
src\vim --version || exit 1
|
||||
src\vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-1.vim -c quit
|
||||
src\vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-2.vim -c quit
|
||||
if "${{ matrix.features }}"=="HUGE" (
|
||||
src\vim -u NONE -i NONE --not-a-term -esNX -V1 ^
|
||||
-c "let g:required=['gettext', 'sodium', 'sound', 'python3', 'lua']" ^
|
||||
-S ci/if_feat_check.vim -c quit
|
||||
)
|
||||
)
|
||||
|
||||
#- name: Prepare Artifact
|
||||
|
||||
5
.github/workflows/coverity.yml
vendored
5
.github/workflows/coverity.yml
vendored
@@ -9,7 +9,7 @@ permissions:
|
||||
|
||||
jobs:
|
||||
scan:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
|
||||
env:
|
||||
CC: gcc
|
||||
@@ -36,7 +36,6 @@ jobs:
|
||||
gettext \
|
||||
libcanberra-dev \
|
||||
libperl-dev \
|
||||
python2-dev \
|
||||
python3-dev \
|
||||
liblua5.4-dev \
|
||||
lua5.4 \
|
||||
@@ -53,7 +52,7 @@ jobs:
|
||||
echo "$(pwd)/cov-scan/bin" >> $GITHUB_PATH
|
||||
(
|
||||
echo "NPROC=$(getconf _NPROCESSORS_ONLN)"
|
||||
echo "CONFOPT=--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp"
|
||||
echo "CONFOPT=--enable-perlinterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp"
|
||||
) >> $GITHUB_ENV
|
||||
|
||||
- name: Configure
|
||||
|
||||
@@ -21,6 +21,31 @@ Contributions will be distributed with Vim under the Vim license. Providing a
|
||||
change to be included implies that you agree with this and your contribution
|
||||
does not cause us trouble with trademarks or patents. There is no CLA to sign.
|
||||
|
||||
## Signing-off commits
|
||||
|
||||
While not required, it's recommended to use **Signed-off commits** to ensure
|
||||
transparency, accountability, and compliance with open-source best practices.
|
||||
Signed-off commits follow the [Developer Certificate of Origin (DCO)][15],
|
||||
which confirms that contributors have the right to submit their changes under
|
||||
the project's license. This process adds a `Signed-off-by` line to commit
|
||||
messages, verifying that the contributor agrees to the project's licensing
|
||||
terms. To sign off a commit, simply use the -s flag when committing:
|
||||
|
||||
```sh
|
||||
git commit -s
|
||||
```
|
||||
|
||||
This ensures that every contribution is properly documented and traceable,
|
||||
aligning with industry standards used in projects like the Linux Kernel or
|
||||
the git project. By making Signed-off commits a standard practice, we help
|
||||
maintain a legally compliant and well-governed codebase while fostering trust
|
||||
within our contributor community.
|
||||
|
||||
When merging PRs into Vim, the current maintainer @chrisbra usually adds missing
|
||||
`Signed-off-by` trailers for the author user name and email address as well for
|
||||
anybody that explicitly *ACK*s a pull request as a statement that those
|
||||
approvers are happy with that particular change.
|
||||
|
||||
# Reporting issues
|
||||
|
||||
We use GitHub issues, but that is not a requirement. Writing to the Vim
|
||||
@@ -46,7 +71,7 @@ Or open [the todo file][todo list] on GitHub to see the latest version.
|
||||
# Syntax, indent and other runtime files
|
||||
|
||||
The latest version of these files can be obtained from the repository.
|
||||
They are usually not updated with numbered patches. However, they may
|
||||
They are usually not updated with numbered patches. However, they may
|
||||
or may not work with older Vim releases (since they may contain new features).
|
||||
|
||||
If you find a problem with one of these files or have a suggestion for
|
||||
@@ -113,3 +138,4 @@ mailing list. For other questions please use the [Vi Stack Exchange][8] website,
|
||||
[12]: https://github.com/vim/vim/blob/master/src/testdir/test_filetype.vim
|
||||
[13]: https://github.com/vim/vim/blob/master/runtime/doc/filetype.txt
|
||||
[14]: https://github.com/vim/vim/blob/master/runtime/doc/syntax.txt
|
||||
[15]: https://en.wikipedia.org/wiki/Developer_Certificate_of_Origin
|
||||
|
||||
3
Filelist
3
Filelist
@@ -23,7 +23,9 @@ SRC_ALL = \
|
||||
ci/appveyor.bat \
|
||||
ci/config.mk*.sed \
|
||||
ci/if_ver*.vim \
|
||||
ci/if_feat_check.vim \
|
||||
ci/setup-xvfb.sh \
|
||||
ci/setup-sway.sh \
|
||||
ci/remove_snap.sh \
|
||||
src/Make_all.mak \
|
||||
src/README.md \
|
||||
@@ -862,6 +864,7 @@ RT_SCRIPTS = \
|
||||
runtime/indent/testdir/*.vim \
|
||||
runtime/indent/testdir/*.in \
|
||||
runtime/indent/testdir/*.ok \
|
||||
runtime/indent/testdir/tools/* \
|
||||
runtime/ftplugin/*.vim \
|
||||
runtime/ftplugin/logtalk.dict \
|
||||
runtime/ftplugin/README.txt \
|
||||
|
||||
@@ -71,7 +71,7 @@ cd src
|
||||
echo "Building MSVC 64bit console Version"
|
||||
nmake -f Make_mvc.mak CPU=AMD64 ^
|
||||
OLE=no GUI=no IME=yes ICONV=yes DEBUG=no ^
|
||||
FEATURES=%FEATURE%
|
||||
FEATURES=%FEATURE% CI_CFLAGS=/we4267
|
||||
if not exist vim.exe (
|
||||
echo Build failure.
|
||||
exit 1
|
||||
@@ -85,11 +85,11 @@ if "%FEATURE%" == "HUGE" (
|
||||
OLE=no GUI=yes IME=yes ICONV=yes DEBUG=no POSTSCRIPT=yes ^
|
||||
PYTHON_VER=27 DYNAMIC_PYTHON=yes PYTHON=C:\Python27-x64 ^
|
||||
PYTHON3_VER=%PYTHON3_VER% DYNAMIC_PYTHON3=yes PYTHON3=%PYTHON3_DIR% ^
|
||||
FEATURES=%FEATURE%
|
||||
FEATURES=%FEATURE% CI_CFLAGS=/we4267
|
||||
) ELSE (
|
||||
nmake -f Make_mvc.mak CPU=AMD64 ^
|
||||
OLE=no GUI=yes IME=yes ICONV=yes DEBUG=no ^
|
||||
FEATURES=%FEATURE%
|
||||
FEATURES=%FEATURE% CI_CFLAGS=/we4267
|
||||
)
|
||||
if not exist gvim.exe (
|
||||
echo Build failure.
|
||||
|
||||
15
ci/if_feat_check.vim
Normal file
15
ci/if_feat_check.vim
Normal file
@@ -0,0 +1,15 @@
|
||||
if 1 " This prevents it from being run in tiny versions
|
||||
" Check for required features
|
||||
if exists("g:required")
|
||||
for feature in g:required
|
||||
if !has(feature)
|
||||
echo "Error: Feature '" .. feature .. "' not found"
|
||||
echo ''
|
||||
cquit
|
||||
endif
|
||||
endfor
|
||||
echo "\nChecked features: " .. string(g:required)
|
||||
echo ''
|
||||
endif
|
||||
endif
|
||||
" vim: sts=2 sw=2 et
|
||||
@@ -1,6 +1,6 @@
|
||||
" Print all interface versions for Ubuntu. Part 1.
|
||||
" Print all interface versions. Part 1.
|
||||
|
||||
if 1
|
||||
if 1 " This prevents it from being run in tiny versions
|
||||
execute 'source' expand('<sfile>:h') .. '/if_ver-cmd.vim'
|
||||
|
||||
echo "*** Interface versions ***\n"
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
" Print py3 interface versions for Ubuntu. Part 2.
|
||||
" Print py3 interface versions. Part 2.
|
||||
" This is done separately from part 1 because Vim cannot concurrently load
|
||||
" Python 2 and 3 together.
|
||||
|
||||
if 1
|
||||
if 1 " This prevents it from being run in tiny versions
|
||||
execute 'source' expand('<sfile>:h') .. '/if_ver-cmd.vim'
|
||||
|
||||
echo 'Python 3:'
|
||||
|
||||
7
ci/setup-sway.sh
Normal file
7
ci/setup-sway.sh
Normal file
@@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Using a systemd user service doesn't work because it seems like github actions
|
||||
# doesn't support user sessions? Just run sway in the background and disown it.
|
||||
WLR_BACKENDS=headless sway &
|
||||
disown
|
||||
109
runtime/autoload/dist/ft.vim
vendored
109
runtime/autoload/dist/ft.vim
vendored
@@ -3,7 +3,7 @@ vim9script
|
||||
# Vim functions for file type detection
|
||||
#
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2025 Jan 25
|
||||
# Last Change: 2025 Apr 21
|
||||
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
# These functions are moved here from runtime/filetype.vim to make startup
|
||||
@@ -203,19 +203,36 @@ export def FTlpc()
|
||||
setf c
|
||||
enddef
|
||||
|
||||
export def FTheader()
|
||||
if match(getline(1, min([line("$"), 200])), '^@\(interface\|end\|class\)') > -1
|
||||
if exists("g:c_syntax_for_h")
|
||||
setf objc
|
||||
else
|
||||
setf objcpp
|
||||
# Searches within the first `maxlines` lines of the file for distinctive
|
||||
# Objective-C or C++ syntax and returns the appropriate filetype. Returns a
|
||||
# null_string if the search was inconclusive.
|
||||
def CheckObjCOrCpp(maxlines = 100): string
|
||||
var n = 1
|
||||
while n < maxlines && n <= line('$')
|
||||
const line = getline(n)
|
||||
if line =~ '\v^\s*\@%(class|interface|end)>'
|
||||
return 'objcpp'
|
||||
elseif line =~ '\v^\s*%(class|namespace|template|using)>'
|
||||
return 'cpp'
|
||||
endif
|
||||
elseif exists("g:c_syntax_for_h")
|
||||
++n
|
||||
endwhile
|
||||
return null_string
|
||||
enddef
|
||||
|
||||
# Determines whether a *.h file is C, C++, Ch, or Objective-C/Objective-C++.
|
||||
export def FTheader()
|
||||
if exists('g:filetype_h')
|
||||
execute $'setf {g:filetype_h}'
|
||||
elseif exists('g:c_syntax_for_h')
|
||||
setf c
|
||||
elseif exists("g:ch_syntax_for_h")
|
||||
elseif exists('g:ch_syntax_for_h')
|
||||
setf ch
|
||||
else
|
||||
setf cpp
|
||||
# Search the first 100 lines of the file for distinctive Objective-C or C++
|
||||
# syntax and set the filetype accordingly. Otherwise, use C as the default
|
||||
# filetype.
|
||||
execute $'setf {CheckObjCOrCpp() ?? 'c'}'
|
||||
endif
|
||||
enddef
|
||||
|
||||
@@ -557,17 +574,47 @@ export def FTm()
|
||||
enddef
|
||||
|
||||
export def FTmake()
|
||||
# Check if it is a Microsoft Makefile
|
||||
unlet! b:make_microsoft
|
||||
# Check if it is a BSD, GNU, or Microsoft Makefile
|
||||
unlet! b:make_flavor
|
||||
|
||||
# 1. filename
|
||||
if expand('%:t') == 'BSDmakefile'
|
||||
b:make_flavor = 'bsd'
|
||||
setf make
|
||||
return
|
||||
elseif expand('%:t') == 'GNUmakefile'
|
||||
b:make_flavor = 'gnu'
|
||||
setf make
|
||||
return
|
||||
endif
|
||||
|
||||
# 2. user's setting
|
||||
if exists('g:make_flavor')
|
||||
b:make_flavor = g:make_flavor
|
||||
setf make
|
||||
return
|
||||
elseif get(g:, 'make_microsoft')
|
||||
echom "make_microsoft is deprecated; try g:make_flavor = 'microsoft' instead"
|
||||
b:make_flavor = 'microsoft'
|
||||
setf make
|
||||
return
|
||||
endif
|
||||
|
||||
# 3. try to detect a flavor from file content
|
||||
var n = 1
|
||||
while n < 1000 && n <= line('$')
|
||||
var line = getline(n)
|
||||
if line =~? '^\s*!\s*\(ifn\=\(def\)\=\|include\|message\|error\)\>'
|
||||
b:make_microsoft = 1
|
||||
b:make_flavor = 'microsoft'
|
||||
break
|
||||
elseif line =~ '^ *ifn\=\(eq\|def\)\>' || line =~ '^ *[-s]\=include\s'
|
||||
elseif line =~ '^\.\%(export\|error\|for\|if\%(n\=\%(def\|make\)\)\=\|info\|warning\)\>'
|
||||
b:make_flavor = 'bsd'
|
||||
break
|
||||
elseif line =~ '^ *\w\+\s*[!?:+]='
|
||||
elseif line =~ '^ *\%(ifn\=\%(eq\|def\)\|define\|override\)\>'
|
||||
b:make_flavor = 'gnu'
|
||||
break
|
||||
elseif line =~ '\$[({][a-z-]\+\s\+\S\+' # a function call, e.g. $(shell pwd)
|
||||
b:make_flavor = 'gnu'
|
||||
break
|
||||
endif
|
||||
n += 1
|
||||
@@ -592,14 +639,19 @@ export def FTmms()
|
||||
setf mmix
|
||||
enddef
|
||||
|
||||
# This function checks if one of the first five lines start with a dot. In
|
||||
# that case it is probably an nroff file: 'filetype' is set and 1 is returned.
|
||||
# This function checks if one of the first five lines start with a typical
|
||||
# nroff pattern in man files. In that case it is probably an nroff file:
|
||||
# 'filetype' is set and 1 is returned.
|
||||
export def FTnroff(): number
|
||||
if getline(1)[0] .. getline(2)[0] .. getline(3)[0]
|
||||
.. getline(4)[0] .. getline(5)[0] =~ '\.'
|
||||
setf nroff
|
||||
return 1
|
||||
endif
|
||||
var n = 1
|
||||
while n <= 5
|
||||
var line = getline(n)
|
||||
if line =~ '^\%([.'']\s*\%(TH\|D[dt]\|S[Hh]\|d[es]1\?\|so\)\s\+\S\|[.'']\s*ig\>\|\%([.'']\s*\)\?\\"\)'
|
||||
setf nroff
|
||||
return 1
|
||||
endif
|
||||
n += 1
|
||||
endwhile
|
||||
return 0
|
||||
enddef
|
||||
|
||||
@@ -875,16 +927,16 @@ export def SetFileTypeSH(name: string, setft = true): string
|
||||
if setft && expand("<amatch>") =~ g:ft_ignore_pat
|
||||
return ''
|
||||
endif
|
||||
if name =~ '\<csh\>'
|
||||
if name =~ '^csh$' || name =~ '^#!.\{-2,}\<csh\>'
|
||||
# Some .sh scripts contain #!/bin/csh.
|
||||
return SetFileTypeShell("csh", setft)
|
||||
elseif name =~ '\<tcsh\>'
|
||||
elseif name =~ '^tcsh$' || name =~ '^#!.\{-2,}\<tcsh\>'
|
||||
# Some .sh scripts contain #!/bin/tcsh.
|
||||
return SetFileTypeShell("tcsh", setft)
|
||||
elseif name =~ '\<zsh\>'
|
||||
elseif name =~ '^zsh$' || name =~ '^#!.\{-2,}\<zsh\>'
|
||||
# Some .sh scripts contain #!/bin/zsh.
|
||||
return SetFileTypeShell("zsh", setft)
|
||||
elseif name =~ '\<ksh\>'
|
||||
elseif name =~ '^ksh$' || name =~ '^#!.\{-2,}\<ksh\>'
|
||||
b:is_kornshell = 1
|
||||
if exists("b:is_bash")
|
||||
unlet b:is_bash
|
||||
@@ -892,7 +944,8 @@ export def SetFileTypeSH(name: string, setft = true): string
|
||||
if exists("b:is_sh")
|
||||
unlet b:is_sh
|
||||
endif
|
||||
elseif exists("g:bash_is_sh") || name =~ '\<bash\>' || name =~ '\<bash2\>'
|
||||
elseif exists("g:bash_is_sh") || name =~ '^bash2\=$' ||
|
||||
\ name =~ '^#!.\{-2,}\<bash2\=\>'
|
||||
b:is_bash = 1
|
||||
if exists("b:is_kornshell")
|
||||
unlet b:is_kornshell
|
||||
@@ -900,7 +953,7 @@ export def SetFileTypeSH(name: string, setft = true): string
|
||||
if exists("b:is_sh")
|
||||
unlet b:is_sh
|
||||
endif
|
||||
elseif name =~ '\<sh\>' || name =~ '\<dash\>'
|
||||
elseif name =~ '^\%(da\)\=sh$' || name =~ '^#!.\{-2,}\<\%(da\)\=sh\>'
|
||||
# Ubuntu links "sh" to "dash", thus it is expected to work the same way
|
||||
b:is_sh = 1
|
||||
if exists("b:is_kornshell")
|
||||
|
||||
6
runtime/autoload/dist/vimindent.vim
vendored
6
runtime/autoload/dist/vimindent.vim
vendored
@@ -2,7 +2,7 @@ vim9script
|
||||
|
||||
# Language: Vim script
|
||||
# Maintainer: github user lacygoill
|
||||
# Last Change: 2024 Dec 26
|
||||
# Last Change: 2025 Apr 13
|
||||
#
|
||||
# Includes changes from The Vim Project:
|
||||
# - 2024 Feb 09: Fix indent after literal Dict (A. Radev via #13966)
|
||||
@@ -981,8 +981,10 @@ def SearchPair( # {{{3
|
||||
if end == '[' || end == ']'
|
||||
e = e->escape('[]')
|
||||
endif
|
||||
# VIM_INDENT_TEST_TRACE_START
|
||||
return searchpair('\C' .. s, (middle == '' ? '' : '\C' .. middle), '\C' .. e,
|
||||
flags, (): bool => InCommentOrString(), stopline, TIMEOUT)
|
||||
# VIM_INDENT_TEST_TRACE_END dist#vimindent#SearchPair
|
||||
enddef
|
||||
|
||||
def SearchPairStart( # {{{3
|
||||
@@ -1268,7 +1270,9 @@ def NonCommentedMatch(line: dict<any>, pat: string): bool # {{{3
|
||||
|
||||
var pos: list<number> = getcurpos()
|
||||
cursor(line.lnum, 1)
|
||||
# VIM_INDENT_TEST_TRACE_START
|
||||
var match_lnum: number = search(pat, 'cnW', line.lnum, TIMEOUT, (): bool => InCommentOrString())
|
||||
# VIM_INDENT_TEST_TRACE_END dist#vimindent#NonCommentedMatch
|
||||
setpos('.', pos)
|
||||
return match_lnum > 0
|
||||
enddef
|
||||
|
||||
@@ -20,10 +20,12 @@ let g:python_indent = extend(get(g:, 'python_indent', {}), #{
|
||||
let s:maxoff = 50 " maximum number of lines to look backwards for ()
|
||||
|
||||
function s:SearchBracket(fromlnum, flags)
|
||||
" VIM_INDENT_TEST_TRACE_START
|
||||
return searchpairpos('[[({]', '', '[])}]', a:flags,
|
||||
\ {-> synstack('.', col('.'))
|
||||
\ ->indexof({_, id -> synIDattr(id, 'name') =~ '\%(Comment\|Todo\|String\)$'}) >= 0},
|
||||
\ [0, a:fromlnum - s:maxoff]->max(), g:python_indent.searchpair_timeout)
|
||||
" VIM_INDENT_TEST_TRACE_END python#s:SearchBracket
|
||||
endfunction
|
||||
|
||||
" See if the specified line is already user-dedented from the expected value.
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
" Author: Stephen Sugden <stephen@stephensugden.com>
|
||||
" Last Modified: 2023-09-11
|
||||
" Last Change: 2025 Mar 31 by Vim project (rename s:RustfmtConfigOptions())
|
||||
"
|
||||
" Adapted from https://github.com/fatih/vim-go
|
||||
" For bugs, patches and license go to https://github.com/rust-lang/rust.vim
|
||||
@@ -61,7 +62,7 @@ function! s:RustfmtWriteMode()
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:RustfmtConfigOptions()
|
||||
function! rustfmt#RustfmtConfigOptions()
|
||||
let l:rustfmt_toml = findfile('rustfmt.toml', expand('%:p:h') . ';')
|
||||
if l:rustfmt_toml !=# ''
|
||||
return '--config-path '.shellescape(fnamemodify(l:rustfmt_toml, ":p"))
|
||||
@@ -84,7 +85,7 @@ function! s:RustfmtCommandRange(filename, line1, line2)
|
||||
|
||||
let l:arg = {"file": shellescape(a:filename), "range": [a:line1, a:line2]}
|
||||
let l:write_mode = s:RustfmtWriteMode()
|
||||
let l:rustfmt_config = s:RustfmtConfigOptions()
|
||||
let l:rustfmt_config = rustfmt#RustfmtConfigOptions()
|
||||
|
||||
" FIXME: When --file-lines gets to be stable, add version range checking
|
||||
" accordingly.
|
||||
@@ -99,7 +100,7 @@ endfunction
|
||||
|
||||
function! s:RustfmtCommand()
|
||||
let write_mode = g:rustfmt_emit_files ? '--emit=stdout' : '--write-mode=display'
|
||||
let config = s:RustfmtConfigOptions()
|
||||
let config = rustfmt#RustfmtConfigOptions()
|
||||
return join([g:rustfmt_command, write_mode, config, g:rustfmt_options])
|
||||
endfunction
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
" 2025 Mar 02 by Vim Project: escape the filename before using :read
|
||||
" 2025 Mar 02 by Vim Project: determine the compression using readblob()
|
||||
" instead of shelling out to file(1)
|
||||
" 2025 Apr 16 by Vim Project: decouple from netrw by adding s:WinPath()
|
||||
"
|
||||
" Contains many ideas from Michael Toren's <tar.vim>
|
||||
"
|
||||
@@ -146,7 +147,7 @@ fun! tar#Browse(tarfile)
|
||||
let lastline= line("$")
|
||||
call setline(lastline+1,'" tar.vim version '.g:loaded_tar)
|
||||
call setline(lastline+2,'" Browsing tarfile '.a:tarfile)
|
||||
call setline(lastline+3,'" Select a file with cursor and press ENTER')
|
||||
call setline(lastline+3,'" Select a file with cursor and press ENTER, "x" to extract a file')
|
||||
keepj $put =''
|
||||
keepj sil! 0d
|
||||
keepj $
|
||||
@@ -615,7 +616,7 @@ fun! tar#Extract()
|
||||
let tarball = expand("%")
|
||||
let tarbase = substitute(tarball,'\..*$','','')
|
||||
|
||||
let extractcmd= netrw#WinPath(g:tar_extractcmd)
|
||||
let extractcmd= s:WinPath(g:tar_extractcmd)
|
||||
if filereadable(tarbase.".tar")
|
||||
call system(extractcmd." ".shellescape(tarbase).".tar ".shellescape(fname))
|
||||
if v:shell_error != 0
|
||||
@@ -765,6 +766,25 @@ fun! s:Header(fname)
|
||||
return "unknown"
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:WinPath: {{{2
|
||||
fun! s:WinPath(path)
|
||||
if (!g:netrw_cygwin || &shell !~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$') && has("win32")
|
||||
" remove cygdrive prefix, if present
|
||||
let path = substitute(a:path, '/cygdrive/\(.\)', '\1:', '')
|
||||
" remove trailing slash (Win95)
|
||||
let path = substitute(path, '\(\\\|/\)$', '', 'g')
|
||||
" remove escaped spaces
|
||||
let path = substitute(path, '\ ', ' ', 'g')
|
||||
" convert slashes to backslashes
|
||||
let path = substitute(path, '/', '\', 'g')
|
||||
else
|
||||
let path = a:path
|
||||
endif
|
||||
|
||||
return path
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" tar#Vimuntar: installs a tarball in the user's .vim / vimfiles directory {{{2
|
||||
fun! tar#Vimuntar(...)
|
||||
@@ -786,7 +806,7 @@ fun! tar#Vimuntar(...)
|
||||
|
||||
if simplify(curdir) != simplify(vimhome)
|
||||
" copy (possibly compressed) tarball to .vim/vimfiles
|
||||
call system(netrw#WinPath(g:tar_copycmd)." ".shellescape(tartail)." ".shellescape(vimhome))
|
||||
call system(s:WinPath(g:tar_copycmd)." ".shellescape(tartail)." ".shellescape(vimhome))
|
||||
exe "cd ".fnameescape(vimhome)
|
||||
endif
|
||||
|
||||
@@ -808,7 +828,7 @@ fun! tar#Vimuntar(...)
|
||||
else
|
||||
call vimball#Decompress(tartail,0)
|
||||
endif
|
||||
let extractcmd= netrw#WinPath(g:tar_extractcmd)
|
||||
let extractcmd= s:WinPath(g:tar_extractcmd)
|
||||
call system(extractcmd." ".shellescape(tarbase.".tar"))
|
||||
|
||||
" set up help
|
||||
|
||||
@@ -107,6 +107,7 @@ if 1
|
||||
\ let line = line("'\"")
|
||||
\ | if line >= 1 && line <= line("$") && &filetype !~# 'commit'
|
||||
\ && index(['xxd', 'gitrebase', 'tutor'], &filetype) == -1
|
||||
\ && !&diff
|
||||
\ | execute "normal! g`\""
|
||||
\ | endif
|
||||
|
||||
|
||||
@@ -142,7 +142,9 @@ os_win32.txt:
|
||||
touch $@
|
||||
|
||||
pi_netrw.txt: ../pack/dist/opt/netrw/doc/netrw.txt
|
||||
cp ../pack/dist/opt/netrw/doc/netrw.txt $@
|
||||
cp ../pack/dist/opt/netrw/doc/netrw.txt $@.tmp
|
||||
sed -e '1s/$$/ *pi_netrw.txt*/' $@.tmp > $@ && \
|
||||
rm -f $@.tmp
|
||||
|
||||
vietnamese.txt:
|
||||
touch $@
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 9.1. Last change: 2025 Mar 12
|
||||
*autocmd.txt* For Vim version 9.1. Last change: 2025 Apr 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -398,6 +398,7 @@ Name triggered by ~
|
||||
|CmdlineChanged| after a change was made to the command-line text
|
||||
|CmdlineEnter| after the cursor moves to the command line
|
||||
|CmdlineLeave| before the cursor leaves the command line
|
||||
|CmdlineLeavePre| before preparing to leave the command line
|
||||
|
||||
|InsertEnter| starting Insert mode
|
||||
|InsertChange| when typing <Insert> while in Insert or Replace mode
|
||||
@@ -593,7 +594,8 @@ BufWriteCmd Before writing the whole buffer to a file.
|
||||
The buffer contents should not be changed.
|
||||
When the command resets 'modified' the undo
|
||||
information is adjusted to mark older undo
|
||||
states as 'modified', like |:write| does.
|
||||
states as 'modified', like |:write| does. Use
|
||||
the |'[| and |']| marks for the range of lines.
|
||||
|Cmd-event|
|
||||
*BufWritePost*
|
||||
BufWritePost After writing the whole buffer to a file
|
||||
@@ -638,6 +640,18 @@ CmdlineLeave Before leaving the command line; including
|
||||
<afile> is set to a single character,
|
||||
indicating the type of command-line.
|
||||
|cmdwin-char|
|
||||
*CmdlineLeavePre*
|
||||
CmdlineLeavePre Just before leaving the command line, and
|
||||
before |CmdlineLeave|. Useful for capturing
|
||||
completion info with |cmdcomplete_info()|, as
|
||||
this information is cleared before
|
||||
|CmdlineLeave| is triggered. Triggered for
|
||||
non-interactive use of ":" in a mapping, but
|
||||
not when using |<Cmd>|. Also triggered when
|
||||
abandoning the command line by typing CTRL-C
|
||||
or <Esc>. <afile> is set to a single
|
||||
character indicating the command-line type.
|
||||
See |cmdwin-char| for details.
|
||||
*CmdwinEnter*
|
||||
CmdwinEnter After entering the command-line window.
|
||||
Useful for setting options specifically for
|
||||
@@ -886,14 +900,14 @@ FileType When the 'filetype' option has been set. The
|
||||
FileWriteCmd Before writing to a file, when not writing the
|
||||
whole buffer. Should do the writing to the
|
||||
file. Should not change the buffer. Use the
|
||||
'[ and '] marks for the range of lines.
|
||||
|'[| and |']| marks for the range of lines.
|
||||
|Cmd-event|
|
||||
*FileWritePost*
|
||||
FileWritePost After writing to a file, when not writing the
|
||||
whole buffer.
|
||||
*FileWritePre*
|
||||
FileWritePre Before writing to a file, when not writing the
|
||||
whole buffer. Use the '[ and '] marks for the
|
||||
whole buffer. Use the |'[| and |']| marks for the
|
||||
range of lines.
|
||||
*FilterReadPost*
|
||||
FilterReadPost After reading a file from a filter command.
|
||||
@@ -1480,6 +1494,13 @@ WinScrolled After any window in the current tab page
|
||||
or changed width or height. See
|
||||
|win-scrolled-resized|.
|
||||
|
||||
Note: This can not be skipped with
|
||||
`:noautocmd`, because it triggers after
|
||||
processing normal commands when Vim is back in
|
||||
the main loop. If you want to disable this,
|
||||
consider setting the 'eventignore' option
|
||||
instead.
|
||||
|
||||
The pattern is matched against the |window-ID|
|
||||
of the first window that scrolled or resized.
|
||||
Both <amatch> and <afile> are set to the
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*builtin.txt* For Vim version 9.1. Last change: 2025 Mar 24
|
||||
*builtin.txt* For Vim version 9.1. Last change: 2025 Apr 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -129,6 +129,8 @@ charidx({string}, {idx} [, {countcc} [, {utf16}]])
|
||||
chdir({dir}) String change current working directory
|
||||
cindent({lnum}) Number C indent for line {lnum}
|
||||
clearmatches([{win}]) none clear all matches
|
||||
cmdcomplete_info() Dict get current cmdline completion
|
||||
information
|
||||
col({expr} [, {winid}]) Number column byte index of cursor or mark
|
||||
complete({startcol}, {matches}) none set Insert mode completion
|
||||
complete_add({expr}) Number add completion match
|
||||
@@ -1832,6 +1834,29 @@ clearmatches([{win}]) *clearmatches()*
|
||||
Return type: |Number|
|
||||
|
||||
|
||||
cmdcomplete_info() *cmdcomplete_info()*
|
||||
Returns a |Dictionary| with information about cmdline
|
||||
completion. See |cmdline-completion|.
|
||||
The items are:
|
||||
cmdline_orig The original command-line string before
|
||||
completion began.
|
||||
pum_visible |TRUE| if popup menu is visible.
|
||||
See |pumvisible()|.
|
||||
matches List of all completion candidates. Each item
|
||||
is a string.
|
||||
selected Selected item index. First index is zero.
|
||||
Index is -1 if no item is selected (showing
|
||||
typed text only, or the last completion after
|
||||
no item is selected when using the <Up> or
|
||||
<Down> keys)
|
||||
|
||||
Returns an empty |Dictionary| if no completion was attempted,
|
||||
if there was only one candidate and it was fully completed, or
|
||||
if an error occurred.
|
||||
|
||||
Return type: dict<any>
|
||||
|
||||
|
||||
col({expr} [, {winid}]) *col()*
|
||||
The result is a Number, which is the byte index of the column
|
||||
position given with {expr}.
|
||||
@@ -3235,7 +3260,8 @@ finddir({name} [, {path} [, {count}]]) *finddir()*
|
||||
Can also be used as a |method|: >
|
||||
GetName()->finddir()
|
||||
<
|
||||
Return type: |String|
|
||||
Return type: list<string> if {count} is negative, |String|
|
||||
otherwise
|
||||
|
||||
|
||||
findfile({name} [, {path} [, {count}]]) *findfile()*
|
||||
@@ -3249,7 +3275,8 @@ findfile({name} [, {path} [, {count}]]) *findfile()*
|
||||
Can also be used as a |method|: >
|
||||
GetName()->findfile()
|
||||
<
|
||||
Return type: |String|
|
||||
Return type: list<string> if {count} is negative, |String|
|
||||
otherwise
|
||||
|
||||
|
||||
flatten({list} [, {maxdepth}]) *flatten()*
|
||||
@@ -8158,7 +8185,8 @@ printf({fmt}, {expr1} ...) *printf()*
|
||||
< 1.41
|
||||
|
||||
You will get an overflow error |E1510|, when the field-width
|
||||
or precision will result in a string longer than 6400 chars.
|
||||
or precision will result in a string longer than 1 MiB
|
||||
(1024*1024 = 1048576) chars.
|
||||
|
||||
*E1500*
|
||||
You cannot mix positional and non-positional arguments: >
|
||||
@@ -8336,13 +8364,14 @@ py3eval({expr} [, {locals}]) *py3eval()*
|
||||
converted to Vim data structures.
|
||||
If a {locals} |Dictionary| is given, it defines set of local
|
||||
variables available in the expression. The keys are variable
|
||||
names and the values are the variable values. |Dictionary| and
|
||||
|List| values are referenced, and may be updated by the
|
||||
expression (as if |python-bindeval| was used).
|
||||
names and the values are the variable values. |Dictionary|,
|
||||
|List| and |Tuple| values are referenced, and may be updated
|
||||
by the expression (as if |python-bindeval| was used).
|
||||
Numbers and strings are returned as they are (strings are
|
||||
copied though, Unicode strings are additionally converted to
|
||||
'encoding').
|
||||
Lists are represented as Vim |List| type.
|
||||
Tuples are represented as Vim |Tuple| type.
|
||||
Dictionaries are represented as Vim |Dictionary| type with
|
||||
keys converted to strings.
|
||||
Note that in a `:def` function local variables are not visible
|
||||
@@ -8364,6 +8393,7 @@ pyeval({expr} [, {locals}]) *pyeval()*
|
||||
Numbers and strings are returned as they are (strings are
|
||||
copied though).
|
||||
Lists are represented as Vim |List| type.
|
||||
Tuples are represented as Vim |Tuple| type.
|
||||
Dictionaries are represented as Vim |Dictionary| type,
|
||||
non-string keys result in error.
|
||||
Note that in a `:def` function local variables are not visible
|
||||
@@ -11921,7 +11951,7 @@ trunc({expr}) *trunc()*
|
||||
Return type: |Float|
|
||||
|
||||
|
||||
tuple2list({list}) *tuple2list()*
|
||||
tuple2list({tuple}) *tuple2list()*
|
||||
Create a List from a shallow copy of the tuple items.
|
||||
Examples: >
|
||||
tuple2list((1, 2, 3)) returns [1, 2, 3]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*change.txt* For Vim version 9.1. Last change: 2025 Mar 18
|
||||
*change.txt* For Vim version 9.1. Last change: 2025 Apr 03
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -156,8 +156,8 @@ only after a '.').
|
||||
The 'B' and 'M' flags in 'formatoptions' change the behavior for inserting
|
||||
spaces before and after a multibyte character |fo-table|.
|
||||
|
||||
The '[ mark is set at the end of the first line that was joined, '] at the end
|
||||
of the resulting line.
|
||||
The |'[| mark is set at the end of the first line that was joined, |']| at the
|
||||
end of the resulting line.
|
||||
|
||||
|
||||
==============================================================================
|
||||
@@ -1188,8 +1188,8 @@ the ":put" command, Vim always inserts the text in the next line. You can
|
||||
exchange two characters with the command sequence "xp". You can exchange two
|
||||
lines with the command sequence "ddp". You can exchange two words with the
|
||||
command sequence "deep" (start with the cursor in the blank space before the
|
||||
first word). You can use the "']" or "`]" command after the put command to
|
||||
move the cursor to the end of the inserted text, or use "'[" or "`[" to move
|
||||
first word). You can use the |']| or |`]| command after the put command to
|
||||
move the cursor to the end of the inserted text, or use |'[| or |`[| to move
|
||||
the cursor to the start.
|
||||
|
||||
*put-Visual-mode* *v_p* *v_P*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*develop.txt* For Vim version 9.1. Last change: 2024 Dec 25
|
||||
*develop.txt* For Vim version 9.1. Last change: 2025 Apr 18
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -192,7 +192,7 @@ For any non-trivial change, please always create a pull request on github,
|
||||
since this triggers the test suite.
|
||||
|
||||
*style-clang-format*
|
||||
sound.c and sign.c can be (semi-) automatically formated using the
|
||||
sound.c and sign.c can be (semi-) automatically formatted using the
|
||||
`clang-format` formatter according to the distributed .clang-format file.
|
||||
Other source files do not yet correspond to the .clang-format file. This may
|
||||
change in the future and they may be reformatted as well.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*diff.txt* For Vim version 9.1. Last change: 2024 Feb 01
|
||||
*diff.txt* For Vim version 9.1. Last change: 2025 Mar 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -226,14 +226,28 @@ The diffs are highlighted with these groups:
|
||||
|hl-DiffAdd| DiffAdd Added (inserted) lines. These lines exist in
|
||||
this buffer but not in another.
|
||||
|hl-DiffChange| DiffChange Changed lines.
|
||||
|hl-DiffText| DiffText Changed text inside a Changed line. Vim
|
||||
finds the first character that is different,
|
||||
and the last character that is different
|
||||
(searching from the end of the line). The
|
||||
text in between is highlighted. This means
|
||||
that parts in the middle that are still the
|
||||
same are highlighted anyway. The 'diffopt'
|
||||
flags "iwhite" and "icase" are used here.
|
||||
|hl-DiffText| DiffText Changed text inside a Changed line. Exact
|
||||
behavior depends on the `inline:` setting in
|
||||
'diffopt'.
|
||||
With `inline:` set to "simple", Vim finds the
|
||||
first character that is different, and the
|
||||
last character that is different (searching
|
||||
from the end of the line). The text in
|
||||
between is highlighted. This means that parts
|
||||
in the middle that are still the same are
|
||||
highlighted anyway. The 'diffopt' flags
|
||||
"iwhite" and "icase" are used here.
|
||||
With `inline:` set to "char" or "word", Vim
|
||||
uses the internal diff library to perform a
|
||||
detailed diff between the changed blocks and
|
||||
highlight the exact difference between the
|
||||
two. Will respect any 'diffopt' flag that
|
||||
affects internal diff.
|
||||
Not used when `inline:` is set to "none".
|
||||
|hl-DiffTextAdd| DiffTextAdd Added text inside a Changed line. Similar to
|
||||
DiffText, but used when there is no
|
||||
corresponding text in other buffers. Not used
|
||||
when `inline:` is set to "simple" or "none".
|
||||
|hl-DiffDelete| DiffDelete Deleted lines. Also called filler lines,
|
||||
because they don't really exist in this
|
||||
buffer.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*editing.txt* For Vim version 9.1. Last change: 2024 Oct 14
|
||||
*editing.txt* For Vim version 9.1. Last change: 2025 Apr 03
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -974,8 +974,9 @@ Note: When the 'write' option is off, you are not able to write any file.
|
||||
executed like with ":!{cmd}", any '!' is replaced with
|
||||
the previous command |:!|.
|
||||
|
||||
The default [range] for the ":w" command is the whole buffer (1,$). If you
|
||||
write the whole buffer, it is no longer considered changed. When you
|
||||
The default [range] for the ":w" command is the whole buffer (1,$). The |'[|
|
||||
and |']| marks will be set to the [range] being used for the write command.
|
||||
If you write the whole buffer, it is no longer considered changed. When you
|
||||
write it to a different file with ":w somefile" it depends on the "+" flag in
|
||||
'cpoptions'. When included, the write command will reset the 'modified' flag,
|
||||
even though the buffer itself may still be different from its file.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*eval.txt* For Vim version 9.1. Last change: 2025 Mar 23
|
||||
*eval.txt* For Vim version 9.1. Last change: 2025 Apr 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -541,7 +541,8 @@ example, to add up all the numbers in a list: >
|
||||
A Tuple is an ordered sequence of items. An item can be of any type. Items
|
||||
can be accessed by their index number. A Tuple is immutable.
|
||||
|
||||
A Tuple uses less memory compared to a List and provides O(1) lookup time.
|
||||
A Tuple is similar to a List but uses less memory and provides O(1) lookup
|
||||
time for an item.
|
||||
|
||||
Tuple creation ~
|
||||
*E1526* *E1527*
|
||||
@@ -579,6 +580,15 @@ is not available it returns zero or the default value you specify: >
|
||||
:echo get(mytuple, idx, "NONE")
|
||||
|
||||
|
||||
Tuple modification ~
|
||||
*tuple-modification*
|
||||
A tuple is immutable and items cannot be added or removed from a tuple. But
|
||||
List and Dict items within a tuple can be modified: >
|
||||
:let tuple = (1, [2, 3], {'a': 4})
|
||||
:let tuple[1][0] = 10
|
||||
:let tuple[2]['a'] = 20
|
||||
|
||||
|
||||
Tuple concatenation ~
|
||||
*tuple-concatenation*
|
||||
Two tuples can be concatenated with the "+" operator: >
|
||||
@@ -5139,7 +5149,7 @@ executable. It takes the following arguments:
|
||||
filetype string
|
||||
executable string
|
||||
|
||||
*dist#vim9#Open()* *:Open*
|
||||
*dist#vim9#Open()* *:Open* *:URLOpen*
|
||||
*g:Openprg* *gx*
|
||||
dist#vim9#Open(file: string) ~
|
||||
|
||||
@@ -5147,6 +5157,8 @@ Opens `path` with the system default handler (macOS `open`, Windows
|
||||
`explorer.exe`, Linux `xdg-open`, …). If the variable |g:Openprg| exists the
|
||||
string specified in the variable is used instead.
|
||||
|
||||
The |:Open| user command uses file completion for its argument.
|
||||
|
||||
This function is by default called using the gx mapping. In visual mode
|
||||
tries to open the visually selected text.
|
||||
|
||||
@@ -5165,13 +5177,18 @@ Usage: >vim
|
||||
:call dist#vim9#Open(<path>)
|
||||
:Open <path>
|
||||
<
|
||||
*package-open*
|
||||
The |:Open| and |:Launch| command are provided by the included plugin
|
||||
$VIMRUNTIME/plugin/openPlugin.vim
|
||||
|
||||
*dist#vim9#Launch()* *:Launch*
|
||||
*dist#vim9#Launch()* *:Launch*
|
||||
dist#vim9#Launch(file: string) ~
|
||||
|
||||
Launches <args> with the appropriate system programs. Intended for launching
|
||||
GUI programs within Vim.
|
||||
|
||||
The |:Launch| user command uses shell completion for its first argument.
|
||||
|
||||
NOTE: escaping of <args> is left to the user
|
||||
|
||||
Examples: >vim
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*filetype.txt* For Vim version 9.1. Last change: 2025 Mar 15
|
||||
*filetype.txt* For Vim version 9.1. Last change: 2025 Apr 19
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -153,11 +153,17 @@ variables can be used to overrule the filetype used for certain extensions:
|
||||
*.f g:filetype_f |ft-forth-syntax|
|
||||
*.frm g:filetype_frm |ft-form-syntax|
|
||||
*.fs g:filetype_fs |ft-forth-syntax|
|
||||
*.h g:c_syntax_for_h |ft-c-syntax|
|
||||
*.h g:c_syntax_for_h |ft-c-syntax| (deprecated)
|
||||
*.h g:ch_syntax_for_h |ft-ch-syntax| (deprecated)
|
||||
*.h g:filetype_h |ft-c-syntax|
|
||||
|ft-ch-syntax|
|
||||
|ft-cpp-syntax|
|
||||
*.i g:filetype_i |ft-progress-syntax|
|
||||
*.inc g:filetype_inc
|
||||
*.lsl g:filetype_lsl
|
||||
*.m g:filetype_m |ft-mathematica-syntax|
|
||||
*[mM]makefile,*.mk,*.mak,[mM]akefile*
|
||||
g:make_flavor |ft-make-syntax|
|
||||
*.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,*.md
|
||||
g:filetype_md |ft-pandoc-syntax|
|
||||
*.mod g:filetype_mod
|
||||
@@ -660,6 +666,16 @@ possibilities: >
|
||||
The `:Cycle` command is also mapped to the CTRL-A and CTRL-X keys.
|
||||
For details, see `git-rebase --help`.
|
||||
|
||||
GLEAM *ft-gleam-plugin*
|
||||
|
||||
By default the following options are set for the recommended gleam style: >
|
||||
|
||||
setlocal expandtab shiftwidth=2 softtabstop=2
|
||||
|
||||
To disable this behavior, set the following variable in your vimrc: >
|
||||
|
||||
let g:gleam_recommended_style = 0
|
||||
|
||||
GO *ft-go-plugin*
|
||||
|
||||
By default the following options are set, based on Golang official docs: >
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*helphelp.txt* For Vim version 9.1. Last change: 2025 Jan 11
|
||||
*helphelp.txt* For Vim version 9.1. Last change: 2025 Apr 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -383,6 +383,10 @@ standard Vim help files, except for the first line. If you are writing a new
|
||||
help file it's best to copy one of the existing files and use it as a
|
||||
template.
|
||||
|
||||
Vim help files generally use 2 spaces after a sentence (since they are written
|
||||
using a fixed-width font and that was the prefered style in the 70s/80s), like
|
||||
what is described here: https://english.stackexchange.com/a/2602
|
||||
|
||||
The first line in a help file should have the following format:
|
||||
|
||||
*plugin_name.txt* {short description of the plugin}
|
||||
@@ -471,8 +475,13 @@ highlighting. So do these:
|
||||
You can find the details in $VIMRUNTIME/syntax/help.vim
|
||||
|
||||
|
||||
GENDER NEUTRAL LANGUAGE
|
||||
FILETYPE COMPLETION *ft-help-omni*
|
||||
|
||||
To get completion for help tags when writing a tag reference, you can use the
|
||||
|i_CTRL-X_CTRL-O| command.
|
||||
|
||||
|
||||
GENDER NEUTRAL LANGUAGE
|
||||
*gender-neutral* *inclusion*
|
||||
Vim is for everybody, no matter race, gender or anything. For new or updated
|
||||
help text, gender neutral language is recommended. Some of the help text is
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*if_pyth.txt* For Vim version 9.1. Last change: 2024 Nov 09
|
||||
*if_pyth.txt* For Vim version 9.1. Last change: 2025 Mar 26
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Paul Moore
|
||||
@@ -184,8 +184,9 @@ vim.eval(str) *python-eval*
|
||||
evaluator (see |expression|). Returns the expression result as:
|
||||
- a string if the Vim expression evaluates to a string or number
|
||||
- a list if the Vim expression evaluates to a Vim list
|
||||
- a tuple if the Vim expression evaluates to a Vim tuple
|
||||
- a dictionary if the Vim expression evaluates to a Vim dictionary
|
||||
Dictionaries and lists are recursively expanded.
|
||||
Dictionaries, lists and tuples are recursively expanded.
|
||||
Examples: >
|
||||
:" value of the 'textwidth' option
|
||||
:py text_width = vim.eval("&tw")
|
||||
@@ -196,6 +197,8 @@ vim.eval(str) *python-eval*
|
||||
:" Result is a string! Use string.atoi() to convert to a number.
|
||||
:py str = vim.eval("12+12")
|
||||
:
|
||||
:py tuple = vim.eval('(1, 2, 3)')
|
||||
:
|
||||
:py tagList = vim.eval('taglist("eval_expr")')
|
||||
< The latter will return a python list of python dicts, for instance:
|
||||
[{'cmd': '/^eval_expr(arg, nextcmd)$/', 'static': 0, 'name': ~
|
||||
@@ -207,8 +210,8 @@ vim.eval(str) *python-eval*
|
||||
|
||||
vim.bindeval(str) *python-bindeval*
|
||||
Like |python-eval|, but returns special objects described in
|
||||
|python-bindeval-objects|. These python objects let you modify (|List|
|
||||
or |Dictionary|) or call (|Funcref|) vim objects.
|
||||
|python-bindeval-objects|. These python objects let you modify
|
||||
(|List|, |Tuple| or |Dictionary|) or call (|Funcref|) vim objects.
|
||||
|
||||
vim.strwidth(str) *python-strwidth*
|
||||
Like |strwidth()|: returns number of display cells str occupies, tab
|
||||
@@ -688,6 +691,22 @@ vim.List object *python-List*
|
||||
print isinstance(l, vim.List) # True
|
||||
class List(vim.List): # Subclassing
|
||||
|
||||
vim.Tuple object *python-Tuple*
|
||||
Sequence-like object providing access to vim |Tuple| type.
|
||||
Supports `.locked` attribute, see |python-.locked|. Also supports the
|
||||
following methods:
|
||||
Method Description ~
|
||||
__new__(), __new__(iterable)
|
||||
You can use `vim.Tuple()` to create new vim tuples.
|
||||
Without arguments constructs empty list.
|
||||
Examples: >
|
||||
t = vim.Tuple("abc") # Constructor, result: ('a', 'b', 'c')
|
||||
print t[1:] # slicing
|
||||
print t[0] # getting item
|
||||
for i in t: # iteration
|
||||
print isinstance(t, vim.Tuple) # True
|
||||
class Tuple(vim.Tuple): # Subclassing
|
||||
|
||||
vim.Function object *python-Function*
|
||||
Function-like object, acting like vim |Funcref| object. Accepts special
|
||||
keyword argument `self`, see |Dictionary-function|. You can also use
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*insert.txt* For Vim version 9.1. Last change: 2025 Mar 09
|
||||
*insert.txt* For Vim version 9.1. Last change: 2025 Apr 14
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1167,6 +1167,9 @@ For example, the function can contain this: >
|
||||
let matches = ... list of words ...
|
||||
return {'words': matches, 'refresh': 'always'}
|
||||
<
|
||||
If looking for matches is time-consuming, |complete_check()| may be used to
|
||||
maintain responsiveness.
|
||||
|
||||
*complete-items*
|
||||
Each list item can either be a string or a Dictionary. When it is a string it
|
||||
is used as the completion. When it is a Dictionary it can contain these
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*motion.txt* For Vim version 9.1. Last change: 2024 Dec 17
|
||||
*motion.txt* For Vim version 9.1. Last change: 2025 Apr 03
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -895,12 +895,12 @@ Numbered mark should be stored. See |viminfo-file-marks|.
|
||||
|
||||
|
||||
*'[* *`[*
|
||||
'[ `[ To the first character of the previously changed
|
||||
or yanked text.
|
||||
'[ `[ To the first character of the previously changed,
|
||||
or yanked text. Also set when writing the buffer.
|
||||
|
||||
*']* *`]*
|
||||
'] `] To the last character of the previously changed or
|
||||
yanked text.
|
||||
yanked text. Also set when writing the buffer.
|
||||
|
||||
After executing an operator the Cursor is put at the beginning of the text
|
||||
that was operated upon. After a put command ("p" or "P") the cursor is
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 9.1. Last change: 2025 Mar 14
|
||||
*options.txt* For Vim version 9.1. Last change: 2025 Apr 19
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -212,7 +212,7 @@ A few examples: >
|
||||
:set makeprg=make,file results in "make,file"
|
||||
:set makeprg=make\\,file results in "make\,file"
|
||||
:set tags=tags,file results in "tags" and "file"
|
||||
:set tags=tags\\,file results in "tags,file"
|
||||
:set tags=tags\\,file results in "tags\,file"
|
||||
:let &tags='tags\,file' (same as above)
|
||||
|
||||
The "|" character separates a ":set" command from a following command. To
|
||||
@@ -1717,6 +1717,19 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'chistory'* *'chi'*
|
||||
'chistory' 'chi' number (default: 10)
|
||||
global
|
||||
{only available when compiled with the |+quickfix|
|
||||
feature}
|
||||
Number of quickfix lists that should be remembered for the quickfix
|
||||
stack. Must be between 1 and 100. If the option is set to a value
|
||||
that is lower than the amount of entries in the quickfix list stack,
|
||||
entries will be removed starting from the oldest one. If the current
|
||||
quickfix list was removed, then the quickfix list at top of the stack
|
||||
(the most recently created) will be used in its place. For additional
|
||||
info, see |quickfix-stack|.
|
||||
|
||||
*'cindent'* *'cin'* *'nocindent'* *'nocin'*
|
||||
'cindent' 'cin' boolean (default off)
|
||||
local to buffer
|
||||
@@ -2072,6 +2085,28 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|i_CTRL-X_CTRL-D|
|
||||
] tag completion
|
||||
t same as "]"
|
||||
f{func} call the function {func}. Multiple "f" flags may be specified.
|
||||
Refer to |complete-functions| for details on how the function
|
||||
is invoked and what it should return. The value can be the
|
||||
name of a function or a |Funcref|. For |Funcref| values,
|
||||
spaces must be escaped with a backslash ('\'), and commas with
|
||||
double backslashes ('\\') (see |option-backslash|).
|
||||
If the Dict returned by the {func} includes {"refresh": "always"},
|
||||
the function will be invoked again whenever the leading text
|
||||
changes.
|
||||
Completion matches are always inserted at the keyword
|
||||
boundary, regardless of the column returned by {func} when
|
||||
a:findstart is 1. This ensures compatibility with other
|
||||
completion sources.
|
||||
To make further modifications to the inserted text, {func}
|
||||
can make use of |CompleteDonePre|.
|
||||
If generating matches is potentially slow, |complete_check()|
|
||||
should be used to avoid blocking and preserve editor
|
||||
responsiveness.
|
||||
f equivalent to using "f{func}", where the function is taken from
|
||||
the 'completefunc' option.
|
||||
o equivalent to using "f{func}", where the function is taken from
|
||||
the 'omnifunc' option.
|
||||
|
||||
Unloaded buffers are not loaded, thus their autocmds |:autocmd| are
|
||||
not executed, this may lead to unexpected completions from some files
|
||||
@@ -2090,6 +2125,13 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
based expansion (e.g., dictionary |i_CTRL-X_CTRL-K|, included patterns
|
||||
|i_CTRL-X_CTRL-I|, tags |i_CTRL-X_CTRL-]| and normal expansions).
|
||||
|
||||
An optional match limit can be specified for a completion source by
|
||||
appending a caret ("^") followed by a {count} to the source flag.
|
||||
For example: ".^9,w,u,t^5" limits matches from the current buffer
|
||||
to 9 and from tags to 5. Other sources remain unlimited.
|
||||
The match limit takes effect only during forward completion (CTRL-N)
|
||||
and is ignored during backward completion (CTRL-P).
|
||||
|
||||
*'completefunc'* *'cfu'*
|
||||
'completefunc' 'cfu' string (default: empty)
|
||||
local to buffer
|
||||
@@ -2166,6 +2208,12 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Useful when there is additional information about the
|
||||
match, e.g., what file it comes from.
|
||||
|
||||
nearest Matches are listed based on their proximity to the cursor
|
||||
position, unlike the default behavior, which only
|
||||
considers proximity for matches appearing below the
|
||||
cursor. This applies only to matches from the current
|
||||
buffer. No effect if "fuzzy" is present.
|
||||
|
||||
noinsert Do not insert any text for a match until the user selects
|
||||
a match from the menu. Only works in combination with
|
||||
"menu" or "menuone". No effect if "longest" is present.
|
||||
@@ -2655,7 +2703,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*E1193* *E1194* *E1195* *E1196* *E1230*
|
||||
*E1197* *E1198* *E1199* *E1200* *E1201*
|
||||
xchacha20 XChaCha20 Cipher with Poly1305 Message Authentication
|
||||
Code. Medium strong till strong encryption.
|
||||
Code. Medium strong to strong encryption.
|
||||
Encryption is provided by the libsodium library, it
|
||||
requires Vim to be built with |+sodium|.
|
||||
It adds a seed and a message authentication code (MAC)
|
||||
@@ -2910,7 +2958,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
security reasons.
|
||||
|
||||
*'dip'* *'diffopt'*
|
||||
'diffopt' 'dip' string (default "internal,filler,closeoff")
|
||||
'diffopt' 'dip' string (default
|
||||
"internal,filler,closeoff,inline:simple")
|
||||
global
|
||||
{not available when compiled without the |+diff|
|
||||
feature}
|
||||
@@ -2975,6 +3024,24 @@ 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.
|
||||
|
||||
inline:{text} Highlight inline differences within a change.
|
||||
See |view-diffs|. Supported values are:
|
||||
|
||||
none Do not perform inline highlighting.
|
||||
simple Highlight from first different
|
||||
character to the last one in each
|
||||
line. This is the default if no
|
||||
`inline:` value is set.
|
||||
char Use internal diff to perform a
|
||||
character-wise diff and highlight the
|
||||
difference.
|
||||
word Use internal diff to perform a
|
||||
|word|-wise diff and highlight the
|
||||
difference. Non-alphanumeric
|
||||
multi-byte characters such as emoji
|
||||
and CJK characters are considered
|
||||
individual words.
|
||||
|
||||
internal Use the internal diff library. This is
|
||||
ignored when 'diffexpr' is set. *E960*
|
||||
When running out of memory when writing a
|
||||
@@ -3571,8 +3638,8 @@ 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:~,lastline:@")
|
||||
global or local to window |global-local|
|
||||
Characters to fill the statuslines, vertical separators and special
|
||||
lines in the window.
|
||||
Characters to fill the statuslines, vertical separators, special
|
||||
lines in the window and truncated text in the |ins-completion-menu|.
|
||||
It is a comma-separated list of items. Each item has a name, a colon
|
||||
and the value of that item: |E1511|
|
||||
|
||||
@@ -3587,6 +3654,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
diff '-' deleted lines of the 'diff' option
|
||||
eob '~' empty lines below the end of a buffer
|
||||
lastline '@' 'display' contains lastline/truncate
|
||||
trunc '>' truncated text in the
|
||||
|ins-completion-menu|.
|
||||
truncrl '<' same as "trunc' in 'rightleft' mode
|
||||
|
||||
Any one that is omitted will fall back to the default.
|
||||
|
||||
@@ -3603,9 +3673,15 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
stlnc StatusLineNC |hl-StatusLineNC|
|
||||
vert VertSplit |hl-VertSplit|
|
||||
fold Folded |hl-Folded|
|
||||
foldopen FoldColumn |hl-FoldColumn|
|
||||
foldclose FoldColumn |hl-FoldColumn|
|
||||
foldsep FoldColumn |hl-FoldColumn|
|
||||
diff DiffDelete |hl-DiffDelete|
|
||||
eob EndOfBuffer |hl-EndOfBuffer|
|
||||
lastline NonText |hl-NonText|
|
||||
trunc one of the many Popup menu highlighting groups like
|
||||
|hl-PmenuSel|
|
||||
truncrl same as "trunc"
|
||||
|
||||
*'findfunc'* *'ffu'* *E1514*
|
||||
'findfunc' 'ffu' string (default empty)
|
||||
@@ -4392,10 +4468,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
v:Visual,V:VisualNOS,w:WarningMsg,
|
||||
W:WildMenu,f:Folded,F:FoldColumn,
|
||||
A:DiffAdd,C:DiffChange,D:DiffDelete,
|
||||
T:DiffText,>:SignColumn,-:Conceal,
|
||||
B:SpellBad,P:SpellCap,R:SpellRare,
|
||||
L:SpellLocal,+:Pmenu,=:PmenuSel,
|
||||
k:PmenuMatch,<:PmenuMatchSel,
|
||||
T:DiffText,E:DiffTextAdd,>:SignColumn,
|
||||
-:Conceal,B:SpellBad,P:SpellCap,
|
||||
R:SpellRare, L:SpellLocal,+:Pmenu,
|
||||
=:PmenuSel, k:PmenuMatch,<:PmenuMatchSel,
|
||||
[:PmenuKind,]:PmenuKindSel,
|
||||
{:PmenuExtra,}:PmenuExtraSel,
|
||||
x:PmenuSbar,X:PmenuThumb,*:TabLine,
|
||||
@@ -4447,7 +4523,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|hl-DiffAdd| A added line in diff mode
|
||||
|hl-DiffChange| C changed line in diff mode
|
||||
|hl-DiffDelete| D deleted line in diff mode
|
||||
|hl-DiffText| T inserted text in diff mode
|
||||
|hl-DiffText| T changed text in diff mode
|
||||
|hl-DiffTextAdd| E inserted text in diff mode
|
||||
|hl-SignColumn| > column used for |signs|
|
||||
|hl-Conceal| - the placeholders used for concealed characters
|
||||
(see 'conceallevel')
|
||||
@@ -4768,7 +4845,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
<
|
||||
Also used for the |gf| command if an unmodified file name can't be
|
||||
found. Allows doing "gf" on the name after an 'include' statement.
|
||||
Also used for |<cfile>|.
|
||||
Note: Not used for |<cfile>|.
|
||||
|
||||
If the expression starts with s: or |<SID>|, then it is replaced with
|
||||
the script ID (|local-function|). Example: >
|
||||
@@ -5296,6 +5373,18 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
temporarily when performing an operation where redrawing may cause
|
||||
flickering or cause a slowdown.
|
||||
|
||||
*'lhistory'* *'lhi'*
|
||||
'lhistory' 'lhi' number (default: 10)
|
||||
local to window
|
||||
{only available when compiled with the |+quickfix|
|
||||
feature}
|
||||
Like 'chistory', but for the location list stack associated with a
|
||||
window. If the option is changed in either the location list window
|
||||
itself or the window that is associated with the location list stack,
|
||||
the new value will also be applied to the other one. This means this
|
||||
value will always be the same for a given location list window and its
|
||||
corresponding window. See |quickfix-stack| for additional info.
|
||||
|
||||
*'linebreak'* *'lbr'* *'nolinebreak'* *'nolbr'*
|
||||
'linebreak' 'lbr' boolean (default off)
|
||||
local to window
|
||||
@@ -6459,6 +6548,17 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
global
|
||||
Determines the maximum number of items to show in the popup menu for
|
||||
Insert mode completion. When zero as much space as available is used.
|
||||
|ins-completion-menu|.
|
||||
|
||||
*'pummaxwidth'* *'pmw'*
|
||||
'pummaxwidth' 'pmw' number (default 0)
|
||||
global
|
||||
Determines the maximum width to use for the popup menu for completion.
|
||||
When zero, there is no maximum width limit, otherwise the popup menu
|
||||
will never be wider than this value. Truncated text will be indicated
|
||||
by "trunc" value of 'fillchars' option.
|
||||
|
||||
This option takes precedence over 'pumwidth'.
|
||||
|ins-completion-menu|.
|
||||
|
||||
*'pumwidth'* *'pw'*
|
||||
@@ -9575,55 +9675,65 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*'wildmode'* *'wim'*
|
||||
'wildmode' 'wim' string (Vim default: "full")
|
||||
global
|
||||
Completion mode that is used for the character specified with
|
||||
'wildchar'. It is a comma-separated list of up to four parts. Each
|
||||
part specifies what to do for each consecutive use of 'wildchar'. The
|
||||
first part specifies the behavior for the first use of 'wildchar',
|
||||
The second part for the second use, etc.
|
||||
Completion mode used for the character specified with 'wildchar'.
|
||||
This option is a comma-separated list of up to four parts,
|
||||
corresponding to the first, second, third, and fourth presses of
|
||||
'wildchar'. Each part is a colon-separated list of completion
|
||||
behaviors, which are applied simultaneously during that phase.
|
||||
|
||||
Each part consists of a colon separated list consisting of the
|
||||
following possible values:
|
||||
"" Complete only the first match.
|
||||
"full" Complete the next full match. After the last match,
|
||||
the original string is used and then the first match
|
||||
again. Will also start 'wildmenu' if it is enabled.
|
||||
"longest" Complete till longest common string. If this doesn't
|
||||
result in a longer string, use the next part.
|
||||
"list" When more than one match, list all matches.
|
||||
"lastused" When completing buffer names and more than one buffer
|
||||
matches, sort buffers by time last used (other than
|
||||
the current buffer).
|
||||
"noselect" Do not pre-select first menu item and start 'wildmenu'
|
||||
if it is enabled.
|
||||
When there is only a single match, it is fully completed in all cases
|
||||
except when "noselect" is present.
|
||||
The possible behavior values are:
|
||||
"" Only complete (insert) the first match. No further
|
||||
matches are cycled or listed.
|
||||
"full" Complete the next full match. Cycles through all
|
||||
matches, returning to the original input after the
|
||||
last match. If 'wildmenu' is enabled, it will be
|
||||
shown.
|
||||
"longest" Complete to the longest common substring. If this
|
||||
doesn't extend the input, the next 'wildmode' part is
|
||||
used.
|
||||
"list" If multiple matches are found, list all of them.
|
||||
"lastused" When completing buffer names, sort them by most
|
||||
recently used (excluding the current buffer). Only
|
||||
applies to buffer name completion.
|
||||
"noselect" If 'wildmenu' is enabled, show the menu but do not
|
||||
preselect the first item.
|
||||
If only one match exists, it is completed fully, unless "noselect" is
|
||||
specified.
|
||||
|
||||
Examples of useful colon-separated values:
|
||||
"longest:full" Like "longest", but also start 'wildmenu' if it is
|
||||
enabled. Will not complete to the next full match.
|
||||
"list:full" When more than one match, list all matches and
|
||||
complete first match.
|
||||
"list:longest" When more than one match, list all matches and
|
||||
complete till longest common string.
|
||||
"list:lastused" When more than one buffer matches, list all matches
|
||||
and sort buffers by time last used (other than the
|
||||
current buffer).
|
||||
Some useful combinations of colon-separated values:
|
||||
"longest:full" Start with the longest common string and show
|
||||
'wildmenu' (if enabled). Does not cycle
|
||||
through full matches.
|
||||
"list:full" List all matches and complete first match.
|
||||
"list:longest" List all matches and complete till the longest
|
||||
common prefix.
|
||||
"list:lastused" List all matches. When completing buffers,
|
||||
sort them by most recently used (excluding the
|
||||
current buffer).
|
||||
"noselect:lastused" Do not preselect the first item in 'wildmenu'
|
||||
if it is active. When completing buffers,
|
||||
sort them by most recently used (excluding the
|
||||
current buffer).
|
||||
|
||||
Examples: >
|
||||
:set wildmode=full
|
||||
< Complete first full match, next match, etc. (the default) >
|
||||
< Complete full match on every press (default behavior) >
|
||||
:set wildmode=longest,full
|
||||
< Complete longest common string, then each full match >
|
||||
< First press: longest common substring
|
||||
Second press: cycle through full matches >
|
||||
:set wildmode=list:full
|
||||
< List all matches and complete each full match >
|
||||
< First press: list all matches and complete the first one >
|
||||
:set wildmode=list,full
|
||||
< List all matches without completing, then each full match >
|
||||
< First press: list matches only
|
||||
Second press: complete full matches >
|
||||
:set wildmode=longest,list
|
||||
< Complete longest common string, then list alternatives >
|
||||
< First press: longest common substring
|
||||
Second press: list all matches >
|
||||
:set wildmode=noselect:full
|
||||
< Display 'wildmenu' without completing, then each full match >
|
||||
< Show 'wildmenu' without completing or selecting on first press
|
||||
Cycle full matches on second press >
|
||||
:set wildmode=noselect:lastused,full
|
||||
< Same as above, but sort buffers by time last used.
|
||||
< Same as above, but buffer matches are sorted by time last used
|
||||
More info here: |cmdline-completion|.
|
||||
|
||||
*'wildoptions'* *'wop'*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pattern.txt* For Vim version 9.1. Last change: 2025 Mar 21
|
||||
*pattern.txt* For Vim version 9.1. Last change: 2025 Mar 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1222,7 +1222,8 @@ x A single character, with no special meaning, matches itself
|
||||
\o40 octal number of character up to 0o377
|
||||
\x20 hexadecimal number of character up to 0xff
|
||||
\u20AC hex. number of multibyte character up to 0xffff
|
||||
\U1234 hex. number of multibyte character up to 0xffffffff
|
||||
\U1234 hex. number of multibyte character up to 8 characters
|
||||
0xffffffff |E1541|
|
||||
NOTE: The other backslash codes mentioned above do not work inside
|
||||
[]!
|
||||
- Matching with a collection can be slow, because each character in
|
||||
@@ -1263,7 +1264,8 @@ x A single character, with no special meaning, matches itself
|
||||
\%u20AC Matches the character specified with up to four hexadecimal
|
||||
characters.
|
||||
\%U1234abcd Matches the character specified with up to eight hexadecimal
|
||||
characters, up to 0x7fffffff
|
||||
characters, up to 0x7fffffff (the maximum allowed value is INT_MAX
|
||||
|E1541|, but the maximum valid Unicode codepoint is U+10FFFF).
|
||||
|
||||
==============================================================================
|
||||
7. Ignoring case in a pattern */ignorecase*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*netrw.txt*
|
||||
*netrw.txt* *pi_netrw.txt*
|
||||
|
||||
------------------------------------------------
|
||||
NETRW REFERENCE MANUAL by Charles E. Campbell
|
||||
@@ -431,17 +431,6 @@ settings are described below, in |netrw-browser-options|, and in
|
||||
*g:netrw_silent* =0 : transfers done normally
|
||||
=1 : transfers done silently
|
||||
|
||||
*g:netrw_use_errorwindow* =2: messages from netrw will use a popup window
|
||||
Move the mouse and pause to remove the popup window.
|
||||
(default value if popup windows are available)
|
||||
=1 : messages from netrw will use a separate one
|
||||
line window. This window provides reliable
|
||||
delivery of messages.
|
||||
(default value if popup windows are not available)
|
||||
=0 : messages from netrw will use echoerr ;
|
||||
messages don't always seem to show up this
|
||||
way, but one doesn't have to quit the window.
|
||||
|
||||
*g:netrw_cygwin* =1 assume scp under windows is from cygwin. Also
|
||||
permits network browsing to use ls with time and
|
||||
size sorting (default if windows)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pi_tar.txt* For Vim version 9.1. Last change: 2024 May 11
|
||||
*pi_tar.txt* For Vim version 9.1. Last change: 2025 Mar 16
|
||||
|
||||
+====================+
|
||||
| Tar File Interface |
|
||||
@@ -74,6 +74,15 @@ Copyright 2005-2017: *tar-copyright*
|
||||
let g:loaded_tarPlugin= 1
|
||||
let g:loaded_tar = 1
|
||||
<
|
||||
*tar-mappings*
|
||||
MAPPINGS~
|
||||
|
||||
The following (buffer-local) mappings are available in a tar buffer:
|
||||
|
||||
<CR> Open selected file for editing, any changes will be
|
||||
written back to the archive.
|
||||
<LeftMouse> same as <CR>
|
||||
x Extract selected file.
|
||||
|
||||
==============================================================================
|
||||
3. Options *tar-options*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pi_zip.txt* For Vim version 9.1. Last change: 2023 Nov 05
|
||||
*pi_zip.txt* For Vim version 9.1. Last change: 2025 Apr 02
|
||||
|
||||
+====================+
|
||||
| Zip File Interface |
|
||||
@@ -100,12 +100,14 @@ Copyright: Copyright (C) 2005-2015 Charles E Campbell *zip-copyright*
|
||||
should be treated as zip files.
|
||||
|
||||
Alternatively, one may change *g:zipPlugin_ext* in one's .vimrc.
|
||||
Currently (11/30/15) it holds: >
|
||||
Currently (as of April 2025) it holds: >
|
||||
|
||||
let g:zipPlugin_ext= '*.zip,*.jar,*.xpi,*.ja,*.war,*.ear,*.celzip,
|
||||
\ *.oxt,*.kmz,*.wsz,*.xap,*.docx,*.docm,*.dotx,*.dotm,*.potx,*.potm,
|
||||
\ *.ppsx,*.ppsm,*.pptx,*.pptm,*.ppam,*.sldx,*.thmx,*.xlam,*.xlsx,*.xlsm,
|
||||
\ *.xlsb,*.xltx,*.xltm,*.xlam,*.crtx,*.vdw,*.glox,*.gcsx,*.gqsx,*.epub'
|
||||
let g:zipPlugin_ext='*.aar,*.apk,*.celzip,*.crtx,*.docm,*.docx,
|
||||
\ *.dotm,*.dotx,*.ear,*.epub,*.gcsx,*.glox,*.gqsx,*.ja,*.jar,*.kmz,
|
||||
\ *.odb,*.odc,*.odf,*.odg,*.odi,*.odm,*.odp,*.ods,*.odt,*.otc,*.otf,
|
||||
\ *.otg,*.oth,*.oti,*.otp,*.ots,*.ott,*.oxt,*.potm,*.potx,*.ppam,
|
||||
\ *.ppsm,*.ppsx,*.pptm,*.pptx,*.sldx,*.thmx,*.vdw,*.war,*.whl,*.wsz,
|
||||
\ *.xap,*.xlam,*.xlsb,*.xlsm,*.xlsx,*.xltm,*.xltx,*.xpi,*.zip'
|
||||
|
||||
==============================================================================
|
||||
4. History *zip-history* {{{1
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*quickfix.txt* For Vim version 9.1. Last change: 2025 Mar 11
|
||||
*quickfix.txt* For Vim version 9.1. Last change: 2025 Apr 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -43,12 +43,12 @@ From inside Vim an easy way to run a command and handle the output is with the
|
||||
The 'errorformat' option should be set to match the error messages from your
|
||||
compiler (see |errorformat| below).
|
||||
|
||||
*quickfix-ID*
|
||||
*quickfix-stack* *quickfix-ID*
|
||||
Each quickfix list has a unique identifier called the quickfix ID and this
|
||||
number will not change within a Vim session. The |getqflist()| function can be
|
||||
used to get the identifier assigned to a list. There is also a quickfix list
|
||||
number which may change whenever more than ten lists are added to a quickfix
|
||||
stack.
|
||||
number which may change whenever more than 'chistory' lists are added to a
|
||||
quickfix stack.
|
||||
|
||||
*location-list* *E776*
|
||||
A location list is a window-local quickfix list. You get one after commands
|
||||
@@ -860,10 +860,12 @@ using these functions are below:
|
||||
=============================================================================
|
||||
3. Using more than one list of errors *quickfix-error-lists*
|
||||
|
||||
So far has been assumed that there is only one list of errors. Actually the
|
||||
ten last used lists are remembered. When starting a new list, the previous
|
||||
ones are automatically kept. Two commands can be used to access older error
|
||||
lists. They set one of the existing error lists as the current one.
|
||||
So far it has been assumed that there is only one list of errors. Actually
|
||||
there can be multiple used lists that are remembered; see 'chistory' and
|
||||
'lhistory'.
|
||||
When starting a new list, the previous ones are automatically kept. Two
|
||||
commands can be used to access older error lists. They set one of the
|
||||
existing error lists as the current one.
|
||||
|
||||
*:colder* *:col* *E380*
|
||||
:col[der] [count] Go to older error list. When [count] is given, do
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*quickref.txt* For Vim version 9.1. Last change: 2025 Feb 08
|
||||
*quickref.txt* For Vim version 9.1. Last change: 2025 Apr 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -639,6 +639,7 @@ Short explanation of each option: *option-list*
|
||||
'cdpath' 'cd' list of directories searched with ":cd"
|
||||
'cedit' key used to open the command-line window
|
||||
'charconvert' 'ccv' expression for character encoding conversion
|
||||
'chistory' 'chi' maximum number of quickfix lists in history
|
||||
'cindent' 'cin' do C program indenting
|
||||
'cinkeys' 'cink' keys that trigger indent when 'cindent' is set
|
||||
'cinoptions' 'cino' how to do indenting when 'cindent' is set
|
||||
@@ -786,6 +787,7 @@ Short explanation of each option: *option-list*
|
||||
'langremap' 'lrm' do apply 'langmap' to mapped characters
|
||||
'laststatus' 'ls' tells when last window has status lines
|
||||
'lazyredraw' 'lz' don't redraw while executing macros
|
||||
'lhistory' 'lhi' maximum number of location lists in history
|
||||
'linebreak' 'lbr' wrap long lines at a blank
|
||||
'lines' number of lines in the display
|
||||
'linespace' 'lsp' number of pixel lines to use between characters
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*syntax.txt* For Vim version 9.1. Last change: 2025 Mar 21
|
||||
*syntax.txt* For Vim version 9.1. Last change: 2025 Apr 19
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1056,8 +1056,12 @@ Variable Highlight ~
|
||||
*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
|
||||
syntax instead of objcpp
|
||||
*c_syntax_for_h* use C syntax for *.h files instead of C++/ObjC/ObjC++
|
||||
(NOTE: This variable is deprecated and no longer
|
||||
necessary, as *.h files now default to C, unless the
|
||||
file contains C++ or Objective-C syntax. If the
|
||||
automated detection fails, the default filetype can
|
||||
be adjusted using `g:filetype_h`.)
|
||||
*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
|
||||
@@ -1116,8 +1120,11 @@ the C syntax file. See |c.vim| for all the settings that are available for C.
|
||||
|
||||
By setting a variable you can tell Vim to use Ch syntax for *.h files, instead
|
||||
of C or C++: >
|
||||
:let ch_syntax_for_h = 1
|
||||
:let g:filetype_h = 'ch'
|
||||
|
||||
NOTE: In previous versions of Vim, the following (now-deprecated) variable was
|
||||
used, but is no longer the preferred approach: >
|
||||
:let ch_syntax_for_h = 1
|
||||
|
||||
CHILL *chill.vim* *ft-chill-syntax*
|
||||
|
||||
@@ -2202,12 +2209,12 @@ cycles for such a feature to become either integrated into the platform or
|
||||
withdrawn from this effort. To cater for early adopters, there is optional
|
||||
support in Vim for syntax related preview features that are implemented. You
|
||||
can request it by specifying a list of preview feature numbers as follows: >
|
||||
:let g:java_syntax_previews = [455, 476]
|
||||
:let g:java_syntax_previews = [488, 494]
|
||||
|
||||
The supported JEP numbers are to be drawn from this table:
|
||||
`430`: String Templates [JDK 21]
|
||||
`455`: Primitive types in Patterns, instanceof, and switch
|
||||
`476`: Module Import Declarations
|
||||
`488`: Primitive types in Patterns, instanceof, and switch
|
||||
`494`: Module Import Declarations
|
||||
|
||||
Note that as soon as the particular preview feature will have been integrated
|
||||
into the Java platform, its entry will be removed from the table and related
|
||||
@@ -2393,11 +2400,16 @@ Comments are also highlighted by default. You can turn this off by using: >
|
||||
|
||||
:let make_no_comments = 1
|
||||
|
||||
Microsoft Makefile handles variable expansion and comments differently
|
||||
(backslashes are not used for escape). If you see any wrong highlights
|
||||
because of this, you can try this: >
|
||||
There are various Make implementations, which add extensions other than the
|
||||
POSIX specification and thus are mutually incompatible. If the filename is
|
||||
BSDmakefile or GNUmakefile, the corresponding implementation is automatically
|
||||
determined; otherwise vim tries to detect it by the file contents. If you see
|
||||
any wrong highlights because of this, you can enforce a flavor by setting one
|
||||
of the following: >
|
||||
|
||||
:let make_microsoft = 1
|
||||
:let g:make_flavor = 'bsd' " or
|
||||
:let g:make_flavor = 'gnu' " or
|
||||
:let g:make_flavor = 'microsoft'
|
||||
|
||||
|
||||
MAPLE *maple.vim* *ft-maple-syntax*
|
||||
@@ -2451,6 +2463,12 @@ have the following in your .vimrc: >
|
||||
|
||||
let filetype_m = "mma"
|
||||
|
||||
MBSYNC *mbsync.vim* *ft-mbsync-syntax*
|
||||
|
||||
The mbsync application uses a configuration file to setup mailboxes names,
|
||||
user and password. All files ending with `.mbsyncrc` or with the name
|
||||
`isyncrc` will be recognized as mbsync configuration files.
|
||||
|
||||
MEDIAWIKI *ft-mediawiki-syntax*
|
||||
|
||||
By default, syntax highlighting includes basic HTML tags like style and
|
||||
@@ -5832,6 +5850,9 @@ DiffChange Diff mode: Changed line. |diff.txt|
|
||||
DiffDelete Diff mode: Deleted line. |diff.txt|
|
||||
*hl-DiffText*
|
||||
DiffText Diff mode: Changed text within a changed line. |diff.txt|
|
||||
*hl-DiffTextAdd*
|
||||
DiffTextAdd Diff mode: Added text within a changed line. Linked to
|
||||
|hl-DiffText| by default. |diff.txt|
|
||||
*hl-EndOfBuffer*
|
||||
EndOfBuffer Filler lines (~) after the last line in the buffer.
|
||||
By default, this is highlighted like |hl-NonText|.
|
||||
|
||||
@@ -134,6 +134,8 @@ $quote eval.txt /*$quote*
|
||||
'ch' options.txt /*'ch'*
|
||||
'character' intro.txt /*'character'*
|
||||
'charconvert' options.txt /*'charconvert'*
|
||||
'chi' options.txt /*'chi'*
|
||||
'chistory' options.txt /*'chistory'*
|
||||
'ci' options.txt /*'ci'*
|
||||
'cia' options.txt /*'cia'*
|
||||
'cin' options.txt /*'cin'*
|
||||
@@ -463,6 +465,8 @@ $quote eval.txt /*$quote*
|
||||
'lazyredraw' options.txt /*'lazyredraw'*
|
||||
'lbr' options.txt /*'lbr'*
|
||||
'lcs' options.txt /*'lcs'*
|
||||
'lhi' options.txt /*'lhi'*
|
||||
'lhistory' options.txt /*'lhistory'*
|
||||
'linebreak' options.txt /*'linebreak'*
|
||||
'lines' options.txt /*'lines'*
|
||||
'linespace' options.txt /*'linespace'*
|
||||
@@ -843,6 +847,7 @@ $quote eval.txt /*$quote*
|
||||
'pm' options.txt /*'pm'*
|
||||
'pmbcs' options.txt /*'pmbcs'*
|
||||
'pmbfn' options.txt /*'pmbfn'*
|
||||
'pmw' options.txt /*'pmw'*
|
||||
'popt' options.txt /*'popt'*
|
||||
'pp' options.txt /*'pp'*
|
||||
'preserveindent' options.txt /*'preserveindent'*
|
||||
@@ -860,6 +865,7 @@ $quote eval.txt /*$quote*
|
||||
'prompt' options.txt /*'prompt'*
|
||||
'pt' options.txt /*'pt'*
|
||||
'pumheight' options.txt /*'pumheight'*
|
||||
'pummaxwidth' options.txt /*'pummaxwidth'*
|
||||
'pumwidth' options.txt /*'pumwidth'*
|
||||
'pvh' options.txt /*'pvh'*
|
||||
'pvp' options.txt /*'pvp'*
|
||||
@@ -2186,6 +2192,7 @@ $quote eval.txt /*$quote*
|
||||
:TermdebugCommand terminal.txt /*:TermdebugCommand*
|
||||
:Texplore pi_netrw.txt /*:Texplore*
|
||||
:Tutor pi_tutor.txt /*:Tutor*
|
||||
:URLOpen eval.txt /*:URLOpen*
|
||||
:Until terminal.txt /*:Until*
|
||||
:Up terminal.txt /*:Up*
|
||||
:UseVimball pi_vimball.txt /*:UseVimball*
|
||||
@@ -4072,6 +4079,7 @@ Cmdline-mode cmdline.txt /*Cmdline-mode*
|
||||
CmdlineChanged autocmd.txt /*CmdlineChanged*
|
||||
CmdlineEnter autocmd.txt /*CmdlineEnter*
|
||||
CmdlineLeave autocmd.txt /*CmdlineLeave*
|
||||
CmdlineLeavePre autocmd.txt /*CmdlineLeavePre*
|
||||
CmdwinEnter autocmd.txt /*CmdwinEnter*
|
||||
CmdwinLeave autocmd.txt /*CmdwinLeave*
|
||||
ColorScheme autocmd.txt /*ColorScheme*
|
||||
@@ -4619,6 +4627,7 @@ E1538 eval.txt /*E1538*
|
||||
E1539 vim9.txt /*E1539*
|
||||
E154 helphelp.txt /*E154*
|
||||
E1540 eval.txt /*E1540*
|
||||
E1541 vi_diff.txt /*E1541*
|
||||
E155 sign.txt /*E155*
|
||||
E156 sign.txt /*E156*
|
||||
E157 sign.txt /*E157*
|
||||
@@ -6560,6 +6569,7 @@ close_cb channel.txt /*close_cb*
|
||||
closure eval.txt /*closure*
|
||||
cmdarg-variable eval.txt /*cmdarg-variable*
|
||||
cmdbang-variable eval.txt /*cmdbang-variable*
|
||||
cmdcomplete_info() builtin.txt /*cmdcomplete_info()*
|
||||
cmdline-arguments vi_diff.txt /*cmdline-arguments*
|
||||
cmdline-changed version5.txt /*cmdline-changed*
|
||||
cmdline-completion cmdline.txt /*cmdline-completion*
|
||||
@@ -7380,12 +7390,14 @@ ft-fvwm-syntax syntax.txt /*ft-fvwm-syntax*
|
||||
ft-gdscript-plugin filetype.txt /*ft-gdscript-plugin*
|
||||
ft-gitcommit-plugin filetype.txt /*ft-gitcommit-plugin*
|
||||
ft-gitrebase-plugin filetype.txt /*ft-gitrebase-plugin*
|
||||
ft-gleam-plugin filetype.txt /*ft-gleam-plugin*
|
||||
ft-go-plugin filetype.txt /*ft-go-plugin*
|
||||
ft-gprof-plugin filetype.txt /*ft-gprof-plugin*
|
||||
ft-groff-syntax syntax.txt /*ft-groff-syntax*
|
||||
ft-gsp-syntax syntax.txt /*ft-gsp-syntax*
|
||||
ft-hare filetype.txt /*ft-hare*
|
||||
ft-haskell-syntax syntax.txt /*ft-haskell-syntax*
|
||||
ft-help-omni helphelp.txt /*ft-help-omni*
|
||||
ft-html-indent indent.txt /*ft-html-indent*
|
||||
ft-html-omni insert.txt /*ft-html-omni*
|
||||
ft-html-syntax syntax.txt /*ft-html-syntax*
|
||||
@@ -7421,6 +7433,7 @@ ft-markdown-syntax syntax.txt /*ft-markdown-syntax*
|
||||
ft-masm-syntax syntax.txt /*ft-masm-syntax*
|
||||
ft-mathematica-syntax syntax.txt /*ft-mathematica-syntax*
|
||||
ft-matlab-indent indent.txt /*ft-matlab-indent*
|
||||
ft-mbsync-syntax syntax.txt /*ft-mbsync-syntax*
|
||||
ft-mediawiki-syntax syntax.txt /*ft-mediawiki-syntax*
|
||||
ft-metafont ft_mp.txt /*ft-metafont*
|
||||
ft-metafont-intro ft_mp.txt /*ft-metafont-intro*
|
||||
@@ -7757,7 +7770,6 @@ g:netrw_sshport pi_netrw.txt /*g:netrw_sshport*
|
||||
g:netrw_timefmt pi_netrw.txt /*g:netrw_timefmt*
|
||||
g:netrw_tmpfile_escape pi_netrw.txt /*g:netrw_tmpfile_escape*
|
||||
g:netrw_uid pi_netrw.txt /*g:netrw_uid*
|
||||
g:netrw_use_errorwindow pi_netrw.txt /*g:netrw_use_errorwindow*
|
||||
g:netrw_use_noswf pi_netrw.txt /*g:netrw_use_noswf*
|
||||
g:netrw_use_nt_rcp pi_netrw.txt /*g:netrw_use_nt_rcp*
|
||||
g:netrw_usetab pi_netrw.txt /*g:netrw_usetab*
|
||||
@@ -8205,6 +8217,7 @@ hl-DiffAdd syntax.txt /*hl-DiffAdd*
|
||||
hl-DiffChange syntax.txt /*hl-DiffChange*
|
||||
hl-DiffDelete syntax.txt /*hl-DiffDelete*
|
||||
hl-DiffText syntax.txt /*hl-DiffText*
|
||||
hl-DiffTextAdd syntax.txt /*hl-DiffTextAdd*
|
||||
hl-Directory syntax.txt /*hl-Directory*
|
||||
hl-EndOfBuffer syntax.txt /*hl-EndOfBuffer*
|
||||
hl-ErrorMsg syntax.txt /*hl-ErrorMsg*
|
||||
@@ -8844,6 +8857,7 @@ matlab-indent indent.txt /*matlab-indent*
|
||||
matlab-indenting indent.txt /*matlab-indenting*
|
||||
max() builtin.txt /*max()*
|
||||
maxcol-variable eval.txt /*maxcol-variable*
|
||||
mbsync.vim syntax.txt /*mbsync.vim*
|
||||
mbyte-IME mbyte.txt /*mbyte-IME*
|
||||
mbyte-XIM mbyte.txt /*mbyte-XIM*
|
||||
mbyte-combining mbyte.txt /*mbyte-combining*
|
||||
@@ -9444,6 +9458,7 @@ package-hlyank usr_05.txt /*package-hlyank*
|
||||
package-justify usr_25.txt /*package-justify*
|
||||
package-matchit usr_05.txt /*package-matchit*
|
||||
package-nohlsearch usr_05.txt /*package-nohlsearch*
|
||||
package-open eval.txt /*package-open*
|
||||
package-termdebug terminal.txt /*package-termdebug*
|
||||
package-translate_example repeat.txt /*package-translate_example*
|
||||
package-translation repeat.txt /*package-translation*
|
||||
@@ -9522,6 +9537,7 @@ phtml.vim syntax.txt /*phtml.vim*
|
||||
pi_getscript.txt pi_getscript.txt /*pi_getscript.txt*
|
||||
pi_gzip.txt pi_gzip.txt /*pi_gzip.txt*
|
||||
pi_logipat.txt pi_logipat.txt /*pi_logipat.txt*
|
||||
pi_netrw.txt pi_netrw.txt /*pi_netrw.txt*
|
||||
pi_paren.txt pi_paren.txt /*pi_paren.txt*
|
||||
pi_spec.txt pi_spec.txt /*pi_spec.txt*
|
||||
pi_tar.txt pi_tar.txt /*pi_tar.txt*
|
||||
@@ -9683,6 +9699,7 @@ python-2-and-3 if_pyth.txt /*python-2-and-3*
|
||||
python-Dictionary if_pyth.txt /*python-Dictionary*
|
||||
python-Function if_pyth.txt /*python-Function*
|
||||
python-List if_pyth.txt /*python-List*
|
||||
python-Tuple if_pyth.txt /*python-Tuple*
|
||||
python-VIM_SPECIAL_PATH if_pyth.txt /*python-VIM_SPECIAL_PATH*
|
||||
python-_get_paths if_pyth.txt /*python-_get_paths*
|
||||
python-bindeval if_pyth.txt /*python-bindeval*
|
||||
@@ -9760,6 +9777,7 @@ quickfix-pandoc quickfix.txt /*quickfix-pandoc*
|
||||
quickfix-parse quickfix.txt /*quickfix-parse*
|
||||
quickfix-perl quickfix.txt /*quickfix-perl*
|
||||
quickfix-size quickfix.txt /*quickfix-size*
|
||||
quickfix-stack quickfix.txt /*quickfix-stack*
|
||||
quickfix-title quickfix.txt /*quickfix-title*
|
||||
quickfix-valid quickfix.txt /*quickfix-valid*
|
||||
quickfix-window quickfix.txt /*quickfix-window*
|
||||
@@ -10666,6 +10684,7 @@ tar-contents pi_tar.txt /*tar-contents*
|
||||
tar-copyright pi_tar.txt /*tar-copyright*
|
||||
tar-history pi_tar.txt /*tar-history*
|
||||
tar-manual pi_tar.txt /*tar-manual*
|
||||
tar-mappings pi_tar.txt /*tar-mappings*
|
||||
tar-options pi_tar.txt /*tar-options*
|
||||
tar-usage pi_tar.txt /*tar-usage*
|
||||
tcl if_tcl.txt /*tcl*
|
||||
@@ -10931,6 +10950,7 @@ tuple-concatenation eval.txt /*tuple-concatenation*
|
||||
tuple-functions usr_41.txt /*tuple-functions*
|
||||
tuple-identity eval.txt /*tuple-identity*
|
||||
tuple-index eval.txt /*tuple-index*
|
||||
tuple-modification eval.txt /*tuple-modification*
|
||||
tuple-type vim9.txt /*tuple-type*
|
||||
tuple2list() builtin.txt /*tuple2list()*
|
||||
tutor usr_01.txt /*tutor*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*testing.txt* For Vim version 9.1. Last change: 2025 Mar 23
|
||||
*testing.txt* For Vim version 9.1. Last change: 2025 Mar 25
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -68,7 +68,7 @@ test_feedinput({string}) *test_feedinput()*
|
||||
|
||||
|
||||
test_garbagecollect_now() *test_garbagecollect_now()*
|
||||
Like garbagecollect(), but executed right away. This must
|
||||
Like |garbagecollect()|, but executed right away. This must
|
||||
only be called directly to avoid any structure to exist
|
||||
internally, and |v:testing| must have been set before calling
|
||||
any function. *E1142*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 9.1. Last change: 2025 Mar 08
|
||||
*todo.txt* For Vim version 9.1. Last change: 2025 Mar 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -357,8 +357,6 @@ https://github.com/vim/vim/pull/5566
|
||||
|
||||
PR #11579 to add visualtext(), return Visually selected text.
|
||||
|
||||
PR #12032: Support Python 3 stable ABI.
|
||||
|
||||
PR #11860: Add more info to 'colorcolumn': display a character and highlight
|
||||
for each separate entry. Disadvantage: option value gets very complicated
|
||||
with multiple entries, e.g. every 8 columns.
|
||||
@@ -706,8 +704,6 @@ find them. (Max Kukartsev, #6218)
|
||||
|
||||
Enable 'termbidi' if $VTE_VERSION >= 5703 ?
|
||||
|
||||
Python 3.8 doesn't work. (Antonios Hadjigeorgalis, #5509)
|
||||
|
||||
"--cleanFOO" does not result in an error. (#5537)
|
||||
|
||||
Output from assert_equalfile() doesn't give a hint about what's different.
|
||||
@@ -1490,8 +1486,6 @@ github with a URL like this:
|
||||
https://github.com/vim/vim/compare/v7.4.920%5E...v7.4.920.diff
|
||||
Diff for version.c contains more context, can't skip a patch.
|
||||
|
||||
Python: ":py raw_input('prompt')" doesn't work. (Manu Hack)
|
||||
|
||||
Comparing nested structures with "==" uses a different comparator than when
|
||||
comparing individual items.
|
||||
|
||||
@@ -1514,9 +1508,6 @@ C highlighting: modern C allows: /* comment */ #ifdef
|
||||
and also line continuation after #include.
|
||||
I can't recommend it though.
|
||||
|
||||
Build with Python on Mac does not always use the right library.
|
||||
(Kazunobu Kuriyama, 2015 Mar 28)
|
||||
|
||||
To support Thai (and other languages) word boundaries, include the ICU
|
||||
library: http://userguide.icu-project.org/boundaryanalysis
|
||||
|
||||
@@ -1793,13 +1784,6 @@ Problem with refresh:always in completion. (Tyler Wade, 2013 Mar 17)
|
||||
b:undo_ftplugin cannot call a script-local function. (Boris Danilov, 2013 Jan
|
||||
7)
|
||||
|
||||
Win32: The Python interface only works with one version of Python, selected at
|
||||
compile time. Can this be made to work with version 2.1 and 2.2 dynamically?
|
||||
|
||||
Python: Be able to define a Python function that can be called directly from
|
||||
Vim script. Requires converting the arguments and return value, like with
|
||||
vim.bindeval().
|
||||
|
||||
Patch for :tabcloseleft, after closing a tab go to left tab. (William Bowers,
|
||||
2012 Aug 4)
|
||||
|
||||
@@ -2912,6 +2896,20 @@ Quickfix/Location List:
|
||||
7 Add a command that goes back to the position from before jumping to the
|
||||
first quickfix location.
|
||||
|
||||
|
||||
Python Interface:
|
||||
- Python 3.8 doesn't work. (Antonios Hadjigeorgalis, #5509)
|
||||
- Python: ":py raw_input('prompt')" doesn't work. (Manu Hack)
|
||||
- Build with Python on Mac does not always use the right library.
|
||||
(Kazunobu Kuriyama, 2015 Mar 28)
|
||||
- Win32: The Python interface only works with one version of Python,
|
||||
selected at compile time. Can this be made to work with version 2.1 and
|
||||
2.2 dynamically?
|
||||
- Be able to define a Python function that can be called directly from Vim
|
||||
script. Requires converting the arguments and return value, like with
|
||||
vim.bindeval().
|
||||
|
||||
|
||||
Vi incompatibility:
|
||||
- Try new POSIX tests, made after my comments. (Geoff Clare, 2005 April 7)
|
||||
Version 1.5 is in ~/src/posix/1.5. (Lynne Canal)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_05.txt* For Vim version 9.1. Last change: 2025 Mar 22
|
||||
*usr_05.txt* For Vim version 9.1. Last change: 2025 Apr 10
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -307,23 +307,27 @@ This switches on three very clever mechanisms:
|
||||
filetypes. See |:filetype-indent-on| and 'indentexpr'.
|
||||
|
||||
|
||||
*restore-cursor* *last-position-jump* >
|
||||
*restore-cursor* *last-position-jump* >vim
|
||||
augroup RestoreCursor
|
||||
autocmd!
|
||||
autocmd BufReadPost *
|
||||
\ let line = line("'\"")
|
||||
\ | if line >= 1 && line <= line("$") && &filetype !~# 'commit'
|
||||
\ && index(['xxd', 'gitrebase'], &filetype) == -1
|
||||
\ && !&diff
|
||||
\ | execute "normal! g`\""
|
||||
\ | endif
|
||||
augroup END
|
||||
|
||||
Another autocommand. This time it is used after reading any file. The
|
||||
complicated stuff after it checks if the '" mark is defined, and jumps to it
|
||||
if so. It doesn't do that for a commit or rebase message, which are likely
|
||||
a different one than last time, and when using xxd(1) to filter and edit
|
||||
binary files, which transforms input files back and forth, causing them to
|
||||
have dual nature, so to speak. See also |using-xxd|.
|
||||
if so. It doesn't do that when:
|
||||
- editing a commit or rebase message, which are likely a different one than
|
||||
last time,
|
||||
- using xxd(1) to filter and edit binary files, which transforms input files
|
||||
back and forth, causing them to have dual nature, so to speak (see also
|
||||
|using-xxd|) and
|
||||
- Vim is in diff mode
|
||||
|
||||
The backslash at the start of a line is used to continue the command from the
|
||||
previous line. That avoids a line getting very long. See |line-continuation|.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_41.txt* For Vim version 9.1. Last change: 2025 Mar 23
|
||||
*usr_41.txt* For Vim version 9.1. Last change: 2025 Apr 21
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -862,7 +862,7 @@ Tuple manipulation: *tuple-functions*
|
||||
reverse() reverse the order of items in a Tuple
|
||||
slice() take a slice of a Tuple
|
||||
string() string representation of a Tuple
|
||||
tuple2list() convert a Tuple of items into a list
|
||||
tuple2list() convert a Tuple into a List
|
||||
|
||||
Dictionary manipulation: *dict-functions*
|
||||
get() get an entry without an error for a wrong key
|
||||
@@ -1111,6 +1111,7 @@ Command line: *command-line-functions*
|
||||
getcmdwintype() return the current command-line window type
|
||||
getcompletion() list of command-line completion matches
|
||||
fullcommand() get full command name
|
||||
cmdcomplete_info() get command-line completion information
|
||||
|
||||
Quickfix and location lists: *quickfix-functions*
|
||||
getqflist() list of quickfix errors
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*various.txt* For Vim version 9.1. Last change: 2025 Feb 13
|
||||
*various.txt* For Vim version 9.1. Last change: 2025 Apr 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -98,7 +98,9 @@ g8 Print the hex values of the bytes used in the
|
||||
|
||||
*:p* *:pr* *:print* *E749*
|
||||
:[range]p[rint] [flags]
|
||||
Print [range] lines (default current line).
|
||||
Print [range] lines (default current line). Can also
|
||||
be spelled `:[range]|` due to Vi compatibility (see
|
||||
|:bar|). Gives an error in an empty buffer.
|
||||
Note: If you are looking for a way to print your text
|
||||
on paper see |:hardcopy|. In the GUI you can use the
|
||||
File.Print menu entry.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*version9.txt* For Vim version 9.1. Last change: 2025 Mar 23
|
||||
*version9.txt* For Vim version 9.1. Last change: 2025 Apr 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -41553,6 +41553,18 @@ Enum support for Vim9 script |:enum|
|
||||
|
||||
Support for protected _new() method
|
||||
|
||||
Add support for object<{type}> as variable data type |vim9-types|
|
||||
|
||||
Diff mode ~
|
||||
---------
|
||||
Include the "linematch" algorithm for the 'diffopt' setting. This aligns
|
||||
changes between buffers on similar lines improving the diff highlighting in
|
||||
Vim
|
||||
|
||||
Improve the diff highlighting for changes within a line. Configurable using
|
||||
the "inline" sub option value for the 'diffopt' setting, with "inline:simple"
|
||||
being added to the default "diffopt" value (but this does not change how diff
|
||||
mode works).
|
||||
*new-other-9.2*
|
||||
Other new features ~
|
||||
------------------
|
||||
@@ -41570,10 +41582,6 @@ Support highlighting the matched text and the completion kind for insert-mode
|
||||
completion and command-line completion in |ins-completion-menu|, see
|
||||
|complete-items|
|
||||
|
||||
Include the "linematch" algorithm for the 'diffopt' setting. This aligns
|
||||
changes between buffers on similar lines improving the diff highlighting in
|
||||
Vim
|
||||
|
||||
Support for the |Tuple| data type in Vim script and Vim9 script.
|
||||
|
||||
*changed-9.2*
|
||||
@@ -41586,11 +41594,10 @@ Default values: ~
|
||||
- the default 'backspace' option for Vim has been set to "indent,eol,start"
|
||||
and removed from |defaults.vim|
|
||||
- the default fontsize for the GTK builds of Vim (Windows and Unix) has been
|
||||
increased to 12pt to accomodate modern high-dpi monitors
|
||||
increased to 12pt to accommodate modern high-dpi monitors
|
||||
- the default value of the 'keyprotocol' option has been updated and support
|
||||
for the ghostty terminal emulator (using kitty protocol) has been added
|
||||
|
||||
|
||||
Completion: ~
|
||||
- allow to complete directories from 'cdpath' for |:cd| and similar commands,
|
||||
add the "cd_in_path" completion type for e.g. |:command-complete| and
|
||||
@@ -41606,10 +41613,17 @@ Completion: ~
|
||||
- New option value for 'completeopt':
|
||||
"nosort" - do not sort completion results
|
||||
"preinsert" - highlight to be inserted values
|
||||
- handle multi-line completion as expected
|
||||
"nearest" - sort completion results by distance to cursor
|
||||
- handle multi-line completion items as expected
|
||||
- improved commandline completion for the |:hi| command
|
||||
- New option value for 'wildmode':
|
||||
"noselect" - do not auto select an entry in the wildmenu
|
||||
- New flags for 'complete':
|
||||
"f{func}" - complete using given function
|
||||
"f" - complete using 'completefunc'
|
||||
"o" - complete using 'omnifunc'
|
||||
- allow to limit matches for the 'complete' sources by using the
|
||||
"{flag}^<limit>" notation
|
||||
|
||||
Options: ~
|
||||
- the default for 'commentstring' contains whitespace padding to have
|
||||
@@ -41622,6 +41636,9 @@ Options: ~
|
||||
- 'rulerformat' now supports the |stl-%!| item
|
||||
- use 'smoothscroll' logic for CTRL-F / CTRL-B for pagewise scrolling
|
||||
and CTRL-D / CTRL-U for half-pagewise scrolling
|
||||
- New option value for 'fillchars':
|
||||
"trunc" - configure truncation indicator, 'pummaxwidth'
|
||||
"truncrl" - like "trunc" but in 'rl' mode, 'pummaxwidth'
|
||||
|
||||
Ex commands: ~
|
||||
- allow to specify a priority when defining a new sign |:sign-define|
|
||||
@@ -41668,6 +41685,7 @@ Functions: ~
|
||||
|base64_encode()| encode a blob into a base64 string
|
||||
|blob2str()| convert a blob into a List of strings
|
||||
|bindtextdomain()| set message lookup translation base path
|
||||
|cmdcomplete_info()| get current cmdline completion info
|
||||
|diff()| diff two Lists of strings
|
||||
|filecopy()| copy a file {from} to {to}
|
||||
|foreach()| apply function to List items
|
||||
@@ -41691,6 +41709,7 @@ Functions: ~
|
||||
|
||||
Autocommands: ~
|
||||
|
||||
|CmdlineLeavePre| before preparing to leave the command line
|
||||
|CursorMovedC| after the cursor was moved in the command-line
|
||||
|KeyInputPre| before processing any key event in any mode
|
||||
|SessionWritePost| after writing the session file |:mksession|
|
||||
@@ -41702,7 +41721,8 @@ Autocommands: ~
|
||||
|
||||
Highlighting: ~
|
||||
|
||||
|hl-ComplMatchIns| matched text of the currently inserted completion.
|
||||
|hl-ComplMatchIns| matched text of the currently inserted completion
|
||||
|hl-DiffTextAdd| added text within a changed line
|
||||
|hl-MsgArea| highlighting of the Command-line and messages area
|
||||
|hl-PmenuMatch| Popup menu: highlighting of matched text
|
||||
|hl-PmenuMatchSel| Popup menu: highlighting of matched text in selected
|
||||
@@ -41720,18 +41740,21 @@ Ex-Commands: ~
|
||||
|
||||
Options: ~
|
||||
|
||||
'completefuzzycollect' Enable fuzzy collection of candiates for (some)
|
||||
'chistory' Size of the quickfix stack |quickfix-stack|.
|
||||
'completefuzzycollect' Enable fuzzy collection of candidates for (some)
|
||||
|ins-completion| modes
|
||||
'completeitemalign' Order of |complete-items| in Insert mode completion
|
||||
popup
|
||||
'eventignorewin' autocommand events that are ignored in a window
|
||||
'findfunc' Vim function to obtain the results for a |:find|
|
||||
command
|
||||
'lhistory' Size of the location list stack |quickfix-stack|.
|
||||
'messagesopt' configure |:messages| and |hit-enter| prompt
|
||||
'winfixbuf' Keep buffer focused in a window
|
||||
'pummaxwidth' maximum width for the completion popup menu
|
||||
'tabclose' Which tab page to focus after closing a tab page
|
||||
't_xo' Terminal uses XON/XOFF handshaking (e.g. vt420)
|
||||
't_CF' Support for alternate font highlighting terminal code
|
||||
'winfixbuf' Keep buffer focused in a window
|
||||
|
||||
==============================================================================
|
||||
INCOMPATIBLE CHANGES *incompatible-9.2*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*vi_diff.txt* For Vim version 9.1. Last change: 2024 Nov 10
|
||||
*vi_diff.txt* For Vim version 9.1. Last change: 2025 Mar 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -91,8 +91,11 @@ Maximum display width Unix and Win32: 1024 characters, otherwise 255
|
||||
Maximum lhs of a mapping 50 characters.
|
||||
Number of different highlighting types: over 30000
|
||||
Range of a Number variable: -2147483648 to 2147483647 (might be more on 64
|
||||
bit systems)
|
||||
bit systems) See also: |v:numbermax|,
|
||||
|v:numbermin| and |v:numbersize|
|
||||
Maximum length of a line in a tags file: 512 bytes.
|
||||
*E1541*
|
||||
Maximum value for |/\U| and |/\%U|: 2147483647 (for 32bit integer).
|
||||
|
||||
Information for undo and text in registers is kept in memory, thus when making
|
||||
(big) changes the amount of (virtual) memory available limits the number of
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*vim9.txt* For Vim version 9.1. Last change: 2025 Mar 23
|
||||
*vim9.txt* For Vim version 9.1. Last change: 2025 Apr 18
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1467,6 +1467,7 @@ The following builtin types are supported:
|
||||
blob
|
||||
list<{type}>
|
||||
dict<{type}>
|
||||
object<{type}>
|
||||
job
|
||||
channel
|
||||
tuple<{type}>
|
||||
@@ -1492,11 +1493,11 @@ tuple<number> a tuple with a single item of type |Number|
|
||||
tuple<number, string> a tuple with two items of type |Number| and
|
||||
|String|
|
||||
tuple<number, float, bool> a tuple with three items of type |Number|,
|
||||
|Float| and |Boolean|.
|
||||
|Float| and |Boolean|
|
||||
tuple<...list<number>> a variadic tuple with zero or more items of
|
||||
type |Number|.
|
||||
type |Number|
|
||||
tuple<number, ...list<string>> a tuple with an item of type |Number| followed
|
||||
by zero or more items of type |String|.
|
||||
by zero or more items of type |String|
|
||||
|
||||
Examples: >
|
||||
var myTuple: tuple<number> = (20,)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*vim9class.txt* For Vim version 9.1. Last change: 2025 Feb 16
|
||||
*vim9class.txt* For Vim version 9.1. Last change: 2025 Apr 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -641,8 +641,8 @@ class, then the type of the variable is set.
|
||||
|
||||
The following reserved keyword names cannot be used as an object or class
|
||||
variable name: "super", "this", "true", "false", "null", "null_blob",
|
||||
"null_dict", "null_function", "null_list", "null_partial", "null_string",
|
||||
"null_channel" and "null_job".
|
||||
"null_channel", "null_class", "null_dict", "null_function", "null_job",
|
||||
"null_list", "null_object", "null_partial" and "null_string".
|
||||
|
||||
Extending a class ~
|
||||
*extends*
|
||||
@@ -1067,6 +1067,21 @@ The above enum definition is equivalent to the following class definition: >
|
||||
public const ordinal: number
|
||||
endclass
|
||||
<
|
||||
A enum can contain object variables and methods just like a regular class: >
|
||||
|
||||
enum Color
|
||||
Cyan([0, 255, 255]),
|
||||
Magenta([255, 0, 255]),
|
||||
Gray([128, 128, 128])
|
||||
|
||||
var rgb_values: list<number>
|
||||
|
||||
def Get_RGB(): list<number>
|
||||
return this.rgb_values
|
||||
enddef
|
||||
endenum
|
||||
echo Color.Magenta.Get_RGB()
|
||||
<
|
||||
==============================================================================
|
||||
|
||||
9. Rationale
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types
|
||||
"
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2025 Mar 18
|
||||
" Last Change: 2025 Apr 21
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" Listen very carefully, I will say this only once
|
||||
@@ -53,7 +53,7 @@ endfunc
|
||||
|
||||
" Vim help file, set ft explicitly, because 'modeline' might be off
|
||||
au BufNewFile,BufRead */doc/*.txt
|
||||
\ if getline('$') =~ '\(^\|\s\)vim:.*\<\(ft\|filetype\)=help\>'
|
||||
\ if getline('$') =~ '\%(^\|\s\)vim:\%(.*\%(:\|\s\)\)\?\%(ft\|filetype\)=help\%(:\|\s\|$\)'
|
||||
\| setf help
|
||||
\| endif
|
||||
|
||||
@@ -429,13 +429,15 @@ if has("fname_case")
|
||||
au BufNewFile,BufRead *.C,*.H if !&fileignorecase | setf cpp | endif
|
||||
endif
|
||||
|
||||
" MS files (ixx: C++ module interface file, Microsoft Project file)
|
||||
au BufNewFile,BufRead *.ixx,*.mpp setf cpp
|
||||
|
||||
" C++ 20 modules (clang)
|
||||
" https://clang.llvm.org/docs/StandardCPlusPlusModules.html#file-name-requirement
|
||||
au BufNewFile,BufRead *.cppm,*.ccm,*.cxxm,*.c++m setf cpp
|
||||
|
||||
" .h files can be C, Ch C++, ObjC or ObjC++.
|
||||
" Set c_syntax_for_h if you want C, ch_syntax_for_h if you want Ch. ObjC is
|
||||
" detected automatically.
|
||||
" .h files can be C, C++, Ch, Objective-C, or Objective-C++.
|
||||
" Set g_filetype_h to set a different filetype
|
||||
au BufNewFile,BufRead *.h call dist#ft#FTheader()
|
||||
|
||||
" Ch (CHscript)
|
||||
@@ -561,6 +563,9 @@ au BufNewFile,BufRead *.cu,*.cuh setf cuda
|
||||
" Cue
|
||||
au BufNewFile,BufRead *.cue setf cue
|
||||
|
||||
" DAX
|
||||
au BufNewFile,BufRead *.dax setf dax
|
||||
|
||||
" Debian devscripts
|
||||
au BufNewFile,BufRead devscripts.conf,.devscripts setf sh
|
||||
|
||||
@@ -1551,7 +1556,7 @@ au BufNewFile,BufRead *.nb,*.wl setf mma
|
||||
au BufNewFile,BufRead *.mel setf mel
|
||||
|
||||
" mbsync
|
||||
au BufNewFile,BufRead .mbsyncrc setf conf
|
||||
au BufNewFile,BufRead *.mbsyncrc,isyncrc setf mbsync
|
||||
|
||||
" mcmeta
|
||||
au BufNewFile,BufRead *.mcmeta setf json
|
||||
@@ -1723,7 +1728,7 @@ au BufNewFile,BufRead *.me
|
||||
\ setf nroff |
|
||||
\ endif
|
||||
au BufNewFile,BufRead *.tr,*.nr,*.roff,*.tmac,*.mom setf nroff
|
||||
au BufNewFile,BufRead *.[1-9] call dist#ft#FTnroff()
|
||||
au BufNewFile,BufRead *.[0-9],*.[013]p,*.[1-8]x,*.3{am,perl,pm,posix,type},*.n call dist#ft#FTnroff()
|
||||
|
||||
" Nroff or Objective C++
|
||||
au BufNewFile,BufRead *.mm call dist#ft#FTmm()
|
||||
@@ -1777,6 +1782,9 @@ au BufNewFile,BufRead .ondirrc setf ondir
|
||||
" OPAM
|
||||
au BufNewFile,BufRead opam,*.opam,*.opam.template,opam.locked,*.opam.locked setf opam
|
||||
|
||||
" OpenAL Soft config files
|
||||
au BufNewFile,BufRead .alsoftrc,alsoft.conf,alsoft.ini,alsoftrc.sample setf dosini
|
||||
|
||||
" OpenFOAM
|
||||
au BufNewFile,BufRead [a-zA-Z0-9]*Dict\(.*\)\=,[a-zA-Z]*Properties\(.*\)\=,*Transport\(.*\),fvSchemes,fvSolution,fvConstrains,fvModels,*/constant/g,*/0\(\.orig\)\=/* call dist#ft#FTfoam()
|
||||
|
||||
@@ -1964,6 +1972,9 @@ au BufNewFile,BufRead *.ps1,*.psd1,*.psm1,*.pssc setf ps1
|
||||
au BufNewFile,BufRead *.ps1xml setf ps1xml
|
||||
au BufNewFile,BufRead *.cdxml,*.psc1 setf xml
|
||||
|
||||
" Power Query M
|
||||
au BufNewFile,BufRead *.pq setf pq
|
||||
|
||||
" Printcap and Termcap
|
||||
au BufNewFile,BufRead *printcap
|
||||
\ let b:ptcap_type = "print" | setf ptcap
|
||||
@@ -3180,7 +3191,7 @@ au BufNewFile,BufRead */etc/sensors.d/[^.]* call s:StarSetf('sensors')
|
||||
au BufNewFile,BufRead */etc/logcheck/*.d*/* call s:StarSetf('logcheck')
|
||||
|
||||
" Makefile
|
||||
au BufNewFile,BufRead [mM]akefile* call s:StarSetf('make')
|
||||
au BufNewFile,BufRead [mM]akefile* if expand('<afile>:t') !~ g:ft_ignore_pat | call dist#ft#FTmake() | endif
|
||||
|
||||
" Ruby Makefile
|
||||
au BufNewFile,BufRead [rR]akefile* call s:StarSetf('ruby')
|
||||
|
||||
16
runtime/ftplugin/dax.vim
Normal file
16
runtime/ftplugin/dax.vim
Normal file
@@ -0,0 +1,16 @@
|
||||
" Vim filetype plugin
|
||||
" Language: Data Analysis Expressions (DAX)
|
||||
" Maintainer: Anarion Dunedain <anarion80@gmail.com>
|
||||
" Last Change: 2025 Apr 2
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
|
||||
|
||||
setlocal commentstring=//\ %s
|
||||
|
||||
let b:undo_ftplugin = 'setl com< cms<'
|
||||
@@ -2,9 +2,12 @@
|
||||
" Language: fstab file
|
||||
" Maintainer: Radu Dineiu <radu.dineiu@gmail.com>
|
||||
" URL: https://raw.github.com/rid9/vim-fstab/master/ftplugin/fstab.vim
|
||||
" Last Change: 2021 Jan 02
|
||||
" 2024 May 23 by Riley Bruins <ribru17@gmail.com> ('commentstring')
|
||||
" Version: 1.0
|
||||
" Last Change: 2025 Mar 31
|
||||
" Version: 1.0.1
|
||||
"
|
||||
" Changelog:
|
||||
" - 2024 May 23 by Riley Bruins <ribru17@gmail.com> ('commentstring')
|
||||
" - 2025 Mar 31 added setlocal formatoptions-=t
|
||||
"
|
||||
" Credits:
|
||||
" Subhaditya Nath <sn03.general@gmail.com>
|
||||
@@ -15,6 +18,8 @@ endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal commentstring=#\ %s
|
||||
let b:undo_ftplugin = "setlocal commentstring<"
|
||||
setlocal formatoptions-=t
|
||||
|
||||
let b:undo_ftplugin = "setlocal commentstring< formatoptions<"
|
||||
|
||||
" vim: ts=8 ft=vim
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Gleam
|
||||
" Maintainer: Trilowy (https://github.com/trilowy)
|
||||
" Last Change: 2024 Oct 13
|
||||
" Language: Gleam
|
||||
" Maintainer: Kirill Morozov <kirill@robotix.pro>
|
||||
" Previous Maintainer: Trilowy (https://github.com/trilowy)
|
||||
" Last Change: 2025 Apr 16
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
@@ -10,7 +11,15 @@ let b:did_ftplugin = 1
|
||||
|
||||
setlocal comments=://,:///,:////
|
||||
setlocal commentstring=//\ %s
|
||||
setlocal formatprg=gleam\ format\ --stdin
|
||||
|
||||
let b:undo_ftplugin = "setlocal comments< commentstring<"
|
||||
let b:undo_ftplugin = "setlocal com< cms< fp<"
|
||||
|
||||
if get(g:, "gleam_recommended_style", 1)
|
||||
setlocal expandtab
|
||||
setlocal shiftwidth=2
|
||||
setlocal softtabstop=2
|
||||
let b:undo_ftplugin ..= " | setlocal et< sw< sts<"
|
||||
endif
|
||||
|
||||
" vim: sw=2 sts=2 et
|
||||
|
||||
@@ -5,12 +5,16 @@
|
||||
" 2024 Jul 16 by Vim Project (add recommended indent style)
|
||||
" 2025 Mar 07 by Vim Project (add formatprg and keywordprg option #16804)
|
||||
" 2025 Mar 18 by Vim Project (use :term for 'keywordprg' #16911)
|
||||
" 2025 Apr 16 by Vim Project (set 'cpoptions' for line continuation, #17121)
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
setlocal formatoptions-=t
|
||||
setlocal formatprg=gofmt
|
||||
|
||||
@@ -45,4 +49,7 @@ if !exists('*' .. expand('<SID>') .. 'GoKeywordPrg')
|
||||
endfunc
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim: sw=2 sts=2 et
|
||||
|
||||
@@ -2,12 +2,16 @@
|
||||
" Language: HEEx
|
||||
" Maintainer: Mitchell Hanberg <vimNOSPAM@mitchellhanberg.com>
|
||||
" Last Change: 2022 Sep 21
|
||||
" 2025 Apr 16 by Vim Project (set 'cpoptions' for line continuation, #17121)
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
setlocal shiftwidth=2 softtabstop=2 expandtab
|
||||
|
||||
setlocal comments=:<%!--
|
||||
@@ -25,3 +29,6 @@ if exists("loaded_matchit") && !exists("b:match_words")
|
||||
\ '<\@<=\([^/!][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>'
|
||||
let b:undo_ftplugin ..= " | unlet! b:match_ignorecase b:match_words"
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Vim help file
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2018-12-29
|
||||
" Last Change: 2025 Apr 08
|
||||
" 2025 Apr 08 by Vim project (set 'omnifunc' and 'iskeyword', #17073)
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -11,12 +12,33 @@ let b:did_ftplugin = 1
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
let b:undo_ftplugin = "setl fo< tw< cole< cocu< keywordprg<"
|
||||
let b:undo_ftplugin = "setl isk< fo< tw< cole< cocu< keywordprg< omnifunc<"
|
||||
|
||||
setlocal formatoptions+=tcroql textwidth=78 keywordprg=:help
|
||||
setlocal formatoptions+=tcroql textwidth=78 keywordprg=:help omnifunc=s:HelpComplete
|
||||
let &l:iskeyword='!-~,^*,^|,^",192-255'
|
||||
if has("conceal")
|
||||
setlocal cole=2 cocu=nc
|
||||
endif
|
||||
|
||||
if !exists('*s:HelpComplete')
|
||||
func s:HelpComplete(findstart, base)
|
||||
if a:findstart
|
||||
let colnr = col('.') - 1 " Get the column number before the cursor
|
||||
let line = getline('.')
|
||||
for i in range(colnr - 1, 0, -1)
|
||||
if line[i] ==# '|'
|
||||
return i + 1 " Don't include the `|` in base
|
||||
elseif line[i] ==# "'"
|
||||
return i " Include the `'` in base
|
||||
endif
|
||||
endfor
|
||||
else
|
||||
return taglist('^' .. a:base)
|
||||
\ ->map({_, item -> #{word: item->get('name'), kind: item->get('kind')}})
|
||||
\ ->extend(getcompletion(a:base, 'help'))
|
||||
endif
|
||||
endfunc
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
22
runtime/ftplugin/lf.vim
Normal file
22
runtime/ftplugin/lf.vim
Normal file
@@ -0,0 +1,22 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: lf file manager configuration file (lfrc)
|
||||
" Maintainer: Andis Sprinkis <andis@sprinkis.com>
|
||||
" URL: https://github.com/andis-sprinkis/lf-vim
|
||||
" Last Change: 6 Apr 2025
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
let b:undo_ftplugin = "setlocal comments< commentstring< formatoptions<"
|
||||
|
||||
setlocal comments=:#
|
||||
setlocal commentstring=#\ %s
|
||||
|
||||
setlocal formatoptions-=t formatoptions+=rol
|
||||
|
||||
let &cpo = s:cpo
|
||||
unlet s:cpo
|
||||
@@ -2,7 +2,9 @@
|
||||
" Language: LambdaProlog (Teyjus)
|
||||
" Maintainer: Markus Mottl <markus.mottl@gmail.com>
|
||||
" URL: http://www.ocaml.info/vim/ftplugin/lprolog.vim
|
||||
" Last Change: 2023 Aug 28 - added undo_ftplugin (Vim Project)
|
||||
" Last Change: 2025 Apr 16
|
||||
" 2025 Apr 16 - set 'cpoptions' for line continuation
|
||||
" 2023 Aug 28 - added undo_ftplugin (Vim Project)
|
||||
" 2006 Feb 05
|
||||
" 2001 Sep 16 - fixed 'no_mail_maps'-bug (MM)
|
||||
" 2001 Sep 02 - initial release (MM)
|
||||
@@ -12,6 +14,9 @@ if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Don't do other file type settings for this buffer
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
@@ -43,3 +48,6 @@ if !exists("no_plugin_maps") && !exists("no_lprolog_maps")
|
||||
vnoremap <buffer> <Plug>BUncomOn <ESC>:'<,'><CR>`<O<ESC>0i/*<ESC>`>o<ESC>0i*/<ESC>`<
|
||||
vnoremap <buffer> <Plug>BUncomOff <ESC>:'<,'><CR>`<dd`>dd`<
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
" Vim filetype plugin file.
|
||||
|
||||
" Language: Lua
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Previous Maintainer: Max Ischenko <mfi@ukr.net>
|
||||
@@ -6,7 +7,8 @@
|
||||
" C.D. MacEachern <craig.daniel.maceachern@gmail.com>
|
||||
" Tyler Miller <tmillr@proton.me>
|
||||
" Phạm Bình An <phambinhanctb2004@gmail.com>
|
||||
" Last Change: 2025 Feb 27
|
||||
" @konfekt
|
||||
" Last Change: 2025 Apr 04
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -61,7 +63,7 @@ endif
|
||||
|
||||
if has("folding") && get(g:, "lua_folding", 0)
|
||||
setlocal foldmethod=expr
|
||||
setlocal foldexpr=s:LuaFold(v:lnum)
|
||||
setlocal foldexpr=s:LuaFold()
|
||||
let b:lua_lasttick = -1
|
||||
let b:undo_ftplugin ..= " | setl foldexpr< foldmethod< | unlet! b:lua_lasttick b:lua_foldlists"
|
||||
endif
|
||||
@@ -97,9 +99,9 @@ let s:patterns = [
|
||||
\ ['local\s+function\s+.+', 'end'],
|
||||
\ ]
|
||||
|
||||
function s:LuaFold(lnum) abort
|
||||
function s:LuaFold() abort
|
||||
if b:lua_lasttick == b:changedtick
|
||||
return b:lua_foldlists[a:lnum - 1]
|
||||
return b:lua_foldlists[v:lnum - 1]
|
||||
endif
|
||||
let b:lua_lasttick = b:changedtick
|
||||
|
||||
@@ -108,26 +110,78 @@ function s:LuaFold(lnum) abort
|
||||
let buf = getline(1, "$")
|
||||
for line in buf
|
||||
for t in s:patterns
|
||||
let open = 0
|
||||
let end = 0
|
||||
let tagopen = '\v^\s*' .. t[0] ..'\s*$'
|
||||
let tagclose = '\v^\s*' .. t[1] ..'\s*$'
|
||||
let tagend = '\v^\s*' .. t[1] ..'\s*$'
|
||||
if line =~# tagopen
|
||||
call add(foldlist, t)
|
||||
let open = 1
|
||||
break
|
||||
elseif line =~# tagclose
|
||||
elseif line =~# tagend
|
||||
if len(foldlist) > 0 && line =~# foldlist[-1][1]
|
||||
call remove(foldlist, -1)
|
||||
let end = 1
|
||||
else
|
||||
let foldlist = []
|
||||
endif
|
||||
break
|
||||
endif
|
||||
endfor
|
||||
call add(b:lua_foldlists, len(foldlist))
|
||||
let prefix = ""
|
||||
if open == 1 | let prefix = ">" | endif
|
||||
if end == 1 | let prefix = "<" | endif
|
||||
let b:lua_foldlists += [prefix..(len(foldlist) + end)]
|
||||
endfor
|
||||
|
||||
return lua_foldlists[a:lnum - 1]
|
||||
return b:lua_foldlists[v:lnum - 1]
|
||||
endfunction
|
||||
|
||||
if !has('vim9script')
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
finish
|
||||
endif
|
||||
|
||||
delfunction! s:LuaFold
|
||||
def s:LuaFold(): string
|
||||
if b:lua_lasttick == b:changedtick
|
||||
return b:lua_foldlists[v:lnum - 1]
|
||||
endif
|
||||
b:lua_lasttick = b:changedtick
|
||||
|
||||
b:lua_foldlists = []
|
||||
var foldlist = []
|
||||
var buf = getline(1, "$")
|
||||
for line in buf
|
||||
var open = 0
|
||||
var end = 0
|
||||
for t in patterns
|
||||
var tagopen = '\v^\s*' .. t[0] .. '\s*$'
|
||||
var tagend = '\v^\s*' .. t[1] .. '\s*$'
|
||||
if line =~# tagopen
|
||||
add(foldlist, t)
|
||||
open = 1
|
||||
break
|
||||
elseif line =~# tagend
|
||||
if len(foldlist) > 0 && line =~# foldlist[-1][1]
|
||||
end = 1
|
||||
remove(foldlist, -1)
|
||||
else
|
||||
foldlist = []
|
||||
endif
|
||||
break
|
||||
endif
|
||||
endfor
|
||||
var prefix = ""
|
||||
if open == 1 | prefix = ">" | endif
|
||||
if end == 1 | prefix = "<" | endif
|
||||
b:lua_foldlists += [prefix .. (len(foldlist) + end)]
|
||||
endfor
|
||||
return b:lua_foldlists[v:lnum - 1]
|
||||
enddef
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
|
||||
13
runtime/ftplugin/mbsync.vim
Normal file
13
runtime/ftplugin/mbsync.vim
Normal file
@@ -0,0 +1,13 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: mbsync configuration file
|
||||
" Maintainer: Pierrick Guillaume <pguillaume@fymyte.com>
|
||||
" Last Change: 2025 Apr 13
|
||||
|
||||
if (exists('b:did_ftplugin'))
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let b:undo_ftplugin = "setlocal commentstring<"
|
||||
|
||||
setlocal commentstring=#\ %s
|
||||
@@ -3,6 +3,7 @@
|
||||
" Home: http://en.wikipedia.org/wiki/Wikipedia:Text_editor_support#Vim
|
||||
" Last Change: 2024 Jul 14
|
||||
" Credits: chikamichi
|
||||
" 2025 Apr 16 by Vim Project (set 'cpoptions' for line continuation, #17121)
|
||||
"
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -10,6 +11,9 @@ if exists("b:did_ftplugin")
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Many MediaWiki wikis prefer line breaks only at the end of paragraphs
|
||||
" (like in a text processor), which results in long, wrapping lines.
|
||||
setlocal wrap linebreak
|
||||
@@ -40,3 +44,6 @@ setlocal foldmethod=expr
|
||||
|
||||
let b:undo_ftplugin = "setl commentstring< comments< formatoptions< foldexpr< foldmethod<"
|
||||
let b:undo_ftplugin += " matchpairs< linebreak< wrap< textwidth<"
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -2,12 +2,16 @@
|
||||
" Language: Mojo
|
||||
" Maintainer: Riley Bruins <ribru17@gmail.com>
|
||||
" Last Change: 2024 Jul 07
|
||||
" 2025 Apr 16 by Vim Project (set 'cpoptions' for line continuation, #17121)
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
setlocal include=^\\s*\\(from\\\|import\\)
|
||||
setlocal define=^\\s*\\(\\(async\\s\\+\\)\\?def\\\|class\\)
|
||||
|
||||
@@ -39,3 +43,6 @@ let b:undo_ftplugin = 'setlocal include<'
|
||||
\ . '|setlocal suffixesadd<'
|
||||
\ . '|setlocal comments<'
|
||||
\ . '|setlocal commentstring<'
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
" Language: nix
|
||||
" Maintainer: Keith Smiley <keithbsmiley@gmail.com>
|
||||
" Last Change: 2023 Jul 22
|
||||
" 2025 Apr 18 by Vim Project (set 'iskeyword' and b:match_words #17154)
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -11,7 +12,10 @@ endif
|
||||
" Don't load another plugin for this buffer
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let b:undo_ftplugin = "setl commentstring< comments<"
|
||||
let b:undo_ftplugin = "setl commentstring< comments< iskeyword< | unlet! b:match_words"
|
||||
|
||||
let b:match_words = "\<if\>:\<then\>:\<else\>,\<let\>:\<in\>"
|
||||
|
||||
setlocal comments=:#
|
||||
setlocal commentstring=#\ %s
|
||||
setlocal iskeyword+=-
|
||||
|
||||
@@ -7,12 +7,16 @@
|
||||
" Last Changes:
|
||||
" 2024 May 24 by Riley Bruins <ribru17@gmail.com> ('commentstring' #14843)
|
||||
" 2025 Feb 12 by Wu, Zhenyu <wuzhenyu@ustc.edu> (matchit configuration #16619)
|
||||
" 2025 Apr 16 by Eisuke Kawashima (cpoptions #17121)
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
setlocal commentstring=.\\\"\ %s
|
||||
setlocal comments=:.\\\"
|
||||
setlocal sections+=Sh
|
||||
@@ -30,3 +34,6 @@ if exists('loaded_matchit')
|
||||
\ . ',^\.\s*FS\>:^\.\s*FE\>'
|
||||
let b:undo_ftplugin .= "| unlet b:match_words"
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
16
runtime/ftplugin/pq.vim
Normal file
16
runtime/ftplugin/pq.vim
Normal file
@@ -0,0 +1,16 @@
|
||||
" Vim filetype plugin
|
||||
" Language: Power Query M
|
||||
" Maintainer: Anarion Dunedain <anarion80@gmail.com>
|
||||
" Last Change: 2025 Apr 3
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
|
||||
|
||||
setlocal commentstring=//\ %s
|
||||
|
||||
let b:undo_ftplugin = 'setl com< cms<'
|
||||
14
runtime/ftplugin/remind.vim
Normal file
14
runtime/ftplugin/remind.vim
Normal file
@@ -0,0 +1,14 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Remind - a sophisticated calendar and alarm
|
||||
" Maintainer: Joe Reynolds <joereynolds952@gmail.com>
|
||||
" Latest Revision: 2025 April 08
|
||||
" License: Vim (see :h license)
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal comments=:# commentstring=#\ %s
|
||||
|
||||
let b:undo_ftplugin = "setl cms< com<"
|
||||
@@ -3,6 +3,7 @@
|
||||
" Maintainer: Chris Morgan <me@chrismorgan.info>
|
||||
" Last Change: 2024 Mar 17
|
||||
" 2024 May 23 by Riley Bruins <ribru17@gmail.com ('commentstring')
|
||||
" 2025 Mar 31 by Vim project (set 'formatprg' option)
|
||||
" For bugs, patches and license go to https://github.com/rust-lang/rust.vim
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -57,6 +58,19 @@ setlocal includeexpr=rust#IncludeExpr(v:fname)
|
||||
|
||||
setlocal suffixesadd=.rs
|
||||
|
||||
if executable(get(g:, 'rustfmt_command', 'rustfmt'))
|
||||
if get(g:, "rustfmt_fail_silently", 0)
|
||||
augroup rust.vim.FailSilently
|
||||
autocmd! * <buffer>
|
||||
autocmd ShellFilterPost <buffer> if v:shell_error | execute 'echom "shell filter returned error " . v:shell_error . ", undoing changes"' | undo | endif
|
||||
augroup END
|
||||
endif
|
||||
|
||||
let &l:formatprg = get(g:, 'rustfmt_command', 'rustfmt') . ' ' .
|
||||
\ get(g:, 'rustfmt_options', '') . ' ' .
|
||||
\ rustfmt#RustfmtConfigOptions()
|
||||
endif
|
||||
|
||||
if exists("g:ftplugin_rust_source_path")
|
||||
let &l:path=g:ftplugin_rust_source_path . ',' . &l:path
|
||||
endif
|
||||
@@ -149,7 +163,7 @@ endif
|
||||
|
||||
let b:undo_ftplugin = "
|
||||
\ compiler make |
|
||||
\ setlocal formatoptions< comments< commentstring< include< includeexpr< suffixesadd<
|
||||
\ setlocal formatoptions< comments< commentstring< include< includeexpr< suffixesadd< formatprg<
|
||||
\|if exists('b:rust_set_style')
|
||||
\|setlocal tabstop< shiftwidth< softtabstop< expandtab< textwidth<
|
||||
\|endif
|
||||
|
||||
@@ -1,13 +1,40 @@
|
||||
" Vim filetype plugin
|
||||
" Language: svelte
|
||||
" Maintainer: Igor Lacerda <igorlafarsi@gmail.com>
|
||||
" Last Change: 2024 Jun 09
|
||||
" Last Change: 2025 Apr 06
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setl commentstring=<!--\ %s\ -->
|
||||
let s:cpo_sav = &cpo
|
||||
set cpo&vim
|
||||
|
||||
let b:undo_ftplugin = 'setl cms<'
|
||||
setlocal matchpairs+=<:>
|
||||
setlocal commentstring=<!--\ %s\ -->
|
||||
setlocal comments=s:<!--,m:\ \ \ \ ,e:-->
|
||||
|
||||
let b:undo_ftplugin = 'setlocal comments< commentstring< matchpairs<'
|
||||
|
||||
if exists('&omnifunc')
|
||||
setlocal omnifunc=htmlcomplete#CompleteTags
|
||||
call htmlcomplete#DetectOmniFlavor()
|
||||
let b:undo_ftplugin ..= " | setlocal omnifunc<"
|
||||
endif
|
||||
|
||||
if exists("loaded_matchit") && !exists("b:match_words")
|
||||
let b:match_ignorecase = 1
|
||||
let b:match_words = '<:>,' .
|
||||
\ '<\@<=[ou]l\>[^>]*\%(>\|$\):<\@<=li\>:<\@<=/[ou]l>,' .
|
||||
\ '<\@<=dl\>[^>]*\%(>\|$\):<\@<=d[td]\>:<\@<=/dl>,' .
|
||||
\ '<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>,' .
|
||||
\ '{#\(if\|each\)[^}]*}:{\:else[^}]*}:{\/\(if\|each\)},' .
|
||||
\ '{#await[^}]*}:{\:then[^}]*}:{\:catch[^}]*}:{\/await},' .
|
||||
\ '{#snippet[^}]*}:{\/snippet},' .
|
||||
\ '{#key[^}]*}:{\/key}'
|
||||
let b:html_set_match_words = 1
|
||||
let b:undo_ftplugin ..= " | unlet! b:match_ignorecase b:match_words b:html_set_match_words"
|
||||
endif
|
||||
let &cpo = s:cpo_sav
|
||||
unlet! s:cpo_sav
|
||||
|
||||
@@ -2,12 +2,16 @@
|
||||
" Language: Tera
|
||||
" Maintainer: Muntasir Mahmud <muntasir.joypurhat@gmail.com>
|
||||
" Last Change: 2025 Mar 08
|
||||
" 2025 Apr 16 by Vim Project (set 'cpoptions' for line continuation, #17121)
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
setlocal autoindent
|
||||
|
||||
setlocal commentstring={#\ %s\ #}
|
||||
@@ -28,3 +32,6 @@ setlocal softtabstop=2
|
||||
let b:undo_ftplugin = "setlocal autoindent< commentstring< comments< " ..
|
||||
\ "includeexpr< suffixesadd< expandtab< shiftwidth< softtabstop<"
|
||||
let b:undo_ftplugin .= "|unlet! b:match_ignorecase b:match_words"
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -2,11 +2,14 @@
|
||||
" Language: Cucumber
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2023 Dec 28
|
||||
" 2025 Apr 16 by Vim Project (set 'cpoptions' for line continuation, #17121)
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
let b:did_indent = 1
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
setlocal autoindent
|
||||
setlocal indentexpr=GetCucumberIndent()
|
||||
@@ -95,4 +98,7 @@ function! GetCucumberIndent(...) abort
|
||||
return prev.indent < 0 ? 0 : prev.indent
|
||||
endfunction
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim:set sts=2 sw=2:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim indent script for HTML
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Original Author: Andy Wokula <anwoku@yahoo.de>
|
||||
" Last Change: 2023 Aug 13
|
||||
" Last Change: 2025 Apr 13
|
||||
" Version: 1.0 "{{{
|
||||
" Description: HTML indent script with cached state for faster indenting on a
|
||||
" range of lines.
|
||||
@@ -868,7 +868,9 @@ func HtmlIndent_FindTagStart(lnum)
|
||||
let idx = match(getline(a:lnum), '\S>\s*$')
|
||||
if idx > 0
|
||||
call cursor(a:lnum, idx)
|
||||
" VIM_INDENT_TEST_TRACE_START
|
||||
let lnum = searchpair('<\w', '' , '\S>', 'bW', '', max([a:lnum - b:html_indent_line_limit, 0]))
|
||||
" VIM_INDENT_TEST_TRACE_END HtmlIndent_FindTagStart
|
||||
if lnum > 0
|
||||
return [lnum, 1]
|
||||
endif
|
||||
@@ -903,7 +905,9 @@ func HtmlIndent_FindTagEnd()
|
||||
call search('--\zs>')
|
||||
elseif s:get_tag('/' . tagname) != 0
|
||||
" tag with a closing tag, find matching "</tag>"
|
||||
" VIM_INDENT_TEST_TRACE_START
|
||||
call searchpair('<' . tagname, '', '</' . tagname . '\zs>', 'W', '', line('.') + b:html_indent_line_limit)
|
||||
" VIM_INDENT_TEST_TRACE_END HtmlIndent_FindTagEnd
|
||||
else
|
||||
" self-closing tag, find the ">"
|
||||
call search('\S\zs>')
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" Language: Javascript
|
||||
" Maintainer: Chris Paul ( https://github.com/bounceme )
|
||||
" URL: https://github.com/pangloss/vim-javascript
|
||||
" Last Change: December 4, 2017
|
||||
" Last Change: 2025 Apr 13
|
||||
|
||||
" Only load this indent file when no other was loaded.
|
||||
if exists('b:did_indent')
|
||||
@@ -69,7 +69,9 @@ let s:rel = has('reltime')
|
||||
" searchpair() wrapper
|
||||
if s:rel
|
||||
function s:GetPair(start,end,flags,skip)
|
||||
" VIM_INDENT_TEST_TRACE_START
|
||||
return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,s:l1,a:skip ==# 's:SkipFunc()' ? 2000 : 200)
|
||||
" VIM_INDENT_TEST_TRACE_END s:GetPair
|
||||
endfunction
|
||||
else
|
||||
function s:GetPair(start,end,flags,skip)
|
||||
|
||||
@@ -36,6 +36,9 @@ First of all, create a FILETYPE.in file. It should contain:
|
||||
\ 'string'
|
||||
" END_INDENT
|
||||
|
||||
When an indent script utilises timed "search*()"es and supports related
|
||||
timeout configuration, consider setting a generous timeout value from
|
||||
INDENT_EXE lines (look at "g:vim_indent" in "testdir/vim.in" for details).
|
||||
Note that the command is not undone, you may need to reverse the effect for
|
||||
the next block of lines.
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
# vim: set filetype=bitbake :
|
||||
|
||||
# START_INDENT
|
||||
# INDENT_EXE let g:pyindent_searchpair_timeout = 64
|
||||
# INDENT_EXE runtime autoload/python.vim
|
||||
FOO = " \
|
||||
bar \
|
||||
baz \
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
# vim: set filetype=bitbake :
|
||||
|
||||
# START_INDENT
|
||||
# INDENT_EXE let g:pyindent_searchpair_timeout = 64
|
||||
# INDENT_EXE runtime autoload/python.vim
|
||||
FOO = " \
|
||||
bar \
|
||||
baz \
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
|
||||
% START_INDENT
|
||||
% INDENT_EXE let b:html_indent_line_limit = 64
|
||||
<html>
|
||||
<body>
|
||||
<style>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
|
||||
% START_INDENT
|
||||
% INDENT_EXE let b:html_indent_line_limit = 64
|
||||
<html>
|
||||
<body>
|
||||
<style>
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
# vim: set ft=python sw=4 et:
|
||||
|
||||
# START_INDENT
|
||||
# INDENT_EXE let g:pyindent_searchpair_timeout = 256
|
||||
# INDENT_EXE runtime autoload/python.vim
|
||||
dict = {
|
||||
'a': 1,
|
||||
'b': 2,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
# vim: set ft=python sw=4 et:
|
||||
|
||||
# START_INDENT
|
||||
# INDENT_EXE let g:pyindent_searchpair_timeout = 256
|
||||
# INDENT_EXE runtime autoload/python.vim
|
||||
dict = {
|
||||
'a': 1,
|
||||
'b': 2,
|
||||
|
||||
@@ -14,19 +14,6 @@ set modeline
|
||||
set debug=throw
|
||||
set nomore
|
||||
|
||||
" Remember the directory where we started.
|
||||
let indentDir = getcwd()
|
||||
cd ../../src/testdir
|
||||
|
||||
" Needed for ValgrindOrAsan().
|
||||
source shared.vim
|
||||
exe 'cd ' .. fnameescape(indentDir)
|
||||
|
||||
if ValgrindOrAsan()
|
||||
let g:vim_indent = {"searchpair_timeout": 1024}
|
||||
let g:python_indent = {"searchpair_timeout": 1024}
|
||||
endif
|
||||
|
||||
au! SwapExists * call HandleSwapExists()
|
||||
func HandleSwapExists()
|
||||
" Ignore finding a swap file for the test input and output, the user might be
|
||||
|
||||
166
runtime/indent/testdir/tools/tracer.vim
Normal file
166
runtime/indent/testdir/tools/tracer.vim
Normal file
@@ -0,0 +1,166 @@
|
||||
vim9script
|
||||
|
||||
# Whenever indent plugins contain "search*()" lines explicitly annotated with
|
||||
# "VIM_INDENT_TEST_TRACE_(START|END)" comment markers; this script can then be
|
||||
# used as shown to measure and record elapsed time for such decorated calls.
|
||||
#
|
||||
# Usage:
|
||||
# cd runtime/indent
|
||||
# vim -u NONE -S testdir/tools/tracer.vim \
|
||||
# html.vim javascript.vim \
|
||||
# ../autoload/python.vim ../autoload/dist/vimindent.vim
|
||||
# git diff
|
||||
# make clean test
|
||||
# vim testdir/00-TRACE_LOG.fail
|
||||
|
||||
def GenerateTempletForTracing(fname: string, vname: string): list<string>
|
||||
#### ONLY INSTRUMENT "search*()"es FOR INDENT TESTS.
|
||||
|
||||
const templet: list<string> =<< trim eval END
|
||||
|
||||
if getcwd() =~# '\<runtime/indent$'
|
||||
|
||||
def! g:IndentTestTrace(id: string, start: list<number>, result: any): any
|
||||
const end: list<number> = reltime(start)
|
||||
|
||||
if !has_key(g:indent_test_trace_times, id)
|
||||
g:indent_test_trace_times[id] = []
|
||||
endif
|
||||
|
||||
g:indent_test_trace_times[id]
|
||||
->add(reltimefloat(end))
|
||||
return result
|
||||
enddef
|
||||
|
||||
def! g:IndentTestInitTracing()
|
||||
# Possibly use a later "{fname}", cf. ":runtime indent/foo.vim".
|
||||
autocmd_add([{{
|
||||
replace: true,
|
||||
group: 'tracing',
|
||||
event: 'QuitPre',
|
||||
bufnr: bufnr(),
|
||||
cmd: 'g:IndentTestWriteTraceTimes()',
|
||||
}}])
|
||||
g:indent_test_trace_times = {{}}
|
||||
enddef
|
||||
|
||||
def! g:IndentTestWriteTraceTimes()
|
||||
# Anticipate usage by multiple languages.
|
||||
const token: string = printf('%02x', (rand() % 26))
|
||||
writefile(['" {fname}:',
|
||||
"let {vname}_" .. token .. " = " .. string(g:indent_test_trace_times),
|
||||
"let {vname}_" .. token .. "_summary = " .. string(g:indent_test_trace_times
|
||||
->items()
|
||||
->reduce((outer: dict<dict<any>>, times: list<any>) =>
|
||||
extend({{[times[0]]: times[1]
|
||||
->copy()
|
||||
->reduce((inner: dict<any>, v: float) =>
|
||||
extend({{
|
||||
min: inner.min < v ? inner.min : v,
|
||||
max: inner.max > v ? inner.max : v,
|
||||
sum: (inner.sum + v),
|
||||
avg: ((inner.sum + v) / inner.count),
|
||||
}},
|
||||
inner,
|
||||
"keep"),
|
||||
{{
|
||||
min: v:numbermax - 0.0,
|
||||
max: v:numbermin + 0.0,
|
||||
sum: 0.0,
|
||||
avg: 0.0,
|
||||
count: len(times[1]),
|
||||
}})}},
|
||||
outer),
|
||||
{{}}))],
|
||||
(!empty($VIM_INDENT_TEST_LOG) && filewritable($VIM_INDENT_TEST_LOG))
|
||||
? $VIM_INDENT_TEST_LOG
|
||||
: "testdir/00-TRACE_LOG.fail",
|
||||
"a")
|
||||
enddef
|
||||
|
||||
call g:IndentTestInitTracing()
|
||||
|
||||
else
|
||||
|
||||
def! g:IndentTestTrace(_: string, _: list<number>, result: any): any
|
||||
return result
|
||||
enddef
|
||||
|
||||
endif
|
||||
|
||||
END
|
||||
return templet
|
||||
enddef
|
||||
|
||||
def InstrumentMarkedEntry(): bool
|
||||
const marker_start: string = 'VIM_INDENT_TEST_TRACE_START'
|
||||
const start: number = search('\C\<' .. marker_start .. '\>', 'ceW')
|
||||
|
||||
if start == 0
|
||||
return false
|
||||
endif
|
||||
|
||||
const marker_end: string = 'VIM_INDENT_TEST_TRACE_END'
|
||||
const end: number = search('\C\<' .. marker_end .. '\>', 'ceW')
|
||||
|
||||
if end == 0
|
||||
return false
|
||||
endif
|
||||
|
||||
const tracee: list<string> = matchlist(
|
||||
getline(start + 1),
|
||||
'\(^.\+\)\(\<search\%(pair\)\=\%(pos\)\=\s*(.*$\)')
|
||||
|
||||
if empty(get(tracee, 1, '')) || empty(get(tracee, 2, ''))
|
||||
return false
|
||||
endif
|
||||
|
||||
const end_line: string = getline(end)
|
||||
const tracer: string = printf('%sg:IndentTestTrace("%s", reltime(), %s',
|
||||
tracee[1],
|
||||
strpart(end_line, (stridx(end_line, marker_end) + strlen(marker_end) + 1)),
|
||||
tracee[2])
|
||||
|
||||
if (end - start) > 1
|
||||
setline((start + 1), tracer)
|
||||
setline((end - 1), getline(end - 1) .. ')')
|
||||
else
|
||||
setline((start + 1), tracer .. ')')
|
||||
endif
|
||||
|
||||
return true
|
||||
enddef
|
||||
|
||||
def ProcessIndentPluginCmdlineArgs()
|
||||
const names: list<string> = range(char2nr('a'), char2nr('z'))
|
||||
->map((_: number, n: number) => nr2char(n, true))
|
||||
var entries: number = 0
|
||||
var next: number = 0
|
||||
|
||||
for fname: string in argv(-1)
|
||||
if filereadable(fname) && filewritable(fname)
|
||||
execute 'new ' .. fname
|
||||
call cursor(1, 1)
|
||||
|
||||
while InstrumentMarkedEntry()
|
||||
entries += 1
|
||||
endwhile
|
||||
|
||||
if entries > 0
|
||||
append(1, GenerateTempletForTracing(fname, get(names, next, names[-1])))
|
||||
wq
|
||||
endif
|
||||
|
||||
entries = 0
|
||||
next += 1
|
||||
endif
|
||||
endfor
|
||||
enddef
|
||||
|
||||
if empty(system('git status --porcelain=v1'))
|
||||
ProcessIndentPluginCmdlineArgs()
|
||||
endif
|
||||
|
||||
quitall
|
||||
|
||||
# vim:fdm=syntax:sw=2:ts=8:noet:nosta:
|
||||
@@ -1,6 +1,8 @@
|
||||
" vim: set ft=vim sw=4 :
|
||||
|
||||
" START_INDENT
|
||||
" INDENT_EXE let g:vim_indent = {'searchpair_timeout': 1024}
|
||||
" INDENT_EXE runtime autoload/dist/vimindent.vim
|
||||
func Some()
|
||||
let x = 1
|
||||
endfunc
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
" vim: set ft=vim sw=4 :
|
||||
|
||||
" START_INDENT
|
||||
" INDENT_EXE let g:vim_indent = {'searchpair_timeout': 1024}
|
||||
" INDENT_EXE runtime autoload/dist/vimindent.vim
|
||||
func Some()
|
||||
let x = 1
|
||||
endfunc
|
||||
|
||||
@@ -2,6 +2,8 @@ vim9script
|
||||
# vim: set ft=vim sw=4 :
|
||||
|
||||
# START_INDENT
|
||||
# INDENT_EXE let g:vim_indent = {'searchpair_timeout': 8192}
|
||||
# INDENT_EXE runtime autoload/dist/vimindent.vim
|
||||
var result = Func(
|
||||
arg1,
|
||||
arg2
|
||||
@@ -455,7 +457,7 @@ enddef
|
||||
# END_INDENT
|
||||
|
||||
# START_INDENT
|
||||
# INDENT_EXE let g:vim_indent = {'more_in_bracket_block': v:true}
|
||||
# INDENT_EXE let g:vim_indent.more_in_bracket_block = v:true
|
||||
def Select(Cont: func(func(any)), Pred: func(any): bool): func(func(any))
|
||||
return (Emit: func(any)) => {
|
||||
Cont((t: any) => {
|
||||
@@ -468,7 +470,7 @@ enddef
|
||||
# END_INDENT
|
||||
|
||||
# START_INDENT
|
||||
# INDENT_EXE unlet! g:vim_indent
|
||||
# INDENT_EXE let g:vim_indent = {'searchpair_timeout': 8192}
|
||||
# END_INDENT
|
||||
|
||||
# START_INDENT
|
||||
|
||||
@@ -2,6 +2,8 @@ vim9script
|
||||
# vim: set ft=vim sw=4 :
|
||||
|
||||
# START_INDENT
|
||||
# INDENT_EXE let g:vim_indent = {'searchpair_timeout': 8192}
|
||||
# INDENT_EXE runtime autoload/dist/vimindent.vim
|
||||
var result = Func(
|
||||
arg1,
|
||||
arg2
|
||||
@@ -455,7 +457,7 @@ enddef
|
||||
# END_INDENT
|
||||
|
||||
# START_INDENT
|
||||
# INDENT_EXE let g:vim_indent = {'more_in_bracket_block': v:true}
|
||||
# INDENT_EXE let g:vim_indent.more_in_bracket_block = v:true
|
||||
def Select(Cont: func(func(any)), Pred: func(any): bool): func(func(any))
|
||||
return (Emit: func(any)) => {
|
||||
Cont((t: any) => {
|
||||
@@ -468,7 +470,7 @@ enddef
|
||||
# END_INDENT
|
||||
|
||||
# START_INDENT
|
||||
# INDENT_EXE unlet! g:vim_indent
|
||||
# INDENT_EXE let g:vim_indent = {'searchpair_timeout': 8192}
|
||||
# END_INDENT
|
||||
|
||||
# START_INDENT
|
||||
|
||||
71
runtime/keymap/brazilian_portuguese-abnt.vim
Normal file
71
runtime/keymap/brazilian_portuguese-abnt.vim
Normal file
@@ -0,0 +1,71 @@
|
||||
" Vim Keymap file for Brazilian Portuguese - ABNT (without altgr because that would be ABNT2)
|
||||
|
||||
" Maintainer: Elsarques
|
||||
" Last Changed: 2025-04-06
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
let b:keymap_name = "abnt"
|
||||
|
||||
loadkeymap
|
||||
[[ ´ LATIN ACUTE ACCENT
|
||||
[a á LATIN SMALL LETTER A WITH ACUTE
|
||||
[e é LATIN SMALL LETTER E WITH ACUTE
|
||||
[u ú LATIN SMALL LETTER U WITH ACUTE
|
||||
[i í LATIN SMALL LETTER I WITH ACUTE
|
||||
[o ó LATIN SMALL LETTER O WITH ACUTE
|
||||
[A Á LATIN CAPITAL LETTER A WITH ACUTE
|
||||
[E É LATIN CAPITAL LETTER E WITH ACUTE
|
||||
[U Ú LATIN CAPITAL LETTER U WITH ACUTE
|
||||
[I Í LATIN CAPITAL LETTER I WITH ACUTE
|
||||
[O Ó LATIN CAPITAL LETTER O WITH ACUTE
|
||||
{{ ` GRAVE
|
||||
{e è LATIN SMALL LETTER E WITH GRAVE
|
||||
{a à LATIN SMALL LETTER A WITH GRAVE
|
||||
{u ù LATIN SMALL LETTER U WITH GRAVE
|
||||
{i ì LATIN SMALL LETTER I WITH GRAVE
|
||||
{o ò LATIN SMALL LETTER O WITH GRAVE
|
||||
{u ù LATIN SMALL LETTER U WITH GRAVE
|
||||
{E È LATIN CAPITAL LETTER E WITH GRAVE
|
||||
{A À LATIN CAPITAL LETTER A WITH GRAVE
|
||||
{U Ù LATIN CAPITAL LETTER U WITH GRAVE
|
||||
{I Ì LATIN CAPITAL LETTER I WITH GRAVE
|
||||
{O Ò LATIN CAPITAL LETTER O WITH GRAVE
|
||||
{U Ù LATIN CAPITAL LETTER U WITH GRAVE
|
||||
] [ ASCII OPENING BRACKETS
|
||||
} { ASCII OPENING CURLY BRACKETS
|
||||
; ç LATIN SMALL LETTER C WITH CEDILLA
|
||||
: Ç LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
' ~ ASCII TILDE
|
||||
'a ã LATIN SMALL LETTER A WITH TILDE
|
||||
'e ẽ LATIN SMALL LETTER E WITH TILDE
|
||||
'i ĩ LATIN SMALL LETTER I WITH TILDE
|
||||
'o õ LATIN SMALL LETTER O WITH TILDE
|
||||
'u ũ LATIN SMALL LETTER U WITH TILDE
|
||||
'A Ã LATIN CAPITAL LETTER A WITH TILDE
|
||||
'E Ẽ LATIN CAPITAL LETTER E WITH TILDE
|
||||
'I Ĩ LATIN CAPITAL LETTER I WITH TILDE
|
||||
'O Õ LATIN CAPITAL LETTER O WITH TILDE
|
||||
'U Ũ LATIN CAPITAL LETTER U WITH TILDE
|
||||
\" ^ ASCII CIRCUMFLEX
|
||||
\"a â LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
\"e ê LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
\"i î LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
\"o ô LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
\"u û LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
\"A Â LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
\"E Ê LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
\"I Î LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
\"O Ô LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
\"U Û LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
[- | ASCII VERTICAL-BAR
|
||||
\\ ] ASCII CLOSING BRACKETS
|
||||
| } ASCII CLOSING CURLY BRACKETS
|
||||
/ ; ASCII SEMICOLON
|
||||
? : ASCII COLON
|
||||
~ " ASCII DOUBLE QUOTES
|
||||
¬ \\ ASCII BACKSLASH
|
||||
® | ASCII HORIZONTAL SLASH
|
||||
[= / ASCII SLASH
|
||||
'= ? ASCII INTERROGATION
|
||||
` ' ASCII SINGLE QUOTE
|
||||
72
runtime/keymap/brazilian_portuguese-compact.vim
Normal file
72
runtime/keymap/brazilian_portuguese-compact.vim
Normal file
@@ -0,0 +1,72 @@
|
||||
" Vim Keymap file for Brazilian Portuguese - ABNT Compact (for keyboards
|
||||
" with less keys and without altgr because that would be ABNT2)
|
||||
|
||||
" Maintainer: Elsarques
|
||||
" Last Changed: 2025-04-06
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
let b:keymap_name = "abnt-compact"
|
||||
|
||||
loadkeymap
|
||||
[[ ´ LATIN ACUTE ACCENT
|
||||
[a á LATIN SMALL LETTER A WITH ACUTE
|
||||
[e é LATIN SMALL LETTER E WITH ACUTE
|
||||
[u ú LATIN SMALL LETTER U WITH ACUTE
|
||||
[i í LATIN SMALL LETTER I WITH ACUTE
|
||||
[o ó LATIN SMALL LETTER O WITH ACUTE
|
||||
[A Á LATIN CAPITAL LETTER A WITH ACUTE
|
||||
[E É LATIN CAPITAL LETTER E WITH ACUTE
|
||||
[U Ú LATIN CAPITAL LETTER U WITH ACUTE
|
||||
[I Í LATIN CAPITAL LETTER I WITH ACUTE
|
||||
[O Ó LATIN CAPITAL LETTER O WITH ACUTE
|
||||
{{ ` GRAVE
|
||||
{e è LATIN SMALL LETTER E WITH GRAVE
|
||||
{a à LATIN SMALL LETTER A WITH GRAVE
|
||||
{u ù LATIN SMALL LETTER U WITH GRAVE
|
||||
{i ì LATIN SMALL LETTER I WITH GRAVE
|
||||
{o ò LATIN SMALL LETTER O WITH GRAVE
|
||||
{u ù LATIN SMALL LETTER U WITH GRAVE
|
||||
{E È LATIN CAPITAL LETTER E WITH GRAVE
|
||||
{A À LATIN CAPITAL LETTER A WITH GRAVE
|
||||
{U Ù LATIN CAPITAL LETTER U WITH GRAVE
|
||||
{I Ì LATIN CAPITAL LETTER I WITH GRAVE
|
||||
{O Ò LATIN CAPITAL LETTER O WITH GRAVE
|
||||
{U Ù LATIN CAPITAL LETTER U WITH GRAVE
|
||||
] [ ASCII OPENING BRACKETS
|
||||
} { ASCII OPENING CURLY BRACKETS
|
||||
; ç LATIN SMALL LETTER C WITH CEDILLA
|
||||
: Ç LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
' ~ ASCII TILDE
|
||||
'a ã LATIN SMALL LETTER A WITH TILDE
|
||||
'e ẽ LATIN SMALL LETTER E WITH TILDE
|
||||
'i ĩ LATIN SMALL LETTER I WITH TILDE
|
||||
'o õ LATIN SMALL LETTER O WITH TILDE
|
||||
'u ũ LATIN SMALL LETTER U WITH TILDE
|
||||
'A Ã LATIN CAPITAL LETTER A WITH TILDE
|
||||
'E Ẽ LATIN CAPITAL LETTER E WITH TILDE
|
||||
'I Ĩ LATIN CAPITAL LETTER I WITH TILDE
|
||||
'O Õ LATIN CAPITAL LETTER O WITH TILDE
|
||||
'U Ũ LATIN CAPITAL LETTER U WITH TILDE
|
||||
[- \\ ASCII BACKSLASH
|
||||
[= / ASCII SLASH
|
||||
\" ^ ASCII CIRCUMFLEX
|
||||
\"a â LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
\"e ê LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
\"i î LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
\"o ô LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
\"u û LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
\"A Â LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
\"E Ê LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
\"I Î LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
\"O Ô LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
\"U Û LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
\"- | ASCII VERTICAL-BAR
|
||||
\\ ] ASCII CLOSING BRACKETS
|
||||
| } ASCII CLOSING CURLY BRACKETS
|
||||
/ ; ASCII SEMICOLON
|
||||
? : ASCII COLON
|
||||
~ " ASCII DOUBLE QUOTES
|
||||
'- ? ASCII EXCLAMATION
|
||||
'= | ASCII VERTICAL SLASH
|
||||
` ' ASCII SINGLE QUOTE
|
||||
@@ -1,7 +1,7 @@
|
||||
" These commands create the option window.
|
||||
"
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2025 Mar 07
|
||||
" Last Change: 2025 Apr 07
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" If there already is an option window, jump to that one.
|
||||
@@ -371,7 +371,7 @@ call <SID>AddOption("sidescrolloff", gettext("minimal number of columns to keep
|
||||
call append("$", " \tset siso=" . &siso)
|
||||
call <SID>AddOption("display", gettext("include \"lastline\" to show the last line even if it doesn't fit\ninclude \"uhex\" to show unprintable characters as a hex number"))
|
||||
call <SID>OptionG("dy", &dy)
|
||||
call <SID>AddOption("fillchars", gettext("characters to use for the status line, folds and filler lines"))
|
||||
call <SID>AddOption("fillchars", gettext("characters to use for the status line, folds, diffs, buffer text, filler lines and truncation in the completion menu"))
|
||||
call <SID>OptionG("fcs", &fcs)
|
||||
call <SID>AddOption("cmdheight", gettext("number of lines used for the command-line"))
|
||||
call append("$", " \tset ch=" . &ch)
|
||||
@@ -405,6 +405,13 @@ if has("linebreak")
|
||||
call append("$", "\t" .. s:local_to_window)
|
||||
call <SID>OptionL("nuw")
|
||||
endif
|
||||
if has("quickfix")
|
||||
call <SID>AddOption("chistory", gettext("maximum number of quickfix lists that can be stored in history"))
|
||||
call <SID>OptionL("chi")
|
||||
call <SID>AddOption("lhistory", gettext("maximum number of location lists that can be stored in history"))
|
||||
call append("$", "\t" .. s:local_to_window)
|
||||
call <SID>OptionL("lhi")
|
||||
endif
|
||||
if has("conceal")
|
||||
call <SID>AddOption("conceallevel", gettext("controls whether concealable text is hidden"))
|
||||
call append("$", "\t" .. s:local_to_window)
|
||||
@@ -863,6 +870,8 @@ if has("insert_expand")
|
||||
call <SID>OptionG("ph", &ph)
|
||||
call <SID>AddOption("pumwidth", gettext("minimum width of the popup menu"))
|
||||
call <SID>OptionG("pw", &pw)
|
||||
call <SID>AddOption("pummaxwidth", gettext("maximum width of the popup menu"))
|
||||
call <SID>OptionG("pmw", &pmw)
|
||||
call <SID>AddOption("completefunc", gettext("user defined function for Insert mode completion"))
|
||||
call append("$", "\t" .. s:local_to_buffer)
|
||||
call <SID>OptionL("cfu")
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
vim9script
|
||||
|
||||
# Maintainer: Maxim Kim <habamax@gmail.com>
|
||||
# Last Update: 2025 Mar 21
|
||||
# Last Update: 2025-03-30
|
||||
#
|
||||
# Toggle comments
|
||||
# Usage:
|
||||
@@ -107,8 +107,8 @@ export def ObjComment(inner: bool)
|
||||
|
||||
# Search for the beginning of the comment block
|
||||
if IsComment()
|
||||
if search('\v%(\S+)|$', 'bW', 0, 200, IsComment) > 0
|
||||
search('\v%(\S)|$', 'W', 0, 200, () => !IsComment())
|
||||
if search('\v%(\S+)|%(^\s*$)', 'bW', 0, 200, IsComment) > 0
|
||||
search('\v%(\S)|%(^\s*$)', 'W', 0, 200, () => !IsComment())
|
||||
else
|
||||
cursor(1, 1)
|
||||
search('\v\S+', 'cW', 0, 200)
|
||||
@@ -130,11 +130,11 @@ export def ObjComment(inner: bool)
|
||||
if pos_init[1] > pos_start[1]
|
||||
cursor(pos_init[1], pos_init[2])
|
||||
endif
|
||||
if search('\v%(\S+)|$', 'W', 0, 200, IsComment) > 0
|
||||
if search('\v%(\S+)|%(^\s*$)', 'W', 0, 200, IsComment) > 0
|
||||
search('\S', 'beW', 0, 200, () => !IsComment())
|
||||
else
|
||||
if search('\%$', 'W', 0, 200) > 0
|
||||
search('\ze\S', 'beW', 0, 200, () => !IsComment())
|
||||
search('\ze\S', 'beW', line('.'), 200, () => !IsComment())
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -144,20 +144,23 @@ export def ObjComment(inner: bool)
|
||||
var spaces = matchstr(getline(pos_end[1]), '\%>.c\s*')
|
||||
pos_end[2] += spaces->len()
|
||||
if getline(pos_end[1])[pos_end[2] : ] =~ '^\s*$'
|
||||
&& (pos_start[2] == 1 || getline(pos_start[1])[ : pos_start[2]] =~ '^\s*$')
|
||||
&& (pos_start[2] <= 1 || getline(pos_start[1])[ : pos_start[2]] =~ '^\s*$')
|
||||
if search('\v\s*\_$(\s*\n)+', 'eW', 0, 200) > 0
|
||||
pos_end = getcurpos()
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
if (pos_end[2] == (getline(pos_end[1])->len() ?? 1)) && pos_start[2] == 1
|
||||
if (pos_end[2] == (getline(pos_end[1])->len() ?? 1)) && pos_start[2] <= 1
|
||||
cursor(pos_end[1], 1)
|
||||
normal! V
|
||||
cursor(pos_start[1], 1)
|
||||
else
|
||||
cursor(pos_end[1], pos_end[2])
|
||||
normal! v
|
||||
if &selection == 'exclusive'
|
||||
normal! lo
|
||||
endif
|
||||
cursor(pos_start[1], pos_start[2])
|
||||
endif
|
||||
enddef
|
||||
|
||||
183
runtime/pack/dist/opt/netrw/autoload/netrw.vim
vendored
183
runtime/pack/dist/opt/netrw/autoload/netrw.vim
vendored
@@ -19,7 +19,7 @@ if &cp || exists("g:loaded_netrw")
|
||||
finish
|
||||
endif
|
||||
|
||||
let g:loaded_netrw = "v179"
|
||||
let g:loaded_netrw = "v180"
|
||||
|
||||
if !has("patch-9.1.1054") && !has('nvim')
|
||||
echoerr 'netrw needs Vim v9.1.1054'
|
||||
@@ -58,70 +58,8 @@ function! netrw#ErrorMsg(level, msg, errnum)
|
||||
let level = "**note** (netrw) "
|
||||
endif
|
||||
|
||||
if g:netrw_use_errorwindow == 2 && exists("*popup_atcursor")
|
||||
" use popup window
|
||||
if type(a:msg) == 3
|
||||
let msg = [level]+a:msg
|
||||
else
|
||||
let msg = level.a:msg
|
||||
endif
|
||||
let s:popuperr_id = popup_atcursor(msg, {})
|
||||
let s:popuperr_text = ""
|
||||
elseif has('nvim')
|
||||
if has('nvim')
|
||||
call v:lua.vim.notify(level . a:msg, a:level + 2)
|
||||
elseif g:netrw_use_errorwindow
|
||||
" (default) netrw creates a one-line window to show error/warning
|
||||
" messages (reliably displayed)
|
||||
|
||||
" record current window number
|
||||
let s:winBeforeErr = winnr()
|
||||
" call Decho("s:winBeforeErr=".s:winBeforeErr,'~'.expand("<slnum>"))
|
||||
|
||||
" getting messages out reliably is just plain difficult!
|
||||
" This attempt splits the current window, creating a one line window.
|
||||
if bufexists("NetrwMessage") && bufwinnr("NetrwMessage") > 0
|
||||
" call Decho("write to NetrwMessage buffer",'~'.expand("<slnum>"))
|
||||
exe bufwinnr("NetrwMessage")."wincmd w"
|
||||
" call Decho("setl ma noro",'~'.expand("<slnum>"))
|
||||
setl ma noro
|
||||
if type(a:msg) == 3
|
||||
for msg in a:msg
|
||||
NetrwKeepj call setline(line("$")+1,level.msg)
|
||||
endfor
|
||||
else
|
||||
NetrwKeepj call setline(line("$")+1,level.a:msg)
|
||||
endif
|
||||
NetrwKeepj $
|
||||
else
|
||||
" call Decho("create a NetrwMessage buffer window",'~'.expand("<slnum>"))
|
||||
bo 1split
|
||||
sil! call s:NetrwEnew()
|
||||
sil! NetrwKeepj call s:NetrwOptionsSafe(1)
|
||||
setl bt=nofile
|
||||
NetrwKeepj file NetrwMessage
|
||||
" call Decho("setl ma noro",'~'.expand("<slnum>"))
|
||||
setl ma noro
|
||||
if type(a:msg) == 3
|
||||
for msg in a:msg
|
||||
NetrwKeepj call setline(line("$")+1,level.msg)
|
||||
endfor
|
||||
else
|
||||
NetrwKeepj call setline(line("$"),level.a:msg)
|
||||
endif
|
||||
NetrwKeepj $
|
||||
endif
|
||||
" call Decho("wrote msg<".level.a:msg."> to NetrwMessage win#".winnr(),'~'.expand("<slnum>"))
|
||||
if &fo !~ '[ta]'
|
||||
syn clear
|
||||
syn match netrwMesgNote "^\*\*note\*\*"
|
||||
syn match netrwMesgWarning "^\*\*warning\*\*"
|
||||
syn match netrwMesgError "^\*\*error\*\*"
|
||||
hi link netrwMesgWarning WarningMsg
|
||||
hi link netrwMesgError Error
|
||||
endif
|
||||
" call Decho("setl noma ro bh=wipe",'~'.expand("<slnum>"))
|
||||
setl ro nomod noma bh=wipe
|
||||
|
||||
else
|
||||
" (optional) netrw will show messages using echomsg. Even if the
|
||||
" message doesn't appear, at least it'll be recallable via :messages
|
||||
@@ -129,15 +67,15 @@ function! netrw#ErrorMsg(level, msg, errnum)
|
||||
if a:level == s:WARNING
|
||||
echohl WarningMsg
|
||||
elseif a:level == s:ERROR
|
||||
echohl Error
|
||||
echohl ErrorMsg
|
||||
endif
|
||||
|
||||
if type(a:msg) == 3
|
||||
for msg in a:msg
|
||||
unsilent echomsg level.msg
|
||||
echomsg level.msg
|
||||
endfor
|
||||
else
|
||||
unsilent echomsg level.a:msg
|
||||
echomsg level.a:msg
|
||||
endif
|
||||
|
||||
echohl None
|
||||
@@ -186,21 +124,13 @@ let s:has_balloon = !has('nvim') &&
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Default option values: {{{2
|
||||
let g:netrw_localcopycmdopt = ""
|
||||
let g:netrw_localcopydircmdopt = ""
|
||||
let g:netrw_localmkdiropt = ""
|
||||
let g:netrw_localmovecmdopt = ""
|
||||
call s:NetrwInit("g:netrw_localcopycmdopt","")
|
||||
call s:NetrwInit("g:netrw_localcopydircmdopt","")
|
||||
call s:NetrwInit("g:netrw_localmkdiropt","")
|
||||
call s:NetrwInit("g:netrw_localmovecmdopt","")
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Default values for netrw's global protocol variables {{{2
|
||||
if exists("*popup_atcursor")
|
||||
\ && has("syntax")
|
||||
\ && exists("g:syntax_on")
|
||||
\ && has("mouse")
|
||||
call s:NetrwInit("g:netrw_use_errorwindow",2)
|
||||
else
|
||||
call s:NetrwInit("g:netrw_use_errorwindow",1)
|
||||
endif
|
||||
|
||||
if !exists("g:netrw_dav_cmd")
|
||||
if executable("cadaver")
|
||||
@@ -404,7 +334,7 @@ if !exists("g:netrw_localcopycmd")
|
||||
let g:netrw_localcopycmd= "cp"
|
||||
else
|
||||
let g:netrw_localcopycmd = expand("$COMSPEC", v:true)
|
||||
let g:netrw_localcopycmdopt= " /c copy"
|
||||
call s:NetrwInit("g:netrw_localcopycmdopt"," /c copy")
|
||||
endif
|
||||
elseif has("unix") || has("macunix")
|
||||
let g:netrw_localcopycmd= "cp"
|
||||
@@ -416,17 +346,17 @@ if !exists("g:netrw_localcopydircmd")
|
||||
if has("win32")
|
||||
if g:netrw_cygwin
|
||||
let g:netrw_localcopydircmd = "cp"
|
||||
let g:netrw_localcopydircmdopt= " -R"
|
||||
call s:NetrwInit("g:netrw_localcopydircmdopt"," -R")
|
||||
else
|
||||
let g:netrw_localcopydircmd = expand("$COMSPEC", v:true)
|
||||
let g:netrw_localcopydircmdopt= " /c xcopy /e /c /h /i /k"
|
||||
call s:NetrwInit("g:netrw_localcopydircmdopt"," /c xcopy /e /c /h /i /k")
|
||||
endif
|
||||
elseif has("unix")
|
||||
let g:netrw_localcopydircmd = "cp"
|
||||
let g:netrw_localcopydircmdopt= " -R"
|
||||
call s:NetrwInit("g:netrw_localcopydircmdopt"," -R")
|
||||
elseif has("macunix")
|
||||
let g:netrw_localcopydircmd = "cp"
|
||||
let g:netrw_localcopydircmdopt= " -R"
|
||||
call s:NetrwInit("g:netrw_localcopydircmdopt"," -R")
|
||||
else
|
||||
let g:netrw_localcopydircmd= ""
|
||||
endif
|
||||
@@ -439,8 +369,8 @@ if has("win32")
|
||||
if g:netrw_cygwin
|
||||
call s:NetrwInit("g:netrw_localmkdir","mkdir")
|
||||
else
|
||||
let g:netrw_localmkdir = expand("$COMSPEC", v:true)
|
||||
let g:netrw_localmkdiropt= " /c mkdir"
|
||||
call s:NetrwInit("g:netrw_localmkdir",expand("$COMSPEC", v:true))
|
||||
call s:NetrwInit("g:netrw_localmkdiropt"," /c mkdir")
|
||||
endif
|
||||
else
|
||||
call s:NetrwInit("g:netrw_localmkdir","mkdir")
|
||||
@@ -458,7 +388,7 @@ if !exists("g:netrw_localmovecmd")
|
||||
let g:netrw_localmovecmd= "mv"
|
||||
else
|
||||
let g:netrw_localmovecmd = expand("$COMSPEC", v:true)
|
||||
let g:netrw_localmovecmdopt= " /c move"
|
||||
call s:NetrwInit("g:netrw_localmovecmdopt"," /c move")
|
||||
endif
|
||||
elseif has("unix") || has("macunix")
|
||||
let g:netrw_localmovecmd= "mv"
|
||||
@@ -2223,7 +2153,7 @@ fun! netrw#NetRead(mode,...)
|
||||
endif
|
||||
if s:FileReadable(tmpfile) && tmpfile !~ '.tar.bz2$' && tmpfile !~ '.tar.gz$' && tmpfile !~ '.zip' && tmpfile !~ '.tar' && readcmd != 't' && tmpfile !~ '.tar.xz$' && tmpfile !~ '.txz'
|
||||
" call Decho("cleanup by deleting tmpfile<".tmpfile.">",'~'.expand("<slnum>"))
|
||||
NetrwKeepj call s:NetrwDelete(tmpfile)
|
||||
call netrw#fs#Remove(tmpfile)
|
||||
endif
|
||||
NetrwKeepj call s:NetrwOptionsRestore("w:")
|
||||
|
||||
@@ -2591,7 +2521,7 @@ fun! netrw#NetWrite(...) range
|
||||
" call Decho("cleanup",'~'.expand("<slnum>"))
|
||||
if s:FileReadable(tmpfile)
|
||||
" call Decho("tmpfile<".tmpfile."> readable, will now delete it",'~'.expand("<slnum>"))
|
||||
call s:NetrwDelete(tmpfile)
|
||||
call netrw#fs#Remove(tmpfile)
|
||||
endif
|
||||
call s:NetrwOptionsRestore("w:")
|
||||
|
||||
@@ -6424,7 +6354,7 @@ fun! s:NetrwMarkFileCopy(islocal,...)
|
||||
NetrwKeepj call s:NetrwUpload(localfiles,s:netrwmftgt)
|
||||
if getcwd() == tmpdir
|
||||
for fname in s:netrwmarkfilelist_{bufnr('%')}
|
||||
NetrwKeepj call s:NetrwDelete(fname)
|
||||
call netrw#fs#Remove(fname)
|
||||
endfor
|
||||
if s:NetrwLcd(curdir)
|
||||
" call Dret("s:NetrwMarkFileCopy : lcd failure")
|
||||
@@ -7631,7 +7561,9 @@ fun! s:NetrwMenu(domenu)
|
||||
elseif !a:domenu
|
||||
let s:netrwcnt = 0
|
||||
let curwin = winnr()
|
||||
windo if getline(2) =~# "Netrw" | let s:netrwcnt= s:netrwcnt + 1 | endif
|
||||
keepjumps windo if getline(2) =~# "Netrw"
|
||||
let s:netrwcnt = s:netrwcnt + 1
|
||||
endif
|
||||
exe curwin."wincmd w"
|
||||
|
||||
if s:netrwcnt <= 1
|
||||
@@ -10291,7 +10223,7 @@ function! s:NetrwLocalRmFile(path, fname, all)
|
||||
|
||||
if !dir && (all || empty(ok))
|
||||
" This works because delete return 0 if successful
|
||||
if s:NetrwDelete(rmfile)
|
||||
if netrw#fs#Remove(rmfile)
|
||||
call netrw#ErrorMsg(s:ERROR, printf("unable to delete <%s>!", rmfile), 103)
|
||||
else
|
||||
" Remove file only if there are no pending changes
|
||||
@@ -10740,51 +10672,6 @@ fun! s:RestoreRegister(dict)
|
||||
endfor
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:NetrwDelete: Deletes a file. {{{2
|
||||
" Uses Steve Hall's idea to insure that Windows paths stay
|
||||
" acceptable. No effect on Unix paths.
|
||||
" Examples of use: let result= s:NetrwDelete(path)
|
||||
function! s:NetrwDelete(path)
|
||||
let path = netrw#fs#WinPath(a:path)
|
||||
|
||||
if !g:netrw_cygwin && has("win32") && exists("+shellslash")
|
||||
let sskeep = &shellslash
|
||||
setl noshellslash
|
||||
let result = delete(path)
|
||||
let &shellslash = sskeep
|
||||
else
|
||||
let result = delete(path)
|
||||
endif
|
||||
|
||||
if result < 0
|
||||
NetrwKeepj call netrw#ErrorMsg(s:WARNING, "delete(".path.") failed!", 71)
|
||||
endif
|
||||
|
||||
return result
|
||||
endfunction
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:NetrwBufRemover: removes a buffer that: {{{2s
|
||||
" has buffer-id > 1
|
||||
" is unlisted
|
||||
" is unnamed
|
||||
" does not appear in any window
|
||||
fun! s:NetrwBufRemover(bufid)
|
||||
" call Dfunc("s:NetrwBufRemover(".a:bufid.")")
|
||||
" call Decho("buf#".a:bufid." ".((a:bufid > 1)? ">" : "≯")." must be >1 for removal","~".expand("<slnum>"))
|
||||
" call Decho("buf#".a:bufid." is ".(buflisted(a:bufid)? "listed" : "unlisted"),"~".expand("<slnum>"))
|
||||
" call Decho("buf#".a:bufid." has name <".bufname(a:bufid).">","~".expand("<slnum>"))
|
||||
" call Decho("buf#".a:bufid." has winid#".bufwinid(a:bufid),"~".expand("<slnum>"))
|
||||
|
||||
if a:bufid > 1 && !buflisted(a:bufid) && bufloaded(a:bufid) && bufname(a:bufid) == "" && bufwinid(a:bufid) == -1
|
||||
" call Decho("(s:NetrwBufRemover) removing buffer#".a:bufid,"~".expand("<slnum>"))
|
||||
exe "sil! bd! ".a:bufid
|
||||
endif
|
||||
|
||||
" call Dret("s:NetrwBufRemover")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:NetrwEnew: opens a new buffer, passes netrw buffer variables through {{{2
|
||||
fun! s:NetrwEnew(...)
|
||||
@@ -10794,7 +10681,10 @@ fun! s:NetrwEnew(...)
|
||||
" Clean out the last buffer:
|
||||
" Check if the last buffer has # > 1, is unlisted, is unnamed, and does not appear in a window
|
||||
" If so, delete it.
|
||||
call s:NetrwBufRemover(bufnr("$"))
|
||||
let bufid = bufnr('$')
|
||||
if bufid > 1 && !buflisted(bufid) && bufloaded(bufid) && bufname(bufid) == "" && bufwinid(bufid) == -1
|
||||
execute printf("silent! bdelete! %s", bufid)
|
||||
endif
|
||||
|
||||
" grab a function-local-variable copy of buffer variables
|
||||
" call Decho("make function-local copy of netrw variables",'~'.expand("<slnum>"))
|
||||
@@ -11489,23 +11379,6 @@ endfun
|
||||
|
||||
" Deprecated: {{{1
|
||||
|
||||
function! netrw#Launch(args)
|
||||
call netrw#msg#Deprecate('netrw#Launch', 'v180', {'vim': 'dist#vim9#Launch', 'nvim': 'vim.system'})
|
||||
if !has('nvim')
|
||||
call dist#vim9#Launch(args)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! netrw#Open(file)
|
||||
call netrw#msg#Deprecate('netrw#Open', 'v180', {'vim': 'dist#vim9#Open', 'nvim': 'vim.ui.open'})
|
||||
call netrw#os#Open(a:file)
|
||||
endfunction
|
||||
|
||||
function! netrw#WinPath(path)
|
||||
call netrw#msg#Deprecate('netrw#WinPath', 'v180', {})
|
||||
call netrw#fs#WinPath(a:path)
|
||||
endfunction
|
||||
|
||||
" }}}
|
||||
" Settings Restoration: {{{1
|
||||
" ==========================
|
||||
|
||||
@@ -162,6 +162,30 @@ function! netrw#fs#WinPath(path)
|
||||
return path
|
||||
endfunction
|
||||
|
||||
" }}}
|
||||
" netrw#fs#Remove: deletes a file. {{{
|
||||
" Uses Steve Hall's idea to insure that Windows paths stay
|
||||
" acceptable. No effect on Unix paths.
|
||||
|
||||
function! netrw#fs#Remove(path)
|
||||
let path = netrw#fs#WinPath(a:path)
|
||||
|
||||
if !g:netrw_cygwin && has("win32") && exists("+shellslash")
|
||||
let sskeep = &shellslash
|
||||
setl noshellslash
|
||||
let result = delete(path)
|
||||
let &shellslash = sskeep
|
||||
else
|
||||
let result = delete(path)
|
||||
endif
|
||||
|
||||
if result < 0
|
||||
call netrw#ErrorMsg(netrw#LogLevel('WARNING'), printf('delete("%s") failed!', path), 71)
|
||||
endif
|
||||
|
||||
return result
|
||||
endfunction
|
||||
|
||||
" }}}
|
||||
|
||||
" vim:ts=8 sts=4 sw=4 et fdm=marker
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" BREAKAGES IF USED OUTSIDE OF NETRW.VIM ARE EXPECTED.
|
||||
|
||||
let s:deprecation_msgs = []
|
||||
function! netrw#own#Deprecate(name, version, alternatives)
|
||||
function! netrw#msg#Deprecate(name, version, alternatives)
|
||||
" If running on neovim use vim.deprecate
|
||||
if has('nvim')
|
||||
let s:alternative = a:alternatives->get('nvim', v:null)
|
||||
|
||||
@@ -15,7 +15,7 @@ if &cp || exists("g:loaded_netrwSettings")
|
||||
finish
|
||||
endif
|
||||
|
||||
let g:loaded_netrwSettings = "v179"
|
||||
let g:loaded_netrwSettings = "v180"
|
||||
|
||||
" NetrwSettings: {{{
|
||||
|
||||
|
||||
11
runtime/pack/dist/opt/netrw/doc/netrw.txt
vendored
11
runtime/pack/dist/opt/netrw/doc/netrw.txt
vendored
@@ -431,17 +431,6 @@ settings are described below, in |netrw-browser-options|, and in
|
||||
*g:netrw_silent* =0 : transfers done normally
|
||||
=1 : transfers done silently
|
||||
|
||||
*g:netrw_use_errorwindow* =2: messages from netrw will use a popup window
|
||||
Move the mouse and pause to remove the popup window.
|
||||
(default value if popup windows are available)
|
||||
=1 : messages from netrw will use a separate one
|
||||
line window. This window provides reliable
|
||||
delivery of messages.
|
||||
(default value if popup windows are not available)
|
||||
=0 : messages from netrw will use echoerr ;
|
||||
messages don't always seem to show up this
|
||||
way, but one doesn't have to quit the window.
|
||||
|
||||
*g:netrw_cygwin* =1 assume scp under windows is from cygwin. Also
|
||||
permits network browsing to use ls with time and
|
||||
size sorting (default if windows)
|
||||
|
||||
@@ -15,7 +15,7 @@ if &cp || exists("g:loaded_netrwPlugin")
|
||||
finish
|
||||
endif
|
||||
|
||||
let g:loaded_netrwPlugin = "v179"
|
||||
let g:loaded_netrwPlugin = "v180"
|
||||
|
||||
let s:keepcpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
" Vim plugin for showing matching parens
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2025 Mar 14
|
||||
" Last Change: 2025 Apr 08
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" Exit quickly when:
|
||||
|
||||
@@ -3,12 +3,20 @@ vim9script
|
||||
# Vim runtime support library
|
||||
#
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2025 Feb 01
|
||||
# Last Change: 2025 Apr 02
|
||||
|
||||
if exists("g:loaded_openPlugin") || &cp
|
||||
finish
|
||||
endif
|
||||
g:loaded_openPlugin = 1
|
||||
|
||||
import autoload 'dist/vim9.vim'
|
||||
|
||||
command -complete=shellcmd -nargs=1 Launch vim9.Launch(trim(<q-args>))
|
||||
command -complete=file -nargs=1 Open vim9.Open(trim(<q-args>))
|
||||
|
||||
# technically, -nargs=1 is correct, but this throws E480: No match
|
||||
# when the argument contains a wildchar on Windows
|
||||
command -complete=file -nargs=* Open vim9.Open(trim(<q-args>))
|
||||
|
||||
const no_gx = get(g:, "nogx", get(g:, "netrw_nogx", false))
|
||||
if !no_gx
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
" Date: Dec 07, 2021
|
||||
" Maintainer: This runtime file is looking for a new maintainer.
|
||||
" Former Maintainer: Charles E Campbell
|
||||
" Last Change:
|
||||
" 2025 Apr 02 by Vim Project: add *.whl to list of zip extensions (#17038)
|
||||
" License: Vim License (see vim's :help license)
|
||||
" Copyright: Copyright (C) 2005-2016 Charles E. Campbell {{{1
|
||||
" Permission is hereby granted to use and distribute this code,
|
||||
@@ -28,7 +30,7 @@ set cpo&vim
|
||||
" ---------------------------------------------------------------------
|
||||
" Options: {{{1
|
||||
if !exists("g:zipPlugin_ext")
|
||||
let g:zipPlugin_ext='*.aar,*.apk,*.celzip,*.crtx,*.docm,*.docx,*.dotm,*.dotx,*.ear,*.epub,*.gcsx,*.glox,*.gqsx,*.ja,*.jar,*.kmz,*.odb,*.odc,*.odf,*.odg,*.odi,*.odm,*.odp,*.ods,*.odt,*.otc,*.otf,*.otg,*.oth,*.oti,*.otp,*.ots,*.ott,*.oxt,*.potm,*.potx,*.ppam,*.ppsm,*.ppsx,*.pptm,*.pptx,*.sldx,*.thmx,*.vdw,*.war,*.wsz,*.xap,*.xlam,*.xlsb,*.xlsm,*.xlsx,*.xltm,*.xltx,*.xpi,*.zip'
|
||||
let g:zipPlugin_ext='*.aar,*.apk,*.celzip,*.crtx,*.docm,*.docx,*.dotm,*.dotx,*.ear,*.epub,*.gcsx,*.glox,*.gqsx,*.ja,*.jar,*.kmz,*.odb,*.odc,*.odf,*.odg,*.odi,*.odm,*.odp,*.ods,*.odt,*.otc,*.otf,*.otg,*.oth,*.oti,*.otp,*.ots,*.ott,*.oxt,*.potm,*.potx,*.ppam,*.ppsm,*.ppsx,*.pptm,*.pptx,*.sldx,*.thmx,*.vdw,*.war,*.whl,*.wsz,*.xap,*.xlam,*.xlsb,*.xlsm,*.xlsx,*.xltm,*.xltx,*.xpi,*.zip'
|
||||
endif
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
" Maintainer: Avid Seeker <avidseeker7@protonmail.com>
|
||||
" Andy Hammerlindl
|
||||
" Last Change: 2022 Jan 05
|
||||
" 2025 Apr 16 by Vim Project (set 'cpoptions' for line continuation, #17121)
|
||||
|
||||
" Hacked together from Bram Moolenaar's C syntax file, and Claudio Fleiner's
|
||||
" Java syntax file.
|
||||
@@ -11,6 +12,9 @@ if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" useful C/C++/Java keywords
|
||||
syn keyword asyStatement break return continue unravel
|
||||
syn keyword asyConditional if else
|
||||
@@ -241,3 +245,5 @@ hi def link asyTodo Todo
|
||||
hi def link asyPathSpec Statement
|
||||
|
||||
let b:current_syntax = "asy"
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
151
runtime/syntax/dax.vim
Normal file
151
runtime/syntax/dax.vim
Normal file
@@ -0,0 +1,151 @@
|
||||
" Vim syntax file
|
||||
" Language: Data Analysis Expressions (DAX)
|
||||
" Maintainer: Anarion Dunedain <anarion80@gmail.com>
|
||||
" Last Change:
|
||||
" 2025 Mar 28 First version
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
let s:keepcpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" There are DAX functions with dot in the name (like VARX.S)
|
||||
setlocal iskeyword+=.
|
||||
" DAX is case insensitive
|
||||
syn case ignore
|
||||
|
||||
" DAX statements
|
||||
syn keyword daxStatement DEFINE EVALUATE MEASURE RETURN VAR
|
||||
syn match daxStatement "ORDER\ BY"
|
||||
syn match daxStatement "START\ AT"
|
||||
|
||||
" TODO
|
||||
syn keyword daxTodo FIXME NOTE TODO OPTIMIZE XXX HACK contained
|
||||
|
||||
" DAX functions
|
||||
syn keyword daxFunction
|
||||
\ ABS ACCRINT ACCRINTM ACOS ACOSH ACOT ACOTH
|
||||
\ ADDCOLUMNS ADDMISSINGITEMS ALL ALLCROSSFILTERED ALLEXCEPT ALLNOBLANKROW ALLSELECTED
|
||||
\ AMORDEGRC AMORLINC AND APPROXIMATEDISTINCTCOUNT ASIN ASINH ATAN
|
||||
\ ATANH AVERAGE AVERAGEA AVERAGEX BETA.DIST BETA.INV BITAND
|
||||
\ BITLSHIFT BITOR BITRSHIFT BITXOR BLANK CALCULATE CALCULATETABLE
|
||||
\ CALENDAR CALENDARAUTO CEILING CHISQ.DIST CHISQ.DIST.RT CHISQ.INV CHISQ.INV.RT
|
||||
\ CLOSINGBALANCEMONTH CLOSINGBALANCEQUARTER CLOSINGBALANCEYEAR COALESCE COLUMNSTATISTICS COMBIN COMBINA
|
||||
\ COMBINEVALUES CONCATENATE CONCATENATEX CONFIDENCE.NORM CONFIDENCE.T CONTAINSROW
|
||||
\ CONTAINSSTRING CONTAINSSTRINGEXACT CONVERT COS COSH COT COTH
|
||||
\ COUNT COUNTA COUNTAX COUNTBLANK COUNTROWS COUNTX COUPDAYBS
|
||||
\ COUPDAYS COUPDAYSNC COUPNCD COUPNUM COUPPCD CROSSFILTER CROSSJOIN
|
||||
\ CUMIPMT CUMPRINC CURRENCY CURRENTGROUP CUSTOMDATA DATATABLE DATE
|
||||
\ DATEADD DATEDIFF DATESBETWEEN DATESINPERIOD DATESMTD DATESQTD DATESYTD
|
||||
\ DATEVALUE DAY DB DDB DEGREES DETAILROWS DISC
|
||||
\ DISTINCT column DISTINCT table DISTINCTCOUNT DISTINCTCOUNTNOBLANK DIVIDE DOLLARDE DOLLARFR
|
||||
\ DURATION EARLIER EARLIEST EDATE EFFECT ENDOFMONTH ENDOFQUARTER
|
||||
\ ENDOFYEAR EOMONTH ERROR EVALUATEANDLOG EVEN EXACT EXCEPT
|
||||
\ EXP EXPON.DIST FACT FALSE FILTER FILTERS FIND
|
||||
\ FIRST FIRSTDATE FIXED FLOOR FORMAT FV GCD
|
||||
\ GENERATE GENERATEALL GENERATESERIES GEOMEAN GEOMEANX GROUPBY HASONEFILTER
|
||||
\ HASONEVALUE HOUR IF IF.EAGER IFERROR IGNORE INDEX
|
||||
\ INFO.ALTERNATEOFDEFINITIONS INFO.ANNOTATIONS INFO.ATTRIBUTEHIERARCHIES INFO.ATTRIBUTEHIERARCHYSTORAGES INFO.CALCDEPENDENCY INFO.CALCULATIONGROUPS INFO.CALCULATIONITEMS
|
||||
\ INFO.CATALOGS INFO.CHANGEDPROPERTIES INFO.COLUMNPARTITIONSTORAGES INFO.COLUMNPERMISSIONS INFO.COLUMNS INFO.COLUMNSTORAGES INFO.CSDLMETADATA
|
||||
\ INFO.CULTURES INFO.DATACOVERAGEDEFINITIONS INFO.DATASOURCES INFO.DELTATABLEMETADATASTORAGES INFO.DEPENDENCIES INFO.DETAILROWSDEFINITIONS INFO.DICTIONARYSTORAGES
|
||||
\ INFO.EXCLUDEDARTIFACTS INFO.EXPRESSIONS INFO.EXTENDEDPROPERTIES INFO.FORMATSTRINGDEFINITIONS INFO.FUNCTIONS INFO.GENERALSEGMENTMAPSEGMENTMETADATASTORAGES INFO.GROUPBYCOLUMNS
|
||||
\ INFO.HIERARCHIES INFO.HIERARCHYSTORAGES INFO.KPIS INFO.LEVELS INFO.LINGUISTICMETADATA INFO.MEASURES INFO.MODEL
|
||||
\ INFO.OBJECTTRANSLATIONS INFO.PARQUETFILESTORAGES INFO.PARTITIONS INFO.PARTITIONSTORAGES INFO.PERSPECTIVECOLUMNS INFO.PERSPECTIVEHIERARCHIES INFO.PERSPECTIVEMEASURES
|
||||
\ INFO.PERSPECTIVES INFO.PERSPECTIVETABLES INFO.PROPERTIES INFO.QUERYGROUPS INFO.REFRESHPOLICIES INFO.RELATEDCOLUMNDETAILS INFO.RELATIONSHIPINDEXSTORAGES
|
||||
\ INFO.RELATIONSHIPS INFO.RELATIONSHIPSTORAGES INFO.ROLEMEMBERSHIPS INFO.ROLES INFO.SEGMENTMAPSTORAGES INFO.SEGMENTSTORAGES INFO.STORAGEFILES
|
||||
\ INFO.STORAGEFOLDERS INFO.STORAGETABLECOLUMNS INFO.STORAGETABLECOLUMNSEGMENTS INFO.STORAGETABLES INFO.TABLEPERMISSIONS INFO.TABLES INFO.TABLESTORAGES
|
||||
\ INFO.VARIATIONS INFO.VIEW.COLUMNS INFO.VIEW.MEASURES INFO.VIEW.RELATIONSHIPS INFO.VIEW.TABLES INT INTERSECT
|
||||
\ INTRATE IPMT ISAFTER ISBLANK ISCROSSFILTERED ISEMPTY ISERROR
|
||||
\ ISEVEN ISFILTERED ISINSCOPE ISLOGICAL ISNONTEXT ISNUMBER ISO.CEILING
|
||||
\ ISODD ISONORAFTER ISPMT ISSELECTEDMEASURE ISSUBTOTAL ISTEXT KEEPFILTERS
|
||||
\ LAST LASTDATE LCM LEFT LEN LINEST LINESTX
|
||||
\ LN LOG LOG10 LOOKUPVALUE LOWER MATCHBY MAX
|
||||
\ MAXA MAXX MDURATION MEDIAN MEDIANX MID MIN
|
||||
\ MINA MINUTE MINX MOD MONTH MOVINGAVERAGE MROUND
|
||||
\ NATURALINNERJOIN NATURALLEFTOUTERJOIN NETWORKDAYS NEXT NEXTDAY NEXTMONTH NEXTQUARTER
|
||||
\ NEXTYEAR NOMINAL NONVISUAL NORM.DIST NORM.INV NORM.S.DIST NORM.S.INV
|
||||
\ NOT NOW NPER ODD ODDFPRICE ODDFYIELD ODDLPRICE
|
||||
\ ODDLYIELD OFFSET OPENINGBALANCEMONTH OPENINGBALANCEQUARTER OPENINGBALANCEYEAR OR ORDERBY
|
||||
\ PARALLELPERIOD PARTITIONBY PATH PATHCONTAINS PATHITEM PATHITEMREVERSE PATHLENGTH
|
||||
\ PDURATION PERCENTILE.EXC PERCENTILE.INC PERCENTILEX.EXC PERCENTILEX.INC PERMUT PI
|
||||
\ PMT POISSON.DIST POWER PPMT PREVIOUS PREVIOUSDAY PREVIOUSMONTH
|
||||
\ PREVIOUSQUARTER PREVIOUSYEAR PRICE PRICEDISC PRICEMAT PRODUCT PRODUCTX
|
||||
\ PV QUARTER QUOTIENT RADIANS RAND RANDBETWEEN RANGE
|
||||
\ RANK RANK.EQ RANKX RATE RECEIVED RELATED RELATEDTABLE
|
||||
\ REMOVEFILTERS REPLACE REPT RIGHT ROLLUP ROLLUPADDISSUBTOTAL ROLLUPGROUP
|
||||
\ ROLLUPISSUBTOTAL ROUND ROUNDDOWN ROUNDUP ROW ROWNUMBER RRI
|
||||
\ RUNNINGSUM SAMEPERIODLASTYEAR SAMPLE SEARCH SECOND SELECTCOLUMNS SELECTEDMEASURE
|
||||
\ SELECTEDMEASUREFORMATSTRING SELECTEDMEASURENAME SELECTEDVALUE SIGN SIN SINH SLN
|
||||
\ SQRT SQRTPI STARTOFMONTH STARTOFQUARTER STARTOFYEAR STDEV.P STDEV.S
|
||||
\ STDEVX.P STDEVX.S SUBSTITUTE SUBSTITUTEWITHINDEX SUM SUMMARIZE SUMMARIZECOLUMNS
|
||||
\ SUMX SWITCH SYD T.DIST T.DIST.2T T.DIST.RT T.INV
|
||||
\ T.INV.2t TAN TANH TBILLEQ TBILLPRICE TBILLYIELD TIME
|
||||
\ TIMEVALUE TOCSV TODAY TOJSON TOPN TOTALMTD TOTALQTD
|
||||
\ TOTALYTD TREATAS TRIM TRUE TRUNC Table Constructor UNICHAR
|
||||
\ UNICODE UNION UPPER USERCULTURE USERELATIONSHIP USERNAME USEROBJECTID
|
||||
\ USERPRINCIPALNAME UTCNOW UTCTODAY VALUE VALUES VAR.P VAR.S
|
||||
\ VARX.P VARX.S VDB WEEKDAY WEEKNUM WINDOW XIRR
|
||||
\ XNPV YEAR YEARFRAC YIELD YIELDDISC YIELDMAT
|
||||
|
||||
" CONTAINS is a vim syntax keyword and can't be a defined keyword
|
||||
syn match daxFunction "CONTAINS"
|
||||
|
||||
" Numbers
|
||||
" integer number, or floating point number without a dot.
|
||||
syn match daxNumber "\<\d\+\>"
|
||||
" floating point number, with dot
|
||||
syn match daxNumber "\<\d\+\.\d*\>"
|
||||
|
||||
syn match daxFloat "[-+]\=\<\d\+[eE][\-+]\=\d\+"
|
||||
syn match daxFloat "[-+]\=\<\d\+\.\d*\([eE][\-+]\=\d\+\)\="
|
||||
syn match daxFloat "[-+]\=\<\.\d\+\([eE][\-+]\=\d\+\)\="
|
||||
|
||||
" String and Character constants
|
||||
syn region daxString start=+"+ end=+"+
|
||||
|
||||
" DAX Table and Column names
|
||||
syn region daxTable start=+'+ms=s+1 end=+'+me=e-1
|
||||
syn region daxColumn matchgroup=daxParen start=/\[/ end=/\]/
|
||||
|
||||
" Operators
|
||||
syn match daxOperator "+"
|
||||
syn match daxOperator "-"
|
||||
syn match daxOperator "*"
|
||||
syn match daxOperator "/"
|
||||
syn match daxOperator "\^"
|
||||
syn match daxOperator "\ NOT(\s\|\\)"
|
||||
syn match daxOperator "\ IN\ "
|
||||
syn match daxOperator "&&"
|
||||
syn match daxOperator "&"
|
||||
syn match daxOperator "\\|\\|"
|
||||
syn match daxOperator "[<>]=\="
|
||||
syn match daxOperator "<>"
|
||||
syn match daxOperator "="
|
||||
syn match daxOperator ">"
|
||||
syn match daxOperator "<"
|
||||
|
||||
" Comments
|
||||
syn region daxComment start="\(^\|\s\)\//" end="$" contains=daxTodo
|
||||
syn region daxComment start="/\*" end="\*/" contains=daxTodo
|
||||
|
||||
" Define highlighting
|
||||
hi def link daxComment Comment
|
||||
hi def link daxNumber Number
|
||||
hi def link daxFloat Float
|
||||
hi def link daxString String
|
||||
hi def link daxStatement Keyword
|
||||
hi def link daxOperator Operator
|
||||
hi def link daxFunction Function
|
||||
hi def link daxTable Number
|
||||
hi def link daxColumn Statement
|
||||
hi def link daxParen Delimiter
|
||||
hi def link daxTodo Todo
|
||||
|
||||
let b:current_syntax = "dax"
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet! s:keepcpo
|
||||
|
||||
" vim: ts=8
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file generator
|
||||
" Language: Vim script
|
||||
" Maintainer: Hirohito Higashi (h_east)
|
||||
" Last Change: 2025 Mar 09
|
||||
" Last Change: 2025 Apr 23
|
||||
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
@@ -257,7 +257,6 @@ function s:get_vim_command_type(cmd_name)
|
||||
abstract
|
||||
append
|
||||
augroup
|
||||
augroup
|
||||
autocmd
|
||||
behave
|
||||
call
|
||||
@@ -284,14 +283,22 @@ function s:get_vim_command_type(cmd_name)
|
||||
enum
|
||||
execute
|
||||
export
|
||||
filter
|
||||
final
|
||||
for
|
||||
function
|
||||
grep
|
||||
grepadd
|
||||
helpgrep
|
||||
if
|
||||
interface
|
||||
insert
|
||||
let
|
||||
loadkeymap
|
||||
lhelpgrep
|
||||
lvimgrep
|
||||
lvimgrepadd
|
||||
make
|
||||
map
|
||||
mapclear
|
||||
match
|
||||
@@ -300,6 +307,7 @@ function s:get_vim_command_type(cmd_name)
|
||||
normal
|
||||
popup
|
||||
public
|
||||
redir
|
||||
return
|
||||
set
|
||||
setglobal
|
||||
@@ -307,6 +315,7 @@ function s:get_vim_command_type(cmd_name)
|
||||
sleep
|
||||
smagic
|
||||
snomagic
|
||||
sort
|
||||
static
|
||||
substitute
|
||||
syntax
|
||||
@@ -317,6 +326,8 @@ function s:get_vim_command_type(cmd_name)
|
||||
unmap
|
||||
var
|
||||
vim9script
|
||||
vimgrep
|
||||
vimgrepadd
|
||||
while
|
||||
EOL
|
||||
" Required for original behavior
|
||||
@@ -390,6 +401,10 @@ function s:parse_vim_event(li)
|
||||
call add(a:li, copy(item))
|
||||
endfor
|
||||
|
||||
" "User" requires a user defined argument event.
|
||||
" (Separately specified in vim.vim.base).
|
||||
call filter(a:li, {idx, val -> val.name !=# 'User'})
|
||||
|
||||
quit!
|
||||
|
||||
if empty(a:li)
|
||||
@@ -733,9 +748,9 @@ function s:update_syntax_vim_file(vim_info)
|
||||
let lnum = s:search_and_check('vimVarName', base_fname, str_info)
|
||||
let lnum = s:append_syn_any(lnum, str_info, li)
|
||||
|
||||
" vimUserAttrbCmplt
|
||||
" vimUserAttrComplete
|
||||
let li = a:vim_info.compl_name
|
||||
let lnum = s:search_and_check('vimUserCmdAttrCmplt', base_fname, str_info)
|
||||
let lnum = s:search_and_check('vimUserCmdAttrComplete', base_fname, str_info)
|
||||
let lnum = s:append_syn_any(lnum, str_info, li)
|
||||
|
||||
" vimUserAttrbAddr
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" Language: Vim script
|
||||
" Maintainer: Hirohito Higashi <h.east.727 ATMARK gmail.com>
|
||||
" Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2025 Mar 17
|
||||
" Last Change: 2025 Apr 23
|
||||
" Former Maintainer: Charles E. Campbell
|
||||
|
||||
" DO NOT CHANGE DIRECTLY.
|
||||
@@ -78,7 +78,10 @@ syn match vimOptionVarName contained "t_k;"
|
||||
|
||||
" AutoCmd Events {{{2
|
||||
syn case ignore
|
||||
" GEN_SYN_VIM: vimAutoEvent, START_STR='syn keyword vimAutoEvent contained', END_STR=''
|
||||
" GEN_SYN_VIM: vimAutoEvent, START_STR='syn keyword vimAutoEvent contained', END_STR='skipwhite nextgroup=vimAutoEventSep,@vimAutocmdPattern'
|
||||
|
||||
syn keyword vimAutoEvent contained User skipwhite nextgroup=vimUserAutoEvent
|
||||
syn match vimUserAutoEvent contained "\<\h\w*\>" skipwhite nextgroup=vimAutoEventSep,@vimAutocmdPattern
|
||||
|
||||
" Highlight commonly used Groupnames {{{2
|
||||
syn keyword vimGroup contained Comment Constant String Character Number Boolean Float Identifier Function Statement Conditional Repeat Label Operator Keyword Exception PreProc Include Define Macro PreCondit Type StorageClass Structure Typedef Special SpecialChar Tag Delimiter SpecialComment Debug Underlined Ignore Error Todo
|
||||
@@ -230,7 +233,7 @@ syn match vimNumber '\<0z\%(\x\x\)\+\%(\.\%(\x\x\)\+\)*' skipwhite nextgroup=vim
|
||||
syn case match
|
||||
|
||||
" All vimCommands are contained by vimIsCommand. {{{2
|
||||
syn cluster vimCmdList contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimCall,vimCatch,vimConst,vimDebuggreedy,vimDef,vimDefFold,vimDelcommand,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimFuncFold,vimGlobal,vimHighlight,vimLet,vimLoadkeymap,vimLockvar,vimMap,vimMark,vimMatch,vimNotFunc,vimNormal,vimSet,vimSleep,vimSyntax,vimThrow,vimUnlet,vimUnlockvar,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate,@vim9CmdList,@vimExUserCmdList
|
||||
syn cluster vimCmdList contains=vimAbb,vimAddress,vimAutocmd,vimAugroup,vimBehave,vimCall,vimCatch,vimConst,vimDoautocmd,vimDebuggreedy,vimDef,vimDefFold,vimDelcommand,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimExFilter,vimFor,vimFunction,vimFuncFold,vimGrep,vimGrepAdd,vimGlobal,vimHelpgrep,vimHighlight,vimLet,vimLoadkeymap,vimLockvar,vimMake,vimMap,vimMark,vimMatch,vimNotFunc,vimNormal,vimRedir,vimSet,vimSleep,vimSort,vimSyntax,vimThrow,vimUnlet,vimUnlockvar,vimUnmap,vimUserCmd,vimVimgrep,vimVimgrepadd,vimMenu,vimMenutranslate,@vim9CmdList,@vimExUserCmdList
|
||||
syn cluster vim9CmdList contains=vim9Abstract,vim9Class,vim9Const,vim9Enum,vim9Export,vim9Final,vim9For,vim9Interface,vim9Type,vim9Var
|
||||
syn match vimCmdSep "\\\@1<!|" skipwhite nextgroup=@vimCmdList,vimSubst1,vimFunc
|
||||
syn match vimCmdSep ":\+" skipwhite nextgroup=@vimCmdList,vimSubst1
|
||||
@@ -319,21 +322,32 @@ syn keyword vimFTOption contained detect indent off on plugin
|
||||
" Augroup : vimAugroupError removed because long augroups caused sync'ing problems. {{{2
|
||||
" ======= : Trade-off: Increasing synclines with slower editing vs augroup END error checking.
|
||||
syn cluster vimAugroupList contains=@vimCmdList,vimFilter,vimFunc,vimLineComment,vimSpecFile,vimOper,vimNumber,vimOperParen,@vimComment,vimString,vimSubst,vimRegister,vimCmplxRepeat,vimNotation,vimCtrlChar,vimContinue
|
||||
syn match vimAugroup "\<aug\%[roup]\>" contains=vimAugroupKey,vimAugroupBang skipwhite nextgroup=vimAugroupBang,vimAutoCmdGroup
|
||||
if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'a'
|
||||
syn region vimAugroup fold start="\<aug\%[roup]\>\ze\s\+\%([eE][nN][dD]\)\@!\S\+" matchgroup=vimAugroupKey end="\<aug\%[roup]\>\ze\s\+[eE][nN][dD]\>" contains=vimAutoCmd,@vimAugroupList,vimAugroupkey skipwhite nextgroup=vimAugroupEnd
|
||||
else
|
||||
syn region vimAugroup start="\<aug\%[roup]\>\ze\s\+\%([eE][nN][dD]\)\@!\S\+" matchgroup=vimAugroupKey end="\<aug\%[roup]\>\ze\s\+[eE][nN][dD]\>" contains=vimAutoCmd,@vimAugroupList,vimAugroupkey skipwhite nextgroup=vimAugroupEnd
|
||||
endif
|
||||
|
||||
" define
|
||||
VimFolda syn region vimAugroup
|
||||
\ start="\<aug\%[roup]\>\ze\s\+\%([eE][nN][dD]\)\@!\S\+"
|
||||
\ matchgroup=vimAugroupKey
|
||||
\ end="\<aug\%[roup]\>\ze\s\+[eE][nN][dD]\>"
|
||||
\ skipwhite nextgroup=vimAugroupEnd
|
||||
\ contains=vimAutocmd,@vimAugroupList,vimAugroupkey
|
||||
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noaugrouperror")
|
||||
syn match vimAugroupError "\<aug\%[roup]\>\s\+[eE][nN][dD]\>"
|
||||
syn match vimAugroupError "\<aug\%[roup]\>\s\+[eE][nN][dD]\>"
|
||||
endif
|
||||
|
||||
syn match vimAutoCmdGroup contained "\S\+"
|
||||
syn match vimAugroupEnd contained "\c\<END\>"
|
||||
syn match vimAugroupBang contained "\a\@1<=!" skipwhite nextgroup=vimAutoCmdGroup
|
||||
syn keyword vimAugroupKey contained aug[roup] skipwhite nextgroup=vimAugroupBang,vimAutoCmdGroup,vimAugroupEnd
|
||||
" TODO: Vim9 comment
|
||||
syn match vimAugroupName contained "\%(\\["|[:space:]]\|[^"|[:space:]]\)\+"
|
||||
syn match vimAugroupEnd contained "\c\<END\>"
|
||||
syn match vimAugroupBang contained "\a\@1<=!" skipwhite nextgroup=vimAugroupName
|
||||
syn keyword vimAugroupKey contained aug[roup] skipwhite nextgroup=vimAugroupBang,vimAugroupName,vimAugroupEnd
|
||||
|
||||
" remove
|
||||
syn match vimAugroup "\<aug\%[roup]!" skipwhite nextgroup=vimAugroupName contains=vimAugroupKey,vimAugroupBang
|
||||
|
||||
" list
|
||||
VimL syn match vimAugroup "\<aug\%[roup]\>\ze\s*\%(["|]\|$\)" skipwhite nextgroup=vimCmdSep,vimComment contains=vimAugroupKey
|
||||
Vim9 syn match vimAugroup "\<aug\%[roup]\>\ze\s*\%([#|]\|$\)" skipwhite nextgroup=vimCmdSep,vim9Comment contains=vimAugroupKey
|
||||
|
||||
" hi def link vimAugroupEnd Special
|
||||
" Operators: {{{2
|
||||
" =========
|
||||
syn cluster vimOperGroup contains=@vimContinue,@vimExprList,vim9Comment
|
||||
@@ -361,28 +375,22 @@ syn cluster vimOperContinue contains=vimOperContinue,vimOperContinueComment
|
||||
" Lambda Expressions: {{{2
|
||||
" ==================
|
||||
syn match vimLambdaOperator contained "->" skipwhite nextgroup=@vimExprList
|
||||
syn region vimLambda contained matchgroup=Delimiter start="{\ze[[:space:][:alnum:]_.,]*->" end="}" end="$" skip=+\s*\n\s*\\\|\s*\n\s*"\\ + contains=@vimContinue,@vimExprList,vimLambdaParams
|
||||
syn match vimLambdaParams contained "{\@1<=.\{-}\%(->\)\@=" nextgroup=vimLambdaOperator contains=vimFuncParam
|
||||
syn region vimLambda contained
|
||||
\ matchgroup=vimLambdaBrace
|
||||
\ start=+{\ze[[:space:][:alnum:]_.,]*\%(\n\s*\%(\\[[:space:][:alnum:]_.,]*\|"\\ .*\)\)*->+
|
||||
\ skip=+\n\s*\%(\\\|"\\ \)+
|
||||
\ end="}" end="$"
|
||||
\ contains=@vimContinue,@vimExprList,vimLambdaParams
|
||||
syn match vimLambdaParams contained "\%({\n\=\)\@1<=\_.\{-}\%(->\)\@=" nextgroup=vimLambdaOperator contains=@vimContinue,vimFuncParam
|
||||
|
||||
syn match vim9LambdaOperator contained "=>" skipwhite skipempty nextgroup=@vimExprList,vim9LambdaBlock,vim9LambdaOperatorComment
|
||||
syn match vim9LambdaParamsParen contained "[()]"
|
||||
syn region vim9LambdaParams contained
|
||||
\ matchgroup=vim9LambdaParamsParen
|
||||
\ start="(\ze\s*\(\.\.\.\)\=\h\w*[,:]\%(\s\|$\)"
|
||||
\ start="(\ze\s*\n
|
||||
"\ line continuations
|
||||
\\%(\s*\%(#\\ .*\|\\\s*\)\n\)*\s*\\\s*
|
||||
"\ parameter names
|
||||
\\(\.\.\.\)\=\h\w*[,:]\%(\s\|$\)"
|
||||
\ end=")\ze\%(:\s\|\s\+=>\)"
|
||||
\ matchgroup=vimContinue
|
||||
\ end="^\s*\\\ze\s\+=>"
|
||||
\ skipwhite nextgroup=vim9LambdaReturnType,vim9LambdaOperator
|
||||
\ contains=@vim9Continue,vimDefParam,vim9LambdaParamsParen
|
||||
syn match vim9LambdaParams contained "(\s*)\|(\s*\(\.\.\.\)\=\h\w*\s*)\ze\%(:\s\|\s\+=>\)" skipwhite nextgroup=vim9LambdaReturnType,vim9LambdaOperator contains=vimDefParam,vim9LambdaParamsParen
|
||||
|
||||
syn region vim9LambdaReturnType contained start=":\s" end="$" end="\ze#" end="\ze=>" skipwhite skipempty nextgroup=vim9LambdaOperator,vim9LamdaOperatorComment contains=vimTypeSep transparent
|
||||
syn region vim9LambdaBlock contained matchgroup=vimSep start="{" end="^\s*\zs}" contains=@vimDefBodyList
|
||||
syn match vim9LambdaOperator contained "=>" skipwhite skipempty nextgroup=@vimExprList,vim9LambdaBlock,vim9LambdaOperatorComment
|
||||
syn match vim9LambdaParen contained "[()]"
|
||||
syn match vim9LambdaParams contained
|
||||
\ "(\%(\<func(\|[^(]\)*\%(\n\s*\\\%(\<func(\|[^(]\)*\|\n\s*#\\ .*\)*\ze\s\+=>"
|
||||
\ skipwhite nextgroup=vim9LambdaOperator
|
||||
\ contains=@vim9Continue,vimDefParam,vim9LambdaParen,vim9LambdaReturnType
|
||||
syn region vim9LambdaReturnType contained start=")\@<=:\s" end="\ze\s*#" end="\ze\s*=>" contains=@vim9Continue,@vimType transparent
|
||||
syn region vim9LambdaBlock contained matchgroup=vimSep start="{" end="^\s*\zs}" contains=@vimDefBodyList
|
||||
|
||||
syn match vim9LambdaOperatorComment contained "#.*" skipwhite skipempty nextgroup=@vimExprList,vim9LambdaBlock,vim9LambdaOperatorComment
|
||||
|
||||
@@ -457,9 +465,10 @@ syn match vimParamType contained ":\s" skipwhite skipnl nextgroup=@vimType conta
|
||||
|
||||
syn match vimTypeSep contained ":\%(\s\|\n\)\@=" skipwhite nextgroup=@vimType
|
||||
syn keyword vimType contained any blob bool channel float job number string void
|
||||
syn match vimType contained "\<func\>"
|
||||
syn region vimCompoundType contained matchgroup=vimType start="\<func(" end=")" nextgroup=vimTypeSep contains=@vimType oneline transparent
|
||||
syn region vimCompoundType contained matchgroup=vimType start="\<\%(list\|dict\)<" end=">" contains=@vimType oneline transparent
|
||||
syn match vimType contained "\<\%(func\)\>"
|
||||
syn region vimCompoundType contained matchgroup=vimType start="\<func(" end=")" nextgroup=vimTypeSep contains=@vim9Continue,@vimType transparent
|
||||
syn region vimCompoundType contained matchgroup=vimType start="\<tuple<" end=">" contains=@vim9Continue,@vimType transparent
|
||||
syn region vimCompoundType contained matchgroup=vimType start="\<\%(list\|dict\)<" end=">" contains=@vimType oneline transparent
|
||||
syn match vimUserType contained "\<\%(\h\w*\.\)*\u\w*\>"
|
||||
|
||||
syn cluster vimType contains=vimType,vimCompoundType,vimUserType
|
||||
@@ -619,22 +628,30 @@ syn match vimSpecFileMod "\(:[phtre]\)\+" contained
|
||||
" User-Specified Commands: {{{2
|
||||
" =======================
|
||||
syn cluster vimUserCmdList contains=@vimCmdList,vimCmplxRepeat,@vimComment,vimCtrlChar,vimEscapeBrace,vimFunc,vimNotation,vimNumber,vimOper,vimRegister,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange
|
||||
syn keyword vimUserCmdKey contained com[mand]
|
||||
syn match vimUserCmdName contained "\<\u[[:alnum:]]*\>" skipwhite nextgroup=vimUserCmdBlock
|
||||
syn match vimUserCmd "\<com\%[mand]\>!\=.*$" contains=vimUserCmdKey,vimBang,vimUserCmdAttr,vimUserCmdAttrError,vimUserCmdName,@vimUserCmdList,vimComFilter
|
||||
syn match vimUserCmdAttrError contained "-\a\+\ze\%(\s\|=\)"
|
||||
syn match vimUserCmdAttr contained "-addr=" contains=vimUserCmdAttrKey nextgroup=vimUserCmdAttrAddr
|
||||
syn match vimUserCmdAttr contained "-bang\>" contains=vimUserCmdAttrKey
|
||||
syn match vimUserCmdAttr contained "-bar\>" contains=vimUserCmdAttrKey
|
||||
syn match vimUserCmdAttr contained "-buffer\>" contains=vimUserCmdAttrKey
|
||||
syn match vimUserCmdAttr contained "-complete=" contains=vimUserCmdAttrKey nextgroup=vimUserCmdAttrCmplt,vimUserCmdError
|
||||
syn match vimUserCmdAttr contained "-count\>" contains=vimUserCmdAttrKey
|
||||
syn match vimUserCmdAttr contained "-count=" contains=vimUserCmdAttrKey nextgroup=vimNumber
|
||||
syn match vimUserCmdAttr contained "-keepscript\>" contains=vimUserCmdAttrKey
|
||||
syn match vimUserCmdAttr contained "-nargs=" contains=vimUserCmdAttrKey nextgroup=vimUserCmdAttrNargs
|
||||
syn match vimUserCmdAttr contained "-range\>" contains=vimUserCmdAttrKey
|
||||
syn match vimUserCmdAttr contained "-range=" contains=vimUserCmdAttrKey nextgroup=vimNumber,vimUserCmdAttrRange
|
||||
syn match vimUserCmdAttr contained "-register\>" contains=vimUserCmdAttrKey
|
||||
|
||||
syn match vimUserCmd "\<com\%[mand]\>!\=" skipwhite nextgroup=vimUserCmdAttrs,vimUserCmdName contains=vimBang
|
||||
syn match vimUserCmd +\<com\%[mand]\>!\=\ze\s*\n\s*\%(\\\|["#]\\ \)+ skipwhite skipnl nextgroup=vimUserCmdAttrs,vimUserCmdName contains=vimBang
|
||||
|
||||
syn region vimUserCmdAttrs contained
|
||||
\ start="-\l"
|
||||
\ start=+^\s*\%(\\\|["#]\\ \)+
|
||||
\ end="\ze\s\u"
|
||||
\ skipwhite nextgroup=vimUserCmdName
|
||||
\ contains=@vimContinue,vimUserCmdAttr,vimUserCmdAttrError
|
||||
\ transparent
|
||||
syn match vimUserCmdAttrError contained "-\a\+\ze\%(\s\|=\)"
|
||||
syn match vimUserCmdAttr contained "-addr=" contains=vimUserCmdAttrKey nextgroup=vimUserCmdAttrAddr
|
||||
syn match vimUserCmdAttr contained "-bang\>" contains=vimUserCmdAttrKey
|
||||
syn match vimUserCmdAttr contained "-bar\>" contains=vimUserCmdAttrKey
|
||||
syn match vimUserCmdAttr contained "-buffer\>" contains=vimUserCmdAttrKey
|
||||
syn match vimUserCmdAttr contained "-complete=" contains=vimUserCmdAttrKey nextgroup=vimUserCmdAttrComplete,vimUserCmdError
|
||||
syn match vimUserCmdAttr contained "-count\>" contains=vimUserCmdAttrKey
|
||||
syn match vimUserCmdAttr contained "-count=" contains=vimUserCmdAttrKey nextgroup=vimNumber
|
||||
syn match vimUserCmdAttr contained "-keepscript\>" contains=vimUserCmdAttrKey
|
||||
syn match vimUserCmdAttr contained "-nargs=" contains=vimUserCmdAttrKey nextgroup=vimUserCmdAttrNargs
|
||||
syn match vimUserCmdAttr contained "-range\>" contains=vimUserCmdAttrKey
|
||||
syn match vimUserCmdAttr contained "-range=" contains=vimUserCmdAttrKey nextgroup=vimNumber,vimUserCmdAttrRange
|
||||
syn match vimUserCmdAttr contained "-register\>" contains=vimUserCmdAttrKey
|
||||
|
||||
syn match vimUserCmdAttrNargs contained "[01*?+]"
|
||||
syn match vimUserCmdAttrRange contained "%"
|
||||
@@ -645,17 +662,34 @@ endif
|
||||
|
||||
syn case ignore
|
||||
syn keyword vimUserCmdAttrKey contained a[ddr] ban[g] bar bu[ffer] com[plete] cou[nt] k[eepscript] n[args] ra[nge] re[gister]
|
||||
" GEN_SYN_VIM: vimUserCmdAttrCmplt, START_STR='syn keyword vimUserCmdAttrCmplt contained', END_STR=''
|
||||
syn keyword vimUserCmdAttrCmplt contained custom customlist nextgroup=vimUserCmdAttrCmpltFunc,vimUserCmdError
|
||||
syn match vimUserCmdAttrCmpltFunc contained ",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w*\%([.#]\h\w*\)\+\|\h\w*\)"hs=s+1 nextgroup=vimUserCmdError
|
||||
|
||||
" GEN_SYN_VIM: vimUserCmdAttrComplete, START_STR='syn keyword vimUserCmdAttrComplete contained', END_STR=''
|
||||
syn keyword vimUserCmdAttrComplete contained arglist augroup behave breakpoint buffer color command compiler cscope diff_buffer dir dir_in_path environment event expression file file_in_path filetype function help highlight history keymap locale mapclear mapping menu messages option packadd runtime scriptnames shellcmd shellcmdline sign syntax syntime tag tag_listfiles user var
|
||||
syn keyword vimUserCmdAttrComplete contained custom customlist nextgroup=vimUserCmdAttrCompleteFunc,vimUserCmdError
|
||||
syn match vimUserCmdAttrCompleteFunc contained ",\%([bwglstav]:\|<[sS][iI][dD]>\)\=\h\w*\%([.#]\h\w*\)*"hs=s+1 nextgroup=vimUserCmdError contains=vimVarScope,vimFuncSID
|
||||
|
||||
" GEN_SYN_VIM: vimUserCmdAttrAddr, START_STR='syn keyword vimUserCmdAttrAddr contained', END_STR=''
|
||||
syn match vimUserCmdAttrAddr contained "?"
|
||||
syn keyword vimUserCmdAttrAddr contained arguments arg buffers buf lines line loaded_buffers load other quickfix qf tabs tab windows win
|
||||
syn match vimUserCmdAttrAddr contained "?"
|
||||
syn case match
|
||||
|
||||
syn region vimUserCmdBlock contained matchgroup=vimSep start="{" end="^\s*\zs}" contains=@vimDefBodyList
|
||||
syn match vimUserCmdName contained "\<\u[[:alnum:]]*\>" skipwhite nextgroup=vimUserCmdBlock,vimUserCmdReplacement
|
||||
syn match vimUserCmdName contained +\<\u[[:alnum:]]*\>\ze\s*\n\s*\%(\\\|["#]\\ \)+ skipwhite skipnl nextgroup=vimUserCmdBlock,vimUserCmdReplacement
|
||||
syn region vimUserCmdReplacement contained
|
||||
\ start="\S"
|
||||
\ start=+^\s*\%(\\\|["#]\\ \)+
|
||||
\ skip=+\n\s*\%(\\\|["#]\\ \)+
|
||||
\ end="$"
|
||||
\ contains=@vimContinue,@vimUserCmdList,vimComFilter
|
||||
syn region vimUserCmdBlock contained
|
||||
\ matchgroup=vimSep
|
||||
\ start="{"
|
||||
\ end="^\s*\zs}"
|
||||
\ contains=@vimDefBodyList
|
||||
|
||||
syn match vimDelcommand "\<delc\%[ommand]\>" skipwhite nextgroup=vimDelcommandAttr
|
||||
syn match vimDelcommandAttr contained "-buffer\>"
|
||||
syn match vimDelcommand "\<delc\%[ommand]\>" skipwhite nextgroup=vimDelcommandAttr,vimDelcommandName
|
||||
syn match vimDelcommandAttr contained "-buffer\>" skipwhite nextgroup=vimDelcommandName
|
||||
syn match vimDelcommandName contained "\<\u[[:alnum:]]*\>"
|
||||
|
||||
" Lower Priority Comments: after some vim commands... {{{2
|
||||
" =======================
|
||||
@@ -776,12 +810,31 @@ syn match vimCmplxRepeat '@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\>\)'
|
||||
|
||||
" Set command and associated set-options (vimOptions) with comment {{{2
|
||||
syn match vimSet "\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skipwhite nextgroup=vimSetBang,vimSetArgs
|
||||
syn region vimSetArgs contained start="\S" skip=+\\|\|\n\s*\\\|\n\s*["#]\\ + matchgroup=vimCmdSep end="|" end="$" matchgroup=vimNotation end="<[cC][rR]>" keepend contains=@vimComment,@vimContinue,vimErrSetting,vimOption,vimSetAll,vimSetTermcap
|
||||
syn region vimSetEqual contained matchgroup=vimOper start="[=:]\|[-+^]=" skip=+\\|\|\\\s\|\n\s*\\\|\n\s*["#]\\ \|^\s*\\\|^\s*["#]\\ + matchgroup=vimCmdSep end="|" end="\ze\s" end="$" contains=@vimContinue,vimCtrlChar,vimEnvvar,vimNotation,vimSetSep
|
||||
syn region vimSetComment contained start=+"+ skip=+\n\s*\%(\\\||"\\ \)+ end="$" contains=@vimCommentGroup,vimCommentString extend
|
||||
syn match vimSetCmdSep contained "|" skipwhite nextgroup=@vimCmdList,vimSubst1,vimFunc
|
||||
syn match vimSetEscape contained "\\\%(\\[|"]\|.\)"
|
||||
syn match vimSetBarEscape contained "\\|"
|
||||
syn match vimSetQuoteEscape contained +\\"+
|
||||
syn region vimSetArgs contained
|
||||
\ start="\S"
|
||||
\ skip=+\n\s*\%(\\\|["#]\\ \)\|^\s*"\\ +
|
||||
\ end=+\ze\\\@1<![|"]+
|
||||
"\ assume this isn't an escaped char with backslash on the previous line
|
||||
\ end=+^\s*\\\ze[|"]+
|
||||
\ end="\ze\s#"
|
||||
\ end="$"
|
||||
\ nextgroup=vimSetCmdSep,vimSetComment,vim9Comment
|
||||
\ contains=@vimContinue,vimErrSetting,vimOption,vimSetAll,vimSetTermcap
|
||||
\ keepend
|
||||
syn region vimSetEqual contained
|
||||
\ matchgroup=vimOper
|
||||
\ start="[=:]\|[-+^]="
|
||||
\ skip=+\\\s\|^\s*\%(\\\|["#]\\ \)+
|
||||
\ end="\ze\s"
|
||||
\ contains=@vimContinue,vimCtrlChar,vimEnvvar,vimNotation,vimSetSep,vimSetEscape,vimSetBarEscape,vimSetQuoteEscape
|
||||
syn match vimSetBang contained "\a\@1<=!" skipwhite nextgroup=vimSetAll,vimSetTermcap
|
||||
syn keyword vimSetAll contained all nextgroup=vimSetMod
|
||||
syn keyword vimSetTermcap contained termcap
|
||||
syn region vimSetString contained start=+="+hs=s+1 skip=+\\\\\|\\"+ end=+"+ contains=vimCtrlChar
|
||||
syn match vimSetSep contained "[,:]"
|
||||
syn match vimSetMod contained "\a\@1<=\%(&vim\=\|[!&?<]\)"
|
||||
|
||||
@@ -849,16 +902,83 @@ syn cluster vimForInContinue contains=vimForInContinue,vimForInContinueComment
|
||||
" GEN_SYN_VIM: vimCommand abbrev, START_STR='syn keyword vimAbb', END_STR='skipwhite nextgroup=vimMapMod,vimMapLhs'
|
||||
" GEN_SYN_VIM: vimCommand abclear, START_STR='syn keyword vimAbb', END_STR='skipwhite nextgroup=vimMapMod'
|
||||
|
||||
" Autocmd: {{{2
|
||||
" =======
|
||||
syn match vimAutoCmdBang contained "\a\@1<=!" skipwhite nextgroup=vimAutoEventList
|
||||
syn match vimAutoEventList contained "\%(\a\+,\)*\a\+" contains=vimAutoEvent nextgroup=vimAutoCmdSpace
|
||||
syn match vimAutoCmdSpace contained "\s\+" nextgroup=vimAutoCmdSfxList
|
||||
syn match vimAutoCmdSfxList contained "\S*" skipwhite nextgroup=vimAutoCmdMod,vimAutoCmdBlock
|
||||
syn keyword vimAutoCmd au[tocmd] skipwhite nextgroup=vimAutoCmdBang,vimAutoEventList
|
||||
syn keyword vimAutoCmd do[autocmd] doautoa[ll] skipwhite nextgroup=vimAutoEventList
|
||||
syn match vimAutoCmdMod "\(++\)\=\(once\|nested\)" skipwhite nextgroup=vimAutoCmdBlock
|
||||
syn region vimAutoCmdBlock contained matchgroup=vimSep start="{" end="^\s*\zs}" contains=@vimDefBodyList
|
||||
" Filename Patterns: {{{2
|
||||
" =================
|
||||
|
||||
syn match vimWildcardQuestion contained "?"
|
||||
syn match vimWildcardStar contained "*"
|
||||
|
||||
syn match vimWildcardBraceComma contained ","
|
||||
syn region vimWildcardBrace contained
|
||||
\ matchgroup=vimWildcard
|
||||
\ start="{"
|
||||
\ end="}"
|
||||
\ contains=vimWildcardEscape,vimWildcardBrace,vimWildcardBraceComma,vimWildcardQuestion,vimWildcardStar,vimWildcardBracket
|
||||
\ oneline
|
||||
|
||||
syn match vimWildcardIntervalNumber contained "\d\+"
|
||||
syn match vimWildcardInterval contained "\\\\\\{\d\+\%(,\d\+\)\=\\}" contains=vimWildcardIntervalNumber
|
||||
|
||||
|
||||
syn match vimWildcardBracket contained "\[\%(\^\=]\=\%(\\.\|\[\([:.=]\)[^:.=]\+\1]\|[^][:space:]]\)*\)\@>]"
|
||||
\ contains=vimWildcardBracketStart,vimWildcardEscape
|
||||
|
||||
syn match vimWildcardBracketCharacter contained "." nextgroup=@vimWildcardBracketCharacter,vimWildcardBracketHyphen,vimWildcardBracketEnd
|
||||
syn match vimWildcardBracketRightBracket contained "]" nextgroup=@vimWildcardBracketCharacter,vimWildcardBracketEnd
|
||||
syn match vimWildcardBracketHyphen contained "-]\@!" nextgroup=@vimWildcardBracketCharacter
|
||||
syn match vimWildcardBracketEscape contained "\\." nextgroup=@vimWildcardBracketCharacter,vimWildcardBracketHyphen,vimWildcardBracketEnd
|
||||
syn match vimWildcardBracketCharacterClass contained "\[:[^:]\+:]" nextgroup=@vimWildcardBracketCharacter,vimWildcardBracketEnd
|
||||
syn match vimWildcardBracketEquivalenceClass contained "\[=[^=]\+=]" nextgroup=@vimWildcardBracketCharacter,vimWildcardBracketEnd
|
||||
syn match vimWildcardBracketCollatingSymbol contained "\[\.[^.]\+\.]" nextgroup=@vimWildcardBracketCharacter,vimWildcardBracketEnd
|
||||
|
||||
syn match vimWildcardBracketStart contained "\[" nextgroup=vimWildcardBracketCaret,vimWildcardBracketRightBracket,@vimWildcardBracketCharacter
|
||||
syn match vimWildcardBracketCaret contained "\^" nextgroup=@vimWildcardBracketCharacter,vimWildcardBracketRightBracket
|
||||
syn match vimWildcardBracketEnd contained "]"
|
||||
|
||||
syn cluster vimWildcardBracketCharacter contains=vimWildcardBracketCharacter,vimWildcardBracketEscape,vimWildcardBracketCharacterClass,vimWildcardBracketEquivalenceClass,vimWildcardBracketCollatingSymbol
|
||||
|
||||
syn match vimWildcardEscape contained "\\."
|
||||
|
||||
syn cluster vimWildcard contains=vimWildcardQuestion,vimWildcardStar,vimWildcardBrace,vimWildcardBracket,vimWildcardInterval
|
||||
|
||||
" Autocmd and Doauto{cmd,all}: {{{2
|
||||
" ===========================
|
||||
|
||||
" TODO: explicitly match the {cmd} arg rather than bailing out to TOP
|
||||
syn region vimAutocmdBlock contained matchgroup=vimSep start="{" end="^\s*\zs}" contains=@vimDefBodyList
|
||||
|
||||
syn match vimAutocmdGroup contained "\%(\\["|[:space:]]\|[^"|[:space:]]\)\+" skipwhite nextgroup=vimAutoEvent,vimAutoEventGlob
|
||||
syn match vimAutocmdBang contained "\a\@1<=!" skipwhite nextgroup=vimAutocmdGroup,vimAutoEvent,vimAutoEventGlob
|
||||
|
||||
" TODO: cleaner handling of | in pattern position
|
||||
" : match pattern items in addition to wildcards
|
||||
syn region vimAutocmdPattern contained
|
||||
\ start="|\@!\S"
|
||||
\ skip="\\\\\|\\[,[:space:]]"
|
||||
\ end="\ze[,[:space:]]"
|
||||
\ end="$"
|
||||
\ skipwhite nextgroup=vimAutocmdPatternSep,vimAutocmdMod,vimAutocmdBlock
|
||||
\ contains=vimEnvvar,@vimWildcard,vimAutocmdPatternEscape
|
||||
syn match vimAutocmdBufferPattern contained "<buffer\%(=\%(\d\+\|abuf\)\)\=>" skipwhite nextgroup=vimAutocmdPatternSep,vimAutocmdMod,vimAutocmdBlock
|
||||
" trailing pattern separator comma allowed
|
||||
syn match vimAutocmdPatternSep contained "," skipwhite nextgroup=@vimAutocmdPattern,vimAutocmdMod,vimAutocmdBlock
|
||||
syn match vimAutocmdPatternEscape contained "\\."
|
||||
syn cluster vimAutocmdPattern contains=vimAutocmdPattern,vimAutocmdBufferPattern
|
||||
|
||||
" TODO: Vim9 requires '++' prefix
|
||||
syn match vimAutocmdMod contained "\%(++\)\=\<nested\>" skipwhite nextgroup=vimAutocmdMod,vimAutocmdBlock
|
||||
syn match vimAutocmdMod contained "++once\>" skipwhite nextgroup=vimAutocmdMod,vimAutocmdBlock
|
||||
|
||||
" higher priority than vimAutocmdGroup, assume no group is so named
|
||||
syn match vimAutoEventGlob contained "*" skipwhite nextgroup=@vimAutocmdPattern
|
||||
syn match vimAutoEventSep contained "\a\@1<=," nextgroup=vimAutoEvent
|
||||
|
||||
syn match vimAutocmd "\<au\%[tocmd]\>" skipwhite nextgroup=vimAutocmdBang,vimAutocmdGroup,vimAutoEvent,vimAutoEventGlob
|
||||
|
||||
|
||||
syn match vimDoautocmdMod contained "<nomodeline>" skipwhite nextgroup=vimAutocmdGroup,vimAutoEvent
|
||||
syn match vimDoautocmd "\<do\%[autocmd]\>" skipwhite nextgroup=vimDoautocmdMod,vimAutocmdGroup,vimAutoEvent
|
||||
syn match vimDoautocmd "\<doautoa\%[ll]\>" skipwhite nextgroup=vimDoautocmdMod,vimAutocmdGroup,vimAutoEvent
|
||||
|
||||
" Echo And Execute: -- prefer strings! {{{2
|
||||
" ================
|
||||
@@ -884,6 +1004,93 @@ syn cluster vimEcho contains=vimEcho,vimEchohl
|
||||
|
||||
syn region vimExecute matchgroup=vimCommand start="\<exe\%[cute]\>" skip=+\\|\|\n\s*\\\|\n\s*"\\ + matchgroup=vimCmdSep end="|" excludenl end="$" contains=@vimContinue,@vimExprList transparent
|
||||
|
||||
" Filter: {{{2
|
||||
" ======
|
||||
syn match vimExFilter "\<filt\%[er]\>" skipwhite nextgroup=vimExFilterBang,vimExFilterPattern
|
||||
syn match vimExFilterBang contained "\a\@1<=!" skipwhite nextgroup=vimExFilterPattern
|
||||
syn region vimExFilterPattern contained
|
||||
\ start="[[:ident:]]"
|
||||
\ end="\ze[[:space:]\n]"
|
||||
\ skipwhite nextgroup=@vimCmdList
|
||||
\ contains=@vimSubstList
|
||||
\ oneline
|
||||
syn region vimExFilterPattern contained
|
||||
\ matchgroup=Delimiter
|
||||
\ start="\z([^[:space:][:ident:]|"]\)"
|
||||
\ skip="\\\\\|\\\z1"
|
||||
\ end="\z1"
|
||||
\ skipwhite nextgroup=@vimCmdList
|
||||
\ contains=@vimSubstList
|
||||
\ oneline
|
||||
|
||||
" Grep and Make: {{{2
|
||||
" =============
|
||||
" | is the command separator, escaped with \| all other backslashes are passed through literally, no tail comments
|
||||
syn match vimGrep "\<l\=gr\%[ep]\>" skipwhite nextgroup=vimGrepBang,vimGrepArgs,vimCmdSep
|
||||
syn match vimGrepadd "\<l\=grepa\%[dd]\>" skipwhite nextgroup=vimGrepBang,vimGrepArgs,vimCmdSep
|
||||
syn region vimGrepArgs contained
|
||||
\ start="|\@!\S"
|
||||
\ skip=+\n\s*\%(\\\|[#"]\\ \)+
|
||||
\ matchgroup=vimCmdSep
|
||||
\ end="|"
|
||||
\ end="$"
|
||||
"\ TODO: include vimSpecFile
|
||||
\ contains=vimGrepBarEscape
|
||||
syn match vimGrepBarEscape contained "\\|"
|
||||
syn match vimGrepBang contained "\a\@1<=!" skipwhite nextgroup=vimGrepArgs,vimCmdSep
|
||||
|
||||
syn match vimMake "\<l\=make\=\>" skipwhite nextgroup=vimMakeBang,vimMakeArgs,vimCmdSep
|
||||
syn region vimMakeArgs contained
|
||||
\ start="|\@!\S"
|
||||
\ skip=+\n\s*\%(\\\|[#"]\\ \)+
|
||||
\ matchgroup=vimCmdSep
|
||||
\ end="|"
|
||||
\ end="$"
|
||||
"\ TODO: include vimSpecFile
|
||||
\ contains=vimMakeBarEscape
|
||||
syn match vimMakeBarEscape contained "\\|"
|
||||
syn match vimMakeBang contained "\a\@1<=!" skipwhite nextgroup=vimMakeArgs,vimCmdSep
|
||||
|
||||
syn match vimHelpgrep "\<l\=helpg\%[rep]\>" skipwhite nextgroup=vimHelpgrepBang,vimHelpgrepPattern
|
||||
syn region vimHelpgrepPattern contained
|
||||
\ start="\S"
|
||||
\ matchgroup=Special
|
||||
\ end="@\w\w\>"
|
||||
\ end="$"
|
||||
\ contains=@vimSubstList
|
||||
\ oneline
|
||||
|
||||
" Vimgrep: {{{2
|
||||
" =======
|
||||
syn match vimVimgrep "\<l\=vim\%[grep]\>" skipwhite nextgroup=vimVimgrepBang,vimVimgrepPattern
|
||||
syn match vimVimgrepadd "\<l\=vimgrepa\%[dd]\>" skipwhite nextgroup=vimVimgrepBang,vimVimgrepPattern
|
||||
syn match vimVimgrepBang contained "\a\@1<=!" skipwhite nextgroup=vimVimgrepPattern
|
||||
syn region vimVimgrepPattern contained
|
||||
\ start="[[:ident:]]"
|
||||
\ end="\ze[[:space:]\n]"
|
||||
\ skipwhite nextgroup=vimVimgrepFile,vimCmdSep
|
||||
\ contains=@vimSubstList
|
||||
\ oneline
|
||||
syn region vimVimgrepPattern contained
|
||||
\ matchgroup=Delimiter
|
||||
\ start="\z([^[:space:][:ident:]|"]\)"
|
||||
\ skip="\\\\\|\\\z1"
|
||||
\ end="\z1"
|
||||
\ skipwhite nextgroup=vimVimgrepFlags,vimVimgrepFile,vimCmdSep
|
||||
\ contains=@vimSubstList
|
||||
\ oneline
|
||||
syn match vimVimgrepEscape contained "\\\%(\\|\|.\)"
|
||||
syn match vimVimgrepBarEscape contained "\\|"
|
||||
syn region vimVimgrepFile contained
|
||||
\ start="|\@!\S"
|
||||
\ matchgroup=vimCmdSep
|
||||
\ end="|"
|
||||
\ end="\ze\s"
|
||||
\ end="$"
|
||||
\ skipwhite nextgroup=vimVimgrepFile
|
||||
\ contains=vimSpecFile,vimVimgrepEscape,vimVimgrepBarEscape
|
||||
syn match vimVimgrepFlags contained "\<[gjf]\{,3\}\>" skipwhite nextgroup=vimVimgrepfile
|
||||
|
||||
" Maps: {{{2
|
||||
" ====
|
||||
" GEN_SYN_VIM: vimCommand map, START_STR='syn keyword vimMap', END_STR='skipwhite nextgroup=vimMapMod,vimMapLhs'
|
||||
@@ -1004,12 +1211,47 @@ syn region vimMatchPattern contained matchgroup=Delimiter start="\z([!#$%&'()*+,
|
||||
syn match vimNormal "\<norm\%[al]\>!\=" skipwhite nextgroup=vimNormalArg contains=vimBang
|
||||
syn region vimNormalArg contained start="\S" skip=+\n\s*\\\|\n\s*["#]\\ + end="$" contains=@vimContinue
|
||||
|
||||
" Redir: {{{2
|
||||
" =====
|
||||
syn match vimRedir "\<redir\=\>" skipwhite nextgroup=vimRedirBang,vimRedirFileOperator,vimRedirVariableOperator,vimRedirRegister,vimRedirEnd
|
||||
syn match vimRedirBang contained "\a\@1<=!" skipwhite nextgroup=vimRedirFileOperator
|
||||
|
||||
syn match vimRedirFileOperator contained ">>\=" skipwhite nextgroup=vimRedirFile
|
||||
syn region vimRedirFile contained
|
||||
\ start="\S"
|
||||
\ matchgroup=Normal
|
||||
\ end="\s*$"
|
||||
\ end="\s*\ze[|"]"
|
||||
\ nextgroup=vimCmdSep,vimComment
|
||||
\ contains=vimSpecFile
|
||||
syn match vimRedirRegisterOperator contained ">>\="
|
||||
syn match vimRedirRegister contained "@[a-zA-Z*+"]" nextgroup=vimRedirRegisterOperator
|
||||
syn match vimRedirVariableOperator contained "=>>\=" skipwhite nextgroup=vimVar
|
||||
syn keyword vimRedirEnd contained END
|
||||
|
||||
" Sleep: {{{2
|
||||
" =====
|
||||
syn keyword vimSleep sl[eep] skipwhite nextgroup=vimSleepBang,vimSleepArg
|
||||
syn match vimSleepBang contained "\a\@1<=!" skipwhite nextgroup=vimSleepArg
|
||||
syn match vimSleepArg contained "\<\%(\d\+\)\=m\=\>"
|
||||
|
||||
" Sort: {{{2
|
||||
" ====
|
||||
syn match vimSort "\<sort\=\>" skipwhite nextgroup=vimSortBang,@vimSortOptions,vimSortPattern,vimCmdSep
|
||||
syn match vimSortBang contained "\a\@1<=!" skipwhite nextgroup=@vimSortOptions,vimSortPattern,vimCmdSep
|
||||
syn match vimSortOptionsError contained "\a\+"
|
||||
syn match vimSortOptions contained "\<[ilur]*[nfxob]\=[ilur]*\>" skipwhite nextgroup=vimSortPattern,vimCmdSep
|
||||
syn region vimSortPattern contained
|
||||
\ matchgroup=Delimiter
|
||||
\ start="\z([^[:space:][:alpha:]|]\)"
|
||||
\ skip="\\\\\|\\\z1"
|
||||
\ end="\z1"
|
||||
\ skipwhite nextgroup=@vimSortOptions,vimCmdSep
|
||||
\ contains=@vimSubstList
|
||||
\ oneline
|
||||
|
||||
syn cluster vimSortOptions contains=vimSortOptions,vimSortOptionsError
|
||||
|
||||
" Syntax: {{{2
|
||||
"=======
|
||||
syn match vimGroupList contained "[^[:space:],]\+\%(\s*,\s*[^[:space:],]\+\)*" contains=vimGroupSpecial
|
||||
@@ -1468,6 +1710,7 @@ if !exists("skip_vim_syntax_inits")
|
||||
hi def link vimHiKeyError vimError
|
||||
hi def link vimMapModErr vimError
|
||||
hi def link vimShebangError vimError
|
||||
hi def link vimSortOptionsError Error
|
||||
hi def link vimSubstFlagErr vimError
|
||||
hi def link vimSynCaseError vimError
|
||||
hi def link vimSyncError vimError
|
||||
@@ -1486,10 +1729,14 @@ if !exists("skip_vim_syntax_inits")
|
||||
hi def link vimAugroupBang vimBang
|
||||
hi def link vimAugroupError vimError
|
||||
hi def link vimAugroupKey vimCommand
|
||||
hi def link vimAutoCmd vimCommand
|
||||
hi def link vimAutoCmdBang vimBang
|
||||
hi def link vimAutocmd vimCommand
|
||||
hi def link vimAutocmdBang vimBang
|
||||
hi def link vimAutocmdPatternEscape Special
|
||||
hi def link vimAutoEvent Type
|
||||
hi def link vimAutoCmdMod Special
|
||||
hi def link vimAutoEventGlob Type
|
||||
hi def link vimAutocmdBufferPattern Special
|
||||
hi def link vimAutocmdMod Special
|
||||
hi def link vimAutocmdPatternSep vimSep
|
||||
hi def link vimBang vimOper
|
||||
hi def link vimBehaveBang vimBang
|
||||
hi def link vimBehaveModel vimBehave
|
||||
@@ -1515,6 +1762,8 @@ if !exists("skip_vim_syntax_inits")
|
||||
hi def link vimDefParam vimVar
|
||||
hi def link vimDelcommand vimCommand
|
||||
hi def link vimDelcommandAttr vimUserCmdAttr
|
||||
hi def link vimDoautocmd vimCommand
|
||||
hi def link vimDoautocmdMod Special
|
||||
hi def link vimEcho vimCommand
|
||||
hi def link vimEchohlNone vimGroup
|
||||
hi def link vimEchohl vimCommand
|
||||
@@ -1524,6 +1773,8 @@ if !exists("skip_vim_syntax_inits")
|
||||
hi def link vimEnvvar PreProc
|
||||
hi def link vimError Error
|
||||
hi def link vimEscape Special
|
||||
hi def link vimExFilter vimCommand
|
||||
hi def link vimExFilterBang vimCommand
|
||||
hi def link vimFBVar vimVar
|
||||
hi def link vimFgBgAttrib vimHiAttrib
|
||||
hi def link vimFuncEcho vimCommand
|
||||
@@ -1541,11 +1792,15 @@ if !exists("skip_vim_syntax_inits")
|
||||
hi def link vimFuncParamEquals vimOper
|
||||
hi def link vimFuncScope vimVarScope
|
||||
hi def link vimFuncSID vimNotation
|
||||
hi def link vimGrep vimCommand
|
||||
hi def link vimGrepadd vimCommand
|
||||
hi def link vimGrepBang vimBang
|
||||
hi def link vimGroupAdd vimSynOption
|
||||
hi def link vimGroupName Normal
|
||||
hi def link vimGroupRem vimSynOption
|
||||
hi def link vimGroupSpecial Special
|
||||
hi def link vimGroup Type
|
||||
hi def link vimHelpgrep vimCommand
|
||||
hi def link vimHiAttrib PreProc
|
||||
hi def link vimHiBang vimBang
|
||||
hi def link vimHiClear Type
|
||||
@@ -1569,13 +1824,17 @@ if !exists("skip_vim_syntax_inits")
|
||||
hi def link vim9KeymapLineComment vimKeymapLineComment
|
||||
hi def link vimKeymapLineComment vimComment
|
||||
hi def link vimKeymapTailComment vimComment
|
||||
hi def link vimLambdaBrace Delimiter
|
||||
hi def link vimLambdaOperator vimOper
|
||||
hi def link vimLet vimCommand
|
||||
hi def link vimLetHereDoc vimString
|
||||
hi def link vimLetHereDocStart Special
|
||||
hi def link vimLetHereDocStop Special
|
||||
hi def link vimLetRegister Special
|
||||
hi def link vimLetRegister vimRegister
|
||||
hi def link vimLineComment vimComment
|
||||
hi def link vimMake vimCommand
|
||||
hi def link vimMakeadd vimCommand
|
||||
hi def link vimMakeBang vimBang
|
||||
hi def link vimMapBang vimBang
|
||||
hi def link vimMapLeader vimBracket
|
||||
hi def link vimMapLeaderKey vimNotation
|
||||
@@ -1620,6 +1879,13 @@ if !exists("skip_vim_syntax_inits")
|
||||
hi def link vimPlainMark vimMark
|
||||
hi def link vimPlainRegister vimRegister
|
||||
hi def link vimQuoteEscape vimEscape
|
||||
hi def link vimRedir vimCommand
|
||||
hi def link vimRedirBang vimBang
|
||||
hi def link vimRedirFileOperator vimOper
|
||||
hi def link vimRedirRegisterOperator vimOper
|
||||
hi def link vimRedirVariableOperator vimOper
|
||||
hi def link vimRedirEnd Special
|
||||
hi def link vimRedirRegister vimRegister
|
||||
hi def link vimRegister SpecialChar
|
||||
hi def link vimScriptDelim Comment
|
||||
hi def link vimSearch vimString
|
||||
@@ -1628,14 +1894,17 @@ if !exists("skip_vim_syntax_inits")
|
||||
hi def link vimSet vimCommand
|
||||
hi def link vimSetAll vimOption
|
||||
hi def link vimSetBang vimBang
|
||||
hi def link vimSetComment vimComment
|
||||
hi def link vimSetMod vimOption
|
||||
hi def link vimSetSep vimSep
|
||||
hi def link vimSetString vimString
|
||||
hi def link vimSetTermcap vimOption
|
||||
hi def link vimShebang PreProc
|
||||
hi def link vimSleep vimCommand
|
||||
hi def link vimSleepArg Constant
|
||||
hi def link vimSleepBang vimBang
|
||||
hi def link vimSort vimCommand
|
||||
hi def link vimSortBang vimBang
|
||||
hi def link vimSortOptions Special
|
||||
hi def link vimSpecFile Identifier
|
||||
hi def link vimSpecFileMod vimSpecFile
|
||||
hi def link vimSpecial Type
|
||||
@@ -1689,8 +1958,10 @@ if !exists("skip_vim_syntax_inits")
|
||||
hi def link vimUnlet vimCommand
|
||||
hi def link vimUnletBang vimBang
|
||||
hi def link vimUnmap vimMap
|
||||
hi def link vimUserCmd vimCommand
|
||||
hi def link vimUserCmdAttrAddr vimSpecial
|
||||
hi def link vimUserCmdAttrCmplt vimSpecial
|
||||
hi def link vimUserCmdAttrComplete vimSpecial
|
||||
hi def link vimUserCmdAttrCompleteFunc vimVar
|
||||
hi def link vimUserCmdAttrNargs vimSpecial
|
||||
hi def link vimUserCmdAttrRange vimSpecial
|
||||
hi def link vimUserCmdAttrKey vimUserCmdAttr
|
||||
@@ -1701,9 +1972,31 @@ if !exists("skip_vim_syntax_inits")
|
||||
hi def link vimUserFunc Normal
|
||||
hi def link vimVar Normal
|
||||
hi def link vimVarScope Identifier
|
||||
hi def link vimVimgrep vimCommand
|
||||
hi def link vimVimgrepadd vimCommand
|
||||
hi def link vimVimgrepBang vimBang
|
||||
hi def link vimVimgrepFlags Special
|
||||
hi def link vimVimVar Identifier
|
||||
hi def link vimVimVarName Identifier
|
||||
hi def link vimWarn WarningMsg
|
||||
hi def link vimWildcard Special
|
||||
hi def link vimWildcardBraceComma vimWildcard
|
||||
hi def link vimWildcardBracket vimWildcard
|
||||
hi def link vimWildcardBracketCaret vimWildcard
|
||||
hi def link vimWildcardBracketCharacter Normal
|
||||
hi def link vimWildcardBracketCharacter Normal
|
||||
hi def link vimWildcardBracketCharacterClass vimWildCard
|
||||
hi def link vimWildcardBracketCollatingSymbol vimWildCard
|
||||
hi def link vimWildcardBracketEnd vimWildcard
|
||||
hi def link vimWildcardBracketEquivalenceClass vimWildCard
|
||||
hi def link vimWildcardBracketEscape vimWildcard
|
||||
hi def link vimWildcardBracketHyphen vimWildcard
|
||||
hi def link vimWildcardBracketRightBracket vimWildcardBracketCharacter
|
||||
hi def link vimWildcardBracketStart vimWildcard
|
||||
hi def link vimWildcardEscape vimWildcard
|
||||
hi def link vimWildcardInterval vimWildcard
|
||||
hi def link vimWildcardQuestion vimWildcard
|
||||
hi def link vimWildcardStar vimWildcard
|
||||
|
||||
hi def link vim9Abstract vimCommand
|
||||
hi def link vim9Boolean Boolean
|
||||
@@ -1725,7 +2018,7 @@ if !exists("skip_vim_syntax_inits")
|
||||
hi def link vim9Interface vimCommand
|
||||
hi def link vim9LambdaOperator vimOper
|
||||
hi def link vim9LambdaOperatorComment vim9Comment
|
||||
hi def link vim9LambdaParamsParen vimParenSep
|
||||
hi def link vim9LambdaParen vimParenSep
|
||||
hi def link vim9LhsRegister vimLetRegister
|
||||
hi def link vim9LhsVariable vimVar
|
||||
hi def link vim9LineComment vimComment
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user