Compare commits
133 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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 |
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:
|
||||
|
||||
14
.github/MAINTAINERS
vendored
14
.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
|
||||
|
||||
9
.github/workflows/ci.yml
vendored
9
.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]
|
||||
@@ -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'
|
||||
|
||||
|
||||
6
Filelist
6
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 = \
|
||||
|
||||
@@ -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
|
||||
|
||||
10
runtime/autoload/dist/ft.vim
vendored
10
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 Feb 24
|
||||
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
# These functions are moved here from runtime/filetype.vim to make startup
|
||||
@@ -2382,6 +2382,8 @@ const ft_from_ext = {
|
||||
# N1QL
|
||||
"n1ql": "n1ql",
|
||||
"nql": "n1ql",
|
||||
# Neon
|
||||
"neon": "neon",
|
||||
# NetLinx
|
||||
"axs": "netlinx",
|
||||
"axi": "netlinx",
|
||||
@@ -2571,6 +2573,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 +3019,9 @@ const ft_from_ext = {
|
||||
"raml": "raml",
|
||||
# YANG
|
||||
"yang": "yang",
|
||||
# YARA, YARA-X
|
||||
"yara": "yara",
|
||||
"yar": "yara",
|
||||
# Yuck
|
||||
"yuck": "yuck",
|
||||
# Zimbu
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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 @@
|
||||
*channel.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*channel.txt* For Vim version 9.2. Last change: 2026 Feb 25
|
||||
|
||||
|
||||
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
|
||||
@@ -130,6 +132,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 +145,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 +156,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 +541,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 +550,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 +632,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
|
||||
|
||||
@@ -728,14 +738,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 +1613,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:
|
||||
|
||||
@@ -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 @@
|
||||
*options.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*options.txt* For Vim version 9.2. Last change: 2026 Mar 02
|
||||
|
||||
|
||||
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.
|
||||
@@ -3593,6 +3595,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 +4810,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 +5811,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 +7353,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 +7361,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 +8531,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-%@*
|
||||
@ - Insert a line break (for the |tabpanel| or when the status line
|
||||
'statuslineopt' has a "maxheight" value greater than 1).
|
||||
|
||||
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 +8591,34 @@ 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
|
||||
{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.
|
||||
|
||||
maxheight:{n} Set the maximum status line height to {n}.
|
||||
{n} must be 1 or greater.
|
||||
If not present, 1 is used.
|
||||
Check whether {n} is applicable to all windows
|
||||
on all tab pages, and if not, set it to the
|
||||
closest possible value.
|
||||
The option value is updated to the actual
|
||||
applied value. For example, setting
|
||||
maxheight:999 may result in a smaller value
|
||||
depending on the available space.
|
||||
When {n} is set to 2 or more, you can use "@"
|
||||
in 'statusline' to display information on
|
||||
multiple lines in the status line.
|
||||
See |stl-%@|.
|
||||
|
||||
Examples: >
|
||||
:set stlo=
|
||||
:set stlo=maxheight:2
|
||||
:set stlo+=maxheight:3
|
||||
<
|
||||
*'suffixes'* *'su'*
|
||||
'suffixes' 'su' string (default ".bak,~,.o,.h,.info,.swp,.obj")
|
||||
@@ -8759,11 +8805,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 new line: >
|
||||
|
||||
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 +8823,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 "")
|
||||
@@ -9118,8 +9164,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 +10249,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 +10320,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 02
|
||||
|
||||
|
||||
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
|
||||
@@ -1016,6 +1017,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 Feb 25
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1125,8 +1125,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 +1145,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 +1468,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'*
|
||||
@@ -1333,6 +1335,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 +1354,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'*
|
||||
@@ -4759,6 +4763,7 @@ E1569 builtin.txt /*E1569*
|
||||
E157 sign.txt /*E157*
|
||||
E1570 builtin.txt /*E1570*
|
||||
E1571 builtin.txt /*E1571*
|
||||
E1572 options.txt /*E1572*
|
||||
E158 sign.txt /*E158*
|
||||
E159 sign.txt /*E159*
|
||||
E16 cmdline.txt /*E16*
|
||||
@@ -5896,6 +5901,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 +6206,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*
|
||||
@@ -6416,6 +6423,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*
|
||||
@@ -6604,6 +6612,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()*
|
||||
@@ -6986,6 +6995,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 +8854,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 +9685,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 +9779,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 +10533,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()*
|
||||
@@ -11549,6 +11564,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 +11582,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 +11612,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 +11908,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 @@
|
||||
*terminal.txt* For Vim version 9.2. Last change: 2026 Feb 14
|
||||
*terminal.txt* For Vim version 9.2. Last change: 2026 Feb 24
|
||||
|
||||
|
||||
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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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 02
|
||||
|
||||
|
||||
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,47 @@ 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").
|
||||
|
||||
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~
|
||||
-------
|
||||
|
||||
*added-9.3*
|
||||
Added ~
|
||||
-----
|
||||
Various syntax, indent and other plugins were added.
|
||||
|
||||
Autocommands: ~
|
||||
|
||||
|SessionLoadPre| before loading a |Session| file
|
||||
|
||||
Options: ~
|
||||
|
||||
'statuslineopt' Extra options for the 'statusline', e.g. use the
|
||||
"maxheight" suboption to use several lines.
|
||||
'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 @@
|
||||
*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
|
||||
@@ -125,6 +125,7 @@ when the last window also has 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 height of the status line with the 'statuslineopt' option.
|
||||
|
||||
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 +955,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' |
|
||||
@@ -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<'
|
||||
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<'
|
||||
@@ -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 02
|
||||
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
" If there already is an option window, jump to that one.
|
||||
@@ -445,6 +445,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 +493,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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -3,13 +3,15 @@
|
||||
" 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>
|
||||
" Contributor: Leonard Ehrenfried <leonard.ehrenfried@web.de>
|
||||
" Karsten Hopp <karsten@redhat.com>
|
||||
" Dean, Adam Kenneth <adam.ken.dean@hpe.com>
|
||||
" Last Change: 2022 Nov 10
|
||||
" Last Update: 2026 Feb 24
|
||||
" Added RemoteCommand from pull request #4809
|
||||
" Included additional keywords from Martin.
|
||||
" Included PR #5753
|
||||
" Update missing keywords #19488
|
||||
" SSH Version: 8.5p1
|
||||
"
|
||||
|
||||
@@ -221,6 +223,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 +251,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
|
||||
|
||||
@@ -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
Normal file
20
runtime/syntax/testdir/dumps/po_00.dump
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
Normal file
20
runtime/syntax/testdir/dumps/po_01.dump
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
Normal file
20
runtime/syntax/testdir/dumps/po_02.dump
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
Normal file
20
runtime/syntax/testdir/dumps/po_03.dump
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|
|
||||
@@ -9,7 +9,7 @@
|
||||
@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&|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&|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
|
||||
|
||||
@@ -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|
|
||||
|
||||
@@ -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|%|
|
||||
|
||||
@@ -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|%|
|
||||
|
||||
@@ -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|%|
|
||||
|
||||
@@ -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|%|
|
||||
|
||||
@@ -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|%|
|
||||
|
||||
@@ -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|%|
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
| +0&#ffffff0@5|\+0#e000e06&| +0#0000000&|k|e|y|w|o|r|d|1| @58
|
||||
| +0&#ffffff0@5|\+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
|
||||
@6|"+0#0000e05&|\| +0#0000000&|n+0#0000e05&|e|x|t|g|r|o|u|p| +0#0000000&|o+0#0000e05&|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#0000001#ffff4012|e|s|t|N|e|x|t|0|,|@|t|e|s|t|C|l|u|s|t|e|r| +0#0000000#ffffff0@34
|
||||
@6|"+0#0000e05&|\| +0#0000000&|t+0#0000e05&|r|a|n|s|p|a|r|e|n|t| +0#0000000&|o+0#0000e05&|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
|
||||
@6|"+0#0000e05&|\| |k|e|y|w|o|r|d| |2| +0#0000000&@56
|
||||
@6|\+0#e000e06&| +0#0000000&|k|e|y|w|o|r|d|2| @58
|
||||
@6|"+0#0000e05&|\| |k|e|y|w|o|r|d| |3| +0#0000000&@56
|
||||
@6|\+0#e000e06&| +0#0000000&|k|e|y|w|o|r|d|3| @58
|
||||
> @74
|
||||
|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| @55
|
||||
@6|"+0#0000e05&|\| |M|A|T|C|H| |P|A|T@1|E|R|N| +0#0000000&@52
|
||||
@6|"+0#0000e05&|\| |p|a|t@1|e|r|n| |s|t|a|r|t| +0#0000000&@52
|
||||
@6|\+0#e000e06&| +0#0000000&|/+0#e000002&| +0#0000000&@65
|
||||
| +0#e000002&@5|"+0#0000e05&|\| |p|a|r|t| |1| |d|e|s|c|r|i|p|t|i|o|n| +0#0000000&@47
|
||||
| +0#e000002&@5|\+0#e000e06&|p+0#e000002&|a|t|1|a| |.|*| |p|a|t|1|b| +0#0000000&@53
|
||||
| +0#e000002&@5|"+0#0000e05&|\| |p|a|r|t| |2| |d|e|s|c|r|i|p|t|i|o|n| +0#0000000&@47
|
||||
| +0#e000002&@5|\+0#e000e06&|p+0#e000002&|a|t|2|a| |.|*| |p|a|t|2|b| +0#0000000&@53
|
||||
| +0#e000002&@5|"+0#0000e05&|\| |p|a|r|t| |3| |d|e|s|c|r|i|p|t|i|o|n| +0#0000000&@47
|
||||
| +0#e000002&@5|\+0#e000e06&|p+0#e000002&|a|t|3|a| |.|*| |p|a|t|3|b| +0#0000000&@53
|
||||
| +0#e000002&@5|"+0#0000e05&|\| |p|a|t@1|e|r|n| |e|n|d| +0#0000000&@54
|
||||
| +0#e000002&@5|\+0#e000e06&|/+0#e000002&| +0#0000000&@66
|
||||
@6|"+0#0000e05&|\| |O|P|T|I|O|N|S| +0#0000000&@58
|
||||
@57|1|2@1|,|0|-|1| @6|4|6|%|
|
||||
@75
|
||||
@57|1|2@1|,|7| @8|3|2|%|
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
| +0&#ffffff0@5|"+0#0000e05&|\| |O|P|T|I|O|N|S| +0#0000000&@58
|
||||
| +0&#ffffff0@74
|
||||
|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| @55
|
||||
@6|"+0#0000e05&|\| |M|A|T|C|H| |P|A|T@1|E|R|N| +0#0000000&@52
|
||||
@6|"+0#0000e05&|\| |p|a|t@1|e|r|n| |s|t|a|r|t| +0#0000000&@52
|
||||
@6|\+0#e000e06&| +0#0000000&|/+0#e000002&| +0#0000000&@65
|
||||
| +0#e000002&@5>"+0#0000e05&|\| |p|a|r|t| |1| |d|e|s|c|r|i|p|t|i|o|n| +0#0000000&@47
|
||||
| +0#e000002&@5|\+0#e000e06&|p+0#e000002&|a|t|1|a| |.|*| |p|a|t|1|b| +0#0000000&@53
|
||||
| +0#e000002&@5|"+0#0000e05&|\| |p|a|r|t| |2| |d|e|s|c|r|i|p|t|i|o|n| +0#0000000&@47
|
||||
| +0#e000002&@5|\+0#e000e06&|p+0#e000002&|a|t|2|a| |.|*| |p|a|t|2|b| +0#0000000&@53
|
||||
| +0#e000002&@5|"+0#0000e05&|\| |p|a|r|t| |3| |d|e|s|c|r|i|p|t|i|o|n| +0#0000000&@47
|
||||
| +0#e000002&@5|\+0#e000e06&|p+0#e000002&|a|t|3|a| |.|*| |p|a|t|3|b| +0#0000000&@53
|
||||
| +0#e000002&@5|"+0#0000e05&|\| |p|a|t@1|e|r|n| |e|n|d| +0#0000000&@54
|
||||
| +0#e000002&@5|\+0#e000e06&|/+0#e000002&| +0#0000000&@66
|
||||
@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
|
||||
@57|1|4|0|,|7| @8|5|3|%|
|
||||
@6|"+0#0000e05&|\| |c|o|n|t|a|i|n|e|d| |o|p|t|i|o|n| +0#0000000&@49
|
||||
@57|1|4|0|,|7| @8|3|7|%|
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
| +0&#ffffff0@5|\+0#e000e06&| +0#0000000&|s+0#e000e06&|k|i|p|n|l| +0#0000000&@60
|
||||
| +0&#ffffff0@5|"+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#0000001#ffff4012|e|s|t|C|o|n|t|a|i|n|e|r| +0#0000000#ffffff0@41
|
||||
@6|"+0#0000e05&|\| +0#0000000&|n+0#0000e05&|e|x|t|g|r|o|u|p| +0#0000000&|o+0#0000e05&|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#0000001#ffff4012|e|s|t|N|e|x|t|0|,|@|t|e|s|t|C|l|u|s|t|e|r| +0#0000000#ffffff0@34
|
||||
@6|"+0#0000e05&|\| +0#0000000&|t+0#0000e05&|r|a|n|s|p|a|r|e|n|t| +0#0000000&|o+0#0000e05&|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&|\| |c|o|n|t|a|i|n|s| |o|p|t|i|o|n| +0#0000000&@50
|
||||
@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|s|=|t+0#0000000&|e|s|t|C|o|n|t|a|i|n|e|d|1|,|t|e|s|t|C|o|n|t|a|i|n|e|d|2| @28
|
||||
@6|"+0#0000e05&|\| |f|o|l|d| |o|p|t|i|o|n| +0#0000000&@54
|
||||
@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|s|=|t+0#0000001#ffff4012|e|s|t|C|o|n|t|a|i|n|e|d|1|,|t|e|s|t|C|o|n|t|a|i|n|e|d|2| +0#0000000#ffffff0@28
|
||||
@6|"+0#0000e05&|\| +0#0000000&|f+0#0000e05&|o|l|d| +0#0000000&|o+0#0000e05&|p|t|i|o|n| +0#0000000&@54
|
||||
@6|\+0#e000e06&| +0#0000000&|f+0#e000e06&|o|l|d| +0#0000000&@62
|
||||
@6>"+0#0000e05&|\| |d|i|s|p|l|a|y| |o|p|t|i|o|n| +0#0000000&@51
|
||||
@6|\+0#e000e06&| +0#0000000&|d+0#e000e06&|i|s|p|l|a|y| +0#0000000&@59
|
||||
@6|"+0#0000e05&|\| |e|x|t|e|n|d| |o|p|t|i|o|n| +0#0000000&@52
|
||||
@6|\+0#e000e06&| +0#0000000&|e+0#e000e06&|x|t|e|n|d| +0#0000000&@60
|
||||
@6|"+0#0000e05&|\| |e|x|c|l|u|d|e|n|l| |o|p|t|i|o|n| +0#0000000&@49
|
||||
@6|\+0#e000e06&| +0#0000000&|e+0#e000e06&|x|c|l|u|d|e|n|l| +0#0000000&@57
|
||||
@6|"+0#0000e05&|\| |k|e@1|p|e|n|d| |o|p|t|i|o|n| +0#0000000&@51
|
||||
@6|\+0#e000e06&| +0#0000000&|k+0#e000e06&|e@1|p|e|n|d| +0#0000000&@59
|
||||
@75
|
||||
|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| @53
|
||||
@6|"+0#0000e05&|\| |O|P|T|I|O|N|S| +0#0000000&@58
|
||||
@6|"+0#0000e05&|\| |s|t|a|r|t| |o|p|t|i|o|n| +0#0000000&@53
|
||||
@6|\+0#e000e06&| +0#0000000&|s+0#00e0003&|t|a|r|t|=|"+0#e000002&|s|t|a|r|t|-|p|a|t@1|e|r|n|"| +0#0000000&@45
|
||||
@6|"+0#0000e05&|\| |s|k|i|p| |o|p|t|i|o|n| +0#0000000&@54
|
||||
@57|1|5|8|,|7| @8|6|0|%|
|
||||
@6|"+0#0000e05&|\| |d|i|s|p|l|a|y| |o|p|t|i|o|n| +0#0000000&@51
|
||||
@57|1|5|8|,|7| @8|4|2|%|
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
| +0&#ffffff0@5|"+0#0000e05&|\| |s|k|i|p| |o|p|t|i|o|n| +0#0000000&@54
|
||||
| +0&#ffffff0@5|"+0#0000e05&|\| |d|i|s|p|l|a|y| |o|p|t|i|o|n| +0#0000000&@51
|
||||
@6|\+0#e000e06&| +0#0000000&|d+0#e000e06&|i|s|p|l|a|y| +0#0000000&@59
|
||||
@6|"+0#0000e05&|\| |e|x|t|e|n|d| |o|p|t|i|o|n| +0#0000000&@52
|
||||
@6|\+0#e000e06&| +0#0000000&|e+0#e000e06&|x|t|e|n|d| +0#0000000&@60
|
||||
@6|"+0#0000e05&|\| |e|x|c|l|u|d|e|n|l| |o|p|t|i|o|n| +0#0000000&@49
|
||||
@6>\+0#e000e06&| +0#0000000&|e+0#e000e06&|x|c|l|u|d|e|n|l| +0#0000000&@57
|
||||
@6|"+0#0000e05&|\| |k|e@1|p|e|n|d| |o|p|t|i|o|n| +0#0000000&@51
|
||||
@6|\+0#e000e06&| +0#0000000&|k+0#e000e06&|e@1|p|e|n|d| +0#0000000&@59
|
||||
@75
|
||||
|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| @53
|
||||
@6|"+0#0000e05&|\| |O|P|T|I|O|N|S| +0#0000000&@58
|
||||
@6|"+0#0000e05&|\| |s|t|a|r|t| |o|p|t|i|o|n| +0#0000000&@53
|
||||
@6|\+0#e000e06&| +0#0000000&|s+0#00e0003&|t|a|r|t|=|"+0#e000002&|s|t|a|r|t|-|p|a|t@1|e|r|n|"| +0#0000000&@45
|
||||
@6|"+0#0000e05&|\| |s|k|i|p| |o|p|t|i|o|n| +0#0000000&@54
|
||||
@6|\+0#e000e06&| +0#0000000&|s+0#00e0003&|k|i|p|=|"+0#e000002&|s|k|i|p|-|p|a|t@1|e|r|n|"| +0#0000000&@47
|
||||
@6|"+0#0000e05&|\| |e|n|d| |o|p|t|i|o|n| +0#0000000&@55
|
||||
@6|\+0#e000e06&| +0#0000000&|e+0#00e0003&|n|d|=|"+0#e000002&|e|n|d|-|p|a|t@1|e|r|n|"| +0#0000000&@49
|
||||
@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
|
||||
@57|1|7|6|,|7| @8|6|7|%|
|
||||
@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|c|e|a|l| +0#0000000&@59
|
||||
@57|1|7|6|,|7| @8|4|7|%|
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
| +0&#ffffff0@5|"+0#0000e05&|\| |s|k|i|p|e|m|p|t|y| |o|p|t|i|o|n| +0#0000000&@49
|
||||
| +0&#ffffff0@5|\+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#0000001#ffff4012|e|s|t|C|o|n|t|a|i|n|e|r| +0#0000000#ffffff0@41
|
||||
@6|"+0#0000e05&|\| +0#0000000&|n+0#0000e05&|e|x|t|g|r|o|u|p| +0#0000000&|o+0#0000e05&|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#0000001#ffff4012|e|s|t|N|e|x|t|0|,|@|t|e|s|t|C|l|u|s|t|e|r| +0#0000000#ffffff0@34
|
||||
@6|"+0#0000e05&|\| +0#0000000&|t+0#0000e05&|r|a|n|s|p|a|r|e|n|t| +0#0000000&|o+0#0000e05&|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&|\| |c|o|n|t|a|i|n|s| |o|p|t|i|o|n| +0#0000000&@50
|
||||
@6>\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|s|=|t+0#0000000&|e|s|t|C|o|n|t|a|i|n|e|d|1|,|t|e|s|t|C|o|n|t|a|i|n|e|d|2| @28
|
||||
@6|"+0#0000e05&|\| |o|n|e|l|i|n|e| |o|p|t|i|o|n| +0#0000000&@51
|
||||
@6|\+0#e000e06&| +0#0000000&|o+0#e000e06&|n|e|l|i|n|e| +0#0000000&@59
|
||||
@6|"+0#0000e05&|\| |f|o|l|d| |o|p|t|i|o|n| +0#0000000&@54
|
||||
@6|\+0#e000e06&| +0#0000000&|f+0#e000e06&|o|l|d| +0#0000000&@62
|
||||
@6|"+0#0000e05&|\| |d|i|s|p|l|a|y| |o|p|t|i|o|n| +0#0000000&@51
|
||||
@6|\+0#e000e06&| +0#0000000&|d+0#e000e06&|i|s|p|l|a|y| +0#0000000&@59
|
||||
@6|"+0#0000e05&|\| |e|x|t|e|n|d| |o|p|t|i|o|n| +0#0000000&@52
|
||||
@6|\+0#e000e06&| +0#0000000&|e+0#e000e06&|x|t|e|n|d| +0#0000000&@60
|
||||
@6|"+0#0000e05&|\| |c|o|n|c|e|a|l|e|n|d|s| |o|p|t|i|o|n| +0#0000000&@47
|
||||
@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|c|e|a|l|e|n|d|s| +0#0000000&@55
|
||||
@6|"+0#0000e05&|\| |e|x|c|l|u|d|e|n|l| |o|p|t|i|o|n| +0#0000000&@49
|
||||
@6|\+0#e000e06&| +0#0000000&|e+0#e000e06&|x|c|l|u|d|e|n|l| +0#0000000&@57
|
||||
@6|"+0#0000e05&|\| |k|e@1|p|e|n|d| |o|p|t|i|o|n| +0#0000000&@51
|
||||
@57|1|9|4|,|7| @8|7|4|%|
|
||||
@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|s|=|t+0#0000001#ffff4012|e|s|t|C|o|n|t|a|i|n|e|d|1|,|t|e|s|t|C|o|n|t|a|i|n|e|d|2| +0#0000000#ffffff0@28
|
||||
@57|1|9|4|,|7| @8|5|2|%|
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
| +0&#ffffff0@5|"+0#0000e05&|\| |k|e@1|p|e|n|d| |o|p|t|i|o|n| +0#0000000&@51
|
||||
| +0&#ffffff0@5|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|s|=|t+0#0000001#ffff4012|e|s|t|C|o|n|t|a|i|n|e|d|1|,|t|e|s|t|C|o|n|t|a|i|n|e|d|2| +0#0000000#ffffff0@28
|
||||
@6|"+0#0000e05&|\| +0#0000000&|o+0#0000e05&|n|e|l|i|n|e| +0#0000000&|o+0#0000e05&|p|t|i|o|n| +0#0000000&@51
|
||||
@6|\+0#e000e06&| +0#0000000&|o+0#e000e06&|n|e|l|i|n|e| +0#0000000&@59
|
||||
@6|"+0#0000e05&|\| |f|o|l|d| |o|p|t|i|o|n| +0#0000000&@54
|
||||
@6|\+0#e000e06&| +0#0000000&|f+0#e000e06&|o|l|d| +0#0000000&@62
|
||||
@6>"+0#0000e05&|\| |d|i|s|p|l|a|y| |o|p|t|i|o|n| +0#0000000&@51
|
||||
@6|\+0#e000e06&| +0#0000000&|d+0#e000e06&|i|s|p|l|a|y| +0#0000000&@59
|
||||
@6|"+0#0000e05&|\| |e|x|t|e|n|d| |o|p|t|i|o|n| +0#0000000&@52
|
||||
@6|\+0#e000e06&| +0#0000000&|e+0#e000e06&|x|t|e|n|d| +0#0000000&@60
|
||||
@6|"+0#0000e05&|\| |c|o|n|c|e|a|l|e|n|d|s| |o|p|t|i|o|n| +0#0000000&@47
|
||||
@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|c|e|a|l|e|n|d|s| +0#0000000&@55
|
||||
@6|"+0#0000e05&|\| |e|x|c|l|u|d|e|n|l| |o|p|t|i|o|n| +0#0000000&@49
|
||||
@6|\+0#e000e06&| +0#0000000&|e+0#e000e06&|x|c|l|u|d|e|n|l| +0#0000000&@57
|
||||
@6|"+0#0000e05&|\| |k|e@1|p|e|n|d| |o|p|t|i|o|n| +0#0000000&@51
|
||||
@6|\+0#e000e06&| +0#0000000&|k+0#e000e06&|e@1|p|e|n|d| +0#0000000&@59
|
||||
@75
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|c+0#00e0003&|l|u|s|t|e|r| +0#0000000&|t|e|s|t|C|l|u|s|t|e|r| @51
|
||||
@6|"+0#0000e05&|\| |O|P|T|I|O|N|S| +0#0000000&@58
|
||||
@6>"+0#0000e05&|\| |c|o|n|t|a|i|n|s| |o|p|t|i|o|n| +0#0000000&@50
|
||||
@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|s|=|t+0#0000000&|e|s|t|C|o|n|t|a|i|n|e|d|1|,|t|e|s|t|C|o|n|t|a|i|n|e|d|2|,|t|e|s|t|C|o|n|t|a|i|n|e|d|3| @13
|
||||
@75
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|c+0#00e0003&|l|u|s|t|e|r| +0#0000000&|t|e|s|t|C|l|u|s|t|e|r| @51
|
||||
@6|"+0#0000e05&|\| |O|P|T|I|O|N|S| +0#0000000&@58
|
||||
@6|"+0#0000e05&|\| |a|d@1| |o|p|t|i|o|n| +0#0000000&@55
|
||||
@6|\+0#e000e06&| +0#0000000&|a+0#e000e06&|d@1|=|t+0#0000000&|e|s|t|A|d@1| @55
|
||||
@6|"+0#0000e05&|\| |r|e|m|o|v|e| |o|p|t|i|o|n| +0#0000000&@52
|
||||
@6|\+0#e000e06&| +0#0000000&|r+0#e000e06&|e|m|o|v|e|=|t+0#0000000&|e|s|t|R|e|m|o|v|e| @49
|
||||
@75
|
||||
@75
|
||||
|"+0#0000e05&| |m|u|l|t|i|l|i|n|e| |g|r|o|u|p| |l|i|s|t| +0#0000000&@52
|
||||
@75
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|t|e|s|t|N|e|x|t|0| |k|e|y|w|o|r|d| @45
|
||||
@57|2|1|2|,|7| @8|8|1|%|
|
||||
@6|"+0#0000e05&|\| |c|o|n|t|a|i|n|s| |o|p|t|i|o|n| +0#0000000&@50
|
||||
@57|2|1|2|,|7| @8|5|7|%|
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
|s+0#af5f00255#ffffff0|y|n| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|t|e|s|t|N|e|x|t|0| |k|e|y|w|o|r|d| @45
|
||||
| +0&#ffffff0@5|"+0#0000e05&|\| |c|o|n|t|a|i|n|s| |o|p|t|i|o|n| +0#0000000&@50
|
||||
@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|s|=|t+0#0000001#ffff4012|e|s|t|C|o|n|t|a|i|n|e|d|1|,|t|e|s|t|C|o|n|t|a|i|n|e|d|2|,|t|e|s|t|C|o|n|t|a|i|n|e|d|3| +0#0000000#ffffff0@13
|
||||
@75
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|c+0#00e0003&|l|u|s|t|e|r| +0#0000000&|t|e|s|t|C|l|u|s|t|e|r| @51
|
||||
@6|"+0#0000e05&|\| |O|P|T|I|O|N|S| +0#0000000&@58
|
||||
@6>"+0#0000e05&|\| |a|d@1| |o|p|t|i|o|n| +0#0000000&@55
|
||||
@6|\+0#e000e06&| +0#0000000&|a+0#e000e06&|d@1|=|t+0#0000001#ffff4012|e|s|t|A|d@1| +0#0000000#ffffff0@55
|
||||
@6|"+0#0000e05&|\| +0#0000000&|r+0#0000e05&|e|m|o|v|e| +0#0000000&|o+0#0000e05&|p|t|i|o|n| +0#0000000&@52
|
||||
@6|\+0#e000e06&| +0#0000000&|r+0#e000e06&|e|m|o|v|e|=|t+0#0000001#ffff4012|e|s|t|R|e|m|o|v|e| +0#0000000#ffffff0@49
|
||||
@75
|
||||
@75
|
||||
|"+0#0000e05&| |m|u|l|t|i|l|i|n|e| |g|r|o|u|p| |l|i|s|t| +0#0000000&@52
|
||||
@75
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|t|e|s|t|N|e|x|t|0| |k|e|y|w|o|r|d| @45
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|t|e|s|t|N|e|x|t|1| |k|e|y|w|o|r|d| @45
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|t|e|s|t|N|e|x|t|2| |k|e|y|w|o|r|d| @45
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|t|e|s|t|N|e|x|t|3| |k|e|y|w|o|r|d| @45
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|t|e|s|t|N|e|x|t|4| |k|e|y|w|o|r|d| @45
|
||||
>s+0#af5f00255&|y|n| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|t|e|s|t|N|e|x|t|5| |k|e|y|w|o|r|d| @45
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|t|e|s|t|N|e|x|t|6| |k|e|y|w|o|r|d| @45
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|t|e|s|t|N|e|x|t|7| |k|e|y|w|o|r|d| @45
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|t|e|s|t|N|e|x|t|8| |k|e|y|w|o|r|d| @45
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|t|e|s|t|N|e|x|t|9| |k|e|y|w|o|r|d| @45
|
||||
@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&|\| |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|=| +0#0000000&@56
|
||||
@6|"+0#0000e05&|\| |a| |c|o|m@1|e|n|t| +0#0000000&@56
|
||||
@6|\+0#e000e06&| +0#0000000&|t|e|s|t|N|e|x|t|0| |,| |t|e|s|t|N|e|x|t|1| |,| @43
|
||||
@6|"+0#0000e05&|\| |a| |c|o|m@1|e|n|t| +0#0000000&@56
|
||||
@6|\+0#e000e06&| +0#0000000&|t|e|s|t|N|e|x|t|[|2|-|8|]|.|*| |,| @49
|
||||
@6|"+0#0000e05&|\| |a| |c|o|m@1|e|n|t| +0#0000000&@56
|
||||
@57|2|3|0|,|1| @8|8@1|%|
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|t|e|s|t|N|e|x|t|5| |k|e|y|w|o|r|d| @45
|
||||
@57|2|3|0|,|7| @8|6|2|%|
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
| +0&#ffffff0@5|"+0#0000e05&|\| |a| |c|o|m@1|e|n|t| +0#0000000&@56
|
||||
@6|\+0#e000e06&| +0#0000000&|t|e|s|t|N|e|x|t|9| |,| |@|t|e|s|t|C|l|u|s|t|e|r| |s+0#e000e06&|k|i|p|w|h|i|t|e| +0#0000000&@32
|
||||
|s+0#af5f00255#ffffff0|y|n| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|t|e|s|t|N|e|x|t|5| |k|e|y|w|o|r|d| @45
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|t|e|s|t|N|e|x|t|6| |k|e|y|w|o|r|d| @45
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|t|e|s|t|N|e|x|t|7| |k|e|y|w|o|r|d| @45
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|t|e|s|t|N|e|x|t|8| |k|e|y|w|o|r|d| @45
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|t|e|s|t|N|e|x|t|9| |k|e|y|w|o|r|d| @45
|
||||
> @74
|
||||
|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&|\| |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|=| +0#0000000&@56
|
||||
@6|"+0#0000e05&|\| +0#0000000&|a+0#0000e05&| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@56
|
||||
@6|\+0#e000e06&| +0#0000000&|t+0#0000001#ffff4012|e|s|t|N|e|x|t|0| +0#0000000#ffffff0|,| |t+0#0000001#ffff4012|e|s|t|N|e|x|t|1| +0#0000000#ffffff0|,| @43
|
||||
@6|"+0#0000e05&|\| +0#0000000&|a+0#0000e05&| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@56
|
||||
@6|\+0#e000e06&| +0#0000000&|t+0#0000001#ffff4012|e|s|t|N|e|x|t|[|2|-|8|]|.|*| +0#0000000#ffffff0|,| @49
|
||||
@6|"+0#0000e05&|\| +0#0000000&|a+0#0000e05&| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@56
|
||||
@6|\+0#e000e06&| +0#0000000&|t+0#0000001#ffff4012|e|s|t|N|e|x|t|9| +0#0000000#ffffff0|,| |@+0#0000001#ffff4012|t|e|s|t|C|l|u|s|t|e|r| +0#0000000#ffffff0|s+0#e000e06&|k|i|p|w|h|i|t|e| +0#0000000&@32
|
||||
@6|"+0#0000e05&|\| |K|E|Y|W|O|R|D|S| |L|I|S|T| +0#0000000&@52
|
||||
@6|\+0#e000e06&| +0#0000000&|k|e|y|w|o|r|d|4| @58
|
||||
@6|\+0#e000e06&| +0#0000000&|k|e|y|w|o|r|d|5| @58
|
||||
@6>\+0#e000e06&| +0#0000000&|k|e|y|w|o|r|d|6| @58
|
||||
@75
|
||||
@75
|
||||
|"+0#0000e05&| |l|e|a|k|i|n|g| |c|o|n|t|a|i|n|e|d| |g|r|o|u|p|s| +0#0000000&@48
|
||||
@75
|
||||
|"+0#0000e05&| +0#0000000&|E+0#e000e06&|x|a|m|p|l|e|:| +0#0000e05&|r|u|n|t|i|m|e|/|s|y|n|t|a|x|/|z|s|h|.|v|i|m| +0#0000000&@41
|
||||
|"+0#0000e05&| @2|"+0#e000002&|c|l|u|s|t|e|r|"| +0#0000e05&|s|h|o|u|l|d| |n|o|t| |b|e| |h|i|g|h|l|i|g|h|t|e|d| |o|u|t|s|i|d|e| |o|f| |:|s|y|n|t|a|x| |c|o|m@1|a|n|d|s| +0#0000000&@7
|
||||
@75
|
||||
|f+0#af5f00255&|u|n|c|t|i|o|n|!| +0#0000000&|s+0#e000e06&|:|C+0#0000000&|o|n|t|a|i|n|e|d|G|r|o|u|p|(+0#e000e06&|)| +0#0000000&@46
|
||||
@2|"+0#0000e05&| |.@2| +0#0000000&@67
|
||||
@2|f+0#af5f00255&|o|r| +0#0000000&|c+0#00e0e07&|l|u|s|t|e|r| +0#0000000&|i+0#af5f00255&|n| +0#0000000&|[+0#e000e06&|'+0#e000002&|m|a|r|k|d|o|w|n|H|i|g|h|l|i|g|h|t|_|z|s|h|'|,+0#0000000&| |'+0#e000002&|z|s|h|'|]+0#e000e06&| +0#0000000&@25
|
||||
@4|"+0#0000e05&| |.@2| +0#0000000&@65
|
||||
@2|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@66
|
||||
@2|"+0#0000e05&| |.@2| +0#0000000&@67
|
||||
@57|2|4|8|,|7| @8|9|6|%|
|
||||
@6|\+0#e000e06&| +0#0000000&|k|e|y|w|o|r|d|6| @58
|
||||
@57|2|4|8|,|0|-|1| @6|6|7|%|
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
| +0&#ffffff0@1|"+0#0000e05&| |.@2| +0#0000000&@67
|
||||
|e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@63
|
||||
| +0&#ffffff0@5|\+0#e000e06&| +0#0000000&|k|e|y|w|o|r|d|6| @58
|
||||
@75
|
||||
|"+0#0000e05&| |e|a|r|l|y| |t|e|r|m|i|n|a|t|i|o|n| |o|f| |v|i|m|S|y|n|R|e|g|i|o|n| +0#0000000&@39
|
||||
@75
|
||||
>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| @53
|
||||
@6|"+0#0000e05&|\| ||| |d|o|e|s| |n|o|t| |e|n|d| |t|h|e| |a|r|g|s| |r|e|g|i|o|n| +0#0000000&@35
|
||||
@6|"+0#0000e05&|\| |s|t|a|r|t|=|"|f|o@1|\|||b|a|r|"| +0#0000000&@49
|
||||
@6|\+0#e000e06&| +0#0000000&|s+0#00e0003&|t|a|r|t|=|"+0#e000002&|s|t|a|r|t|"| +0#0000000&@53
|
||||
@6|\+0#e000e06&| +0#0000000&|e+0#00e0003&|n|d|=|"+0#e000002&|e|n|d|"| +0#0000000&@57
|
||||
@75
|
||||
|~+0#4040ff13&| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
| +0#0000000&@56|2|6@1|,|1| @8|B|o|t|
|
||||
|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&|\| |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|=| +0#0000000&|t+0#0000001#ffff4012|e|s|t|N|e|x|t|0|,+0#0000000#ffffff0| @45
|
||||
@6>"+0#0000e05&|\| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@58
|
||||
@6|\+0#e000e06&| +0#0000000&|,| |t+0#0000001#ffff4012|e|s|t|N|e|x|t|1| +0#0000000#ffffff0@55
|
||||
@6|"+0#0000e05&|\| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@58
|
||||
@6|\+0#e000e06&|,+0#0000000&| |t+0#0000001#ffff4012|e|s|t|N|e|x|t|2| +0#0000000#ffffff0@56
|
||||
@6|"+0#0000e05&|\| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@58
|
||||
@6|\+0#e000e06&| +0#0000000&|,|t+0#0000001#ffff4012|e|x|t|N|e|x|t|3| +0#0000000#ffffff0@56
|
||||
@6|"+0#0000e05&|\| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@58
|
||||
@6|\+0#e000e06&|,+0#0000001#ffff4012|t|e|x|t|N|e|x|t|4| +0#0000000#ffffff0@57
|
||||
@6|"+0#0000e05&|\| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@58
|
||||
@6|\+0#e000e06&| +0#0000000&|,| |t+0#0000001#ffff4012|e|x|t|N|e|x|t|5| +0#0000000#ffffff0|,| @53
|
||||
@6|"+0#0000e05&|\| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@58
|
||||
@6|\+0#e000e06&| +0#0000000&|t+0#0000001#ffff4012|e|x|t|N|e|x|t|6|,+0#0000000#ffffff0| @56
|
||||
@6|"+0#0000e05&|\| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@58
|
||||
@6|\+0#e000e06&| +0#0000000&|t+0#0000001#ffff4012|e|x|t|N|e|x|t|7| +0#0000000#ffffff0|,| @55
|
||||
@57|2|6@1|,|7| @8|7|2|%|
|
||||
|
||||
20
runtime/syntax/testdir/dumps/vim_ex_syntax_16.dump
Normal file
20
runtime/syntax/testdir/dumps/vim_ex_syntax_16.dump
Normal file
@@ -0,0 +1,20 @@
|
||||
| +0&#ffffff0@5|\+0#e000e06&| +0#0000000&|t+0#0000001#ffff4012|e|x|t|N|e|x|t|7| +0#0000000#ffffff0|,| @55
|
||||
@6|"+0#0000e05&|\| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@58
|
||||
@6|\+0#e000e06&|t+0#0000001#ffff4012|e|x|t|N|e|x|t|8|,+0#0000000#ffffff0| @57
|
||||
@6|"+0#0000e05&|\| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@58
|
||||
@6|\+0#e000e06&|t+0#0000001#ffff4012|e|x|t|N|e|x|t|9| +0#0000000#ffffff0|,| @56
|
||||
@6>"+0#0000e05&|\| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@58
|
||||
@6|\+0#e000e06&| +0#0000000&|t+0#0000001#ffff4012|e|x|t|N|e|x|t|1|0| +0#0000000#ffffff0@56
|
||||
@6|"+0#0000e05&|\| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@58
|
||||
@6|\+0#e000e06&| +0#0000000&|,|t+0#0000001#ffff4012|e|x|t|N|e|x|t|1@1|,+0#0000000#ffffff0| @54
|
||||
@6|"+0#0000e05&|\| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@58
|
||||
@6|\+0#e000e06&| +0#0000000&|t+0#0000001#ffff4012|e|x|t|N|e|x|t|1|2|,|t|e|x|t|N|e|x|t|1|3|,+0#0000000#ffffff0| @44
|
||||
@6|"+0#0000e05&|\| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@58
|
||||
@6|\+0#e000e06&| +0#0000000&|t+0#0000001#ffff4012|e|x|t|N|e|x|t|1|3|,|t|e|x|t|N|e|x|t|1|4| +0#0000000#ffffff0@45
|
||||
@6|"+0#0000e05&|\| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@58
|
||||
@6|\+0#e000e06&| +0#0000000&|,|t+0#0000001#ffff4012|e|x|t|N|e|x|t|1|5|,|t|e|x|t|N|e|x|t|1|6| +0#0000000#ffffff0@44
|
||||
@6|"+0#0000e05&|\| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@58
|
||||
@6|\+0#e000e06&| +0#0000000&|,| |t+0#0000001#ffff4012|e|x|t|N|e|x|t|1|7| +0#0000000#ffffff0|,| |t+0#0000001#ffff4012|e|x|t|N|e|x|t|1|8| +0#0000000#ffffff0|,| @39
|
||||
@6|"+0#0000e05&|\| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@58
|
||||
@6|\+0#e000e06&| +0#0000000&|t+0#0000001#ffff4012|e|x|t|N|e|x|t|1|9|,+0#0000000#ffffff0| |@+0#0000001#ffff4012|t|e|s|t|C|l|u|s|t|e|r| +0#0000000#ffffff0@42
|
||||
@57|2|8|4|,|7| @8|7@1|%|
|
||||
20
runtime/syntax/testdir/dumps/vim_ex_syntax_17.dump
Normal file
20
runtime/syntax/testdir/dumps/vim_ex_syntax_17.dump
Normal file
@@ -0,0 +1,20 @@
|
||||
| +0&#ffffff0@5|\+0#e000e06&| +0#0000000&|t+0#0000001#ffff4012|e|x|t|N|e|x|t|1|9|,+0#0000000#ffffff0| |@+0#0000001#ffff4012|t|e|s|t|C|l|u|s|t|e|r| +0#0000000#ffffff0@42
|
||||
@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
|
||||
@6>"+0#0000e05&|\| |k|e|y|w|o|r|d| |2| +0#0000000&@56
|
||||
@6|\+0#e000e06&| +0#0000000&|k|e|y|w|o|r|d|2| @58
|
||||
@6|"+0#0000e05&|\| |k|e|y|w|o|r|d| |3| +0#0000000&@56
|
||||
@6|\+0#e000e06&| +0#0000000&|k|e|y|w|o|r|d|3| @58
|
||||
@75
|
||||
@75
|
||||
|"+0#0000e05&| |l|e|a|k|i|n|g| |c|o|n|t|a|i|n|e|d| |g|r|o|u|p|s| +0#0000000&@48
|
||||
@75
|
||||
|"+0#0000e05&| +0#0000000&|E+0#e000e06&|x|a|m|p|l|e|:| +0#0000e05&|r|u|n|t|i|m|e|/|s|y|n|t|a|x|/|z|s|h|.|v|i|m| +0#0000000&@41
|
||||
|"+0#0000e05&| @2|"+0#e000002&|c|l|u|s|t|e|r|"| +0#0000e05&|s|h|o|u|l|d| |n|o|t| |b|e| |h|i|g|h|l|i|g|h|t|e|d| |o|u|t|s|i|d|e| |o|f| |:|s|y|n|t|a|x| |c|o|m@1|a|n|d|s| +0#0000000&@7
|
||||
@75
|
||||
|f+0#af5f00255&|u|n|c|t|i|o|n|!| +0#0000000&|s+0#e000e06&|:|C+0#0000000&|o|n|t|a|i|n|e|d|G|r|o|u|p|(+0#e000e06&|)| +0#0000000&@46
|
||||
@2|"+0#0000e05&| |.@2| +0#0000000&@67
|
||||
@2|f+0#af5f00255&|o|r| +0#0000000&|c+0#00e0e07&|l|u|s|t|e|r| +0#0000000&|i+0#af5f00255&|n| +0#0000000&|[+0#e000e06&|'+0#e000002&|m|a|r|k|d|o|w|n|H|i|g|h|l|i|g|h|t|_|z|s|h|'|,+0#0000000&| |'+0#e000002&|z|s|h|'|]+0#e000e06&| +0#0000000&@25
|
||||
@57|3|0|2|,|7| @8|8|2|%|
|
||||
20
runtime/syntax/testdir/dumps/vim_ex_syntax_18.dump
Normal file
20
runtime/syntax/testdir/dumps/vim_ex_syntax_18.dump
Normal file
@@ -0,0 +1,20 @@
|
||||
| +0&#ffffff0@1|f+0#af5f00255&|o|r| +0#0000000&|c+0#00e0e07&|l|u|s|t|e|r| +0#0000000&|i+0#af5f00255&|n| +0#0000000&|[+0#e000e06&|'+0#e000002&|m|a|r|k|d|o|w|n|H|i|g|h|l|i|g|h|t|_|z|s|h|'|,+0#0000000&| |'+0#e000002&|z|s|h|'|]+0#e000e06&| +0#0000000&@25
|
||||
@4|"+0#0000e05&| |.@2| +0#0000000&@65
|
||||
@2|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@66
|
||||
@2|"+0#0000e05&| |.@2| +0#0000000&@67
|
||||
|e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@63
|
||||
> @74
|
||||
@75
|
||||
|"+0#0000e05&| |e|a|r|l|y| |t|e|r|m|i|n|a|t|i|o|n| |o|f| |v|i|m|S|y|n|R|e|g|i|o|n| +0#0000000&@39
|
||||
@75
|
||||
|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| @53
|
||||
@6|"+0#0000e05&|\| ||| |d|o|e|s| |n|o|t| |e|n|d| |t|h|e| |a|r|g|s| |r|e|g|i|o|n| +0#0000000&@35
|
||||
@6|"+0#0000e05&|\| |s|t|a|r|t|=|"|f|o@1|\|||b|a|r|"| +0#0000000&@49
|
||||
@6|\+0#e000e06&| +0#0000000&|s+0#00e0003&|t|a|r|t|=|"+0#e000002&|s|t|a|r|t|"| +0#0000000&@53
|
||||
@6|\+0#e000e06&| +0#0000000&|e+0#00e0003&|n|d|=|"+0#e000002&|e|n|d|"| +0#0000000&@57
|
||||
@75
|
||||
@75
|
||||
|"+0#0000e05&| |I|s@1|u|e| |#|1|8|4|9|1| |(|T|w|o| |"+0#e000002&|)|"|s+0#0000e05&| |a|r|e| |i|n|c|o|r@1|e|c|t|l|y| |c|o|l|o|r|e|d| |'|v|i|m|O|p|e|r|E|r@1|o|r|'| |i|n| |s|y|n|t|a|x|/|m
|
||||
|a|i|l|.|v|i|m|)| +0#0000000&@66
|
||||
@75
|
||||
@57|3|2|0|,|0|-|1| @6|8|7|%|
|
||||
20
runtime/syntax/testdir/dumps/vim_ex_syntax_19.dump
Normal file
20
runtime/syntax/testdir/dumps/vim_ex_syntax_19.dump
Normal file
@@ -0,0 +1,20 @@
|
||||
| +0&#ffffff0@74
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|m+0#00e0003&|a|t|c|h| +0#0000000&@6|m|a|i|l|H|e|a|d|e|r|K|e|y| @2|c+0#e000e06&|o|n|t|a|i|n|e|d| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|s|=|m+0#0000001#ffff4012|a|i|l|H|e|a|d|e|r|E|m|a|i|l|,|m|a|i|l|E|m|a|i
|
||||
|l|,|@|N|o|S|p|e|l@1| +0#0000000#ffffff0|"+0#e000002&|\|v|(|^|(|\|>| |?|)|*|)|@|<|=|(|f|r|o|m|||r|e|p|l|y|-|t|o|)|:|.|*|$|"| +0#0000000&|f+0#e000e06&|o|l|d| +0#0000000&@22
|
||||
@75
|
||||
@75
|
||||
>"+0#0000e05&| |I|s@1|u|e| |#|1|9|3|6@1| |(|h|i|g|h|l|i|g|h|t| |e|r@1|o|r| |f|o|r| |c|o|n|t|a|i|n|s| |e|l|e|m|e|n|t|s| |i|n| |a| |n|e|w| |l|i|n|e|)| +0#0000000&@6
|
||||
|"+0#0000e05&| |s|y|n|t|a|x|/|t|y|p|s|t|.|v|i|m| +0#0000000&@56
|
||||
@75
|
||||
|"+0#0000e05&| |C|o|d|e| |{@2|1| +0#0000000&@63
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|c+0#00e0003&|l|u|s|t|e|r| +0#0000000&|t|y|p|s|t|C|o|d|e| @50
|
||||
@4|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|s|=|@+0#0000001#ffff4012|t|y|p|s|t|C|o|m@1|o|n| +0#0000000#ffffff0@47
|
||||
@12|\+0#e000e06&| +0#0000000&|,|@+0#0000001#ffff4012|t|y|p|s|t|C|o|d|e|K|e|y|w|o|r|d|s| +0#0000000#ffffff0@41
|
||||
@12|\+0#e000e06&| +0#0000000&|,|@+0#0000001#ffff4012|t|y|p|s|t|C|o|d|e|C|o|n|s|t|a|n|t|s| +0#0000000#ffffff0@40
|
||||
@12|\+0#e000e06&| +0#0000000&|,|@+0#0000001#ffff4012|t|y|p|s|t|C|o|d|e|I|d|e|n|t|i|f|i|e|r|s| +0#0000000#ffffff0@38
|
||||
@12|\+0#e000e06&| +0#0000000&|,|@+0#0000001#ffff4012|t|y|p|s|t|C|o|d|e|F|u|n|c|t|i|o|n|s| +0#0000000#ffffff0@40
|
||||
@12|\+0#e000e06&| +0#0000000&|,|@+0#0000001#ffff4012|t|y|p|s|t|C|o|d|e|P|a|r|e|n|s| +0#0000000#ffffff0@43
|
||||
@75
|
||||
|"+0#0000e05&| |C|o|d|e| |>| |K|e|y|w|o|r|d|s| |{@2|2| +0#0000000&@52
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|c+0#00e0003&|l|u|s|t|e|r| +0#0000000&|t|y|p|s|t|C|o|d|e|K|e|y|w|o|r|d|s| @42
|
||||
@57|3@1|6|,|1| @8|9|2|%|
|
||||
20
runtime/syntax/testdir/dumps/vim_ex_syntax_20.dump
Normal file
20
runtime/syntax/testdir/dumps/vim_ex_syntax_20.dump
Normal file
@@ -0,0 +1,20 @@
|
||||
|s+0#af5f00255#ffffff0|y|n|t|a|x| +0#0000000&|c+0#00e0003&|l|u|s|t|e|r| +0#0000000&|t|y|p|s|t|C|o|d|e|K|e|y|w|o|r|d|s| @42
|
||||
@4|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|s|=|t+0#0000001#ffff4012|y|p|s|t|C|o|d|e|C|o|n|d|i|t|i|o|n|a|l| +0#0000000#ffffff0@39
|
||||
@12|\+0#e000e06&| +0#0000000&|,|t+0#0000001#ffff4012|y|p|s|t|C|o|d|e|R|e|p|e|a|t| +0#0000000#ffffff0@44
|
||||
@12|\+0#e000e06&| +0#0000000&|,|t+0#0000001#ffff4012|y|p|s|t|C|o|d|e|K|e|y|w|o|r|d| +0#0000000#ffffff0@43
|
||||
@12|\+0#e000e06&| +0#0000000&|,|t+0#0000001#ffff4012|y|p|s|t|C|o|d|e|S|t|a|t|e|m|e|n|t| +0#0000000#ffffff0@41
|
||||
> @74
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|c+0#00e0003&|l|u|s|t|e|r| +0#0000000&|t|y|p|s|t|C|o|d|e|K|e|y|w|o|r|d|s| @42
|
||||
@4|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|s|=| +0#0000000&@59
|
||||
@12|"+0#0000e05&|\| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@52
|
||||
@12|\+0#e000e06&| +0#0000000&@1|t+0#0000001#ffff4012|y|p|s|t|C|o|d|e|C|o|n|d|i|t|i|o|n|a|l| +0#0000000#ffffff0@39
|
||||
@12|\+0#e000e06&| +0#0000000&|,|t+0#0000001#ffff4012|y|p|s|t|C|o|d|e|R|e|p|e|a|t| +0#0000000#ffffff0@44
|
||||
@12|\+0#e000e06&| +0#0000000&|,|t+0#0000001#ffff4012|y|p|s|t|C|o|d|e|K|e|y|w|o|r|d| +0#0000000#ffffff0@43
|
||||
@12|\+0#e000e06&| +0#0000000&|,|t+0#0000001#ffff4012|y|p|s|t|C|o|d|e|S|t|a|t|e|m|e|n|t| +0#0000000#ffffff0@41
|
||||
@75
|
||||
@75
|
||||
|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|c+0#00e0003&|l|u|s|t|e|r| +0#0000000&|t|y|p|s|t|C|o|d|e|K|e|y|w|o|r|d|s| @42
|
||||
@4|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|s|=| +0#0000000&@59
|
||||
@12|"+0#0000e05&|\| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@52
|
||||
@12|\+0#e000e06&| +0#0000000&@1|t+0#0000001#ffff4012|y|p|s|t|C|o|d|e|C|o|n|d|i|t|i|o|n|a|l| +0#0000000#ffffff0@39
|
||||
@57|3|5|4|,|0|-|1| @6|9|7|%|
|
||||
20
runtime/syntax/testdir/dumps/vim_ex_syntax_21.dump
Normal file
20
runtime/syntax/testdir/dumps/vim_ex_syntax_21.dump
Normal file
@@ -0,0 +1,20 @@
|
||||
| +0&#ffffff0@11|\+0#e000e06&| +0#0000000&@1|t+0#0000001#ffff4012|y|p|s|t|C|o|d|e|C|o|n|d|i|t|i|o|n|a|l| +0#0000000#ffffff0@39
|
||||
@12|\+0#e000e06&| +0#0000000&|,|t+0#0000001#ffff4012|y|p|s|t|C|o|d|e|R|e|p|e|a|t| +0#0000000#ffffff0@44
|
||||
@12|\+0#e000e06&| +0#0000000&|,|t+0#0000001#ffff4012|y|p|s|t|C|o|d|e|K|e|y|w|o|r|d| +0#0000000#ffffff0@43
|
||||
@12|\+0#e000e06&| +0#0000000&|,|t+0#0000001#ffff4012|y|p|s|t|C|o|d|e|S|t|a|t|e|m|e|n|t| +0#0000000#ffffff0@41
|
||||
@75
|
||||
> @74
|
||||
|"+0#0000e05&| |E|x|a|m|p|l|e|s| |f|r|o|m| |d|i|s|t|r|i|b|u|t|e|d| |s|y|n|t|a|x| |f|i|l|e|s| +0#0000000&@34
|
||||
@75
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|m+0#00e0003&|a|t|c|h| +0#0000000&@2|s|l|r|n|r|c|C|o|l|o|r|I|n|i|t| @4|c+0#e000e06&|o|n|t|a|i|n|e|d| +0#0000000&|"+0#e000002&|^|\|s|*|c|o|l|o|r|\|s|\|+|\|S|\|+|"| +0#0000000&|s+0#e000e06&|k|i|p|w|h|i|t|e| +0#0000000&|n+0#e000e06&|e|x
|
||||
|t|g|r|o|u|p|=|s+0#0000001#ffff4012|l|r|n|r|c|C|o|l|o|r|V|a|l|\|(|S|t|r|\|)|\|=| +0#0000000#ffffff0|c+0#e000e06&|o|n|t|a|i|n|s|=|s+0#0000001#ffff4012|l|r|n|r|c|C|o|l|o|r|\|(|O|b|j|\|||O|b|j|S|t|r|\|)|\|=| +0#0000000#ffffff0@6
|
||||
|s+0#af5f00255&|y|n| +0#0000000&|r+0#00e0003&|e|g|i|o|n| +0#0000000&@1|s|l|r|n|r|c|C|m|d|L|i|n|e| @6|m+0#e000e06&|a|t|c|h|g|r|o|u|p|=|s+0#0000000&|l|r|n|r|c|C|m|d| |s+0#00e0003&|t|a|r|t|=|"+0#e000002&|\|<|\+0#e000e06&|(|a+0#e000002&|u|t|o|b|a|u|d|\+0#e000e06&|||.+0#e000002&
|
||||
@2|\+0#e000e06&|||v+0#e000002&|i|s|i|b|l|e|_|h|e|a|d|e|r|s|\+0#e000e06&|)|\+0#e000002&|>|"| +0#0000000&|e+0#00e0003&|n|d|=|"+0#e000002&|$|"| +0#0000000&|o+0#e000e06&|n|e|l|i|n|e| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|s|=|s+0#0000001#ffff4012|l|r|n|r|c|\|(|S|t|r|i|n|g|\|||C|o|m@1|e|n|t|\|)
|
||||
| +0#0000000#ffffff0@74
|
||||
|~+0#4040ff13&| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
| +0#0000000&@56|3|7|2|,|0|-|1| @6|B|o|t|
|
||||
@@ -1,5 +1,5 @@
|
||||
|e+0#af5f00255#ffffff0|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&|w+0#0000000&|i|n|b|l|e|n|d| @60
|
||||
@75
|
||||
|e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@63
|
||||
> @74
|
||||
|
||||
@@ -16,5 +16,5 @@
|
||||
@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&|w+0#0000000&|i|n|b|l|e|n|d| @60
|
||||
@57|3|9|7|,|1| @8|9@1|%|
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|e+0#af5f00255#ffffff0|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#ffffff0|c|h|o| +0#0000000&|&+0#00e0e07&|w+0#0000000&|i|n|b|l|e|n|d| @60
|
||||
> @74
|
||||
|~+0#4040ff13&| @73
|
||||
|~| @73
|
||||
|
||||
51
runtime/syntax/testdir/input/po.po
Normal file
51
runtime/syntax/testdir/input/po.po
Normal file
@@ -0,0 +1,51 @@
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: 2026-03-02 13:23+0900\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
|
||||
"X-Generator: ManuallyGenerated\n"
|
||||
|
||||
#: path/to/file.c:123
|
||||
#, fuzzy, c-format
|
||||
#| msgid "Hi, %s.\n"
|
||||
msgid "Hello, %s.\n"
|
||||
msgstr ""
|
||||
"Hi, %s.\n"
|
||||
|
||||
#: path/to/file.py:123
|
||||
#, python-format
|
||||
msgid "%(num) word"
|
||||
msgid_plural "%(num) words"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#. comment for translator
|
||||
#: path/to/file.cpp:234
|
||||
#: path/to/file.cpp:256
|
||||
#, qt-format
|
||||
msgctxt "%1 is a variable"
|
||||
msgid "value of %1:\t%L2"
|
||||
msgstr ""
|
||||
|
||||
#: path/to/file.rs:123
|
||||
#, rust-format
|
||||
msgid "Hello, \"{:?}\"."
|
||||
msgstr "Hallo, »{:?}«."
|
||||
|
||||
#= no-wrap
|
||||
msgid "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
|
||||
msgstr "いろはにほへと"
|
||||
|
||||
# outdated entries
|
||||
#~ msgid "foo"
|
||||
#~ msgstr "foo"
|
||||
0
runtime/syntax/testdir/input/sh_mksh_gibberish.ksh
Executable file → Normal file
0
runtime/syntax/testdir/input/sh_mksh_gibberish.ksh
Executable file → Normal file
@@ -220,7 +220,7 @@ echo v:lua v:msgpack_types v:relnum v:stderr v:termrequest v:virtnum
|
||||
|
||||
echo &channel &inccommand &mousescroll &pumblend &redrawdebug &scrollback
|
||||
echo &shada &shadafile &statuscolumn &termpastefilter &termsync &winbar
|
||||
echo &winblend &winhighlight
|
||||
echo &winblend
|
||||
|
||||
enddef
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
" Vim :syntax command
|
||||
" VIM_TEST_SETUP hi link vimGroupList Todo
|
||||
|
||||
|
||||
" :syn-case
|
||||
@@ -7,6 +8,13 @@ syntax case
|
||||
syntax case match
|
||||
syntax case ignore
|
||||
|
||||
" :syn clear
|
||||
|
||||
syntax clear @testCluster
|
||||
syntax clear testGroup
|
||||
syntax clear @testCluster testGroup
|
||||
syntax clear testGroup @testCluster
|
||||
|
||||
" :syn-conceal
|
||||
|
||||
syntax conceal
|
||||
@@ -19,6 +27,11 @@ syntax foldlevel
|
||||
syntax foldlevel start
|
||||
syntax foldlevel minimum
|
||||
|
||||
" :syn-include
|
||||
|
||||
syntax include @Foo <sfile>:p:h/foo.vim
|
||||
syntax include <sfile>:p:h/foo.vim
|
||||
|
||||
" :syn-iskeyword
|
||||
|
||||
syntax iskeyword
|
||||
@@ -247,6 +260,50 @@ syn keyword testKeyword
|
||||
\ keyword5
|
||||
\ keyword6
|
||||
|
||||
syn keyword testKeyword
|
||||
"\ nextgroup option
|
||||
\ nextgroup= testNext0,
|
||||
"\ comment
|
||||
\ , testNext1
|
||||
"\ comment
|
||||
\, testNext2
|
||||
"\ comment
|
||||
\ ,textNext3
|
||||
"\ comment
|
||||
\,textNext4
|
||||
"\ comment
|
||||
\ , textNext5 ,
|
||||
"\ comment
|
||||
\ textNext6,
|
||||
"\ comment
|
||||
\ textNext7 ,
|
||||
"\ comment
|
||||
\textNext8,
|
||||
"\ comment
|
||||
\textNext9 ,
|
||||
"\ comment
|
||||
\ textNext10
|
||||
"\ comment
|
||||
\ ,textNext11,
|
||||
"\ comment
|
||||
\ textNext12,textNext13,
|
||||
"\ comment
|
||||
\ textNext13,textNext14
|
||||
"\ comment
|
||||
\ ,textNext15,textNext16
|
||||
"\ comment
|
||||
\ , textNext17 , textNext18 ,
|
||||
"\ comment
|
||||
\ textNext19, @testCluster
|
||||
\ skipnl
|
||||
"\ KEYWORDS LIST
|
||||
"\ keyword 1
|
||||
\ keyword1
|
||||
"\ keyword 2
|
||||
\ keyword2
|
||||
"\ keyword 3
|
||||
\ keyword3
|
||||
|
||||
|
||||
" leaking contained groups
|
||||
|
||||
@@ -261,6 +318,7 @@ function! s:ContainedGroup()
|
||||
" ...
|
||||
endfunction
|
||||
|
||||
|
||||
" early termination of vimSynRegion
|
||||
|
||||
syn region testRegion
|
||||
@@ -269,3 +327,51 @@ syn region testRegion
|
||||
\ start="start"
|
||||
\ end="end"
|
||||
|
||||
|
||||
" Issue #18491 (Two ")"s are incorrectly colored 'vimOperError' in syntax/mail.vim)
|
||||
|
||||
syn match mailHeaderKey contained contains=mailHeaderEmail,mailEmail,@NoSpell "\v(^(\> ?)*)@<=(from|reply-to):.*$" fold
|
||||
|
||||
|
||||
" Issue #19366 (highlight error for contains elements in a new line)
|
||||
" syntax/typst.vim
|
||||
|
||||
" Code {{{1
|
||||
syntax cluster typstCode
|
||||
\ contains=@typstCommon
|
||||
\ ,@typstCodeKeywords
|
||||
\ ,@typstCodeConstants
|
||||
\ ,@typstCodeIdentifiers
|
||||
\ ,@typstCodeFunctions
|
||||
\ ,@typstCodeParens
|
||||
|
||||
" Code > Keywords {{{2
|
||||
syntax cluster typstCodeKeywords
|
||||
\ contains=typstCodeConditional
|
||||
\ ,typstCodeRepeat
|
||||
\ ,typstCodeKeyword
|
||||
\ ,typstCodeStatement
|
||||
|
||||
syntax cluster typstCodeKeywords
|
||||
\ contains=
|
||||
"\ comment
|
||||
\ typstCodeConditional
|
||||
\ ,typstCodeRepeat
|
||||
\ ,typstCodeKeyword
|
||||
\ ,typstCodeStatement
|
||||
|
||||
|
||||
syntax cluster typstCodeKeywords
|
||||
\ contains=
|
||||
"\ comment
|
||||
\ typstCodeConditional
|
||||
\ ,typstCodeRepeat
|
||||
\ ,typstCodeKeyword
|
||||
\ ,typstCodeStatement
|
||||
|
||||
|
||||
" Examples from distributed syntax files
|
||||
|
||||
syn match slrnrcColorInit contained "^\s*color\s\+\S\+" skipwhite nextgroup=slrnrcColorVal\(Str\)\= contains=slrnrcColor\(Obj\|ObjStr\)\=
|
||||
syn region slrnrcCmdLine matchgroup=slrnrcCmd start="\<\(autobaud\|...\|visible_headers\)\>" end="$" oneline contains=slrnrc\(String\|Comment\)
|
||||
|
||||
|
||||
@@ -408,7 +408,7 @@ echo v:lua v:msgpack_types v:relnum v:stderr v:termrequest v:virtnum
|
||||
|
||||
echo &channel &inccommand &mousescroll &pumblend &redrawdebug &scrollback
|
||||
echo &shada &shadafile &statuscolumn &termpastefilter &termsync &winbar
|
||||
echo &winblend &winhighlight
|
||||
echo &winblend
|
||||
|
||||
endfunction
|
||||
|
||||
|
||||
@@ -407,5 +407,5 @@ echo v:lua v:msgpack_types v:relnum v:stderr v:termrequest v:virtnum
|
||||
|
||||
echo &channel &inccommand &mousescroll &pumblend &redrawdebug &scrollback
|
||||
echo &shada &shadafile &statuscolumn &termpastefilter &termsync &winbar
|
||||
echo &winblend &winhighlight
|
||||
echo &winblend
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" Language: Vim script
|
||||
" Maintainer: Hirohito Higashi <h.east.727 ATMARK gmail.com>
|
||||
" Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2026 Feb 13
|
||||
" Last Change: 2026 Mar 02
|
||||
" Former Maintainer: Charles E. Campbell
|
||||
|
||||
" DO NOT CHANGE DIRECTLY.
|
||||
@@ -70,9 +70,9 @@ syn keyword vimOption contained efm errorformat ek esckeys ei eventignore eiw ev
|
||||
syn keyword vimOption contained hi history hk hkmap hkp hkmapp hls hlsearch icon iconstring ic ignorecase imaf imactivatefunc imak imactivatekey imc imcmdline imd imdisable imi iminsert ims imsearch imsf imstatusfunc imst imstyle inc include inex includeexpr is incsearch inde indentexpr indk indentkeys inf infercase im insertmode isf isfname isi isident isk iskeyword isp isprint js joinspaces jop jumpoptions key kmp keymap km keymodel kpc keyprotocol kp keywordprg lmap langmap lm langmenu lnr langnoremap lrm langremap ls laststatus lz lazyredraw lhi lhistory lbr linebreak lines lsp linespace lisp lop lispoptions lw lispwords list lcs listchars lpl loadplugins luadll magic mef makeef menc makeencoding mp makeprg mps matchpairs mat matchtime mco maxcombine mfd maxfuncdepth skipwhite nextgroup=vimSetEqual,vimSetMod
|
||||
syn keyword vimOption contained mmd maxmapdepth mm maxmem mmp maxmempattern mmt maxmemtot msc maxsearchcount mis menuitems mopt messagesopt msm mkspellmem ml modeline mle modelineexpr mls modelines ma modifiable mod modified more mouse mousef mousefocus mh mousehide mousem mousemodel mousemev mousemoveevent mouses mouseshape mouset mousetime mzq mzquantum mzschemedll mzschemegcdll nf nrformats nu number nuw numberwidth ofu omnifunc odev opendevice opfunc operatorfunc ost osctimeoutlen pp packpath para paragraphs paste pt pastetoggle pex patchexpr pm patchmode pa path perldll pi preserveindent pvh previewheight pvp previewpopup pvw previewwindow pdev printdevice penc printencoding pexpr printexpr pfn printfont pheader printheader pmbcs printmbcharset pmbfn printmbfont skipwhite nextgroup=vimSetEqual,vimSetMod
|
||||
syn keyword vimOption contained popt printoptions prompt pb pumborder ph pumheight pmw pummaxwidth pw pumwidth pythondll pythonhome pythonthreedll pythonthreehome pyx pyxversion qftf quickfixtextfunc qe quoteescape ro readonly rdt redrawtime re regexpengine rnu relativenumber remap rop renderoptions report rs restorescreen ri revins rl rightleft rlc rightleftcmd rubydll ru ruler ruf rulerformat rtp runtimepath scr scroll scb scrollbind scf scrollfocus sj scrolljump so scrolloff sbo scrollopt sect sections secure sel selection slm selectmode ssop sessionoptions sh shell shcf shellcmdflag sp shellpipe shq shellquote srr shellredir ssl shellslash stmp shelltemp st shelltype sxe shellxescape sxq shellxquote sr shiftround sw shiftwidth shm shortmess sn shortname sbr showbreak skipwhite nextgroup=vimSetEqual,vimSetMod
|
||||
syn keyword vimOption contained sc showcmd sloc showcmdloc sft showfulltag sm showmatch smd showmode stal showtabline stpl showtabpanel ss sidescroll siso sidescrolloff scl signcolumn scs smartcase si smartindent sta smarttab sms smoothscroll sts softtabstop spell spc spellcapcheck spf spellfile spl spelllang spo spelloptions sps spellsuggest sb splitbelow spk splitkeep spr splitright sol startofline stl statusline su suffixes sua suffixesadd swf swapfile sws swapsync swb switchbuf smc synmaxcol syn syntax tcl tabclose tal tabline tpm tabpagemax tpl tabpanel tplo tabpanelopt ts tabstop tbs tagbsearch tc tagcase tfu tagfunc tl taglength tr tagrelative tag tags tgst tagstack tcldll term tbidi termbidi tenc termencoding tgc termguicolors twk termwinkey twsl termwinscroll skipwhite nextgroup=vimSetEqual,vimSetMod
|
||||
syn keyword vimOption contained tws termwinsize twt termwintype terse ta textauto tx textmode tw textwidth tsr thesaurus tsrfu thesaurusfunc top tildeop to timeout tm timeoutlen title titlelen titleold titlestring tb toolbar tbis toolbariconsize ttimeout ttm ttimeoutlen tbi ttybuiltin tf ttyfast ttym ttymouse tsl ttyscroll tty ttytype udir undodir udf undofile ul undolevels ur undoreload uc updatecount ut updatetime vsts varsofttabstop vts vartabstop vbs verbose vfile verbosefile vdir viewdir vop viewoptions vi viminfo vif viminfofile ve virtualedit vb visualbell warn wiv weirdinvert ww whichwrap wc wildchar wcm wildcharm wig wildignore wic wildignorecase wmnu wildmenu wim wildmode wop wildoptions wak winaltkeys wcr wincolor wi window wfb winfixbuf wfh winfixheight skipwhite nextgroup=vimSetEqual,vimSetMod
|
||||
syn keyword vimOption contained wfw winfixwidth wh winheight wmh winminheight wmw winminwidth winptydll wiw winwidth wse wlseat wst wlsteal wtm wltimeoutlen wrap wm wrapmargin ws wrapscan write wa writeany wb writebackup wd writedelay xtermcodes skipwhite nextgroup=vimSetEqual,vimSetMod
|
||||
syn keyword vimOption contained sc showcmd sloc showcmdloc sft showfulltag sm showmatch smd showmode stal showtabline stpl showtabpanel ss sidescroll siso sidescrolloff scl signcolumn scs smartcase si smartindent sta smarttab sms smoothscroll sts softtabstop spell spc spellcapcheck spf spellfile spl spelllang spo spelloptions sps spellsuggest sb splitbelow spk splitkeep spr splitright sol startofline stl statusline stlo statuslineopt su suffixes sua suffixesadd swf swapfile sws swapsync swb switchbuf smc synmaxcol syn syntax tcl tabclose tal tabline tpm tabpagemax tpl tabpanel tplo tabpanelopt ts tabstop tbs tagbsearch tc tagcase tfu tagfunc tl taglength tr tagrelative tag tags tgst tagstack tcldll term tbidi termbidi tenc termencoding tgc termguicolors twk termwinkey skipwhite nextgroup=vimSetEqual,vimSetMod
|
||||
syn keyword vimOption contained twsl termwinscroll tws termwinsize twt termwintype terse ta textauto tx textmode tw textwidth tsr thesaurus tsrfu thesaurusfunc top tildeop to timeout tm timeoutlen title titlelen titleold titlestring tb toolbar tbis toolbariconsize ttimeout ttm ttimeoutlen tbi ttybuiltin tf ttyfast ttym ttymouse tsl ttyscroll tty ttytype udir undodir udf undofile ul undolevels ur undoreload uc updatecount ut updatetime vsts varsofttabstop vts vartabstop vbs verbose vfile verbosefile vdir viewdir vop viewoptions vi viminfo vif viminfofile ve virtualedit vb visualbell warn wiv weirdinvert ww whichwrap wc wildchar wcm wildcharm wig wildignore wic wildignorecase wmnu wildmenu wim wildmode wop wildoptions wak winaltkeys wcr wincolor wi window wfb winfixbuf skipwhite nextgroup=vimSetEqual,vimSetMod
|
||||
syn keyword vimOption contained wfh winfixheight wfw winfixwidth wh winheight whl winhighlight wmh winminheight wmw winminwidth winptydll wiw winwidth wse wlseat wst wlsteal wtm wltimeoutlen wrap wm wrapmargin ws wrapscan write wa writeany wb writebackup wd writedelay xtermcodes skipwhite nextgroup=vimSetEqual,vimSetMod
|
||||
|
||||
" vimOptions: These are the turn-off setting variants {{{2
|
||||
" GEN_SYN_VIM: vimOption turn-off, START_STR='syn keyword vimOption contained', END_STR=''
|
||||
@@ -109,9 +109,9 @@ syn keyword vimOptionVarName contained efm errorformat ek esckeys ei eventignore
|
||||
syn keyword vimOptionVarName contained hi history hk hkmap hkp hkmapp hls hlsearch icon iconstring ic ignorecase imaf imactivatefunc imak imactivatekey imc imcmdline imd imdisable imi iminsert ims imsearch imsf imstatusfunc imst imstyle inc include inex includeexpr is incsearch inde indentexpr indk indentkeys inf infercase im insertmode isf isfname isi isident isk iskeyword isp isprint js joinspaces jop jumpoptions key kmp keymap km keymodel kpc keyprotocol kp keywordprg lmap langmap lm langmenu lnr langnoremap lrm langremap ls laststatus lz lazyredraw lhi lhistory lbr linebreak lines lsp linespace lisp lop lispoptions lw lispwords list lcs listchars lpl loadplugins luadll magic mef makeef menc makeencoding mp makeprg mps matchpairs mat matchtime mco maxcombine
|
||||
syn keyword vimOptionVarName contained mfd maxfuncdepth mmd maxmapdepth mm maxmem mmp maxmempattern mmt maxmemtot msc maxsearchcount mis menuitems mopt messagesopt msm mkspellmem ml modeline mle modelineexpr mls modelines ma modifiable mod modified more mouse mousef mousefocus mh mousehide mousem mousemodel mousemev mousemoveevent mouses mouseshape mouset mousetime mzq mzquantum mzschemedll mzschemegcdll nf nrformats nu number nuw numberwidth ofu omnifunc odev opendevice opfunc operatorfunc ost osctimeoutlen pp packpath para paragraphs paste pt pastetoggle pex patchexpr pm patchmode pa path perldll pi preserveindent pvh previewheight pvp previewpopup pvw previewwindow pdev printdevice penc printencoding pexpr printexpr pfn printfont pheader printheader pmbcs printmbcharset
|
||||
syn keyword vimOptionVarName contained pmbfn printmbfont popt printoptions prompt pb pumborder ph pumheight pmw pummaxwidth pw pumwidth pythondll pythonhome pythonthreedll pythonthreehome pyx pyxversion qftf quickfixtextfunc qe quoteescape ro readonly rdt redrawtime re regexpengine rnu relativenumber remap rop renderoptions report rs restorescreen ri revins rl rightleft rlc rightleftcmd rubydll ru ruler ruf rulerformat rtp runtimepath scr scroll scb scrollbind scf scrollfocus sj scrolljump so scrolloff sbo scrollopt sect sections secure sel selection slm selectmode ssop sessionoptions sh shell shcf shellcmdflag sp shellpipe shq shellquote srr shellredir ssl shellslash stmp shelltemp st shelltype sxe shellxescape sxq shellxquote sr shiftround sw shiftwidth shm shortmess
|
||||
syn keyword vimOptionVarName contained sn shortname sbr showbreak sc showcmd sloc showcmdloc sft showfulltag sm showmatch smd showmode stal showtabline stpl showtabpanel ss sidescroll siso sidescrolloff scl signcolumn scs smartcase si smartindent sta smarttab sms smoothscroll sts softtabstop spell spc spellcapcheck spf spellfile spl spelllang spo spelloptions sps spellsuggest sb splitbelow spk splitkeep spr splitright sol startofline stl statusline su suffixes sua suffixesadd swf swapfile sws swapsync swb switchbuf smc synmaxcol syn syntax tcl tabclose tal tabline tpm tabpagemax tpl tabpanel tplo tabpanelopt ts tabstop tbs tagbsearch tc tagcase tfu tagfunc tl taglength tr tagrelative tag tags tgst tagstack tcldll term tbidi termbidi tenc termencoding tgc termguicolors
|
||||
syn keyword vimOptionVarName contained twk termwinkey twsl termwinscroll tws termwinsize twt termwintype terse ta textauto tx textmode tw textwidth tsr thesaurus tsrfu thesaurusfunc top tildeop to timeout tm timeoutlen title titlelen titleold titlestring tb toolbar tbis toolbariconsize ttimeout ttm ttimeoutlen tbi ttybuiltin tf ttyfast ttym ttymouse tsl ttyscroll tty ttytype udir undodir udf undofile ul undolevels ur undoreload uc updatecount ut updatetime vsts varsofttabstop vts vartabstop vbs verbose vfile verbosefile vdir viewdir vop viewoptions vi viminfo vif viminfofile ve virtualedit vb visualbell warn wiv weirdinvert ww whichwrap wc wildchar wcm wildcharm wig wildignore wic wildignorecase wmnu wildmenu wim wildmode wop wildoptions wak winaltkeys wcr wincolor
|
||||
syn keyword vimOptionVarName contained wi window wfb winfixbuf wfh winfixheight wfw winfixwidth wh winheight wmh winminheight wmw winminwidth winptydll wiw winwidth wse wlseat wst wlsteal wtm wltimeoutlen wrap wm wrapmargin ws wrapscan write wa writeany wb writebackup wd writedelay xtermcodes
|
||||
syn keyword vimOptionVarName contained sn shortname sbr showbreak sc showcmd sloc showcmdloc sft showfulltag sm showmatch smd showmode stal showtabline stpl showtabpanel ss sidescroll siso sidescrolloff scl signcolumn scs smartcase si smartindent sta smarttab sms smoothscroll sts softtabstop spell spc spellcapcheck spf spellfile spl spelllang spo spelloptions sps spellsuggest sb splitbelow spk splitkeep spr splitright sol startofline stl statusline stlo statuslineopt su suffixes sua suffixesadd swf swapfile sws swapsync swb switchbuf smc synmaxcol syn syntax tcl tabclose tal tabline tpm tabpagemax tpl tabpanel tplo tabpanelopt ts tabstop tbs tagbsearch tc tagcase tfu tagfunc tl taglength tr tagrelative tag tags tgst tagstack tcldll term tbidi termbidi tenc termencoding
|
||||
syn keyword vimOptionVarName contained tgc termguicolors twk termwinkey twsl termwinscroll tws termwinsize twt termwintype terse ta textauto tx textmode tw textwidth tsr thesaurus tsrfu thesaurusfunc top tildeop to timeout tm timeoutlen title titlelen titleold titlestring tb toolbar tbis toolbariconsize ttimeout ttm ttimeoutlen tbi ttybuiltin tf ttyfast ttym ttymouse tsl ttyscroll tty ttytype udir undodir udf undofile ul undolevels ur undoreload uc updatecount ut updatetime vsts varsofttabstop vts vartabstop vbs verbose vfile verbosefile vdir viewdir vop viewoptions vi viminfo vif viminfofile ve virtualedit vb visualbell warn wiv weirdinvert ww whichwrap wc wildchar wcm wildcharm wig wildignore wic wildignorecase wmnu wildmenu wim wildmode wop wildoptions wak winaltkeys
|
||||
syn keyword vimOptionVarName contained wcr wincolor wi window wfb winfixbuf wfh winfixheight wfw winfixwidth wh winheight whl winhighlight wmh winminheight wmw winminwidth winptydll wiw winwidth wse wlseat wst wlsteal wtm wltimeoutlen wrap wm wrapmargin ws wrapscan write wa writeany wb writebackup wd writedelay xtermcodes
|
||||
" GEN_SYN_VIM: vimOption term output code variable, START_STR='syn keyword vimOptionVarName contained', END_STR=''
|
||||
syn keyword vimOptionVarName contained t_AB t_AF t_AU t_AL t_al t_bc t_BE t_BD t_cd t_ce t_Ce t_CF t_cl t_cm t_Co t_CS t_Cs t_cs t_CV t_da t_db t_DL t_dl t_ds t_Ds t_EC t_EI t_fs t_fd t_fe t_GP t_IE t_IS t_ke t_ks t_le t_mb t_md t_me t_mr t_ms t_nd t_op t_RF t_RB t_RC t_RI t_Ri t_RK t_RS t_RT t_RV t_Sb t_SC t_se t_Sf t_SH t_SI t_Si t_so t_SR t_sr t_ST t_Te t_te t_TE t_ti t_TI t_Ts t_ts t_u7 t_ue t_us t_Us t_ut t_vb t_ve t_vi t_VS t_vs t_WP t_WS t_XM t_xn t_xs t_ZH t_ZR t_8f t_8b t_8u t_xo
|
||||
syn keyword vimOptionVarName contained t_F1 t_F2 t_F3 t_F4 t_F5 t_F6 t_F7 t_F8 t_F9 t_k1 t_K1 t_k2 t_k3 t_K3 t_k4 t_K4 t_k5 t_K5 t_k6 t_K6 t_k7 t_K7 t_k8 t_K8 t_k9 t_K9 t_KA t_kb t_kB t_KB t_KC t_kd t_kD t_KD t_KE t_KF t_KG t_kh t_KH t_kI t_KI t_KJ t_KK t_kl t_KL t_kN t_kP t_kr t_ku
|
||||
@@ -134,8 +134,8 @@ syn keyword vimErrSetting contained invakm invaltkeymap invanti invantialias inv
|
||||
syn case ignore
|
||||
" GEN_SYN_VIM: vimAutoEvent, START_STR='syn keyword vimAutoEvent contained', END_STR='skipwhite nextgroup=vimAutoEventSep,@vimAutocmdPattern'
|
||||
syn keyword vimAutoEvent contained BufAdd BufCreate BufDelete BufEnter BufFilePost BufFilePre BufHidden BufLeave BufNew BufNewFile BufRead BufReadCmd BufReadPost BufReadPre BufUnload BufWinEnter BufWinLeave BufWipeout BufWrite BufWriteCmd BufWritePost BufWritePre CmdlineChanged CmdlineEnter CmdlineLeave CmdlineLeavePre CmdUndefined CmdwinEnter CmdwinLeave ColorScheme ColorSchemePre CompleteChanged CompleteDone CompleteDonePre CursorHold CursorHoldI CursorMoved CursorMovedC CursorMovedI DiffUpdated DirChanged DirChangedPre EncodingChanged ExitPre FileAppendCmd FileAppendPost FileAppendPre FileChangedRO FileChangedShell FileChangedShellPost FileEncoding FileReadCmd FileReadPost FileReadPre FileType FileWriteCmd FileWritePost FileWritePre FilterReadPost FilterReadPre skipwhite nextgroup=vimAutoEventSep,@vimAutocmdPattern
|
||||
syn keyword vimAutoEvent contained FilterWritePost FilterWritePre FocusGained FocusLost FuncUndefined GUIEnter GUIFailed InsertChange InsertCharPre InsertEnter InsertLeave InsertLeavePre KeyInputPre MenuPopup ModeChanged OptionSet QuickFixCmdPost QuickFixCmdPre QuitPre RemoteReply SafeState SafeStateAgain SessionLoadPost SessionWritePost ShellCmdPost ShellFilterPost SigUSR1 SourceCmd SourcePost SourcePre SpellFileMissing StdinReadPost StdinReadPre SwapExists Syntax TabClosed TabClosedPre TabEnter TabLeave TabNew TermChanged TerminalOpen TerminalWinOpen TermResponse TermResponseAll TextChanged TextChangedI TextChangedP TextChangedT TextYankPost VimEnter VimLeave VimLeavePre VimResized VimResume VimSuspend WinClosed WinEnter WinLeave WinNew WinNewPre WinResized skipwhite nextgroup=vimAutoEventSep,@vimAutocmdPattern
|
||||
syn keyword vimAutoEvent contained WinScrolled skipwhite nextgroup=vimAutoEventSep,@vimAutocmdPattern
|
||||
syn keyword vimAutoEvent contained FilterWritePost FilterWritePre FocusGained FocusLost FuncUndefined GUIEnter GUIFailed InsertChange InsertCharPre InsertEnter InsertLeave InsertLeavePre KeyInputPre MenuPopup ModeChanged OptionSet QuickFixCmdPost QuickFixCmdPre QuitPre RemoteReply SafeState SafeStateAgain SessionLoadPost SessionLoadPre SessionWritePost ShellCmdPost ShellFilterPost SigUSR1 SourceCmd SourcePost SourcePre SpellFileMissing StdinReadPost StdinReadPre SwapExists Syntax TabClosed TabClosedPre TabEnter TabLeave TabNew TermChanged TerminalOpen TerminalWinOpen TermResponse TermResponseAll TextChanged TextChangedI TextChangedP TextChangedT TextYankPost VimEnter VimLeave VimLeavePre VimResized VimResume VimSuspend WinClosed WinEnter WinLeave WinNew WinNewPre skipwhite nextgroup=vimAutoEventSep,@vimAutocmdPattern
|
||||
syn keyword vimAutoEvent contained WinResized WinScrolled skipwhite nextgroup=vimAutoEventSep,@vimAutocmdPattern
|
||||
|
||||
syn keyword vimAutoEvent contained User skipwhite nextgroup=vimUserAutoEvent
|
||||
syn match vimUserAutoEvent contained "\<\h\w*\>" skipwhite nextgroup=vimUserAutoEventSep,vimAutocmdMod,vimAutocmdBlock
|
||||
@@ -1847,17 +1847,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
|
||||
@@ -1875,13 +1890,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
|
||||
@@ -1904,16 +1919,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\)\>"
|
||||
@@ -1923,9 +1939,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
|
||||
@@ -2583,11 +2599,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
|
||||
@@ -2752,7 +2771,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
|
||||
|
||||
44
runtime/xdg.vim
Normal file
44
runtime/xdg.vim
Normal file
@@ -0,0 +1,44 @@
|
||||
" XDG Base Directory support
|
||||
" This script sets up paths for XDG compliance.
|
||||
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
" Last Change: 2026 Feb 19
|
||||
|
||||
let s:config = empty($XDG_CONFIG_HOME) ? expand("~/.config") : expand("$XDG_CONFIG_HOME")
|
||||
let s:data = empty($XDG_DATA_HOME) ? expand("~/.local/share") : expand("$XDG_DATA_HOME")
|
||||
let s:state = empty($XDG_STATE_HOME) ? expand("~/.local/state") : expand("$XDG_STATE_HOME")
|
||||
|
||||
if isdirectory(s:config .. '/vim')
|
||||
func s:mkvimdir(dir)
|
||||
if !isdirectory(a:dir)
|
||||
call mkdir(a:dir, 'p', 0700)
|
||||
endif
|
||||
return a:dir
|
||||
endfunc
|
||||
|
||||
" Use Data for packages, prevent duplicates
|
||||
if index(split(&packpath, ','), s:data .. '/vim') == -1
|
||||
exe $"set packpath^={s:data}/vim"
|
||||
exe $"set packpath+={s:data}/vim/after"
|
||||
endif
|
||||
|
||||
" These options are not set by default because they change the behavior of
|
||||
" where files are saved. Uncomment them if you want to fully move all
|
||||
" transient/persistent files to XDG directories.
|
||||
" Note: Undo/Views/Spell are placed in DATA_HOME as they are persistent,
|
||||
" while Swap/Backups use STATE_HOME as transient session state.
|
||||
|
||||
" Persistent Data:
|
||||
" let &undodir = s:mkvimdir(s:data .. '/vim/undo')
|
||||
" let &viewdir = s:mkvimdir(s:data .. '/vim/view')
|
||||
" let g:netrw_home = s:mkvimdir(s:data .. '/vim')
|
||||
" call s:mkvimdir(s:data .. '/vim/spell')
|
||||
|
||||
" Transient State:
|
||||
let &viminfofile = s:mkvimdir(s:state .. '/vim') .. '/viminfo'
|
||||
" let &directory = s:mkvimdir(s:state .. '/vim/swap') .. '//'
|
||||
" let &backupdir = s:mkvimdir(s:state .. '/vim/backup') .. '//'
|
||||
|
||||
delfunction s:mkvimdir
|
||||
endif
|
||||
|
||||
unlet s:config s:data s:state
|
||||
@@ -1607,7 +1607,10 @@ EXTRA_SRC = if_lua.c if_mzsch.c auto/if_perl.c \
|
||||
gui_beval.c netbeans.c job.c channel.c \
|
||||
$(GRESOURCE_SRC)
|
||||
|
||||
$(WAYLAND_SRC):
|
||||
$(WAYLAND_SRC): genwaylandproto
|
||||
|
||||
.PHONY: genwaylandproto
|
||||
genwaylandproto:
|
||||
cd auto/wayland; $(MAKE)
|
||||
|
||||
# Needed for parallel jobs to work
|
||||
@@ -2397,6 +2400,9 @@ installrtbase: $(HELPSOURCE)/vim.1 $(DEST_VIM) $(VIMTARGET) $(DEST_RT) \
|
||||
chmod $(VIMSCRIPTMOD) $(DEST_SCRIPT)/vimrc_example.vim
|
||||
$(INSTALL_DATA) $(SCRIPTSOURCE)/gvimrc_example.vim $(DEST_SCRIPT)
|
||||
chmod $(VIMSCRIPTMOD) $(DEST_SCRIPT)/gvimrc_example.vim
|
||||
# install the xdg file
|
||||
$(INSTALL_DATA) $(SCRIPTSOURCE)/xdg.vim $(DEST_SCRIPT)
|
||||
chmod $(VIMSCRIPTMOD) $(DEST_SCRIPT)/xdg.vim
|
||||
# install the file type detection files
|
||||
$(INSTALL_DATA) $(SCRIPTSOURCE)/filetype.vim $(SYS_FILETYPE_FILE)
|
||||
chmod $(VIMSCRIPTMOD) $(SYS_FILETYPE_FILE)
|
||||
|
||||
@@ -168,6 +168,7 @@ static keyvalue_T event_tab[NUM_EVENTS] = {
|
||||
KEYVALUE_ENTRY(EVENT_SAFESTATE, "SafeState"),
|
||||
KEYVALUE_ENTRY(EVENT_SAFESTATEAGAIN, "SafeStateAgain"),
|
||||
KEYVALUE_ENTRY(EVENT_SESSIONLOADPOST, "SessionLoadPost"),
|
||||
KEYVALUE_ENTRY(EVENT_SESSIONLOADPRE, "SessionLoadPre"),
|
||||
KEYVALUE_ENTRY(EVENT_SESSIONWRITEPOST, "SessionWritePost"),
|
||||
KEYVALUE_ENTRY(EVENT_SHELLCMDPOST, "ShellCmdPost"),
|
||||
KEYVALUE_ENTRY(-EVENT_SHELLFILTERPOST, "ShellFilterPost"),
|
||||
|
||||
22
src/blob.c
22
src/blob.c
@@ -165,8 +165,8 @@ blob_equal(
|
||||
blob_T *b2)
|
||||
{
|
||||
int i;
|
||||
int len1 = blob_len(b1);
|
||||
int len2 = blob_len(b2);
|
||||
long len1 = blob_len(b1);
|
||||
long len2 = blob_len(b2);
|
||||
|
||||
// empty and NULL are considered the same
|
||||
if (len1 == 0 && len2 == 0)
|
||||
@@ -276,13 +276,13 @@ blob2string(blob_T *blob, char_u **tofree, char_u *numbuf)
|
||||
|
||||
// Store bytes in the growarray.
|
||||
ga_init2(&ga, 1, 4000);
|
||||
ga_concat_len(&ga, (char_u *)"0z", 2);
|
||||
GA_CONCAT_LITERAL(&ga, "0z");
|
||||
for (i = 0; i < blob_len(blob); i++)
|
||||
{
|
||||
size_t numbuflen;
|
||||
|
||||
if (i > 0 && (i & 3) == 0)
|
||||
ga_concat_len(&ga, (char_u *)".", 1);
|
||||
GA_CONCAT_LITERAL(&ga, ".");
|
||||
numbuflen = vim_snprintf_safelen((char *)numbuf, NUMBUFLEN,
|
||||
"%02X", blob_get(blob, i));
|
||||
ga_concat_len(&ga, numbuf, numbuflen);
|
||||
@@ -821,14 +821,14 @@ blob_reduce(
|
||||
void
|
||||
blob_reverse(blob_T *b, typval_T *rettv)
|
||||
{
|
||||
int i, len = blob_len(b);
|
||||
long i, len = blob_len(b);
|
||||
|
||||
for (i = 0; i < len / 2; i++)
|
||||
{
|
||||
int tmp = blob_get(b, i);
|
||||
int tmp = blob_get(b, (int)i);
|
||||
|
||||
blob_set(b, i, blob_get(b, len - i - 1));
|
||||
blob_set(b, len - i - 1, tmp);
|
||||
blob_set(b, (int)i, blob_get(b, (int)(len - i - 1)));
|
||||
blob_set(b, (int)(len - i - 1), tmp);
|
||||
}
|
||||
rettv_blob_set(rettv, b);
|
||||
}
|
||||
@@ -841,7 +841,7 @@ f_blob2list(typval_T *argvars, typval_T *rettv)
|
||||
{
|
||||
blob_T *blob;
|
||||
list_T *l;
|
||||
int i;
|
||||
long i;
|
||||
|
||||
if (rettv_list_alloc(rettv) == FAIL)
|
||||
return;
|
||||
@@ -851,8 +851,8 @@ f_blob2list(typval_T *argvars, typval_T *rettv)
|
||||
|
||||
blob = argvars->vval.v_blob;
|
||||
l = rettv->vval.v_list;
|
||||
for (i = 0; i < blob_len(blob); i++)
|
||||
list_append_number(l, blob_get(blob, i));
|
||||
for (i = 0; i < (long)blob_len(blob); i++)
|
||||
list_append_number(l, blob_get(blob, (int)i));
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
176
src/buffer.c
176
src/buffer.c
@@ -45,6 +45,12 @@ static int buf_same_ino(buf_T *buf, stat_T *stp);
|
||||
static int otherfile_buf(buf_T *buf, char_u *ffname);
|
||||
#endif
|
||||
static int value_changed(char_u *str, char_u **last);
|
||||
#if defined(FEAT_STL_OPT) || defined(FEAT_GUI_TABLINE)
|
||||
static int build_stl_str_hl_local(stl_mode_T mode, win_T *wp,
|
||||
char_u *out, size_t outlen, char_u **fmt_arg,
|
||||
char_u *opt_name, int opt_scope, int fillchar, int maxwidth,
|
||||
stl_hlrec_T **hltab, stl_hlrec_T **tabtab, int *lbreaks);
|
||||
#endif
|
||||
static int append_arg_number(win_T *wp, char_u *buf, size_t buflen, int add_file);
|
||||
static void free_buffer(buf_T *);
|
||||
static void free_buffer_stuff(buf_T *buf, int free_options);
|
||||
@@ -4366,6 +4372,94 @@ build_stl_str_hl(
|
||||
int maxwidth,
|
||||
stl_hlrec_T **hltab, // return: HL attributes (can be NULL)
|
||||
stl_hlrec_T **tabtab) // return: tab page nrs (can be NULL)
|
||||
{
|
||||
return build_stl_str_hl_local(STL_MODE_SINGLE, wp, out, outlen, &fmt,
|
||||
opt_name, opt_scope, fillchar, maxwidth, hltab, tabtab, NULL);
|
||||
}
|
||||
|
||||
int
|
||||
build_stl_str_hl_mline(
|
||||
win_T *wp,
|
||||
char_u *out, // buffer to write into != NameBuff
|
||||
size_t outlen, // length of out[]
|
||||
char_u **fmt, // (in/out)
|
||||
char_u *opt_name, // option name corresponding to "fmt"
|
||||
int opt_scope, // scope for "opt_name"
|
||||
int fillchar,
|
||||
int maxwidth,
|
||||
stl_hlrec_T **hltab, // return: HL attributes (can be NULL)
|
||||
stl_hlrec_T **tabtab) // return: tab page nrs (can be NULL)
|
||||
{
|
||||
return build_stl_str_hl_local(STL_MODE_MULTI, wp, out, outlen, fmt,
|
||||
opt_name, opt_scope, fillchar, maxwidth, hltab, tabtab, NULL);
|
||||
}
|
||||
|
||||
# ifdef ENABLE_STL_MODE_MULTI_NL
|
||||
int
|
||||
build_stl_str_hl_mline_nl(
|
||||
win_T *wp,
|
||||
char_u *out, // buffer to write into != NameBuff
|
||||
size_t outlen, // length of out[]
|
||||
char_u **fmt, // (in/out)
|
||||
char_u *opt_name, // option name corresponding to "fmt"
|
||||
int opt_scope, // scope for "opt_name"
|
||||
int fillchar,
|
||||
int maxwidth,
|
||||
stl_hlrec_T **hltab, // return: HL attributes (can be NULL)
|
||||
stl_hlrec_T **tabtab) // return: tab page nrs (can be NULL)
|
||||
{
|
||||
return build_stl_str_hl_local(STL_MODE_MULTI_NL, wp, out, outlen, fmt,
|
||||
opt_name, opt_scope, fillchar, maxwidth, hltab, tabtab, NULL);
|
||||
}
|
||||
# endif
|
||||
|
||||
int
|
||||
get_stl_rendered_height(
|
||||
win_T *wp,
|
||||
char_u *fmt,
|
||||
char_u *opt_name, // option name corresponding to "fmt"
|
||||
int opt_scope) // scope for "opt_name"
|
||||
{
|
||||
int rendered_height = 0;
|
||||
char_u buf[MAXPATHL] = {0};
|
||||
|
||||
(void)build_stl_str_hl_local(STL_MODE_GET_RENDERED_HEIGHT,
|
||||
wp, buf, sizeof(buf), &fmt,
|
||||
opt_name, opt_scope, 0, 0, NULL, NULL, &rendered_height);
|
||||
return rendered_height;
|
||||
}
|
||||
|
||||
/*
|
||||
* mode:
|
||||
* STL_MODE_SINGLE:
|
||||
* - Does not accept line breaks ("%@")
|
||||
* STL_MODE_MULTI:
|
||||
* - Accept line breaks
|
||||
* - Update fmt_arg to the start of the next line or last NUL position
|
||||
* STL_MODE_GET_RENDERED_HEIGHT:
|
||||
* - Just get stl rendered height
|
||||
* - Update rendered_height (if not NULL)
|
||||
*
|
||||
* NOTE:
|
||||
* Line break counting is performed here because `%{% ... %}` items
|
||||
* are re-evaluated on redraw and may change the final rendered text.
|
||||
* Therefore, layout decisions must be based on the fully evaluated statusline
|
||||
* string, not on pre-evaluation parsing.
|
||||
*/
|
||||
static int
|
||||
build_stl_str_hl_local(
|
||||
stl_mode_T mode,
|
||||
win_T *wp,
|
||||
char_u *out, // buffer to write into != NameBuff
|
||||
size_t outlen, // length of out[]
|
||||
char_u **fmt_arg,
|
||||
char_u *opt_name, // option name corresponding to "fmt"
|
||||
int opt_scope, // scope for "opt_name"
|
||||
int fillchar,
|
||||
int maxwidth,
|
||||
stl_hlrec_T **hltab, // return: HL attributes (can be NULL)
|
||||
stl_hlrec_T **tabtab, // return: tab page nrs (can be NULL)
|
||||
int *rendered_height) // return: stl rendered height (can be NULL)
|
||||
{
|
||||
linenr_T lnum;
|
||||
colnr_T len;
|
||||
@@ -4400,6 +4494,7 @@ build_stl_str_hl(
|
||||
char_u opt;
|
||||
# define TMPLEN 70
|
||||
char_u buf_tmp[TMPLEN];
|
||||
char_u *fmt = *fmt_arg;
|
||||
char_u *usefmt = fmt;
|
||||
stl_hlrec_T *sp;
|
||||
int save_redraw_not_allowed = redraw_not_allowed;
|
||||
@@ -4408,6 +4503,7 @@ build_stl_str_hl(
|
||||
// matter?
|
||||
// int called_emsg_before = called_emsg;
|
||||
int did_emsg_before = did_emsg;
|
||||
int rheight = 1; // stl rendered height
|
||||
|
||||
// When inside update_screen() we do not want redrawing a statusline,
|
||||
// ruler, title, etc. to trigger another redraw, it may cause an endless
|
||||
@@ -4534,7 +4630,23 @@ build_stl_str_hl(
|
||||
* Handle up to the next '%' or the end.
|
||||
*/
|
||||
while (*s != NUL && *s != '%' && p + 1 < out + outlen)
|
||||
# ifdef ENABLE_STL_MODE_MULTI_NL
|
||||
{
|
||||
if (*s == '\n' || *s == '\r')
|
||||
{
|
||||
if (mode == STL_MODE_MULTI_NL)
|
||||
{
|
||||
s++;
|
||||
goto find_linebreak;
|
||||
}
|
||||
else if (mode == STL_MODE_GET_RENDERED_HEIGHT)
|
||||
rheight++;
|
||||
}
|
||||
# endif
|
||||
*p++ = *s++;
|
||||
# ifdef ENABLE_STL_MODE_MULTI_NL
|
||||
}
|
||||
# endif
|
||||
if (*s == NUL || p + 1 >= out + outlen)
|
||||
break;
|
||||
|
||||
@@ -4544,6 +4656,21 @@ build_stl_str_hl(
|
||||
s++;
|
||||
if (*s == NUL) // ignore trailing %
|
||||
break;
|
||||
|
||||
if (*s == STL_LINEBREAK)
|
||||
{
|
||||
if (mode == STL_MODE_MULTI
|
||||
# ifdef ENABLE_STL_MODE_MULTI_NL
|
||||
|| mode == STL_MODE_MULTI_NL
|
||||
# endif
|
||||
)
|
||||
{
|
||||
s++;
|
||||
break;
|
||||
}
|
||||
else if (mode == STL_MODE_GET_RENDERED_HEIGHT)
|
||||
rheight++;
|
||||
}
|
||||
if (*s == '%')
|
||||
{
|
||||
if (p + 1 >= out + outlen)
|
||||
@@ -5201,14 +5328,52 @@ build_stl_str_hl(
|
||||
vim_free(str);
|
||||
curitem++;
|
||||
}
|
||||
# ifdef ENABLE_STL_MODE_MULTI_NL
|
||||
find_linebreak:
|
||||
# endif
|
||||
*p = NUL;
|
||||
outputlen = (size_t)(p - out);
|
||||
itemcnt = curitem;
|
||||
|
||||
# ifdef FEAT_EVAL
|
||||
if (usefmt != fmt)
|
||||
vim_free(usefmt);
|
||||
if (mode == STL_MODE_MULTI
|
||||
# ifdef ENABLE_STL_MODE_MULTI_NL
|
||||
|| mode == STL_MODE_MULTI_NL
|
||||
# endif
|
||||
)
|
||||
{
|
||||
// In multi-line mode, ownership of the format buffer is transferred
|
||||
// back to the caller via *fmt_arg.
|
||||
// When "%!" evaluation occurred (usefmt != fmt), "usefmt" is the newly
|
||||
// allocated eval result and "fmt" is the caller's original buffer
|
||||
// which is no longer needed. "s" points into "usefmt", so we free
|
||||
// "fmt" and shift the remaining format string within "usefmt" for the
|
||||
// caller's next iteration.
|
||||
# ifdef FEAT_EVAL
|
||||
if (usefmt != fmt)
|
||||
vim_free(fmt);
|
||||
# endif
|
||||
size_t fmt_remain_len = strlen((char *)s);
|
||||
|
||||
mch_memmove(usefmt, s, fmt_remain_len);
|
||||
usefmt[fmt_remain_len] = NUL;
|
||||
*fmt_arg = usefmt;
|
||||
}
|
||||
else
|
||||
{
|
||||
// In single-line mode, the caller retains ownership of its buffer.
|
||||
// Free the eval result if "%!" was used.
|
||||
# ifdef FEAT_EVAL
|
||||
if (usefmt != fmt)
|
||||
vim_free(usefmt);
|
||||
# endif
|
||||
}
|
||||
|
||||
if (mode == STL_MODE_GET_RENDERED_HEIGHT)
|
||||
{
|
||||
if (rendered_height != NULL)
|
||||
*rendered_height = rheight;
|
||||
return 0;
|
||||
}
|
||||
|
||||
width = vim_strsize(out);
|
||||
if (maxwidth > 0 && width > maxwidth)
|
||||
@@ -5296,7 +5461,8 @@ build_stl_str_hl(
|
||||
}
|
||||
width = maxwidth;
|
||||
}
|
||||
else if (width < maxwidth && outputlen + maxwidth - width + 1 < outlen)
|
||||
else if (width < maxwidth &&
|
||||
outputlen + (maxwidth - width) * MB_CHAR2LEN(fillchar) + 1 < outlen)
|
||||
{
|
||||
// Find how many separators there are, which we will use when
|
||||
// figuring out how many groups there are.
|
||||
@@ -5951,7 +6117,7 @@ bt_normal(buf_T *buf)
|
||||
bt_quickfix(buf_T *buf UNUSED)
|
||||
{
|
||||
#ifdef FEAT_QUICKFIX
|
||||
return buf != NULL && buf_valid(buf) && buf->b_p_bt[0] == 'q';
|
||||
return buf != NULL && buf->b_p_bt[0] == 'q';
|
||||
#else
|
||||
return FALSE;
|
||||
#endif
|
||||
|
||||
@@ -557,7 +557,10 @@ invoke_sync_listeners(
|
||||
|
||||
dict = dict_alloc();
|
||||
if (dict == NULL)
|
||||
{
|
||||
list_unref(recorded_changes);
|
||||
return;
|
||||
}
|
||||
|
||||
dict_add_number(dict, "lnum", (varnumber_T)start);
|
||||
dict_add_number(dict, "end", (varnumber_T)end);
|
||||
|
||||
226
src/channel.c
226
src/channel.c
@@ -935,13 +935,31 @@ channel_open(
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Count the number of addresses for timeout distribution
|
||||
int addr_count = 0;
|
||||
for (addr = res; addr != NULL; addr = addr->ai_next)
|
||||
addr_count++;
|
||||
|
||||
// On Mac and Solaris a zero timeout almost never works. Waiting for
|
||||
// one millisecond already helps a lot. Later Mac systems (using IPv6)
|
||||
// need more time, 15 milliseconds appears to work well.
|
||||
// Let's do it for all systems, because we don't know why this is
|
||||
// needed.
|
||||
if (waittime == 0)
|
||||
waittime = 15;
|
||||
|
||||
int addr_index = 0;
|
||||
for (addr = res; addr != NULL; addr = addr->ai_next, addr_index++)
|
||||
{
|
||||
const char *dst = hostname;
|
||||
# ifdef HAVE_INET_NTOP
|
||||
const void *src = NULL;
|
||||
char buf[NUMBUFLEN];
|
||||
# endif
|
||||
int try_waittime;
|
||||
int before_waittime;
|
||||
int consumed;
|
||||
int remaining_addrs;
|
||||
|
||||
if (addr->ai_family == AF_INET6)
|
||||
{
|
||||
@@ -974,18 +992,44 @@ channel_open(
|
||||
|
||||
ch_log(channel, "Trying to connect to %s port %d", dst, port);
|
||||
|
||||
// On Mac and Solaris a zero timeout almost never works. Waiting for
|
||||
// one millisecond already helps a lot. Later Mac systems (using IPv6)
|
||||
// need more time, 15 milliseconds appears to work well.
|
||||
// Let's do it for all systems, because we don't know why this is
|
||||
// needed.
|
||||
if (waittime == 0)
|
||||
waittime = 15;
|
||||
// Distribute the timeout across addresses for better fallback behavior.
|
||||
// This implements a simplified version of Happy Eyeballs (RFC 8305).
|
||||
if (addr->ai_next == NULL)
|
||||
try_waittime = waittime;
|
||||
else if (addr_index == 0)
|
||||
{
|
||||
if (waittime > 500)
|
||||
try_waittime = 250;
|
||||
else if (waittime > 30)
|
||||
try_waittime = waittime / 2;
|
||||
else
|
||||
try_waittime = waittime;
|
||||
}
|
||||
else
|
||||
{
|
||||
remaining_addrs = addr_count - addr_index;
|
||||
try_waittime = waittime / remaining_addrs;
|
||||
}
|
||||
|
||||
before_waittime = try_waittime;
|
||||
sd = channel_connect(channel, addr->ai_addr, (int)addr->ai_addrlen,
|
||||
&waittime);
|
||||
&try_waittime);
|
||||
|
||||
// Update the overall waittime based on consumed time
|
||||
consumed = before_waittime - try_waittime;
|
||||
waittime -= consumed;
|
||||
if (waittime < 0)
|
||||
waittime = 0;
|
||||
|
||||
if (sd >= 0)
|
||||
break;
|
||||
|
||||
// If we have no time left, stop trying
|
||||
if (waittime <= 0 && addr->ai_next != NULL)
|
||||
{
|
||||
ch_log(channel, "Out of time, stopping connection attempts");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
freeaddrinfo(res);
|
||||
@@ -1937,9 +1981,9 @@ channel_collapse(channel_T *channel, ch_part_T part, int want_nl)
|
||||
|
||||
last_node = node->rq_next;
|
||||
len = node->rq_buflen + last_node->rq_buflen;
|
||||
if (want_nl || mode == CH_MODE_LSP)
|
||||
if (want_nl || mode == CH_MODE_LSP || mode == CH_MODE_DAP)
|
||||
while (last_node->rq_next != NULL
|
||||
&& (mode == CH_MODE_LSP
|
||||
&& (mode == CH_MODE_LSP || mode == CH_MODE_DAP
|
||||
|| channel_first_nl(last_node) == NULL))
|
||||
{
|
||||
last_node = last_node->rq_next;
|
||||
@@ -2090,16 +2134,22 @@ channel_fill(js_read_T *reader)
|
||||
}
|
||||
|
||||
/*
|
||||
* Process the HTTP header in a Language Server Protocol (LSP) message.
|
||||
* Process the HTTP header in a Language Server Protocol (LSP) message or
|
||||
* Debug Adapter Protocol (DAP) message.
|
||||
*
|
||||
* The message format is described in the LSP specification:
|
||||
* https://microsoft.github.io/language-server-protocol/specification
|
||||
*
|
||||
* For DAP:
|
||||
* https://microsoft.github.io/debug-adapter-protocol/specification
|
||||
*
|
||||
* It has the following two fields:
|
||||
*
|
||||
* Content-Length: ...
|
||||
* Content-Type: application/vscode-jsonrpc; charset=utf-8
|
||||
*
|
||||
* For DAP, there is no "Content-Type" field (as of now).
|
||||
*
|
||||
* Each field ends with "\r\n". The header ends with an additional "\r\n".
|
||||
*
|
||||
* Returns OK if a valid header is received and FAIL if some fields in the
|
||||
@@ -2107,7 +2157,7 @@ channel_fill(js_read_T *reader)
|
||||
* need to wait for more data to arrive.
|
||||
*/
|
||||
static int
|
||||
channel_process_lsp_http_hdr(js_read_T *reader)
|
||||
channel_process_lspdap_http_hdr(js_read_T *reader)
|
||||
{
|
||||
char_u *line_start;
|
||||
char_u *p;
|
||||
@@ -2191,8 +2241,9 @@ channel_parse_json(channel_T *channel, ch_part_T part)
|
||||
reader.js_cookie = channel;
|
||||
reader.js_cookie_arg = part;
|
||||
|
||||
if (chanpart->ch_mode == CH_MODE_LSP)
|
||||
status = channel_process_lsp_http_hdr(&reader);
|
||||
if (chanpart->ch_mode == CH_MODE_LSP
|
||||
|| chanpart->ch_mode == CH_MODE_DAP)
|
||||
status = channel_process_lspdap_http_hdr(&reader);
|
||||
|
||||
// When a message is incomplete we wait for a short while for more to
|
||||
// arrive. After the delay drop the input, otherwise a truncated string
|
||||
@@ -2209,12 +2260,13 @@ channel_parse_json(channel_T *channel, ch_part_T part)
|
||||
{
|
||||
// Only accept the response when it is a list with at least two
|
||||
// items.
|
||||
if (chanpart->ch_mode == CH_MODE_LSP && listtv.v_type != VAR_DICT)
|
||||
if ((chanpart->ch_mode == CH_MODE_LSP || chanpart->ch_mode == CH_MODE_DAP)
|
||||
&& listtv.v_type != VAR_DICT)
|
||||
{
|
||||
ch_error(channel, "Did not receive a LSP dict, discarding");
|
||||
clear_tv(&listtv);
|
||||
}
|
||||
else if (chanpart->ch_mode != CH_MODE_LSP
|
||||
else if (chanpart->ch_mode != CH_MODE_LSP && chanpart->ch_mode != CH_MODE_DAP
|
||||
&& (listtv.v_type != VAR_LIST || listtv.vval.v_list->lv_len < 2))
|
||||
{
|
||||
if (listtv.v_type != VAR_LIST)
|
||||
@@ -2423,7 +2475,7 @@ channel_has_block_id(chanpart_T *chanpart, int id)
|
||||
/*
|
||||
* Get a message from the JSON queue for channel "channel".
|
||||
* When "id" is positive it must match the first number in the list.
|
||||
* When "id" is zero or negative jut get the first message. But not one
|
||||
* When "id" is zero or negative just get the first message. But not one
|
||||
* in the ch_block_ids list.
|
||||
* When "without_callback" is TRUE also get messages that were pushed back.
|
||||
* Return OK when found and return the value in "rettv".
|
||||
@@ -2445,7 +2497,8 @@ channel_get_json(
|
||||
list_T *l;
|
||||
typval_T *tv;
|
||||
|
||||
if (channel->ch_part[part].ch_mode != CH_MODE_LSP)
|
||||
if (channel->ch_part[part].ch_mode != CH_MODE_LSP
|
||||
&& channel->ch_part[part].ch_mode != CH_MODE_DAP)
|
||||
{
|
||||
l = item->jq_value->vval.v_list;
|
||||
CHECK_LIST_MATERIALIZE(l);
|
||||
@@ -2456,29 +2509,50 @@ channel_get_json(
|
||||
dict_T *d;
|
||||
dictitem_T *di;
|
||||
|
||||
// LSP message payload is a JSON-RPC dict.
|
||||
// For RPC requests and responses, the 'id' item will be present.
|
||||
// For notifications, it will not be present.
|
||||
if (id > 0)
|
||||
if (channel->ch_part[part].ch_mode == CH_MODE_LSP)
|
||||
{
|
||||
if (item->jq_value->v_type != VAR_DICT)
|
||||
goto nextitem;
|
||||
d = item->jq_value->vval.v_dict;
|
||||
if (d == NULL)
|
||||
goto nextitem;
|
||||
// When looking for a response message from the LSP server,
|
||||
// ignore new LSP request and notification messages. LSP
|
||||
// request and notification messages have the "method" field in
|
||||
// the header and the response messages do not have this field.
|
||||
if (dict_has_key(d, "method"))
|
||||
goto nextitem;
|
||||
di = dict_find(d, (char_u *)"id", -1);
|
||||
if (di == NULL)
|
||||
goto nextitem;
|
||||
tv = &di->di_tv;
|
||||
// LSP message payload is a JSON-RPC dict. For RPC requests and
|
||||
// responses, the 'id' item will be present. For notifications,
|
||||
// it will not be present.
|
||||
if (id > 0)
|
||||
{
|
||||
if (item->jq_value->v_type != VAR_DICT)
|
||||
goto nextitem;
|
||||
d = item->jq_value->vval.v_dict;
|
||||
if (d == NULL)
|
||||
goto nextitem;
|
||||
// When looking for a response message from the LSP server,
|
||||
// ignore new LSP request and notification messages. LSP
|
||||
// request and notification messages have the "method" field
|
||||
// in the header and the response messages do not have this
|
||||
// field.
|
||||
if (dict_has_key(d, "method"))
|
||||
goto nextitem;
|
||||
di = dict_find(d, (char_u *)"id", -1);
|
||||
if (di == NULL)
|
||||
goto nextitem;
|
||||
tv = &di->di_tv;
|
||||
}
|
||||
else
|
||||
tv = item->jq_value;
|
||||
}
|
||||
else
|
||||
tv = item->jq_value;
|
||||
{
|
||||
if (id > 0)
|
||||
{
|
||||
if (item->jq_value->v_type != VAR_DICT)
|
||||
goto nextitem;
|
||||
d = item->jq_value->vval.v_dict;
|
||||
if (d == NULL)
|
||||
goto nextitem;
|
||||
di = dict_find(d, (char_u *)"request_seq", -1);
|
||||
if (di == NULL)
|
||||
goto nextitem;
|
||||
tv = &di->di_tv;
|
||||
}
|
||||
else
|
||||
tv = item->jq_value;
|
||||
}
|
||||
}
|
||||
|
||||
if ((without_callback || !item->jq_no_callback)
|
||||
@@ -2860,7 +2934,8 @@ channel_use_json_head(channel_T *channel, ch_part_T part)
|
||||
ch_mode_T ch_mode = channel->ch_part[part].ch_mode;
|
||||
|
||||
return ch_mode == CH_MODE_JSON || ch_mode == CH_MODE_JS
|
||||
|| ch_mode == CH_MODE_LSP;
|
||||
|| ch_mode == CH_MODE_LSP
|
||||
|| ch_mode == CH_MODE_DAP;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -2917,10 +2992,10 @@ may_invoke_callback(channel_T *channel, ch_part_T part)
|
||||
// Get any json message in the queue.
|
||||
if (channel_get_json(channel, part, -1, FALSE, &listtv) == FAIL)
|
||||
{
|
||||
if (ch_mode == CH_MODE_LSP)
|
||||
// In the "lsp" mode, the http header and the json payload may
|
||||
// be received in multiple messages. So concatenate all the
|
||||
// received messages.
|
||||
if (ch_mode == CH_MODE_LSP || ch_mode == CH_MODE_DAP)
|
||||
// In the "lsp" or "dap" mode, the http header and the json
|
||||
// payload may be received in multiple messages. So concatenate
|
||||
// all the received messages.
|
||||
(void)channel_collapse(channel, part, FALSE);
|
||||
|
||||
// Parse readahead, return when there is still no message.
|
||||
@@ -2929,7 +3004,7 @@ may_invoke_callback(channel_T *channel, ch_part_T part)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (ch_mode == CH_MODE_LSP)
|
||||
if (ch_mode == CH_MODE_LSP || ch_mode == CH_MODE_DAP)
|
||||
{
|
||||
dict_T *d = listtv->vval.v_dict;
|
||||
dictitem_T *di;
|
||||
@@ -2937,7 +3012,10 @@ may_invoke_callback(channel_T *channel, ch_part_T part)
|
||||
seq_nr = 0;
|
||||
if (d != NULL)
|
||||
{
|
||||
di = dict_find(d, (char_u *)"id", -1);
|
||||
if (ch_mode == CH_MODE_LSP)
|
||||
di = dict_find(d, (char_u *)"id", -1);
|
||||
else
|
||||
di = dict_find(d, (char_u *)"request_seq", -1);
|
||||
if (di != NULL && di->di_tv.v_type == VAR_NUMBER)
|
||||
seq_nr = di->di_tv.vval.v_number;
|
||||
}
|
||||
@@ -3054,13 +3132,14 @@ may_invoke_callback(channel_T *channel, ch_part_T part)
|
||||
called_otc = FALSE;
|
||||
if (seq_nr > 0)
|
||||
{
|
||||
// JSON or JS or LSP mode: invoke the one-time callback with the
|
||||
// JSON or JS or LSP or DAP mode: invoke the one-time callback with the
|
||||
// matching nr
|
||||
int lsp_req_msg = FALSE;
|
||||
|
||||
// Don't use a LSP server request message with the same sequence number
|
||||
// as the client request message as the response message.
|
||||
if (ch_mode == CH_MODE_LSP && argv[1].v_type == VAR_DICT
|
||||
// Don't use a LSP/DAP server request message with the same sequence
|
||||
// number as the client request message as the response message.
|
||||
if ((ch_mode == CH_MODE_LSP || ch_mode == CH_MODE_DAP)
|
||||
&& argv[1].v_type == VAR_DICT
|
||||
&& dict_has_key(argv[1].vval.v_dict, "method"))
|
||||
lsp_req_msg = TRUE;
|
||||
|
||||
@@ -3079,7 +3158,8 @@ may_invoke_callback(channel_T *channel, ch_part_T part)
|
||||
}
|
||||
}
|
||||
|
||||
if (seq_nr > 0 && (ch_mode != CH_MODE_LSP || called_otc))
|
||||
if (seq_nr > 0 && ((ch_mode != CH_MODE_LSP && ch_mode != CH_MODE_DAP)
|
||||
|| called_otc))
|
||||
{
|
||||
if (!called_otc)
|
||||
{
|
||||
@@ -3271,6 +3351,7 @@ channel_part_info(channel_T *channel, dict_T *dict, char *name, ch_part_T part)
|
||||
case CH_MODE_JSON: s = "JSON"; break;
|
||||
case CH_MODE_JS: s = "JS"; break;
|
||||
case CH_MODE_LSP: s = "LSP"; break;
|
||||
case CH_MODE_DAP: s = "DAP"; break;
|
||||
}
|
||||
dict_add_string(dict, namebuf, (char_u *)s);
|
||||
|
||||
@@ -3712,7 +3793,7 @@ ch_close_part_on_error(
|
||||
// Only send "DETACH" for a netbeans channel.
|
||||
if (channel->ch_nb_close_cb != NULL)
|
||||
channel_save(channel, PART_SOCK, (char_u *)DETACH_MSG_RAW,
|
||||
(int)STRLEN(DETACH_MSG_RAW), FALSE, "PUT ");
|
||||
(int)STRLEN_LITERAL(DETACH_MSG_RAW), FALSE, "PUT ");
|
||||
|
||||
// When reading is not possible close this part of the channel. Don't
|
||||
// close the channel yet, there may be something to read on another part.
|
||||
@@ -3938,10 +4019,10 @@ channel_read_json_block(
|
||||
|
||||
for (;;)
|
||||
{
|
||||
if (mode == CH_MODE_LSP)
|
||||
// In the "lsp" mode, the http header and the json payload may be
|
||||
// received in multiple messages. So concatenate all the received
|
||||
// messages.
|
||||
if (mode == CH_MODE_LSP || mode == CH_MODE_DAP)
|
||||
// In the "lsp" or "dap" mode, the http header and the json payload
|
||||
// may be received in multiple messages. So concatenate all the
|
||||
// received messages.
|
||||
(void)channel_collapse(channel, part, FALSE);
|
||||
|
||||
more = channel_parse_json(channel, part);
|
||||
@@ -4514,7 +4595,7 @@ ch_expr_common(typval_T *argvars, typval_T *rettv, int eval)
|
||||
return;
|
||||
}
|
||||
|
||||
if (ch_mode == CH_MODE_LSP)
|
||||
if (ch_mode == CH_MODE_LSP || ch_mode == CH_MODE_DAP)
|
||||
{
|
||||
dict_T *d;
|
||||
dictitem_T *di;
|
||||
@@ -4527,11 +4608,15 @@ ch_expr_common(typval_T *argvars, typval_T *rettv, int eval)
|
||||
return;
|
||||
|
||||
d = argvars[1].vval.v_dict;
|
||||
di = dict_find(d, (char_u *)"id", -1);
|
||||
if (ch_mode == CH_MODE_LSP)
|
||||
di = dict_find(d, (char_u *)"id", -1);
|
||||
else
|
||||
di = dict_find(d, (char_u *)"seq", -1);
|
||||
if (di != NULL && di->di_tv.v_type != VAR_NUMBER)
|
||||
{
|
||||
// only number type is supported for the 'id' item
|
||||
semsg(_(e_invalid_value_for_argument_str), "id");
|
||||
// only number type is supported for the 'id' or 'seq' item
|
||||
semsg(_(e_invalid_value_for_argument_str),
|
||||
ch_mode == CH_MODE_LSP ? "id" : "seq");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -4539,7 +4624,16 @@ ch_expr_common(typval_T *argvars, typval_T *rettv, int eval)
|
||||
if (dict_has_key(argvars[2].vval.v_dict, "callback"))
|
||||
callback_present = TRUE;
|
||||
|
||||
if (eval || callback_present)
|
||||
if (ch_mode == CH_MODE_DAP)
|
||||
{
|
||||
// DAP message always has a sequence number (id)
|
||||
id = ++channel->ch_last_msg_id;
|
||||
if (di == NULL)
|
||||
dict_add_number(d, "seq", id);
|
||||
else
|
||||
di->di_tv.vval.v_number = id;
|
||||
}
|
||||
else if (eval || callback_present)
|
||||
{
|
||||
// When evaluating an expression or sending an expression with a
|
||||
// callback, always assign a generated ID
|
||||
@@ -4557,7 +4651,7 @@ ch_expr_common(typval_T *argvars, typval_T *rettv, int eval)
|
||||
if (di != NULL)
|
||||
id = di->di_tv.vval.v_number;
|
||||
}
|
||||
if (!dict_has_key(d, "jsonrpc"))
|
||||
if (ch_mode == CH_MODE_LSP && !dict_has_key(d, "jsonrpc"))
|
||||
dict_add_string(d, "jsonrpc", (char_u *)"2.0");
|
||||
text = json_encode_lsp_msg(&argvars[1]);
|
||||
}
|
||||
@@ -4582,7 +4676,7 @@ ch_expr_common(typval_T *argvars, typval_T *rettv, int eval)
|
||||
if (channel_read_json_block(channel, part_read, timeout, id, &listtv)
|
||||
== OK)
|
||||
{
|
||||
if (ch_mode == CH_MODE_LSP)
|
||||
if (ch_mode == CH_MODE_LSP || ch_mode == CH_MODE_DAP)
|
||||
{
|
||||
*rettv = *listtv;
|
||||
// Change the type to avoid the value being freed.
|
||||
@@ -4602,7 +4696,13 @@ ch_expr_common(typval_T *argvars, typval_T *rettv, int eval)
|
||||
}
|
||||
}
|
||||
free_job_options(&opt);
|
||||
if (ch_mode == CH_MODE_LSP && !eval && callback_present)
|
||||
if (ch_mode == CH_MODE_DAP && !eval)
|
||||
{
|
||||
// A DAP message always has a sequence number.
|
||||
if (rettv->vval.v_dict != NULL)
|
||||
dict_add_number(rettv->vval.v_dict, "seq", id);
|
||||
}
|
||||
else if (ch_mode == CH_MODE_LSP && !eval && callback_present)
|
||||
{
|
||||
// if ch_sendexpr() is used to send a LSP message and a callback
|
||||
// function is specified, then return the generated identifier for the
|
||||
|
||||
@@ -674,12 +674,16 @@ build_drop_cmd(
|
||||
int i;
|
||||
char_u *inicmd = NULL;
|
||||
char_u *p;
|
||||
char_u *cdp;
|
||||
string_T cdp;
|
||||
char_u *cwd;
|
||||
// reset wildignore temporarily
|
||||
const char *wig[] =
|
||||
{ "<CR><C-\\><C-N>:let g:_wig=&wig|set wig=",
|
||||
"<C-\\><C-N>:let &wig=g:_wig|unlet g:_wig<CR>"};
|
||||
# define STRING_INIT(s) \
|
||||
{(char_u *)(s), STRLEN_LITERAL(s)}
|
||||
const string_T wig[] = {
|
||||
STRING_INIT("<CR><C-\\><C-N>:let g:_wig=&wig|set wig="),
|
||||
STRING_INIT("<C-\\><C-N>:let &wig=g:_wig|unlet g:_wig<CR>")
|
||||
};
|
||||
# undef STRING_INIT
|
||||
|
||||
if (filec > 0 && filev[0][0] == '+')
|
||||
{
|
||||
@@ -700,7 +704,7 @@ build_drop_cmd(
|
||||
vim_free(cwd);
|
||||
return NULL;
|
||||
}
|
||||
cdp = vim_strsave_escaped_ext(cwd,
|
||||
cdp.string = vim_strsave_escaped_ext(cwd,
|
||||
# ifdef BACKSLASH_IN_FILENAME
|
||||
(char_u *)"", // rem_backslash() will tell what chars to escape
|
||||
# else
|
||||
@@ -708,20 +712,20 @@ build_drop_cmd(
|
||||
# endif
|
||||
'\\', TRUE);
|
||||
vim_free(cwd);
|
||||
if (cdp == NULL)
|
||||
if (cdp.string == NULL)
|
||||
return NULL;
|
||||
cdp.length = STRLEN(cdp.string);
|
||||
ga_init2(&ga, 1, 100);
|
||||
ga_concat(&ga, (char_u *)"<C-\\><C-N>:cd ");
|
||||
ga_concat(&ga, cdp);
|
||||
GA_CONCAT_LITERAL(&ga, "<C-\\><C-N>:cd ");
|
||||
ga_concat_len(&ga, cdp.string, cdp.length);
|
||||
// reset wildignorecase temporarily
|
||||
ga_concat(&ga, (char_u *)wig[0]);
|
||||
ga_concat_len(&ga, wig[0].string, wig[0].length);
|
||||
|
||||
// Call inputsave() so that a prompt for an encryption key works.
|
||||
ga_concat(&ga, (char_u *)
|
||||
"<CR><C-\\><C-N>:if exists('*inputsave')|call inputsave()|endif|");
|
||||
GA_CONCAT_LITERAL(&ga, "<CR><C-\\><C-N>:if exists('*inputsave')|call inputsave()|endif|");
|
||||
if (tabs)
|
||||
ga_concat(&ga, (char_u *)"tab ");
|
||||
ga_concat(&ga, (char_u *)"drop");
|
||||
GA_CONCAT_LITERAL(&ga, "tab ");
|
||||
GA_CONCAT_LITERAL(&ga, "drop");
|
||||
for (i = 0; i < filec; i++)
|
||||
{
|
||||
// On Unix the shell has already expanded the wildcards, don't want to
|
||||
@@ -736,19 +740,19 @@ build_drop_cmd(
|
||||
);
|
||||
if (p == NULL)
|
||||
{
|
||||
vim_free(cdp.string);
|
||||
vim_free(ga.ga_data);
|
||||
return NULL;
|
||||
}
|
||||
ga_concat(&ga, (char_u *)" ");
|
||||
GA_CONCAT_LITERAL(&ga, " ");
|
||||
ga_concat(&ga, p);
|
||||
vim_free(p);
|
||||
}
|
||||
ga_concat(&ga, (char_u *)
|
||||
"|if exists('*inputrestore')|call inputrestore()|endif<CR>");
|
||||
GA_CONCAT_LITERAL(&ga, "|if exists('*inputrestore')|call inputrestore()|endif<CR>");
|
||||
|
||||
// The :drop commands goes to Insert mode when 'insertmode' is set, use
|
||||
// CTRL-\ CTRL-N again.
|
||||
ga_concat(&ga, (char_u *)"<C-\\><C-N>");
|
||||
GA_CONCAT_LITERAL(&ga, "<C-\\><C-N>");
|
||||
|
||||
// Switch back to the correct current directory (prior to temporary path
|
||||
// switch) unless 'autochdir' is set, in which case it will already be
|
||||
@@ -761,34 +765,34 @@ build_drop_cmd(
|
||||
// cd -
|
||||
// endif
|
||||
// endif
|
||||
ga_concat(&ga, (char_u *)":if !exists('+acd')||!&acd|if haslocaldir()|");
|
||||
GA_CONCAT_LITERAL(&ga, ":if !exists('+acd')||!&acd|if haslocaldir()|");
|
||||
# ifdef MSWIN
|
||||
// in case :set shellslash is set, need to normalize the directory separators
|
||||
// '/' is not valid in a filename so replacing '/' by '\\' should be safe
|
||||
ga_concat(&ga, (char_u *)"cd -|lcd -|elseif getcwd()->tr('/','\\') ==# '");
|
||||
GA_CONCAT_LITERAL(&ga, "cd -|lcd -|elseif getcwd()->tr('/','\\') ==# '");
|
||||
# else
|
||||
ga_concat(&ga, (char_u *)"cd -|lcd -|elseif getcwd() ==# '");
|
||||
GA_CONCAT_LITERAL(&ga, "cd -|lcd -|elseif getcwd() ==# '");
|
||||
# endif
|
||||
ga_concat(&ga, cdp);
|
||||
ga_concat(&ga, (char_u *)"'|cd -|endif|endif<CR>");
|
||||
vim_free(cdp);
|
||||
ga_concat_len(&ga, cdp.string, cdp.length);
|
||||
GA_CONCAT_LITERAL(&ga, "'|cd -|endif|endif<CR>");
|
||||
vim_free(cdp.string);
|
||||
// reset wildignorecase
|
||||
ga_concat(&ga, (char_u *)wig[1]);
|
||||
ga_concat_len(&ga, wig[1].string, wig[1].length);
|
||||
|
||||
if (sendReply)
|
||||
ga_concat(&ga, (char_u *)":call SetupRemoteReplies()<CR>");
|
||||
ga_concat(&ga, (char_u *)":");
|
||||
GA_CONCAT_LITERAL(&ga, ":call SetupRemoteReplies()<CR>");
|
||||
GA_CONCAT_LITERAL(&ga, ":");
|
||||
if (inicmd != NULL)
|
||||
{
|
||||
// Can't use <CR> after "inicmd", because a "startinsert" would cause
|
||||
// the following commands to be inserted as text. Use a "|",
|
||||
// hopefully "inicmd" does allow this...
|
||||
ga_concat(&ga, inicmd);
|
||||
ga_concat(&ga, (char_u *)"|");
|
||||
GA_CONCAT_LITERAL(&ga, "|");
|
||||
}
|
||||
// Bring the window to the foreground, goto Insert mode when 'im' set and
|
||||
// clear command line.
|
||||
ga_concat(&ga, (char_u *)"cal foreground()|if &im|star|en|redr|f<CR>");
|
||||
GA_CONCAT_LITERAL(&ga, "cal foreground()|if &im|star|en|redr|f<CR>");
|
||||
ga_append(&ga, NUL);
|
||||
return ga.ga_data;
|
||||
}
|
||||
|
||||
@@ -2965,7 +2965,7 @@ clip_wl_receive_data(Clipboard_T *cbd, const char *mime_type, int fd)
|
||||
|
||||
if (STRCMP(mime_type, VIM_ATOM_NAME) == 0 && buf.ga_len >= 2)
|
||||
{
|
||||
motion_type = *final++;;
|
||||
motion_type = *final++;
|
||||
buf.ga_len--;
|
||||
}
|
||||
else if (STRCMP(mime_type, VIMENC_ATOM_NAME) == 0 && buf.ga_len >= 3)
|
||||
@@ -3136,8 +3136,8 @@ vwl_data_source_listener_event_send(
|
||||
if (is_vimenc)
|
||||
{
|
||||
string[0] = (char_u)motion_type;
|
||||
// strcpy copies the NUL terminator too
|
||||
strcpy((char *)string + 1, (char *)p_enc);
|
||||
// Use vim_strncpy for safer copying
|
||||
vim_strncpy(string + 1, p_enc, STRLEN(p_enc));
|
||||
}
|
||||
else if (is_vim)
|
||||
string[0] = (char_u)motion_type;
|
||||
@@ -3838,7 +3838,8 @@ clip_provider_copy(char_u *reg, char_u *provider)
|
||||
}
|
||||
|
||||
for (int i = 0; i < y_ptr->y_size; i++)
|
||||
if (list_append_string(list, y_ptr->y_array[i].string, -1) == FAIL)
|
||||
if (list_append_string(list, y_ptr->y_array[i].string,
|
||||
(int)y_ptr->y_array[i].length) == FAIL)
|
||||
{
|
||||
free_callback(&callback);
|
||||
list_unref(list);
|
||||
|
||||
@@ -3515,8 +3515,10 @@ ExpandFromContext(
|
||||
{
|
||||
regmatch.regprog = vim_regcomp(pat, magic_isset() ? RE_MAGIC : 0);
|
||||
if (regmatch.regprog == NULL)
|
||||
{
|
||||
vim_free(tofree);
|
||||
return FAIL;
|
||||
|
||||
}
|
||||
// set ignore-case according to p_ic, p_scs and pat
|
||||
regmatch.rm_ic = ignorecase(pat);
|
||||
}
|
||||
@@ -4763,7 +4765,7 @@ copy_substring_from_pos(pos_T *start, pos_T *end, char_u **match,
|
||||
if (!is_single_line)
|
||||
{
|
||||
if (exacttext)
|
||||
ga_concat_len(&ga, (char_u *)"\\n", 2);
|
||||
GA_CONCAT_LITERAL(&ga, "\\n");
|
||||
else
|
||||
ga_append(&ga, '\n');
|
||||
}
|
||||
@@ -4781,7 +4783,7 @@ copy_substring_from_pos(pos_T *start, pos_T *end, char_u **match,
|
||||
return FAIL;
|
||||
ga_concat_len(&ga, line, linelen);
|
||||
if (exacttext)
|
||||
ga_concat_len(&ga, (char_u *)"\\n", 2);
|
||||
GA_CONCAT_LITERAL(&ga, "\\n");
|
||||
else
|
||||
ga_append(&ga, '\n');
|
||||
}
|
||||
|
||||
12
src/dict.c
12
src/dict.c
@@ -817,7 +817,7 @@ dict2string(typval_T *tv, int copyID, int restore_copyID)
|
||||
if (first)
|
||||
first = FALSE;
|
||||
else
|
||||
ga_concat_len(&ga, (char_u *)", ", 2);
|
||||
GA_CONCAT_LITERAL(&ga, ", ");
|
||||
|
||||
tofree = string_quote(hi->hi_key, FALSE);
|
||||
if (tofree != NULL)
|
||||
@@ -825,7 +825,7 @@ dict2string(typval_T *tv, int copyID, int restore_copyID)
|
||||
ga_concat(&ga, tofree);
|
||||
vim_free(tofree);
|
||||
}
|
||||
ga_concat_len(&ga, (char_u *)": ", 2);
|
||||
GA_CONCAT_LITERAL(&ga, ": ");
|
||||
s = echo_string_core(&HI2DI(hi)->di_tv, &tofree, numbuf, copyID,
|
||||
FALSE, restore_copyID, TRUE);
|
||||
if (s != NULL)
|
||||
@@ -994,7 +994,7 @@ eval_dict(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int literal)
|
||||
{
|
||||
emsg(_(e_missing_matching_bracket_after_dict_key));
|
||||
clear_tv(&tvkey);
|
||||
return FAIL;
|
||||
goto failret;
|
||||
}
|
||||
++*arg;
|
||||
}
|
||||
@@ -1370,7 +1370,11 @@ dict_extend_func(
|
||||
|
||||
if (type != NULL && check_typval_arg_type(type, &argvars[1],
|
||||
func_name, 2) == FAIL)
|
||||
{
|
||||
if (is_new)
|
||||
dict_unref(d1);
|
||||
return;
|
||||
}
|
||||
dict_extend(d1, d2, action, func_name);
|
||||
|
||||
if (is_new)
|
||||
@@ -1606,7 +1610,7 @@ dict2list(typval_T *argvars, typval_T *rettv, dict2list_T what)
|
||||
}
|
||||
|
||||
/*
|
||||
* "items()" function
|
||||
* "items(dict)" function
|
||||
*/
|
||||
void
|
||||
dict2items(typval_T *argvars, typval_T *rettv)
|
||||
|
||||
@@ -2174,8 +2174,8 @@ init_homedir(void)
|
||||
if (homedrive != NULL
|
||||
&& strlen(homedrive) + strlen(homepath) < sizeof(buf))
|
||||
{
|
||||
snprintf(buf, sizeof(buf), "%s%s", homedrive, homepath);
|
||||
if (buf[0] != NUL)
|
||||
if (snprintf(buf, sizeof(buf), "%s%s", homedrive, homepath) > 0
|
||||
&& buf[0] != NUL)
|
||||
var = buf;
|
||||
}
|
||||
}
|
||||
|
||||
134
src/drawline.c
134
src/drawline.c
@@ -127,7 +127,6 @@ typedef struct {
|
||||
|
||||
int win_attr; // background for the whole window, except
|
||||
// margins and "~" lines.
|
||||
int wcr_attr; // attributes from 'wincolor'
|
||||
#ifdef FEAT_SYN_HL
|
||||
int cul_attr; // set when 'cursorline' active
|
||||
#endif
|
||||
@@ -261,9 +260,9 @@ handle_foldcolumn(win_T *wp, winlinevars_T *wlv)
|
||||
wlv->c_extra = NUL;
|
||||
wlv->c_final = NUL;
|
||||
if (use_cursor_line_highlight(wp, wlv->lnum))
|
||||
wlv->char_attr = hl_combine_attr(wlv->wcr_attr, HL_ATTR(HLF_CLF));
|
||||
wlv->char_attr = hl_combine_attr(get_win_attr(wp), HL_ATTR(HLF_CLF));
|
||||
else
|
||||
wlv->char_attr = hl_combine_attr(wlv->wcr_attr, HL_ATTR(HLF_FC));
|
||||
wlv->char_attr = hl_combine_attr(get_win_attr(wp), HL_ATTR(HLF_FC));
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -293,9 +292,9 @@ get_sign_display_info(
|
||||
else
|
||||
{
|
||||
if (use_cursor_line_highlight(wp, wlv->lnum))
|
||||
wlv->char_attr = hl_combine_attr(wlv->wcr_attr, HL_ATTR(HLF_CLS));
|
||||
wlv->char_attr = hl_combine_attr(get_win_attr(wp), HL_ATTR(HLF_CLS));
|
||||
else
|
||||
wlv->char_attr = hl_combine_attr(wlv->wcr_attr, HL_ATTR(HLF_SC));
|
||||
wlv->char_attr = hl_combine_attr(get_win_attr(wp), HL_ATTR(HLF_SC));
|
||||
wlv->n_extra = 2;
|
||||
}
|
||||
|
||||
@@ -467,7 +466,7 @@ handle_lnum_col(
|
||||
wlv->c_final = NUL;
|
||||
}
|
||||
wlv->n_extra = number_width(wp) + 1;
|
||||
wlv->char_attr = hl_combine_attr(wlv->wcr_attr, HL_ATTR(HLF_N));
|
||||
wlv->char_attr = hl_combine_attr(get_win_attr(wp), HL_ATTR(HLF_N));
|
||||
#ifdef FEAT_SYN_HL
|
||||
// When 'cursorline' is set highlight the line number of
|
||||
// the current line differently.
|
||||
@@ -481,16 +480,16 @@ handle_lnum_col(
|
||||
&& (wlv->row == lnum_row
|
||||
|| (wlv->row > lnum_row
|
||||
&& (wp->w_p_culopt_flags & CULOPT_LINE))))
|
||||
wlv->char_attr = hl_combine_attr(wlv->wcr_attr, HL_ATTR(HLF_CLN));
|
||||
wlv->char_attr = hl_combine_attr(get_win_attr(wp), HL_ATTR(HLF_CLN));
|
||||
#endif
|
||||
if (wp->w_p_rnu && wlv->lnum < wp->w_cursor.lnum
|
||||
&& HL_ATTR(HLF_LNA) != 0)
|
||||
// Use LineNrAbove
|
||||
wlv->char_attr = hl_combine_attr(wlv->wcr_attr, HL_ATTR(HLF_LNA));
|
||||
wlv->char_attr = hl_combine_attr(get_win_attr(wp), HL_ATTR(HLF_LNA));
|
||||
if (wp->w_p_rnu && wlv->lnum > wp->w_cursor.lnum
|
||||
&& HL_ATTR(HLF_LNB) != 0)
|
||||
// Use LineNrBelow
|
||||
wlv->char_attr = hl_combine_attr(wlv->wcr_attr, HL_ATTR(HLF_LNB));
|
||||
wlv->char_attr = hl_combine_attr(get_win_attr(wp), HL_ATTR(HLF_LNB));
|
||||
}
|
||||
#ifdef FEAT_SIGNS
|
||||
if (num_attr)
|
||||
@@ -608,7 +607,7 @@ handle_showbreak_and_filler(win_T *wp, winlinevars_T *wlv)
|
||||
// required when 'linebreak' is also set.
|
||||
if (wlv->tocol == wlv->vcol)
|
||||
wlv->tocol = wlv->vcol_sbr;
|
||||
// combine 'showbreak' with 'wincolor'
|
||||
// combine 'showbreak' with HLF_WIN
|
||||
wlv->char_attr = hl_combine_attr(wlv->win_attr, HL_ATTR(HLF_AT));
|
||||
# ifdef FEAT_SYN_HL
|
||||
// combine 'showbreak' with 'cursorline'
|
||||
@@ -1661,7 +1660,8 @@ win_line(
|
||||
trailcol += (colnr_T)(ptr - line);
|
||||
}
|
||||
// find end of leading whitespace
|
||||
if (wp->w_lcs_chars.lead || wp->w_lcs_chars.leadmultispace != NULL)
|
||||
if (wp->w_lcs_chars.lead || wp->w_lcs_chars.leadmultispace != NULL ||
|
||||
wp->w_lcs_chars.leadtab1 != NUL)
|
||||
{
|
||||
leadcol = 0;
|
||||
while (VIM_ISWHITE(ptr[leadcol]))
|
||||
@@ -1675,10 +1675,9 @@ win_line(
|
||||
}
|
||||
}
|
||||
|
||||
wlv.wcr_attr = get_wcr_attr(wp);
|
||||
if (wlv.wcr_attr != 0)
|
||||
if (get_win_attr(wp) != 0)
|
||||
{
|
||||
wlv.win_attr = wlv.wcr_attr;
|
||||
wlv.win_attr = get_win_attr(wp);
|
||||
area_highlighting = TRUE;
|
||||
}
|
||||
|
||||
@@ -1992,7 +1991,7 @@ win_line(
|
||||
wlv.c_extra = cmdwin_type;
|
||||
wlv.c_final = NUL;
|
||||
wlv.char_attr =
|
||||
hl_combine_attr(wlv.wcr_attr, HL_ATTR(HLF_AT));
|
||||
hl_combine_attr(get_win_attr(wp), HL_ATTR(HLF_AT));
|
||||
}
|
||||
}
|
||||
#ifdef FEAT_FOLDING
|
||||
@@ -2654,7 +2653,7 @@ win_line(
|
||||
#endif
|
||||
}
|
||||
|
||||
// combine attribute with 'wincolor'
|
||||
// combine attribute with HLF_WIN
|
||||
if (wlv.win_attr != 0)
|
||||
{
|
||||
if (wlv.char_attr == 0)
|
||||
@@ -3260,6 +3259,18 @@ win_line(
|
||||
{
|
||||
int tab_len = 0;
|
||||
long vcol_adjusted = wlv.vcol; // removed showbreak len
|
||||
int lcs_tab1 = wp->w_lcs_chars.tab1;
|
||||
int lcs_tab2 = wp->w_lcs_chars.tab2;
|
||||
int lcs_tab3 = wp->w_lcs_chars.tab3;
|
||||
|
||||
// check if leadtab is set in 'listchars'
|
||||
if (wp->w_p_list && wp->w_lcs_chars.leadtab1 != NUL &&
|
||||
ptr < line + leadcol)
|
||||
{
|
||||
lcs_tab1 = wp->w_lcs_chars.leadtab1;
|
||||
lcs_tab2 = wp->w_lcs_chars.leadtab2;
|
||||
lcs_tab3 = wp->w_lcs_chars.leadtab3;
|
||||
}
|
||||
#ifdef FEAT_LINEBREAK
|
||||
char_u *sbr = get_showbreak_value(wp);
|
||||
|
||||
@@ -3299,9 +3310,9 @@ win_line(
|
||||
tab_len += wlv.vcol_off_co;
|
||||
|
||||
// boguscols before FIX_FOR_BOGUSCOLS macro from above
|
||||
if (wp->w_p_list && wp->w_lcs_chars.tab1
|
||||
&& old_boguscols > 0
|
||||
&& wlv.n_extra > tab_len)
|
||||
if (wp->w_p_list && lcs_tab1 &&
|
||||
old_boguscols > 0 &&
|
||||
wlv.n_extra > tab_len)
|
||||
tab_len += wlv.n_extra - tab_len;
|
||||
# endif
|
||||
if (tab_len > 0)
|
||||
@@ -3309,14 +3320,13 @@ win_line(
|
||||
// If wlv.n_extra > 0, it gives the number of chars
|
||||
// to use for a tab, else we need to calculate the
|
||||
// width for a tab.
|
||||
int tab2_len = mb_char2len(wp->w_lcs_chars.tab2);
|
||||
int tab2_len = mb_char2len(lcs_tab2);
|
||||
len = tab_len * tab2_len;
|
||||
if (wp->w_lcs_chars.tab3)
|
||||
len += mb_char2len(wp->w_lcs_chars.tab3)
|
||||
- tab2_len;
|
||||
if (lcs_tab3)
|
||||
len += mb_char2len(lcs_tab3) - tab2_len;
|
||||
if (wlv.n_extra > 0)
|
||||
len += wlv.n_extra - tab_len;
|
||||
c = wp->w_lcs_chars.tab1;
|
||||
c = lcs_tab1;
|
||||
p = alloc(len + 1);
|
||||
if (p == NULL)
|
||||
wlv.n_extra = 0;
|
||||
@@ -3328,7 +3338,7 @@ win_line(
|
||||
wlv.p_extra_free = p;
|
||||
for (i = 0; i < tab_len; i++)
|
||||
{
|
||||
int lcs = wp->w_lcs_chars.tab2;
|
||||
int lcs = lcs_tab2;
|
||||
|
||||
if (*p == NUL)
|
||||
{
|
||||
@@ -3338,9 +3348,8 @@ win_line(
|
||||
|
||||
// if tab3 is given, use it for the last
|
||||
// char
|
||||
if (wp->w_lcs_chars.tab3
|
||||
&& i == tab_len - 1)
|
||||
lcs = wp->w_lcs_chars.tab3;
|
||||
if (lcs_tab3 && i == tab_len - 1)
|
||||
lcs = lcs_tab3;
|
||||
p += mb_char2bytes(lcs, p);
|
||||
wlv.n_extra += mb_char2len(lcs)
|
||||
- (saved_nextra > 0 ? 1 : 0);
|
||||
@@ -3380,17 +3389,16 @@ win_line(
|
||||
mb_utf8 = FALSE; // don't draw as UTF-8
|
||||
if (wp->w_p_list)
|
||||
{
|
||||
c = (wlv.n_extra == 0 && wp->w_lcs_chars.tab3)
|
||||
? wp->w_lcs_chars.tab3
|
||||
: wp->w_lcs_chars.tab1;
|
||||
c = (wlv.n_extra == 0 && lcs_tab3) ? lcs_tab3
|
||||
: lcs_tab1;
|
||||
#ifdef FEAT_LINEBREAK
|
||||
if (wp->w_p_lbr && wlv.p_extra != NULL
|
||||
&& *wlv.p_extra != NUL)
|
||||
wlv.c_extra = NUL; // using p_extra from above
|
||||
else
|
||||
#endif
|
||||
wlv.c_extra = wp->w_lcs_chars.tab2;
|
||||
wlv.c_final = wp->w_lcs_chars.tab3;
|
||||
wlv.c_extra = lcs_tab2;
|
||||
wlv.c_final = lcs_tab3;
|
||||
n_attr = tab_len + 1;
|
||||
wlv.extra_attr = hl_combine_attr(wlv.win_attr,
|
||||
HL_ATTR(HLF_8));
|
||||
@@ -3626,11 +3634,11 @@ win_line(
|
||||
&& !(lnum_in_visual_area
|
||||
&& vim_strchr(wp->w_p_cocu, 'v') == NULL))
|
||||
{
|
||||
int syntax_conceal = (syntax_flags & HL_CONCEAL) != 0;
|
||||
wlv.char_attr = conceal_attr;
|
||||
if (((prev_syntax_id != syntax_seqnr
|
||||
&& (syntax_flags & HL_CONCEAL) != 0)
|
||||
if (((prev_syntax_id != syntax_seqnr && syntax_conceal)
|
||||
|| has_match_conc > 1)
|
||||
&& (syn_get_sub_char() != NUL
|
||||
&& ((syntax_conceal && syn_get_sub_char() != NUL)
|
||||
|| (has_match_conc && match_conc)
|
||||
|| wp->w_p_cole == 1)
|
||||
&& wp->w_p_cole != 3)
|
||||
@@ -3639,7 +3647,7 @@ win_line(
|
||||
// character.
|
||||
if (has_match_conc && match_conc)
|
||||
c = match_conc;
|
||||
else if (syn_get_sub_char() != NUL)
|
||||
else if (syntax_conceal && syn_get_sub_char() != NUL)
|
||||
c = syn_get_sub_char();
|
||||
else if (wp->w_lcs_chars.conceal != NUL)
|
||||
c = wp->w_lcs_chars.conceal;
|
||||
@@ -4174,20 +4182,34 @@ win_line(
|
||||
// trailing junk to be written out of the screen line
|
||||
// we are building, 'boguscols' keeps track of the number
|
||||
// of bad columns we have advanced.
|
||||
//
|
||||
// For popup windows with fixed width, don't advance col
|
||||
// to allow full text to be displayed.
|
||||
# ifdef FEAT_PROP_POPUP
|
||||
int adjust_col = !WIN_IS_POPUP(wp);
|
||||
# else
|
||||
int adjust_col = TRUE;
|
||||
# endif
|
||||
if (wlv.n_extra > 0)
|
||||
{
|
||||
wlv.vcol += wlv.n_extra;
|
||||
# ifdef FEAT_RIGHTLEFT
|
||||
if (wp->w_p_rl)
|
||||
{
|
||||
wlv.col -= wlv.n_extra;
|
||||
wlv.boguscols -= wlv.n_extra;
|
||||
if (adjust_col)
|
||||
{
|
||||
wlv.col -= wlv.n_extra;
|
||||
wlv.boguscols -= wlv.n_extra;
|
||||
}
|
||||
}
|
||||
else
|
||||
# endif
|
||||
{
|
||||
wlv.col += wlv.n_extra;
|
||||
wlv.boguscols += wlv.n_extra;
|
||||
if (adjust_col)
|
||||
{
|
||||
wlv.col += wlv.n_extra;
|
||||
wlv.boguscols += wlv.n_extra;
|
||||
}
|
||||
}
|
||||
wlv.n_extra = 0;
|
||||
n_attr = 0;
|
||||
@@ -4199,28 +4221,40 @@ win_line(
|
||||
# ifdef FEAT_RIGHTLEFT
|
||||
if (wp->w_p_rl)
|
||||
{
|
||||
--wlv.boguscols;
|
||||
--wlv.col;
|
||||
if (adjust_col)
|
||||
{
|
||||
--wlv.boguscols;
|
||||
--wlv.col;
|
||||
}
|
||||
}
|
||||
else
|
||||
# endif
|
||||
{
|
||||
++wlv.boguscols;
|
||||
++wlv.col;
|
||||
if (adjust_col)
|
||||
{
|
||||
++wlv.boguscols;
|
||||
++wlv.col;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# ifdef FEAT_RIGHTLEFT
|
||||
if (wp->w_p_rl)
|
||||
{
|
||||
--wlv.boguscols;
|
||||
--wlv.col;
|
||||
if (adjust_col)
|
||||
{
|
||||
--wlv.boguscols;
|
||||
--wlv.col;
|
||||
}
|
||||
}
|
||||
else
|
||||
# endif
|
||||
{
|
||||
++wlv.boguscols;
|
||||
++wlv.col;
|
||||
if (adjust_col)
|
||||
{
|
||||
++wlv.boguscols;
|
||||
++wlv.col;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -4293,7 +4327,7 @@ win_line(
|
||||
{
|
||||
#ifdef FEAT_CONCEAL
|
||||
wlv.col -= wlv.boguscols;
|
||||
// Apply 'cursorline' and 'wincolor' highlight.
|
||||
// Apply 'cursorline' and HLF_WIN highlight.
|
||||
if (wlv.boguscols != 0 && (
|
||||
# ifdef LINE_ATTR
|
||||
wlv.line_attr != 0 ||
|
||||
|
||||
@@ -97,6 +97,10 @@ update_screen(int type_arg)
|
||||
#endif
|
||||
int no_update = FALSE;
|
||||
int save_pum_will_redraw = pum_will_redraw;
|
||||
#ifdef FEAT_PROP_POPUP
|
||||
int did_redraw_window = FALSE;
|
||||
#endif
|
||||
bool override_success;
|
||||
|
||||
// Don't do anything if the screen structures are (not yet) valid.
|
||||
if (!screen_valid(TRUE))
|
||||
@@ -316,9 +320,14 @@ update_screen(int type_arg)
|
||||
#endif
|
||||
FOR_ALL_WINDOWS(wp)
|
||||
{
|
||||
override_success = push_highlight_overrides(wp->w_hl, wp->w_hl_len);
|
||||
|
||||
if (wp->w_redr_type != 0)
|
||||
{
|
||||
cursor_off();
|
||||
#ifdef FEAT_PROP_POPUP
|
||||
did_redraw_window = TRUE;
|
||||
#endif
|
||||
#ifdef FEAT_GUI
|
||||
if (!did_one)
|
||||
{
|
||||
@@ -347,6 +356,10 @@ update_screen(int type_arg)
|
||||
cursor_off();
|
||||
win_redr_status(wp, TRUE); // any popup menu will be redrawn below
|
||||
}
|
||||
|
||||
if (override_success)
|
||||
pop_highlight_overrides();
|
||||
|
||||
}
|
||||
#if defined(FEAT_SEARCH_EXTRA)
|
||||
end_search_hl();
|
||||
@@ -363,7 +376,8 @@ update_screen(int type_arg)
|
||||
|
||||
#ifdef FEAT_PROP_POPUP
|
||||
// Display popup windows on top of the windows and command line.
|
||||
update_popups(win_update);
|
||||
if (did_redraw_window || popup_need_redraw())
|
||||
update_popups(win_update);
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_TERMINAL
|
||||
@@ -450,6 +464,7 @@ win_redr_status(win_T *wp, int ignore_pum UNUSED)
|
||||
int row;
|
||||
int fillchar;
|
||||
int attr;
|
||||
int i;
|
||||
static int busy = FALSE;
|
||||
|
||||
// It's possible to get here recursively when 'statusline' (indirectly)
|
||||
@@ -528,8 +543,6 @@ win_redr_status(win_T *wp, int ignore_pum UNUSED)
|
||||
}
|
||||
else if (has_mbyte)
|
||||
{
|
||||
int i;
|
||||
|
||||
// Count total number of display cells.
|
||||
plen = mb_string2cells(p, -1);
|
||||
|
||||
@@ -554,7 +567,11 @@ win_redr_status(win_T *wp, int ignore_pum UNUSED)
|
||||
|
||||
screen_puts(p, row, wp->w_wincol, attr);
|
||||
screen_fill(row, row + 1, plen + wp->w_wincol,
|
||||
this_ru_col + wp->w_wincol, fillchar, fillchar, attr);
|
||||
this_ru_col + wp->w_wincol, fillchar, fillchar, attr);
|
||||
// Fill extra status line rows entirely with fillchar.
|
||||
for (i = 1; i < wp->w_status_height; i++)
|
||||
screen_fill(row + i, row + i + 1, wp->w_wincol,
|
||||
W_ENDCOL(wp), fillchar, fillchar, attr);
|
||||
if ((NameBufflen = get_keymap_str(wp, (char_u *)"<%s>", NameBuff, MAXPATHL)) > 0
|
||||
&& (this_ru_col - plen) > (NameBufflen + 1))
|
||||
screen_puts(NameBuff, row, (int)(this_ru_col - NameBufflen
|
||||
@@ -583,7 +600,8 @@ win_redr_status(win_T *wp, int ignore_pum UNUSED)
|
||||
fillchar = fillchar_status(&attr, wp);
|
||||
else
|
||||
fillchar = fillchar_vsep(&attr, wp);
|
||||
screen_putchar(fillchar, row, W_ENDCOL(wp), attr);
|
||||
for (i = 0; i < wp->w_status_height; i++)
|
||||
screen_putchar(fillchar, row + i, W_ENDCOL(wp), attr);
|
||||
}
|
||||
busy = FALSE;
|
||||
}
|
||||
@@ -616,6 +634,7 @@ redraw_custom_statusline(win_T *wp)
|
||||
void
|
||||
showruler(int always)
|
||||
{
|
||||
bool override_success;
|
||||
if (!always && !redrawing())
|
||||
return;
|
||||
if (pum_visible())
|
||||
@@ -624,12 +643,15 @@ showruler(int always)
|
||||
curwin->w_redr_status = TRUE;
|
||||
return;
|
||||
}
|
||||
override_success = push_highlight_overrides(curwin->w_hl, curwin->w_hl_len);
|
||||
#if defined(FEAT_STL_OPT)
|
||||
if ((*p_stl != NUL || *curwin->w_p_stl != NUL) && curwin->w_status_height)
|
||||
redraw_custom_statusline(curwin);
|
||||
else
|
||||
#endif
|
||||
win_redr_ruler(curwin, always, FALSE);
|
||||
if (override_success)
|
||||
pop_highlight_overrides();
|
||||
|
||||
if (need_maketitle
|
||||
#ifdef FEAT_STL_OPT
|
||||
@@ -3371,7 +3393,12 @@ redraw_statuslines(void)
|
||||
|
||||
FOR_ALL_WINDOWS(wp)
|
||||
if (wp->w_redr_status)
|
||||
{
|
||||
bool ret = push_highlight_overrides(wp->w_hl, wp->w_hl_len);
|
||||
win_redr_status(wp, FALSE);
|
||||
if (ret)
|
||||
pop_highlight_overrides();
|
||||
}
|
||||
if (redraw_tabline)
|
||||
draw_tabline();
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user