Compare commits
316 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
679140c56b | ||
|
|
6f98371532 | ||
|
|
5937c7505f | ||
|
|
fa3b72348d | ||
|
|
d3f00f54bf | ||
|
|
6073f13f55 | ||
|
|
70a120b72b | ||
|
|
51e64b2789 | ||
|
|
310091d20f | ||
|
|
28fbbeac70 | ||
|
|
f2f0bddf30 | ||
|
|
b4168fd917 | ||
|
|
a80aad7174 | ||
|
|
82b3b4c6cf | ||
|
|
080182216e | ||
|
|
f973eeb491 | ||
|
|
1aeccdb464 | ||
|
|
fa46ead31a | ||
|
|
1b5f7a6202 | ||
|
|
d92813a598 | ||
|
|
59618fed4c | ||
|
|
0d807107b6 | ||
|
|
6f79e614b2 | ||
|
|
8d95d7091d | ||
|
|
dab17a0689 | ||
|
|
39713d3acb | ||
|
|
dc7c366f3a | ||
|
|
a99fb23842 | ||
|
|
003312b1d2 | ||
|
|
2f9f4ccfc8 | ||
|
|
fea43e44c0 | ||
|
|
bc404bfb32 | ||
|
|
86b3ab4fa0 | ||
|
|
700e6b1662 | ||
|
|
f47c5a8e2d | ||
|
|
265f811f5a | ||
|
|
2de5371a75 | ||
|
|
389b72196e | ||
|
|
0ccb5842f5 | ||
|
|
605ec91e5a | ||
|
|
60618c8f1a | ||
|
|
0dc4d8eaec | ||
|
|
44a8977de4 | ||
|
|
647ab4cede | ||
|
|
422085f1c8 | ||
|
|
71b7685092 | ||
|
|
ddc80aff57 | ||
|
|
354b23a9f8 | ||
|
|
db1a410b61 | ||
|
|
d2ff705af3 | ||
|
|
02929a372e | ||
|
|
259f443a93 | ||
|
|
deda6441e4 | ||
|
|
c3f91c0648 | ||
|
|
994a0a298b | ||
|
|
23e72369ff | ||
|
|
e124204c4f | ||
|
|
94c785d235 | ||
|
|
8103527da7 | ||
|
|
f79cbf6512 | ||
|
|
b15cf44c1d | ||
|
|
52797bae17 | ||
|
|
0e6adf8a29 | ||
|
|
6df0f2759d | ||
|
|
6ecf58b0d7 | ||
|
|
2d877599ee | ||
|
|
19569ca6d8 | ||
|
|
8ee6028de3 | ||
|
|
427f065a88 | ||
|
|
c479ce032f | ||
|
|
f87dac04c3 | ||
|
|
1821d1498c | ||
|
|
ce7eada12e | ||
|
|
cfabad9bcf | ||
|
|
a5d78d1f11 | ||
|
|
57bc2333b1 | ||
|
|
7c0fb80030 | ||
|
|
b334137acf | ||
|
|
7509ad8b0f | ||
|
|
919c12c19a | ||
|
|
f8a79fc346 | ||
|
|
c2958585f6 | ||
|
|
8176be1598 | ||
|
|
6206877c51 | ||
|
|
829c8e87e2 | ||
|
|
0407d27034 | ||
|
|
3194e5bf87 | ||
|
|
6840a0ffe8 | ||
|
|
80d60910ff | ||
|
|
3b309f11db | ||
|
|
1e78deb077 | ||
|
|
851f86b951 | ||
|
|
739f13a55b | ||
|
|
33b968dc60 | ||
|
|
ef082e12df | ||
|
|
04ef1fb13d | ||
|
|
d2439e0443 | ||
|
|
3bb79dc191 | ||
|
|
fa9a8e0fd1 | ||
|
|
6ae8fae869 | ||
|
|
6e371ecb27 | ||
|
|
9a4ec5a626 | ||
|
|
4e30b5c3bc | ||
|
|
4f16e9de98 | ||
|
|
48c0196378 | ||
|
|
7b1463bca3 | ||
|
|
2ef9156b42 | ||
|
|
052ff291d7 | ||
|
|
a416861c64 | ||
|
|
29f3a45915 | ||
|
|
205f29c3e9 | ||
|
|
9537e37b11 | ||
|
|
1daedc8381 | ||
|
|
f8e9eb8e17 | ||
|
|
9fffef9f35 | ||
|
|
b711814cb6 | ||
|
|
8a7374f8c4 | ||
|
|
ff39a650b2 | ||
|
|
dd297bc11d | ||
|
|
dee78e1ce8 | ||
|
|
4c8c634365 | ||
|
|
95b2dd0c00 | ||
|
|
e8a92b6166 | ||
|
|
c4ec338fb8 | ||
|
|
dcb53be441 | ||
|
|
d0fb907253 | ||
|
|
e50507126f | ||
|
|
56150da687 | ||
|
|
a48d4e44a2 | ||
|
|
48873aebc0 | ||
|
|
78a61068cf | ||
|
|
2172bff364 | ||
|
|
f7f7aaf8aa | ||
|
|
4dc24eb5ad | ||
|
|
92c33eb273 | ||
|
|
ecabb51107 | ||
|
|
3e55a973b5 | ||
|
|
2336c376d5 | ||
|
|
8603be338a | ||
|
|
6409553b6e | ||
|
|
40bcec1bac | ||
|
|
4700398e38 | ||
|
|
12f3c1b77f | ||
|
|
e5710a02cb | ||
|
|
0bac5fc5e1 | ||
|
|
c7d5fc8622 | ||
|
|
f661cee847 | ||
|
|
f645ee47c8 | ||
|
|
5e18ccc60b | ||
|
|
f589fd3e10 | ||
|
|
e031fe90cf | ||
|
|
c7269f8627 | ||
|
|
dea4a61637 | ||
|
|
23bdef2571 | ||
|
|
8dea145e39 | ||
|
|
853a7692d1 | ||
|
|
7645da568c | ||
|
|
01a4dcbcee | ||
|
|
b579f6ebbf | ||
|
|
cd2f8f0e00 | ||
|
|
15a24f0898 | ||
|
|
800b01b0c8 | ||
|
|
6f42cb6e51 | ||
|
|
04b7b4bf7f | ||
|
|
c14b57c079 | ||
|
|
c903695be5 | ||
|
|
8658c759f0 | ||
|
|
021ef351c2 | ||
|
|
acdc911e4e | ||
|
|
5e86964bf4 | ||
|
|
9ac38129b6 | ||
|
|
69c76171f1 | ||
|
|
f8bc0ce267 | ||
|
|
3569c0de67 | ||
|
|
db9ff9ab5d | ||
|
|
e4eed8c6db | ||
|
|
f0e496a85a | ||
|
|
7e5503c17a | ||
|
|
0b226f60be | ||
|
|
05e59e3a9f | ||
|
|
56a8ffdb6e | ||
|
|
3d2e031d4f | ||
|
|
fad2742d53 | ||
|
|
69535d8a0a | ||
|
|
90770b746e | ||
|
|
42eba04522 | ||
|
|
eba3b7f664 | ||
|
|
ab36e6ae7b | ||
|
|
53ba95e4f0 | ||
|
|
98cb90ef86 | ||
|
|
c750d91a07 | ||
|
|
6b839ac775 | ||
|
|
651fca85c7 | ||
|
|
0c359af5c0 | ||
|
|
0b74d00693 | ||
|
|
7f2c341664 | ||
|
|
5c1ec439f0 | ||
|
|
af377e34b0 | ||
|
|
293eb9ba46 | ||
|
|
38453528c3 | ||
|
|
f566666e88 | ||
|
|
06bffe836c | ||
|
|
3ccb579516 | ||
|
|
2e0f3ecb70 | ||
|
|
59f4f9505a | ||
|
|
3d14c0f2b9 | ||
|
|
c07f11e42f | ||
|
|
e9b0b40b79 | ||
|
|
279d733dfb | ||
|
|
6304be625c | ||
|
|
7824fc80f6 | ||
|
|
bfc5786a61 | ||
|
|
d1d8a595bd | ||
|
|
7329cfab36 | ||
|
|
85be8563fe | ||
|
|
4d07253a48 | ||
|
|
309ce25189 | ||
|
|
ba8c92687d | ||
|
|
96e7a5928e | ||
|
|
0bd8d05638 | ||
|
|
71b36206be | ||
|
|
34c20ff85b | ||
|
|
8af87bd6b1 | ||
|
|
bd228fd097 | ||
|
|
bb277fd89f | ||
|
|
510d8e6056 | ||
|
|
7da341560e | ||
|
|
19916a8c89 | ||
|
|
e413ea04b7 | ||
|
|
1f2453fec6 | ||
|
|
cf1e0239ce | ||
|
|
8bc07e800c | ||
|
|
9b0e82f35e | ||
|
|
03725c5795 | ||
|
|
48608b4a4b | ||
|
|
112bed0cbe | ||
|
|
65259b5c6a | ||
|
|
cc9d725bbb | ||
|
|
ee93e327ba | ||
|
|
b771b6b5fe | ||
|
|
e021662f39 | ||
|
|
04b568b38f | ||
|
|
3b3755fe19 | ||
|
|
7a53f29c03 | ||
|
|
4671e88d7d | ||
|
|
ce59b9f292 | ||
|
|
c449271f4e | ||
|
|
7d5b8becc3 | ||
|
|
2228cd72cf | ||
|
|
a3f83feb63 | ||
|
|
73448a27a8 | ||
|
|
581f41adb3 | ||
|
|
88a4205f1c | ||
|
|
eea32afdb8 | ||
|
|
7f0c4b418e | ||
|
|
4785fe02bb | ||
|
|
923dce2b07 | ||
|
|
2c23670300 | ||
|
|
3c19b50500 | ||
|
|
d604d78e7b | ||
|
|
a755fdbe80 | ||
|
|
9cd9385db7 | ||
|
|
c8a9fe541d | ||
|
|
d85fccdfed | ||
|
|
a119812437 | ||
|
|
87fd0924e2 | ||
|
|
cdf5fdb294 | ||
|
|
b8e642f7ac | ||
|
|
2de9b7c7c8 | ||
|
|
3ad695328f | ||
|
|
8b8d829faf | ||
|
|
64be6aa3a5 | ||
|
|
1d69ef410a | ||
|
|
b3a29558ee | ||
|
|
777175b0df | ||
|
|
851c7a699a | ||
|
|
0526815c15 | ||
|
|
3cad470385 | ||
|
|
818ff25cd1 | ||
|
|
6555500bcf | ||
|
|
e015d99abb | ||
|
|
64066b9acd | ||
|
|
615ddd5342 | ||
|
|
a062006b9d | ||
|
|
3075a45592 | ||
|
|
125ffd21f9 | ||
|
|
9459b8d461 | ||
|
|
d3682c5f28 | ||
|
|
519cc559b0 | ||
|
|
728104da6c | ||
|
|
2a16dc6613 | ||
|
|
c143fa0778 | ||
|
|
b1b163efd7 | ||
|
|
1be7e21583 | ||
|
|
fa53722367 | ||
|
|
314b773abb | ||
|
|
782b4bbc16 | ||
|
|
0818ab82e7 | ||
|
|
36968af155 | ||
|
|
733b124a90 | ||
|
|
0d5a12ea04 | ||
|
|
786e05beb5 | ||
|
|
7f13b24ab6 | ||
|
|
6a950a6007 | ||
|
|
23beefed73 | ||
|
|
a0fca17251 | ||
|
|
5300be620c | ||
|
|
606efc7df4 | ||
|
|
0a15c7676b | ||
|
|
326e7da609 | ||
|
|
8813739673 | ||
|
|
58ef8a31d7 | ||
|
|
0c71114aed | ||
|
|
113cb513f7 | ||
|
|
15d9890eee | ||
|
|
0b5b06cb47 |
11
.github/CODEOWNERS
vendored
11
.github/CODEOWNERS
vendored
@@ -73,6 +73,7 @@ runtime/ftplugin/awk.vim @dkearns
|
||||
runtime/ftplugin/basic.vim @dkearns
|
||||
runtime/ftplugin/bst.vim @tpope
|
||||
runtime/ftplugin/cfg.vim @chrisbra
|
||||
runtime/ftplugin/clojure.vim @axvr
|
||||
runtime/ftplugin/csh.vim @dkearns
|
||||
runtime/ftplugin/css.vim @dkearns
|
||||
runtime/ftplugin/cucumber.vim @tpope
|
||||
@@ -88,10 +89,13 @@ runtime/ftplugin/gitsendemail.vim @tpope
|
||||
runtime/ftplugin/gprof.vim @dpelle
|
||||
runtime/ftplugin/haml.vim @tpope
|
||||
runtime/ftplugin/hgcommit.vim @k-takata
|
||||
runtime/ftplugin/i3config.vim @hiqua
|
||||
runtime/ftplugin/indent.vim @dkearns
|
||||
runtime/ftplugin/javascript.vim @dkearns
|
||||
runtime/ftplugin/javascriptreact.vim @dkearns
|
||||
runtime/ftplugin/kconfig.vim @chrisbra
|
||||
runtime/ftplugin/liquid.vim @tpope
|
||||
runtime/ftplugin/lua.vim @dkearns
|
||||
runtime/ftplugin/m3build.vim @dkearns
|
||||
runtime/ftplugin/m3quake.vim @dkearns
|
||||
runtime/ftplugin/markdown.vim @tpope
|
||||
@@ -107,9 +111,11 @@ runtime/ftplugin/pbtxt.vim @lakshayg
|
||||
runtime/ftplugin/pdf.vim @tpope
|
||||
runtime/ftplugin/ps1.vim @heaths
|
||||
runtime/ftplugin/ps1xml.vim @heaths
|
||||
runtime/ftplugin/routeros.vim @zainin
|
||||
runtime/ftplugin/ruby.vim @tpope @dkearns
|
||||
runtime/ftplugin/sass.vim @tpope
|
||||
runtime/ftplugin/scss.vim @tpope
|
||||
runtime/ftplugin/solution.vim @dkearns
|
||||
runtime/ftplugin/spec.vim @ignatenkobrain
|
||||
runtime/ftplugin/systemverilog.vim @Kocha
|
||||
runtime/ftplugin/tcsh.vim @dkearns
|
||||
@@ -122,6 +128,7 @@ runtime/ftplugin/xml.vim @chrisbra
|
||||
runtime/ftplugin/zsh.vim @chrisbra
|
||||
runtime/indent/bst.vim @tpope
|
||||
runtime/indent/cdl.vim @dkearns
|
||||
runtime/indent/clojure.vim @axvr
|
||||
runtime/indent/config.vim @dkearns
|
||||
runtime/indent/css.vim @dkearns
|
||||
runtime/indent/cucumber.vim @tpope
|
||||
@@ -179,6 +186,7 @@ runtime/syntax/bst.vim @tpope
|
||||
runtime/syntax/cabal.vim @coot
|
||||
runtime/syntax/cabalconfig.vim @coot
|
||||
runtime/syntax/cabalproject.vim @coot
|
||||
runtime/syntax/clojure.vim @axvr
|
||||
runtime/syntax/cs.vim @nickspoons
|
||||
runtime/syntax/csh.vim @cecamp
|
||||
runtime/syntax/cucumber.vim @tpope
|
||||
@@ -202,6 +210,8 @@ runtime/syntax/groff.vim @jmarshall
|
||||
runtime/syntax/haml.vim @tpope
|
||||
runtime/syntax/haskell.vim @coot
|
||||
runtime/syntax/hgcommit.vim @k-takata
|
||||
runtime/syntax/i3config.vim @hiqua
|
||||
runtime/syntax/indent.vim @dkearns
|
||||
runtime/syntax/kconfig.vim @chrisbra
|
||||
runtime/syntax/less.vim @genoma
|
||||
runtime/syntax/lex.vim @cecamp
|
||||
@@ -230,6 +240,7 @@ runtime/syntax/ps1.vim @heaths
|
||||
runtime/syntax/ps1xml.vim @heaths
|
||||
runtime/syntax/psl.vim @danielkho
|
||||
runtime/syntax/rc.vim @chrisbra
|
||||
runtime/syntax/routeros.vim @zainin
|
||||
runtime/syntax/rpcgen.vim @cecamp
|
||||
runtime/syntax/ruby.vim @dkearns
|
||||
runtime/syntax/sass.vim @tpope
|
||||
|
||||
26
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
26
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -8,6 +8,11 @@ body:
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for reporting issues of Vim!
|
||||
|
||||
If you want to report a security issue, instead of reporting it here
|
||||
you can alternatively disclose it on
|
||||
[huntr.dev](https://huntr.dev/bounties/disclose/?utm_campaign=vim%2Fvim&utm_medium=social&utm_source=github&target=https%3A%2F%2Fgithub.com%2Fvim%2Fvim).
|
||||
They have rewards in the form of money, swag and CVEs.
|
||||
|
||||
To make it easier for us to help you please enter detailed information below.
|
||||
- type: textarea
|
||||
@@ -26,18 +31,23 @@ body:
|
||||
placeholder: A clear and concise description of what you expected to happen.
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
attributes:
|
||||
label: Operating system
|
||||
description: >
|
||||
Your operating system name, version and desktop environment.
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
attributes:
|
||||
label: Version of Vim
|
||||
description: >
|
||||
The name of your development environment, version. [e.g. GNOME Terminal (v0.0.0000)]
|
||||
Including patch level, use ":version" to see it [e.g. 8.2.1234]
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Environment
|
||||
description: >
|
||||
OS [e.g. Ubuntu 21.10], terminal [e.g. GNOME Terminal 3.38.1], value of $TERM, shell [e.g. bash 5.1.8]; anything that might matter
|
||||
placeholder: |
|
||||
Operating system:
|
||||
Terminal:
|
||||
Value of $TERM:
|
||||
Shell:
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
|
||||
29
.github/workflows/ci.yml
vendored
29
.github/workflows/ci.yml
vendored
@@ -75,16 +75,16 @@ jobs:
|
||||
libtool-bin \
|
||||
libsodium-dev
|
||||
|
||||
- name: Install clang-11
|
||||
- name: Install clang-13
|
||||
if: matrix.compiler == 'clang'
|
||||
run: |
|
||||
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
|
||||
. /etc/lsb-release
|
||||
sudo add-apt-repository -y "deb http://apt.llvm.org/${DISTRIB_CODENAME}/ llvm-toolchain-${DISTRIB_CODENAME}-11 main"
|
||||
sudo apt-get install -y clang-11 llvm-11
|
||||
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-11 100
|
||||
sudo update-alternatives --set clang /usr/bin/clang-11
|
||||
sudo update-alternatives --install /usr/bin/llvm-cov llvm-cov /usr/bin/llvm-cov-11 100
|
||||
sudo add-apt-repository -y "deb http://apt.llvm.org/${DISTRIB_CODENAME}/ llvm-toolchain-${DISTRIB_CODENAME}-13 main"
|
||||
sudo apt-get install -y clang-13 llvm-13
|
||||
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-13 100
|
||||
sudo update-alternatives --set clang /usr/bin/clang-13
|
||||
sudo update-alternatives --install /usr/bin/llvm-cov llvm-cov /usr/bin/llvm-cov-13 100
|
||||
|
||||
- name: Set up environment
|
||||
run: |
|
||||
@@ -188,6 +188,10 @@ jobs:
|
||||
# Append various warning flags to CFLAGS.
|
||||
sed -i -f ci/config.mk.sed ${SRCDIR}/auto/config.mk
|
||||
sed -i -f ci/config.mk.${CC}.sed ${SRCDIR}/auto/config.mk
|
||||
if [[ ${CC} = clang ]]; then
|
||||
# Suppress some warnings produced by clang 12 and later.
|
||||
sed -i -f ci/config.mk.clang-12.sed ${SRCDIR}/auto/config.mk
|
||||
fi
|
||||
|
||||
- name: Build
|
||||
if: (!contains(matrix.extra, 'unittests'))
|
||||
@@ -230,7 +234,7 @@ jobs:
|
||||
if: contains(matrix.extra, 'asan') && !cancelled()
|
||||
run: |
|
||||
for f in $(grep -lR '#[[:digit:]]* *0x[[:digit:]a-fA-F]*' "${LOG_DIR}"); do
|
||||
asan_symbolize-11 -l "$f"
|
||||
asan_symbolize-13 -l "$f"
|
||||
false # in order to fail a job
|
||||
done
|
||||
|
||||
@@ -251,7 +255,7 @@ jobs:
|
||||
runs-on: macos-latest
|
||||
|
||||
env:
|
||||
CC: ${{ matrix.compiler }}
|
||||
CC: clang
|
||||
TEST: test
|
||||
SRCDIR: ./src
|
||||
LEAK_CFLAGS: -DEXITFREE
|
||||
@@ -260,8 +264,7 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
features: [tiny, huge]
|
||||
compiler: [clang, gcc]
|
||||
features: [tiny, normal, huge]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
@@ -282,6 +285,8 @@ jobs:
|
||||
echo "TEST=testtiny"
|
||||
echo "CONFOPT=--disable-gui"
|
||||
;;
|
||||
normal)
|
||||
;;
|
||||
huge)
|
||||
echo "CONFOPT=--enable-perlinterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp"
|
||||
;;
|
||||
@@ -296,6 +301,10 @@ jobs:
|
||||
sed -i.bak -f ci/config.mk.sed ${SRCDIR}/auto/config.mk
|
||||
# On macOS, the entity of gcc is clang.
|
||||
sed -i.bak -f ci/config.mk.clang.sed ${SRCDIR}/auto/config.mk
|
||||
# Suppress some warnings produced by clang 12 and later.
|
||||
if clang --version | grep -qs 'Apple clang version \(1[3-9]\|[2-9]\)\.'; then
|
||||
sed -i.bak -f ci/config.mk.clang-12.sed ${SRCDIR}/auto/config.mk
|
||||
fi
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
|
||||
11
Filelist
11
Filelist
@@ -7,6 +7,8 @@ SRC_ALL = \
|
||||
.coveralls.yml \
|
||||
.gitattributes \
|
||||
.github/CODEOWNERS \
|
||||
.github/ISSUE_TEMPLATE/bug_report.yml \
|
||||
.github/ISSUE_TEMPLATE/feature_request.md \
|
||||
.github/workflows/ci.yml \
|
||||
.github/workflows/codeql-analysis.yml \
|
||||
.github/workflows/coverity.yml \
|
||||
@@ -142,7 +144,7 @@ SRC_ALL = \
|
||||
src/tag.c \
|
||||
src/term.c \
|
||||
src/terminal.c \
|
||||
src/term.h \
|
||||
src/termdefs.h \
|
||||
src/termlib.c \
|
||||
src/testing.c \
|
||||
src/textformat.c \
|
||||
@@ -158,8 +160,11 @@ SRC_ALL = \
|
||||
src/version.h \
|
||||
src/vim.h \
|
||||
src/vim9.h \
|
||||
src/vim9cmds.c \
|
||||
src/vim9compile.c \
|
||||
src/vim9execute.c \
|
||||
src/vim9expr.c \
|
||||
src/vim9instr.c \
|
||||
src/vim9script.c \
|
||||
src/vim9type.c \
|
||||
src/viminfo.c \
|
||||
@@ -317,8 +322,11 @@ SRC_ALL = \
|
||||
src/proto/usercmd.pro \
|
||||
src/proto/userfunc.pro \
|
||||
src/proto/version.pro \
|
||||
src/proto/vim9cmds.pro \
|
||||
src/proto/vim9compile.pro \
|
||||
src/proto/vim9execute.pro \
|
||||
src/proto/vim9expr.pro \
|
||||
src/proto/vim9instr.pro \
|
||||
src/proto/vim9script.pro \
|
||||
src/proto/vim9type.pro \
|
||||
src/proto/viminfo.pro \
|
||||
@@ -376,6 +384,7 @@ SRC_ALL = \
|
||||
src/libvterm/t/30state_pen.test \
|
||||
src/libvterm/t/31state_rep.test \
|
||||
src/libvterm/t/32state_flow.test \
|
||||
src/libvterm/t/40state_selection.test \
|
||||
src/libvterm/t/60screen_ascii.test \
|
||||
src/libvterm/t/61screen_unicode.test \
|
||||
src/libvterm/t/62screen_damage.test \
|
||||
|
||||
3
ci/config.mk.clang-12.sed
Normal file
3
ci/config.mk.clang-12.sed
Normal file
@@ -0,0 +1,3 @@
|
||||
# Clang 12 (or Apple clang 13) and later makes a warning '-Wcompound-token-split-by-macro' enable by default.
|
||||
/^PERL_CFLAGS[[:blank:]]*=/s/$/ -Wno-error=compound-token-split-by-macro/
|
||||
/^RUBY_CFLAGS[[:blank:]]*=/s/$/ -Wno-error=compound-token-split-by-macro/
|
||||
File diff suppressed because one or more lines are too long
40
runtime/autoload/dist/ft.vim
vendored
40
runtime/autoload/dist/ft.vim
vendored
@@ -1,7 +1,7 @@
|
||||
" Vim functions for file type detection
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2020 Aug 17
|
||||
" Last Change: 2021 Dec 17
|
||||
|
||||
" These functions are moved here from runtime/filetype.vim to make startup
|
||||
" faster.
|
||||
@@ -219,6 +219,23 @@ func dist#ft#FTe()
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Distinguish between Forth and F#.
|
||||
" Provided by Doug Kearns.
|
||||
func dist#ft#FTfs()
|
||||
if exists("g:filetype_fs")
|
||||
exe "setf " . g:filetype_fs
|
||||
else
|
||||
let line = getline(nextnonblank(1))
|
||||
" comments and colon definitions
|
||||
if line =~ '^\s*\.\=( ' || line =~ '^\s*\\G\= ' || line =~ '^\\$'
|
||||
\ || line =~ '^\s*: \S'
|
||||
setf forth
|
||||
else
|
||||
setf fsharp
|
||||
endif
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Distinguish between HTML, XHTML and Django
|
||||
func dist#ft#FThtml()
|
||||
let n = 1
|
||||
@@ -272,6 +289,8 @@ func dist#ft#FTm()
|
||||
" excluding end(for|function|if|switch|while) common to Murphi
|
||||
let octave_block_terminators = '\<end\%(_try_catch\|classdef\|enumeration\|events\|methods\|parfor\|properties\)\>'
|
||||
|
||||
let objc_preprocessor = '^\s*#\s*\%(import\|include\|define\|if\|ifn\=def\|undef\|line\|error\|pragma\)\>'
|
||||
|
||||
let n = 1
|
||||
let saw_comment = 0 " Whether we've seen a multiline comment leader.
|
||||
while n < 100
|
||||
@@ -282,7 +301,7 @@ func dist#ft#FTm()
|
||||
" anything more definitive.
|
||||
let saw_comment = 1
|
||||
endif
|
||||
if line =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|//\)'
|
||||
if line =~ '^\s*//' || line =~ '^\s*@import\>' || line =~ objc_preprocessor
|
||||
setf objc
|
||||
return
|
||||
endif
|
||||
@@ -792,6 +811,23 @@ func dist#ft#Redif()
|
||||
endwhile
|
||||
endfunc
|
||||
|
||||
" This function is called for all files under */debian/patches/*, make sure not
|
||||
" to non-dep3patch files, such as README and other text files.
|
||||
func dist#ft#Dep3patch()
|
||||
if expand('%:t') ==# 'series'
|
||||
return
|
||||
endif
|
||||
|
||||
for ln in getline(1, 100)
|
||||
if ln =~# '^\%(Description\|Subject\|Origin\|Bug\|Forwarded\|Author\|From\|Reviewed-by\|Acked-by\|Last-Updated\|Applied-Upstream\):'
|
||||
setf dep3patch
|
||||
return
|
||||
elseif ln =~# '^---'
|
||||
" end of headers found. stop processing
|
||||
return
|
||||
endif
|
||||
endfor
|
||||
endfunc
|
||||
|
||||
" Restore 'cpoptions'
|
||||
let &cpo = s:cpo_save
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" zip.vim: Handles browsing zipfiles
|
||||
" AUTOLOAD PORTION
|
||||
" Date: Jan 07, 2020
|
||||
" Version: 31
|
||||
" Date: Nov 08, 2021
|
||||
" Version: 32
|
||||
" Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" License: Vim License (see vim's :help license)
|
||||
" Copyright: Copyright (C) 2005-2019 Charles E. Campbell {{{1
|
||||
@@ -20,7 +20,7 @@
|
||||
if &cp || exists("g:loaded_zip")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_zip= "v31"
|
||||
let g:loaded_zip= "v32"
|
||||
if v:version < 702
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of zip needs vim 7.2 or later"
|
||||
@@ -115,7 +115,13 @@ fun! zip#Browse(zipfile)
|
||||
setlocal bufhidden=hide
|
||||
setlocal nobuflisted
|
||||
setlocal nowrap
|
||||
set ft=tar
|
||||
|
||||
" Oct 12, 2021: need to re-use Bram's syntax/tar.vim.
|
||||
" Setting the filetype to zip doesn't do anything (currently),
|
||||
" but it is perhaps less confusing to curious perusers who do
|
||||
" a :echo &ft
|
||||
setf zip
|
||||
run! syntax/tar.vim
|
||||
|
||||
" give header
|
||||
call append(0, ['" zip.vim version '.g:loaded_zip,
|
||||
@@ -187,8 +193,8 @@ fun! s:ZipBrowseSelect()
|
||||
wincmd _
|
||||
endif
|
||||
let s:zipfile_{winnr()}= curfile
|
||||
" call Decho("exe e ".fnameescape("zipfile:".zipfile.'::'.fname))
|
||||
exe "noswapfile e ".fnameescape("zipfile:".zipfile.'::'.fname)
|
||||
" call Decho("exe e ".fnameescape("zipfile://".zipfile.'::'.fname))
|
||||
exe "noswapfile e ".fnameescape("zipfile://".zipfile.'::'.fname)
|
||||
filetype detect
|
||||
|
||||
let &report= repkeep
|
||||
@@ -203,11 +209,11 @@ fun! zip#Read(fname,mode)
|
||||
set report=10
|
||||
|
||||
if has("unix")
|
||||
let zipfile = substitute(a:fname,'zipfile:\(.\{-}\)::[^\\].*$','\1','')
|
||||
let fname = substitute(a:fname,'zipfile:.\{-}::\([^\\].*\)$','\1','')
|
||||
let zipfile = substitute(a:fname,'zipfile://\(.\{-}\)::[^\\].*$','\1','')
|
||||
let fname = substitute(a:fname,'zipfile://.\{-}::\([^\\].*\)$','\1','')
|
||||
else
|
||||
let zipfile = substitute(a:fname,'^.\{-}zipfile:\(.\{-}\)::[^\\].*$','\1','')
|
||||
let fname = substitute(a:fname,'^.\{-}zipfile:.\{-}::\([^\\].*\)$','\1','')
|
||||
let zipfile = substitute(a:fname,'^.\{-}zipfile://\(.\{-}\)::[^\\].*$','\1','')
|
||||
let fname = substitute(a:fname,'^.\{-}zipfile://.\{-}::\([^\\].*\)$','\1','')
|
||||
let fname = substitute(fname, '[', '[[]', 'g')
|
||||
endif
|
||||
" call Decho("zipfile<".zipfile.">")
|
||||
@@ -224,7 +230,7 @@ fun! zip#Read(fname,mode)
|
||||
|
||||
" the following code does much the same thing as
|
||||
" exe "keepj sil! r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fnameescape(fname),1)
|
||||
" but allows zipfile:... entries in quickfix lists
|
||||
" but allows zipfile://... entries in quickfix lists
|
||||
let temp = tempname()
|
||||
" call Decho("using temp file<".temp.">")
|
||||
let fn = expand('%:p')
|
||||
@@ -296,11 +302,11 @@ fun! zip#Write(fname)
|
||||
" call Decho("current directory now: ".getcwd())
|
||||
|
||||
if has("unix")
|
||||
let zipfile = substitute(a:fname,'zipfile:\(.\{-}\)::[^\\].*$','\1','')
|
||||
let fname = substitute(a:fname,'zipfile:.\{-}::\([^\\].*\)$','\1','')
|
||||
let zipfile = substitute(a:fname,'zipfile://\(.\{-}\)::[^\\].*$','\1','')
|
||||
let fname = substitute(a:fname,'zipfile://.\{-}::\([^\\].*\)$','\1','')
|
||||
else
|
||||
let zipfile = substitute(a:fname,'^.\{-}zipfile:\(.\{-}\)::[^\\].*$','\1','')
|
||||
let fname = substitute(a:fname,'^.\{-}zipfile:.\{-}::\([^\\].*\)$','\1','')
|
||||
let zipfile = substitute(a:fname,'^.\{-}zipfile://\(.\{-}\)::[^\\].*$','\1','')
|
||||
let fname = substitute(a:fname,'^.\{-}zipfile://.\{-}::\([^\\].*\)$','\1','')
|
||||
endif
|
||||
" call Decho("zipfile<".zipfile.">")
|
||||
" call Decho("fname <".fname.">")
|
||||
|
||||
@@ -226,7 +226,13 @@ fu! Result(err)
|
||||
endif
|
||||
endfu
|
||||
|
||||
call Test_check_colors()
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
try
|
||||
call Test_check_colors()
|
||||
catch
|
||||
echohl ErrorMsg
|
||||
echomsg v:exception
|
||||
echohl NONE
|
||||
finally
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
endtry
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" The default vimrc file.
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last change: 2020 Sep 30
|
||||
" Last change: 2021 Nov 17
|
||||
"
|
||||
" This is loaded if no vimrc file was found.
|
||||
" Except when Vim is run with "-u NONE" or "-C".
|
||||
@@ -96,7 +96,7 @@ if 1
|
||||
filetype plugin indent on
|
||||
|
||||
" Put these in an autocmd group, so that you can revert them with:
|
||||
" ":augroup vimStartup | au! | augroup END"
|
||||
" ":augroup vimStartup | exe 'au!' | augroup END"
|
||||
augroup vimStartup
|
||||
au!
|
||||
|
||||
@@ -111,6 +111,18 @@ if 1
|
||||
|
||||
augroup END
|
||||
|
||||
" Quite a few people accidentally type "q:" instead of ":q" and get confused
|
||||
" by the command line window. Give a hint about how to get out.
|
||||
" If you don't like this you can put this in your vimrc:
|
||||
" ":augroup vimHints | exe 'au!' | augroup END"
|
||||
augroup vimHints
|
||||
au!
|
||||
autocmd CmdwinEnter *
|
||||
\ echohl Todo |
|
||||
\ echo 'You discovered the command-line window! You can close it with ":q".' |
|
||||
\ echohl None
|
||||
augroup END
|
||||
|
||||
endif
|
||||
|
||||
" Switch syntax highlighting on when the terminal has colors or when using the
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 8.2. Last change: 2021 Oct 04
|
||||
*autocmd.txt* For Vim version 8.2. Last change: 2021 Nov 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -83,7 +83,7 @@ triggered.
|
||||
}
|
||||
|
||||
Note: The ":autocmd" command can only be followed by another command when the
|
||||
'|' appears before {cmd}. This works: >
|
||||
'|' appears where the pattern is expected. This works: >
|
||||
:augroup mine | au! BufRead | augroup END
|
||||
But this sees "augroup" as part of the defined command: >
|
||||
:augroup mine | au! BufRead * | augroup END
|
||||
@@ -348,6 +348,7 @@ Name triggered by ~
|
||||
|
||||
|WinNew| after creating a new window
|
||||
|TabNew| after creating a new tab page
|
||||
|WinClosed| after closing a window
|
||||
|TabClosed| after closing a tab page
|
||||
|WinEnter| after entering another window
|
||||
|WinLeave| before leaving a window
|
||||
@@ -1280,6 +1281,12 @@ VimResume When the Vim instance is resumed after being
|
||||
VimSuspend When the Vim instance is suspended. Only when
|
||||
CTRL-Z was typed inside Vim, not when the
|
||||
SIGSTOP or SIGTSTP signal was sent to Vim.
|
||||
*WinClosed*
|
||||
WinClosed After closing a window. The pattern is
|
||||
matched against the |window-ID|. Both
|
||||
<amatch> and <afile> are set to the
|
||||
|window-ID|. Non-recursive (event cannot
|
||||
trigger itself).
|
||||
*WinEnter*
|
||||
WinEnter After entering another window. Not done for
|
||||
the first window, when Vim has just started.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*channel.txt* For Vim version 8.2. Last change: 2020 Oct 17
|
||||
*channel.txt* For Vim version 8.2. Last change: 2021 Nov 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -101,7 +101,7 @@ Instead of giving a callback with every send call, it can also be specified
|
||||
when opening the channel: >
|
||||
call ch_close(channel)
|
||||
let channel = ch_open('localhost:8765', {'callback': "MyHandler"})
|
||||
call ch_sendexpr(channel, 'hello!')
|
||||
call ch_sendexpr(channel, 'hello channel!')
|
||||
|
||||
When trying out channels it's useful to see what is going on. You can tell
|
||||
Vim to write lines in log file: >
|
||||
@@ -132,8 +132,9 @@ When using an IPv6 address, enclose it within square brackets. E.g.,
|
||||
"raw" - Use raw messages
|
||||
*channel-callback* *E921*
|
||||
"callback" A function that is called when a message is received that is
|
||||
not handled otherwise. It gets two arguments: the channel
|
||||
and the received message. Example: >
|
||||
not handled otherwise (e.g. a JSON message with ID zero). It
|
||||
gets two arguments: the channel and the received message.
|
||||
Example: >
|
||||
func Handle(channel, msg)
|
||||
echo 'Received: ' . a:msg
|
||||
endfunc
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*cmdline.txt* For Vim version 8.2. Last change: 2021 Aug 06
|
||||
*cmdline.txt* For Vim version 8.2. Last change: 2021 Dec 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -919,15 +919,19 @@ Note: these are typed literally, they are not special keys!
|
||||
*:<amatch>* *<amatch>*
|
||||
<amatch> When executing autocommands, is replaced with the match for
|
||||
which this autocommand was executed. *E497*
|
||||
It differs from <afile> only when the file name isn't used
|
||||
to match with (for FileType, Syntax and SpellFileMissing
|
||||
It differs from <afile> when the file name isn't used to
|
||||
match with (for FileType, Syntax and SpellFileMissing
|
||||
events).
|
||||
When the match is with a file name, it is expanded to the
|
||||
full path.
|
||||
*:<sfile>* *<sfile>*
|
||||
<sfile> When executing a ":source" command, is replaced with the
|
||||
file name of the sourced file. *E498*
|
||||
When executing a function, is replaced with the call stack,
|
||||
as with <stack> (this is for backwards compatibility, using
|
||||
<stack> is preferred).
|
||||
When executing a legacy function, is replaced with the call
|
||||
stack, as with <stack> (this is for backwards
|
||||
compatibility, using <stack> is preferred).
|
||||
In Vim9 script using <sfile> in a function gives error
|
||||
*E1245* .
|
||||
Note that filename-modifiers are useless when <sfile> is
|
||||
not used inside a script.
|
||||
*:<stack>* *<stack>*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*editing.txt* For Vim version 8.2. Last change: 2021 Oct 16
|
||||
*editing.txt* For Vim version 8.2. Last change: 2021 Dec 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1298,11 +1298,12 @@ Changing directory fails when the current buffer is modified, the '.' flag is
|
||||
present in 'cpoptions' and "!" is not used in the command.
|
||||
|
||||
*:cd* *E747* *E472*
|
||||
:cd[!] On non-Unix systems: Print the current directory
|
||||
name. On Unix systems: Change the current directory
|
||||
to the home directory. Use |:pwd| to print the
|
||||
current directory on all systems.
|
||||
On Unix systems: clear any window-local directory.
|
||||
:cd[!] On non-Unix systems when 'cdhome' is off: Print the
|
||||
current directory name.
|
||||
Otherwise: Change the current directory to the home
|
||||
directory. Clear any window-local directory.
|
||||
Use |:pwd| to print the current directory on all
|
||||
systems.
|
||||
|
||||
:cd[!] {path} Change the current directory to {path}.
|
||||
If {path} is relative, it is searched for in the
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*eval.txt* For Vim version 8.2. Last change: 2021 Oct 20
|
||||
*eval.txt* For Vim version 8.2. Last change: 2021 Dec 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1865,15 +1865,15 @@ v:colornames A dictionary that maps color names to hex color strings. These
|
||||
\ 'mauve': '#915f6d,
|
||||
\ }, 'keep')
|
||||
<
|
||||
Using |extend| with the 'keep' option updates each color only
|
||||
Using |extend()| with the 'keep' option updates each color only
|
||||
if it did not exist in |v:colornames|. Doing so allows the
|
||||
user to choose the precise color value for a common name
|
||||
by setting it in their |.vimrc|.
|
||||
|
||||
It is possible to remove entries from this dictionary but
|
||||
doing so is *NOT* recommended. Doing so is disruptive to
|
||||
doing so is NOT recommended, because it is disruptive to
|
||||
other scripts. It is also unlikely to achieve the desired
|
||||
result because the |colorscheme| and |highlight| commands will
|
||||
result because the |:colorscheme| and |:highlight| commands will
|
||||
both automatically load all `colors/lists/default.vim` color
|
||||
scripts.
|
||||
|
||||
@@ -2290,6 +2290,21 @@ v:shell_error Result of the last shell command. When non-zero, the last
|
||||
< "shell_error" also works, for backwards compatibility, unless
|
||||
|scriptversion| is 3 or higher.
|
||||
|
||||
*v:sizeofint* *sizeofint-variable*
|
||||
v:sizeofint Number of bytes in an int. Depends on how Vim was compiled.
|
||||
This is only useful for deciding whether a test will give the
|
||||
expected result.
|
||||
|
||||
*v:sizeoflong* *sizeoflong-variable*
|
||||
v:sizeoflong Number of bytes in a long. Depends on how Vim was compiled.
|
||||
This is only useful for deciding whether a test will give the
|
||||
expected result.
|
||||
|
||||
*v:sizeofpointer* *sizeofpointer-variable*
|
||||
v:sizeofpointer Number of bytes in a pointer. Depends on how Vim was compiled.
|
||||
This is only useful for deciding whether a test will give the
|
||||
expected result.
|
||||
|
||||
*v:statusmsg* *statusmsg-variable*
|
||||
v:statusmsg Last given status message. It's allowed to set this variable.
|
||||
|
||||
@@ -2352,7 +2367,9 @@ v:termresponse The escape sequence returned by the terminal for the |t_RV|
|
||||
The response from a new xterm is: "<Esc>[> Pp ; Pv ; Pc c". Pp
|
||||
is the terminal type: 0 for vt100 and 1 for vt220. Pv is the
|
||||
patch level (since this was introduced in patch 95, it's
|
||||
always 95 or bigger). Pc is always zero.
|
||||
always 95 or higher). Pc is always zero.
|
||||
If Pv is 141 or higher then Vim will try to request terminal
|
||||
codes. This only works with xterm |xterm-codes|.
|
||||
{only when compiled with |+termresponse| feature}
|
||||
|
||||
*v:termblinkresp*
|
||||
@@ -2613,7 +2630,8 @@ extendnew({expr1}, {expr2} [, {expr3}])
|
||||
feedkeys({string} [, {mode}]) Number add key sequence to typeahead buffer
|
||||
filereadable({file}) Number |TRUE| if {file} is a readable file
|
||||
filewritable({file}) Number |TRUE| if {file} is a writable file
|
||||
filter({expr1}, {expr2}) List/Dict remove items from {expr1} where
|
||||
filter({expr1}, {expr2}) List/Dict/Blob/String
|
||||
remove items from {expr1} where
|
||||
{expr2} is 0
|
||||
finddir({name} [, {path} [, {count}]])
|
||||
String find directory {name} in {path}
|
||||
@@ -2771,14 +2789,16 @@ localtime() Number current time
|
||||
log({expr}) Float natural logarithm (base e) of {expr}
|
||||
log10({expr}) Float logarithm of Float {expr} to base 10
|
||||
luaeval({expr} [, {expr}]) any evaluate |Lua| expression
|
||||
map({expr1}, {expr2}) List/Dict change each item in {expr1} to {expr}
|
||||
map({expr1}, {expr2}) List/Dict/Blob/String
|
||||
change each item in {expr1} to {expr2}
|
||||
maparg({name} [, {mode} [, {abbr} [, {dict}]]])
|
||||
String or Dict
|
||||
rhs of mapping {name} in mode {mode}
|
||||
mapcheck({name} [, {mode} [, {abbr}]])
|
||||
String check for mappings matching {name}
|
||||
mapnew({expr1}, {expr2}) List/Dict like |map()| but creates a new List
|
||||
or Dictionary
|
||||
mapnew({expr1}, {expr2}) List/Dict/Blob/String
|
||||
like |map()| but creates a new List or
|
||||
Dictionary
|
||||
mapset({mode}, {abbr}, {dict}) none restore mapping from |maparg()| result
|
||||
match({expr}, {pat} [, {start} [, {count}]])
|
||||
Number position where {pat} matches in {expr}
|
||||
@@ -4863,10 +4883,11 @@ filewritable({file}) *filewritable()*
|
||||
|
||||
|
||||
filter({expr1}, {expr2}) *filter()*
|
||||
{expr1} must be a |List|, |Blob| or |Dictionary|.
|
||||
{expr1} must be a |List|, |String|, |Blob| or |Dictionary|.
|
||||
For each item in {expr1} evaluate {expr2} and when the result
|
||||
is zero remove the item from the |List| or |Dictionary|. For a
|
||||
|Blob| each byte is removed.
|
||||
is zero or false remove the item from the |List| or
|
||||
|Dictionary|. Similarly for each byte in a |Blob| and each
|
||||
charactor in a |String|.
|
||||
|
||||
{expr2} must be a |string| or |Funcref|.
|
||||
|
||||
@@ -4874,7 +4895,8 @@ filter({expr1}, {expr2}) *filter()*
|
||||
of the current item. For a |Dictionary| |v:key| has the key
|
||||
of the current item and for a |List| |v:key| has the index of
|
||||
the current item. For a |Blob| |v:key| has the index of the
|
||||
current byte.
|
||||
current byte. For a |String| |v:key| has the index of the
|
||||
current character.
|
||||
Examples: >
|
||||
call filter(mylist, 'v:val !~ "OLD"')
|
||||
< Removes the items where "OLD" appears. >
|
||||
@@ -4901,14 +4923,16 @@ filter({expr1}, {expr2}) *filter()*
|
||||
< If you do not use "val" you can leave it out: >
|
||||
call filter(myList, {idx -> idx % 2 == 1})
|
||||
<
|
||||
The operation is done in-place. If you want a |List| or
|
||||
|Dictionary| to remain unmodified make a copy first: >
|
||||
For a |List| and a |Dictionary| the operation is done
|
||||
in-place. If you want it to remain unmodified make a copy
|
||||
first: >
|
||||
:let l = filter(copy(mylist), 'v:val =~ "KEEP"')
|
||||
|
||||
< Returns {expr1}, the |List| , |Blob| or |Dictionary| that was
|
||||
filtered. When an error is encountered while evaluating
|
||||
{expr2} no further items in {expr1} are processed. When
|
||||
{expr2} is a Funcref errors inside a function are ignored,
|
||||
< Returns {expr1}, the |List| or |Dictionary| that was filtered,
|
||||
or a new |Blob| or |String|.
|
||||
When an error is encountered while evaluating {expr2} no
|
||||
further items in {expr1} are processed.
|
||||
When {expr2} is a Funcref errors inside a function are ignored,
|
||||
unless it was defined with the "abort" flag.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
@@ -4967,6 +4991,9 @@ flatten({list} [, {maxdepth}]) *flatten()*
|
||||
:echo flatten([1, [2, [3, 4]], 5], 1)
|
||||
< [1, 2, [3, 4], 5]
|
||||
|
||||
Can also be used as a |method|: >
|
||||
mylist->flatten()
|
||||
<
|
||||
flattennew({list} [, {maxdepth}]) *flattennew()*
|
||||
Like |flatten()| but first make a copy of {list}.
|
||||
|
||||
@@ -5644,7 +5671,7 @@ getcompletion({pat}, {type} [, {filtered}]) *getcompletion()*
|
||||
buffer buffer names
|
||||
behave :behave suboptions
|
||||
color color schemes
|
||||
command Ex command (and arguments)
|
||||
command Ex command
|
||||
cmdline |cmdline-completion| result
|
||||
compiler compilers
|
||||
cscope |:cscope| suboptions
|
||||
@@ -5739,7 +5766,7 @@ getcursorcharpos([{winid}])
|
||||
< *getcwd()*
|
||||
getcwd([{winnr} [, {tabnr}]])
|
||||
The result is a String, which is the name of the current
|
||||
working directory.
|
||||
working directory. 'autochdir' is ignored.
|
||||
|
||||
With {winnr} return the local current directory of this window
|
||||
in the current tab page. {winnr} can be the window number or
|
||||
@@ -5752,8 +5779,8 @@ getcwd([{winnr} [, {tabnr}]])
|
||||
the working directory of the tabpage.
|
||||
If {winnr} is zero use the current window, if {tabnr} is zero
|
||||
use the current tabpage.
|
||||
Without any arguments, return the working directory of the
|
||||
current window.
|
||||
Without any arguments, return the actual working directory of
|
||||
the current window.
|
||||
Return an empty string if the arguments are invalid.
|
||||
|
||||
Examples: >
|
||||
@@ -5901,8 +5928,8 @@ getline({lnum} [, {end}])
|
||||
digit, |line()| is called to translate the String into a Number.
|
||||
To get the line under the cursor: >
|
||||
getline(".")
|
||||
< When {lnum} is smaller than 1 or bigger than the number of
|
||||
lines in the buffer, an empty string is returned.
|
||||
< When {lnum} is a number smaller than 1 or bigger than the
|
||||
number of lines in the buffer, an empty string is returned.
|
||||
|
||||
When {end} is given the result is a |List| where each item is
|
||||
a line from the current buffer in the range {lnum} to {end},
|
||||
@@ -6165,8 +6192,9 @@ getreg([{regname} [, 1 [, {list}]]]) *getreg()*
|
||||
The result is a String, which is the contents of register
|
||||
{regname}. Example: >
|
||||
:let cliptext = getreg('*')
|
||||
< When {regname} was not set the result is an empty string.
|
||||
The {regname} argument is a string.
|
||||
< When register {regname} was not set the result is an empty
|
||||
string.
|
||||
The {regname} argument must be a string.
|
||||
|
||||
getreg('=') returns the last evaluated value of the expression
|
||||
register. (For use in maps.)
|
||||
@@ -6364,6 +6392,9 @@ getwininfo([{winid}]) *getwininfo()*
|
||||
otherwise
|
||||
wincol leftmost screen column of the window;
|
||||
"col" from |win_screenpos()|
|
||||
textoff number of columns occupied by any
|
||||
'foldcolumn', 'signcolumn' and line
|
||||
number in front of the text
|
||||
winid |window-ID|
|
||||
winnr window number
|
||||
winrow topmost screen line of the window;
|
||||
@@ -6732,7 +6763,7 @@ hlget([{name} [, {resolve}]]) *hlget()*
|
||||
|
||||
Each entry in the returned List is a Dictionary with the
|
||||
following items:
|
||||
cleared Boolean flag, set to v:true if the highlight
|
||||
cleared boolean flag, set to v:true if the highlight
|
||||
group attributes are cleared or not yet
|
||||
specified. See |highlight-clear|.
|
||||
cterm cterm attributes. See |highlight-cterm|.
|
||||
@@ -6741,6 +6772,9 @@ hlget([{name} [, {resolve}]]) *hlget()*
|
||||
ctermfg cterm foreground color.
|
||||
See |highlight-ctermfg|.
|
||||
ctermul cterm underline color. See |highlight-ctermul|.
|
||||
default boolean flag, set to v:true if the highlight
|
||||
group link is a default link. See
|
||||
|highlight-default|.
|
||||
font highlight group font. See |highlight-font|.
|
||||
gui gui attributes. See |highlight-gui|.
|
||||
guibg gui background color. See |highlight-guibg|.
|
||||
@@ -6773,6 +6807,13 @@ hlset({list}) *hlset()*
|
||||
attributes of a highlight group. See |hlget()| for the list of
|
||||
supported items in this dictionary.
|
||||
|
||||
In addition to the items described in |hlget()|, the following
|
||||
additional items are supported in the dictionary:
|
||||
|
||||
force boolean flag to force the creation of
|
||||
a link for an existing highlight group
|
||||
with attributes.
|
||||
|
||||
The highlight group is identified using the 'name' item and
|
||||
the 'id' item (if supplied) is ignored. If a highlight group
|
||||
with a specified name doesn't exist, then it is created.
|
||||
@@ -6802,6 +6843,11 @@ hlset({list}) *hlset()*
|
||||
:call hlset([#{name: 'Title', term: {}}])
|
||||
" create the MyHlg group linking it to DiffAdd
|
||||
:call hlset([#{name: 'MyHlg', linksto: 'DiffAdd'}])
|
||||
" remove the MyHlg group link
|
||||
:call hlset([#{name: 'MyHlg', linksto: 'NONE'}])
|
||||
" clear the attributes and a link
|
||||
:call hlset([#{name: 'MyHlg', cleared: v:true,
|
||||
\ linksto: 'NONE'}])
|
||||
<
|
||||
Can also be used as a |method|: >
|
||||
GetAttrList()->hlset()
|
||||
@@ -7530,20 +7576,24 @@ luaeval({expr} [, {expr}]) *luaeval()*
|
||||
< {only available when compiled with the |+lua| feature}
|
||||
|
||||
map({expr1}, {expr2}) *map()*
|
||||
{expr1} must be a |List|, |Blob| or |Dictionary|.
|
||||
Replace each item in {expr1} with the result of evaluating
|
||||
{expr2}. For a |Blob| each byte is replaced.
|
||||
{expr1} must be a |List|, |String|, |Blob| or |Dictionary|.
|
||||
When {expr1} is a |List|| or |Dictionary|, replace each
|
||||
item in {expr1} with the result of evaluating {expr2}.
|
||||
For a |Blob| each byte is replaced.
|
||||
For a |String|, each character, including composing
|
||||
characters, is replaced.
|
||||
If the item type changes you may want to use |mapnew()| to
|
||||
create a new List or Dictionary. This is required when using
|
||||
Vim9 script.
|
||||
|
||||
{expr2} must be a |string| or |Funcref|.
|
||||
{expr2} must be a |String| or |Funcref|.
|
||||
|
||||
If {expr2} is a |string|, inside {expr2} |v:val| has the value
|
||||
If {expr2} is a |String|, inside {expr2} |v:val| has the value
|
||||
of the current item. For a |Dictionary| |v:key| has the key
|
||||
of the current item and for a |List| |v:key| has the index of
|
||||
the current item. For a |Blob| |v:key| has the index of the
|
||||
current byte.
|
||||
current byte. For a |String| |v:key| has the index of the
|
||||
current character.
|
||||
Example: >
|
||||
:call map(mylist, '"> " . v:val . " <"')
|
||||
< This puts "> " before and " <" after each item in "mylist".
|
||||
@@ -7569,14 +7619,15 @@ map({expr1}, {expr2}) *map()*
|
||||
< If you do not use "key" you can use a short name: >
|
||||
call map(myDict, {_, val -> 'item: ' . val})
|
||||
<
|
||||
The operation is done in-place. If you want a |List| or
|
||||
|Dictionary| to remain unmodified make a copy first: >
|
||||
The operation is done in-place for a |List| and |Dictionary|.
|
||||
If you want it to remain unmodified make a copy first: >
|
||||
:let tlist = map(copy(mylist), ' v:val . "\t"')
|
||||
|
||||
< Returns {expr1}, the |List|, |Blob| or |Dictionary| that was
|
||||
filtered. When an error is encountered while evaluating
|
||||
{expr2} no further items in {expr1} are processed. When
|
||||
{expr2} is a Funcref errors inside a function are ignored,
|
||||
< Returns {expr1}, the |List| or |Dictionary| that was filtered,
|
||||
or a new |Blob| or |String|.
|
||||
When an error is encountered while evaluating {expr2} no
|
||||
further items in {expr1} are processed.
|
||||
When {expr2} is a Funcref errors inside a function are ignored,
|
||||
unless it was defined with the "abort" flag.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
@@ -7772,6 +7823,7 @@ match({expr}, {pat} [, {start} [, {count}]]) *match()*
|
||||
further down in the text.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetText()->match('word')
|
||||
GetList()->match('word')
|
||||
<
|
||||
*matchadd()* *E798* *E799* *E801* *E957*
|
||||
@@ -8008,8 +8060,10 @@ matchlist({expr}, {pat} [, {start} [, {count}]]) *matchlist()*
|
||||
< Results in: ['acd', 'a', '', 'c', 'd', '', '', '', '', '']
|
||||
When there is no match an empty list is returned.
|
||||
|
||||
You can pass in a List, but that is not very useful.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetList()->matchlist('word')
|
||||
GetText()->matchlist('word')
|
||||
|
||||
matchstr({expr}, {pat} [, {start} [, {count}]]) *matchstr()*
|
||||
Same as |match()|, but return the matched string. Example: >
|
||||
@@ -8450,15 +8504,18 @@ printf({fmt}, {expr1} ...) *printf()*
|
||||
field width. If the converted value has fewer bytes
|
||||
than the field width, it will be padded with spaces on
|
||||
the left (or right, if the left-adjustment flag has
|
||||
been given) to fill out the field width.
|
||||
been given) to fill out the field width. For the S
|
||||
conversion the count is in cells.
|
||||
|
||||
.precision
|
||||
An optional precision, in the form of a period '.'
|
||||
followed by an optional digit string. If the digit
|
||||
string is omitted, the precision is taken as zero.
|
||||
This gives the minimum number of digits to appear for
|
||||
d, o, x, and X conversions, or the maximum number of
|
||||
bytes to be printed from a string for s conversions.
|
||||
d, o, x, and X conversions, the maximum number of
|
||||
bytes to be printed from a string for s conversions,
|
||||
or the maximum number of cells to be printed from a
|
||||
string for S conversions.
|
||||
For floating point it is the number of digits after
|
||||
the decimal point.
|
||||
|
||||
@@ -8907,9 +8964,9 @@ readfile({fname} [, {type} [, {max}]])
|
||||
|
||||
reduce({object}, {func} [, {initial}]) *reduce()* *E998*
|
||||
{func} is called for every item in {object}, which can be a
|
||||
|List| or a |Blob|. {func} is called with two arguments: the
|
||||
result so far and current item. After processing all items
|
||||
the result is returned.
|
||||
|String|, |List| or a |Blob|. {func} is called with two
|
||||
arguments: the result so far and current item. After
|
||||
processing all items the result is returned.
|
||||
|
||||
{initial} is the initial result. When omitted, the first item
|
||||
in {object} is used and {func} is first called for the second
|
||||
@@ -8920,6 +8977,7 @@ reduce({object}, {func} [, {initial}]) *reduce()* *E998*
|
||||
echo reduce([1, 3, 5], { acc, val -> acc + val })
|
||||
echo reduce(['x', 'y'], { acc, val -> acc .. val }, 'a')
|
||||
echo reduce(0z1122, { acc, val -> 2 * acc + val })
|
||||
echo reduce('xyz', { acc, val -> acc .. ',' .. val })
|
||||
<
|
||||
Can also be used as a |method|: >
|
||||
echo mylist->reduce({ acc, val -> acc + val }, 0)
|
||||
@@ -9543,7 +9601,9 @@ searchcount([{options}]) *searchcount()*
|
||||
|getpos()|
|
||||
(default: cursor's position)
|
||||
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetSearchOpts()->searchcount()
|
||||
<
|
||||
searchdecl({name} [, {global} [, {thisblock}]]) *searchdecl()*
|
||||
Search for the declaration of {name}.
|
||||
|
||||
@@ -9726,6 +9786,7 @@ setbufline({buf}, {lnum}, {text}) *setbufline()*
|
||||
For the use of {buf}, see |bufname()| above.
|
||||
|
||||
{lnum} is used like with |setline()|.
|
||||
Use "$" to refer to the last line in buffer {buf}.
|
||||
When {lnum} is just below the last line the {text} will be
|
||||
added below the last line.
|
||||
|
||||
@@ -10207,7 +10268,7 @@ settabwinvar({tabnr}, {winnr}, {varname}, {val}) *settabwinvar()*
|
||||
|
||||
Can also be used as a |method|, the base is passed as the
|
||||
fourth argument: >
|
||||
GetValue()->settabvar(tab, winnr, name)
|
||||
GetValue()->settabwinvar(tab, winnr, name)
|
||||
|
||||
settagstack({nr}, {dict} [, {action}]) *settagstack()*
|
||||
Modify the tag stack of the window {nr} using {dict}.
|
||||
@@ -10464,6 +10525,10 @@ sort({list} [, {func} [, {dict}]]) *sort()* *E702*
|
||||
<
|
||||
sound_clear() *sound_clear()*
|
||||
Stop playing all sounds.
|
||||
|
||||
On some Linux systems you may need the libcanberra-pulse
|
||||
package, otherwise sound may not stop.
|
||||
|
||||
{only available when compiled with the |+sound| feature}
|
||||
|
||||
*sound_playevent()*
|
||||
@@ -10516,6 +10581,9 @@ sound_stop({id}) *sound_stop()*
|
||||
Stop playing sound {id}. {id} must be previously returned by
|
||||
`sound_playevent()` or `sound_playfile()`.
|
||||
|
||||
On some Linux systems you may need the libcanberra-pulse
|
||||
package, otherwise sound may not stop.
|
||||
|
||||
On MS-Windows, this does not work for event sound started by
|
||||
`sound_playevent()`. To stop event sounds, use `sound_clear()`.
|
||||
|
||||
@@ -10955,10 +11023,12 @@ strptime({format}, {timestring}) *strptime()*
|
||||
:echo strftime("%c", strptime("%Y%m%d%H%M%S", "19970427115355") + 3600)
|
||||
< Sun Apr 27 12:53:55 1997
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetFormat()->strptime(timestring)
|
||||
<
|
||||
Not available on all systems. To check use: >
|
||||
:if exists("*strptime")
|
||||
|
||||
|
||||
strridx({haystack}, {needle} [, {start}]) *strridx()*
|
||||
The result is a Number, which gives the byte index in
|
||||
{haystack} of the last occurrence of the String {needle}.
|
||||
@@ -11227,10 +11297,10 @@ synstack({lnum}, {col}) *synstack()*
|
||||
valid positions.
|
||||
|
||||
system({expr} [, {input}]) *system()* *E677*
|
||||
Get the output of the shell command {expr} as a string. See
|
||||
Get the output of the shell command {expr} as a |String|. See
|
||||
|systemlist()| to get the output as a |List|.
|
||||
|
||||
When {input} is given and is a string this string is written
|
||||
When {input} is given and is a |String| this string is written
|
||||
to a file and passed as stdin to the command. The string is
|
||||
written as-is, you need to take care of using the correct line
|
||||
separators yourself.
|
||||
@@ -11853,9 +11923,9 @@ wildmenumode() *wildmenumode()*
|
||||
win_execute({id}, {command} [, {silent}]) *win_execute()*
|
||||
Like `execute()` but in the context of window {id}.
|
||||
The window will temporarily be made the current window,
|
||||
without triggering autocommands. When executing {command}
|
||||
autocommands will be triggered, this may have unexpected side
|
||||
effects. Use |:noautocmd| if needed.
|
||||
without triggering autocommands or changing directory. When
|
||||
executing {command} autocommands will be triggered, this may
|
||||
have unexpected side effects. Use |:noautocmd| if needed.
|
||||
Example: >
|
||||
call win_execute(winid, 'set syntax=python')
|
||||
< Doing the same with `setwinvar()` would not trigger
|
||||
@@ -11910,7 +11980,9 @@ win_gettype([{nr}]) *win_gettype()*
|
||||
popup window then 'buftype' is "terminal" and win_gettype()
|
||||
returns "popup".
|
||||
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetWinid()->win_gettype()
|
||||
<
|
||||
win_gotoid({expr}) *win_gotoid()*
|
||||
Go to window with ID {expr}. This may also change the current
|
||||
tabpage.
|
||||
|
||||
@@ -139,18 +139,19 @@ can be used to overrule the filetype used for certain extensions:
|
||||
|
||||
file name variable ~
|
||||
*.asa g:filetype_asa |ft-aspvbs-syntax| |ft-aspperl-syntax|
|
||||
*.asp g:filetype_asp |ft-aspvbs-syntax| |ft-aspperl-syntax|
|
||||
*.asm g:asmsyntax |ft-asm-syntax|
|
||||
*.prg g:filetype_prg
|
||||
*.pl g:filetype_pl
|
||||
*.inc g:filetype_inc
|
||||
*.w g:filetype_w |ft-cweb-syntax|
|
||||
*.asp g:filetype_asp |ft-aspvbs-syntax| |ft-aspperl-syntax|
|
||||
*.fs g:filetype_fs |ft-forth-syntax|
|
||||
*.i g:filetype_i |ft-progress-syntax|
|
||||
*.inc g:filetype_inc
|
||||
*.m g:filetype_m |ft-mathematica-syntax|
|
||||
*.p g:filetype_p |ft-pascal-syntax|
|
||||
*.pl g:filetype_pl
|
||||
*.pp g:filetype_pp |ft-pascal-syntax|
|
||||
*.prg g:filetype_prg
|
||||
*.sh g:bash_is_sh |ft-sh-syntax|
|
||||
*.tex g:tex_flavor |ft-tex-plugin|
|
||||
*.w g:filetype_w |ft-cweb-syntax|
|
||||
|
||||
*filetype-ignore*
|
||||
To avoid that certain files are being inspected, the g:ft_ignore_pat variable
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*gui_w32.txt* For Vim version 8.2. Last change: 2021 Apr 05
|
||||
*gui_w32.txt* For Vim version 8.2. Last change: 2021 Oct 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*helphelp.txt* For Vim version 8.2. Last change: 2020 Dec 29
|
||||
*helphelp.txt* For Vim version 8.2. Last change: 2021 Dec 13
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -163,7 +163,7 @@ If you would like to open the help in the current window, see this tip:
|
||||
|
||||
The initial height of the help window can be set with the 'helpheight' option
|
||||
(default 20).
|
||||
|
||||
*help-buffer-options*
|
||||
When the help buffer is created, several local options are set to make sure
|
||||
the help text is displayed as it was intended:
|
||||
'iskeyword' nearly all ASCII chars except ' ', '*', '"' and '|'
|
||||
@@ -323,21 +323,25 @@ Hints for translators:
|
||||
3. Writing help files *help-writing*
|
||||
|
||||
For ease of use, a Vim help file for a plugin should follow the format of the
|
||||
standard Vim help files. If you are writing a new help file it's best to copy
|
||||
one of the existing files and use it as a template.
|
||||
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.
|
||||
|
||||
The first line in a help file should have the following format:
|
||||
|
||||
*helpfile_name.txt* For Vim version 7.3 Last change: 2010 June 4
|
||||
*plugin_name.txt* {short description of the plugin}
|
||||
|
||||
The first field is a link to the help file name. The second field describes
|
||||
the applicable Vim version. The last field specifies the last modification
|
||||
date of the file. Each field is separated by a tab.
|
||||
The first field is a help tag where ":help plugin_name" will jump to. The
|
||||
remainder of the line, after a Tab, describes the plugin purpose in a short
|
||||
way. This will show up in the "LOCAL ADDITIONS" section of the main help
|
||||
file. Check there that it shows up properly: |local-additions|.
|
||||
|
||||
If you want to add a version number or last modification date, put it in the
|
||||
second line, right aligned.
|
||||
|
||||
At the bottom of the help file, place a Vim modeline to set the 'textwidth'
|
||||
and 'tabstop' options and the 'filetype' to "help". Never set a global option
|
||||
in such a modeline, that can have consequences undesired by whoever reads that
|
||||
help.
|
||||
in such a modeline, that can have undesired consequences.
|
||||
|
||||
|
||||
TAGS
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*if_pyth.txt* For Vim version 8.2. Last change: 2019 Dec 07
|
||||
*if_pyth.txt* For Vim version 8.2. Last change: 2021 Nov 12
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Paul Moore
|
||||
@@ -63,6 +63,11 @@ To see what version of Python you have: >
|
||||
|
||||
There is no need to import sys, it's done by default.
|
||||
|
||||
*python-environment*
|
||||
Environment variables set in Vim are not always available in Python. This
|
||||
depends on how Vim and Python were build. Also see
|
||||
https://docs.python.org/3/library/os.html#os.environ
|
||||
|
||||
Note: Python is very sensitive to the indenting. Make sure the "class" line
|
||||
and "EOF" do not have any indent.
|
||||
|
||||
|
||||
@@ -608,26 +608,25 @@ CLOJURE *ft-clojure-indent* *clojure-indent*
|
||||
Clojure indentation differs somewhat from traditional Lisps, due in part to
|
||||
the use of square and curly brackets, and otherwise by community convention.
|
||||
These conventions are not universally followed, so the Clojure indent script
|
||||
offers a few configurable options, listed below.
|
||||
offers a few configuration options.
|
||||
|
||||
(If the current Vim does not include |searchpairpos()|, the indent script falls
|
||||
back to normal 'lisp' indenting, and the following options are ignored.)
|
||||
|
||||
If the current vim does not include searchpairpos(), the indent script falls
|
||||
back to normal 'lisp' indenting, and the following options are ignored.
|
||||
|
||||
*g:clojure_maxlines*
|
||||
|
||||
Set maximum scan distance of searchpairpos(). Larger values trade performance
|
||||
for correctness when dealing with very long forms. A value of 0 will scan
|
||||
without limits.
|
||||
>
|
||||
" Default
|
||||
let g:clojure_maxlines = 100
|
||||
<
|
||||
Sets maximum scan distance of `searchpairpos()`. Larger values trade
|
||||
performance for correctness when dealing with very long forms. A value of
|
||||
0 will scan without limits. The default is 300.
|
||||
|
||||
|
||||
*g:clojure_fuzzy_indent*
|
||||
*g:clojure_fuzzy_indent_patterns*
|
||||
*g:clojure_fuzzy_indent_blacklist*
|
||||
|
||||
The 'lispwords' option is a list of comma-separated words that mark special
|
||||
forms whose subforms must be indented with two spaces.
|
||||
forms whose subforms should be indented with two spaces.
|
||||
|
||||
For example:
|
||||
>
|
||||
@@ -645,15 +644,11 @@ the fuzzy indent feature:
|
||||
let g:clojure_fuzzy_indent_patterns = ['^with', '^def', '^let']
|
||||
let g:clojure_fuzzy_indent_blacklist =
|
||||
\ ['-fn$', '\v^with-%(meta|out-str|loading-context)$']
|
||||
|
||||
" Legacy comma-delimited string version; the list format above is
|
||||
" recommended. Note that patterns are implicitly anchored with ^ and $
|
||||
let g:clojure_fuzzy_indent_patterns = 'with.*,def.*,let.*'
|
||||
<
|
||||
|g:clojure_fuzzy_indent_patterns| and |g:clojure_fuzzy_indent_blacklist| are
|
||||
|Lists| of patterns that will be matched against the unquoted, unqualified
|
||||
symbol at the head of a list. This means that a pattern like "^foo" will match
|
||||
all these candidates: "foobar", "my.ns/foobar", and "#'foobar".
|
||||
lists of patterns that will be matched against the unqualified symbol at the
|
||||
head of a list. This means that a pattern like `"^foo"` will match all these
|
||||
candidates: `foobar`, `my.ns/foobar`, and `#'foobar`.
|
||||
|
||||
Each candidate word is tested for special treatment in this order:
|
||||
|
||||
@@ -664,20 +659,22 @@ Each candidate word is tested for special treatment in this order:
|
||||
|g:clojure_fuzzy_indent_patterns|
|
||||
4. Return false and indent normally otherwise
|
||||
|
||||
|
||||
*g:clojure_special_indent_words*
|
||||
|
||||
Some forms in Clojure are indented so that every subform is indented only two
|
||||
spaces, regardless of 'lispwords'. If you have a custom construct that should
|
||||
be indented in this idiosyncratic fashion, you can add your symbols to the
|
||||
default list below.
|
||||
Some forms in Clojure are indented such that every subform is indented by only
|
||||
two spaces, regardless of 'lispwords'. If you have a custom construct that
|
||||
should be indented in this idiosyncratic fashion, you can add your symbols to
|
||||
the default list below.
|
||||
>
|
||||
" Default
|
||||
let g:clojure_special_indent_words =
|
||||
\ 'deftype,defrecord,reify,proxy,extend-type,extend-protocol,letfn'
|
||||
<
|
||||
|
||||
*g:clojure_align_multiline_strings*
|
||||
|
||||
Align subsequent lines in multiline strings to the column after the opening
|
||||
Align subsequent lines in multi-line strings to the column after the opening
|
||||
quote, instead of the same column.
|
||||
|
||||
For example:
|
||||
@@ -694,11 +691,7 @@ For example:
|
||||
enim ad minim veniam, quis nostrud exercitation ullamco laboris
|
||||
nisi ut aliquip ex ea commodo consequat.")
|
||||
<
|
||||
This option is off by default.
|
||||
>
|
||||
" Default
|
||||
let g:clojure_align_multiline_strings = 0
|
||||
<
|
||||
|
||||
*g:clojure_align_subforms*
|
||||
|
||||
By default, parenthesized compound forms that look like function calls and
|
||||
@@ -709,18 +702,14 @@ two spaces relative to the opening paren:
|
||||
bar
|
||||
baz)
|
||||
<
|
||||
Setting this option changes this behavior so that all subforms are aligned to
|
||||
the same column, emulating the default behavior of clojure-mode.el:
|
||||
Setting this option to `1` changes this behaviour so that all subforms are
|
||||
aligned to the same column, emulating the default behaviour of
|
||||
clojure-mode.el:
|
||||
>
|
||||
(foo
|
||||
bar
|
||||
baz)
|
||||
<
|
||||
This option is off by default.
|
||||
>
|
||||
" Default
|
||||
let g:clojure_align_subforms = 0
|
||||
<
|
||||
|
||||
FORTRAN *ft-fortran-indent*
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*insert.txt* For Vim version 8.2. Last change: 2021 Oct 18
|
||||
*insert.txt* For Vim version 8.2. Last change: 2021 Oct 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -871,31 +871,27 @@ invoked and what it should return.
|
||||
Here is an example that uses the "aiksaurus" command (provided by Magnus
|
||||
Groß): >
|
||||
|
||||
func Thesaur(findstart, base)
|
||||
if a:findstart
|
||||
let line = getline('.')
|
||||
let start = col('.') - 1
|
||||
while start > 0 && line[start - 1] =~ '\a'
|
||||
let start -= 1
|
||||
endwhile
|
||||
return start
|
||||
else
|
||||
let res = []
|
||||
let h = ''
|
||||
for l in split(system('aiksaurus '.shellescape(a:base)), '\n')
|
||||
if l[:3] == '=== '
|
||||
let h = substitute(l[4:], ' =*$', '', '')
|
||||
elseif l[0] =~ '\a'
|
||||
call extend(res, map(split(l, ', '), {_, val -> {'word': val, 'menu': '('.h.')'}}))
|
||||
endif
|
||||
endfor
|
||||
return res
|
||||
endif
|
||||
endfunc
|
||||
|
||||
if exists('+thesaurusfunc')
|
||||
set thesaurusfunc=Thesaur
|
||||
func Thesaur(findstart, base)
|
||||
if a:findstart
|
||||
return searchpos('\<', 'bnW', line('.'))[1] - 1
|
||||
endif
|
||||
let res = []
|
||||
let h = ''
|
||||
for l in systemlist('aiksaurus '.shellescape(a:base))
|
||||
if l[:3] == '=== '
|
||||
let h = '('.substitute(l[4:], ' =*$', ')', '')
|
||||
elseif l ==# 'Alphabetically similar known words are: '
|
||||
let h = "\U0001f52e"
|
||||
elseif l[0] =~ '\a' || (h ==# "\U0001f52e" && l[0] ==# "\t")
|
||||
call extend(res, map(split(substitute(l, '^\t', '', ''), ', '), {_, val -> {'word': val, 'menu': h}}))
|
||||
endif
|
||||
endfor
|
||||
return res
|
||||
endfunc
|
||||
|
||||
if exists('+thesaurusfunc')
|
||||
set thesaurusfunc=Thesaur
|
||||
endif
|
||||
|
||||
|
||||
Completing keywords in the current and included files *compl-keyword*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*map.txt* For Vim version 8.2. Last change: 2021 Oct 19
|
||||
*map.txt* For Vim version 8.2. Last change: 2021 Dec 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -61,6 +61,8 @@ modes.
|
||||
where the map command applies. The result, including
|
||||
{rhs}, is then further scanned for mappings. This
|
||||
allows for nested and recursive use of mappings.
|
||||
Note: Trailing spaces are included in the {rhs},
|
||||
because space is a valid Normal mode command.
|
||||
|
||||
*:nore* *:norem*
|
||||
:no[remap] {lhs} {rhs} |mapmode-nvo| *:no* *:noremap* *:nor*
|
||||
@@ -94,6 +96,9 @@ modes.
|
||||
Remove the mapping of {lhs} for the modes where the
|
||||
map command applies. The mapping may remain defined
|
||||
for other modes where it applies.
|
||||
It also works when {lhs} matches the {rhs} of a
|
||||
mapping. This is for when when an abbreviation
|
||||
applied.
|
||||
Note: Trailing spaces are included in the {lhs}. This
|
||||
unmap does NOT work: >
|
||||
:map @@ foo
|
||||
@@ -168,7 +173,7 @@ type "a", then "bar" will get inserted.
|
||||
"<unique>" can be used in any order. They must appear right after the
|
||||
command, before any other arguments.
|
||||
|
||||
*:map-local* *:map-<buffer>* *E224* *E225*
|
||||
*:map-local* *:map-<buffer>* *:map-buffer* *E224* *E225*
|
||||
If the first argument to one of these commands is "<buffer>" the mapping will
|
||||
be effective in the current buffer only. Example: >
|
||||
:map <buffer> ,w /[.,;]<CR>
|
||||
@@ -227,7 +232,7 @@ Note: ":map <script>" and ":noremap <script>" do the same thing. The
|
||||
"<script>" overrules the command name. Using ":noremap <script>" is
|
||||
preferred, because it's clearer that remapping is (mostly) disabled.
|
||||
|
||||
*:map-<unique>* *E226* *E227*
|
||||
*:map-<unique>* *:map-unique* *E226* *E227*
|
||||
If the first argument to one of these commands is "<unique>" and it is used to
|
||||
define a new mapping or abbreviation, the command will fail if the mapping or
|
||||
abbreviation already exists. Example: >
|
||||
@@ -344,6 +349,8 @@ Note:
|
||||
- For the same reason, |keycodes| like <C-R><C-W> are interpreted as plain,
|
||||
unmapped keys.
|
||||
- The command is not echo'ed, no need for <silent>.
|
||||
- The {rhs} is not subject to abbreviations nor to other mappings, even if the
|
||||
mapping is recursive.
|
||||
- In Visual mode you can use `line('v')` and `col('v')` to get one end of the
|
||||
Visual area, the cursor is at the other end.
|
||||
- In Select mode, |:map| and |:vmap| command mappings are executed in
|
||||
@@ -955,8 +962,7 @@ g@{motion} Call the function set by the 'operatorfunc' option.
|
||||
"line" {motion} was |linewise|
|
||||
"char" {motion} was |characterwise|
|
||||
"block" {motion} was |blockwise-visual|
|
||||
Although "block" would rarely appear, since it can
|
||||
only result from Visual mode where "g@" is not useful.
|
||||
The type can be forced, see |forced-motion|.
|
||||
{not available when compiled without the |+eval|
|
||||
feature}
|
||||
|
||||
@@ -967,28 +973,56 @@ Here is an example that counts the number of spaces with <F4>: >
|
||||
" doubling <F4> works on a line
|
||||
nnoremap <expr> <F4><F4> CountSpaces() .. '_'
|
||||
|
||||
function CountSpaces(type = '') abort
|
||||
function CountSpaces(context = {}, type = '') abort
|
||||
if a:type == ''
|
||||
set opfunc=CountSpaces
|
||||
let context = #{
|
||||
\ dot_command: v:false,
|
||||
\ extend_block: '',
|
||||
\ virtualedit: [&l:virtualedit, &g:virtualedit],
|
||||
\ }
|
||||
let &operatorfunc = function('CountSpaces', [context])
|
||||
set virtualedit=block
|
||||
return 'g@'
|
||||
endif
|
||||
endif
|
||||
|
||||
let sel_save = &selection
|
||||
let reg_save = getreginfo('"')
|
||||
let cb_save = &clipboard
|
||||
let visual_marks_save = [getpos("'<"), getpos("'>")]
|
||||
let save = #{
|
||||
\ clipboard: &clipboard,
|
||||
\ selection: &selection,
|
||||
\ virtualedit: [&l:virtualedit, &g:virtualedit],
|
||||
\ register: getreginfo('"'),
|
||||
\ visual_marks: [getpos("'<"), getpos("'>")],
|
||||
\ }
|
||||
|
||||
try
|
||||
set clipboard= selection=inclusive
|
||||
let commands = #{line: "'[V']y", char: "`[v`]y", block: "`[\<c-v>`]y"}
|
||||
silent exe 'noautocmd keepjumps normal! ' .. get(commands, a:type, '')
|
||||
echom getreg('"')->count(' ')
|
||||
set clipboard= selection=inclusive virtualedit=
|
||||
let commands = #{
|
||||
\ line: "'[V']",
|
||||
\ char: "`[v`]",
|
||||
\ block: "`[\<C-V>`]",
|
||||
\ }[a:type]
|
||||
let [_, _, col, off] = getpos("']")
|
||||
if off != 0
|
||||
let vcol = getline("'[")->strpart(0, col + off)->strdisplaywidth()
|
||||
if vcol >= [line("'["), '$']->virtcol() - 1
|
||||
let a:context.extend_block = '$'
|
||||
else
|
||||
let a:context.extend_block = vcol .. '|'
|
||||
endif
|
||||
endif
|
||||
if a:context.extend_block != ''
|
||||
let commands ..= 'oO' .. a:context.extend_block
|
||||
endif
|
||||
let commands ..= 'y'
|
||||
execute 'silent noautocmd keepjumps normal! ' .. commands
|
||||
echomsg getreg('"')->count(' ')
|
||||
finally
|
||||
call setreg('"', reg_save)
|
||||
call setpos("'<", visual_marks_save[0])
|
||||
call setpos("'>", visual_marks_save[1])
|
||||
let &clipboard = cb_save
|
||||
let &selection = sel_save
|
||||
call setreg('"', save.register)
|
||||
call setpos("'<", save.visual_marks[0])
|
||||
call setpos("'>", save.visual_marks[1])
|
||||
let &clipboard = save.clipboard
|
||||
let &selection = save.selection
|
||||
let [&l:virtualedit, &g:virtualedit] = get(a:context.dot_command ? save : a:context, 'virtualedit')
|
||||
let a:context.dot_command = v:true
|
||||
endtry
|
||||
endfunction
|
||||
|
||||
@@ -1007,6 +1041,17 @@ or `unnamedplus`.
|
||||
The `mode()` function will return the state as it will be after applying the
|
||||
operator.
|
||||
|
||||
Here is an example for using a lambda function to create a normal-mode
|
||||
operator to add quotes around text in the current line: >
|
||||
|
||||
nnoremap <F4> <Cmd>let &opfunc='{t ->
|
||||
\ getline(".")
|
||||
\ ->split("\\zs")
|
||||
\ ->insert("\"", col("'']"))
|
||||
\ ->insert("\"", col("''[") - 1)
|
||||
\ ->join("")
|
||||
\ ->setline(".")}'<CR>g@
|
||||
|
||||
==============================================================================
|
||||
2. Abbreviations *abbreviations* *Abbreviations*
|
||||
|
||||
@@ -1560,6 +1605,7 @@ Possible values are (second column is the short name used in listing):
|
||||
Special cases ~
|
||||
*:command-bang* *:command-bar*
|
||||
*:command-register* *:command-buffer*
|
||||
*:command-keepscript*
|
||||
There are some special cases as well:
|
||||
|
||||
-bang The command can take a ! modifier (like :q or :w)
|
||||
@@ -1569,6 +1615,9 @@ There are some special cases as well:
|
||||
-register The first argument to the command can be an optional
|
||||
register name (like :del, :put, :yank).
|
||||
-buffer The command will only be available in the current buffer.
|
||||
-keepscript Do not use the location of where the user command was
|
||||
defined for verbose messages, use the location of where
|
||||
the user command was invoked.
|
||||
|
||||
In the cases of the -count and -register attributes, if the optional argument
|
||||
is supplied, it is removed from the argument list and is available to the
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*message.txt* For Vim version 8.2. Last change: 2021 Jul 31
|
||||
*message.txt* For Vim version 8.2. Last change: 2021 Dec 13
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -29,8 +29,7 @@ depends on the 'shortmess' option.
|
||||
Clear messages, keeping only the {count} most
|
||||
recent ones.
|
||||
|
||||
The number of remembered messages is fixed at 20 for the tiny version and 200
|
||||
for other versions.
|
||||
The number of remembered messages is fixed at 200.
|
||||
|
||||
*g<*
|
||||
The "g<" command can be used to see the last page of previous command output.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*motion.txt* For Vim version 8.2. Last change: 2021 Jun 13
|
||||
*motion.txt* For Vim version 8.2. Last change: 2021 Dec 13
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -386,6 +386,8 @@ w [count] words forward. |exclusive| motion.
|
||||
|
||||
<C-Right> or *<C-Right>* *W*
|
||||
W [count] WORDS forward. |exclusive| motion.
|
||||
If <C-Right> does not work, check out
|
||||
|arrow_modifiers|.
|
||||
|
||||
*e*
|
||||
e Forward to the end of word [count] |inclusive|.
|
||||
@@ -400,6 +402,8 @@ b [count] words backward. |exclusive| motion.
|
||||
|
||||
<C-Left> or *<C-Left>* *B*
|
||||
B [count] WORDS backward. |exclusive| motion.
|
||||
If <C-Left> does not work, check out
|
||||
|arrow_modifiers|.
|
||||
|
||||
*ge*
|
||||
ge Backward to the end of word [count] |inclusive|.
|
||||
@@ -1034,12 +1038,10 @@ commands that start editing a new file.
|
||||
*CTRL-O*
|
||||
CTRL-O Go to [count] Older cursor position in jump list
|
||||
(not a motion command).
|
||||
{not available without the |+jumplist| feature}
|
||||
|
||||
<Tab> or *CTRL-I* *<Tab>*
|
||||
CTRL-I Go to [count] newer cursor position in jump list
|
||||
(not a motion command).
|
||||
{not available without the |+jumplist| feature}
|
||||
|
||||
NOTE: In the GUI and in a terminal supporting
|
||||
|modifyOtherKeys|, CTRL-I can be mapped separately
|
||||
@@ -1049,18 +1051,15 @@ CTRL-I Go to [count] newer cursor position in jump list
|
||||
|
||||
*:ju* *:jumps*
|
||||
:ju[mps] Print the jump list (not a motion command).
|
||||
{not available without the |+jumplist| feature}
|
||||
|
||||
*:cle* *:clearjumps*
|
||||
:cle[arjumps] Clear the jump list of the current window.
|
||||
{not available without the |+jumplist| feature}
|
||||
|
||||
*jumplist*
|
||||
Jumps are remembered in a jump list. With the CTRL-O and CTRL-I command you
|
||||
can go to cursor positions before older jumps, and back again. Thus you can
|
||||
move up and down the list. There is a separate jump list for each window.
|
||||
The maximum number of entries is fixed at 100.
|
||||
{not available without the |+jumplist| feature}
|
||||
|
||||
For example, after three jump commands you have this jump list:
|
||||
|
||||
@@ -1137,13 +1136,11 @@ g; Go to [count] older position in change list.
|
||||
positions go to the oldest change.
|
||||
If there is no older change an error message is given.
|
||||
(not a motion command)
|
||||
{not available without the |+jumplist| feature}
|
||||
|
||||
*g,* *E663*
|
||||
g, Go to [count] newer cursor position in change list.
|
||||
Just like |g;| but in the opposite direction.
|
||||
(not a motion command)
|
||||
{not available without the |+jumplist| feature}
|
||||
|
||||
When using a count you jump as far back or forward as possible. Thus you can
|
||||
use "999g;" to go to the first change for which the position is still
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 8.2. Last change: 2021 Oct 20
|
||||
*options.txt* For Vim version 8.2. Last change: 2021 Dec 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -35,6 +35,8 @@ achieve special effects. These options come in three forms:
|
||||
internally and can't be changed. Changing the terminal
|
||||
codes in the GUI is not useful either...
|
||||
|
||||
:se[t]! termcap Idem, but don't use multiple columns.
|
||||
|
||||
*E518* *E519*
|
||||
:se[t] {option}? Show value of {option}.
|
||||
|
||||
@@ -371,6 +373,30 @@ Note: In the future more global options can be made global-local. Using
|
||||
":setlocal" on a global option might work differently then.
|
||||
|
||||
|
||||
*option-value-function*
|
||||
Some options ('completefunc', 'imactivatefunc', 'imstatusfunc', 'omnifunc',
|
||||
'operatorfunc', 'quickfixtextfunc', 'tagfunc' and 'thesaurusfunc') are set to
|
||||
a function name or a function reference or a lambda function. When using a
|
||||
lambda it will be converted to the name, e.g. "<lambda>123". Examples:
|
||||
>
|
||||
set opfunc=MyOpFunc
|
||||
set opfunc=function('MyOpFunc')
|
||||
set opfunc=funcref('MyOpFunc')
|
||||
set opfunc={a\ ->\ MyOpFunc(a)}
|
||||
" set using a funcref variable
|
||||
let Fn = function('MyTagFunc')
|
||||
let &tagfunc = Fn
|
||||
" set using a lambda expression
|
||||
let &tagfunc = {t -> MyTagFunc(t)}
|
||||
" set using a variable with lambda expression
|
||||
let L = {a, b, c -> MyTagFunc(a, b , c)}
|
||||
let &tagfunc = L
|
||||
|
||||
In Vim9 script, in a compiled function, you can use a lambda, but a
|
||||
closured does not work, because the function will be called without the
|
||||
context of where it was defined.
|
||||
|
||||
|
||||
Setting the filetype
|
||||
|
||||
:setf[iletype] [FALLBACK] {filetype} *:setf* *:setfiletype*
|
||||
@@ -850,9 +876,12 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'autowrite' 'aw' boolean (default off)
|
||||
global
|
||||
Write the contents of the file, if it has been modified, on each
|
||||
:next, :rewind, :last, :first, :previous, :stop, :suspend, :tag, :!,
|
||||
:make, CTRL-] and CTRL-^ command; and when a :buffer, CTRL-O, CTRL-I,
|
||||
'{A-Z0-9}, or `{A-Z0-9} command takes one to another file.
|
||||
`:next`, `:rewind`, `:last`, `:first`, `:previous`, `:stop`,
|
||||
`:suspend`, `:tag, `:!`, ``:make`, CTRL-] and CTRL-^ command; and when
|
||||
a :buffer, CTRL-O, CTRL-I, '{A-Z0-9}, or `{A-Z0-9} command takes one
|
||||
to another file.
|
||||
A buffer is not written if it becomes hidden, e.g. when 'bufhidden' is
|
||||
set to "hide" and `:next` is used
|
||||
Note that for some commands the 'autowrite' option is not used, see
|
||||
'autowriteall' for that.
|
||||
Some buffers will not be written, specifically when 'buftype' is
|
||||
@@ -1420,6 +1449,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Also see |win_gettype()|, which returns the type of the window.
|
||||
|
||||
Be careful with changing this option, it can have many side effects!
|
||||
One such effect is that Vim will not check the timestamp of the file,
|
||||
if the file is changed by another program this will not be noticed.
|
||||
|
||||
A "quickfix" buffer is only used for the error list and the location
|
||||
list. This value is set by the |:cwindow| and |:lwindow| commands and
|
||||
@@ -1462,6 +1493,15 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
case mapping, the current locale is not effective.
|
||||
This probably only matters for Turkish.
|
||||
|
||||
*'cdhome'* *'cdh'*
|
||||
'cdhome' 'cdh' boolean (default: off)
|
||||
global
|
||||
When on, |:cd|, |:tcd| and |:lcd| without an argument changes the
|
||||
current working directory to the |$HOME| directory like in Unix.
|
||||
When off, those commands just print the current directory name.
|
||||
On Unix this option has no effect.
|
||||
NOTE: This option is reset when 'compatible' is set.
|
||||
|
||||
*'cdpath'* *'cd'* *E344* *E346*
|
||||
'cdpath' 'cd' string (default: equivalent to $CDPATH or ",,")
|
||||
global
|
||||
@@ -1803,6 +1843,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'balloonexpr' + "" text to show in evaluation balloon
|
||||
'breakindent' + off don't indent when wrapping lines
|
||||
'cedit' - {unchanged} {set vim default only on resetting 'cp'}
|
||||
'cdhome' + off ":cd" don't chdir to home on non-Unix
|
||||
'cindent' + off no C code indentation
|
||||
'compatible' - {unchanged} {set vim default only on resetting 'cp'}
|
||||
'copyindent' + off don't copy indent structure
|
||||
@@ -1918,7 +1959,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
This option specifies a function to be used for Insert mode completion
|
||||
with CTRL-X CTRL-U. |i_CTRL-X_CTRL-U|
|
||||
See |complete-functions| for an explanation of how the function is
|
||||
invoked and what it should return.
|
||||
invoked and what it should return. The value can be the name of a
|
||||
function, a |lambda| or a |Funcref|. See |option-value-function| for
|
||||
more information.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
@@ -4177,8 +4220,6 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*'icon'* *'noicon'*
|
||||
'icon' boolean (default off, on when title can be restored)
|
||||
global
|
||||
{not available when compiled without the |+title|
|
||||
feature}
|
||||
When on, the icon text of the window will be set to the value of
|
||||
'iconstring' (if it is not empty), or to the name of the file
|
||||
currently being edited. Only the last part of the name is used.
|
||||
@@ -4195,8 +4236,6 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*'iconstring'*
|
||||
'iconstring' string (default "")
|
||||
global
|
||||
{not available when compiled without the |+title|
|
||||
feature}
|
||||
When this option is not empty, it will be used for the icon text of
|
||||
the window. This happens only when the 'icon' option is on.
|
||||
Only works if the terminal supports setting window icon text
|
||||
@@ -4223,7 +4262,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'imactivatefunc' 'imaf' string (default "")
|
||||
global
|
||||
This option specifies a function that will be called to
|
||||
activate or deactivate the Input Method.
|
||||
activate or deactivate the Input Method. The value can be the name of
|
||||
a function, a |lambda| or a |Funcref|. See |option-value-function| for
|
||||
more information.
|
||||
It is not used in the MS-Windows GUI version.
|
||||
The expression will be evaluated in the |sandbox| when set from a
|
||||
modeline, see |sandbox-option|.
|
||||
@@ -4333,6 +4374,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
global
|
||||
This option specifies a function that is called to obtain the status
|
||||
of Input Method. It must return a positive number when IME is active.
|
||||
The value can be the name of a function, a |lambda| or a |Funcref|.
|
||||
See |option-value-function| for more information.
|
||||
It is not used in the MS-Windows GUI version.
|
||||
|
||||
Example: >
|
||||
@@ -4906,9 +4949,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*'list'* *'nolist'*
|
||||
'list' boolean (default off)
|
||||
local to window
|
||||
List mode: Show tabs as CTRL-I is displayed, display $ after end of
|
||||
line. Useful to see the difference between tabs and spaces and for
|
||||
trailing blanks. Further changed by the 'listchars' option.
|
||||
List mode: By default show tabs as CTRL-I is displayed, display $
|
||||
after end of line. Useful to see the difference between tabs and
|
||||
spaces and for trailing blanks. Further changed by the 'listchars'
|
||||
option.
|
||||
|
||||
The cursor is displayed at the start of the space a Tab character
|
||||
occupies, not at the end as usual in Normal mode. To get this cursor
|
||||
@@ -5557,8 +5601,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
number.
|
||||
When a long, wrapped line doesn't start with the first character, '-'
|
||||
characters are put before the number.
|
||||
See |hl-LineNr| and |hl-CursorLineNr| for the highlighting used for
|
||||
the number.
|
||||
For highlighting see |hl-LineNr|, and |hl-CursorLineNr|, and the
|
||||
|:sign-define| "numhl" argument.
|
||||
*number_relativenumber*
|
||||
The 'relativenumber' option changes the displayed number to be
|
||||
relative to the cursor. Together with 'number' there are these
|
||||
@@ -5598,7 +5642,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
This option specifies a function to be used for Insert mode omni
|
||||
completion with CTRL-X CTRL-O. |i_CTRL-X_CTRL-O|
|
||||
See |complete-functions| for an explanation of how the function is
|
||||
invoked and what it should return.
|
||||
invoked and what it should return. The value can be the name of a
|
||||
function, a |lambda| or a |Funcref|. See |option-value-function| for
|
||||
more information.
|
||||
This option is usually set by a filetype plugin:
|
||||
|:filetype-plugin-on|
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
@@ -5620,7 +5666,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'operatorfunc' 'opfunc' string (default: empty)
|
||||
global
|
||||
This option specifies a function to be called by the |g@| operator.
|
||||
See |:map-operator| for more info and an example.
|
||||
See |:map-operator| for more info and an example. The value can be
|
||||
the name of a function, a |lambda| or a |Funcref|. See
|
||||
|option-value-function| for more information.
|
||||
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
@@ -6020,8 +6068,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
customize the information displayed in the quickfix or location window
|
||||
for each entry in the corresponding quickfix or location list. See
|
||||
|quickfix-window-function| for an explanation of how to write the
|
||||
function and an example. The value can be the name of a function or a
|
||||
lambda.
|
||||
function and an example. The value can be the name of a function, a
|
||||
|lambda| or a |Funcref|. See |option-value-function| for more
|
||||
information.
|
||||
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
@@ -7775,7 +7824,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
This option specifies a function to be used to perform tag searches.
|
||||
The function gets the tag pattern and should return a List of matching
|
||||
tags. See |tag-function| for an explanation of how to write the
|
||||
function and an example.
|
||||
function and an example. The value can be the name of a function, a
|
||||
|lambda| or a |Funcref|. See |option-value-function| for more
|
||||
information.
|
||||
|
||||
*'taglength'* *'tl'*
|
||||
'taglength' 'tl' number (default 0)
|
||||
@@ -7938,6 +7989,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Number of scrollback lines to keep. When going over this limit the
|
||||
first 10% of the scrollback lines are deleted. This is just to reduce
|
||||
the memory usage. See |Terminal-Normal|.
|
||||
Also used as a limit for text sent to the terminal in one write,
|
||||
multiplied by the number of columns times 3 (average number of bytes
|
||||
per cell).
|
||||
|
||||
*'termwinsize'* *'tws'*
|
||||
'termwinsize' 'tws' string (default "")
|
||||
@@ -8049,6 +8103,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
feature}
|
||||
This option specifies a function to be used for thesaurus completion
|
||||
with CTRL-X CTRL-T. |i_CTRL-X_CTRL-T| See |compl-thesaurusfunc|.
|
||||
The value can be the name of a function, a |lambda| or a |Funcref|.
|
||||
See |option-value-function| for more information.
|
||||
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
@@ -8119,8 +8175,6 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*'title'* *'notitle'*
|
||||
'title' boolean (default off, on when title can be restored)
|
||||
global
|
||||
{not available when compiled without the |+title|
|
||||
feature}
|
||||
When on, the title of the window will be set to the value of
|
||||
'titlestring' (if it is not empty), or to:
|
||||
filename [+=-] (path) - VIM
|
||||
@@ -8154,8 +8208,6 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*'titlelen'*
|
||||
'titlelen' number (default 85)
|
||||
global
|
||||
{not available when compiled without the |+title|
|
||||
feature}
|
||||
Gives the percentage of 'columns' to use for the length of the window
|
||||
title. When the title is longer, only the end of the path name is
|
||||
shown. A '<' character before the path name is used to indicate this.
|
||||
@@ -8169,8 +8221,6 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*'titleold'*
|
||||
'titleold' string (default "Thanks for flying Vim")
|
||||
global
|
||||
{only available when compiled with the |+title|
|
||||
feature}
|
||||
This option will be used for the window title when exiting Vim if the
|
||||
original title cannot be restored. Only happens if 'title' is on or
|
||||
'titlestring' is not empty.
|
||||
@@ -8179,8 +8229,6 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*'titlestring'*
|
||||
'titlestring' string (default "")
|
||||
global
|
||||
{not available when compiled without the |+title|
|
||||
feature}
|
||||
When this option is not empty, it will be used for the title of the
|
||||
window. This happens only when the 'title' option is on.
|
||||
Only works if the terminal supports setting window titles (currently
|
||||
@@ -9158,4 +9206,16 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
screen. When non-zero, characters are sent to the terminal one by
|
||||
one. For debugging purposes.
|
||||
|
||||
*'xtermcodes'* *'noxtermcodes'*
|
||||
'xtermcodes' boolean (default on)
|
||||
global
|
||||
When detecting xterm patchlevel 141 or higher with the termresponse
|
||||
mechanism and this option is set, Vim will request the actual terminal
|
||||
key codes and number of colors from the terminal. This takes care of
|
||||
various configuration options of the terminal that cannot be obtained
|
||||
from the termlib/terminfo entry, see |xterm-codes|.
|
||||
A side effect may be that t_Co changes and Vim will redraw the
|
||||
display.
|
||||
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pi_zip.txt* For Vim version 8.2. Last change: 2020 Jan 07
|
||||
*pi_zip.txt* For Vim version 8.2. Last change: 2021 Nov 08
|
||||
|
||||
+====================+
|
||||
| Zip File Interface |
|
||||
@@ -102,6 +102,9 @@ Copyright: Copyright (C) 2005-2015 Charles E Campbell *zip-copyright*
|
||||
|
||||
==============================================================================
|
||||
4. History *zip-history* {{{1
|
||||
v32 Oct 22, 2021 * to avoid an issue with a vim 8.2 patch, zipfile: has
|
||||
been changed to zipfile:// . This often shows up
|
||||
as zipfile:/// with zipped files that are root-based.
|
||||
v29 Apr 02, 2017 * (Klartext) reported that an encrypted zip file could
|
||||
opened but the swapfile held unencrypted contents.
|
||||
The solution is to edit the contents of a zip file
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*popup.txt* For Vim version 8.2. Last change: 2021 Aug 15
|
||||
*popup.txt* For Vim version 8.2. Last change: 2021 Nov 29
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -681,6 +681,9 @@ The second argument of |popup_create()| is a dictionary with options:
|
||||
popup does not have a border. As soon as dragging
|
||||
starts and "pos" is "center" it is changed to
|
||||
"topleft".
|
||||
dragall TRUE to allow the popup to be dragged from every
|
||||
position. Makes it very difficult to select text in
|
||||
the popup.
|
||||
resize TRUE to allow the popup to be resized with the mouse
|
||||
by grabbing at the bottom right corner. Has no effect
|
||||
if the popup does not have a border.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*quickfix.txt* For Vim version 8.2. Last change: 2021 May 22
|
||||
*quickfix.txt* For Vim version 8.2. Last change: 2021 Dec 03
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -856,9 +856,9 @@ lists. They set one of the existing error lists as the current one.
|
||||
*:chistory* *:chi*
|
||||
:[count]chi[story] Show the list of error lists. The current list is
|
||||
marked with ">". The output looks like:
|
||||
error list 1 of 3; 43 errors ~
|
||||
> error list 2 of 3; 0 errors ~
|
||||
error list 3 of 3; 15 errors ~
|
||||
error list 1 of 3; 43 errors :make ~
|
||||
> error list 2 of 3; 0 errors :helpgrep tag ~
|
||||
error list 3 of 3; 15 errors :grep ex_help *.c ~
|
||||
|
||||
When [count] is given, then the count'th quickfix
|
||||
list is made the current list. Example: >
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*quickref.txt* For Vim version 8.2. Last change: 2021 Oct 17
|
||||
*quickref.txt* For Vim version 8.2. Last change: 2021 Dec 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -635,6 +635,7 @@ Short explanation of each option: *option-list*
|
||||
'buflisted' 'bl' whether the buffer shows up in the buffer list
|
||||
'buftype' 'bt' special type of buffer
|
||||
'casemap' 'cmp' specifies how case of letters is changed
|
||||
'cdhome' 'cdh' change directory to the home directory by ":cd"
|
||||
'cdpath' 'cd' list of directories searched with ":cd"
|
||||
'cedit' key used to open the command-line window
|
||||
'charconvert' 'ccv' expression for character encoding conversion
|
||||
@@ -1009,6 +1010,7 @@ Short explanation of each option: *option-list*
|
||||
'writeany' 'wa' write to file with no need for "!" override
|
||||
'writebackup' 'wb' make a backup before overwriting a file
|
||||
'writedelay' 'wd' delay this many msec for each char (for debug)
|
||||
'xtermcodes' request terminal codes from an xterm
|
||||
------------------------------------------------------------------------------
|
||||
*Q_ur* Undo/Redo commands
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*repeat.txt* For Vim version 8.2. Last change: 2021 Sep 09
|
||||
*repeat.txt* For Vim version 8.2. Last change: 2021 Nov 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -792,6 +792,10 @@ won't be very helpful.
|
||||
|
||||
There is a separate command-line history for debug mode.
|
||||
|
||||
NOTE: In Vim9 script, if a command is written at the script level and
|
||||
continues on the next line, not using the old way with a backslash for line
|
||||
continuation, only the first line is printed before the debugging prompt.
|
||||
|
||||
The line number for a function line is relative to the start of the function.
|
||||
If you have trouble figuring out where you are, edit the file that defines
|
||||
the function in another Vim, search for the start of the function and do
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*sign.txt* For Vim version 8.2. Last change: 2021 Mar 07
|
||||
*sign.txt* For Vim version 8.2. Last change: 2021 Dec 05
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Gordon Prieur
|
||||
@@ -53,6 +53,8 @@ The color of the column is set with the SignColumn highlight group
|
||||
|
||||
:highlight SignColumn guibg=darkgrey
|
||||
<
|
||||
If 'cursorline' is enabled, then the CursorLineSign highlight group is used
|
||||
|hl-CursorLineSign|.
|
||||
*sign-identifier*
|
||||
Each placed sign is identified by a number called the sign identifier. This
|
||||
identifier is used to jump to the sign or to remove the sign. The identifier
|
||||
@@ -138,6 +140,11 @@ See |sign_define()| for the equivalent Vim script function.
|
||||
Highlighting group used for the whole line the sign is placed
|
||||
in. Most useful is defining a background color.
|
||||
|
||||
numhl={group}
|
||||
Highlighting group used for the line number on the line where
|
||||
the sign is placed. Overrides |hl-LineNr|, |hl-LineNrAbove|,
|
||||
|hl-LineNrBelow|, and |hl-CursorLineNr|.
|
||||
|
||||
text={text} *E239*
|
||||
Define the text that is displayed when there is no icon or the
|
||||
GUI is not being used. Only printable characters are allowed
|
||||
@@ -146,6 +153,10 @@ See |sign_define()| for the equivalent Vim script function.
|
||||
texthl={group}
|
||||
Highlighting group used for the text item.
|
||||
|
||||
culhl={group}
|
||||
Highlighting group used for the text item when the cursor is
|
||||
on the same line as the sign and 'cursorline' is enabled.
|
||||
|
||||
Example: >
|
||||
:sign define MySign text=>> texthl=Search linehl=DiffText
|
||||
<
|
||||
@@ -390,9 +401,14 @@ sign_define({list})
|
||||
icon full path to the bitmap file for the sign.
|
||||
linehl highlight group used for the whole line the
|
||||
sign is placed in.
|
||||
numhl highlight group used for the line number where
|
||||
the sign is placed.
|
||||
text text that is displayed when there is no icon
|
||||
or the GUI is not being used.
|
||||
texthl highlight group used for the text item
|
||||
culhl highlight group used for the text item when
|
||||
the cursor is on the same line as the sign and
|
||||
'cursorline' is enabled.
|
||||
|
||||
If the sign named {name} already exists, then the attributes
|
||||
of the sign are updated.
|
||||
@@ -432,11 +448,18 @@ sign_getdefined([{name}]) *sign_getdefined()*
|
||||
following entries:
|
||||
icon full path to the bitmap file of the sign
|
||||
linehl highlight group used for the whole line the
|
||||
sign is placed in.
|
||||
sign is placed in; not present if not set
|
||||
name name of the sign
|
||||
numhl highlight group used for the line number where
|
||||
the sign is placed; not present if not set
|
||||
text text that is displayed when there is no icon
|
||||
or the GUI is not being used.
|
||||
texthl highlight group used for the text item
|
||||
texthl highlight group used for the text item; not
|
||||
present if not set
|
||||
culhl highlight group used for the text item when
|
||||
the cursor is on the same line as the sign and
|
||||
'cursorline' is enabled; not present if not
|
||||
set
|
||||
|
||||
Returns an empty List if there are no signs and when {name} is
|
||||
not found.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*syntax.txt* For Vim version 8.2. Last change: 2021 Aug 16
|
||||
*syntax.txt* For Vim version 8.2. Last change: 2021 Nov 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1081,33 +1081,47 @@ This works immediately.
|
||||
|
||||
CLOJURE *ft-clojure-syntax*
|
||||
|
||||
The default syntax groups can be augmented through the
|
||||
*g:clojure_syntax_keywords* and *b:clojure_syntax_keywords* variables. The
|
||||
value should be a |Dictionary| of syntax group names to a |List| of custom
|
||||
identifiers:
|
||||
*g:clojure_syntax_keywords*
|
||||
|
||||
Syntax highlighting of public vars in "clojure.core" is provided by default,
|
||||
but additional symbols can be highlighted by adding them to the
|
||||
|g:clojure_syntax_keywords| variable. The value should be a |Dictionary| of
|
||||
syntax group names, each containing a |List| of identifiers.
|
||||
>
|
||||
let g:clojure_syntax_keywords = {
|
||||
\ 'clojureMacro': ["defproject", "defcustom"],
|
||||
\ 'clojureFunc': ["string/join", "string/replace"]
|
||||
\ 'clojureMacro': ["defproject", "defcustom"],
|
||||
\ 'clojureFunc': ["string/join", "string/replace"]
|
||||
\ }
|
||||
<
|
||||
Refer to the Clojure syntax script for valid syntax group names.
|
||||
|
||||
If the |buffer-variable| *b:clojure_syntax_without_core_keywords* is set, only
|
||||
language constants and special forms are matched.
|
||||
There is also *b:clojure_syntax_keywords* which is a buffer-local variant of
|
||||
this variable intended for use by plugin authors to highlight symbols
|
||||
dynamically.
|
||||
|
||||
Setting *g:clojure_fold* enables folding Clojure code via the syntax engine.
|
||||
Any list, vector, or map that extends over more than one line can be folded
|
||||
using the standard Vim |fold-commands|.
|
||||
By setting the *b:clojure_syntax_without_core_keywords* variable, vars from
|
||||
"clojure.core" will not be highlighted by default. This is useful for
|
||||
namespaces that have set `(:refer-clojure :only [])`
|
||||
|
||||
Please note that this option does not work with scripts that redefine the
|
||||
bracket syntax regions, such as rainbow-parentheses plugins.
|
||||
|
||||
This option is off by default.
|
||||
*g:clojure_fold*
|
||||
|
||||
Setting |g:clojure_fold| to `1` will enable the folding of Clojure code. Any
|
||||
list, vector or map that extends over more than one line can be folded using
|
||||
the standard Vim |fold-commands|.
|
||||
|
||||
|
||||
*g:clojure_discard_macro*
|
||||
|
||||
Set this variable to `1` to enable basic highlighting of Clojure's "discard
|
||||
reader macro".
|
||||
>
|
||||
" Default
|
||||
let g:clojure_fold = 0
|
||||
#_(defn foo [x]
|
||||
(println x))
|
||||
<
|
||||
Note that this option will not correctly highlight stacked discard macros
|
||||
(e.g. `#_#_`).
|
||||
|
||||
|
||||
COBOL *cobol.vim* *ft-cobol-syntax*
|
||||
|
||||
@@ -1519,6 +1533,14 @@ gvim display. Here, statements are colored LightYellow instead of Yellow, and
|
||||
conditionals are LightBlue for better distinction.
|
||||
|
||||
|
||||
FORTH *forth.vim* *ft-forth-syntax*
|
||||
|
||||
Files matching "*.fs" could be F# or Forth. If the automatic detection
|
||||
doesn't work for you, or you don't edit F# at all, use this in your
|
||||
startup vimrc: >
|
||||
:let filetype_fs = "forth"
|
||||
|
||||
|
||||
FORTRAN *fortran.vim* *ft-fortran-syntax*
|
||||
|
||||
Default highlighting and dialect ~
|
||||
@@ -1673,16 +1695,6 @@ as Fvwm2 configuration files, add the following: >
|
||||
:au! BufNewFile,BufRead /etc/X11/fvwm2/* let b:fvwm_version = 2 |
|
||||
\ set filetype=fvwm
|
||||
|
||||
If you'd like Vim to highlight all valid color names, tell it where to
|
||||
find the color database (rgb.txt) on your system. Do this by setting
|
||||
"rgb_file" to its location. Assuming your color database is located
|
||||
in /usr/X11/lib/X11/, you should add the line >
|
||||
|
||||
:let rgb_file = "/usr/X11/lib/X11/rgb.txt"
|
||||
|
||||
to your .vimrc file.
|
||||
|
||||
|
||||
GSP *gsp.vim* *ft-gsp-syntax*
|
||||
|
||||
The default coloring style for GSP pages is defined by |html.vim|, and
|
||||
@@ -3184,6 +3196,14 @@ buffer by buffer basis.
|
||||
For more detailed instructions see |ft_sql.txt|.
|
||||
|
||||
|
||||
SQUIRREL *squirrel.vim* *ft-squirrel-syntax*
|
||||
|
||||
Squirrel is a high level imperative, object-oriented programming language,
|
||||
designed to be a light-weight scripting language that fits in the size, memory
|
||||
bandwidth, and real-time requirements of applications like video games. Files
|
||||
with the following extensions are recognized as squirrel files: .nut.
|
||||
|
||||
|
||||
TCSH *tcsh.vim* *ft-tcsh-syntax*
|
||||
|
||||
This covers the shell named "tcsh". It is a superset of csh. See |csh.vim|
|
||||
@@ -4486,7 +4506,7 @@ it marks the "\(\I\i*\)" sub-expression as external; in the end pattern, it
|
||||
changes the \z1 back-reference into an external reference referring to the
|
||||
first external sub-expression in the start pattern. External references can
|
||||
also be used in skip patterns: >
|
||||
:syn region foo start="start \(\I\i*\)" skip="not end \z1" end="end \z1"
|
||||
:syn region foo start="start \z(\I\i*\)" skip="not end \z1" end="end \z1"
|
||||
|
||||
Note that normal and external sub-expressions are completely orthogonal and
|
||||
indexed separately; for instance, if the pattern "\z(..\)\(..\)" is applied
|
||||
@@ -4830,16 +4850,28 @@ in their own color.
|
||||
Doesn't work recursively, thus you can't use
|
||||
":colorscheme" in a color scheme script.
|
||||
|
||||
To customize a color scheme use another name, e.g.
|
||||
You have two options for customizing a color scheme.
|
||||
For changing the appearance of specific colors, you
|
||||
can redefine a color name before loading the scheme.
|
||||
The desert scheme uses the khaki color for the cursor.
|
||||
To use a darker variation of the same color: >
|
||||
|
||||
let v:colornames['khaki'] = '#bdb76b'
|
||||
colorscheme desert
|
||||
<
|
||||
For further customization, such as changing
|
||||
|:highlight-link| associations, use another name, e.g.
|
||||
"~/.vim/colors/mine.vim", and use `:runtime` to load
|
||||
the original color scheme: >
|
||||
runtime colors/evening.vim
|
||||
hi Statement ctermfg=Blue guifg=Blue
|
||||
|
||||
< Before the color scheme will be loaded the
|
||||
|ColorSchemePre| autocommand event is triggered.
|
||||
After the color scheme has been loaded the
|
||||
|ColorScheme| autocommand event is triggered.
|
||||
< Before the color scheme will be loaded all default
|
||||
color list scripts (`colors/lists/default.vim`) will
|
||||
be executed and then the |ColorSchemePre| autocommand
|
||||
event is triggered. After the color scheme has been
|
||||
loaded the |ColorScheme| autocommand event is
|
||||
triggered.
|
||||
For info about writing a color scheme file: >
|
||||
:edit $VIMRUNTIME/colors/README.txt
|
||||
|
||||
@@ -4863,7 +4895,9 @@ in their own color.
|
||||
|
||||
:hi[ghlight] [default] {group-name} {key}={arg} ..
|
||||
Add a highlight group, or change the highlighting for
|
||||
an existing group.
|
||||
an existing group. If a given color name is not
|
||||
recognized, each `colors/lists/default.vim` found on
|
||||
|'runtimepath'| will be loaded.
|
||||
See |highlight-args| for the {key}={arg} arguments.
|
||||
See |:highlight-default| for the optional [default]
|
||||
argument.
|
||||
@@ -5233,6 +5267,10 @@ LineNrBelow Line number for when the 'relativenumber'
|
||||
*hl-CursorLineNr*
|
||||
CursorLineNr Like LineNr when 'cursorline' is set and 'cursorlineopt'
|
||||
contains "number" or is "both", for the cursor line.
|
||||
*hl-CursorLineSign*
|
||||
CursorLineSign Like SignColumn when 'cursorline' is set for the cursor line.
|
||||
*hl-CursorLineFold*
|
||||
CursorLineFold Like FoldColumn when 'cursorline' is set for the cursor line.
|
||||
*hl-MatchParen*
|
||||
MatchParen The character under the cursor or just before it, if it
|
||||
is a paired bracket, and its match. |pi_paren.txt|
|
||||
@@ -5459,7 +5497,7 @@ For Unix you can use the file ~/.vim/after/syntax/syncolor.vim. Example: >
|
||||
else
|
||||
highlight comment ctermfg=green guifg=green
|
||||
endif
|
||||
|
||||
<
|
||||
*E679*
|
||||
Do make sure this syncolor.vim script does not use a "syntax on", set the
|
||||
'background' option or uses a "colorscheme" command, because it results in an
|
||||
@@ -5472,11 +5510,11 @@ depends on the color scheme file. See |:colorscheme|.
|
||||
*syntax_cmd*
|
||||
The "syntax_cmd" variable is set to one of these values when the
|
||||
syntax/syncolor.vim files are loaded:
|
||||
"on" ":syntax on" command. Highlight colors are overruled but
|
||||
"on" `:syntax on` command. Highlight colors are overruled but
|
||||
links are kept
|
||||
"enable" ":syntax enable" command. Only define colors for groups that
|
||||
don't have highlighting yet. Use ":syntax default".
|
||||
"reset" ":syntax reset" command or loading a color scheme. Define all
|
||||
"enable" `:syntax enable` command. Only define colors for groups that
|
||||
don't have highlighting yet. Use `:highlight default` .
|
||||
"reset" `:syntax reset` command or loading a color scheme. Define all
|
||||
the colors.
|
||||
"skip" Don't define colors. Used to skip the default settings when a
|
||||
syncolor.vim file earlier in 'runtimepath' has already set
|
||||
|
||||
@@ -118,6 +118,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'cc' options.txt /*'cc'*
|
||||
'ccv' options.txt /*'ccv'*
|
||||
'cd' options.txt /*'cd'*
|
||||
'cdh' options.txt /*'cdh'*
|
||||
'cdhome' options.txt /*'cdhome'*
|
||||
'cdpath' options.txt /*'cdpath'*
|
||||
'cedit' options.txt /*'cedit'*
|
||||
'cf' options.txt /*'cf'*
|
||||
@@ -749,6 +751,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'nowriteany' options.txt /*'nowriteany'*
|
||||
'nowritebackup' options.txt /*'nowritebackup'*
|
||||
'nows' options.txt /*'nows'*
|
||||
'noxtermcodes' options.txt /*'noxtermcodes'*
|
||||
'nrformats' options.txt /*'nrformats'*
|
||||
'nu' options.txt /*'nu'*
|
||||
'number' options.txt /*'number'*
|
||||
@@ -1260,6 +1263,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'writedelay' options.txt /*'writedelay'*
|
||||
'ws' options.txt /*'ws'*
|
||||
'ww' options.txt /*'ww'*
|
||||
'xtermcodes' options.txt /*'xtermcodes'*
|
||||
'{ motion.txt /*'{*
|
||||
'} motion.txt /*'}*
|
||||
( motion.txt /*(*
|
||||
@@ -2307,6 +2311,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:command-completion-custom map.txt /*:command-completion-custom*
|
||||
:command-completion-customlist map.txt /*:command-completion-customlist*
|
||||
:command-count map.txt /*:command-count*
|
||||
:command-keepscript map.txt /*:command-keepscript*
|
||||
:command-modifiers map.txt /*:command-modifiers*
|
||||
:command-nargs map.txt /*:command-nargs*
|
||||
:command-range map.txt /*:command-range*
|
||||
@@ -2753,6 +2758,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:map-<unique> map.txt /*:map-<unique>*
|
||||
:map-alt-keys map.txt /*:map-alt-keys*
|
||||
:map-arguments map.txt /*:map-arguments*
|
||||
:map-buffer map.txt /*:map-buffer*
|
||||
:map-cmd map.txt /*:map-cmd*
|
||||
:map-commands map.txt /*:map-commands*
|
||||
:map-expression map.txt /*:map-expression*
|
||||
@@ -2766,6 +2772,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:map-special-chars map.txt /*:map-special-chars*
|
||||
:map-special-keys map.txt /*:map-special-keys*
|
||||
:map-undo map.txt /*:map-undo*
|
||||
:map-unique map.txt /*:map-unique*
|
||||
:map-verbose map.txt /*:map-verbose*
|
||||
:map_l map.txt /*:map_l*
|
||||
:map_l! map.txt /*:map_l!*
|
||||
@@ -3950,7 +3957,6 @@ E107 eval.txt /*E107*
|
||||
E108 eval.txt /*E108*
|
||||
E109 eval.txt /*E109*
|
||||
E1091 vim9.txt /*E1091*
|
||||
E1092 vim9.txt /*E1092*
|
||||
E1094 vim9.txt /*E1094*
|
||||
E11 cmdline.txt /*E11*
|
||||
E110 eval.txt /*E110*
|
||||
@@ -3997,6 +4003,8 @@ E1237 map.txt /*E1237*
|
||||
E1239 eval.txt /*E1239*
|
||||
E124 eval.txt /*E124*
|
||||
E1243 options.txt /*E1243*
|
||||
E1244 message.txt /*E1244*
|
||||
E1245 cmdline.txt /*E1245*
|
||||
E125 eval.txt /*E125*
|
||||
E126 eval.txt /*E126*
|
||||
E127 eval.txt /*E127*
|
||||
@@ -5241,6 +5249,7 @@ WORD motion.txt /*WORD*
|
||||
WWW intro.txt /*WWW*
|
||||
Win32 os_win32.txt /*Win32*
|
||||
WinBar gui.txt /*WinBar*
|
||||
WinClosed autocmd.txt /*WinClosed*
|
||||
WinEnter autocmd.txt /*WinEnter*
|
||||
WinLeave autocmd.txt /*WinLeave*
|
||||
WinNew autocmd.txt /*WinNew*
|
||||
@@ -5459,6 +5468,7 @@ arglistid() eval.txt /*arglistid()*
|
||||
argument-list editing.txt /*argument-list*
|
||||
argv() eval.txt /*argv()*
|
||||
argv-variable eval.txt /*argv-variable*
|
||||
arrow_modifiers term.txt /*arrow_modifiers*
|
||||
as motion.txt /*as*
|
||||
asin() eval.txt /*asin()*
|
||||
asm.vim syntax.txt /*asm.vim*
|
||||
@@ -5904,6 +5914,7 @@ collate-variable eval.txt /*collate-variable*
|
||||
color-xterm syntax.txt /*color-xterm*
|
||||
coloring syntax.txt /*coloring*
|
||||
colortest.vim syntax.txt /*colortest.vim*
|
||||
command-block vim9.txt /*command-block*
|
||||
command-line-functions usr_41.txt /*command-line-functions*
|
||||
command-line-window cmdline.txt /*command-line-window*
|
||||
command-mode intro.txt /*command-mode*
|
||||
@@ -6558,6 +6569,7 @@ format-bullet-list tips.txt /*format-bullet-list*
|
||||
format-comments change.txt /*format-comments*
|
||||
format-formatexpr change.txt /*format-formatexpr*
|
||||
formatting change.txt /*formatting*
|
||||
forth.vim syntax.txt /*forth.vim*
|
||||
fortran.vim syntax.txt /*fortran.vim*
|
||||
friendship intro.txt /*friendship*
|
||||
frombook usr_01.txt /*frombook*
|
||||
@@ -6611,6 +6623,7 @@ ft-erlang-syntax syntax.txt /*ft-erlang-syntax*
|
||||
ft-euphoria-syntax syntax.txt /*ft-euphoria-syntax*
|
||||
ft-flexwiki-syntax syntax.txt /*ft-flexwiki-syntax*
|
||||
ft-form-syntax syntax.txt /*ft-form-syntax*
|
||||
ft-forth-syntax syntax.txt /*ft-forth-syntax*
|
||||
ft-fortran-indent indent.txt /*ft-fortran-indent*
|
||||
ft-fortran-plugin filetype.txt /*ft-fortran-plugin*
|
||||
ft-fortran-syntax syntax.txt /*ft-fortran-syntax*
|
||||
@@ -6702,6 +6715,7 @@ ft-sql-omni insert.txt /*ft-sql-omni*
|
||||
ft-sql-syntax syntax.txt /*ft-sql-syntax*
|
||||
ft-sqlanywhere-syntax syntax.txt /*ft-sqlanywhere-syntax*
|
||||
ft-sqlinformix-syntax syntax.txt /*ft-sqlinformix-syntax*
|
||||
ft-squirrel-syntax syntax.txt /*ft-squirrel-syntax*
|
||||
ft-syntax-omni insert.txt /*ft-syntax-omni*
|
||||
ft-tcsh-syntax syntax.txt /*ft-tcsh-syntax*
|
||||
ft-termcap-syntax syntax.txt /*ft-termcap-syntax*
|
||||
@@ -6791,6 +6805,7 @@ g:ada_with_gnat_project_files ft_ada.txt /*g:ada_with_gnat_project_files*
|
||||
g:ada_withuse_ordinary ft_ada.txt /*g:ada_withuse_ordinary*
|
||||
g:clojure_align_multiline_strings indent.txt /*g:clojure_align_multiline_strings*
|
||||
g:clojure_align_subforms indent.txt /*g:clojure_align_subforms*
|
||||
g:clojure_discard_macro syntax.txt /*g:clojure_discard_macro*
|
||||
g:clojure_fold syntax.txt /*g:clojure_fold*
|
||||
g:clojure_fuzzy_indent indent.txt /*g:clojure_fuzzy_indent*
|
||||
g:clojure_fuzzy_indent_blacklist indent.txt /*g:clojure_fuzzy_indent_blacklist*
|
||||
@@ -7262,6 +7277,7 @@ hasmapto() eval.txt /*hasmapto()*
|
||||
hebrew hebrew.txt /*hebrew*
|
||||
hebrew.txt hebrew.txt /*hebrew.txt*
|
||||
help helphelp.txt /*help*
|
||||
help-buffer-options helphelp.txt /*help-buffer-options*
|
||||
help-context help.txt /*help-context*
|
||||
help-curwin tips.txt /*help-curwin*
|
||||
help-summary usr_02.txt /*help-summary*
|
||||
@@ -7270,7 +7286,6 @@ help-translated helphelp.txt /*help-translated*
|
||||
help-writing helphelp.txt /*help-writing*
|
||||
help-xterm-window helphelp.txt /*help-xterm-window*
|
||||
help.txt help.txt /*help.txt*
|
||||
helpfile_name.txt helphelp.txt /*helpfile_name.txt*
|
||||
helphelp helphelp.txt /*helphelp*
|
||||
helphelp.txt helphelp.txt /*helphelp.txt*
|
||||
hex-editing tips.txt /*hex-editing*
|
||||
@@ -7282,6 +7297,7 @@ hidden-options options.txt /*hidden-options*
|
||||
hidden-quit windows.txt /*hidden-quit*
|
||||
highlight-args syntax.txt /*highlight-args*
|
||||
highlight-changed version4.txt /*highlight-changed*
|
||||
highlight-clear syntax.txt /*highlight-clear*
|
||||
highlight-cterm syntax.txt /*highlight-cterm*
|
||||
highlight-ctermbg syntax.txt /*highlight-ctermbg*
|
||||
highlight-ctermfg syntax.txt /*highlight-ctermfg*
|
||||
@@ -7317,7 +7333,9 @@ hl-Cursor syntax.txt /*hl-Cursor*
|
||||
hl-CursorColumn syntax.txt /*hl-CursorColumn*
|
||||
hl-CursorIM syntax.txt /*hl-CursorIM*
|
||||
hl-CursorLine syntax.txt /*hl-CursorLine*
|
||||
hl-CursorLineFold syntax.txt /*hl-CursorLineFold*
|
||||
hl-CursorLineNr syntax.txt /*hl-CursorLineNr*
|
||||
hl-CursorLineSign syntax.txt /*hl-CursorLineSign*
|
||||
hl-DiffAdd syntax.txt /*hl-DiffAdd*
|
||||
hl-DiffChange syntax.txt /*hl-DiffChange*
|
||||
hl-DiffDelete syntax.txt /*hl-DiffDelete*
|
||||
@@ -7375,7 +7393,9 @@ hl-debugBreakpoint terminal.txt /*hl-debugBreakpoint*
|
||||
hl-debugPC terminal.txt /*hl-debugPC*
|
||||
hlID() eval.txt /*hlID()*
|
||||
hlexists() eval.txt /*hlexists()*
|
||||
hlget() eval.txt /*hlget()*
|
||||
hlsearch-variable eval.txt /*hlsearch-variable*
|
||||
hlset() eval.txt /*hlset()*
|
||||
holy-grail index.txt /*holy-grail*
|
||||
home intro.txt /*home*
|
||||
home-replace editing.txt /*home-replace*
|
||||
@@ -8415,6 +8435,7 @@ operator-variable eval.txt /*operator-variable*
|
||||
option-backslash options.txt /*option-backslash*
|
||||
option-list quickref.txt /*option-list*
|
||||
option-summary options.txt /*option-summary*
|
||||
option-value-function options.txt /*option-value-function*
|
||||
option-window options.txt /*option-window*
|
||||
option_restore() todo.txt /*option_restore()*
|
||||
option_save() todo.txt /*option_save()*
|
||||
@@ -8537,6 +8558,7 @@ plugin usr_05.txt /*plugin*
|
||||
plugin-details filetype.txt /*plugin-details*
|
||||
plugin-filetype usr_41.txt /*plugin-filetype*
|
||||
plugin-special usr_41.txt /*plugin-special*
|
||||
plugin_name.txt helphelp.txt /*plugin_name.txt*
|
||||
pmbcs-option print.txt /*pmbcs-option*
|
||||
pmbfn-option print.txt /*pmbfn-option*
|
||||
popt-option print.txt /*popt-option*
|
||||
@@ -8689,6 +8711,7 @@ python-command if_pyth.txt /*python-command*
|
||||
python-commands if_pyth.txt /*python-commands*
|
||||
python-current if_pyth.txt /*python-current*
|
||||
python-dynamic if_pyth.txt /*python-dynamic*
|
||||
python-environment if_pyth.txt /*python-environment*
|
||||
python-error if_pyth.txt /*python-error*
|
||||
python-eval if_pyth.txt /*python-eval*
|
||||
python-examples if_pyth.txt /*python-examples*
|
||||
@@ -8935,6 +8958,7 @@ save-file editing.txt /*save-file*
|
||||
save-settings starting.txt /*save-settings*
|
||||
scheme.vim syntax.txt /*scheme.vim*
|
||||
scp pi_netrw.txt /*scp*
|
||||
scratch-buffer windows.txt /*scratch-buffer*
|
||||
screenattr() eval.txt /*screenattr()*
|
||||
screenchar() eval.txt /*screenchar()*
|
||||
screenchars() eval.txt /*screenchars()*
|
||||
@@ -9062,6 +9086,9 @@ simulated-command vi_diff.txt /*simulated-command*
|
||||
sin() eval.txt /*sin()*
|
||||
single-repeat repeat.txt /*single-repeat*
|
||||
sinh() eval.txt /*sinh()*
|
||||
sizeofint-variable eval.txt /*sizeofint-variable*
|
||||
sizeoflong-variable eval.txt /*sizeoflong-variable*
|
||||
sizeofpointer-variable eval.txt /*sizeofpointer-variable*
|
||||
skeleton autocmd.txt /*skeleton*
|
||||
skip_defaults_vim starting.txt /*skip_defaults_vim*
|
||||
slice eval.txt /*slice*
|
||||
@@ -9226,6 +9253,7 @@ sqlj ft_sql.txt /*sqlj*
|
||||
sqlserver ft_sql.txt /*sqlserver*
|
||||
sqlsettype ft_sql.txt /*sqlsettype*
|
||||
sqrt() eval.txt /*sqrt()*
|
||||
squirrel.vim syntax.txt /*squirrel.vim*
|
||||
srand() eval.txt /*srand()*
|
||||
sscanf eval.txt /*sscanf*
|
||||
standard-plugin usr_05.txt /*standard-plugin*
|
||||
@@ -9938,6 +9966,7 @@ v:charconvert_to eval.txt /*v:charconvert_to*
|
||||
v:cmdarg eval.txt /*v:cmdarg*
|
||||
v:cmdbang eval.txt /*v:cmdbang*
|
||||
v:collate eval.txt /*v:collate*
|
||||
v:colornames eval.txt /*v:colornames*
|
||||
v:completed_item eval.txt /*v:completed_item*
|
||||
v:count eval.txt /*v:count*
|
||||
v:count1 eval.txt /*v:count1*
|
||||
@@ -9993,6 +10022,9 @@ v:scrollstart eval.txt /*v:scrollstart*
|
||||
v:searchforward eval.txt /*v:searchforward*
|
||||
v:servername eval.txt /*v:servername*
|
||||
v:shell_error eval.txt /*v:shell_error*
|
||||
v:sizeofint eval.txt /*v:sizeofint*
|
||||
v:sizeoflong eval.txt /*v:sizeoflong*
|
||||
v:sizeofpointer eval.txt /*v:sizeofpointer*
|
||||
v:statusmsg eval.txt /*v:statusmsg*
|
||||
v:swapchoice eval.txt /*v:swapchoice*
|
||||
v:swapcommand eval.txt /*v:swapcommand*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*term.txt* For Vim version 8.2. Last change: 2021 Aug 29
|
||||
*term.txt* For Vim version 8.2. Last change: 2021 Dec 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -150,8 +150,10 @@ terminal that tmux is running in): >
|
||||
" Enable focus event tracking, see :help xterm-focus-event
|
||||
let &t_fe = "\<Esc>[?1004h"
|
||||
let &t_fd = "\<Esc>[?1004l"
|
||||
execute "set <FocusGained>=\<Esc>[I"
|
||||
execute "set <FocusLost>=\<Esc>[O"
|
||||
|
||||
" Enable modified arrow keys, see :help xterm-modifier-keys
|
||||
" Enable modified arrow keys, see :help arrow_modifiers
|
||||
execute "silent! set <xUp>=\<Esc>[@;*A"
|
||||
execute "silent! set <xDown>=\<Esc>[@;*B"
|
||||
execute "silent! set <xRight>=\<Esc>[@;*C"
|
||||
@@ -252,7 +254,19 @@ another code. That is to avoid that the codes obtained from xterm directly
|
||||
Another special value is a termcap entry ending in "@;*X". This is for cursor
|
||||
keys, which either use "CSI X" or "CSI 1 ; modifier X". Thus the "@"
|
||||
stands for either "1" if a modifier follows, or nothing.
|
||||
*xterm-scroll-region*
|
||||
*arrow_modifiers*
|
||||
Several terminal emulators (alacritty, gnome, konsole, etc.) send special
|
||||
codes for keys with modifiers, but these do not have an entry in the
|
||||
termcap/terminfo database. You can make them work by adding a few lines in
|
||||
your vimrc. For example, to make the Control modifier work with arrow keys
|
||||
for the gnome terminal: >
|
||||
if &term =~ 'gnome'
|
||||
execute "set <xUp>=\<Esc>[@;*A"
|
||||
execute "set <xDown>=\<Esc>[@;*B"
|
||||
execute "set <xRight>=\<Esc>[@;*C"
|
||||
execute "set <xLeft>=\<Esc>[@;*D"
|
||||
endif
|
||||
< *xterm-scroll-region*
|
||||
The default termcap entry for xterm on Sun and other platforms does not
|
||||
contain the entry for scroll regions. Add ":cs=\E[%i%d;%dr:" to the xterm
|
||||
entry in /etc/termcap and everything should work.
|
||||
@@ -542,8 +556,15 @@ request the key codes directly from the xterm. The responses are used to
|
||||
adjust the various t_ codes. This avoids the problem that the xterm can
|
||||
produce different codes, depending on the mode it is in (8-bit, VT102,
|
||||
VT220, etc.). The result is that codes like <xF1> are no longer needed.
|
||||
Note: This is only done on startup. If the xterm options are changed after
|
||||
Vim has started, the escape sequences may not be recognized anymore.
|
||||
|
||||
One of the codes that can change is 't_Co', the number of colors. This will
|
||||
trigger a redraw. If this is a problem, reset the 'xtermcodes' option as
|
||||
early as possible: >
|
||||
set noxtermcodes
|
||||
|
||||
Note: Requesting the key codes is only done on startup. If the xterm options
|
||||
are changed after Vim has started, the escape sequences may not be recognized
|
||||
anymore.
|
||||
|
||||
*xterm-true-color*
|
||||
Vim supports using true colors in the terminal (taken from |highlight-guifg|
|
||||
@@ -594,6 +615,8 @@ If your terminal does support this but Vim does not recognize the terminal,
|
||||
you may have to set the options yourself: >
|
||||
let &t_fe = "\<Esc>[?1004h"
|
||||
let &t_fd = "\<Esc>[?1004l"
|
||||
execute "set <FocusGained>=\<Esc>[I"
|
||||
execute "set <FocusLost>=\<Esc>[O"
|
||||
If this causes garbage to show when Vim starts up then it doesn't work.
|
||||
|
||||
*termcap-colors*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*terminal.txt* For Vim version 8.2. Last change: 2021 Aug 15
|
||||
*terminal.txt* For Vim version 8.2. Last change: 2021 Dec 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -240,7 +240,7 @@ Command syntax ~
|
||||
++shell Instead of executing {command}
|
||||
directly, use a shell, like with
|
||||
`:!command` *E279*
|
||||
{only works on Unix currently}
|
||||
{only works on Unix and MS-Windows}
|
||||
++kill={how} When trying to close the terminal
|
||||
window kill the job with {how}. See
|
||||
|term_setkill()| for the values.
|
||||
@@ -871,7 +871,8 @@ term_start({cmd} [, {options}]) *term_start()*
|
||||
"term_name" name to use for the buffer name, instead
|
||||
of the command name.
|
||||
"term_rows" vertical size to use for the terminal,
|
||||
instead of using 'termwinsize'
|
||||
instead of using 'termwinsize'; valid
|
||||
range is from zero to 1000
|
||||
"term_cols" horizontal size to use for the terminal,
|
||||
instead of using 'termwinsize'
|
||||
"vertical" split the window vertically; note that
|
||||
@@ -1427,6 +1428,8 @@ GDB command *termdebug-customizing*
|
||||
To change the name of the gdb command, set the "g:termdebugger" variable before
|
||||
invoking `:Termdebug`: >
|
||||
let g:termdebugger = "mygdb"
|
||||
If the command needs an argument use a List: >
|
||||
let g:termdebugger = ['rr', 'replay', '--']
|
||||
< *gdb-version*
|
||||
Only debuggers fully compatible with gdb will work. Vim uses the GDB/MI
|
||||
interface. The "new-ui" command requires gdb version 7.12 or later. if you
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*testing.txt* For Vim version 8.2. Last change: 2021 Aug 15
|
||||
*testing.txt* For Vim version 8.2. Last change: 2021 Dec 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -65,7 +65,8 @@ test_garbagecollect_now() *test_garbagecollect_now()*
|
||||
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.
|
||||
any function. This will not work when called from a :def
|
||||
function, because variables on the stack will be freed.
|
||||
|
||||
|
||||
test_garbagecollect_soon() *test_garbagecollect_soon()*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*textprop.txt* For Vim version 8.2. Last change: 2021 Aug 16
|
||||
*textprop.txt* For Vim version 8.2. Last change: 2021 Nov 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -230,13 +230,25 @@ prop_find({props} [, {direction}])
|
||||
|
||||
|
||||
prop_list({lnum} [, {props}]) *prop_list()*
|
||||
Return a List with all text properties in line {lnum}.
|
||||
Returns a List with all the text properties in line {lnum}.
|
||||
|
||||
When {props} contains a "bufnr" item, use this buffer instead
|
||||
of the current buffer.
|
||||
The following optional items are supported in {props}:
|
||||
bufnr use this buffer instead of the current buffer
|
||||
end_lnum return text properties in all the lines
|
||||
between {lnum} and {end_lnum} (inclusive).
|
||||
A negative value is used as an offset from the
|
||||
last buffer line; -1 refers to the last buffer
|
||||
line.
|
||||
types List of property type names. Return only text
|
||||
properties that match one of the type names.
|
||||
ids List of property identifiers. Return only text
|
||||
properties with one of these identifiers.
|
||||
|
||||
The properties are ordered by starting column and priority.
|
||||
Each property is a Dict with these entries:
|
||||
lnum starting line number. Present only when
|
||||
returning text properties between {lnum} and
|
||||
{end_lnum}.
|
||||
col starting column
|
||||
length length in bytes, one more if line break is
|
||||
included
|
||||
@@ -253,6 +265,30 @@ prop_list({lnum} [, {props}]) *prop_list()*
|
||||
When "end" is zero the property continues in the next line.
|
||||
The line break after this line is included.
|
||||
|
||||
Returns an empty list on error.
|
||||
|
||||
Examples:
|
||||
" get text properties placed in line 5
|
||||
echo prop_list(5)
|
||||
" get text properties placed in line 20 in buffer 4
|
||||
echo prop_list(20, {'bufnr': 4})
|
||||
" get all the text properties between line 1 and 20
|
||||
echo prop_list(1, {'end_lnum': 20})
|
||||
" get all the text properties of type 'myprop'
|
||||
echo prop_list(1, {'types': ['myprop'],
|
||||
\ 'end_lnum': -1})
|
||||
" get all the text properties of type 'prop1' or 'prop2'
|
||||
echo prop_list(1, {'types': ['prop1', 'prop2'],
|
||||
\ 'end_lnum': -1})
|
||||
" get all the text properties with ID 8
|
||||
echo prop_list(1, {'ids': [8], 'end_lnum': line('$')})
|
||||
" get all the text properties with ID 10 and 20
|
||||
echo prop_list(1, {'ids': [10, 20], 'end_lnum': -1})
|
||||
" get text properties with type 'myprop' and ID 100
|
||||
" in buffer 4.
|
||||
echo prop_list(1, {'bufnr': 4, 'types': ['myprop'],
|
||||
\ 'ids': [100], 'end_lnum': -1})
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetLnum()->prop_list()
|
||||
<
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*tips.txt* For Vim version 8.2. Last change: 2020 Dec 29
|
||||
*tips.txt* For Vim version 8.2. Last change: 2021 Nov 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -549,6 +549,7 @@ the current window, try this custom `:HelpCurwin` command:
|
||||
endif
|
||||
if !getcompletion(a:subject, 'help')->empty()
|
||||
execute mods .. ' edit ' .. &helpfile
|
||||
set buftype=help
|
||||
endif
|
||||
return 'help ' .. a:subject
|
||||
endfunction
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 8.2. Last change: 2021 Oct 16
|
||||
*todo.txt* For Vim version 8.2. Last change: 2021 Dec 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -38,13 +38,14 @@ browser use: https://github.com/vim/vim/issues/1234
|
||||
*known-bugs*
|
||||
-------------------- Known bugs and current work -----------------------
|
||||
|
||||
type of v: vars should be more specific
|
||||
v:completed_item is dict<string>, not dict<any>
|
||||
|
||||
E1135 is used twice
|
||||
|
||||
"z=" in German can take a very long time, CTRL-C should interrupt it.
|
||||
|
||||
Vim9 - Make everything work:
|
||||
- "filter #pat# ls" should work, #pat# is not a comment
|
||||
vim9script
|
||||
edit foobar
|
||||
filter #foobar# ls
|
||||
- Check TODO items in vim9compile.c and vim9execute.c
|
||||
- use CheckLegacyAndVim9Success(lines) in many more places
|
||||
- For builtin functions using tv_get_string*() use check_for_string() to be
|
||||
more strict about the argument type (not a bool).
|
||||
done: balloon_()
|
||||
@@ -52,8 +53,6 @@ Vim9 - Make everything work:
|
||||
map() could check that the return type of the function argument matches
|
||||
the type of the list or dict member. (#8092)
|
||||
Same for other functions, such as searchpair().
|
||||
- Test try/catch and throw better, also nested.
|
||||
Test that return inside try/finally jumps to finally and then returns.
|
||||
- Test that a function defined inside a :def function is local to that
|
||||
function, g: functions can be defined and script-local functions cannot be
|
||||
defined.
|
||||
@@ -93,6 +92,9 @@ Further Vim9 improvements, possibly after launch:
|
||||
has(featureName), len(someString)
|
||||
- Implement as part of an expression: ++expr, --expr, expr++, expr--.
|
||||
|
||||
Update list of features to vote on:
|
||||
- multiple cursors
|
||||
- built-in LSP support
|
||||
|
||||
Popup windows:
|
||||
- Preview popup not properly updated when it overlaps with completion menu.
|
||||
@@ -135,8 +137,6 @@ Text properties:
|
||||
where property fits in.
|
||||
Or Should we let the textprop highlight overrule other (e.g. diff) highlight
|
||||
if the priority is above a certain value? (#7392)
|
||||
- Popup attached to text property stays visible when text is no longer
|
||||
visible. (#7736)
|
||||
- Popup attached to text property stays visible when text is deleted with
|
||||
"cc". (#7737) "C" works OK. "dd" also files in a buffer with a single
|
||||
line.
|
||||
@@ -198,8 +198,6 @@ Terminal emulator window:
|
||||
- GUI: When using ":set go+=!" a system() call causes the hit-enter prompt.
|
||||
(#3327)
|
||||
- Allow for specifying the directory, with ++cwd={dir}.
|
||||
- With a vertical split only one window is updated. (Linwei, 2018 Jun 2,
|
||||
#2977)
|
||||
- When pasting should call vterm_keyboard_start_paste(), e.g. when using
|
||||
K_MIDDLEMOUSE, calling insert_reg().
|
||||
- Users expect parsing the :term argument like a shell does, also support
|
||||
@@ -218,8 +216,6 @@ Terminal emulator window:
|
||||
- When 'encoding' is not utf-8, or the job is using another encoding, setup
|
||||
conversions.
|
||||
|
||||
Include patch #6290: recognize shell directory change.
|
||||
|
||||
When using 'cryptmethod' xchaha20 the undo file is not encrypted.
|
||||
Need to handle extra bytes.
|
||||
|
||||
@@ -229,6 +225,8 @@ Fails in line 64 of Ch_communicate, no exception is thrown.
|
||||
Patch for Template string: #4634
|
||||
Have another look at the implementation.
|
||||
|
||||
Add expanding <script> which works like <sfile> everywhere. #9189
|
||||
|
||||
Rename getdigraphlist -> digraph_getlist() etc.
|
||||
|
||||
Valgrind reports memory leaks in test_options.
|
||||
@@ -255,12 +253,18 @@ Idea: when typing ":e /some/dir/" and "dir" does not exist, highlight in red.
|
||||
initialization to figure out the default value from 'shell'. Add a test for
|
||||
this.
|
||||
|
||||
Patch to add :argdedupe. (Nir Lichtman, #6235)
|
||||
|
||||
MS-Windows: did path modifier :p:8 stop working? #8600
|
||||
|
||||
test_arglist func Test_all_not_allowed_from_cmdwin() hangs on MS-Windows.
|
||||
|
||||
Mapping with partial match not executed properly in GTK. (Ingo Karkat, #7082)
|
||||
|
||||
Information for a specific terminal (e.g. gnome, tmux, konsole, alacritty) is
|
||||
spread out. Make a section with copy/paste examples of script and pointers to
|
||||
more information.
|
||||
|
||||
Problem that a previous silent ":throw" causes a following try/catch not to
|
||||
work. (ZyX, 2013 Sep 28) With examples: (Malcolm Rowe, 2015 Dec 24)
|
||||
Also see #8487 for an example.
|
||||
@@ -271,12 +275,18 @@ Was originally written by Felipe Morales.
|
||||
Request to use "." for the cursor column in search pattern \%<.c and \%<.v.
|
||||
(#8179)
|
||||
|
||||
":filter set termcap" only filters terminal codes, not keys. (#9297)
|
||||
|
||||
Remove SPACE_IN_FILENAME ? It is only used for completion.
|
||||
|
||||
When 'term' starts with "foot" then default t_TI and t_TE to the values used
|
||||
for the builtin xterm termcap.
|
||||
|
||||
Adding "10" to 'spellsuggest' causes spell suggestions to become very slow.
|
||||
(#4087) Did patch 8.2.2379 help?
|
||||
Also, z= in German on a long word can take a very long time, but CTRL-C to
|
||||
interrupt does not work. Where to add ui_breakcheck()?
|
||||
|
||||
Remove SPACE_IN_FILENAME ? It is only used for completion.
|
||||
New English spell files also have very slow suggestions.
|
||||
|
||||
Searching for \%'> does not find anything when using line Visual selection.
|
||||
Probably because it's using MAXCOL. #8238
|
||||
@@ -411,8 +421,6 @@ Motif: Build on Ubuntu can't enter any text in dialog text fields.
|
||||
Running test_gui and test_gui_init with Motif sometimes kills the window
|
||||
manager. Problem with Motif?
|
||||
|
||||
Patch to add :argdedupe. (Nir Lichtman, #6235)
|
||||
|
||||
When editing a file with ":edit" the output of :swapname is relative, while
|
||||
editing it with "vim file" it is absolute. (#355)
|
||||
Which one should it be?
|
||||
@@ -653,14 +661,6 @@ http://vimawesome.com/?q=tag:color-scheme
|
||||
Bug: "vipgw" does not put cursor back where it belongs. (Jason Franklin, 2019
|
||||
Mar 5)
|
||||
|
||||
Many users don't like 'thesaurus' to match so many words. (#4667, #1611)
|
||||
- when the match with the first word is partial, don't add other words on that
|
||||
line.
|
||||
- support other file formats, such as comma separated. Indicate by a prefix
|
||||
to the file in the 'thesaurus' option.
|
||||
- 'threglookexp' option: only match with first word in thesaurus file.
|
||||
(Jakson A. Aquino, 2006 Jun 14)
|
||||
|
||||
Some composing characters actually add a cell width to the character they are
|
||||
on top off, making the whole thing two characters wide. (#4526)
|
||||
|
||||
@@ -850,9 +850,7 @@ window for the buffer.
|
||||
Win32 key codes are messy. Mike Williams tried to fix that, but now old
|
||||
mappings no longer work. Create a new terminal for the better solution?
|
||||
|
||||
Compiler warnings (geeknik, 2017 Oct 26):
|
||||
- signed integer overflow in do_sub() (#2249)
|
||||
- signed integer overflow in get_address() (#2248)
|
||||
Compiler warning (geeknik, 2017 Oct 26):
|
||||
- undefined left shift in get_string_tv() (#2250)
|
||||
|
||||
Add Native language protocol server (LSP) support. (Yegappan Lakshmanan, 2018
|
||||
@@ -1472,10 +1470,6 @@ When the CursorMovedI event triggers, and CTRL-X was typed, a script cannot
|
||||
restore the mode properly. (Andrew Stewart, 2016 Apr 20)
|
||||
Do not trigger the event?
|
||||
|
||||
Patch to fix display of listchars on the cursorline. (Nayuri Aohime, 2013)
|
||||
Update suggested by Yasuhiro Matsumoto, 2014 Nov 25:
|
||||
https://gist.github.com/presuku/d3d6b230b9b6dcfc0477
|
||||
|
||||
Patch to make the behavior of "w" more straightforward, but not Vi compatible.
|
||||
With a 'cpo' flag. (Christian Brabandt, 2016 Feb 8)
|
||||
|
||||
@@ -3903,7 +3897,7 @@ User Friendlier:
|
||||
$HOME/_vimrc, etc.) and add "edit vimrc" to the File menu.
|
||||
- Add a way to save local settings and mappings into a new plugin file.
|
||||
":mkplugin <file>"?
|
||||
- Add mappings local to a window: ":map <window> ..."?
|
||||
- Add mappings local to a window: ":map <window> ..." #9339
|
||||
9 Add buffer-local menu. Should offer a choice between removing the menu or
|
||||
disabling it. Be careful that tear-offs don't disappear (keep one empty
|
||||
item?).
|
||||
@@ -4161,6 +4155,9 @@ Printing:
|
||||
|
||||
|
||||
Syntax highlighting:
|
||||
Long term goal: faster, better, etc. Options:
|
||||
- use treesitter, NeoVim uses it
|
||||
- use TextMate, vscode uses it. #9087
|
||||
8 Make ":syn off" use 'runtimepath' instead of $VIMRUNTIME. (Gary Johnson)
|
||||
Should do the same for ":syn on" and ":syn manual".
|
||||
8 Support "containedin" argument for ":syn include", so that the defined
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_06.txt* For Vim version 8.2. Last change: 2019 Jun 01
|
||||
*usr_06.txt* For Vim version 8.2. Last change: 2021 Nov 07
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -205,7 +205,7 @@ file:
|
||||
|
||||
As a color scheme author, you should be able to rely on some color names for
|
||||
GUI colors. These are defined in `colors/lists/default.vim`. All such files
|
||||
found on the |runtimepath| are loaded each time the colorscheme command is
|
||||
found on the |'runtimepath'| are loaded each time the colorscheme command is
|
||||
run. A canonical list is provided by the vim distribution, which should
|
||||
include all X11 colors (previously defined in rgb.txt).
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_20.txt* For Vim version 8.2. Last change: 2006 Apr 24
|
||||
*usr_20.txt* For Vim version 8.2. Last change: 2021 Nov 18
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -289,11 +289,11 @@ In chapter 3 we briefly mentioned the history. The basics are that you can
|
||||
use the <Up> key to recall an older command line. <Down> then takes you back
|
||||
to newer commands.
|
||||
|
||||
There are actually four histories. The ones we will mention here are for ":"
|
||||
There are actually five histories. The ones we will mention here are for ":"
|
||||
commands and for "/" and "?" search commands. The "/" and "?" commands share
|
||||
the same history, because they are both search commands. The two other
|
||||
histories are for expressions and input lines for the input() function.
|
||||
|cmdline-history|
|
||||
the same history, because they are both search commands. The three other
|
||||
histories are for expressions, debug mode commands and input lines for the
|
||||
input() function. |cmdline-history|
|
||||
|
||||
Suppose you have done a ":set" command, typed ten more colon commands and then
|
||||
want to repeat that ":set" command again. You could press ":" and then ten
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*various.txt* For Vim version 8.2. Last change: 2021 Sep 06
|
||||
*various.txt* For Vim version 8.2. Last change: 2021 Dec 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -369,7 +369,7 @@ N *+digraphs* |digraphs| *E196*
|
||||
*+dnd* Support for DnD into the "~ register |quote_~|.
|
||||
B *+emacs_tags* |emacs-tags| files
|
||||
N *+eval* expression evaluation |eval.txt|
|
||||
N *+ex_extra* always on now, used to be for Vim's extra Ex commands
|
||||
T *+ex_extra* always on now, used to be for Vim's extra Ex commands
|
||||
N *+extra_search* |'hlsearch'| and |'incsearch'| options.
|
||||
- *+farsi* Removed: |farsi| language
|
||||
N *+file_in_path* |gf|, |CTRL-W_f| and |<cfile>|
|
||||
@@ -391,7 +391,7 @@ m *+hangul_input* Hangul input support |hangul|
|
||||
T *+insert_expand* |insert_expand| Insert mode completion
|
||||
m *+ipv6* Support for IPv6 networking |channel|
|
||||
m *+job* starting and stopping jobs |job|
|
||||
S *+jumplist* |jumplist|
|
||||
T *+jumplist* |jumplist|; Always enabled since 8.2.3795
|
||||
B *+keymap* |'keymap'|
|
||||
N *+lambda* |lambda| and |closure|
|
||||
B *+langmap* |'langmap'|
|
||||
@@ -423,7 +423,7 @@ N *+multi_lang* non-English language support |multi-lang|
|
||||
m *+mzscheme* Mzscheme interface |mzscheme|
|
||||
m *+mzscheme/dyn* Mzscheme interface |mzscheme-dynamic| |/dyn|
|
||||
m *+netbeans_intg* |netbeans|
|
||||
*+num64* 64-bit Number support |Number|
|
||||
T *+num64* 64-bit Number support |Number|
|
||||
Always enabled since 8.2.0271, use v:numbersize to
|
||||
check the actual size of a Number.
|
||||
m *+ole* Win32 GUI only: |ole-interface|
|
||||
@@ -471,15 +471,15 @@ N *+textobjects* |text-objects| selection
|
||||
N *+textprop* |text-properties|
|
||||
*+tgetent* non-Unix only: able to use external termcap
|
||||
N *+timers* the |timer_start()| function
|
||||
N *+title* Setting the window 'title' and 'icon'
|
||||
T *+title* Setting the window 'title' and 'icon'; Always enabled
|
||||
N *+toolbar* |gui-toolbar|
|
||||
T *+user_commands* User-defined commands. |user-commands|
|
||||
Always enabled since 8.1.1210.
|
||||
B *+vartabs* Variable-width tabstops. |'vartabstop'|
|
||||
N *+viminfo* |'viminfo'|
|
||||
*+vertsplit* Vertically split windows |:vsplit|; Always enabled
|
||||
T *+vertsplit* Vertically split windows |:vsplit|; Always enabled
|
||||
since 8.0.1118.
|
||||
N *+virtualedit* |'virtualedit'| Always enabled since 8.1.826.
|
||||
T *+virtualedit* |'virtualedit'| Always enabled since 8.1.826.
|
||||
T *+visual* Visual mode |Visual-mode| Always enabled since 7.4.200.
|
||||
T *+visualextra* extra Visual mode commands |blockwise-operators|
|
||||
T *+vreplace* |gR| and |gr|
|
||||
@@ -549,14 +549,17 @@ N *+X11* Unix only: can restore window title |X11|
|
||||
name can be omitted.
|
||||
:redi[r] @">> Append messages to the unnamed register.
|
||||
|
||||
:redi[r] => {var} Redirect messages to a variable. If the variable
|
||||
doesn't exist, then it is created. If the variable
|
||||
exists, then it is initialized to an empty string.
|
||||
:redi[r] => {var} Redirect messages to a variable.
|
||||
In legacy script: If the variable doesn't exist, then
|
||||
it is created. If the variable exists, then it is
|
||||
initialized to an empty string. After the redirection
|
||||
starts, if the variable is removed or locked or the
|
||||
variable type is changed, then further command output
|
||||
messages will cause errors.
|
||||
In Vim9 script: the variable must have been declared
|
||||
as a string.
|
||||
The variable will remain empty until redirection ends.
|
||||
Only string variables can be used. After the
|
||||
redirection starts, if the variable is removed or
|
||||
locked or the variable type is changed, then further
|
||||
command output messages will cause errors.
|
||||
Only string variables can be used.
|
||||
To get the output of one command the |execute()|
|
||||
function can be used instead of redirection.
|
||||
|
||||
@@ -598,7 +601,7 @@ N *+X11* Unix only: can restore window title |X11|
|
||||
|:oldfiles| - filter by file name
|
||||
|:registers| - filter by register contents
|
||||
(does not work multi-line)
|
||||
|:set| - filter by variable name
|
||||
|:set| - filter by option name
|
||||
|
||||
Only normal messages are filtered, error messages are
|
||||
not.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*vim9.txt* For Vim version 8.2. Last change: 2021 Sep 13
|
||||
*vim9.txt* For Vim version 8.2. Last change: 2021 Dec 22
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -169,8 +169,8 @@ created yet. In this case you can call `execute()` to invoke it at runtime. >
|
||||
|
||||
`:def` has no options like `:function` does: "range", "abort", "dict" or
|
||||
"closure". A `:def` function always aborts on an error (unless `:silent!` was
|
||||
used for the command or inside a `:try` block), does not get a range passed
|
||||
cannot be a "dict" function, and can always be a closure.
|
||||
used for the command or the error was caught a `:try` block), does not get a
|
||||
range passed cannot be a "dict" function, and can always be a closure.
|
||||
*vim9-no-dict-function*
|
||||
Later classes will be added, which replaces the "dict function" mechanism.
|
||||
For now you will need to pass the dictionary explicitly: >
|
||||
@@ -234,9 +234,10 @@ the "name#" prefix is sufficient. >
|
||||
def scriptname#function() # autoload
|
||||
|
||||
When using `:function` or `:def` to specify a nested function inside a `:def`
|
||||
function, this nested function is local to the code block it is defined in.
|
||||
In a `:def` function it is not possible to define a script-local function. It
|
||||
is possible to define a global function by using the "g:" prefix.
|
||||
function and no namespace was given, this nested function is local to the code
|
||||
block it is defined in. In a `:def` function it is not possible to define a
|
||||
script-local function. It is possible to define a global function by using
|
||||
the "g:" prefix.
|
||||
|
||||
When referring to a function and no "s:" or "g:" prefix is used, Vim will
|
||||
search for the function:
|
||||
@@ -420,12 +421,11 @@ similar to how a function argument can be ignored: >
|
||||
To ignore any remaining items: >
|
||||
[a, b; _] = longList
|
||||
|
||||
< *E1092*
|
||||
Declaring more than one variable at a time, using the unpack notation, is
|
||||
currently not supported: >
|
||||
var [v1, v2] = GetValues() # Error!
|
||||
That is because the type needs to be inferred from the list item type, which
|
||||
isn't that easy.
|
||||
possible. Each variable can have a type or infer it from the value: >
|
||||
var [v1: number, v2] = GetValues()
|
||||
Use this only when there is a list with values, declaring one variable per
|
||||
line is much easier to read and change later.
|
||||
|
||||
|
||||
Constants ~
|
||||
@@ -509,7 +509,7 @@ The function must already have been defined. >
|
||||
|
||||
When using `function()` the resulting type is "func", a function with any
|
||||
number of arguments and any return type (including void). The function can be
|
||||
defined later.
|
||||
defined later if the argument is in quotes.
|
||||
|
||||
|
||||
Lambda using => instead of -> ~
|
||||
@@ -560,7 +560,6 @@ This can be useful for a timer, for example: >
|
||||
echom 'Handler called ' .. count
|
||||
}, {repeat: 3})
|
||||
|
||||
|
||||
The ending "}" must be at the start of a line. It can be followed by other
|
||||
characters, e.g.: >
|
||||
var d = mapnew(dict, (k, v): string => {
|
||||
@@ -568,6 +567,24 @@ characters, e.g.: >
|
||||
})
|
||||
No command can follow the "{", only a comment can be used there.
|
||||
|
||||
*command-block*
|
||||
The block can also be used for defining a user command. Inside the block Vim9
|
||||
syntax will be used.
|
||||
|
||||
If the statements include a dictionary, its closing bracket must not be
|
||||
written at the start of a line. Otherwise, it would be parsed as the end of
|
||||
the block. This does not work: >
|
||||
command NewCommand {
|
||||
g:mydict = {
|
||||
'key': 'value',
|
||||
} # ERROR: will be recognized as the end of the block
|
||||
}
|
||||
Put the '}' after the last item to avoid this: >
|
||||
command NewCommand {
|
||||
g:mydict = {
|
||||
'key': 'value' }
|
||||
}
|
||||
|
||||
Rationale: The "}" cannot be after a command because it would require parsing
|
||||
the commands to find it. For consistency with that no command can follow the
|
||||
"{". Unfortunately this means using "() => { command }" does not work, line
|
||||
@@ -821,6 +838,16 @@ error. Example: >
|
||||
|
||||
For loop ~
|
||||
|
||||
The loop variable must not be declared yet: >
|
||||
var i = 1
|
||||
for i in [1, 2, 3] # Error!
|
||||
|
||||
It is possible to use a global variable though: >
|
||||
g:i = 1
|
||||
for g:i in [1, 2, 3]
|
||||
echo g:i
|
||||
endfor
|
||||
|
||||
Legacy Vim script has some tricks to make a for loop over a list handle
|
||||
deleting items at the current or previous item. In Vim9 script it just uses
|
||||
the index, if items are deleted then items in the list will be skipped.
|
||||
@@ -1121,17 +1148,11 @@ function scope. Instead, use a lambda: >
|
||||
return range(1, 2)->map((_, v) => list[v])
|
||||
enddef
|
||||
|
||||
The same is true for commands that are not compiled, such as `:global`.
|
||||
For these the backtick expansion can be used. Example: >
|
||||
For commands that are not compiled, such as `:edit`, backtick expansion can be
|
||||
used and it can use the local scope. Example: >
|
||||
def Replace()
|
||||
var newText = 'blah'
|
||||
g/pattern/s/^/`=newText`/
|
||||
enddef
|
||||
|
||||
Or a script variable can be used: >
|
||||
var newText = 'blah'
|
||||
def Replace()
|
||||
g/pattern/s/^/\=newText/
|
||||
var fname = 'blah.txt'
|
||||
edit `=fname`
|
||||
enddef
|
||||
|
||||
Closures defined in a loop will share the same context. For example: >
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*visual.txt* For Vim version 8.2. Last change: 2021 May 30
|
||||
*visual.txt* For Vim version 8.2. Last change: 2021 Nov 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -370,7 +370,8 @@ same amount of text as the last time:
|
||||
last line the same number of characters as in the last line the last time.
|
||||
The start of the text is the Cursor position. If the "$" command was used as
|
||||
one of the last commands to extend the highlighted text, the repeating will
|
||||
be applied up to the rightmost column of the longest line.
|
||||
be applied up to the rightmost column of the longest line. Any count passed
|
||||
to the `.` command is not used.
|
||||
|
||||
|
||||
==============================================================================
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*windows.txt* For Vim version 8.2. Last change: 2021 Sep 09
|
||||
*windows.txt* For Vim version 8.2. Last change: 2021 Nov 29
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1203,6 +1203,8 @@ list of buffers. |unlisted-buffer|
|
||||
the current buffer remains being edited. See |:buffer-!| for
|
||||
[!]. This will also edit a buffer that is not in the buffer
|
||||
list, without setting the 'buflisted' flag.
|
||||
The notation with single quotes does not work here,
|
||||
`:buf 12'345'` uses 12'345 as a buffer name.
|
||||
Also see |+cmd|.
|
||||
|
||||
:[N]b[uffer][!] [+cmd] {bufname} *{bufname}*
|
||||
|
||||
@@ -111,7 +111,7 @@ octets.
|
||||
.TP
|
||||
.IR \-p " | " \-ps " | " \-postscript " | " \-plain
|
||||
Produit une conversion continue dans le style Postscript (postscript continuous
|
||||
hexdumd style).
|
||||
hexdump style).
|
||||
Également connu sous le nom de « conversion brute » (plain hexdump style).
|
||||
.TP
|
||||
.IR \-r " | " \-revert
|
||||
|
||||
@@ -111,7 +111,7 @@ octets.
|
||||
.TP
|
||||
.IR \-p " | " \-ps " | " \-postscript " | " \-plain
|
||||
Produit une conversion continue dans le style Postscript (postscript continuous
|
||||
hexdumd style).
|
||||
hexdump style).
|
||||
Également connu sous le nom de « conversion brute » (plain hexdump style).
|
||||
.TP
|
||||
.IR \-r " | " \-revert
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2021 Oct 03
|
||||
" Last Change: 2021 Dec 22
|
||||
|
||||
" Listen very carefully, I will say this only once
|
||||
if exists("did_load_filetypes")
|
||||
@@ -123,7 +123,7 @@ au BufNewFile,BufRead *.aml setf aml
|
||||
" APT config file
|
||||
au BufNewFile,BufRead apt.conf setf aptconf
|
||||
au BufNewFile,BufRead */.aptitude/config setf aptconf
|
||||
au BufNewFile,BufRead */etc/apt/apt.conf.d/{[-_[:alnum:]]\+,[-_.[:alnum:]]\+.conf} setf aptconf
|
||||
" more generic pattern far down
|
||||
|
||||
" Arch Inventory file
|
||||
au BufNewFile,BufRead .arch-inventory,=tagging-method setf arch
|
||||
@@ -260,7 +260,7 @@ au BufNewFile,BufRead *.lpc,*.ulpc setf lpc
|
||||
au BufNewFile,BufRead calendar setf calendar
|
||||
|
||||
" C#
|
||||
au BufNewFile,BufRead *.cs setf cs
|
||||
au BufNewFile,BufRead *.cs,*.csx setf cs
|
||||
|
||||
" CSDL
|
||||
au BufNewFile,BufRead *.csdl setf csdl
|
||||
@@ -490,6 +490,9 @@ au BufNewFile,BufRead dict.conf,.dictrc setf dictconf
|
||||
" Dictd config
|
||||
au BufNewFile,BufRead dictd*.conf setf dictdconf
|
||||
|
||||
" DEP3 formatted patch files
|
||||
au BufNewFile,BufRead */debian/patches/* call dist#ft#Dep3patch()
|
||||
|
||||
" Diff files
|
||||
au BufNewFile,BufRead *.diff,*.rej setf diff
|
||||
au BufNewFile,BufRead *.patch
|
||||
@@ -617,6 +620,9 @@ autocmd BufRead,BufNewFile *.fnl setf fennel
|
||||
" Fetchmail RC file
|
||||
au BufNewFile,BufRead .fetchmailrc setf fetchmail
|
||||
|
||||
" Fish shell
|
||||
au BufNewFile,BufRead *.fish setf fish
|
||||
|
||||
" FlexWiki - disabled, because it has side effects when a .wiki file
|
||||
" is not actually FlexWiki
|
||||
"au BufNewFile,BufRead *.wiki setf flexwiki
|
||||
@@ -629,7 +635,7 @@ au BufNewFile,BufRead auto.master setf conf
|
||||
au BufNewFile,BufRead *.mas,*.master setf master
|
||||
|
||||
" Forth
|
||||
au BufNewFile,BufRead *.fs,*.ft,*.fth setf forth
|
||||
au BufNewFile,BufRead *.ft,*.fth setf forth
|
||||
|
||||
" Reva Forth
|
||||
au BufNewFile,BufRead *.frt setf reva
|
||||
@@ -646,8 +652,14 @@ au BufNewFile,BufRead *.fsl setf framescript
|
||||
" FStab
|
||||
au BufNewFile,BufRead fstab,mtab setf fstab
|
||||
|
||||
" F# or Forth
|
||||
au BufNewFile,BufRead *.fs call dist#ft#FTfs()
|
||||
|
||||
" F#
|
||||
au BufNewFile,BufRead *.fsi,*.fsx setf fsharp
|
||||
|
||||
" GDB command files
|
||||
au BufNewFile,BufRead .gdbinit setf gdb
|
||||
au BufNewFile,BufRead .gdbinit,gdbinit setf gdb
|
||||
|
||||
" GDMO
|
||||
au BufNewFile,BufRead *.mo,*.gdmo setf gdmo
|
||||
@@ -781,6 +793,10 @@ au BufNewFile,BufRead *.hb setf hb
|
||||
" Httest
|
||||
au BufNewFile,BufRead *.htt,*.htb setf httest
|
||||
|
||||
" i3 (and sway)
|
||||
au BufNewFile,BufRead */i3/config,*/sway/config setf i3config
|
||||
au BufNewFile,BufRead */.i3/config,*/.sway/config setf i3config
|
||||
|
||||
" Icon
|
||||
au BufNewFile,BufRead *.icn setf icon
|
||||
|
||||
@@ -1075,7 +1091,9 @@ au BufNewFile,BufRead *.mmp setf mmp
|
||||
|
||||
" Modsim III (or LambdaProlog)
|
||||
au BufNewFile,BufRead *.mod
|
||||
\ if getline(1) =~ '\<module\>' |
|
||||
\ if expand("<afile>") =~ '\<go.mod$' |
|
||||
\ setf gomod |
|
||||
\ elseif getline(1) =~ '\<module\>' |
|
||||
\ setf lprolog |
|
||||
\ else |
|
||||
\ setf modsim3 |
|
||||
@@ -1114,14 +1132,15 @@ au BufNewFile,BufRead *.msql setf msql
|
||||
" Mysql
|
||||
au BufNewFile,BufRead *.mysql setf mysql
|
||||
|
||||
" Mutt setup files (must be before catch *.rc)
|
||||
au BufNewFile,BufRead */etc/Muttrc.d/* call s:StarSetf('muttrc')
|
||||
|
||||
" Tcl Shell RC file
|
||||
au BufNewFile,BufRead tclsh.rc setf tcl
|
||||
|
||||
" M$ Resource files
|
||||
au BufNewFile,BufRead *.rc,*.rch setf rc
|
||||
" /etc/Muttrc.d/file.rc is muttrc
|
||||
au BufNewFile,BufRead *.rc,*.rch
|
||||
\ if expand("<afile>") !~ "/etc/Muttrc.d/" |
|
||||
\ setf rc |
|
||||
\ endif
|
||||
|
||||
" MuPAD source
|
||||
au BufRead,BufNewFile *.mu setf mupad
|
||||
@@ -1493,6 +1512,9 @@ au BufNewFile,BufRead robots.txt setf robots
|
||||
" Rpcgen
|
||||
au BufNewFile,BufRead *.x setf rpcgen
|
||||
|
||||
" MikroTik RouterOS script
|
||||
au BufRead,BufNewFile *.rsc setf routeros
|
||||
|
||||
" reStructuredText Documentation Format
|
||||
au BufNewFile,BufRead *.rst setf rst
|
||||
|
||||
@@ -1637,6 +1659,9 @@ au BufNewFile,BufRead .tcshrc,*.tcsh,tcsh.tcshrc,tcsh.login call dist#ft#SetFile
|
||||
" (patterns ending in a start further below)
|
||||
au BufNewFile,BufRead .login,.cshrc,csh.cshrc,csh.login,csh.logout,*.csh,.alias call dist#ft#CSH()
|
||||
|
||||
" Zig
|
||||
au BufNewFile,BufRead *.zig setf zig
|
||||
|
||||
" Z-Shell script (patterns ending in a star further below)
|
||||
au BufNewFile,BufRead .zprofile,*/etc/zprofile,.zfbfmarks setf zsh
|
||||
au BufNewFile,BufRead .zshrc,.zshenv,.zlogin,.zlogout,.zcompdump setf zsh
|
||||
@@ -1723,6 +1748,10 @@ au BufNewFile,BufRead *.speedup,*.spdata,*.spd setf spup
|
||||
" Slice
|
||||
au BufNewFile,BufRead *.ice setf slice
|
||||
|
||||
" Microsoft Visual Studio Solution
|
||||
au BufNewFile,BufRead *.sln setf solution
|
||||
au BufNewFile,BufRead *.slnf setf json
|
||||
|
||||
" Spice
|
||||
au BufNewFile,BufRead *.sp,*.spice setf spice
|
||||
|
||||
@@ -1744,6 +1773,9 @@ au BufNewFile,BufRead *.sqlj setf sqlj
|
||||
" SQR
|
||||
au BufNewFile,BufRead *.sqr,*.sqi setf sqr
|
||||
|
||||
" Squirrel
|
||||
au BufNewFile,BufRead *.nut setf squirrel
|
||||
|
||||
" OpenSSH configuration
|
||||
au BufNewFile,BufRead ssh_config,*/.ssh/config setf sshconfig
|
||||
au BufNewFile,BufRead */etc/ssh/ssh_config.d/*.conf setf sshconfig
|
||||
@@ -2053,9 +2085,15 @@ au BufNewFile,BufRead *.xml call dist#ft#FTxml()
|
||||
" XMI (holding UML models) is also XML
|
||||
au BufNewFile,BufRead *.xmi setf xml
|
||||
|
||||
" CSPROJ files are Visual Studio.NET's XML-based project config files
|
||||
" CSPROJ files are Visual Studio.NET's XML-based C# project config files
|
||||
au BufNewFile,BufRead *.csproj,*.csproj.user setf xml
|
||||
|
||||
" FSPROJ files are Visual Studio.NET's XML-based F# project config files
|
||||
au BufNewFile,BufRead *.fsproj,*.fsproj.user setf xml
|
||||
|
||||
" VBPROJ files are Visual Studio.NET's XML-based Visual Basic project config files
|
||||
au BufNewFile,BufRead *.vbproj,*.vbproj.user setf xml
|
||||
|
||||
" Qt Linguist translation source and Qt User Interface Files are XML
|
||||
" However, for .ts Typescript is more common.
|
||||
au BufNewFile,BufRead *.ui setf xml
|
||||
@@ -2141,6 +2179,12 @@ au BufNewFile,BufRead *
|
||||
au StdinReadPost * if !did_filetype() | runtime! scripts.vim | endif
|
||||
|
||||
|
||||
" Plain text files, needs to be far down to not override others. This avoids
|
||||
" the "conf" type being used if there is a line starting with '#'.
|
||||
" But before patterns matching everything in a directory.
|
||||
au BufNewFile,BufRead *.text,README,LICENSE,COPYING,AUTHORS setf text
|
||||
|
||||
|
||||
" Extra checks for when no filetype has been detected now. Mostly used for
|
||||
" patterns that end in "*". E.g., "zsh*" matches "zsh.vim", but that's a Vim
|
||||
" script file.
|
||||
@@ -2155,6 +2199,9 @@ au BufNewFile,BufRead proftpd.conf* call s:StarSetf('apachestyle')
|
||||
au BufNewFile,BufRead access.conf*,apache.conf*,apache2.conf*,httpd.conf*,srm.conf* call s:StarSetf('apache')
|
||||
au BufNewFile,BufRead */etc/apache2/*.conf*,*/etc/apache2/conf.*/*,*/etc/apache2/mods-*/*,*/etc/apache2/sites-*/*,*/etc/httpd/conf.*/*,*/etc/httpd/mods-*/*,*/etc/httpd/sites-*/*,*/etc/httpd/conf.d/*.conf* call s:StarSetf('apache')
|
||||
|
||||
" APT config file
|
||||
au BufNewFile,BufRead */etc/apt/apt.conf.d/{[-_[:alnum:]]\+,[-_.[:alnum:]]\+.conf} call s:StarSetf('aptconf')
|
||||
|
||||
" Asterisk config file
|
||||
au BufNewFile,BufRead *asterisk/*.conf* call s:StarSetf('asterisk')
|
||||
au BufNewFile,BufRead *asterisk*/*voicemail.conf* call s:StarSetf('asteriskvm')
|
||||
@@ -2256,6 +2303,9 @@ au BufNewFile,BufRead */etc/modutils/*
|
||||
\|endif
|
||||
au BufNewFile,BufRead */etc/modprobe.* call s:StarSetf('modconf')
|
||||
|
||||
" Mutt setup files (must be before catch *.rc)
|
||||
au BufNewFile,BufRead */etc/Muttrc.d/* call s:StarSetf('muttrc')
|
||||
|
||||
" Mutt setup file
|
||||
au BufNewFile,BufRead .mutt{ng,}rc*,*/.mutt{ng,}/mutt{ng,}rc* call s:StarSetf('muttrc')
|
||||
au BufNewFile,BufRead mutt{ng,}rc*,Mutt{ng,}rc* call s:StarSetf('muttrc')
|
||||
@@ -2301,6 +2351,9 @@ au BufNewFile,BufRead .bashrc*,.bash[_-]profile*,.bash[_-]logout*,.bash[_-]alias
|
||||
au BufNewFile,BufRead .kshrc* call dist#ft#SetFileTypeSH("ksh")
|
||||
au BufNewFile,BufRead .profile* call dist#ft#SetFileTypeSH(getline(1))
|
||||
|
||||
" Sudoers
|
||||
au BufNewFile,BufRead */etc/sudoers.d/* call s:StarSetf('sudoers')
|
||||
|
||||
" tcsh scripts ending in a star
|
||||
au BufNewFile,BufRead .tcshrc* call dist#ft#SetFileTypeShell("tcsh")
|
||||
|
||||
@@ -2345,10 +2398,6 @@ au BufNewFile,BufRead .zsh*,.zlog*,.zcompdump* call s:StarSetf('zsh')
|
||||
au BufNewFile,BufRead zsh*,zlog* call s:StarSetf('zsh')
|
||||
|
||||
|
||||
" Plain text files, needs to be far down to not override others. This avoids
|
||||
" the "conf" type being used if there is a line starting with '#'.
|
||||
au BufNewFile,BufRead *.text,README setf text
|
||||
|
||||
" Help files match *.txt but should have a last line that is a modeline.
|
||||
au BufNewFile,BufRead *.txt
|
||||
\ if getline('$') !~ 'vim:.*ft=help'
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Aap recipe
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2013 Apr 05
|
||||
" Last Change: 2021 Nov 14
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -11,8 +11,9 @@ endif
|
||||
" Don't load another plugin for this buffer
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
" Reset 'formatoptions', 'comments' and 'expandtab' to undo this plugin.
|
||||
let b:undo_ftplugin = "setl fo< com< et<"
|
||||
" Reset 'formatoptions', 'comments', 'commentstring' and 'expandtab' to undo
|
||||
" this plugin.
|
||||
let b:undo_ftplugin = "setl fo< com< cms< et<"
|
||||
|
||||
" Set 'formatoptions' to break comment lines but not other lines,
|
||||
" and insert the comment leader when hitting <CR> or using "o".
|
||||
@@ -20,6 +21,12 @@ setlocal fo-=t fo+=croql
|
||||
|
||||
" Set 'comments' to format dashed lists in comments.
|
||||
setlocal comments=s:#\ -,m:#\ \ ,e:#,n:#,fb:-
|
||||
setlocal commentstring=#\ %s
|
||||
|
||||
" Expand tabs to spaces to avoid trouble.
|
||||
setlocal expandtab
|
||||
|
||||
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
|
||||
let b:browsefilter = "Aap Recipe Files (*.aap)\t*.aap\nAll Files (*.*)\t*.*\n"
|
||||
let b:undo_ftplugin ..= " | unlet! b:browsefilter"
|
||||
endif
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Clojure
|
||||
" Maintainer: Alex Vear <av@axvr.io>
|
||||
" Maintainer: Alex Vear <alex@vear.uk>
|
||||
" Former Maintainers: Sung Pae <self@sungpae.com>
|
||||
" Meikel Brandmeyer <mb@kotka.de>
|
||||
" URL: https://github.com/clojure-vim/clojure.vim
|
||||
" License: Vim (see :h license)
|
||||
" Last Change: 2021-02-13
|
||||
" Last Change: 2021-10-26
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -17,7 +17,7 @@ set cpo&vim
|
||||
|
||||
let b:undo_ftplugin = 'setlocal iskeyword< define< formatoptions< comments< commentstring< lispwords<'
|
||||
|
||||
setlocal iskeyword+=?,-,*,!,+,/,=,<,>,.,:,$
|
||||
setlocal iskeyword+=?,-,*,!,+,/,=,<,>,.,:,$,%,&,\|
|
||||
|
||||
" There will be false positives, but this is better than missing the whole set
|
||||
" of user-defined def* definitions.
|
||||
@@ -43,7 +43,7 @@ setlocal commentstring=;\ %s
|
||||
" specially and hence are not indented specially.
|
||||
"
|
||||
" -*- LISPWORDS -*-
|
||||
" Generated from https://github.com/clojure-vim/clojure.vim/blob/f8594e7030cdfb0b7990ac92953c77a08a7220f0/clj/src/vim_clojure_static/generate.clj
|
||||
" Generated from https://github.com/clojure-vim/clojure.vim/blob/62b215f079ce0f3834fd295c7a7f6bd8cc54bcc3/clj/src/vim_clojure_static/generate.clj
|
||||
setlocal lispwords=as->,binding,bound-fn,case,catch,cond->,cond->>,condp,def,definline,definterface,defmacro,defmethod,defmulti,defn,defn-,defonce,defprotocol,defrecord,defstruct,deftest,deftest-,deftype,doseq,dotimes,doto,extend,extend-protocol,extend-type,fn,for,if,if-let,if-not,if-some,let,letfn,locking,loop,ns,proxy,reify,set-test,testing,when,when-first,when-let,when-not,when-some,while,with-bindings,with-in-str,with-local-vars,with-open,with-precision,with-redefs,with-redefs-fn,with-test
|
||||
|
||||
" Provide insert mode completions for special forms and clojure.core. As
|
||||
@@ -64,8 +64,8 @@ if exists('loaded_matchit')
|
||||
let b:undo_ftplugin .= ' | unlet! b:match_words b:match_skip'
|
||||
endif
|
||||
|
||||
" Win32 can filter files in the browse dialog
|
||||
if has("gui_win32") && !exists("b:browsefilter")
|
||||
" Filter files in the browse dialog
|
||||
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
|
||||
let b:browsefilter = "Clojure Source Files (*.clj)\t*.clj\n" .
|
||||
\ "ClojureScript Source Files (*.cljs)\t*.cljs\n" .
|
||||
\ "Java Source Files (*.java)\t*.java\n" .
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Diff
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2020 Jul 18
|
||||
" Last Change: 2021 Nov 14
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -9,10 +9,15 @@ if exists("b:did_ftplugin")
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let b:undo_ftplugin = "setl modeline<"
|
||||
let b:undo_ftplugin = "setl modeline< commentstring<"
|
||||
|
||||
" Don't use modelines in a diff, they apply to the diffed file
|
||||
setlocal nomodeline
|
||||
|
||||
" If there are comments they start with #
|
||||
let &commentstring = "# %s"
|
||||
let &l:commentstring = "# %s"
|
||||
|
||||
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
|
||||
let b:browsefilter = "Diff Files (*.diff)\t*.diff\nPatch Files (*.patch)\t*.h\nAll Files (*.*)\t*.*\n"
|
||||
let b:undo_ftplugin ..= " | unlet! b:browsefilter"
|
||||
endif
|
||||
|
||||
13
runtime/ftplugin/i3config.vim
Normal file
13
runtime/ftplugin/i3config.vim
Normal file
@@ -0,0 +1,13 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: i3 config file
|
||||
" Original Author: Mohamed Boughaba <mohamed dot bgb at gmail dot com>
|
||||
" Maintainer: Quentin Hibon
|
||||
" Version: 0.4
|
||||
" Last Change: 2021 Dec 14
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let b:undo_ftplugin = "setlocal cms<"
|
||||
|
||||
setlocal commentstring=#\ %s
|
||||
@@ -1,7 +1,8 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: indent(1) configuration file
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2008-07-09
|
||||
" Language: indent(1) configuration file
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2008-07-09
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
" Acknowledgement: Based off of vim-jsonc maintained by Kevin Locke <kevin@kevinlocke.name>
|
||||
" https://github.com/kevinoid/vim-jsonc
|
||||
" License: MIT
|
||||
" Last Change: 2021-07-01
|
||||
" Last Change: 2021 Nov 22
|
||||
|
||||
runtime! ftplugin/json.vim
|
||||
|
||||
@@ -14,14 +14,8 @@ else
|
||||
let b:did_ftplugin_jsonc = 1
|
||||
endif
|
||||
|
||||
" A list of commands that undo buffer local changes made below.
|
||||
let s:undo_ftplugin = []
|
||||
|
||||
" Set comment (formatting) related options. {{{1
|
||||
setlocal commentstring=//%s comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
|
||||
call add(s:undo_ftplugin, 'commentstring< comments<')
|
||||
|
||||
" Let Vim know how to disable the plug-in.
|
||||
call map(s:undo_ftplugin, "'execute ' . string(v:val)")
|
||||
let b:undo_ftplugin = join(s:undo_ftplugin, ' | ')
|
||||
unlet s:undo_ftplugin
|
||||
let b:undo_ftplugin = 'setlocal commentstring< comments<'
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
" Vim filetype plugin file.
|
||||
" Language: Lua 4.0+
|
||||
" Maintainer: Max Ischenko <mfi@ukr.net>
|
||||
" Last Change: 2012 Mar 07
|
||||
" Language: Lua
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Previous Maintainer: Max Ischenko <mfi@ukr.net>
|
||||
" Last Change: 2021 Nov 15
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -16,27 +17,30 @@ set cpo&vim
|
||||
|
||||
" Set 'formatoptions' to break comment lines but not other lines, and insert
|
||||
" the comment leader when hitting <CR> or using "o".
|
||||
setlocal fo-=t fo+=croql
|
||||
setlocal formatoptions-=t formatoptions+=croql
|
||||
|
||||
setlocal com=:--
|
||||
setlocal cms=--%s
|
||||
setlocal comments=:--
|
||||
setlocal commentstring=--%s
|
||||
setlocal suffixesadd=.lua
|
||||
|
||||
let b:undo_ftplugin = "setlocal fo< com< cms< sua<"
|
||||
|
||||
" The following lines enable the macros/matchit.vim plugin for
|
||||
" extended matching with the % key.
|
||||
if exists("loaded_matchit")
|
||||
|
||||
if exists("loaded_matchit") && !exists("b:match_words")
|
||||
let b:match_ignorecase = 0
|
||||
let b:match_words =
|
||||
\ '\<\%(do\|function\|if\)\>:' .
|
||||
\ '\<\%(return\|else\|elseif\)\>:' .
|
||||
\ '\<end\>,' .
|
||||
\ '\<repeat\>:\<until\>'
|
||||
\ '\<\%(do\|function\|if\)\>:' .
|
||||
\ '\<\%(return\|else\|elseif\)\>:' .
|
||||
\ '\<end\>,' .
|
||||
\ '\<repeat\>:\<until\>,' .
|
||||
\ '\%(--\)\=\[\(=*\)\[:]\1]'
|
||||
let b:undo_ftplugin .= " | unlet! b:match_words b:match_ignorecase"
|
||||
endif
|
||||
|
||||
endif " exists("loaded_matchit")
|
||||
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
|
||||
let b:browsefilter = "Lua Source Files (*.lua)\t*.lua\n" .
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
let b:undo_ftplugin .= " | unlet! b:browsefilter"
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
let b:undo_ftplugin = "setlocal fo< com< cms< suffixesadd<"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Mail
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2012 Nov 20
|
||||
" Last Change: 2021 Oct 23
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -26,6 +26,14 @@ setlocal fo+=tcql
|
||||
" Add n:> to 'comments, in case it was removed elsewhere
|
||||
setlocal comments+=n:>
|
||||
|
||||
" .eml files are universally formatted with DOS line-endings, per RFC5322.
|
||||
" If the file was not DOS the it will be marked as changed, which is probably
|
||||
" a good thing.
|
||||
if expand('%:e') ==? 'eml'
|
||||
let b:undo_ftplugin ..= " fileformat=" .. &fileformat
|
||||
setlocal fileformat=dos
|
||||
endif
|
||||
|
||||
" Add mappings, unless the user doesn't want this.
|
||||
if !exists("no_plugin_maps") && !exists("no_mail_maps")
|
||||
" Quote text by inserting "> "
|
||||
|
||||
@@ -12,9 +12,28 @@ set cpo&vim
|
||||
|
||||
setlocal commentstring=#\ %s
|
||||
setlocal comments=:#
|
||||
setlocal formatoptions+=croql formatoptions-=t
|
||||
|
||||
setlocal shiftwidth=2
|
||||
setlocal softtabstop=2
|
||||
let b:undo_ftplugin = "setl com< cms< fo<"
|
||||
|
||||
if get(g:, "meson_recommended_style", 1)
|
||||
setlocal expandtab
|
||||
setlocal shiftwidth=2
|
||||
setlocal softtabstop=2
|
||||
let b:undo_ftplugin .= " | setl et< sts< sw<"
|
||||
endif
|
||||
|
||||
if exists("loaded_matchit") && !exists("b:match_words")
|
||||
let b:match_words = '\<if\>:\<elif\>:\<else\>:\<endif\>,' .
|
||||
\ '\<foreach\>:\<break\>:\<continue\>:\<endforeach\>'
|
||||
let b:undo_ftplugin .= " | unlet! b:match_words"
|
||||
endif
|
||||
|
||||
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
|
||||
let b:browsefilter = "Meson Build Files (meson.build)\tmeson.build\n" .
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
let b:undo_ftplugin .= " | unlet! b:browsefilter"
|
||||
endif
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
29
runtime/ftplugin/routeros.vim
Normal file
29
runtime/ftplugin/routeros.vim
Normal file
@@ -0,0 +1,29 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: MikroTik RouterOS Script
|
||||
" Maintainer: zainin <z@wintr.dev>
|
||||
" Last Change: 2021 Nov 14
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
set cpo-=C
|
||||
|
||||
setlocal comments=:#
|
||||
setlocal commentstring=#\ %s
|
||||
setlocal formatoptions-=t formatoptions+=croql
|
||||
|
||||
let b:undo_ftplugin = "setlocal com< cms< fo<"
|
||||
|
||||
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
|
||||
let b:browsefilter = "RouterOS Script Files (*.rsc)\t*.rsc\n" ..
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
let b:undo_ftplugin ..= " | unlet! b:browsefilter"
|
||||
endif
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet! s:save_cpo
|
||||
|
||||
" vim: nowrap sw=2 sts=2 ts=8 noet:
|
||||
37
runtime/ftplugin/solution.vim
Normal file
37
runtime/ftplugin/solution.vim
Normal file
@@ -0,0 +1,37 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Microsoft Visual Studio Solution
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2021 Dec 15
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
setlocal comments=:#
|
||||
setlocal commentstring=#\ %s
|
||||
|
||||
let b:undo_ftplugin = "setl com< cms<"
|
||||
|
||||
if exists("loaded_matchit") && !exists("b:match_words")
|
||||
let b:match_words =
|
||||
\ '\<Project\>:\<EndProject\>,' ..
|
||||
\ '\<ProjectSection\>:\<EndProjectSection\>,' ..
|
||||
\ '\<Global\>:\<EndGlobal\>,' ..
|
||||
\ '\<GlobalSection\>:\<EndGlobalSection\>'
|
||||
let b:undo_ftplugin ..= " | unlet! b:match_words"
|
||||
endif
|
||||
|
||||
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
|
||||
let b:browsefilter = "Microsoft Visual Studio Solution Files\t*.sln\n" ..
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
let b:undo_ftplugin ..= " | unlet! b:browsefilter"
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim: nowrap sw=2 sts=2 ts=8 noet:
|
||||
@@ -18,8 +18,8 @@ if !exists("no_plugin_maps") && !exists("no_spec_maps")
|
||||
endif
|
||||
endif
|
||||
|
||||
if !hasmapto("call SpecChangelog(\"\")<CR>")
|
||||
noremap <buffer> <unique> <script> <Plug>SpecChangelog :call SpecChangelog("")<CR>
|
||||
if !hasmapto("call <SID>SpecChangelog(\"\")<CR>")
|
||||
noremap <buffer> <unique> <script> <Plug>SpecChangelog :call <SID>SpecChangelog("")<CR>
|
||||
endif
|
||||
|
||||
if !exists("*s:GetRelVer")
|
||||
|
||||
@@ -1,44 +1,70 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: VisualBasic (ft=vb)
|
||||
" Maintainer: Johannes Zellner <johannes@zellner.org>
|
||||
" Last Change: Thu, 22 Nov 2001 12:56:14 W. Europe Standard Time
|
||||
" Language: Visual Basic (ft=vb)
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Previous Maintainer: Johannes Zellner <johannes@zellner.org>
|
||||
" Last Change: 2021 Nov 17
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal com=sr:'\ -,mb:'\ \ ,el:'\ \ ,:'
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
setlocal comments=sr:'\ -,mb:'\ \ ,el:'\ \ ,:'
|
||||
setlocal commentstring='\ %s
|
||||
setlocal formatoptions-=t formatoptions+=croql
|
||||
|
||||
let b:undo_ftplugin = "setlocal com< cms< fo<"
|
||||
|
||||
" we need this wrapper, as call doesn't allow a count
|
||||
fun! <SID>VbSearch(pattern, flags)
|
||||
function! s:VbSearch(pattern, flags)
|
||||
let cnt = v:count1
|
||||
while cnt > 0
|
||||
call search(a:pattern, a:flags)
|
||||
let cnt = cnt - 1
|
||||
endwhile
|
||||
endfun
|
||||
endfunction
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
if !exists("no_plugin_maps") && !exists("no_vb_maps")
|
||||
nnoremap <buffer> <silent> [[ <Cmd>call <SID>VbSearch('^\s*\%(\%(private\<Bar>public\)\s\+\)\=\%(function\<Bar>sub\)', 'sbW')<CR>
|
||||
vnoremap <buffer> <silent> [[ <Cmd>call <SID>VbSearch('^\s*\%(\%(private\<Bar>public\)\s\+\)\=\%(function\<Bar>sub\)', 'sbW')<CR>
|
||||
nnoremap <buffer> <silent> ]] <Cmd>call <SID>VbSearch('^\s*\%(\%(private\<Bar>public\)\s\+\)\=\%(function\<Bar>sub\)', 'sW')<CR>
|
||||
vnoremap <buffer> <silent> ]] <Cmd>call <SID>VbSearch('^\s*\%(\%(private\<Bar>public\)\s\+\)\=\%(function\<Bar>sub\)', 'sW')<CR>
|
||||
nnoremap <buffer> <silent> [] <Cmd>call <SID>VbSearch('^\s*end\s\+\%(function\<Bar>sub\)', 'sbW')<CR>
|
||||
vnoremap <buffer> <silent> [] <Cmd>call <SID>VbSearch('^\s*end\s\+\%(function\<Bar>sub\)', 'sbW')<CR>
|
||||
nnoremap <buffer> <silent> ][ <Cmd>call <SID>VbSearch('^\s*end\s\+\%(function\<Bar>sub\)', 'sW')<CR>
|
||||
vnoremap <buffer> <silent> ][ <Cmd>call <SID>VbSearch('^\s*end\s\+\%(function\<Bar>sub\)', 'sW')<CR>
|
||||
let b:undo_ftplugin .= " | sil! exe 'nunmap <buffer> [[' | sil! exe 'vunmap <buffer> [['" .
|
||||
\ " | sil! exe 'nunmap <buffer> ]]' | sil! exe 'vunmap <buffer> ]]'" .
|
||||
\ " | sil! exe 'nunmap <buffer> []' | sil! exe 'vunmap <buffer> []'" .
|
||||
\ " | sil! exe 'nunmap <buffer> ][' | sil! exe 'vunmap <buffer> ]['"
|
||||
endif
|
||||
|
||||
" NOTE the double escaping \\|
|
||||
nnoremap <buffer> <silent> [[ :call <SID>VbSearch('^\s*\(\(private\|public\)\s\+\)\=\(function\\|sub\)', 'bW')<cr>
|
||||
nnoremap <buffer> <silent> ]] :call <SID>VbSearch('^\s*\(\(private\|public\)\s\+\)\=\(function\\|sub\)', 'W')<cr>
|
||||
nnoremap <buffer> <silent> [] :call <SID>VbSearch('^\s*\<end\>\s\+\(function\\|sub\)', 'bW')<cr>
|
||||
nnoremap <buffer> <silent> ][ :call <SID>VbSearch('^\s*\<end\>\s\+\(function\\|sub\)', 'W')<cr>
|
||||
" TODO: line start anchors are almost certainly overly restrictive - allow
|
||||
" after statement separators. Even in QuickBasic only block IF statements
|
||||
" were required to be at the start of a line.
|
||||
if exists("loaded_matchit") && !exists("b:match_words")
|
||||
let b:match_ignorecase = 1
|
||||
let b:match_words =
|
||||
\ '\%(^\s*\)\@<=\<if\>.*\<then\>\s*\%($\|''\):\%(^\s*\)\@<=\<else\>:\%(^\s*\)\@<=\<elseif\>:\%(^\s*\)\@<=\<end\>\s\+\<if\>,' .
|
||||
\ '\%(^\s*\)\@<=\<for\>:\%(^\s*\)\@<=\<next\>,' .
|
||||
\ '\%(^\s*\)\@<=\<while\>:\%(^\s*\)\@<=\<wend\>,' .
|
||||
\ '\%(^\s*\)\@<=\<do\>:\%(^\s*\)\@<=\<loop\>\s\+\<while\>,' .
|
||||
\ '\%(^\s*\)\@<=\<select\>\s\+\<case\>:\%(^\s*\)\@<=\<case\>:\%(^\s*\)\@<=\<end\>\s\+\<select\>,' .
|
||||
\ '\%(^\s*\)\@<=\<enum\>:\%(^\s*\)\@<=\<end\>\s\<enum\>,' .
|
||||
\ '\%(^\s*\)\@<=\<with\>:\%(^\s*\)\@<=\<end\>\s\<with\>,' .
|
||||
\ '\%(^\s*\)\@<=\%(\<\%(private\|public\)\>\s\+\)\=\<function\>\s\+\([^ \t(]\+\):\%(^\s*\)\@<=\<\1\>\s*=:\%(^\s*\)\@<=\<end\>\s\+\<function\>,' .
|
||||
\ '\%(^\s*\)\@<=\%(\<\%(private\|public\)\>\s\+\)\=\<sub\>\s\+:\%(^\s*\)\@<=\<end\>\s\+\<sub\>'
|
||||
let b:undo_ftplugin .= " | unlet! b:match_words b:match_ignorecase"
|
||||
endif
|
||||
|
||||
" matchit support
|
||||
if exists("loaded_matchit")
|
||||
let b:match_ignorecase=1
|
||||
let b:match_words=
|
||||
\ '\%(^\s*\)\@<=\<if\>.*\<then\>\s*$:\%(^\s*\)\@<=\<else\>:\%(^\s*\)\@<=\<elseif\>:\%(^\s*\)\@<=\<end\>\s\+\<if\>,' .
|
||||
\ '\%(^\s*\)\@<=\<for\>:\%(^\s*\)\@<=\<next\>,' .
|
||||
\ '\%(^\s*\)\@<=\<while\>:\%(^\s*\)\@<=\<wend\>,' .
|
||||
\ '\%(^\s*\)\@<=\<do\>:\%(^\s*\)\@<=\<loop\>\s\+\<while\>,' .
|
||||
\ '\%(^\s*\)\@<=\<select\>\s\+\<case\>:\%(^\s*\)\@<=\<case\>:\%(^\s*\)\@<=\<end\>\s\+\<select\>,' .
|
||||
\ '\%(^\s*\)\@<=\<enum\>:\%(^\s*\)\@<=\<end\>\s\<enum\>,' .
|
||||
\ '\%(^\s*\)\@<=\<with\>:\%(^\s*\)\@<=\<end\>\s\<with\>,' .
|
||||
\ '\%(^\s*\)\@<=\%(\<\%(private\|public\)\>\s\+\)\=\<function\>\s\+\([^ \t(]\+\):\%(^\s*\)\@<=\<\1\>\s*=:\%(^\s*\)\@<=\<end\>\s\+\<function\>,' .
|
||||
\ '\%(^\s*\)\@<=\%(\<\%(private\|public\)\>\s\+\)\=\<sub\>\s\+:\%(^\s*\)\@<=\<end\>\s\+\<sub\>'
|
||||
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
|
||||
let b:browsefilter = "Visual Basic Source Files (*.bas)\t*.bas\n" .
|
||||
\ "Visual Basic Form Files (*.frm)\t*.frm\n" .
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
let b:undo_ftplugin .= " | unlet! b:browsefilter"
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Zimbu
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2017 Dec 05
|
||||
" Last Change: 2021 Nov 12
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -34,9 +34,11 @@ setlocal errorformat^=%f\ line\ %l\ col\ %c:\ %m,ERROR:\ %m
|
||||
|
||||
" When the matchit plugin is loaded, this makes the % command skip parens and
|
||||
" braces in comments.
|
||||
let b:match_words = '\(^\s*\)\@<=\(MODULE\|CLASS\|INTERFACE\|BITS\|ENUM\|SHARED\|FUNC\|REPLACE\|DEFINE\|PROC\|EQUAL\|MAIN\|IF\|GENERATE_IF\|WHILE\|REPEAT\|WITH\|DO\|FOR\|SWITCH\|TRY\)\>\|{\s*$:\(^\s*\)\@<=\(ELSE\|ELSEIF\|GENERATE_ELSE\|GENERATE_ELSEIF\|CATCH\|FINALLY\)\>:\(^\s*\)\@<=\(}\|\<UNTIL\>\)'
|
||||
|
||||
let b:match_skip = 's:comment\|string\|zimbuchar'
|
||||
if exists("loaded_matchit") && !exists("b:match_words")
|
||||
let b:match_words = '\(^\s*\)\@<=\(MODULE\|CLASS\|INTERFACE\|BITS\|ENUM\|SHARED\|FUNC\|REPLACE\|DEFINE\|PROC\|EQUAL\|MAIN\|IF\|GENERATE_IF\|WHILE\|REPEAT\|WITH\|DO\|FOR\|SWITCH\|TRY\)\>\|{\s*$:\(^\s*\)\@<=\(ELSE\|ELSEIF\|GENERATE_ELSE\|GENERATE_ELSEIF\|CATCH\|FINALLY\)\>:\(^\s*\)\@<=\(}\|\<UNTIL\>\)'
|
||||
let b:match_skip = 's:comment\|string\|zimbuchar'
|
||||
let b:undo_ftplugin ..= " | unlet! b:match_words b:match_skip"
|
||||
endif
|
||||
|
||||
setlocal tw=78
|
||||
setlocal et sts=2 sw=2
|
||||
@@ -135,9 +137,60 @@ iabbr <buffer> <expr> until GCUpperSpace("until")
|
||||
iabbr <buffer> <expr> while GCUpperSpace("while")
|
||||
iabbr <buffer> <expr> repeat GCUpper("repeat")
|
||||
|
||||
let b:undo_ftplugin ..=
|
||||
\ " | iunabbr <buffer> alias" ..
|
||||
\ " | iunabbr <buffer> arg" ..
|
||||
\ " | iunabbr <buffer> break" ..
|
||||
\ " | iunabbr <buffer> case" ..
|
||||
\ " | iunabbr <buffer> catch" ..
|
||||
\ " | iunabbr <buffer> check" ..
|
||||
\ " | iunabbr <buffer> class" ..
|
||||
\ " | iunabbr <buffer> interface" ..
|
||||
\ " | iunabbr <buffer> implements" ..
|
||||
\ " | iunabbr <buffer> shared" ..
|
||||
\ " | iunabbr <buffer> continue" ..
|
||||
\ " | iunabbr <buffer> default" ..
|
||||
\ " | iunabbr <buffer> extends" ..
|
||||
\ " | iunabbr <buffer> do" ..
|
||||
\ " | iunabbr <buffer> else" ..
|
||||
\ " | iunabbr <buffer> elseif" ..
|
||||
\ " | iunabbr <buffer> enum" ..
|
||||
\ " | iunabbr <buffer> exit" ..
|
||||
\ " | iunabbr <buffer> false" ..
|
||||
\ " | iunabbr <buffer> fail" ..
|
||||
\ " | iunabbr <buffer> finally" ..
|
||||
\ " | iunabbr <buffer> for" ..
|
||||
\ " | iunabbr <buffer> func" ..
|
||||
\ " | iunabbr <buffer> if" ..
|
||||
\ " | iunabbr <buffer> import" ..
|
||||
\ " | iunabbr <buffer> in" ..
|
||||
\ " | iunabbr <buffer> io" ..
|
||||
\ " | iunabbr <buffer> main" ..
|
||||
\ " | iunabbr <buffer> module" ..
|
||||
\ " | iunabbr <buffer> new" ..
|
||||
\ " | iunabbr <buffer> nil" ..
|
||||
\ " | iunabbr <buffer> ok" ..
|
||||
\ " | iunabbr <buffer> proc" ..
|
||||
\ " | iunabbr <buffer> proceed" ..
|
||||
\ " | iunabbr <buffer> return" ..
|
||||
\ " | iunabbr <buffer> step" ..
|
||||
\ " | iunabbr <buffer> switch" ..
|
||||
\ " | iunabbr <buffer> sys" ..
|
||||
\ " | iunabbr <buffer> this" ..
|
||||
\ " | iunabbr <buffer> throw" ..
|
||||
\ " | iunabbr <buffer> try" ..
|
||||
\ " | iunabbr <buffer> to" ..
|
||||
\ " | iunabbr <buffer> true" ..
|
||||
\ " | iunabbr <buffer> until" ..
|
||||
\ " | iunabbr <buffer> while" ..
|
||||
\ " | iunabbr <buffer> repeat"
|
||||
|
||||
if !exists("no_plugin_maps") && !exists("no_zimbu_maps")
|
||||
nnoremap <silent> <buffer> [[ m`:call ZimbuGoStartBlock()<CR>
|
||||
nnoremap <silent> <buffer> ]] m`:call ZimbuGoEndBlock()<CR>
|
||||
let b:undo_ftplugin ..=
|
||||
\ " | silent! exe 'nunmap <buffer> [['" ..
|
||||
\ " | silent! exe 'nunmap <buffer> ]]'"
|
||||
endif
|
||||
|
||||
" Using a function makes sure the search pattern is restored
|
||||
|
||||
@@ -18,13 +18,13 @@ setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
|
||||
|
||||
let b:undo_ftplugin = "setl com< cms< fo< "
|
||||
|
||||
if executable('zsh')
|
||||
if executable('zsh') && &shell !~# '/\%(nologin\|false\)$'
|
||||
if !has('gui_running') && executable('less')
|
||||
command! -buffer -nargs=1 RunHelp silent exe '!MANPAGER= zsh -ic "autoload -Uz run-help; run-help <args> 2>/dev/null | LESS= less"' | redraw!
|
||||
command! -buffer -nargs=1 RunHelp silent exe '!MANPAGER= zsh -c "autoload -Uz run-help; run-help <args> 2>/dev/null | LESS= less"' | redraw!
|
||||
elseif has('terminal')
|
||||
command! -buffer -nargs=1 RunHelp silent exe ':term zsh -ic "autoload -Uz run-help; run-help <args>"'
|
||||
command! -buffer -nargs=1 RunHelp silent exe ':term zsh -c "autoload -Uz run-help; run-help <args>"'
|
||||
else
|
||||
command! -buffer -nargs=1 RunHelp echo system('zsh -ic "autoload -Uz run-help; run-help <args> 2>/dev/null"')
|
||||
command! -buffer -nargs=1 RunHelp echo system('zsh -c "autoload -Uz run-help; run-help <args> 2>/dev/null"')
|
||||
endif
|
||||
if !exists('current_compiler')
|
||||
compiler zsh
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
" Vim indent file
|
||||
" Language: Clojure
|
||||
" Maintainer: Alex Vear <av@axvr.io>
|
||||
" Maintainer: Alex Vear <alex@vear.uk>
|
||||
" Former Maintainers: Sung Pae <self@sungpae.com>
|
||||
" Meikel Brandmeyer <mb@kotka.de>
|
||||
" URL: https://github.com/clojure-vim/clojure.vim
|
||||
" License: Vim (see :h license)
|
||||
" Last Change: 2021-02-13
|
||||
" Last Change: 2021-10-26
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
@@ -24,7 +24,7 @@ setlocal indentkeys=!,o,O
|
||||
if exists("*searchpairpos")
|
||||
|
||||
if !exists('g:clojure_maxlines')
|
||||
let g:clojure_maxlines = 100
|
||||
let g:clojure_maxlines = 300
|
||||
endif
|
||||
|
||||
if !exists('g:clojure_fuzzy_indent')
|
||||
@@ -71,14 +71,10 @@ if exists("*searchpairpos")
|
||||
return s:current_char() =~# '\v[\(\)\[\]\{\}]' && !s:ignored_region()
|
||||
endfunction
|
||||
|
||||
" Returns 1 if string matches a pattern in 'patterns', which may be a
|
||||
" list of patterns, or a comma-delimited string of implicitly anchored
|
||||
" patterns.
|
||||
" Returns 1 if string matches a pattern in 'patterns', which should be
|
||||
" a list of patterns.
|
||||
function! s:match_one(patterns, string)
|
||||
let list = type(a:patterns) == type([])
|
||||
\ ? a:patterns
|
||||
\ : map(split(a:patterns, ','), '"^" . v:val . "$"')
|
||||
for pat in list
|
||||
for pat in a:patterns
|
||||
if a:string =~# pat | return 1 | endif
|
||||
endfor
|
||||
endfunction
|
||||
@@ -215,9 +211,10 @@ if exists("*searchpairpos")
|
||||
endfunction
|
||||
|
||||
" Check if form is a reader conditional, that is, it is prefixed by #?
|
||||
" or @#?
|
||||
" or #?@
|
||||
function! s:is_reader_conditional_special_case(position)
|
||||
return getline(a:position[0])[a:position[1] - 3 : a:position[1] - 2] == "#?"
|
||||
\|| getline(a:position[0])[a:position[1] - 4 : a:position[1] - 2] == "#?@"
|
||||
endfunction
|
||||
|
||||
" Returns 1 for opening brackets, -1 for _anything else_.
|
||||
|
||||
@@ -20,6 +20,8 @@ setlocal autoindent " indentexpr isn't much help otherwise
|
||||
setlocal indentexpr=GetMesonIndent(v:lnum)
|
||||
setlocal indentkeys+==elif,=else,=endforeach,=endif,0)
|
||||
|
||||
let b:undo_indent = "setl ai< inde< indk< lisp<"
|
||||
|
||||
" Only define the function once.
|
||||
if exists("*GetMesonIndent")
|
||||
finish
|
||||
|
||||
@@ -109,7 +109,7 @@ function! GetShIndent()
|
||||
let ind += s:indent_value('continuation-line')
|
||||
endif
|
||||
elseif s:end_block(line) && !s:start_block(line)
|
||||
let ind -= s:indent_value('default')
|
||||
let ind = indent(lnum)
|
||||
elseif pnum != 0 &&
|
||||
\ s:is_continuation_line(pline) &&
|
||||
\ !s:end_block(curline) &&
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim indent file
|
||||
" Language: Vim script
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2021 Apr 18
|
||||
" Last Change: 2021 Nov 27
|
||||
|
||||
" Only load this indent file when no other was loaded.
|
||||
if exists("b:did_indent")
|
||||
@@ -12,6 +12,7 @@ let b:did_indent = 1
|
||||
setlocal indentexpr=GetVimIndent()
|
||||
setlocal indentkeys+==end,=},=else,=cat,=finall,=END,0\\,0=\"\\\
|
||||
setlocal indentkeys-=0#
|
||||
setlocal indentkeys-=:
|
||||
|
||||
let b:undo_indent = "setl indentkeys< indentexpr<"
|
||||
|
||||
@@ -107,7 +108,7 @@ function GetVimIndentIntern()
|
||||
if i >= 0
|
||||
let ind += shiftwidth()
|
||||
if strpart(prev_text, i, 1) == '|' && has('syntax_items')
|
||||
\ && synIDattr(synID(lnum, i, 1), "name") =~ '\(Comment\|String\)$'
|
||||
\ && synIDattr(synID(lnum, i, 1), "name") =~ '\(Comment\|String\|PatSep\)$'
|
||||
let ind -= shiftwidth()
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -39,6 +39,8 @@ setlocal indentkeys=o,O,*<Return>,<>>,<<>,/,{,},!^F
|
||||
" autoindent: used when the indentexpr returns -1
|
||||
setlocal autoindent
|
||||
|
||||
let b:undo_indent = "setl ai< inde< indk<"
|
||||
|
||||
if !exists('b:xml_indent_open')
|
||||
let b:xml_indent_open = '.\{-}<[:A-Z_a-z]'
|
||||
" pre tag, e.g. <address>
|
||||
@@ -51,6 +53,10 @@ if !exists('b:xml_indent_close')
|
||||
" let b:xml_indent_close = '.\{-}</\(address\)\@!'
|
||||
endif
|
||||
|
||||
if !exists('b:xml_indent_continuation_filetype')
|
||||
let b:xml_indent_continuation_filetype = 'xml'
|
||||
endif
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
@@ -162,7 +168,7 @@ endfun
|
||||
|
||||
func! <SID>IsXMLContinuation(line)
|
||||
" Checks, whether or not the line matches a start-of-tag
|
||||
return a:line !~ '^\s*<' && &ft is# 'xml'
|
||||
return a:line !~ '^\s*<' && &ft =~# b:xml_indent_continuation_filetype
|
||||
endfunc
|
||||
|
||||
func! <SID>HasNoTagEnd(line)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" You can also use this as a start for your own set of menus.
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2020 Sep 28
|
||||
" Last Change: 2021 Dec 22
|
||||
|
||||
" Note that ":an" (short for ":anoremenu") is often used to make a menu work
|
||||
" in all modes and avoid side effects from mappings defined by the user.
|
||||
@@ -717,6 +717,11 @@ func s:BMCanAdd(name, num)
|
||||
return 0
|
||||
endif
|
||||
|
||||
" no name with control characters
|
||||
if a:name =~ '[\x01-\x1f]'
|
||||
return 0
|
||||
endif
|
||||
|
||||
" no special buffer, such as terminal or popup
|
||||
let buftype = getbufvar(a:num, '&buftype')
|
||||
if buftype != '' && buftype != 'nofile' && buftype != 'nowrite'
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" These commands create the option window.
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2021 Oct 17
|
||||
" Last Change: 2021 Dec 21
|
||||
|
||||
" If there already is an option window, jump to that one.
|
||||
let buf = bufnr('option-window')
|
||||
@@ -260,6 +260,8 @@ call <SID>OptionG("sect", §)
|
||||
call <SID>AddOption("path", gettext("list of directory names used for file searching"))
|
||||
call append("$", "\t" .. s:global_or_local)
|
||||
call <SID>OptionG("pa", &pa)
|
||||
call <SID>AddOption("cdhome", gettext(":cd without argument goes to the home directory"))
|
||||
call <SID>BinOptionG("cdh", &cdh)
|
||||
call <SID>AddOption("cdpath", gettext("list of directory names used for :cd"))
|
||||
call <SID>OptionG("cd", &cd)
|
||||
if exists("+autochdir")
|
||||
@@ -560,14 +562,22 @@ endif
|
||||
call <SID>Header(gettext("terminal"))
|
||||
call <SID>AddOption("term", gettext("name of the used terminal"))
|
||||
call <SID>OptionG("term", &term)
|
||||
|
||||
call <SID>AddOption("ttytype", gettext("alias for 'term'"))
|
||||
call <SID>OptionG("tty", &tty)
|
||||
|
||||
call <SID>AddOption("ttybuiltin", gettext("check built-in termcaps first"))
|
||||
call <SID>BinOptionG("tbi", &tbi)
|
||||
|
||||
call <SID>AddOption("ttyfast", gettext("terminal connection is fast"))
|
||||
call <SID>BinOptionG("tf", &tf)
|
||||
|
||||
call <SID>AddOption("xtermcodes", gettext("request terminal key codes when an xterm is detected"))
|
||||
call <SID>BinOptionG("xtermcodes", &xtermcodes)
|
||||
|
||||
call <SID>AddOption("weirdinvert", gettext("terminal that requires extra redrawing"))
|
||||
call <SID>BinOptionG("wiv", &wiv)
|
||||
|
||||
call <SID>AddOption("esckeys", gettext("recognize keys that start with <Esc> in Insert mode"))
|
||||
call <SID>BinOptionG("ek", &ek)
|
||||
call <SID>AddOption("scrolljump", gettext("minimal number of lines to scroll at a time"))
|
||||
@@ -652,7 +662,7 @@ if has("gui")
|
||||
endif
|
||||
call <SID>AddOption("guiheadroom", gettext("room (in pixels) left above/below the window"))
|
||||
call append("$", " \tset ghr=" . &ghr)
|
||||
call <SID>AddOption("guiligatures", gettext("list of ASCII characters that can be combined into complesshapes"))
|
||||
call <SID>AddOption("guiligatures", gettext("list of ASCII characters that can be combined into complex shapes"))
|
||||
call <SID>OptionG("gli", &gli)
|
||||
endif
|
||||
if has("directx")
|
||||
|
||||
251
runtime/pack/dist/opt/matchit/autoload/matchit.vim
vendored
251
runtime/pack/dist/opt/matchit/autoload/matchit.vim
vendored
@@ -1,6 +1,11 @@
|
||||
" matchit.vim: (global plugin) Extended "%" matching
|
||||
" autload script of matchit plugin, see ../plugin/matchit.vim
|
||||
" Last Change: Mar 01, 2020
|
||||
" Last Change: Jun 10, 2021
|
||||
|
||||
" Neovim does not support scriptversion
|
||||
if has("vimscript-4")
|
||||
scriptversion 4
|
||||
endif
|
||||
|
||||
let s:last_mps = ""
|
||||
let s:last_words = ":"
|
||||
@@ -30,11 +35,11 @@ function s:RestoreOptions()
|
||||
" In s:CleanUp(), :execute "set" restore_options .
|
||||
let restore_options = ""
|
||||
if get(b:, 'match_ignorecase', &ic) != &ic
|
||||
let restore_options .= (&ic ? " " : " no") . "ignorecase"
|
||||
let restore_options ..= (&ic ? " " : " no") .. "ignorecase"
|
||||
let &ignorecase = b:match_ignorecase
|
||||
endif
|
||||
if &ve != ''
|
||||
let restore_options = " ve=" . &ve . restore_options
|
||||
let restore_options = " ve=" .. &ve .. restore_options
|
||||
set ve=
|
||||
endif
|
||||
return restore_options
|
||||
@@ -42,22 +47,23 @@ endfunction
|
||||
|
||||
function matchit#Match_wrapper(word, forward, mode) range
|
||||
let restore_options = s:RestoreOptions()
|
||||
" If this function was called from Visual mode, make sure that the cursor
|
||||
" is at the correct end of the Visual range:
|
||||
if a:mode == "v"
|
||||
execute "normal! gv\<Esc>"
|
||||
elseif a:mode == "o" && mode(1) !~# '[vV]'
|
||||
exe "norm! v"
|
||||
elseif a:mode == "n" && mode(1) =~# 'ni'
|
||||
exe "norm! v"
|
||||
endif
|
||||
" In s:CleanUp(), we may need to check whether the cursor moved forward.
|
||||
let startpos = [line("."), col(".")]
|
||||
" Use default behavior if called with a count.
|
||||
" if a count has been applied, use the default [count]% mode (see :h N%)
|
||||
if v:count
|
||||
exe "normal! " . v:count . "%"
|
||||
exe "normal! " .. v:count .. "%"
|
||||
return s:CleanUp(restore_options, a:mode, startpos)
|
||||
end
|
||||
if a:mode =~# "v" && mode(1) =~# 'ni'
|
||||
exe "norm! gv"
|
||||
elseif a:mode == "o" && mode(1) !~# '[vV]'
|
||||
exe "norm! v"
|
||||
" If this function was called from Visual mode, make sure that the cursor
|
||||
" is at the correct end of the Visual range:
|
||||
elseif a:mode == "v"
|
||||
execute "normal! gv\<Esc>"
|
||||
let startpos = [line("."), col(".")]
|
||||
endif
|
||||
|
||||
" First step: if not already done, set the script variables
|
||||
" s:do_BR flag for whether there are backrefs
|
||||
@@ -78,30 +84,30 @@ function matchit#Match_wrapper(word, forward, mode) range
|
||||
" quote the special chars in 'matchpairs', replace [,:] with \| and then
|
||||
" append the builtin pairs (/*, */, #if, #ifdef, #ifndef, #else, #elif,
|
||||
" #endif)
|
||||
let default = escape(&mps, '[$^.*~\\/?]') . (strlen(&mps) ? "," : "") .
|
||||
let default = escape(&mps, '[$^.*~\\/?]') .. (strlen(&mps) ? "," : "") ..
|
||||
\ '\/\*:\*\/,#\s*if\%(n\=def\)\=:#\s*else\>:#\s*elif\>:#\s*endif\>'
|
||||
" s:all = pattern with all the keywords
|
||||
let match_words = match_words . (strlen(match_words) ? "," : "") . default
|
||||
let match_words = match_words .. (strlen(match_words) ? "," : "") .. default
|
||||
let s:last_words = match_words
|
||||
if match_words !~ s:notslash . '\\\d'
|
||||
if match_words !~ s:notslash .. '\\\d'
|
||||
let s:do_BR = 0
|
||||
let s:pat = match_words
|
||||
else
|
||||
let s:do_BR = 1
|
||||
let s:pat = s:ParseWords(match_words)
|
||||
endif
|
||||
let s:all = substitute(s:pat, s:notslash . '\zs[,:]\+', '\\|', 'g')
|
||||
let s:all = substitute(s:pat, s:notslash .. '\zs[,:]\+', '\\|', 'g')
|
||||
" Just in case there are too many '\(...)' groups inside the pattern, make
|
||||
" sure to use \%(...) groups, so that error E872 can be avoided
|
||||
let s:all = substitute(s:all, '\\(', '\\%(', 'g')
|
||||
let s:all = '\%(' . s:all . '\)'
|
||||
let s:all = '\%(' .. s:all .. '\)'
|
||||
if exists("b:match_debug")
|
||||
let b:match_pat = s:pat
|
||||
endif
|
||||
" Reconstruct the version with unresolved backrefs.
|
||||
let s:patBR = substitute(match_words.',',
|
||||
\ s:notslash.'\zs[,:]*,[,:]*', ',', 'g')
|
||||
let s:patBR = substitute(s:patBR, s:notslash.'\zs:\{2,}', ':', 'g')
|
||||
let s:patBR = substitute(match_words .. ',',
|
||||
\ s:notslash .. '\zs[,:]*,[,:]*', ',', 'g')
|
||||
let s:patBR = substitute(s:patBR, s:notslash .. '\zs:\{2,}', ':', 'g')
|
||||
endif
|
||||
|
||||
" Second step: set the following local variables:
|
||||
@@ -128,12 +134,15 @@ function matchit#Match_wrapper(word, forward, mode) range
|
||||
let curcol = match(matchline, regexp)
|
||||
" If there is no match, give up.
|
||||
if curcol == -1
|
||||
" Make sure macros abort properly
|
||||
"exe "norm! \<esc>"
|
||||
call feedkeys("\e", 'tni')
|
||||
return s:CleanUp(restore_options, a:mode, startpos)
|
||||
endif
|
||||
let endcol = matchend(matchline, regexp)
|
||||
let suf = strlen(matchline) - endcol
|
||||
let prefix = (curcol ? '^.*\%' . (curcol + 1) . 'c\%(' : '^\%(')
|
||||
let suffix = (suf ? '\)\%' . (endcol + 1) . 'c.*$' : '\)$')
|
||||
let prefix = (curcol ? '^.*\%' .. (curcol + 1) .. 'c\%(' : '^\%(')
|
||||
let suffix = (suf ? '\)\%' .. (endcol + 1) .. 'c.*$' : '\)$')
|
||||
endif
|
||||
if exists("b:match_debug")
|
||||
let b:match_match = matchstr(matchline, regexp)
|
||||
@@ -150,7 +159,7 @@ function matchit#Match_wrapper(word, forward, mode) range
|
||||
" 'while:endwhile' or whatever. A bit of a kluge: s:Choose() returns
|
||||
" group . "," . groupBR, and we pick it apart.
|
||||
let group = s:Choose(s:pat, matchline, ",", ":", prefix, suffix, s:patBR)
|
||||
let i = matchend(group, s:notslash . ",")
|
||||
let i = matchend(group, s:notslash .. ",")
|
||||
let groupBR = strpart(group, i)
|
||||
let group = strpart(group, 0, i-1)
|
||||
" Now, matchline =~ prefix . substitute(group,':','\|','g') . suffix
|
||||
@@ -159,32 +168,32 @@ function matchit#Match_wrapper(word, forward, mode) range
|
||||
endif
|
||||
if exists("b:match_debug")
|
||||
let b:match_wholeBR = groupBR
|
||||
let i = matchend(groupBR, s:notslash . ":")
|
||||
let i = matchend(groupBR, s:notslash .. ":")
|
||||
let b:match_iniBR = strpart(groupBR, 0, i-1)
|
||||
endif
|
||||
|
||||
" Fourth step: Set the arguments for searchpair().
|
||||
let i = matchend(group, s:notslash . ":")
|
||||
let j = matchend(group, '.*' . s:notslash . ":")
|
||||
let i = matchend(group, s:notslash .. ":")
|
||||
let j = matchend(group, '.*' .. s:notslash .. ":")
|
||||
let ini = strpart(group, 0, i-1)
|
||||
let mid = substitute(strpart(group, i,j-i-1), s:notslash.'\zs:', '\\|', 'g')
|
||||
let mid = substitute(strpart(group, i,j-i-1), s:notslash .. '\zs:', '\\|', 'g')
|
||||
let fin = strpart(group, j)
|
||||
"Un-escape the remaining , and : characters.
|
||||
let ini = substitute(ini, s:notslash . '\zs\\\(:\|,\)', '\1', 'g')
|
||||
let mid = substitute(mid, s:notslash . '\zs\\\(:\|,\)', '\1', 'g')
|
||||
let fin = substitute(fin, s:notslash . '\zs\\\(:\|,\)', '\1', 'g')
|
||||
let ini = substitute(ini, s:notslash .. '\zs\\\(:\|,\)', '\1', 'g')
|
||||
let mid = substitute(mid, s:notslash .. '\zs\\\(:\|,\)', '\1', 'g')
|
||||
let fin = substitute(fin, s:notslash .. '\zs\\\(:\|,\)', '\1', 'g')
|
||||
" searchpair() requires that these patterns avoid \(\) groups.
|
||||
let ini = substitute(ini, s:notslash . '\zs\\(', '\\%(', 'g')
|
||||
let mid = substitute(mid, s:notslash . '\zs\\(', '\\%(', 'g')
|
||||
let fin = substitute(fin, s:notslash . '\zs\\(', '\\%(', 'g')
|
||||
let ini = substitute(ini, s:notslash .. '\zs\\(', '\\%(', 'g')
|
||||
let mid = substitute(mid, s:notslash .. '\zs\\(', '\\%(', 'g')
|
||||
let fin = substitute(fin, s:notslash .. '\zs\\(', '\\%(', 'g')
|
||||
" Set mid. This is optimized for readability, not micro-efficiency!
|
||||
if a:forward && matchline =~ prefix . fin . suffix
|
||||
\ || !a:forward && matchline =~ prefix . ini . suffix
|
||||
if a:forward && matchline =~ prefix .. fin .. suffix
|
||||
\ || !a:forward && matchline =~ prefix .. ini .. suffix
|
||||
let mid = ""
|
||||
endif
|
||||
" Set flag. This is optimized for readability, not micro-efficiency!
|
||||
if a:forward && matchline =~ prefix . fin . suffix
|
||||
\ || !a:forward && matchline !~ prefix . ini . suffix
|
||||
if a:forward && matchline =~ prefix .. fin .. suffix
|
||||
\ || !a:forward && matchline !~ prefix .. ini .. suffix
|
||||
let flag = "bW"
|
||||
else
|
||||
let flag = "W"
|
||||
@@ -193,14 +202,14 @@ function matchit#Match_wrapper(word, forward, mode) range
|
||||
if exists("b:match_skip")
|
||||
let skip = b:match_skip
|
||||
elseif exists("b:match_comment") " backwards compatibility and testing!
|
||||
let skip = "r:" . b:match_comment
|
||||
let skip = "r:" .. b:match_comment
|
||||
else
|
||||
let skip = 's:comment\|string'
|
||||
endif
|
||||
let skip = s:ParseSkip(skip)
|
||||
if exists("b:match_debug")
|
||||
let b:match_ini = ini
|
||||
let b:match_tail = (strlen(mid) ? mid.'\|' : '') . fin
|
||||
let b:match_tail = (strlen(mid) ? mid .. '\|' : '') .. fin
|
||||
endif
|
||||
|
||||
" Fifth step: actually start moving the cursor and call searchpair().
|
||||
@@ -210,25 +219,29 @@ function matchit#Match_wrapper(word, forward, mode) range
|
||||
if skip =~ 'synID' && !(has("syntax") && exists("g:syntax_on"))
|
||||
let skip = "0"
|
||||
else
|
||||
execute "if " . skip . "| let skip = '0' | endif"
|
||||
execute "if " .. skip .. "| let skip = '0' | endif"
|
||||
endif
|
||||
let sp_return = searchpair(ini, mid, fin, flag, skip)
|
||||
if &selection isnot# 'inclusive' && a:mode == 'v'
|
||||
" move cursor one pos to the right, because selection is not inclusive
|
||||
" add virtualedit=onemore, to make it work even when the match ends the " line
|
||||
" add virtualedit=onemore, to make it work even when the match ends the
|
||||
" line
|
||||
if !(col('.') < col('$')-1)
|
||||
set ve=onemore
|
||||
let eolmark=1 " flag to set a mark on eol (since we cannot move there)
|
||||
endif
|
||||
norm! l
|
||||
endif
|
||||
let final_position = "call cursor(" . line(".") . "," . col(".") . ")"
|
||||
let final_position = "call cursor(" .. line(".") .. "," .. col(".") .. ")"
|
||||
" Restore cursor position and original screen.
|
||||
call winrestview(view)
|
||||
normal! m'
|
||||
if sp_return > 0
|
||||
execute final_position
|
||||
endif
|
||||
return s:CleanUp(restore_options, a:mode, startpos, mid.'\|'.fin)
|
||||
if exists('eolmark') && eolmark
|
||||
call setpos("''", [0, line('.'), col('$'), 0]) " set mark on the eol
|
||||
endif
|
||||
return s:CleanUp(restore_options, a:mode, startpos, mid .. '\|' .. fin)
|
||||
endfun
|
||||
|
||||
" Restore options and do some special handling for Operator-pending mode.
|
||||
@@ -270,16 +283,16 @@ endfun
|
||||
" a:matchline = "123<tag>12" or "123</tag>12"
|
||||
" then extract "tag" from a:matchline and return "<tag>:</tag>" .
|
||||
fun! s:InsertRefs(groupBR, prefix, group, suffix, matchline)
|
||||
if a:matchline !~ a:prefix .
|
||||
\ substitute(a:group, s:notslash . '\zs:', '\\|', 'g') . a:suffix
|
||||
if a:matchline !~ a:prefix ..
|
||||
\ substitute(a:group, s:notslash .. '\zs:', '\\|', 'g') .. a:suffix
|
||||
return a:group
|
||||
endif
|
||||
let i = matchend(a:groupBR, s:notslash . ':')
|
||||
let i = matchend(a:groupBR, s:notslash .. ':')
|
||||
let ini = strpart(a:groupBR, 0, i-1)
|
||||
let tailBR = strpart(a:groupBR, i)
|
||||
let word = s:Choose(a:group, a:matchline, ":", "", a:prefix, a:suffix,
|
||||
\ a:groupBR)
|
||||
let i = matchend(word, s:notslash . ":")
|
||||
let i = matchend(word, s:notslash .. ":")
|
||||
let wordBR = strpart(word, i)
|
||||
let word = strpart(word, 0, i-1)
|
||||
" Now, a:matchline =~ a:prefix . word . a:suffix
|
||||
@@ -289,10 +302,10 @@ fun! s:InsertRefs(groupBR, prefix, group, suffix, matchline)
|
||||
let table = ""
|
||||
let d = 0
|
||||
while d < 10
|
||||
if tailBR =~ s:notslash . '\\' . d
|
||||
let table = table . d
|
||||
if tailBR =~ s:notslash .. '\\' .. d
|
||||
let table = table .. d
|
||||
else
|
||||
let table = table . "-"
|
||||
let table = table .. "-"
|
||||
endif
|
||||
let d = d + 1
|
||||
endwhile
|
||||
@@ -300,13 +313,13 @@ fun! s:InsertRefs(groupBR, prefix, group, suffix, matchline)
|
||||
let d = 9
|
||||
while d
|
||||
if table[d] != "-"
|
||||
let backref = substitute(a:matchline, a:prefix.word.a:suffix,
|
||||
\ '\'.table[d], "")
|
||||
let backref = substitute(a:matchline, a:prefix .. word .. a:suffix,
|
||||
\ '\' .. table[d], "")
|
||||
" Are there any other characters that should be escaped?
|
||||
let backref = escape(backref, '*,:')
|
||||
execute s:Ref(ini, d, "start", "len")
|
||||
let ini = strpart(ini, 0, start) . backref . strpart(ini, start+len)
|
||||
let tailBR = substitute(tailBR, s:notslash . '\zs\\' . d,
|
||||
let ini = strpart(ini, 0, start) .. backref .. strpart(ini, start+len)
|
||||
let tailBR = substitute(tailBR, s:notslash .. '\zs\\' .. d,
|
||||
\ escape(backref, '\\&'), 'g')
|
||||
endif
|
||||
let d = d-1
|
||||
@@ -320,7 +333,7 @@ fun! s:InsertRefs(groupBR, prefix, group, suffix, matchline)
|
||||
let b:match_word = ""
|
||||
endif
|
||||
endif
|
||||
return ini . ":" . tailBR
|
||||
return ini .. ":" .. tailBR
|
||||
endfun
|
||||
|
||||
" Input a comma-separated list of groups with backrefs, such as
|
||||
@@ -328,25 +341,25 @@ endfun
|
||||
" and return a comma-separated list of groups with backrefs replaced:
|
||||
" return '\(foo\):end\(foo\),\(bar\):end\(bar\)'
|
||||
fun! s:ParseWords(groups)
|
||||
let groups = substitute(a:groups.",", s:notslash.'\zs[,:]*,[,:]*', ',', 'g')
|
||||
let groups = substitute(groups, s:notslash . '\zs:\{2,}', ':', 'g')
|
||||
let groups = substitute(a:groups .. ",", s:notslash .. '\zs[,:]*,[,:]*', ',', 'g')
|
||||
let groups = substitute(groups, s:notslash .. '\zs:\{2,}', ':', 'g')
|
||||
let parsed = ""
|
||||
while groups =~ '[^,:]'
|
||||
let i = matchend(groups, s:notslash . ':')
|
||||
let j = matchend(groups, s:notslash . ',')
|
||||
let i = matchend(groups, s:notslash .. ':')
|
||||
let j = matchend(groups, s:notslash .. ',')
|
||||
let ini = strpart(groups, 0, i-1)
|
||||
let tail = strpart(groups, i, j-i-1) . ":"
|
||||
let tail = strpart(groups, i, j-i-1) .. ":"
|
||||
let groups = strpart(groups, j)
|
||||
let parsed = parsed . ini
|
||||
let i = matchend(tail, s:notslash . ':')
|
||||
let parsed = parsed .. ini
|
||||
let i = matchend(tail, s:notslash .. ':')
|
||||
while i != -1
|
||||
" In 'if:else:endif', ini='if' and word='else' and then word='endif'.
|
||||
let word = strpart(tail, 0, i-1)
|
||||
let tail = strpart(tail, i)
|
||||
let i = matchend(tail, s:notslash . ':')
|
||||
let parsed = parsed . ":" . s:Resolve(ini, word, "word")
|
||||
let i = matchend(tail, s:notslash .. ':')
|
||||
let parsed = parsed .. ":" .. s:Resolve(ini, word, "word")
|
||||
endwhile " Now, tail has been used up.
|
||||
let parsed = parsed . ","
|
||||
let parsed = parsed .. ","
|
||||
endwhile " groups =~ '[^,:]'
|
||||
let parsed = substitute(parsed, ',$', '', '')
|
||||
return parsed
|
||||
@@ -364,14 +377,14 @@ endfun
|
||||
" let j = matchend(getline("."), regexp)
|
||||
" let match = matchstr(getline("."), regexp)
|
||||
fun! s:Wholematch(string, pat, start)
|
||||
let group = '\%(' . a:pat . '\)'
|
||||
let prefix = (a:start ? '\(^.*\%<' . (a:start + 2) . 'c\)\zs' : '^')
|
||||
let group = '\%(' .. a:pat .. '\)'
|
||||
let prefix = (a:start ? '\(^.*\%<' .. (a:start + 2) .. 'c\)\zs' : '^')
|
||||
let len = strlen(a:string)
|
||||
let suffix = (a:start+1 < len ? '\(\%>'.(a:start+1).'c.*$\)\@=' : '$')
|
||||
if a:string !~ prefix . group . suffix
|
||||
let suffix = (a:start+1 < len ? '\(\%>' .. (a:start+1) .. 'c.*$\)\@=' : '$')
|
||||
if a:string !~ prefix .. group .. suffix
|
||||
let prefix = ''
|
||||
endif
|
||||
return prefix . group . suffix
|
||||
return prefix .. group .. suffix
|
||||
endfun
|
||||
|
||||
" No extra arguments: s:Ref(string, d) will
|
||||
@@ -392,7 +405,7 @@ fun! s:Ref(string, d, ...)
|
||||
let match = a:string
|
||||
while cnt
|
||||
let cnt = cnt - 1
|
||||
let index = matchend(match, s:notslash . '\\(')
|
||||
let index = matchend(match, s:notslash .. '\\(')
|
||||
if index == -1
|
||||
return ""
|
||||
endif
|
||||
@@ -404,7 +417,7 @@ fun! s:Ref(string, d, ...)
|
||||
endif
|
||||
let cnt = 1
|
||||
while cnt
|
||||
let index = matchend(match, s:notslash . '\\(\|\\)') - 1
|
||||
let index = matchend(match, s:notslash .. '\\(\|\\)') - 1
|
||||
if index == -2
|
||||
return ""
|
||||
endif
|
||||
@@ -418,7 +431,7 @@ fun! s:Ref(string, d, ...)
|
||||
if a:0 == 1
|
||||
return len
|
||||
elseif a:0 == 2
|
||||
return "let " . a:1 . "=" . start . "| let " . a:2 . "=" . len
|
||||
return "let " .. a:1 .. "=" .. start .. "| let " .. a:2 .. "=" .. len
|
||||
else
|
||||
return strpart(a:string, start, len)
|
||||
endif
|
||||
@@ -431,9 +444,9 @@ endfun
|
||||
fun! s:Count(string, pattern, ...)
|
||||
let pat = escape(a:pattern, '\\')
|
||||
if a:0 > 1
|
||||
let foo = substitute(a:string, '[^'.a:pattern.']', "a:1", "g")
|
||||
let foo = substitute(a:string, '[^' .. a:pattern .. ']', "a:1", "g")
|
||||
let foo = substitute(a:string, pat, a:2, "g")
|
||||
let foo = substitute(foo, '[^' . a:2 . ']', "", "g")
|
||||
let foo = substitute(foo, '[^' .. a:2 .. ']', "", "g")
|
||||
return strlen(foo)
|
||||
endif
|
||||
let result = 0
|
||||
@@ -456,7 +469,7 @@ endfun
|
||||
" unless it is preceded by "\".
|
||||
fun! s:Resolve(source, target, output)
|
||||
let word = a:target
|
||||
let i = matchend(word, s:notslash . '\\\d') - 1
|
||||
let i = matchend(word, s:notslash .. '\\\d') - 1
|
||||
let table = "----------"
|
||||
while i != -2 " There are back references to be replaced.
|
||||
let d = word[i]
|
||||
@@ -477,28 +490,28 @@ fun! s:Resolve(source, target, output)
|
||||
if table[s] == "-"
|
||||
if w + b < 10
|
||||
" let table[s] = w + b
|
||||
let table = strpart(table, 0, s) . (w+b) . strpart(table, s+1)
|
||||
let table = strpart(table, 0, s) .. (w+b) .. strpart(table, s+1)
|
||||
endif
|
||||
let b = b + 1
|
||||
let s = s + 1
|
||||
else
|
||||
execute s:Ref(backref, b, "start", "len")
|
||||
let ref = strpart(backref, start, len)
|
||||
let backref = strpart(backref, 0, start) . ":". table[s]
|
||||
\ . strpart(backref, start+len)
|
||||
let backref = strpart(backref, 0, start) .. ":" .. table[s]
|
||||
\ .. strpart(backref, start+len)
|
||||
let s = s + s:Count(substitute(ref, '\\\\', '', 'g'), '\(', '1')
|
||||
endif
|
||||
endwhile
|
||||
let word = strpart(word, 0, i-1) . backref . strpart(word, i+1)
|
||||
let i = matchend(word, s:notslash . '\\\d') - 1
|
||||
let word = strpart(word, 0, i-1) .. backref .. strpart(word, i+1)
|
||||
let i = matchend(word, s:notslash .. '\\\d') - 1
|
||||
endwhile
|
||||
let word = substitute(word, s:notslash . '\zs:', '\\', 'g')
|
||||
let word = substitute(word, s:notslash .. '\zs:', '\\', 'g')
|
||||
if a:output == "table"
|
||||
return table
|
||||
elseif a:output == "word"
|
||||
return word
|
||||
else
|
||||
return table . word
|
||||
return table .. word
|
||||
endif
|
||||
endfun
|
||||
|
||||
@@ -508,21 +521,21 @@ endfun
|
||||
" If <patn> is the first pattern that matches a:string then return <patn>
|
||||
" if no optional arguments are given; return <patn>,<altn> if a:1 is given.
|
||||
fun! s:Choose(patterns, string, comma, branch, prefix, suffix, ...)
|
||||
let tail = (a:patterns =~ a:comma."$" ? a:patterns : a:patterns . a:comma)
|
||||
let i = matchend(tail, s:notslash . a:comma)
|
||||
let tail = (a:patterns =~ a:comma .. "$" ? a:patterns : a:patterns .. a:comma)
|
||||
let i = matchend(tail, s:notslash .. a:comma)
|
||||
if a:0
|
||||
let alttail = (a:1 =~ a:comma."$" ? a:1 : a:1 . a:comma)
|
||||
let j = matchend(alttail, s:notslash . a:comma)
|
||||
let alttail = (a:1 =~ a:comma .. "$" ? a:1 : a:1 .. a:comma)
|
||||
let j = matchend(alttail, s:notslash .. a:comma)
|
||||
endif
|
||||
let current = strpart(tail, 0, i-1)
|
||||
if a:branch == ""
|
||||
let currpat = current
|
||||
else
|
||||
let currpat = substitute(current, s:notslash . a:branch, '\\|', 'g')
|
||||
let currpat = substitute(current, s:notslash .. a:branch, '\\|', 'g')
|
||||
endif
|
||||
while a:string !~ a:prefix . currpat . a:suffix
|
||||
while a:string !~ a:prefix .. currpat .. a:suffix
|
||||
let tail = strpart(tail, i)
|
||||
let i = matchend(tail, s:notslash . a:comma)
|
||||
let i = matchend(tail, s:notslash .. a:comma)
|
||||
if i == -1
|
||||
return -1
|
||||
endif
|
||||
@@ -530,15 +543,15 @@ fun! s:Choose(patterns, string, comma, branch, prefix, suffix, ...)
|
||||
if a:branch == ""
|
||||
let currpat = current
|
||||
else
|
||||
let currpat = substitute(current, s:notslash . a:branch, '\\|', 'g')
|
||||
let currpat = substitute(current, s:notslash .. a:branch, '\\|', 'g')
|
||||
endif
|
||||
if a:0
|
||||
let alttail = strpart(alttail, j)
|
||||
let j = matchend(alttail, s:notslash . a:comma)
|
||||
let j = matchend(alttail, s:notslash .. a:comma)
|
||||
endif
|
||||
endwhile
|
||||
if a:0
|
||||
let current = current . a:comma . strpart(alttail, 0, j-1)
|
||||
let current = current .. a:comma .. strpart(alttail, 0, j-1)
|
||||
endif
|
||||
return current
|
||||
endfun
|
||||
@@ -562,7 +575,7 @@ fun! matchit#Match_debug()
|
||||
" fin = 'endif' piece, with all backrefs resolved from match
|
||||
amenu &Matchit.&word :echo b:match_word<CR>
|
||||
" '\'.d in ini refers to the same thing as '\'.table[d] in word.
|
||||
amenu &Matchit.t&able :echo '0:' . b:match_table . ':9'<CR>
|
||||
amenu &Matchit.t&able :echo '0:' .. b:match_table .. ':9'<CR>
|
||||
endfun
|
||||
|
||||
" Jump to the nearest unmatched "(" or "if" or "<tag>" if a:spflag == "bW"
|
||||
@@ -598,26 +611,26 @@ fun! matchit#MultiMatch(spflag, mode)
|
||||
endif
|
||||
if (match_words != s:last_words) || (&mps != s:last_mps) ||
|
||||
\ exists("b:match_debug")
|
||||
let default = escape(&mps, '[$^.*~\\/?]') . (strlen(&mps) ? "," : "") .
|
||||
let default = escape(&mps, '[$^.*~\\/?]') .. (strlen(&mps) ? "," : "") ..
|
||||
\ '\/\*:\*\/,#\s*if\%(n\=def\)\=:#\s*else\>:#\s*elif\>:#\s*endif\>'
|
||||
let s:last_mps = &mps
|
||||
let match_words = match_words . (strlen(match_words) ? "," : "") . default
|
||||
let match_words = match_words .. (strlen(match_words) ? "," : "") .. default
|
||||
let s:last_words = match_words
|
||||
if match_words !~ s:notslash . '\\\d'
|
||||
if match_words !~ s:notslash .. '\\\d'
|
||||
let s:do_BR = 0
|
||||
let s:pat = match_words
|
||||
else
|
||||
let s:do_BR = 1
|
||||
let s:pat = s:ParseWords(match_words)
|
||||
endif
|
||||
let s:all = '\%(' . substitute(s:pat, '[,:]\+', '\\|', 'g') . '\)'
|
||||
let s:all = '\%(' .. substitute(s:pat, '[,:]\+', '\\|', 'g') .. '\)'
|
||||
if exists("b:match_debug")
|
||||
let b:match_pat = s:pat
|
||||
endif
|
||||
" Reconstruct the version with unresolved backrefs.
|
||||
let s:patBR = substitute(match_words.',',
|
||||
\ s:notslash.'\zs[,:]*,[,:]*', ',', 'g')
|
||||
let s:patBR = substitute(s:patBR, s:notslash.'\zs:\{2,}', ':', 'g')
|
||||
let s:patBR = substitute(match_words .. ',',
|
||||
\ s:notslash .. '\zs[,:]*,[,:]*', ',', 'g')
|
||||
let s:patBR = substitute(s:patBR, s:notslash .. '\zs:\{2,}', ':', 'g')
|
||||
endif
|
||||
|
||||
" Second step: figure out the patterns for searchpair()
|
||||
@@ -625,23 +638,23 @@ fun! matchit#MultiMatch(spflag, mode)
|
||||
" - TODO: A lot of this is copied from matchit#Match_wrapper().
|
||||
" - maybe even more functionality should be split off
|
||||
" - into separate functions!
|
||||
let openlist = split(s:pat . ',', s:notslash . '\zs:.\{-}' . s:notslash . ',')
|
||||
let midclolist = split(',' . s:pat, s:notslash . '\zs,.\{-}' . s:notslash . ':')
|
||||
call map(midclolist, {-> split(v:val, s:notslash . ':')})
|
||||
let openlist = split(s:pat .. ',', s:notslash .. '\zs:.\{-}' .. s:notslash .. ',')
|
||||
let midclolist = split(',' .. s:pat, s:notslash .. '\zs,.\{-}' .. s:notslash .. ':')
|
||||
call map(midclolist, {-> split(v:val, s:notslash .. ':')})
|
||||
let closelist = []
|
||||
let middlelist = []
|
||||
call map(midclolist, {i,v -> [extend(closelist, v[-1 : -1]),
|
||||
\ extend(middlelist, v[0 : -2])]})
|
||||
call map(openlist, {i,v -> v =~# s:notslash . '\\|' ? '\%(' . v . '\)' : v})
|
||||
call map(middlelist, {i,v -> v =~# s:notslash . '\\|' ? '\%(' . v . '\)' : v})
|
||||
call map(closelist, {i,v -> v =~# s:notslash . '\\|' ? '\%(' . v . '\)' : v})
|
||||
call map(openlist, {i,v -> v =~# s:notslash .. '\\|' ? '\%(' .. v .. '\)' : v})
|
||||
call map(middlelist, {i,v -> v =~# s:notslash .. '\\|' ? '\%(' .. v .. '\)' : v})
|
||||
call map(closelist, {i,v -> v =~# s:notslash .. '\\|' ? '\%(' .. v .. '\)' : v})
|
||||
let open = join(openlist, ',')
|
||||
let middle = join(middlelist, ',')
|
||||
let close = join(closelist, ',')
|
||||
if exists("b:match_skip")
|
||||
let skip = b:match_skip
|
||||
elseif exists("b:match_comment") " backwards compatibility and testing!
|
||||
let skip = "r:" . b:match_comment
|
||||
let skip = "r:" .. b:match_comment
|
||||
else
|
||||
let skip = 's:comment\|string'
|
||||
endif
|
||||
@@ -650,18 +663,18 @@ fun! matchit#MultiMatch(spflag, mode)
|
||||
|
||||
" Third step: call searchpair().
|
||||
" Replace '\('--but not '\\('--with '\%(' and ',' with '\|'.
|
||||
let openpat = substitute(open, '\%(' . s:notslash . '\)\@<=\\(', '\\%(', 'g')
|
||||
let openpat = substitute(open, '\%(' .. s:notslash .. '\)\@<=\\(', '\\%(', 'g')
|
||||
let openpat = substitute(openpat, ',', '\\|', 'g')
|
||||
let closepat = substitute(close, '\%(' . s:notslash . '\)\@<=\\(', '\\%(', 'g')
|
||||
let closepat = substitute(close, '\%(' .. s:notslash .. '\)\@<=\\(', '\\%(', 'g')
|
||||
let closepat = substitute(closepat, ',', '\\|', 'g')
|
||||
let middlepat = substitute(middle, '\%(' . s:notslash . '\)\@<=\\(', '\\%(', 'g')
|
||||
let middlepat = substitute(middle, '\%(' .. s:notslash .. '\)\@<=\\(', '\\%(', 'g')
|
||||
let middlepat = substitute(middlepat, ',', '\\|', 'g')
|
||||
|
||||
if skip =~ 'synID' && !(has("syntax") && exists("g:syntax_on"))
|
||||
let skip = '0'
|
||||
else
|
||||
try
|
||||
execute "if " . skip . "| let skip = '0' | endif"
|
||||
execute "if " .. skip .. "| let skip = '0' | endif"
|
||||
catch /^Vim\%((\a\+)\)\=:E363/
|
||||
" We won't find anything, so skip searching, should keep Vim responsive.
|
||||
return {}
|
||||
@@ -744,11 +757,11 @@ fun! s:ParseSkip(str)
|
||||
let skip = a:str
|
||||
if skip[1] == ":"
|
||||
if skip[0] == "s"
|
||||
let skip = "synIDattr(synID(line('.'),col('.'),1),'name') =~? '" .
|
||||
\ strpart(skip,2) . "'"
|
||||
let skip = "synIDattr(synID(line('.'),col('.'),1),'name') =~? '" ..
|
||||
\ strpart(skip,2) .. "'"
|
||||
elseif skip[0] == "S"
|
||||
let skip = "synIDattr(synID(line('.'),col('.'),1),'name') !~? '" .
|
||||
\ strpart(skip,2) . "'"
|
||||
let skip = "synIDattr(synID(line('.'),col('.'),1),'name') !~? '" ..
|
||||
\ strpart(skip,2) .. "'"
|
||||
elseif skip[0] == "r"
|
||||
let skip = "strpart(getline('.'),0,col('.'))=~'" . strpart(skip,2). "'"
|
||||
elseif skip[0] == "R"
|
||||
|
||||
15
runtime/pack/dist/opt/matchit/doc/matchit.txt
vendored
15
runtime/pack/dist/opt/matchit/doc/matchit.txt
vendored
@@ -1,10 +1,10 @@
|
||||
*matchit.txt* Extended "%" matching
|
||||
*matchit.txt* Extended "%" matching
|
||||
|
||||
For instructions on installing this file, type
|
||||
`:help matchit-install`
|
||||
inside Vim.
|
||||
|
||||
For Vim version 8.1. Last change: 2021 May 17
|
||||
For Vim version 8.2. Last change: 2021 Dec 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Benji Fisher et al
|
||||
@@ -148,6 +148,13 @@ To use the matchit plugin add this line to your |vimrc|: >
|
||||
|
||||
The script should start working the next time you start Vim.
|
||||
|
||||
To use the matching plugin after startup, you can use this command (note the
|
||||
omitted '!'): >
|
||||
packadd matchit
|
||||
|
||||
To use the matchit plugin after Vim has started, execute this command: >
|
||||
packadd matchit
|
||||
|
||||
(Earlier versions of the script did nothing unless a |buffer-variable| named
|
||||
|b:match_words| was defined. Even earlier versions contained autocommands
|
||||
that set this variable for various file types. Now, |b:match_words| is
|
||||
@@ -376,8 +383,8 @@ The back reference '\'.d refers to the same thing as '\'.b:match_table[d] in
|
||||
5. Known Bugs and Limitations *matchit-bugs*
|
||||
|
||||
Repository: https://github.com/chrisbra/matchit/
|
||||
Bugs can be reported at the repository (alternatively you can send me a mail).
|
||||
The latest development snapshot can also be downloaded there.
|
||||
Bugs can be reported at the repository and the latest development snapshot can
|
||||
also be downloaded there.
|
||||
|
||||
Just because I know about a bug does not mean that it is on my todo list. I
|
||||
try to respond to reports of bugs that cause real problems. If it does not
|
||||
|
||||
42
runtime/pack/dist/opt/matchit/plugin/matchit.vim
vendored
42
runtime/pack/dist/opt/matchit/plugin/matchit.vim
vendored
@@ -1,7 +1,7 @@
|
||||
" matchit.vim: (global plugin) Extended "%" matching
|
||||
" Maintainer: Christian Brabandt
|
||||
" Version: 1.17
|
||||
" Last Change: 2019 Oct 24
|
||||
" Version: 1.18
|
||||
" Last Change: 2020 Dec 23
|
||||
" Repository: https://github.com/chrisbra/matchit
|
||||
" Previous URL:http://www.vim.org/script.php?script_id=39
|
||||
" Previous Maintainer: Benji Fisher PhD <benji@member.AMS.org>
|
||||
@@ -48,18 +48,12 @@ set cpo&vim
|
||||
|
||||
nnoremap <silent> <Plug>(MatchitNormalForward) :<C-U>call matchit#Match_wrapper('',1,'n')<CR>
|
||||
nnoremap <silent> <Plug>(MatchitNormalBackward) :<C-U>call matchit#Match_wrapper('',0,'n')<CR>
|
||||
xnoremap <silent> <Plug>(MatchitVisualForward) :<C-U>call matchit#Match_wrapper('',1,'v')<CR>m'gv``
|
||||
xnoremap <silent> <Plug>(MatchitVisualForward) :<C-U>call matchit#Match_wrapper('',1,'v')<CR>
|
||||
\:if col("''") != col("$") \| exe ":normal! m'" \| endif<cr>gv``
|
||||
xnoremap <silent> <Plug>(MatchitVisualBackward) :<C-U>call matchit#Match_wrapper('',0,'v')<CR>m'gv``
|
||||
onoremap <silent> <Plug>(MatchitOperationForward) :<C-U>call matchit#Match_wrapper('',1,'o')<CR>
|
||||
onoremap <silent> <Plug>(MatchitOperationBackward) :<C-U>call matchit#Match_wrapper('',0,'o')<CR>
|
||||
|
||||
nmap <silent> % <Plug>(MatchitNormalForward)
|
||||
nmap <silent> g% <Plug>(MatchitNormalBackward)
|
||||
xmap <silent> % <Plug>(MatchitVisualForward)
|
||||
xmap <silent> g% <Plug>(MatchitVisualBackward)
|
||||
omap <silent> % <Plug>(MatchitOperationForward)
|
||||
omap <silent> g% <Plug>(MatchitOperationBackward)
|
||||
|
||||
" Analogues of [{ and ]} using matching patterns:
|
||||
nnoremap <silent> <Plug>(MatchitNormalMultiBackward) :<C-U>call matchit#MultiMatch("bW", "n")<CR>
|
||||
nnoremap <silent> <Plug>(MatchitNormalMultiForward) :<C-U>call matchit#MultiMatch("W", "n")<CR>
|
||||
@@ -68,16 +62,28 @@ xnoremap <silent> <Plug>(MatchitVisualMultiForward) :<C-U>call matchit#Multi
|
||||
onoremap <silent> <Plug>(MatchitOperationMultiBackward) :<C-U>call matchit#MultiMatch("bW", "o")<CR>
|
||||
onoremap <silent> <Plug>(MatchitOperationMultiForward) :<C-U>call matchit#MultiMatch("W", "o")<CR>
|
||||
|
||||
nmap <silent> [% <Plug>(MatchitNormalMultiBackward)
|
||||
nmap <silent> ]% <Plug>(MatchitNormalMultiForward)
|
||||
xmap <silent> [% <Plug>(MatchitVisualMultiBackward)
|
||||
xmap <silent> ]% <Plug>(MatchitVisualMultiForward)
|
||||
omap <silent> [% <Plug>(MatchitOperationMultiBackward)
|
||||
omap <silent> ]% <Plug>(MatchitOperationMultiForward)
|
||||
|
||||
" text object:
|
||||
xmap <silent> <Plug>(MatchitVisualTextObject) <Plug>(MatchitVisualMultiBackward)o<Plug>(MatchitVisualMultiForward)
|
||||
xmap a% <Plug>(MatchitVisualTextObject)
|
||||
|
||||
if !exists("g:no_plugin_maps")
|
||||
nmap <silent> % <Plug>(MatchitNormalForward)
|
||||
nmap <silent> g% <Plug>(MatchitNormalBackward)
|
||||
xmap <silent> % <Plug>(MatchitVisualForward)
|
||||
xmap <silent> g% <Plug>(MatchitVisualBackward)
|
||||
omap <silent> % <Plug>(MatchitOperationForward)
|
||||
omap <silent> g% <Plug>(MatchitOperationBackward)
|
||||
|
||||
" Analogues of [{ and ]} using matching patterns:
|
||||
nmap <silent> [% <Plug>(MatchitNormalMultiBackward)
|
||||
nmap <silent> ]% <Plug>(MatchitNormalMultiForward)
|
||||
xmap <silent> [% <Plug>(MatchitVisualMultiBackward)
|
||||
xmap <silent> ]% <Plug>(MatchitVisualMultiForward)
|
||||
omap <silent> [% <Plug>(MatchitOperationMultiBackward)
|
||||
omap <silent> ]% <Plug>(MatchitOperationMultiForward)
|
||||
|
||||
" Text object
|
||||
xmap a% <Plug>(MatchitVisualTextObject)
|
||||
endif
|
||||
|
||||
" Call this function to turn on debugging information. Every time the main
|
||||
" script is run, buffer variables will be saved. These can be used directly
|
||||
|
||||
373
runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
vendored
373
runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
vendored
@@ -2,7 +2,7 @@
|
||||
"
|
||||
" Author: Bram Moolenaar
|
||||
" Copyright: Vim license applies, see ":help license"
|
||||
" Last Change: 2021 Aug 23
|
||||
" Last Change: 2021 Dec 16
|
||||
"
|
||||
" WORK IN PROGRESS - Only the basics work
|
||||
" Note: On MS-Windows you need a recent version of gdb. The one included with
|
||||
@@ -96,6 +96,11 @@ endfunc
|
||||
|
||||
call s:Highlight(1, '', &background)
|
||||
hi default debugBreakpoint term=reverse ctermbg=red guibg=red
|
||||
hi default debugBreakpointDisabled term=reverse ctermbg=gray guibg=gray
|
||||
|
||||
func s:GetCommand()
|
||||
return type(g:termdebugger) == v:t_list ? copy(g:termdebugger) : [g:termdebugger]
|
||||
endfunc
|
||||
|
||||
func s:StartDebug(bang, ...)
|
||||
" First argument is the command to debug, second core file or process ID.
|
||||
@@ -112,8 +117,9 @@ func s:StartDebug_internal(dict)
|
||||
echoerr 'Terminal debugger already running, cannot run two'
|
||||
return
|
||||
endif
|
||||
if !executable(g:termdebugger)
|
||||
echoerr 'Cannot execute debugger program "' .. g:termdebugger .. '"'
|
||||
let gdbcmd = s:GetCommand()
|
||||
if !executable(gdbcmd[0])
|
||||
echoerr 'Cannot execute debugger program "' .. gdbcmd[0] .. '"'
|
||||
return
|
||||
endif
|
||||
|
||||
@@ -187,7 +193,7 @@ endfunc
|
||||
func s:CheckGdbRunning()
|
||||
let gdbproc = term_getjob(s:gdbbuf)
|
||||
if gdbproc == v:null || job_status(gdbproc) !=# 'run'
|
||||
echoerr string(g:termdebugger) . ' exited unexpectedly'
|
||||
echoerr string(s:GetCommand()[0]) . ' exited unexpectedly'
|
||||
call s:CloseBuffers()
|
||||
return ''
|
||||
endif
|
||||
@@ -229,14 +235,28 @@ func s:StartDebug_term(dict)
|
||||
endif
|
||||
let commpty = job_info(term_getjob(s:commbuf))['tty_out']
|
||||
|
||||
" Open a terminal window to run the debugger.
|
||||
" Add -quiet to avoid the intro message causing a hit-enter prompt.
|
||||
let gdb_args = get(a:dict, 'gdb_args', [])
|
||||
let proc_args = get(a:dict, 'proc_args', [])
|
||||
|
||||
let cmd = [g:termdebugger, '-quiet', '-tty', pty, '--eval-command', 'echo startupdone\n'] + gdb_args
|
||||
call ch_log('executing "' . join(cmd) . '"')
|
||||
let s:gdbbuf = term_start(cmd, {
|
||||
let gdb_cmd = s:GetCommand()
|
||||
" Add -quiet to avoid the intro message causing a hit-enter prompt.
|
||||
let gdb_cmd += ['-quiet']
|
||||
" Disable pagination, it causes everything to stop at the gdb
|
||||
let gdb_cmd += ['-iex', 'set pagination off']
|
||||
" Interpret commands while the target is running. This should usually only
|
||||
" be exec-interrupt, since many commands don't work properly while the
|
||||
" target is running (so execute during startup).
|
||||
let gdb_cmd += ['-iex', 'set mi-async on']
|
||||
" Open a terminal window to run the debugger.
|
||||
let gdb_cmd += ['-tty', pty]
|
||||
" Command executed _after_ startup is done, provides us with the necessary feedback
|
||||
let gdb_cmd += ['-ex', 'echo startupdone\n']
|
||||
|
||||
" Adding arguments requested by the user
|
||||
let gdb_cmd += gdb_args
|
||||
|
||||
call ch_log('executing "' . join(gdb_cmd) . '"')
|
||||
let s:gdbbuf = term_start(gdb_cmd, {
|
||||
\ 'term_finish': 'close',
|
||||
\ })
|
||||
if s:gdbbuf == 0
|
||||
@@ -255,8 +275,8 @@ func s:StartDebug_term(dict)
|
||||
|
||||
for lnum in range(1, 200)
|
||||
if term_getline(s:gdbbuf, lnum) =~ 'startupdone'
|
||||
let try_count = 9999
|
||||
break
|
||||
let try_count = 9999
|
||||
break
|
||||
endif
|
||||
endfor
|
||||
let try_count += 1
|
||||
@@ -269,11 +289,12 @@ func s:StartDebug_term(dict)
|
||||
|
||||
" Set arguments to be run.
|
||||
if len(proc_args)
|
||||
call term_sendkeys(s:gdbbuf, 'set args ' . join(proc_args) . "\r")
|
||||
call term_sendkeys(s:gdbbuf, 'server set args ' . join(proc_args) . "\r")
|
||||
endif
|
||||
|
||||
" Connect gdb to the communication pty, using the GDB/MI interface
|
||||
call term_sendkeys(s:gdbbuf, 'new-ui mi ' . commpty . "\r")
|
||||
" Connect gdb to the communication pty, using the GDB/MI interface.
|
||||
" Prefix "server" to avoid adding this to the history.
|
||||
call term_sendkeys(s:gdbbuf, 'server new-ui mi ' . commpty . "\r")
|
||||
|
||||
" Wait for the response to show up, users may not notice the error and wonder
|
||||
" why the debugger doesn't work.
|
||||
@@ -288,20 +309,21 @@ func s:StartDebug_term(dict)
|
||||
let line1 = term_getline(s:gdbbuf, lnum)
|
||||
let line2 = term_getline(s:gdbbuf, lnum + 1)
|
||||
if line1 =~ 'new-ui mi '
|
||||
" response can be in the same line or the next line
|
||||
let response = line1 . line2
|
||||
if response =~ 'Undefined command'
|
||||
echoerr 'Sorry, your gdb is too old, gdb 7.12 is required'
|
||||
call s:CloseBuffers()
|
||||
return
|
||||
endif
|
||||
if response =~ 'New UI allocated'
|
||||
" Success!
|
||||
break
|
||||
endif
|
||||
" response can be in the same line or the next line
|
||||
let response = line1 . line2
|
||||
if response =~ 'Undefined command'
|
||||
echoerr 'Sorry, your gdb is too old, gdb 7.12 is required'
|
||||
" CHECKME: possibly send a "server show version" here
|
||||
call s:CloseBuffers()
|
||||
return
|
||||
endif
|
||||
if response =~ 'New UI allocated'
|
||||
" Success!
|
||||
break
|
||||
endif
|
||||
elseif line1 =~ 'Reading symbols from' && line2 !~ 'new-ui mi '
|
||||
" Reading symbols might take a while, try more times
|
||||
let try_count -= 1
|
||||
" Reading symbols might take a while, try more times
|
||||
let try_count -= 1
|
||||
endif
|
||||
endfor
|
||||
if response =~ 'New UI allocated'
|
||||
@@ -315,17 +337,6 @@ func s:StartDebug_term(dict)
|
||||
sleep 10m
|
||||
endwhile
|
||||
|
||||
" Interpret commands while the target is running. This should usually only be
|
||||
" exec-interrupt, since many commands don't work properly while the target is
|
||||
" running.
|
||||
call s:SendCommand('-gdb-set mi-async on')
|
||||
" Older gdb uses a different command.
|
||||
call s:SendCommand('-gdb-set target-async on')
|
||||
|
||||
" Disable pagination, it causes everything to stop at the gdb
|
||||
" "Type <return> to continue" prompt.
|
||||
call s:SendCommand('set pagination off')
|
||||
|
||||
call job_setoptions(term_getjob(s:gdbbuf), {'exit_cb': function('s:EndTermDebug')})
|
||||
|
||||
" Set the filetype, this can be used to add mappings.
|
||||
@@ -355,14 +366,26 @@ func s:StartDebug_prompt(dict)
|
||||
exe (&columns / 2 - 1) . "wincmd |"
|
||||
endif
|
||||
|
||||
" Add -quiet to avoid the intro message causing a hit-enter prompt.
|
||||
let gdb_args = get(a:dict, 'gdb_args', [])
|
||||
let proc_args = get(a:dict, 'proc_args', [])
|
||||
|
||||
let cmd = [g:termdebugger, '-quiet', '--interpreter=mi2'] + gdb_args
|
||||
call ch_log('executing "' . join(cmd) . '"')
|
||||
let gdb_cmd = s:GetCommand()
|
||||
" Add -quiet to avoid the intro message causing a hit-enter prompt.
|
||||
let gdb_cmd += ['-quiet']
|
||||
" Disable pagination, it causes everything to stop at the gdb, needs to be run early
|
||||
let gdb_cmd += ['-iex', 'set pagination off']
|
||||
" Interpret commands while the target is running. This should usually only
|
||||
" be exec-interrupt, since many commands don't work properly while the
|
||||
" target is running (so execute during startup).
|
||||
let gdb_cmd += ['-iex', 'set mi-async on']
|
||||
" directly communicate via mi2
|
||||
let gdb_cmd += ['--interpreter=mi2']
|
||||
|
||||
let s:gdbjob = job_start(cmd, {
|
||||
" Adding arguments requested by the user
|
||||
let gdb_cmd += gdb_args
|
||||
|
||||
call ch_log('executing "' . join(gdb_cmd) . '"')
|
||||
let s:gdbjob = job_start(gdb_cmd, {
|
||||
\ 'exit_cb': function('s:EndPromptDebug'),
|
||||
\ 'out_cb': function('s:GdbOutCallback'),
|
||||
\ })
|
||||
@@ -375,13 +398,6 @@ func s:StartDebug_prompt(dict)
|
||||
set modified
|
||||
let s:gdb_channel = job_getchannel(s:gdbjob)
|
||||
|
||||
" Interpret commands while the target is running. This should usually only
|
||||
" be exec-interrupt, since many commands don't work properly while the
|
||||
" target is running.
|
||||
call s:SendCommand('-gdb-set mi-async on')
|
||||
" Older gdb uses a different command.
|
||||
call s:SendCommand('-gdb-set target-async on')
|
||||
|
||||
let s:ptybuf = 0
|
||||
if has('win32')
|
||||
" MS-Windows: run in a new console window for maximum compatibility
|
||||
@@ -415,8 +431,6 @@ func s:StartDebug_prompt(dict)
|
||||
endif
|
||||
call s:SendCommand('set print pretty on')
|
||||
call s:SendCommand('set breakpoint pending on')
|
||||
" Disable pagination, it causes everything to stop at the gdb
|
||||
call s:SendCommand('set pagination off')
|
||||
|
||||
" Set arguments to be run
|
||||
if len(proc_args)
|
||||
@@ -470,7 +484,7 @@ func s:StartDebugCommon(dict)
|
||||
" Run the command if the bang attribute was given and got to the debug
|
||||
" window.
|
||||
if get(a:dict, 'bang', 0)
|
||||
call s:SendCommand('-exec-run')
|
||||
call s:SendResumingCommand('-exec-run')
|
||||
call win_gotoid(s:ptywin)
|
||||
endif
|
||||
endfunc
|
||||
@@ -493,7 +507,7 @@ func TermDebugSendCommand(cmd)
|
||||
let do_continue = 0
|
||||
if !s:stopped
|
||||
let do_continue = 1
|
||||
call s:SendCommand('-exec-interrupt')
|
||||
Stop
|
||||
sleep 10m
|
||||
endif
|
||||
call term_sendkeys(s:gdbbuf, a:cmd . "\r")
|
||||
@@ -503,6 +517,20 @@ func TermDebugSendCommand(cmd)
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Send a command that resumes the program. If the program isn't stopped the
|
||||
" command is not sent (to avoid a repeated command to cause trouble).
|
||||
" If the command is sent then reset s:stopped.
|
||||
func s:SendResumingCommand(cmd)
|
||||
if s:stopped
|
||||
" reset s:stopped here, it may take a bit of time before we get a response
|
||||
let s:stopped = 0
|
||||
call ch_log('assume that program is running after this command')
|
||||
call s:SendCommand(a:cmd)
|
||||
else
|
||||
call ch_log('dropping command, program is running: ' . a:cmd)
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Function called when entering a line in the prompt buffer.
|
||||
func s:PromptCallback(text)
|
||||
call s:SendCommand(a:text)
|
||||
@@ -534,7 +562,7 @@ func s:GdbOutCallback(channel, text)
|
||||
if a:text == '(gdb) ' || a:text == '^done' || a:text[0] == '&'
|
||||
return
|
||||
endif
|
||||
if a:text =~ '^^error,msg='
|
||||
if a:text =~ '^\^error,msg='
|
||||
let text = s:DecodeMessage(a:text[11:])
|
||||
if exists('s:evalexpr') && text =~ 'A syntax error in expression, near\|No symbol .* in current context'
|
||||
" Silently drop evaluation errors.
|
||||
@@ -559,33 +587,33 @@ func s:GdbOutCallback(channel, text)
|
||||
endfunc
|
||||
|
||||
" Decode a message from gdb. quotedText starts with a ", return the text up
|
||||
" to the next ", unescaping characters.
|
||||
" to the next ", unescaping characters:
|
||||
" - remove line breaks
|
||||
" - change \\t to \t
|
||||
" - change \0xhh to \xhh (disabled for now)
|
||||
" - change \ooo to octal
|
||||
" - change \\ to \
|
||||
func s:DecodeMessage(quotedText)
|
||||
if a:quotedText[0] != '"'
|
||||
echoerr 'DecodeMessage(): missing quote in ' . a:quotedText
|
||||
return
|
||||
endif
|
||||
let result = ''
|
||||
let i = 1
|
||||
while a:quotedText[i] != '"' && i < len(a:quotedText)
|
||||
if a:quotedText[i] == '\'
|
||||
let i += 1
|
||||
if a:quotedText[i] == 'n'
|
||||
" drop \n
|
||||
let i += 1
|
||||
continue
|
||||
elseif a:quotedText[i] == 't'
|
||||
" append \t
|
||||
let i += 1
|
||||
let result .= "\t"
|
||||
continue
|
||||
endif
|
||||
endif
|
||||
let result .= a:quotedText[i]
|
||||
let i += 1
|
||||
endwhile
|
||||
return result
|
||||
return a:quotedText
|
||||
\ ->substitute('^"\|".*\|\\n', '', 'g')
|
||||
\ ->substitute('\\t', "\t", 'g')
|
||||
" multi-byte characters arrive in octal form
|
||||
" NULL-values must be kept encoded as those break the string otherwise
|
||||
\ ->substitute('\\000', s:NullRepl, 'g')
|
||||
\ ->substitute('\\\o\o\o', {-> eval('"' .. submatch(0) .. '"')}, 'g')
|
||||
" Note: GDB docs also mention hex encodings - the translations below work
|
||||
" but we keep them out for performance-reasons until we actually see
|
||||
" those in mi-returns
|
||||
" \ ->substitute('\\0x\(\x\x\)', {-> eval('"\x' .. submatch(1) .. '"')}, 'g')
|
||||
" \ ->substitute('\\0x00', s:NullRepl, 'g')
|
||||
\ ->substitute('\\\\', '\', 'g')
|
||||
\ ->substitute(s:NullRepl, '\\000', 'g')
|
||||
endfunc
|
||||
const s:NullRepl = 'XXXNULLXXX'
|
||||
|
||||
" Extract the "name" value from a gdb message with fullname="name".
|
||||
func s:GetFullname(msg)
|
||||
@@ -711,8 +739,8 @@ func s:HandleDisasmMsg(msg)
|
||||
|
||||
let lnum = search('^' . s:asm_addr)
|
||||
if lnum != 0
|
||||
exe 'sign unplace ' . s:asm_id
|
||||
exe 'sign place ' . s:asm_id . ' line=' . lnum . ' name=debugPC'
|
||||
exe 'sign unplace ' . s:asm_id
|
||||
exe 'sign place ' . s:asm_id . ' line=' . lnum . ' name=debugPC'
|
||||
endif
|
||||
|
||||
call win_gotoid(curwinid)
|
||||
@@ -736,9 +764,9 @@ func s:HandleDisasmMsg(msg)
|
||||
else
|
||||
let value = substitute(a:msg, '^\~\"[ ]*', '', '')
|
||||
let value = substitute(value, '^=>[ ]*', '', '')
|
||||
let value = substitute(value, '\\n\"
|
||||
let value = substitute(value, '\\n\"\r$', '', '')
|
||||
let value = substitute(value, '\\n\"$', '', '')
|
||||
let value = substitute(value, '\\n\"$', '', '')
|
||||
let value = substitute(value, '\r', '', '')
|
||||
let value = substitute(value, '\\t', ' ', 'g')
|
||||
|
||||
if value != '' || !empty(s:asm_lines)
|
||||
@@ -763,7 +791,9 @@ func s:CommOutput(chan, msg)
|
||||
if msg =~ '^\(\*stopped\|\*running\|=thread-selected\)'
|
||||
call s:HandleCursor(msg)
|
||||
elseif msg =~ '^\^done,bkpt=' || msg =~ '^=breakpoint-created,'
|
||||
call s:HandleCursor(msg)
|
||||
call s:HandleNewBreakpoint(msg, 0)
|
||||
elseif msg =~ '^=breakpoint-modified,'
|
||||
call s:HandleNewBreakpoint(msg, 1)
|
||||
elseif msg =~ '^=breakpoint-deleted,'
|
||||
call s:HandleBreakpointDelete(msg)
|
||||
elseif msg =~ '^=thread-group-started'
|
||||
@@ -773,8 +803,8 @@ func s:CommOutput(chan, msg)
|
||||
elseif msg =~ '^\^error,msg='
|
||||
call s:HandleError(msg)
|
||||
elseif msg =~ '^disassemble'
|
||||
call s:HandleError(msg)
|
||||
elseif msg =~ '^disassemble'
|
||||
let s:parsing_disasm_msg = 1
|
||||
let s:asm_lines = []
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
@@ -797,17 +827,20 @@ func s:InstallCommands()
|
||||
|
||||
command -nargs=? Break call s:SetBreakpoint(<q-args>)
|
||||
command Clear call s:ClearBreakpoint()
|
||||
command -nargs=? Break call s:SetBreakpoint(<q-args>)
|
||||
command Clear call s:ClearBreakpoint()
|
||||
command Step call s:SendCommand('-exec-step')
|
||||
command Step call s:SendResumingCommand('-exec-step')
|
||||
command Over call s:SendResumingCommand('-exec-next')
|
||||
command Finish call s:SendResumingCommand('-exec-finish')
|
||||
command -nargs=* Run call s:Run(<q-args>)
|
||||
command Finish call s:SendCommand('-exec-finish')
|
||||
command -nargs=* Run call s:Run(<q-args>)
|
||||
command -nargs=* Arguments call s:SendResumingCommand('-exec-arguments ' . <q-args>)
|
||||
|
||||
command Stop call s:SendCommand('-exec-interrupt')
|
||||
if s:way == 'prompt'
|
||||
command Stop call s:PromptInterrupt()
|
||||
command Continue call s:SendCommand('continue')
|
||||
else
|
||||
command Stop call s:SendCommand('-exec-interrupt')
|
||||
" using -exec-continue results in CTRL-C in the gdb window not working,
|
||||
" communicating via commbuf (= use of SendCommand) has the same result
|
||||
"command Continue call s:SendCommand('-exec-continue')
|
||||
command Continue call term_sendkeys(s:gdbbuf, "continue\r")
|
||||
endif
|
||||
|
||||
@@ -930,20 +963,16 @@ func s:SetBreakpoint(at)
|
||||
let do_continue = 0
|
||||
if !s:stopped
|
||||
let do_continue = 1
|
||||
if !s:stopped
|
||||
let do_continue = 1
|
||||
if s:way == 'prompt'
|
||||
call s:PromptInterrupt()
|
||||
else
|
||||
Stop
|
||||
sleep 10m
|
||||
endif
|
||||
|
||||
" Use the fname:lnum format, older gdb can't handle --source.
|
||||
let at = empty(a:at) ?
|
||||
" Use the fname:lnum format, older gdb can't handle --source.
|
||||
\ fnameescape(expand('%:p')) . ':' . line('.') : a:at
|
||||
call s:SendCommand('-break-insert ' . at)
|
||||
if do_continue
|
||||
call s:SendCommand('-break-insert ' . at)
|
||||
Continue
|
||||
endif
|
||||
endfunc
|
||||
|
||||
@@ -954,6 +983,7 @@ func s:ClearBreakpoint()
|
||||
let bploc = printf('%s:%d', fname, lnum)
|
||||
if has_key(s:breakpoint_locations, bploc)
|
||||
let idx = 0
|
||||
let nr = 0
|
||||
for id in s:breakpoint_locations[bploc]
|
||||
if has_key(s:breakpoints, id)
|
||||
" Assume this always works, the reply is simply "^done".
|
||||
@@ -963,46 +993,101 @@ func s:ClearBreakpoint()
|
||||
endfor
|
||||
unlet s:breakpoints[id]
|
||||
unlet s:breakpoint_locations[bploc][idx]
|
||||
let nr = id
|
||||
break
|
||||
else
|
||||
let idx += 1
|
||||
endif
|
||||
endfor
|
||||
endif
|
||||
endfor
|
||||
if nr != 0
|
||||
if empty(s:breakpoint_locations[bploc])
|
||||
unlet s:breakpoint_locations[bploc]
|
||||
endif
|
||||
echomsg 'Breakpoint ' . id . ' cleared from line ' . lnum . '.'
|
||||
else
|
||||
echoerr 'Internal error trying to remove breakpoint at line ' . lnum . '!'
|
||||
endif
|
||||
else
|
||||
echomsg 'No breakpoint to remove at line ' . lnum . '.'
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func s:Run(args)
|
||||
if a:args != ''
|
||||
func s:Run(args)
|
||||
call s:SendResumingCommand('-exec-arguments ' . a:args)
|
||||
endif
|
||||
call s:SendCommand('-exec-arguments ' . a:args)
|
||||
call s:SendResumingCommand('-exec-run')
|
||||
endfunc
|
||||
|
||||
func s:SendEval(expr)
|
||||
|
||||
func s:SendEval(expr)
|
||||
" check for "likely" boolean expressions, in which case we take it as lhs
|
||||
if a:expr =~ "[=!<>]="
|
||||
let exprLHS = a:expr
|
||||
else
|
||||
" remove text that is likely an assignment
|
||||
let exprLHS = substitute(a:expr, ' *=.*', '', '')
|
||||
endif
|
||||
|
||||
" encoding expression to prevent bad errors
|
||||
let expr = a:expr
|
||||
let expr = substitute(expr, '\\', '\\\\', 'g')
|
||||
let expr = substitute(expr, '"', '\\"', 'g')
|
||||
call s:SendCommand('-data-evaluate-expression "' . expr . '"')
|
||||
let s:evalexpr = exprLHS
|
||||
endfunc
|
||||
|
||||
endfunc
|
||||
" :Evaluate - evaluate what is specified / under the cursor
|
||||
func s:Evaluate(range, arg)
|
||||
let expr = s:GetEvaluationExpression(a:range, a:arg)
|
||||
let s:ignoreEvalError = 0
|
||||
call s:SendEval(expr)
|
||||
endfunc
|
||||
|
||||
" get what is specified / under the cursor
|
||||
func s:GetEvaluationExpression(range, arg)
|
||||
if a:arg != ''
|
||||
func s:Evaluate(range, arg)
|
||||
" user supplied evaluation
|
||||
let expr = s:CleanupExpr(a:arg)
|
||||
" DSW: replace "likely copy + paste" assignment
|
||||
let expr = substitute(expr, '"\([^"]*\)": *', '\1=', 'g')
|
||||
elseif a:range == 2
|
||||
" no evaluation but provided but range set
|
||||
let pos = getcurpos()
|
||||
let reg = getreg('v', 1, 1)
|
||||
let regt = getregtype('v')
|
||||
normal! gv"vy
|
||||
let regt = getregtype('v')
|
||||
let expr = s:CleanupExpr(@v)
|
||||
call setpos('.', pos)
|
||||
call setreg('v', reg, regt)
|
||||
else
|
||||
" no evaluation provided: get from C-expression under cursor
|
||||
" TODO: allow filetype specific lookup #9057
|
||||
let expr = expand('<cexpr>')
|
||||
endif
|
||||
let expr = expand('<cexpr>')
|
||||
endif
|
||||
return expr
|
||||
endfunc
|
||||
|
||||
" clean up expression that may got in because of range
|
||||
" (newlines and surrounding whitespace)
|
||||
" As it can also be specified via ex-command for assignments this function
|
||||
" may not change the "content" parts (like replacing contained spaces
|
||||
func s:CleanupExpr(expr)
|
||||
" replace all embedded newlines/tabs/...
|
||||
let expr = substitute(a:expr, '\_s', ' ', 'g')
|
||||
|
||||
if &filetype ==# 'cobol'
|
||||
" extra cleanup for COBOL:
|
||||
" - a semicolon nmay be used instead of a space
|
||||
" - a trailing comma or period is ignored as it commonly separates/ends
|
||||
" multiple expr
|
||||
let expr = substitute(expr, ';', ' ', 'g')
|
||||
let expr = substitute(expr, '[,.]\+ *$', '', '')
|
||||
endif
|
||||
|
||||
" get rid of leading and trailing spaces
|
||||
let expr = substitute(expr, '^ *', '', '')
|
||||
let expr = substitute(expr, ' *$', '', '')
|
||||
return expr
|
||||
endfunc
|
||||
|
||||
let s:ignoreEvalError = 0
|
||||
@@ -1010,8 +1095,19 @@ let s:evalFromBalloonExpr = 0
|
||||
|
||||
" Handle the result of data-evaluate-expression
|
||||
func s:HandleEvaluate(msg)
|
||||
" Handle the result of data-evaluate-expression
|
||||
func s:HandleEvaluate(msg)
|
||||
let value = a:msg
|
||||
\ ->substitute('.*value="\(.*\)"', '\1', '')
|
||||
\ ->substitute('\\"', '"', 'g')
|
||||
\ ->substitute('\\\\', '\\', 'g')
|
||||
"\ multi-byte characters arrive in octal form, replace everthing but NULL values
|
||||
\ ->substitute('\\000', s:NullRepl, 'g')
|
||||
\ ->substitute('\\\o\o\o', {-> eval('"' .. submatch(0) .. '"')}, 'g')
|
||||
"\ Note: GDB docs also mention hex encodings - the translations below work
|
||||
"\ but we keep them out for performance-reasons until we actually see
|
||||
"\ those in mi-returns
|
||||
"\ ->substitute('\\0x00', s:NullRep, 'g')
|
||||
"\ ->substitute('\\0x\(\x\x\)', {-> eval('"\x' .. submatch(1) .. '"')}, 'g')
|
||||
\ ->substitute(s:NullRepl, '\\000', 'g')
|
||||
if s:evalFromBalloonExpr
|
||||
if s:evalFromBalloonExprResult == ''
|
||||
let s:evalFromBalloonExprResult = s:evalexpr . ': ' . value
|
||||
@@ -1046,7 +1142,8 @@ func TermDebugBalloonExpr()
|
||||
let s:evalFromBalloonExpr = 1
|
||||
let s:evalFromBalloonExprResult = ''
|
||||
let s:ignoreEvalError = 1
|
||||
let s:evalFromBalloonExprResult = ''
|
||||
let expr = s:CleanupExpr(v:beval_text)
|
||||
call s:SendEval(expr)
|
||||
return ''
|
||||
endfunc
|
||||
|
||||
@@ -1058,7 +1155,8 @@ func s:HandleError(msg)
|
||||
let s:evalFromBalloonExpr = 0
|
||||
return
|
||||
endif
|
||||
return
|
||||
let msgVal = substitute(a:msg, '.*msg="\(.*\)"', '\1', '')
|
||||
echoerr substitute(msgVal, '\\"', '"', 'g')
|
||||
endfunc
|
||||
|
||||
func s:GotoSourcewinOrCreateIt()
|
||||
@@ -1083,6 +1181,7 @@ func s:GotoAsmwinOrCreateIt()
|
||||
setlocal number
|
||||
setlocal noswapfile
|
||||
setlocal buftype=nofile
|
||||
setlocal modifiable
|
||||
|
||||
let asmbuf = bufnr('Termdebug-asm-listing')
|
||||
if asmbuf > 0
|
||||
@@ -1093,7 +1192,7 @@ func s:GotoAsmwinOrCreateIt()
|
||||
|
||||
if exists('g:termdebug_disasm_window')
|
||||
if g:termdebug_disasm_window > 1
|
||||
if exists('g:termdebug_disasm_window')
|
||||
exe 'resize ' . g:termdebug_disasm_window
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
@@ -1102,7 +1201,7 @@ func s:GotoAsmwinOrCreateIt()
|
||||
let lnum = search('^' . s:asm_addr)
|
||||
if lnum == 0
|
||||
if s:stopped
|
||||
if lnum == 0
|
||||
call s:SendCommand('disassemble $pc')
|
||||
endif
|
||||
else
|
||||
exe 'sign unplace ' . s:asm_id
|
||||
@@ -1137,15 +1236,15 @@ func s:HandleCursor(msg)
|
||||
|
||||
let curwinid = win_getid(winnr())
|
||||
if win_gotoid(s:asmwin)
|
||||
let curwinid = win_getid(winnr())
|
||||
if win_gotoid(s:asmwin)
|
||||
let lnum = search('^' . s:asm_addr)
|
||||
if lnum == 0
|
||||
call s:SendCommand('disassemble $pc')
|
||||
else
|
||||
exe 'sign unplace ' . s:asm_id
|
||||
let lnum = search('^' . s:asm_addr)
|
||||
if lnum == 0
|
||||
call s:SendCommand('disassemble $pc')
|
||||
else
|
||||
exe 'sign unplace ' . s:asm_id
|
||||
exe 'sign place ' . s:asm_id . ' line=' . lnum . ' name=debugPC'
|
||||
endif
|
||||
|
||||
endif
|
||||
call win_gotoid(curwinid)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
@@ -1165,6 +1264,7 @@ func s:HandleCursor(msg)
|
||||
endif
|
||||
endif
|
||||
exe lnum
|
||||
normal! zv
|
||||
exe 'sign unplace ' . s:pc_id
|
||||
exe 'sign place ' . s:pc_id . ' line=' . lnum . ' name=debugPC priority=110 file=' . fname
|
||||
if !exists('b:save_signcolumn')
|
||||
@@ -1182,11 +1282,16 @@ endfunc
|
||||
|
||||
let s:BreakpointSigns = []
|
||||
|
||||
let s:BreakpointSigns = []
|
||||
func s:CreateBreakpoint(id, subid, enabled)
|
||||
let nr = printf('%d.%d', a:id, a:subid)
|
||||
if index(s:BreakpointSigns, nr) == -1
|
||||
call add(s:BreakpointSigns, nr)
|
||||
if index(s:BreakpointSigns, nr) == -1
|
||||
if a:enabled == "n"
|
||||
let hiName = "debugBreakpointDisabled"
|
||||
else
|
||||
let hiName = "debugBreakpoint"
|
||||
endif
|
||||
exe "sign define debugBreakpoint" . nr . " text=" . substitute(nr, '\..*', '', '') . " texthl=" . hiName
|
||||
endif
|
||||
endfunc
|
||||
|
||||
@@ -1196,9 +1301,14 @@ endfunction
|
||||
|
||||
" Handle setting a breakpoint
|
||||
" Will update the sign that shows the breakpoint
|
||||
" Handle setting a breakpoint
|
||||
func s:HandleNewBreakpoint(msg, modifiedFlag)
|
||||
if a:msg !~ 'fullname='
|
||||
func s:HandleNewBreakpoint(msg)
|
||||
" a watch or a pending breakpoint does not have a file name
|
||||
if a:msg =~ 'pending='
|
||||
let nr = substitute(a:msg, '.*number=\"\([0-9.]*\)\".*', '\1', '')
|
||||
let target = substitute(a:msg, '.*pending=\"\([^"]*\)\".*', '\1', '')
|
||||
echomsg 'Breakpoint ' . nr . ' (' . target . ') pending.'
|
||||
endif
|
||||
return
|
||||
endif
|
||||
for msg in s:SplitMsg(a:msg)
|
||||
@@ -1214,7 +1324,8 @@ func s:HandleNewBreakpoint(msg)
|
||||
" If "nr" is 123 it becomes "123.0" and subid is "0".
|
||||
" If "nr" is 123.4 it becomes "123.4.0" and subid is "4"; "0" is discarded.
|
||||
let [id, subid; _] = map(split(nr . '.0', '\.'), 'v:val + 0')
|
||||
" If "nr" is 123.4 it becomes "123.4.0" and subid is "4"; "0" is discarded.
|
||||
let enabled = substitute(msg, '.*enabled="\([yn]\)".*', '\1', '')
|
||||
call s:CreateBreakpoint(id, subid, enabled)
|
||||
|
||||
if has_key(s:breakpoints, id)
|
||||
let entries = s:breakpoints[id]
|
||||
@@ -1241,7 +1352,18 @@ func s:HandleNewBreakpoint(msg)
|
||||
|
||||
if bufloaded(fname)
|
||||
call s:PlaceSign(id, subid, entry)
|
||||
let posMsg = ' at line ' . lnum . '.'
|
||||
else
|
||||
let posMsg = ' in ' . fname . ' at line ' . lnum . '.'
|
||||
endif
|
||||
if !a:modifiedFlag
|
||||
let actionTaken = 'created'
|
||||
elseif enabled == 'n'
|
||||
let actionTaken = 'disabled'
|
||||
else
|
||||
let actionTaken = 'enabled'
|
||||
endif
|
||||
echomsg 'Breakpoint ' . nr . ' ' . actionTaken . posMsg
|
||||
endfor
|
||||
endfunc
|
||||
|
||||
@@ -1266,6 +1388,7 @@ func s:HandleBreakpointDelete(msg)
|
||||
endif
|
||||
endfor
|
||||
unlet s:breakpoints[id]
|
||||
echomsg 'Breakpoint ' . id . ' cleared.'
|
||||
endif
|
||||
endfunc
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
if &cp || exists("g:loaded_zipPlugin")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_zipPlugin = "v31"
|
||||
let g:loaded_zipPlugin = "v32"
|
||||
let s:keepcpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
|
||||
782
runtime/rgb.txt
782
runtime/rgb.txt
@@ -1,782 +0,0 @@
|
||||
255 250 250 snow
|
||||
248 248 255 ghost white
|
||||
248 248 255 GhostWhite
|
||||
245 245 245 white smoke
|
||||
245 245 245 WhiteSmoke
|
||||
220 220 220 gainsboro
|
||||
255 250 240 floral white
|
||||
255 250 240 FloralWhite
|
||||
253 245 230 old lace
|
||||
253 245 230 OldLace
|
||||
250 240 230 linen
|
||||
250 235 215 antique white
|
||||
250 235 215 AntiqueWhite
|
||||
255 239 213 papaya whip
|
||||
255 239 213 PapayaWhip
|
||||
255 235 205 blanched almond
|
||||
255 235 205 BlanchedAlmond
|
||||
255 228 196 bisque
|
||||
255 218 185 peach puff
|
||||
255 218 185 PeachPuff
|
||||
255 222 173 navajo white
|
||||
255 222 173 NavajoWhite
|
||||
255 228 181 moccasin
|
||||
255 248 220 cornsilk
|
||||
255 255 240 ivory
|
||||
255 250 205 lemon chiffon
|
||||
255 250 205 LemonChiffon
|
||||
255 245 238 seashell
|
||||
240 255 240 honeydew
|
||||
245 255 250 mint cream
|
||||
245 255 250 MintCream
|
||||
240 255 255 azure
|
||||
240 248 255 alice blue
|
||||
240 248 255 AliceBlue
|
||||
230 230 250 lavender
|
||||
255 240 245 lavender blush
|
||||
255 240 245 LavenderBlush
|
||||
255 228 225 misty rose
|
||||
255 228 225 MistyRose
|
||||
255 255 255 white
|
||||
0 0 0 black
|
||||
47 79 79 dark slate gray
|
||||
47 79 79 DarkSlateGray
|
||||
47 79 79 dark slate grey
|
||||
47 79 79 DarkSlateGrey
|
||||
105 105 105 dim gray
|
||||
105 105 105 DimGray
|
||||
105 105 105 dim grey
|
||||
105 105 105 DimGrey
|
||||
112 128 144 slate gray
|
||||
112 128 144 SlateGray
|
||||
112 128 144 slate grey
|
||||
112 128 144 SlateGrey
|
||||
119 136 153 light slate gray
|
||||
119 136 153 LightSlateGray
|
||||
119 136 153 light slate grey
|
||||
119 136 153 LightSlateGrey
|
||||
190 190 190 gray
|
||||
190 190 190 grey
|
||||
190 190 190 x11 gray
|
||||
190 190 190 X11Gray
|
||||
190 190 190 x11 grey
|
||||
190 190 190 X11Grey
|
||||
128 128 128 web gray
|
||||
128 128 128 WebGray
|
||||
128 128 128 web grey
|
||||
128 128 128 WebGrey
|
||||
211 211 211 light grey
|
||||
211 211 211 LightGrey
|
||||
211 211 211 light gray
|
||||
211 211 211 LightGray
|
||||
25 25 112 midnight blue
|
||||
25 25 112 MidnightBlue
|
||||
0 0 128 navy
|
||||
0 0 128 navy blue
|
||||
0 0 128 NavyBlue
|
||||
100 149 237 cornflower blue
|
||||
100 149 237 CornflowerBlue
|
||||
72 61 139 dark slate blue
|
||||
72 61 139 DarkSlateBlue
|
||||
106 90 205 slate blue
|
||||
106 90 205 SlateBlue
|
||||
123 104 238 medium slate blue
|
||||
123 104 238 MediumSlateBlue
|
||||
132 112 255 light slate blue
|
||||
132 112 255 LightSlateBlue
|
||||
0 0 205 medium blue
|
||||
0 0 205 MediumBlue
|
||||
65 105 225 royal blue
|
||||
65 105 225 RoyalBlue
|
||||
0 0 255 blue
|
||||
30 144 255 dodger blue
|
||||
30 144 255 DodgerBlue
|
||||
0 191 255 deep sky blue
|
||||
0 191 255 DeepSkyBlue
|
||||
135 206 235 sky blue
|
||||
135 206 235 SkyBlue
|
||||
135 206 250 light sky blue
|
||||
135 206 250 LightSkyBlue
|
||||
70 130 180 steel blue
|
||||
70 130 180 SteelBlue
|
||||
176 196 222 light steel blue
|
||||
176 196 222 LightSteelBlue
|
||||
173 216 230 light blue
|
||||
173 216 230 LightBlue
|
||||
176 224 230 powder blue
|
||||
176 224 230 PowderBlue
|
||||
175 238 238 pale turquoise
|
||||
175 238 238 PaleTurquoise
|
||||
0 206 209 dark turquoise
|
||||
0 206 209 DarkTurquoise
|
||||
72 209 204 medium turquoise
|
||||
72 209 204 MediumTurquoise
|
||||
64 224 208 turquoise
|
||||
0 255 255 cyan
|
||||
0 255 255 aqua
|
||||
224 255 255 light cyan
|
||||
224 255 255 LightCyan
|
||||
95 158 160 cadet blue
|
||||
95 158 160 CadetBlue
|
||||
102 205 170 medium aquamarine
|
||||
102 205 170 MediumAquamarine
|
||||
127 255 212 aquamarine
|
||||
0 100 0 dark green
|
||||
0 100 0 DarkGreen
|
||||
85 107 47 dark olive green
|
||||
85 107 47 DarkOliveGreen
|
||||
143 188 143 dark sea green
|
||||
143 188 143 DarkSeaGreen
|
||||
46 139 87 sea green
|
||||
46 139 87 SeaGreen
|
||||
60 179 113 medium sea green
|
||||
60 179 113 MediumSeaGreen
|
||||
32 178 170 light sea green
|
||||
32 178 170 LightSeaGreen
|
||||
152 251 152 pale green
|
||||
152 251 152 PaleGreen
|
||||
0 255 127 spring green
|
||||
0 255 127 SpringGreen
|
||||
124 252 0 lawn green
|
||||
124 252 0 LawnGreen
|
||||
0 255 0 green
|
||||
0 255 0 lime
|
||||
0 255 0 x11 green
|
||||
0 255 0 X11Green
|
||||
0 128 0 web green
|
||||
0 128 0 WebGreen
|
||||
127 255 0 chartreuse
|
||||
0 250 154 medium spring green
|
||||
0 250 154 MediumSpringGreen
|
||||
173 255 47 green yellow
|
||||
173 255 47 GreenYellow
|
||||
50 205 50 lime green
|
||||
50 205 50 LimeGreen
|
||||
154 205 50 yellow green
|
||||
154 205 50 YellowGreen
|
||||
34 139 34 forest green
|
||||
34 139 34 ForestGreen
|
||||
107 142 35 olive drab
|
||||
107 142 35 OliveDrab
|
||||
189 183 107 dark khaki
|
||||
189 183 107 DarkKhaki
|
||||
240 230 140 khaki
|
||||
238 232 170 pale goldenrod
|
||||
238 232 170 PaleGoldenrod
|
||||
250 250 210 light goldenrod yellow
|
||||
250 250 210 LightGoldenrodYellow
|
||||
255 255 224 light yellow
|
||||
255 255 224 LightYellow
|
||||
255 255 0 yellow
|
||||
255 215 0 gold
|
||||
238 221 130 light goldenrod
|
||||
238 221 130 LightGoldenrod
|
||||
218 165 32 goldenrod
|
||||
184 134 11 dark goldenrod
|
||||
184 134 11 DarkGoldenrod
|
||||
188 143 143 rosy brown
|
||||
188 143 143 RosyBrown
|
||||
205 92 92 indian red
|
||||
205 92 92 IndianRed
|
||||
139 69 19 saddle brown
|
||||
139 69 19 SaddleBrown
|
||||
160 82 45 sienna
|
||||
205 133 63 peru
|
||||
222 184 135 burlywood
|
||||
245 245 220 beige
|
||||
245 222 179 wheat
|
||||
244 164 96 sandy brown
|
||||
244 164 96 SandyBrown
|
||||
210 180 140 tan
|
||||
210 105 30 chocolate
|
||||
178 34 34 firebrick
|
||||
165 42 42 brown
|
||||
233 150 122 dark salmon
|
||||
233 150 122 DarkSalmon
|
||||
250 128 114 salmon
|
||||
255 160 122 light salmon
|
||||
255 160 122 LightSalmon
|
||||
255 165 0 orange
|
||||
255 140 0 dark orange
|
||||
255 140 0 DarkOrange
|
||||
255 127 80 coral
|
||||
240 128 128 light coral
|
||||
240 128 128 LightCoral
|
||||
255 99 71 tomato
|
||||
255 69 0 orange red
|
||||
255 69 0 OrangeRed
|
||||
255 0 0 red
|
||||
255 105 180 hot pink
|
||||
255 105 180 HotPink
|
||||
255 20 147 deep pink
|
||||
255 20 147 DeepPink
|
||||
255 192 203 pink
|
||||
255 182 193 light pink
|
||||
255 182 193 LightPink
|
||||
219 112 147 pale violet red
|
||||
219 112 147 PaleVioletRed
|
||||
176 48 96 maroon
|
||||
176 48 96 x11 maroon
|
||||
176 48 96 X11Maroon
|
||||
128 0 0 web maroon
|
||||
128 0 0 WebMaroon
|
||||
199 21 133 medium violet red
|
||||
199 21 133 MediumVioletRed
|
||||
208 32 144 violet red
|
||||
208 32 144 VioletRed
|
||||
255 0 255 magenta
|
||||
255 0 255 fuchsia
|
||||
238 130 238 violet
|
||||
221 160 221 plum
|
||||
218 112 214 orchid
|
||||
186 85 211 medium orchid
|
||||
186 85 211 MediumOrchid
|
||||
153 50 204 dark orchid
|
||||
153 50 204 DarkOrchid
|
||||
148 0 211 dark violet
|
||||
148 0 211 DarkViolet
|
||||
138 43 226 blue violet
|
||||
138 43 226 BlueViolet
|
||||
160 32 240 purple
|
||||
160 32 240 x11 purple
|
||||
160 32 240 X11Purple
|
||||
128 0 128 web purple
|
||||
128 0 128 WebPurple
|
||||
147 112 219 medium purple
|
||||
147 112 219 MediumPurple
|
||||
216 191 216 thistle
|
||||
255 250 250 snow1
|
||||
238 233 233 snow2
|
||||
205 201 201 snow3
|
||||
139 137 137 snow4
|
||||
255 245 238 seashell1
|
||||
238 229 222 seashell2
|
||||
205 197 191 seashell3
|
||||
139 134 130 seashell4
|
||||
255 239 219 AntiqueWhite1
|
||||
238 223 204 AntiqueWhite2
|
||||
205 192 176 AntiqueWhite3
|
||||
139 131 120 AntiqueWhite4
|
||||
255 228 196 bisque1
|
||||
238 213 183 bisque2
|
||||
205 183 158 bisque3
|
||||
139 125 107 bisque4
|
||||
255 218 185 PeachPuff1
|
||||
238 203 173 PeachPuff2
|
||||
205 175 149 PeachPuff3
|
||||
139 119 101 PeachPuff4
|
||||
255 222 173 NavajoWhite1
|
||||
238 207 161 NavajoWhite2
|
||||
205 179 139 NavajoWhite3
|
||||
139 121 94 NavajoWhite4
|
||||
255 250 205 LemonChiffon1
|
||||
238 233 191 LemonChiffon2
|
||||
205 201 165 LemonChiffon3
|
||||
139 137 112 LemonChiffon4
|
||||
255 248 220 cornsilk1
|
||||
238 232 205 cornsilk2
|
||||
205 200 177 cornsilk3
|
||||
139 136 120 cornsilk4
|
||||
255 255 240 ivory1
|
||||
238 238 224 ivory2
|
||||
205 205 193 ivory3
|
||||
139 139 131 ivory4
|
||||
240 255 240 honeydew1
|
||||
224 238 224 honeydew2
|
||||
193 205 193 honeydew3
|
||||
131 139 131 honeydew4
|
||||
255 240 245 LavenderBlush1
|
||||
238 224 229 LavenderBlush2
|
||||
205 193 197 LavenderBlush3
|
||||
139 131 134 LavenderBlush4
|
||||
255 228 225 MistyRose1
|
||||
238 213 210 MistyRose2
|
||||
205 183 181 MistyRose3
|
||||
139 125 123 MistyRose4
|
||||
240 255 255 azure1
|
||||
224 238 238 azure2
|
||||
193 205 205 azure3
|
||||
131 139 139 azure4
|
||||
131 111 255 SlateBlue1
|
||||
122 103 238 SlateBlue2
|
||||
105 89 205 SlateBlue3
|
||||
71 60 139 SlateBlue4
|
||||
72 118 255 RoyalBlue1
|
||||
67 110 238 RoyalBlue2
|
||||
58 95 205 RoyalBlue3
|
||||
39 64 139 RoyalBlue4
|
||||
0 0 255 blue1
|
||||
0 0 238 blue2
|
||||
0 0 205 blue3
|
||||
0 0 139 blue4
|
||||
30 144 255 DodgerBlue1
|
||||
28 134 238 DodgerBlue2
|
||||
24 116 205 DodgerBlue3
|
||||
16 78 139 DodgerBlue4
|
||||
99 184 255 SteelBlue1
|
||||
92 172 238 SteelBlue2
|
||||
79 148 205 SteelBlue3
|
||||
54 100 139 SteelBlue4
|
||||
0 191 255 DeepSkyBlue1
|
||||
0 178 238 DeepSkyBlue2
|
||||
0 154 205 DeepSkyBlue3
|
||||
0 104 139 DeepSkyBlue4
|
||||
135 206 255 SkyBlue1
|
||||
126 192 238 SkyBlue2
|
||||
108 166 205 SkyBlue3
|
||||
74 112 139 SkyBlue4
|
||||
176 226 255 LightSkyBlue1
|
||||
164 211 238 LightSkyBlue2
|
||||
141 182 205 LightSkyBlue3
|
||||
96 123 139 LightSkyBlue4
|
||||
198 226 255 SlateGray1
|
||||
185 211 238 SlateGray2
|
||||
159 182 205 SlateGray3
|
||||
108 123 139 SlateGray4
|
||||
202 225 255 LightSteelBlue1
|
||||
188 210 238 LightSteelBlue2
|
||||
162 181 205 LightSteelBlue3
|
||||
110 123 139 LightSteelBlue4
|
||||
191 239 255 LightBlue1
|
||||
178 223 238 LightBlue2
|
||||
154 192 205 LightBlue3
|
||||
104 131 139 LightBlue4
|
||||
224 255 255 LightCyan1
|
||||
209 238 238 LightCyan2
|
||||
180 205 205 LightCyan3
|
||||
122 139 139 LightCyan4
|
||||
187 255 255 PaleTurquoise1
|
||||
174 238 238 PaleTurquoise2
|
||||
150 205 205 PaleTurquoise3
|
||||
102 139 139 PaleTurquoise4
|
||||
152 245 255 CadetBlue1
|
||||
142 229 238 CadetBlue2
|
||||
122 197 205 CadetBlue3
|
||||
83 134 139 CadetBlue4
|
||||
0 245 255 turquoise1
|
||||
0 229 238 turquoise2
|
||||
0 197 205 turquoise3
|
||||
0 134 139 turquoise4
|
||||
0 255 255 cyan1
|
||||
0 238 238 cyan2
|
||||
0 205 205 cyan3
|
||||
0 139 139 cyan4
|
||||
151 255 255 DarkSlateGray1
|
||||
141 238 238 DarkSlateGray2
|
||||
121 205 205 DarkSlateGray3
|
||||
82 139 139 DarkSlateGray4
|
||||
127 255 212 aquamarine1
|
||||
118 238 198 aquamarine2
|
||||
102 205 170 aquamarine3
|
||||
69 139 116 aquamarine4
|
||||
193 255 193 DarkSeaGreen1
|
||||
180 238 180 DarkSeaGreen2
|
||||
155 205 155 DarkSeaGreen3
|
||||
105 139 105 DarkSeaGreen4
|
||||
84 255 159 SeaGreen1
|
||||
78 238 148 SeaGreen2
|
||||
67 205 128 SeaGreen3
|
||||
46 139 87 SeaGreen4
|
||||
154 255 154 PaleGreen1
|
||||
144 238 144 PaleGreen2
|
||||
124 205 124 PaleGreen3
|
||||
84 139 84 PaleGreen4
|
||||
0 255 127 SpringGreen1
|
||||
0 238 118 SpringGreen2
|
||||
0 205 102 SpringGreen3
|
||||
0 139 69 SpringGreen4
|
||||
0 255 0 green1
|
||||
0 238 0 green2
|
||||
0 205 0 green3
|
||||
0 139 0 green4
|
||||
127 255 0 chartreuse1
|
||||
118 238 0 chartreuse2
|
||||
102 205 0 chartreuse3
|
||||
69 139 0 chartreuse4
|
||||
192 255 62 OliveDrab1
|
||||
179 238 58 OliveDrab2
|
||||
154 205 50 OliveDrab3
|
||||
105 139 34 OliveDrab4
|
||||
202 255 112 DarkOliveGreen1
|
||||
188 238 104 DarkOliveGreen2
|
||||
162 205 90 DarkOliveGreen3
|
||||
110 139 61 DarkOliveGreen4
|
||||
255 246 143 khaki1
|
||||
238 230 133 khaki2
|
||||
205 198 115 khaki3
|
||||
139 134 78 khaki4
|
||||
255 236 139 LightGoldenrod1
|
||||
238 220 130 LightGoldenrod2
|
||||
205 190 112 LightGoldenrod3
|
||||
139 129 76 LightGoldenrod4
|
||||
255 255 224 LightYellow1
|
||||
238 238 209 LightYellow2
|
||||
205 205 180 LightYellow3
|
||||
139 139 122 LightYellow4
|
||||
255 255 0 yellow1
|
||||
238 238 0 yellow2
|
||||
205 205 0 yellow3
|
||||
139 139 0 yellow4
|
||||
255 215 0 gold1
|
||||
238 201 0 gold2
|
||||
205 173 0 gold3
|
||||
139 117 0 gold4
|
||||
255 193 37 goldenrod1
|
||||
238 180 34 goldenrod2
|
||||
205 155 29 goldenrod3
|
||||
139 105 20 goldenrod4
|
||||
255 185 15 DarkGoldenrod1
|
||||
238 173 14 DarkGoldenrod2
|
||||
205 149 12 DarkGoldenrod3
|
||||
139 101 8 DarkGoldenrod4
|
||||
255 193 193 RosyBrown1
|
||||
238 180 180 RosyBrown2
|
||||
205 155 155 RosyBrown3
|
||||
139 105 105 RosyBrown4
|
||||
255 106 106 IndianRed1
|
||||
238 99 99 IndianRed2
|
||||
205 85 85 IndianRed3
|
||||
139 58 58 IndianRed4
|
||||
255 130 71 sienna1
|
||||
238 121 66 sienna2
|
||||
205 104 57 sienna3
|
||||
139 71 38 sienna4
|
||||
255 211 155 burlywood1
|
||||
238 197 145 burlywood2
|
||||
205 170 125 burlywood3
|
||||
139 115 85 burlywood4
|
||||
255 231 186 wheat1
|
||||
238 216 174 wheat2
|
||||
205 186 150 wheat3
|
||||
139 126 102 wheat4
|
||||
255 165 79 tan1
|
||||
238 154 73 tan2
|
||||
205 133 63 tan3
|
||||
139 90 43 tan4
|
||||
255 127 36 chocolate1
|
||||
238 118 33 chocolate2
|
||||
205 102 29 chocolate3
|
||||
139 69 19 chocolate4
|
||||
255 48 48 firebrick1
|
||||
238 44 44 firebrick2
|
||||
205 38 38 firebrick3
|
||||
139 26 26 firebrick4
|
||||
255 64 64 brown1
|
||||
238 59 59 brown2
|
||||
205 51 51 brown3
|
||||
139 35 35 brown4
|
||||
255 140 105 salmon1
|
||||
238 130 98 salmon2
|
||||
205 112 84 salmon3
|
||||
139 76 57 salmon4
|
||||
255 160 122 LightSalmon1
|
||||
238 149 114 LightSalmon2
|
||||
205 129 98 LightSalmon3
|
||||
139 87 66 LightSalmon4
|
||||
255 165 0 orange1
|
||||
238 154 0 orange2
|
||||
205 133 0 orange3
|
||||
139 90 0 orange4
|
||||
255 127 0 DarkOrange1
|
||||
238 118 0 DarkOrange2
|
||||
205 102 0 DarkOrange3
|
||||
139 69 0 DarkOrange4
|
||||
255 114 86 coral1
|
||||
238 106 80 coral2
|
||||
205 91 69 coral3
|
||||
139 62 47 coral4
|
||||
255 99 71 tomato1
|
||||
238 92 66 tomato2
|
||||
205 79 57 tomato3
|
||||
139 54 38 tomato4
|
||||
255 69 0 OrangeRed1
|
||||
238 64 0 OrangeRed2
|
||||
205 55 0 OrangeRed3
|
||||
139 37 0 OrangeRed4
|
||||
255 0 0 red1
|
||||
238 0 0 red2
|
||||
205 0 0 red3
|
||||
139 0 0 red4
|
||||
255 20 147 DeepPink1
|
||||
238 18 137 DeepPink2
|
||||
205 16 118 DeepPink3
|
||||
139 10 80 DeepPink4
|
||||
255 110 180 HotPink1
|
||||
238 106 167 HotPink2
|
||||
205 96 144 HotPink3
|
||||
139 58 98 HotPink4
|
||||
255 181 197 pink1
|
||||
238 169 184 pink2
|
||||
205 145 158 pink3
|
||||
139 99 108 pink4
|
||||
255 174 185 LightPink1
|
||||
238 162 173 LightPink2
|
||||
205 140 149 LightPink3
|
||||
139 95 101 LightPink4
|
||||
255 130 171 PaleVioletRed1
|
||||
238 121 159 PaleVioletRed2
|
||||
205 104 137 PaleVioletRed3
|
||||
139 71 93 PaleVioletRed4
|
||||
255 52 179 maroon1
|
||||
238 48 167 maroon2
|
||||
205 41 144 maroon3
|
||||
139 28 98 maroon4
|
||||
255 62 150 VioletRed1
|
||||
238 58 140 VioletRed2
|
||||
205 50 120 VioletRed3
|
||||
139 34 82 VioletRed4
|
||||
255 0 255 magenta1
|
||||
238 0 238 magenta2
|
||||
205 0 205 magenta3
|
||||
139 0 139 magenta4
|
||||
255 131 250 orchid1
|
||||
238 122 233 orchid2
|
||||
205 105 201 orchid3
|
||||
139 71 137 orchid4
|
||||
255 187 255 plum1
|
||||
238 174 238 plum2
|
||||
205 150 205 plum3
|
||||
139 102 139 plum4
|
||||
224 102 255 MediumOrchid1
|
||||
209 95 238 MediumOrchid2
|
||||
180 82 205 MediumOrchid3
|
||||
122 55 139 MediumOrchid4
|
||||
191 62 255 DarkOrchid1
|
||||
178 58 238 DarkOrchid2
|
||||
154 50 205 DarkOrchid3
|
||||
104 34 139 DarkOrchid4
|
||||
155 48 255 purple1
|
||||
145 44 238 purple2
|
||||
125 38 205 purple3
|
||||
85 26 139 purple4
|
||||
171 130 255 MediumPurple1
|
||||
159 121 238 MediumPurple2
|
||||
137 104 205 MediumPurple3
|
||||
93 71 139 MediumPurple4
|
||||
255 225 255 thistle1
|
||||
238 210 238 thistle2
|
||||
205 181 205 thistle3
|
||||
139 123 139 thistle4
|
||||
0 0 0 gray0
|
||||
0 0 0 grey0
|
||||
3 3 3 gray1
|
||||
3 3 3 grey1
|
||||
5 5 5 gray2
|
||||
5 5 5 grey2
|
||||
8 8 8 gray3
|
||||
8 8 8 grey3
|
||||
10 10 10 gray4
|
||||
10 10 10 grey4
|
||||
13 13 13 gray5
|
||||
13 13 13 grey5
|
||||
15 15 15 gray6
|
||||
15 15 15 grey6
|
||||
18 18 18 gray7
|
||||
18 18 18 grey7
|
||||
20 20 20 gray8
|
||||
20 20 20 grey8
|
||||
23 23 23 gray9
|
||||
23 23 23 grey9
|
||||
26 26 26 gray10
|
||||
26 26 26 grey10
|
||||
28 28 28 gray11
|
||||
28 28 28 grey11
|
||||
31 31 31 gray12
|
||||
31 31 31 grey12
|
||||
33 33 33 gray13
|
||||
33 33 33 grey13
|
||||
36 36 36 gray14
|
||||
36 36 36 grey14
|
||||
38 38 38 gray15
|
||||
38 38 38 grey15
|
||||
41 41 41 gray16
|
||||
41 41 41 grey16
|
||||
43 43 43 gray17
|
||||
43 43 43 grey17
|
||||
46 46 46 gray18
|
||||
46 46 46 grey18
|
||||
48 48 48 gray19
|
||||
48 48 48 grey19
|
||||
51 51 51 gray20
|
||||
51 51 51 grey20
|
||||
54 54 54 gray21
|
||||
54 54 54 grey21
|
||||
56 56 56 gray22
|
||||
56 56 56 grey22
|
||||
59 59 59 gray23
|
||||
59 59 59 grey23
|
||||
61 61 61 gray24
|
||||
61 61 61 grey24
|
||||
64 64 64 gray25
|
||||
64 64 64 grey25
|
||||
66 66 66 gray26
|
||||
66 66 66 grey26
|
||||
69 69 69 gray27
|
||||
69 69 69 grey27
|
||||
71 71 71 gray28
|
||||
71 71 71 grey28
|
||||
74 74 74 gray29
|
||||
74 74 74 grey29
|
||||
77 77 77 gray30
|
||||
77 77 77 grey30
|
||||
79 79 79 gray31
|
||||
79 79 79 grey31
|
||||
82 82 82 gray32
|
||||
82 82 82 grey32
|
||||
84 84 84 gray33
|
||||
84 84 84 grey33
|
||||
87 87 87 gray34
|
||||
87 87 87 grey34
|
||||
89 89 89 gray35
|
||||
89 89 89 grey35
|
||||
92 92 92 gray36
|
||||
92 92 92 grey36
|
||||
94 94 94 gray37
|
||||
94 94 94 grey37
|
||||
97 97 97 gray38
|
||||
97 97 97 grey38
|
||||
99 99 99 gray39
|
||||
99 99 99 grey39
|
||||
102 102 102 gray40
|
||||
102 102 102 grey40
|
||||
105 105 105 gray41
|
||||
105 105 105 grey41
|
||||
107 107 107 gray42
|
||||
107 107 107 grey42
|
||||
110 110 110 gray43
|
||||
110 110 110 grey43
|
||||
112 112 112 gray44
|
||||
112 112 112 grey44
|
||||
115 115 115 gray45
|
||||
115 115 115 grey45
|
||||
117 117 117 gray46
|
||||
117 117 117 grey46
|
||||
120 120 120 gray47
|
||||
120 120 120 grey47
|
||||
122 122 122 gray48
|
||||
122 122 122 grey48
|
||||
125 125 125 gray49
|
||||
125 125 125 grey49
|
||||
127 127 127 gray50
|
||||
127 127 127 grey50
|
||||
130 130 130 gray51
|
||||
130 130 130 grey51
|
||||
133 133 133 gray52
|
||||
133 133 133 grey52
|
||||
135 135 135 gray53
|
||||
135 135 135 grey53
|
||||
138 138 138 gray54
|
||||
138 138 138 grey54
|
||||
140 140 140 gray55
|
||||
140 140 140 grey55
|
||||
143 143 143 gray56
|
||||
143 143 143 grey56
|
||||
145 145 145 gray57
|
||||
145 145 145 grey57
|
||||
148 148 148 gray58
|
||||
148 148 148 grey58
|
||||
150 150 150 gray59
|
||||
150 150 150 grey59
|
||||
153 153 153 gray60
|
||||
153 153 153 grey60
|
||||
156 156 156 gray61
|
||||
156 156 156 grey61
|
||||
158 158 158 gray62
|
||||
158 158 158 grey62
|
||||
161 161 161 gray63
|
||||
161 161 161 grey63
|
||||
163 163 163 gray64
|
||||
163 163 163 grey64
|
||||
166 166 166 gray65
|
||||
166 166 166 grey65
|
||||
168 168 168 gray66
|
||||
168 168 168 grey66
|
||||
171 171 171 gray67
|
||||
171 171 171 grey67
|
||||
173 173 173 gray68
|
||||
173 173 173 grey68
|
||||
176 176 176 gray69
|
||||
176 176 176 grey69
|
||||
179 179 179 gray70
|
||||
179 179 179 grey70
|
||||
181 181 181 gray71
|
||||
181 181 181 grey71
|
||||
184 184 184 gray72
|
||||
184 184 184 grey72
|
||||
186 186 186 gray73
|
||||
186 186 186 grey73
|
||||
189 189 189 gray74
|
||||
189 189 189 grey74
|
||||
191 191 191 gray75
|
||||
191 191 191 grey75
|
||||
194 194 194 gray76
|
||||
194 194 194 grey76
|
||||
196 196 196 gray77
|
||||
196 196 196 grey77
|
||||
199 199 199 gray78
|
||||
199 199 199 grey78
|
||||
201 201 201 gray79
|
||||
201 201 201 grey79
|
||||
204 204 204 gray80
|
||||
204 204 204 grey80
|
||||
207 207 207 gray81
|
||||
207 207 207 grey81
|
||||
209 209 209 gray82
|
||||
209 209 209 grey82
|
||||
212 212 212 gray83
|
||||
212 212 212 grey83
|
||||
214 214 214 gray84
|
||||
214 214 214 grey84
|
||||
217 217 217 gray85
|
||||
217 217 217 grey85
|
||||
219 219 219 gray86
|
||||
219 219 219 grey86
|
||||
222 222 222 gray87
|
||||
222 222 222 grey87
|
||||
224 224 224 gray88
|
||||
224 224 224 grey88
|
||||
227 227 227 gray89
|
||||
227 227 227 grey89
|
||||
229 229 229 gray90
|
||||
229 229 229 grey90
|
||||
232 232 232 gray91
|
||||
232 232 232 grey91
|
||||
235 235 235 gray92
|
||||
235 235 235 grey92
|
||||
237 237 237 gray93
|
||||
237 237 237 grey93
|
||||
240 240 240 gray94
|
||||
240 240 240 grey94
|
||||
242 242 242 gray95
|
||||
242 242 242 grey95
|
||||
245 245 245 gray96
|
||||
245 245 245 grey96
|
||||
247 247 247 gray97
|
||||
247 247 247 grey97
|
||||
250 250 250 gray98
|
||||
250 250 250 grey98
|
||||
252 252 252 gray99
|
||||
252 252 252 grey99
|
||||
255 255 255 gray100
|
||||
255 255 255 grey100
|
||||
169 169 169 dark grey
|
||||
169 169 169 DarkGrey
|
||||
169 169 169 dark gray
|
||||
169 169 169 DarkGray
|
||||
0 0 139 dark blue
|
||||
0 0 139 DarkBlue
|
||||
0 139 139 dark cyan
|
||||
0 139 139 DarkCyan
|
||||
139 0 139 dark magenta
|
||||
139 0 139 DarkMagenta
|
||||
139 0 0 dark red
|
||||
139 0 0 DarkRed
|
||||
144 238 144 light green
|
||||
144 238 144 LightGreen
|
||||
220 20 60 crimson
|
||||
75 0 130 indigo
|
||||
128 128 0 olive
|
||||
102 51 153 rebecca purple
|
||||
102 51 153 RebeccaPurple
|
||||
192 192 192 silver
|
||||
0 128 128 teal
|
||||
@@ -190,6 +190,18 @@ if s:line1 =~# "^#!"
|
||||
elseif s:name =~# 'fennel\>'
|
||||
set ft=fennel
|
||||
|
||||
" MikroTik RouterOS script
|
||||
elseif s:name =~# 'rsc\>'
|
||||
set ft=routeros
|
||||
|
||||
" Fish shell
|
||||
elseif s:name =~# 'fish\>'
|
||||
set ft=fish
|
||||
|
||||
" Gforth
|
||||
elseif s:name =~# 'gforth\>'
|
||||
set ft=forth
|
||||
|
||||
endif
|
||||
unlet s:name
|
||||
|
||||
@@ -390,6 +402,10 @@ else
|
||||
elseif s:line1 =~# '^%YAML'
|
||||
set ft=yaml
|
||||
|
||||
" MikroTik RouterOS script
|
||||
elseif s:line1 =~# '^#.*by RouterOS.*$'
|
||||
set ft=routeros
|
||||
|
||||
" CVS diff
|
||||
else
|
||||
let s:lnum = 1
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
" Syntax highlighting like in the Arduino IDE
|
||||
" Automatically generated by the script available at
|
||||
" https://bitbucket.org/johannes/arduino-vim-syntax
|
||||
" https://github.com/johshoff/arduino-vim-syntax
|
||||
" Using keywords from <arduino>/build/shared/lib/keywords.txt
|
||||
" From version: 1.8.16
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
" Authored By: Riccardo Casini <ric@libero.it>
|
||||
" Script URL: http://www.vim.org/scripts/script.php?script_id=1239
|
||||
" ChangeLog: Please visit the script URL for detailed change information
|
||||
" Included change from #970.
|
||||
|
||||
" Quit when a syntax file was already loaded.
|
||||
if exists("b:current_syntax")
|
||||
@@ -932,7 +933,7 @@ syn match autoitConst "\$SD_POWERDOWN"
|
||||
" constants - string
|
||||
syn match autoitConst "\$STR_NOCASESENSE"
|
||||
syn match autoitConst "\$STR_CASESENSE"
|
||||
syn match autoitConst "\STR_STRIPLEADING"
|
||||
syn match autoitConst "\$STR_STRIPLEADING"
|
||||
syn match autoitConst "\$STR_STRIPTRAILING"
|
||||
syn match autoitConst "\$STR_STRIPSPACES"
|
||||
syn match autoitConst "\$STR_STRIPALL"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: C
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2021 May 24
|
||||
" Last Change: 2021 Dec 07
|
||||
|
||||
" Quit when a (custom) syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -196,7 +196,6 @@ syn match cNumber display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
|
||||
" Flag the first zero of an octal number as something special
|
||||
syn match cOctal display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=cOctalZero
|
||||
syn match cOctalZero display contained "\<0"
|
||||
syn match cFloat display contained "\d\+f"
|
||||
"floating point number, with dot, optional exponent
|
||||
syn match cFloat display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
|
||||
"floating point number, starting with a dot, optional exponent
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -7,7 +7,7 @@
|
||||
" Nikolai Weibull (Add CSS2 support)
|
||||
" URL: https://github.com/vim-language-dept/css-syntax.vim
|
||||
" Maintainer: Jay Sitter <jay@jaysitter.com>
|
||||
" Last Change: 2021 Oct 15
|
||||
" Last Change: 2021 Oct 20
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if !exists("main_syntax")
|
||||
@@ -116,7 +116,7 @@ syn keyword cssColor contained ActiveBorder ActiveCaption AppWorkspace ButtonFac
|
||||
syn case ignore
|
||||
|
||||
syn match cssImportant contained "!\s*important\>"
|
||||
syn match cssCustomProp contained "--[a-zA-Z0-9-_]*"
|
||||
syn match cssCustomProp contained "\<--[a-zA-Z0-9-_]*\>"
|
||||
|
||||
syn match cssColor contained "\<transparent\>"
|
||||
syn match cssColor contained "\<currentColor\>"
|
||||
@@ -126,6 +126,7 @@ syn match cssColor contained "#\x\{6\}\>" contains=cssUnitDecorators
|
||||
syn match cssColor contained "#\x\{8\}\>" contains=cssUnitDecorators
|
||||
|
||||
syn region cssURL contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline
|
||||
syn region cssMathGroup contained matchgroup=cssMathParens start="(" end=")" containedin=cssFunction,cssMathGroup contains=cssCustomProp,cssValue.*,cssFunction,cssColor,cssStringQ,cssStringQQ oneline
|
||||
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(var\|calc\)\s*(" end=")" contains=cssCustomProp,cssValue.*,cssFunction,cssColor,cssStringQ,cssStringQQ oneline
|
||||
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\|steps\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma
|
||||
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\|color-stop\|from\|to\)\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma,cssFunction
|
||||
@@ -395,9 +396,9 @@ syn match cssUIAttr contained '\<preserve-3d\>'
|
||||
syn match cssIEUIAttr contained '\<bicubic\>'
|
||||
|
||||
" Webkit/iOS specific properties
|
||||
syn match cssUIProp contained '\<tap-highlight-color\|user-select\|touch-callout\>'
|
||||
syn match cssUIProp contained '\<\(tap-highlight-color\|user-select\|touch-callout\)\>'
|
||||
" IE specific properties
|
||||
syn match cssIEUIProp contained '\<interpolation-mode\|zoom\|filter\>'
|
||||
syn match cssIEUIProp contained '\<\(interpolation-mode\|zoom\|filter\)\>'
|
||||
|
||||
" Webkit/Firebox specific properties/attributes
|
||||
syn keyword cssUIProp contained appearance
|
||||
@@ -423,11 +424,15 @@ syn keyword cssAuralAttr contained male female child code digits continuous
|
||||
syn match cssMobileTextProp contained "\<text-size-adjust\>"
|
||||
|
||||
syn keyword cssMediaProp contained width height orientation scan
|
||||
syn match cssMediaProp contained /\(\(max\|min\)-\)\=\(\(device\)-\)\=aspect-ratio/
|
||||
syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-pixel-ratio/
|
||||
syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-\(height\|width\)/
|
||||
syn match cssMediaProp contained /\(\(max\|min\)-\)\=\(height\|width\|resolution\|monochrome\|color\(-index\)\=\)/
|
||||
syn keyword cssMediaProp contained any-hover any-pointer color-gamut grid hover
|
||||
syn keyword cssMediaProp contained overflow-block overflow-inline pointer update
|
||||
syn match cssMediaProp contained /\<\(\(max\|min\)-\)\=\(\(device\)-\)\=aspect-ratio\>/
|
||||
syn match cssMediaProp contained /\<\(\(max\|min\)-\)\=device-pixel-ratio\>/
|
||||
syn match cssMediaProp contained /\<\(\(max\|min\)-\)\=device-\(height\|width\)\>/
|
||||
syn match cssMediaProp contained /\<\(\(max\|min\)-\)\=\(height\|width\|resolution\|monochrome\|color\(-index\)\=\)\>/
|
||||
syn keyword cssMediaAttr contained portrait landscape progressive interlace
|
||||
syn keyword cssMediaAttr contained coarse fast fine hover infinite p3 paged
|
||||
syn keyword cssMediaAttr contained rec2020 scroll slow srgb
|
||||
syn match cssKeyFrameProp contained /\(\d\+\(\.\d\+\)\?%\|\(\<from\|to\>\)\)/ nextgroup=cssDefinition
|
||||
syn match cssPageMarginProp /@\(\(top\|left\|right\|bottom\)-\(left\|center\|right\|middle\|bottom\)\)\(-corner\)\=/ contained nextgroup=cssDefinition
|
||||
syn keyword cssPageProp contained content size
|
||||
@@ -445,17 +450,17 @@ syn match cssBraceError "}"
|
||||
syn match cssAttrComma ","
|
||||
|
||||
" Pseudo class
|
||||
" http://www.w3.org/TR/css3-selectors/
|
||||
" https://www.w3.org/TR/selectors-4/
|
||||
syn match cssPseudoClass ":[A-Za-z0-9_-]*" contains=cssNoise,cssPseudoClassId,cssUnicodeEscape,cssVendor,cssPseudoClassFn
|
||||
syn keyword cssPseudoClassId contained link visited active hover before after left right
|
||||
syn keyword cssPseudoClassId contained root empty target enable disabled checked invalid
|
||||
syn keyword cssPseudoClassId contained root empty target enabled disabled checked invalid
|
||||
syn match cssPseudoClassId contained "\<first-\(line\|letter\)\>"
|
||||
syn match cssPseudoClassId contained "\<\(first\|last\|only\)-\(of-type\|child\)\>"
|
||||
syn region cssPseudoClassFn contained matchgroup=cssFunctionName start="\<\(not\|lang\|\(nth\|nth-last\)-\(of-type\|child\)\)(" end=")" contains=cssStringQ,cssStringQQ
|
||||
syn match cssPseudoClassId contained "\<focus\(-within\|-visible\)\=\>"
|
||||
syn region cssPseudoClassFn contained matchgroup=cssFunctionName start="\<\(not\|is\|lang\|\(nth\|nth-last\)-\(of-type\|child\)\)(" end=")" contains=cssStringQ,cssStringQQ,cssTagName,cssAttributeSelector,cssClassName,cssIdentifier
|
||||
" ------------------------------------
|
||||
" Vendor specific properties
|
||||
syn match cssPseudoClassId contained "\<selection\>"
|
||||
syn match cssPseudoClassId contained "\<focus\(-inner\)\=\>"
|
||||
syn match cssPseudoClassId contained "\<\(input-\)\=placeholder\>"
|
||||
|
||||
" Misc highlight groups
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Maintainer: Debian Vim Maintainers
|
||||
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
|
||||
" Wichert Akkerman <wakkerma@debian.org>
|
||||
" Last Change: 2020 Oct 26
|
||||
" Last Change: 2021 Nov 26
|
||||
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debcontrol.vim
|
||||
|
||||
" Standard syntax initialization
|
||||
@@ -91,6 +91,11 @@ syn case ignore
|
||||
|
||||
" Handle all fields from deb-src-control(5)
|
||||
|
||||
" Catch-all for the legal fields
|
||||
syn region debcontrolField matchgroup=debcontrolKey start="^\%(\%(XSBC-Original-\)\=Maintainer\|Standards-Version\|Bugs\|Origin\|X[SB]-Python-Version\|\%(XS-\)\=Vcs-Mtn\|\%(XS-\)\=Testsuite\%(-Triggers\)\=\|Build-Profiles\|Tag\|Subarchitecture\|Kernel-Version\|Installer-Menu-Item\): " end="$" contains=debcontrolVariable,debcontrolEmail oneline
|
||||
syn region debcontrolMultiField matchgroup=debcontrolKey start="^\%(Build-\%(Conflicts\|Depends\)\%(-Arch\|-Indep\)\=\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Breaks\|Enhances\|Replaces\|Conflicts\|Provides\|Built-Using\|Uploaders\|X[SBC]\{0,3\}\%(Private-\)\=-[-a-zA-Z0-9]\+\): *" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolEmail,debcontrolVariable,debcontrolComment
|
||||
syn region debcontrolMultiFieldSpell matchgroup=debcontrolKey start="^Description: *" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolEmail,debcontrolVariable,debcontrolComment,@Spell
|
||||
|
||||
" Fields for which we do strict syntax checking
|
||||
syn region debcontrolStrictField matchgroup=debcontrolKey start="^Architecture: *" end="$" contains=debcontrolArchitecture,debcontrolSpace oneline
|
||||
syn region debcontrolStrictField matchgroup=debcontrolKey start="^Multi-Arch: *" end="$" contains=debcontrolMultiArch oneline
|
||||
@@ -99,20 +104,15 @@ syn region debcontrolStrictField matchgroup=debcontrolKey start="^Priority: *" e
|
||||
syn region debcontrolStrictField matchgroup=debcontrolKey start="^Section: *" end="$" contains=debcontrolSection oneline
|
||||
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XC-\)\=Package-Type: *" end="$" contains=debcontrolPackageType oneline
|
||||
syn region debcontrolStrictField matchgroup=debcontrolKey start="^Homepage: *" end="$" contains=debcontrolHTTPUrl oneline keepend
|
||||
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-\)\=Vcs-\%(Browser\|Arch\|Bzr\|Darcs\|Hg\): *" end="$" contains=debcontrolHTTPUrl oneline keepend
|
||||
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-\)\=Vcs-Svn: *" end="$" contains=debcontrolVcsSvn,debcontrolHTTPUrl oneline keepend
|
||||
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-\)\=Vcs-Cvs: *" end="$" contains=debcontrolVcsCvs oneline keepend
|
||||
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-\)\=Vcs-Git: *" end="$" contains=debcontrolVcsGit oneline keepend
|
||||
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-[-a-zA-Z0-9]\+-\)\=Vcs-\%(Browser\|Arch\|Bzr\|Darcs\|Hg\): *" end="$" contains=debcontrolHTTPUrl oneline keepend
|
||||
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-[-a-zA-Z0-9]\+-\)\=Vcs-Svn: *" end="$" contains=debcontrolVcsSvn,debcontrolHTTPUrl oneline keepend
|
||||
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-[-a-zA-Z0-9]\+-\)\=Vcs-Cvs: *" end="$" contains=debcontrolVcsCvs oneline keepend
|
||||
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-[-a-zA-Z0-9]\+-\)\=Vcs-Git: *" end="$" contains=debcontrolVcsGit oneline keepend
|
||||
syn region debcontrolStrictField matchgroup=debcontrolKey start="^Rules-Requires-Root: *" end="$" contains=debcontrolR3 oneline
|
||||
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(Build-\)\=Essential: *" end="$" contains=debcontrolYesNo oneline
|
||||
|
||||
syn region debcontrolStrictField matchgroup=debcontrolDeprecatedKey start="^\%(XS-\)\=DM-Upload-Allowed: *" end="$" contains=debcontrolDmUpload oneline
|
||||
|
||||
" Catch-all for the other legal fields
|
||||
syn region debcontrolField matchgroup=debcontrolKey start="^\%(\%(XSBC-Original-\)\=Maintainer\|Standards-Version\|Bugs\|Origin\|X[SB]-Python-Version\|\%(XS-\)\=Vcs-Mtn\|\%(XS-\)\=Testsuite\%(-Triggers\)\=\|Build-Profiles\|Tag\|Subarchitecture\|Kernel-Version\|Installer-Menu-Item\): " end="$" contains=debcontrolVariable,debcontrolEmail oneline
|
||||
syn region debcontrolMultiField matchgroup=debcontrolKey start="^\%(Build-\%(Conflicts\|Depends\)\%(-Arch\|-Indep\)\=\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Breaks\|Enhances\|Replaces\|Conflicts\|Provides\|Built-Using\|Uploaders\|X[SBC]\{0,3\}\%(Private-\)\=-[-a-zA-Z0-9]\+\): *" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolEmail,debcontrolVariable,debcontrolComment
|
||||
syn region debcontrolMultiFieldSpell matchgroup=debcontrolKey start="^Description: *" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolEmail,debcontrolVariable,debcontrolComment,@Spell
|
||||
|
||||
" Associate our matches and regions with pretty colours
|
||||
hi def link debcontrolKey Keyword
|
||||
hi def link debcontrolField Normal
|
||||
|
||||
57
runtime/syntax/dep3patch.vim
Normal file
57
runtime/syntax/dep3patch.vim
Normal file
@@ -0,0 +1,57 @@
|
||||
" Vim syntax file
|
||||
" Language: Debian DEP3 Patch headers
|
||||
" Maintainer: Gabriel Filion <gabster@lelutin.ca>
|
||||
" Last Change: 2021-01-09
|
||||
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/dep3patch.vim
|
||||
"
|
||||
" Specification of the DEP3 patch header format is available at:
|
||||
" https://dep-team.pages.debian.net/deps/dep3/
|
||||
|
||||
" Standard syntax initialization
|
||||
if exists('b:current_syntax')
|
||||
finish
|
||||
endif
|
||||
|
||||
runtime! syntax/diff.vim
|
||||
unlet! b:current_syntax
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
syn region dep3patchHeaders start="\%^" end="^\%(---\)\@=" contains=dep3patchKey,dep3patchMultiField
|
||||
|
||||
syn case ignore
|
||||
|
||||
syn region dep3patchMultiField matchgroup=dep3patchKey start="^\%(Description\|Subject\)\ze: *" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contained contains=@Spell
|
||||
syn region dep3patchMultiField matchgroup=dep3patchKey start="^Origin\ze: *" end="$" contained contains=dep3patchHTTPUrl,dep3patchCommitID,dep3patchOriginCategory oneline keepend
|
||||
syn region dep3patchMultiField matchgroup=dep3patchKey start="^Bug\%(-[[:graph:]]\+\)\?\ze: *" end="$" contained contains=dep3patchHTTPUrl oneline keepend
|
||||
syn region dep3patchMultiField matchgroup=dep3patchKey start="^Forwarded\ze: *" end="$" contained contains=dep3patchHTTPUrl,dep3patchForwardedShort oneline keepend
|
||||
syn region dep3patchMultiField matchgroup=dep3patchKey start="^\%(Author\|From\)\ze: *" end="$" contained contains=dep3patchEmail oneline keepend
|
||||
syn region dep3patchMultiField matchgroup=dep3patchKey start="^\%(Reviewed-by\|Acked-by\)\ze: *" end="$" contained contains=dep3patchEmail oneline keepend
|
||||
syn region dep3patchMultiField matchgroup=dep3patchKey start="^Last-Updated\ze: *" end="$" contained contains=dep3patchISODate oneline keepend
|
||||
syn region dep3patchMultiField matchgroup=dep3patchKey start="^Applied-Upstream\ze: *" end="$" contained contains=dep3patchHTTPUrl,dep3patchCommitID oneline keepend
|
||||
|
||||
syn match dep3patchHTTPUrl contained "\vhttps?://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
|
||||
syn match dep3patchCommitID contained "commit:[[:alnum:]]\+"
|
||||
syn match dep3patchOriginCategory contained "\%(upstream\|backport\|vendor\|other\), "
|
||||
syn match dep3patchForwardedShort contained "\%(yes\|no\|not-needed\), "
|
||||
syn match dep3patchEmail "[_=[:alnum:]\.+-]\+@[[:alnum:]\./\-]\+"
|
||||
syn match dep3patchEmail "<.\{-}>"
|
||||
syn match dep3patchISODate "[[:digit:]]\{4}-[[:digit:]]\{2}-[[:digit:]]\{2}"
|
||||
|
||||
" Associate our matches and regions with pretty colours
|
||||
hi def link dep3patchKey Keyword
|
||||
hi def link dep3patchOriginCategory Keyword
|
||||
hi def link dep3patchForwardedShort Keyword
|
||||
hi def link dep3patchMultiField Normal
|
||||
hi def link dep3patchHTTPUrl Identifier
|
||||
hi def link dep3patchCommitID Identifier
|
||||
hi def link dep3patchEmail Identifier
|
||||
hi def link dep3patchISODate Identifier
|
||||
|
||||
let b:current_syntax = 'dep3patch'
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim: ts=8 sw=2
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: Django template
|
||||
" Maintainer: Dave Hodder <dmh@dmh.org.uk>
|
||||
" Last Change: 2014 Jul 13
|
||||
" Last Change: 2021 Nov 29
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -31,6 +31,7 @@ syn keyword djangoStatement contained closecomment widthratio url with endwith
|
||||
syn keyword djangoStatement contained get_current_language trans noop blocktrans
|
||||
syn keyword djangoStatement contained endblocktrans get_available_languages
|
||||
syn keyword djangoStatement contained get_current_language_bidi plural
|
||||
syn keyword djangoStatement contained translate blocktranslate endblocktranslate
|
||||
|
||||
" Django templete built-in filters
|
||||
syn keyword djangoFilter contained add addslashes capfirst center cut date
|
||||
|
||||
@@ -45,7 +45,7 @@ if !exists("dtd_no_tag_errors")
|
||||
syn region dtdError contained start=+<!+lc=2 end=+>+
|
||||
endif
|
||||
|
||||
" if this is a html like comment hightlight also
|
||||
" if this is a html like comment highlight also
|
||||
" the opening <! and the closing > as Comment.
|
||||
syn region dtdComment start=+<![ \t]*--+ end=+-->+ contains=dtdTodo,@Spell
|
||||
|
||||
@@ -99,8 +99,8 @@ syn match dtdEntity "&[^; \t]*;" contains=dtdEntityPunct
|
||||
syn match dtdEntityPunct contained "[&.;]"
|
||||
|
||||
" Strings are between quotes
|
||||
syn region dtdString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=dtdAttrDef,dtdAttrType,dtdEnum,dtdParamEntityInst,dtdEntity,dtdCard
|
||||
syn region dtdString start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=dtdAttrDef,dtdAttrType,dtdEnum,dtdParamEntityInst,dtdEntity,dtdCard
|
||||
syn region dtdString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=dtdAttrDef,dtdAttrType,dtdParamEntityInst,dtdEntity,dtdCard
|
||||
syn region dtdString start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=dtdAttrDef,dtdAttrType,dtdParamEntityInst,dtdEntity,dtdCard
|
||||
|
||||
" Enumeration of elements or data between parenthesis
|
||||
"
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
" Language: GDB command files
|
||||
" Maintainer: Claudio Fleiner <claudio@fleiner.com>
|
||||
" URL: http://www.fleiner.com/vim/syntax/gdb.vim
|
||||
" Last Change: 2012 Oct 05
|
||||
" Last Change: 2021 Nov 15
|
||||
" Additional changes by Simon Sobisch
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -21,19 +22,19 @@ syn match gdbInfo contained "all-registers"
|
||||
|
||||
|
||||
syn keyword gdbStatement contained actions apply attach awatch backtrace break bt call catch cd clear collect commands
|
||||
syn keyword gdbStatement contained complete condition continue delete detach directory disable disassemble display down
|
||||
syn keyword gdbStatement contained complete condition continue delete detach directory disable disas[semble] disp[lay] down
|
||||
syn keyword gdbStatement contained echo else enable end file finish frame handle hbreak help if ignore
|
||||
syn keyword gdbStatement contained inspect jump kill list load maintenance make next nexti ni output overlay
|
||||
syn keyword gdbStatement contained passcount path print printf ptype pwd quit rbreak remote return run rwatch
|
||||
syn keyword gdbStatement contained search section set sharedlibrary shell show si signal source step stepi stepping
|
||||
syn keyword gdbStatement contained passcount path print printf ptype python pwd quit rbreak remote return run rwatch
|
||||
syn keyword gdbStatement contained search section set sharedlibrary shell show si signal skip source step stepi stepping
|
||||
syn keyword gdbStatement contained stop target tbreak tdump tfind thbreak thread tp trace tstart tstatus tstop
|
||||
syn keyword gdbStatement contained tty undisplay unset until up watch whatis where while ws x
|
||||
syn keyword gdbStatement contained tty und[isplay] unset until up watch whatis where while ws x
|
||||
syn match gdbFuncDef "\<define\>.*"
|
||||
syn match gdbStatmentContainer "^\s*\S\+" contains=gdbStatement,gdbFuncDef
|
||||
syn match gdbStatement "^\s*info" nextgroup=gdbInfo skipwhite skipempty
|
||||
|
||||
" some commonly used abbreviations
|
||||
syn keyword gdbStatement c disp undisp disas p
|
||||
syn keyword gdbStatement c cont p py
|
||||
|
||||
syn region gdbDocument matchgroup=gdbFuncDef start="\<document\>.*$" matchgroup=gdbFuncDef end="^end\s*$"
|
||||
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
" Maintainer: Josh Wainwright <wainwright DOT ja AT gmail DOT com>
|
||||
" Last Maintainer: Andrew Rasmussen andyras@users.sourceforge.net
|
||||
" Original Maintainer: John Hoelzel johnh51@users.sourceforge.net
|
||||
" Last Change: 2020 May 12
|
||||
" Last Change: 2021 Nov 16
|
||||
" additional changes from PR #8949
|
||||
" Filenames: *.gnu *.plt *.gpi *.gih *.gp *.gnuplot scripts: #!*gnuplot
|
||||
" URL: http://www.vim.org/scripts/script.php?script_id=4873
|
||||
" Original URL: http://johnh51.get.to/vim/syntax/gnuplot.vim
|
||||
@@ -32,22 +33,22 @@ syn match gnuplotSpecial "\\." contained
|
||||
" syn match gnuplotSpecial "\\\o\o\o\|\\x\x\x\|\\c[^"]\|\\[a-z\\]" contained
|
||||
|
||||
" measurements in the units in, cm and pt are special
|
||||
syn match gnuplotUnit "[0-9]+in"
|
||||
syn match gnuplotUnit "[0-9]+cm"
|
||||
syn match gnuplotUnit "[0-9]+pt"
|
||||
syn match gnuplotUnit "\d+in"
|
||||
syn match gnuplotUnit "\d+cm"
|
||||
syn match gnuplotUnit "\d+pt"
|
||||
|
||||
" external (shell) commands are special
|
||||
syn region gnuplotExternal start="!" end="$"
|
||||
syn region gnuplotExternal start="^\s*!" end="$"
|
||||
|
||||
" ---- Comments ---- "
|
||||
|
||||
syn region gnuplotComment start="#" end="$" contains=gnuplotTodo
|
||||
syn region gnuplotComment start="#" end="$" contains=gnuplotTodo,@Spell
|
||||
|
||||
" ---- Constants ---- "
|
||||
|
||||
" strings
|
||||
syn region gnuplotString start=+"+ skip=+\\"+ end=+"+ contains=gnuplotSpecial
|
||||
syn region gnuplotString start="'" end="'"
|
||||
syn region gnuplotString start=+"+ skip=+\\"+ end=+"+ contains=gnuplotSpecial,@Spell
|
||||
syn region gnuplotString start="'" end="'" contains=@Spell
|
||||
|
||||
" built-in variables
|
||||
syn keyword gnuplotNumber GNUTERM GPVAL_TERM GPVAL_TERMOPTIONS GPVAL_SPLOT
|
||||
@@ -76,7 +77,7 @@ syn keyword gnuplotNumber GPVAL_TERM_YSIZE GPVAL_VIEW_MAP GPVAL_VIEW_ROT_X
|
||||
syn keyword gnuplotNumber GPVAL_VIEW_ROT_Z GPVAL_VIEW_SCALE
|
||||
|
||||
" function name variables
|
||||
syn match gnuplotNumber "GPFUN_[a-zA-Z_]*"
|
||||
syn match gnuplotNumber "GPFUN_\h*"
|
||||
|
||||
" stats variables
|
||||
syn keyword gnuplotNumber STATS_records STATS_outofrange STATS_invalid
|
||||
@@ -104,23 +105,23 @@ syn keyword gnuplotError FIT_LAMBDA_FACTOR FIT_LOG FIT_SCRIPT
|
||||
|
||||
" integer number, or floating point number without a dot and with "f".
|
||||
syn case ignore
|
||||
syn match gnuplotNumber "\<[0-9]\+\(u\=l\=\|lu\|f\)\>"
|
||||
syn match gnuplotNumber "\<\d\+\(u\=l\=\|lu\|f\)\>"
|
||||
|
||||
" floating point number, with dot, optional exponent
|
||||
syn match gnuplotFloat "\<[0-9]\+\.[0-9]*\(e[-+]\=[0-9]\+\)\=[fl]\=\>"
|
||||
syn match gnuplotFloat "\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"
|
||||
|
||||
" floating point number, starting with a dot, optional exponent
|
||||
syn match gnuplotFloat "\.[0-9]\+\(e[-+]\=[0-9]\+\)\=[fl]\=\>"
|
||||
syn match gnuplotFloat "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
|
||||
|
||||
" floating point number, without dot, with exponent
|
||||
syn match gnuplotFloat "\<[0-9]\+e[-+]\=[0-9]\+[fl]\=\>"
|
||||
syn match gnuplotFloat "\<\d\+e[-+]\=\d\+[fl]\=\>"
|
||||
|
||||
" hex number
|
||||
syn match gnuplotNumber "\<0x[0-9a-f]\+\(u\=l\=\|lu\)\>"
|
||||
syn match gnuplotNumber "\<0x\x\+\(u\=l\=\|lu\)\>"
|
||||
syn case match
|
||||
|
||||
" flag an octal number with wrong digits by not highlighting
|
||||
syn match gnuplotOctalError "\<0[0-7]*[89]"
|
||||
syn match gnuplotOctalError "\<0\o*[89]"
|
||||
|
||||
" ---- Identifiers: Functions ---- "
|
||||
|
||||
@@ -374,8 +375,8 @@ syn keyword gnuplotKeyword nohead nooutliers nowedge off opaque outliers
|
||||
syn keyword gnuplotKeyword palette pattern pi pointinterval pointsize
|
||||
syn keyword gnuplotKeyword pointtype ps pt radius range rectangle
|
||||
syn keyword gnuplotKeyword rowstacked screen separation size solid sorted
|
||||
syn keyword gnuplotKeyword textbox transparent units unsorted userstyles
|
||||
syn keyword gnuplotKeyword wedge x x2 xx xy yy
|
||||
syn keyword gnuplotKeyword textbox units unsorted userstyles wedge
|
||||
syn keyword gnuplotKeyword x x2 xx xy yy
|
||||
" set surface
|
||||
syn keyword gnuplotKeyword surface implicit explicit
|
||||
" set table
|
||||
@@ -477,9 +478,13 @@ syn keyword gnuplotKeyword nooutput
|
||||
" keywords for 'test' command
|
||||
syn keyword gnuplotKeyword terminal palette rgb rbg grb gbr brg bgr
|
||||
|
||||
" The transparent gnuplot keyword cannot use 'syn keyword' as transparent
|
||||
" has a special meaning in :syntax commands.
|
||||
syn match gnuplotKeyword "\<transparent\>"
|
||||
|
||||
" ---- Macros ---- "
|
||||
|
||||
syn match gnuplotMacro "@[a-zA-Z0-9_]*"
|
||||
syn match gnuplotMacro "@\w*"
|
||||
|
||||
" ---- Todos ---- "
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
" Vim syntax file
|
||||
" Language: Russian Vim program help files *.rux
|
||||
" Maintainer: Restorer (restorers@users.sourceforge.net)
|
||||
" Maintainer: Restorer (restorers@users.sourceforge.net DEFUNCT)
|
||||
" Last Change: 04 Aprl 2017
|
||||
"
|
||||
|
||||
" Проверяем язык локали и установки опции 'helplang'
|
||||
" Если не русский, то выходим из скрипта.
|
||||
if ('ru' !~? v:lang || 'russian' !~? v:lang) && 'ru' !~? &helplang
|
||||
if (v:lang !~? 'ru' || v:lang !~? 'russian') && &helplang !~? 'ru'
|
||||
finish
|
||||
endif
|
||||
|
||||
|
||||
256
runtime/syntax/i3config.vim
Normal file
256
runtime/syntax/i3config.vim
Normal file
@@ -0,0 +1,256 @@
|
||||
" Vim syntax file
|
||||
" Language: i3 config file
|
||||
" Maintainer: Mohamed Boughaba <mohamed dot bgb at gmail dot com>
|
||||
" Version: 0.4
|
||||
" Last Change: 2021 Dec 14
|
||||
|
||||
" References:
|
||||
" http://i3wm.org/docs/userguide.html#configuring
|
||||
" http://vimdoc.sourceforge.net/htmldoc/syntax.html
|
||||
"
|
||||
"
|
||||
" Quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
" Error
|
||||
syn match i3ConfigError /.*/
|
||||
|
||||
" Todo
|
||||
syn keyword i3ConfigTodo TODO FIXME XXX contained
|
||||
|
||||
" Comment
|
||||
" Comments are started with a # and can only be used at the beginning of a line
|
||||
syn match i3ConfigComment /^\s*#.*$/ contains=i3ConfigTodo
|
||||
|
||||
" Font
|
||||
" A FreeType font description is composed by:
|
||||
" a font family, a style, a weight, a variant, a stretch and a size.
|
||||
syn match i3ConfigFontSeparator /,/ contained
|
||||
syn match i3ConfigFontSeparator /:/ contained
|
||||
syn keyword i3ConfigFontKeyword font contained
|
||||
syn match i3ConfigFontNamespace /\w\+:/ contained contains=i3ConfigFontSeparator
|
||||
syn match i3ConfigFontContent /-\?\w\+\(-\+\|\s\+\|,\)/ contained contains=i3ConfigFontNamespace,i3ConfigFontSeparator,i3ConfigFontKeyword
|
||||
syn match i3ConfigFontSize /\s\=\d\+\(px\)\?\s\?$/ contained
|
||||
syn match i3ConfigFont /^\s*font\s\+.*$/ contains=i3ConfigFontContent,i3ConfigFontSeparator,i3ConfigFontSize,i3ConfigFontNamespace
|
||||
syn match i3ConfigFont /^\s*font\s\+.*\(\\\_.*\)\?$/ contains=i3ConfigFontContent,i3ConfigFontSeparator,i3ConfigFontSize,i3ConfigFontNamespace
|
||||
syn match i3ConfigFont /^\s*font\s\+.*\(\\\_.*\)\?[^\\]\+$/ contains=i3ConfigFontContent,i3ConfigFontSeparator,i3ConfigFontSize,i3ConfigFontNamespace
|
||||
syn match i3ConfigFont /^\s*font\s\+\(\(.*\\\_.*\)\|\(.*[^\\]\+$\)\)/ contains=i3ConfigFontContent,i3ConfigFontSeparator,i3ConfigFontSize,i3ConfigFontNamespace
|
||||
|
||||
" variables
|
||||
syn match i3ConfigString /\(['"]\)\(.\{-}\)\1/ contained
|
||||
syn match i3ConfigColor /#\w\{6}/ contained
|
||||
syn match i3ConfigVariableModifier /+/ contained
|
||||
syn match i3ConfigVariableAndModifier /+\w\+/ contained contains=i3ConfigVariableModifier
|
||||
syn match i3ConfigVariable /\$\w\+\(\(-\w\+\)\+\)\?\(\s\|+\)\?/ contains=i3ConfigVariableModifier,i3ConfigVariableAndModifier
|
||||
syn keyword i3ConfigInitializeKeyword set contained
|
||||
syn match i3ConfigInitialize /^\s*set\s\+.*$/ contains=i3ConfigVariable,i3ConfigInitializeKeyword,i3ConfigColor,i3ConfigString
|
||||
|
||||
" Gaps
|
||||
syn keyword i3ConfigGapStyleKeyword inner outer horizontal vertical top right bottom left current all set plus minus toggle up down contained
|
||||
syn match i3ConfigGapStyle /^\s*\(gaps\)\s\+\(inner\|outer\|horizontal\|vertical\|left\|top\|right\|bottom\)\(\s\+\(current\|all\)\)\?\(\s\+\(set\|plus\|minus\|toggle\)\)\?\(\s\+\(-\?\d\+\|\$.*\)\)$/ contains=i3ConfigGapStyleKeyword,i3ConfigNumber,i3ConfigVariable
|
||||
syn keyword i3ConfigSmartGapKeyword on inverse_outer contained
|
||||
syn match i3ConfigSmartGap /^\s*smart_gaps\s\+\(on\|inverse_outer\)\s\?$/ contains=i3ConfigSmartGapKeyword
|
||||
syn keyword i3ConfigSmartBorderKeyword on no_gaps contained
|
||||
syn match i3ConfigSmartBorder /^\s*smart_borders\s\+\(on\|no_gaps\)\s\?$/ contains=i3ConfigSmartBorderKeyword
|
||||
|
||||
" Keyboard bindings
|
||||
syn keyword i3ConfigAction toggle fullscreen restart key import kill shrink grow contained
|
||||
syn keyword i3ConfigAction focus move grow height width split layout resize restore reload mute unmute exit mode workspace container to contained
|
||||
syn match i3ConfigModifier /\w\++\w\+\(\(+\w\+\)\+\)\?/ contained contains=i3ConfigVariableModifier
|
||||
syn match i3ConfigNumber /\s\d\+/ contained
|
||||
syn match i3ConfigUnit /\sp\(pt\|x\)/ contained
|
||||
syn match i3ConfigUnitOr /\sor/ contained
|
||||
syn keyword i3ConfigBindKeyword bindsym bindcode exec gaps border contained
|
||||
syn match i3ConfigBindArgument /--\w\+\(\(-\w\+\)\+\)\?\s/ contained
|
||||
syn match i3ConfigBind /^\s*\(bindsym\|bindcode\)\s\+.*$/ contains=i3ConfigVariable,i3ConfigBindKeyword,i3ConfigVariableAndModifier,i3ConfigNumber,i3ConfigUnit,i3ConfigUnitOr,i3ConfigBindArgument,i3ConfigModifier,i3ConfigAction,i3ConfigString,i3ConfigGapStyleKeyword,i3ConfigBorderStyleKeyword
|
||||
|
||||
" Floating
|
||||
syn keyword i3ConfigSizeSpecial x contained
|
||||
syn match i3ConfigNegativeSize /-/ contained
|
||||
syn match i3ConfigSize /-\?\d\+\s\?x\s\?-\?\d\+/ contained contains=i3ConfigSizeSpecial,i3ConfigNumber,i3ConfigNegativeSize
|
||||
syn match i3ConfigFloating /^\s*floating_modifier\s\+\$\w\+\d\?/ contains=i3ConfigVariable
|
||||
syn match i3ConfigFloating /^\s*floating_\(maximum\|minimum\)_size\s\+-\?\d\+\s\?x\s\?-\?\d\+/ contains=i3ConfigSize
|
||||
|
||||
" Orientation
|
||||
syn keyword i3ConfigOrientationKeyword vertical horizontal auto contained
|
||||
syn match i3ConfigOrientation /^\s*default_orientation\s\+\(vertical\|horizontal\|auto\)\s\?$/ contains=i3ConfigOrientationKeyword
|
||||
|
||||
" Layout
|
||||
syn keyword i3ConfigLayoutKeyword default stacking tabbed contained
|
||||
syn match i3ConfigLayout /^\s*workspace_layout\s\+\(default\|stacking\|tabbed\)\s\?$/ contains=i3ConfigLayoutKeyword
|
||||
|
||||
" Border style
|
||||
syn keyword i3ConfigBorderStyleKeyword none normal pixel contained
|
||||
syn match i3ConfigBorderStyle /^\s*\(new_window\|new_float\|default_border\|default_floating_border\)\s\+\(none\|\(normal\|pixel\)\(\s\+\d\+\)\?\(\s\+\$\w\+\(\(-\w\+\)\+\)\?\(\s\|+\)\?\)\?\)\s\?$/ contains=i3ConfigBorderStyleKeyword,i3ConfigNumber,i3ConfigVariable
|
||||
|
||||
" Hide borders and edges
|
||||
syn keyword i3ConfigEdgeKeyword none vertical horizontal both smart smart_no_gaps contained
|
||||
syn match i3ConfigEdge /^\s*hide_edge_borders\s\+\(none\|vertical\|horizontal\|both\|smart\|smart_no_gaps\)\s\?$/ contains=i3ConfigEdgeKeyword
|
||||
|
||||
" Arbitrary commands for specific windows (for_window)
|
||||
syn keyword i3ConfigCommandKeyword for_window contained
|
||||
syn region i3ConfigWindowStringSpecial start=+"+ skip=+\\"+ end=+"+ contained contains=i3ConfigString
|
||||
syn region i3ConfigWindowCommandSpecial start="\[" end="\]" contained contains=i3ConfigWindowStringSpacial,i3ConfigString
|
||||
syn match i3ConfigArbitraryCommand /^\s*for_window\s\+.*$/ contains=i3ConfigWindowCommandSpecial,i3ConfigCommandKeyword,i3ConfigBorderStyleKeyword,i3ConfigLayoutKeyword,i3ConfigOrientationKeyword,Size,i3ConfigNumber
|
||||
|
||||
" Disable focus open opening
|
||||
syn keyword i3ConfigNoFocusKeyword no_focus contained
|
||||
syn match i3ConfigDisableFocus /^\s*no_focus\s\+.*$/ contains=i3ConfigWindowCommandSpecial,i3ConfigNoFocusKeyword
|
||||
|
||||
" Move client to specific workspace automatically
|
||||
syn keyword i3ConfigAssignKeyword assign contained
|
||||
syn match i3ConfigAssignSpecial /→/ contained
|
||||
syn match i3ConfigAssign /^\s*assign\s\+.*$/ contains=i3ConfigAssignKeyword,i3ConfigWindowCommandSpecial,i3ConfigAssignSpecial
|
||||
|
||||
" X resources
|
||||
syn keyword i3ConfigResourceKeyword set_from_resource contained
|
||||
syn match i3ConfigResource /^\s*set_from_resource\s\+.*$/ contains=i3ConfigResourceKeyword,i3ConfigWindowCommandSpecial,i3ConfigColor,i3ConfigVariable
|
||||
|
||||
" Auto start applications
|
||||
syn keyword i3ConfigExecKeyword exec exec_always contained
|
||||
syn match i3ConfigNoStartupId /--no-startup-id/ contained " We are not using i3ConfigBindArgument as only no-startup-id is supported here
|
||||
syn match i3ConfigExec /^\s*exec\(_always\)\?\s\+.*$/ contains=i3ConfigExecKeyword,i3ConfigNoStartupId,i3ConfigString
|
||||
|
||||
" Automatically putting workspaces on specific screens
|
||||
syn keyword i3ConfigWorkspaceKeyword workspace contained
|
||||
syn keyword i3ConfigOutput output contained
|
||||
syn match i3ConfigWorkspace /^\s*workspace\s\+.*$/ contains=i3ConfigWorkspaceKeyword,i3ConfigNumber,i3ConfigString,i3ConfigOutput
|
||||
|
||||
" Changing colors
|
||||
syn keyword i3ConfigClientColorKeyword client focused focused_inactive unfocused urgent placeholder background contained
|
||||
syn match i3ConfigClientColor /^\s*client.\w\+\s\+.*$/ contains=i3ConfigClientColorKeyword,i3ConfigColor,i3ConfigVariable
|
||||
|
||||
syn keyword i3ConfigTitleAlignKeyword left center right contained
|
||||
syn match i3ConfigTitleAlign /^\s*title_align\s\+.*$/ contains=i3ConfigTitleAlignKeyword
|
||||
|
||||
" Interprocess communication
|
||||
syn match i3ConfigInterprocessKeyword /ipc-socket/ contained
|
||||
syn match i3ConfigInterprocess /^\s*ipc-socket\s\+.*$/ contains=i3ConfigInterprocessKeyword
|
||||
|
||||
" Mouse warping
|
||||
syn keyword i3ConfigMouseWarpingKeyword mouse_warping contained
|
||||
syn keyword i3ConfigMouseWarpingType output none contained
|
||||
syn match i3ConfigMouseWarping /^\s*mouse_warping\s\+\(output\|none\)\s\?$/ contains=i3ConfigMouseWarpingKeyword,i3ConfigMouseWarpingType
|
||||
|
||||
" Focus follows mouse
|
||||
syn keyword i3ConfigFocusFollowsMouseKeyword focus_follows_mouse contained
|
||||
syn keyword i3ConfigFocusFollowsMouseType yes no contained
|
||||
syn match i3ConfigFocusFollowsMouse /^\s*focus_follows_mouse\s\+\(yes\|no\)\s\?$/ contains=i3ConfigFocusFollowsMouseKeyword,i3ConfigFocusFollowsMouseType
|
||||
|
||||
" Popups during fullscreen mode
|
||||
syn keyword i3ConfigPopupOnFullscreenKeyword popup_during_fullscreen contained
|
||||
syn keyword i3ConfigPopuponFullscreenType smart ignore leave_fullscreen contained
|
||||
syn match i3ConfigPopupOnFullscreen /^\s*popup_during_fullscreen\s\+\w\+\s\?$/ contains=i3ConfigPopupOnFullscreenKeyword,i3ConfigPopupOnFullscreenType
|
||||
|
||||
" Focus wrapping
|
||||
syn keyword i3ConfigFocusWrappingKeyword force_focus_wrapping focus_wrapping contained
|
||||
syn keyword i3ConfigFocusWrappingType yes no contained
|
||||
syn match i3ConfigFocusWrapping /^\s*\(force_\)\?focus_wrapping\s\+\(yes\|no\)\s\?$/ contains=i3ConfigFocusWrappingType,i3ConfigFocusWrappingKeyword
|
||||
|
||||
" Forcing Xinerama
|
||||
syn keyword i3ConfigForceXineramaKeyword force_xinerama contained
|
||||
syn match i3ConfigForceXinerama /^\s*force_xinerama\s\+\(yes\|no\)\s\?$/ contains=i3ConfigFocusWrappingType,i3ConfigForceXineramaKeyword
|
||||
|
||||
" Automatic back-and-forth when switching to the current workspace
|
||||
syn keyword i3ConfigAutomaticSwitchKeyword workspace_auto_back_and_forth contained
|
||||
syn match i3ConfigAutomaticSwitch /^\s*workspace_auto_back_and_forth\s\+\(yes\|no\)\s\?$/ contains=i3ConfigFocusWrappingType,i3ConfigAutomaticSwitchKeyword
|
||||
|
||||
" Delay urgency hint
|
||||
syn keyword i3ConfigTimeUnit ms contained
|
||||
syn keyword i3ConfigDelayUrgencyKeyword force_display_urgency_hint contained
|
||||
syn match i3ConfigDelayUrgency /^\s*force_display_urgency_hint\s\+\d\+\s\+ms\s\?$/ contains=i3ConfigFocusWrappingType,i3ConfigDelayUrgencyKeyword,i3ConfigNumber,i3ConfigTimeUnit
|
||||
|
||||
" Focus on window activation
|
||||
syn keyword i3ConfigFocusOnActivationKeyword focus_on_window_activation contained
|
||||
syn keyword i3ConfigFocusOnActivationType smart urgent focus none contained
|
||||
syn match i3ConfigFocusOnActivation /^\s*focus_on_window_activation\s\+\(smart\|urgent\|focus\|none\)\s\?$/ contains=i3ConfigFocusOnActivationKeyword,i3ConfigFocusOnActivationType
|
||||
|
||||
" Automatic back-and-forth when switching to the current workspace
|
||||
syn keyword i3ConfigDrawingMarksKeyword show_marks contained
|
||||
syn match i3ConfigDrawingMarks /^\s*show_marks\s\+\(yes\|no\)\s\?$/ contains=i3ConfigFocusWrappingType,i3ConfigDrawingMarksKeyword
|
||||
|
||||
" Group mode/bar
|
||||
syn keyword i3ConfigBlockKeyword mode bar colors i3bar_command status_command position exec mode hidden_state modifier id position output background statusline tray_output tray_padding separator separator_symbol workspace_buttons strip_workspace_numbers binding_mode_indicator focused_workspace active_workspace inactive_workspace urgent_workspace binding_mode contained
|
||||
syn region i3ConfigBlock start=+.*s\?{$+ end=+^}$+ contains=i3ConfigBlockKeyword,i3ConfigString,i3ConfigBind,i3ConfigComment,i3ConfigFont,i3ConfigFocusWrappingType,i3ConfigColor,i3ConfigVariable transparent keepend extend
|
||||
|
||||
" Line continuation
|
||||
syn region i3ConfigLineCont start=/^.*\\$/ end=/^.*$/ contains=i3ConfigBlockKeyword,i3ConfigString,i3ConfigBind,i3ConfigComment,i3ConfigFont,i3ConfigFocusWrappingType,i3ConfigColor,i3ConfigVariable transparent keepend extend
|
||||
|
||||
" Define the highlighting.
|
||||
hi def link i3ConfigError Error
|
||||
hi def link i3ConfigTodo Todo
|
||||
hi def link i3ConfigComment Comment
|
||||
hi def link i3ConfigFontContent Type
|
||||
hi def link i3ConfigFocusOnActivationType Type
|
||||
hi def link i3ConfigPopupOnFullscreenType Type
|
||||
hi def link i3ConfigOrientationKeyword Type
|
||||
hi def link i3ConfigMouseWarpingType Type
|
||||
hi def link i3ConfigFocusFollowsMouseType Type
|
||||
hi def link i3ConfigGapStyleKeyword Type
|
||||
hi def link i3ConfigTitleAlignKeyword Type
|
||||
hi def link i3ConfigSmartGapKeyword Type
|
||||
hi def link i3ConfigSmartBorderKeyword Type
|
||||
hi def link i3ConfigLayoutKeyword Type
|
||||
hi def link i3ConfigBorderStyleKeyword Type
|
||||
hi def link i3ConfigEdgeKeyword Type
|
||||
hi def link i3ConfigAction Type
|
||||
hi def link i3ConfigCommand Type
|
||||
hi def link i3ConfigOutput Type
|
||||
hi def link i3ConfigWindowCommandSpecial Type
|
||||
hi def link i3ConfigFocusWrappingType Type
|
||||
hi def link i3ConfigUnitOr Type
|
||||
hi def link i3ConfigFontSize Constant
|
||||
hi def link i3ConfigColor Constant
|
||||
hi def link i3ConfigNumber Constant
|
||||
hi def link i3ConfigUnit Constant
|
||||
hi def link i3ConfigVariableAndModifier Constant
|
||||
hi def link i3ConfigTimeUnit Constant
|
||||
hi def link i3ConfigModifier Constant
|
||||
hi def link i3ConfigString Constant
|
||||
hi def link i3ConfigNegativeSize Constant
|
||||
hi def link i3ConfigFontSeparator Special
|
||||
hi def link i3ConfigVariableModifier Special
|
||||
hi def link i3ConfigSizeSpecial Special
|
||||
hi def link i3ConfigWindowSpecial Special
|
||||
hi def link i3ConfigAssignSpecial Special
|
||||
hi def link i3ConfigFontNamespace PreProc
|
||||
hi def link i3ConfigBindArgument PreProc
|
||||
hi def link i3ConfigNoStartupId PreProc
|
||||
hi def link i3ConfigFontKeyword Identifier
|
||||
hi def link i3ConfigBindKeyword Identifier
|
||||
hi def link i3ConfigOrientation Identifier
|
||||
hi def link i3ConfigGapStyle Identifier
|
||||
hi def link i3ConfigTitleAlign Identifier
|
||||
hi def link i3ConfigSmartGap Identifier
|
||||
hi def link i3ConfigSmartBorder Identifier
|
||||
hi def link i3ConfigLayout Identifier
|
||||
hi def link i3ConfigBorderStyle Identifier
|
||||
hi def link i3ConfigEdge Identifier
|
||||
hi def link i3ConfigFloating Identifier
|
||||
hi def link i3ConfigCommandKeyword Identifier
|
||||
hi def link i3ConfigNoFocusKeyword Identifier
|
||||
hi def link i3ConfigInitializeKeyword Identifier
|
||||
hi def link i3ConfigAssignKeyword Identifier
|
||||
hi def link i3ConfigResourceKeyword Identifier
|
||||
hi def link i3ConfigExecKeyword Identifier
|
||||
hi def link i3ConfigWorkspaceKeyword Identifier
|
||||
hi def link i3ConfigClientColorKeyword Identifier
|
||||
hi def link i3ConfigInterprocessKeyword Identifier
|
||||
hi def link i3ConfigMouseWarpingKeyword Identifier
|
||||
hi def link i3ConfigFocusFollowsMouseKeyword Identifier
|
||||
hi def link i3ConfigPopupOnFullscreenKeyword Identifier
|
||||
hi def link i3ConfigFocusWrappingKeyword Identifier
|
||||
hi def link i3ConfigForceXineramaKeyword Identifier
|
||||
hi def link i3ConfigAutomaticSwitchKeyword Identifier
|
||||
hi def link i3ConfigDelayUrgencyKeyword Identifier
|
||||
hi def link i3ConfigFocusOnActivationKeyword Identifier
|
||||
hi def link i3ConfigDrawingMarksKeyword Identifier
|
||||
hi def link i3ConfigBlockKeyword Identifier
|
||||
hi def link i3ConfigVariable Statement
|
||||
hi def link i3ConfigArbitraryCommand Type
|
||||
|
||||
let b:current_syntax = "i3config"
|
||||
@@ -1,7 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: indent(1) configuration file
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2010-01-23
|
||||
" Language: indent(1) configuration file
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Last Change: 2021 Nov 17
|
||||
" indent_is_bsd: If exists, will change somewhat to match BSD implementation
|
||||
"
|
||||
" TODO: is the deny-all (a la lilo.vim nice or no?)...
|
||||
@@ -27,7 +28,7 @@ syn region indentComment start='//' skip='\\$' end='$'
|
||||
\ contains=indentTodo,@Spell
|
||||
|
||||
if !exists("indent_is_bsd")
|
||||
syn match indentOptions '-i\|--indentation-level\|-il\|--indent-level'
|
||||
syn match indentOptions '-i\|--indent-level\|-il\|--indent-label'
|
||||
\ nextgroup=indentNumber skipwhite skipempty
|
||||
endif
|
||||
syn match indentOptions '-\%(bli\|c\%([bl]i\|[dip]\)\=\|di\=\|ip\=\|lc\=\|pp\=i\|sbi\|ts\|-\%(brace-indent\|comment-indentation\|case-brace-indentation\|declaration-comment-column\|continuation-indentation\|case-indentation\|else-endif-column\|line-comments-indentation\|declaration-indentation\|indent-level\|parameter-indentation\|line-length\|comment-line-length\|paren-indentation\|preprocessor-indentation\|struct-brace-indentation\|tab-size\)\)'
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: Lisp
|
||||
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" Last Change: Jul 11, 2019
|
||||
" Version: 30
|
||||
" Last Change: Nov 10, 2021
|
||||
" Version: 31
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_LISP
|
||||
"
|
||||
" Thanks to F Xavier Noria for a list of 978 Common Lisp symbols taken from HyperSpec
|
||||
@@ -54,20 +54,20 @@ if exists("g:lisp_rainbow") && g:lisp_rainbow != 0
|
||||
syn region lispParen8 contained matchgroup=hlLevel8 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen9
|
||||
syn region lispParen9 contained matchgroup=hlLevel9 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen0
|
||||
else
|
||||
syn region lispList matchgroup=lispParen start="(" skip="|.\{-}|" matchgroup=lispParen end=")" contains=@lispListCluster
|
||||
syn region lispBQList matchgroup=PreProc start="`(" skip="|.\{-}|" matchgroup=PreProc end=")" contains=@lispListCluster
|
||||
syn region lispList matchgroup=lispParen start="(" skip="|.\{-}|" matchgroup=lispParen end=")" contains=@lispListCluster
|
||||
syn region lispBQList matchgroup=PreProc start="`(" skip="|.\{-}|" matchgroup=PreProc end=")" contains=@lispListCluster
|
||||
endif
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Atoms: {{{1
|
||||
syn match lispAtomMark "'"
|
||||
syn match lispAtom "'("me=e-1 contains=lispAtomMark nextgroup=lispAtomList
|
||||
syn match lispAtom "'[^ \t()]\+" contains=lispAtomMark
|
||||
syn match lispAtomBarSymbol !'|..\{-}|! contains=lispAtomMark
|
||||
syn region lispAtom start=+'"+ skip=+\\"+ end=+"+
|
||||
syn region lispAtomList contained matchgroup=Special start="(" skip="|.\{-}|" matchgroup=Special end=")" contains=@lispAtomCluster,lispString,lispEscapeSpecial
|
||||
syn match lispAtomNmbr contained "\<\d\+"
|
||||
syn match lispLeadWhite contained "^\s\+"
|
||||
syn match lispAtomMark "'"
|
||||
syn match lispAtom "'("me=e-1 contains=lispAtomMark nextgroup=lispAtomList
|
||||
syn match lispAtom "'[^ \t()]\+" contains=lispAtomMark
|
||||
syn match lispAtomBarSymbol !'|..\{-}|! contains=lispAtomMark
|
||||
syn region lispAtom start=+'"+ skip=+\\"+ end=+"+
|
||||
syn region lispAtomList contained matchgroup=Special start="(" skip="|.\{-}|" matchgroup=Special end=")" contains=@lispAtomCluster,lispString,lispEscapeSpecial
|
||||
syn match lispAtomNmbr contained "\<\d\+"
|
||||
syn match lispLeadWhite contained "^\s\+"
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Standard Lisp Functions and Macros: {{{1
|
||||
@@ -553,6 +553,8 @@ syn match lispParenError ")"
|
||||
syn cluster lispCommentGroup contains=lispTodo,@Spell
|
||||
syn match lispComment ";.*$" contains=@lispCommentGroup
|
||||
syn region lispCommentRegion start="#|" end="|#" contains=lispCommentRegion,@lispCommentGroup
|
||||
syn region lispComment start="#+nil" end="\ze)" contains=@lispCommentGroup
|
||||
syn match lispComment '^\s*#+nil.*$' contains=@lispCommentGroup
|
||||
syn keyword lispTodo contained combak combak: todo todo:
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" License: VIM License
|
||||
" Maintainer: Nirbheek Chauhan <nirbheek.chauhan@gmail.com>
|
||||
" Liam Beguin <liambeguin@gmail.com>
|
||||
" Last Change: 2019 Oct 18
|
||||
" Last Change: 2021 Aug 16
|
||||
" Credits: Zvezdan Petkovic <zpetkovic@acm.org>
|
||||
" Neil Schemenauer <nas@meson.ca>
|
||||
" Dmitry Vasiliev
|
||||
@@ -56,9 +56,11 @@ syn match mesonEscape "\\$"
|
||||
" Meson only supports integer numbers
|
||||
" http://mesonbuild.com/Syntax.html#numbers
|
||||
syn match mesonNumber "\<\d\+\>"
|
||||
syn match mesonNumber "\<0x\x\+\>"
|
||||
syn match mesonNumber "\<0o\o\+\>"
|
||||
|
||||
" booleans
|
||||
syn keyword mesonConstant false true
|
||||
syn keyword mesonBoolean false true
|
||||
|
||||
" Built-in functions
|
||||
syn keyword mesonBuiltin
|
||||
@@ -97,6 +99,7 @@ syn keyword mesonBuiltin
|
||||
\ install_headers
|
||||
\ install_man
|
||||
\ install_subdir
|
||||
\ install_emptydir
|
||||
\ is_disabler
|
||||
\ is_variable
|
||||
\ jar
|
||||
@@ -118,6 +121,7 @@ syn keyword mesonBuiltin
|
||||
\ summary
|
||||
\ target_machine
|
||||
\ test
|
||||
\ unset_variable
|
||||
\ vcs_tag
|
||||
\ warning
|
||||
\ range
|
||||
@@ -133,15 +137,15 @@ endif
|
||||
" The default highlight links. Can be overridden later.
|
||||
hi def link mesonStatement Statement
|
||||
hi def link mesonConditional Conditional
|
||||
hi def link mesonRepeat Repeat
|
||||
hi def link mesonRepeat Repeat
|
||||
hi def link mesonOperator Operator
|
||||
hi def link mesonComment Comment
|
||||
hi def link mesonTodo Todo
|
||||
hi def link mesonString String
|
||||
hi def link mesonEscape Special
|
||||
hi def link mesonNumber Number
|
||||
hi def link mesonString String
|
||||
hi def link mesonEscape Special
|
||||
hi def link mesonNumber Number
|
||||
hi def link mesonBuiltin Function
|
||||
hi def link mesonConstant Number
|
||||
hi def link mesonBoolean Boolean
|
||||
if exists("meson_space_error_higlight")
|
||||
hi def link mesonSpaceError Error
|
||||
endif
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: Python
|
||||
" Maintainer: Zvezdan Petkovic <zpetkovic@acm.org>
|
||||
" Last Change: 2021 Feb 15
|
||||
" Last Change: 2021 Dec 10
|
||||
" Credits: Neil Schemenauer <nas@python.ca>
|
||||
" Dmitry Vasiliev
|
||||
"
|
||||
@@ -77,13 +77,14 @@ endif
|
||||
"
|
||||
" The list can be checked using:
|
||||
"
|
||||
" python3 -c 'import keyword, pprint; pprint.pprint(keyword.kwlist, compact=True)'
|
||||
" python3 -c 'import keyword, pprint; pprint.pprint(keyword.kwlist + keyword.softkwlist, compact=True)'
|
||||
"
|
||||
syn keyword pythonStatement False None True
|
||||
syn keyword pythonStatement as assert break continue del global
|
||||
syn keyword pythonStatement lambda nonlocal pass return with yield
|
||||
syn keyword pythonStatement class def nextgroup=pythonFunction skipwhite
|
||||
syn keyword pythonConditional elif else if
|
||||
syn keyword pythonConditional case match
|
||||
syn keyword pythonRepeat for while
|
||||
syn keyword pythonOperator and in is not or
|
||||
syn keyword pythonException except finally raise try
|
||||
|
||||
91
runtime/syntax/routeros.vim
Normal file
91
runtime/syntax/routeros.vim
Normal file
@@ -0,0 +1,91 @@
|
||||
" Vim syntax file
|
||||
" Language: MikroTik RouterOS Script
|
||||
" Maintainer: zainin <z@wintr.dev>
|
||||
" Original Author: ndbjorne @ MikroTik forums
|
||||
" Last Change: 2021 Nov 14
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
syn case ignore
|
||||
|
||||
syn iskeyword @,48-57,-
|
||||
|
||||
" comments
|
||||
syn match routerosComment /^\s*\zs#.*/
|
||||
|
||||
" options submenus: /interface ether1 etc
|
||||
syn match routerosSubMenu "\([a-z]\)\@<!/[a-zA-Z0-9-]*"
|
||||
|
||||
" variables are matched by looking at strings ending with "=", e.g. var=
|
||||
syn match routerosVariable "[a-zA-Z0-9-/]*\(=\)\@="
|
||||
syn match routerosVariable "$[a-zA-Z0-9-]*"
|
||||
|
||||
" colored for clarity
|
||||
syn match routerosDelimiter "[,=]"
|
||||
" match slash in CIDR notation (1.2.3.4/24, 2001:db8::/48, ::1/128)
|
||||
syn match routerosDelimiter "\(\x\|:\)\@<=\/\(\d\)\@="
|
||||
" dash in IP ranges
|
||||
syn match routerosDelimiter "\(\x\|:\)\@<=-\(\x\|:\)\@="
|
||||
|
||||
" match service names after "set", like in original routeros syntax
|
||||
syn match routerosService "\(set\)\@<=\s\(api-ssl\|api\|dns\|ftp\|http\|https\|pim\|ntp\|smb\|ssh\|telnet\|winbox\|www\|www-ssl\)"
|
||||
|
||||
" colors various interfaces
|
||||
syn match routerosInterface "bridge\d\+\|ether\d\+\|wlan\d\+\|pppoe-\(out\|in\)\d\+"
|
||||
|
||||
syn keyword routerosBoolean yes no true false
|
||||
|
||||
syn keyword routerosConditional if
|
||||
|
||||
" operators
|
||||
syn match routerosOperator " \zs[-+*<>=!~^&.,]\ze "
|
||||
syn match routerosOperator "[<>!]="
|
||||
syn match routerosOperator "<<\|>>"
|
||||
syn match routerosOperator "[+-]\d\@="
|
||||
|
||||
syn keyword routerosOperator and or in
|
||||
|
||||
" commands
|
||||
syn keyword routerosCommands beep delay put len typeof pick log time set find environment
|
||||
syn keyword routerosCommands terminal error parse resolve toarray tobool toid toip toip6
|
||||
syn keyword routerosCommands tonum tostr totime add remove enable disable where get print
|
||||
syn keyword routerosCommands export edit find append as-value brief detail count-only file
|
||||
syn keyword routerosCommands follow follow-only from interval terse value-list without-paging
|
||||
syn keyword routerosCommands return
|
||||
|
||||
" variable types
|
||||
syn keyword routerosType global local
|
||||
|
||||
" loop keywords
|
||||
syn keyword routerosRepeat do while for foreach
|
||||
|
||||
syn match routerosSpecial "[():[\]{|}]"
|
||||
|
||||
syn match routerosLineContinuation "\\$"
|
||||
|
||||
syn match routerosEscape "\\["\\nrt$?_abfv]" contained display
|
||||
syn match routerosEscape "\\\x\x" contained display
|
||||
|
||||
syn region routerosString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=routerosEscape,routerosLineContinuation
|
||||
|
||||
hi link routerosComment Comment
|
||||
hi link routerosSubMenu Function
|
||||
hi link routerosVariable Identifier
|
||||
hi link routerosDelimiter Operator
|
||||
hi link routerosEscape Special
|
||||
hi link routerosService Type
|
||||
hi link routerosInterface Type
|
||||
hi link routerosBoolean Boolean
|
||||
hi link routerosConditional Conditional
|
||||
hi link routerosOperator Operator
|
||||
hi link routerosCommands Operator
|
||||
hi link routerosType Type
|
||||
hi link routerosRepeat Repeat
|
||||
hi link routerosSpecial Delimiter
|
||||
hi link routerosString String
|
||||
hi link routerosLineContinuation Special
|
||||
|
||||
let b:current_syntax = "routeros"
|
||||
@@ -2,8 +2,8 @@
|
||||
" Language: shell (sh) Korn shell (ksh) bash (sh)
|
||||
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int>
|
||||
" Last Change: Feb 18, 2021
|
||||
" Version: 198
|
||||
" Last Change: Oct 26, 2021
|
||||
" Version: 199
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH
|
||||
" For options and settings, please use: :help ft-sh-syntax
|
||||
" This file includes many ideas from Eric Brunet (eric.brunet@ens.fr) and heredoc fixes from Felipe Contreras
|
||||
@@ -147,7 +147,7 @@ if exists("b:is_kornshell") || exists("b:is_bash")
|
||||
endif
|
||||
syn cluster shCommandSubList contains=shAlias,shArithmetic,shCmdParenRegion,shCommandSub,shComment,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shEcho,shEscape,shExDoubleQuote,shExpr,shExSingleQuote,shHereDoc,shNumber,shOperator,shOption,shPosnParm,shHereString,shRedir,shSingleQuote,shSpecial,shStatement,shSubSh,shTest,shVariable
|
||||
syn cluster shCurlyList contains=shNumber,shComma,shDeref,shDerefSimple,shDerefSpecial
|
||||
" COMBAK: removing shEscape fromshDblQuoteList fails ksh04:43
|
||||
" COMBAK: removing shEscape from shDblQuoteList fails ksh04:43
|
||||
syn cluster shDblQuoteList contains=shArithmetic,shCommandSub,shCommandSubBQ,shDeref,shDerefSimple,shPosnParm,shCtrlSeq,shSpecial,shSpecialDQ
|
||||
syn cluster shDerefList contains=shDeref,shDerefSimple,shDerefVar,shDerefSpecial,shDerefWordError,shDerefPSR,shDerefPPS
|
||||
syn cluster shDerefVarList contains=shDerefOffset,shDerefOp,shDerefVarArray,shDerefOpError
|
||||
@@ -401,7 +401,7 @@ endif
|
||||
syn match shComment "^\s*\zs#.*$" contains=@shCommentGroup
|
||||
syn match shComment "\s\zs#.*$" contains=@shCommentGroup
|
||||
syn match shComment contained "#.*$" contains=@shCommentGroup
|
||||
syn match shQuickComment contained "#.*$"
|
||||
syn match shQuickComment contained "#.*$" contains=@shCommentGroup
|
||||
syn match shBQComment contained "#.\{-}\ze`" contains=@shCommentGroup
|
||||
|
||||
" Here Documents: {{{1
|
||||
|
||||
50
runtime/syntax/squirrel.vim
Normal file
50
runtime/syntax/squirrel.vim
Normal file
@@ -0,0 +1,50 @@
|
||||
" Vim syntax file
|
||||
" Language: squirrel
|
||||
" Current Maintainer: Matt Dunford (zenmatic@gmail.com)
|
||||
" URL: https://github.com/zenmatic/vim-syntax-squirrel
|
||||
" Last Change: 2021 Nov 28
|
||||
|
||||
" http://squirrel-lang.org/
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" inform C syntax that the file was included from cpp.vim
|
||||
let b:filetype_in_cpp_family = 1
|
||||
|
||||
" Read the C syntax to start with
|
||||
runtime! syntax/c.vim
|
||||
unlet b:current_syntax
|
||||
|
||||
" squirrel extensions
|
||||
syn keyword squirrelStatement delete this in yield resume base clone
|
||||
syn keyword squirrelAccess local
|
||||
syn keyword cConstant null
|
||||
syn keyword squirrelModifier static
|
||||
syn keyword squirrelType bool instanceof typeof
|
||||
syn keyword squirrelExceptions throw try catch
|
||||
syn keyword squirrelStructure class function extends constructor
|
||||
syn keyword squirrelBoolean true false
|
||||
syn keyword squirrelRepeat foreach
|
||||
|
||||
syn region squirrelMultiString start='@"' end='"$' end='";$'me=e-1
|
||||
|
||||
syn match squirrelShComment "^\s*#.*$"
|
||||
|
||||
" Default highlighting
|
||||
hi def link squirrelAccess squirrelStatement
|
||||
hi def link squirrelExceptions Exception
|
||||
hi def link squirrelStatement Statement
|
||||
hi def link squirrelModifier Type
|
||||
hi def link squirrelType Type
|
||||
hi def link squirrelStructure Structure
|
||||
hi def link squirrelBoolean Boolean
|
||||
hi def link squirrelMultiString String
|
||||
hi def link squirrelRepeat cRepeat
|
||||
hi def link squirrelShComment Comment
|
||||
|
||||
let b:current_syntax = "squirrel"
|
||||
|
||||
" vim: ts=8
|
||||
@@ -6,8 +6,8 @@
|
||||
" (previously Matt Neumann <mattneu@purpleturtle.com>)
|
||||
" (previously Allan Kelly <allan@fruitloaf.co.uk>)
|
||||
" Original: Robin Becker <robin@jessikat.demon.co.uk>
|
||||
" Last Change: 2021 Oct 03
|
||||
" Version: 1.14
|
||||
" Last Change: 2021 Nov 16
|
||||
" Version: 1.14 plus improvements from PR #8948
|
||||
" URL: (removed, no longer worked)
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
@@ -192,18 +192,18 @@ syn region tcltkCommand matchgroup=tcltkCommandColor start="\<lsort\>" matchgrou
|
||||
syn keyword tclTodo contained TODO
|
||||
|
||||
" Sequences which are backslash-escaped: http://www.tcl.tk/man/tcl8.5/TclCmd/Tcl.htm#M16
|
||||
" Octal, hexadecimal, unicode codepoints, and the classics.
|
||||
" Octal, hexadecimal, Unicode codepoints, and the classics.
|
||||
" Tcl takes as many valid characters in a row as it can, so \xAZ in a string is newline followed by 'Z'.
|
||||
syn match tclSpecial contained '\\\([0-7]\{1,3}\|x\x\{1,2}\|u\x\{1,4}\|[abfnrtv]\)'
|
||||
syn match tclSpecial contained '\\\(\o\{1,3}\|x\x\{1,2}\|u\x\{1,4}\|[abfnrtv]\)'
|
||||
syn match tclSpecial contained '\\[\[\]\{\}\"\$]'
|
||||
|
||||
" Command appearing inside another command or inside a string.
|
||||
syn region tclEmbeddedStatement start='\[' end='\]' contained contains=tclCommand,tclNumber,tclLineContinue,tclString,tclVarRef,tclEmbeddedStatement
|
||||
" A string needs the skip argument as it may legitimately contain \".
|
||||
" Match at start of line
|
||||
syn region tclString start=+^"+ end=+"+ contains=@tclSpecialC skip=+\\\\\|\\"+
|
||||
syn region tclString start=+^"+ end=+"+ contains=@tclSpecialC,@Spell skip=+\\\\\|\\"+
|
||||
"Match all other legal strings.
|
||||
syn region tclString start=+[^\\]"+ms=s+1 end=+"+ contains=@tclSpecialC,@tclVarRefC,tclEmbeddedStatement skip=+\\\\\|\\"+
|
||||
syn region tclString start=+[^\\]"+ms=s+1 end=+"+ contains=@tclSpecialC,@tclVarRefC,tclEmbeddedStatement,@Spell skip=+\\\\\|\\"+
|
||||
|
||||
" Line continuation is backslash immediately followed by newline.
|
||||
syn match tclLineContinue '\\$'
|
||||
@@ -222,12 +222,12 @@ syn match tclNumber "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
|
||||
"floating point number, without dot, with exponent
|
||||
syn match tclNumber "\<\d\+e[-+]\=\d\+[fl]\=\>"
|
||||
"hex number
|
||||
syn match tclNumber "0x[0-9a-f]\+\(u\=l\=\|lu\)\>"
|
||||
"syn match tclIdentifier "\<[a-z_][a-z0-9_]*\>"
|
||||
syn match tclNumber "0x\x\+\(u\=l\=\|lu\)\>"
|
||||
"syn match tclIdentifier "\<\h\w*\>"
|
||||
syn case match
|
||||
|
||||
syn region tclComment start="^\s*\#" skip="\\$" end="$" contains=tclTodo
|
||||
syn region tclComment start=/;\s*\#/hs=s+1 skip="\\$" end="$" contains=tclTodo
|
||||
syn region tclComment start="^\s*\#" skip="\\$" end="$" contains=tclTodo,@Spell
|
||||
syn region tclComment start=/;\s*\#/hs=s+1 skip="\\$" end="$" contains=tclTodo,@Spell
|
||||
|
||||
"syn match tclComment /^\s*\#.*$/
|
||||
"syn match tclComment /;\s*\#.*$/hs=s+1
|
||||
|
||||
@@ -1,396 +1,46 @@
|
||||
" Vim syntax file
|
||||
" Language: Texinfo (macro package for TeX)
|
||||
" Maintainer: Sandor Kopanyi <sandor.kopanyi@mailbox.hu>
|
||||
" URL: <->
|
||||
" Last Change: 2004 Jun 23
|
||||
"
|
||||
" the file follows the Texinfo manual structure; this file is based
|
||||
" on manual for Texinfo version 4.0, 28 September 1999
|
||||
" since @ can have special meanings, everything is 'match'-ed and 'region'-ed
|
||||
" (including @ in 'iskeyword' option has unexpected effects)
|
||||
" Language: Texinfo (documentation format)
|
||||
" Maintainer: Robert Dodier <robert.dodier@gmail.com>
|
||||
" Latest Revision: 2021-12-15
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
if !exists("main_syntax")
|
||||
let main_syntax = 'texinfo'
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
syn match texinfoControlSequence display '\(@end [a-zA-Z@]\+\|@[a-zA-Z@]\+\)'
|
||||
|
||||
syn match texinfoComment display '^\s*\(@comment\|@c\)\>.*$'
|
||||
|
||||
syn region texinfoCode matchgroup=texinfoControlSequence start="@code{" end="}" contains=ALL
|
||||
syn region texinfoVerb matchgroup=texinfoControlSequence start="@verb{" end="}" contains=ALL
|
||||
|
||||
syn region texinfoArgument matchgroup=texinfoBrace start="{" end="}" contains=ALLBUT
|
||||
|
||||
syn region texinfoExample matchgroup=texinfoControlSequence start="^@example\s*$" end="^@end example\s*$" contains=ALL
|
||||
|
||||
syn region texinfoVerbatim matchgroup=texinfoControlSequence start="^@verbatim\s*$" end="^@end verbatim\s*$"
|
||||
|
||||
syn region texinfoMenu matchgroup=texinfoControlSequence start="^@menu\s*$" end="^@end menu\s*$"
|
||||
|
||||
if exists("g:texinfo_delimiters")
|
||||
syn match texinfoDelimiter display '[][{}]'
|
||||
endif
|
||||
|
||||
"in Texinfo can be real big things, like tables; sync for that
|
||||
syn sync lines=200
|
||||
|
||||
"some general stuff
|
||||
"syn match texinfoError "\S" contained TODO
|
||||
syn match texinfoIdent "\k\+" contained "IDENTifier
|
||||
syn match texinfoAssignment "\k\+\s*=\s*\k\+\s*$" contained "assigment statement ( var = val )
|
||||
syn match texinfoSinglePar "\k\+\s*$" contained "single parameter (used for several @-commands)
|
||||
syn match texinfoIndexPar "\k\k\s*$" contained "param. used for different *index commands (+ @documentlanguage command)
|
||||
|
||||
|
||||
"marking words and phrases (chap. 9 in Texinfo manual)
|
||||
"(almost) everything appears as 'contained' too; is for tables (@table)
|
||||
|
||||
"this chapter is at the beginning of this file to avoid overwritings
|
||||
|
||||
syn match texinfoSpecialChar "@acronym" contained
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@acronym{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
syn match texinfoSpecialChar "@b" contained
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@b{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
syn match texinfoSpecialChar "@cite" contained
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@cite{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
syn match texinfoSpecialChar "@code" contained
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@code{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
syn match texinfoSpecialChar "@command" contained
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@command{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
syn match texinfoSpecialChar "@dfn" contained
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@dfn{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
syn match texinfoSpecialChar "@email" contained
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@email{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
syn match texinfoSpecialChar "@emph" contained
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@emph{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
syn match texinfoSpecialChar "@env" contained
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@env{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
syn match texinfoSpecialChar "@file" contained
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@file{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
syn match texinfoSpecialChar "@i" contained
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@i{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
syn match texinfoSpecialChar "@kbd" contained
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@kbd{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
syn match texinfoSpecialChar "@key" contained
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@key{" end="}" contains=texinfoSpecialChar
|
||||
syn match texinfoSpecialChar "@option" contained
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@option{" end="}" contains=texinfoSpecialChar
|
||||
syn match texinfoSpecialChar "@r" contained
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@r{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
syn match texinfoSpecialChar "@samp" contained
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@samp{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
syn match texinfoSpecialChar "@sc" contained
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@sc{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
syn match texinfoSpecialChar "@strong" contained
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@strong{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
syn match texinfoSpecialChar "@t" contained
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@t{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
syn match texinfoSpecialChar "@url" contained
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@url{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
syn match texinfoSpecialChar "@var" contained
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@var{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
syn match texinfoAtCmd "^@kbdinputstyle" nextgroup=texinfoSinglePar skipwhite
|
||||
|
||||
|
||||
"overview of Texinfo (chap. 1 in Texinfo manual)
|
||||
syn match texinfoComment "@c .*"
|
||||
syn match texinfoComment "@c$"
|
||||
syn match texinfoComment "@comment .*"
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoComment start="^@ignore\s*$" end="^@end ignore\s*$" contains=ALL
|
||||
|
||||
|
||||
"beginning a Texinfo file (chap. 3 in Texinfo manual)
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="@center " skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd oneline
|
||||
syn region texinfoMltlnDMAtCmd matchgroup=texinfoAtCmd start="^@detailmenu\s*$" end="^@end detailmenu\s*$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@setfilename " skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@settitle " skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@shorttitlepage " skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@title " skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@titlefont{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@titlepage\s*$" end="^@end titlepage\s*$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoMltlnDMAtCmd,texinfoAtCmd,texinfoPrmAtCmd,texinfoMltlnAtCmd
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@vskip " skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
syn match texinfoAtCmd "^@exampleindent" nextgroup=texinfoSinglePar skipwhite
|
||||
syn match texinfoAtCmd "^@headings" nextgroup=texinfoSinglePar skipwhite
|
||||
syn match texinfoAtCmd "^\\input" nextgroup=texinfoSinglePar skipwhite
|
||||
syn match texinfoAtCmd "^@paragraphindent" nextgroup=texinfoSinglePar skipwhite
|
||||
syn match texinfoAtCmd "^@setchapternewpage" nextgroup=texinfoSinglePar skipwhite
|
||||
|
||||
|
||||
"ending a Texinfo file (chap. 4 in Texinfo manual)
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="@author " skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
"all below @bye should be comment TODO
|
||||
syn match texinfoAtCmd "^@bye\s*$"
|
||||
syn match texinfoAtCmd "^@contents\s*$"
|
||||
syn match texinfoAtCmd "^@printindex" nextgroup=texinfoIndexPar skipwhite
|
||||
syn match texinfoAtCmd "^@setcontentsaftertitlepage\s*$"
|
||||
syn match texinfoAtCmd "^@setshortcontentsaftertitlepage\s*$"
|
||||
syn match texinfoAtCmd "^@shortcontents\s*$"
|
||||
syn match texinfoAtCmd "^@summarycontents\s*$"
|
||||
|
||||
|
||||
"chapter structuring (chap. 5 in Texinfo manual)
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@appendix" skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@appendixsec" skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@appendixsection" skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@appendixsubsec" skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@appendixsubsubsec" skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@centerchap" skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@chapheading" skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@chapter" skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@heading" skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@majorheading" skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@section" skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@subheading " skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@subsection" skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@subsubheading" skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@subsubsection" skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@subtitle" skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd oneline
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@unnumbered" skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@unnumberedsec" skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@unnumberedsubsec" skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@unnumberedsubsubsec" skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
syn match texinfoAtCmd "^@lowersections\s*$"
|
||||
syn match texinfoAtCmd "^@raisesections\s*$"
|
||||
|
||||
|
||||
"nodes (chap. 6 in Texinfo manual)
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@anchor{" end="}"
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@top" skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@node" skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
|
||||
|
||||
"menus (chap. 7 in Texinfo manual)
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@menu\s*$" end="^@end menu\s*$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoMltlnDMAtCmd
|
||||
|
||||
|
||||
"cross references (chap. 8 in Texinfo manual)
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@inforef{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@pxref{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@ref{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@uref{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@xref{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
|
||||
|
||||
"marking words and phrases (chap. 9 in Texinfo manual)
|
||||
"(almost) everything appears as 'contained' too; is for tables (@table)
|
||||
|
||||
"this chapter is at the beginning of this file to avoid overwritings
|
||||
|
||||
|
||||
"quotations and examples (chap. 10 in Texinfo manual)
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@cartouche\s*$" end="^@end cartouche\s*$" contains=ALL
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@display\s*$" end="^@end display\s*$" contains=ALL
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@example\s*$" end="^@end example\s*$" contains=ALL
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@flushleft\s*$" end="^@end flushleft\s*$" contains=ALL
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@flushright\s*$" end="^@end flushright\s*$" contains=ALL
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@format\s*$" end="^@end format\s*$" contains=ALL
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@lisp\s*$" end="^@end lisp\s*$" contains=ALL
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@quotation\s*$" end="^@end quotation\s*$" contains=ALL
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@smalldisplay\s*$" end="^@end smalldisplay\s*$" contains=ALL
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@smallexample\s*$" end="^@end smallexample\s*$" contains=ALL
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@smallformat\s*$" end="^@end smallformat\s*$" contains=ALL
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@smalllisp\s*$" end="^@end smalllisp\s*$" contains=ALL
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@exdent" skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
syn match texinfoAtCmd "^@noindent\s*$"
|
||||
syn match texinfoAtCmd "^@smallbook\s*$"
|
||||
|
||||
|
||||
"lists and tables (chap. 11 in Texinfo manual)
|
||||
syn match texinfoAtCmd "@asis" contained
|
||||
syn match texinfoAtCmd "@columnfractions" contained
|
||||
syn match texinfoAtCmd "@item" contained
|
||||
syn match texinfoAtCmd "@itemx" contained
|
||||
syn match texinfoAtCmd "@tab" contained
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@enumerate" end="^@end enumerate\s*$" contains=ALL
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@ftable" end="^@end ftable\s*$" contains=ALL
|
||||
syn region texinfoMltlnNAtCmd matchgroup=texinfoAtCmd start="^@itemize" end="^@end itemize\s*$" contains=ALL
|
||||
syn region texinfoMltlnNAtCmd matchgroup=texinfoAtCmd start="^@multitable" end="^@end multitable\s*$" contains=ALL
|
||||
syn region texinfoMltlnNAtCmd matchgroup=texinfoAtCmd start="^@table" end="^@end table\s*$" contains=ALL
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@vtable" end="^@end vtable\s*$" contains=ALL
|
||||
|
||||
|
||||
"indices (chap. 12 in Texinfo manual)
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@\(c\|f\|k\|p\|t\|v\)index" skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@..index" skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
"@defcodeindex and @defindex is defined after chap. 15's @def* commands (otherwise those ones will overwrite these ones)
|
||||
syn match texinfoSIPar "\k\k\s*\k\k\s*$" contained
|
||||
syn match texinfoAtCmd "^@syncodeindex" nextgroup=texinfoSIPar skipwhite
|
||||
syn match texinfoAtCmd "^@synindex" nextgroup=texinfoSIPar skipwhite
|
||||
|
||||
"special insertions (chap. 13 in Texinfo manual)
|
||||
syn match texinfoSpecialChar "@\(!\|?\|@\|\s\)"
|
||||
syn match texinfoSpecialChar "@{"
|
||||
syn match texinfoSpecialChar "@}"
|
||||
"accents
|
||||
syn match texinfoSpecialChar "@=."
|
||||
syn match texinfoSpecialChar "@\('\|\"\|\^\|`\)[aeiouyAEIOUY]"
|
||||
syn match texinfoSpecialChar "@\~[aeinouyAEINOUY]"
|
||||
syn match texinfoSpecialChar "@dotaccent{.}"
|
||||
syn match texinfoSpecialChar "@H{.}"
|
||||
syn match texinfoSpecialChar "@,{[cC]}"
|
||||
syn match texinfoSpecialChar "@AA{}"
|
||||
syn match texinfoSpecialChar "@aa{}"
|
||||
syn match texinfoSpecialChar "@L{}"
|
||||
syn match texinfoSpecialChar "@l{}"
|
||||
syn match texinfoSpecialChar "@O{}"
|
||||
syn match texinfoSpecialChar "@o{}"
|
||||
syn match texinfoSpecialChar "@ringaccent{.}"
|
||||
syn match texinfoSpecialChar "@tieaccent{..}"
|
||||
syn match texinfoSpecialChar "@u{.}"
|
||||
syn match texinfoSpecialChar "@ubaraccent{.}"
|
||||
syn match texinfoSpecialChar "@udotaccent{.}"
|
||||
syn match texinfoSpecialChar "@v{.}"
|
||||
"ligatures
|
||||
syn match texinfoSpecialChar "@AE{}"
|
||||
syn match texinfoSpecialChar "@ae{}"
|
||||
syn match texinfoSpecialChar "@copyright{}"
|
||||
syn match texinfoSpecialChar "@bullet" contained "for tables and lists
|
||||
syn match texinfoSpecialChar "@bullet{}"
|
||||
syn match texinfoSpecialChar "@dotless{i}"
|
||||
syn match texinfoSpecialChar "@dotless{j}"
|
||||
syn match texinfoSpecialChar "@dots{}"
|
||||
syn match texinfoSpecialChar "@enddots{}"
|
||||
syn match texinfoSpecialChar "@equiv" contained "for tables and lists
|
||||
syn match texinfoSpecialChar "@equiv{}"
|
||||
syn match texinfoSpecialChar "@error{}"
|
||||
syn match texinfoSpecialChar "@exclamdown{}"
|
||||
syn match texinfoSpecialChar "@expansion{}"
|
||||
syn match texinfoSpecialChar "@minus" contained "for tables and lists
|
||||
syn match texinfoSpecialChar "@minus{}"
|
||||
syn match texinfoSpecialChar "@OE{}"
|
||||
syn match texinfoSpecialChar "@oe{}"
|
||||
syn match texinfoSpecialChar "@point" contained "for tables and lists
|
||||
syn match texinfoSpecialChar "@point{}"
|
||||
syn match texinfoSpecialChar "@pounds{}"
|
||||
syn match texinfoSpecialChar "@print{}"
|
||||
syn match texinfoSpecialChar "@questiondown{}"
|
||||
syn match texinfoSpecialChar "@result" contained "for tables and lists
|
||||
syn match texinfoSpecialChar "@result{}"
|
||||
syn match texinfoSpecialChar "@ss{}"
|
||||
syn match texinfoSpecialChar "@TeX{}"
|
||||
"other
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@dmn{" end="}"
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@footnote{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@image{" end="}"
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@math{" end="}"
|
||||
syn match texinfoAtCmd "@footnotestyle" nextgroup=texinfoSinglePar skipwhite
|
||||
|
||||
|
||||
"making and preventing breaks (chap. 14 in Texinfo manual)
|
||||
syn match texinfoSpecialChar "@\(\*\|-\|\.\)"
|
||||
syn match texinfoAtCmd "^@need" nextgroup=texinfoSinglePar skipwhite
|
||||
syn match texinfoAtCmd "^@page\s*$"
|
||||
syn match texinfoAtCmd "^@sp" nextgroup=texinfoSinglePar skipwhite
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@group\s*$" end="^@end group\s*$" contains=ALL
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@hyphenation{" end="}"
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@w{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
|
||||
|
||||
"definition commands (chap. 15 in Texinfo manual)
|
||||
syn match texinfoMltlnAtCmdFLine "^@def\k\+" contained
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@def\k\+" end="^@end def\k\+$" contains=ALL
|
||||
|
||||
"next 2 commands are from chap. 12; must be defined after @def* commands above to overwrite them
|
||||
syn match texinfoAtCmd "@defcodeindex" nextgroup=texinfoIndexPar skipwhite
|
||||
syn match texinfoAtCmd "@defindex" nextgroup=texinfoIndexPar skipwhite
|
||||
|
||||
|
||||
"conditionally visible text (chap. 16 in Texinfo manual)
|
||||
syn match texinfoAtCmd "^@clear" nextgroup=texinfoSinglePar skipwhite
|
||||
syn region texinfoMltln2AtCmd matchgroup=texinfoAtCmd start="^@html\s*$" end="^@end html\s*$"
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@ifclear" end="^@end ifclear\s*$" contains=ALL
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@ifhtml" end="^@end ifhtml\s*$" contains=ALL
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@ifinfo" end="^@end ifinfo\s*$" contains=ALL
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@ifnothtml" end="^@end ifnothtml\s*$" contains=ALL
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@ifnotinfo" end="^@end ifnotinfo\s*$" contains=ALL
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@ifnottex" end="^@end ifnottex\s*$" contains=ALL
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@ifset" end="^@end ifset\s*$" contains=ALL
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@iftex" end="^@end iftex\s*$" contains=ALL
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@set " skip="\\$" end="$" contains=texinfoSpecialChar oneline
|
||||
syn region texinfoTexCmd start="\$\$" end="\$\$" contained
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@tex" end="^@end tex\s*$" contains=texinfoTexCmd
|
||||
syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@value{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
|
||||
|
||||
"internationalization (chap. 17 in Texinfo manual)
|
||||
syn match texinfoAtCmd "@documentencoding" nextgroup=texinfoSinglePar skipwhite
|
||||
syn match texinfoAtCmd "@documentlanguage" nextgroup=texinfoIndexPar skipwhite
|
||||
|
||||
|
||||
"defining new texinfo commands (chap. 18 in Texinfo manual)
|
||||
syn match texinfoAtCmd "@alias" nextgroup=texinfoAssignment skipwhite
|
||||
syn match texinfoDIEPar "\S*\s*,\s*\S*\s*,\s*\S*\s*$" contained
|
||||
syn match texinfoAtCmd "@definfoenclose" nextgroup=texinfoDIEPar skipwhite
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@macro" end="^@end macro\s*$" contains=ALL
|
||||
|
||||
|
||||
"formatting hardcopy (chap. 19 in Texinfo manual)
|
||||
syn match texinfoAtCmd "^@afourlatex\s*$"
|
||||
syn match texinfoAtCmd "^@afourpaper\s*$"
|
||||
syn match texinfoAtCmd "^@afourwide\s*$"
|
||||
syn match texinfoAtCmd "^@finalout\s*$"
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@pagesizes" end="$" oneline
|
||||
|
||||
|
||||
"creating and installing Info Files (chap. 20 in Texinfo manual)
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@dircategory" skip="\\$" end="$" oneline
|
||||
syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@direntry\s*$" end="^@end direntry\s*$" contains=texinfoSpecialChar
|
||||
syn match texinfoAtCmd "^@novalidate\s*$"
|
||||
|
||||
|
||||
"include files (appendix E in Texinfo manual)
|
||||
syn match texinfoAtCmd "^@include" nextgroup=texinfoSinglePar skipwhite
|
||||
|
||||
|
||||
"page headings (appendix F in Texinfo manual)
|
||||
syn match texinfoHFSpecialChar "@|" contained
|
||||
syn match texinfoThisAtCmd "@thischapter" contained
|
||||
syn match texinfoThisAtCmd "@thischaptername" contained
|
||||
syn match texinfoThisAtCmd "@thisfile" contained
|
||||
syn match texinfoThisAtCmd "@thispage" contained
|
||||
syn match texinfoThisAtCmd "@thistitle" contained
|
||||
syn match texinfoThisAtCmd "@today{}" contained
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@evenfooting" skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@evenheading" skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@everyfooting" skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@everyheading" skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@oddfooting" skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline
|
||||
syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@oddheading" skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline
|
||||
|
||||
|
||||
"refilling paragraphs (appendix H in Texinfo manual)
|
||||
syn match texinfoAtCmd "@refill"
|
||||
|
||||
|
||||
syn cluster texinfoAll contains=ALLBUT,texinfoThisAtCmd,texinfoHFSpecialChar
|
||||
syn cluster texinfoReducedAll contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
|
||||
"==============================================================================
|
||||
" highlighting
|
||||
|
||||
" Only when an item doesn't have highlighting yet
|
||||
|
||||
hi def link texinfoSpecialChar Special
|
||||
hi def link texinfoHFSpecialChar Special
|
||||
|
||||
hi def link texinfoError Error
|
||||
hi def link texinfoIdent Identifier
|
||||
hi def link texinfoAssignment Identifier
|
||||
hi def link texinfoSinglePar Identifier
|
||||
hi def link texinfoIndexPar Identifier
|
||||
hi def link texinfoSIPar Identifier
|
||||
hi def link texinfoDIEPar Identifier
|
||||
hi def link texinfoTexCmd PreProc
|
||||
|
||||
|
||||
hi def link texinfoAtCmd Statement "@-command
|
||||
hi def link texinfoPrmAtCmd String "@-command in one line with unknown nr. of parameters
|
||||
"is String because is found as a region and is 'matchgroup'-ed
|
||||
"to texinfoAtCmd
|
||||
hi def link texinfoBrcPrmAtCmd String "@-command with parameter(s) in braces ({})
|
||||
"is String because is found as a region and is 'matchgroup'-ed to texinfoAtCmd
|
||||
hi def link texinfoMltlnAtCmdFLine texinfoAtCmd "repeated embedded First lines in @-commands
|
||||
hi def link texinfoMltlnAtCmd String "@-command in multiple lines
|
||||
"is String because is found as a region and is 'matchgroup'-ed to texinfoAtCmd
|
||||
hi def link texinfoMltln2AtCmd PreProc "@-command in multiple lines (same as texinfoMltlnAtCmd, just with other colors)
|
||||
hi def link texinfoMltlnDMAtCmd PreProc "@-command in multiple lines (same as texinfoMltlnAtCmd, just with other colors; used for @detailmenu, which can be included in @menu)
|
||||
hi def link texinfoMltlnNAtCmd Normal "@-command in multiple lines (same as texinfoMltlnAtCmd, just with other colors)
|
||||
hi def link texinfoThisAtCmd Statement "@-command used in headers and footers (@this... series)
|
||||
|
||||
hi def link texinfoComment Comment
|
||||
|
||||
|
||||
hi def link texinfoDelimiter Delimiter
|
||||
hi def link texinfoComment Comment
|
||||
hi def link texinfoControlSequence Identifier
|
||||
hi def link texinfoBrace Operator
|
||||
hi def link texinfoArgument Special
|
||||
hi def link texinfoExample String
|
||||
hi def link texinfoVerbatim String
|
||||
hi def link texinfoVerb String
|
||||
hi def link texinfoCode String
|
||||
hi def link texinfoMenu String
|
||||
|
||||
let b:current_syntax = "texinfo"
|
||||
|
||||
if main_syntax == 'texinfo'
|
||||
unlet main_syntax
|
||||
endif
|
||||
|
||||
" vim: ts=8
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
" Vim syntax file
|
||||
" Language: Visual Basic
|
||||
" Maintainer: Tim Chase <vb.vim@tim.thechases.com>
|
||||
" Former Maintainer: Robert M. Cortopassi <cortopar@mindspring.com>
|
||||
" (tried multiple times to contact, but email bounced)
|
||||
" Language: Visual Basic
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Former Maintainer: Tim Chase <vb.vim@tim.thechases.com>
|
||||
" Former Maintainer: Robert M. Cortopassi <cortopar@mindspring.com>
|
||||
" (tried multiple times to contact, but email bounced)
|
||||
" Last Change:
|
||||
" 2021 Nov 26 Incorporated additions from Doug Kearns
|
||||
" 2005 May 25 Synched with work by Thomas Barthel
|
||||
" 2004 May 30 Added a few keywords
|
||||
|
||||
@@ -13,7 +15,7 @@
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
finish
|
||||
endif
|
||||
|
||||
" VB is case insensitive
|
||||
@@ -233,7 +235,7 @@ syn keyword vbKeyword Public PublicNotCreateable OnNewProcessSingleUse
|
||||
syn keyword vbKeyword InSameProcessMultiUse GlobalMultiUse Resume Seek
|
||||
syn keyword vbKeyword Set Static Step String Time WithEvents
|
||||
|
||||
syn keyword vbTodo contained TODO
|
||||
syn keyword vbTodo contained TODO
|
||||
|
||||
"Datatypes
|
||||
syn keyword vbTypes Boolean Byte Currency Date Decimal Double Empty
|
||||
@@ -319,46 +321,54 @@ syn match vbNumber "\<\d\+\>"
|
||||
syn match vbNumber "\<\d\+\.\d*\>"
|
||||
"floating point number, starting with a dot
|
||||
syn match vbNumber "\.\d\+\>"
|
||||
"syn match vbNumber "{[[:xdigit:]-]\+}\|&[hH][[:xdigit:]]\+&"
|
||||
"syn match vbNumber ":[[:xdigit:]]\+"
|
||||
"syn match vbNumber "[-+]\=\<\d\+\>"
|
||||
syn match vbFloat "[-+]\=\<\d\+[eE][\-+]\=\d\+"
|
||||
syn match vbFloat "[-+]\=\<\d\+\.\d*\([eE][\-+]\=\d\+\)\="
|
||||
syn match vbFloat "[-+]\=\<\.\d\+\([eE][\-+]\=\d\+\)\="
|
||||
"syn match vbNumber "{[[:xdigit:]-]\+}\|&[hH][[:xdigit:]]\+&"
|
||||
"syn match vbNumber ":[[:xdigit:]]\+"
|
||||
"syn match vbNumber "[-+]\=\<\d\+\>"
|
||||
syn match vbFloat "[-+]\=\<\d\+[eE][\-+]\=\d\+"
|
||||
syn match vbFloat "[-+]\=\<\d\+\.\d*\([eE][\-+]\=\d\+\)\="
|
||||
syn match vbFloat "[-+]\=\<\.\d\+\([eE][\-+]\=\d\+\)\="
|
||||
|
||||
" String and Character contstants
|
||||
" String and Character constants
|
||||
syn region vbString start=+"+ end=+"\|$+
|
||||
syn region vbComment start="\(^\|\s\)REM\s" end="$" contains=vbTodo
|
||||
syn region vbComment start="\(^\|\s\)\'" end="$" contains=vbTodo
|
||||
syn match vbLineNumber "^\d\+\(\s\|$\)"
|
||||
syn match vbTypeSpecifier "[a-zA-Z0-9][\$%&!#]"ms=s+1
|
||||
syn match vbLineLabel "^\h\w\+:"
|
||||
syn match vbLineNumber "^\d\+\(:\|\s\|$\)"
|
||||
syn match vbTypeSpecifier "\<\a\w*[@\$%&!#]"ms=s+1
|
||||
syn match vbTypeSpecifier "#[a-zA-Z0-9]"me=e-1
|
||||
" Conditional Compilation
|
||||
syn match vbPreProc "^#const\>"
|
||||
syn region vbPreProc matchgroup=PreProc start="^#if\>" end="\<then\>" transparent contains=TOP
|
||||
syn region vbPreProc matchgroup=PreProc start="^#elseif\>" end="\<then\>" transparent contains=TOP
|
||||
syn match vbPreProc "^#else\>"
|
||||
syn match vbPreProc "^#end\s*if\>"
|
||||
|
||||
" Define the default highlighting.
|
||||
" Only when an item doesn't have highlighting yet
|
||||
|
||||
hi def link vbBoolean Boolean
|
||||
hi def link vbLineNumber Comment
|
||||
hi def link vbComment Comment
|
||||
hi def link vbConditional Conditional
|
||||
hi def link vbConst Constant
|
||||
hi def link vbDefine Constant
|
||||
hi def link vbError Error
|
||||
hi def link vbFunction Identifier
|
||||
hi def link vbIdentifier Identifier
|
||||
hi def link vbNumber Number
|
||||
hi def link vbFloat Float
|
||||
hi def link vbMethods PreProc
|
||||
hi def link vbOperator Operator
|
||||
hi def link vbRepeat Repeat
|
||||
hi def link vbString String
|
||||
hi def link vbStatement Statement
|
||||
hi def link vbKeyword Statement
|
||||
hi def link vbEvents Special
|
||||
hi def link vbTodo Todo
|
||||
hi def link vbTypes Type
|
||||
hi def link vbTypeSpecifier Type
|
||||
|
||||
hi def link vbBoolean Boolean
|
||||
hi def link vbLineNumber Comment
|
||||
hi def link vbLineLabel Comment
|
||||
hi def link vbComment Comment
|
||||
hi def link vbConditional Conditional
|
||||
hi def link vbConst Constant
|
||||
hi def link vbDefine Constant
|
||||
hi def link vbError Error
|
||||
hi def link vbFunction Identifier
|
||||
hi def link vbIdentifier Identifier
|
||||
hi def link vbNumber Number
|
||||
hi def link vbFloat Float
|
||||
hi def link vbMethods PreProc
|
||||
hi def link vbOperator Operator
|
||||
hi def link vbRepeat Repeat
|
||||
hi def link vbString String
|
||||
hi def link vbStatement Statement
|
||||
hi def link vbKeyword Statement
|
||||
hi def link vbEvents Special
|
||||
hi def link vbTodo Todo
|
||||
hi def link vbTypes Type
|
||||
hi def link vbTypeSpecifier Type
|
||||
hi def link vbPreProc PreProc
|
||||
|
||||
let b:current_syntax = "vb"
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user