Compare commits
247 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a4cf812462 | ||
|
|
39ee7d17b9 | ||
|
|
0c109e4e60 | ||
|
|
2b70de167e | ||
|
|
e5df6e8d42 | ||
|
|
32e453d339 | ||
|
|
a74e5fc5b9 | ||
|
|
c4d212257d | ||
|
|
d41cd5dce4 | ||
|
|
1f4cd5fb52 | ||
|
|
019c53b37f | ||
|
|
15a96a04ad | ||
|
|
6238ee9f89 | ||
|
|
f9bed026ac | ||
|
|
ed7c7fb225 | ||
|
|
3f53a2ce2f | ||
|
|
74c53196cc | ||
|
|
cce17de845 | ||
|
|
bae31c35bb | ||
|
|
955d28799b | ||
|
|
a5d9654620 | ||
|
|
e06d084735 | ||
|
|
d737e24437 | ||
|
|
36d0022b3b | ||
|
|
8faba24ca7 | ||
|
|
e22b31887a | ||
|
|
42c6686c78 | ||
|
|
e21c4a649a | ||
|
|
a72926fa51 | ||
|
|
ca62f84503 | ||
|
|
98fe2b6c71 | ||
|
|
7a9548c400 | ||
|
|
e05d897258 | ||
|
|
751b59e539 | ||
|
|
a8052afcb6 | ||
|
|
b00f441e69 | ||
|
|
ba27e4fffa | ||
|
|
84c7a5d18f | ||
|
|
3f89324b3a | ||
|
|
ef3cee793f | ||
|
|
09af51afbe | ||
|
|
81d5329ace | ||
|
|
ef3d79ebbe | ||
|
|
13b25e2f34 | ||
|
|
8d13b8244a | ||
|
|
8b009a3bbf | ||
|
|
90d751b3fb | ||
|
|
fba75cad9a | ||
|
|
b11c8efbe6 | ||
|
|
e88e360a51 | ||
|
|
ba861f8c53 | ||
|
|
16d421a4d9 | ||
|
|
475d6e2f1d | ||
|
|
7c8168aa0a | ||
|
|
3697153993 | ||
|
|
9f983a9560 | ||
|
|
3697c6b020 | ||
|
|
67deae3b77 | ||
|
|
97a75d835b | ||
|
|
55464b5d18 | ||
|
|
2d14d62c50 | ||
|
|
5890ea5397 | ||
|
|
401f9aeddf | ||
|
|
c5f283d641 | ||
|
|
3c15945337 | ||
|
|
2ca96b09d7 | ||
|
|
c970b470fb | ||
|
|
2cf18fcc24 | ||
|
|
49a5a80410 | ||
|
|
8f2cd47404 | ||
|
|
1429277f0a | ||
|
|
36d6e87542 | ||
|
|
71fd19d7ac | ||
|
|
c6f6f1602d | ||
|
|
93a7855f01 | ||
|
|
e945350f11 | ||
|
|
ede5252d89 | ||
|
|
248de84d86 | ||
|
|
ff16ebdb08 | ||
|
|
9360647715 | ||
|
|
49b8d9903b | ||
|
|
433bcf3bec | ||
|
|
1f1b86ac60 | ||
|
|
ffeb2339cb | ||
|
|
727f6e2686 | ||
|
|
bab7619604 | ||
|
|
271f4fe47b | ||
|
|
24fd698045 | ||
|
|
6c0321fb9d | ||
|
|
48b913d735 | ||
|
|
7ed37dc534 | ||
|
|
123a1e6410 | ||
|
|
2c1269f0d3 | ||
|
|
6495ca4c16 | ||
|
|
d180f67a41 | ||
|
|
f17b8b1df5 | ||
|
|
f90fc1bd72 | ||
|
|
49b81793ff | ||
|
|
f3b566481c | ||
|
|
e948fea640 | ||
|
|
78ae2ff094 | ||
|
|
bd77d327d3 | ||
|
|
9c4cb7145f | ||
|
|
4d0c57e15f | ||
|
|
0fe3ca6031 | ||
|
|
75decb4a8d | ||
|
|
99ea2b5b06 | ||
|
|
22c62e2691 | ||
|
|
7ba60f17c2 | ||
|
|
6c34ace536 | ||
|
|
499e93d09a | ||
|
|
76abd0ccdf | ||
|
|
648240fe9a | ||
|
|
7d1e0a7832 | ||
|
|
2a7414594a | ||
|
|
ff9185e822 | ||
|
|
5845741d69 | ||
|
|
b0ad5c077b | ||
|
|
238a84621d | ||
|
|
b2bc54534c | ||
|
|
bc959db163 | ||
|
|
f7a568ebeb | ||
|
|
e352bb632a | ||
|
|
327e0e34c9 | ||
|
|
962a8c7f00 | ||
|
|
9166f1c09b | ||
|
|
2c1f4dcbcc | ||
|
|
98174caabb | ||
|
|
62cf4c2947 | ||
|
|
99ba87d152 | ||
|
|
0155401538 | ||
|
|
6ce357a586 | ||
|
|
73f41626df | ||
|
|
4b30e40a1f | ||
|
|
a6198523fb | ||
|
|
93cb5e544b | ||
|
|
5a4291d34e | ||
|
|
8526d32647 | ||
|
|
f7e99d102b | ||
|
|
08e758bb70 | ||
|
|
a5af4352cf | ||
|
|
14eddc7d46 | ||
|
|
a6550d5713 | ||
|
|
689083a748 | ||
|
|
a4186316ba | ||
|
|
f8ec661ff5 | ||
|
|
eba078fc47 | ||
|
|
75c291fc39 | ||
|
|
cded5e2205 | ||
|
|
b901fa9a6a | ||
|
|
525d1d6a94 | ||
|
|
4e5b9e31cb | ||
|
|
65c1a143c3 | ||
|
|
bb6de2105b | ||
|
|
9b7dfa2948 | ||
|
|
f6a7f469a9 | ||
|
|
79348dbbc0 | ||
|
|
1da9d1381f | ||
|
|
c598c4de27 | ||
|
|
2fa34b6422 | ||
|
|
9148644c1e | ||
|
|
09ce70821b | ||
|
|
455d62e38a | ||
|
|
8ba12766d1 | ||
|
|
c0740e046e | ||
|
|
ac28237e62 | ||
|
|
97c5bed84b | ||
|
|
5aa0860d0a | ||
|
|
cb031178c2 | ||
|
|
1c0d468d72 | ||
|
|
b7eb0c2d38 | ||
|
|
e8432bc5d5 | ||
|
|
aa18b85df5 | ||
|
|
71ace8ba8c | ||
|
|
6a239a1905 | ||
|
|
9c3279ddc3 | ||
|
|
c389ae8c44 | ||
|
|
048079f6da | ||
|
|
b834c3f23b | ||
|
|
6eb0bfd5bb | ||
|
|
c4a6fa3ead | ||
|
|
b1d4b03058 | ||
|
|
71cc1b12cd | ||
|
|
1ec32291c7 | ||
|
|
29b5938d79 | ||
|
|
ddd90672f2 | ||
|
|
201562401b | ||
|
|
e44b418125 | ||
|
|
00353b29c9 | ||
|
|
cb65fe17e9 | ||
|
|
9b16aa34b6 | ||
|
|
f622af0270 | ||
|
|
16403b02a0 | ||
|
|
fc90d8087a | ||
|
|
7b7a6f941b | ||
|
|
a99dcca177 | ||
|
|
3684ad83d1 | ||
|
|
402eb5b5a6 | ||
|
|
82d33354d0 | ||
|
|
e998305ff2 | ||
|
|
bd1dc5b1a6 | ||
|
|
26a3f486cc | ||
|
|
782345c9e6 | ||
|
|
2ab37c07a8 | ||
|
|
d0fa375629 | ||
|
|
f26a33d3a7 | ||
|
|
4611f7b656 | ||
|
|
d8648f7279 | ||
|
|
ed202035b1 | ||
|
|
a04ae0210b | ||
|
|
d673411ff2 | ||
|
|
342ae5f8aa | ||
|
|
d01f234ec1 | ||
|
|
7d93ae57f0 | ||
|
|
e9e4e30ee4 | ||
|
|
ac4ccb8e53 | ||
|
|
47eb32fc92 | ||
|
|
405ba5010d | ||
|
|
70a9273dcc | ||
|
|
2e9e7cb8e0 | ||
|
|
b9897ec27e | ||
|
|
68dbb58d51 | ||
|
|
6cc291da06 | ||
|
|
0ece393844 | ||
|
|
f06b3f529a | ||
|
|
dd989ec9ca | ||
|
|
f245e17ac7 | ||
|
|
06a604dc8e | ||
|
|
4f04efb760 | ||
|
|
dbd924f6a0 | ||
|
|
472f46e231 | ||
|
|
392ed90a9a | ||
|
|
95e8faa24f | ||
|
|
515da6ecdb | ||
|
|
6c203072fe | ||
|
|
89712b9f0e | ||
|
|
b8b7df29c4 | ||
|
|
b3e5789521 | ||
|
|
823f4f12b8 | ||
|
|
9ebb666b8c | ||
|
|
46e3978f73 | ||
|
|
c4b8783970 | ||
|
|
4255ba7ff4 | ||
|
|
0e57151c18 | ||
|
|
48677d7747 | ||
|
|
e2473fe438 | ||
|
|
ac1d379f3b |
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -38,5 +38,6 @@ src/po/vim.pot diff=ignore_vim_pot
|
||||
#
|
||||
# https://docs.github.com/en/repositories/working-with-files/managing-files/customizing-how-changed-files-appear-on-github
|
||||
src/po/vim.pot linguist-generated=true
|
||||
*.dump linguist-generated=true
|
||||
|
||||
runtime/syntax/testdir/input/vim_ex_help.vim -text diff linguist-language=vim linguist-detectable=true
|
||||
|
||||
8
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
8
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -13,7 +13,13 @@ body:
|
||||
please disclose it privately via mail to vim-security@googlegroups.com.
|
||||
(It's a private list read only by the maintainers,
|
||||
but anybody can post, after moderation.)
|
||||
|
||||
|
||||
If you find a problem with syntax, indent and other runtime files, **please
|
||||
first try to contact the maintainer directly**.
|
||||
Look in the header of the file for the name, email address, github handle and/or
|
||||
upstream repository. You may also check the MAINTAINERS file.
|
||||
If the maintainer **does not respond**, open an issue here.
|
||||
|
||||
To make it easier for us to help you please enter detailed information below.
|
||||
- type: textarea
|
||||
attributes:
|
||||
|
||||
17
.github/MAINTAINERS
vendored
17
.github/MAINTAINERS
vendored
@@ -22,6 +22,7 @@ runtime/autoload/typeset.vim @lifepillar
|
||||
runtime/autoload/xmlformat.vim @chrisbra
|
||||
runtime/autoload/dist/json.vim @habamax
|
||||
runtime/colors/blue.vim @habamax @romainl @neutaaaaan
|
||||
runtime/colors/catppuccin.vim @mao-yining
|
||||
runtime/colors/darkblue.vim @habamax @romainl @neutaaaaan
|
||||
runtime/colors/default.vim @habamax @romainl @neutaaaaan
|
||||
runtime/colors/delek.vim @habamax @romainl @neutaaaaan
|
||||
@@ -47,11 +48,13 @@ runtime/colors/torte.vim @habamax @romainl @neutaaaaan
|
||||
runtime/colors/wildcharm.vim @habamax @romainl @neutaaaaan
|
||||
runtime/colors/zaibatsu.vim @habamax @romainl @neutaaaaan
|
||||
runtime/colors/zellner.vim @habamax @romainl @neutaaaaan
|
||||
runtime/compiler/bash.vim @Konfekt
|
||||
runtime/compiler/biome.vim @Konfekt
|
||||
runtime/compiler/cabal.vim @mateoxh
|
||||
runtime/compiler/checkstyle.vim @dkearns
|
||||
runtime/compiler/cm3.vim @dkearns
|
||||
runtime/compiler/context.vim @lifepillar
|
||||
runtime/compiler/cppcheck.vim @Konfekt
|
||||
runtime/compiler/cucumber.vim @tpope
|
||||
runtime/compiler/dart.vim @dkearns
|
||||
runtime/compiler/dart2js.vim @dkearns
|
||||
@@ -74,9 +77,11 @@ runtime/compiler/icon.vim @dkearns
|
||||
runtime/compiler/javac.vim @dkearns
|
||||
runtime/compiler/jest.vim @dkearns
|
||||
runtime/compiler/jjs.vim @dkearns
|
||||
runtime/compiler/jq.vim @vito-c
|
||||
runtime/compiler/jshint.vim @dkearns
|
||||
runtime/compiler/jsonlint.vim @dkearns
|
||||
runtime/compiler/jq.vim @vito-c
|
||||
runtime/compiler/make.vim @Konfekt
|
||||
runtime/compiler/mypy.vim @Konfekt
|
||||
runtime/compiler/pandoc.vim @Konfekt
|
||||
runtime/compiler/perl.vim @petdance @heptite
|
||||
runtime/compiler/perlcritic.vim @petdance @dkearns
|
||||
@@ -84,6 +89,8 @@ runtime/compiler/php.vim @dkearns
|
||||
runtime/compiler/phpstan.vim @dietrichm
|
||||
runtime/compiler/podchecker.vim @petdance @dkearns
|
||||
runtime/compiler/powershell.vim @heaths
|
||||
runtime/compiler/pyright.vim @Konfekt
|
||||
runtime/compiler/pytest.vim @Konfekt
|
||||
runtime/compiler/raco.vim @benknoble
|
||||
runtime/compiler/racomake.vim @benknoble
|
||||
runtime/compiler/racosetup.vim @benknoble
|
||||
@@ -99,12 +106,14 @@ runtime/compiler/se.vim @dkearns
|
||||
runtime/compiler/shellcheck.vim @dkearns
|
||||
runtime/compiler/sml.vim @dkearns
|
||||
runtime/compiler/spectral.vim @romainl
|
||||
runtime/compiler/svelte-check.vim @Konfekt
|
||||
runtime/compiler/stylelint.vim @dkearns
|
||||
runtime/compiler/svelte-check.vim @Konfekt
|
||||
runtime/compiler/tcl.vim @dkearns
|
||||
runtime/compiler/tidy.vim @dkearns
|
||||
runtime/compiler/tombi.vim @Konfekt
|
||||
runtime/compiler/ts-node.vim @dkearns
|
||||
runtime/compiler/tsc.vim @dkearns
|
||||
runtime/compiler/ty.vim @Konfekt
|
||||
runtime/compiler/typedoc.vim @dkearns
|
||||
runtime/compiler/xmllint.vim @dkearns
|
||||
runtime/compiler/xo.vim @dkearns
|
||||
@@ -254,6 +263,7 @@ runtime/ftplugin/mojo.vim @ribru17
|
||||
runtime/ftplugin/mp.vim @lifepillar
|
||||
runtime/ftplugin/mss.vim @Freed-Wu
|
||||
runtime/ftplugin/nginx.vim @chr4
|
||||
runtime/ftplugin/nickel.vim @ribru17
|
||||
runtime/ftplugin/nim.vim @ribru17
|
||||
runtime/ftplugin/nroff.vim @averms
|
||||
runtime/ftplugin/nsis.vim @k-takata
|
||||
@@ -378,6 +388,7 @@ runtime/indent/go.vim @dbarnett
|
||||
runtime/indent/graphql.vim @jparise
|
||||
runtime/indent/gyp.vim @ObserverOfTime
|
||||
runtime/indent/haml.vim @tpope
|
||||
runtime/indent/handlebars.vim @sukima
|
||||
runtime/indent/hare.vim @selenebun
|
||||
runtime/indent/hcl.vim @gpanders
|
||||
runtime/indent/hog.vim @wtfbbqhax
|
||||
@@ -531,6 +542,7 @@ runtime/syntax/gitignore.vim @ObserverOfTime
|
||||
runtime/syntax/gitolite.vim @sitaramc
|
||||
runtime/syntax/gitrebase.vim @tpope
|
||||
runtime/syntax/gleam.vim @kirillmorozov
|
||||
runtime/syntax/glimmer.vim @sukima
|
||||
runtime/syntax/glsl.vim @gpanders
|
||||
runtime/syntax/go.vim @bhcleek
|
||||
runtime/syntax/goaccess.vim @meonkeys
|
||||
@@ -541,6 +553,7 @@ runtime/syntax/graphql.vim @jparise
|
||||
runtime/syntax/groff.vim @jmarshall
|
||||
runtime/syntax/gyp.vim @ObserverOfTime
|
||||
runtime/syntax/haml.vim @tpope
|
||||
runtime/syntax/handlebars.vim @sukima
|
||||
runtime/syntax/hare.vim @selenebun
|
||||
runtime/syntax/haredoc.vim @selenebun
|
||||
runtime/syntax/haskell.vim @coot
|
||||
|
||||
2
.github/actions/test_artifacts/action.yml
vendored
2
.github/actions/test_artifacts/action.yml
vendored
@@ -27,7 +27,7 @@ runs:
|
||||
# set as the "result".
|
||||
result-encoding: string
|
||||
- name: Upload failed tests
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
# Name of the artifact to upload.
|
||||
name: ${{ format('GH-{0}-{1}-{2}-{3}-{4}-failed-tests',
|
||||
|
||||
20
.github/workflows/ci.yml
vendored
20
.github/workflows/ci.yml
vendored
@@ -47,7 +47,7 @@ jobs:
|
||||
extra: [nogui]
|
||||
- features: tiny
|
||||
compiler: gcc
|
||||
extra: [nogui]
|
||||
extra: [nogui, syn_test_execs]
|
||||
- features: tiny
|
||||
compiler: gcc
|
||||
extra: [nogui]
|
||||
@@ -84,7 +84,7 @@ jobs:
|
||||
architecture: arm64
|
||||
- features: normal
|
||||
compiler: gcc
|
||||
extra: [vimtags, proto, preproc_indent, encoding]
|
||||
extra: [vimtags, proto, preproc_indent, encoding, codestyle]
|
||||
- features: huge
|
||||
compiler: gcc
|
||||
extra: [no_x11_wl]
|
||||
@@ -106,6 +106,13 @@ jobs:
|
||||
# exit with an error code and list the missing entries.
|
||||
make -C ci -f hlgroups.make
|
||||
|
||||
- name: Report executable syntax tests
|
||||
if: contains(matrix.extra, 'syn_test_execs')
|
||||
run: |
|
||||
# Search and list all found executable syntax tests, and exit with
|
||||
# an error code.
|
||||
make -C runtime/syntax executables
|
||||
|
||||
- run: sudo dpkg --add-architecture i386
|
||||
if: matrix.architecture == 'i386'
|
||||
|
||||
@@ -328,7 +335,7 @@ jobs:
|
||||
fi
|
||||
|
||||
- name: Test
|
||||
timeout-minutes: 30
|
||||
timeout-minutes: 45
|
||||
run: |
|
||||
make ${SHADOWOPT} ${TEST}
|
||||
|
||||
@@ -363,6 +370,11 @@ jobs:
|
||||
true
|
||||
)
|
||||
|
||||
- name: Check Source Code style
|
||||
if: contains(matrix.extra, 'codestyle')
|
||||
run: |
|
||||
make -C src/testdir codestyle
|
||||
|
||||
- name: Check preprocessor indent
|
||||
if: contains(matrix.extra, 'preproc_indent')
|
||||
run: |
|
||||
@@ -769,7 +781,7 @@ jobs:
|
||||
# copy src\vim*.dll artifacts
|
||||
#
|
||||
#- name: Upload Artifact
|
||||
# uses: actions/upload-artifact@v1
|
||||
# uses: actions/upload-artifact@v7
|
||||
# with:
|
||||
# name: vim${{ matrix.bits }}-${{ matrix.toolchain }}
|
||||
# path: ./artifacts
|
||||
|
||||
@@ -147,8 +147,9 @@ For the recommended documentation style, please check [helphelp.txt][16].
|
||||
# I have a question
|
||||
|
||||
If you have some question on the style guide, please contact the [vim-dev][0]
|
||||
mailing list. For other questions please use the [Vi Stack Exchange][8] website, the
|
||||
[vim-use][9] mailing list or make use of the [discussion][10] feature here at github.
|
||||
mailing list. For other questions you can join [`#vim`][19], use the
|
||||
[Vi Stack Exchange][8] website, the [vim-use][9] mailing list or make use of the
|
||||
[discussion][10] feature here at github.
|
||||
|
||||
[todo list]: https://github.com/vim/vim/blob/master/runtime/doc/todo.txt
|
||||
[0]: http://www.vim.org/maillist.php#vim-dev
|
||||
@@ -170,3 +171,4 @@ mailing list. For other questions please use the [Vi Stack Exchange][8] website,
|
||||
[16]: https://github.com/vim/vim/blob/master/runtime/doc/helphelp.txt
|
||||
[17]: https://github.com/vim/vim/issues
|
||||
[18]: https://github.com/vim/vim/blob/master/src/testdir/test_codestyle.vim
|
||||
[19]: https://web.libera.chat/#vim
|
||||
|
||||
9
Filelist
9
Filelist
@@ -213,6 +213,7 @@ SRC_ALL = \
|
||||
src/testdir/ru_RU/LC_MESSAGES/__PACKAGE__.po \
|
||||
src/testdir/runtest.vim \
|
||||
src/testdir/samples/*.html \
|
||||
src/testdir/samples/*.swp \
|
||||
src/testdir/samples/*.txt \
|
||||
src/testdir/samples/*.vim \
|
||||
src/testdir/samples/evil.zip \
|
||||
@@ -223,6 +224,8 @@ SRC_ALL = \
|
||||
src/testdir/samples/test000 \
|
||||
src/testdir/samples/test_undo.txt.undo \
|
||||
src/testdir/samples/testa.zip \
|
||||
src/testdir/samples/crypt_utf8_test.txt \
|
||||
src/testdir/samples/uncrypt_utf8_test.txt \
|
||||
src/testdir/sautest/autoload/*.vim \
|
||||
src/testdir/silent.wav \
|
||||
src/testdir/test77a.com \
|
||||
@@ -862,7 +865,8 @@ RT_ALL = \
|
||||
runtime/pack/dist/opt/osc52/plugin/osc52.vim \
|
||||
runtime/pack/dist/opt/osc52/autoload/osc52.vim \
|
||||
runtime/pack/dist/opt/osc52/doc/osc52.txt \
|
||||
runtime/pack/dist/opt/osc52/doc/tags
|
||||
runtime/pack/dist/opt/osc52/doc/tags \
|
||||
runtime/xdg.vim
|
||||
|
||||
# Runtime files for all distributions without CR/LF translation.
|
||||
RT_ALL_BIN = \
|
||||
@@ -937,12 +941,15 @@ RT_UNIX_DOS_BIN = \
|
||||
runtime/vim16x16.gif \
|
||||
runtime/vim16x16.png \
|
||||
runtime/vim16x16.xpm \
|
||||
runtime/vim16x16_png.h \
|
||||
runtime/vim32x32.gif \
|
||||
runtime/vim32x32.png \
|
||||
runtime/vim32x32.xpm \
|
||||
runtime/vim32x32_png.h \
|
||||
runtime/vim48x48.gif \
|
||||
runtime/vim48x48.png \
|
||||
runtime/vim48x48.xpm \
|
||||
runtime/vim48x48_png.h \
|
||||
|
||||
# Runtime not for Unix-like or extra.
|
||||
RT_NO_UNIX = \
|
||||
|
||||
@@ -12,7 +12,9 @@
|
||||
If you find a bug or want to discuss the best way to add a new feature, please
|
||||
[open an issue](https://github.com/vim/vim/issues/new/choose).
|
||||
If you have a question or want to discuss the best way to do something with
|
||||
Vim, you can use [StackExchange](https://vi.stackexchange.com/)
|
||||
Vim, you can join [`#vim`](https://web.libera.chat/#vim),
|
||||
[reddit.com/r/vim](https://reddit.com/r/vim),
|
||||
use [StackExchange](https://vi.stackexchange.com/),
|
||||
or one of the [Maillists](https://www.vim.org/community.php).
|
||||
|
||||
## What is Vim?
|
||||
|
||||
@@ -1,3 +1,2 @@
|
||||
deb http://ddebs.ubuntu.com noble main restricted universe multiverse
|
||||
deb http://ddebs.ubuntu.com noble-updates main restricted universe multiverse
|
||||
deb http://ddebs.ubuntu.com noble-proposed main restricted universe multiverse
|
||||
|
||||
@@ -67,3 +67,4 @@ Visual
|
||||
VisualNOS
|
||||
WarningMsg
|
||||
WildMenu
|
||||
WinColor
|
||||
|
||||
@@ -3,7 +3,7 @@ vim9script noclear
|
||||
# Vim completion script
|
||||
# Language: C
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2025 Jul 24
|
||||
# Last Change: 2026 Feb 18
|
||||
# Rewritten in Vim9 script by github user lacygoill
|
||||
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
@@ -489,7 +489,7 @@ def Nextitem( # {{{1
|
||||
continue
|
||||
endif
|
||||
|
||||
# Use the tags file to find out if this is a typedef.
|
||||
# Use the tags file to find out if this is a typedef or struct
|
||||
var diclist: list<dict<any>> = taglist('^' .. tokens[tidx] .. '$')
|
||||
for tagidx: number in len(diclist)->range()
|
||||
|
||||
@@ -509,6 +509,13 @@ def Nextitem( # {{{1
|
||||
continue
|
||||
endif
|
||||
|
||||
# handle struct
|
||||
if item['kind'] == 's'
|
||||
res = StructMembers('struct:' .. tokens[tidx], items, all)
|
||||
break
|
||||
endif
|
||||
|
||||
|
||||
# Only handle typedefs here.
|
||||
if item['kind'] != 't'
|
||||
continue
|
||||
@@ -733,4 +740,4 @@ def SearchMembers( # {{{1
|
||||
enddef
|
||||
#}}}1
|
||||
|
||||
# vim: noet sw=2 sts=2
|
||||
# vim: et sw=2 sts=2
|
||||
|
||||
26
runtime/autoload/dist/ft.vim
vendored
26
runtime/autoload/dist/ft.vim
vendored
@@ -3,7 +3,7 @@ vim9script
|
||||
# Vim functions for file type detection
|
||||
#
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2026 Feb 06
|
||||
# Last Change: 2026 Mar 13
|
||||
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
# These functions are moved here from runtime/filetype.vim to make startup
|
||||
@@ -195,6 +195,7 @@ export def FTcl()
|
||||
endif
|
||||
enddef
|
||||
|
||||
# Determines whether a *.cls file is ObjectScript, TeX, Rexx, Visual Basic, or Smalltalk.
|
||||
export def FTcls()
|
||||
if exists("g:filetype_cls")
|
||||
exe "setf " .. g:filetype_cls
|
||||
@@ -211,7 +212,20 @@ export def FTcls()
|
||||
endif
|
||||
|
||||
var nonblank1 = getline(nextnonblank(1))
|
||||
if nonblank1 =~ '^\v%(\%|\\)'
|
||||
var lnum = nextnonblank(1)
|
||||
while lnum > 0 && lnum <= line("$")
|
||||
var line = getline(lnum)
|
||||
if line =~? '^\s*\%(import\|include\|includegenerator\)\>'
|
||||
lnum = nextnonblank(lnum + 1)
|
||||
else
|
||||
nonblank1 = line
|
||||
break
|
||||
endif
|
||||
endwhile
|
||||
|
||||
if nonblank1 =~? '^\s*class\>\s\+[%A-Za-z][%A-Za-z0-9_.]*\%(\s\+extends\>\|\s*\[\|\s*{\|$\)'
|
||||
setf objectscript
|
||||
elseif nonblank1 =~ '^\v%(\%|\\)'
|
||||
setf tex
|
||||
elseif nonblank1 =~ '^\s*\%(/\*\|::\w\)'
|
||||
setf rexx
|
||||
@@ -2382,6 +2396,8 @@ const ft_from_ext = {
|
||||
# N1QL
|
||||
"n1ql": "n1ql",
|
||||
"nql": "n1ql",
|
||||
# Neon
|
||||
"neon": "neon",
|
||||
# NetLinx
|
||||
"axs": "netlinx",
|
||||
"axi": "netlinx",
|
||||
@@ -2571,6 +2587,9 @@ const ft_from_ext = {
|
||||
"rakumod": "raku",
|
||||
"rakudoc": "raku",
|
||||
"rakutest": "raku",
|
||||
# Razor
|
||||
"cshtml": "razor",
|
||||
"razor": "razor",
|
||||
# Renderman Interface Bytestream
|
||||
"rib": "rib",
|
||||
# Rego Policy Language
|
||||
@@ -3014,6 +3033,9 @@ const ft_from_ext = {
|
||||
"raml": "raml",
|
||||
# YANG
|
||||
"yang": "yang",
|
||||
# YARA, YARA-X
|
||||
"yara": "yara",
|
||||
"yar": "yara",
|
||||
# Yuck
|
||||
"yuck": "yuck",
|
||||
# Zimbu
|
||||
|
||||
14
runtime/autoload/dist/vim9.vim
vendored
14
runtime/autoload/dist/vim9.vim
vendored
@@ -3,7 +3,7 @@ vim9script
|
||||
# Vim runtime support library
|
||||
#
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2026 Jan 31
|
||||
# Last Change: 2026 Mar 10
|
||||
|
||||
export def IsSafeExecutable(filetype: string, executable: string): bool
|
||||
if empty(exepath(executable))
|
||||
@@ -60,7 +60,9 @@ if has('unix')
|
||||
enddef
|
||||
else
|
||||
export def Launch(args: string)
|
||||
execute $':silent ! nohup {args} {Redir()} &' | redraw!
|
||||
# Use job_start, because using !xdg-open is known not to work with zsh
|
||||
# ignore signals on exit
|
||||
job_start(split(args), {'stoponexit': ''})
|
||||
enddef
|
||||
endif
|
||||
elseif has('win32')
|
||||
@@ -137,7 +139,13 @@ export def Open(file: string)
|
||||
setlocal shell&
|
||||
defer setbufvar('%', '&shell', shell)
|
||||
endif
|
||||
Launch($"{Viewer()} {shellescape(file, 1)}")
|
||||
if has('unix') && !has('win32unix') && !exists('$WSL_DISTRO_NAME')
|
||||
# Linux: using job_start, so do not use shellescape.
|
||||
Launch($"{Viewer()} {file}")
|
||||
else
|
||||
# Windows/WSL/Cygwin: NEEDS shellescape because Launch uses '!'
|
||||
Launch($"{Viewer()} {shellescape(file, 1)}")
|
||||
endif
|
||||
enddef
|
||||
|
||||
# Uncomment this line to check for compilation errors early
|
||||
|
||||
@@ -2,7 +2,7 @@ vim9script
|
||||
|
||||
# Language: Generic TeX typesetting engine
|
||||
# Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
|
||||
# Latest Revision: 2026 Feb 03
|
||||
# Latest Revision: 2026 Feb 19
|
||||
|
||||
# Constants and helpers {{{
|
||||
const SLASH = !exists("+shellslash") || &shellslash ? '/' : '\'
|
||||
@@ -15,15 +15,15 @@ def Echo(msg: string, mode: string, label: string)
|
||||
echohl None
|
||||
enddef
|
||||
|
||||
def EchoMsg(msg: string, label = 'Notice')
|
||||
def EchoMsg(msg: string, label = gettext('Notice'))
|
||||
Echo(msg, 'ModeMsg', label)
|
||||
enddef
|
||||
|
||||
def EchoWarn(msg: string, label = 'Warning')
|
||||
def EchoWarn(msg: string, label = gettext('Warning'))
|
||||
Echo(msg, 'WarningMsg', label)
|
||||
enddef
|
||||
|
||||
def EchoErr(msg: string, label = 'Error')
|
||||
def EchoErr(msg: string, label = gettext('Error'))
|
||||
Echo(msg, 'ErrorMsg', label)
|
||||
enddef
|
||||
# }}}
|
||||
@@ -54,7 +54,7 @@ enddef
|
||||
def ProcessOutput(qfid: number, wd: string, efm: string, ch: channel, msg: string)
|
||||
# Make sure the quickfix list still exists
|
||||
if getqflist({'id': qfid}).id != qfid
|
||||
EchoErr("Quickfix list not found, stopping the job")
|
||||
EchoErr(gettext("Quickfix list not found, stopping the job"))
|
||||
job_stop(ch_getjob(ch))
|
||||
return
|
||||
endif
|
||||
@@ -74,13 +74,13 @@ def ExitCb(label: string, jobid: job, exitStatus: number)
|
||||
|
||||
if exitStatus == 0
|
||||
botright cwindow
|
||||
EchoMsg('Success!', label)
|
||||
EchoMsg(gettext('Success!'), label)
|
||||
elseif exitStatus < 0
|
||||
EchoWarn('Job terminated', label)
|
||||
EchoWarn(gettext('Job terminated'), label)
|
||||
else
|
||||
botright copen
|
||||
wincmd p
|
||||
EchoWarn('There are errors.', label)
|
||||
EchoWarn(gettext('There are errors.'), label)
|
||||
endif
|
||||
enddef
|
||||
# }}}
|
||||
@@ -208,12 +208,13 @@ export def Typeset(
|
||||
var qfid = NewQuickfixList(fp)
|
||||
|
||||
if qfid == -1
|
||||
EchoErr('Could not create quickfix list', label)
|
||||
EchoErr(gettext('Could not create quickfix list'), label)
|
||||
return false
|
||||
endif
|
||||
|
||||
if !filereadable(fp)
|
||||
EchoErr($'File not readable: {fp}', label)
|
||||
var msg = gettext('File not readable:')
|
||||
EchoErr($'{msg} {fp}', label)
|
||||
return false
|
||||
endif
|
||||
|
||||
@@ -231,19 +232,20 @@ export def Typeset(
|
||||
})
|
||||
|
||||
if job_status(jobid) ==# "fail"
|
||||
EchoErr("Failed to start job", label)
|
||||
EchoErr(gettext("Failed to start job"), label)
|
||||
return false
|
||||
endif
|
||||
|
||||
AddJob(label, jobid)
|
||||
|
||||
EchoMsg('Typesetting...', label)
|
||||
EchoMsg(gettext('Typesetting...'), label)
|
||||
|
||||
return true
|
||||
enddef
|
||||
|
||||
export def JobStatus(label: string)
|
||||
EchoMsg($'Jobs still running: {len(GetRunningJobs(label))}', label)
|
||||
var msg = gettext('Jobs still running:')
|
||||
EchoMsg($'{msg} {len(GetRunningJobs(label))}', label)
|
||||
enddef
|
||||
|
||||
export def StopJobs(label: string)
|
||||
@@ -251,7 +253,7 @@ export def StopJobs(label: string)
|
||||
job_stop(job)
|
||||
endfor
|
||||
|
||||
EchoMsg('Done.', label)
|
||||
EchoMsg(gettext('Done.'), label)
|
||||
enddef
|
||||
|
||||
# Typeset the specified buffer
|
||||
@@ -269,12 +271,12 @@ export def TypesetBuffer(
|
||||
name: string,
|
||||
Cmd: func(string): list<string>,
|
||||
env = {},
|
||||
label = 'Typeset'
|
||||
label = gettext('Typeset')
|
||||
): bool
|
||||
var bufname = bufname(name)
|
||||
|
||||
if empty(bufname)
|
||||
EchoErr('Please save the buffer first.', label)
|
||||
EchoErr(gettext('Please save the buffer first.'), label)
|
||||
return false
|
||||
endif
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
" 2025 Sep 22 by Vim Project: support PowerShell Core
|
||||
" 2025 Dec 20 by Vim Project: use :lcd instead of :cd
|
||||
" 2026 Feb 08 by Vim Project: use system() instead of :!
|
||||
" 2026 Mar 08 by Vim Project: Make ZipUpdatePS() check for powershell
|
||||
" License: Vim License (see vim's :help license)
|
||||
" Copyright: Copyright (C) 2005-2019 Charles E. Campbell {{{1
|
||||
" Permission is hereby granted to use and distribute this code,
|
||||
@@ -159,7 +160,7 @@ endfunction
|
||||
function! s:ZipUpdatePS(zipfile, fname)
|
||||
" Update a filename within a zipped file
|
||||
" Equivalent to `zip -u zipfile fname`
|
||||
if a:fname =~ '/'
|
||||
if &shell =~ 'pwsh' && a:fname =~ '/'
|
||||
call s:Mess('Error', "***error*** PowerShell cannot update files in archive subfolders")
|
||||
return ':'
|
||||
endif
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*autocmd.txt* For Vim version 9.2. Last change: 2026 Feb 25
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -435,6 +435,7 @@ Name triggered by ~
|
||||
|QuickFixCmdPre| before a quickfix command is run
|
||||
|QuickFixCmdPost| after a quickfix command is run
|
||||
|
||||
|SessionLoadPre| before loading a session file
|
||||
|SessionLoadPost| after loading a session file
|
||||
|
||||
|SessionWritePost| after writing the session file using
|
||||
@@ -1182,6 +1183,9 @@ SafeStateAgain Like SafeState but after processing any
|
||||
triggered often, don't do something that takes
|
||||
time.
|
||||
|
||||
*SessionLoadPre*
|
||||
SessionLoadPre Before loading the session file created using
|
||||
the |:mksession| command.
|
||||
*SessionLoadPost*
|
||||
SessionLoadPost After loading the session file created using
|
||||
the |:mksession| command.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*builtin.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*builtin.txt* For Vim version 9.2. Last change: 2026 Mar 17
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -106,6 +106,8 @@ ch_evalraw({handle}, {string} [, {options}])
|
||||
ch_getbufnr({handle}, {what}) Number get buffer number for {handle}/{what}
|
||||
ch_getjob({channel}) Job get the Job of {channel}
|
||||
ch_info({handle}) String info about channel {handle}
|
||||
ch_listen({address} [, {options}])
|
||||
Channel listen on {address}
|
||||
ch_log({msg} [, {handle}]) none write {msg} in the channel log file
|
||||
ch_logfile({fname} [, {mode}]) none start logging channel activity
|
||||
ch_open({address} [, {options}])
|
||||
@@ -11711,7 +11713,11 @@ system({expr} [, {input}]) *system()* *E677*
|
||||
When prepended by |:silent| the terminal will not be set to
|
||||
cooked mode. This is meant to be used for commands that do
|
||||
not need the user to type. It avoids stray characters showing
|
||||
up on the screen which require |CTRL-L| to remove. >
|
||||
up on the screen which require |CTRL-L| to remove.
|
||||
When calling system() from a 'statusline' expression, an
|
||||
|autocommand| or a |timer| callback, you should use |:silent|
|
||||
to avoid terminal responses (e.g. from cursor style queries)
|
||||
being echoed on the screen. >
|
||||
:silent let f = system('ls *.vim')
|
||||
<
|
||||
Note: Use |shellescape()| or |::S| with |expand()| or
|
||||
@@ -11769,6 +11775,11 @@ systemlist({expr} [, {input}]) *systemlist()*
|
||||
<
|
||||
Returns an empty string on error.
|
||||
|
||||
Like |system()|, prepend |:silent| when the command does not
|
||||
need user interaction and is called from a 'statusline'
|
||||
expression, an |autocommand| or a |timer| callback. See
|
||||
|system()| for details.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
:echo GetCmd()->systemlist()
|
||||
<
|
||||
@@ -13104,6 +13115,7 @@ acl Compiled with |ACL| support.
|
||||
all_builtin_terms Compiled with all builtin terminals enabled. (always
|
||||
true)
|
||||
amiga Amiga version of Vim.
|
||||
android Android version of Vim. *android*
|
||||
arabic Compiled with Arabic support |Arabic|.
|
||||
arp Compiled with ARP support (Amiga).
|
||||
autocmd Compiled with autocommand support. (always true)
|
||||
@@ -13274,6 +13286,7 @@ termguicolors Compiled with true color in terminal support.
|
||||
terminal Compiled with |terminal| support.
|
||||
terminfo Compiled with terminfo instead of termcap.
|
||||
termresponse Compiled with support for |t_RV| and |v:termresponse|.
|
||||
termux Termux version of Vim. *termux*
|
||||
textobjects Compiled with support for |text-objects|.
|
||||
textprop Compiled with support for |text-properties|.
|
||||
tgetent Compiled with tgetent support, able to use a termcap
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*channel.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*channel.txt* For Vim version 9.2. Last change: 2026 Mar 13
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -26,6 +26,7 @@ The Netbeans interface also uses a channel. |netbeans|
|
||||
13. Controlling a job |job-control|
|
||||
14. Using a prompt buffer |prompt-buffer|
|
||||
15. Language Server Protocol |language-server-protocol|
|
||||
16. Debug Adapter Protocol |debug-adapter-protocol|
|
||||
|
||||
*E1277*
|
||||
{only when compiled with the |+channel| feature for channel stuff}
|
||||
@@ -56,6 +57,7 @@ NL every message ends in a NL (newline) character
|
||||
JSON JSON encoding |json_encode()|
|
||||
JS JavaScript style JSON-like encoding |js_encode()|
|
||||
LSP Language Server Protocol encoding |language-server-protocol|
|
||||
DAP Debug Adapter Protocol encoding |debug-adapter-protocol|
|
||||
|
||||
Common combination are:
|
||||
- Using a job connected through pipes in NL mode. E.g., to run a style
|
||||
@@ -112,6 +114,32 @@ Vim to write lines in log file: >
|
||||
call ch_logfile('channellog', 'w')
|
||||
See |ch_logfile()|.
|
||||
|
||||
You can also make Vim act as a server using |ch_listen()|. This does not
|
||||
require an external server program.
|
||||
|
||||
*channel-listen-demo*
|
||||
Start Vim and create a listening channel: >
|
||||
func OnAccept(channel, clientaddr)
|
||||
" Log the connection
|
||||
echomsg "Accepted connection from " .. a:clientaddr
|
||||
|
||||
" Get current time and send it to the client
|
||||
let current_time = strftime("%Y-%m-%d %H:%M:%S")
|
||||
call ch_sendraw(a:channel, "Vim Server Time: " .. current_time .. "\n")
|
||||
|
||||
" Optional: close immediately if you only want to provide the time
|
||||
call ch_close(a:channel)
|
||||
endfunc
|
||||
|
||||
" Start listening on port 8765
|
||||
let server = ch_listen('localhost:8765', {"callback": "OnAccept"})
|
||||
|
||||
From another Vim instance (or any program) you can connect to it: >
|
||||
let channel = ch_open('localhost:8765')
|
||||
|
||||
When done, close the server channel: >
|
||||
call ch_close(server)
|
||||
|
||||
==============================================================================
|
||||
3. Opening a channel *channel-open*
|
||||
|
||||
@@ -130,6 +158,11 @@ a Unix-domain socket path prefixed by "unix:". E.g. >
|
||||
[2001:db8::1]:8765 " IPv6 + port
|
||||
unix:/tmp/my-socket " Unix-domain socket path
|
||||
|
||||
When a domain name resolves to multiple addresses (e.g., both IPv6 and IPv4),
|
||||
Vim tries each address in order. If a connection is slow or unreachable, it
|
||||
quickly falls back to the next address. This helps when IPv6 or IPv4 is
|
||||
unreachable on the network.
|
||||
|
||||
{options} is a dictionary with optional entries: *channel-open-options*
|
||||
|
||||
"mode" can be: *channel-mode*
|
||||
@@ -138,6 +171,7 @@ a Unix-domain socket path prefixed by "unix:". E.g. >
|
||||
"nl" - Use messages that end in a NL character
|
||||
"raw" - Use raw messages
|
||||
"lsp" - Use language server protocol encoding
|
||||
"dap" - Use debug adapter protocol encoding
|
||||
*channel-callback* *E921*
|
||||
"callback" A function that is called when a message is received that is
|
||||
not handled otherwise (e.g. a JSON message with ID zero). It
|
||||
@@ -148,8 +182,9 @@ a Unix-domain socket path prefixed by "unix:". E.g. >
|
||||
endfunc
|
||||
let channel = ch_open("localhost:8765", {"callback": "Handle"})
|
||||
<
|
||||
When "mode" is "json" or "js" or "lsp" the "msg" argument is
|
||||
the body of the received message, converted to Vim types.
|
||||
When "mode" is any of "json", "js", "lsp" or "dap" the "msg"
|
||||
argument is the body of the received message, converted to Vim
|
||||
types.
|
||||
When "mode" is "nl" the "msg" argument is one message,
|
||||
excluding the NL.
|
||||
When "mode" is "raw" the "msg" argument is the whole message
|
||||
@@ -532,7 +567,8 @@ ch_evalexpr({handle}, {expr} [, {options}]) *ch_evalexpr()*
|
||||
according to the type of channel. The function cannot be used
|
||||
with a raw channel. See |channel-use|.
|
||||
{handle} can be a Channel or a Job that has a Channel.
|
||||
When using the "lsp" channel mode, {expr} must be a |Dict|.
|
||||
When using the "lsp" or "dap" channel mode, {expr} must be a
|
||||
|Dict|.
|
||||
*E917*
|
||||
{options} must be a Dictionary. It must not have a "callback"
|
||||
entry. It can have a "timeout" entry to specify the timeout
|
||||
@@ -540,8 +576,8 @@ ch_evalexpr({handle}, {expr} [, {options}]) *ch_evalexpr()*
|
||||
|
||||
ch_evalexpr() waits for a response and returns the decoded
|
||||
expression. When there is an error or timeout it returns an
|
||||
empty |String| or, when using the "lsp" channel mode, returns an
|
||||
empty |Dict|.
|
||||
empty |String| or, when using the "lsp" or "dap" channel mode,
|
||||
returns an empty |Dict|.
|
||||
|
||||
Note that while waiting for the response, Vim handles other
|
||||
messages. You need to make sure this doesn't cause trouble.
|
||||
@@ -622,7 +658,7 @@ ch_info({handle}) *ch_info()*
|
||||
"err_io" "out", "null", "pipe", "file" or "buffer"
|
||||
"err_timeout" timeout in msec
|
||||
"in_status" "open" or "closed"
|
||||
"in_mode" "NL", "RAW", "JSON", "JS" or "LSP"
|
||||
"in_mode" "NL", "RAW", "JSON", "JS" or "LSP" or "DAP"
|
||||
"in_io" "null", "pipe", "file" or "buffer"
|
||||
"in_timeout" timeout in msec
|
||||
|
||||
@@ -631,6 +667,33 @@ ch_info({handle}) *ch_info()*
|
||||
<
|
||||
Return type: dict<any>
|
||||
|
||||
ch_listen({address} [, {options}]) *E1573* *E1574* *ch_listen()*
|
||||
Listen on {address} for incoming channel connections.
|
||||
This creates a server-side channel, unlike |ch_open()|
|
||||
which connects to an existing server.
|
||||
Returns a Channel. Use |ch_status()| to check for failure.
|
||||
|
||||
{address} is a String, see |channel-address| for the possible
|
||||
accepted forms. Note: IPv6 is not yet supported.
|
||||
|
||||
If {options} is given it must be a |Dictionary|.
|
||||
See |channel-open-options|.
|
||||
The "callback" in {options} is invoked when a new
|
||||
connection is accepted. It receives two arguments: the
|
||||
new Channel and the client address as a String (e.g.
|
||||
"127.0.0.1:12345").
|
||||
|
||||
Use |ch_open()| to connect to an existing server instead.
|
||||
|
||||
See |channel-listen-demo| for an example.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetAddress()->ch_listen()
|
||||
<
|
||||
{only available when compiled with the |+channel| feature}
|
||||
|
||||
Return type: channel
|
||||
|
||||
ch_log({msg} [, {handle}]) *ch_log()*
|
||||
Write String {msg} in the channel log file, if it was opened
|
||||
with |ch_logfile()|.
|
||||
@@ -685,6 +748,9 @@ ch_open({address} [, {options}]) *ch_open()*
|
||||
If {options} is given it must be a |Dictionary|.
|
||||
See |channel-open-options|.
|
||||
|
||||
Use |ch_listen()| to listen for incoming connections
|
||||
instead.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetAddress()->ch_open()
|
||||
<
|
||||
@@ -728,14 +794,15 @@ ch_sendexpr({handle}, {expr} [, {options}]) *ch_sendexpr()*
|
||||
with a raw channel.
|
||||
See |channel-use|. *E912*
|
||||
{handle} can be a Channel or a Job that has a Channel.
|
||||
When using the "lsp" channel mode, {expr} must be a |Dict|.
|
||||
When using the "lsp" or "dap" channel mode, {expr} must be a
|
||||
|Dict|.
|
||||
|
||||
If the channel mode is "lsp", then returns a Dict. Otherwise
|
||||
returns an empty String. If the "callback" item is present in
|
||||
{options}, then the returned Dict contains the ID of the
|
||||
request message. The ID can be used to send a cancellation
|
||||
request to the LSP server (if needed). Returns an empty Dict
|
||||
on error.
|
||||
If the channel mode is "lsp" or "dap", then returns a Dict.
|
||||
Otherwise returns an empty String. If the "callback" item is
|
||||
present in {options}, then the returned Dict contains the ID
|
||||
of the request message. The ID can be used to send a
|
||||
cancellation request to the LSP server or debug adapter (if
|
||||
needed). Returns an empty Dict on error.
|
||||
|
||||
If a response message is not expected for {expr}, then don't
|
||||
specify the "callback" item in {options}.
|
||||
@@ -1602,5 +1669,33 @@ The "params" field is optional: >
|
||||
"params": <list|dict>
|
||||
}
|
||||
|
||||
<
|
||||
==============================================================================
|
||||
16. Debug Adapter Protocol *debug-adapter-protocol*
|
||||
|
||||
The debug adapter protocol is very similar to the language server protocol,
|
||||
with the main difference being that it does not use the JSON-RPC format. The
|
||||
specification can be found here:
|
||||
|
||||
https://microsoft.github.io/debug-adapter-protocol/specification
|
||||
|
||||
The protocol uses the same header format as the LSP protocol.
|
||||
|
||||
To encode and send a DAP request/notification message in a Vim |Dict| into a
|
||||
JSON message and to receive and decode a DAP JSON response/notification
|
||||
message into a Vim |Dict|, connect to the debug adapter with the
|
||||
|channel-mode| set to "dap".
|
||||
|
||||
For messages received on a channel with |channel-mode| set to "dap", Vim will
|
||||
process the HTTP header and decode the JSON payload into a Vim |Dict| type.
|
||||
When sending messages on a channel using the |ch_evalexpr()| or
|
||||
|ch_sendexpr()| functions, Vim will add the HTTP header and encode the Vim
|
||||
expression into JSON.
|
||||
|
||||
Vim will automatically add the "seq" field to the JSON DAP message, and manage
|
||||
the "request_seq" field as well for responses. However it will not add the
|
||||
"type" field, it should be manually specified in the |Dict|.
|
||||
|
||||
Otherwise the behaviour is the same as how Vim handles the "lsp" channel mode
|
||||
|language-server-protocol|.
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*cmdline.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*cmdline.txt* For Vim version 9.2. Last change: 2026 Mar 17
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1101,7 +1101,7 @@ Note: these are typed literally, they are not special keys!
|
||||
It differs from <slnum> in that <sflnum> is replaced with
|
||||
the script line number in any situation. *E961*
|
||||
*:<client>* *<client>*
|
||||
<client> is replaced with the {clinetid} of the last received
|
||||
<client> is replaced with the {clientid} of the last received
|
||||
message in |server2client()|
|
||||
|
||||
*filename-modifiers*
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#define LINELEN 200
|
||||
@@ -63,8 +62,8 @@ main(int argc, char **argv)
|
||||
// followed by a white character or end-of-line.
|
||||
if (p == p2
|
||||
&& (p1 == line || p1[-1] == ' ' || p1[-1] == '\t')
|
||||
&& (strchr(" \t\n\r", p[1]) != NULL
|
||||
|| p[1] == '\0'))
|
||||
&& (strchr(" \t\n\r", p[1]) != NULL
|
||||
|| p[1] == '\0'))
|
||||
{
|
||||
*p2 = '\0';
|
||||
++p1;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*intro.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*intro.txt* For Vim version 9.2. Last change: 2026 Mar 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -313,11 +313,11 @@ Elvis Another Vi clone, made by Steve Kirkendall. Very compact but isn't
|
||||
as flexible as Vim. Development has stalled, Elvis has left the
|
||||
building! Source code is freely available.
|
||||
*Neovim*
|
||||
Neovim A Vim clone. Forked the Vim source in 2014 and went a different way.
|
||||
Very much bound to github and has many more dependencies, making
|
||||
development more complex and limiting portability. Code has been
|
||||
refactored, resulting in patches not being exchangeable with Vim.
|
||||
Supports a remote GUI and integration with scripting languages.
|
||||
Neovim A fork of Vim from 2014 that went a different way. Very much bound
|
||||
to GitHub and has many more dependencies, making development more
|
||||
complex and limiting portability. Code has been refactored, resulting
|
||||
in patches not being exchangeable with Vim. Supports remote UIs and
|
||||
first-class Lua scripting.
|
||||
|
||||
==============================================================================
|
||||
4. Notation *notation*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*options.txt* For Vim version 9.2. Last change: 2026 Mar 16
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -2257,11 +2257,13 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
fuzzy Enable |fuzzy-matching| for completion candidates. This
|
||||
allows for more flexible and intuitive matching, where
|
||||
characters can be skipped and matches can be found even
|
||||
if the exact sequence is not typed.
|
||||
if the exact sequence is not typed (disabled for thesaurus
|
||||
completion |compl-thesaurus|).
|
||||
|
||||
longest
|
||||
When 'autocomplete' is not active, only the longest common
|
||||
prefix of the matches is inserted. If the popup menu is
|
||||
prefix of the matches is inserted (disabled for thesaurus
|
||||
completion |compl-thesaurus|). If the popup menu is
|
||||
displayed, you can use CTRL-L to add more characters.
|
||||
Whether case is ignored depends on the type of completion.
|
||||
For buffer text the 'ignorecase' option applies.
|
||||
@@ -3208,7 +3210,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
difference. Non-alphanumeric
|
||||
multi-byte characters such as emoji
|
||||
and CJK characters are considered
|
||||
individual words.
|
||||
individual words. Small gaps of
|
||||
non-word characters (5 bytes or less)
|
||||
between changes are merged into a
|
||||
single highlight block.
|
||||
|
||||
internal Use the internal diff library. This is
|
||||
ignored when 'diffexpr' is set. *E960*
|
||||
@@ -3593,6 +3598,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|SafeState|,
|
||||
|SafeStateAgain|,
|
||||
|SessionLoadPost|,
|
||||
|SessionLoadPre|,
|
||||
|SessionWritePost|,
|
||||
|ShellCmdPost|,
|
||||
|SigUSR1|,
|
||||
@@ -4807,6 +4813,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|hl-PmenuBorder| j popup menu border characters
|
||||
|hl-PmenuShadow| H popup menu shadow
|
||||
|hl-PreInsert| I text inserted when "preinsert" is in 'completeopt'
|
||||
|hl-Normal| ( Window color (supersedes 'wincolor' option)
|
||||
|
||||
Note that the "(" occasion is not set by default.
|
||||
|
||||
The display modes are:
|
||||
r reverse (termcap entry "mr" and "me")
|
||||
@@ -5805,6 +5814,15 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
---+---+--XXX ~
|
||||
Where "XXX" denotes the first non-blank characters in
|
||||
the line.
|
||||
*lcs-leadtab*
|
||||
leadtab:xy[z]
|
||||
Like |lcs-tab|, but only for leading tabs. When
|
||||
omitted, the "tab" setting is used for leading tabs.
|
||||
|lcs-tab| must also be set for this to work. *E1572*
|
||||
You can combine it with "tab:", for example: >
|
||||
:set listchars=tab:>-,leadtab:.\
|
||||
< This shows leading tabs as periods(.) and other tabs
|
||||
as ">--".
|
||||
*lcs-trail*
|
||||
trail:c Character to show for trailing spaces. When omitted,
|
||||
trailing spaces are blank. Overrides the "space" and
|
||||
@@ -7338,7 +7356,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
For $XDG_CONFIG_HOME see |xdg-base-dir|.
|
||||
|
||||
The defaults for most systems are setup to search five locations:
|
||||
1. In your home directory, for your personal preferences.
|
||||
1. In your $MYVIMDIR directory, for your personal preferences.
|
||||
2. In a system-wide Vim directory, for preferences from the system
|
||||
administrator.
|
||||
3. In $VIMRUNTIME, for files distributed with Vim.
|
||||
@@ -7346,7 +7364,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
4. In the "after" directory in the system-wide Vim directory. This is
|
||||
for the system administrator to overrule or add to the distributed
|
||||
defaults (rarely needed)
|
||||
5. In the "after" directory in your home directory. This is for
|
||||
5. In the "after" directory in your $MYVIMDIR directory. This is for
|
||||
personal preferences to overrule or add to the distributed defaults
|
||||
or system-wide settings (rarely needed).
|
||||
|
||||
@@ -8516,6 +8534,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
applied to StatusLineNC for the statusline of non-current
|
||||
windows.
|
||||
The number N must be between 1 and 9. See |hl-User1..9|
|
||||
*stl-%@*
|
||||
@ - Inserts a newline. This only takes effect when the "maxheight"
|
||||
value of 'statuslineopt' is greater than 1, or for |tabpanel|.
|
||||
|
||||
When displaying a flag, Vim removes the leading comma, if any, when
|
||||
that flag comes right after plaintext. This will make a nice display
|
||||
@@ -8573,6 +8594,51 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
:function VarExists(var, val)
|
||||
: if exists(a:var) | return a:val | else | return '' | endif
|
||||
:endfunction
|
||||
<
|
||||
*'statuslineopt'* *'stlo'*
|
||||
'statuslineopt' 'stlo' string (default "")
|
||||
global or local to window |global-local|
|
||||
{not available when compiled without the |+statusline|
|
||||
feature}
|
||||
Optional settings for |status-line|. It can consist of the following
|
||||
items. All are optional. Items must be separated by a comma.
|
||||
|
||||
fixedheight Fix the status line height to "maxheight".
|
||||
Without this, the height varies from 1 to
|
||||
"maxheight" based on the number of newline
|
||||
|stl-%@| in 'statusline'.
|
||||
|
||||
maxheight:{n} Set the maximum status line height to {n}.
|
||||
{n} must be 1 or greater. If not specified, the
|
||||
height is 1.
|
||||
When {n} is 2 or more, you can use newline
|
||||
|stl-%@| in 'statusline' to display information on
|
||||
multiple lines.
|
||||
|
||||
If {n} cannot be set due to insufficient window
|
||||
height or other constraints, a best-effort
|
||||
approach will be taken to set the closest possible
|
||||
value that does not exceed {n}. No error will be
|
||||
shown even if the setting cannot be changed.
|
||||
|
||||
For the global value, a value applicable to all
|
||||
windows on all tab pages is used. For a
|
||||
window-local value, a value applicable to that
|
||||
window is used.
|
||||
Note: When the applied value differs from {n}, the
|
||||
option is updated to reflect it.
|
||||
Example of updated options: >vim
|
||||
:set statuslineopt=maxheight:999,fixedheight
|
||||
" Only 20 lines could be applied, so
|
||||
" maxheight is updated to 20.
|
||||
:set statuslineopt?
|
||||
statuslineopt=maxheight:20,fixedheight
|
||||
<
|
||||
Examples: >
|
||||
:set statuslineopt=fixedheight
|
||||
:set stlo=
|
||||
:set stlo=maxheight:2,fixedheight
|
||||
:set stlo-=fixedheight
|
||||
<
|
||||
*'suffixes'* *'su'*
|
||||
'suffixes' 'su' string (default ".bak,~,.o,.h,.info,.swp,.obj")
|
||||
@@ -8759,11 +8825,11 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
You can use |g:actual_curtabpage| within a function assigned to
|
||||
tabpanel. |g:actual_curtabpage| represents current tab's label number.
|
||||
The option value can contain "\n" to force line breaks: >
|
||||
You can use "%@" or "\n" to insert a newline: >
|
||||
|
||||
set tabpanel=%!TabPanel()
|
||||
function! TabPanel() abort
|
||||
return printf("(%2d)\n %%f", g:actual_curtabpage)
|
||||
return "(" .. g:actual_curtabpage .. ")%@ %f"
|
||||
endfunction
|
||||
<
|
||||
The result is:
|
||||
@@ -8777,8 +8843,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
| |
|
||||
| |
|
||||
<
|
||||
Note: using "\n" is considered experimental and may change in the
|
||||
future; a %-atom may be used instead.
|
||||
Note: using "\n" is considered experimental and deprecated, prefer
|
||||
the |stl-%@| atom instead.
|
||||
|
||||
*'tabpanelopt'* *'tplo'*
|
||||
'tabpanelopt' 'tplo' string (default "")
|
||||
@@ -9050,6 +9116,39 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
<
|
||||
NOTE: This option is reset when 'compatible' is set.
|
||||
|
||||
*'termresize'* *'trz'*
|
||||
'termresize' 'trz' string (default "")
|
||||
global
|
||||
{only available in Unix, does not work in the GUI}
|
||||
Determines the method to use for detecting window resize events,
|
||||
possible values are:
|
||||
"sigwinch": Use the SIGWINCH signal.
|
||||
"inband": Receive resize events from the terminal via escape
|
||||
sequences (recommended if supported by terminal).
|
||||
"": Automatically choose depending on terminal.
|
||||
|
||||
The SIGWINCH handler is always available. If set to "inband" and the
|
||||
terminal does not support in-band window resize events, then the
|
||||
SIGWINCH handler will be used instead as a fallback. If set to ""
|
||||
(empty option), then "inband" will be used if Vim detects that the
|
||||
terminal supports it, otherwise "sigwinch".
|
||||
|
||||
|
||||
*'termsync'* *'tsy'*
|
||||
'termsync' 'tsy' boolean (default off)
|
||||
global
|
||||
If the host terminal supports it, buffer all screen updates made
|
||||
during a redraw cycle so that each screen is displayed in the terminal
|
||||
all at once. This can prevent tearing or flickering when the terminal
|
||||
updates faster than Vim can redraw. If the host terminal does not
|
||||
support it or if Vim is running graphically, then this option does
|
||||
nothing.
|
||||
|
||||
The specification can be found at:
|
||||
https://github.com/contour-terminal/vt-extensions/blob/master/synchronized-output.md
|
||||
|
||||
The terminal codes used are |t_BS| and |t_ES|.
|
||||
|
||||
*'termwinkey'* *'twk'*
|
||||
'termwinkey' 'twk' string (default "")
|
||||
local to window
|
||||
@@ -9118,8 +9217,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
|ConPTY| support depends on the platform. Windows 10 October 2018
|
||||
Update is the first version that supports ConPTY, however it is still
|
||||
considered unstable. ConPTY might become stable in the next release
|
||||
of Windows 10. winpty support needs to be installed. If neither is
|
||||
considered unstable. ConPTY has become stable with the initial release
|
||||
of Windows 11. winpty support needs to be installed. If neither is
|
||||
supported then you cannot open a terminal window.
|
||||
|
||||
*'terse'* *'noterse'*
|
||||
@@ -10203,8 +10302,19 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*'wincolor'* *'wcr'*
|
||||
'wincolor' 'wcr' string (default empty)
|
||||
local to window
|
||||
DEPRECATED: Use 'winhighlight' if possible, this option uses
|
||||
'winhighlight' internally by setting it to: >vim
|
||||
set winhighlight=!(:HighlightGroup
|
||||
< If this option is set and 'winhighlight' is changed, then it will not
|
||||
update the option value. For example, if 'wincolor' is set to "A" and
|
||||
then 'winhighlight' is to an empty value, then 'wincolor' will still
|
||||
remain as "A". Additionally, the existing value in 'winhighlight' will
|
||||
be discarded when this option is set.
|
||||
|
||||
Highlight group name to use for this window instead of the Normal
|
||||
color |hl-Normal|.
|
||||
color |hl-Normal|. For other |highlight-groups|, see 'winhighlight'.
|
||||
Note that it is not recommended to set this and 'winhighlight' at the
|
||||
same time.
|
||||
|
||||
*'window'* *'wi'*
|
||||
'window' 'wi' number (default screen height - 1)
|
||||
@@ -10263,6 +10373,35 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'winheight' applies to the current window. Use 'winminheight' to set
|
||||
the minimal height for other windows.
|
||||
|
||||
*'winhighlight'* *'whl'*
|
||||
'winhighlight' 'whl' string (default empty)
|
||||
local to window
|
||||
Window-local highlight group mappings. Comma-delimited list of
|
||||
highlight |group-name| pairs "{hl-from}:{hl-to},..." where each
|
||||
{hl-from} is a |highlight-groups| item to be overridden by {hl-to}
|
||||
group in the window. If {hl-from} is "Normal", then it will always
|
||||
map to the "(" (window color) value in 'highlight'.
|
||||
|
||||
If a highlight group name starts with "!", then it is assumed to map
|
||||
to a value in 'highlight'. For example, this will override the
|
||||
visual mode setting: >vim
|
||||
set winhighlight=!v:SomeHighlightGroup
|
||||
< This will map the occasion "v" to occasion "l" >vim
|
||||
set winhighlight=!v:!l
|
||||
<
|
||||
Highlights of vertical separators are determined by the window to the
|
||||
left of the separator. The 'tabline' highlight of a tabpage is
|
||||
decided by the last-focused window of the tabpage. Highlights of
|
||||
the popupmenu are determined by the current window. Highlights in the
|
||||
message area cannot be overridden.
|
||||
|
||||
When handling highlight group links, if a highlight group (which may
|
||||
be a link as well) is overridden by 'winhighlight', then all highlight
|
||||
groups that link to it will be affected. For example, if highlight
|
||||
group C links to B which links to A, then >vim
|
||||
set winhighlight=B:SomeHighlightGroup
|
||||
< will make SomeHighlightGroup override groups B and C, but not A.
|
||||
|
||||
*'winminheight'* *'wmh'*
|
||||
'winminheight' 'wmh' number (default 1)
|
||||
global
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*popup.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*popup.txt* For Vim version 9.2. Last change: 2026 Mar 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -21,6 +21,7 @@ Displaying text in a popup window. *popup* *popup-window* *popupwin*
|
||||
Popup filter |popup-filter|
|
||||
Popup callback |popup-callback|
|
||||
Popup scrollbar |popup-scrollbar|
|
||||
Popup opacity |popup-opacity|
|
||||
Popup mask |popup-mask|
|
||||
4. Examples |popup-examples|
|
||||
|
||||
@@ -772,6 +773,15 @@ The second argument of |popup_create()| is a dictionary with options:
|
||||
the popup window.
|
||||
highlight Highlight group name to use for the text, stored in
|
||||
the 'wincolor' option.
|
||||
highlights Highlight group overrides, stored in the
|
||||
'winhighlight' option (same format).
|
||||
opacity Opacity of the popup, a value between 0 and 100:
|
||||
0 is fully transparent (background text fully visible)
|
||||
100 is fully opaque (default, no transparency)
|
||||
Values in between blend the popup background with the
|
||||
underlying text, making it partially transparent.
|
||||
Requires 'termguicolors' to be set.
|
||||
Also see |popup-opacity|.
|
||||
padding List with numbers, defining the padding
|
||||
above/right/below/left of the popup (similar to CSS).
|
||||
An empty list uses a padding of 1 all around. The
|
||||
@@ -1046,6 +1056,42 @@ A click in the lower half will scroll the text up one line. However, this is
|
||||
limited so that the popup does not get smaller.
|
||||
|
||||
|
||||
|
||||
POPUP OPACITY *popup-opacity*
|
||||
|
||||
A popup window can be made semi-transparent by setting the "opacity" option.
|
||||
The opacity value ranges from 0 to 100:
|
||||
0 Fully transparent - the popup background is invisible and the
|
||||
text behind the popup is fully visible.
|
||||
100 Fully opaque (default) - the popup is not transparent at all.
|
||||
1-99 Partially transparent - the popup background is blended with
|
||||
the underlying text, making both partially visible.
|
||||
|
||||
The transparency effect requires using the GUI or having 'termguicolors'
|
||||
enabled in the terminal. Without it, the opacity setting has no effect.
|
||||
|
||||
When a popup is transparent:
|
||||
- The popup's background color is blended with the background text
|
||||
- The popup's text (foreground) remains fully visible and unblended
|
||||
- Text behind the popup is visible through transparent areas
|
||||
- The more transparent the popup (lower opacity), the more clearly the
|
||||
background text can be seen
|
||||
|
||||
This can be useful for:
|
||||
- Creating overlay windows that don't completely obscure underlying text
|
||||
- Showing contextual information without blocking the view
|
||||
- Creating visual effects and modern UI designs
|
||||
|
||||
Example with 50% opacity: >
|
||||
let winid = popup_create('Semi-transparent text', #{
|
||||
\ line: 5,
|
||||
\ col: 10,
|
||||
\ opacity: 50,
|
||||
\ })
|
||||
|
||||
The opacity can be changed dynamically using |popup_setoptions()|: >
|
||||
call popup_setoptions(winid, #{opacity: 80})
|
||||
|
||||
POPUP MASK *popup-mask*
|
||||
|
||||
To minimize the text that the popup covers, parts of it can be made
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*quickref.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*quickref.txt* For Vim version 9.2. Last change: 2026 Mar 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -939,6 +939,7 @@ Short explanation of each option: *option-list*
|
||||
'splitright' 'spr' new window is put right of the current one
|
||||
'startofline' 'sol' commands move cursor to first non-blank in line
|
||||
'statusline' 'stl' custom format for the status line
|
||||
'statuslineopt' 'stlo' additional options for the |status-line|
|
||||
'suffixes' 'su' suffixes that are ignored with multiple match
|
||||
'suffixesadd' 'sua' suffixes added when searching for a file
|
||||
'swapfile' 'swf' whether to use a swapfile for a buffer
|
||||
@@ -962,6 +963,7 @@ Short explanation of each option: *option-list*
|
||||
'termbidi' 'tbidi' terminal takes care of bi-directionality
|
||||
'termencoding' 'tenc' character encoding used by the terminal
|
||||
'termguicolors' 'tgc' use GUI colors for the terminal
|
||||
'termsync' 'tsy' enable terminal sync mode for redraw
|
||||
'termwinkey' 'twk' key that precedes a Vim command in a terminal
|
||||
'termwinscroll' 'twsl' max number of scrollback lines in a terminal window
|
||||
'termwinsize' 'tws' size of a terminal window
|
||||
@@ -1016,6 +1018,7 @@ Short explanation of each option: *option-list*
|
||||
'wildoptions' 'wop' specifies how command line completion is done
|
||||
'winaltkeys' 'wak' when the windows system handles ALT keys
|
||||
'wincolor' 'wcr' window-local highlighting
|
||||
'winhighlight' 'whl' window-local highlighting mappings
|
||||
'window' 'wi' nr of lines to scroll for CTRL-F and CTRL-B
|
||||
'winfixbuf' 'wfb' keep window focused on a single buffer
|
||||
'winfixheight' 'wfh' keep window height when opening/closing windows
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*starting.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*starting.txt* For Vim version 9.2. Last change: 2026 Mar 17
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -252,7 +252,8 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
|
||||
":sh", filtering, the |system()| function, backtick expansion
|
||||
and libcall().
|
||||
Also disallowed are |delete()|, |rename()|, |mkdir()|,
|
||||
|job_start()|, |setenv()| etc.
|
||||
|job_start()|, |setenv()| and setting environment variables,
|
||||
etc.
|
||||
Interfaces, such as Python, Ruby and Lua, are also disabled,
|
||||
since they could be used to execute shell commands. Perl uses
|
||||
the Safe module.
|
||||
@@ -1125,8 +1126,13 @@ This is not an exhaustive list of those directories:
|
||||
`$XDG_DATA_HOME` $HOME/.local/share Persistent data files
|
||||
`$XDG_STATE_HOME` $HOME/.local/state State data files
|
||||
|
||||
Vim will only use the `$XDG_CONFIG_HOME` directory, the others are not
|
||||
(yet) used for its various configuration and state files.
|
||||
*xdg.vim*
|
||||
Vim itself will only use the $XDG_CONFIG_HOME directory. Support for the
|
||||
other XDG directories is provided by the "$VIMRUNTIME/xdg.vim" script.
|
||||
Note: xdg.vim is only effective if the $XDG_CONFIG_HOME/vim directory (or
|
||||
its default fallback) exists. By default, it only sets the 'viminfofile'
|
||||
option. Other option settings are commented out, see the script for
|
||||
details on how to enable them.
|
||||
|
||||
*xdg-vimrc*
|
||||
Vim, on Unix systems, will look at `$XDG_CONFIG_HOME/vim/vimrc` for its
|
||||
@@ -1140,7 +1146,8 @@ and `~/.vim/vimrc` file.
|
||||
When the |xdg-vimrc| is used the 'runtimepath' and 'packpath' options will be
|
||||
modified accordingly to respect the |xdg-base-dir|: >
|
||||
|
||||
"$XDG_CONFIG_HOME/vim,$VIMRUNTIME,/after,$XDG_CONFIG_HOME/vim/after"
|
||||
"$XDG_CONFIG_HOME/vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,
|
||||
$XDG_CONFIG_HOME/vim/after"
|
||||
<
|
||||
|
||||
Avoiding trojan horses ~
|
||||
@@ -1462,8 +1469,8 @@ This saves the current Session, and starts off the command to load another.
|
||||
A session includes all tab pages, unless "tabpages" was removed from
|
||||
'sessionoptions'. |tab-page|
|
||||
|
||||
The |SessionLoadPost| autocmd event is triggered after a session file is
|
||||
loaded/sourced.
|
||||
The |SessionLoadPre| autocmd event is triggered before a session file is
|
||||
loaded/sourced and |SessionLoadPost| autocmd event is triggered after.
|
||||
*SessionLoad-variable*
|
||||
While the session file is loading, the SessionLoad global variable is set to
|
||||
1. Plugins can use this to postpone some work until the SessionLoadPost event
|
||||
|
||||
@@ -1034,7 +1034,9 @@ $quote eval.txt /*$quote*
|
||||
'stal' options.txt /*'stal'*
|
||||
'startofline' options.txt /*'startofline'*
|
||||
'statusline' options.txt /*'statusline'*
|
||||
'statuslineopt' options.txt /*'statuslineopt'*
|
||||
'stl' options.txt /*'stl'*
|
||||
'stlo' options.txt /*'stlo'*
|
||||
'stmp' options.txt /*'stmp'*
|
||||
'stpl' options.txt /*'stpl'*
|
||||
'sts' options.txt /*'sts'*
|
||||
@@ -1069,6 +1071,7 @@ $quote eval.txt /*$quote*
|
||||
't_AU' term.txt /*'t_AU'*
|
||||
't_BD' term.txt /*'t_BD'*
|
||||
't_BE' term.txt /*'t_BE'*
|
||||
't_BS' term.txt /*'t_BS'*
|
||||
't_CF' term.txt /*'t_CF'*
|
||||
't_CS' term.txt /*'t_CS'*
|
||||
't_CV' term.txt /*'t_CV'*
|
||||
@@ -1079,6 +1082,7 @@ $quote eval.txt /*$quote*
|
||||
't_Ds' term.txt /*'t_Ds'*
|
||||
't_EC' term.txt /*'t_EC'*
|
||||
't_EI' term.txt /*'t_EI'*
|
||||
't_ES' term.txt /*'t_ES'*
|
||||
't_F1' term.txt /*'t_F1'*
|
||||
't_F2' term.txt /*'t_F2'*
|
||||
't_F3' term.txt /*'t_F3'*
|
||||
@@ -1233,6 +1237,8 @@ $quote eval.txt /*$quote*
|
||||
'termbidi' options.txt /*'termbidi'*
|
||||
'termencoding' options.txt /*'termencoding'*
|
||||
'termguicolors' options.txt /*'termguicolors'*
|
||||
'termresize' options.txt /*'termresize'*
|
||||
'termsync' options.txt /*'termsync'*
|
||||
'termwinkey' options.txt /*'termwinkey'*
|
||||
'termwinscroll' options.txt /*'termwinscroll'*
|
||||
'termwinsize' options.txt /*'termwinsize'*
|
||||
@@ -1264,10 +1270,12 @@ $quote eval.txt /*$quote*
|
||||
'tplo' options.txt /*'tplo'*
|
||||
'tpm' options.txt /*'tpm'*
|
||||
'tr' options.txt /*'tr'*
|
||||
'trz' options.txt /*'trz'*
|
||||
'ts' options.txt /*'ts'*
|
||||
'tsl' options.txt /*'tsl'*
|
||||
'tsr' options.txt /*'tsr'*
|
||||
'tsrfu' options.txt /*'tsrfu'*
|
||||
'tsy' options.txt /*'tsy'*
|
||||
'ttimeout' options.txt /*'ttimeout'*
|
||||
'ttimeoutlen' options.txt /*'ttimeoutlen'*
|
||||
'ttm' options.txt /*'ttm'*
|
||||
@@ -1333,6 +1341,7 @@ $quote eval.txt /*$quote*
|
||||
'wfw' options.txt /*'wfw'*
|
||||
'wh' options.txt /*'wh'*
|
||||
'whichwrap' options.txt /*'whichwrap'*
|
||||
'whl' options.txt /*'whl'*
|
||||
'wi' options.txt /*'wi'*
|
||||
'wic' options.txt /*'wic'*
|
||||
'wig' options.txt /*'wig'*
|
||||
@@ -1351,6 +1360,7 @@ $quote eval.txt /*$quote*
|
||||
'winfixheight' options.txt /*'winfixheight'*
|
||||
'winfixwidth' options.txt /*'winfixwidth'*
|
||||
'winheight' options.txt /*'winheight'*
|
||||
'winhighlight' options.txt /*'winhighlight'*
|
||||
'winminheight' options.txt /*'winminheight'*
|
||||
'winminwidth' options.txt /*'winminwidth'*
|
||||
'winptydll' options.txt /*'winptydll'*
|
||||
@@ -4563,7 +4573,6 @@ E1335 vim9class.txt /*E1335*
|
||||
E1336 options.txt /*E1336*
|
||||
E1337 vim9class.txt /*E1337*
|
||||
E1338 vim9class.txt /*E1338*
|
||||
E1339 textprop.txt /*E1339*
|
||||
E134 change.txt /*E134*
|
||||
E1340 vim9class.txt /*E1340*
|
||||
E1341 vim9class.txt /*E1341*
|
||||
@@ -4759,6 +4768,9 @@ E1569 builtin.txt /*E1569*
|
||||
E157 sign.txt /*E157*
|
||||
E1570 builtin.txt /*E1570*
|
||||
E1571 builtin.txt /*E1571*
|
||||
E1572 options.txt /*E1572*
|
||||
E1573 channel.txt /*E1573*
|
||||
E1574 channel.txt /*E1574*
|
||||
E158 sign.txt /*E158*
|
||||
E159 sign.txt /*E159*
|
||||
E16 cmdline.txt /*E16*
|
||||
@@ -5896,6 +5908,7 @@ Select-mode-mapping visual.txt /*Select-mode-mapping*
|
||||
Session starting.txt /*Session*
|
||||
SessionLoad-variable starting.txt /*SessionLoad-variable*
|
||||
SessionLoadPost autocmd.txt /*SessionLoadPost*
|
||||
SessionLoadPre autocmd.txt /*SessionLoadPre*
|
||||
SessionWritePost autocmd.txt /*SessionWritePost*
|
||||
ShellCmdPost autocmd.txt /*ShellCmdPost*
|
||||
ShellFilterPost autocmd.txt /*ShellFilterPost*
|
||||
@@ -6200,6 +6213,7 @@ added-8.1 version8.txt /*added-8.1*
|
||||
added-8.2 version8.txt /*added-8.2*
|
||||
added-9.1 version9.txt /*added-9.1*
|
||||
added-9.2 version9.txt /*added-9.2*
|
||||
added-9.3 version9.txt /*added-9.3*
|
||||
added-BeOS version5.txt /*added-BeOS*
|
||||
added-Mac version5.txt /*added-Mac*
|
||||
added-VMS version5.txt /*added-VMS*
|
||||
@@ -6216,6 +6230,7 @@ alt-input debugger.txt /*alt-input*
|
||||
alternate-file editing.txt /*alternate-file*
|
||||
amiga-window starting.txt /*amiga-window*
|
||||
and() builtin.txt /*and()*
|
||||
android builtin.txt /*android*
|
||||
anonymous-function eval.txt /*anonymous-function*
|
||||
ant.vim syntax.txt /*ant.vim*
|
||||
ap motion.txt /*ap*
|
||||
@@ -6416,6 +6431,7 @@ bug-fixes-8 version8.txt /*bug-fixes-8*
|
||||
bug-fixes-9 version9.txt /*bug-fixes-9*
|
||||
bug-fixes-9.1 version9.txt /*bug-fixes-9.1*
|
||||
bug-fixes-9.2 version9.txt /*bug-fixes-9.2*
|
||||
bug-fixes-9.3 version9.txt /*bug-fixes-9.3*
|
||||
bug-reports intro.txt /*bug-reports*
|
||||
bugreport.vim intro.txt /*bugreport.vim*
|
||||
bugs intro.txt /*bugs*
|
||||
@@ -6570,6 +6586,7 @@ ch_evalraw() channel.txt /*ch_evalraw()*
|
||||
ch_getbufnr() channel.txt /*ch_getbufnr()*
|
||||
ch_getjob() channel.txt /*ch_getjob()*
|
||||
ch_info() channel.txt /*ch_info()*
|
||||
ch_listen() channel.txt /*ch_listen()*
|
||||
ch_log() channel.txt /*ch_log()*
|
||||
ch_logfile() channel.txt /*ch_logfile()*
|
||||
ch_open() channel.txt /*ch_open()*
|
||||
@@ -6604,6 +6621,7 @@ changed-8.1 version8.txt /*changed-8.1*
|
||||
changed-8.2 version8.txt /*changed-8.2*
|
||||
changed-9.1 version9.txt /*changed-9.1*
|
||||
changed-9.2 version9.txt /*changed-9.2*
|
||||
changed-9.3 version9.txt /*changed-9.3*
|
||||
changelist motion.txt /*changelist*
|
||||
changelog.vim syntax.txt /*changelog.vim*
|
||||
changenr() builtin.txt /*changenr()*
|
||||
@@ -6619,6 +6637,7 @@ channel-demo channel.txt /*channel-demo*
|
||||
channel-drop channel.txt /*channel-drop*
|
||||
channel-functions usr_41.txt /*channel-functions*
|
||||
channel-functions-details channel.txt /*channel-functions-details*
|
||||
channel-listen-demo channel.txt /*channel-listen-demo*
|
||||
channel-mode channel.txt /*channel-mode*
|
||||
channel-more channel.txt /*channel-more*
|
||||
channel-noblock channel.txt /*channel-noblock*
|
||||
@@ -6986,6 +7005,7 @@ dav pi_netrw.txt /*dav*
|
||||
davs pi_netrw.txt /*davs*
|
||||
daw motion.txt /*daw*
|
||||
dd change.txt /*dd*
|
||||
debug-adapter-protocol channel.txt /*debug-adapter-protocol*
|
||||
debug-gcc debug.txt /*debug-gcc*
|
||||
debug-highlight debugger.txt /*debug-highlight*
|
||||
debug-leaks debug.txt /*debug-leaks*
|
||||
@@ -8844,6 +8864,7 @@ lcs-eol options.txt /*lcs-eol*
|
||||
lcs-extends options.txt /*lcs-extends*
|
||||
lcs-lead options.txt /*lcs-lead*
|
||||
lcs-leadmultispace options.txt /*lcs-leadmultispace*
|
||||
lcs-leadtab options.txt /*lcs-leadtab*
|
||||
lcs-multispace options.txt /*lcs-multispace*
|
||||
lcs-nbsp options.txt /*lcs-nbsp*
|
||||
lcs-precedes options.txt /*lcs-precedes*
|
||||
@@ -9674,9 +9695,11 @@ patches-8.2 version8.txt /*patches-8.2*
|
||||
patches-9 version9.txt /*patches-9*
|
||||
patches-9.1 version9.txt /*patches-9.1*
|
||||
patches-9.2 version9.txt /*patches-9.2*
|
||||
patches-9.3 version9.txt /*patches-9.3*
|
||||
patches-after-8.2 version9.txt /*patches-after-8.2*
|
||||
patches-after-9.0 version9.txt /*patches-after-9.0*
|
||||
patches-after-9.1 version9.txt /*patches-after-9.1*
|
||||
patches-after-9.2 version9.txt /*patches-after-9.2*
|
||||
pathshorten() builtin.txt /*pathshorten()*
|
||||
pattern pattern.txt /*pattern*
|
||||
pattern-atoms pattern.txt /*pattern-atoms*
|
||||
@@ -9766,6 +9789,7 @@ popup-mapping popup.txt /*popup-mapping*
|
||||
popup-mask popup.txt /*popup-mask*
|
||||
popup-menu gui.txt /*popup-menu*
|
||||
popup-menu-added version5.txt /*popup-menu-added*
|
||||
popup-opacity popup.txt /*popup-opacity*
|
||||
popup-position popup.txt /*popup-position*
|
||||
popup-props popup.txt /*popup-props*
|
||||
popup-scrollbar popup.txt /*popup-scrollbar*
|
||||
@@ -10519,6 +10543,7 @@ static-tag tagsrch.txt /*static-tag*
|
||||
status-line windows.txt /*status-line*
|
||||
statusmsg-variable eval.txt /*statusmsg-variable*
|
||||
stl-%! options.txt /*stl-%!*
|
||||
stl-%@ options.txt /*stl-%@*
|
||||
stl-%{ options.txt /*stl-%{*
|
||||
str2blob() builtin.txt /*str2blob()*
|
||||
str2float() builtin.txt /*str2float()*
|
||||
@@ -10639,6 +10664,7 @@ t_AL term.txt /*t_AL*
|
||||
t_AU term.txt /*t_AU*
|
||||
t_BD term.txt /*t_BD*
|
||||
t_BE term.txt /*t_BE*
|
||||
t_BS term.txt /*t_BS*
|
||||
t_CF term.txt /*t_CF*
|
||||
t_CS term.txt /*t_CS*
|
||||
t_CTRL-W_. terminal.txt /*t_CTRL-W_.*
|
||||
@@ -10658,6 +10684,7 @@ t_DL term.txt /*t_DL*
|
||||
t_Ds term.txt /*t_Ds*
|
||||
t_EC term.txt /*t_EC*
|
||||
t_EI term.txt /*t_EI*
|
||||
t_ES term.txt /*t_ES*
|
||||
t_F1 term.txt /*t_F1*
|
||||
t_F2 term.txt /*t_F2*
|
||||
t_F3 term.txt /*t_F3*
|
||||
@@ -11056,6 +11083,7 @@ termresponse-variable eval.txt /*termresponse-variable*
|
||||
termrfgresp-variable eval.txt /*termrfgresp-variable*
|
||||
termstyleresp-variable eval.txt /*termstyleresp-variable*
|
||||
termu7resp-variable eval.txt /*termu7resp-variable*
|
||||
termux builtin.txt /*termux*
|
||||
ternary eval.txt /*ternary*
|
||||
test-functions usr_41.txt /*test-functions*
|
||||
test-functions-details testing.txt /*test-functions-details*
|
||||
@@ -11549,6 +11577,7 @@ version-8.2 version8.txt /*version-8.2*
|
||||
version-9.0 version9.txt /*version-9.0*
|
||||
version-9.1 version9.txt /*version-9.1*
|
||||
version-9.2 version9.txt /*version-9.2*
|
||||
version-9.3 version9.txt /*version-9.3*
|
||||
version-variable eval.txt /*version-variable*
|
||||
version4.txt version4.txt /*version4.txt*
|
||||
version5.txt version5.txt /*version5.txt*
|
||||
@@ -11566,6 +11595,7 @@ version8.txt version8.txt /*version8.txt*
|
||||
version9.0 version9.txt /*version9.0*
|
||||
version9.1 version9.txt /*version9.1*
|
||||
version9.2 version9.txt /*version9.2*
|
||||
version9.3 version9.txt /*version9.3*
|
||||
version9.txt version9.txt /*version9.txt*
|
||||
versionlong-variable eval.txt /*versionlong-variable*
|
||||
vi intro.txt /*vi*
|
||||
@@ -11595,6 +11625,7 @@ vim-9 version9.txt /*vim-9*
|
||||
vim-9.0 version9.txt /*vim-9.0*
|
||||
vim-9.1 version9.txt /*vim-9.1*
|
||||
vim-9.2 version9.txt /*vim-9.2*
|
||||
vim-9.3 version9.txt /*vim-9.3*
|
||||
vim-additions vi_diff.txt /*vim-additions*
|
||||
vim-announce intro.txt /*vim-announce*
|
||||
vim-arguments starting.txt /*vim-arguments*
|
||||
@@ -11890,6 +11921,7 @@ xattr editing.txt /*xattr*
|
||||
xdg-base-dir starting.txt /*xdg-base-dir*
|
||||
xdg-runtime starting.txt /*xdg-runtime*
|
||||
xdg-vimrc starting.txt /*xdg-vimrc*
|
||||
xdg.vim starting.txt /*xdg.vim*
|
||||
xf86conf.vim syntax.txt /*xf86conf.vim*
|
||||
xfontset mbyte.txt /*xfontset*
|
||||
xfree-xterm syntax.txt /*xfree-xterm*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*term.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*term.txt* For Vim version 9.2. Last change: 2026 Mar 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -510,6 +510,10 @@ Added by Vim (there are no standard codes for these):
|
||||
|xterm-focus-event|
|
||||
t_fd disable focus-event tracking *t_fd* *'t_fd'*
|
||||
|xterm-focus-event|
|
||||
t_BS begin synchronized update *t_BS* *'t_BS'*
|
||||
see 'termsync'
|
||||
t_ES end synchronized update *t_ES* *'t_ES'*
|
||||
see 'termsync'
|
||||
|
||||
Some codes have a start, middle and end part. The start and end are defined
|
||||
by the termcap option, the middle part is text.
|
||||
@@ -528,6 +532,11 @@ t_SH must take one argument:
|
||||
t_RS is sent only if the response to t_RV has been received. It is not used
|
||||
on Mac OS when Terminal.app could be recognized from the termresponse.
|
||||
|
||||
The t_BS and t_ES are not stored in the termcap, but are instead set to the
|
||||
following default values on startup:
|
||||
t_BS "\033[?2026h"
|
||||
t_ES "\033[?2026l"
|
||||
|
||||
*mouse-reporting*
|
||||
Many terminals can report mouse clicks and some can report mouse movement and
|
||||
dragging. Vim needs to know what codes are being used for this.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*terminal.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*terminal.txt* For Vim version 9.2. Last change: 2026 Mar 12
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -490,8 +490,8 @@ On more recent versions of MS-Windows 10 (beginning with the "October 2018
|
||||
Update"), winpty is no longer required. On those versions, |:terminal| will use
|
||||
Windows' built-in support for hosting terminal applications, "ConPTY". When
|
||||
ConPTY is in use, there may be rendering artifacts regarding ambiguous-width
|
||||
characters. If you encounter any such issues, install "winpty". Until the
|
||||
ConPTY problems have been fixed "winpty" will be preferred.
|
||||
characters. If you encounter any such issues, install "winpty". ConPTY
|
||||
support is considered stable with the first release of Windows 11.
|
||||
|
||||
Environment variables are used to pass information to the running job:
|
||||
VIM_SERVERNAME v:servername
|
||||
@@ -1427,11 +1427,25 @@ gdb:
|
||||
`:Arguments` {args} set arguments for the next `:Run`
|
||||
|
||||
*:Break* set a breakpoint at the cursor position
|
||||
:Break {position}
|
||||
:Break [{position}] [thread {nr}] [if {expr}]
|
||||
set a breakpoint at the specified position
|
||||
if {position} is omitted, use the current file and line
|
||||
thread {nr} limits the breakpoint to one thread
|
||||
if {expr} sets a conditional breakpoint
|
||||
Examples: >
|
||||
:Break if argc == 1
|
||||
:Break 42 thread 3 if x > 10
|
||||
:Break main
|
||||
<
|
||||
*:Tbreak* set a temporary breakpoint at the cursor position
|
||||
:Tbreak {position}
|
||||
set a temporary breakpoint at the specified position
|
||||
:Tbreak [{position}] [thread {nr}] [if {expr}]
|
||||
like `:Break`, but the breakpoint is deleted after
|
||||
it is hit once
|
||||
Examples: >
|
||||
:Tbreak if argc == 1
|
||||
:Tbreak 42 thread 3 if x > 10
|
||||
:Tbreak main
|
||||
<
|
||||
*:Clear* delete the breakpoint at the cursor position
|
||||
*:ToggleBreak* set a breakpoint at the cursor position or delete all
|
||||
breakpoints at the cursor position
|
||||
|
||||
@@ -141,9 +141,9 @@ prop_add({lnum}, {col}, {props})
|
||||
the current buffer is used
|
||||
id user defined ID for the property; must be a
|
||||
number, should be positive |E1510|;
|
||||
when using "text" then "id" must not be
|
||||
present and will be set automatically to a
|
||||
negative number; otherwise zero is used
|
||||
when using "text" then any "id" value is
|
||||
ignored and a negative number is assigned
|
||||
automatically; otherwise zero is used
|
||||
*E1305*
|
||||
text text to be displayed before {col}, or
|
||||
above/below the line if {col} is zero; prepend
|
||||
@@ -224,14 +224,9 @@ prop_add({lnum}, {col}, {props})
|
||||
is difficult to compute).
|
||||
A negative "id" will be chosen and is returned.
|
||||
|
||||
Before text properties with text were supported it was
|
||||
possible to use a negative "id", even though this was very
|
||||
rare. Now that negative "id"s are reserved for text
|
||||
properties with text an error is given when using a negative
|
||||
"id". When a text property with text already exists using a
|
||||
negative "id" results in *E1293* . If a negative "id" was
|
||||
used and later a text property with text is added results in
|
||||
*E1339* .
|
||||
Negative "id"s are reserved for text properties with "text"
|
||||
and cannot be used otherwise. Using a negative "id" results
|
||||
in *E1293* .
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetLnum()->prop_add(col, props)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_41.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*usr_41.txt* For Vim version 9.2. Last change: 2026 Feb 16
|
||||
|
||||
|
||||
VIM USER MANUAL by Bram Moolenaar
|
||||
@@ -38,7 +38,7 @@ language like for example .vim files or configuration files like .vimrc and
|
||||
uses to customize and extend its behavior.
|
||||
|
||||
*vim-script-notation*
|
||||
The correct notation is "Vim script" (or "Vim9 script" when refering to the
|
||||
The correct notation is "Vim script" (or "Vim9 script" when referring to the
|
||||
new Vim9 language |Vim9-script|), so we will use "Vim script" to refer to the
|
||||
Vim scripting language throughout this documentation. This shorthand helps to
|
||||
streamline explanations and discussions about scripting with Vim.
|
||||
@@ -1287,23 +1287,24 @@ Testing: *test-functions*
|
||||
|
||||
Inter-process communication: *channel-functions*
|
||||
ch_canread() check if there is something to read
|
||||
ch_open() open a channel
|
||||
ch_close() close a channel
|
||||
ch_close_in() close the in part of a channel
|
||||
ch_evalexpr() evaluate an expression over channel
|
||||
ch_evalraw() evaluate a raw string over channel
|
||||
ch_getbufnr() get the buffer number for a channel
|
||||
ch_getjob() get the Job of a channel
|
||||
ch_info() get information about a channel
|
||||
ch_listen() listen on a channel
|
||||
ch_log() write a message in the channel log
|
||||
ch_logfile() start logging channel activity
|
||||
ch_open() open a channel
|
||||
ch_read() read a message from a channel
|
||||
ch_readblob() read a Blob from a channel
|
||||
ch_readraw() read a raw message from a channel
|
||||
ch_sendexpr() send a JSON message over a channel
|
||||
ch_sendraw() send a raw message over a channel
|
||||
ch_evalexpr() evaluate an expression over channel
|
||||
ch_evalraw() evaluate a raw string over channel
|
||||
ch_setoptions() set channel options
|
||||
ch_status() get status of a channel
|
||||
ch_getbufnr() get the buffer number of a channel
|
||||
ch_getjob() get the job associated with a channel
|
||||
ch_info() get channel information
|
||||
ch_log() write a message in the channel log file
|
||||
ch_logfile() set the channel log file
|
||||
ch_setoptions() set the options for a channel
|
||||
json_encode() encode an expression to a JSON string
|
||||
json_decode() decode a JSON string to Vim types
|
||||
js_encode() encode an expression to a JSON string
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*version9.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*version9.txt* For Vim version 9.2. Last change: 2026 Mar 17
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -39,6 +39,11 @@ VERSION 9.2 |version-9.2|
|
||||
Added |added-9.2|
|
||||
Patches |patches-9.2|
|
||||
|
||||
VERSION 9.3 |version-9.3|
|
||||
Changed |changed-9.3|
|
||||
Added |added-9.3|
|
||||
Patches |patches-9.3|
|
||||
|
||||
|
||||
See |vi_diff.txt| for an overview of differences between Vi and Vim 9.0.
|
||||
See |version4.txt|, |version5.txt|, |version6.txt|, |version7.txt| and
|
||||
@@ -41546,8 +41551,7 @@ Solution: re-generate them
|
||||
==============================================================================
|
||||
VERSION 9.2 *version-9.2* *version9.2* *vim-9.2*
|
||||
|
||||
This section is about improvements made between version 9.1 and 9.2
|
||||
and is a work in progress.
|
||||
This section is about improvements made between version 9.1 and 9.2.
|
||||
|
||||
Vim9 script ~
|
||||
-----------
|
||||
@@ -41750,7 +41754,8 @@ Functions: ~
|
||||
- |setqflist()| and |setloclist()| can optionally try to preserve the current
|
||||
selection in the quickfix list with the "u" action.
|
||||
- allow to pass local Vim script variables to python interpreter |py3eval()|
|
||||
- |getwininfo()| now also returns the "leftcol" property for a window
|
||||
- |getwininfo()| now also returns the "leftcol" and "status_height" properties
|
||||
for a window
|
||||
- |v:stacktrace| The stack trace of the exception most recently caught and
|
||||
not finished
|
||||
- Add the optional {opts} |Dict| argument to |getchar()| to control: cursor
|
||||
@@ -52571,4 +52576,68 @@ Problem: [security]: Buffer overflow in netbeans special_keys() handling
|
||||
Solution: Limit writing to max KEYBUFLEN bytes to prevent writing out of
|
||||
bounds.
|
||||
|
||||
==============================================================================
|
||||
VERSION 9.3 *version-9.3* *version9.3* *vim-9.3*
|
||||
|
||||
This section is about improvements made between version 9.2 and 9.3 and is
|
||||
work in progress.
|
||||
|
||||
Popups ~
|
||||
------
|
||||
- Support for transparency, see |popup-opacity|.
|
||||
- 'previewpopup' supports the same values as 'completepopup' (except for
|
||||
"align").
|
||||
|
||||
Diff mode ~
|
||||
---------
|
||||
When using inline word diffs, adjacent changes are now merged if the gap
|
||||
between them is small (5 bytes or less) and contains only non-word characters.
|
||||
This prevents fragmented highlighting when only whitespace or punctuation
|
||||
separates changes.
|
||||
|
||||
Restricted mode~
|
||||
---------------
|
||||
Using external diff mode or setting environment variables is no longer allowed
|
||||
when Vim is running in |restricted-mode|.
|
||||
|
||||
Other ~
|
||||
-----
|
||||
- The new |xdg.vim| script for full XDG compatibility is included.
|
||||
- |ConPTY| support is considered stable as of Windows 11.
|
||||
- Support for "dap" channel mode for the |debug-adapter-protocol|.
|
||||
- |status-line| can use several lines, see 'statuslineopt'.
|
||||
- New "leadtab" value for the 'listchars' setting.
|
||||
|
||||
*changed-9.3*
|
||||
Changed~
|
||||
-------
|
||||
- Support for NeXTStep was dropped with patch v9.2.0122
|
||||
|
||||
*added-9.3*
|
||||
Added ~
|
||||
-----
|
||||
Various syntax, indent and other plugins were added.
|
||||
|
||||
Functions: ~
|
||||
|
||||
|ch_listen()| listen on {address}
|
||||
|
||||
Autocommands: ~
|
||||
|
||||
|SessionLoadPre| before loading a |Session| file
|
||||
|
||||
Options: ~
|
||||
|
||||
'statuslineopt' Extra window-local options for the 'statusline', to
|
||||
configure the height.
|
||||
't_BS' Begin synchronized update.
|
||||
't_ES' End synchronized update.
|
||||
'termresize' Method for handling terminal resize events.
|
||||
'termsync' Enable support for terminal DEC 2026 sync mode.
|
||||
'winhighlight' Window-local highlight group mappings.
|
||||
|
||||
==============================================================================
|
||||
PATCHES *patches-9.3* *bug-fixes-9.3*
|
||||
*patches-after-9.2*
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:fdm=manual:nofoldenable
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*vi_diff.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*vi_diff.txt* For Vim version 9.2. Last change: 2026 Mar 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1401,6 +1401,6 @@ MS-DOS: | support was dropped with v7.4.1399
|
||||
MS-Windows XP and Vista: | support was dropped with v9.0.0496
|
||||
OS/2: | support was dropped with v7.4.1008
|
||||
RISC OS: | support was dropped with v7.3.0187
|
||||
NeXTSTEP: | support was deprecated with v9.1.1727
|
||||
NeXTSTEP: | support was dropped with v9.2.0122
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*vim9class.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*vim9class.txt* For Vim version 9.2. Last change: 2026 Mar 07
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1354,7 +1354,6 @@ the restrictions?
|
||||
|
||||
Thoughts:
|
||||
- Generics for a class: `class <Tkey, Tentry>`
|
||||
- Generics for a function: `def <Tkey> GetLast(key: Tkey)`
|
||||
- Mixins: not sure if that is useful, leave out for simplicity.
|
||||
|
||||
Some things that look like good additions:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*windows.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*windows.txt* For Vim version 9.2. Last change: 2026 Mar 01
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -122,9 +122,9 @@ when the last window also has a status line:
|
||||
'laststatus' = 1 status line if there is more than one window
|
||||
'laststatus' = 2 always a status line
|
||||
|
||||
You can change the contents of the status line with the 'statusline' option.
|
||||
This option can be local to the window, so that you can have a different
|
||||
status line in each window.
|
||||
You can change the contents and height of the status line with the
|
||||
'statusline' and 'statuslineopt' options. Both can be local to the window,
|
||||
allowing each window to have a unique status line appearance and height.
|
||||
|
||||
Normally, inversion is used to display the status line. This can be changed
|
||||
with the 's' character in the 'highlight' option. For example, "sb" sets it
|
||||
@@ -954,11 +954,20 @@ windows.
|
||||
Alternatively, a popup window can be used by setting the 'previewpopup'
|
||||
option. When set, it overrules the 'previewwindow' and 'previewheight'
|
||||
settings. The option is a comma-separated list of values:
|
||||
border border style (see 'pumborder')
|
||||
borderhighlight highlight group for the popup border characters
|
||||
close show close button: "on" (default) or "off", and if
|
||||
the value is "on", it must be set after border.
|
||||
height maximum height of the popup
|
||||
width maximum width of the popup
|
||||
highlight highlight group of the popup (default is Pmenu)
|
||||
resize show resize handle: "on" (default) or "off"
|
||||
shadow "off" (default) or "on" using |hl-PmenuShadow|
|
||||
width maximum width of the popup
|
||||
|
||||
Example: >
|
||||
:set previewpopup=height:10,width:60
|
||||
:set previewpopup=border:single,borderhilight:PmenuBorder
|
||||
:set previewpopup=border:custom:─;│;─;│;┌;┐;┘;└
|
||||
|
||||
A few peculiarities:
|
||||
- If the file is in a buffer already, it will be re-used. This will allow for
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types
|
||||
"
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2026 Jan 20
|
||||
" Last Change: 2026 Feb 18
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" If the filetype can be detected from extension or file name(the final path component),
|
||||
@@ -535,7 +535,6 @@ au BufNewFile,BufRead init.trans,*/etc/translate-shell,.trans setf clojure
|
||||
|
||||
" HTML (.stm for server side, .shtml is server-side or superhtml)
|
||||
au BufNewFile,BufRead *.html,*.htm,*.shtml,*.stm call dist#ft#FThtml()
|
||||
au BufNewFile,BufRead *.cshtml setf html
|
||||
|
||||
" Host config
|
||||
au BufNewFile,BufRead */etc/host.conf setf hostconf
|
||||
@@ -1028,7 +1027,7 @@ au BufNewFile,BufRead *.decl,*.dcl,*.dec
|
||||
" NOTE: Patterns ending in a star are further down, these have lower priority.
|
||||
au BufNewFile,BufRead .bashrc,bashrc,bash.bashrc,.bash[_-]profile,.bash[_-]logout,.bash[_-]aliases,.bash[_-]history,bash-fc[-.],*.ebuild,*.bash,*.eclass,PKGBUILD,*.bats,*.cygport call dist#ft#SetFileTypeSH("bash")
|
||||
au BufNewFile,BufRead .kshrc,*.ksh call dist#ft#SetFileTypeSH("ksh")
|
||||
au BufNewFile,BufRead */etc/profile,.profile,*.sh,*.env{rc,} call dist#ft#SetFileTypeSH(getline(1))
|
||||
au BufNewFile,BufRead */etc/profile,.profile,*.sh,*.envrc,.envrc.* call dist#ft#SetFileTypeSH(getline(1))
|
||||
" Shell script (Arch Linux) or PHP file (Drupal)
|
||||
au BufNewFile,BufRead *.install
|
||||
\ if getline(1) =~ '<?php' |
|
||||
@@ -1055,7 +1054,7 @@ au BufNewFile,BufRead *.scm,*.ss,*.sld,*.stsg,*/supertux2/config,.lips_repl_hist
|
||||
" SiSU
|
||||
au BufNewFile,BufRead *.sst.meta,*.-sst.meta,*._sst.meta setf sisu
|
||||
|
||||
" Smalltalk (and Rexx, TeX, and Visual Basic)
|
||||
" Smalltalk (and ObjectScript, Rexx, TeX, and Visual Basic)
|
||||
au BufNewFile,BufRead *.cls call dist#ft#FTcls()
|
||||
|
||||
" SMIL or XML
|
||||
@@ -1411,6 +1410,9 @@ au BufNewFile,BufRead drac.* call s:StarSetf('dracula')
|
||||
" Execline (s6) scripts
|
||||
au BufNewFile,BufRead s6-* call s:StarSetf('execline')
|
||||
|
||||
" Env
|
||||
au BufNewFile,BufRead *.env,.env{.*,} setf env
|
||||
|
||||
" Fvwm
|
||||
au BufNewFile,BufRead */.fvwm/* call s:StarSetf('fvwm')
|
||||
au BufNewFile,BufRead *fvwmrc*,*fvwm95*.hook
|
||||
|
||||
19
runtime/ftplugin/env.vim
Normal file
19
runtime/ftplugin/env.vim
Normal file
@@ -0,0 +1,19 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: env
|
||||
" Maintainer: This runtime file is looking for a new maintainer.
|
||||
" Last Change: 2026 Feb 27
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
let b:undo_ftplugin = "setl com< cms< fo<"
|
||||
|
||||
setlocal comments=b:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
@@ -3,7 +3,7 @@
|
||||
" Maintainer: Carlo Baldassi <carlobaldassi@gmail.com>
|
||||
" Homepage: https://github.com/JuliaEditorSupport/julia-vim
|
||||
" Last Change: 2021 Aug 04
|
||||
" 2025 Dec 9 sync with upstream repo #18894
|
||||
" 2026 Feb 27 sync with upstream repo
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -16,7 +16,7 @@ set cpo&vim
|
||||
setlocal include=^\\s*\\%(reload\\\|include\\)\\>
|
||||
setlocal suffixesadd=.jl
|
||||
setlocal comments=:#
|
||||
setlocal commentstring=#=%s=#
|
||||
setlocal commentstring=#\ %s
|
||||
setlocal cinoptions+=#1
|
||||
setlocal define=^\\s*macro\\>
|
||||
setlocal fo-=t fo+=croql
|
||||
|
||||
13
runtime/ftplugin/nickel.vim
Normal file
13
runtime/ftplugin/nickel.vim
Normal file
@@ -0,0 +1,13 @@
|
||||
" Vim filetype plugin
|
||||
" Language: nickel
|
||||
" Maintainer: Riley Bruins <ribru17@gmail.com>
|
||||
" Last Change: 2026 Mar 01
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setl comments=:# commentstring=#\ %s
|
||||
|
||||
let b:undo_ftplugin = 'setl com< cms<'
|
||||
@@ -2,7 +2,7 @@
|
||||
" Language: OpenSSH client configuration file
|
||||
" Maintainer: This runtime file is looking for a new maintainer.
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2025-07-22 (use :hor term #17822)
|
||||
" Latest Revision: 2026-03-11 (`less -I`)
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -17,7 +17,7 @@ let b:undo_ftplugin = 'setlocal com< cms< fo<'
|
||||
|
||||
if has('unix') && executable('less') && exists(':terminal') == 2
|
||||
command -buffer -nargs=1 SshconfigKeywordPrg
|
||||
\ silent exe 'hor term ' . 'env LESS= MANPAGER="less --pattern=''' . escape('^\s+' . <q-args> . '$', '\') . ''' --hilite-search" man ' . 'ssh_config'
|
||||
\ silent exe 'hor term ' . 'env LESS= MANPAGER="less -I --pattern=''' . escape('^\s+' . <q-args> . '$', '\') . ''' --hilite-search" man ' . 'ssh_config'
|
||||
setlocal iskeyword+=-
|
||||
setlocal keywordprg=:SshconfigKeywordPrg
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer SshconfigKeywordPrg'
|
||||
|
||||
@@ -19,9 +19,8 @@ setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
|
||||
if has('unix') && executable('less') && exists(':terminal') == 2
|
||||
command -buffer -nargs=1 SudoersKeywordPrg
|
||||
\ silent exe ':hor term ' . 'env LESS= MANPAGER="less --pattern=''' . escape('\b' . <q-args> . '\b', '\') . ''' --hilite-search" man ' . 'sudoers'
|
||||
setlocal iskeyword+=-
|
||||
setlocal keywordprg=:SudoersKeywordPrg
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< iskeyword< | sil! delc -buffer SudoersKeywordPrg'
|
||||
let b:undo_ftplugin .= '| setlocal keywordprg< | sil! delc -buffer SudoersKeywordPrg'
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
|
||||
14
runtime/ftplugin/xkb.vim
Normal file
14
runtime/ftplugin/xkb.vim
Normal file
@@ -0,0 +1,14 @@
|
||||
" Vim filetype plugin
|
||||
" Language: xkb (X keyboard extension)
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2026 Mar 01
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setl comments=://
|
||||
setl commentstring=//\ %s
|
||||
|
||||
let b:undo_ftplugin = 'setl com< cms<'
|
||||
22
runtime/ftplugin/yara.vim
Normal file
22
runtime/ftplugin/yara.vim
Normal file
@@ -0,0 +1,22 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: YARA
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2026 Mar 17
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
|
||||
" Don't load another plugin for this buffer
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
" Set 'formatoptions' to break comment lines but not other lines,
|
||||
" and insert the comment leader when hitting <CR> or using "o".
|
||||
setlocal formatoptions-=t formatoptions+=croql
|
||||
|
||||
setlocal commentstring=//\ %s
|
||||
setlocal comments=s1:/*,mb:*,ex:*/,://
|
||||
|
||||
" Undo settings when leaving buffer
|
||||
let b:undo_ftplugin = "setlocal commentstring< comments< formatoptions<"
|
||||
128
runtime/indent/handlebars.vim
Normal file
128
runtime/indent/handlebars.vim
Normal file
@@ -0,0 +1,128 @@
|
||||
" Vim indent file
|
||||
" Language: Handlebars
|
||||
" Maintainer: Devin Weaver
|
||||
" Last Change: 2026 Feb 20
|
||||
" Origin: https://github.com/joukevandermaas/vim-ember-hbs
|
||||
" Credits: Jouke van der Maas
|
||||
" Acknowledgement: Based on eruby.vim indentation by TPope
|
||||
" License: MIT
|
||||
" The MIT License (MIT)
|
||||
"
|
||||
" Copyright (c) 2026 Devin Weaver
|
||||
" Copyright (c) 2015 Jouke van der Maas
|
||||
"
|
||||
" Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
" of this software and associated documentation files (the "Software"), to deal
|
||||
" in the Software without restriction, including without limitation the rights
|
||||
" to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
" copies of the Software, and to permit persons to whom the Software is
|
||||
" furnished to do so, subject to the following conditions:
|
||||
"
|
||||
" The above copyright notice and this permission notice shall be included in all
|
||||
" copies or substantial portions of the Software.
|
||||
"
|
||||
" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
" OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
" SOFTWARE.
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
|
||||
runtime! indent/html.vim
|
||||
unlet! b:did_indent
|
||||
|
||||
" Force HTML indent to not keep state.
|
||||
let b:html_indent_usestate = 0
|
||||
let b:handlebars_current_indent = 0
|
||||
|
||||
if &l:indentexpr == ''
|
||||
if &l:cindent
|
||||
let &l:indentexpr = 'cindent(v:lnum)'
|
||||
else
|
||||
let &l:indentexpr = 'indent(prevnonblank(v:lnum-1))'
|
||||
endif
|
||||
endif
|
||||
let b:handlebars_subtype_indentexpr = &l:indentexpr
|
||||
|
||||
let b:did_indent = 1
|
||||
|
||||
setlocal indentexpr=GetHandlebarsIndent()
|
||||
setlocal indentkeys=o,O,*<Return>,<>>,{,},0),0],o,O,!^F,=else,={{#,={{/
|
||||
|
||||
" Only define the function once.
|
||||
if exists("*GetHandlebarsIndent")
|
||||
finish
|
||||
endif
|
||||
|
||||
function! GetHandlebarsIndent(...)
|
||||
" The value of a single shift-width
|
||||
let sw = shiftwidth()
|
||||
|
||||
if a:0 && a:1 == '.'
|
||||
let v:lnum = line('.')
|
||||
elseif a:0 && a:1 =~ '^\d'
|
||||
let v:lnum = a:1
|
||||
endif
|
||||
let vcol = col('.')
|
||||
call cursor(v:lnum,1)
|
||||
call cursor(v:lnum,vcol)
|
||||
exe "let ind = ".b:handlebars_subtype_indentexpr
|
||||
|
||||
" Workaround for Andy Wokula's HTML indent. This should be removed after
|
||||
" some time, since the newest version is fixed in a different way. Credit
|
||||
" to eruby.vim indent by tpope
|
||||
if b:handlebars_subtype_indentexpr =~# '^HtmlIndent('
|
||||
\ && exists('b:indent')
|
||||
\ && type(b:indent) == type({})
|
||||
\ && has_key(b:indent, 'lnum')
|
||||
" Force HTML indent to not keep state
|
||||
let b:indent.lnum = -1
|
||||
endif
|
||||
|
||||
let lnum = prevnonblank(v:lnum-1)
|
||||
let prevLine = getline(lnum)
|
||||
let currentLine = getline(v:lnum)
|
||||
|
||||
" all indent rules only apply if the block opening/closing
|
||||
" tag is on a separate line
|
||||
|
||||
" indent after block {{#block
|
||||
if prevLine =~# '\v\s*\{\{\#'
|
||||
let ind = ind + sw
|
||||
endif
|
||||
" but not if the block ends on the same line
|
||||
if prevLine =~# '\v\s*\{\{\#(.+)(\s+|\}\}).+\{\{\/\1'
|
||||
let ind = ind - sw
|
||||
endif
|
||||
" unindent after block close {{/block}}
|
||||
if currentLine =~# '\v^\s*\{\{\/'
|
||||
let ind = ind - sw
|
||||
endif
|
||||
" indent after component block {{a-component
|
||||
if prevLine =~# '\v\s*\{\{\w'
|
||||
let ind = ind + sw
|
||||
endif
|
||||
" but not if the component block ends on the same line
|
||||
if prevLine =~# '\v\s*\{\{\w(.+)\}\}'
|
||||
let ind = ind - sw
|
||||
endif
|
||||
" unindent }} lines
|
||||
if currentLine =~# '\v^\s*\}\}\s*$' || (currentLine !~# '\v^\s*\{\{\/' && prevLine =~# '\v^\s*[^\{\}]+\}\}\s*$')
|
||||
let ind = ind - sw
|
||||
endif
|
||||
" unindent {{else}}
|
||||
if currentLine =~# '\v^\s*\{\{else'
|
||||
let ind = ind - sw
|
||||
endif
|
||||
" indent again after {{else}}
|
||||
if prevLine =~# '\v^\s*\{\{else'
|
||||
let ind = ind + sw
|
||||
endif
|
||||
|
||||
return ind
|
||||
endfunction
|
||||
@@ -196,7 +196,7 @@ menu_sr_rs.ascii.vim: menu_sr_rs.utf-8.vim
|
||||
-e 's/scriptencoding utf-8/scriptencoding latin1/' \
|
||||
-e 's/" Original translations/" Generated from $?, DO NOT EDIT/' \
|
||||
$? > $@
|
||||
|
||||
|
||||
# Convert menu_uk_ua.utf-8.vim to create menu_uk_ua.cp1251.vim.
|
||||
menu_uk_ua.cp1251.vim: menu_uk_ua.utf-8.vim
|
||||
rm -f $@
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Menu Translations: Simplified Chinese
|
||||
" Maintainer: Ada (Haowen) Yu <me@yuhaowen.com>
|
||||
" Previous Maintainer: Shun Bai <baishunde@gmail.com>, Yuheng Xie <elephant@linux.net.cn>
|
||||
" Last Change: 2022 July 9
|
||||
" Last Change: 2026 Feb 19
|
||||
" Generated from menu_zh_cn.utf-8.vim, DO NOT EDIT
|
||||
"
|
||||
" Generated with the scripts from:
|
||||
@@ -28,7 +28,7 @@ menutrans &How-to\ Links
|
||||
menutrans &Find\.\.\. 查找(&F)\.\.\.
|
||||
menutrans &Credits 致谢(&C)
|
||||
menutrans Co&pying 版权(&P)
|
||||
menutrans &Sponsor/Register 赞助/注册(&S)
|
||||
menutrans &Sponsor 赞助(&S)
|
||||
menutrans O&rphans 拯救孤儿(&R)
|
||||
menutrans &Version 版本(&V)
|
||||
menutrans &About 关于(&A)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
" Menu Translations: Traditional Chinese
|
||||
" Translated By: Hung-Te Lin <piaip@csie.ntu.edu.tw>
|
||||
" Last Change: 2012 May 01
|
||||
" Last Change: 2026 Feb 19
|
||||
" Generated from menu_zh_tw.utf-8.vim, DO NOT EDIT
|
||||
|
||||
" {{{ Quit when menu translations have already been done.
|
||||
@@ -24,7 +24,7 @@ menutrans &How-to\ links
|
||||
menutrans &GUI 圖型界面(&G)
|
||||
menutrans &Credits 感謝(&C)
|
||||
menutrans Co&pying 版權(&P)
|
||||
menutrans &Sponsor/Register 贊助/註冊(&S)
|
||||
menutrans &Sponsor 贊助(&S)
|
||||
menutrans O&rphans 拯救孤兒(&R)
|
||||
" ------------------------------------------------------------------------
|
||||
menutrans &Version 程式版本資訊(&V)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
" Menu Translations: Serbian
|
||||
" Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com>
|
||||
" Last Change: Fri, 30 May 2003 10:17:39 Eastern Daylight Time
|
||||
" Last Change: 2024 May 2
|
||||
" Adapted for VIM 8 by: ¸ÒÐÝ ¿ÕèØû on 2017-12-28 12:05+0400
|
||||
" Generated from menu_sr_rs.utf-8.vim, DO NOT EDIT
|
||||
|
||||
@@ -117,8 +117,8 @@ menutrans Create\ &Fold<Tab>zf
|
||||
menutrans &Delete\ Fold<Tab>zd ¾&ÑàØèØ\ áÒØøãâÐÚ<Tab>zd
|
||||
menutrans Delete\ &All\ Folds<Tab>zD ¾ÑàØèØ\ áÒÕ\ áÒ&ØøãâÚÕ<Tab>zD
|
||||
menutrans Fold\ column\ &width ÈØàØÝÐ\ &àÕÔÐ\ æÒØøãâÚÐ
|
||||
"menutrans &Diff &ÃßÞàÕòØÒÐúÕ
|
||||
menutrans &Make<Tab>:make 'mak&Õ'<Tab>:make
|
||||
menutrans &Diff ÃßÞàÕòØÒÐúÕ
|
||||
menutrans &Make<Tab>:make ½ÐßàÐÒØâØ<Tab>:make
|
||||
menutrans &List\ Errors<Tab>:cl ÁߨáÐÚ\ &ÓàÕèÐÚÐ<Tab>:cl
|
||||
menutrans L&ist\ Messages<Tab>:cl! Áß&ØáÐÚ\ ßÞàãÚÐ<Tab>:cl!
|
||||
menutrans &Next\ Error<Tab>:cn Á&ÛÕÔÕûÐ\ ÓàÕèÚÐ<Tab>:cn
|
||||
@@ -254,7 +254,7 @@ if has("toolbar")
|
||||
tmenu ToolBar.LoadSesn ÃçØâÐø áÕÐÝáã
|
||||
tmenu ToolBar.SaveSesn ÁÐçãÒÐø áÕÐÝáã
|
||||
tmenu ToolBar.RunScript ¸×ÒàèØ áߨá
|
||||
tmenu ToolBar.Make 'make'
|
||||
tmenu ToolBar.Make ½ÐßàÐÒØâØ
|
||||
tmenu ToolBar.Shell ¾ßÕàÐâØÒÝÞ ÞÚàãÖÕúÕ
|
||||
tmenu ToolBar.RunCtags ½ÐßàÐÒØ Þ×ÝÐÚÕ
|
||||
tmenu ToolBar.TagJump ¸ÔØ ÝÐ Þ×ÝÐÚã
|
||||
@@ -294,4 +294,4 @@ let menutrans_no_file = "[
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
" vim: tw=0 keymap=serbian
|
||||
" vim: tw=0
|
||||
|
||||
@@ -196,9 +196,9 @@ menutrans Set\ '&filetype'\ too 'filetype'\
|
||||
menutrans &Off &Kapat
|
||||
menutrans &Manual &El\ Ýle
|
||||
menutrans A&utomatic &Otomatik
|
||||
menutrans On/Off\ for\ &This\ File &Bu\ Dosya\ Ýçin\ Aç/Kapat
|
||||
menutrans Co&lor\ Test &Renk\ Testi
|
||||
menutrans &Highlight\ Test &Vurgulama\ Testi
|
||||
menutrans On/Off\ for\ &This\ File &Bu\ Dosya\ için\ Aç/Kapat
|
||||
menutrans Co&lor\ Test &Renk\ Sýnamasý
|
||||
menutrans &Highlight\ Test &Vurgu\ Sýnamasý
|
||||
menutrans &Convert\ to\ HTML &HTML'ye\ Dönüþtür
|
||||
|
||||
" Buffers menu
|
||||
|
||||
@@ -196,9 +196,9 @@ menutrans Set\ '&filetype'\ too 'filetype'\
|
||||
menutrans &Off &Kapat
|
||||
menutrans &Manual &El\ Ýle
|
||||
menutrans A&utomatic &Otomatik
|
||||
menutrans On/Off\ for\ &This\ File &Bu\ Dosya\ Ýçin\ Aç/Kapat
|
||||
menutrans Co&lor\ Test &Renk\ Testi
|
||||
menutrans &Highlight\ Test &Vurgulama\ Testi
|
||||
menutrans On/Off\ for\ &This\ File &Bu\ Dosya\ için\ Aç/Kapat
|
||||
menutrans Co&lor\ Test &Renk\ Sýnamasý
|
||||
menutrans &Highlight\ Test &Vurgu\ Sýnamasý
|
||||
menutrans &Convert\ to\ HTML &HTML'ye\ Dönüþtür
|
||||
|
||||
" Buffers menu
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Menu Translations: Simplified Chinese
|
||||
" Maintainer: Ada (Haowen) Yu <me@yuhaowen.com>
|
||||
" Previous Maintainer: Shun Bai <baishunde@gmail.com>, Yuheng Xie <elephant@linux.net.cn>
|
||||
" Last Change: 2022 July 9
|
||||
" Last Change: 2026 Feb 19
|
||||
" Original translations
|
||||
"
|
||||
" Generated with the scripts from:
|
||||
@@ -28,7 +28,7 @@ menutrans &How-to\ Links 如何使用(&H)
|
||||
menutrans &Find\.\.\. 查找(&F)\.\.\.
|
||||
menutrans &Credits 致谢(&C)
|
||||
menutrans Co&pying 版权(&P)
|
||||
menutrans &Sponsor/Register 赞助/注册(&S)
|
||||
menutrans &Sponsor 赞助(&S)
|
||||
menutrans O&rphans 拯救孤儿(&R)
|
||||
menutrans &Version 版本(&V)
|
||||
menutrans &About 关于(&A)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
" Menu Translations: Traditional Chinese
|
||||
" Translated By: Hung-Te Lin <piaip@csie.ntu.edu.tw>
|
||||
" Last Change: 2012 May 01
|
||||
" Last Change: 2026 Feb 19
|
||||
" Original translations
|
||||
|
||||
" {{{ Quit when menu translations have already been done.
|
||||
@@ -24,7 +24,7 @@ menutrans &How-to\ links 如何作\.\.\.(&H)
|
||||
menutrans &GUI 圖型界面(&G)
|
||||
menutrans &Credits 感謝(&C)
|
||||
menutrans Co&pying 版權(&P)
|
||||
menutrans &Sponsor/Register 贊助/註冊(&S)
|
||||
menutrans &Sponsor 贊助(&S)
|
||||
menutrans O&rphans 拯救孤兒(&R)
|
||||
" ------------------------------------------------------------------------
|
||||
menutrans &Version 程式版本資訊(&V)
|
||||
|
||||
@@ -2,25 +2,15 @@
|
||||
# Shell script to start Vim with less.vim.
|
||||
# Read stdin if no arguments were given and stdin was redirected.
|
||||
|
||||
if test -t 1; then
|
||||
if test $# = 0; then
|
||||
if test -t 0; then
|
||||
echo "Missing filename" 1>&2
|
||||
exit
|
||||
fi
|
||||
vim --cmd 'let no_plugin_maps = 1' -c 'runtime! macros/less.vim' -
|
||||
else
|
||||
vim --cmd 'let no_plugin_maps = 1' -c 'runtime! macros/less.vim' "$@"
|
||||
fi
|
||||
else
|
||||
# Output is not a terminal, cat arguments or stdin
|
||||
if test $# = 0; then
|
||||
if test -t 0; then
|
||||
echo "Missing filename" 1>&2
|
||||
exit
|
||||
fi
|
||||
cat
|
||||
else
|
||||
cat "$@"
|
||||
fi
|
||||
if [ $# -eq 0 ] && [ -t 0 ]; then
|
||||
echo "$(basename "$0"): No input." 1>&2
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ -t 1 ]; then
|
||||
[ $# -eq 0 ] && set -- "-"
|
||||
[ "$*" != "-" ] && set -- -- "$@"
|
||||
exec vim --cmd 'let no_plugin_maps=1' -c 'runtime! macros/less.vim' --not-a-term "$@"
|
||||
else # Output is not a terminal.
|
||||
exec cat -- "$@"
|
||||
fi
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" These commands create the option window.
|
||||
"
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2025 Nov 27
|
||||
" Last Change: 2026 Mar 11
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" If there already is an option window, jump to that one.
|
||||
@@ -385,6 +385,12 @@ call <SID>AddOption("window", gettext("number of lines to scroll for CTRL-F and
|
||||
call append("$", " \tset window=" . &window)
|
||||
call <SID>AddOption("lazyredraw", gettext("don't redraw while executing macros"))
|
||||
call <SID>BinOptionG("lz", &lz)
|
||||
if has("unix")
|
||||
call <SID>AddOption("termresize", gettext("configure method of receiving terminal size changes"))
|
||||
call <SID>BinOptionG("trz", &trz)
|
||||
endif
|
||||
call <SID>AddOption("termsync", gettext("enable terminal sync mode"))
|
||||
call <SID>BinOptionG("tsy", &tsy)
|
||||
if has("reltime")
|
||||
call <SID>AddOption("redrawtime", gettext("timeout for 'hlsearch' and :match highlighting in msec"))
|
||||
call append("$", " \tset rdt=" . &rdt)
|
||||
@@ -445,6 +451,9 @@ call <SID>BinOptionG("hls", &hls)
|
||||
call <SID>AddOption("wincolor", gettext("highlight group to use for the window"))
|
||||
call append("$", "\t" .. s:local_to_window)
|
||||
call <SID>OptionL("wcr")
|
||||
call <SID>AddOption("winhighlight", gettext("highlight group mappings for the window"))
|
||||
call append("$", "\t" .. s:local_to_window)
|
||||
call <SID>OptionL("whl")
|
||||
if has("termguicolors")
|
||||
call <SID>AddOption("termguicolors", gettext("use GUI colors for the terminal"))
|
||||
call <SID>BinOptionG("tgc", &tgc)
|
||||
@@ -490,8 +499,10 @@ call append("$", " \tset ls=" . &ls)
|
||||
if has("statusline")
|
||||
call <SID>AddOption("statusline", gettext("alternate format to be used for a status line"))
|
||||
call <SID>OptionG("stl", &stl)
|
||||
call append("$", "\t" .. s:local_to_window)
|
||||
call <SID>AddOption("statuslineopt", gettext("optional settings for the status line"))
|
||||
call <SID>OptionG("stlo", &stlo)
|
||||
endif
|
||||
call append("$", "\t" .. s:local_to_window)
|
||||
call <SID>AddOption("equalalways", gettext("make all windows the same size when adding/removing windows"))
|
||||
call <SID>BinOptionG("ea", &ea)
|
||||
call <SID>AddOption("eadirection", gettext("in which direction 'equalalways' works: \"ver\", \"hor\" or \"both\""))
|
||||
|
||||
41
runtime/pack/dist/opt/netrw/autoload/netrw.vim
vendored
41
runtime/pack/dist/opt/netrw/autoload/netrw.vim
vendored
@@ -19,6 +19,9 @@
|
||||
" 2025 Dec 26 by Vim Project fix use of g:netrw_cygwin #19015
|
||||
" 2026 Jan 19 by Vim Project do not create swapfiles #18854
|
||||
" 2026 Feb 15 by Vim Project fix global variable initialization for MS-Windows #19287
|
||||
" 2026 Feb 21 by Vim Project better absolute path detection on MS-Windows #19477
|
||||
" 2026 Feb 27 by Vim Project Make the hostname validation more strict
|
||||
" 2026 Mar 01 by Vim Project include portnumber in hostname checking #19533
|
||||
" Copyright: Copyright (C) 2016 Charles E. Campbell {{{1
|
||||
" Permission is hereby granted to use and distribute this code,
|
||||
" with or without modifications, provided that this copyright
|
||||
@@ -2590,13 +2593,29 @@ endfunction
|
||||
|
||||
" s:NetrwValidateHostname: Validate that the hostname is valid {{{2
|
||||
" Input:
|
||||
" hostname
|
||||
" hostname, may include an optional username and port number, e.g.
|
||||
" user@hostname:port
|
||||
" allow a alphanumeric hostname or an IPv(4/6) address
|
||||
" Output:
|
||||
" true if g:netrw_machine is valid according to RFC1123 #Section 2
|
||||
function s:NetrwValidateHostname(hostname)
|
||||
" RFC1123#section-2 mandates, a valid hostname starts with letters or digits
|
||||
" so reject everyhing else
|
||||
return a:hostname =~? '^[a-z0-9]'
|
||||
" Username:
|
||||
let user_pat = '\%([a-zA-Z0-9._-]\+@\)\?'
|
||||
" Hostname: 1-64 chars, alphanumeric/dots/hyphens.
|
||||
" No underscores. No leading/trailing dots/hyphens.
|
||||
let host_pat = '[a-zA-Z0-9]\%([-a-zA-Z0-9.]\{0,62}[a-zA-Z0-9]\)\?'
|
||||
" Port: 16 bit unsigned integer
|
||||
let port_pat = '\%(:\d\{1,5\}\)\?$'
|
||||
|
||||
" IPv4: 1-3 digits separated by dots
|
||||
let ipv4_pat = '\%(\d\{1,3}\.\)\{3\}\d\{1,3\}'
|
||||
|
||||
" IPv6: Hex, colons, and optional brackets
|
||||
let ipv6_pat = '\[\?\%([a-fA-F0-9:]\{2,}\)\+\]\?'
|
||||
|
||||
return a:hostname =~? '^'.user_pat.host_pat.port_pat ||
|
||||
\ a:hostname =~? '^'.user_pat.ipv4_pat.port_pat ||
|
||||
\ a:hostname =~? '^'.user_pat.ipv6_pat.port_pat
|
||||
endfunction
|
||||
|
||||
" NetUserPass: set username and password for subsequent ftp transfer {{{2
|
||||
@@ -3239,7 +3258,7 @@ function s:NetrwFile(fname)
|
||||
endif
|
||||
|
||||
if !g:netrw_cygwin && has("win32")
|
||||
if fname =~ '^\' || fname =~ '^\a:\'
|
||||
if isabsolutepath(fname)
|
||||
" windows, but full path given
|
||||
let ret= fname
|
||||
else
|
||||
@@ -8960,15 +8979,15 @@ endfunction
|
||||
" s:MakeSshCmd: transforms input command using USEPORT HOSTNAME into {{{2
|
||||
" a correct command for use with a system() call
|
||||
function s:MakeSshCmd(sshcmd)
|
||||
if s:user == ""
|
||||
let sshcmd = substitute(a:sshcmd,'\<HOSTNAME\>',s:machine,'')
|
||||
else
|
||||
let sshcmd = substitute(a:sshcmd,'\<HOSTNAME\>',s:user."@".s:machine,'')
|
||||
let machine = shellescape(s:machine, 1)
|
||||
if s:user != ''
|
||||
let machine = shellescape(s:user, 1).'@'.machine
|
||||
endif
|
||||
let sshcmd = substitute(a:sshcmd,'\<HOSTNAME\>',machine,'')
|
||||
if exists("g:netrw_port") && g:netrw_port != ""
|
||||
let sshcmd= substitute(sshcmd,"USEPORT",g:netrw_sshport.' '.g:netrw_port,'')
|
||||
let sshcmd= substitute(sshcmd,"USEPORT",g:netrw_sshport.' '.shellescape(g:netrw_port,1),'')
|
||||
elseif exists("s:port") && s:port != ""
|
||||
let sshcmd= substitute(sshcmd,"USEPORT",g:netrw_sshport.' '.s:port,'')
|
||||
let sshcmd= substitute(sshcmd,"USEPORT",g:netrw_sshport.' '.shellescape(s:port,1),'')
|
||||
else
|
||||
let sshcmd= substitute(sshcmd,"USEPORT ",'','')
|
||||
endif
|
||||
|
||||
7
runtime/pack/dist/opt/osc52/doc/osc52.txt
vendored
7
runtime/pack/dist/opt/osc52/doc/osc52.txt
vendored
@@ -62,9 +62,10 @@ setting |g:osc52_force_avail| to true.
|
||||
|
||||
*g:osc52_disable_paste*
|
||||
If your terminal does not support pasting via OSC 52, or has it disabled, then
|
||||
it is a good idea to set g:osc52_disable_paste to TRUE. This will cause an
|
||||
empty string to be returned when Vim attempts to query the osc52.vim provider,
|
||||
instead of doing a blocking wait, as said in |osc52-support|.
|
||||
it is a good idea to set g:osc52_disable_paste to TRUE. This will register
|
||||
only the "copy" method for the osc52.vim clipboard provider, so Vim will not
|
||||
attempt an OSC 52 paste query and avoids the blocking wait described in
|
||||
|osc52-support|.
|
||||
|
||||
==============================================================================
|
||||
vim:tw=78:ts=8:fo=tcq2:ft=help:
|
||||
|
||||
19
runtime/pack/dist/opt/osc52/plugin/osc52.vim
vendored
19
runtime/pack/dist/opt/osc52/plugin/osc52.vim
vendored
@@ -3,7 +3,7 @@ vim9script
|
||||
# Vim plugin for OSC52 clipboard support
|
||||
#
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2025 Dec 18
|
||||
# Last Change: 2026 Mar 01
|
||||
|
||||
if !has("timers")
|
||||
finish
|
||||
@@ -11,18 +11,25 @@ endif
|
||||
|
||||
import autoload "../autoload/osc52.vim" as osc
|
||||
|
||||
v:clipproviders["osc52"] = {
|
||||
var provider: dict<any> = {
|
||||
"available": osc.Available,
|
||||
"paste": {
|
||||
"*": osc.Paste,
|
||||
"+": osc.Paste
|
||||
},
|
||||
"copy": {
|
||||
"*": osc.Copy,
|
||||
"+": osc.Copy
|
||||
},
|
||||
}
|
||||
|
||||
if !get(g:, 'osc52_disable_paste', 0)
|
||||
provider->extend({
|
||||
"paste": {
|
||||
"*": osc.Paste,
|
||||
"+": osc.Paste
|
||||
}
|
||||
})
|
||||
endif
|
||||
|
||||
v:clipproviders["osc52"] = provider
|
||||
|
||||
def SendDA1(): void
|
||||
if !has("gui_running") && !get(g:, 'osc52_force_avail', 0)
|
||||
&& !get(g:, 'osc52_no_da1', 0)
|
||||
|
||||
@@ -4,7 +4,7 @@ vim9script
|
||||
|
||||
# Author: Bram Moolenaar
|
||||
# Copyright: Vim license applies, see ":help license"
|
||||
# Last Change: 2025 Dec 26
|
||||
# Last Change: 2026 Mar 11
|
||||
# Converted to Vim9: Ubaldo Tiberi <ubaldo.tiberi@gmail.com>
|
||||
|
||||
# WORK IN PROGRESS - The basics works stable, more to come
|
||||
@@ -1592,6 +1592,87 @@ def QuoteArg(x: string): string
|
||||
return printf('"%s"', x ->substitute('[\\"]', '\\&', 'g'))
|
||||
enddef
|
||||
|
||||
def DefaultBreakpointLocation(): string
|
||||
# Use the fname:lnum format, older gdb can't handle --source.
|
||||
var fname = Remote2LocalPath(expand('%:p'))
|
||||
return QuoteArg($"{fname}:{line('.')}")
|
||||
enddef
|
||||
|
||||
def TokenizeBreakpointArguments(args: string): list<dict<any>>
|
||||
var tokens: list<dict<any>> = []
|
||||
var start = -1
|
||||
var escaped = false
|
||||
var in_quotes = false
|
||||
|
||||
var i = 0
|
||||
for ch in args
|
||||
if start < 0 && ch !~ '\s'
|
||||
start = i
|
||||
endif
|
||||
if start >= 0
|
||||
if escaped
|
||||
escaped = false
|
||||
elseif ch == '\'
|
||||
escaped = true
|
||||
elseif ch == '"'
|
||||
in_quotes = !in_quotes
|
||||
elseif !in_quotes && ch =~ '\s'
|
||||
tokens->add({text: args[start : i - 1], start: start, end: i - 1})
|
||||
start = -1
|
||||
endif
|
||||
endif
|
||||
i += 1
|
||||
endfor
|
||||
|
||||
if start >= 0
|
||||
tokens->add({text: args[start :], start: start, end: i - 1})
|
||||
endif
|
||||
return tokens
|
||||
enddef
|
||||
|
||||
def BuildBreakpointCommand(at: string, tbreak=false): string
|
||||
var args = trim(at)
|
||||
var cmd = '-break-insert'
|
||||
if tbreak
|
||||
cmd ..= ' -t'
|
||||
endif
|
||||
|
||||
if empty(args)
|
||||
return $'{cmd} {DefaultBreakpointLocation()}'
|
||||
endif
|
||||
|
||||
var condition = ''
|
||||
var prefix = args
|
||||
for token in TokenizeBreakpointArguments(args)
|
||||
if token.text == 'if' && token.end < strchars(args) - 1
|
||||
condition = trim(args[token.end + 1 :])
|
||||
prefix = token.start > 0 ? trim(args[: token.start - 1]) : ''
|
||||
break
|
||||
endif
|
||||
endfor
|
||||
|
||||
var prefix_tokens = TokenizeBreakpointArguments(prefix)
|
||||
var location = prefix
|
||||
var thread = ''
|
||||
if len(prefix_tokens) >= 2
|
||||
&& prefix_tokens[-2].text == 'thread'
|
||||
&& prefix_tokens[-1].text =~ '^\d\+$'
|
||||
thread = prefix_tokens[-1].text
|
||||
location = join(prefix_tokens[: -3]->mapnew('v:val.text'), ' ')
|
||||
endif
|
||||
|
||||
if empty(trim(location))
|
||||
location = DefaultBreakpointLocation()
|
||||
endif
|
||||
if !empty(thread)
|
||||
cmd ..= $' -p {thread}'
|
||||
endif
|
||||
if !empty(condition)
|
||||
cmd ..= $' -c {QuoteArg(condition)}'
|
||||
endif
|
||||
return $'{cmd} {trim(location)}'
|
||||
enddef
|
||||
|
||||
# :Until - Execute until past a specified position or current line
|
||||
def Until(at: string)
|
||||
|
||||
@@ -1620,15 +1701,7 @@ def SetBreakpoint(at: string, tbreak=false)
|
||||
sleep 10m
|
||||
endif
|
||||
|
||||
# Use the fname:lnum format, older gdb can't handle --source.
|
||||
var fname = Remote2LocalPath(expand('%:p'))
|
||||
var AT = empty(at) ? QuoteArg($"{fname}:{line('.')}") : at
|
||||
var cmd = ''
|
||||
if tbreak
|
||||
cmd = $'-break-insert -t {AT}'
|
||||
else
|
||||
cmd = $'-break-insert {AT}'
|
||||
endif
|
||||
var cmd = BuildBreakpointCommand(at, tbreak)
|
||||
SendCommand(cmd)
|
||||
if do_continue
|
||||
ContinueCommand()
|
||||
|
||||
@@ -27,7 +27,7 @@ RUN_VIMTEST = VIMRUNTIME=$(VIMRUNTIME) $(VALGRIND) $(ENVVARS) ../$(VIMPROG) -f $
|
||||
# DEBUGLOG = --log testlog
|
||||
|
||||
# All initial phony targets; these names may clash with file types.
|
||||
phonies = clean test testclean
|
||||
phonies = clean executables test testclean
|
||||
.PHONY: $(phonies)
|
||||
|
||||
# Run the tests that didn't run yet or failed previously.
|
||||
@@ -53,6 +53,9 @@ testdir/testdeps.mk:
|
||||
|
||||
-include testdir/testdeps.mk
|
||||
|
||||
executables:
|
||||
@! find testdir/input -type f -perm /a+x -exec echo Executable syntax test found: \{\} \; | grep :
|
||||
|
||||
clean testclean:
|
||||
rm -f testdir/failed/* testdir/done/* testdir/vimcmd testdir/messages testdir/Xtestscript testdir/Xfilter testdir/testdeps.mk
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
" License: This file can be redistribued and/or modified under the same terms
|
||||
" as Vim itself.
|
||||
" Last Change: 2024 Nov 24
|
||||
" 2026 Feb 19 by Vim project: Add SSLVHostSNIPolicy
|
||||
" Notes: Last synced with apache-2.4.62, version 1.x is no longer supported
|
||||
" TODO: see particular FIXME's scattered through the file
|
||||
" make it really linewise?
|
||||
@@ -163,7 +164,7 @@ syn keyword apacheOption inherit
|
||||
syn keyword apacheDeclaration BrowserMatch BrowserMatchNoCase SetEnvIf SetEnvIfNoCase
|
||||
syn keyword apacheDeclaration LoadFile LoadModule
|
||||
syn keyword apacheDeclaration CheckSpelling CheckCaseOnly
|
||||
syn keyword apacheDeclaration SSLCACertificateFile SSLCACertificatePath SSLCADNRequestFile SSLCADNRequestPath SSLCARevocationFile SSLCARevocationPath SSLCertificateChainFile SSLCertificateFile SSLCertificateKeyFile SSLCipherSuite SSLCompression SSLCryptoDevice SSLEngine SSLFIPS SSLHonorCipherOrder SSLInsecureRenegotiation SSLMutex SSLOptions SSLPassPhraseDialog SSLProtocol SSLProxyCACertificateFile SSLProxyCACertificatePath SSLProxyCARevocationFile SSLProxyCARevocationPath SSLProxyCheckPeerCN SSLProxyCheckPeerExpire SSLProxyCipherSuite SSLProxyEngine SSLProxyMachineCertificateChainFile SSLProxyMachineCertificateFile SSLProxyMachineCertificatePath SSLProxyProtocol SSLProxyVerify SSLProxyVerifyDepth SSLRandomSeed SSLRenegBufferSize SSLRequire SSLRequireSSL SSLSessionCache SSLSessionCacheTimeout SSLSessionTicketKeyFile SSLSessionTickets SSLStrictSNIVHostCheck SSLUserName SSLVerifyClient SSLVerifyDepth
|
||||
syn keyword apacheDeclaration SSLCACertificateFile SSLCACertificatePath SSLCADNRequestFile SSLCADNRequestPath SSLCARevocationFile SSLCARevocationPath SSLCertificateChainFile SSLCertificateFile SSLCertificateKeyFile SSLCipherSuite SSLCompression SSLCryptoDevice SSLEngine SSLFIPS SSLHonorCipherOrder SSLInsecureRenegotiation SSLMutex SSLOptions SSLPassPhraseDialog SSLProtocol SSLProxyCACertificateFile SSLProxyCACertificatePath SSLProxyCARevocationFile SSLProxyCARevocationPath SSLProxyCheckPeerCN SSLProxyCheckPeerExpire SSLProxyCipherSuite SSLProxyEngine SSLProxyMachineCertificateChainFile SSLProxyMachineCertificateFile SSLProxyMachineCertificatePath SSLProxyProtocol SSLProxyVerify SSLProxyVerifyDepth SSLRandomSeed SSLRenegBufferSize SSLRequire SSLRequireSSL SSLSessionCache SSLSessionCacheTimeout SSLSessionTicketKeyFile SSLSessionTickets SSLStrictSNIVHostCheck SSLUserName SSLVerifyClient SSLVerifyDepth SSLVHostSNIPolicy
|
||||
syn match apacheOption "[+-]\?\<\(StdEnvVars\|CompatEnvVars\|ExportCertData\|FakeBasicAuth\|StrictRequire\|OptRenegotiate\)\>"
|
||||
syn keyword apacheOption builtin sem
|
||||
syn match apacheOption "\(file\|exec\|egd\|dbm\|shm\):"
|
||||
|
||||
28
runtime/syntax/env.vim
Normal file
28
runtime/syntax/env.vim
Normal file
@@ -0,0 +1,28 @@
|
||||
" Vim syntax file
|
||||
" Language: env
|
||||
" Maintainer: DuckAfire <duckafire@gmail.com>
|
||||
" Last Change: 2026 Jan 27
|
||||
" Version: 2
|
||||
" Changelog:
|
||||
" 0. Create syntax file.
|
||||
" 1. Remove unused variable (g:main_syntax).
|
||||
" 2. Apply changes required by github@dkearns
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
syn match envField nextgroup=envValue /^\h\%(\w\|\.\)*/
|
||||
syn region envValue matchgroup=Operator start=/=/ end=/$/
|
||||
syn match envComment contains=envTodo,envTitles /^#.*$/
|
||||
syn keyword envTodo contained CAUTION NOTE TODO WARN WARNING
|
||||
syn match envTitle contained /^\s*#\s*\zs[A-Z0-9][A-Z0-9 ]*:/
|
||||
|
||||
hi def link envField Identifier
|
||||
hi def link envValue String
|
||||
hi def link envComment Comment
|
||||
hi def link envTodo Todo
|
||||
hi def link envTitle PreProc
|
||||
|
||||
let b:current_syntax = "env"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" Language: Vim script
|
||||
" Maintainer: Hirohito Higashi <h.east.727 ATMARK gmail.com>
|
||||
" Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2026 Jan 30
|
||||
" Last Change: 2026 Feb 20
|
||||
" Former Maintainer: Charles E. Campbell
|
||||
|
||||
" DO NOT CHANGE DIRECTLY.
|
||||
@@ -1784,17 +1784,32 @@ Vim9 syn match vimWincmd "\s\=\<winc\%[md]\>\ze\s\+=\s*\%([#|]\|$\)" skipwhite n
|
||||
|
||||
" Syntax: {{{2
|
||||
"=======
|
||||
syn match vimGroupList contained "[^[:space:],]\+\%(\s*,\s*[^[:space:],]\+\)*" contains=vimGroupSpecial
|
||||
syn region vimGroupList contained start=/^\s*["#]\\ \|^\s*\\\|[^[:space:],]\+\s*,/ skip=/\s*\n\s*\%(\\\|["#]\\ \)\|^\s*\%(\\\|["#]\\ \)/ end=/[^[:space:],]\s*$\|[^[:space:],]\ze\s\+\w/ contains=@vimContinue,vimGroupSpecial
|
||||
syn region vimGroupList contained
|
||||
\ start="\S"
|
||||
\ skip=+\n\s*\%(\\\|["#]\\ \)+
|
||||
"\ need to consume the whitespace
|
||||
\ end="\s"he=e-1
|
||||
\ end="$"
|
||||
\ contains=@vimGroupListContinue,vimGroupSpecial,vimGroupListContinueComma
|
||||
syn keyword vimGroupSpecial contained ALL ALLBUT CONTAINED TOP
|
||||
syn match vimGroupListComma contained ","
|
||||
syn match vimGroupListContinueComma contained "\s\+,\s*\|,\s\+" contains=vimGroupListComma
|
||||
syn match vimGroupListContinueComma contained "\s*,\s*\%(\n\s*\%(\\\s\+\|["#]\\ .*\)\)\+" contains=@vimGroupListContinue,vimGroupListComma
|
||||
|
||||
syn match vimGroupListEquals contained "=" skipwhite skipnl nextgroup=vimGroupListContinueStart,vimGroupList
|
||||
" the first continuation line does not terminate the list at whitepace after \
|
||||
syn match vimGroupListContinueStart contained "^\%(\s*["#]\\ .*\n\)*\s*\\\s\+" skipwhite nextgroup=vimGroupList contains=@vimGroupListContinue transparent
|
||||
|
||||
syn match vimGroupListContinue contained "^\s*\\" skipwhite skipnl nextgroup=@vimGroupListContinue,vimGroupListContinueComma contains=vimWhitespace
|
||||
syn match vimGroupListContinueComment contained '^\s*["#]\\ .*' skipwhite skipnl nextgroup=@vimGroupListContinue contains=vimWhitespace
|
||||
syn cluster vimGroupListContinue contains=vimGroupListContinue,vimGroupListContinueComment
|
||||
|
||||
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimsynerror")
|
||||
syn match vimSynError contained "\i\+"
|
||||
syn match vimSynError contained "\i\+=" nextgroup=vimGroupList
|
||||
syn match vimSynError contained "\i\+"
|
||||
endif
|
||||
syn match vimSynContains contained "\<contain\%(s\|edin\)=" skipwhite skipnl nextgroup=vimGroupList
|
||||
syn match vimSynKeyContainedin contained "\<containedin=" skipwhite skipnl nextgroup=vimGroupList
|
||||
syn match vimSynNextgroup contained "\<nextgroup=" skipwhite skipnl nextgroup=vimGroupList
|
||||
syn match vimSynContains contained "\<contains\>" skipwhite nextgroup=vimGroupListEquals
|
||||
syn match vimSynContainedin contained "\<containedin\>" skipwhite nextgroup=vimGroupListEquals
|
||||
syn match vimSynNextgroup contained "\<nextgroup\>" skipwhite nextgroup=vimGroupListEquals
|
||||
if has("conceal")
|
||||
" no whitespace allowed after '='
|
||||
syn match vimSynCchar contained "\<cchar=" nextgroup=vimSynCcharValue
|
||||
@@ -1812,13 +1827,13 @@ endif
|
||||
syn keyword vimSynCase contained ignore match
|
||||
|
||||
" Syntax: clear {{{2
|
||||
syn keyword vimSynType contained clear skipwhite nextgroup=vimGroupList
|
||||
syn keyword vimSynType contained clear
|
||||
|
||||
" Syntax: cluster {{{2
|
||||
syn keyword vimSynType contained cluster skipwhite nextgroup=vimClusterName
|
||||
syn region vimClusterName contained keepend matchgroup=vimGroupName start="\h\w*\>" skip=+\\\\\|\\\|\n\s*\%(\\\|"\\ \)+ matchgroup=vimCmdSep end="$\||" contains=@vimContinue,vimGroupAdd,vimGroupRem,vimSynContains,vimSynError
|
||||
syn match vimGroupAdd contained keepend "\<add=" skipwhite skipnl nextgroup=vimGroupList
|
||||
syn match vimGroupRem contained keepend "\<remove=" skipwhite skipnl nextgroup=vimGroupList
|
||||
syn match vimGroupAdd contained "\<add\>" skipwhite nextgroup=vimGroupListEquals
|
||||
syn match vimGroupRem contained "\<remove\>" skipwhite nextgroup=vimGroupListEquals
|
||||
|
||||
" Syntax: conceal {{{2
|
||||
syn match vimSynType contained "\<conceal\>" skipwhite nextgroup=vimSynConceal,vimSynConcealError
|
||||
@@ -1841,16 +1856,17 @@ syn match vimSynIskeyword contained "\S\+" contains=vimSynIskeywordSep
|
||||
syn match vimSynIskeywordSep contained ","
|
||||
|
||||
" Syntax: include {{{2
|
||||
syn keyword vimSynType contained include skipwhite nextgroup=vimGroupList
|
||||
syn keyword vimSynType contained include skipwhite nextgroup=vimSynIncludeCluster
|
||||
syn match vimSynIncludeCluster contained "@[_a-zA-Z0-9]\+\>"
|
||||
|
||||
" Syntax: keyword {{{2
|
||||
syn cluster vimSynKeyGroup contains=@vimContinue,vimSynCchar,vimSynNextgroup,vimSynKeyOpt,vimSynKeyContainedin
|
||||
syn cluster vimSynKeyGroup contains=@vimContinue,vimSynCchar,vimSynNextgroup,vimSynKeyOpt,vimSynContainedin
|
||||
syn keyword vimSynType contained keyword skipwhite nextgroup=vimSynKeyRegion
|
||||
syn region vimSynKeyRegion contained keepend matchgroup=vimGroupName start="\h\w*\>" skip=+\\\\\|\\|\|\n\s*\%(\\\|"\\ \)+ matchgroup=vimCmdSep end="|\|$" contains=@vimSynKeyGroup
|
||||
syn match vimSynKeyOpt contained "\%#=1\<\%(conceal\|contained\|transparent\|skipempty\|skipwhite\|skipnl\)\>"
|
||||
|
||||
" Syntax: match {{{2
|
||||
syn cluster vimSynMtchGroup contains=@vimContinue,vimSynCchar,vimSynContains,vimSynError,vimSynMtchOpt,vimSynNextgroup,vimSynRegPat,vimNotation,vimMtchComment
|
||||
syn cluster vimSynMtchGroup contains=@vimContinue,vimSynCchar,vimSynContains,vimSynContainedin,vimSynError,vimSynMtchOpt,vimSynNextgroup,vimSynRegPat,vimNotation,vimMtchComment
|
||||
syn keyword vimSynType contained match skipwhite nextgroup=vimSynMatchRegion
|
||||
syn region vimSynMatchRegion contained keepend matchgroup=vimGroupName start="\h\w*\>" skip=+\\\\\|\\|\|\n\s*\%(\\\|"\\ \)+ matchgroup=vimCmdSep end="|\|$" contains=@vimSynMtchGroup
|
||||
syn match vimSynMtchOpt contained "\%#=1\<\%(conceal\|transparent\|contained\|excludenl\|keepend\|skipempty\|skipwhite\|display\|extend\|skipnl\|fold\)\>"
|
||||
@@ -1860,9 +1876,9 @@ syn keyword vimSynType contained enable list manual off on reset
|
||||
|
||||
" Syntax: region {{{2
|
||||
syn cluster vimSynRegPatGroup contains=@vimContinue,vimPatSep,vimNotPatSep,vimSynPatRange,vimSynNotPatRange,vimSubstSubstr,vimPatRegion,vimPatSepErr,vimNotation
|
||||
syn cluster vimSynRegGroup contains=@vimContinue,vimSynCchar,vimSynContains,vimSynNextgroup,vimSynRegOpt,vimSynReg,vimSynMtchGrp
|
||||
syn cluster vimSynRegGroup contains=@vimContinue,vimSynCchar,vimSynContains,vimSynContainedin,vimSynNextgroup,vimSynRegOpt,vimSynReg,vimSynMtchGrp
|
||||
syn keyword vimSynType contained region skipwhite nextgroup=vimSynRegion
|
||||
syn region vimSynRegion contained keepend matchgroup=vimGroupName start="\h\w*" skip=+\\\\\|\\\|\n\s*\%(\\\|"\\ \)+ matchgroup=vimCmdSep end="|\|$" contains=@vimSynRegGroup
|
||||
syn region vimSynRegion contained keepend matchgroup=vimGroupName start="\h\w*" skip=+\\\\\|\\|\|\n\s*\%(\\\|"\\ \)+ matchgroup=vimCmdSep end="|\|$" contains=@vimSynRegGroup
|
||||
syn match vimSynRegOpt contained "\%#=1\<\%(conceal\%(ends\)\=\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|keepend\|oneline\|extend\|skipnl\|fold\)\>"
|
||||
syn match vimSynReg contained "\<\%(start\|skip\|end\)=" nextgroup=vimSynRegPat
|
||||
syn match vimSynMtchGrp contained "matchgroup=" nextgroup=vimGroup,vimHLGroup
|
||||
@@ -2520,11 +2536,14 @@ if !exists("skip_vim_syntax_inits")
|
||||
hi def link vimGrep vimCommand
|
||||
hi def link vimGrepadd vimCommand
|
||||
hi def link vimGrepBang vimBang
|
||||
hi def link vimGroup Type
|
||||
hi def link vimGroupAdd vimSynOption
|
||||
hi def link vimGroupListEquals vimSynOption
|
||||
hi def link vimGroupListContinue vimContinue
|
||||
hi def link vimGroupListContinueComment vimContinueComment
|
||||
hi def link vimGroupName Normal
|
||||
hi def link vimGroupRem vimSynOption
|
||||
hi def link vimGroupSpecial Special
|
||||
hi def link vimGroup Type
|
||||
hi def link vimHelp vimCommand
|
||||
hi def link vimHelpBang vimBang
|
||||
hi def link vimHelpgrep vimCommand
|
||||
@@ -2689,7 +2708,7 @@ if !exists("skip_vim_syntax_inits")
|
||||
hi def link vimSynFoldlevel Type
|
||||
hi def link vimSynIskeyword Type
|
||||
hi def link vimSynIskeywordSep Delimiter
|
||||
hi def link vimSynKeyContainedin vimSynContains
|
||||
hi def link vimSynContainedin vimSynContains
|
||||
hi def link vimSynKeyOpt vimSynOption
|
||||
hi def link vimSynMtchGrp vimSynOption
|
||||
hi def link vimSynMtchOpt vimSynOption
|
||||
|
||||
51
runtime/syntax/glimmer.vim
Normal file
51
runtime/syntax/glimmer.vim
Normal file
@@ -0,0 +1,51 @@
|
||||
" Vim syntax file
|
||||
" Language: Glimmer
|
||||
" Maintainer: Devin Weaver
|
||||
" Last Change: 2026 Feb 20
|
||||
" Origin: https://github.com/joukevandermaas/vim-ember-hbs
|
||||
" Credits: Jouke van der Maas
|
||||
" License: Same as Vim
|
||||
|
||||
" Vim detects GJS/GTS files as {java,type}script.glimmer
|
||||
" Vim will read the javascript/typescript syntax files first and set
|
||||
" b:current_syntax accordingly then it will read the glimmer syntax file.
|
||||
" This is why we use b:current_syntax to make sure we are in the correct state
|
||||
" to continue.
|
||||
|
||||
if exists('b:current_syntax') && b:current_syntax !~# '\v%(type|java)script'
|
||||
finish
|
||||
endif
|
||||
|
||||
let base_syntax = b:current_syntax
|
||||
unlet! b:current_syntax
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
syntax include @hbs syntax/handlebars.vim
|
||||
|
||||
if base_syntax == "javascript"
|
||||
syntax region glimmerTemplateBlock
|
||||
\ start="<template>" end="</template>"
|
||||
\ contains=@hbs
|
||||
\ keepend fold
|
||||
|
||||
let b:current_syntax = "javascript.glimmer"
|
||||
else
|
||||
" syntax/typescript.vim adds typescriptTypeCast which is in conflict with
|
||||
" <template> typescriptreact doesn't define it but we want to not include
|
||||
" the JSX syntax.
|
||||
syntax clear typescriptTypeCast
|
||||
|
||||
syntax region glimmerTemplateBlock
|
||||
\ start="<template>" end="</template>"
|
||||
\ contains=@hbs
|
||||
\ containedin=typescriptClassBlock,typescriptFuncCallArg
|
||||
\ keepend fold
|
||||
|
||||
let b:current_syntax = "typescript.glimmer"
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
unlet! base_syntax
|
||||
144
runtime/syntax/handlebars.vim
Normal file
144
runtime/syntax/handlebars.vim
Normal file
@@ -0,0 +1,144 @@
|
||||
" Vim syntax file
|
||||
" Language: Handlebars
|
||||
" Maintainer: Devin Weaver
|
||||
" Last Change: 2026 Feb 20
|
||||
" Origin: https://github.com/joukevandermaas/vim-ember-hbs
|
||||
" Credits: Jouke van der Maas
|
||||
" License: MIT
|
||||
" The MIT License (MIT)
|
||||
"
|
||||
" Copyright (c) 2026 Devin Weaver
|
||||
" Copyright (c) 2015 Jouke van der Maas
|
||||
"
|
||||
" Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
" of this software and associated documentation files (the "Software"), to deal
|
||||
" in the Software without restriction, including without limitation the rights
|
||||
" to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
" copies of the Software, and to permit persons to whom the Software is
|
||||
" furnished to do so, subject to the following conditions:
|
||||
"
|
||||
" The above copyright notice and this permission notice shall be included in all
|
||||
" copies or substantial portions of the Software.
|
||||
"
|
||||
" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
" OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
" SOFTWARE.
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
runtime! syntax/html.vim
|
||||
syntax cluster htmlPreproc add=hbsComponent,hbsMustache,hbsUnescaped,hbsMustacheBlock,hbsComment,hbsElseBlock,hbsEscapedMustache
|
||||
|
||||
syntax match hbsEscapedMustache "\v\\\{\{"
|
||||
|
||||
syntax region hbsComponent matchgroup=hbsComponentStatement start="\v\<\/?:?\a+(\.\a+|::-?\a+)*" end="\v\/?\>" keepend
|
||||
syntax region hbsMustache matchgroup=hbsHandles start="\v\{\{" skip="\v\\\}\}" end="\v\}\}" containedin=hbsComponent,hbsString keepend
|
||||
syntax region hbsMustacheBlock matchgroup=hbsHandles start="\v\{\{[#/]" skip="\v\\\}\}" end="\v\}\}" keepend
|
||||
" modern hbs supports {{else <block>}} where <block> starts a new block
|
||||
syntax region hbsElseBlock matchgroup=hbsHandles start="\v\{\{else\ "rs=e-5 skip="\v\\\}\}" end="\v\}\}" keepend
|
||||
|
||||
syntax region hbsPencil matchgroup=hbsOperator start="\v\(" end="\v\)" contained containedin=hbsMustache,hbsMustacheBlock,hbsElseBlock,hbsPencil
|
||||
|
||||
" identifier is any word inside a mustache or a pencil that is not followed by a = sign (see hbsArg below)
|
||||
syntax match hbsIdentifier "\v(\(|\{\{[#/]?)@<!<(\w+)|(\@\w+)>" contained containedin=hbsMustache,hbsMustacheBlock,hbsPencil,hbsElseBlock,hbsStatement
|
||||
|
||||
" unescaped are special forms of mustaches that don't have other stuff except for an identifier in it
|
||||
syntax region hbsUnescaped matchgroup=hbsUnescapedHandles start="\v\{\{\{" skip="\v\\\}\}\}" end="\v\}\}\}" keepend
|
||||
syntax match hbsUnescapedIdentifier "\v(\{\{\{)@<=<\S+>(\}\}\})" contained containedin=hbsUnescaped
|
||||
|
||||
syntax match hbsMustacheName "\v(\{\{[#/]?)@<=<\S+>" contained containedin=hbsMustache,hbsMustacheBlock,hbsPencil
|
||||
syntax match hbsPencilName "\v(\()@<=<\S+>" contained containedin=hbsMustache,hbsMustacheBlock,hbsPencil
|
||||
syntax match hbsBuiltInHelper "\v\(@<=<(query-params|mut|fn|array|hash|get|action|unbound|concat)>" contained containedin=hbsPencil
|
||||
syntax match hbsBuiltInHelper "\v(\{\{)@<=<(textarea|mut|fn|array|hash|input|get|action|on|input|unbound)>" contained containedin=hbsMustache
|
||||
syntax match hbsBuiltInHelper "\v(\{\{[#/]?)@<=<(component|with|link\-to)>" contained containedin=hbsMustacheBlock,hbsElseBlock
|
||||
syntax match hbsBuiltInHelperInElse "\v(\{\{else\ )@<=<(component|link\-to)>" contained containedin=hbsMustacheBlock,hbsElseBlock
|
||||
syntax match hbsControlFlow "\v(\{\{)@<=<else>( ?)@=" contained containedin=hbsElseBlock
|
||||
syntax match hbsControlFlow "\v\(@<=<(if|unless)>" contained containedin=hbsPencil
|
||||
syntax match hbsControlFlow "\v(\{\{)@<=<(debugger|unless|yield|outlet|else)>" contained containedin=hbsMustache
|
||||
syntax match hbsControlFlow "\v(\{\{[#/]?)@<=<(with|let|if|each(\-in)?|unless)>" contained containedin=hbsMustacheBlock,hbsElseBlock
|
||||
syntax match hbsKeyword "\v\s+as\s+" contained containedin=hbsComponent,hbsMustacheBlock,hbsElseBlock
|
||||
syntax region hbsStatement matchgroup=hbsDelimiter start="\v\|" end="\v\|" contained containedin=hbsComponent,hbsMustacheBlock,hbsElseBlock
|
||||
|
||||
syntax region hbsString matchgroup=hbsString start=/\v\"/ skip=/\v\\\"/ end=/\v\"/ extend contained containedin=hbsComponent,hbsMustache,hbsMustacheBlock,hbsPencil,hbsElseBlock
|
||||
syntax region hbsString matchgroup=hbsString start=/\v\'/ skip=/\v\\\'/ end=/\v\'/ extend contained containedin=hbsComponent,hbsMustache,hbsMustacheBlock,hbsPencil,hbsElseBlock
|
||||
syntax match hbsNumber "\v<\d+>" contained containedin=hbsComponent,hbsMustache,hbsMustacheBlock,hbsPencil,hbsElseBlock
|
||||
syntax match hbsBool "\v<(true|false)>" contained containedin=hbsComponent,hbsMustache,hbsMustacheBlock,hbsPencil,hbsElseBlock
|
||||
syntax match hbsArg "\v(\@\S+|\S+)\=@=" contained containedin=hbsComponent,hbsMustache,hbsMustacheBlock,hbsPencil,hbsElseBlock
|
||||
syntax match hbsOperator "\v(\S+)@<=\=" contained containedin=hbsComponent,hbsMustache,hbsMustacheBlock,hbsPencil,hbsElseBlock
|
||||
|
||||
syntax region hbsComment start="\v\{\{\!" end="\v\}\}" keepend
|
||||
syntax region hbsComment start="\v\{\{\!\-\-" end="\v\-\-\}\}" keepend
|
||||
|
||||
" *Comment any comment
|
||||
|
||||
" *Constant any constant
|
||||
" String a string constant: "this is a string"
|
||||
" Character a character constant: 'c', '\n'
|
||||
" Number a number constant: 234, 0xff
|
||||
" Boolean a boolean constant: TRUE, false
|
||||
" Float a floating point constant: 2.3e10
|
||||
|
||||
" *Identifier any variable name
|
||||
" Function function name (also: methods for classes)
|
||||
|
||||
" *Statement any statement
|
||||
" Conditional if, then, else, endif, switch, etc.
|
||||
" Repeat for, do, while, etc.
|
||||
" Label case, default, etc.
|
||||
" Operator "sizeof", "+", "*", etc.
|
||||
" Keyword any other keyword
|
||||
" Exception try, catch, throw
|
||||
|
||||
" *PreProc generic Preprocessor
|
||||
" Include preprocessor #include
|
||||
" Define preprocessor #define
|
||||
" Macro same as Define
|
||||
" PreCondit preprocessor #if, #else, #endif, etc.
|
||||
|
||||
" *Type int, long, char, etc.
|
||||
" StorageClass static, register, volatile, etc.
|
||||
" Structure struct, union, enum, etc.
|
||||
" Typedef A typedef
|
||||
|
||||
" *Special any special symbol
|
||||
" SpecialChar special character in a constant
|
||||
" Tag you can use CTRL-] on this
|
||||
" Delimiter character that needs attention
|
||||
" SpecialComment special things inside a comment
|
||||
" Debug debugging statements
|
||||
|
||||
" *Underlined text that stands out, HTML links
|
||||
|
||||
" *Ignore left blank, hidden |hl-Ignore|
|
||||
|
||||
" *Error any erroneous construct
|
||||
|
||||
" *Todo anything that needs extra attention; mostly the
|
||||
" keywords TODO FIXME and XXX
|
||||
|
||||
highlight link hbsBuiltInHelper Function
|
||||
highlight link hbsBuiltInHelperInElse Function
|
||||
highlight link hbsControlFlow Function
|
||||
highlight link hbsKeyword Keyword
|
||||
highlight link hbsOperator Operator
|
||||
highlight link hbsDelimiter Delimiter
|
||||
highlight link hbsMustacheName Statement
|
||||
highlight link hbsPencilName Statement
|
||||
highlight link hbsIdentifier Identifier
|
||||
highlight link hbsString String
|
||||
highlight link hbsNumber Special
|
||||
highlight link hbsBool Boolean
|
||||
highlight link hbsHandles Define
|
||||
highlight link hbsComponentStatement Define
|
||||
highlight link hbsUnescapedHandles Identifier
|
||||
highlight link hbsUnescapedIdentifier Identifier
|
||||
highlight link hbsComment Comment
|
||||
highlight link hbsArg Type
|
||||
|
||||
let b:current_syntax = "handlebars"
|
||||
@@ -6,6 +6,8 @@
|
||||
" Leonardo Fontenelle (Spell checking)
|
||||
" Nam SungHyun <namsh@kldp.org> (Original maintainer)
|
||||
" Eisuke Kawashima (add format-flags: #16132)
|
||||
" Last Change:
|
||||
" 2026 Mar 02 by Vim Project, various syntax improvements #19548
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -17,21 +19,21 @@ set cpo&vim
|
||||
syn sync minlines=10
|
||||
|
||||
" Identifiers
|
||||
syn match poStatementMsgCTxt "^msgctxt"
|
||||
syn match poStatementMsgidplural "^msgid_plural" contained
|
||||
syn match poStatementMsgCTxt "^msgctxt\>"
|
||||
syn match poStatementMsgidplural "^msgid_plural\>" contained
|
||||
syn match poPluralCaseN "[0-9]" contained
|
||||
syn match poStatementMsgstr "^msgstr\(\[[0-9]\]\)" contains=poPluralCaseN
|
||||
syn match poStatementMsgstr "^msgstr\%(\[[0-9]\]\)" contains=poPluralCaseN
|
||||
|
||||
" Simple HTML and XML highlighting
|
||||
syn match poHtml "<\_[^<>]\+>" contains=poHtmlTranslatables,poLineBreak
|
||||
syn match poHtmlNot +"<[^<]\+>"+ms=s+1,me=e-1
|
||||
syn region poHtmlTranslatables start=+\(abbr\|alt\|content\|summary\|standby\|title\)=\\"+ms=e-1 end=+\\"+ contained contains=@Spell
|
||||
syn region poHtmlTranslatables start=+\<\%(abbr\|alt\|content\|summary\|standby\|title\)=\\"+ms=e-1 end=+\\"+ contained contains=@Spell
|
||||
syn match poLineBreak +"\n"+ contained
|
||||
|
||||
" Translation blocks
|
||||
syn region poMsgCTxt matchgroup=poStatementMsgCTxt start=+^msgctxt "+rs=e-1 matchgroup=poStringCTxt end=+^msgid "+me=s-1 contains=poStringCTxt
|
||||
syn region poMsgID matchgroup=poStatementMsgid start=+^msgid "+rs=e-1 matchgroup=poStringID end=+^msgstr\(\|\[[\]0\[]\]\) "+me=s-1 contains=poStringID,poStatementMsgidplural,poStatementMsgid
|
||||
syn region poMsgSTR matchgroup=poStatementMsgstr start=+^msgstr\(\|\[[\]0\[]\]\) "+rs=e-1 matchgroup=poStringSTR end=+\n\n+me=s-1 contains=poStringSTR,poStatementMsgstr
|
||||
syn region poMsgID matchgroup=poStatementMsgid start=+^msgid "+rs=e-1 matchgroup=poStringID end=+^msgstr\%(\>\|\[[\]0\[]\]\) "+me=s-1 contains=poStringID,poStatementMsgidplural,poStatementMsgid
|
||||
syn region poMsgSTR matchgroup=poStatementMsgstr start=+^msgstr\%(\>\|\[[\]0\[]\]\) "+rs=e-1 matchgroup=poStringSTR end=+\n\n+me=s-1 contains=poStringSTR,poStatementMsgstr
|
||||
syn region poStringCTxt start=+"+ skip=+\\\\\|\\"+ end=+"+
|
||||
syn region poStringID start=+"+ skip=+\\\\\|\\"+ end=+"+ contained
|
||||
\ contains=poSpecial,poFormat,poCommentKDE,poPluralKDE,poKDEdesktopFile,poHtml,poAcceleratorId,poHtmlNot,poVariable
|
||||
@@ -39,9 +41,9 @@ syn region poStringSTR start=+"+ skip=+\\\\\|\\"+ end=+"+ contained
|
||||
\ contains=@Spell,poSpecial,poFormat,poHeaderItem,poCommentKDEError,poHeaderUndefined,poPluralKDEError,poMsguniqError,poKDEdesktopFile,poHtml,poAcceleratorStr,poHtmlNot,poVariable
|
||||
|
||||
" Header and Copyright
|
||||
syn match poHeaderItem "\(Project-Id-Version\|Report-Msgid-Bugs-To\|POT-Creation-Date\|PO-Revision-Date\|Last-Translator\|Language-Team\|Language\|MIME-Version\|Content-Type\|Content-Transfer-Encoding\|Plural-Forms\|X-Generator\): " contained
|
||||
syn match poHeaderUndefined "\(PACKAGE VERSION\|YEAR-MO-DA HO:MI+ZONE\|FULL NAME <EMAIL@ADDRESS>\|LANGUAGE <LL@li.org>\|CHARSET\|ENCODING\|INTEGER\|EXPRESSION\)" contained
|
||||
syn match poCopyrightUnset "SOME DESCRIPTIVE TITLE\|FIRST AUTHOR <EMAIL@ADDRESS>, YEAR\|Copyright (C) YEAR Free Software Foundation, Inc\|YEAR THE PACKAGE\'S COPYRIGHT HOLDER\|PACKAGE" contained
|
||||
syn match poHeaderItem "\<\%(Project-Id-Version\|Report-Msgid-Bugs-To\|POT-Creation-Date\|PO-Revision-Date\|Last-Translator\|Language-Team\|Language\|MIME-Version\|Content-Type\|Content-Transfer-Encoding\|Plural-Forms\|X-Generator\): " contained
|
||||
syn match poHeaderUndefined "\<\%(PACKAGE VERSION\>\|YEAR-MO-DA HO:MI+ZONE\>\|FULL NAME <EMAIL@ADDRESS>\|LANGUAGE <LL@li.org>\|CHARSET\>\|ENCODING\>\|INTEGER\>\|EXPRESSION\>\)" contained
|
||||
syn match poCopyrightUnset "\<\%(SOME DESCRIPTIVE TITLE\|FIRST AUTHOR <EMAIL@ADDRESS>, YEAR\|Copyright (C) YEAR Free Software Foundation, Inc\|YEAR THE PACKAGE\'S COPYRIGHT HOLDER\|PACKAGE\)\>" contained
|
||||
|
||||
" Translation comment block including: translator comment, automatic comments, flags and locations
|
||||
syn match poComment "^#.*$"
|
||||
@@ -52,9 +54,11 @@ syn match poFlagFormat /\<\%(no-\)\?boost-format\>/ contained
|
||||
syn match poFlagFormat /\<\%(no-\)\?c++-format\>/ contained
|
||||
syn match poFlagFormat /\<\%(no-\)\?c-format\>/ contained
|
||||
syn match poFlagFormat /\<\%(no-\)\?csharp-format\>/ contained
|
||||
syn match poFlagFormat /\<\%(no-\)\?d-format\>/ contained
|
||||
syn match poFlagFormat /\<\%(no-\)\?elisp-format\>/ contained
|
||||
syn match poFlagFormat /\<\%(no-\)\?gcc-internal-format\>/ contained
|
||||
syn match poFlagFormat /\<\%(no-\)\?gfc-internal-format\>/ contained
|
||||
syn match poFlagFormat /\<\%(no-\)\?go-format\>/ contained
|
||||
syn match poFlagFormat /\<\%(no-\)\?java-format\>/ contained
|
||||
syn match poFlagFormat /\<\%(no-\)\?java-printf-format\>/ contained
|
||||
syn match poFlagFormat /\<\%(no-\)\?javascript-format\>/ contained
|
||||
@@ -62,6 +66,7 @@ syn match poFlagFormat /\<\%(no-\)\?kde-format\>/ contained
|
||||
syn match poFlagFormat /\<\%(no-\)\?librep-format\>/ contained
|
||||
syn match poFlagFormat /\<\%(no-\)\?lisp-format\>/ contained
|
||||
syn match poFlagFormat /\<\%(no-\)\?lua-format\>/ contained
|
||||
syn match poFlagFormat /\<\%(no-\)\?modula2-format\>/ contained
|
||||
syn match poFlagFormat /\<\%(no-\)\?objc-format\>/ contained
|
||||
syn match poFlagFormat /\<\%(no-\)\?object-pascal-format\>/ contained
|
||||
syn match poFlagFormat /\<\%(no-\)\?perl-brace-format\>/ contained
|
||||
@@ -72,39 +77,42 @@ syn match poFlagFormat /\<\%(no-\)\?python-format\>/ contained
|
||||
syn match poFlagFormat /\<\%(no-\)\?qt-format\>/ contained
|
||||
syn match poFlagFormat /\<\%(no-\)\?qt-plural-format\>/ contained
|
||||
syn match poFlagFormat /\<\%(no-\)\?ruby-format\>/ contained
|
||||
syn match poFlagFormat /\<\%(no-\)\?rust-format\>/ contained
|
||||
syn match poFlagFormat /\<\%(no-\)\?scheme-format\>/ contained
|
||||
syn match poFlagFormat /\<\%(no-\)\?sh-format\>/ contained
|
||||
syn match poFlagFormat /\<\%(no-\)\?sh-printf-format\>/ contained
|
||||
syn match poFlagFormat /\<\%(no-\)\?smalltalk-format\>/ contained
|
||||
syn match poFlagFormat /\<\%(no-\)\?tcl-format\>/ contained
|
||||
syn match poFlagFormat /\<\%(no-\)\?ycp-format\>/ contained
|
||||
syn match poFlagFormat /\<no-wrap\>/ contained
|
||||
|
||||
syn match poCommentTranslator "^# .*$" contains=poCopyrightUnset
|
||||
syn match poCommentAutomatic "^#\..*$"
|
||||
syn match poCommentSources "^#:.*$"
|
||||
syn match poCommentFlags "^#,.*$" contains=poFlagFuzzy,poFlagFormat
|
||||
syn match poCommentFlags "^#[,=].*$" contains=poFlagFuzzy,poFlagFormat
|
||||
syn match poCommentPrevious "^#|.*$"
|
||||
|
||||
" Translations (also includes header fields as they appear in a translation msgstr)
|
||||
syn region poCommentKDE start=+"_: +ms=s+1 end="\\n" end="\"\n^msgstr"me=s-1 contained
|
||||
syn region poCommentKDEError start=+"\(\|\s\+\)_:+ms=s+1 end="\\n" end=+"\n\n+me=s-1 contained
|
||||
syn region poCommentKDEError start=+"\%(\|\s\+\)_:+ms=s+1 end="\\n" end=+"\n\n+me=s-1 contained
|
||||
syn match poPluralKDE +"_n: +ms=s+1 contained
|
||||
syn region poPluralKDEError start=+"\(\|\s\+\)_n:+ms=s+1 end="\"\n\n"me=s-1 contained
|
||||
syn match poSpecial contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)"
|
||||
syn match poFormat "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([diuoxXfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
|
||||
syn region poPluralKDEError start=+"\%(\|\s\+\)_n:+ms=s+1 end="\"\n\n"me=s-1 contained
|
||||
syn match poSpecial contained "\\\%(x\x\+\|\o\{1,3}\|.\|$\)"
|
||||
syn match poFormat "%\%(\d\+\$\)\=[-+' #0*]*\%(\d*\|\*\|\*\d\+\$\)\%(\.\%(\d*\|\*\|\*\d\+\$\)\)\=\%([hlL]\|ll\)\=\%([diuoxXfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
|
||||
syn match poFormat "%%" contained
|
||||
|
||||
" msguniq and msgcat conflicts
|
||||
syn region poMsguniqError matchgroup=poMsguniqErrorMarkers start="#-#-#-#-#" end='#\("\n"\|\)-\("\n"\|\)#\("\n"\|\)-\("\n"\|\)#\("\n"\|\)-\("\n"\|\)#\("\n"\|\)-\("\n"\|\)#\("\n"\|\)\\n' contained
|
||||
syn region poMsguniqError matchgroup=poMsguniqErrorMarkers start="#-#-#-#-#" end='#\%("\n"\|\)-\%("\n"\|\)#\%("\n"\|\)-\%("\n"\|\)#\%("\n"\|\)-\%("\n"\|\)#\%("\n"\|\)-\%("\n"\|\)#\%("\n"\|\)\\n' contained
|
||||
|
||||
" Obsolete messages
|
||||
syn match poObsolete "^#\~.*$"
|
||||
|
||||
" KDE Name= handling
|
||||
syn match poKDEdesktopFile "\"\(Name\|Comment\|GenericName\|Description\|Keywords\|About\)="ms=s+1,me=e-1
|
||||
syn match poKDEdesktopFile "\"\%(Name\|Comment\|GenericName\|Description\|Keywords\|About\)="ms=s+1,me=e-1
|
||||
|
||||
" Accelerator keys - this messes up if the preceding or following char is a multibyte unicode char
|
||||
syn match poAcceleratorId contained "[^&_~][&_~]\(\a\|\d\)[^:]"ms=s+1,me=e-1
|
||||
syn match poAcceleratorStr contained "[^&_~][&_~]\(\a\|\d\)[^:]"ms=s+1,me=e-1 contains=@Spell
|
||||
syn match poAcceleratorId contained "[^&_~][&_~]\%(\a\|\d\)[^:]"ms=s+1,me=e-1
|
||||
syn match poAcceleratorStr contained "[^&_~][&_~]\%(\a\|\d\)[^:]"ms=s+1,me=e-1 contains=@Spell
|
||||
|
||||
" Variables simple
|
||||
syn match poVariable contained "%\d"
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
" Chris Ruprecht <chrisSPAXY@ruprecht.org>
|
||||
" Mikhail Kuperblum <mikhailSPAXY@whasup.com>
|
||||
" John Florian <jflorianSPAXY@voyager.net>
|
||||
" Last Change: Jul 23 2024
|
||||
" Last Change: Feb 18 2026
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -22,7 +22,7 @@ set cpo&vim
|
||||
setlocal iskeyword=@,48-57,_,-,!,#,$,%
|
||||
|
||||
" The Progress editor doesn't cope with tabs very well.
|
||||
set expandtab
|
||||
setlocal expandtab
|
||||
|
||||
syn case ignore
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
" 2025 Sep 25 by Vim Project: fix wrong type highlighting #18394
|
||||
" 2025 Dec 03 by Vim Project: highlight t-strings #18679
|
||||
" 2026 Jan 26 by Vim Project: highlight constants #18922
|
||||
" 2026 Mar 11 by Vim Project: fix number performance #19630
|
||||
" Credits: Neil Schemenauer <nas@python.ca>
|
||||
" Dmitry Vasiliev
|
||||
" Rob B
|
||||
@@ -270,16 +271,21 @@ syn match pythonEscape "\\$"
|
||||
" https://docs.python.org/reference/lexical_analysis.html#numeric-literals
|
||||
if !exists("python_no_number_highlight")
|
||||
" numbers (including complex)
|
||||
syn match pythonNumber "\<0[oO]\%(_\=\o\)\+\>"
|
||||
syn match pythonNumber "\<0[xX]\%(_\=\x\)\+\>"
|
||||
syn match pythonNumber "\<0[bB]\%(_\=[01]\)\+\>"
|
||||
syn match pythonNumber "\<\%([1-9]\%(_\=\d\)*\|0\+\%(_\=0\)*\)\>"
|
||||
syn match pythonNumber "\<\d\%(_\=\d\)*[jJ]\>"
|
||||
syn match pythonNumber "\<\d\%(_\=\d\)*[eE][+-]\=\d\%(_\=\d\)*[jJ]\=\>"
|
||||
syn match pythonNumber "\<0[oO]_\=\o\+\%(_\o\+\)*\>"
|
||||
syn match pythonNumber "\<0[xX]_\=\x\+\%(_\x\+\)*\>"
|
||||
syn match pythonNumber "\<0[bB]_\=[01]\+\%(_[01]\+\)*\>"
|
||||
syn match pythonNumber "\<\%([1-9]\d*\%(_\d\+\)*\|0\+\%(_0\+\)*\)\>"
|
||||
syn match pythonNumber "\<\d\+\%(_\d\+\)*[jJ]\>"
|
||||
syn match pythonNumber "\<\d\+\%(_\d\+\)*[eE][+-]\=\d\+\%(_\d\+\)*[jJ]\=\>"
|
||||
" \d\.
|
||||
syn match pythonNumber
|
||||
\ "\<\d\%(_\=\d\)*\.\%([eE][+-]\=\d\%(_\=\d\)*\)\=[jJ]\=\%(\W\|$\)\@="
|
||||
\ "\<\d\+\%(_\d\+\)*\.\%([eE][+-]\=\d\+\%(_\d\+\)*\)\=[jJ]\=\%(\W\|$\)\@="
|
||||
" \d\.\d
|
||||
syn match pythonNumber
|
||||
\ "\%(^\|\W\)\@1<=\%(\d\%(_\=\d\)*\)\=\.\d\%(_\=\d\)*\%([eE][+-]\=\d\%(_\=\d\)*\)\=[jJ]\=\>"
|
||||
\ "\<\d\+\%(_\d\+\)*\.\d\+\%(_\d\+\)*\%([eE][+-]\=\d\+\%(_\d\+\)*\)\=[jJ]\=\>"
|
||||
" \.\d
|
||||
syn match pythonNumber
|
||||
\ "\%(^\|\W\)\@1<=\.\d\+\%(_\d\+\)*\%([eE][+-]\=\d\+\%(_\d\+\)*\)\=[jJ]\=\>"
|
||||
endif
|
||||
|
||||
" Group the built-ins in the order in the 'Python Library Reference' for
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Previous Maintainer: Haakon Riiser <hakonrk@fys.uio.no>
|
||||
" Contributor: Jack Haden-Enneking
|
||||
" Last Change: 2022 Oct 15
|
||||
" Last Change: 2026 Mar 06
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -16,10 +16,31 @@ syn match sedError "\S"
|
||||
|
||||
syn match sedWhitespace "\s\+" contained
|
||||
syn match sedSemicolon ";"
|
||||
syn match sedAddress "[[:digit:]$]"
|
||||
|
||||
" Addresses {{{1
|
||||
syn match sedAddress "\d\+\|\$"
|
||||
|
||||
" GNU extensions
|
||||
syn match sedAddress "\d\+\~\d\+"
|
||||
syn region sedAddress matchgroup=Special start="[{,;]\s*/\%(\\/\)\="lc=1 skip="[^\\]\%(\\\\\)*\\/" end="/I\=" contains=sedTab,sedRegexpMeta
|
||||
syn region sedAddress matchgroup=Special start="^\s*/\%(\\/\)\=" skip="[^\\]\%(\\\\\)*\\/" end="/I\=" contains=sedTab,sedRegexpMeta
|
||||
syn match sedAddress "\~\d\+"
|
||||
syn match sedAddress "[-+]\d\+"
|
||||
|
||||
syn region sedAddress
|
||||
\ matchgroup=Delimiter
|
||||
\ start="[{,;]\s*/\%(\\/\)\="lc=1
|
||||
\ skip="[^\\]\%(\\\\\)*\\/"
|
||||
"\ GNU extensions
|
||||
\ end="/\%(IM\|MI\|[IM]\)\="
|
||||
\ contains=sedTab,sedRegexpMeta
|
||||
syn region sedAddress
|
||||
\ matchgroup=Delimiter
|
||||
\ start="^\s*/\%(\\/\)\="
|
||||
"\ GNU extensions
|
||||
\ skip="[^\\]\%(\\\\\)*\\/"
|
||||
\ end="/\%(IM\|MI\|[IM]\)\="
|
||||
\ contains=sedTab,sedRegexpMeta
|
||||
" }}}
|
||||
|
||||
syn match sedFunction "[dDgGhHlnNpPqQx=]\s*\%($\|;\)" contains=sedSemicolon,sedWhitespace
|
||||
if exists("g:sed_dialect") && g:sed_dialect ==? "bsd"
|
||||
syn match sedComment "^\s*#.*$" contains=sedTodo
|
||||
@@ -50,7 +71,7 @@ syn region sedFlagWrite matchgroup=sedFlag start="w" matchgroup=sedSemicolon
|
||||
syn match sedFlag "[[:digit:]gpI]*w\=" contains=sedFlagWrite contained
|
||||
syn match sedRegexpMeta "[.*^$]" contained
|
||||
syn match sedRegexpMeta "\\." contains=sedTab contained
|
||||
syn match sedRegexpMeta "\[.\{-}\]" contains=sedTab contained
|
||||
syn match sedRegexpMeta "\[\^\=\]\=\%(\[:.\{-}:\]\|\[\..\{-}\.\]\|\[=.\{-}=\]\|[^]]\)*\]" contains=sedTab contained
|
||||
syn match sedRegexpMeta "\\{\d\*,\d*\\}" contained
|
||||
syn match sedRegexpMeta "\\%(.\{-}\\)" contains=sedTab contained
|
||||
syn match sedReplaceMeta "&\|\\\%($\|.\)" contains=sedTab contained
|
||||
@@ -68,15 +89,44 @@ let s:metacharacters = '$*.\^[~'
|
||||
while s:i <= s:last
|
||||
let s:delimiter = escape(nr2char(s:i), s:metacharacters)
|
||||
if s:i != s:at
|
||||
exe 'syn region sedAddress matchgroup=Special start=@\\'.s:delimiter.'\%(\\'.s:delimiter.'\)\=@ skip=@[^\\]\%(\\\\\)*\\'.s:delimiter.'@ end=@'.s:delimiter.'[IM]\=@ contains=sedTab'
|
||||
exe 'syn region sedRegexp'.s:i 'matchgroup=Special start=@'.s:delimiter.'\%(\\\\\|\\'.s:delimiter.'\)*@ skip=@[^\\'.s:delimiter.']\%(\\\\\)*\\'.s:delimiter.'@ end=@'.s:delimiter.'@me=e-1 contains=sedTab,sedRegexpMeta keepend contained nextgroup=sedReplacement'.s:i
|
||||
exe 'syn region sedReplacement'.s:i 'matchgroup=Special start=@'.s:delimiter.'\%(\\\\\|\\'.s:delimiter.'\)*@ skip=@[^\\'.s:delimiter.']\%(\\\\\)*\\'.s:delimiter.'@ end=@'.s:delimiter.'@ contains=sedTab,sedReplaceMeta keepend contained nextgroup=@sedFlags'
|
||||
exe 'syn region sedAddress'
|
||||
\ 'matchgroup=Delimiter'
|
||||
\ 'start=@\\' .. s:delimiter .. '\%(\\' .. s:delimiter .. '\)\=@'
|
||||
\ 'skip=@[^\\]\%(\\\\\)*\\' .. s:delimiter .. '\|\[.\{-}' .. s:delimiter .. '@'
|
||||
\ 'end=@' .. s:delimiter .. '\%(IM\|MI\|[IM]\)\=@'
|
||||
\ 'contains=sedTab,sedRegexpMeta'
|
||||
exe 'syn region sedRegexp' .. s:i 'contained'
|
||||
\ 'matchgroup=Delimiter'
|
||||
\ 'start=@' .. s:delimiter .. '\%(\\\\\|\\' .. s:delimiter .. '\)*@'
|
||||
\ 'end=@' .. s:delimiter .. '@me=e-1'
|
||||
\ 'nextgroup=sedReplacement' .. s:i
|
||||
\ 'contains=sedTab,sedRegexpMeta'
|
||||
exe 'syn region sedReplacement' .. s:i 'contained'
|
||||
\ 'matchgroup=Delimiter'
|
||||
\ 'start=@' .. s:delimiter .. '\%(\\\\\|\\' .. s:delimiter .. '\)*@'
|
||||
\ 'end=@' .. s:delimiter .. '@'
|
||||
\ 'nextgroup=@sedFlags'
|
||||
\ 'contains=sedTab,sedReplaceMeta'
|
||||
endif
|
||||
let s:i = s:i + 1
|
||||
endwhile
|
||||
syn region sedAddress matchgroup=Special start=+\\@\%(\\@\)\=+ skip=+[^\\]\%(\\\\\)*\\@+ end=+@I\=+ contains=sedTab,sedRegexpMeta
|
||||
syn region sedRegexp64 matchgroup=Special start=+@\%(\\\\\|\\@\)*+ skip=+[^\\@]\%(\\\\\)*\\@+ end=+@+me=e-1 contains=sedTab,sedRegexpMeta keepend contained nextgroup=sedReplacement64
|
||||
syn region sedReplacement64 matchgroup=Special start=+@\%(\\\\\|\\@\)*+ skip=+[^\\@]\%(\\\\\)*\\@+ end=+@+ contains=sedTab,sedReplaceMeta keepend contained nextgroup=sedFlag
|
||||
syn region sedAddress
|
||||
\ matchgroup=Delimiter
|
||||
\ start=+\\\z(@\)+
|
||||
\ end=+\z1\%(IM\|MI\|[IM]\)\=+
|
||||
\ contains=sedTab,sedRegexpMeta
|
||||
syn region sedRegexp64 contained
|
||||
\ matchgroup=Delimiter
|
||||
\ start=+@\%(\\\\\|\\@\)*+
|
||||
\ end=+@+me=e-1
|
||||
\ nextgroup=sedReplacement64
|
||||
\ contains=sedTab,sedRegexpMeta
|
||||
syn region sedReplacement64 contained
|
||||
\ matchgroup=Delimiter
|
||||
\ start=+@\%(\\\\\|\\@\)*+
|
||||
\ end=+@+
|
||||
\ nextgroup=sedFlag
|
||||
\ contains=sedTab,sedReplaceMeta
|
||||
|
||||
" Since the syntax for the substitution command is very similar to the
|
||||
" syntax for the transform command, I use the same pattern matching
|
||||
@@ -110,8 +160,8 @@ if s:highlight_tabs
|
||||
endif
|
||||
let s:i = char2nr(" ") " ASCII: 32, EBCDIC: 64
|
||||
while s:i <= s:last
|
||||
exe "hi def link sedRegexp".s:i "Macro"
|
||||
exe "hi def link sedReplacement".s:i "NONE"
|
||||
exe "hi def link sedRegexp" .. s:i "Macro"
|
||||
exe "hi def link sedReplacement" .. s:i "NONE"
|
||||
let s:i = s:i + 1
|
||||
endwhile
|
||||
|
||||
@@ -120,4 +170,4 @@ unlet s:highlight_tabs
|
||||
|
||||
let b:current_syntax = "sed"
|
||||
|
||||
" vim: nowrap sw=2 sts=2 ts=8 noet:
|
||||
" vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker:
|
||||
|
||||
@@ -3,14 +3,11 @@
|
||||
" Author: David Necas (Yeti)
|
||||
" Maintainer: Jakub Jelen <jakuje at gmail dot com>
|
||||
" Previous Maintainer: Dominik Fischer <d dot f dot fischer at web dot de>
|
||||
" Contributor: Leonard Ehrenfried <leonard.ehrenfried@web.de>
|
||||
" Contributor: Karsten Hopp <karsten@redhat.com>
|
||||
" Contributor: Dean, Adam Kenneth <adam.ken.dean@hpe.com>
|
||||
" Last Change: 2022 Nov 10
|
||||
" Added RemoteCommand from pull request #4809
|
||||
" Included additional keywords from Martin.
|
||||
" Included PR #5753
|
||||
" SSH Version: 8.5p1
|
||||
" Contributor: Leonard Ehrenfried <leonard.ehrenfried@web.de>
|
||||
" Karsten Hopp <karsten@redhat.com>
|
||||
" Dean, Adam Kenneth <adam.ken.dean@hpe.com>
|
||||
" Last Change: 2026 Mar 11
|
||||
" SSH Version: 10.1p1
|
||||
"
|
||||
|
||||
" Setup
|
||||
@@ -108,7 +105,8 @@ syn keyword sshconfigAddressFamily inet inet6
|
||||
|
||||
syn match sshconfigIPQoS "\<af[1-4][1-3]\>"
|
||||
syn match sshconfigIPQoS "\<cs[0-7]\>"
|
||||
syn keyword sshconfigIPQoS ef le lowdelay throughput reliability
|
||||
syn keyword sshconfigIPQoS ef le
|
||||
syn keyword sshconfigIPQoSDeprecated lowdelay throughput reliability
|
||||
syn keyword sshconfigKbdInteractive bsdauth pam skey
|
||||
|
||||
syn keyword sshconfigKexAlgo diffie-hellman-group1-sha1
|
||||
@@ -221,6 +219,7 @@ syn keyword sshconfigKeyword ProxyUseFdpass
|
||||
syn keyword sshconfigKeyword PubkeyAcceptedAlgorithms
|
||||
syn keyword sshconfigKeyword PubkeyAcceptedKeyTypes
|
||||
syn keyword sshconfigKeyword PubkeyAuthentication
|
||||
syn keyword sshconfigKeyword RefuseConnection
|
||||
syn keyword sshconfigKeyword RekeyLimit
|
||||
syn keyword sshconfigKeyword RemoteCommand
|
||||
syn keyword sshconfigKeyword RemoteForward
|
||||
@@ -248,7 +247,9 @@ syn keyword sshconfigKeyword UseBlacklistedKeys
|
||||
syn keyword sshconfigKeyword User
|
||||
syn keyword sshconfigKeyword UserKnownHostsFile
|
||||
syn keyword sshconfigKeyword VerifyHostKeyDNS
|
||||
syn keyword sshconfigKeyword VersionAddendum
|
||||
syn keyword sshconfigKeyword VisualHostKey
|
||||
syn keyword sshconfigKeyword WarnWeakCrypto
|
||||
syn keyword sshconfigKeyword XAuthLocation
|
||||
|
||||
" Deprecated/ignored/remove/unsupported keywords
|
||||
@@ -283,6 +284,7 @@ hi def link sshconfigLogLevel sshconfigEnum
|
||||
hi def link sshconfigSysLogFacility sshconfigEnum
|
||||
hi def link sshconfigAddressFamily sshconfigEnum
|
||||
hi def link sshconfigIPQoS sshconfigEnum
|
||||
hi def link sshconfigIPQoSDeprecated sshconfigDeprecated
|
||||
hi def link sshconfigKbdInteractive sshconfigEnum
|
||||
hi def link sshconfigKexAlgo sshconfigEnum
|
||||
hi def link sshconfigTunnel sshconfigEnum
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
" Contributor: Karsten Hopp <karsten@redhat.com>
|
||||
" Contributor: Fionn Fitzmaurice (github.com/fionn)
|
||||
" Originally: 2009-07-09
|
||||
" Last Change: 2026-02-11
|
||||
" SSH Version: 10.2p1
|
||||
" Last Change: 2026-03-11
|
||||
" SSH Version: 10.1p1
|
||||
"
|
||||
|
||||
" Setup
|
||||
@@ -112,7 +112,8 @@ syn keyword sshdconfigCompression delayed
|
||||
|
||||
syn match sshdconfigIPQoS "\<af[1-4][1-3]\>"
|
||||
syn match sshdconfigIPQoS "\<cs[0-7]\>"
|
||||
syn keyword sshdconfigIPQoS ef le lowdelay throughput reliability
|
||||
syn keyword sshdconfigIPQoS ef le
|
||||
syn keyword sshdconfigIPQoSDeprecated lowdelay throughput reliability
|
||||
|
||||
syn keyword sshdconfigKexAlgo diffie-hellman-group1-sha1
|
||||
syn keyword sshdconfigKexAlgo diffie-hellman-group14-sha1
|
||||
@@ -293,6 +294,7 @@ hi def link sshdconfigSysLogFacility sshdconfigEnum
|
||||
hi def link sshdconfigVar sshdconfigEnum
|
||||
hi def link sshdconfigCompression sshdconfigEnum
|
||||
hi def link sshdconfigIPQoS sshdconfigEnum
|
||||
hi def link sshdconfigIPQoSDeprecated sshdconfigDeprecated
|
||||
hi def link sshdconfigKexAlgo sshdconfigEnum
|
||||
hi def link sshdconfigTunnel sshdconfigEnum
|
||||
hi def link sshdconfigSubsystem sshdconfigEnum
|
||||
@@ -301,6 +303,7 @@ hi def link sshdconfigEnum Function
|
||||
hi def link sshdconfigSpecial Special
|
||||
hi def link sshdconfigKeyword Keyword
|
||||
hi def link sshdconfigMatch Type
|
||||
hi def link sshdconfigDeprecated Error
|
||||
|
||||
let b:current_syntax = "sshdconfig"
|
||||
|
||||
|
||||
@@ -2,11 +2,7 @@
|
||||
" Language: sudoers(5) configuration files
|
||||
" Maintainer: Eisuke Kawashima ( e.kawaschima+vim AT gmail.com )
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2024 Sep 02
|
||||
" Recent Changes: Support for #include and #includedir.
|
||||
" 2018 Aug 28 by Vim project Added many new options (Samuel D. Leslie)
|
||||
" 2024 Sep 09 by Vim project Update allowed Tag_Spec Runas_Spec syntax items
|
||||
" 2026 Feb 13 by Vim project update regex for matching usernames #19396
|
||||
" Latest Change: 2026 Mar 11
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
@@ -24,60 +20,77 @@ syn match sudoersUserSpec '^' nextgroup=@sudoersUserInSpec skipwhite
|
||||
|
||||
syn match sudoersSpecEquals contained '=' nextgroup=@sudoersCmndSpecList skipwhite
|
||||
|
||||
syn cluster sudoersCmndSpecList contains=sudoersUserRunasBegin,sudoersTagSpec,@sudoersCmndInSpec
|
||||
syn cluster sudoersCmndSpecList contains=sudoersUserRunasBegin,sudoersOptionSpec,sudoersTagSpec,@sudoersCmndInSpec
|
||||
|
||||
syn keyword sudoersTodo contained TODO FIXME XXX NOTE
|
||||
|
||||
syn region sudoersComment display oneline start='#' end='$' contains=sudoersTodo
|
||||
syn region sudoersInclude display oneline start='[#@]\%(include\|includedir\)\>' end='$'
|
||||
syn region sudoersInclude display oneline start='[#@]\%(include\|includedir\)\s\+\S\+' end='$'
|
||||
|
||||
syn keyword sudoersAlias User_Alias Runas_Alias nextgroup=sudoersUserAlias skipwhite skipnl
|
||||
syn keyword sudoersAlias Host_Alias nextgroup=sudoersHostAlias skipwhite skipnl
|
||||
syn keyword sudoersAlias Cmnd_Alias nextgroup=sudoersCmndAlias skipwhite skipnl
|
||||
|
||||
syn match sudoersUserAlias contained '\<\u[A-Z0-9_]*\>' nextgroup=sudoersUserAliasEquals skipwhite skipnl
|
||||
syn match sudoersUserNameInList contained '\<\l[-a-z0-9_]*\>' nextgroup=@sudoersUserList skipwhite skipnl
|
||||
syn match sudoersUserNameInList contained '\<\l[-a-z0-9_]*\>' nextgroup=@sudoersUserList skipwhite skipnl
|
||||
syn match sudoersUIDInList contained '#\d\+\>' nextgroup=@sudoersUserList skipwhite skipnl
|
||||
syn match sudoersGroupInList contained '%\l[-a-z0-9_]*\>' nextgroup=@sudoersUserList skipwhite skipnl
|
||||
syn match sudoersGIDInList contained '%#\d\+\>' nextgroup=@sudoersUserList skipwhite skipnl
|
||||
syn match sudoersUserNetgroupInList contained '+\l[-a-z0-9_]*\>' nextgroup=@sudoersUserList skipwhite skipnl
|
||||
syn match sudoersUserAliasInList contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersUserList skipwhite skipnl
|
||||
syn keyword sudoersUserAllInList contained ALL nextgroup=@sudoersUserList skipwhite skipnl
|
||||
|
||||
syn match sudoersUserName contained '\<\l[-a-z0-9_]*\>' nextgroup=@sudoersParameter skipwhite skipnl
|
||||
syn match sudoersUID contained '#\d\+\>' nextgroup=@sudoersParameter skipwhite skipnl
|
||||
syn match sudoersGroup contained '%\l[-a-z0-9_]*\>' nextgroup=@sudoersParameter skipwhite skipnl
|
||||
syn match sudoersUserNetgroup contained '+\l[-a-z0-9_]*\>' nextgroup=@sudoersParameter skipwhite skipnl
|
||||
syn match sudoersUserAliasRef contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersParameter skipwhite skipnl
|
||||
syn match sudoersUserName contained '\<\l[-a-z0-9_]*\>' nextgroup=sudoersUserComma,@sudoersParameter skipwhite skipnl
|
||||
syn match sudoersUID contained '#\d\+\>' nextgroup=sudoersUserComma,@sudoersParameter skipwhite skipnl
|
||||
syn match sudoersGroup contained '%\l[-a-z0-9_]*\>' nextgroup=sudoersUserComma,@sudoersParameter skipwhite skipnl
|
||||
syn match sudoersGID contained '%#\d\+\>' nextgroup=sudoersUserComma,@sudoersParameter skipwhite skipnl
|
||||
syn match sudoersUserNetgroup contained '+\l[-a-z0-9_]*\>' nextgroup=sudoersUserComma,@sudoersParameter skipwhite skipnl
|
||||
syn match sudoersUserAliasRef contained '\<\u[A-Z0-9_]*\>' nextgroup=sudoersUserComma,@sudoersParameter skipwhite skipnl
|
||||
syn keyword sudoersUserAll contained ALL nextgroup=sudoersUserComma,@sudoersParameter skipwhite skipnl
|
||||
syn match sudoersUserComma contained ',' nextgroup=sudoersUserNegation,sudoersUserName,sudoersUID,sudoersGroup,sudoersGID,sudoersUserNetgroup,sudoersUserAliasRef,sudoersUserAll skipwhite skipnl
|
||||
|
||||
syn match sudoersUserNameInSpec contained '\<\l[-a-z0-9_]*\>' nextgroup=@sudoersUserSpec skipwhite skipnl
|
||||
syn match sudoersUIDInSpec contained '#\d\+\>' nextgroup=@sudoersUserSpec skipwhite skipnl
|
||||
syn match sudoersUserNameInSpec contained '\<\l[-a-z0-9_]*\>' nextgroup=@sudoersUserSpec skipwhite skipnl
|
||||
syn region sudoersUIDInSpec display oneline start='#\d\+\>' end='' nextgroup=@sudoersUserSpec skipwhite skipnl
|
||||
syn match sudoersGroupInSpec contained '%\l[-a-z0-9_]*\>' nextgroup=@sudoersUserSpec skipwhite skipnl
|
||||
syn match sudoersGIDInSpec contained '%#\d\+\>' nextgroup=@sudoersUserSpec skipwhite skipnl
|
||||
syn match sudoersUserNetgroupInSpec contained '+\l[-a-z0-9_]*\>' nextgroup=@sudoersUserSpec skipwhite skipnl
|
||||
syn match sudoersUserAliasInSpec contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersUserSpec skipwhite skipnl
|
||||
syn keyword sudoersUserAllInSpec contained ALL nextgroup=@sudoersUserSpec skipwhite skipnl
|
||||
|
||||
syn match sudoersUserNameInRunas contained '\<\l[-a-z0-9_]*\>' nextgroup=@sudoersUserRunas skipwhite skipnl
|
||||
syn match sudoersUserNameInRunas contained '\<\l[-a-z0-9_]*\>' nextgroup=@sudoersUserRunas skipwhite skipnl
|
||||
syn match sudoersUIDInRunas contained '#\d\+\>' nextgroup=@sudoersUserRunas skipwhite skipnl
|
||||
syn match sudoersGroupInRunas contained '%\l[-a-z0-9_]*\>' nextgroup=@sudoersUserRunas skipwhite skipnl
|
||||
syn match sudoersGIDInRunas contained '%#\d\+\>' nextgroup=@sudoersUserRunas skipwhite skipnl
|
||||
syn match sudoersUserNetgroupInRunas contained '+\l[-a-z0-9_]*\>' nextgroup=@sudoersUserRunas skipwhite skipnl
|
||||
syn match sudoersUserAliasInRunas contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersUserRunas skipwhite skipnl
|
||||
syn keyword sudoersUserAllInRunas contained ALL nextgroup=@sudoersUserRunas skipwhite skipnl
|
||||
|
||||
syn match sudoersHostAlias contained '\<\u[A-Z0-9_]*\>' nextgroup=sudoersHostAliasEquals skipwhite skipnl
|
||||
syn match sudoersHostNameInList contained '\<\l\+\>' nextgroup=@sudoersHostList skipwhite skipnl
|
||||
syn match sudoersIPAddrInList contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}' nextgroup=@sudoersHostList skipwhite skipnl
|
||||
syn match sudoersNetworkInList contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}\%(/\%(\%(\d\{1,3}\.\)\{3}\d\{1,3}\|\d\+\)\)\=' nextgroup=@sudoersHostList skipwhite skipnl
|
||||
syn match sudoersHostNameInList contained '\<\l[a-z0-9_-]*\>' nextgroup=@sudoersHostList skipwhite skipnl
|
||||
syn match sudoersIPAddrInList contained '\<\%(\d\{1,3}\.\)\{3}\d\{1,3}\>' nextgroup=@sudoersHostList skipwhite skipnl
|
||||
syn match sudoersNetworkInList contained '\<\%(\d\{1,3}\.\)\{3}\d\{1,3}\%(/\%(\%(\d\{1,3}\.\)\{3}\d\{1,3}\|\d\+\)\)\=\>' nextgroup=@sudoersHostList skipwhite skipnl
|
||||
syn match sudoersHostNetgroupInList contained '+\l\+\>' nextgroup=@sudoersHostList skipwhite skipnl
|
||||
syn match sudoersHostAliasInList contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersHostList skipwhite skipnl
|
||||
|
||||
syn match sudoersHostName contained '\<\l\+\>' nextgroup=@sudoersParameter skipwhite skipnl
|
||||
syn match sudoersIPAddr contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}' nextgroup=@sudoersParameter skipwhite skipnl
|
||||
syn match sudoersNetwork contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}\%(/\%(\%(\d\{1,3}\.\)\{3}\d\{1,3}\|\d\+\)\)\=' nextgroup=@sudoersParameter skipwhite skipnl
|
||||
syn match sudoersHostNetgroup contained '+\l\+\>' nextgroup=@sudoersParameter skipwhite skipnl
|
||||
syn match sudoersHostAliasRef contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersParameter skipwhite skipnl
|
||||
syn match sudoersHostName contained '\<\l[a-z0-9_-]*\>' nextgroup=sudoersHostComma,@sudoersParameter skipwhite skipnl
|
||||
syn match sudoersIPAddr contained '\<\%(\d\{1,3}\.\)\{3}\d\{1,3}\>' nextgroup=sudoersHostComma,@sudoersParameter skipwhite skipnl
|
||||
syn match sudoersNetwork contained '\<\%(\d\{1,3}\.\)\{3}\d\{1,3}/\%(\%(\d\{1,3}\.\)\{3}\d\{1,3}\|\d\+\)\>' nextgroup=sudoersHostComma,@sudoersParameter skipwhite skipnl
|
||||
syn match sudoersHostNetgroup contained '+\l\+\>' nextgroup=sudoersHostComma,@sudoersParameter skipwhite skipnl
|
||||
syn match sudoersHostAliasRef contained '\<\u[A-Z0-9_]*\>' nextgroup=sudoersHostComma,@sudoersParameter skipwhite skipnl
|
||||
syn keyword sudoersHostAll contained ALL nextgroup=sudoersHostComma,@sudoersParameter skipwhite skipnl
|
||||
syn match sudoersHostComma contained ',' nextgroup=sudoersHostNegation,sudoersHostName,sudoersIPAddr,sudoersNetwork,sudoersHostNetgroup,sudoersHostAliasRef,sudoersHostAll skipwhite skipnl
|
||||
|
||||
syn match sudoersHostNameInSpec contained '\<\l\+\>' nextgroup=@sudoersHostSpec skipwhite skipnl
|
||||
syn match sudoersIPAddrInSpec contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}' nextgroup=@sudoersHostSpec skipwhite skipnl
|
||||
syn match sudoersNetworkInSpec contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}\%(/\%(\%(\d\{1,3}\.\)\{3}\d\{1,3}\|\d\+\)\)\=' nextgroup=@sudoersHostSpec skipwhite skipnl
|
||||
syn match sudoersCmndName contained '/[/A-Za-z0-9._-]\+' nextgroup=sudoersCmndComma,@sudoersParameter skipwhite skipnl
|
||||
syn keyword sudoersCmndSpecial contained list sudoedit ALL nextgroup=sudoersCmndComma,@sudoersParameter skipwhite skipnl
|
||||
syn match sudoersCmndAliasRef contained '\<\u[A-Z0-9_]*\>' nextgroup=sudoersCmndComma,@sudoersParameter skipwhite skipnl
|
||||
syn match sudoersCmndComma contained ',' nextgroup=sudoersCmndNegation,sudoersCmndName,sudoersCmndSpecial,sudoersCmndAliasRef skipwhite skipnl
|
||||
|
||||
syn match sudoersHostNameInSpec contained '\<\l[a-z0-9_-]*\>' nextgroup=@sudoersHostSpec skipwhite skipnl
|
||||
syn match sudoersIPAddrInSpec contained '\<\%(\d\{1,3}\.\)\{3}\d\{1,3}\>' nextgroup=@sudoersHostSpec skipwhite skipnl
|
||||
syn match sudoersNetworkInSpec contained '\<\%(\d\{1,3}\.\)\{3}\d\{1,3}/\%(\%(\d\{1,3}\.\)\{3}\d\{1,3}\|\d\+\)\>' nextgroup=@sudoersHostSpec skipwhite skipnl
|
||||
syn match sudoersHostNetgroupInSpec contained '+\l\+\>' nextgroup=@sudoersHostSpec skipwhite skipnl
|
||||
syn match sudoersHostAliasInSpec contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersHostSpec skipwhite skipnl
|
||||
syn keyword sudoersHostAllInSpec contained ALL nextgroup=@sudoersHostSpec skipwhite skipnl
|
||||
|
||||
syn match sudoersCmndAlias contained '\<\u[A-Z0-9_]*\>' nextgroup=sudoersCmndAliasEquals skipwhite skipnl
|
||||
syn match sudoersCmndNameInList contained '[^[:space:],:=\\]\+\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=@sudoersCmndList,sudoersCommandEmpty,sudoersCommandArgs skipwhite
|
||||
@@ -85,6 +98,13 @@ syn match sudoersCmndAliasInList contained '\<\u[A-Z0-9_]*\>' nextgroup=@s
|
||||
|
||||
syn match sudoersCmndNameInSpec contained '[^[:space:],:=\\]\+\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=@sudoersCmndSpec,sudoersCommandEmptyInSpec,sudoersCommandArgsInSpec skipwhite
|
||||
syn match sudoersCmndAliasInSpec contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersCmndSpec skipwhite skipnl
|
||||
syn keyword sudoersCmndSpecialInSpec contained list sudoedit ALL nextgroup=@sudoersCmndSpec skipwhite skipnl
|
||||
|
||||
syn keyword sudoersCmndDigestInList contained sha224 sha256 sha384 sha512 nextgroup=sudoersCmndDigestColon skipwhite skipnl
|
||||
syn match sudoersCmndDigestColon contained ':' nextgroup=sudoersDigestHex,sudoersDigestBase64 skipwhite skipnl
|
||||
syn match sudoersDigestHex contained '\<\x\+\>' nextgroup=sudoersCmndDigestComma,sudoersCmndNegationInList,sudoersCmndNameInList,sudoersCmndAliasInList skipwhite skipnl
|
||||
syn match sudoersDigestBase64 contained '\<[A-Za-z0-9+/]\+=*' nextgroup=sudoersCmndDigestComma,sudoersCmndNegationInList,sudoersCmndNameInList,sudoersCmndAliasInList skipwhite skipnl
|
||||
syn match sudoersCmndDigestComma contained ',' nextgroup=sudoersCmndDigestInList skipwhite skipnl
|
||||
|
||||
syn match sudoersUserAliasEquals contained '=' nextgroup=@sudoersUserInList skipwhite skipnl
|
||||
syn match sudoersUserListComma contained ',' nextgroup=@sudoersUserInList skipwhite skipnl
|
||||
@@ -94,10 +114,10 @@ syn cluster sudoersUserList contains=sudoersUserListComma,sudoersUserLis
|
||||
syn match sudoersUserSpecComma contained ',' nextgroup=@sudoersUserInSpec skipwhite skipnl
|
||||
syn cluster sudoersUserSpec contains=sudoersUserSpecComma,@sudoersHostInSpec
|
||||
|
||||
syn match sudoersUserRunasBegin contained '(' nextgroup=@sudoersUserInRunas,sudoersUserRunasColon skipwhite skipnl
|
||||
syn match sudoersUserRunasBegin contained '(' nextgroup=@sudoersUserInRunas,sudoersUserRunasColon,sudoersUserRunasEnd skipwhite skipnl
|
||||
syn match sudoersUserRunasComma contained ',' nextgroup=@sudoersUserInRunas skipwhite skipnl
|
||||
syn match sudoersUserRunasColon contained ':' nextgroup=@sudoersUserInRunas skipwhite skipnl
|
||||
syn match sudoersUserRunasEnd contained ')' nextgroup=sudoersTagSpec,@sudoersCmndInSpec skipwhite skipnl
|
||||
syn match sudoersUserRunasColon contained ':' nextgroup=@sudoersUserInRunas,sudoersUserRunasEnd skipwhite skipnl
|
||||
syn match sudoersUserRunasEnd contained ')' nextgroup=sudoersOptionSpec,sudoersTagSpec,@sudoersCmndInSpec skipwhite skipnl
|
||||
syn cluster sudoersUserRunas contains=sudoersUserRunasComma,sudoersUserRunasColon,@sudoersUserInRunas,sudoersUserRunasEnd
|
||||
|
||||
|
||||
@@ -116,20 +136,21 @@ syn match sudoersCmndListColon contained ':' nextgroup=sudoersCmndAlias
|
||||
syn cluster sudoersCmndList contains=sudoersCmndListComma,sudoersCmndListColon
|
||||
|
||||
syn match sudoersCmndSpecComma contained ',' nextgroup=@sudoersCmndSpecList skipwhite skipnl
|
||||
syn match sudoersCmndSpecColon contained ':' nextgroup=@sudoersUserInSpec skipwhite skipnl
|
||||
syn match sudoersCmndSpecColon contained ':' nextgroup=@sudoersHostInSpec skipwhite skipnl
|
||||
syn cluster sudoersCmndSpec contains=sudoersCmndSpecComma,sudoersCmndSpecColon
|
||||
|
||||
syn cluster sudoersUserInList contains=sudoersUserNegationInList,sudoersUserNameInList,sudoersUIDInList,sudoersGroupInList,sudoersUserNetgroupInList,sudoersUserAliasInList
|
||||
syn cluster sudoersUserInList contains=sudoersUserNegationInList,sudoersUserNameInList,sudoersUIDInList,sudoersGroupInList,sudoersGIDInList,sudoersUserNetgroupInList,sudoersUserAliasInList,sudoersUserAllInList
|
||||
syn cluster sudoersHostInList contains=sudoersHostNegationInList,sudoersHostNameInList,sudoersIPAddrInList,sudoersNetworkInList,sudoersHostNetgroupInList,sudoersHostAliasInList
|
||||
syn cluster sudoersCmndInList contains=sudoersCmndNegationInList,sudoersCmndNameInList,sudoersCmndAliasInList
|
||||
syn cluster sudoersCmndInList contains=sudoersCmndDigestInList,sudoersCmndNegationInList,sudoersCmndNameInList,sudoersCmndAliasInList
|
||||
|
||||
syn cluster sudoersUser contains=sudoersUserNegation,sudoersUserName,sudoersUID,sudoersGroup,sudoersUserNetgroup,sudoersUserAliasRef
|
||||
syn cluster sudoersHost contains=sudoersHostNegation,sudoersHostName,sudoersIPAddr,sudoersNetwork,sudoersHostNetgroup,sudoersHostAliasRef
|
||||
syn cluster sudoersUser contains=sudoersUserNegation,sudoersUserName,sudoersUID,sudoersGroup,sudoersGID,sudoersUserNetgroup,sudoersUserAliasRef,sudoersUserAll
|
||||
syn cluster sudoersHost contains=sudoersHostNegation,sudoersHostName,sudoersIPAddr,sudoersNetwork,sudoersHostNetgroup,sudoersHostAll,sudoersHostAliasRef
|
||||
syn cluster sudoersCmnd contains=sudoersCmndNegation,sudoersCmndName,sudoersCmndSpecial,sudoersCmndAliasRef
|
||||
|
||||
syn cluster sudoersUserInSpec contains=sudoersUserNegationInSpec,sudoersUserNameInSpec,sudoersUIDInSpec,sudoersGroupInSpec,sudoersUserNetgroupInSpec,sudoersUserAliasInSpec
|
||||
syn cluster sudoersHostInSpec contains=sudoersHostNegationInSpec,sudoersHostNameInSpec,sudoersIPAddrInSpec,sudoersNetworkInSpec,sudoersHostNetgroupInSpec,sudoersHostAliasInSpec
|
||||
syn cluster sudoersUserInRunas contains=sudoersUserNegationInRunas,sudoersUserNameInRunas,sudoersUIDInRunas,sudoersGroupInRunas,sudoersUserNetgroupInRunas,sudoersUserAliasInRunas
|
||||
syn cluster sudoersCmndInSpec contains=sudoersCmndNegationInSpec,sudoersCmndNameInSpec,sudoersCmndAliasInSpec
|
||||
syn cluster sudoersUserInSpec contains=sudoersUserNegationInSpec,sudoersUserNameInSpec,sudoersUIDInSpec,sudoersGroupInSpec,sudoersGIDInSpec,sudoersUserNetgroupInSpec,sudoersUserAliasInSpec,sudoersUserAllInSpec
|
||||
syn cluster sudoersHostInSpec contains=sudoersHostNegationInSpec,sudoersHostNameInSpec,sudoersIPAddrInSpec,sudoersNetworkInSpec,sudoersHostNetgroupInSpec,sudoersHostAliasInSpec,sudoersHostAllInSpec
|
||||
syn cluster sudoersUserInRunas contains=sudoersUserNegationInRunas,sudoersUserNameInRunas,sudoersUIDInRunas,sudoersGroupInRunas,sudoersGIDInRunas,sudoersUserNetgroupInRunas,sudoersUserAliasInRunas,sudoersUserAllInRunas
|
||||
syn cluster sudoersCmndInSpec contains=sudoersCmndNegationInSpec,sudoersCmndNameInSpec,sudoersCmndAliasInSpec,sudoersCmndSpecialInSpec
|
||||
|
||||
syn match sudoersUserNegationInList contained '!\+' nextgroup=@sudoersUserInList skipwhite skipnl
|
||||
syn match sudoersHostNegationInList contained '!\+' nextgroup=@sudoersHostInList skipwhite skipnl
|
||||
@@ -137,6 +158,7 @@ syn match sudoersCmndNegationInList contained '!\+' nextgroup=@sudoersCmndInLi
|
||||
|
||||
syn match sudoersUserNegation contained '!\+' nextgroup=@sudoersUser skipwhite skipnl
|
||||
syn match sudoersHostNegation contained '!\+' nextgroup=@sudoersHost skipwhite skipnl
|
||||
syn match sudoersCmndNegation contained '!\+' nextgroup=@sudoersCmnd skipwhite skipnl
|
||||
|
||||
syn match sudoersUserNegationInSpec contained '!\+' nextgroup=@sudoersUserInSpec skipwhite skipnl
|
||||
syn match sudoersHostNegationInSpec contained '!\+' nextgroup=@sudoersHostInSpec skipwhite skipnl
|
||||
@@ -149,17 +171,22 @@ syn match sudoersCommandEmpty contained '""' nextgroup=@sudoersCmndList sk
|
||||
syn match sudoersCommandArgsInSpec contained '[^[:space:],:=\\]\+\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=sudoersCommandArgsInSpec,@sudoersCmndSpec skipwhite
|
||||
syn match sudoersCommandEmptyInSpec contained '""' nextgroup=@sudoersCmndSpec skipwhite skipnl
|
||||
|
||||
syn keyword sudoersDefaultEntry Defaults nextgroup=sudoersDefaultTypeAt,sudoersDefaultTypeColon,sudoersDefaultTypeGreaterThan,@sudoersParameter skipwhite skipnl
|
||||
syn keyword sudoersDefaultEntry Defaults nextgroup=sudoersDefaultTypeAt,sudoersDefaultTypeColon,sudoersDefaultTypeGreaterThan,sudoersDefaultTypeBang,sudoersDefaultTypeAny
|
||||
syn match sudoersDefaultTypeAt contained '@' nextgroup=@sudoersHost skipwhite skipnl
|
||||
syn match sudoersDefaultTypeColon contained ':' nextgroup=@sudoersUser skipwhite skipnl
|
||||
syn match sudoersDefaultTypeGreaterThan contained '>' nextgroup=@sudoersUser skipwhite skipnl
|
||||
syn match sudoersDefaultTypeBang contained '!' nextgroup=@sudoersCmnd skipwhite skipnl
|
||||
syn match sudoersDefaultTypeAny contained '\s' nextgroup=@sudoersParameter skipwhite skipnl
|
||||
|
||||
" TODO: could also deal with special characters here
|
||||
syn match sudoersBooleanParameter contained '!' nextgroup=sudoersBooleanParameter skipwhite skipnl
|
||||
syn match sudoersParameterNegation contained '!\+' nextgroup=sudoersBooleanParameter,sudoersIntegerOrBooleanParameter,sudoersModeOrBooleanParameter,sudoersFloatOrBooleanParameter,sudoersTimeoutOrBooleanParameter,sudoersStringOrBooleanParameter,sudoersListParameter skipwhite skipnl
|
||||
syn keyword sudoersBooleanParameter contained skipwhite skipnl
|
||||
\ nextgroup=sudoersParameterListComma
|
||||
\ always_query_group_plugin
|
||||
\ always_set_home
|
||||
\ authenticate
|
||||
\ case_insensitive_group
|
||||
\ case_insensitive_user
|
||||
\ closefrom_override
|
||||
\ compress_io
|
||||
\ env_editor
|
||||
@@ -174,9 +201,26 @@ syn keyword sudoersBooleanParameter contained skipwhite skipnl
|
||||
\ ignore_logfile_errors
|
||||
\ ignore_unknown_defaults
|
||||
\ insults
|
||||
\ intercept
|
||||
\ intercept_allow_setid
|
||||
\ intercept_authenticate
|
||||
\ intercept_verify
|
||||
\ iolog_flush
|
||||
\ log_allowed
|
||||
\ log_denied
|
||||
\ log_exit_status
|
||||
\ log_host
|
||||
\ log_input
|
||||
\ log_output
|
||||
\ log_passwords
|
||||
\ log_server_keepalive
|
||||
\ log_server_verify
|
||||
\ log_stderr
|
||||
\ log_stdin
|
||||
\ log_stdout
|
||||
\ log_subcmds
|
||||
\ log_ttyin
|
||||
\ log_ttyout
|
||||
\ log_year
|
||||
\ long_otp_prompt
|
||||
\ mail_all_cmnds
|
||||
@@ -188,8 +232,13 @@ syn keyword sudoersBooleanParameter contained skipwhite skipnl
|
||||
\ match_group_by_gid
|
||||
\ netgroup_tuple
|
||||
\ noexec
|
||||
\ noninteractive_auth
|
||||
\ pam_acct_mgmt
|
||||
\ pam_rhost
|
||||
\ pam_ruser
|
||||
\ pam_session
|
||||
\ pam_setcred
|
||||
\ pam_silent
|
||||
\ passprompt_override
|
||||
\ path_info
|
||||
\ preserve_groups
|
||||
@@ -197,7 +246,10 @@ syn keyword sudoersBooleanParameter contained skipwhite skipnl
|
||||
\ requiretty
|
||||
\ root_sudo
|
||||
\ rootpw
|
||||
\ runas_allow_unknown_id
|
||||
\ runas_check_shell
|
||||
\ runaspw
|
||||
\ selinux
|
||||
\ set_home
|
||||
\ set_logname
|
||||
\ set_utmp
|
||||
@@ -210,6 +262,7 @@ syn keyword sudoersBooleanParameter contained skipwhite skipnl
|
||||
\ targetpw
|
||||
\ tty_tickets
|
||||
\ umask_override
|
||||
\ use_loginclass
|
||||
\ use_netgroups
|
||||
\ use_pty
|
||||
\ user_command_timeouts
|
||||
@@ -220,81 +273,161 @@ syn keyword sudoersIntegerParameter contained
|
||||
\ nextgroup=sudoersIntegerParameterEquals
|
||||
\ skipwhite skipnl
|
||||
\ closefrom
|
||||
\ command_timeout
|
||||
\ loglinelen
|
||||
\ maxseq
|
||||
\ passwd_timeout
|
||||
\ passwd_tries
|
||||
\ syslog_maxlen
|
||||
|
||||
syn keyword sudoersIntegerOrBooleanParameter contained
|
||||
\ nextgroup=sudoersIntegerParameterEquals,sudoersParameterListComma
|
||||
\ skipwhite skipnl
|
||||
\ loglinelen
|
||||
|
||||
syn keyword sudoersFloatOrBooleanParameter contained
|
||||
\ nextgroup=sudoersFloatParameterEquals,sudoersParameterListComma
|
||||
\ skipwhite skipnl
|
||||
\ passwd_timeout
|
||||
\ timestamp_timeout
|
||||
|
||||
syn keyword sudoersModeParameter contained
|
||||
\ nextgroup=sudoersModeParameterEquals
|
||||
\ skipwhite skipnl
|
||||
\ iolog_mode
|
||||
|
||||
syn keyword sudoersModeOrBooleanParameter contained
|
||||
\ nextgroup=sudoersModeParameterEquals,sudoersParameterListComma
|
||||
\ skipwhite skipnl
|
||||
\ umask
|
||||
|
||||
syn keyword sudoersTimeoutOrBooleanParameter contained
|
||||
\ nextgroup=sudoersTimeoutParameterEquals,sudoersParameterListComma
|
||||
\ skipwhite skipnl
|
||||
\ command_timeout
|
||||
\ log_server_timeout
|
||||
|
||||
syn keyword sudoersStringParameter contained
|
||||
\ nextgroup=sudoersStringParameterEquals
|
||||
\ skipwhite skipnl
|
||||
\ apparmor_profile
|
||||
\ askpass
|
||||
\ authfail_message
|
||||
\ badpass_message
|
||||
\ cmddenial_message
|
||||
\ group_plugin
|
||||
\ intercept_type
|
||||
\ iolog_file
|
||||
\ limitprivs
|
||||
\ log_format
|
||||
\ mailsub
|
||||
\ noexec_file
|
||||
\ pam_askpass_service
|
||||
\ pam_login_service
|
||||
\ pam_service
|
||||
\ passprompt
|
||||
\ privs
|
||||
\ role
|
||||
\ runas_default
|
||||
\ sudoers_locale
|
||||
\ timestamp_type
|
||||
\ timestampowner
|
||||
\ type
|
||||
|
||||
syn keyword sudoersStringOrBooleanParameter contained
|
||||
\ nextgroup=sudoersStringParameterEquals,sudoersParameterListComma
|
||||
\ skipwhite skipnl
|
||||
\ admin_flag
|
||||
\ editor
|
||||
\ env_file
|
||||
\ exempt_group
|
||||
\ fdexec
|
||||
\ group_plugin
|
||||
\ iolog_dir
|
||||
\ iolog_file
|
||||
\ iolog_flush
|
||||
\ iolog_group
|
||||
\ iolog_mode
|
||||
\ iolog_user
|
||||
\ lecture
|
||||
\ lecture_file
|
||||
\ lecture_status_dir
|
||||
\ listpw
|
||||
\ log_server_cabundle
|
||||
\ log_server_peer_cert
|
||||
\ log_server_peer_key
|
||||
\ logfile
|
||||
\ mailerflags
|
||||
\ mailerpath
|
||||
\ mailfrom
|
||||
\ mailsub
|
||||
\ mailto
|
||||
\ noexec_file
|
||||
\ pam_login_service
|
||||
\ pam_service
|
||||
\ passprompt
|
||||
\ restricted_env_file
|
||||
\ role
|
||||
\ runas_default
|
||||
\ rlimit_as
|
||||
\ rlimit_core
|
||||
\ rlimit_cpu
|
||||
\ rlimit_data
|
||||
\ rlimit_fsize
|
||||
\ rlimit_locks
|
||||
\ rlimit_memlock
|
||||
\ rlimit_nofile
|
||||
\ rlimit_nproc
|
||||
\ rlimit_rss
|
||||
\ rlimit_stack
|
||||
\ runcwd
|
||||
\ secure_path
|
||||
\ sudoers_locale
|
||||
\ syslog
|
||||
\ syslog_badpri
|
||||
\ syslog_goodpri
|
||||
\ timestamp_type
|
||||
\ timestampdir
|
||||
\ timestampowner
|
||||
\ type
|
||||
\ verifypw
|
||||
|
||||
syn keyword sudoersListParameter contained
|
||||
\ nextgroup=sudoersListParameterEquals
|
||||
\ nextgroup=sudoersListParameterEquals,sudoersParameterListComma
|
||||
\ skipwhite skipnl
|
||||
\ env_check
|
||||
\ env_delete
|
||||
\ env_keep
|
||||
\ log_servers
|
||||
\ passprompt_regex
|
||||
|
||||
syn match sudoersParameterListComma contained ',' nextgroup=@sudoersParameter skipwhite skipnl
|
||||
|
||||
syn cluster sudoersParameter contains=sudoersBooleanParameter,sudoersIntegerParameter,sudoersStringParameter,sudoersListParameter
|
||||
syn cluster sudoersParameter contains=sudoersParameterNegation,sudoersBooleanParameter,sudoersIntegerParameter,sudoersIntegerOrBooleanParameter,sudoersModeParameter,sudoersModeOrBooleanParameter,sudoersFloatOrBooleanParameter,sudoersTimeoutOrBooleanParameter,sudoersStringParameter,sudoersStringOrBooleanParameter,sudoersListParameter
|
||||
|
||||
syn match sudoersIntegerParameterEquals contained '[+-]\==' nextgroup=sudoersIntegerValue skipwhite skipnl
|
||||
syn match sudoersStringParameterEquals contained '[+-]\==' nextgroup=sudoersStringValue skipwhite skipnl
|
||||
syn match sudoersIntegerParameterEquals contained '=' nextgroup=sudoersIntegerValue skipwhite skipnl
|
||||
syn match sudoersModeParameterEquals contained '=' nextgroup=sudoersModeValue skipwhite skipnl
|
||||
syn match sudoersFloatParameterEquals contained '=' nextgroup=sudoersFloatValue skipwhite skipnl
|
||||
syn match sudoersTimeoutParameterEquals contained '=' nextgroup=sudoersTimeoutValue skipwhite skipnl
|
||||
syn match sudoersStringParameterEquals contained '=' nextgroup=sudoersStringValue skipwhite skipnl
|
||||
syn match sudoersListParameterEquals contained '[+-]\==' nextgroup=sudoersListValue skipwhite skipnl
|
||||
|
||||
syn match sudoersIntegerValue contained '\d\+' nextgroup=sudoersParameterListComma skipwhite skipnl
|
||||
syn match sudoersStringValue contained '[^[:space:],:=\\]*\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=sudoersParameterListComma skipwhite skipnl
|
||||
syn region sudoersStringValue contained start=+"+ skip=+\\"+ end=+"+ nextgroup=sudoersParameterListComma skipwhite skipnl
|
||||
syn match sudoersListValue contained '[^[:space:],:=\\]*\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=sudoersParameterListComma skipwhite skipnl
|
||||
syn region sudoersListValue contained start=+"+ skip=+\\"+ end=+"+ nextgroup=sudoersParameterListComma skipwhite skipnl
|
||||
syn match sudoersIntegerValue contained '\<\d\+\>' nextgroup=sudoersParameterListComma skipwhite skipnl
|
||||
syn match sudoersModeValue contained '\<\o\+\>' nextgroup=sudoersParameterListComma skipwhite skipnl
|
||||
syn match sudoersFloatValue contained '-\?\%(\<\d\+\>\|\<\d\+\%(\.\%(\d\+\>\)\?\)\?\|\.\d\+\>\)' nextgroup=sudoersParameterListComma skipwhite skipnl
|
||||
syn match sudoersTimeoutValue contained '\<\d\+\>' nextgroup=sudoersParameterListComma skipwhite skipnl
|
||||
syn match sudoersTimeoutValue contained '\<\%(\d\+[dDhHmMsS]\)\+\>' nextgroup=sudoersParameterListComma skipwhite skipnl
|
||||
syn match sudoersStringValue contained '\s*\zs[^[:space:],:=\\]*\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=sudoersParameterListComma skipwhite skipnl
|
||||
syn region sudoersStringValue contained start=+\s*\zs"+ skip=+\\"+ end=+"+ nextgroup=sudoersParameterListComma skipwhite skipnl
|
||||
syn match sudoersListValue contained '\s*\zs[^[:space:],:=\\]*\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=sudoersParameterListComma skipwhite skipnl
|
||||
syn region sudoersListValue contained start=+\s*\zs"+ skip=+\\"+ end=+"+ nextgroup=sudoersParameterListComma skipwhite skipnl
|
||||
|
||||
syn match sudoersTagSpec contained '\%(NO\)\=\%(EXEC\|FOLLOW\|LOG_\%(INPUT\|OUTPUT\)\|MAIL\|INTERCEPT\|PASSWD\|SETENV\):' nextgroup=sudoersTagSpec,@sudoersCmndInSpec skipwhite
|
||||
syn keyword sudoersOptionSpec contained ROLE TYPE nextgroup=sudoersSELinuxSpecEquals skipwhite
|
||||
syn keyword sudoersOptionSpec contained APPARMOR_PROFILE nextgroup=sudoersAppArmorSpecEquals skipwhite
|
||||
syn keyword sudoersOptionSpec contained PRIVS LIMITPRIVS nextgroup=sudoersSolarisPrivSpecEquals skipwhite
|
||||
syn keyword sudoersOptionSpec contained NOTBEFORE NOTAFTER nextgroup=sudoersDateSpecEquals skipwhite
|
||||
syn keyword sudoersOptionSpec contained TIMEOUT nextgroup=sudoersTimeoutSpecEquals skipwhite
|
||||
syn keyword sudoersOptionSpec contained CWD CHROOT nextgroup=sudoersDirectorySpecEquals skipwhite
|
||||
|
||||
syn match sudoersSELinuxSpecEquals contained '=' nextgroup=sudoersSELinuxSpecParam skipwhite skipnl
|
||||
syn match sudoersAppArmorSpecEquals contained '=' nextgroup=sudoersAppArmorSpecParam skipwhite skipnl
|
||||
syn match sudoersSolarisPrivSpecEquals contained '=' nextgroup=sudoersSolarisPrivSpecParam skipwhite skipnl
|
||||
syn match sudoersDateSpecEquals contained '=' nextgroup=sudoersDateSpecParam skipwhite skipnl
|
||||
syn match sudoersTimeoutSpecEquals contained '=' nextgroup=sudoersTimeoutSpecParam skipwhite skipnl
|
||||
syn match sudoersDirectorySpecEquals contained '=' nextgroup=sudoersDirectorySpecParam,sudoersDirectorySpecParamError skipwhite skipnl
|
||||
|
||||
syn match sudoersSELinuxSpecParam contained /\<[A-Za-z0-9_]\+\>/ nextgroup=sudoersOptionSpec,sudoersTagSpec,@sudoersCmndInSpec skipwhite skipnl
|
||||
syn match sudoersAppArmorSpecParam contained /\S\+/ nextgroup=sudoersOptionSpec,sudoersTagSpec,@sudoersCmndInSpec skipwhite skipnl
|
||||
syn match sudoersSolarisPrivSpecParam contained /\S\+/ nextgroup=sudoersOptionSpec,sudoersTagSpec,@sudoersCmndInSpec skipwhite skipnl
|
||||
syn match sudoersDateSpecParam contained /\<\d\{10\}\%(\d\d\)\{0,2\}\%(Z\|[+-]\d\{4\}\)\?\>/ nextgroup=sudoersOptionSpec,sudoersTagSpec,@sudoersCmndInSpec skipwhite skipnl
|
||||
syn match sudoersTimeoutSpecParam contained /\<\d\+\>\|\<\%(\d\+[dDhHmMsS]\)\+\>/ nextgroup=sudoersOptionSpec,sudoersTagSpec,@sudoersCmndInSpec skipwhite skipnl
|
||||
syn match sudoersDirectorySpecParam contained '[/~]\f*\|\*' nextgroup=sudoersOptionSpec,sudoersTagSpec,@sudoersCmndInSpec skipwhite skipnl
|
||||
syn match sudoersDirectorySpecParam contained '"\%([/~]\f\{-}\|\*\)"' nextgroup=sudoersOptionSpec,sudoersTagSpec,@sudoersCmndInSpec skipwhite skipnl
|
||||
|
||||
syn keyword sudoersTagSpec contained EXEC NOEXEC FOLLOW NOFOLLOW LOG_INPUT NOLOG_INPUT LOG_OUTPUT NOLOG_OUTPUT MAIL NOMAIL INTERCEPT NOINTERCEPT PASSWD NOPASSWD SETENV NOSETENV nextgroup=sudoersTagSpecColon skipwhite
|
||||
syn match sudoersTagSpecColon contained /:/ nextgroup=sudoersTagSpec,@sudoersCmndInSpec skipwhite
|
||||
|
||||
hi def link sudoersSpecEquals Operator
|
||||
hi def link sudoersTodo Todo
|
||||
@@ -304,23 +437,32 @@ hi def link sudoersUserAlias Identifier
|
||||
hi def link sudoersUserNameInList String
|
||||
hi def link sudoersUIDInList Number
|
||||
hi def link sudoersGroupInList PreProc
|
||||
hi def link sudoersGIDInList Number
|
||||
hi def link sudoersUserNetgroupInList PreProc
|
||||
hi def link sudoersUserAliasInList PreProc
|
||||
hi def link sudoersUserAllInList Special
|
||||
hi def link sudoersUserName String
|
||||
hi def link sudoersUID Number
|
||||
hi def link sudoersGroup PreProc
|
||||
hi def link sudoersGID Number
|
||||
hi def link sudoersUserNetgroup PreProc
|
||||
hi def link sudoersUserAliasRef PreProc
|
||||
hi def link sudoersUserAll Special
|
||||
hi def link sudoersUserComma Delimiter
|
||||
hi def link sudoersUserNameInSpec String
|
||||
hi def link sudoersUIDInSpec Number
|
||||
hi def link sudoersGroupInSpec PreProc
|
||||
hi def link sudoersGIDInSpec Number
|
||||
hi def link sudoersUserNetgroupInSpec PreProc
|
||||
hi def link sudoersUserAliasInSpec PreProc
|
||||
hi def link sudoersUserAllInSpec Special
|
||||
hi def link sudoersUserNameInRunas String
|
||||
hi def link sudoersUIDInRunas Number
|
||||
hi def link sudoersGroupInRunas PreProc
|
||||
hi def link sudoersGIDInRunas Number
|
||||
hi def link sudoersUserNetgroupInRunas PreProc
|
||||
hi def link sudoersUserAliasInRunas PreProc
|
||||
hi def link sudoersUserAllInRunas Special
|
||||
hi def link sudoersHostAlias Identifier
|
||||
hi def link sudoersHostNameInList String
|
||||
hi def link sudoersIPAddrInList Number
|
||||
@@ -331,17 +473,30 @@ hi def link sudoersHostName String
|
||||
hi def link sudoersIPAddr Number
|
||||
hi def link sudoersNetwork Number
|
||||
hi def link sudoersHostNetgroup PreProc
|
||||
hi def link sudoersHostAll Special
|
||||
hi def link sudoersHostComma Delimiter
|
||||
hi def link sudoersHostAliasRef PreProc
|
||||
hi def link sudoersCmndName String
|
||||
hi def link sudoersCmndSpecial Special
|
||||
hi def link sudoersCmndAliasRef PreProc
|
||||
hi def link sudoersCmndComma Delimiter
|
||||
hi def link sudoersHostNameInSpec String
|
||||
hi def link sudoersIPAddrInSpec Number
|
||||
hi def link sudoersNetworkInSpec Number
|
||||
hi def link sudoersHostNetgroupInSpec PreProc
|
||||
hi def link sudoersHostAliasInSpec PreProc
|
||||
hi def link sudoersHostAllInSpec Special
|
||||
hi def link sudoersCmndAlias Identifier
|
||||
hi def link sudoersCmndNameInList String
|
||||
hi def link sudoersCmndAliasInList PreProc
|
||||
hi def link sudoersCmndNameInSpec String
|
||||
hi def link sudoersCmndAliasInSpec PreProc
|
||||
hi def link sudoersCmndSpecialInSpec Special
|
||||
hi def link sudoersCmndDigestInList Type
|
||||
hi def link sudoersCmndDigestColon Operator
|
||||
hi def link sudoersDigestHex Number
|
||||
hi def link sudoersDigestBase64 Number
|
||||
hi def link sudoersCmndDigestComma Delimiter
|
||||
hi def link sudoersUserAliasEquals Operator
|
||||
hi def link sudoersUserListComma Delimiter
|
||||
hi def link sudoersUserListColon Delimiter
|
||||
@@ -364,6 +519,7 @@ hi def link sudoersHostNegationInList Operator
|
||||
hi def link sudoersCmndNegationInList Operator
|
||||
hi def link sudoersUserNegation Operator
|
||||
hi def link sudoersHostNegation Operator
|
||||
hi def link sudoersCmndNegation Operator
|
||||
hi def link sudoersUserNegationInSpec Operator
|
||||
hi def link sudoersHostNegationInSpec Operator
|
||||
hi def link sudoersUserNegationInRunas Operator
|
||||
@@ -374,18 +530,46 @@ hi def link sudoersDefaultEntry Keyword
|
||||
hi def link sudoersDefaultTypeAt Special
|
||||
hi def link sudoersDefaultTypeColon Special
|
||||
hi def link sudoersDefaultTypeGreaterThan Special
|
||||
hi def link sudoersDefaultTypeBang Special
|
||||
hi def link sudoersParameterNegation Operator
|
||||
hi def link sudoersBooleanParameter Identifier
|
||||
hi def link sudoersIntegerParameter Identifier
|
||||
hi def link sudoersIntegerOrBooleanParameter Identifier
|
||||
hi def link sudoersModeParameter Identifier
|
||||
hi def link sudoersModeOrBooleanParameter Identifier
|
||||
hi def link sudoersFloatOrBooleanParameter Identifier
|
||||
hi def link sudoersTimeoutOrBooleanParameter Identifier
|
||||
hi def link sudoersStringParameter Identifier
|
||||
hi def link sudoersStringOrBooleanParameter Identifier
|
||||
hi def link sudoersListParameter Identifier
|
||||
hi def link sudoersParameterListComma Delimiter
|
||||
hi def link sudoersIntegerParameterEquals Operator
|
||||
hi def link sudoersModeParameterEquals Operator
|
||||
hi def link sudoersFloatParameterEquals Operator
|
||||
hi def link sudoersTimeoutParameterEquals Operator
|
||||
hi def link sudoersStringParameterEquals Operator
|
||||
hi def link sudoersListParameterEquals Operator
|
||||
hi def link sudoersIntegerValue Number
|
||||
hi def link sudoersModeValue Number
|
||||
hi def link sudoersFloatValue Float
|
||||
hi def link sudoersTimeoutValue Number
|
||||
hi def link sudoersStringValue String
|
||||
hi def link sudoersListValue String
|
||||
hi def link sudoersOptionSpec Special
|
||||
hi def link sudoersSELinuxSpecEquals Operator
|
||||
hi def link sudoersAppArmorSpecEquals Operator
|
||||
hi def link sudoersSolarisPrivSpecEquals Operator
|
||||
hi def link sudoersDateSpecEquals Operator
|
||||
hi def link sudoersTimeoutSpecEquals Operator
|
||||
hi def link sudoersDirectorySpecEquals Operator
|
||||
hi def link sudoersSELinuxSpecParam String
|
||||
hi def link sudoersAppArmorSpecParam String
|
||||
hi def link sudoersSolarisPrivSpecParam String
|
||||
hi def link sudoersDateSpecParam Number
|
||||
hi def link sudoersTimeoutSpecParam Number
|
||||
hi def link sudoersDirectorySpecParam String
|
||||
hi def link sudoersTagSpec Special
|
||||
hi def link sudoersTagSpecColon Delimiter
|
||||
hi def link sudoersInclude Statement
|
||||
|
||||
let b:current_syntax = "sudoers"
|
||||
|
||||
@@ -146,6 +146,9 @@ is covered by the test. You can follow these steps:
|
||||
- Vim setup file: syntax/testdir/input/setup/{name}.vim (if any)
|
||||
- test input file: syntax/testdir/input/{name}.{ext}
|
||||
- test dump files: syntax/testdir/dumps/{name}_*.dump
|
||||
Since no input file is ever executed when you run the tests, review and
|
||||
revoke each previously granted permission to execute such a file before
|
||||
publishing it; e.g. "chmod -x input/java.java; git add input/java.java".
|
||||
|
||||
As an extra check you can temporarily put back the old syntax plugin and
|
||||
verify that the tests fail. Then you know your changes are covered by the
|
||||
|
||||
20
runtime/syntax/testdir/dumps/po_00.dump
generated
Normal file
20
runtime/syntax/testdir/dumps/po_00.dump
generated
Normal file
@@ -0,0 +1,20 @@
|
||||
>#+0#0000e05#ffffff0| |F+0#0000001#ffff4012|I|R|S|T| |A|U|T|H|O|R| |<|E|M|A|I|L|@|A|D@1|R|E|S@1|>|,| |Y|E|A|R|.+0#0000e05#ffffff0| +0#0000000&@37
|
||||
|#+0#0000e05&| +0#0000000&@73
|
||||
|#+0#e000e06&|,| |f+0#0000001#ffff4012|u|z@1|y| +0#0000000#ffffff0@66
|
||||
|m+0#af5f00255&|s|g|i|d| |"+0#e000002&@1| +0#0000000&@66
|
||||
|m+0#af5f00255&|s|g|s|t|r| |"+0#e000002&@1| +0#0000000&@65
|
||||
|"+0#e000002&|P+0#00e0e07&|r|o|j|e|c|t|-|I|d|-|V|e|r|s|i|o|n|:| |P+0#0000001#ffff4012|A|C|K|A|G|E| |V|E|R|S|I|O|N|\+0#e000e06#ffffff0|n|"+0#e000002&| +0#0000000&@35
|
||||
|"+0#e000002&|P+0#00e0e07&|O|T|-|C|r|e|a|t|i|o|n|-|D|a|t|e|:| |2+0#e000002&|0|2|6|-|0|3|-|0|2| |1|3|:|2|3|+|0|9|0@1|\+0#e000e06&|n|"+0#e000002&| +0#0000000&@30
|
||||
|"+0#e000002&|P+0#00e0e07&|O|-|R|e|v|i|s|i|o|n|-|D|a|t|e|:| |Y+0#0000001#ffff4012|E|A|R|-|M|O|-|D|A| |H|O|:|M|I|+|Z|O|N|E|\+0#e000e06#ffffff0|n|"+0#e000002&| +0#0000000&@31
|
||||
|"+0#e000002&|L+0#00e0e07&|a|s|t|-|T|r|a|n|s|l|a|t|o|r|:| |F+0#0000001#ffff4012|U|L@1| |N|A|M|E| |<|E|M|A|I|L|@|A|D@1|R|E|S@1|>|\+0#e000e06#ffffff0|n|"+0#e000002&| +0#0000000&@28
|
||||
|"+0#e000002&|L+0#00e0e07&|a|n|g|u|a|g|e|-|T|e|a|m|:| |L+0#0000001#ffff4012|A|N|G|U|A|G|E| |<|L@1|@|l|i|.|o|r|g|>|\+0#e000e06#ffffff0|n|"+0#e000002&| +0#0000000&@35
|
||||
|"+0#e000002&|L+0#00e0e07&|a|n|g|u|a|g|e|:| |\+0#e000e06&|n|"+0#e000002&| +0#0000000&@60
|
||||
|"+0#e000002&|M+0#00e0e07&|I|M|E|-|V|e|r|s|i|o|n|:| |1+0#e000002&|.|0|\+0#e000e06&|n|"+0#e000002&| +0#0000000&@53
|
||||
|"+0#e000002&|C+0#00e0e07&|o|n|t|e|n|t|-|T|y|p|e|:| |t+0#e000002&|e|x|t|/|p|l|a|i|n|;| |c|h|a|r|s|e|t|=|U|T|F|-|8|\+0#e000e06&|n|"+0#e000002&| +0#0000000&@31
|
||||
|"+0#e000002&|C+0#00e0e07&|o|n|t|e|n|t|-|T|r|a|n|s|f|e|r|-|E|n|c|o|d|i|n|g|:| |8+0#e000002&|b|i|t|\+0#e000e06&|n|"+0#e000002&| +0#0000000&@39
|
||||
|"+0#e000002&|P+0#00e0e07&|l|u|r|a|l|-|F|o|r|m|s|:| |n+0#e000002&|p|l|u|r|a|l|s|=|I+0#0000001#ffff4012|N|T|E|G|E|R|;+0#e000002#ffffff0| |p|l|u|r|a|l|=|E+0#0000001#ffff4012|X|P|R|E|S@1|I|O|N|;+0#e000002#ffffff0|\+0#e000e06&|n|"+0#e000002&| +0#0000000&@20
|
||||
|"+0#e000002&|X+0#00e0e07&|-|G|e|n|e|r|a|t|o|r|:| |M+0#e000002&|a|n|u|a|l@1|y|G|e|n|e|r|a|t|e|d|\+0#e000e06&|n|"+0#e000002&| +0#0000000&@40
|
||||
@75
|
||||
|#+0#e000e06&|:| |p|a|t|h|/|t|o|/|f|i|l|e|.|c|:|1|2|3| +0#0000000&@53
|
||||
|#+0#e000e06&|,| |f+0#0000001#ffff4012|u|z@1|y|,+0#e000e06#ffffff0| |c+0#0000001#ffff4012|-|f|o|r|m|a|t| +0#0000000#ffffff0@56
|
||||
@57|1|,|1| @10|T|o|p|
|
||||
20
runtime/syntax/testdir/dumps/po_01.dump
generated
Normal file
20
runtime/syntax/testdir/dumps/po_01.dump
generated
Normal file
@@ -0,0 +1,20 @@
|
||||
|"+0#e000002#ffffff0|C+0#00e0e07&|o|n|t|e|n|t|-|T|r|a|n|s|f|e|r|-|E|n|c|o|d|i|n|g|:| |8+0#e000002&|b|i|t|\+0#e000e06&|n|"+0#e000002&| +0#0000000&@39
|
||||
|"+0#e000002&|P+0#00e0e07&|l|u|r|a|l|-|F|o|r|m|s|:| |n+0#e000002&|p|l|u|r|a|l|s|=|I+0#0000001#ffff4012|N|T|E|G|E|R|;+0#e000002#ffffff0| |p|l|u|r|a|l|=|E+0#0000001#ffff4012|X|P|R|E|S@1|I|O|N|;+0#e000002#ffffff0|\+0#e000e06&|n|"+0#e000002&| +0#0000000&@20
|
||||
|"+0#e000002&|X+0#00e0e07&|-|G|e|n|e|r|a|t|o|r|:| |M+0#e000002&|a|n|u|a|l@1|y|G|e|n|e|r|a|t|e|d|\+0#e000e06&|n|"+0#e000002&| +0#0000000&@40
|
||||
@75
|
||||
|#+0#e000e06&|:| |p|a|t|h|/|t|o|/|f|i|l|e|.|c|:|1|2|3| +0#0000000&@53
|
||||
>#+0#e000e06&|,| |f+0#0000001#ffff4012|u|z@1|y|,+0#e000e06#ffffff0| |c+0#0000001#ffff4012|-|f|o|r|m|a|t| +0#0000000#ffffff0@56
|
||||
|#+0#0000e05&||| |m|s|g|i|d| |"|H|i|,| |%|s|.|\|n|"| +0#0000000&@54
|
||||
|m+0#af5f00255&|s|g|i|d| |"+0#e000002&|H|e|l@1|o|,| |%+0#e000e06&|s|.+0#e000002&|\+0#e000e06&|n|"+0#e000002&| +0#0000000&@54
|
||||
|m+0#af5f00255&|s|g|s|t|r| |"+0#e000002&@1| +0#0000000&@65
|
||||
|"+0#e000002&|H|i|,| |%+0#e000e06&|s|.+0#e000002&|\+0#e000e06&|n|"+0#e000002&| +0#0000000&@63
|
||||
@75
|
||||
|#+0#e000e06&|:| |p|a|t|h|/|t|o|/|f|i|l|e|.|p|y|:|1|2|3| +0#0000000&@52
|
||||
|#+0#e000e06&|,| |p+0#0000001#ffff4012|y|t|h|o|n|-|f|o|r|m|a|t| +0#0000000#ffffff0@58
|
||||
|m+0#af5f00255&|s|g|i|d| |"+0#e000002&|%|(|n|u|m|)| |w|o|r|d|"| +0#0000000&@55
|
||||
|m+0#af5f00255&|s|g|i|d|_|p|l|u|r|a|l| +0#0000000&|"+0#e000002&|%|(|n|u|m|)| |w|o|r|d|s|"| +0#0000000&@47
|
||||
|m+0#af5f00255&|s|g|s|t|r|[|0|]| |"+0#e000002&@1| +0#0000000&@62
|
||||
|m+0#af5f00255&|s|g|s|t|r|[|1+0#e000002&|]+0#af5f00255&| +0#0000000&|"+0#e000002&@1| +0#0000000&@62
|
||||
@75
|
||||
|#+0#0000e05&|.| |c|o|m@1|e|n|t| |f|o|r| |t|r|a|n|s|l|a|t|o|r| +0#0000000&@49
|
||||
@57|1|9|,|1| @9|4|0|%|
|
||||
20
runtime/syntax/testdir/dumps/po_02.dump
generated
Normal file
20
runtime/syntax/testdir/dumps/po_02.dump
generated
Normal file
@@ -0,0 +1,20 @@
|
||||
|#+0#0000e05#ffffff0|.| |c|o|m@1|e|n|t| |f|o|r| |t|r|a|n|s|l|a|t|o|r| +0#0000000&@49
|
||||
|#+0#e000e06&|:| |p|a|t|h|/|t|o|/|f|i|l|e|.|c|p@1|:|2|3|4| +0#0000000&@51
|
||||
|#+0#e000e06&|:| |p|a|t|h|/|t|o|/|f|i|l|e|.|c|p@1|:|2|5|6| +0#0000000&@51
|
||||
|#+0#e000e06&|,| |q+0#0000001#ffff4012|t|-|f|o|r|m|a|t| +0#0000000#ffffff0@62
|
||||
|m+0#af5f00255&|s|g|c|t|x|t| |"+0#0000e05&|%|1| |i|s| |a| |v|a|r|i|a|b|l|e|"| +0#0000000&@48
|
||||
>m+0#af5f00255&|s|g|i|d| |"+0#e000002&|v|a|l|u|e| |o|f| |%+0#e000e06&|1|:+0#e000002&|\+0#e000e06&|t|%+0#e000002&|L|2|"| +0#0000000&@49
|
||||
|m+0#af5f00255&|s|g|s|t|r| |"+0#e000002&@1| +0#0000000&@65
|
||||
@75
|
||||
|#+0#e000e06&|:| |p|a|t|h|/|t|o|/|f|i|l|e|.|r|s|:|1|2|3| +0#0000000&@52
|
||||
|#+0#e000e06&|,| |r+0#0000001#ffff4012|u|s|t|-|f|o|r|m|a|t| +0#0000000#ffffff0@60
|
||||
|m+0#af5f00255&|s|g|i|d| |"+0#e000002&|H|e|l@1|o|,| |\+0#e000e06&|"|{+0#e000002&|:|?|}|\+0#e000e06&|"|.+0#e000002&|"| +0#0000000&@50
|
||||
|m+0#af5f00255&|s|g|s|t|r| |"+0#e000002&|H|a|l@1|o|,| |»|{|:|?|}|«|.|"| +0#0000000&@51
|
||||
@75
|
||||
|#+0#e000e06&|=| |n+0#0000001#ffff4012|o|-|w|r|a|p| +0#0000000#ffffff0@64
|
||||
|m+0#af5f00255&|s|g|i|d| |"+0#e000002&|L|o|r|e|m| |i|p|s|u|m| |d|o|l|o|r| |s|i|t| |a|m|e|t|,| |c|o|n|s|e|c|t|e|t|u|r| |a|d|i|p|i|s|c|i|n|g| |e|l|i|t|,| |s|e|d| |d|o| |e|i|u|s
|
||||
|m|o|d| |t|e|m|p|o|r| |i|n|c|i|d|i|d|u|n|t| |u|t| |l|a|b|o|r|e| |e|t| |d|o|l|o|r|e| |m|a|g|n|a| |a|l|i|q|u|a|.|"| +0#0000000&@18
|
||||
|m+0#af5f00255&|s|g|s|t|r| |"+0#e000002&|い*&|ろ|は|に|ほ|へ|と|"+&| +0#0000000&@51
|
||||
@75
|
||||
|#+0#0000e05&| |o|u|t|d|a|t|e|d| |e|n|t|r|i|e|s| +0#0000000&@56
|
||||
@57|3|7|,|1| @9|9|3|%|
|
||||
20
runtime/syntax/testdir/dumps/po_03.dump
generated
Normal file
20
runtime/syntax/testdir/dumps/po_03.dump
generated
Normal file
@@ -0,0 +1,20 @@
|
||||
|#+0#0000e05#ffffff0| |o|u|t|d|a|t|e|d| |e|n|t|r|i|e|s| +0#0000000&@56
|
||||
|#+0#0000e05&|~| |m|s|g|i|d| |"|f|o@1|"| +0#0000000&@60
|
||||
>#+0#0000e05&|~| |m|s|g|s|t|r| |"|f|o@1|"| +0#0000000&@59
|
||||
|~+0#4040ff13&| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
| +0#0000000&@56|5|1|,|1| @9|B|o|t|
|
||||
20
runtime/syntax/testdir/dumps/python_numbers_00.dump
generated
Normal file
20
runtime/syntax/testdir/dumps/python_numbers_00.dump
generated
Normal file
@@ -0,0 +1,20 @@
|
||||
>#+0#0000e05#ffffff0| |N|u|m|e|r|i|c| |l|i|t|e|r|a|l|s| +0#0000000&@56
|
||||
|#+0#0000e05&| |h|t@1|p|s|:|/@1|d|o|c|s|.|p|y|t|h|o|n|.|o|r|g|/|3|/|r|e|f|e|r|e|n|c|e|/|l|e|x|i|c|a|l|_|a|n|a|l|y|s|i|s|.|h|t|m|l|#|n|u|m|e|r|i|c|-|l|i|t|e|r|a|l
|
||||
|s| +0#0000000&@73
|
||||
@75
|
||||
|#+0#0000e05&| |I|n|t|e|g|e|r| |l|i|t|e|r|a|l|s| +0#0000000&@56
|
||||
@75
|
||||
|7+0#e000002&| +0#0000000&@73
|
||||
|3+0#e000002&| +0#0000000&@73
|
||||
|2+0#e000002&|1|4|7|4|8|3|6|4|7| +0#0000000&@64
|
||||
@75
|
||||
|7+0#e000002&|9|2@1|8|1|6|2|5|1|4|2|6|4|3@1|7|5|9|3|5|4|3|9|5|0|3@1|6|7|9|2@1|8|1|6|2|5|1|4|2|6|4|3@1|7|5|9|3|5|4|3|9|5|0|3@1|6| +0#0000000&@16
|
||||
@75
|
||||
|1+0#e000002&|0@1|_|0@2|_|0@2|_|0@2| +0#0000000&@59
|
||||
|1+0#e000002&|0@10| +0#0000000&@62
|
||||
|1+0#e000002&|_|0@1|_|0@1|_|0@1|_|0@1|_|0@2| +0#0000000&@57
|
||||
@75
|
||||
|0+0#e000002&|b|1|0@1|1@1|0|1@2| +0#0000000&@63
|
||||
|0+0#e000002&|b|_|1@2|0|_|0|1|0|1| +0#0000000&@62
|
||||
|0+0#e000002&|o|1|7@1| +0#0000000&@69
|
||||
@57|1|,|1| @10|T|o|p|
|
||||
20
runtime/syntax/testdir/dumps/python_numbers_01.dump
generated
Normal file
20
runtime/syntax/testdir/dumps/python_numbers_01.dump
generated
Normal file
@@ -0,0 +1,20 @@
|
||||
|1+0#e000002#ffffff0|0@10| +0#0000000&@62
|
||||
|1+0#e000002&|_|0@1|_|0@1|_|0@1|_|0@1|_|0@2| +0#0000000&@57
|
||||
@75
|
||||
|0+0#e000002&|b|1|0@1|1@1|0|1@2| +0#0000000&@63
|
||||
|0+0#e000002&|b|_|1@2|0|_|0|1|0|1| +0#0000000&@62
|
||||
>0+0#e000002&|o|1|7@1| +0#0000000&@69
|
||||
|0+0#e000002&|o|3|7@1| +0#0000000&@69
|
||||
|0+0#e000002&|x|d|e|a|d|b|e@1|f| +0#0000000&@64
|
||||
|0+0#e000002&|x|D|e|a|d|_|B|e@1|f| +0#0000000&@63
|
||||
@75
|
||||
|#+0#0000e05&| |F|l|o|a|t|i|n|g|-|p|o|i|n|t| |l|i|t|e|r|a|l|s| +0#0000000&@49
|
||||
@75
|
||||
|2+0#e000002&|.|7|1|8|2|8| +0#0000000&@67
|
||||
|4+0#e000002&|.|0| +0#0000000&@71
|
||||
@75
|
||||
|9+0#e000002&|6|_|4|8|5|.|3@1|2|_|1|2|3| +0#0000000&@60
|
||||
|3+0#e000002&|.|1|4|_|1|5|_|9|3| +0#0000000&@64
|
||||
@75
|
||||
|1+0#e000002&|0|.| +0#0000000&@1|#+0#0000e05&| |(|e|q|u|i|v|a|l|e|n|t| |t|o| |1|0|.|0|)| +0#0000000&@47
|
||||
@57|1|8|,|1| @9|2|5|%|
|
||||
20
runtime/syntax/testdir/dumps/python_numbers_02.dump
generated
Normal file
20
runtime/syntax/testdir/dumps/python_numbers_02.dump
generated
Normal file
@@ -0,0 +1,20 @@
|
||||
|1+0#e000002#ffffff0|0|.| +0#0000000&@1|#+0#0000e05&| |(|e|q|u|i|v|a|l|e|n|t| |t|o| |1|0|.|0|)| +0#0000000&@47
|
||||
|.+0#e000002&|0@1|1| +0#0000000&@1|#+0#0000e05&| |(|e|q|u|i|v|a|l|e|n|t| |t|o| |0|.|0@1|1|)| +0#0000000&@45
|
||||
@75
|
||||
|1+0#e000002&|.|0|e|3| +0#0000000&@1|#+0#0000e05&| |(|r|e|p|r|e|s|e|n|t|s| |1|.|0|×|1|0|³|,| |o|r| |1|0@2|.|0|)| +0#0000000&@34
|
||||
|1+0#e000002&|.|1|6@1|e|-|5| +0#0000000&@1|#+0#0000e05&| |(|r|e|p|r|e|s|e|n|t|s| |1|.|1|6@1|×|1|0|⁻|⁵|,| |o|r| |0|.|0@3|1@1|6@1|)| +0#0000000&@24
|
||||
>6+0#e000002&|.|0|2@1|1|4|0|7|6|e|+|2|3| +0#0000000&@1|#+0#0000e05&| |(|r|e|p|r|e|s|e|n|t|s| |6|.|0|2@1|1|4|0|7|6|×|1|0|²|³|,| |o|r| |6|0|2@1|1|4|0|7|6|0@14|.
|
||||
|)| +0#0000000&@73
|
||||
@75
|
||||
|1+0#e000002&|e|3| +0#0000000&@1|#+0#0000e05&| |(|e|q|u|i|v|a|l|e|n|t| |t|o| |1|.|e|3| |a|n|d| |1|.|0|e|3|)| +0#0000000&@37
|
||||
|0+0#e000002&|e|0| +0#0000000&@1|#+0#0000e05&| |(|e|q|u|i|v|a|l|e|n|t| |t|o| |0|.|)| +0#0000000&@49
|
||||
@75
|
||||
|#+0#0000e05&| |I|m|a|g|i|n|a|r|y| |l|i|t|e|r|a|l|s| +0#0000000&@54
|
||||
@75
|
||||
|3+0#e000002&|++0#0000000&|4+0#e000002&|.|2|j| +0#0000000&@68
|
||||
@75
|
||||
|3+0#e000002&| +0#0000000&|+| |4+0#e000002&|.|2|j| +0#0000000&@66
|
||||
@75
|
||||
|4+0#e000002&|.|2|j| +0#0000000&@70
|
||||
|3+0#e000002&|.|1|4|j| +0#0000000&@69
|
||||
@57|3|6|,|1| @9|6|2|%|
|
||||
20
runtime/syntax/testdir/dumps/python_numbers_03.dump
generated
Normal file
20
runtime/syntax/testdir/dumps/python_numbers_03.dump
generated
Normal file
@@ -0,0 +1,20 @@
|
||||
|3+0#e000002#ffffff0|.|1|4|j| +0#0000000&@69
|
||||
|1+0#e000002&|0|.|j| +0#0000000&@70
|
||||
|.+0#e000002&|0@1|1|j| +0#0000000&@69
|
||||
|1+0#e000002&|e|1|0@1|j| +0#0000000&@68
|
||||
|3+0#e000002&|.|1|4|e|-|1|0|j| +0#0000000&@65
|
||||
>3+0#e000002&|.|1|4|_|1|5|_|9|3|j| +0#0000000&@63
|
||||
@75
|
||||
|1+0#e000002&|0|j| +0#0000000&@71
|
||||
|0+0#e000002&|j| +0#0000000&@72
|
||||
|1+0#e000002&|0@23|j| +0#0000000&@2|#+0#0000e05&| |e|q|u|i|v|a|l|e|n|t| |t|o| |1|e|+|2|4|j| +0#0000000&@23
|
||||
@75
|
||||
|3+0#e000002&|.|1|4|J| +0#0000000&@2|#+0#0000e05&| |e|q|u|i|v|a|l|e|n|t| |t|o| |3|.|1|4|j| +0#0000000&@45
|
||||
@75
|
||||
@75
|
||||
@75
|
||||
|#+0#0000e05&| |I|s@1|u|e| |#|1|9|6|2|5| |(|r|u|n|t|i|m|e|(|p|y|t|h|o|n|)|:| |L|a|r|g|e| |n|u|m|b|e|r| |l|i|t|e|r|a|l|s| |c|a|u|s|e| |E|3|6|3|)| +0#0000000&@8
|
||||
@75
|
||||
|N|=|2+0#e000002&|1|4|0|3|2|4|6|5|0|2|4|0|7|4@1|9|6|1|2|6|4@1|2|3|0|7|2|8|3|9|3@2|5|6|3|0@1|8|6|1|4|7|1|5|1|4@1|7|5@1|0|1|7@1|9|7@1|5|4|9|2|0|8@1|1|4|1|8|0|2|3
|
||||
|4@1|7|1|4|0|1|3|6@1|4|3@1|4|5@1|1|9|0|9|5|8|0|4|6|7|9|6|1|0|9@1|2|8|5|1|8|7|2|4|7|0|9|1|4|5|8|7|6|8|7|3|9|6|2|6|1|9|2|1|5@1|7|3|6|3|0|4|7|4|5|4|@+0#4040ff13&@2
|
||||
| +0#0000000&@56|5|3|,|1| @9|9|5|%|
|
||||
20
runtime/syntax/testdir/dumps/python_numbers_04.dump
generated
Normal file
20
runtime/syntax/testdir/dumps/python_numbers_04.dump
generated
Normal file
@@ -0,0 +1,20 @@
|
||||
|N+0&#ffffff0|=|2+0#e000002&|1|4|0|3|2|4|6|5|0|2|4|0|7|4@1|9|6|1|2|6|4@1|2|3|0|7|2|8|3|9|3@2|5|6|3|0@1|8|6|1|4|7|1|5|1|4@1|7|5@1|0|1|7@1|9|7@1|5|4|9|2|0|8@1|1|4|1|8|0|2|3
|
||||
|4@1|7|1|4|0|1|3|6@1|4|3@1|4|5@1|1|9|0|9|5|8|0|4|6|7|9|6|1|0|9@1|2|8|5|1|8|7|2|4|7|0|9|1|4|5|8|7|6|8|7|3|9|6|2|6|1|9|2|1|5@1|7|3|6|3|0|4|7|4|5|4|7@1|0
|
||||
|5|2|0|8|0|5|1@1|9|0|5|6|4|9|3|1|0|6@1|8|1| +0#0000000&@53
|
||||
> @74
|
||||
|~+0#4040ff13&| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
| +0#0000000&@56|6@1|,|0|-|1| @7|B|o|t|
|
||||
20
runtime/syntax/testdir/dumps/sed_00.dump
generated
Normal file
20
runtime/syntax/testdir/dumps/sed_00.dump
generated
Normal file
@@ -0,0 +1,20 @@
|
||||
>#+0#0000e05#ffffff0| |s|e|d|(|1|)| +0#0000000&@66
|
||||
@75
|
||||
@75
|
||||
|#+0#0000e05&| |A|d@1|r|e|s@1|e|s| +0#0000000&@63
|
||||
@75
|
||||
@75
|
||||
|#+0#0000e05&| |l|i|n|e| |n|u|m|b|e|r| +0#0000000&@61
|
||||
@75
|
||||
|4+0#e000e06&|2|p+0#00e0e07&| +0#0000000&@71
|
||||
|$+0#e000e06&|p+0#00e0e07&| +0#0000000&@72
|
||||
@75
|
||||
|/+0#e000e06&|f|o@1|b|a|r|/|p+0#00e0e07&| +0#0000000&@65
|
||||
|/+0#e000e06&|f|o@1|[|/|]|b|a|r|/|p+0#00e0e07&| +0#0000000&@62
|
||||
|/+0#e000e06&|f|o@1|\|/|b|a|r|/|p+0#00e0e07&| +0#0000000&@63
|
||||
@75
|
||||
|\+0#e000e06&|x|f|o@1|b|a|r|x|p+0#00e0e07&| +0#0000000&@64
|
||||
|\+0#e000e06&|x|f|o@1|\|x|b|a|r|x|p+0#00e0e07&| +0#0000000&@62
|
||||
|\+0#e000e06&|x|f|o@1|[|x|]|b|a|r|x|p+0#00e0e07&| +0#0000000&@61
|
||||
@75
|
||||
@57|1|,|1| @10|T|o|p|
|
||||
20
runtime/syntax/testdir/dumps/sed_01.dump
generated
Normal file
20
runtime/syntax/testdir/dumps/sed_01.dump
generated
Normal file
@@ -0,0 +1,20 @@
|
||||
|/+0#e000e06#ffffff0|f|o@1|\|/|b|a|r|/|p+0#00e0e07&| +0#0000000&@63
|
||||
@75
|
||||
|\+0#e000e06&|x|f|o@1|b|a|r|x|p+0#00e0e07&| +0#0000000&@64
|
||||
|\+0#e000e06&|x|f|o@1|\|x|b|a|r|x|p+0#00e0e07&| +0#0000000&@62
|
||||
|\+0#e000e06&|x|f|o@1|[|x|]|b|a|r|x|p+0#00e0e07&| +0#0000000&@61
|
||||
> @74
|
||||
|#+0#0000e05&| |s|k|i|p| |b|r|a|c|k|e|t| |e|x|p|r|e|s@1|i|o|n|s| +0#0000000&@48
|
||||
|\+0#e000e06&|a|_|\|a|_|[|a|[|:|a|s|c|i@1|:|]|a|[|.|a|.|]|a|[|=|a|=|]|a|]|_|a|p+0#00e0e07&| +0#0000000&@40
|
||||
|\+0#e000e06&|a|_|\|a|_|[|^|a|[|:|a|s|c|i@1|:|]|a|[|.|a|.|]|a|[|=|a|=|]|a|]|_|a|p+0#00e0e07&| +0#0000000&@39
|
||||
|\+0#e000e06&|a|_|\|a|_|[|]|a|[|:|a|s|c|i@1|:|]|a|[|.|a|.|]|a|[|=|a|=|]|a|]|_|a|p+0#00e0e07&| +0#0000000&@39
|
||||
|\+0#e000e06&|a|_|\|a|_|[|^|]|a|[|:|a|s|c|i@1|:|]|a|[|.|a|.|]|a|[|=|a|=|]|a|]|_|a|p+0#00e0e07&| +0#0000000&@38
|
||||
@75
|
||||
@75
|
||||
|#+0#0000e05&| |r|a|n|g|e| +0#0000000&@67
|
||||
@75
|
||||
|4+0#e000e06&|2|,|8|4|p+0#00e0e07&| +0#0000000&@68
|
||||
|/+0#e000e06&|f|o@1|/|,|/|b|a|r|/|p+0#00e0e07&| +0#0000000&@62
|
||||
@75
|
||||
|/+0#e000e06&|f|o@1|/|,|4|2|p+0#00e0e07&| +0#0000000&@65
|
||||
@57|1|9|,|0|-|1| @7|2|8|%|
|
||||
20
runtime/syntax/testdir/dumps/sed_02.dump
generated
Normal file
20
runtime/syntax/testdir/dumps/sed_02.dump
generated
Normal file
@@ -0,0 +1,20 @@
|
||||
|/+0#e000e06#ffffff0|f|o@1|/|,|4|2|p+0#00e0e07&| +0#0000000&@65
|
||||
|4+0#e000e06&|2|,|/|b|a|r|/|p+0#00e0e07&| +0#0000000&@65
|
||||
@75
|
||||
@75
|
||||
|#+0#0000e05&| |G|N|U| |e|x|t|e|n|s|i|o|n|s| +0#0000000&@58
|
||||
> @74
|
||||
@75
|
||||
|#+0#0000e05&| |s|t|e|p| +0#0000000&@68
|
||||
@75
|
||||
|1+0#e000e06&|~|2|p+0#00e0e07&| +0#0000000&@70
|
||||
@75
|
||||
@75
|
||||
|#+0#0000e05&| |i|g|n|o|r|e| |c|a|s|e|,| |m|u|l|t|i|l|i|n|e| +0#0000000&@50
|
||||
@75
|
||||
|/+0#e000e06&|f|o@1|b|a|r|/|I|p+0#00e0e07&| +0#0000000&@64
|
||||
|/+0#e000e06&|f|o@1|b|a|r|/|M|p+0#00e0e07&| +0#0000000&@64
|
||||
|/+0#e000e06&|f|o@1|b|a|r|/|I|M|p+0#00e0e07&| +0#0000000&@63
|
||||
|/+0#e000e06&|f|o@1|b|a|r|/|M|I|p+0#00e0e07&| +0#0000000&@63
|
||||
@75
|
||||
@57|3|7|,|0|-|1| @7|6|7|%|
|
||||
20
runtime/syntax/testdir/dumps/sed_03.dump
generated
Normal file
20
runtime/syntax/testdir/dumps/sed_03.dump
generated
Normal file
@@ -0,0 +1,20 @@
|
||||
| +0&#ffffff0@74
|
||||
|\+0#e000e06&|a|f|o@1|b|\|a|r|a|I|p+0#00e0e07&| +0#0000000&@62
|
||||
|\+0#e000e06&|a|f|o@1|b|\|a|r|a|M|p+0#00e0e07&| +0#0000000&@62
|
||||
|\+0#e000e06&|a|f|o@1|b|\|a|r|a|I|M|p+0#00e0e07&| +0#0000000&@61
|
||||
|\+0#e000e06&|a|f|o@1|b|\|a|r|a|M|I|p+0#00e0e07&| +0#0000000&@61
|
||||
> @74
|
||||
@75
|
||||
|#+0#0000e05&| |i|n|c|r|e|m|e|n|t| +0#0000000&@63
|
||||
@75
|
||||
|4+0#e000e06&|2|,|+|4|2|p+0#00e0e07&| +0#0000000&@67
|
||||
@75
|
||||
@75
|
||||
|#+0#0000e05&| |s|t|e|p| +0#0000000&@68
|
||||
@75
|
||||
|4+0#e000e06&|2|,|~|2|p+0#00e0e07&| +0#0000000&@68
|
||||
@75
|
||||
|~+0#4040ff13&| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
| +0#0000000&@56|5@1|,|0|-|1| @7|B|o|t|
|
||||
20
runtime/syntax/testdir/dumps/sudoers_Defaults_00.dump
generated
Normal file
20
runtime/syntax/testdir/dumps/sudoers_Defaults_00.dump
generated
Normal file
@@ -0,0 +1,20 @@
|
||||
>#+0#0000e05#ffffff0| |v|i|:|f|t|=|s|u|d|o|e|r|s| +0#0000000&@59
|
||||
|H+0#af5f00255&|o|s|t|_|A|l|i|a|s| +0#0000000&|N+0#00e0e07&|O|D|E|S| +0#0000000&|=+0#af5f00255&| +0#0000000&|!+0#af5f00255&| +0#0000000&|n+0#e000002&|o|d|e|0|,+0#e000e06&| +0#0000000&|1+0#e000002&|9|2|.|1|6|8|.|1|0|.|1| +0#0000000&@34
|
||||
|U+0#af5f00255&|s|e|r|_|A|l|i|a|s| +0#0000000&|A+0#00e0e07&|D|M|I|N| +0#0000000&|=+0#af5f00255&| +0#0000000&|a+0#e000002&|l|i|c|e|,+0#e000e06&| +0#0000000&|b+0#e000002&|o|b| +0#0000000&@45
|
||||
|C+0#af5f00255&|m|n|d|_|A|l|i|a|s| +0#0000000&|V+0#00e0e07&|I|M| +0#0000000&|=+0#af5f00255&| +0#0000000&|/+0#e000002&|u|s|r|/|b|i|n|/|v|i|m|,+0#e000e06&| +0#0000000&|s+0#00e0003&|h|a|2@1|4|:+0#af5f00255&|d+0#e000002&|1|4|a|0|2|8|c|2|a|3|a|2|b|c|9|4|7|6|1|0|2|b@1|2|8@1|2|3|4|c|4|1|5|a|2|b
|
||||
|0|1|f|8|2|8|e|a|6|2|a|c|5|b|3|e|4|2|f| +0#0000000&|/+0#e000002&|u|s|r|/|b|i|n|/|v|i|e|w|,+0#e000e06&| +0#0000000&|s+0#00e0003&|h|a|2|5|6|:+0#af5f00255&|4+0#e000002&|7|D|E|Q|p|j|8|H|B|S|a|+|/|T|I|m|W|+|5|J|C|e|u|Q|e|R|k|m|5|N|M|p
|
||||
|J|W|Z|G|3|h|S|u|F|U|=| +0#0000000&|/+0#e000002&|u|s|r|/|b|i|n|/|v|i|m|d|i|f@1| +0#0000000&@46
|
||||
|R+0#af5f00255&|u|n|a|s|_|A|l|i|a|s| +0#0000000&|R+0#00e0e07&|O@1|T| +0#0000000&|=+0#af5f00255&| +0#0000000&|c+0#e000002&|h|a|r|l|i|e|,+0#e000e06&| +0#0000000&|d+0#e000002&|a|v|e| +0#0000000&@42
|
||||
@75
|
||||
|#+0#0000e05&| |B|o@1|l|e|a|n| |F|l|a|g|s| +0#0000000&@59
|
||||
|D+0#af5f00255&|e|f|a|u|l|t|s| +0#0000000&|a+0#00e0e07&|u|t|h|e|n|t|i|c|a|t|e| +0#0000000&@53
|
||||
|D+0#af5f00255&|e|f|a|u|l|t|s|@+0#e000e06&| +0#0000000&|A+0#e000e06&|L@1|,| +0#0000000&|N+0#e000e06&|O|D|E|S| +0#0000000&|c+0#00e0e07&|a|s|e|_|i|n|s|e|n|s|i|t|i|v|e|_|g|r|o|u|p| +0#0000000&|,+0#e000e06&| +0#0000000&|!+0#af5f00255&| +0#0000000&|c+0#00e0e07&|a|s|e|_|i|n|s|e|n|s|i|t|i|v|e|_|u|s|e|r| +0#0000000&@5
|
||||
|D+0#af5f00255&|e|f|a|u|l|t|s|@+0#e000e06&|!+0#af5f00255&|n+0#e000002&|o|d|e|0|,+0#e000e06&| +0#0000000&|!+0#af5f00255&|n+0#e000002&|o|d|e|1| +0#0000000&|!+0#af5f00255&@1| +0#0000000&|e+0#00e0e07&|n|v|_|r|e|s|e|t| +0#0000000&@38
|
||||
|D+0#af5f00255&|e|f|a|u|l|t|s|@+0#e000e06&|1+0#e000002&|0|.|0|.|0|.|1| +0#0000000&|,+0#e000e06&| +0#0000000&|!+0#af5f00255&|1+0#e000002&|7|2|.|1|6|.|0|.|1|/|1|2|,+0#e000e06&| +0#0000000&|!+0#af5f00255&@1|1+0#e000002&|9|2|.|1|6|8|.|0|.|1|/|2|5@1|.|2|5@1|.|0|.|0| +0#0000000&|!+0#af5f00255&@1| +0#0000000&|f+0#00e0e07&|q|d|n| +0#0000000&@5
|
||||
|D+0#af5f00255&|e|f|a|u|l|t|s|:+0#e000e06&|A|L@1|,| +0#0000000&|A+0#e000e06&|D|M|I|N| +0#0000000&|i+0#00e0e07&|g|n|o|r|e|_|d|o|t| +0#0000000&@44
|
||||
|D+0#af5f00255&|e|f|a|u|l|t|s|:+0#e000e06&|u+0#e000002&|s|e|r|0|,+0#e000e06&| +0#0000000&|#+0#e000002&|1|0@2|,+0#e000e06&| +0#0000000&|%+0#e000e06&|g|r|o|u|p|0|,| +0#0000000&|%+0#e000002&|#|1|0@2| +0#0000000&|m+0#00e0e07&|a|i|l|_|a|l@1|_|c|m|n|d|s| +0#0000000&@21
|
||||
|D+0#af5f00255&|e|f|a|u|l|t|s|!+0#e000e06&|A|L@1|,|V|I|M| +0#0000000&|n+0#00e0e07&|o|e|x|e|c| +0#0000000&@51
|
||||
|D+0#af5f00255&|e|f|a|u|l|t|s|!+0#e000e06&|l|i|s|t|,|s|u|d|o|e|d|i|t| +0#0000000&|!+0#af5f00255&|p+0#00e0e07&|a|t|h|_|i|n|f|o| +0#0000000&@41
|
||||
|D+0#af5f00255&|e|f|a|u|l|t|s|!+0#e000e06&| +0#0000000&|/+0#e000002&|b|i|n|/|l|s| +0#0000000&|r+0#00e0e07&|e|q|u|i|r|e|t@1|y| +0#0000000&@46
|
||||
|D+0#af5f00255&|e|f|a|u|l|t|s|!+0#e000e06&|!+0#af5f00255&|/+0#e000002&|b|i|n|/|l|e|s@1| +0#0000000&|,+0#e000e06&| +0#0000000&|/+0#e000002&|b|i|n|/|m|o|r|e| +0#0000000&|s+0#00e0e07&|e|t|_|h|o|m|e| +0#0000000&@34
|
||||
@57|1|,|1| @10|T|o|p|
|
||||
20
runtime/syntax/testdir/dumps/sudoers_Defaults_01.dump
generated
Normal file
20
runtime/syntax/testdir/dumps/sudoers_Defaults_01.dump
generated
Normal file
@@ -0,0 +1,20 @@
|
||||
|D+0#af5f00255#ffffff0|e|f|a|u|l|t|s|:+0#e000e06&|A|L@1|,| +0#0000000&|A+0#e000e06&|D|M|I|N| +0#0000000&|i+0#00e0e07&|g|n|o|r|e|_|d|o|t| +0#0000000&@44
|
||||
|D+0#af5f00255&|e|f|a|u|l|t|s|:+0#e000e06&|u+0#e000002&|s|e|r|0|,+0#e000e06&| +0#0000000&|#+0#e000002&|1|0@2|,+0#e000e06&| +0#0000000&|%+0#e000e06&|g|r|o|u|p|0|,| +0#0000000&|%+0#e000002&|#|1|0@2| +0#0000000&|m+0#00e0e07&|a|i|l|_|a|l@1|_|c|m|n|d|s| +0#0000000&@21
|
||||
|D+0#af5f00255&|e|f|a|u|l|t|s|!+0#e000e06&|A|L@1|,|V|I|M| +0#0000000&|n+0#00e0e07&|o|e|x|e|c| +0#0000000&@51
|
||||
|D+0#af5f00255&|e|f|a|u|l|t|s|!+0#e000e06&|l|i|s|t|,|s|u|d|o|e|d|i|t| +0#0000000&|!+0#af5f00255&|p+0#00e0e07&|a|t|h|_|i|n|f|o| +0#0000000&@41
|
||||
|D+0#af5f00255&|e|f|a|u|l|t|s|!+0#e000e06&| +0#0000000&|/+0#e000002&|b|i|n|/|l|s| +0#0000000&|r+0#00e0e07&|e|q|u|i|r|e|t@1|y| +0#0000000&@46
|
||||
>D+0#af5f00255&|e|f|a|u|l|t|s|!+0#e000e06&|!+0#af5f00255&|/+0#e000002&|b|i|n|/|l|e|s@1| +0#0000000&|,+0#e000e06&| +0#0000000&|/+0#e000002&|b|i|n|/|m|o|r|e| +0#0000000&|s+0#00e0e07&|e|t|_|h|o|m|e| +0#0000000&@34
|
||||
|D+0#af5f00255&|e|f|a|u|l|t|s|>+0#e000e06&| +0#0000000&|A+0#e000e06&|L@1|,|R|O@1|T| +0#0000000&|!+0#af5f00255&|s+0#00e0e07&|e|t|e|n|v| +0#0000000&@48
|
||||
|D+0#af5f00255&|e|f|a|u|l|t|s|>+0#e000e06&|!+0#af5f00255&|u+0#e000002&|s|e|r|0|,+0#e000e06&|!+0#af5f00255&@1|#+0#e000002&|1|0@2|,+0#e000e06&|!+0#af5f00255&@2|%+0#e000e06&|g|r|o|u|p|0|,|!+0#af5f00255&@3|%+0#e000002&|#|1|0@2| +0#0000000&|!+0#af5f00255&@4| +0#0000000&|s+0#00e0e07&|y|s|l|o|g|_|p|i|d| +0#0000000&@12
|
||||
@75
|
||||
|#+0#0000e05&| |I|n|t|e|g|e|r|s| +0#0000000&@64
|
||||
|D+0#af5f00255&|e|f|a|u|l|t|s| +0#0000000&|c+0#00e0e07&|o|m@1|a|n|d|_|t|i|m|e|o|u|t|=+0#af5f00255&|1+0#e000002&|,+0#e000e06&| +0#0000000&|c+0#00e0e07&|o|m@1|a|n|d|_|t|i|m|e|o|u|t|=+0#af5f00255&|2+0#e000002&@1|s|,+0#e000e06&| +0#0000000&|c+0#00e0e07&|o|m@1|a|n|d|_|t|i|m|e|o|u|t|=+0#af5f00255&|3+0#e000002&@1|m|,+0#e000e06&| +0#0000000&|c+0#00e0e07&|o|m@1|a
|
||||
|n|d|_|t|i|m|e|o|u|t|=+0#af5f00255&|4+0#e000002&@1|h|,+0#e000e06&| +0#0000000&|c+0#00e0e07&|o|m@1|a|n|d|_|t|i|m|e|o|u|t|=+0#af5f00255&|5+0#e000002&@1|d|,+0#e000e06&| +0#0000000&|c+0#00e0e07&|o|m@1|a|n|d|_|t|i|m|e|o|u|t|=+0#af5f00255&|6+0#e000002&|D|7|H|8|M|9|S| +0#0000000&@13
|
||||
|D+0#af5f00255&|e|f|a|u|l|t|s|:+0#e000e06&|A|L@1| +0#0000000&|p+0#00e0e07&|a|s@1|w|d|_|t|r|i|e|s| +0#0000000&|=+0#af5f00255&| +0#0000000&|3+0#e000002&|,+0#e000e06&| +0#0000000&|p+0#00e0e07&|a|s@1|w|d|_|t|i|m|e|o|u|t| +0#0000000&|=+0#af5f00255&| +0#0000000&|2+0#e000002&|.|5|,+0#e000e06&| +0#0000000&|u+0#00e0e07&|m|a|s|k| +0#0000000&|=+0#af5f00255&| +0#0000000&|0+0#e000002&@1|2|7| +0#0000000&@9
|
||||
|D+0#af5f00255&|e|f|a|u|l|t|s|@+0#e000e06&|A|L@1| +0#0000000&|!+0#af5f00255&| +0#0000000&|p+0#00e0e07&|a|s@1|w|d|_|t|i|m|e|o|u|t| +0#0000000&|,+0#e000e06&| +0#0000000&|!+0#af5f00255&@2| +0#0000000&|u+0#00e0e07&|m|a|s|k| +0#0000000&@33
|
||||
@75
|
||||
|#+0#0000e05&| |S|t|r|i|n|g|s| +0#0000000&@65
|
||||
|D+0#af5f00255&|e|f|a|u|l|t|s| +0#0000000&|e+0#00e0e07&|d|i|t|o|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|"+0#e000002&|/|u|s|r|/|b|i|n|/|v|i|m|:|/|b|i|n|/|v|i|"| +0#0000000&@34
|
||||
|D+0#af5f00255&|e|f|a|u|l|t|s| +0#0000000&|s+0#00e0e07&|e|c|u|r|e|_|p|a|t|h| +0#0000000&|=+0#af5f00255&| +0#0000000&|/+0#e000002&|u|s|r|/|s|b|i|n|\|:|/|u|s|r|/|b|i|n| +0#0000000&@32
|
||||
|D+0#af5f00255&|e|f|a|u|l|t|s|>+0#e000e06&|A|L@1| +0#0000000&|s+0#00e0e07&|y|s|l|o|g|_|b|a|d|p|r|i|=+0#af5f00255&|a+0#e000002&|l|e|r|t|,+0#e000e06&|s+0#00e0e07&|y|s|l|o|g|_|g|o@1|d|p|r|i|=+0#af5f00255&|n+0#e000002&|o|t|i|c|e| +0#0000000&@20
|
||||
@57|1|7|,|1| @9|4@1|%|
|
||||
20
runtime/syntax/testdir/dumps/sudoers_Defaults_02.dump
generated
Normal file
20
runtime/syntax/testdir/dumps/sudoers_Defaults_02.dump
generated
Normal file
@@ -0,0 +1,20 @@
|
||||
|D+0#af5f00255#ffffff0|e|f|a|u|l|t|s|>+0#e000e06&|A|L@1| +0#0000000&|s+0#00e0e07&|y|s|l|o|g|_|b|a|d|p|r|i|=+0#af5f00255&|a+0#e000002&|l|e|r|t|,+0#e000e06&|s+0#00e0e07&|y|s|l|o|g|_|g|o@1|d|p|r|i|=+0#af5f00255&|n+0#e000002&|o|t|i|c|e| +0#0000000&@20
|
||||
@75
|
||||
|#+0#0000e05&| |L|i|s|t|s| +0#0000000&@67
|
||||
|D+0#af5f00255&|e|f|a|u|l|t|s| +0#0000000&|e+0#00e0e07&|n|v|_|c|h|e|c|k| +0#0000000&@5|=+0#af5f00255&| +0#0000000&|T+0#e000002&|Z| +0#0000000&@46
|
||||
|D+0#af5f00255&|e|f|a|u|l|t|s| +0#0000000&|e+0#00e0e07&|n|v|_|d|e|l|e|t|e| +0#0000000&@4|++0#af5f00255&|=| +0#0000000&|"+0#e000002&|P|A|T|H| |*|P|A|T|H|"| +0#0000000&@35
|
||||
>D+0#af5f00255&|e|f|a|u|l|t|s| +0#0000000&|e+0#00e0e07&|n|v|_|k|e@1|p| +0#0000000&@6|-+0#af5f00255&|=| +0#0000000&|"+0#e000002&|X|D|G|_|*|_|H|O|M|E|"| +0#0000000&@35
|
||||
|D+0#af5f00255&|e|f|a|u|l|t|s|>+0#e000e06&|A|L@1| +0#0000000&|!+0#af5f00255&@4| +0#0000000&|e+0#00e0e07&|n|v|_|k|e@1|p| +0#0000000&@47
|
||||
@75
|
||||
|D+0#af5f00255&|e|f|a|u|l|t|s| +0#0000000&|p+0#00e0e07&|a|s@1|p|r|o|m|p|t|_|r|e|g|e|x| +0#0000000&@1|=+0#af5f00255&| +0#0000000&|"+0#e000002&|[|P|p|]|a|s@1|w|o|r|d|[|:| |]|*|"| +0#0000000&@27
|
||||
|D+0#af5f00255&|e|f|a|u|l|t|s| +0#0000000&|p+0#00e0e07&|a|s@1|p|r|o|m|p|t|_|r|e|g|e|x| +0#0000000&|-+0#af5f00255&|=| +0#0000000&|"+0#e000002&|(|?|i|)|P|A|S@1|W|O|R|D|"| +0#0000000&@31
|
||||
|D+0#af5f00255&|e|f|a|u|l|t|s| +0#0000000&|p+0#00e0e07&|a|s@1|p|r|o|m|p|t|_|r|e|g|e|x| +0#0000000&|++0#af5f00255&|=| +0#0000000&|"+0#e000002&|p|a|s@1|w|o|r|d|"| +0#0000000&@35
|
||||
@75
|
||||
|#+0#0000e05&| |D|i|r|e|c|t|i|v|e|s| +0#0000000&@62
|
||||
|@+0#af5f00255&|i|n|c|l|u|d|e|d|i|r| |/|e|t|c|/|s|u|d|o|e|r|s|.|d| +0#0000000&@48
|
||||
|#+0#af5f00255&|i|n|c|l|u|d|e| |/|e|t|c|/|s|u|d|o|e|r|s|.|d|/|%|h| +0#0000000&@48
|
||||
|~+0#4040ff13&| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
| +0#0000000&@56|3|4|,|1| @9|B|o|t|
|
||||
20
runtime/syntax/testdir/dumps/sudoers_user-spec_00.dump
generated
Normal file
20
runtime/syntax/testdir/dumps/sudoers_user-spec_00.dump
generated
Normal file
@@ -0,0 +1,20 @@
|
||||
>#+0#0000e05#ffffff0| |v|i|:|f|t|=|s|u|d|o|e|r|s| +0#0000000&@59
|
||||
|A+0#e000e06&|L@1| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&|=+0#af5f00255&| +0#0000000&@30|A+0#e000e06&|L@1| +0#0000000&@31
|
||||
|A+0#e000e06&|L@1| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&|=+0#af5f00255&| +0#0000000&@14|N+0#e000e06&|O|S|E|T|E|N|V| +0#0000000&|:+0#e000e06&| +0#0000000&@5|A+0#e000e06&|L@1| +0#0000000&@31
|
||||
|A+0#e000e06&|L@1| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&|=+0#af5f00255&| +0#0000000&@6|C+0#e000e06&|W|D| +0#0000000&|=+0#af5f00255&| +0#0000000&|*+0#e000002&| +0#0000000&@16|A+0#e000e06&|L@1| +0#0000000&@31
|
||||
|A+0#e000e06&|L@1| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|A|L@1|)| +0#0000000&@24|A+0#e000e06&|L@1| +0#0000000&@31
|
||||
|A+0#e000e06&|L@1| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|A|L@1|)| +0#0000000&@24|A+0#e000e06&|L@1| +0#0000000&@31
|
||||
|A+0#e000e06&|L@1| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|A|L@1|)| +0#0000000&@8|N+0#e000e06&|O|S|E|T|E|N|V| +0#0000000&|:+0#e000e06&| +0#0000000&@5|A+0#e000e06&|L@1| +0#0000000&@31
|
||||
|A+0#e000e06&|L@1| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|A|L@1|)| +0#0000000&|C+0#e000e06&|W|D| +0#0000000&|=+0#af5f00255&| +0#0000000&|*+0#e000002&| +0#0000000&@16|A+0#e000e06&|L@1| +0#0000000&@31
|
||||
|A+0#e000e06&|L@1| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|A|L@1|)| +0#0000000&|C+0#e000e06&|W|D| +0#0000000&|=+0#af5f00255&| +0#0000000&|*+0#e000002&| +0#0000000&|N+0#e000e06&|O|S|E|T|E|N|V| +0#0000000&|:+0#e000e06&| +0#0000000&@5|A+0#e000e06&|L@1| +0#0000000&@31
|
||||
@75
|
||||
|!+0#af5f00255&|u+0#e000002&|s|e|r|0|,+0#e000e06&| +0#0000000&|%+0#e000e06&|g|r|o|u|p|0| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|u+0#e000002&|s|e|r|0|,+0#e000e06&| +0#0000000&|!+0#af5f00255&|u+0#e000002&|s|e|r|1| +0#0000000&|:+0#e000e06&| +0#0000000&|!+0#af5f00255&|g+0#e000002&|r|o|u|p|0|,+0#e000e06&| +0#0000000&|g+0#e000002&|r|o|u|p|1|)+0#e000e06&| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&@15
|
||||
|#+0#e000002&|1|0@2|,+0#e000e06&| +0#0000000&@1|%+0#e000002&|#|1|0@2| +0#0000000&@1|A+0#e000e06&|L@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|#+0#e000002&|1|0@2| +0#0000000&|:+0#e000e06&| +0#0000000&|#+0#e000002&|1|0@2|)+0#e000e06&| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&@33
|
||||
|A+0#e000e06&|L@1| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&| +0#0000000&@6|)+0#e000e06&| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&@51
|
||||
|A+0#e000e06&|L@1| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|A|L@1| +0#0000000&@3|)+0#e000e06&| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&@51
|
||||
|A+0#e000e06&|L@1| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&| +0#0000000&@2|:+0#e000e06&| +0#0000000&@2|)+0#e000e06&| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&@51
|
||||
|A+0#e000e06&|L@1| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&| +0#0000000&@2|:+0#e000e06&|A|L@1|)| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&@51
|
||||
|A+0#e000e06&|L@1| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|A|L@1|:|A|L@1|)| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&@51
|
||||
@75
|
||||
|A+0#e000e06&|L@1| +0#0000000&|n+0#e000002&|o|d|e|0| +0#0000000&|,+0#e000e06&| +0#0000000&|!+0#af5f00255&| +0#0000000&|n+0#e000002&|o|d|e|1| +0#0000000&|=+0#af5f00255&| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&|:+0#e000e06&| +0#0000000&|!+0#af5f00255&| +0#0000000&|n+0#e000002&|o|d|e|2| +0#0000000&|,+0#e000e06&| +0#0000000&|n+0#e000002&|o|d|e|3| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|A|L@1|:|A|L@1|)| +0#0000000&|C+0#e000e06&|W|D|=+0#af5f00255&|/+0#e000002&| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&@9
|
||||
@57|1|,|1| @10|T|o|p|
|
||||
20
runtime/syntax/testdir/dumps/sudoers_user-spec_01.dump
generated
Normal file
20
runtime/syntax/testdir/dumps/sudoers_user-spec_01.dump
generated
Normal file
@@ -0,0 +1,20 @@
|
||||
|A+0#e000e06#ffffff0|L@1| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|A|L@1| +0#0000000&@3|)+0#e000e06&| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&@51
|
||||
|A+0#e000e06&|L@1| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&| +0#0000000&@2|:+0#e000e06&| +0#0000000&@2|)+0#e000e06&| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&@51
|
||||
|A+0#e000e06&|L@1| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&| +0#0000000&@2|:+0#e000e06&|A|L@1|)| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&@51
|
||||
|A+0#e000e06&|L@1| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|A|L@1|:|A|L@1|)| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&@51
|
||||
@75
|
||||
>A+0#e000e06&|L@1| +0#0000000&|n+0#e000002&|o|d|e|0| +0#0000000&|,+0#e000e06&| +0#0000000&|!+0#af5f00255&| +0#0000000&|n+0#e000002&|o|d|e|1| +0#0000000&|=+0#af5f00255&| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&|:+0#e000e06&| +0#0000000&|!+0#af5f00255&| +0#0000000&|n+0#e000002&|o|d|e|2| +0#0000000&|,+0#e000e06&| +0#0000000&|n+0#e000002&|o|d|e|3| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|A|L@1|:|A|L@1|)| +0#0000000&|C+0#e000e06&|W|D|=+0#af5f00255&|/+0#e000002&| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&@9
|
||||
@75
|
||||
|u+0#e000002&|s|e|r|0| +0#0000000&|n+0#e000002&|o|d|e|0| +0#0000000&|=+0#af5f00255&| +0#0000000&@7|A+0#e000e06&|P@1|A|R|M|O|R|_|P|R|O|F|I|L|E|=+0#af5f00255&|u+0#e000002&|n|c|o|n|f|i|n|e|d| +0#0000000&|/+0#e000002&|b|i|n|/|p|w|d| +0#0000000&|"@1| @14
|
||||
|u+0#e000002&|s|e|r|1| +0#0000000&|n+0#e000002&|o|d|e|1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|r+0#e000002&|o@1|t|)+0#e000e06&| +0#0000000&|A+0#e000e06&|P@1|A|R|M|O|R|_|P|R|O|F|I|L|E|=+0#af5f00255&|p+0#e000002&|r|o|f|_|a|/@1|&|p|r|o|f|_|b| +0#0000000&|N+0#e000e06&|O|E|X|E|C|:| +0#0000000&|/+0#e000002&|b|i|n|/|p|i|n|g| +0#0000000&@3
|
||||
@75
|
||||
|u+0#e000002&|s|e|r|0| +0#0000000&|n+0#e000002&|o|d|e|0| +0#0000000&|=+0#af5f00255&| +0#0000000&|P+0#e000e06&|R|I|V|S|=+0#af5f00255&|"+0#e000002&|p|r|o|c|_|i|n|f|o|,|p|r|o|c|_|s|e|s@1|i|o|n|"| +0#0000000&|/+0#e000002&|b|i|n|/|k|i|l@1| +0#0000000&@20
|
||||
@75
|
||||
|#+0#e000002&|1|0@2| +0#0000000&|n+0#e000002&|o|d|e|0| +0#0000000&|=+0#af5f00255&| +0#0000000&@10|N+0#e000e06&|O|T|B|E|F|O|R|E|=+0#af5f00255&| +0#0000000&|2+0#e000002&|0|2|6|0|1|3|1|2|3| +0#0000000&@10|N+0#e000e06&|O|T|A|F|T|E|R| +0#0000000&|=+0#af5f00255&| +0#0000000&|2+0#e000002&|0|2|7|0|1|3|1
|
||||
|2|3|5|9|5|9| +0#0000000&@14|/+0#e000002&|b|i|n|/|c|r|o|n|t|a|b| +0#0000000&@41
|
||||
|#+0#e000002&|1|0@1|1| +0#0000000&|n+0#e000002&|o|d|e|1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|)| +0#0000000&@7|N+0#e000e06&|O|T|A|F|T|E|R| +0#0000000&|=+0#af5f00255&| +0#0000000&|2+0#e000002&|0|2|7|0|1|3|1|2|3|5|9|5|9|Z| +0#0000000&@5|N+0#e000e06&|O|T|B|E|F|O|R|E|=+0#af5f00255&| +0#0000000&|2+0#e000002&|0|2|6|0|1|3|1
|
||||
|2|3|Z| +0#0000000&@9|M+0#e000e06&|A|I|L| +0#0000000&|:+0#e000e06&| +0#0000000&@1|/+0#e000002&|b|i|n|/|c|r|o|n|t|a|b| +0#0000000&@41
|
||||
|#+0#e000002&|1|0@1|2| +0#0000000&|n+0#e000002&|o|d|e|2| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|A|L@1|)| +0#0000000&@4|N+0#e000e06&|O|T|B|E|F|O|R|E|=+0#af5f00255&| +0#0000000&|2+0#e000002&|0|2|6|0|1|3|1|2|3|5|9|5|9|-|1|2|0@1| +0#0000000&@1|N+0#e000e06&|O|T|A|F|T|E|R| +0#0000000&|=+0#af5f00255&| +0#0000000&|2+0#e000002&|0|2|7|0|1|3|1
|
||||
|2|3|+|1|4|0@1| +0#0000000&@13|/+0#e000002&|b|i|n|/|c|r|o|n|t|a|b| +0#0000000&@41
|
||||
@75
|
||||
@57|1|9|,|1| @9|4|8|%|
|
||||
20
runtime/syntax/testdir/dumps/sudoers_user-spec_02.dump
generated
Normal file
20
runtime/syntax/testdir/dumps/sudoers_user-spec_02.dump
generated
Normal file
@@ -0,0 +1,20 @@
|
||||
| +0&#ffffff0@74
|
||||
|%+0#e000e06&|g|r|o|u|p|0| +0#0000000&|n+0#e000002&|o|d|e|0| +0#0000000&|=+0#af5f00255&| +0#0000000&|T+0#e000e06&|I|M|E|O|U|T| +0#0000000&|=+0#af5f00255&| +0#0000000&|1+0#e000002&| +0#0000000&@12|/+0#e000002&|b|i|n|/|m|o|r|e| +0#0000000&@25
|
||||
|%+0#e000e06&|g|r|o|u|p|1| +0#0000000&|n+0#e000002&|o|d|e|0| +0#0000000&|=+0#af5f00255&| +0#0000000&|T+0#e000e06&|I|M|E|O|U|T| +0#0000000&|=+0#af5f00255&| +0#0000000&|2+0#e000002&|s| +0#0000000&@11|/+0#e000002&|b|i|n|/|m|o|r|e|,+0#e000e06&| +0#0000000&|(+0#e000e06&|A|L@1|:|A|L@1|)| +0#0000000&|T+0#e000e06&|I|M|E|O|U|T|=+0#af5f00255&|2+0#e000002&|S| +0#0000000&@3
|
||||
@5|N+0#e000e06&|O|F|O|L@1|O|W|:| +0#0000000&|/+0#e000002&|b|i|n|/|l|e|s@1| +0#0000000&@50
|
||||
|%+0#e000e06&|g|r|o|u|p|2| +0#0000000&|n+0#e000002&|o|d|e|0| +0#0000000&|=+0#af5f00255&| +0#0000000&|T+0#e000e06&|I|M|E|O|U|T| +0#0000000&|=+0#af5f00255&| +0#0000000&|3+0#e000002&|m| +0#0000000&@11|/+0#e000002&|b|i|n|/|m|o|r|e|,+0#e000e06&| +0#0000000&|(+0#e000e06&|A|L@1|:|A|L@1|)| +0#0000000&|T+0#e000e06&|I|M|E|O|U|T|=+0#af5f00255&|3+0#e000002&|M| +0#0000000&@3
|
||||
@5|N+0#e000e06&|O|F|O|L@1|O|W|:| +0#0000000&|/+0#e000002&|b|i|n|/|l|e|s@1| +0#0000000&@50
|
||||
>%+0#e000e06&|g|r|o|u|p|3| +0#0000000&|n+0#e000002&|o|d|e|0| +0#0000000&|=+0#af5f00255&| +0#0000000&|T+0#e000e06&|I|M|E|O|U|T| +0#0000000&|=+0#af5f00255&| +0#0000000&|4+0#e000002&|h| +0#0000000&@11|/+0#e000002&|b|i|n|/|m|o|r|e|,+0#e000e06&| +0#0000000&|(+0#e000e06&|A|L@1|:|A|L@1|)| +0#0000000&|T+0#e000e06&|I|M|E|O|U|T|=+0#af5f00255&|4+0#e000002&|H| +0#0000000&@3
|
||||
@5|N+0#e000e06&|O|F|O|L@1|O|W|:| +0#0000000&|/+0#e000002&|b|i|n|/|l|e|s@1| +0#0000000&@50
|
||||
|%+0#e000e06&|g|r|o|u|p|4| +0#0000000&|n+0#e000002&|o|d|e|0| +0#0000000&|=+0#af5f00255&| +0#0000000&|T+0#e000e06&|I|M|E|O|U|T| +0#0000000&|=+0#af5f00255&| +0#0000000&|5+0#e000002&|d| +0#0000000&@11|/+0#e000002&|b|i|n|/|m|o|r|e|,+0#e000e06&| +0#0000000&|(+0#e000e06&|A|L@1|:|A|L@1|)| +0#0000000&|T+0#e000e06&|I|M|E|O|U|T|=+0#af5f00255&|5+0#e000002&|D| +0#0000000&@3
|
||||
@5|N+0#e000e06&|O|F|O|L@1|O|W|:| +0#0000000&|/+0#e000002&|b|i|n|/|l|e|s@1| +0#0000000&@50
|
||||
|%+0#e000e06&|g|r|o|u|p|5| +0#0000000&|n+0#e000002&|o|d|e|0| +0#0000000&|=+0#af5f00255&| +0#0000000&|T+0#e000e06&|I|M|E|O|U|T| +0#0000000&|=+0#af5f00255&| +0#0000000&|1+0#e000002&|D|2|h|3|M|4|s| +0#0000000&@5|/+0#e000002&|b|i|n|/|m|o|r|e|,+0#e000e06&| +0#0000000&|(+0#e000e06&|A|L@1|:|A|L@1|)| +0#0000000&|T+0#e000e06&|I|M|E|O|U|T|=+0#af5f00255&|1+0#e000002&|d|2|H|3|m
|
||||
|4|S| +0#0000000&@2|N+0#e000e06&|O|F|O|L@1|O|W|:| +0#0000000&|/+0#e000002&|b|i|n|/|l|e|s@1| +0#0000000&@50
|
||||
@75
|
||||
|%+0#e000002&|#|1|0@2| +0#0000000&|n+0#e000002&|o|d|e|0| +0#0000000&|=+0#af5f00255&| +0#0000000&@7|C+0#e000e06&|W|D|=+0#af5f00255&|/+0#e000002&|s|r|v| +0#0000000&@17|l+0#e000e06&|i|s|t| +0#0000000&@22
|
||||
|%+0#e000002&|#|1|0@1|1| +0#0000000&|n+0#e000002&|o|d|e|0| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&| +0#0000000&@3|)+0#e000e06&| +0#0000000&|C+0#e000e06&|W|D|=+0#af5f00255&|~+0#e000002&|r|o@1|t| +0#0000000&@16|l+0#e000e06&|i|s|t| +0#0000000&@22
|
||||
|%+0#e000002&|#|1|0@1|2| +0#0000000&|n+0#e000002&|o|d|e|0| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|:|A|L@1|)| +0#0000000&|C+0#e000e06&|W|D|=+0#af5f00255&|*+0#e000002&| +0#0000000&@4|N+0#e000e06&|O|E|X|E|C| +0#0000000&|:+0#e000e06&| +0#0000000&@7|l+0#e000e06&|i|s|t| +0#0000000&@22
|
||||
@75
|
||||
|#+0#e000002&|6|5@1|3|5| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|A|L@1|)| +0#0000000&|N+0#e000e06&|O|E|X|E|C|:|N|O|F|O|L@1|O|W|:|N|O|L|O|G|_|I|N|P|U|T|:|N|O|M|A|I|L|:|N|O|I|N|T|E|R|C|E|P|T|:|N|O|P|A|S@1|W|D|:
|
||||
|N|O|S|E|T|E|N|V|:| +0#0000000&|s+0#e000e06&|u|d|o|e|d|i|t| +0#0000000&@56
|
||||
@57|3@1|,|1| @9|9|3|%|
|
||||
20
runtime/syntax/testdir/dumps/sudoers_user-spec_03.dump
generated
Normal file
20
runtime/syntax/testdir/dumps/sudoers_user-spec_03.dump
generated
Normal file
@@ -0,0 +1,20 @@
|
||||
|#+0#e000002#ffffff0|6|5@1|3|5| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|A|L@1|)| +0#0000000&|N+0#e000e06&|O|E|X|E|C|:|N|O|F|O|L@1|O|W|:|N|O|L|O|G|_|I|N|P|U|T|:|N|O|M|A|I|L|:|N|O|I|N|T|E|R|C|E|P|T|:|N|O|P|A|S@1|W|D|:
|
||||
|N|O|S|E|T|E|N|V|:| +0#0000000&|s+0#e000e06&|u|d|o|e|d|i|t| +0#0000000&@56
|
||||
@75
|
||||
>A+0#e000e06&|L@1| +0#0000000&|A+0#e000e06&|L@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|A|L@1|:|A|L@1|)| +0#0000000&|T+0#e000e06&|I|M|E|O|U|T|=+0#af5f00255&|1+0#e000002&|m| +0#0000000&|C+0#e000e06&|W|D|=+0#af5f00255&|*+0#e000002&| +0#0000000&|F+0#e000e06&|O|L@1|O|W| +0#0000000&|:+0#e000e06&| +0#0000000&|^+0#e000002&|/|b|i|n|/|[|e|f|]|?|g|r|e|p|$| +0#0000000&@12
|
||||
|~+0#4040ff13&| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
| +0#0000000&@56|4|3|,|1| @9|B|o|t|
|
||||
@@ -8,8 +8,8 @@
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|v+0#00e0e07&|:|l+0#0000000&|u|a| |v+0#00e0e07&|:|m+0#0000000&|s|g|p|a|c|k|_|t|y|p|e|s| |v+0#00e0e07&|:|r+0#0000000&|e|l|n|u|m| |v+0#00e0e07&|:|s+0#0000000&|t|d|e|r@1| |v+0#00e0e07&|:|t+0#0000000&|e|r|m|r|e|q|u|e|s|t| |v+0#00e0e07&|:|v+0#0000000&|i|r|t|n|u|m| @6
|
||||
@75
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|&+0#00e0e07&|c+0#0000000&|h|a|n@1|e|l| |&+0#00e0e07&|i+0#0000000&|n|c@1|o|m@1|a|n|d| |&+0#00e0e07&|m+0#0000000&|o|u|s|e|s|c|r|o|l@1| |&+0#00e0e07&|p+0#0000000&|u|m|b|l|e|n|d| |&+0#00e0e07&|r+0#0000000&|e|d|r|a|w|d|e|b|u|g| |&+0#00e0e07&|s+0#0000000&|c|r|o|l@1|b|a|c|k| @1
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|&+0#00e0e07&|s+0#0000000&|h|a|d|a| |&+0#00e0e07&|s+0#0000000&|h|a|d|a|f|i|l|e| |&+0#00e0e07&|s+0#0000000&|t|a|t|u|s|c|o|l|u|m|n| |&+0#00e0e07&|t+0#0000000&|e|r|m|p|a|s|t|e|f|i|l|t|e|r| |&+0#00e0e07&|t+0#0000000&|e|r|m|s|y|n|c| |&+0#00e0e07&|w+0#0000000&|i|n|b|a|r| @3
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|&+0#00e0e07&|w+0#0000000&|i|n|b|l|e|n|d| |&+0#00e0e07&|w+0#0000000&|i|n|h|i|g|h|l|i|g|h|t| @46
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|&+0#00e0e07&|s+0#0000000&|h|a|d|a| |&+0#00e0e07&|s+0#0000000&|h|a|d|a|f|i|l|e| |&+0#00e0e07&|s+0#0000000&|t|a|t|u|s|c|o|l|u|m|n| |&+0#00e0e07&|t+0#0000000&|e|r|m|p|a|s|t|e|f|i|l|t|e|r| |&+0#00e0e07&|t|e|r|m|s|y|n|c| +0#0000000&|&+0#00e0e07&|w+0#0000000&|i|n|b|a|r| @3
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|&+0#00e0e07&|w+0#0000000&|i|n|b|l|e|n|d| @60
|
||||
@75
|
||||
|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
|
||||
@75
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|&+0#00e0e07&|c+0#0000000&|h|a|n@1|e|l| |&+0#00e0e07&|i+0#0000000&|n|c@1|o|m@1|a|n|d| |&+0#00e0e07&|m+0#0000000&|o|u|s|e|s|c|r|o|l@1| |&+0#00e0e07&|p+0#0000000&|u|m|b|l|e|n|d| |&+0#00e0e07&|r+0#0000000&|e|d|r|a|w|d|e|b|u|g| |&+0#00e0e07&|s+0#0000000&|c|r|o|l@1|b|a|c|k| @1
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|&+0#00e0e07&|s+0#0000000&|h|a|d|a| |&+0#00e0e07&|s+0#0000000&|h|a|d|a|f|i|l|e| |&+0#00e0e07&|s+0#0000000&|t|a|t|u|s|c|o|l|u|m|n| |&+0#00e0e07&|t+0#0000000&|e|r|m|p|a|s|t|e|f|i|l|t|e|r| |&+0#00e0e07&|t+0#0000000&|e|r|m|s|y|n|c| |&+0#00e0e07&|w+0#0000000&|i|n|b|a|r| @3
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|&+0#00e0e07&|w+0#0000000&|i|n|b|l|e|n|d| |&+0#00e0e07&|w+0#0000000&|i|n|h|i|g|h|l|i|g|h|t| @46
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|&+0#00e0e07&|s+0#0000000&|h|a|d|a| |&+0#00e0e07&|s+0#0000000&|h|a|d|a|f|i|l|e| |&+0#00e0e07&|s+0#0000000&|t|a|t|u|s|c|o|l|u|m|n| |&+0#00e0e07&|t+0#0000000&|e|r|m|p|a|s|t|e|f|i|l|t|e|r| |&+0#00e0e07&|t|e|r|m|s|y|n|c| +0#0000000&|&+0#00e0e07&|w+0#0000000&|i|n|b|a|r| @3
|
||||
|e+0#af5f00255&|c|h|o| +0#0000000&|&+0#00e0e07&|w+0#0000000&|i|n|b|l|e|n|d| |&+0#00e0e07&|w|i|n|h|i|g|h|l|i|g|h|t| +0#0000000&@46
|
||||
> @74
|
||||
|~+0#4040ff13&| @73
|
||||
|~| @73
|
||||
|
||||
16
runtime/syntax/testdir/dumps/vim_ex_syntax_00.dump
generated
16
runtime/syntax/testdir/dumps/vim_ex_syntax_00.dump
generated
@@ -1,4 +1,5 @@
|
||||
>"+0#0000e05#ffffff0| |V|i|m| |:|s|y|n|t|a|x| |c|o|m@1|a|n|d| +0#0000000&@53
|
||||
|"+0#0000e05&| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i| |l|i|n|k| |v|i|m|G|r|o|u|p|L|i|s|t| |T|o|d|o| +0#0000000&@32
|
||||
@75
|
||||
@75
|
||||
|"+0#0000e05&| |:|s|y|n|-|c|a|s|e| +0#0000000&@63
|
||||
@@ -7,14 +8,13 @@
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|c+0#00e0003&|a|s|e| +0#0000000&|m+0#00e0003&|a|t|c|h| +0#0000000&@57
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|c+0#00e0003&|a|s|e| +0#0000000&|i+0#00e0003&|g|n|o|r|e| +0#0000000&@56
|
||||
@75
|
||||
|"+0#0000e05&| |:|s|y|n| |c|l|e|a|r| +0#0000000&@62
|
||||
@75
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|c+0#00e0003&|l|e|a|r| +0#0000000&|@|t|e|s|t|C|l|u|s|t|e|r| @49
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|c+0#00e0003&|l|e|a|r| +0#0000000&|t|e|s|t|G|r|o|u|p| @52
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|c+0#00e0003&|l|e|a|r| +0#0000000&|@|t|e|s|t|C|l|u|s|t|e|r| |t|e|s|t|G|r|o|u|p| @39
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|c+0#00e0003&|l|e|a|r| +0#0000000&|t|e|s|t|G|r|o|u|p| |@|t|e|s|t|C|l|u|s|t|e|r| @39
|
||||
@75
|
||||
|"+0#0000e05&| |:|s|y|n|-|c|o|n|c|e|a|l| +0#0000000&@60
|
||||
@75
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|c+0#00e0003&|o|n|c|e|a|l| +0#0000000&@60
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|c+0#00e0003&|o|n|c|e|a|l| +0#0000000&|o+0#00e0003&|n| +0#0000000&@57
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|c+0#00e0003&|o|n|c|e|a|l| +0#0000000&|o+0#00e0003&|f@1| +0#0000000&@56
|
||||
@75
|
||||
|"+0#0000e05&| |:|s|y|n|-|f|o|l|d|l|e|v|e|l| +0#0000000&@58
|
||||
@75
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|f+0#00e0003&|o|l|d|l|e|v|e|l| +0#0000000&@58
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|f+0#00e0003&|o|l|d|l|e|v|e|l| +0#0000000&|s+0#00e0003&|t|a|r|t| +0#0000000&@52
|
||||
@57|1|,|1| @10|T|o|p|
|
||||
|
||||
26
runtime/syntax/testdir/dumps/vim_ex_syntax_01.dump
generated
26
runtime/syntax/testdir/dumps/vim_ex_syntax_01.dump
generated
@@ -1,20 +1,20 @@
|
||||
|s+0#af5f00255#ffffff0|y|n|t|a|x| +0#0000000&|c+0#00e0003&|o|n|c|e|a|l| +0#0000000&|o+0#00e0003&|f@1| +0#0000000&@56
|
||||
|s+0#af5f00255#ffffff0|y|n|t|a|x| +0#0000000&|c+0#00e0003&|l|e|a|r| +0#0000000&|t|e|s|t|G|r|o|u|p| @52
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|c+0#00e0003&|l|e|a|r| +0#0000000&|@|t|e|s|t|C|l|u|s|t|e|r| |t|e|s|t|G|r|o|u|p| @39
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|c+0#00e0003&|l|e|a|r| +0#0000000&|t|e|s|t|G|r|o|u|p| |@|t|e|s|t|C|l|u|s|t|e|r| @39
|
||||
@75
|
||||
|"+0#0000e05&| |:|s|y|n|-|c|o|n|c|e|a|l| +0#0000000&@60
|
||||
> @74
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|c+0#00e0003&|o|n|c|e|a|l| +0#0000000&@60
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|c+0#00e0003&|o|n|c|e|a|l| +0#0000000&|o+0#00e0003&|n| +0#0000000&@57
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|c+0#00e0003&|o|n|c|e|a|l| +0#0000000&|o+0#00e0003&|f@1| +0#0000000&@56
|
||||
@75
|
||||
|"+0#0000e05&| |:|s|y|n|-|f|o|l|d|l|e|v|e|l| +0#0000000&@58
|
||||
@75
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|f+0#00e0003&|o|l|d|l|e|v|e|l| +0#0000000&@58
|
||||
>s+0#af5f00255&|y|n|t|a|x| +0#0000000&|f+0#00e0003&|o|l|d|l|e|v|e|l| +0#0000000&|s+0#00e0003&|t|a|r|t| +0#0000000&@52
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|f+0#00e0003&|o|l|d|l|e|v|e|l| +0#0000000&|s+0#00e0003&|t|a|r|t| +0#0000000&@52
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|f+0#00e0003&|o|l|d|l|e|v|e|l| +0#0000000&|m+0#00e0003&|i|n|i|m|u|m| +0#0000000&@50
|
||||
@75
|
||||
|"+0#0000e05&| |:|s|y|n|-|i|s|k|e|y|w|o|r|d| +0#0000000&@58
|
||||
|"+0#0000e05&| |:|s|y|n|-|i|n|c|l|u|d|e| +0#0000000&@60
|
||||
@75
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|i+0#00e0003&|s|k|e|y|w|o|r|d| +0#0000000&@58
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|i+0#00e0003&|s|k|e|y|w|o|r|d| +0#0000000&|c+0#00e0003&|l|e|a|r| +0#0000000&@52
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|i+0#00e0003&|s|k|e|y|w|o|r|d| +0#0000000&|@+0#00e0003&|,+0#e000e06&|4+0#00e0003&|8|-|5|7|,+0#e000e06&|1+0#00e0003&|9|2|-|2|5@1|,+0#e000e06&|$+0#00e0003&|,+0#e000e06&|_+0#00e0003&| +0#0000000&@38
|
||||
@75
|
||||
|"+0#0000e05&| |:|s|y|n|-|l|i|s|t| +0#0000000&@63
|
||||
@75
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|l+0#00e0003&|i|s|t| +0#0000000&@63
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|l+0#00e0003&|i|s|t| +0#0000000&|F|o@1| @59
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|l+0#00e0003&|i|s|t| +0#0000000&|@|B|a|r| @58
|
||||
@57|1|9|,|1| @10|5|%|
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|i+0#00e0003&|n|c|l|u|d|e| +0#0000000&|@|F|o@1| |<+0#00e0003&|s+0#0000000&|f|i|l|e|>+0#00e0003&|:+0#0000000&|p+0#af5f00255&|:+0#0000000&|h+0#af5f00255&|/+0#0000000&|f|o@1|.|v|i|m| @35
|
||||
@57|1|9|,|0|-|1| @8|3|%|
|
||||
|
||||
32
runtime/syntax/testdir/dumps/vim_ex_syntax_02.dump
generated
32
runtime/syntax/testdir/dumps/vim_ex_syntax_02.dump
generated
@@ -1,20 +1,20 @@
|
||||
|s+0#af5f00255#ffffff0|y|n|t|a|x| +0#0000000&|l+0#00e0003&|i|s|t| +0#0000000&|@|B|a|r| @58
|
||||
|s+0#af5f00255#ffffff0|y|n|t|a|x| +0#0000000&|i+0#00e0003&|n|c|l|u|d|e| +0#0000000&|@|F|o@1| |<+0#00e0003&|s+0#0000000&|f|i|l|e|>+0#00e0003&|:+0#0000000&|p+0#af5f00255&|:+0#0000000&|h+0#af5f00255&|/+0#0000000&|f|o@1|.|v|i|m| @35
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|i+0#00e0003&|n|c|l|u|d|e| +0#0000000&|<+0#00e0003&|s+0#0000000&|f|i|l|e|>+0#00e0003&|:+0#0000000&|p+0#af5f00255&|:+0#0000000&|h+0#af5f00255&|/+0#0000000&|f|o@1|.|v|i|m| @40
|
||||
@75
|
||||
|"+0#0000e05&| |:|s|y|n|-|i|s|k|e|y|w|o|r|d| +0#0000000&@58
|
||||
@75
|
||||
>s+0#af5f00255&|y|n|t|a|x| +0#0000000&|i+0#00e0003&|s|k|e|y|w|o|r|d| +0#0000000&@58
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|i+0#00e0003&|s|k|e|y|w|o|r|d| +0#0000000&|c+0#00e0003&|l|e|a|r| +0#0000000&@52
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|i+0#00e0003&|s|k|e|y|w|o|r|d| +0#0000000&|@+0#00e0003&|,+0#e000e06&|4+0#00e0003&|8|-|5|7|,+0#e000e06&|1+0#00e0003&|9|2|-|2|5@1|,+0#e000e06&|$+0#00e0003&|,+0#e000e06&|_+0#00e0003&| +0#0000000&@38
|
||||
@75
|
||||
|"+0#0000e05&| |:|s|y|n|-|l|i|s|t| +0#0000000&@63
|
||||
@75
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|l+0#00e0003&|i|s|t| +0#0000000&@63
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|l+0#00e0003&|i|s|t| +0#0000000&|F|o@1| @59
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|l+0#00e0003&|i|s|t| +0#0000000&|@|B|a|r| @58
|
||||
@75
|
||||
|"+0#0000e05&| |:|s|y|n|-|s|p|e|l@1| +0#0000000&@62
|
||||
@75
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|p|e|l@1| +0#0000000&@62
|
||||
>s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|p|e|l@1| +0#0000000&|t+0#00e0003&|o|p|l|e|v|e|l| +0#0000000&@53
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|p|e|l@1| +0#0000000&|n+0#00e0003&|o|t|o|p|l|e|v|e|l| +0#0000000&@51
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|p|e|l@1| +0#0000000&|d+0#00e0003&|e|f|a|u|l|t| +0#0000000&@54
|
||||
@75
|
||||
|"+0#0000e05&| |:|s|y|n|-|s|y|n|c|-|c@1|o|m@1|e|n|t| +0#0000000&@54
|
||||
@75
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|c+0#00e0003&@1|o|m@1|e|n|t| +0#0000000&@54
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|c+0#00e0003&@1|o|m@1|e|n|t| +0#0000000&|F|o@1| @50
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|c+0#00e0003&@1|o|m@1|e|n|t| +0#0000000&|m+0#00e0003&|i|n|l|i|n|e|s|=|4+0#e000002&|2| +0#0000000&|m+0#00e0003&|a|x|l|i|n|e|s|=|4+0#e000002&|2| +0#0000000&|l+0#00e0003&|i|n|e|b|r|e|a|k|s|=|1+0#e000002&| +0#0000000&|l+0#00e0003&|i|n|e|c|o|n|t| +0#0000000&|"+0#e000002&|p|a|t@1|e|r|n
|
||||
|"| +0#0000000&@73
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|c+0#00e0003&@1|o|m@1|e|n|t| +0#0000000&|F|o@1| |m+0#00e0003&|i|n|l|i|n|e|s|=|4+0#e000002&|2| +0#0000000&|m+0#00e0003&|a|x|l|i|n|e|s|=|4+0#e000002&|2| +0#0000000&|l+0#00e0003&|i|n|e|b|r|e|a|k|s|=|1+0#e000002&| +0#0000000&|l+0#00e0003&|i|n|e|c|o|n|t| +0#0000000&|"+0#e000002&|p|a|t
|
||||
@1|e|r|n|"| +0#0000000&@69
|
||||
@75
|
||||
|"+0#0000e05&| |:|s|y|n|-|s|y|n|c|-|f|r|o|m|s|t|a|r|t| +0#0000000&@53
|
||||
@57|3|7|,|1| @9|1|2|%|
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|p|e|l@1| +0#0000000&|t+0#00e0003&|o|p|l|e|v|e|l| +0#0000000&@53
|
||||
@57|3|7|,|1| @10|8|%|
|
||||
|
||||
30
runtime/syntax/testdir/dumps/vim_ex_syntax_03.dump
generated
30
runtime/syntax/testdir/dumps/vim_ex_syntax_03.dump
generated
@@ -1,20 +1,20 @@
|
||||
|"+0#0000e05#ffffff0| |:|s|y|n|-|s|y|n|c|-|f|r|o|m|s|t|a|r|t| +0#0000000&@53
|
||||
|s+0#af5f00255#ffffff0|y|n|t|a|x| +0#0000000&|s+0#00e0003&|p|e|l@1| +0#0000000&|t+0#00e0003&|o|p|l|e|v|e|l| +0#0000000&@53
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|p|e|l@1| +0#0000000&|n+0#00e0003&|o|t|o|p|l|e|v|e|l| +0#0000000&@51
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|p|e|l@1| +0#0000000&|d+0#00e0003&|e|f|a|u|l|t| +0#0000000&@54
|
||||
@75
|
||||
|"+0#0000e05&| |:|s|y|n|-|s|y|n|c|-|c@1|o|m@1|e|n|t| +0#0000000&@54
|
||||
> @74
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|c+0#00e0003&@1|o|m@1|e|n|t| +0#0000000&@54
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|c+0#00e0003&@1|o|m@1|e|n|t| +0#0000000&|F|o@1| @50
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|c+0#00e0003&@1|o|m@1|e|n|t| +0#0000000&|m+0#00e0003&|i|n|l|i|n|e|s|=|4+0#e000002&|2| +0#0000000&|m+0#00e0003&|a|x|l|i|n|e|s|=|4+0#e000002&|2| +0#0000000&|l+0#00e0003&|i|n|e|b|r|e|a|k|s|=|1+0#e000002&| +0#0000000&|l+0#00e0003&|i|n|e|c|o|n|t| +0#0000000&|"+0#e000002&|p|a|t@1|e|r|n
|
||||
|"| +0#0000000&@73
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|c+0#00e0003&@1|o|m@1|e|n|t| +0#0000000&|F|o@1| |m+0#00e0003&|i|n|l|i|n|e|s|=|4+0#e000002&|2| +0#0000000&|m+0#00e0003&|a|x|l|i|n|e|s|=|4+0#e000002&|2| +0#0000000&|l+0#00e0003&|i|n|e|b|r|e|a|k|s|=|1+0#e000002&| +0#0000000&|l+0#00e0003&|i|n|e|c|o|n|t| +0#0000000&|"+0#e000002&|p|a|t
|
||||
@1|e|r|n|"| +0#0000000&@69
|
||||
@75
|
||||
|"+0#0000e05&| |:|s|y|n|-|s|y|n|c|-|f|r|o|m|s|t|a|r|t| +0#0000000&@53
|
||||
@75
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|f+0#00e0003&|r|o|m|s|t|a|r|t| +0#0000000&@53
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|f+0#00e0003&|r|o|m|s|t|a|r|t| +0#0000000&|m+0#00e0003&|i|n|l|i|n|e|s|=|4+0#e000002&|2| +0#0000000&|m+0#00e0003&|a|x|l|i|n|e|s|=|4+0#e000002&|2| +0#0000000&|l+0#00e0003&|i|n|e|b|r|e|a|k|s|=|1+0#e000002&| +0#0000000&|l+0#00e0003&|i|n|e|c|o|n|t| +0#0000000&|"+0#e000002&|p|a|t@1|e|r
|
||||
|n|"| +0#0000000&@72
|
||||
> @74
|
||||
|"+0#0000e05&| |:|s|y|n|-|s|y|n|c|-|l|i|n|e|b|r|e|a|k|s| +0#0000000&@52
|
||||
@75
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|l+0#00e0003&|i|n|e|b|r|e|a|k|s|=|1+0#e000002&| +0#0000000&@50
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|l+0#00e0003&|i|n|e|b|r|e|a|k|s|=|1+0#e000002&| +0#0000000&|m+0#00e0003&|i|n|l|i|n|e|s|=|4+0#e000002&|2| +0#0000000&|m+0#00e0003&|a|x|l|i|n|e|s|=|4+0#e000002&|2| +0#0000000&|l+0#00e0003&|i|n|e|c|o|n|t| +0#0000000&|"+0#e000002&|p|a|t@1|e|r|n|"| +0#0000000&@7
|
||||
@75
|
||||
|"+0#0000e05&| |:|s|y|n|-|s|y|n|c|-|l|i|n|e|c|o|n|t| +0#0000000&@54
|
||||
@75
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|l+0#00e0003&|i|n|e|c|o|n|t| +0#0000000&|"+0#e000002&|p|a|t@1|e|r|n|"| +0#0000000&@44
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|l+0#00e0003&|i|n|e|c|o|n|t| +0#0000000&|"+0#e000002&|p|a|t@1|e|r|n|"| +0#0000000&|m+0#00e0003&|i|n|l|i|n|e|s|=|4+0#e000002&|2| +0#0000000&|m+0#00e0003&|a|x|l|i|n|e|s|=|4+0#e000002&|2| +0#0000000&|l+0#00e0003&|i|n|e|b|r|e|a|k|s|=|1+0#e000002&| +0#0000000&@7
|
||||
@75
|
||||
|"+0#0000e05&| |:|s|y|n|-|s|y|n|c|-|(|m|i|n|||m|a|x|)|l|i|n|e|s| +0#0000000&@48
|
||||
@75
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|m+0#00e0003&|i|n|l|i|n|e|s|=|4+0#e000002&|2| +0#0000000&|m+0#00e0003&|a|x|l|i|n|e|s|=|4+0#e000002&|2| +0#0000000&@39
|
||||
@57|5|2|,|0|-|1| @7|1|8|%|
|
||||
@57|5@1|,|0|-|1| @7|1|3|%|
|
||||
|
||||
32
runtime/syntax/testdir/dumps/vim_ex_syntax_04.dump
generated
32
runtime/syntax/testdir/dumps/vim_ex_syntax_04.dump
generated
@@ -1,20 +1,20 @@
|
||||
|s+0#af5f00255#ffffff0|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|m+0#00e0003&|i|n|l|i|n|e|s|=|4+0#e000002&|2| +0#0000000&|m+0#00e0003&|a|x|l|i|n|e|s|=|4+0#e000002&|2| +0#0000000&@39
|
||||
| +0&#ffffff0@74
|
||||
|"+0#0000e05&| |:|s|y|n|-|s|y|n|c|-|l|i|n|e|b|r|e|a|k|s| +0#0000000&@52
|
||||
@75
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|l+0#00e0003&|i|n|e|b|r|e|a|k|s|=|1+0#e000002&| +0#0000000&@50
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|l+0#00e0003&|i|n|e|b|r|e|a|k|s|=|1+0#e000002&| +0#0000000&|m+0#00e0003&|i|n|l|i|n|e|s|=|4+0#e000002&|2| +0#0000000&|m+0#00e0003&|a|x|l|i|n|e|s|=|4+0#e000002&|2| +0#0000000&|l+0#00e0003&|i|n|e|c|o|n|t| +0#0000000&|"+0#e000002&|p|a|t@1|e|r|n|"| +0#0000000&@7
|
||||
> @74
|
||||
|"+0#0000e05&| |:|s|y|n|-|s|y|n|c|-|l|i|n|e|c|o|n|t| +0#0000000&@54
|
||||
@75
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|l+0#00e0003&|i|n|e|c|o|n|t| +0#0000000&|"+0#e000002&|p|a|t@1|e|r|n|"| +0#0000000&@44
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|l+0#00e0003&|i|n|e|c|o|n|t| +0#0000000&|"+0#e000002&|p|a|t@1|e|r|n|"| +0#0000000&|m+0#00e0003&|i|n|l|i|n|e|s|=|4+0#e000002&|2| +0#0000000&|m+0#00e0003&|a|x|l|i|n|e|s|=|4+0#e000002&|2| +0#0000000&|l+0#00e0003&|i|n|e|b|r|e|a|k|s|=|1+0#e000002&| +0#0000000&@7
|
||||
@75
|
||||
|"+0#0000e05&| |:|s|y|n|-|s|y|n|c|-|(|m|i|n|||m|a|x|)|l|i|n|e|s| +0#0000000&@48
|
||||
@75
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|m+0#00e0003&|i|n|l|i|n|e|s|=|4+0#e000002&|2| +0#0000000&|m+0#00e0003&|a|x|l|i|n|e|s|=|4+0#e000002&|2| +0#0000000&@39
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|m+0#00e0003&|i|n|l|i|n|e|s|=|4+0#e000002&|2| +0#0000000&|m+0#00e0003&|a|x|l|i|n|e|s|=|4+0#e000002&|2| +0#0000000&|l+0#00e0003&|i|n|e|b|r|e|a|k|s|=|1+0#e000002&| +0#0000000&|l+0#00e0003&|i|n|e|c|o|n|t| +0#0000000&|"+0#e000002&|p|a|t@1|e|r|n|"| +0#0000000&@7
|
||||
|"+0#0000e05&| |o|b|s|o|l|e|t|e| +0#0000000&@64
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|l+0#00e0003&|i|n|e|s|=|4+0#e000002&|2| +0#0000000&@54
|
||||
@75
|
||||
>"+0#0000e05&| |:|s|y|n|-|s|y|n|c| |s|y|n|c| |p|a|t@1|e|r|n|s| +0#0000000&@49
|
||||
@75
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|m+0#00e0003&|a|t|c|h| +0#0000000&|t|e|s|t|S|y|n|c|M|a|t|c|h| |g+0#00e0003&|r|o|u|p|h|e|r|e| +0#0000000&@1|t|e|s|t|F|o@1| |"+0#e000002&|p|a|t@1|e|r|n|"| +0#0000000&@14
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|m+0#00e0003&|a|t|c|h| +0#0000000&|t|e|s|t|S|y|n|c|M|a|t|c|h| |g+0#00e0003&|r|o|u|p|t|h|e|r|e| +0#0000000&|t|e|s|t|B|a|r| |"+0#e000002&|p|a|t@1|e|r|n|"| +0#0000000&@14
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|m+0#00e0003&|a|t|c|h| +0#0000000&|t|e|s|t|S|y|n|c|M|a|t|c|h| |g+0#00e0003&|r|o|u|p|h|e|r|e| +0#0000000&@1|N|O|N|E| |"+0#e000002&|p|a|t@1|e|r|n|"| +0#0000000&@17
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|m+0#00e0003&|a|t|c|h| +0#0000000&|t|e|s|t|S|y|n|c|M|a|t|c|h| |g+0#00e0003&|r|o|u|p|t|h|e|r|e| +0#0000000&|N|O|N|E| |"+0#e000002&|p|a|t@1|e|r|n|"| +0#0000000&@17
|
||||
@75
|
||||
|"+0#0000e05&| |:|s|y|n|-|s|y|n|c| |s|k|i|p| |g|r|o|u|p|s| +0#0000000&@51
|
||||
@75
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|m+0#00e0003&|a|t|c|h| +0#0000000&|t|e|s|t|M|a|t|c|h| |"+0#e000002&|p|a|t@1|e|r|n|"| +0#0000000&@40
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|r+0#00e0003&|e|g|i|o|n| +0#0000000&|t|e|s|t|R|e|g|i|o|n| |s+0#00e0003&|t|a|r|t|=|"+0#e000002&|s|t|a|r|t|-|p|a|t@1|e|r|n|"| +0#0000000&|s+0#00e0003&|k|i|p|=|"+0#e000002&|s|k|i|p|-|p|a|t@1|e|r|n|"| +0#0000000&|e+0#00e0003&|n|d|=|"+0#e000002&|e
|
||||
|n|d|-|p|a|t@1|e|r|n|"| +0#0000000&@63
|
||||
@75
|
||||
|"+0#0000e05&| |:|s|y|n|-|s|y|n|c|-|c|l|e|a|r| +0#0000000&@57
|
||||
@57|7|0|,|1| @9|2|5|%|
|
||||
|"+0#0000e05&| |:|s|y|n|-|s|y|n|c| |s|y|n|c| |p|a|t@1|e|r|n|s| +0#0000000&@49
|
||||
@57|7|0|,|0|-|1| @7|1|7|%|
|
||||
|
||||
32
runtime/syntax/testdir/dumps/vim_ex_syntax_05.dump
generated
32
runtime/syntax/testdir/dumps/vim_ex_syntax_05.dump
generated
@@ -1,20 +1,20 @@
|
||||
|"+0#0000e05#ffffff0| |:|s|y|n|-|s|y|n|c|-|c|l|e|a|r| +0#0000000&@57
|
||||
|"+0#0000e05#ffffff0| |:|s|y|n|-|s|y|n|c| |s|y|n|c| |p|a|t@1|e|r|n|s| +0#0000000&@49
|
||||
@75
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|m+0#00e0003&|a|t|c|h| +0#0000000&|t|e|s|t|S|y|n|c|M|a|t|c|h| |g+0#00e0003&|r|o|u|p|h|e|r|e| +0#0000000&@1|t|e|s|t|F|o@1| |"+0#e000002&|p|a|t@1|e|r|n|"| +0#0000000&@14
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|m+0#00e0003&|a|t|c|h| +0#0000000&|t|e|s|t|S|y|n|c|M|a|t|c|h| |g+0#00e0003&|r|o|u|p|t|h|e|r|e| +0#0000000&|t|e|s|t|B|a|r| |"+0#e000002&|p|a|t@1|e|r|n|"| +0#0000000&@14
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|m+0#00e0003&|a|t|c|h| +0#0000000&|t|e|s|t|S|y|n|c|M|a|t|c|h| |g+0#00e0003&|r|o|u|p|h|e|r|e| +0#0000000&@1|N|O|N|E| |"+0#e000002&|p|a|t@1|e|r|n|"| +0#0000000&@17
|
||||
>s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|m+0#00e0003&|a|t|c|h| +0#0000000&|t|e|s|t|S|y|n|c|M|a|t|c|h| |g+0#00e0003&|r|o|u|p|t|h|e|r|e| +0#0000000&|N|O|N|E| |"+0#e000002&|p|a|t@1|e|r|n|"| +0#0000000&@17
|
||||
@75
|
||||
|"+0#0000e05&| |:|s|y|n|-|s|y|n|c| |s|k|i|p| |g|r|o|u|p|s| +0#0000000&@51
|
||||
@75
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|m+0#00e0003&|a|t|c|h| +0#0000000&|t|e|s|t|M|a|t|c|h| |"+0#e000002&|p|a|t@1|e|r|n|"| +0#0000000&@40
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|r+0#00e0003&|e|g|i|o|n| +0#0000000&|t|e|s|t|R|e|g|i|o|n| |s+0#00e0003&|t|a|r|t|=|"+0#e000002&|s|t|a|r|t|-|p|a|t@1|e|r|n|"| +0#0000000&|s+0#00e0003&|k|i|p|=|"+0#e000002&|s|k|i|p|-|p|a|t@1|e|r|n|"| +0#0000000&|e+0#00e0003&|n|d|=|"+0#e000002&|e
|
||||
|n|d|-|p|a|t@1|e|r|n|"| +0#0000000&@63
|
||||
@75
|
||||
|"+0#0000e05&| |:|s|y|n|-|s|y|n|c|-|c|l|e|a|r| +0#0000000&@57
|
||||
@75
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|c+0#00e0003&|l|e|a|r| +0#0000000&@57
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|s+0#00e0003&|y|n|c| +0#0000000&|c+0#00e0003&|l|e|a|r| +0#0000000&|F|o@1| @53
|
||||
@75
|
||||
>"+0#0000e05&| |t|a|i|l| |c|o|m@1|e|n|t|s| |a|r|e| |n|o|t| |e|x|p|l|i|c|i|t|l|y| |s|u|p@1|o|r|t|e|d| |b|y| |:|s|y|n|t|a|x|,| |s|e@1| |:|h|e|l|p| |:|c|o|m@1|e|n|t
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|m+0#00e0003&|a|t|c|h| +0#0000000&|t|e|s|t|M|a|t|c|h| |"+0#e000002&|p|a|t@1|e|r|n|"| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|e|d| +0#0000000&|"+0#0000e05&| |t|a|i|l| |c|o|m@1|e|n|t| +0#0000000&@20
|
||||
|"+0#0000e05&| +0#0000000&|N+0#e000e06&|O|T|E|:| +0#0000e05&|c|o|m@1|e|n|t|s| |n|o|t| |c|u|r@1|e|n|t|l|y| |s|u|p@1|o|r|t|e|d| +0#0000000&@34
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|t|e|s|t|K|e|y|w|o|r|d| |k|e|y|w|o|r|d| |c+0#e000e06&|o|n|t|a|i|n|e|d| +0#0000000&|"| |t|a|i|l| |c|o|m@1|e|n|t| @18
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|r+0#00e0003&|e|g|i|o|n| +0#0000000&|t|e|s|t|R|e|g|i|o|n| |s+0#00e0003&|t|a|r|t|=|"+0#e000002&|s|t|a|r|t|-|p|a|t@1|e|r|n|"| +0#0000000&|s+0#00e0003&|k|i|p|=|"+0#e000002&|s|k|i|p|-|p|a|t@1|e|r|n|"| +0#0000000&|e+0#00e0003&|n|d|=|"+0#e000002&|e|n|d|-|p|a
|
||||
|t@1|e|r|n|"| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|e|d| +0#0000000&|"| |t|a|i|l| |c|o|m@1|e|n|t| @43
|
||||
@75
|
||||
|"+0#0000e05&| |M|u|l|t|i|l|i|n|e| |c|o|m@1|a|n|d|s| +0#0000000&@54
|
||||
@75
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|t|e|s|t|K|e|y|w|o|r|d| @51
|
||||
@6|"+0#0000e05&|\| |O|P|T|I|O|N|S| +0#0000000&@58
|
||||
@6|"+0#0000e05&|\| |c|o|n|c|e|a|l| |o|p|t|i|o|n| +0#0000000&@51
|
||||
@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|c|e|a|l| +0#0000000&@59
|
||||
@6|"+0#0000e05&|\| |c@1|h|a|r| |o|p|t|i|o|n| +0#0000000&@53
|
||||
@57|8|7|,|1| @9|3|2|%|
|
||||
|"+0#0000e05&| |t|a|i|l| |c|o|m@1|e|n|t|s| |a|r|e| |n|o|t| |e|x|p|l|i|c|i|t|l|y| |s|u|p@1|o|r|t|e|d| |b|y| |:|s|y|n|t|a|x|,| |s|e@1| |:|h|e|l|p| |:|c|o|m@1|e|n|t
|
||||
| +0#0000000&@56|8@1|,|1| @9|2@1|%|
|
||||
|
||||
32
runtime/syntax/testdir/dumps/vim_ex_syntax_06.dump
generated
32
runtime/syntax/testdir/dumps/vim_ex_syntax_06.dump
generated
@@ -1,20 +1,20 @@
|
||||
| +0&#ffffff0@5|"+0#0000e05&|\| |c@1|h|a|r| |o|p|t|i|o|n| +0#0000000&@53
|
||||
|"+0#0000e05#ffffff0| |t|a|i|l| |c|o|m@1|e|n|t|s| |a|r|e| |n|o|t| |e|x|p|l|i|c|i|t|l|y| |s|u|p@1|o|r|t|e|d| |b|y| |:|s|y|n|t|a|x|,| |s|e@1| |:|h|e|l|p| |:|c|o|m@1|e|n|t
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|m+0#00e0003&|a|t|c|h| +0#0000000&|t|e|s|t|M|a|t|c|h| |"+0#e000002&|p|a|t@1|e|r|n|"| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|e|d| +0#0000000&|"+0#0000e05&| |t|a|i|l| |c|o|m@1|e|n|t| +0#0000000&@20
|
||||
|"+0#0000e05&| +0#0000000&|N+0#e000e06&|O|T|E|:| +0#0000e05&|c|o|m@1|e|n|t|s| |n|o|t| |c|u|r@1|e|n|t|l|y| |s|u|p@1|o|r|t|e|d| +0#0000000&@34
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|t|e|s|t|K|e|y|w|o|r|d| |k|e|y|w|o|r|d| |c+0#e000e06&|o|n|t|a|i|n|e|d| +0#0000000&|"| |t|a|i|l| |c|o|m@1|e|n|t| @18
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|r+0#00e0003&|e|g|i|o|n| +0#0000000&|t|e|s|t|R|e|g|i|o|n| |s+0#00e0003&|t|a|r|t|=|"+0#e000002&|s|t|a|r|t|-|p|a|t@1|e|r|n|"| +0#0000000&|s+0#00e0003&|k|i|p|=|"+0#e000002&|s|k|i|p|-|p|a|t@1|e|r|n|"| +0#0000000&|e+0#00e0003&|n|d|=|"+0#e000002&|e|n|d|-|p|a
|
||||
|t@1|e|r|n|"| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|e|d| +0#0000000&|"| |t|a|i|l| |c|o|m@1|e|n|t| @43
|
||||
> @74
|
||||
|"+0#0000e05&| |M|u|l|t|i|l|i|n|e| |c|o|m@1|a|n|d|s| +0#0000000&@54
|
||||
@75
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|t|e|s|t|K|e|y|w|o|r|d| @51
|
||||
@6|"+0#0000e05&|\| |O|P|T|I|O|N|S| +0#0000000&@58
|
||||
@6|"+0#0000e05&|\| |c|o|n|c|e|a|l| |o|p|t|i|o|n| +0#0000000&@51
|
||||
@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|c|e|a|l| +0#0000000&@59
|
||||
@6|"+0#0000e05&|\| |c@1|h|a|r| |o|p|t|i|o|n| +0#0000000&@53
|
||||
@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&@1|h|a|r|=|&+0#e000002&| +0#0000000&@59
|
||||
@6|"+0#0000e05&|\| |c|o|n|t|a|i|n|e|d| |o|p|t|i|o|n| +0#0000000&@49
|
||||
@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|e|d| +0#0000000&@57
|
||||
@6|"+0#0000e05&|\| |c|o|n|t|a|i|n|e|d|i|n| |o|p|t|i|o|n| +0#0000000&@47
|
||||
@6>\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|e|d|i|n|=|t+0#0000000&|e|s|t|C|o|n|t|a|i|n|e|r| @41
|
||||
@6|"+0#0000e05&|\| |n|e|x|t|g|r|o|u|p| |o|p|t|i|o|n| +0#0000000&@49
|
||||
@6|\+0#e000e06&| +0#0000000&|n+0#e000e06&|e|x|t|g|r|o|u|p|=|t+0#0000000&|e|s|t|N|e|x|t|0|,|@|t|e|s|t|C|l|u|s|t|e|r| @34
|
||||
@6|"+0#0000e05&|\| |t|r|a|n|s|p|a|r|e|n|t| |o|p|t|i|o|n| +0#0000000&@47
|
||||
@6|\+0#e000e06&| +0#0000000&|t+0#e000e06&|r|a|n|s|p|a|r|e|n|t| +0#0000000&@55
|
||||
@6|"+0#0000e05&|\| |s|k|i|p|w|h|i|t|e| |o|p|t|i|o|n| +0#0000000&@49
|
||||
@6|\+0#e000e06&| +0#0000000&|s+0#e000e06&|k|i|p|w|h|i|t|e| +0#0000000&@57
|
||||
@6|"+0#0000e05&|\| |s|k|i|p|e|m|p|t|y| |o|p|t|i|o|n| +0#0000000&@49
|
||||
@6|\+0#e000e06&| +0#0000000&|s+0#e000e06&|k|i|p|e|m|p|t|y| +0#0000000&@57
|
||||
@6|"+0#0000e05&|\| |s|k|i|p|n|l| |o|p|t|i|o|n| +0#0000000&@52
|
||||
@6|\+0#e000e06&| +0#0000000&|s+0#e000e06&|k|i|p|n|l| +0#0000000&@60
|
||||
@6|"+0#0000e05&|\| |K|E|Y|W|O|R|D|S| |L|I|S|T| +0#0000000&@52
|
||||
@6|"+0#0000e05&|\| |k|e|y|w|o|r|d| |1| +0#0000000&@56
|
||||
@6|\+0#e000e06&| +0#0000000&|k|e|y|w|o|r|d|1| @58
|
||||
@57|1|0|4|,|7| @8|3|8|%|
|
||||
@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|e|d|i|n|=|t+0#0000001#ffff4012|e|s|t|C|o|n|t|a|i|n|e|r| +0#0000000#ffffff0@41
|
||||
@57|1|0|5|,|0|-|1| @6|2|7|%|
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user