Compare commits

...

107 Commits

Author SHA1 Message Date
David Seal
836ed5271e patch 9.1.1663: xxd: 9.1.0023 introduced additional dependency
Problem:  xxd: 9.1.0023 introduced additional dependency
Solution: remove non-native z/OS library call (David Seal)

Commit 48a75f3dfb (Patch 9.1.0023)
introduces a call to __disableautocvt() which can only be found in a
non-native z/OS library.  This requires installing the external zoslib
library in order to work, which is not present on all z/OS systems

So remove the call to __disableautocvt() and rely on library routines
that are available to all z/OS users

See https://ibmruntimes.github.io/zoslib/zos-io_8cc.html for more
details

closes: #18059

Signed-off-by: David Seal <dseal@rocketsoftware.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-20 22:24:56 +02:00
Ayan Banerjee
014d50df80 runtime(systemverilog): Add syntax highlighting for 1800-2023 block strings
closes: #18056

Signed-off-by: Ayan Banerjee <ayanbanrj@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-20 22:19:04 +02:00
Hirohito Higashi
d839a5b3b0 patch 9.1.1662: Issues with proto files: missing or inconsistent prototypes.
Problem:  Issues with proto files: missing or inconsistent prototypes.
Solution: Update ifdefs, move typedefs, fix prototype declaration
          (Hirohito Higashi)

This change focuses on fixes and tweaks found while working on #18045 for
the proto/*.pro files.

The following fixes and tweaks have been made:

- Fixed a prototype declaration where the variable name differed from
  the function definition.
- Removed a prototype declaration without a function body.
- Fixed a problem where a prototype declaration was not created for a
  function definition enclosed in a #if directive because it lacked ||
  defined(PROTO).
- Moved typedef struct soundcb_S soundcb_T; from proto/sound.pro to
  vim.h.
- Other small tweaks.

The make proto mechanism remains unchanged.

closes: #18058

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-20 22:08:13 +02:00
Foxe Chen
c0a3eda6ba patch 9.1.1661: Coverity finds a few issues in clientserver.c
Problem:  Coverity finds a few issues in clientserver.c
          (also by Tony Mechelynck)
Solution: Fix issues and warnings (Foxe Chen)

closes: #18057

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-20 22:00:41 +02:00
glepnir
38315295ef patch 9.1.1660: popups without decoration are positioned wrong at bottom of screen
Problem:  Popups without border/padding/title don't flip position when
          cursor is near bottom of screen, while decorated popups do
          flip correctly.
Solution: Use original height instead of truncated height for position
          inversion check, except for info popups to preserve existing
          behavior (glepnir).

fixes: #12546
closes: #18054

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-20 21:43:15 +02:00
Damien Lejay
bb1233d328 patch 9.1.1659: configure: uses AC_INIT without args
Problem:  configure: uses AC_INIT without args
Solution: Add a comment explaining why AC_INIT has no args
          (Damien Lejay)

closes: #18053

Signed-off-by: Damien Lejay <damien@lejay.be>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-20 21:29:54 +02:00
Christoffer Aasted
bb26f709ea patch 9.1.1658: Missing includes for Wayland headers
Problem:  Missing includes for Wayland headers, when subfolder is used
          (after v9.1.1644)
Solution: Add new $WAYLAND_CPPFLAGS (Christoffer Aasted).

closes: #18051

Signed-off-by: Christoffer Aasted <dezzadk@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-20 21:21:57 +02:00
Girish Palya
196c376682 patch 9.1.1657: Autocompletion adds delay
Problem:  Autocompletion adds delay
          (gcanat, char101, after v9.1.1638)
Solution: Temporarily disable autocomplation (Girish Palya).

related: #17960
fixes: #18022
closes: #18048

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-20 21:20:01 +02:00
zeertzjq
84a343a6ed runtime(doc): correct another problem in :h items()
The returned value is only in arbitrary order for a Dict.

closes: #18050

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-20 21:10:43 +02:00
Christian Brabandt
17b4c7cfa2 patch 9.1.1656: MS-Windows: Patch v9.1.1652 breaks clipboard
Problem:  MS-Windows: Patch v9.1.1652 breaks clipboard
          (ddad431, after v9.1.1652)
Solution: Revert the patch

Revert "patch 9.1.1652: cannot determine non-X11/Wayland clipmethods"

This reverts commit 3e152c76ad.

fixes: #18064

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-20 21:07:07 +02:00
Christian Brabandt
3e44fbf316 patch 9.1.1655: Build-failure in do_mouse()
Problem:  Build-failure in do_mouse()
          (after v9.1.1653)
Solution: Add missing closing paren

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-20 20:56:53 +02:00
Christian Brabandt
e1a435c508 patch 9.1.1654: build failure when FEAT_DIFF is not defined
Problem:  build failure when FEAT_DIFF is not defined
          (John Marriott)
Solution: Remove FEAT_DIFF in proto.h; define dummy type for
          diffline_T and diffline_change_T when FEAT_DIFF is not defined

related: #18026
closes: #18046

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-20 20:37:37 +02:00
Christian Brabandt
2fd9ac7a69 patch 9.1.1653: Coverity complains about Null pointer dereference
Problem:  Coverity complains about Null pointer dereference
          (after v9.1.1643)
Solution: Check that TabPageIdx is not Null

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-20 20:31:08 +02:00
Antonio Giovanni Colombo
aabcca3655 translation(it): Update Italian translation
Signed-off-by: Antonio Giovanni Colombo <azc100@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-20 20:27:11 +02:00
Antonio Giovanni Colombo
a167e8a416 translation(it): update Italian manpage
Signed-off-by: Antonio Giovanni Colombo <azc100@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-20 20:23:29 +02:00
Foxe Chen
3e152c76ad patch 9.1.1652: cannot determine non-X11/Wayland clipmethods
Problem:  Cannot determine non-X11/Wayland clipmethods
Solution: Add the "gui" value to the 'clipmethod' option (Foxe Chen)

closes: #18006

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-18 22:09:27 +02:00
Foxe Chen
96b2154b73 patch 9.1.1651: Cannot use clientserver over socket
Problem:  Cannot use clientserver over Unix domain socket
Solution: Implement socketserver functionality (Foxe Chen).

fixes: #3509
closes: #17839

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-18 21:40:40 +02:00
glepnir
31170af24a patch 9.1.1650: popup: window may not properly resize
Problem:  After scrolling a popup and then using popup_settext() with
          fewer lines, the popup fails to resize properly because
          firstline points beyond the new buffer content (lifepillar)
Solution: In popup_adjust_position(), validate that firstline doesn't
          exceed buffer line count and reset to 0 (auto-position) if it
          does (glepnir)

fixes: #14745
closes: #18031

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-18 21:16:42 +02:00
glepnir
c7c10f8c11 patch 9.1.1649: attrs allocation and fuzzy growarray could leak
Problem:  attrs allocation and fuzzy growarray could leak on early
          returns
Solution: Ensure proper cleanup of allocated memory on exit paths
          (glepnir)

closes: #18038

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-18 21:09:18 +02:00
Jon Parise
2f7e4eb335 runtime(python): optimize pythonSync pattern
Order the keywords by expected frequency: "def" and "class" are assumed
to be more likely than "async def" in the majority of Python code.

closes: #18032

Signed-off-by: Jon Parise <jon@indelible.org>
Signed-off-by: Zvezdan Petkovic <zpetkovic@acm.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-18 21:06:50 +02:00
dependabot[bot]
1526d4f23c CI: Bump actions/checkout from 4 to 5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

closes: #18037

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-18 21:04:30 +02:00
zeertzjq
14afa278c1 patch 9.1.1648: MS-Windows: some style issues with patch v9.1.1646
Problem:  MS-Windows: some style issues with patch v9.1.1646
Solution: Fix typose and code style issues (zeertzjq).

closes: #18036

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-18 21:02:45 +02:00
Christian Brabandt
44c8072ef6 runtime(doc): fix style and clarify items() function for String type
related: #18021

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-18 20:59:22 +02:00
WuJunkai2004
0c4405a6b2 patch 9.1.1647: filetype: Cangjie files are not recognized
Problem:  filetype: Cangjie files are not recognized
Solution: Detect *.cj files as cangjie filetype, include a syntax plugin
          (WuJunkai2004)

This commit introduces a new syntax highlighting file for the Cangjie
programming language, includes 4 parts as required:
- The main syntax file: runtime/syntax/cangjie.vim
- The filetype detection rule in: runtime/filetype.vim
- The documentation update in: runtime/doc/syntax.txt
- Some menus

References:
- https://gitcode.com/Cangjie
- https://cangjie-lang.cn/

fixes: 18014
closes: #18027

Signed-off-by: WuJunkai2004 <wujunkai20041123@outlook.com>
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-18 20:53:34 +02:00
Miguel Barro
a2f13bf782 patch 9.1.1646: MS-Windows: completion cannot handle implicit drive letters
Problem:  MS-Windows: completion cannot handle implicit drive letters
Solution: Consider paths like \folder and /folder as absolute
          (Miguel Barro).

closes: #17829

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Miguel Barro <miguel.barro@live.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-17 22:10:31 +02:00
glepnir
59799f3afa patch 9.1.1645: fuzzy.c can be further improved
Problem:  fuzzy.c can be further improved
Solution: Fix memory leak and refactor it (glepnir).

Optimize performance and memory allocation:

- Fix memory leak in fuzzy_match_in_list.
- using single memory allocation in match_positions
- Improve has_match performance and add null pointer checks

closes: #18012

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-17 21:40:45 +02:00
Damien Lejay
ce288c7fb0 patch 9.1.1644: configure: doesn't separate CPPFLAGS and CFLAGS
Problem:  configure: doesn't separate CPPFLAGS and CFLAGS
Solution: Split CPPFLAGS and CFLAGS for pkg-config
          (Damien Lejay)

Previously, all flags returned by pkg-config --cflags were dumped into
CFLAGS, mixing include paths with compiler options. This commit uses
--cflags-only-I and --cflags-only-other to properly separate include
flags into CPPFLAGS and keep compiler flags in CFLAGS.

closes: #18019

Signed-off-by: Damien Lejay <damien@lejay.be>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-17 21:25:07 +02:00
Yegappan Lakshmanan
308a3130be runtime(doc): Update help for the items() function
closes: #18021

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-17 21:20:34 +02:00
Hirohito Higashi
20a159b557 patch 9.1.1643: tabpanel: mouse code too complicated
Problem:  tabpanel: mouse code too complicated
Solution: Refactor code, adjust ifdefs (Hirohito Higashi).

closes: #18023

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-17 21:09:56 +02:00
Damien Lejay
0ebe55af54 patch 9.1.1642: configure: wrong C99 feature test
Problem:  configure: wrong C99 feature test
Solution: Update inverted C99 feature test logic
          (Damien Lejay)

closes: #18024

Signed-off-by: Damien Lejay <damien@lejay.be>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-17 21:06:59 +02:00
Yegappan Lakshmanan
486cffab3e patch 9.1.1641: a few compiler warnings are output
Problem:  a few compiler warnings are output
Solution: Fix compiler warnings (Yegappan Lakshmanan)

closes: #18025

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-17 21:02:44 +02:00
David Friant
c08b94b072 patch 9.1.1640: Unicode has deprecated some code-points
Problem:  Unicode has deprecated some code-points
Solution: Update the digraph tables to align with the Unicode v16
          release (David Friant)

This commit updates the digraphs Left-Pointing Angle Bracket '</'
and Right-Pointing Angle Bracket '/>' to account for the fact that
the old Unicode codepoints for them (2329 and 232A, respectively)
have been deprecated. As per the Miscellaneous Technical code chart
(https://www.unicode.org/charts/PDF/U2300.pdf), the old digraphs
have been reassigned to the CJK Left Angle Bracket and Right Angle
Bracket (3008 and 3009) with their declaration moved to the
appropriate block.

This commit also introduces the new digraphs '<[' and ']>' to
represent the Mathematical Left Angle Bracket and Mathematical
Right Angle Bracket (27E8 and 27E9) to replace the deprecated code
points in the Technical block.

Tests have been added and, I believe, the documentation has been
updated accordingly.

closes: #17990

Signed-off-by: David Friant <friant@HPEnvyx360.friant.dev>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-16 18:33:05 +02:00
Girish Palya
1e38198a41 patch 9.1.1639: completion: popup may be misplaced
Problem:  During commandline completiom, popup window placement can be
          incorrect when 'noselect' is present in 'wildmode'
          (Shane-XB-Qian)
Solution: Disable "showtail" feature when 'noselect' is present.

fixes: #17969
closes: #18001

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-16 18:13:46 +02:00
Girish Palya
a09b1604d4 patch 9.1.1638: completion: not possible to delay the autcompletion
Problem:  completion: not possible to delay the autcompletion
Solution: add the 'autocompletedelay' option value (Girish Palya).

This patch introduces a new global option 'autocompletedelay'/'acl' that
specifies the delay, in milliseconds, before the autocomplete menu
appears after typing.

When set to a non-zero value, Vim waits for the specified time before
showing the completion popup, allowing users to reduce distraction from
rapid suggestion pop-ups or to fine-tune the responsiveness of
completion.

The default value is 0, which preserves the current immediate-popup
behavior.

closes: #17960

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-16 18:04:04 +02:00
Christian Brabandt
b405c79004 runtime(vim): set 'comments' based on script type (legacy/Vim9)
fixes: #18000

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-16 17:51:40 +02:00
毛逸宁
39f9298cb2 runtime(vim9): Disable shellslash for shellescape() in Open()
fixes: #17995
closes: #18004

Signed-off-by: 毛逸宁 <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-16 17:38:33 +02:00
Yegappan Lakshmanan
3281a0ae62 patch 9.1.1637: FEAT_DIFF used in diff.pro
Problem:  FEAT_DIFF used in diff.pro
Solution: Remove it from the diff protocol file
          (Yegappan Lakshmanan)

closes: #18005

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-16 17:33:53 +02:00
Ivan Pešić
90f5d67840 translation(sr): Update Serbian messages translation
closes: #18009

Signed-off-by: Ivan Pešić <27575106+eevan78@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-16 17:28:19 +02:00
毛逸宁
3cee950fc9 runtime(diff): fix mixed translations in zh_CN
some translations confused zh_CN and zh_TW

Signed-off-by: 毛逸宁 <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-16 17:22:36 +02:00
Yegappan Lakshmanan
d6a762fe1b patch 9.1.1636: style issues
Problem:  style issues
Solution: Fix indentation of function parameters exceeding 80 character
          length (Yegappan Lakshmanan).

closes: #18013

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-16 16:26:54 +02:00
Naruhiko Nishino
62f5be6ea6 patch 9.1.1635: tabpanel: cannot drag inactive tabs
Problem:  tabpanel: cannot drag inactive tabs (char101)
Solution: use end_visual_mode_keep_button() instead of end_visual_mode()
          (Naruhiko Nishino)

fixes: #17986
closes: #18016

Signed-off-by: Naruhiko Nishino <naru123456789@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-16 16:09:02 +02:00
Foxe Chen
126bc4690f patch 9.1.1634: Clipboard code can be improved
Problem:  Clipboard code can be improved
Solution: Slightly refactor code (Foxe Chen).

This commit does the following:
-  Use garray_T when receiving data instead of manually reallocing
-  formatting fixes
-  skip Wayland test that requires clientserver if x11 not compiled
-  Make some functions static

closes: #17999

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-14 22:09:45 +02:00
zeertzjq
ade0815856 patch 9.1.1633: Search pattern shown incorrectly with negative offset
Problem:  Search pattern shown incorrectly with negative offset.
          (lkintact)
Solution: Don't prepend a '+' sign to a negative offset (zeertzjq).

fixes: #17993
closes: #17994

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-14 21:19:37 +02:00
glepnir
03d6e06edd patch 9.1.1632: memory leak in fuzzy.c
Problem:  memory leak in fuzzy.c
Solution: Free fuzmatch, add a few minor refactors
          (glepnir)

fixes neovim CID 584055: fuzmatch leak when count becomes 0
Fix partial allocation failure cleanup in buffer expansion

closes: #17996

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-14 21:15:44 +02:00
Yegappan Lakshmanan
bb07b1ac14 patch 9.1.1631: proto files are outdated
Problem:  proto files are outdated
Solution: Regenerate proto files (Yegappan Lakshmanan)

closes: #17997

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-14 21:00:51 +02:00
zeertzjq
891353671a patch 9.1.1630: tests: fuzzy bufname completion test doesn't match successfully
Problem:  tests: fuzzy buffer name completion test doesn't match
          successfully (after 9.1.1627).
Solution: Update pattern to account for the change in case sensitivity.
          Also mark Test_search_stat_option() as flaky as it can still
          sometimes fail (zeertzjq).

closes: #17992

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-14 20:34:08 +02:00
Yegappan Lakshmanan
706b6f5867 patch 9.1.1629: Vim9: Not able to use more than 10 type arguments in a generic function
Problem:  Vim9: Not able to use more than 10 type arguments in a generic
          function
Solution: Initialize the types after reading all the type arg variable
          names (Yegappan Lakshmanan)

closes: #17981

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-13 22:39:37 +02:00
Jon Parise
1ee1d9b43d runtime(python): highlight "self" and "cls" in syntax script
These are special names by convention, and giving them distinct
highlighting is a nice visual clue (using Identifier by default).

This group is named "pythonClassVar" to match the name used by
python-syntax. Some third-party color schemes are aware of this
name and customized their colors accordingly.

closes: #17968

Signed-off-by: Jon Parise <jon@indelible.org>
Signed-off-by: Zvezdan Petkovic <zpetkovic@acm.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-13 22:37:31 +02:00
Shane-XB-Qian
dd9ed09d8e runtime(vimgoto): make gf extract packadd/colo name more flexible
closes: #17983

Signed-off-by: Shane-XB-Qian <shane.qian@foxmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-13 22:31:09 +02:00
glepnir
17a6d696bd patch 9.1.1628: fuzzy.c has a few issues
Problem:  fuzzy.c has a few issues
Solution: Use Vims memory management, update style
          (glepnir)

Problem:
- Missing cleanup of lmatchpos lists causing memory leaks
- Missing error handling for list operations
- Use of malloc() instead of Vim's alloc() functions
- Inconsistent C-style comments
- Missing null pointer checks for memory allocation
- Incorrect use of vim_free() for list objects

Solution:
- Add proper cleanup of lmatchpos in done section using list_free()
- Set lmatchpos to NULL after successful transfer to avoid confusion
- Add error handling for list_append_tv() failures
- Replace malloc() with alloc() and add null pointer checks
- Convert C-style comments to C++ style for consistency
- Fix vim_free() calls to use list_free() for list objects

closes: #17984

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-13 22:02:30 +02:00
Girish Palya
c93a2b3327 runtime(doc): Adapt fuzzy doc to reflect 'fzy' algorithm
closes: #17988

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-13 21:53:53 +02:00
Girish Palya
7e0df5eee9 patch 9.1.1627: fuzzy matching can be improved
Problem:  fuzzy-matching can be improved
Solution: Implement a better fuzzy matching algorithm
          (Girish Palya)

Replace fuzzy matching algorithm with improved fzy-based implementation

The
[current](https://www.forrestthewoods.com/blog/reverse_engineering_sublime_texts_fuzzy_match/)
fuzzy matching algorithm has several accuracy issues:

* It struggles with CamelCase
* It fails to prioritize matches at the beginning of strings, often
  ranking middle matches higher.

After evaluating alternatives (see my comments
[here](https://github.com/vim/vim/issues/17531#issuecomment-3112046897)
and
[here](https://github.com/vim/vim/issues/17531#issuecomment-3121593900)),
I chose to adopt the [fzy](https://github.com/jhawthorn/fzy) algorithm,
which:

* Resolves the aforementioned issues.
* Performs better.

Implementation details

This version is based on the original fzy
[algorithm](https://github.com/jhawthorn/fzy/blob/master/src/match.c),
with one key enhancement: **multibyte character support**.

* The original implementation supports only ASCII.
* This patch replaces ascii lookup tables with function calls, making it
  compatible with multibyte character sets.
* Core logic (`match_row()` and `match_positions()`) remains faithful to
  the original, but now operates on codepoints rather than single-byte
  characters.

Performance

Tested against a dataset of **90,000 Linux kernel filenames**. Results
(in milliseconds) show a **\~2x performance improvement** over the
current fuzzy matching algorithm.

```
Search String            Current Algo    FZY Algo
-------------------------------------------------
init                          131.759    66.916
main                          83.688     40.861
sig                           98.348     39.699
index                         109.222    30.738
ab                            72.222     44.357
cd                            83.036     54.739
a                             58.94      62.242
b                             43.612     43.442
c                             64.39      67.442
k                             40.585     36.371
z                             34.708     22.781
w                             38.033     30.109
cpa                           82.596     38.116
arz                           84.251     23.964
zzzz                          35.823     22.75
dimag                         110.686    29.646
xa                            43.188     29.199
nha                           73.953     31.001
nedax                         94.775     29.568
dbue                          79.846     25.902
fp                            46.826     31.641
tr                            90.951     55.883
kw                            38.875     23.194
rp                            101.575    55.775
kkkkkkkkkkkkkkkkkkkkkkkkkkkkk 48.519     30.921
```

```vim
vim9script

var haystack = readfile('/Users/gp/linux.files')

var needles = ['init', 'main', 'sig', 'index', 'ab', 'cd', 'a', 'b',
'c', 'k',
    'z', 'w', 'cpa', 'arz', 'zzzz', 'dimag', 'xa', 'nha', 'nedax',
'dbue',
    'fp', 'tr', 'kw', 'rp', 'kkkkkkkkkkkkkkkkkkkkkkkkkkkkk']
for needle in needles
    var start = reltime()
    var tmp = matchfuzzy(haystack, needle)
    echom $'{needle}' (start->reltime()->reltimefloat() * 1000)
endfor
```

Additional changes

* Removed the "camelcase" option from both matchfuzzy() and
  matchfuzzypos(), as it's now obsolete with the improved algorithm.

related: neovim/neovim#34101
fixes #17531
closes: #17900

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-12 22:22:52 +02:00
Anttoni Erkkilä
5ba6e41d37 patch 9.1.1626: cindent: does not handle compound literals
Problem:  C-indent does not handle compound literals
          (@44100hertz, @Jorenar)
Solution: Detect and handle compound literal and structure
          initialization (Anttoni Erkkilä)

match '=' or "return" optionally followed by &, (typecast), {
Fixes also initialization which begins with multiple opening braces.

fixes: #2090
fixes: #12491
closes: #17865

Signed-off-by: Anttoni Erkkilä <anttoni.erkkila@protonmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-12 21:59:06 +02:00
Girish Palya
59e1d7f353 patch 9.1.1625: Autocompletion slow with include- and tag-completion
Problem:  Autocompletion slow with include- and tag-completion
Solution: Refactor ins_compl_interrupted() to also check for timeout,
          further refactor code to skip outputting message when
          performing autocompletion (Girish Palya).

Running `vim *` in `vim/src` was slower than expected when
'autocomplete' was enabled. Include-file and tag-file completion
sources were not subject to the timeout check, causing unnecessary
delays.

So apply the timeout check to these sources as well, improving
autocompletion responsiveness, refactor find_pattern_in_path() to take
an additional "silent" argument, to suppress any messages.

closes: #17966

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-12 21:38:56 +02:00
Shane-XB-Qian
639d93fc0e runetime(vim): gf maybe hang and fail
* searching'**' maybe terrible slow
* searching '**/plugin/' maybe fail
* the pattern for the :packadd/:import/:colorscheme
  did not consistently check for a colon, so always use
  '\%(:\s*\)\=' before the actual ex command

While at it rename the generic name vim.vim to vimgoto.vim as this more
clearly states what this script is for.

Signed-off-by: Shane-XB-Qian <shane.qian@foxmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-12 21:28:28 +02:00
Shane-XB-Qian
487dd1716a runtime(vim): cannot jump to :colorscheme files
Problem:  cannot jump to :colorscheme files
Solution: Let runtime/autoload/vim.vim handle :colorscheme lines

closes: #17971

Signed-off-by: Shane-XB-Qian <shane.qian@foxmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-12 21:16:28 +02:00
Damien Lejay
397b9da29d patch 9.1.1624: Cscope not enabled on MacOS
Problem:  Cscope not enabled on MacOS
Solution: Remove #ifdef test for MacOS and always enable FEAT_CSCOPE on
          Unix (Damien Lejay).

Remove the !MACOS_X guard from FEAT_CSCOPE in feature.h. macOS has been a
certified UNIX since 10.5 and supports cscope without issues. This guard
originated in the pre-OS X era when Classic MacOS lacked the required
POSIX APIs. MacVim already ships with +cscope successfully.

closes: #17976

Signed-off-by: Damien Lejay <damien@lejay.be>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-12 20:46:50 +02:00
Damien Lejay
d1833d2827 runtime(doc): allow more C99 features
closes: #17965

Signed-off-by: Damien Lejay <damien@lejay.be>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-11 20:51:34 +02:00
Jon Parise
dba9eb46e6 runtime(python): Also sync syntax at 'async def'
A file containing only async functions (`async def func()`) wouldn't
previously match the pythonSync pattern.

Also, this pattern only matches at the beginning of the line, so it
won't ever match method definitions (which are indented within class
scopes). Update the comment accordingly.

closes: #17963

Signed-off-by: Jon Parise <jon@indelible.org>
Signed-off-by: Zvezdan Petkovic <zpetkovic@acm.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-11 20:33:33 +02:00
Christian Brabandt
6b9cf3139a runtime(doc): update :call with a range and remove space
Commit fc3c204bbe introduced a spurious space with the
:call command

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-10 14:52:03 +02:00
Christian Brabandt
8b183450ad runtime(doc): Fix 2 minor issues after 32d6bd6df
related: #17879

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-10 14:49:05 +02:00
Rob B
a94a0555d9 runtime(python): Highlight f-string replacement fields in Python
Highlight f-string replacement fields, including

- Comments
- Debugging flags
- Conversion fields
- Format specifications
- Delimiters

Syntax inside fields will be addressed in a separate commit.

related: #10734
related: #14033
closes: #17784

Signed-off-by: Rob B <github@0x7e.net>
Signed-off-by: Zvezdan Petkovic <zpetkovic@acm.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-10 10:35:31 +02:00
Jon Parise
48b7eb1ceb runtime(python): Highlight classes as structures
Class and function definitions previously shared a single highlight
group (pythonFunction). This change gives classes their own highlight
group (pythonClass) that's linked to Structure.

closes: #17856

Signed-off-by: Jon Parise <jon@indelible.org>
Signed-off-by: Zvezdan Petkovic <zpetkovic@acm.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-10 10:32:41 +02:00
Damien Lejay
e32465190c CI: Add Lychee CI test to check for broken links
closes: #17879

Signed-off-by: Damien Lejay <damien@lejay.be>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-10 10:28:58 +02:00
Damien Lejay
32d6bd6df2 runtime(doc): remove dead links
related: #17879

Signed-off-by: Damien Lejay <damien@lejay.be>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-10 10:28:16 +02:00
Yee Cheng Chin
8f9de4991e patch 9.1.1623: Buffer menu does not handle unicode names correctly
Problem:  Buffer menu does not handle unicode names correctly
          (after v9.1.1622)
Solution: Fix the BMHash() function (Yee Cheng Chin)

The Buffers menu uses a BMHash() function to generate a sortable number
to be used for the menu index. It used a naive (and incorrect) way of
encoding multiple ASCII values into a single integer, but assumes each
character to be only in the ASCII 32-96 range. This means if we use
non-ASCII file names (e.g. Unicode values like CJK or emojis) we get
integer underflow and overflow, causing the menu index to wrap around.
Vim's GUI implementations internally use a signed 32-bit integer for the
`gui_mch_add_menu_item()` function and so we need to make sure the menu
index is in the (0, 2^31-1) range.

To do this, if the file name starts with a non-ASCII value, we just use
the first character's value and set the high bit so it sorts after the
other ASCII ones. Otherwise, we just take the first 5 characters, and
use 5 bit for each character to encode a 30-bit number that can be
sorted.

This means Unicode file names won't be sorted beyond the first
character. This is likely going to be fine as there are lots of ways to
query buffers.

related: #17403
closes: #17928

Signed-off-by: Yee Cheng Chin <ychin.git@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-10 10:09:38 +02:00
Yee Cheng Chin
cda0d17f59 patch 9.1.1622: Patch v9.1.1432 causes performance regressions
Problem:  Patch v9.1.1432 causes performance regressions
Solution: Revert "patch 9.1.1432: GTK GUI: Buffer menu does not handle
          unicode correctly" (Yee Cheng Chin).

This reverts commit 08896dd330.

The previous change to support Unicode characters properly in the
buffers menu resorted to removing all buffer menus and re-add the
buffers after doing a sort, per each buffer addition. This was quite
slow because if Vim is trying to load in multiple buffers at once (e.g.
when loading a session) this scales in O(n^2) and Vim can freeze for
dozens of seconds when adding a few hundred buffers.

related: #17405
related: #17928
fixes: #17897

Signed-off-by: Yee Cheng Chin <ychin.git@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-10 10:05:29 +02:00
Girish Palya
da9c966893 patch 9.1.1621: flicker in popup menu during cmdline autocompletion
Problem:  When the popup menu (PUM) occupies more than half the screen
          height, it flickers whenever a character is typed or erased.
          This happens because the PUM is cleared and the screen is
          redrawn before a new PUM is rendered. The extra redraw between
          menu updates causes visible flicker.
Solution: A complete, non-hacky fix would require removing the
          CmdlineChanged event from the loop and letting autocompletion
          manage the process end-to-end. This is because screen redraws
          after any cmdline change are necessary for other features to
          work.
          This change modifies wildtrigger() so that the next typed
          character defers the screen update instead of redrawing
          immediately. This removes the intermediate redraw, eliminating
          flicker and making cmdline autocompletion feel smooth
          (Girish Palya).

Trade-offs:
This behavior change in wildtrigger() is tailored specifically for
:h cmdline-autocompletion. wildtrigger() now has no general-purpose use
outside this scenario.

closes: #17932

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-10 09:55:18 +02:00
Dietrich Moerman
4fca92faa2 patch 9.1.1620: filetype: composer.lock and symfony.lock files not recognized
Problem:  filetype: composer.lock and symfony.lock files not recognized
Solution: Detect composer.lock and symfony.lock files as json filetype
          (Dietrich Moerman)

closes: #17945

Signed-off-by: Dietrich Moerman <dietrich.moerman@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-10 09:44:42 +02:00
zeertzjq
b362995430 patch 9.1.1619: Incorrect E535 error message
Problem:  Incorrect E535 error message (after 9.1.1603).
Solution: Don't use transchar(), as the character is always printable
          (zeertzjq).

closes: #17948

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-10 09:41:50 +02:00
veotos
fc3c204bbe runtime(doc): Fix style and typos in builtin.txt and usr_41.txt
- Reformat parts to fit into 80 column window.
- Fix example with mandatory call with a range.
  https://github.com/vim/vim/discussions/17950#discussioncomment-14055687
- Remove some duplicate information

closes: #17949

Signed-off-by: veotos <veotos@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-10 09:38:01 +02:00
Robert Muir
8e2a229189 patch 9.1.1618: completion: incorrect selected index returned from complete_info()
Problem:  completion: incorrect selected index returned from
          complete_info()
Solution: Return the index into "items" and restore the previous
          behaviour (Robert Muir).

complete_info() returned an incorrect selected index after
0ac1eb3555 (Patch v9.1.1311). Effectively
it became an index into "matches" instead of "items". Return the index
into "items" by default to restore the previous behavior, unless
"matches" was requested.

closes: #17952

Co-authored-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Robert Muir <rmuir@apache.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-10 09:19:36 +02:00
Yegappan Lakshmanan
1434ea03b1 patch 9.1.1617: Vim9: some error messages can be improved
Problem:  Vim9: some error messages can be improved
Solution: Improve error messages when parsing generic function type
          arguments (Yegappan Lakshmanan).

closes: #17957

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-10 09:15:03 +02:00
Hirohito Higashi
57eb1d496b runtime(doc): Tweak documentation style
closes: #17959

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-10 09:12:46 +02:00
Christian Brabandt
eeef7c7743 patch 9.1.1616: xxd: possible buffer overflow with bitwise output
Problem:  xxd: possible buffer overflow with bitwise output
          (after v9.1.1459, Xudong Cao)
Solution: Update LLEN_NO_COLOR macro definition for the max line output
          (using bitwise output -b)

fixes: #17944
closes: #17947

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-10 00:06:51 +02:00
Christian Brabandt
887b4981e7 patch 9.1.1615: diff format erroneously detected
Problem:  diff format erroneously detected
          (Tomáš Janoušek)
Solution: Make the regex to detect normal diff format a bit stricter,
          while at it, fix wrong test content from patch v9.1.1606

fixes: #17946

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-10 00:01:21 +02:00
Yegappan Lakshmanan
f56f490ca2 patch 9.1.1614: Vim9: possible variable type change
Problem:  Vim9: possible variable type change when using closure in a
          for loop (Maxim Kim)
Solution: Use unwind_locals(..., TRUE) (Yegappan Lakshmanan)

fixes: #17844
closes: #17951

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-09 23:55:34 +02:00
Christian Brabandt
a2bb21a895 patch 9.1.1613: tests: test_search leaves a few swapfiles behind
Problem:  tests: test_search leaves a few swapfiles behind
Solution: Use :bw! instead of :close to close the swapfile at the end of
          the test.

related: #17933

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-09 23:49:47 +02:00
Christian Brabandt
c03990d30f patch 9.1.1612: Ctrl-G/Ctrl-T do not ignore the end search delimiter
Problem:  Ctrl-G/Ctrl-T does not ignore the end search delimiter
          (irisjae)
Solution: Check if the pattern ends with a search delimiter and ignore
          it, unless it is part of the pattern.

fixes: #17895
closes: #17933

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-09 23:47:01 +02:00
Áron Hárnási
c43a0614d4 patch 9.1.1611: possible undefined behaviour in mb_decompose()
Problem:  possible undefined behaviour in mb_decompose(), when using the
          same pointer as argument several times
Solution: use separate assignments to avoid reading and writing the same
          object at the same time (Áron Hárnási)

closes: #17953

Signed-off-by: Áron Hárnási <aron.harnasi@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-09 23:43:13 +02:00
Doug Kearns
c65643cbec runtime(vim): Update ftplugin, fix option variable 'keywordprg' matching
- Match &option, and &[lg]:option variables.
- Match Ex commands after :bar.
- Fix matching of pre and post context text.
- Style - use '..' for string concatenation.

fixes #17567
closes: #17653

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-09 23:41:21 +02:00
D. Ben Knoble
7270a5a843 runtime(racket): update Racket runtime files
This brings the upstream files to commit 9dc3bd3 (ftplugin: escape Vim
special characters when opening docs, 2025-08-09). Note that not all
upstream files are included.

closes: #17956

Signed-off-by: D. Ben Knoble <ben.knoble+github@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-09 23:38:07 +02:00
RestorerZ
7f8ad9b374 translation: Generate year for MS Windows differently
Commit 22fc41f1f7 used wmic to generate
the year, however it may not always be available. So use Powershell
directly.

related: #17855
closes: #17955

Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-09 23:35:11 +02:00
zeertzjq
982cda6976 patch 9.1.1610: completion: hang or E684 when 'tagfunc' calls complete()
Problem:  completion: hang (after 9.1.1471) or E684 (after 9.1.1410)
          when 'tagfunc' calls complete().
Solution: Check if complete() has been called immediately after getting
          matches instead of in the next loop iteration (zeertzjq).

related: #1668
related: neovim/neovim#34416
related: neovim/neovim#35163
closes: #17929

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-08 16:05:23 +02:00
Christian Brabandt
bc51ec53d0 runtime(doc): Update CONTRIBUTING and clarify use of Vim9 script
related: #17871

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-08 15:49:43 +02:00
Girish Palya
761ea77670 patch 9.1.1609: complete: Heap-buffer overflow with complete function
Problem:  complete: Heap-buffer overflow with complete function
          (zeertzjq)
Solution: Do not let startcol become negative (Girish Palya).

fixes: #17907
closes: #17934

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Co-authored-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-08 15:42:27 +02:00
Christian Brabandt
b89ff6c2e1 runtime(c): set omnifunc only for Vim, since it is Vim9 Script
related: #17871

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-08 13:45:25 +02:00
Maxim Kim
fa2bcbdebc runtime(vim): add simple vimscript complete function
closes: #17871

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-08 13:42:49 +02:00
Christian Brabandt
25599902ca runtime(script): Update Last Change Header
This was missing from Patch v9.1.1606
(Commit: eb2aebeb79)

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-08 13:35:55 +02:00
Doug Kearns
126731c8fd patch 9.1.1608: No command-line completion for :unsilent {command}
Problem:  No command-line completion for :unsilent {command}.
Solution: Add missing command arg completion (Doug Kearns).
          (author)

Add completion tests for all command modifiers.

closes: #17524

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-08 13:34:04 +02:00
Hirohito Higashi
efd83d441b patch 9.1.1607: :apple command detected as :append
Problem:  :apple command detected as :append (dai475694450)
Solution: Disallow to define a custom command with lower-case letter,
          correctly detect :insert/:change/:append ex commands
          (Hirohito Higashi).

fixes: #17893
closes: #17930

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-08 13:25:27 +02:00
lacygoill
eb2aebeb79 patch 9.1.1606: filetype: a few more files are not recognized
Problem:  filetype: a few more files are not recognized
Solution: guess Mail, Info and Terminfo files by its content
          (lacygoill)

closes: #17880

Signed-off-by: lacygoill <lacygoill@lacygoill.me>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-08 13:17:57 +02:00
kuuote
8a65a49d50 patch 9.1.1605: cannot specify scope for chdir()
Problem:  Cannot specify scope for chdir()
Solution: Add optional scope argument (kuuote)

closes: #17888

Signed-off-by: kuuote <znmxodq1@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-08 13:09:25 +02:00
Girish Palya
d82c918e2f runtime(doc): Improve doc for cmdline-autocomplete
Maybe this was unnecessary, but saw this:
https://github.com/vim/vim/issues/17854

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-08 13:03:43 +02:00
Damien Lejay
46ec899026 runtime(doc): update develop assumptions
closes: #17892

Signed-off-by: Damien Lejay <damien@lejay.be>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-08 12:51:23 +02:00
Girish Palya
04c9e78cd3 patch 9.1.1604: completion: incsearch highlight might be lost
Problem:  completion: incsearch highlight might be lost after search
          completion (Hirohito Higashi)
Solution: Restore incsearch highlight after dismissing pum with Ctrl-E
          (Girish Palya)

related: #17870
closes: #17891

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-08 12:42:10 +02:00
RestorerZ
3be4ad76df runtime(optwin): Fix E94 when searching for the option-window
Problem:  When the parameter debug=msg is set and the command :option is
          entered, error E94 will be displayed.
Solution: Add a check for the existence of the buffer before getting the
          buffer number “option-window”.

Reproduce:

vim --clean -c "set debug=msg" -c "option"

    Error detected while processing command line..script D:\Programs\Vim\vim91\optwin.vim:
    line 9: E94: No matching buffer for option-window

closes: #17927

Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-08 12:38:33 +02:00
Girish Palya
1bfe86a7d3 patch 9.1.1603: completion: cannot use autoloaded funcs in 'complete' F{func}
Problem:  completion: cannot use autoloaded funcs in 'complete' F{func}
          (Maxim Kim)
Solution: Make it work (Girish Palya)

fixes: #17869
closes: #17885

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-08 12:30:35 +02:00
Aliaksei Budavei
7132935413 runtime(java): Manage byte limits for variable-width lookbehind assertions
Raise the byte limits from 80 to 120 for "javaFuncDef" and
"java*CommentTitle"; and support selecting other arbitrary
values with
------------------------------------------------------------
	let g:java_lookbehind_byte_counts = {
		\ 'javaMarkdownCommentTitle': 240,
	\ }
------------------------------------------------------------

for related groups of syntax definitions, referring to their
names with dictionary keys.

Over-80-Byte-Limit Lookbehind Examples:
https://raw.githubusercontent.com/openjdk/jdk/refs/tags/jdk-24%2B36/src/java.base/share/classes/sun/security/x509/NamedX509Key.java [Lines 43 & 44]
https://raw.githubusercontent.com/openjdk/jdk/refs/tags/jdk-24%2B36/src/jdk.compiler/share/classes/com/sun/tools/javac/util/GraphUtils.java [Line 154]

closes: #17921

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-08 10:50:19 +02:00
Phạm Bình An
adfea9b4e6 runtime(help): Unset 'comments' and 'cms' options
Problem:  Vim's help file doesn't have any syntax for comments, but
          'comments' and 'commentstring' are still set in the help
          buffer.
Solution: Unset 'comments' and 'cms' in help buffer

closes: #17889

Signed-off-by: Phạm Bình An <111893501+brianhuster@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-08 10:44:18 +02:00
Christian Brabandt
6a6a44ffb5 runtime(netrw): netrw#BrowseX() needs to distinguish local and remote file
fixes: #17794

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-07 20:23:16 +02:00
rhysd
66d8d286cd runtime(typescript): Add syntax support for defer and arbitrary module identifiers
closes: #17911

Signed-off-by: rhysd <lin90162@yahoo.co.jp>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-07 20:08:42 +02:00
RestorerZ
22fc41f1f7 translation: Auto-generate headers for the vim.pot file
closes: #17855

Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-07 16:17:28 +02:00
Xudong Zheng
d305729bc5 patch 9.1.1602: filetype: requirements-*.txt files are not recognized
Problem:  filetype: requirements-*.txt files are not recognized
Solution: Detect requirements-*.txt files as requirements filetype
          (Xudong Zheng).

References:
- https://github.com/search?q=path%3Arequirements-*.txt&type=code
- https://github.com/zephyrproject-rtos/zephyr/tree/v4.2.0/scripts

closes: #17894

Signed-off-by: Xudong Zheng <7pkvm5aw@slicealias.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-07 15:55:49 +02:00
Hirohito Higashi
6abe5e4904 patch 9.1.1601: Patch v8.1.0425 was wrong
Problem:  Patch v8.1.0425 was wrong
Solution: Revert that patch (Hirohito Higashi)

This is because the root cause was fixed in 8.1.0786 and a regression
occurred elsewhere.

related: #3455
related: #3830
fixes: #11558
closes: #17899

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-07 15:51:25 +02:00
veotos
c849b17e19 runtime(netrw): Use correct "=~#" for the netrw_sizestyle='H' option
Correct expression syntax to match case in if and if-else clauses.

related: #8535
closes: #17901

Signed-off-by: veotos <veotos@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-07 15:48:11 +02:00
Squibid
93f6454724 runtime(openscad): add a filetype plugin
closes: #17902

Signed-off-by: Squibid <me@zacharyscheiman.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-07 15:42:54 +02:00
259 changed files with 8108 additions and 2701 deletions

2
.github/MAINTAINERS vendored
View File

@@ -243,6 +243,7 @@ runtime/ftplugin/nu.vim @mrcjkb
runtime/ftplugin/octave.vim @dkearns
runtime/ftplugin/ondir.vim @jparise
runtime/ftplugin/opencl.vim @Freed-Wu
runtime/ftplugin/openscad.vim @squibid
runtime/ftplugin/openvpn.vim @ObserverOfTime
runtime/ftplugin/pascal.vim @dkearns
runtime/ftplugin/pbtxt.vim @lakshayg
@@ -448,6 +449,7 @@ runtime/syntax/bzr.vim @hdima
runtime/syntax/cabal.vim @coot
runtime/syntax/cabalconfig.vim @coot
runtime/syntax/cabalproject.vim @coot
runtime/syntax/cangjie.vim @WuJunkai2004
runtime/syntax/cf.vim @ernstvanderlinden
runtime/syntax/chatito.vim @ObserverOfTime
runtime/syntax/chicken.vim @evhan

View File

@@ -85,10 +85,16 @@ jobs:
- features: normal
compiler: gcc
extra: [vimtags]
- features: huge
compiler: gcc
extra: [no_x11]
- features: huge
compiler: gcc
extra: [socketserver]
steps:
- name: Checkout repository from github
uses: actions/checkout@v4
uses: actions/checkout@v5
- name: Check Filelist (for packaging)
run: |
@@ -220,7 +226,7 @@ jobs:
tiny)
echo "TEST=testtiny"
if ${{ contains(matrix.extra, 'nogui') }}; then
echo "CONFOPT=--disable-gui"
CONFOPT="--disable-gui"
fi
;;
normal)
@@ -232,10 +238,16 @@ jobs:
PYTHON3_CONFOPT="--with-python3-stable-abi=3.8"
fi
# The ubuntu-24.04 CI runner does not provide a python2 package.
echo "CONFOPT=--enable-perlinterp=${INTERFACE} --enable-pythoninterp=no --enable-python3interp=${INTERFACE} --enable-rubyinterp=${INTERFACE} --enable-luainterp=${INTERFACE} --enable-tclinterp=${INTERFACE} ${PYTHON3_CONFOPT}"
CONFOPT="--enable-perlinterp=${INTERFACE} --enable-pythoninterp=no --enable-python3interp=${INTERFACE} --enable-rubyinterp=${INTERFACE} --enable-luainterp=${INTERFACE} --enable-tclinterp=${INTERFACE} ${PYTHON3_CONFOPT}"
;;
esac
if ${{ contains(matrix.extra, 'no_x11') }}; then
CONFOPT="${CONFOPT} --without-x --disable-gui"
fi
if ${{ contains(matrix.extra, 'socketserver') }}; then
CONFOPT="${CONFOPT} --enable-socketserver"
fi
if ${{ matrix.coverage == true }}; then
CFLAGS="${CFLAGS} --coverage -DUSE_GCOV_FLUSH"
echo "LDFLAGS=--coverage"
@@ -259,6 +271,7 @@ jobs:
echo "TEST=-C runtime/doc vimtags VIMEXE=../../${SRCDIR}/vim"
fi
echo "CFLAGS=${CFLAGS}"
echo "CONFOPT=${CONFOPT}"
# Disables GTK attempt to integrate with the accessibility service that does run in CI.
echo "NO_AT_BRIDGE=1"
) >> $GITHUB_ENV
@@ -382,7 +395,7 @@ jobs:
steps:
- name: Checkout repository from github
uses: actions/checkout@v4
uses: actions/checkout@v5
- name: Install packages
if: matrix.features == 'huge'
@@ -572,7 +585,7 @@ jobs:
release: false
- name: Checkout repository from github
uses: actions/checkout@v4
uses: actions/checkout@v5
- name: Create a list of download URLs
shell: cmd

View File

@@ -44,7 +44,7 @@ jobs:
steps:
- name: Checkout repository from github
uses: actions/checkout@v4
uses: actions/checkout@v5
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL

View File

@@ -19,7 +19,7 @@ jobs:
steps:
- name: Checkout repository from github
if: env.TOKEN
uses: actions/checkout@v4
uses: actions/checkout@v5
- name: Download Coverity
if: env.TOKEN

15
.github/workflows/link-check.yml vendored Normal file
View File

@@ -0,0 +1,15 @@
# .github/workflows/link-check.yml
name: Check Links
on:
workflow_dispatch:
schedule:
- cron: '0 3 * * 0' # Every Sunday at 03:00 UTC
jobs:
lychee:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Run Lychee
uses: lycheeverse/lychee-action@v2
with:
args: --verbose --config ci/lychee.toml .

View File

@@ -48,7 +48,7 @@ approvers are happy with that particular change.
# Reporting issues
We use GitHub issues, but that is not a requirement. Writing to the Vim
We use GitHub [issues][17], but that is not a requirement. Writing to the Vim
mailing list is also fine.
Please use the GitHub issues only for actual issues. If you are not 100% sure
@@ -72,7 +72,8 @@ Or open [the todo file][todo list] on GitHub to see the latest version.
The latest version of these files can be obtained from the repository.
They are usually not updated with numbered patches. However, they may
or may not work with older Vim releases (since they may contain new features).
or may not work with older Vim releases (since they may depend on new
features).
If you find a problem with one of these files or have a suggestion for
improvement, please first try to contact the maintainer directly.
@@ -82,7 +83,18 @@ upstream repository. You may also check the [MAINTAINERS][11] file.
The maintainer will take care of issues and send updates to the Vim project for
distribution with Vim.
If the maintainer does not respond, contact the [vim-dev][0] mailing list.
If the maintainer does not respond, contact the [vim-dev][0] mailing list or
open an [issue][17] here.
Note: Whether or not to use Vim9 script is up to the maintainer. For runtime
files maintained here, we aim to preserve compatibility with Neovim if
possible. Please wrap Vim9 script with a guard like this:
```vim
if has('vim9script')
" use Vim9 script implementation
[...]
endif
```
## Contributing new runtime files
@@ -95,6 +107,9 @@ PR with your changes against this repository here. For new filetypes, do not for
- add yourself as Maintainer to the top of file (again, keep the header similar to
other runtime files)
- add yourself to the [MAINTAINERS][11] file.
- add a guard `if has('vim9script')` if you like to maintain Neovim
compatibility but want to use Vim9 script (or restrict yourself to legacy Vim
script)
# Translations
@@ -144,3 +159,4 @@ mailing list. For other questions please use the [Vi Stack Exchange][8] website,
[14]: https://github.com/vim/vim/blob/master/runtime/doc/syntax.txt
[15]: https://en.wikipedia.org/wiki/Developer_Certificate_of_Origin
[16]: https://github.com/vim/vim/blob/master/runtime/doc/helphelp.txt
[17]: https://github.com/vim/vim/issues

View File

@@ -12,6 +12,7 @@ SRC_ALL = \
.github/workflows/ci.yml \
.github/workflows/codeql-analysis.yml \
.github/workflows/coverity.yml \
.github/workflows/link-check.yml \
.github/actions/test_artifacts/action.yml \
.github/dependabot.yml \
.gitignore \
@@ -24,6 +25,7 @@ SRC_ALL = \
ci/config.mk*.sed \
ci/if_ver*.vim \
ci/if_feat_check.vim \
ci/lychee.toml \
ci/setup-xvfb.sh \
ci/setup-sway.sh \
ci/remove_snap.sh \
@@ -80,6 +82,7 @@ SRC_ALL = \
src/findfile.c \
src/float.c \
src/fold.c \
src/fuzzy.c \
src/getchar.c \
src/gc.c \
src/globals.h \
@@ -289,6 +292,7 @@ SRC_ALL = \
src/proto/findfile.pro \
src/proto/float.pro \
src/proto/fold.pro \
src/proto/fuzzy.pro \
src/proto/getchar.pro \
src/proto/gc.pro \
src/proto/gui.pro \

47
ci/lychee.toml Normal file
View File

@@ -0,0 +1,47 @@
############################# Runtime #############################
# Reasonable concurrency to avoid rate-limiting small hosts.
max_concurrency = 14
# File extensions to scan
extensions = ["c", "h", "md", "html", "txt"]
############################# Requests ############################
# Accepted status codes
# - Include 429 (Too Many Requests) to avoid marking throttled links as dead.
accept = ["100..=103", "200..=299", "429"]
# Retry each request a few times on transient network errors
retries = 2
retry_wait_time = 2
# Timeout per request in seconds
timeout = 20
############################# Exclusions ##########################
exclude = [
'^https?://sys/file$',
'^file://.*',
'^https?://(www\.)?badges\.debian\.net/.*$',
'^https?://(www\.)?repology\.org/.*$',
'^https?://scan\.coverity\.com/.*$',
'^https?://(www\.)?img\.shields\.io/.*$',
'^https?://(www\.)?fossies\.org/.*$',
'^https?://(www\.)?adobe\.com.*$',
'^https?://(www\.)?google\.com.*$',
'^https?://(www\.)?forum\.vmssoftware\.com/.*$',
'^http://vim\.sourceforge\.net/scripts/script\.php\?script_id=40$',
'^https://is\.gd/.*$',
'^https://wiki\.contextgarden\.net/Vim$',
'^https://github\.com/you/foobar\.git$',
'^https?://flatassembler\.net',
'^https?://www\.fleiner\.com/vim/download.html',
]
# Lychee only reads UTF-8 files
exclude_path = [
'src/po',
'src/testdir',
]

View File

@@ -4,7 +4,7 @@ vim9script
# Invoked from "scripts.vim" in 'runtimepath'
#
# Maintainer: The Vim Project <https://github.com/vim/vim>
# Last Change: 2025 Apr 24
# Last Change: 2025 Aug 09
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
export def DetectFiletype()
@@ -264,6 +264,7 @@ def DetectFromText(line1: string)
# ELM Mail files
elseif line1 =~ '^From \([a-zA-Z][a-zA-Z_0-9\.=-]*\(@[^ ]*\)\=\|-\) .* \(19\|20\)\d\d$'
|| line1 =~ '^\creturn-path:\s<.*@.*>$'
setl ft=mail
# Mason
@@ -286,6 +287,7 @@ def DetectFromText(line1: string)
# Diff file:
# - "diff" in first line (context diff)
# - "Only in " in first line
# - "34,35c34,35" normal diff format output
# - "--- " in first line and "+++ " in second line (unified diff).
# - "*** " in first line and "--- " in second line (context diff).
# - "# It was generated by makepatch " in the second line (makepatch diff).
@@ -294,7 +296,7 @@ def DetectFromText(line1: string)
# - "=== ", "--- ", "+++ " (bzr diff, common case)
# - "=== (removed|added|renamed|modified)" (bzr diff, alternative)
# - "# HG changeset patch" in first line (Mercurial export format)
elseif line1 =~ '^\(diff\>\|Only in \|\d\+\(,\d\+\)\=[cda]\d\+\>\|# It was generated by makepatch \|Index:\s\+\f\+\r\=$\|===== \f\+ \d\+\.\d\+ vs edited\|==== //\f\+#\d\+\|# HG changeset patch\)'
elseif line1 =~ '^\(diff\>\|Only in \|\d\+\(,\d\+\)\=[cda]\d\+\(,\d\+\)\=\>$\|# It was generated by makepatch \|Index:\s\+\f\+\r\=$\|===== \f\+ \d\+\.\d\+ vs edited\|==== //\f\+#\d\+\|# HG changeset patch\)'
|| (line1 =~ '^--- ' && line2 =~ '^+++ ')
|| (line1 =~ '^\* looking for ' && line2 =~ '^\* comparing to ')
|| (line1 =~ '^\*\*\* ' && line2 =~ '^--- ')
@@ -453,6 +455,12 @@ def DetectFromText(line1: string)
elseif line1 =~ '^#n\%($\|\s\)'
setl ft=sed
elseif line1 =~ '^#\s\+Reconstructed via infocmp from file:'
setl ft=terminfo
elseif line1 =~ '^File: .*\.info, Node: .*, \%(Next\|Prev\): .*, Up: \|This is the top of the INFO tree.'
setl ft=info
else
var lnum = 1
while getline(lnum) =~ "^? " && lnum < line("$")

View File

@@ -3,7 +3,7 @@ vim9script
# Vim runtime support library
#
# Maintainer: The Vim Project <https://github.com/vim/vim>
# Last Change: 2025 Jan 29
# Last Change: 2025 Aug 15
export def IsSafeExecutable(filetype: string, executable: string): bool
if empty(exepath(executable))
@@ -121,6 +121,11 @@ def Viewer(): string
enddef
export def Open(file: string)
# disable shellslash for shellescape, required on Windows #17995
if exists('+shellslash') && &shellslash
&shellslash = false
defer setbufvar('%', '&shellslash', true)
endif
Launch($"{Viewer()} {shellescape(file, 1)}")
enddef

View File

@@ -0,0 +1,83 @@
vim9script
# Vim completion script
# Language: Vim script
# Maintainer: Maxim Kim <habamax@gmail.com>
# Last Change: 2025-08-10
#
# Usage:
# setlocal omnifunc=vimcomplete#Complete
#
# Simple complete function for Vim script
var trigger: string = ""
var prefix: string = ""
def GetTrigger(line: string): list<any>
var result = ""
var result_len = 0
if line =~ '->\k*$'
result = 'function'
elseif line =~ '\v%(^|\s+)\&\k*$'
result = 'option'
elseif line =~ '[\[(]\s*$'
result = 'expression'
elseif line =~ '[lvgsb]:\k*$'
result = 'var'
result_len = 2
else
result = getcompletiontype(line) ?? 'cmdline'
endif
return [result, result_len]
enddef
export def Complete(findstart: number, base: string): any
if findstart > 0
var line = getline('.')->strpart(0, col('.') - 1)
var keyword = line->matchstr('\k\+$')
var stx = synstack(line('.'), col('.') - 1)->map('synIDattr(v:val, "name")')->join()
if stx =~? 'Comment' || (stx =~ 'String' && stx !~ 'vimStringInterpolationExpr')
return -2
endif
var trigger_len: number = 0
[trigger, trigger_len] = GetTrigger(line)
if keyword->empty() && trigger->empty()
return -2
endif
prefix = line
return line->len() - keyword->len() - trigger_len
endif
var items = []
if trigger == 'function'
items = getcompletion(base, 'function')
->mapnew((_, v) => ({word: v, kind: 'v', menu: 'Function', dup: 0}))
elseif trigger == 'option'
items = getcompletion(base, 'option')
->mapnew((_, v) => ({word: v, kind: 'v', menu: 'Option', dup: 0}))
elseif trigger == 'var'
items = getcompletion(base, 'var')
->mapnew((_, v) => ({word: v, kind: 'v', menu: 'Variable', dup: 0}))
elseif trigger == 'expression'
items = getcompletion(base, 'expression')
->mapnew((_, v) => ({word: v, kind: 'v', menu: 'Expression', dup: 0}))
elseif trigger == 'command'
var commands = getcompletion(base, 'command')
->mapnew((_, v) => ({word: v, kind: 'v', menu: 'Command', dup: 0}))
var functions = getcompletion(base, 'function')
->mapnew((_, v) => ({word: v, kind: 'v', menu: 'Function', dup: 0}))
items = commands + functions
else
items = getcompletion(prefix, 'cmdline')
->mapnew((_, v) => ({word: v->matchstr('\k\+'), kind: 'v', dup: 0}))
if empty(items) && !empty(base)
items = getcompletion(base, 'expression')
->mapnew((_, v) => ({word: v, kind: 'v', menu: 'Expression', dup: 0}))
endif
endif
return items->empty() ? v:none : items
enddef

View File

@@ -1,5 +1,16 @@
vim9script
# Language: Vim9 script
# Contributers: @lacygoill
# Shane-XB-Qian
# Last Change: 2025 Aug 13
#
# Vim Script to handle
# :import, :packadd and :colorscheme
# lines and allows to easily jump to it using gf
#
# see runtime/ftplugin/vim.vim
# Interface {{{1
export def Find(editcmd: string) #{{{2
var curline: string = getline('.')
@@ -9,6 +20,11 @@ export def Find(editcmd: string) #{{{2
return
endif
if curline =~ '^\s*\%(:\s*\)\=colo\%[rscheme]\s'
HandleColoLine(editcmd, curline)
return
endif
if curline =~ '^\s*\%(:\s*\)\=import\s'
HandleImportLine(editcmd, curline)
return
@@ -23,7 +39,7 @@ enddef
#}}}1
# Core {{{1
def HandlePackaddLine(editcmd: string, curline: string) #{{{2
var pat: string = '^\s*packadd!\=\s\+\zs\S\+$'
var pat: string = '\s*\%(:\s*\)\=packadd!\=\s\+\zs\S\+\>\ze'
var plugin: string = curline
->matchstr(pat)
->substitute('^vim-\|\.vim$', '', 'g')
@@ -37,12 +53,9 @@ def HandlePackaddLine(editcmd: string, curline: string) #{{{2
endtry
else
var split: string = editcmd[0] == 'g' ? 'edit' : editcmd[1] == 'g' ? 'tabedit' : 'split'
# In the past, we passed `runtime` to `getcompletion()`, instead of
# `cmdline`. But the output was tricky to use, because it contained
# paths relative to inconsistent root directories.
var files: list<string> = getcompletion($'edit **/plugin/{plugin}.vim', 'cmdline')
var files: list<string> = getcompletion($'plugin/{plugin}', 'runtime')
->map((_, fname: string) => fname->findfile(&rtp)->fnamemodify(':p'))
->filter((_, path: string): bool => filereadable(path))
->map((_, fname: string) => fname->fnamemodify(':p'))
if empty(files)
echo 'Could not find any plugin file for ' .. string(plugin)
return
@@ -51,9 +64,33 @@ def HandlePackaddLine(editcmd: string, curline: string) #{{{2
endif
enddef
def HandleColoLine(editcmd: string, curline: string) #{{{2
var pat: string = '\s*\%(:\s*\)\=colo\%[rscheme]\s\+\zs\S\+\>\ze'
var colo: string = curline->matchstr(pat)
if colo == ''
try
execute 'normal! ' .. editcmd .. 'zv'
catch
Error(v:exception)
return
endtry
else
var split: string = editcmd[0] == 'g' ? 'edit' : editcmd[1] == 'g' ? 'tabedit' : 'split'
var files: list<string> = getcompletion($'colors/{colo}', 'runtime')
->map((_, fname: string) => fname->findfile(&rtp)->fnamemodify(':p'))
->filter((_, path: string): bool => filereadable(path))
if empty(files)
echo 'Could not find any colorscheme file for ' .. string(colo)
return
endif
files->Open(split)
endif
enddef
def HandleImportLine(editcmd: string, curline: string) #{{{2
var fname: string
var import_cmd: string = '^\s*import\s\+\%(autoload\s\+\)\='
var import_cmd: string = '^\s*\%(:\s*\)\=import\s\+\%(autoload\s\+\)\='
var import_alias: string = '\%(\s\+as\s\+\w\+\)\=$'
var import_string: string = import_cmd .. '\([''"]\)\zs.*\ze\1' .. import_alias
var import_expr: string = import_cmd .. '\zs.*\ze' .. import_alias
@@ -132,3 +169,5 @@ def Error(msg: string) #{{{2
echomsg msg
echohl NONE
enddef
# vim: sw=4 et

View File

@@ -1,4 +1,4 @@
*builtin.txt* For Vim version 9.1. Last change: 2025 Aug 06
*builtin.txt* For Vim version 9.1. Last change: 2025 Aug 20
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -344,7 +344,7 @@ isinf({expr}) Number determine if {expr} is infinity value
(positive or negative)
islocked({expr}) Number |TRUE| if {expr} is locked
isnan({expr}) Number |TRUE| if {expr} is NaN
items({dict}) List key-value pairs in {dict}
items({expr}) List key-value pairs in {expr}
job_getchannel({job}) Channel get the channel handle for {job}
job_info([{job}]) Dict get information about {job}
job_setoptions({job}, {options}) none set options for {job}
@@ -1783,16 +1783,23 @@ charidx({string}, {idx} [, {countcc} [, {utf16}]])
Return type: |Number|
chdir({dir}) *chdir()*
Change the current working directory to {dir}. The scope of
the directory change depends on the directory of the current
window:
- If the current window has a window-local directory
(|:lcd|), then changes the window local directory.
- Otherwise, if the current tabpage has a local
directory (|:tcd|) then changes the tabpage local
directory.
- Otherwise, changes the global directory.
chdir({dir} [, {scope}]) *chdir()*
Changes the current working directory to {dir}. The scope of
the change is determined as follows:
If {scope} is not present, the current working directory is
changed to the scope of the current directory:
- If the window local directory (|:lcd|) is set, it
changes the current working directory for that scope.
- Otherwise, if the tab page local directory (|:tcd|) is
set, it changes the current directory for that scope.
- Otherwise, changes the global directory for that scope.
If {scope} is present, changes the current working directory
for the specified scope:
"window" Changes the window local directory. |:lcd|
"tabpage" Changes the tab page local directory. |:tcd|
"global" Changes the global directory. |:cd|
{dir} must be a String.
If successful, returns the previous working directory. Pass
this to another chdir() to restore the directory.
@@ -6303,20 +6310,25 @@ isnan({expr}) *isnan()*
Return type: |Number|
items({dict}) *items()*
Return a |List| with all the key-value pairs of {dict}. Each
|List| item is a list with two items: the key of a {dict}
entry and the value of this entry. The |List| is in arbitrary
order. Also see |keys()| and |values()|.
Example: >
for [key, value] in items(mydict)
echo key .. ': ' .. value
endfor
<
A |List|, a |Tuple| or a |String| argument is also supported.
In these cases, items() returns a List with the index and the
value at the index.
items({expr}) *items()*
Return a |List| with all key/index and value pairs of {expr}.
Each |List| item is a list with two items:
- for a |Dict|: the key and the value
- for a |List|, |Tuple| or |String|: the index and the value
The returned |List| is in arbitrary order for a |Dict|,
otherwise it's in ascending order of the index.
Also see |keys()| and |values()|.
Examples: >
let mydict = #{a: 'red', b: 'blue'}
for [key, value] in items(mydict)
echo $"{key} = {value}"
endfor
echo items([1, 2, 3])
echo items(('a', 'b', 'c'))
echo items("foobar")
<
Can also be used as a |method|: >
mydict->items()
<
@@ -6549,7 +6561,7 @@ libcall({libname}, {funcname}, {argument})
libcallnr({libname}, {funcname}, {argument})
Just like |libcall()|, but used for a function that returns an
int instead of a string.
{only in Win32 on some Unix versions, when the |+libcall|
{only in Win32 and some Unix versions, when the |+libcall|
feature is present}
Examples: >
:echo libcallnr("/usr/lib/libc.so", "getpid", "")
@@ -7343,14 +7355,16 @@ matchbufline({buf}, {pat}, {lnum}, {end}, [, {dict}])
[{'lnum': 3, 'byteidx': 0, 'text': 'a'}]
" Assuming line 4 in buffer 10 contains "tik tok"
:echo matchbufline(10, '\<\k\+\>', 1, 4)
[{'lnum': 4, 'byteidx': 0, 'text': 'tik'}, {'lnum': 4, 'byteidx': 4, 'text': 'tok'}]
[{'lnum': 4, 'byteidx': 0, 'text': 'tik'},
{'lnum': 4, 'byteidx': 4, 'text': 'tok'}]
<
If {submatch} is present and is v:true, then submatches like
"\1", "\2", etc. are also returned. Example: >
" Assuming line 2 in buffer 2 contains "acd"
:echo matchbufline(2, '\(a\)\?\(b\)\?\(c\)\?\(.*\)', 2, 2
\ {'submatches': v:true})
[{'lnum': 2, 'byteidx': 0, 'text': 'acd', 'submatches': ['a', '', 'c', 'd', '', '', '', '', '']}]
[{'lnum': 2, 'byteidx': 0, 'text': 'acd', 'submatches':
['a', '', 'c', 'd', '', '', '', '', '']}]
< The "submatches" List always contains 9 items. If a submatch
is not found, then an empty string is returned for that
submatch.
@@ -7412,9 +7426,6 @@ matchfuzzy({list}, {str} [, {dict}]) *matchfuzzy()*
given sequence.
limit Maximum number of matches in {list} to be
returned. Zero means no limit.
camelcase Use enhanced camel case scoring making results
better suited for completion related to
programming languages. Defaults to v:true.
If {list} is a list of dictionaries, then the optional {dict}
argument supports the following additional items:
@@ -7487,7 +7498,8 @@ matchfuzzypos({list}, {str} [, {dict}]) *matchfuzzypos()*
< results in [['testing'], [[0, 2, 6]], [99]] >
:echo matchfuzzypos(['clay', 'lacy'], 'la')
< results in [['lacy', 'clay'], [[0, 1], [1, 2]], [153, 133]] >
:echo [{'text': 'hello', 'id' : 10}]->matchfuzzypos('ll', {'key' : 'text'})
:echo [{'text': 'hello', 'id' : 10}]
\ ->matchfuzzypos('ll', {'key' : 'text'})
< results in [[{'id': 10, 'text': 'hello'}], [[2, 3]], [127]]
Return type: list<list<any>>
@@ -7531,15 +7543,18 @@ matchstrlist({list}, {pat} [, {dict}])
Example: >
:echo matchstrlist(['tik tok'], '\<\k\+\>')
[{'idx': 0, 'byteidx': 0, 'text': 'tik'}, {'idx': 0, 'byteidx': 4, 'text': 'tok'}]
[{'idx': 0, 'byteidx': 0, 'text': 'tik'},
{'idx': 0, 'byteidx': 4, 'text': 'tok'}]
:echo matchstrlist(['a', 'b'], '\<\k\+\>')
[{'idx': 0, 'byteidx': 0, 'text': 'a'}, {'idx': 1, 'byteidx': 0, 'text': 'b'}]
[{'idx': 0, 'byteidx': 0, 'text': 'a'},
{'idx': 1, 'byteidx': 0, 'text': 'b'}]
<
If "submatches" is present and is v:true, then submatches like
"\1", "\2", etc. are also returned. Example: >
:echo matchstrlist(['acd'], '\(a\)\?\(b\)\?\(c\)\?\(.*\)',
\ #{submatches: v:true})
[{'idx': 0, 'byteidx': 0, 'text': 'acd', 'submatches': ['a', '', 'c', 'd', '', '', '', '', '']}]
[{'idx': 0, 'byteidx': 0, 'text': 'acd',
'submatches': ['a', '', 'c', 'd', '', '', '', '', '']}]
< The "submatches" List always contains 9 items. If a submatch
is not found, then an empty string is returned for that
submatch.
@@ -8949,8 +8964,8 @@ remote_send({server}, {string} [, {idvar}]) *remote_send()* *E241*
Note: Any errors will be reported in the server and may mess
up the display.
Examples: >
:echo remote_send("gvim", ":DropAndReply " .. file, "serverid") ..
\ remote_read(serverid)
:echo remote_send("gvim", ":DropAndReply " .. file,
\ "serverid") .. remote_read(serverid)
:autocmd NONE RemoteReply *
\ echo remote_read(expand("<amatch>"))
@@ -12353,6 +12368,11 @@ wildtrigger() *wildtrigger()*
To retain normal history navigation (up/down keys): >
cnoremap <Up> <C-U><Up>
cnoremap <Down> <C-U><Down>
<
To set an option specifically when performing a search, e.g.
to set 'pumheight': >
autocmd CmdlineEnter [/\?] set pumheight=8
autocmd CmdlineLeave [/\?] set pumheight&
<
Return value is always 0.
@@ -13015,7 +13035,8 @@ python_dynamic Python 2.x interface is dynamically loaded. |has-python|
python3 Python 3.x interface available. |has-python|
python3_compiled Compiled with Python 3.x interface. |has-python|
python3_dynamic Python 3.x interface is dynamically loaded. |has-python|
python3_stable Python 3.x interface is using Python Stable ABI. |has-python|
python3_stable Python 3.x interface is using Python Stable ABI.
|has-python|
pythonx Python 2.x and/or 3.x interface available. |python_x|
qnx QNX version of Vim.
quickfix Compiled with |quickfix| support.
@@ -13026,6 +13047,7 @@ scrollbind Compiled with 'scrollbind' support. (always true)
showcmd Compiled with 'showcmd' support.
signs Compiled with |:sign| support.
smartindent Compiled with 'smartindent' support. (always true)
socketserver Compiled with socket server functionality. (Unix only)
sodium Compiled with libsodium for better crypt support
sound Compiled with sound support, e.g. `sound_playevent()`
spell Compiled with spell checking support |spell|.

View File

@@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 9.1. Last change: 2025 Jul 21
*cmdline.txt* For Vim version 9.1. Last change: 2025 Aug 08
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -927,7 +927,7 @@ to insert special things while typing you can use the CTRL-R command. For
example, "%" stands for the current file name, while CTRL-R % inserts the
current file name right away. See |c_CTRL-R|.
Note: If you want to avoid the effects of special characters in a Vim script
Note: If you want to avoid the effects of special characters in a Vim script
you may want to use |fnameescape()|. Also see |`=|.
@@ -1325,8 +1325,10 @@ Example: >
:au CmdwinLeave : let &cpt = b:cpt_save
This sets 'complete' to use completion in the current window for |i_CTRL-N|.
Another example: >
:au CmdwinEnter [/?] startinsert
:au CmdwinEnter [/\?] startinsert
This will make Vim start in Insert mode in the command-line window.
Note: The "?" needs to be escaped, as this is a |file-pattern|. See also
|cmdline-autocompletion|.
*cmdwin-char*
The character used for the pattern indicates the type of command-line:

View File

@@ -1,4 +1,4 @@
*debug.txt* For Vim version 9.1. Last change: 2024 May 11
*debug.txt* For Vim version 9.1. Last change: 2025 Aug 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -164,7 +164,7 @@ The Debugging Tools for Windows (including WinDbg) can be downloaded from
This includes the WinDbg debugger.
Visual C++ 2005 Express Edition can be downloaded for free from:
http://msdn.microsoft.com/vstudio/express/visualC/default.aspx
https://visualstudio.microsoft.com/
=========================================================================
vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -1,4 +1,4 @@
*develop.txt* For Vim version 9.1. Last change: 2025 Jul 22
*develop.txt* For Vim version 9.1. Last change: 2025 Aug 11
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -291,8 +291,8 @@ initialized from words listed in COMMON items in the affix file, so that it
also works when starting a new file.
This isn't ideal, because the longer Vim is running the higher the counts
become. But in practice it is a noticeable improvement over not using the word
count.
become. But in practice it is a noticeable improvement over not using the
word count.
==============================================================================
3. Assumptions *design-assumptions*
@@ -308,11 +308,11 @@ Vim's main Makefiles target maximum portability, relying solely on features
defined in POSIX.1-2001 `make` and ignoring later POSIX standards or GNU/BSD
extensions. In practical terms, avoid:
% pattern rules
modern assignment (`:=`, `::=`) outside POSIX.1-2001
special targets (`.ONESHELL`, `.NOTPARALLEL`, `.SILENT`, )
order-only prerequisites (`|`) or automatic directory creation
GNU/BSD conditionals (`ifdef`, `ifndef`, `.for`/`.endfor`, )
- % pattern rules
- modern assignment (`:=`, `::=`) outside POSIX.1-2001
- special targets (`.ONESHELL`, `.NOTPARALLEL`, `.SILENT`, ...)
- order-only prerequisites (`|`) or automatic directory creation
- GNU/BSD conditionals (`ifdef`, `ifndef`, `.for`/`.endfor`, ...)
Since POSIX.1-2001 supports only traditional suffix rules, every object built
in a separate directory must have an explicit rule. For example:
@@ -338,9 +338,16 @@ Therefore, the latest ISO C standard we follow is:
`C95` (ISO/IEC 9899:1990/AMD1:1995)
In addition, the following two `C99` features are explicitly allowed:
`//` comments, as required by |style-comments|;
the `_Bool` type.
In addition, the following `C99` features are explicitly allowed:
- `//` comments, as required by |style-comments|;
- Mixed declarations and statements in a block;
- Variadic macros `(..., __VA_ARGS__)`;
- Trailing comma in `enum` lists;
- `_Bool` type (for `bool`, `true` and `false`);
- `__func__` predefined identifier;
- `inline` functions (use `static inline` for portability);
- Compound literals `(type){ initializer-list }`;
- Logical source lines up to 4095 characters.
Platform-specific code may use any newer compiler features supported on that
platform.
@@ -348,11 +355,11 @@ platform.
SIZE OF VARIABLES *assumptions-variables*
char 8-bit signed
char_u 8-bit unsigned
int 32- or 64-bit signed (16-bit possible on legacy systems)
unsigned 32- or 64-bit unsigned
long at least 32-bit signed (large enough to hold a pointer)
We follow POSIX.1-2001 (SUSv3) for type sizes, which in practice means:
char_u 8-bit unsigned
int 32-bit or larger signed
unsigned 32-bit or larger unsigned
==============================================================================

View File

@@ -1,4 +1,4 @@
*digraph.txt* For Vim version 9.1. Last change: 2025 Feb 02
*digraph.txt* For Vim version 9.1. Last change: 2025 Aug 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1105,8 +1105,8 @@ char digraph hex dec official name ~
⌕ TR 2315 8981 TELEPHONE RECORDER
⌠ Iu 2320 8992 TOP HALF INTEGRAL
⌡ Il 2321 8993 BOTTOM HALF INTEGRAL
</ 2329 9001 LEFT-POINTING ANGLE BRACKET
〉 /> 232A 9002 RIGHT-POINTING ANGLE BRACKET
<[ 27E8 10040 LEFT MATHEMATICAL ANGLE BRACKET
⟩ ]> 27E9 10041 RIGHT MATHEMATICAL ANGLE BRACKET
␣ Vs 2423 9251 OPEN BOX
⑀ 1h 2440 9280 OCR HOOK
⑁ 3h 2441 9281 OCR CHAIR
@@ -1246,6 +1246,8 @@ char digraph hex dec official name ~
々 *_ 3005 12293 IDEOGRAPHIC ITERATION MARK
〆 ;_ 3006 12294 IDEOGRAPHIC CLOSING MARK
0_ 3007 12295 IDEOGRAPHIC NUMBER ZERO
〈 </ 3008 12296 LEFT ANGLE BRACKET
〉 /> 3009 12297 RIGHT ANGLE BRACKET
《 <+ 300A 12298 LEFT DOUBLE ANGLE BRACKET
》 >+ 300B 12299 RIGHT DOUBLE ANGLE BRACKET
「 <' 300C 12300 LEFT CORNER BRACKET

View File

@@ -1,4 +1,4 @@
*eval.txt* For Vim version 9.1. Last change: 2025 Jul 22
*eval.txt* For Vim version 9.1. Last change: 2025 Aug 20
VIM REFERENCE MANUAL by Bram Moolenaar

View File

@@ -1,4 +1,4 @@
*filetype.txt* For Vim version 9.1. Last change: 2025 Aug 06
*filetype.txt* For Vim version 9.1. Last change: 2025 Aug 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1072,7 +1072,7 @@ The Vim filetype plugin defines the following mappings:
]" move to the next (legacy) comment
[" move to the previous (legacy) comment
gf edit the file under the cursor
CTRL-W gf edit the file under the cursor in a new tab
CTRL-W gf edit the file under the cursor in a new tab page
CTRL-W f edit the file under the cursor in a new window

View File

@@ -1,4 +1,4 @@
*ft_sql.txt* For Vim version 9.1. Last change: 2025 Aug 06
*ft_sql.txt* For Vim version 9.1. Last change: 2025 Aug 10
by David Fishburn
@@ -407,7 +407,7 @@ Here are some examples of the entries which are pulled from the syntax files: >
----------------
Dynamic mode populates the popups with data directly from a database. In
order for the dynamic feature to be enabled you must have the dbext.vim
plugin installed, (http://vim.sourceforge.net/script.php?script_id=356).
plugin installed, (https://www.vim.org/scripts/script.php?script_id=356).
Dynamic mode is used by several features of the SQL completion plugin.
After installing the dbext plugin see the dbext-tutorial for additional
@@ -491,7 +491,7 @@ depending on the syntax file you are using. The SQL Anywhere syntax file
Dynamic features
----------------
To take advantage of the dynamic features you must first install the
dbext.vim plugin (http://vim.sourceforge.net/script.php?script_id=356). It
dbext.vim plugin (https://www.vim.org/scripts/script.php?script_id=356). It
also comes with a tutorial. From the SQL completion plugin's perspective,
the main feature dbext provides is a connection to a database. dbext
connection profiles are the most efficient mechanism to define connection

View File

@@ -1,4 +1,4 @@
*gui.txt* For Vim version 9.1. Last change: 2025 Aug 06
*gui.txt* For Vim version 9.1. Last change: 2025 Aug 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -248,7 +248,7 @@ For older versions of XFree86 you must patch your X server. The following
page has a bit of information about using the Intellimouse on Linux as well as
links to the patches and X server binaries (may not have the one you need
though):
http://www.inria.fr/koala/colas/mouse-wheel-scroll/
(dead link) inria.fr/koala/colas/mouse-wheel-scroll/
==============================================================================
3. Mouse Control *gui-mouse*

View File

@@ -1,4 +1,4 @@
*gui_x11.txt* For Vim version 9.1. Last change: 2025 Aug 06
*gui_x11.txt* For Vim version 9.1. Last change: 2025 Aug 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -350,7 +350,7 @@ If you want to set the colors of remaining gui components (e.g., the
menubar, scrollbar, whatever), those are GTK specific settings and you
need to set those up in some sort of gtkrc file. You'll have to refer
to the GTK documentation, however little there is, on how to do this.
See http://developer.gnome.org/doc/API/2.0/gtk/gtk-Resource-Files.html
See https://www.manpagez.com/html/gtk2/gtk2-2.24.24/gtk2-Resource-Files.php
for more information.
*gtk3-slow*
If you are using GTK3 and Vim appears to be slow, try setting the environment
@@ -519,7 +519,7 @@ of the normal GtkWindow. This enables Vim to act as a GTK+ plugin.
This really is a programmer's interface, and is of no use without a supporting
application to spawn the Vim correctly. For more details on GTK+ sockets, see
http://www.gtk.org/api/
https://www.gtk.org/docs/apis/index
Note that this feature requires the latest GTK version. GTK 1.2.10 still has
a small problem. The socket feature has not yet been tested with GTK+ 2 --

View File

@@ -1,4 +1,4 @@
*if_cscop.txt* For Vim version 9.1. Last change: 2024 May 11
*if_cscop.txt* For Vim version 9.1. Last change: 2025 Aug 10
VIM REFERENCE MANUAL by Andy Kahn
@@ -360,7 +360,7 @@ limited to Unix systems.
Additionally Cscope support works for Win32. For more information and a
cscope version for Win32 see (link seems dead):
http://iamphet.nm.ru/cscope/index.html
iamphet.nm.ru/cscope/index.html
The DJGPP-built version from http://cscope.sourceforge.net is known to not
work with Vim.

View File

@@ -1,4 +1,4 @@
*insert.txt* For Vim version 9.1. Last change: 2025 Aug 06
*insert.txt* For Vim version 9.1. Last change: 2025 Aug 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1138,8 +1138,8 @@ CTRL-X CTRL-Z Stop completion without changing the text.
AUTOCOMPLETION *ins-autocompletion*
Vim can display a completion menu as you type, similar to using |i_CTRL-N|,
but triggered automatically. See 'autocomplete'. The menu items are collected
from the sources listed in the 'complete' option.
but triggered automatically. See 'autocomplete' and 'autocompletedelay'.
The menu items are collected from the sources listed in the 'complete' option.
Unlike manual |i_CTRL-N| completion, this mode uses a decaying timeout to keep
Vim responsive. Sources earlier in the 'complete' list are given more time

View File

@@ -1,4 +1,4 @@
*mbyte.txt* For Vim version 9.1. Last change: 2024 Jul 17
*mbyte.txt* For Vim version 9.1. Last change: 2025 Aug 10
VIM REFERENCE MANUAL by Bram Moolenaar et al.
@@ -464,7 +464,7 @@ Useful utilities for converting the charset:
|charset| converter. Supported |charset|: ISO-2022-CN, ISO-2022-JP,
ISO-2022-KR, EUC-CN, EUC-JP, EUC-KR, EUC-TW, UTF-7, UTF-8, ISO-8859
series, Shift_JIS, Big5 and HZ. Lv can be found at (link seems dead):
http://www.ff.iij4u.or.jp/~nrt/lv/index.html
ff.iij4u.or.jp/~nrt/lv/index.html
*mbyte-conversion*
@@ -802,7 +802,7 @@ is suitable for complex input, such as CJK.
pronounced in Hira-gana, second, we convert Hira-gana to Kanji or Kata-Kana,
if needed. There are some Kana-Kanji conversion server: jserver
(distributed with Wnn, see below) and canna. Canna can be found at:
https://osdn.net/projects/canna/
(dead link) osdn.net/projects/canna/
There is a good input system: Wnn4.2. Wnn 4.2 contains,
xwnmo (|IM-server|)

View File

@@ -1,4 +1,4 @@
*netbeans.txt* For Vim version 9.1. Last change: 2024 May 11
*netbeans.txt* For Vim version 9.1. Last change: 2025 Aug 10
VIM REFERENCE MANUAL by Gordon Prieur et al.
@@ -41,10 +41,10 @@ protocol. There are existing implementations in C, C++, Python and Java. The
name NetBeans is kept today for historical reasons.
Active project using the NetBeans protocol of Vim:
- Eclim, http://eclim.org/
- Eclim, (dead link) eclim.org/
VimIntegration, description of various projects doing Vim Integration:
http://www.freehackers.org/VimIntegration
(dead link) www.freehackers.org/VimIntegration
Projects using the NetBeans protocol of Vim are or were:
- Agide, an IDE for the AAP project, written in Python (now replaced by
@@ -54,7 +54,7 @@ Projects using the NetBeans protocol of Vim are or were:
- Pyclewn, a gdb integration into Vim, written in Python:
http://pyclewn.sourceforge.net/
- VimWrapper, library to easy Vim integration into IDE:
http://www.freehackers.org/VimWrapper
(dead link) freehackers.org/VimWrapper
Outdated projects (links don't work):
- VimPlugin, integration of Vim inside Eclipse:
http://vimplugin.sourceforge.net/wiki/pmwiki.php
@@ -78,7 +78,7 @@ in recent releases.
For more information visit the main NetBeans web site http://www.netbeans.org.
The External Editor is now, unfortunately, declared obsolete. See (link seems
dead): http://externaleditor.netbeans.org.
dead): externaleditor.netbeans.org.
Sun Microsystems, Inc. also ships NetBeans under the name Sun ONE Studio.
Visit http://www.sun.com for more information regarding the Sun ONE Studio
@@ -148,7 +148,7 @@ The Win32 support is now in beta stage.
To use XPM signs on Win32 (e.g. when using with NetBeans) you can compile
XPM by yourself or use precompiled libraries from (link seems dead):
http://iamphet.nm.ru/misc/ (for MS Visual C++) or
iamphet.nm.ru/misc/ (for MS Visual C++) or
http://gnuwin32.sourceforge.net (for MinGW).
Enable debugging:
@@ -942,12 +942,13 @@ netbeans.org on building NetBeans.
Depending on the version of NetBeans you download, you may need to do further
work to get the required External Editor module. This is the module which lets
NetBeans work with gvim (or xemacs :-). See http://externaleditor.netbeans.org
NetBeans work with gvim (or xemacs :-). See (dead link)
externaleditor.netbeans.org
for details on downloading this module if your NetBeans release does not have
it.
For C, C++, and Fortran support you will also need the cpp module. See
http://cpp.netbeans.org (link seems dead) for information regarding this
cpp.netbeans.org (link seems dead) for information regarding this
module.
You can also download Sun ONE Studio from Sun Microsystems, Inc for a 30 day
@@ -994,10 +995,11 @@ Unfortunately, some versions do not have this module in their update
center. If you cannot download via the update center you will need to
download sources and build the module. I will try and get the module
available from the NetBeans Update Center so building will be unnecessary.
Also check http://externaleditor.netbeans.org for other availability options.
Also check (dead link) externaleditor.netbeans.org
for other availability options.
To download the External Editor sources via CVS and build your own module,
see http://externaleditor.netbeans.org and http://www.netbeans.org.
see (dead link) externaleditor.netbeans.org and http://www.netbeans.org.
Unfortunately, this is not a trivial procedure.

View File

@@ -1,4 +1,4 @@
*options.txt* For Vim version 9.1. Last change: 2025 Aug 07
*options.txt* For Vim version 9.1. Last change: 2025 Aug 20
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -918,6 +918,13 @@ A jump table for the options with a short description can be found at |Q_op|.
When on, Vim shows a completion menu as you type, similar to using
|i_CTRL-N|, but triggered automatically. See |ins-autocompletion|.
*'autocompletedelay'* *'acl'*
'autocompletedelay' 'acl' number (default 0)
global
Delay in milliseconds before the autocomplete menu appears after
typing. If you prefer it not to open too quickly, set this value
slightly above your typing speed. See |ins-autocompletion|.
*'autoindent'* *'ai'* *'noautoindent'* *'noai'*
'autoindent' 'ai' boolean (default off)
local to buffer

View File

@@ -1,4 +1,4 @@
*os_amiga.txt* For Vim version 9.1. Last change: 2025 Jul 22
*os_amiga.txt* For Vim version 9.1. Last change: 2025 Aug 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -90,7 +90,7 @@ Vim for MorphOS *MorphOS*
[this section mostly by Ali Akcaagac]
For the latest info about the MorphOS version:
http://www.akcaagac.com/index_vim.html
(dead link) akcaagac.com/index_vim.html
Problems ~

View File

@@ -1,4 +1,4 @@
*os_mac.txt* For Vim version 9.1. Last change: 2025 Aug 06
*os_mac.txt* For Vim version 9.1. Last change: 2025 Aug 10
VIM REFERENCE MANUAL by Bram Moolenaar et al.
@@ -87,7 +87,7 @@ Backspace "*d cut Visual text
==============================================================================
4. Mac FAQ *mac-faq*
On the internet: http://macvim.org/OSX/index.php#FAQ
On the internet: https://github.com/macvim-dev/macvim/wiki/FAQ
Q: I can't enter non-ASCII character in Apple Terminal.
A: Under Window Settings, Emulation, make sure that "Escape non-ASCII

View File

@@ -1,4 +1,4 @@
*pattern.txt* For Vim version 9.1. Last change: 2025 Aug 06
*pattern.txt* For Vim version 9.1. Last change: 2025 Aug 13
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1501,34 +1501,51 @@ Finally, these constructs are unique to Perl:
==============================================================================
11. Fuzzy matching *fuzzy-matching*
Fuzzy matching refers to matching strings using a non-exact search string.
Fuzzy matching will match a string, if all the characters in the search string
are present anywhere in the string in the same order. Case is ignored. In a
matched string, other characters can be present between two consecutive
characters in the search string. If the search string has multiple words, then
each word is matched separately. So the words in the search string can be
present in any order in a string.
Fuzzy matching scores how well a string matches a pattern when the pattern
characters appear in order but not necessarily contiguously.
Fuzzy matching assigns a score for each matched string based on the following
criteria:
- The number of sequentially matching characters.
- The number of characters (distance) between two consecutive matching
characters.
- Matches at the beginning of a word
- Matches at a camel case character (e.g. Case in CamelCase)
- Matches after a path separator or a hyphen.
- The number of unmatched characters in a string.
- A full/exact match is preferred.
The matching string with the highest score is returned first.
Example: >
Pattern: "vim"
Candidates: "vim" -> perfect
"vimeo" -> good (v i m)
"voice mail" -> weaker (v _ i _ _ _ m)
"vintage" -> no match (no "m")
<
If the search string has multiple words, each word is matched separately and
may appear in any order in the candidate. For example "get pat" matches
"GetPattern", "PatternGet", "getPattern", "patGetter", "getSomePattern",
"MatchpatternGet", etc.
For example, when you search for the "get pat" string using fuzzy matching, it
will match the strings "GetPattern", "PatternGet", "getPattern", "patGetter",
"getSomePattern", "MatchpatternGet" etc.
The 'ignorecase' and 'smartcase' options do not apply, case is ignored if the
pattern is all lower case.
The functions |matchfuzzy()| and |matchfuzzypos()| can be used to fuzzy search
a string in a List of strings. The matchfuzzy() function returns a List of
matching strings. The matchfuzzypos() functions returns the List of matches,
the matching positions and the fuzzy match scores.
Vim's implementation is based on the algorithm from the fzy project:
https://github.com/jhawthorn/fzy
It uses dynamic programming to compute an optimal score for a given pattern
and candidate.
The algorithm works in two stages:
1. Forward pass
Scan the candidate left to right, tracking the best score for each
pattern position. Matches score higher when they occur at the start
of the candidate, the start of a word (space, underscore, dash,
camelCase), or directly after the previous match.
2. Backward pass
Start from the best-scoring end position and step back to find match
positions, ensuring the alignment is optimal.
Vim extends the original algorithm to support multibyte codepoints, allowing
correct matching for UTF-8 and other encodings.
Time complexity is O(pattern * candidate). Memory usage is proportional
to the same.
The |matchfuzzy()| and |matchfuzzypos()| functions perform fuzzy searching in
a List of strings. |matchfuzzy()| returns the matching strings, while
|matchfuzzypos()| returns the matches along with their positions and scores.
The "f" flag of `:vimgrep` enables fuzzy matching.

View File

@@ -1,4 +1,4 @@
*pi_getscript.txt* For Vim version 9.1. Last change: 2025 Apr 27
*pi_getscript.txt* For Vim version 9.1. Last change: 2025 Aug 10
>
GETSCRIPT REFERENCE MANUAL by Charles E. Campbell
<
@@ -349,13 +349,9 @@ after/syntax/c.vim contained in it to overwrite a user's c.vim.
>
g:GetLatestVimScripts_scriptaddr
< default='https://www.vim.org/scripts/script.php?script_id='
Override this if your system needs
... ='http://vim.sourceforge.net/script.php?script_id='
>
g:GetLatestVimScripts_downloadaddr
< default='https://www.vim.org/scripts/download_script.php?src_id='
Override this if your system needs
... ='http://vim.sourceforge.net/scripts/download_script.php?src_id='
>
g:GetLatestVimScripts_bunzip2
< default= bunzip2

View File

@@ -1907,9 +1907,6 @@ passwords:
Thomer Gil has provided a hint on how to speed up netrw+ssh:
http://thomer.com/howtos/netrw_ssh.html
Alex Young has several hints on speeding ssh up:
http://usevim.com/2012/03/16/editing-remote-files/
LISTING BOOKMARKS AND HISTORY *netrw-qb* *netrw-listbookmark* {{{2

View File

@@ -1,4 +1,4 @@
*pi_tar.txt* For Vim version 9.1. Last change: 2025 Aug 06
*pi_tar.txt* For Vim version 9.1. Last change: 2025 Aug 10
+====================+
| Tar File Interface |
@@ -173,7 +173,7 @@ Copyright 2005-2017: *tar-copyright*
v2 * converted to use Vim7's new autoload feature
by Bram Moolenaar
v1 (original) * Michael Toren
(see http://michael.toren.net/code/
(see michael.toren.net/code/
link seems dead)
==============================================================================

View File

@@ -1,4 +1,4 @@
*print.txt* For Vim version 9.1. Last change: 2024 May 11
*print.txt* For Vim version 9.1. Last change: 2025 Aug 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -444,8 +444,8 @@ you need to define your own PostScript font encoding vector. Details on how
to define a font encoding vector is beyond the scope of this help file, but
you can find details in the PostScript Language Reference Manual, 3rd Edition,
published by Addison-Wesley and available in PDF form at
http://www.adobe.com/. The following describes what you need to do for Vim to
locate and use your print character encoding.
https://www.adobe.com/. The following describes what you need to do for Vim
to locate and use your print character encoding.
i. Decide on a unique name for your encoding vector, one that does not clash
with any of the recognized or standard encoding names that Vim uses (see
@@ -523,7 +523,7 @@ It is possible to define your own multibyte character set although this
should not be attempted lightly. A discussion on the process if beyond the
scope of these help files. You can find details on CMap (character map) files
in the document 'Adobe CMap and CIDFont Files Specification, Version 1.0',
available from http://www.adobe.com as a PDF file.
available from https://www.adobe.com as a PDF file.
==============================================================================
6. PostScript Printing Troubleshooting *postscript-print-trouble*
@@ -628,7 +628,7 @@ OpenVMS
- Is apparently supported in the main code now (untested).
See (link seems dead):
http://wwwthep.physik.uni-mainz.de/~plass/gv/
wwwthep.physik.uni-mainz.de/~plass/gv/
MS-Windows

View File

@@ -1,4 +1,4 @@
*quickfix.txt* For Vim version 9.1. Last change: 2025 Aug 06
*quickfix.txt* For Vim version 9.1. Last change: 2025 Aug 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1675,8 +1675,6 @@ Useful values for the 'makeprg' options therefore are:
setlocal makeprg=./alltests.py " Run a testsuite
setlocal makeprg=python\ %:S " Run a single testcase
Also see http://vim.sourceforge.net/tip_view.php?tip_id=280.
PYTEST COMPILER *compiler-pytest*
Commonly used compiler options can be added to 'makeprg' by setting the

View File

@@ -1,4 +1,4 @@
*quickref.txt* For Vim version 9.1. Last change: 2025 Aug 06
*quickref.txt* For Vim version 9.1. Last change: 2025 Aug 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -608,6 +608,7 @@ Short explanation of each option: *option-list*
'arabicshape' 'arshape' do shaping for Arabic characters
'autochdir' 'acd' change directory to the file in the current window
'autocomplete' 'ac' enable automatic completion in insert mode
'autocompletedelay' 'acl' delay in msec before menu appears after typing
'autoindent' 'ai' take indent for new line from previous line
'autoread' 'ar' autom. read file when changed outside of Vim
'autoshelldir' 'asd' change directory to the shell's current directory

View File

@@ -1,4 +1,4 @@
*remote.txt* For Vim version 9.1. Last change: 2022 Feb 17
*remote.txt* For Vim version 9.1. Last change: 2025 Aug 18
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -61,7 +61,10 @@ The following command line arguments are available:
--servername {name} Become the server {name}. When used together
with one of the --remote commands: connect to
server {name} instead of the default (see
below). The name used will be uppercase.
below). The name used will be uppercase. If
using the socketserver, you can specify a
path, see |socketserver-name| for more
details.
*--remote-send*
--remote-send {keys} Send {keys} to server and exit. The {keys}
are not mapped. Special key names are
@@ -72,6 +75,12 @@ The following command line arguments are available:
on stdout.
*--serverlist*
--serverlist Output a list of server names.
*--clientserver*
--clientserver {method} Use the specified method {method} as the
backend for clientserver functionality. Can
either be "socket" or "x11".
{only available when Vim is compiled with both
|+X11| and |+socketserver| features}
Examples ~
@@ -105,7 +114,8 @@ specified name is not available, a postfix is applied until a free name is
encountered, i.e. "gvim1" for the second invocation of gvim on a particular
X-server. The resulting name is available in the servername builtin variable
|v:servername|. The case of the server name is ignored, thus "gvim" and
"GVIM" are considered equal.
"GVIM" are considered equal. Note if a socket server is being used, there are
some differences, see |socketserver-differences|.
When Vim is invoked with --remote, --remote-wait or --remote-send it will try
to locate the server name determined by the invocation name and --servername
@@ -119,7 +129,8 @@ itself. This way it is not necessary to know whether gvim is already started
when sending command to it.
The --serverlist argument will cause Vim to print a list of registered command
servers on the standard output (stdout) and exit.
servers on the standard output (stdout) and exit. If a socket server is being
used, there are caveats, see |socketserver-differences|.
*{server}*
The {server} argument is used by several functions. When this is an empty
string then on Unix the default server name is used, which is "GVIM". On
@@ -206,4 +217,64 @@ When using gvim, the --remote-wait only works properly this way: >
start /w gvim --remote-wait file.txt
<
==============================================================================
3. Socket server specific items *socketserver-clientserver*
*E1563* *E1564* *E1565* *E1566* *E1567*
The communication between client and server is done using Unix domain sockets.
These sockets are either placed in these directories in the following order of
availability:
1. "$XDG_RUTIME_DIR/vim" if $XDG_RUNTIME_DIR is set in the environment.
2. "$TMPDIR/vim-[uid]", where "[uid]" is the uid of the user. This
directory will have the access permissions set to 700 so only the user
can read or write from/to it. If $TMPDIR is not set, "/tmp" is used.
*socketserver-name*
When specifying the server id/name, it can be taken as a generic name or an
absolute or relative path. If the server id starts with either a "/"
(absolute) or "./" | "../" (relative), then it is taken as path to the socket.
Otherwise the server id will be the filename of the socket which will be
placed in the above common directories. Note that a server id/name can only
contain slashes "/" if it is taken as a path, so names such as "abc/dir" will
be invalid.
Socket server functionality is available in both GTK GUI and terminal versions of
Vim. Unless Vim is compiled with |+autoservername| feature, the socket server
will have to started explicitly, just like X11, even in the GUI.
If Vim crashes or does not exit cleanly, the socket server will not remove the
socket file and it will be left around. This is generally not a problem,
because if a socket name is taken, Vim checks if the socket in its place is
dead (not attached to any process), and can replace it instead of finding a
new name.
To send commands to a Vim socket server from another application, read the
source file src/os_unix.c, there is detailed description of the protocol used.
*socketserver-differences*
Most of the functionality is the same as X11, however unlike X11, where the
client does not need to be a server in order to communicate with another
server, the socket server requires the server to be running even as a client.
The exception is |serverlist()| or the |--serverlist| argument, which does not
require the server to be running.
Additionally, the server id or client id will not be a number like X11 or
MS-Windows (shown in hex representation), instead it is the absolute path to
the socket. This can be seen via the |v:servername| variable.
The |--serverlist| argument will act just like X11, however it only checks the
given common directories above. If a custom path is used for a socket, it
will not be detected, such as a path either not in $XDG_RUNTIME_DIR or
<$TMPDIR or /tmp>/vim of the |--serverlist| Vim process.
If you have both |+socketserver| and |+X11| compiled, you will need to add
|--clientserver| set to "socket" in combination with |--serverlist| to list
the available servers. You cannot list both types of backends in one command.
*socketserver-x11*
If Vim is compiled with both |+X11| and |+socketserver|, then deciding which
backend to use is done at startup time, via the |--clientserver| argument. By
default if it is not specified, then X11 will be used. A Vim instance using a
socket server cannot communicate with one using X11.
vim:tw=78:sw=4:ts=8:noet:ft=help:norl:

View File

@@ -1,4 +1,4 @@
*sponsor.txt* For Vim version 9.1. Last change: 2024 Aug 14
*sponsor.txt* For Vim version 9.1. Last change: 2025 Aug 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -140,7 +140,8 @@ Are the donations tax deductible?
That depends on your country. The donations to help the children in |Uganda|
are tax deductible in Holland, Germany, Canada and in the USA. See the ICCF
website http://iccf-holland.org/donate.html.
website https://iccf-holland.org/donate.html (Note: this process is currently
undergoing some changes and will be done differently in the future).
Can you send me a bill?

View File

@@ -1,4 +1,4 @@
*syntax.txt* For Vim version 9.1. Last change: 2025 Aug 07
*syntax.txt* For Vim version 9.1. Last change: 2025 Aug 18
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1116,6 +1116,23 @@ in the "after" directory in 'runtimepath'. For Unix this would be
syn sync fromstart
set foldmethod=syntax
CANGJIE *cangjie.vim* *ft-cangjie-syntax*
This file provides syntax highlighting for the Cangjie programming language, a
new-generation language oriented to full-scenario intelligence.
All highlighting is enabled by default. To disable highlighting for a
specific group, set the corresponding variable to 0 in your |vimrc|.
All options to disable highlighting are: >
:let g:cangjie_comment_color = 0
:let g:cangjie_identifier_color = 0
:let g:cangjie_keyword_color = 0
:let g:cangjie_macro_color = 0
:let g:cangjie_number_color = 0
:let g:cangjie_operator_color = 0
:let g:cangjie_string_color = 0
:let g:cangjie_type_color = 0
CH *ch.vim* *ft-ch-syntax*
C/C++ interpreter. Ch has similar syntax highlighting to C and builds upon
@@ -1637,7 +1654,7 @@ Elixir.
FLEXWIKI *flexwiki.vim* *ft-flexwiki-syntax*
FlexWiki is an ASP.NET-based wiki package which used to be available at
http://www.flexwiki.com
www.flexwiki.com
NOTE: This site currently doesn't work, on Wikipedia is mentioned that
development stopped in 2009.
@@ -1962,7 +1979,7 @@ are read during initialization) >
:let html_my_rendering=1
If you'd like to see an example download mysyntax.vim at
http://www.fleiner.com/vim/download.html
https://www.fleiner.com/vim/download.html
You can also disable this rendering by adding the following line to your
vimrc file: >
@@ -2231,6 +2248,15 @@ Certain modifiers are incompatible with each other, e.g. `abstract` and
and can be differently highlighted as a group than other modifiers with >
:hi link javaConceptKind NonText
All instances of variable-width lookbehind assertions (|/\@<!| and |/\@<=|),
resorted to in syntax item definitions, are confined to arbitrary byte counts.
Another arbitrary value can be selected for a related group of definitions.
For example: >
:let g:java_lookbehind_byte_counts = {'javaMarkdownCommentTitle': 240}
Where each key name of this dictionary is the name of a syntax item. The use
of these assertions in syntax items may vary among revisions, so no definitive
set of supported key names is committed to.
If you notice highlighting errors while scrolling backwards, which are fixed
when redrawing with CTRL-L, try setting the "g:java_minlines" variable to
a larger number: >

View File

@@ -43,6 +43,7 @@ $quote eval.txt /*$quote*
'a motion.txt /*'a*
'ac' options.txt /*'ac'*
'acd' options.txt /*'acd'*
'acl' options.txt /*'acl'*
'ai' options.txt /*'ai'*
'akm' options.txt /*'akm'*
'al' options.txt /*'al'*
@@ -64,6 +65,7 @@ $quote eval.txt /*$quote*
'asd' options.txt /*'asd'*
'autochdir' options.txt /*'autochdir'*
'autocomplete' options.txt /*'autocomplete'*
'autocompletedelay' options.txt /*'autocompletedelay'*
'autoindent' options.txt /*'autoindent'*
'autoprint' vi_diff.txt /*'autoprint'*
'autoread' options.txt /*'autoread'*
@@ -1495,6 +1497,7 @@ $quote eval.txt /*$quote*
+scrollbind various.txt /*+scrollbind*
+signs various.txt /*+signs*
+smartindent various.txt /*+smartindent*
+socketserver various.txt /*+socketserver*
+sodium various.txt /*+sodium*
+sound various.txt /*+sound*
+spell various.txt /*+spell*
@@ -1555,6 +1558,7 @@ $quote eval.txt /*$quote*
-- starting.txt /*--*
--- starting.txt /*---*
--clean starting.txt /*--clean*
--clientserver remote.txt /*--clientserver*
--cmd starting.txt /*--cmd*
--echo-wid starting.txt /*--echo-wid*
--gui-dialog-file starting.txt /*--gui-dialog-file*
@@ -4695,6 +4699,11 @@ E156 sign.txt /*E156*
E1560 vim9.txt /*E1560*
E1561 vim9.txt /*E1561*
E1562 options.txt /*E1562*
E1563 remote.txt /*E1563*
E1564 remote.txt /*E1564*
E1565 remote.txt /*E1565*
E1566 remote.txt /*E1566*
E1567 remote.txt /*E1567*
E157 sign.txt /*E157*
E158 sign.txt /*E158*
E159 sign.txt /*E159*
@@ -6484,6 +6493,7 @@ c_space_errors syntax.txt /*c_space_errors*
c_syntax_for_h syntax.txt /*c_syntax_for_h*
c_wildchar cmdline.txt /*c_wildchar*
call() builtin.txt /*call()*
cangjie.vim syntax.txt /*cangjie.vim*
carriage-return intro.txt /*carriage-return*
case change.txt /*case*
catch-all eval.txt /*catch-all*
@@ -7422,6 +7432,7 @@ ft-bash-syntax syntax.txt /*ft-bash-syntax*
ft-basic-syntax syntax.txt /*ft-basic-syntax*
ft-c-omni insert.txt /*ft-c-omni*
ft-c-syntax syntax.txt /*ft-c-syntax*
ft-cangjie-syntax syntax.txt /*ft-cangjie-syntax*
ft-ch-syntax syntax.txt /*ft-ch-syntax*
ft-changelog-plugin filetype.txt /*ft-changelog-plugin*
ft-changelog-syntax syntax.txt /*ft-changelog-syntax*
@@ -10221,6 +10232,10 @@ slow-fast-terminal term.txt /*slow-fast-terminal*
slow-start starting.txt /*slow-start*
slow-terminal term.txt /*slow-terminal*
socket-interface channel.txt /*socket-interface*
socketserver-clientserver remote.txt /*socketserver-clientserver*
socketserver-differences remote.txt /*socketserver-differences*
socketserver-name remote.txt /*socketserver-name*
socketserver-x11 remote.txt /*socketserver-x11*
sort() builtin.txt /*sort()*
sorting change.txt /*sorting*
sound-functions usr_41.txt /*sound-functions*

View File

@@ -1,4 +1,4 @@
*todo.txt* For Vim version 9.1. Last change: 2025 Aug 06
*todo.txt* For Vim version 9.1. Last change: 2025 Aug 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -289,7 +289,8 @@ Terminal emulator window:
then when the window is resized redraw those lines.
- Redrawing is slow with Motif. (Ramel Eshed)
- For the GUI fill termios with default values, perhaps like pangoterm:
http://bazaar.launchpad.net/~leonerd/pangoterm/trunk/view/head:/main.c#L134
(dead link)
bazaar.launchpad.net/~leonerd/pangoterm/trunk/view/head:/main.c#L134
- When 'encoding' is not utf-8, or the job is using another encoding, setup
conversions.
@@ -1426,12 +1427,6 @@ Possibly include the needed code so that it can be built everywhere.
Add a way to restart a timer. It's similar to timer_stop() and timer_start(),
but the reference remains valid.
Need to try out instructions in INSTALLpc.txt about how to install all
interfaces and how to build Vim with them.
Appveyor build with self-installing executable, includes getting most
interfaces: https://github.com/k-takata/vim/tree/chrisbra-appveyor-build
result: https://ci.appveyor.com/project/k-takata/vim/history
Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15)
Patch to make tests pass with EBCDIC. (Owen Leibman, 2016 Apr 10)
@@ -1654,7 +1649,7 @@ Or minpac: https://github.com/k-takata/minpac, since it leverages the builtin
package feature.
Long message about this from ZyX, 2014 Mar 23. And following replies.
Also see (link seems dead):
http://vim-wiki.mawercer.de/wiki/topic/vim%20plugin%20managment.html
vim-wiki.mawercer.de/wiki/topic/vim%20plugin%20managment.html
User view:
- Support multiple sources, basically any http:// URL. Or a central place that
will work for everybody (github? redirects from vim.org?).
@@ -2376,7 +2371,7 @@ Problem with 'ts' set to 9 and 'showbreak' to ">>>". (Matthew Winn, 2007 Oct
Would be more consistent when an existing tab is re-used. (Tony Mechelynck)
Using Aap to build Vim: add remarks about how to set personal preferences.
Example on http://www.calmar.ws/tmp/aap.html (link seems dead)
Example on www.calmar.ws/tmp/aap.html (link seems dead)
When 'diffopt' has "context:0" a single deleted line causes two folds to merge
and mess up syncing. (Austin Jennings, 2008 Jan 31)
@@ -2407,7 +2402,7 @@ Asked about latest version: 0.77.1 is on www.vim.org.
More AmigaOS4 patches. (Peter Bengtsson, Nov 9)
Amiga patches with vbcc. (Adrien Destugues, 2010 Aug 30)
(link seems dead): http://pulkomandy.ath.cx/drop/vim73_vbcc_amiga.diff
(link seems dead): pulkomandy.ath.cx/drop/vim73_vbcc_amiga.diff
Problem with compound words? (Bert, 2008 May 6)
No warning for when flags are defined after they are used in an affix.
@@ -2478,7 +2473,7 @@ Win32: Patch for cscope external command. (Mike Williams, 2007 Aug 7)
Win32: XPM support only works with path without spaces. Patch by Mathias
Michaelis, 2006 Jun 9. Another patch for more path names, 2006 May 31.
New version (link seems dead):
http://members.tcnet.ch/michaelis/vim/patches.zip
members.tcnet.ch/michaelis/vim/patches.zip
(also for other patches by Mathias, see mail Feb 22)
Win32: compiling with normal features and OLE fails. Patch by Mathias
@@ -3018,7 +3013,7 @@ Win32 GUI known bugs:
the screen.
8 The -P argument doesn't work very well with many MDI applications.
The last argument of CreateWindowEx() should be used, see MSDN docs.
Tutorial (link seems dead): http://win32assembly.online.fr/tut32.html
Tutorial (link seems dead): win32assembly.online.fr/tut32.html
6 Win32 GUI: With "-u NONE -U NONE" and doing "CTRL-W v" "CTRL-W o", the ":"
of ":only" is highlighted like the cursor. (Lipelis)
8 When 'encoding' is "utf-8", should use 'guifont' for both normal and wide
@@ -3248,7 +3243,7 @@ Macintosh:
7 Loading the Perl library only works on OS/X 10.2 or 10.3, never on both.
Load the Perl library dynamically see Python sources file dynload_mac
(Jack)
dynamic linking: http://developer.apple.com/technotes/tn2002/tn2064.html
dynamic linking: https://developer.apple.com/library/archive/technotes/tn2064/_index.html
8 inputdialog() doesn't resize when giving more text lines. (David Fishburn,
2006 Sept 28)
8 Define vim_mkdir() for Macintosh.
@@ -3597,7 +3592,7 @@ Most interesting new features to be added when all bugs have been fixed:
198 standard http://www.jcp.org/en/jsr/detail?id=198.
Eclim does it: http://eclim.sourceforge.net/ (Eric Van Dewoestine)
Plugin that uses a terminal emulator: http://vimplugin.sf.net
And another one: http://www.satokar.com/viplugin/index.php
And another one: (dead link) satokar.com/viplugin/index.php
- STICKY CURSOR: Add a way of scrolling that leaves the cursor where it is.
Especially when using the scrollbar. Typing a cursor-movement command
scrolls back to where the cursor is.
@@ -3710,7 +3705,7 @@ Spell checking:
Is COMPLEXPREFIXES necessary when we have flags for affixes?
- There is no Finnish spell checking file. For openoffice Voikko is now
used, which is based on Malaga (link seems dead):
http://home.arcor.de/bjoern-beutel/malaga/ (Teemu Likonen)
home.arcor.de/bjoern-beutel/malaga/ (Teemu Likonen)
8 ":mkspell" still takes much too long in Hungarian dictionary from
hunspell. Only solution appears to be to postpone secondary suffixes.
8 Handle postponed prefix with COMPOUNDPERMITFLAG or COMPOUNDFORBIDFLAG.
@@ -3761,14 +3756,14 @@ Spell checking:
word/flags and affix.
- Implement multiple flags for compound words and CMP item?
Await comments from other spell checking authors.
- Also see tklspell: http://tkltrans.sourceforge.net/
- Also see tklspell: (dead link) tkltrans.sourceforge.net/
8 Charles Campbell asks for method to add "contained" groups to existing
syntax items (to add @Spell).
Add ":syntax contains {pattern} add=@Spell" command? A bit like ":syn
cluster" but change the contains list directly for matching syntax items.
- References: MySpell library (in OpenOffice.org), (links seem dead):
http://spellchecker.mozdev.org/source.html
http://whiteboard.openoffice.org/source/browse/whiteboard/lingucomponent/source/spellcheck/myspell/
spellchecker.mozdev.org/source.html
(dead link) whiteboard.openoffice.org/source/browse/whiteboard/lingucomponent/source/spellcheck/myspell/
author: Kevin Hendricks <kevin.hendricks@sympatico.ca>
8 It is currently not possible to mark "can not" as rare, because "can" and
"not" are good words. Find a way to let "rare" overrule "good"?
@@ -4514,7 +4509,7 @@ Win32 GUI:
8 Could keep console open to run multiple commands, to avoid the need to hit
return in every console.
Also: Look at how Emacs does run external commands:
http://www.cs.washington.edu/homes/voelker/ntemacs.html.
(deak link) www.cs.washington.edu/homes/voelker/ntemacs.html.
8 Need a separate PopUp menu for modeless selection. Need two new commands:
Copy selection to clipboard, Paste selection (as typed text).
8 Support copy/paste for other file formats. At least HTML, perhaps RTF.
@@ -4721,7 +4716,7 @@ Omni completion:
http://cedet.sourceforge.net/intellisense.shtml (for Emacs)
Ivan Villanueva has something for Java.
Emacs (link seems dead):
http://www.xref-tech.com/xrefactory/more_c_completion.html
www.xref-tech.com/xrefactory/more_c_completion.html
Completion in .NET framework SharpDevelop: http://www.icsharpcode.net
- Pre-expand abbreviations, show which abbrevs would match?
@@ -5246,7 +5241,7 @@ Searching:
to find out how much time has passed. Or use SIGALRM. Where to show the
number?
7 Support for approximate-regexps to find similar words (agrep
http://www.tgries.de/agrep/ tre: http://laurikari.net/tre/index.html).
http://www.tgries.de/agrep/ tre: (dead link) laurikari.net/tre/index.html).
8 Add an item for a big character range, so that one can search for a
chinese character: \z[234-1234] or \z[XX-YY] or \z[0x23-0x234].
7 Add an item stack to allow matching (). One side is "push X on

View File

@@ -1,4 +1,4 @@
*uganda.txt* For Vim version 9.1. Last change: 2025 Jul 08
*uganda.txt* For Vim version 9.1. Last change: 2025 Aug 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -24,7 +24,7 @@ The Open Publication License applies to the Vim documentation, see
The icons used for the toolbar in the Win32 GUI are from the "Farm-Fresh Web
Icons" set. These icons are licensed under the Creative Commons Attribution
3.0 License and were created by FatCow Web Hosting. They were previously
available at http://www.fatcow.com/free-icons and are still available at:
available at (dead link) fatcow.com/free-icons and are still available at:
https://www.iconarchive.com/show/farm-fresh-icons-by-fatcow.1.html

View File

@@ -1,4 +1,4 @@
*usr_41.txt* For Vim version 9.1. Last change: 2025 Jul 21
*usr_41.txt* For Vim version 9.1. Last change: 2025 Aug 18
VIM USER MANUAL - by Bram Moolenaar
@@ -30,10 +30,10 @@ Table of contents: |usr_toc.txt|
*41.1* Introduction *vim-script-intro* *script*
Let's start with some nomenclature. A Vim script is any file that Vim can
interpret and execute. This includes files written in Vim's scripting language
like for example .vim files or configuration files like .vimrc and .gvimrc.
These scripts may define functions, commands and settings that Vim uses to
customize and extend its behavior.
interpret and execute. This includes files written in Vim's scripting
language like for example .vim files or configuration files like .vimrc and
.gvimrc. These scripts may define functions, commands and settings that Vim
uses to customize and extend its behavior.
*vim-script-notation*
The correct notation is "Vim script" (or "Vim9 script" when refering to the
@@ -125,8 +125,8 @@ make such a loop, it can be written much more compact: >
echo $"count is {i}"
endfor
We won't explain how `for`, `range()`and `$"string"` work until later. Follow
the links if you are impatient.
We won't explain how `for`, `range()` and `$"string"` work until later.
Follow the links if you are impatient.
TRYING OUT EXAMPLES
@@ -749,7 +749,7 @@ String manipulation: *string-functions*
str2list() get list of numbers from a string
str2nr() convert a string to a Number
str2float() convert a string to a Float
printf() format a string according to % items
printf() format a string according to "%" items
escape() escape characters in a string with a '\'
shellescape() escape a string for use with a shell command
fnameescape() escape a file name for use with a Vim command
@@ -806,6 +806,7 @@ String manipulation: *string-functions*
ngettext() lookup single/plural message translation
str2blob() convert a list of strings into a blob
blob2str() convert a blob into a list of strings
items() get List of String index-character pairs
List manipulation: *list-functions*
get() get an item without error for wrong index
@@ -832,9 +833,8 @@ List manipulation: *list-functions*
range() return a List with a sequence of numbers
string() String representation of a List
call() call a function with List as arguments
index() index of a value in a List or Blob
indexof() index in a List or Blob where an expression
evaluates to true
index() index of a value in a List
indexof() index in a List where an expression is true
max() maximum value in a List
min() minimum value in a List
count() count number of times a value appears in a List
@@ -918,6 +918,8 @@ Blob manipulation: *blob-functions*
blob2list() get a list of numbers from a blob
list2blob() get a blob from a list of numbers
reverse() reverse the order of numbers in a blob
index() index of a value in a Blob
indexof() index in a Blob where an expression is true
Other computation: *bitwise-function*
and() bitwise AND
@@ -1456,9 +1458,9 @@ Various: *various-functions*
luaeval() evaluate |Lua| expression
mzeval() evaluate |MzScheme| expression
perleval() evaluate Perl expression (|+perl|)
py3eval() evaluate Python expression (|+python3|)
pyeval() evaluate Python expression (|+python|)
perleval() evaluate Perl expression
py3eval() evaluate Python expression
pyeval() evaluate Python expression
pyxeval() evaluate |python_x| expression
rubyeval() evaluate |Ruby| expression
@@ -1586,7 +1588,7 @@ once for every line in the range, with the cursor in that line. Example: >
If you call this function with: >
:10,15Number()
:10,15call Number()
The function will be called six times, starting on line 10 and ending on line
15.

View File

@@ -1,4 +1,4 @@
*various.txt* For Vim version 9.1. Last change: 2025 Aug 06
*various.txt* For Vim version 9.1. Last change: 2025 Aug 18
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -487,6 +487,8 @@ m *+ruby/dyn* Ruby interface |ruby-dynamic| |/dyn|
T *+scrollbind* 'scrollbind'
N *+signs* |:sign|
T *+smartindent* 'smartindent'
N *+socketserver* Unix only: socket server backend for clientserver
functionality
H *+sodium* compiled with libsodium for better encryption support
H *+sound* |sound_playevent()|, |sound_playfile()| functions, etc.
N *+spell* spell checking support, see |spell|

View File

@@ -1,4 +1,4 @@
*version9.txt* For Vim version 9.1. Last change: 2025 Jul 25
*version9.txt* For Vim version 9.1. Last change: 2025 Aug 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -41608,7 +41608,8 @@ Completion~
Platform specific~
-----------------
- Support for Wayland UI and support for the Wayland clipboard has been added.
- Support for Wayland UI and support for the Wayland clipboard has been added
|wayland|.
- Support for the XDG Desktop Specification |xdg-base-dir| has been added and
the environment variable |$MYVIMDIR| is set to the users personal runtime
@@ -41722,6 +41723,9 @@ Functions: ~
not finished
- Add the optional {opts} |Dict| argument to |getchar()| to control: cursor
behaviour, return type and whether or not to simplify the returned key
- |chdir()| allows to optionally specify a scope argument
- |matchfuzzy()| and |matchfuzzypos()| use an improved fuzzy matching
algorithm (same as fzy).
Others: ~
- the regex engines match correctly case-insensitive multi-byte characters
@@ -41735,6 +41739,19 @@ Others: ~
- |gv| works in operator pending mode and does not abort
- The close button shown in the non-GUI 'tabline' will only be visible if the
'mouse' option contains either "a" or any of the flags "n", "v", or "i".
- |C-indenting| handles compound literals.
- The digraphs "</" (LEFT-POINTING ANGLE BRACKET) and ">/" (RIGHT-POINTING
ANGLE BRACKET) have been changed to represent LEFT ANGLE BRACKET and RIGHT
ANGLE BRACKET to match the Unicode Miscellaneous Technical code chart from
Unicode 16.
- Two additional digraphs have been added: LEFT ANGLE BRACKET "<[" and RIGHT
ANGLE BRACKET "]>".
- Support for Unix domain sockets have been added for the clientserver
feature, see |socketserver-clientserver|.
Platform specific ~
- MS-Winodws: Paths like "\Windows" and "/Windows" are now considered to be
absolute paths (to the current drive) and no longer relative.
*added-9.2*
Added ~
@@ -41811,7 +41828,9 @@ Ex-Commands: ~
Options: ~
'autocompletion' Enable auto completion |ins-autocompletion|
'autocompletedelay' Delay in msec before menu appears after typing
'chistory' Size of the quickfix stack |quickfix-stack|.
'clipmethod' How to access the clipboard.
'completefuzzycollect' Enable fuzzy collection of candidates for (some)
|ins-completion| modes
'completeitemalign' Order of |complete-items| in Insert mode completion
@@ -41833,9 +41852,14 @@ Options: ~
't_xo' Terminal uses XON/XOFF handshaking (e.g. vt420)
't_CF' Support for alternate font highlighting terminal code
'winfixbuf' Keep buffer focused in a window
'wlseat' Specify Wayland seat to use for the |wayland| feature
'wlsteal' Steal focus to access the |wayland| clipboard
'wltimeout' Specify the connection timeout for the |wayland|
compositor
Vim Arguments: ~
|-Y| Do not connect to the Wayland compositor.
|-Y| Do not connect to the |wayland| compositor.
|--clientserver| Specify backend for clientserver functionality.
==============================================================================

View File

@@ -1,4 +1,4 @@
*vi_diff.txt* For Vim version 9.1. Last change: 2025 Aug 06
*vi_diff.txt* For Vim version 9.1. Last change: 2025 Aug 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1346,7 +1346,7 @@ This is where Vim does not behave as POSIX specifies and why:
These are remarks about running the POSIX test suite:
- vi test 33 sometimes fails for unknown reasons
- vi test 250 fails; behavior will be changed in a new revision
http://www.opengroup.org/austin/mailarchives/ag-review/msg01710.html
(dead link) opengroup.org/austin/mailarchives/ag-review/msg01710.html
(link no longer works, perhaps it's now:
https://www.opengroup.org/sophocles/show_mail.tpl?CALLER=show_archive.tpl&source=L&listname=austin-review-l&id=1711)
- vi test 310 fails; exit code non-zero when any error occurred?

View File

@@ -499,8 +499,17 @@ Come \-\-remote\-wait, ma senza avvisare se non si trova un server.
Elenca i nomi di tutti i server Vim disponibili.
.TP
\-\-servername {nome}
Usa {nome} come nome server. Usato per il Vim corrente, a meno che sia usato
con l'argomento \-\-remote, nel qual caso indica il server a cui connettersi.
Usa {nome} come nome del server usato per il Vim corrente, a meno che sia
usato con l'argomento \-\-remote, nel qual caso indica il server a cui
connettersi.
Quando si sta usando il server a socket [socketserver backend], se il nome
inizia con "/", "./", o "../", è considerato come il percorso, assoluto o
relativo per arrivare al socket.
.TP
\-\-clientserver {backend}
Usare {backend} come interfaccia per la funzionalità client/server,
rispettivamente, o "socket" o "x11". Disponibile solo se Vim è stato
compilato con le due funzionalità socketserver e X11.
.TP
\-\-socketid {id}
Solo per GUI GTK: Usa meccanismo GtkPlug per eseguire gVim in un'altra finestra.
@@ -568,7 +577,8 @@ Inizializzazioni personali di
(viene utilizzata la prima trovata).
.TP
/usr/local/share/vim/vim??/optwin.vim
Script Vim usato dal comando ":options", maniera elegante per visualizzare e impostare opzioni.
Script Vim usato dal comando ":options", maniera elegante per visualizzare
e impostare opzioni.
.TP
/usr/local/share/vim/vim??/menu.vim
Inizializzazioni del menù

View File

@@ -499,8 +499,17 @@ Come \-\-remote\-wait, ma senza avvisare se non si trova un server.
Elenca i nomi di tutti i server Vim disponibili.
.TP
\-\-servername {nome}
Usa {nome} come nome server. Usato per il Vim corrente, a meno che sia usato
con l'argomento \-\-remote, nel qual caso indica il server a cui connettersi.
Usa {nome} come nome del server usato per il Vim corrente, a meno che sia
usato con l'argomento \-\-remote, nel qual caso indica il server a cui
connettersi.
Quando si sta usando il server a socket [socketserver backend], se il nome
inizia con "/", "./", o "../", è considerato come il percorso, assoluto o
relativo per arrivare al socket.
.TP
\-\-clientserver {backend}
Usare {backend} come interfaccia per la funzionalità client/server,
rispettivamente, o "socket" o "x11". Disponibile solo se Vim è stato
compilato con le due funzionalità socketserver e X11.
.TP
\-\-socketid {id}
Solo per GUI GTK: Usa meccanismo GtkPlug per eseguire gVim in un'altra finestra.
@@ -568,7 +577,8 @@ Inizializzazioni personali di
(viene utilizzata la prima trovata).
.TP
/usr/local/share/vim/vim??/optwin.vim
Script Vim usato dal comando ":options", maniera elegante per visualizzare e impostare opzioni.
Script Vim usato dal comando ":options", maniera elegante per visualizzare
e impostare opzioni.
.TP
/usr/local/share/vim/vim??/menu.vim
Inizializzazioni del menù

View File

@@ -499,7 +499,14 @@ List the names of all Vim servers that can be found.
.TP
\-\-servername {name}
Use {name} as the server name. Used for the current Vim, unless used with a
\-\-remote argument, then it's the name of the server to connect to.
\-\-remote argument, then it's the name of the server to connect to. If the
socketserver backend is being used, if the name starts with "/", "./", or "../",
it is taken as either an absolute, relative or relative path to the socket.
.TP
\-\-clientserver {backend}
Use {backend} as the backend for clientserver functionality, either "socket" or
"x11" respectively. Only available when compiled with both socketserver and X11
features present
.TP
\-\-socketid {id}
GTK GUI only: Use the GtkPlug mechanism to run gVim in another window.

View File

@@ -378,7 +378,16 @@ OPTIONS
--servername {name}
Use {name} as the server name. Used for the current Vim,
unless used with a --remote argument, then it's the name of
the server to connect to.
the server to connect to. If the socketserver backend is
being used, if the name starts with "/", "./", or "../", it
is taken as either an absolute, relative or relative path
to the socket.
--clientserver {backend}
Use {backend} as the backend for clientserver functional
ity, either "socket" or "x11" respectively. Only available
when compiled with both socketserver and X11 features
present
--socketid {id}
GTK GUI only: Use the GtkPlug mechanism to run gVim in an

View File

@@ -1,4 +1,4 @@
*wayland.txt* For Vim version 9.1. Last change: 2025 Jun 28
*wayland.txt* For Vim version 9.1. Last change: 2025 Aug 20
VIM REFERENCE MANUAL by Bram Moolenaar

View File

@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: The Vim Project <https://github.com/vim/vim>
" Last Change: 2025 Jun 18
" Last Change: 2025 Aug 10
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
" Listen very carefully, I will say this only once
@@ -1320,7 +1320,7 @@ au BufNewFile,BufRead *.ipynb,*.jupyterlab-settings setf json
au BufNewFile,BufRead *.sublime-project,*.sublime-settings,*.sublime-workspace setf json
" Other files that look like json
au BufNewFile,BufRead .prettierrc,.firebaserc,.stylelintrc,.lintstagedrc,flake.lock,deno.lock,.swcrc setf json
au BufNewFile,BufRead .prettierrc,.firebaserc,.stylelintrc,.lintstagedrc,flake.lock,deno.lock,.swcrc,composer.lock,symfony.lock setf json
" JSONC (JSON with comments)
au BufNewFile,BufRead *.jsonc,.babelrc,.eslintrc,.jsfmtrc,bun.lock setf jsonc
@@ -1945,6 +1945,7 @@ au BufNewFile,BufRead .pinerc,pinerc,.pinercex,pinercex setf pine
au BufNewFile,BufRead *.pip setf requirements
au BufNewFile,BufRead requirements.txt setf requirements
au BufNewFile,BufRead *-requirements.txt setf requirements
au BufNewFile,BufRead requirements-*.txt setf requirements
au BufNewFile,BufRead constraints.txt setf requirements
au BufNewFile,BufRead requirements.in setf requirements
au BufNewFile,BufRead requirements/*.txt setf requirements
@@ -2432,6 +2433,9 @@ au BufNewFile,BufRead *.il,*.ils,*.cdf setf skill
" Cadence
au BufNewFile,BufRead *.cdc setf cdc
" Cangjie
au BufNewFile,BufRead *.cj setf cangjie
" SLRN
au BufNewFile,BufRead .slrnrc setf slrnrc
au BufNewFile,BufRead *.score setf slrnsc

View File

@@ -1,8 +1,7 @@
" Vim filetype plugin file
" Language: C
" Maintainer: The Vim Project <https://github.com/vim/vim>
" Last Change: 2023 Aug 22
" 2024 Jun 02 by Riley Bruins <ribru17@gmail.com> ('commentstring')
" Last Change: 2025 Aug 08
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
" Only do this when not done yet for this buffer
@@ -28,7 +27,7 @@ setlocal fo-=t fo+=croql
setlocal commentstring=/*\ %s\ */ define& include&
" Set completion with CTRL-X CTRL-O to autoloaded function.
if exists('&ofu')
if exists('&ofu') && has("vim9script")
setlocal ofu=ccomplete#Complete
endif

View File

@@ -3,6 +3,7 @@
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Last Change: 2025 Apr 08
" 2025 Apr 08 by Vim project (set 'omnifunc' and 'iskeyword', #17073)
" 2025 Aug 08 by Vim project (unset comment options, #17889)
if exists("b:did_ftplugin")
finish
@@ -12,7 +13,9 @@ let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
let b:undo_ftplugin = "setl isk< fo< tw< cole< cocu< keywordprg< omnifunc<"
let b:undo_ftplugin = "setl isk< fo< tw< cole< cocu< keywordprg< omnifunc< comments< cms<"
setl comments= cms=
setlocal formatoptions+=tcroql textwidth=78 keywordprg=:help omnifunc=s:HelpComplete
let &l:iskeyword='!-~,^*,^|,^",192-255'

View File

@@ -0,0 +1,14 @@
" Vim filetype plugin file
" Language: OpenSCAD (https://openscad.org)
" Maintainer: Zachary Scheiman <me@zacharyscheiman.com>
" Last Change: 2025 Aug 3
if exists('b:did_ftplugin')
finish
endif
let b:did_ftplugin = 1
" Comments in openscad follow C/C++ syntax
setlocal commentstring=//\ %s
let b:undo_ftplugin = 'setl commentstring<'

View File

@@ -3,7 +3,7 @@
" Maintainer: D. Ben Knoble <ben.knoble+github@gmail.com>
" Previous Maintainer: Will Langstroth <will@langstroth.com>
" URL: https://github.com/benknoble/vim-racket
" Last Change: 2024 Jun 01
" Last Change: 2025 Aug 09
if exists("b:did_ftplugin")
finish
@@ -39,7 +39,7 @@ if !exists("no_plugin_maps") && !exists("no_racket_maps")
" "press ENTER or type a command to continue"
" We avoid the annoyance of having to hit enter by remapping K directly.
function s:RacketDoc(word) abort
execute 'silent !raco docs --' shellescape(a:word)
execute 'silent !raco docs --' shellescape(a:word, v:true)
redraw!
endfunction
nnoremap <buffer> <Plug>RacketDoc :call <SID>RacketDoc(expand('<cword>'))<CR>

View File

@@ -2,12 +2,15 @@
" Language: Vim
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
" Contributors: Riley Bruins <ribru17@gmail.com> ('commentstring'),
" Contributors: Riley Bruins <ribru17@gmail.com> ('commentstring')
" @Konfekt
" @tpope (s:Help())
" @lacygoill
" Last Change: 2025 Mar 05
" Last Change: 2025 Aug 07
" 2025 Aug 06 by Vim Project (add gf maps #17881)
" 2025 Aug 08 by Vim Project (add Vim script complete function #17871)
" 2025 Aug 12 by Vim Project (improve vimgoto script #17970))
" 2025 Aug 16 by Vim Project set com depending on Vim9 or legacy script
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -22,7 +25,7 @@ set cpo&vim
if !exists('*VimFtpluginUndo')
func VimFtpluginUndo()
setl fo< isk< com< tw< commentstring< include< define< keywordprg<
setl fo< isk< com< tw< commentstring< include< define< keywordprg< omnifunc<
sil! delc -buffer VimKeywordPrg
if exists('b:did_add_maps')
silent! nunmap <buffer> [[
@@ -61,41 +64,42 @@ if !exists("*" .. expand("<SID>") .. "Help")
function s:Help(topic) abort
let topic = a:topic
" keyword is not necessarily under the cursor, see :help K
let line = getline('.')
let i = match(line, '\V' .. escape(topic, '\'), col('.') - len(topic))
let pre = strpart(line, 0, i)
let post = strpart(line, i + len(topic))
" local/global option vars
if topic =~# '[lg]' && pre ==# '&' && post =~# ':\k\+'
let topic = matchstr(post, '\k\+')
endif
if get(g:, 'syntax_on', 0)
let syn = synIDattr(synID(line('.'), col('.'), 1), 'name')
if syn ==# 'vimFuncName'
return topic.'()'
elseif syn ==# 'vimOption'
return "'".topic."'"
elseif syn ==# 'vimUserAttrbKey'
return ':command-'.topic
elseif syn =~# 'vimCommand'
return ':'.topic
return topic .. '()'
elseif syn ==# 'vimOption' || syn ==# 'vimOptionVarName'
return "'" .. topic .. "'"
elseif syn ==# 'vimUserCmdAttrKey'
return ':command-' .. topic
elseif syn ==# 'vimCommand'
return ':' .. topic
endif
endif
let col = col('.') - 1
while col && getline('.')[col] =~# '\k'
let col -= 1
endwhile
let pre = col == 0 ? '' : getline('.')[0 : col]
let col = col('.') - 1
while col && getline('.')[col] =~# '\k'
let col += 1
endwhile
let post = getline('.')[col : -1]
if pre =~# '^\s*:\=$'
return ':'.topic
if pre =~# '^\s*:\=$' || pre =~# '\%(\\\||\)\@<!|\s*:\=$'
return ':' .. topic
elseif pre =~# '\<v:$'
return 'v:'.topic
return 'v:' .. topic
elseif pre =~# '<$'
return '<'.topic.'>'
return '<' .. topic .. '>'
elseif pre =~# '\\$'
return '/\'.topic
return '/\' .. topic
elseif topic ==# 'v' && post =~# ':\w\+'
return 'v'.matchstr(post, ':\w\+')
return 'v' .. matchstr(post, ':\w\+')
elseif pre =~# '&\%([lg]:\)\=$'
return "'" .. topic .. "'"
else
return topic
endif
@@ -107,20 +111,25 @@ setlocal keywordprg=:VimKeywordPrg
" Comments starts with # in Vim9 script. We have to guess which one to use.
if "\n" .. getline(1, 32)->join("\n") =~# '\n\s*vim9\%[script]\>'
setlocal commentstring=#\ %s
" Set 'comments' to format dashed lists in comments, for Vim9 script.
setlocal com=sO:#\ -,mO:#\ \ ,eO:##,:#\\\ ,:#
else
setlocal commentstring=\"%s
" Set 'comments' to format dashed lists in comments, for legacy Vim script.
setlocal com=sO:\"\ -,mO:\"\ \ ,eO:\"\",:\"\\\ ,:\"
endif
" Set 'comments' to format dashed lists in comments, both in Vim9 and legacy
" script.
setlocal com=sO:#\ -,mO:#\ \ ,eO:##,:#\\\ ,:#,sO:\"\ -,mO:\"\ \ ,eO:\"\",:\"\\\ ,:\"
" set 'include' to recognize import commands
setlocal include=\\v^\\s*import\\s*(autoload)?
" set 'define' to recognize export commands
setlocal define=\\v^\\s*export\\s*(def\|const\|var\|final)
if has("vim9script")
" set omnifunc completion
setlocal omnifunc=vimcomplete#Complete
endif
" Format comments to be up to 78 characters long
if &tw == 0
setlocal tw=78
@@ -145,7 +154,7 @@ if !exists("no_plugin_maps") && !exists("no_vim_maps")
nnoremap <silent><buffer> [" :call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR>
xnoremap <silent><buffer> [" :<C-U>exe "normal! gv"<Bar>call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR>
" Purpose: Handle `:import` and `:packadd` lines in a smarter way. {{{
" Purpose: Handle :import, :colorscheme and :packadd lines in a smarter way. {{{
"
" `:import` is followed by a filename or filepath. Find it.
"
@@ -164,9 +173,10 @@ if !exists("no_plugin_maps") && !exists("no_vim_maps")
" buffer.
" }}}
" We use the `F` variants, instead of the `f` ones, because they're smarter.
nnoremap <silent><buffer> gf :<C-U>call vim#Find('gF')<CR>
nnoremap <silent><buffer> <C-W>f :<C-U>call vim#Find("\<lt>C-W>F")<CR>
nnoremap <silent><buffer> <C-W>gf :<C-U>call vim#Find("\<lt>C-W>gF")<CR>
" See $VIMRUNTIME/autoload/vimgoto.vim
nnoremap <silent><buffer> gf :<C-U>call vimgoto#Find('gF')<CR>
nnoremap <silent><buffer> <C-W>f :<C-U>call vimgoto#Find("\<lt>C-W>F")<CR>
nnoremap <silent><buffer> <C-W>gf :<C-U>call vimgoto#Find("\<lt>C-W>gF")<CR>
endif
" Let the matchit plugin know what items can be matched.

View File

@@ -3,7 +3,7 @@
" Maintainer: D. Ben Knoble <ben.knoble+github@gmail.com>
" Previous Maintainer: Will Langstroth <will@langstroth.com>
" URL: https://github.com/benknoble/vim-racket
" Last Change: 2024 Nov 12
" Last Change: 2025 Aug 09
if exists("b:did_indent")
finish
@@ -16,6 +16,7 @@ if has('vim9script')
endif
setlocal lispwords+=module,module*,module+,parameterize,parameterize*,let-values,let*-values,letrec-values,local
setlocal lispwords+=splicing-let,splicing-letrec,splicing-let-values,splicing-letrec-values,splicing-local,splicing-parameterize
setlocal lispwords+=define/contract
setlocal lispwords+=λ
setlocal lispwords+=with-handlers
@@ -50,7 +51,7 @@ setlocal lispwords+=fresh,run,run*,project,conde,condu
" loops
setlocal lispwords+=for,for/list,for/fold,for*,for*/list,for*/fold,for/or,for/and,for*/or,for*/and
setlocal lispwords+=for/hash,for/hasheq,for/hasheqv,for/sum,for/flvector,for*/flvector,for/vector,for*/vector,for*/sum,for*/hash,for*/hasheq,for*/hasheqv
setlocal lispwords+=for/hash,for/hasheq,for/hasheqv,for/sum,for/flvector,for*/flvector,for/vector,for*/vector,for/fxvector,for*/fxvector,for*/sum,for*/hash,for*/hasheq,for*/hasheqv
setlocal lispwords+=for/async
setlocal lispwords+=for/set,for*/set
setlocal lispwords+=for/first,for*/first

View File

@@ -124,6 +124,7 @@ SynMenu C.C++:cpp
SynMenu C.C#:cs
SynMenu C.Cabal\ Haskell\ build\ file:cabal
SynMenu C.Calendar:calendar
SynMenu C.Cangjie:cangjie
SynMenu C.Cascading\ Style\ Sheets:css
SynMenu C.CDL:cdl
SynMenu C.Cdrdao\ TOC:cdrtoc

View File

@@ -2,7 +2,7 @@
" You can also use this as a start for your own set of menus.
"
" Maintainer: The Vim Project <https://github.com/vim/vim>
" Last Change: 2025 Jun 04
" Last Change: 2025 Aug 10
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
" Note that ":an" (short for ":anoremenu") is often used to make a menu work
@@ -693,7 +693,12 @@ def s:BMAdd()
if s:bmenu_count == &menuitems && s:bmenu_short == 0
s:BMShow()
else
s:BMRedraw()
var name = expand("<afile>")
var num = str2nr(expand("<abuf>"))
if s:BMCanAdd(name, num)
s:BMFilename(name, num)
s:bmenu_count += 1
endif
endif
endif
enddef
@@ -741,10 +746,6 @@ def s:BMShow()
s:bmenu_count = 0
s:bmenu_items = {}
s:BMRedraw()
enddef
def s:BMRedraw()
# Remove old menu, if it exists; keep one entry to avoid a torn off menu to
# disappear. Use try/catch to avoid setting v:errmsg
try
@@ -767,30 +768,26 @@ def s:BMRedraw()
unmenu &Buffers.Dummy
# figure out how many buffers there are
var buffer_menu_items = []
var buf = 1
while buf <= bufnr('$')
var name = bufname(buf)
if s:BMCanAdd(name, buf)
add(buffer_menu_items, [substitute(name, ".", '\L\0', ""), name, buf])
if s:BMCanAdd(bufname(buf), buf)
s:bmenu_count = s:bmenu_count + 1
endif
buf += 1
endwhile
s:bmenu_count = len(buffer_menu_items)
if s:bmenu_count <= &menuitems
s:bmenu_short = 0
endif
# iterate through buffer list, adding each buffer to the menu:
sort(buffer_menu_items)
var i = 0
for menu_item in buffer_menu_items
s:BMFilename(menu_item[1], menu_item[2], i)
i += 1
endfor
buf = 1
while buf <= bufnr('$')
var name = bufname(buf)
if s:BMCanAdd(name, buf)
call s:BMFilename(name, buf)
endif
buf += 1
endwhile
s:bmenu_wait = 0
aug buffer_list
au!
@@ -799,8 +796,43 @@ def s:BMRedraw()
aug END
enddef
def s:BMHash(name: string): number
# Create a sortable numeric hash of the name. This number has to be within
# the bounds of a signed 32-bit integer as this is what Vim GUI uses
# internally for the index.
# Make name all upper case, so that alphanumeric chars are between 32 and 96
var nm = toupper(name)
if char2nr(nm[0]) < 32 || char2nr(nm[0]) > 96
# We don't have an ASCII character, so just return the raw character value
# for first character (clamped to 2^31) and set the high bit to make it
# sort after other items. This means only the first character will be
# sorted, unfortunately.
return or(and(char2nr(nm), 0x7fffffff), 0x40000000)
endif
var sp: number
if has("ebcdic")
# HACK: Replace all non alphabetics with 'Z'
# Just to make it work for now.
nm = substitute(nm, "[^A-Z]", 'Z', "g")
sp = char2nr('A') - 1
else
sp = char2nr(' ')
endif
# convert first five chars into a number for sorting by compressing each
# char into 5 bits (0-63), to a total of 30 bits. If any character is not
# ASCII, it will simply be clamped to prevent overflow.
return (max([0, min([63, char2nr(nm[0]) - sp])]) << 24) +
(max([0, min([63, char2nr(nm[1]) - sp])]) << 18) +
(max([0, min([63, char2nr(nm[2]) - sp])]) << 12) +
(max([0, min([63, char2nr(nm[3]) - sp])]) << 6) +
max([0, min([63, char2nr(nm[4]) - sp])])
enddef
def s:BMHash2(name: string): string
var nm = substitute(name, ".", '\L\0', "")
var nm = tolower(name[0])
if nm[0] < 'a' || nm[0] > 'z'
return '&others.'
elseif nm[0] <= 'd'
@@ -819,16 +851,17 @@ def s:BMHash2(name: string): string
enddef
" Insert a buffer name into the buffer menu.
def s:BMFilename(name: string, num: number, index: number)
def s:BMFilename(name: string, num: number)
var munge = s:BMMunge(name, num)
var hash = s:BMHash(munge)
var cmd: string
if s:bmenu_short == 0
s:bmenu_items[num] = munge
cmd = 'an ' .. g:bmenu_priority .. '.9999.' .. index .. ' &Buffers.' .. munge
cmd = 'an ' .. g:bmenu_priority .. '.' .. hash .. ' &Buffers.' .. munge
else
var menu_name = s:BMHash2(munge) .. munge
s:bmenu_items[num] = menu_name
cmd = 'an ' .. g:bmenu_priority .. '.9999.0.' .. index .. ' &Buffers.' .. menu_name
cmd = 'an ' .. g:bmenu_priority .. '.' .. hash .. '.' .. hash .. ' &Buffers.' .. menu_name
endif
exe cmd .. ' :confirm b' .. num .. '<CR>'
enddef

View File

@@ -1,11 +1,11 @@
" These commands create the option window.
"
" Maintainer: The Vim Project <https://github.com/vim/vim>
" Last Change: 2025 Jul 25
" Last Change: 2025 Aug 16
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
" If there already is an option window, jump to that one.
let buf = bufnr('option-window')
let buf = bufexists('option-window') ? bufnr('option-window') : -1
if buf >= 0
let winids = win_findbuf(buf)
if len(winids) > 0
@@ -876,6 +876,8 @@ if has("insert_expand")
call <SID>OptionL("cpt")
call <SID>AddOption("autocomplete", gettext("automatic completion in insert mode"))
call <SID>BinOptionG("ac", &ac)
call <SID>AddOption("autocompletedelay", gettext("delay in msec before menu appears after typing"))
call append("$", " \tset acl=" . &acl)
call <SID>AddOption("completeopt", gettext("whether to use a popup menu for Insert mode completion"))
call <SID>OptionL("cot")
call <SID>AddOption("completeitemalign", gettext("popup menu item align order"))

View File

@@ -1,4 +1,4 @@
*helptoc.txt* For Vim version 9.1. Last change: 2025 Aug 06
*helptoc.txt* For Vim version 9.1. Last change: 2025 Aug 10
VIM REFERENCE MANUAL
@@ -178,7 +178,7 @@ brackets preceding and following each heading's text.
3.7 vim *HelpToc-vim-filetype*
Vimscript and Vim9 script do not have headings or levels inherently like
Vim script and Vim9 script do not have headings or levels inherently like
markup languages. However, Vim provides for |folds| defined by markers (|{{{|),
which themselves may be succeeded by a number explicitly indicating the fold
level. This is the structure recognized and supported by helptoc.vim.

View File

@@ -1,6 +1,9 @@
" Creator: Charles E Campbell
" Previous Maintainer: Luca Saccarola <github.e41mv@aleeas.com>
" Maintainer: This runtime file is looking for a new maintainer.
" Last Change:
" 2025 Aug 07 by Vim Project (use correct "=~#" for netrw_stylesize option #17901)
" 2025 Aug 07 by Vim Project (netrw#BrowseX() distinguishes remote files #17794)
" 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
@@ -4123,7 +4126,7 @@ function s:NetrwBrowseUpDir(islocal)
endfunction
" netrw#BrowseX: (implements "x") executes a special "viewer" script or program for the {{{2
" given filename; typically this means given their extension.
" given filename; typically this means given their extension.
function netrw#BrowseX(fname)
" special core dump handler
if a:fname =~ '/core\(\.\d\+\)\=$' && exists("g:Netrw_corehandler")
@@ -4147,7 +4150,12 @@ function netrw#BrowseX(fname)
let fname = substitute(fname, '^\~', expand("$HOME"), '')
endif
call netrw#os#Open(s:NetrwFile(fname))
if fname =~ '^[a-z]\+://'
" open a remote file
call netrw#os#Open(fname)
else
call netrw#os#Open(s:NetrwFile(fname))
endif
endfunction
" s:NetrwBufRename: renames a buffer without the side effect of retaining an unlisted buffer having the old name {{{2
@@ -9225,7 +9233,7 @@ endfunction
" 1000 -> 1K, 1000000 -> 1M, 1000000000 -> 1G
function s:NetrwHumanReadable(sz)
if g:netrw_sizestyle == 'h'
if g:netrw_sizestyle ==# 'h'
if a:sz >= 1000000000
let sz = printf("%.1f",a:sz/1000000000.0)."g"
elseif a:sz >= 10000000
@@ -9240,7 +9248,7 @@ function s:NetrwHumanReadable(sz)
let sz= a:sz
endif
elseif g:netrw_sizestyle == 'H'
elseif g:netrw_sizestyle ==# 'H'
if a:sz >= 1073741824
let sz = printf("%.1f",a:sz/1073741824.0)."G"
elseif a:sz >= 10485760

View File

@@ -1907,9 +1907,6 @@ passwords:
Thomer Gil has provided a hint on how to speed up netrw+ssh:
http://thomer.com/howtos/netrw_ssh.html
Alex Young has several hints on speeding ssh up:
http://usevim.com/2012/03/16/editing-remote-files/
LISTING BOOKMARKS AND HISTORY *netrw-qb* *netrw-listbookmark* {{{2

View File

@@ -16,9 +16,10 @@ function SetupRemoteReplies()
let max = argc()
let id = expand("<client>")
if id == 0
if (type(id) == v:t_number && id == 0) || (type(id) == v:t_string && id == '')
return
endif
while cnt < max
" Handle same file from more clients and file being more than once
" on the command line by encoding this stuff in the group name

View File

@@ -73,7 +73,7 @@ are not really considered swear words in today's society.
COPYRIGHT, SOURCES, and CREDITS:
The English dictionaries come directly from SCOWL
The English dictionaries come directly from SCOWL
and is thus under the same copyright of SCOWL. The affix file is
a heavily modified version of the original english.aff file which was
released as part of Geoff Kuenning's Ispell and as such is covered by
@@ -272,7 +272,7 @@ found anywhere else.
Accent information was taken from UKACD.
My VARCON package was used to create the American, British, and
Canadian word list.
Canadian word list.
Since the original word lists used in the VARCON package came
from the Ispell distribution they are under the Ispell copyright:
@@ -315,11 +315,11 @@ Build Date: Mon Aug 24 16:41:56 EDT 2015
Wordlist Command: mk-list --accents=strip en_US 60
===================================================
en_AU:
This dictionary was based on the en_GB Myspell dictionary
which in turn was initially based on a subset of the
original English wordlist created by Kevin Atkinson for
Pspell and Aspell and thus is covered by his original
LGPL licence.
This dictionary was based on the en_GB Myspell dictionary
which in turn was initially based on a subset of the
original English wordlist created by Kevin Atkinson for
Pspell and Aspell and thus is covered by his original
LGPL licence.
The credit for this en_AU dictionary goes to:
@@ -331,24 +331,24 @@ David Wilson
- a list from the previously removed words with corrected spelling was added
- a list of major rivers was added
- a list of place names was added
- a list of Australian mammals was added
- a list of Australian mammals was added
- a list of Aboriginal/Koori words commonly used was added
A total of 119,267 words are now recognized
A total of 119,267 words are now recognized
by the dictionary.
Of course, special thanks go to the editors of the
en_GB dictionary (David Bartlett, Brian Kelk and
Of course, special thanks go to the editors of the
en_GB dictionary (David Bartlett, Brian Kelk and
Andrew Brown) which provided the starting point
for this dictionary.
The affix file is currently a duplicate of the en_AU.aff
created completely from scratch by David Bartlett and
Andrew Brown, based on the published
created completely from scratch by David Bartlett and
Andrew Brown, based on the published
rules for MySpell and is also provided under the LGPL.
If you find omissions or bugs or have new words to
add to the dictionary, please contact the en_AU
If you find omissions or bugs or have new words to
add to the dictionary, please contact the en_AU
maintainer at:
"Kelvin" <audictionary@onlineconnections.com.au>
@@ -431,7 +431,7 @@ are not really considered swear words in today's society.
COPYRIGHT, SOURCES, and CREDITS:
The English dictionaries come directly from SCOWL
The English dictionaries come directly from SCOWL
and is thus under the same copyright of SCOWL. The affix file is
a heavily modified version of the original english.aff file which was
released as part of Geoff Kuenning's Ispell and as such is covered by
@@ -630,7 +630,7 @@ found anywhere else.
Accent information was taken from UKACD.
My VARCON package was used to create the American, British, and
Canadian word list.
Canadian word list.
Since the original word lists used in the VARCON package came
from the Ispell distribution they are under the Ispell copyright:
@@ -676,7 +676,7 @@ en_GB:
This dictionary was initially based on a subset of the
original English wordlist created by Kevin Atkinson for
Pspell and Aspell and thus is covered by his original
LGPL licence.
LGPL licence.
It has been extensively updated by David Bartlett, Brian Kelk
and Andrew Brown:
@@ -756,7 +756,7 @@ Main difficulties developing this dictionary:
Please let Marco A.G.Pinto know of any errors that you find:
E-mail: marcoagpinto@mail.telepac.pt
Site: http://marcoagpinto.cidadevirtual.pt/proofingtoolgui.html
Site (now dead): marcoagpinto.cidadevirtual.pt/proofingtoolgui.html
V2.00 - 25-AUG-2013
@@ -1851,7 +1851,7 @@ V2.09 - 1-FEB-2014
1047) vermiculture
1048) nitrochalk
1049) unreactive (merged into reactive)
1050) bronzy
1050) bronzy
1051) bronzer (merged into bronze)
1052) reliefs (plural)
1053) superalloy
@@ -2028,7 +2028,7 @@ V2.10 - 1-MAR-2014
1220) predate (+ed)
1221) Boole (name + 's)
1222) phenotypic (merged into phenotype)
1223) phenotypical
1223) phenotypical
1224) phenotypically (merged into phenotypical)
1225) triploid (+plural)
1226) tetraploid (+plural)
@@ -3361,7 +3361,7 @@ V2.14 - 1-JUL-2014
2534) circumnavigator
2535) subalpine
2536) treeline
2537) boreal + Boreal
2537) boreal + Boreal
2538) geotechnic (+s)
2539) geotechnical
2540) geothermally (merged into geothermal)
@@ -4325,7 +4325,7 @@ V2.16 - 1-SEP-2014
3390) counterparty (+plural)
3391) counterplot (+s +ing +ed)
3392) swansongs (added plural - Kevin Atkinson wordlist 60)
3393) syndicalists (added plural - Kevin Atkinson wordlist 60)
3393) syndicalists (added plural - Kevin Atkinson wordlist 60)
3394) Trotskyism
3395) Trotskyist (+plural)
3396) Trotskyite (+plural)
@@ -5448,7 +5448,7 @@ V2.18 - 1-NOV-2014
4505) cellmates (added plural - Kevin Atkinson wordlist 60)
4506) chatlines (added plural - Kevin Atkinson wordlist 60)
4507) chirpily + chirpiness (merged into chirpy - Kevin Atkinson wordlist 60)
4508) computerate (Oxford: informal - Kevin Atkinson wordlist 60)
4508) computerate (Oxford: informal - Kevin Atkinson wordlist 60)
4509) comfortless (merged into comfort - Kevin Atkinson wordlist 60)
4510) conchie (+plural - Oxford: informal - Kevin Atkinson wordlist 60)
4511) cookhouse (+plural - Kevin Atkinson wordlist 60)
@@ -6004,7 +6004,7 @@ V2.19 - 1-DEC-2014
4154) androecia (plural of previous word)
4155) androecial
4156) gynoecium
4157) gynoecia (plural of previous word)
4157) gynoecia (plural of previous word)
4158) gynocentric
4159) unallowable
4160) unallied
@@ -7142,7 +7142,7 @@ V2.21 - 1-FEB-2015
4384) microbiologically (Collins)
4385) microbiologic (Collins)
4386) Cmd. (abbreviation - UK - Command Paper - 4th series)
4387) Cmnd. (abbreviation - UK - Command Paper - 5th series)
4387) Cmnd. (abbreviation - UK - Command Paper - 5th series)
4388) handgrip (+plural)
4389) cyanoacrylate (+plural)
4390) photostimulation (+plural - Wiktionary)
@@ -7180,7 +7180,7 @@ V2.21 - 1-FEB-2015
4422) ferromagnetism
4423) Zeeman (Zeeman effect)
4424) atomicities (added plural)
4425) multiagent (+plural - Wiktionary)
4425) multiagent (+plural - Wiktionary)
4426) non-typical
4427) non-transparency
4428) non-U (Oxford: informal)
@@ -7462,7 +7462,7 @@ V2.21 - 1-FEB-2015
4704) winemaking
4705) streamflow (+plural)
4706) snowpack (+plural)
4707) snowmobiling + snowmobiled + er + ers (merged into snowmobile)
4707) snowmobiling + snowmobiled + er + ers (merged into snowmobile)
4708) groomer (+plural - merged into groom)
4709) snowcat (+plural)
4710) heli-ski (+ing +er +ers)
@@ -12424,15 +12424,14 @@ NZ English Dictionary v0.9 beta - Build 06SEP03
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NB This is an initial version, please check:
http://lingucomponent.openoffice.org/download_dictionary.html
or
http://www.girlza.com/dictionary/download.html
or (the dead link) girlza.com/dictionary/download.html
for a final version, after a little while (no hurry).
This dictionary is based on the en_GB Myspell dictionary
which in turn was initially based on a subset of the
original English wordlist created by Kevin Atkinson for
Pspell and Aspell and thus is covered by his original
LGPL licence.
This dictionary is based on the en_GB Myspell dictionary
which in turn was initially based on a subset of the
original English wordlist created by Kevin Atkinson for
Pspell and Aspell and thus is covered by his original
LGPL licence.
Introduction
@@ -12460,7 +12459,7 @@ And thank you to all who've contributed to OpenOffice.org.
License
~~~~~~~
This dictionary is covered by the GNU Lesser General Public
License, viewable at http://www.gnu.org/copyleft/lesser.html
License, viewable at https://www.gnu.org/licenses/lgpl.html
Issues
@@ -12627,7 +12626,7 @@ such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an

View File

@@ -110,6 +110,7 @@ an 50.20.110 &Syntax.C.C++ :cal SetSyn("cpp")<CR>
an 50.20.120 &Syntax.C.C# :cal SetSyn("cs")<CR>
an 50.20.130 &Syntax.C.Cabal\ Haskell\ build\ file :cal SetSyn("cabal")<CR>
an 50.20.140 &Syntax.C.Calendar :cal SetSyn("calendar")<CR>
an 50.20.140 &Syntax.C.Cangjie :cal SetSyn("cangjie")<CR>
an 50.20.150 &Syntax.C.Cascading\ Style\ Sheets :cal SetSyn("css")<CR>
an 50.20.160 &Syntax.C.CDL :cal SetSyn("cdl")<CR>
an 50.20.170 &Syntax.C.Cdrdao\ TOC :cal SetSyn("cdrtoc")<CR>

153
runtime/syntax/cangjie.vim Normal file
View File

@@ -0,0 +1,153 @@
" Vim syntax file
" Language: Cangjie
" Maintainer: Wu Junkai <wu.junkai@qq.com>
" Last Change: 2025 Aug 17
"
" The Cangjie programming language is a new-generation programming
" language oriented to full-scenario intelligence. It features
" native intelligence, being naturally suitable for all scenarios,
" high performance and strong security. It is mainly applied in
" scenarios such as native applications and service applications
" of HarmonyOS NEXT, providing developers with a good programming
" experience.
"
" For more information, see:
" - https://cangjie-lang.cn/
" - https://gitcode.com/Cangjie
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
let s:save_cpo = &cpo
set cpo&vim
" 0. check the user's settings
" use let g:cangjie_<item>_color to enable/disable syntax highlighting
function! s:enabled(item) abort
return get(g:, 'cangjie_' . a:item . '_color', 1)
endfunction
syn case match
" 1. comments
syn keyword cangjieTodo TODO FIXME XXX NOTE BUG contained
syn match cangjieComment /\v\/\/.*/ contains=cangjieTodo
syn region cangjieComment start=/\/\*/ end=/\*\// contains=cangjieTodo,@Spell
" 2. keywords
syn keyword cangjieDeclaration abstract extend macro foreign
syn keyword cangjieDeclaration interface open operator override private prop protected
syn keyword cangjieDeclaration public redef static type
syn keyword cangjieStatement as break case catch continue do else finally for in
syn keyword cangjieStatement if in is match quote return spawn super synchronized
syn keyword cangjieStatement throw try unsafe where while
syn keyword cangjieIdentlike false init main this true
syn keyword cangjieVariable const let var
syn keyword cangjieOption Option Some None
syn keyword cangjieDeclaration func struct class enum import package nextgroup=cangjieTypeName skipwhite
syn cluster cangjieKeywordCluster contains=cangjieDeclaration,cangjieStatement,cangjieIdentlike,cangjieVariable,cangjieOption
" 3. macro (e.g., @override)
syn match cangjieMacro /@\h\w*/
" 4. Type and Function Names
syn match cangjieTypeName /\h\w*/ contained
" 5. specail identifiers
syn region cangjieSpIdentifier start=/`/ end=/`/ oneline
" 6. types
syn keyword cangjieSpType Any Nothing Range Unit Iterable
syn keyword cangjieArrayType Array ArrayList VArray
syn keyword cangjieHashType HashMap HashSet
syn keyword cangjieCommonType Bool Byte Rune String
syn keyword cangjieFloatType Float16 Float32 Float64
syn keyword cangjieIntType Int8 Int16 Int32 Int64 IntNative
syn keyword cangjieUIntType UInt8 UInt16 UInt32 UInt64 UIntNative
syn cluster cangjieTypeCluster contains=cangjieSpType,cangjieArrayType,cangjieHashType,cangjieCommonType,cangjieFloatType,cangjieIntType,cangjieUIntType
" 7. character and strings
syn cluster cangjieInterpolatedPart contains=@cangjieKeywordCluster,cangjieSpIdentifier,@cangjieTypeCluster,@cangjieNumberCluster,cangjieOperator
syn region cangjieInterpolation contained keepend start=/\${/ end=/}/ contains=@cangjieInterpolatedPart matchgroup=cangjieInterpolationDelimiter
syn region cangjieRune start=/r'/ skip=/\\\\\|\\'/ end=/'/ oneline
syn region cangjieRune start=/b'/ skip=/\\\\\|\\'/ end=/'/ oneline
syn region cangjieString start=/"/ skip=/\\\\\|\\"/ end=/"/ oneline contains=cangjieInterpolation
syn region cangjieString start=/'/ skip=/\\\\\|\\'/ end=/'/ oneline contains=cangjieInterpolation
syn region cangjieString start=/"""/ skip=/\\\\\|\\"/ end=/"""/ contains=cangjieInterpolation keepend
syn region cangjieString start=/'''/ skip=/\\\\\|\\'/ end=/'''/ contains=cangjieInterpolation keepend
syn region cangjieRawString start='\z(#*\)#"' end='"#\z1'
syn region cangjieRawString start='\z(#*\)#\'' end='\'#\z1'
" 8. number
syn match cangjieFloatNumber /\v\c<\d[0-9_]*\.\d[0-9_]*([ep][-+]?\d[0-9_]*)?(f(16|32|64))?>/
syn match cangjieFloatNumber /\v\c<\d[0-9_]*\.([ep][-+]?\d[0-9_]*)?(f(16|32|64))?>/
syn match cangjieFloatNumber /\v\c\.\d[0-9_]*([ep][-+]?\d[0-9_]*)?(f(16|32|64))?>/
syn match cangjieScienceNumber /\v\c<\d[0-9_]*[e][-+]?\d[0-9_]*>/
syn match cangjieHexNumber /\v\c<0x[0-9a-f_]+([iu](8|16|32|64))?>/
syn match cangjieOctalNumber /\v\c<0o[0-7_]+([iu](8|16|32|64))?>/
syn match cangjieBinaryNumber /\v\c<0b[01_]+([iu](8|16|32|64))?>/
syn match cangjieDecimalNumber /\v\c<\d[0-9_]*([iu](8|16|32|64))?>/
syn cluster cangjieNumberCluster contains=cangjieFloatNumber,cangjieScienceNumber,cangjieHexNumber,cangjieOctalNumber,cangjieBinaryNumber,cangjieDecimalNumber
" 9. operators
syn match cangjieOperator /[-+%<>!&|^*=]=\?/
syn match cangjieOperator /\/\%(=\|\ze[^/*]\)/
syn match cangjieOperator /\%(<<\|>>\|&^\)=\?/
syn match cangjieOperator /:=\|||\|<-\|++\|--/
syn match cangjieOperator /[~]/
syn match cangjieOperator /[:]/
syn match cangjieOperator /\.\./
syn match cangjieVarArgs /\.\.\./
" finally, link the syntax groups to the highlight groups
if s:enabled('comment')
hi def link cangjieTodo Todo
hi def link cangjieComment Comment
endif
if s:enabled('identifier')
hi def link cangjieSpIdentifier Identifier
endif
if s:enabled('keyword')
hi def link cangjieDeclaration Keyword
hi def link cangjieStatement Statement
hi def link cangjieIdentlike Keyword
hi def link cangjieVariable Keyword
hi def link cangjieOption Keyword
endif
if s:enabled('macro')
hi def link cangjieMacro PreProc
endif
if s:enabled('number')
hi def link cangjieFloatNumber Float
hi def link cangjieScienceNumber Float
hi def link cangjieHexNumber Number
hi def link cangjieOctalNumber Number
hi def link cangjieBinaryNumber Number
hi def link cangjieDecimalNumber Number
endif
if s:enabled('operator')
hi def link cangjieOperator Operator
hi def link cangjieVarArgs Operator
endif
if s:enabled('string')
hi def link cangjieRune Character
hi def link cangjieString String
hi def link cangjieRawString String
endif
if s:enabled('type')
hi def link cangjieTypeName Type
hi def link cangjieSpType Type
hi def link cangjieArrayType Type
hi def link cangjieHashType Type
hi def link cangjieCommonType Type
hi def link cangjieFloatType Type
hi def link cangjieIntType Type
hi def link cangjieUIntType Type
endif
let b:current_syntax = "cangjie"
let &cpo = s:save_cpo
unlet s:save_cpo

View File

@@ -2,7 +2,7 @@
" Language: Diff (context or unified)
" Maintainer: The Vim Project <https://github.com/vim/vim>
" Translations by Jakson Alves de Aquino.
" Last Change: 2025 Jun 26
" Last Change: 2025 Aug 16
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
" Quit when a (custom) syntax file was already loaded
@@ -312,9 +312,9 @@ syn match diffCommon "^Thư mục con chung: .* và .*"
" zh_CN
syn match diffOnly "^只在 .* 存在:.*"
syn match diffIdentical "^檔案 .* 和 .* 相同$"
syn match diffIdentical "^文件 .* 和 .* 相同$"
syn match diffDiffer "^文件 .* 和 .* 不同$"
syn match diffBDiffer "^文件 .* 和 .* 不同$"
syn match diffBDiffer "^二进制文件 .* 和 .* 不同$"
syn match diffIsA "^文件 .* 是.*而文件 .* 是.*"
syn match diffNoEOL "^\\ 文件尾没有 newline 字符"
syn match diffCommon "^.* 和 .* 有共同的子目录$"

View File

@@ -3,7 +3,7 @@
" Maintainer: Aliaksei Budavei <0x000c70 AT gmail DOT com>
" Former Maintainer: Claudio Fleiner <claudio@fleiner.com>
" Repository: https://github.com/zzzyxwvut/java-vim.git
" Last Change: 2025 Jun 22
" Last Change: 2025 Aug 07
" Please check ":help java.vim" for comments on some of the options
" available.
@@ -125,11 +125,29 @@ endif
" if necessary, on the line before that (h: \@<=), trying to match
" neither a method reference nor a qualified method invocation.
try
syn match javaOperator "\%(\%(::\|\.\)[[:space:]\n]*\)\@80<!\<yield\>"
if !empty(get(g:, 'java_lookbehind_byte_counts', {}))
exec 'syn match javaOperator "\%(\%(::\|\.\)[[:space:]\n]*\)\@' . max([0, get(g:java_lookbehind_byte_counts, 'javaOperator', 80)]) . '<!\<yield\>"'
function! s:ff.PeekFor(item, count) abort
return string(max([0, get(g:java_lookbehind_byte_counts, a:item, a:count)]))
endfunction
else
syn match javaOperator "\%(\%(::\|\.\)[[:space:]\n]*\)\@80<!\<yield\>"
function! s:ff.PeekFor(dummy, count) abort
return string(a:count)
endfunction
endif
let s:ff.Peek = s:ff.LeftConstant
catch /\<E59:/
call s:ReportOnce(v:exception)
syn match javaOperator "\%(\%(::\|\.\)[[:space:]\n]*\)\@<!\<yield\>"
function! s:ff.PeekFor(dummy_a, dummy_b) abort
return ""
endfunction
let s:ff.Peek = s:ff.RightConstant
endtry
@@ -308,7 +326,7 @@ if exists("g:java_highlight_generics")
" Match sections of generic methods and constructors and their
" parameterised use.
exec 'syn region javaTypeParamSection transparent matchgroup=javaGenericsCX start=/' . s:ff.Engine('\%#=2', '') . '\%(^\|\s\)\@' . s:ff.Peek('1', '') . '<=<\%(\%([^(){}]\|\n\)\+[[:space:]-]\@' . s:ff.Peek('1', '') . '<!>\_s\+\%(\%(void\|\%(b\%(oolean\|yte\)\|char\|short\|int\|long\|float\|double\|\%(\<\K\k*\>\.\)*\<' . s:ff.UpperCase('[$_[:upper:]]', '[^a-z0-9]') . '\k*\>\%(<\%([^(){}]\|\n\)\+[[:space:]-]\@' . s:ff.Peek('1', '') . '<!>\)\=\)\%(\[\]\)*\)\_s\+\)\=\<\K\k*\>\s*(\)\@=/ end=/>/ contains=javaGenerics,@javaTypeParams'
exec 'syn region javaTypeParamSection transparent matchgroup=javaGenericsCX start=/\%(\%(\<new\|::\|\.\)[[:space:]\n]*\)\@' . s:ff.Peek('80', '') . '<=<>\@!/ end=/>/ contains=javaGenerics,@javaTypeParams'
exec 'syn region javaTypeParamSection transparent matchgroup=javaGenericsCX start=/\%(\%(\<new\|::\|\.\)[[:space:]\n]*\)\@' . s:ff.PeekFor('javaTypeParamSection', 80) . '<=<>\@!/ end=/>/ contains=javaGenerics,@javaTypeParams'
for s:ctx in [{'gsg': 'javaGenerics', 'ghg': 'javaGenericsC1', 'csg': 'javaGenericsX', 'c': ''},
\ {'gsg': 'javaGenericsX', 'ghg': 'javaGenericsC2', 'csg': 'javaGenerics', 'c': ' contained'}]
@@ -376,7 +394,7 @@ syn match javaCommentStar contained "^\s*\*$"
syn match javaLineComment "//.*" contains=@javaCommentSpecial2,javaTodo,javaCommentMarkupTag,javaSpaceError,@Spell
syn match javaCommentMarkupTag contained "@\%(end\|highlight\|link\|replace\|start\)\>" nextgroup=javaCommentMarkupTagAttr,javaSpaceError skipwhite
syn match javaCommentMarkupTagAttr contained "\<region\>" nextgroup=javaCommentMarkupTagAttr,javaSpaceError skipwhite
exec 'syn region javaCommentMarkupTagAttr contained transparent matchgroup=javaHtmlArg start=/\<\%(re\%(gex\|gion\|placement\)\|substring\|t\%(arget\|ype\)\)\%(\s*=\)\@=/ matchgroup=javaHtmlString end=/\%(=\s*\)\@' . s:ff.Peek('80', '') . '<=\%("[^"]\+"\|' . "\x27[^\x27]\\+\x27" . '\|\%([.-]\|\k\)\+\)/ nextgroup=javaCommentMarkupTagAttr,javaSpaceError skipwhite oneline'
exec 'syn region javaCommentMarkupTagAttr contained transparent matchgroup=javaHtmlArg start=/\<\%(re\%(gex\|gion\|placement\)\|substring\|t\%(arget\|ype\)\)\%(\s*=\)\@=/ matchgroup=javaHtmlString end=/\%(=\s*\)\@' . s:ff.PeekFor('javaCommentMarkupTagAttr', 80) . '<=\%("[^"]\+"\|' . "\x27[^\x27]\\+\x27" . '\|\%([.-]\|\k\)\+\)/ nextgroup=javaCommentMarkupTagAttr,javaSpaceError skipwhite oneline'
syn match javaCommentError contained "/\*"me=e-1 display
if !exists("g:java_ignore_javadoc") && (s:with_html || s:with_markdown) && g:main_syntax != 'jsp'
@@ -476,9 +494,9 @@ if !exists("g:java_ignore_javadoc") && (s:with_html || s:with_markdown) && g:mai
if s:with_markdown
syn region javaMarkdownComment start="///" skip="^\s*///.*$" end="^" keepend contains=javaMarkdownCommentTitle,javaMarkdownShortcutLink,@javaMarkdown,@javaDocTags,javaTodo,@Spell nextgroup=javaMarkdownCommentTitle fold
syn match javaMarkdownCommentMask contained "^\s*///"
exec 'syn region javaMarkdownCommentTitle contained matchgroup=javaMarkdownComment start="\%(///.*\r\=\n\s*\)\@' . s:ff.Peek('80', '') . '<!///" matchgroup=javaMarkdownCommentTitle end="\.$" end="\.[ \t\r]\@=" end="\n\%(\s*///\s*$\)\@=" end="\%(^\s*///\s*\)\@' . s:ff.Peek('80', '') . '<=@"me=s-2,he=s-1 contains=javaMarkdownShortcutLink,@javaMarkdown,javaMarkdownCommentMask,javaTodo,@Spell,@javaDocTags'
exec 'syn region javaMarkdownCommentTitle contained matchgroup=javaMarkdownComment start="\%(///.*\r\=\n\s*\)\@' . s:ff.Peek('80', '') . '<!///\s*\%({@return\>\)\@=" matchgroup=javaMarkdownCommentTitle end="}\%(\s*\.*\)*" contains=javaMarkdownShortcutLink,@javaMarkdown,javaMarkdownCommentMask,javaTodo,@Spell,@javaDocTags,javaTitleSkipBlock'
exec 'syn region javaMarkdownCommentTitle contained matchgroup=javaMarkdownComment start="\%(///.*\r\=\n\s*\)\@' . s:ff.Peek('80', '') . '<!///\s*\%({@summary\>\)\@=" matchgroup=javaMarkdownCommentTitle end="}" contains=javaMarkdownShortcutLink,@javaMarkdown,javaMarkdownCommentMask,javaTodo,@Spell,@javaDocTags,javaTitleSkipBlock'
exec 'syn region javaMarkdownCommentTitle contained matchgroup=javaMarkdownComment start="\%(///.*\r\=\n\s*\)\@' . s:ff.PeekFor('javaMarkdownCommentTitle', 120) . '<!///" matchgroup=javaMarkdownCommentTitle end="\.$" end="\.[ \t\r]\@=" end="\n\%(\s*///\s*$\)\@=" end="\%(^\s*///\s*\)\@' . s:ff.PeekFor('javaMarkdownCommentTitle', 120) . '<=@"me=s-2,he=s-1 contains=javaMarkdownShortcutLink,@javaMarkdown,javaMarkdownCommentMask,javaTodo,@Spell,@javaDocTags'
exec 'syn region javaMarkdownCommentTitle contained matchgroup=javaMarkdownComment start="\%(///.*\r\=\n\s*\)\@' . s:ff.PeekFor('javaMarkdownCommentTitle', 120) . '<!///\s*\%({@return\>\)\@=" matchgroup=javaMarkdownCommentTitle end="}\%(\s*\.*\)*" contains=javaMarkdownShortcutLink,@javaMarkdown,javaMarkdownCommentMask,javaTodo,@Spell,@javaDocTags,javaTitleSkipBlock'
exec 'syn region javaMarkdownCommentTitle contained matchgroup=javaMarkdownComment start="\%(///.*\r\=\n\s*\)\@' . s:ff.PeekFor('javaMarkdownCommentTitle', 120) . '<!///\s*\%({@summary\>\)\@=" matchgroup=javaMarkdownCommentTitle end="}" contains=javaMarkdownShortcutLink,@javaMarkdown,javaMarkdownCommentMask,javaTodo,@Spell,@javaDocTags,javaTitleSkipBlock'
" REDEFINE THE MARKDOWN ITEMS ANCHORED WITH "^", OBSERVING THE
" DEFINITION ORDER.
@@ -530,7 +548,7 @@ if !exists("g:java_ignore_javadoc") && (s:with_html || s:with_markdown) && g:mai
if s:with_html
syn region javaDocComment start="/\*\*" end="\*/" keepend contains=javaCommentTitle,@javaHtml,@javaDocTags,javaTodo,javaCommentError,javaSpaceError,@Spell fold
exec 'syn region javaCommentTitle contained matchgroup=javaDocComment start="/\*\*" matchgroup=javaCommentTitle end="\.$" end="\.[ \t\r]\@=" end="\%(^\s*\**\s*\)\@' . s:ff.Peek('80', '') . '<=@"me=s-2,he=s-1 end="\*/"me=s-1,he=s-1 contains=@javaHtml,javaCommentStar,javaTodo,javaCommentError,javaSpaceError,@Spell,@javaDocTags'
exec 'syn region javaCommentTitle contained matchgroup=javaDocComment start="/\*\*" matchgroup=javaCommentTitle end="\.$" end="\.[ \t\r]\@=" end="\%(^\s*\**\s*\)\@' . s:ff.PeekFor('javaCommentTitle', 120) . '<=@"me=s-2,he=s-1 end="\*/"me=s-1,he=s-1 contains=@javaHtml,javaCommentStar,javaTodo,javaCommentError,javaSpaceError,@Spell,@javaDocTags'
syn region javaCommentTitle contained matchgroup=javaDocComment start="/\*\*\s*\r\=\n\=\s*\**\s*\%({@return\>\)\@=" matchgroup=javaCommentTitle end="}\%(\s*\.*\)*" contains=@javaHtml,javaCommentStar,javaTodo,javaCommentError,javaSpaceError,@Spell,@javaDocTags,javaTitleSkipBlock
syn region javaCommentTitle contained matchgroup=javaDocComment start="/\*\*\s*\r\=\n\=\s*\**\s*\%({@summary\>\)\@=" matchgroup=javaCommentTitle end="}" contains=@javaHtml,javaCommentStar,javaTodo,javaCommentError,javaSpaceError,@Spell,@javaDocTags,javaTitleSkipBlock
hi def link javaDocComment Comment
@@ -605,7 +623,7 @@ if !exists("g:java_ignore_javadoc") && (s:with_html || s:with_markdown) && g:mai
syn region javaCodeSkipBlock contained transparent start="{\%(@code\>\)\@!" end="}" contains=javaCodeSkipBlock,javaDocCodeTag
syn region javaDocCodeTag contained start="{@code\>" end="}" contains=javaDocCodeTag,javaCodeSkipBlock
exec 'syn region javaDocSnippetTagAttr contained transparent matchgroup=javaHtmlArg start=/\<\%(class\|file\|id\|lang\|region\)\%(\s*=\)\@=/ matchgroup=javaHtmlString end=/:$/ end=/\%(=\s*\)\@' . s:ff.Peek('80', '') . '<=\%("[^"]\+"\|' . "\x27[^\x27]\\+\x27" . '\|\%([.\\/-]\|\k\)\+\)/ nextgroup=javaDocSnippetTagAttr skipwhite skipnl'
exec 'syn region javaDocSnippetTagAttr contained transparent matchgroup=javaHtmlArg start=/\<\%(class\|file\|id\|lang\|region\)\%(\s*=\)\@=/ matchgroup=javaHtmlString end=/:$/ end=/\%(=\s*\)\@' . s:ff.PeekFor('javaDocSnippetTagAttr', 80) . '<=\%("[^"]\+"\|' . "\x27[^\x27]\\+\x27" . '\|\%([.\\/-]\|\k\)\+\)/ nextgroup=javaDocSnippetTagAttr skipwhite skipnl'
syn region javaSnippetSkipBlock contained transparent start="{\%(@snippet\>\)\@!" end="}" contains=javaSnippetSkipBlock,javaDocSnippetTag,javaCommentMarkupTag
syn region javaDocSnippetTag contained start="{@snippet\>" end="}" contains=javaDocSnippetTag,javaSnippetSkipBlock,javaDocSnippetTagAttr,javaCommentMarkupTag
@@ -655,8 +673,8 @@ syn match javaTextBlockError +"""\s*"""+
if s:ff.IsAnyRequestedPreviewFeatureOf([430])
syn region javaStrTemplEmbExp contained matchgroup=javaStrTempl start="\\{" end="}" contains=TOP
exec 'syn region javaStrTempl start=+\%(\.[[:space:]\n]*\)\@' . s:ff.Peek('80', '') . '<="+ end=+"+ contains=javaStrTemplEmbExp,javaSpecialChar,javaSpecialError,@Spell'
exec 'syn region javaStrTempl start=+\%(\.[[:space:]\n]*\)\@' . s:ff.Peek('80', '') . '<="""[ \t\x0c\r]*$+hs=e+1 end=+"""+he=s-1 contains=javaStrTemplEmbExp,javaSpecialChar,javaSpecialError,javaTextBlockError,@Spell'
exec 'syn region javaStrTempl start=+\%(\.[[:space:]\n]*\)\@' . s:ff.PeekFor('javaStrTempl', 80) . '<="+ end=+"+ contains=javaStrTemplEmbExp,javaSpecialChar,javaSpecialError,@Spell'
exec 'syn region javaStrTempl start=+\%(\.[[:space:]\n]*\)\@' . s:ff.PeekFor('javaStrTempl', 80) . '<="""[ \t\x0c\r]*$+hs=e+1 end=+"""+he=s-1 contains=javaStrTemplEmbExp,javaSpecialChar,javaSpecialError,javaTextBlockError,@Spell'
hi def link javaStrTempl Macro
endif
@@ -699,7 +717,7 @@ if exists("g:java_highlight_functions")
" definitions take care of constructor declarations and enum
" constants (with no support for @Foo(value = "bar")). Also,
" reject inlined declarations with "[^{]" for signature.
exec 'syn region javaFuncDef ' . s:ff.GroupArgs('transparent matchgroup=javaFuncDefStart', '') . ' start="' . s:ff.PeekTo('\%(', '') . '^' . s:indent . '\%(<\%(/\*.\{-}\*/\|[^(){}>]\|\n\)\+>\+\s\+\|\%(\%(@\%(\K\k*\.\)*\K\k*\>\)\s\+\)\+\)\=\%(\<\K\k*\>\.\)*\K\k*\>[^={]*\%(\<record\)\@' . s:ff.Peek('6', '') . '<!\s' . s:ff.PeekFrom('\)\@' . s:ff.Peek('80', '') . '<=', '') . '\K\k*\s*(" end=")" contains=@javaFuncParams'
exec 'syn region javaFuncDef ' . s:ff.GroupArgs('transparent matchgroup=javaFuncDefStart', '') . ' start="' . s:ff.PeekTo('\%(', '') . '^' . s:indent . '\%(<\%(/\*.\{-}\*/\|[^(){}>]\|\n\)\+>\+\s\+\|\%(\%(@\%(\K\k*\.\)*\K\k*\>\)\s\+\)\+\)\=\%(\<\K\k*\>\.\)*\K\k*\>[^={]*\%(\<record\)\@' . s:ff.Peek('6', '') . '<!\s' . s:ff.PeekFrom('\)\@' . s:ff.PeekFor('javaFuncDef', 120) . '<=', '') . '\K\k*\s*(" end=")" contains=@javaFuncParams'
" As long as package-private constructors cannot be matched with
" javaFuncDef, do not look with javaConstructorSkipDeclarator for
" them. (Approximate "javaTypeParamSection" if necessary.)
@@ -710,7 +728,7 @@ if exists("g:java_highlight_functions")
exec 'syn match javaEnumSkipConstant contained transparent /^' . s:indent . '\%(\%(\%(@\%(\K\k*\.\)*\K\k*\>\)\s\+\)*\K\k*\s*\%((.*)\)\=\s*[,;({]\s*\)\+/ contains=@javaEnumConstants'
" (2) Define a syntax group for top level enumerations and tell
" apart their constants from method declarations.
exec 'syn region javaTopEnumDeclaration transparent start=/\%(^\%(\%(@\%(\K\k*\.\)*\K\k*\>\)\s\+\)*\%(p\%(ublic\|rotected\|rivate\)\s\+\)\=\%(strictfp\s\+\)\=\<enum\_s\+\)\@' . s:ff.Peek('80', '') . '<=\K\k*\%(\_s\+implements\_s.\+\)\=\_s*{/ end=/}/ contains=@javaTop,javaEnumSkipConstant'
exec 'syn region javaTopEnumDeclaration transparent start=/\%(^\%(\%(@\%(\K\k*\.\)*\K\k*\>\)\s\+\)*\%(p\%(ublic\|rotected\|rivate\)\s\+\)\=\%(strictfp\s\+\)\=\<enum\_s\+\)\@' . s:ff.PeekFor('javaTopEnumDeclaration', 80) . '<=\K\k*\%(\_s\+implements\_s.\+\)\=\_s*{/ end=/}/ contains=@javaTop,javaEnumSkipConstant'
" (3) Define a base variant of javaParenT without using @javaTop
" in order to not include javaFuncDef.
syn region javaParenE transparent matchgroup=javaParen start="(" end=")" contains=@javaEnumConstants,javaInParen
@@ -722,7 +740,7 @@ if exists("g:java_highlight_functions")
" Match arbitrarily indented camelCasedName method declarations.
" Match: [@ɐ] [abstract] [<α, β>] Τʬ[<γ>][[][]] μʭʭ(/* ... */);
exec 'syn region javaFuncDef ' . s:ff.GroupArgs('transparent matchgroup=javaFuncDefStart', '') . ' start=/' . s:ff.Engine('\%#=2', '') . s:ff.PeekTo('\%(', '') . '^\s\+\%(\%(@\%(\K\k*\.\)*\K\k*\>\)\s\+\)*\%(p\%(ublic\|rotected\|rivate\)\s\+\)\=\%(\%(abstract\|default\)\s\+\|\%(\%(final\|\%(native\|strictfp\)\|s\%(tatic\|ynchronized\)\)\s\+\)*\)\=\%(<\%([^(){}]\|\n\)\+[[:space:]-]\@' . s:ff.Peek('1', '') . '<!>\s\+\)\=\%(void\|\%(b\%(oolean\|yte\)\|char\|short\|int\|long\|float\|double\|\%(\<\K\k*\>\.\)*\<' . s:ff.UpperCase('[$_[:upper:]]', '[^a-z0-9]') . '\k*\>\%(<\%([^(){}]\|\n\)\+[[:space:]-]\@' . s:ff.Peek('1', '') . '<!>\)\=\)\%(\[\]\)*\)\s\+' . s:ff.PeekFrom('\)\@' . s:ff.Peek('80', '') . '<=', '') . '\<' . s:ff.LowerCase('[$_[:lower:]]', '[^A-Z0-9]') . '\k*\>\s*(/ end=/)/ skip=/\/\*.\{-}\*\/\|\/\/.*$/ contains=@javaFuncParams'
exec 'syn region javaFuncDef ' . s:ff.GroupArgs('transparent matchgroup=javaFuncDefStart', '') . ' start=/' . s:ff.Engine('\%#=2', '') . s:ff.PeekTo('\%(', '') . '^\s\+\%(\%(@\%(\K\k*\.\)*\K\k*\>\)\s\+\)*\%(p\%(ublic\|rotected\|rivate\)\s\+\)\=\%(\%(abstract\|default\)\s\+\|\%(\%(final\|\%(native\|strictfp\)\|s\%(tatic\|ynchronized\)\)\s\+\)*\)\=\%(<\%([^(){}]\|\n\)\+[[:space:]-]\@' . s:ff.Peek('1', '') . '<!>\s\+\)\=\%(void\|\%(b\%(oolean\|yte\)\|char\|short\|int\|long\|float\|double\|\%(\<\K\k*\>\.\)*\<' . s:ff.UpperCase('[$_[:upper:]]', '[^a-z0-9]') . '\k*\>\%(<\%([^(){}]\|\n\)\+[[:space:]-]\@' . s:ff.Peek('1', '') . '<!>\)\=\)\%(\[\]\)*\)\s\+' . s:ff.PeekFrom('\)\@' . s:ff.PeekFor('javaFuncDef', 120) . '<=', '') . '\<' . s:ff.LowerCase('[$_[:lower:]]', '[^A-Z0-9]') . '\k*\>\s*(/ end=/)/ skip=/\/\*.\{-}\*\/\|\/\/.*$/ contains=@javaFuncParams'
endif
endif
@@ -736,8 +754,8 @@ if exists("g:java_highlight_debug")
" The highlight groups of java{StrTempl,Debug{,Paren,StrTempl}}\,
" share one colour by default. Do not conflate unrelated parens.
syn region javaDebugStrTemplEmbExp contained matchgroup=javaDebugStrTempl start="\\{" end="}" contains=javaComment,javaLineComment,javaDebug\%(Paren\)\@!.*
exec 'syn region javaDebugStrTempl contained start=+\%(\.[[:space:]\n]*\)\@' . s:ff.Peek('80', '') . '<="+ end=+"+ contains=javaDebugStrTemplEmbExp,javaDebugSpecial'
exec 'syn region javaDebugStrTempl contained start=+\%(\.[[:space:]\n]*\)\@' . s:ff.Peek('80', '') . '<="""[ \t\x0c\r]*$+hs=e+1 end=+"""+he=s-1 contains=javaDebugStrTemplEmbExp,javaDebugSpecial,javaDebugTextBlockError'
exec 'syn region javaDebugStrTempl contained start=+\%(\.[[:space:]\n]*\)\@' . s:ff.PeekFor('javaDebugStrTempl', 80) . '<="+ end=+"+ contains=javaDebugStrTemplEmbExp,javaDebugSpecial'
exec 'syn region javaDebugStrTempl contained start=+\%(\.[[:space:]\n]*\)\@' . s:ff.PeekFor('javaDebugStrTempl', 80) . '<="""[ \t\x0c\r]*$+hs=e+1 end=+"""+he=s-1 contains=javaDebugStrTemplEmbExp,javaDebugSpecial,javaDebugTextBlockError'
hi def link javaDebugStrTempl Macro
endif
@@ -786,7 +804,7 @@ syn region javaBlockOther transparent matchgroup=javaBlockOtherStart start="{" e
" Try not to fold top-level-type bodies under assumption that there is
" but one such body.
exec 'syn region javaBlock transparent matchgroup=javaBlockStart start="\%(^\|^\S[^:]\+\)\@' . s:ff.Peek('120', '') . '<!{" end="}" fold'
exec 'syn region javaBlock transparent matchgroup=javaBlockStart start="\%(^\|^\S[^:]\+\)\@' . s:ff.PeekFor('javaBlock', 120) . '<!{" end="}" fold'
" See "D.2.1 Anonymous Classes" at
" https://web.archive.org/web/20010821025330/java.sun.com/docs/books/jls/first_edition/html/1.1Update.html#12959.

View File

@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Python
" Maintainer: Zvezdan Petkovic <zpetkovic@acm.org>
" Last Change: 2025 Jul 17
" Last Change: 2025 Aug 18
" Credits: Neil Schemenauer <nas@python.ca>
" Dmitry Vasiliev
" Rob B
@@ -97,7 +97,8 @@ endif
syn keyword pythonStatement False None True
syn keyword pythonStatement as assert break continue del global
syn keyword pythonStatement lambda nonlocal pass return with yield
syn keyword pythonStatement class def nextgroup=pythonFunction skipwhite
syn keyword pythonStatement class nextgroup=pythonClass skipwhite
syn keyword pythonStatement def nextgroup=pythonFunction skipwhite
syn keyword pythonConditional elif else if
syn keyword pythonRepeat for while
syn keyword pythonOperator and in is not or
@@ -112,6 +113,10 @@ syn keyword pythonAsync async await
syn match pythonConditional "^\s*\zscase\%(\s\+.*:.*$\)\@="
syn match pythonConditional "^\s*\zsmatch\%(\s\+.*:\s*\%(#.*\)\=$\)\@="
" These names are special by convention. While they aren't real keywords,
" giving them distinct highlighting provides a nice visual cue.
syn keyword pythonClassVar self cls
" Decorators
" A dot must be allowed because of @MyClass.myfunc decorators.
syn match pythonDecorator "@" display contained
@@ -123,20 +128,21 @@ syn match pythonDecoratorName "@\s*\h\%(\w\|\.\)*" display contains=pythonDeco
" Single line multiplication.
syn match pythonMatrixMultiply
\ "\%(\w\|[])]\)\s*@"
\ contains=ALLBUT,pythonDecoratorName,pythonDecorator,pythonFunction,pythonDoctestValue
\ contains=ALLBUT,pythonDecoratorName,pythonDecorator,pythonClass,pythonFunction,pythonDoctestValue
\ transparent
" Multiplication continued on the next line after backslash.
syn match pythonMatrixMultiply
\ "[^\\]\\\s*\n\%(\s*\.\.\.\s\)\=\s\+@"
\ contains=ALLBUT,pythonDecoratorName,pythonDecorator,pythonFunction,pythonDoctestValue
\ contains=ALLBUT,pythonDecoratorName,pythonDecorator,pythonClass,pythonFunction,pythonDoctestValue
\ transparent
" Multiplication in a parenthesized expression over multiple lines with @ at
" the start of each continued line; very similar to decorators and complex.
syn match pythonMatrixMultiply
\ "^\s*\%(\%(>>>\|\.\.\.\)\s\+\)\=\zs\%(\h\|\%(\h\|[[(]\).\{-}\%(\w\|[])]\)\)\s*\n\%(\s*\.\.\.\s\)\=\s\+@\%(.\{-}\n\%(\s*\.\.\.\s\)\=\s\+@\)*"
\ contains=ALLBUT,pythonDecoratorName,pythonDecorator,pythonFunction,pythonDoctestValue
\ contains=ALLBUT,pythonDecoratorName,pythonDecorator,pythonClass,pythonFunction,pythonDoctestValue
\ transparent
syn match pythonClass "\h\w*" display contained
syn match pythonFunction "\h\w*" display contained
syn match pythonComment "#.*$" contains=pythonTodo,@Spell
@@ -163,25 +169,25 @@ syn region pythonFString
\ start=+\cF\z(['"]\)+
\ end="\z1"
\ skip="\\\\\|\\\z1"
\ contains=pythonEscape,pythonUnicodeEscape,@Spell
\ contains=pythonFStringField,pythonFStringSkip,pythonEscape,pythonUnicodeEscape,@Spell
syn region pythonFString
\ matchgroup=pythonTripleQuotes
\ start=+\cF\z('''\|"""\)+
\ end="\z1"
\ keepend
\ contains=pythonEscape,pythonUnicodeEscape,pythonSpaceError,pythonDoctest,@Spell
\ contains=pythonFStringField,pythonFStringSkip,pythonEscape,pythonUnicodeEscape,pythonSpaceError,pythonDoctest,@Spell
syn region pythonRawFString
\ matchgroup=pythonQuotes
\ start=+\c\%(FR\|RF\)\z(['"]\)+
\ end="\z1"
\ skip="\\\\\|\\\z1"
\ contains=@Spell
\ contains=pythonFStringField,pythonFStringSkip,@Spell
syn region pythonRawFString
\ matchgroup=pythonTripleQuotes
\ start=+\c\%(FR\|RF\)\z('''\|"""\)+
\ end="\z1"
\ keepend
\ contains=pythonSpaceError,pythonDoctest,@Spell
\ contains=pythonFStringField,pythonFStringSkip,pythonSpaceError,pythonDoctest,@Spell
" Bytes
syn region pythonBytes
@@ -207,6 +213,24 @@ syn region pythonRawBytes
\ end="\z1"
\ keepend
" F-string replacement fields
"
" - Matched parentheses, brackets and braces are ignored
" - A bare # is ignored to end of line
" - A bare = (surrounded by optional whitespace) enables debugging
" - A bare ! prefixes a conversion field
" - A bare : begins a format specification
" - Matched braces inside a format specification are ignored
"
syn region pythonFStringField
\ matchgroup=pythonFStringDelimiter
\ start=/{/
\ skip=/([^)]*)\|\[[^]]*]\|{[^}]*}\|#.*$/
\ end=/\%(\s*=\s*\)\=\%(!\a\)\=\%(:\%({[^}]*}\|[^}]*\)\+\)\=}/
\ contained
" Doubled braces and Unicode escapes are not replacement fields
syn match pythonFStringSkip /{{\|\\N{/ transparent contained contains=NONE
syn match pythonEscape +\\[abfnrtv'"\\]+ contained
syn match pythonEscape "\\\o\{1,3}" contained
syn match pythonEscape "\\x\x\{2}" contained
@@ -279,7 +303,7 @@ if !exists("python_no_builtin_highlight")
syn keyword pythonBuiltin tuple type vars zip __import__
" avoid highlighting attributes as builtins
syn match pythonAttribute /\.\h\w*/hs=s+1
\ contains=ALLBUT,pythonBuiltin,pythonFunction,pythonAsync
\ contains=ALLBUT,pythonBuiltin,pythonClass,pythonFunction,pythonAsync
\ transparent
endif
@@ -336,7 +360,7 @@ if !exists("python_no_doctest_highlight")
if !exists("python_no_doctest_code_highlight")
syn region pythonDoctest
\ start="^\s*>>>\s" end="^\s*$"
\ contained contains=ALLBUT,pythonDoctest,pythonFunction,@Spell
\ contained contains=ALLBUT,pythonDoctest,pythonClass,pythonFunction,@Spell
syn region pythonDoctestValue
\ start=+^\s*\%(>>>\s\|\.\.\.\s\|"""\|'''\)\@!\S\++ end="$"
\ contained
@@ -347,8 +371,8 @@ if !exists("python_no_doctest_highlight")
endif
endif
" Sync at the beginning of class, function, or method definition.
syn sync match pythonSync grouphere NONE "^\%(def\|class\)\s\+\h\w*\s*[(:]"
" Sync at the beginning of (async) function or class definitions.
syn sync match pythonSync grouphere NONE "^\%(def\|class\|async\s\+def\)\s\+\h\w*\s*[(:]"
" The default highlight links. Can be overridden later.
hi def link pythonStatement Statement
@@ -358,8 +382,10 @@ hi def link pythonOperator Operator
hi def link pythonException Exception
hi def link pythonInclude Include
hi def link pythonAsync Statement
hi def link pythonClassVar Identifier
hi def link pythonDecorator Define
hi def link pythonDecoratorName Function
hi def link pythonClass Structure
hi def link pythonFunction Function
hi def link pythonComment Comment
hi def link pythonTodo Todo
@@ -373,6 +399,7 @@ hi def link pythonQuotes String
hi def link pythonTripleQuotes pythonQuotes
hi def link pythonEscape Special
hi def link pythonUnicodeEscape pythonEscape
hi def link pythonFStringDelimiter Special
if !exists("python_no_number_highlight")
hi def link pythonNumber Number
endif

View File

@@ -4,7 +4,7 @@
" Previous Maintainer: Will Langstroth <will@langstroth.com>
" URL: https://github.com/benknoble/vim-racket
" Description: Contains all of the keywords in #lang racket
" Last Change: 2024 Apr 14
" Last Change: 2025 Aug 09
" Initializing:
if exists("b:current_syntax")
@@ -534,21 +534,21 @@ syntax match racketContainedNumberError "\<#[ei]#[ei]"
syntax match racketContainedNumberError "\<#[xdob]#[xdob]"
" start with the simpler sorts
syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdlef][-+]\?\d\+#*\)\?\>" contains=racketContainedNumberError
syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdleft][-+]\?\d\+#*\)\?\>" contains=racketContainedNumberError
syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\d\+/\d\+\>" contains=racketContainedNumberError
syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\d\+/\d\+[-+]\d\+\(/\d\+\)\?i\>" contains=racketContainedNumberError
" different possible ways of expressing complex values
syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdlef][-+]\?\d\+#*\)\?i\>" contains=racketContainedNumberError
syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdlef][-+]\?\d\+#*\)\?[-+]\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdlef][-+]\?\d\+#*\)\?i\>" contains=racketContainedNumberError
syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\(inf\|nan\)\.[0f][-+]\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdlef][-+]\?\d\+#*\)\?i\>" contains=racketContainedNumberError
syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdlef][-+]\?\d\+#*\)\?[-+]\(inf\|nan\)\.[0f]i\>" contains=racketContainedNumberError
syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdlef][-+]\?\d\+#*\)\?@[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdlef][-+]\?\d\+#*\)\?\>" contains=racketContainedNumberError
syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\(inf\|nan\)\.[0f]@[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdlef][-+]\?\d\+#*\)\?\>" contains=racketContainedNumberError
syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdlef][-+]\?\d\+#*\)\?@[-+]\(inf\|nan\)\.[0f]\>" contains=racketContainedNumberError
syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdleft][-+]\?\d\+#*\)\?i\>" contains=racketContainedNumberError
syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdleft][-+]\?\d\+#*\)\?[-+]\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdlef][-+]\?\d\+#*\)\?i\>" contains=racketContainedNumberError
syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\(inf\|nan\)\.[0f][-+]\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdleft][-+]\?\d\+#*\)\?i\>" contains=racketContainedNumberError
syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdleft][-+]\?\d\+#*\)\?[-+]\(inf\|nan\)\.[0f]i\>" contains=racketContainedNumberError
syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdleft][-+]\?\d\+#*\)\?@[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdlef][-+]\?\d\+#*\)\?\>" contains=racketContainedNumberError
syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\(inf\|nan\)\.[0f]@[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdleft][-+]\?\d\+#*\)\?\>" contains=racketContainedNumberError
syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdleft][-+]\?\d\+#*\)\?@[-+]\(inf\|nan\)\.[0f]\>" contains=racketContainedNumberError
" hex versions of the above (separate because of the different possible exponent markers)
syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\?\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?\>"
syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\?\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([slt][-+]\?\x\+#*\)\?\>"
syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\?\x\+/\x\+\>"
syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\?\x\+/\x\+[-+]\x\+\(/\x\+\)\?i\>"
@@ -561,9 +561,9 @@ syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\(inf\|nan\)\.[0f]@[
syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\?\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?@[-+]\(inf\|nan\)\.[0f]\>"
" these work for any radix
syntax match racketNumber "\<\(#[xdobie]\)\{0,2}[-+]\(inf\|nan\)\.[0f]i\?\>" contains=racketContainedNumberError
syntax match racketNumber "\<\(#[xdobie]\)\{0,2}[-+]\(inf\|nan\)\.[0f][-+]\(inf\|nan\)\.[0f]i\>" contains=racketContainedNumberError
syntax match racketNumber "\<\(#[xdobie]\)\{0,2}[-+]\(inf\|nan\)\.[0f]@[-+]\(inf\|nan\)\.[0f]\>" contains=racketContainedNumberError
syntax match racketNumber "\<\(#[xdobie]\)\{0,2}[-+]\(inf\|nan\)\.[0ft]i\?\>" contains=racketContainedNumberError
syntax match racketNumber "\<\(#[xdobie]\)\{0,2}[-+]\(inf\|nan\)\.[0ft][-+]\(inf\|nan\)\.[0f]i\>" contains=racketContainedNumberError
syntax match racketNumber "\<\(#[xdobie]\)\{0,2}[-+]\(inf\|nan\)\.[0ft]@[-+]\(inf\|nan\)\.[0f]\>" contains=racketContainedNumberError
syntax keyword racketBoolean #t #f #true #false #T #F

View File

@@ -3,6 +3,7 @@
" Maintainer: Max Coplan <mchcopl@gmail.com>
" Translations by Jakson Alves de Aquino.
" Last Change: 2022-12-08
" 2025-08-16 by Vim project, update zh_CN translations, #18011
" Copied from: runtime/syntax/diff.vim
" Quit when a (custom) syntax file was already loaded
@@ -312,9 +313,9 @@ syn match hgDiffCommon "^\%(SL\|HG\): Thư mục con chung: .* và .*"
" zh_CN
syn match hgDiffOnly "^\%(SL\|HG\): 只在 .* 存在:.*"
syn match hgDiffIdentical "^\%(SL\|HG\): 檔案 .* 和 .* 相同$"
syn match hgDiffIdentical "^\%(SL\|HG\): 文件 .* 和 .* 相同$"
syn match hgDiffDiffer "^\%(SL\|HG\): 文件 .* 和 .* 不同$"
syn match hgDiffBDiffer "^\%(SL\|HG\): 文件 .* 和 .* 不同$"
syn match hgDiffBDiffer "^\%(SL\|HG\): 二进制文件 .* 和 .* 不同$"
syn match hgDiffIsA "^\%(SL\|HG\): 文件 .* 是.*而文件 .* 是.*"
syn match hgDiffNoEOL "^\%(SL\|HG\): \\ 文件尾没有 newline 字符"
syn match hgDiffCommon "^\%(SL\|HG\): .* 和 .* 有共同的子目录$"

View File

@@ -2,6 +2,7 @@
" Language: TypeScript and TypeScriptReact
" Maintainer: Herrington Darkholme
" Last Change: 2024 May 24
" 2025 Aug 05 support for new TypeScript syntaxes
" Based On: Herrington Darkholme's yats.vim
" Changes: See https://github.com/HerringtonDarkholme/yats.vim
" Credits: See yats.vim on github
@@ -11,7 +12,6 @@ if &cpo =~ 'C'
set cpo&vim
endif
" NOTE: this results in accurate highlighting, but can be slow.
syntax sync fromstart
@@ -240,10 +240,22 @@ syntax cluster typescriptSymbols contains=typescriptBinaryOp,types
"Import
syntax keyword typescriptImport from as
syntax keyword typescriptImport import
\ nextgroup=typescriptImportType,typescriptTypeBlock,typescriptDefaultImportName
\ nextgroup=typescriptImportType,typescriptImportBlock,typescriptDefaultImportName,typescriptImportDefer
\ skipwhite
syntax keyword typescriptImportType type
\ contained
syntax match typescriptDefaultImportName /\v\h\k*( |,)/
\ contained
\ nextgroup=typescriptImportBlock
\ skipwhite skipempty
syntax match typescriptImportDefer /\<defer\%(\s\+\*\)\@=/
\ contained
syntax region typescriptImportBlock
\ matchgroup=typescriptBraces
\ start=/{/ end=/}/
\ contained
\ contains=typescriptIdentifierName,typescriptImportType,typescriptString
\ fold
syntax keyword typescriptExport export
\ nextgroup=typescriptExportType
\ skipwhite
@@ -329,21 +341,11 @@ syntax cluster typescriptAmbients contains=
\ typescriptModule
syntax keyword typescriptIdentifier arguments nextgroup=@afterIdentifier
syntax match typescriptDefaultImportName /\v\h\k*( |,)/
\ contained
\ nextgroup=typescriptTypeBlock
\ skipwhite skipempty
syntax region typescriptTypeBlock
\ matchgroup=typescriptBraces
\ start=/{/ end=/}/
\ contained
\ contains=typescriptIdentifierName,typescriptImportType
\ fold
"Program Keywords
syntax keyword typescriptNull null undefined nextgroup=@typescriptSymbols skipwhite skipempty
syntax keyword typescriptIdentifier this super prototype nextgroup=@afterIdentifier
syntax keyword typescriptIdentifier this super nextgroup=@afterIdentifier
syntax keyword typescriptPrototype prototype nextgroup=@afterIdentifier
syntax keyword typescriptStatementKeyword return skipwhite contained nextgroup=@typescriptValue containedin=typescriptBlock
"Syntax coloring for Node.js shebang line
@@ -1988,100 +1990,101 @@ syntax match typescriptDecorator /@\([_$a-zA-Z][_$a-zA-Z0-9]*\.\)*[_$a-zA-Z][_$a
\ contains=@_semantic,typescriptDotNotation
hi def link typescriptReserved Error
hi def link typescriptReserved Error
hi def link typescriptEndColons Exception
hi def link typescriptSymbols Normal
hi def link typescriptBraces Function
hi def link typescriptParens Normal
hi def link typescriptComment Comment
hi def link typescriptLineComment Comment
hi def link typescriptDocComment Comment
hi def link typescriptCommentTodo Todo
hi def link typescriptMagicComment SpecialComment
hi def link typescriptRef Include
hi def link typescriptDocNotation SpecialComment
hi def link typescriptDocTags SpecialComment
hi def link typescriptDocNGParam typescriptDocParam
hi def link typescriptDocParam Function
hi def link typescriptDocNumParam Function
hi def link typescriptDocEventRef Function
hi def link typescriptDocNamedParamType Type
hi def link typescriptDocParamName Type
hi def link typescriptDocParamType Type
hi def link typescriptString String
hi def link typescriptSpecial Special
hi def link typescriptStringLiteralType String
hi def link typescriptTemplateLiteralType String
hi def link typescriptStringMember String
hi def link typescriptTemplate String
hi def link typescriptEventString String
hi def link typescriptDestructureString String
hi def link typescriptASCII Special
hi def link typescriptTemplateSB Label
hi def link typescriptRegexpString String
hi def link typescriptGlobal Constant
hi def link typescriptTestGlobal Function
hi def link typescriptPrototype Type
hi def link typescriptConditional Conditional
hi def link typescriptConditionalElse Conditional
hi def link typescriptCase Conditional
hi def link typescriptDefault typescriptCase
hi def link typescriptBranch Conditional
hi def link typescriptIdentifier Structure
hi def link typescriptVariable Identifier
hi def link typescriptUsing Identifier
hi def link typescriptDestructureVariable PreProc
hi def link typescriptEnumKeyword Identifier
hi def link typescriptRepeat Repeat
hi def link typescriptForOperator Repeat
hi def link typescriptStatementKeyword Statement
hi def link typescriptMessage Keyword
hi def link typescriptOperator Identifier
hi def link typescriptKeywordOp Identifier
hi def link typescriptCastKeyword Special
hi def link typescriptType Type
hi def link typescriptNull Boolean
hi def link typescriptNumber Number
hi def link typescriptBoolean Boolean
hi def link typescriptObjectLabel typescriptLabel
hi def link typescriptDestructureLabel Function
hi def link typescriptLabel Label
hi def link typescriptTupleLable Label
hi def link typescriptStringProperty String
hi def link typescriptImport Special
hi def link typescriptImportType Special
hi def link typescriptAmbientDeclaration Special
hi def link typescriptExport Special
hi def link typescriptExportType Special
hi def link typescriptModule Special
hi def link typescriptTry Special
hi def link typescriptExceptions Special
hi def link typescriptEndColons Exception
hi def link typescriptSymbols Normal
hi def link typescriptBraces Function
hi def link typescriptParens Normal
hi def link typescriptComment Comment
hi def link typescriptLineComment Comment
hi def link typescriptDocComment Comment
hi def link typescriptCommentTodo Todo
hi def link typescriptMagicComment SpecialComment
hi def link typescriptRef Include
hi def link typescriptDocNotation SpecialComment
hi def link typescriptDocTags SpecialComment
hi def link typescriptDocNGParam typescriptDocParam
hi def link typescriptDocParam Function
hi def link typescriptDocNumParam Function
hi def link typescriptDocEventRef Function
hi def link typescriptDocNamedParamType Type
hi def link typescriptDocParamName Type
hi def link typescriptDocParamType Type
hi def link typescriptString String
hi def link typescriptSpecial Special
hi def link typescriptStringLiteralType String
hi def link typescriptTemplateLiteralType String
hi def link typescriptStringMember String
hi def link typescriptTemplate String
hi def link typescriptEventString String
hi def link typescriptDestructureString String
hi def link typescriptASCII Special
hi def link typescriptTemplateSB Label
hi def link typescriptRegexpString String
hi def link typescriptGlobal Constant
hi def link typescriptTestGlobal Function
hi def link typescriptPrototype Type
hi def link typescriptConditional Conditional
hi def link typescriptConditionalElse Conditional
hi def link typescriptCase Conditional
hi def link typescriptDefault typescriptCase
hi def link typescriptBranch Conditional
hi def link typescriptIdentifier Structure
hi def link typescriptVariable Keyword
hi def link typescriptUsing Identifier
hi def link typescriptDestructureVariable PreProc
hi def link typescriptEnumKeyword Identifier
hi def link typescriptRepeat Repeat
hi def link typescriptForOperator Repeat
hi def link typescriptStatementKeyword Statement
hi def link typescriptMessage Keyword
hi def link typescriptOperator Operator
hi def link typescriptKeywordOp Operator
hi def link typescriptCastKeyword Special
hi def link typescriptType Type
hi def link typescriptNull Boolean
hi def link typescriptNumber Number
hi def link typescriptBoolean Boolean
hi def link typescriptObjectLabel typescriptLabel
hi def link typescriptDestructureLabel Function
hi def link typescriptLabel Label
hi def link typescriptTupleLable Label
hi def link typescriptStringProperty String
hi def link typescriptImport Keyword
hi def link typescriptImportType Keyword
hi def link typescriptImportDefer Keyword
hi def link typescriptAmbientDeclaration Keyword
hi def link typescriptExport Keyword
hi def link typescriptExportType Keyword
hi def link typescriptModule Keyword
hi def link typescriptTry Exception
hi def link typescriptExceptions Exception
hi def link typescriptMember Function
hi def link typescriptMethodAccessor Operator
hi def link typescriptMember Function
hi def link typescriptMethodAccessor Operator
hi def link typescriptAsyncFuncKeyword Keyword
hi def link typescriptObjectAsyncKeyword Keyword
hi def link typescriptAsyncFor Keyword
hi def link typescriptFuncKeyword Keyword
hi def link typescriptAsyncFunc Keyword
hi def link typescriptArrowFunc Type
hi def link typescriptFuncName Function
hi def link typescriptFuncCallArg PreProc
hi def link typescriptArrowFuncArg PreProc
hi def link typescriptFuncComma Operator
hi def link typescriptAsyncFuncKeyword Keyword
hi def link typescriptObjectAsyncKeyword Keyword
hi def link typescriptAsyncFor Keyword
hi def link typescriptFuncKeyword Keyword
hi def link typescriptAsyncFunc Keyword
hi def link typescriptArrowFunc Type
hi def link typescriptFuncName Function
hi def link typescriptFuncCallArg PreProc
hi def link typescriptArrowFuncArg PreProc
hi def link typescriptFuncComma Operator
hi def link typescriptClassKeyword Keyword
hi def link typescriptClassExtends Keyword
hi def link typescriptAbstract Special
hi def link typescriptClassStatic StorageClass
hi def link typescriptReadonlyModifier Keyword
hi def link typescriptInterfaceKeyword Keyword
hi def link typescriptInterfaceExtends Keyword
hi def link typescriptInterfaceName Function
hi def link typescriptClassKeyword Keyword
hi def link typescriptClassExtends Keyword
hi def link typescriptAbstract Special
hi def link typescriptClassStatic StorageClass
hi def link typescriptReadonlyModifier StorageClass
hi def link typescriptInterfaceKeyword Keyword
hi def link typescriptInterfaceExtends Keyword
hi def link typescriptInterfaceName Function
hi def link shellbang Comment
hi def link shellbang Comment
hi def link typescriptTypeParameter Identifier
hi def link typescriptConstraint Keyword
@@ -2107,7 +2110,7 @@ hi def link typescriptConstructor Keyword
hi def link typescriptDecorator Special
hi def link typescriptAssertType Keyword
hi link typeScript NONE
hi def link typeScript NONE
if exists('s:cpo_save')
let &cpo = s:cpo_save

View File

@@ -1,7 +1,8 @@
" Vim syntax file
" Language: SystemVerilog
" Maintainer: kocha <kocha.lsifrontend@gmail.com>
" Last Change: 12-Aug-2013.
" Last Change: 12-Aug-2013.
" 2025 Aug 20 by Vim project: Add IEE1800-2023 block #18056
" quit when a syntax file was already loaded
if exists("b:current_syntax")
@@ -68,6 +69,9 @@ syn keyword systemverilogConditional unique0
syn keyword systemverilogStatement implements
syn keyword systemverilogStatement interconnect soft nettype
" IEEE1800-2023 add
syn region systemverilogBlockString start=+"""+ end=+"""+ contains=verilogEscape,@Spell
" Define the default highlighting.
" The default highlighting.
@@ -78,6 +82,7 @@ hi def link systemverilogRepeat Repeat
hi def link systemverilogLabel Label
hi def link systemverilogGlobal Define
hi def link systemverilogNumber Number
hi def link systemverilogBlockString String
let b:current_syntax = "systemverilog"

View File

@@ -1,9 +1,9 @@
| +0#0000e05#a8a8a8255@1>/+0&#ffffff0@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |s|e|t|l|o|c|a|l| |f|o|l|d|e|n|a|b|l|e| |f|o|l|d|c|o|l|u|m|n|=|2| |f|o|l|d|m|e|t|h|o|d|=|s|y|n|t|a|x| +0#0000000&@4
| +0#0000e05#a8a8a8255@1|/+0&#ffffff0@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |l|e|t| |g|:|j|a|v|a|_|f|o|l|d|t|e|x|t|_|s|h|o|w|_|f|i|r|s|t|_|o|r|_|s|e|c|o|n|d|_|l|i|n|e| |=| |1| +0#0000000&@5
| +0#0000e05#a8a8a8255@1|/+0&#ffffff0@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |l|e|t| |g|:|j|a|v|a|_|l|o@1|k|b|e|h|i|n|d|_|b|y|t|e|_|c|o|u|n|t|s| |=| |{|'|j|a|v|a|B|l|o|c|k|'|:| |-|1|}| +0#0000000&@1
| +0#0000e05#a8a8a8255@1|/+0&#ffffff0@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i|g|h|l|i|g|h|t| |l|i|n|k| |j|a|v|a|B|l|o|c|k|O|t|h|e|r|S|t|a|r|t| |S|t|r|u|c|t|u|r|e| +0#0000000&@10
| +0#0000e05#a8a8a8255@1|/+0&#ffffff0@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i|g|h|l|i|g|h|t| |l|i|n|k| |j|a|v|a|B|l|o|c|k|S|t|a|r|t| |T|o|d|o| +0#0000000&@20
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
|++0#0000e05#a8a8a8255| |+|-@1| |1|9| |l|i|n|e|s|:| |@|S|u|p@1|r|e|s@1|W|a|r|n|i|n|g|s|(|{|-@39
| @1|c+0#00e0003#ffffff0|l|a|s@1| +0#0000000&|F|o|l|d|i|n|g|T|e|s|t|s| |{+0#00e0003&| +0#0000000&@52
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|i+0#00e0003&|n|t|e|r|f|a|c|e| +0#0000000&|F|o|l|d|e|n|a|b|l|e| @48

View File

@@ -15,6 +15,6 @@
| +0#0000e05#a8a8a8255@1|/+0&#ffffff0@1| |{| +0#0000000&@68
| +0#0000e05#a8a8a8255@1|/+0&#ffffff0@1| |}| +0#0000000&@68
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
|++0#0000e05#a8a8a8255| |+|-@1| @1|2| |l|i|n|e|s|:| |1|2@1|||.@54
|~+0#4040ff13#ffffff0| @73
| +0#0000000&@56|9|7|,|2|-|1| @7|B|o|t|
| +0#0000e05#a8a8a8255@1|/+0&#ffffff0|*| |1|2@1|||.@65
| +0&#a8a8a8255@1|.+0&#ffffff0@23|*|/| +0#0000000&|i+0#00e0003&|n|t|e|r|f|a|c|e| +0#0000000&|F|o|l|d|e|n|a|b|l|e| |{+0#00e0003&| +0#0000000&@23
@57|9|7|,|2|-|1| @7|9|8|%|

View File

@@ -0,0 +1,20 @@
| +0#0000e05#a8a8a8255@1|/+0&#ffffff0|*| |1|2@1|||.@65
| +0&#a8a8a8255@1|.+0&#ffffff0@23|*|/| +0#0000000&|i+0#00e0003&|n|t|e|r|f|a|c|e| +0#0000000&|F|o|l|d|e|n|a|b|l|e| |{+0#00e0003&| +0#0000000&@23
| +0#0000e05#a8a8a8255@1>}+0#00e0003#ffffff0| +0#0000000&@71
|~+0#4040ff13&| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
| +0#0000000&@56|1|2@1|,|1| @8|B|o|t|

View File

@@ -1,9 +1,9 @@
>/+0#0000e05#ffffff0@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |s|e|t|l|o|c|a|l| |n|o|f|o|l|d|e|n|a|b|l|e| +0#0000000&@35
|/+0#0000e05&@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |l|e|t| |g|:|j|a|v|a|_|m|a|r|k|_|b|r|a|c|e|s|_|i|n|_|p|a|r|e|n|s|_|a|s|_|e|r@1|o|r|s| |=| |1| +0#0000000&@10
|/+0#0000e05&@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |l|e|t| |g|:|j|a|v|a|_|l|o@1|k|b|e|h|i|n|d|_|b|y|t|e|_|c|o|u|n|t|s| |=| |{|'|j|a|v|a|B|l|o|c|k|'|:| |-|1|}| +0#0000000&@3
|/+0#0000e05&@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i|g|h|l|i|g|h|t| |l|i|n|k| |j|a|v|a|B|l|o|c|k|O|t|h|e|r|S|t|a|r|t| |S|t|r|u|c|t|u|r|e| +0#0000000&@12
|/+0#0000e05&@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i|g|h|l|i|g|h|t| |l|i|n|k| |j|a|v|a|B|l|o|c|k|S|t|a|r|t| |T|o|d|o| +0#0000000&@22
@75
@75
@4|@+0#e000e06&|S|u|p@1|r|e|s@1|W|a|r|n|i|n|g|s|(|{+0#0000001#ffff4012| +0#0000000#ffffff0@51
@4|"@2| @67
| +0#e000002&@3|b|e|s|p|o|k|e| +0#0000000&@63

View File

@@ -16,5 +16,5 @@
|/+0#0000e05&@1| |}| +0#0000000&@70
@75
|/+0#0000e05&|*| |1|2@1|||.@67
@20|*|/| +0#0000000&|i+0#00e0003&|n|t|e|r|f|a|c|e| +0#0000000&|U|n|f|o|l|d|e|n|a|b|l|e| |{+0#0000001#ffff4012| +0#0000000#ffffff0@27
@20|*|/| +0#0000000&|i+0#00e0003&|n|t|e|r|f|a|c|e| +0#0000000&|U|n|f|o|l|d|e|n|a|b|l|e| |{+0#00e0003&| +0#0000000&@27
@57|1|0|9|,|1| @8|9@1|%|

View File

@@ -1,6 +1,6 @@
|/+0#0000e05#ffffff0|*| |1|2@1|||.@67
@20|*|/| +0#0000000&|i+0#00e0003&|n|t|e|r|f|a|c|e| +0#0000000&|U|n|f|o|l|d|e|n|a|b|l|e| |{+0#0000001#ffff4012| +0#0000000#ffffff0@27
>}+0#0000001#ffff4012| +0#0000000#ffffff0@73
@20|*|/| +0#0000000&|i+0#00e0003&|n|t|e|r|f|a|c|e| +0#0000000&|U|n|f|o|l|d|e|n|a|b|l|e| |{+0#00e0003&| +0#0000000&@27
>}+0#00e0003&| +0#0000000&@73
|~+0#4040ff13&| @73
|~| @73
|~| @73

View File

@@ -17,4 +17,4 @@
|a+0#e000002&|n|d| |l|i|t|e|r|a|l| |\|t| |a|n|d| |\|0|4|0| |a|n|d| |\|x|F@1| +0#0000000&@42
|a+0#e000002&|n|d| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5|"@2| +0#0000000&@38
@75
@57|1|7|,|1| @10|9|%|
@57|1|7|,|1| @10|6|%|

View File

@@ -17,4 +17,4 @@
|#+0#0000e05&| |R|a|w| |U|n|i|c|o|d|e| |l|i|t|e|r|a|l|s| |a|r|e| |n|o|t| |a|l@1|o|w|e|d| +0#0000000&@36
|t|e|s|t| |=| |u|r+0#e000002&|'|I|n|v|a|l|i|d| |s|t|r|i|n|g| |w|i|t|h| |\|'| |a|n|d| |\|"| |a|n|d| |\|t|'| +0#0000000&@27
|t|e|s|t| |=| |u|R+0#e000002&|"|I|n|v|a|l|i|d| |s|t|r|i|n|g| |w|i|t|h| |\|0|4|0| |a|n|d| |\|x|F@1|"| +0#0000000&@30
@57|3@1|,|1| @9|2|4|%|
@57|3@1|,|1| @9|1|5|%|

View File

@@ -17,4 +17,4 @@
|a+0#e000002&|n|d| |\+0#e000e06&|u|0@1|A|1| +0#e000002&|a|n|d| |\+0#e000e06&|U|0@2|1|0|6|0|5|"+0#e000002&@2| +0#0000000&@46
@75
|#+0#0000e05&| |F|o|r|m|a|t@1|e|d| |s|t|r|i|n|g| |l|i|t|e|r|a|l|s| |(|f|-|s|t|r|i|n|g|s|)| +0#0000000&@35
@57|4|9|,|1| @9|3|8|%|
@57|4|9|,|1| @9|2|4|%|

View File

@@ -1,20 +1,20 @@
|#+0#0000e05#ffffff0| |F|o|r|m|a|t@1|e|d| |s|t|r|i|n|g| |l|i|t|e|r|a|l|s| |(|f|-|s|t|r|i|n|g|s|)| +0#0000000&@35
|#+0#0000e05&| |h|t@1|p|s|:|/@1|d|o|c|s|.|p|y|t|h|o|n|.|o|r|g|/|3|/|r|e|f|e|r|e|n|c|e|/|l|e|x|i|c|a|l|_|a|n|a|l|y|s|i|s|.|h|t|m|l|#|f|-|s|t|r|i|n|g|s| +0#0000000&@5
|t|e|s|t| |=| |f+0#e000002&|'|F|-|s|t|r|i|n|g| |w|i|t|h| |e|s|c|a|p|e|s| |\+0#e000e06&|'| +0#e000002&|a|n|d| |\+0#e000e06&|"| +0#e000002&|a|n|d| |\+0#e000e06&|t| +0#e000002&|a|n|d| |f|i|e|l|d|s| |{|f|o@1|}| |a|n|d| |{|b|a|r|}|'
|t+0#0000000&|e|s|t| |=| |F+0#e000002&|"|F|-|s|t|r|i|n|g| |w|i|t|h| |e|s|c|a|p|e|s| |\+0#e000e06&|0|4|0| +0#e000002&|a|n|d| |\+0#e000e06&|x|F@1| +0#e000002&|a|n|d| |f|i|e|l|d|s| |{|f|o@1|}| |a|n|d| |{|b|a|r|}|"| +0#0000000&@2
|t|e|s|t| |=| |f+0#e000002&|'|F|-|s|t|r|i|n|g| |w|i|t|h| |e|s|c|a|p|e|s| |\+0#e000e06&|'| +0#e000002&|a|n|d| |\+0#e000e06&|"| +0#e000002&|a|n|d| |\+0#e000e06&|t| +0#e000002&|a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#0000000&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#0000000&|a|r|}+0#e000e06&|'+0#e000002&
|t+0#0000000&|e|s|t| |=| |F+0#e000002&|"|F|-|s|t|r|i|n|g| |w|i|t|h| |e|s|c|a|p|e|s| |\+0#e000e06&|0|4|0| +0#e000002&|a|n|d| |\+0#e000e06&|x|F@1| +0#e000002&|a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#0000000&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#0000000&|a|r|}+0#e000e06&|"+0#e000002&| +0#0000000&@2
|t|e|s|t| |=| |f+0#e000002&|'|F|-|s|t|r|i|n|g| |w|i|t|h| |e|s|c|a|p|e|s| |\+0#e000e06&|u|0@1|A|1| +0#e000002&|a|n|d| |\+0#e000e06&|U|0@2|1|0|6|0|5| +0#e000002&|a|n|d| |\+0#e000e06&|N|{|I|N|V|E|R|T|E|D| |E|X|C|L|A|M
|A|T|I|O|N| |M|A|R|K|}| +0#e000002&|a|n|d| |f|i|e|l|d|s| |{|f|o@1|}| |a|n|d| |{|b|a|r|}|'| +0#0000000&@35
>t|e|s|t| |=| |F+0#e000002&|"|F|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |{@1|f|i|e|l|d|}@1| |a|n|d| |f|i|e|l|d|s| |{|f|o@1|}| |a|n|d| |{|b|a|r|}|"| +0#0000000&@6
|A|T|I|O|N| |M|A|R|K|}| +0#e000002&|a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#0000000&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#0000000&|a|r|}+0#e000e06&|'+0#e000002&| +0#0000000&@35
>t|e|s|t| |=| |F+0#e000002&|"|F|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |{@1|f|i|e|l|d|}@1| |a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#0000000&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#0000000&|a|r|}+0#e000e06&|"+0#e000002&| +0#0000000&@6
|t|e|s|t| |=| |f+0#e000002&|'@2|F|-|s|t|r|i|n|g| |w|i|t|h| |q|u|o|t|e|s| |'| |a|n|d| |"| +0#0000000&@35
|a+0#e000002&|n|d| |e|s|c|a|p|e|s| |\+0#e000e06&|t| +0#e000002&|a|n|d| |\+0#e000e06&|0|4|0| +0#e000002&|a|n|d| |\+0#e000e06&|x|F@1| +0#0000000&@42
|a+0#e000002&|n|d| |e|s|c|a|p|e|s| |\+0#e000e06&|u|0@1|A|1| +0#e000002&|a|n|d| |\+0#e000e06&|U|0@2|1|0|6|0|5| +0#0000000&@41
|a+0#e000002&|n|d| |f|i|e|l|d|s| |{|1|}|,| |{|2|}| |a|n|d| |{|1| +0#0000000&@48
| +0#e000002&@3|+| +0#0000000&@69
| +0#e000002&@3|2|}|'@2| +0#0000000&@65
|a+0#e000002&|n|d| |f|i|e|l|d|s| |{+0#e000e06&|1+0#0000000&|}+0#e000e06&|,+0#e000002&| |{+0#e000e06&|2+0#0000000&|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|1+0#0000000&| @48
@4|+| @69
@4|2|}+0#e000e06&|'+0#e000002&@2| +0#0000000&@65
|t|e|s|t| |=| |F+0#e000002&|"@2|F|-|s|t|r|i|n|g| |w|i|t|h| |q|u|o|t|e|s| |'| |a|n|d| |"| +0#0000000&@35
|a+0#e000002&|n|d| |e|s|c|a|p|e|s| |\+0#e000e06&|t| +0#e000002&|a|n|d| |\+0#e000e06&|0|4|0| +0#e000002&|a|n|d| |\+0#e000e06&|x|F@1| +0#0000000&@42
|a+0#e000002&|n|d| |e|s|c|a|p|e|s| |\+0#e000e06&|u|0@1|A|1| +0#e000002&|a|n|d| |\+0#e000e06&|U|0@2|1|0|6|0|5| +0#0000000&@41
|a+0#e000002&|n|d| |f|i|e|l|d|s| |{|1|}|,| |{|2|}| |a|n|d| |{|1| +0#0000000&@48
| +0#e000002&@3|+| +0#0000000&@69
| +0#e000002&@3|2|}|"@2| +0#0000000&@65
@57|6@1|,|1| @9|5|3|%|
|a+0#e000002&|n|d| |f|i|e|l|d|s| |{+0#e000e06&|1+0#0000000&|}+0#e000e06&|,+0#e000002&| |{+0#e000e06&|2+0#0000000&|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|1+0#0000000&| @48
@4|+| @69
@4|2|}+0#e000e06&|"+0#e000002&@2| +0#0000000&@65
@57|6@1|,|1| @9|3|4|%|

View File

@@ -1,20 +1,20 @@
| +0#e000002#ffffff0@3|2|}|"@2| +0#0000000&@65
| +0&#ffffff0@3|2|}+0#e000e06&|"+0#e000002&@2| +0#0000000&@65
@75
|#+0#0000e05&| |R|a|w| |f|o|r|m|a|t@1|e|d| |s|t|r|i|n|g| |l|i|t|e|r|a|l|s| +0#0000000&@43
|t|e|s|t| |=| |f+0#e000002&|r|'|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |\|'| |a|n|d| |\|"| |a|n|d| |\|t| |a|n|d| |f|i|e|l|d|s| |{|f|o@1|}| |a|n|d| |{
|b|a|r|}|'| +0#0000000&@69
>t|e|s|t| |=| |f+0#e000002&|R|"|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |\|0|4|0| |a|n|d| |\|x|F@1| |a|n|d| |f|i|e|l|d|s| |{|f|o@1|}| |a|n|d| |{|b|a|r
|}|"| +0#0000000&@72
|t|e|s|t| |=| |f+0#e000002&|r|'|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |\|'| |a|n|d| |\|"| |a|n|d| |\|t| |a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#0000000&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&
|b+0#0000000&|a|r|}+0#e000e06&|'+0#e000002&| +0#0000000&@69
>t|e|s|t| |=| |f+0#e000002&|R|"|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |\|0|4|0| |a|n|d| |\|x|F@1| |a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#0000000&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#0000000&|a|r
|}+0#e000e06&|"+0#e000002&| +0#0000000&@72
|t|e|s|t| |=| |F+0#e000002&|r|'|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5| |a|n|d| |\|N|{|I|N|V|E|R|T|E|D| |E
|X|C|L|A|M|A|T|I|O|N| |M|A|R|K|}| |a|n|d| |f|i|e|l|d|s| |{|f|o@1|}| |a|n|d| |{|b|a|r|}|'| +0#0000000&@30
|t|e|s|t| |=| |F+0#e000002&|R|"|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |{@1|f|i|e|l|d|}@1| |a|n|d| |f|i|e|l|d|s| |{|f|o@1|}| |a|n|d| |{|b|a|r|}|"| +0#0000000&@1
|t|e|s|t| |=| |r+0#e000002&|f|'|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |\|'| |a|n|d| |\|"| |a|n|d| |\|t| |a|n|d| |f|i|e|l|d|s| |{|f|o@1|}| |a|n|d| |{
|b|a|r|}|'| +0#0000000&@69
|t|e|s|t| |=| |r+0#e000002&|F|"|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |\|0|4|0| |a|n|d| |\|x|F@1| |a|n|d| |f|i|e|l|d|s| |{|f|o@1|}| |a|n|d| |{|b|a|r
|}|"| +0#0000000&@72
|X|C|L|A|M|A|T|I|O|N| |M|A|R|K|}| |a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#0000000&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#0000000&|a|r|}+0#e000e06&|'+0#e000002&| +0#0000000&@30
|t|e|s|t| |=| |F+0#e000002&|R|"|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |{@1|f|i|e|l|d|}@1| |a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#0000000&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#0000000&|a|r|}+0#e000e06&|"+0#e000002&| +0#0000000&@1
|t|e|s|t| |=| |r+0#e000002&|f|'|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |\|'| |a|n|d| |\|"| |a|n|d| |\|t| |a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#0000000&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&
|b+0#0000000&|a|r|}+0#e000e06&|'+0#e000002&| +0#0000000&@69
|t|e|s|t| |=| |r+0#e000002&|F|"|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |\|0|4|0| |a|n|d| |\|x|F@1| |a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#0000000&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#0000000&|a|r
|}+0#e000e06&|"+0#e000002&| +0#0000000&@72
|t|e|s|t| |=| |R+0#e000002&|f|'|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5| |a|n|d| |\|N|{|I|N|V|E|R|T|E|D| |E
|X|C|L|A|M|A|T|I|O|N| |M|A|R|K|}| |a|n|d| |f|i|e|l|d|s| |{|f|o@1|}| |a|n|d| |{|b|a|r|}|'| +0#0000000&@30
|t|e|s|t| |=| |R+0#e000002&|F|"|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |{@1|f|i|e|l|d|}@1| |a|n|d| |f|i|e|l|d|s| |{|f|o@1|}| |a|n|d| |{|b|a|r|}|"| +0#0000000&@1
|X|C|L|A|M|A|T|I|O|N| |M|A|R|K|}| |a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#0000000&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#0000000&|a|r|}+0#e000e06&|'+0#e000002&| +0#0000000&@30
|t|e|s|t| |=| |R+0#e000002&|F|"|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |{@1|f|i|e|l|d|}@1| |a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#0000000&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#0000000&|a|r|}+0#e000e06&|"+0#e000002&| +0#0000000&@1
|t|e|s|t| |=| |f+0#e000002&|r|'@2|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |q|u|o|t|e|s| |'| |a|n|d| |"| +0#0000000&@30
|a+0#e000002&|n|d| |l|i|t|e|r|a|l| |\|t| |a|n|d| |\|0|4|0| |a|n|d| |\|x|F@1| +0#0000000&@42
@57|8|2|,|1| @9|6|5|%|
@57|8|2|,|1| @9|4|2|%|

View File

@@ -1,20 +1,20 @@
|a+0#e000002#ffffff0|n|d| |l|i|t|e|r|a|l| |\|t| |a|n|d| |\|0|4|0| |a|n|d| |\|x|F@1| +0#0000000&@42
|a+0#e000002&|n|d| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5| +0#0000000&@41
|a+0#e000002&|n|d| |f|i|e|l|d|s| |{|1|}|,| |{|2|}| |a|n|d| |{|1| +0#0000000&@48
| +0#e000002&@3|+| +0#0000000&@69
| +0#e000002&@3|2|}|'@2| +0#0000000&@65
|a+0#e000002&|n|d| |f|i|e|l|d|s| |{+0#e000e06&|1+0#0000000&|}+0#e000e06&|,+0#e000002&| |{+0#e000e06&|2+0#0000000&|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|1+0#0000000&| @48
@4|+| @69
@4|2|}+0#e000e06&|'+0#e000002&@2| +0#0000000&@65
>t|e|s|t| |=| |R+0#e000002&|F|"@2|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |q|u|o|t|e|s| |'| |a|n|d| |"| +0#0000000&@30
|a+0#e000002&|n|d| |l|i|t|e|r|a|l| |\|t| |a|n|d| |\|0|4|0| |a|n|d| |\|x|F@1| +0#0000000&@42
|a+0#e000002&|n|d| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5| +0#0000000&@41
|a+0#e000002&|n|d| |f|i|e|l|d|s| |{|1|}|,| |{|2|}| |a|n|d| |{|1| +0#0000000&@48
| +0#e000002&@3|+| +0#0000000&@69
| +0#e000002&@3|2|}|"@2| +0#0000000&@65
|a+0#e000002&|n|d| |f|i|e|l|d|s| |{+0#e000e06&|1+0#0000000&|}+0#e000e06&|,+0#e000002&| |{+0#e000e06&|2+0#0000000&|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|1+0#0000000&| @48
@4|+| @69
@4|2|}+0#e000e06&|"+0#e000002&@2| +0#0000000&@65
@75
|#+0#0000e05&| |B|y|t|e|s| +0#0000000&@67
|t|e|s|t| |=| |b+0#e000002&|'|B|y|t|e|s| |w|i|t|h| |e|s|c|a|p|e|s| |\+0#e000e06&|'| +0#e000002&|a|n|d| |\+0#e000e06&|"| +0#e000002&|a|n|d| |\+0#e000e06&|t|'+0#e000002&| +0#0000000&@29
|t|e|s|t| |=| |B+0#e000002&|"|B|y|t|e|s| |w|i|t|h| |e|s|c|a|p|e|s| |\+0#e000e06&|0|4|0| +0#e000002&|a|n|d| |\+0#e000e06&|x|F@1|"+0#e000002&| +0#0000000&@32
|t|e|s|t| |=| |b+0#e000002&|'|B|y|t|e|s| |w|i|t|h| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5| |a|n|d| |\|N|{|I|N|V|E|R|T|E|D| |E|X|C|L|A|M|A|T|I
|O|N| |M|A|R|K|}|'| +0#0000000&@65
|t|e|s|t| |=| |B+0#e000002&|"|B|y|t|e|s| |w|i|t|h| |e|s|c|a|p|e|d| |\+0#e000e06&@1| +0#e000002&|b|a|c|k|s|l|a|s|h| |a|n|d| |i|g|n|o|r|e|d| |\+0#e000e06&| +0#0000000&@20
|n+0#e000002&|e|w|l|i|n|e|"| +0#0000000&@66
@57|9|5|,|1| @9|7|8|%|
|#+0#0000e05&| |F|-|s|t|r|i|n|g| |r|e|p|l|a|c|e|m|e|n|t| |f|i|e|l|d|s| +0#0000000&@45
|t|e|s|t| |=| |f+0#e000002&|"|S|t|r|i|n|g| |i|s| |{+0#e000e06&| +0#0000000&@54
@4|"|o|n|e| |p|l|u|s| |"| @59
@4|"|t|w|o| |p|l|u|s| |"| @59
@4|"|t|h|r|e@1|"|}+0#e000e06&|"+0#e000002&| +0#0000000&@61
|t|e|s|t| |=| |f+0#e000002&|"|N|u|m|b|e|r| |i|s| |{+0#e000e06&| +0#0000000&@54
@4|1| |+| @67
@57|9|5|,|1| @9|5|0|%|

View File

@@ -1,20 +1,20 @@
|n+0#e000002#ffffff0|e|w|l|i|n|e|"| +0#0000000&@66
|t|e|s|t| |=| |b+0#e000002&|'@2|B|y|t|e|s| |w|i|t|h| |q|u|o|t|e|s| |'| |a|n|d| |"| +0#0000000&@38
|a+0#e000002&|n|d| |e|s|c|a|p|e|s| |\+0#e000e06&|t| +0#e000002&|a|n|d| |\+0#e000e06&|0|4|0| +0#e000002&|a|n|d| |\+0#e000e06&|x|F@1| +0#0000000&@42
|a+0#e000002&|n|d| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5|'@2| +0#0000000&@38
|t|e|s|t| |=| |B+0#e000002&|"@2|B|y|t|e|s| |w|i|t|h| |q|u|o|t|e|s| |'| |a|n|d| |"| +0#0000000&@38
>a+0#e000002&|n|d| |e|s|c|a|p|e|s| |\+0#e000e06&|t| +0#e000002&|a|n|d| |\+0#e000e06&|0|4|0| +0#e000002&|a|n|d| |\+0#e000e06&|x|F@1| +0#0000000&@42
|a+0#e000002&|n|d| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5|"@2| +0#0000000&@38
@75
|#+0#0000e05&| |R|a|w| |b|y|t|e|s| +0#0000000&@63
|t|e|s|t| |=| |b+0#e000002&|r|'|R|a|w| |b|y|t|e|s| |w|i|t|h| |l|i|t|e|r|a|l| |\|'| |a|n|d| |\|"| |a|n|d| |\|t|'| +0#0000000&@24
|t|e|s|t| |=| |b+0#e000002&|R|"|R|a|w| |b|y|t|e|s| |w|i|t|h| |l|i|t|e|r|a|l| |\|0|4|0| |a|n|d| |\|x|F@1|"| +0#0000000&@27
|t|e|s|t| |=| |B+0#e000002&|r|'|R|a|w| |b|y|t|e|s| |w|i|t|h| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5| |a|n|d| |\|N|{|I|N|V|E|R|T|E|D| |E|X|C|L
|A|M|A|T|I|O|N| |M|A|R|K|}|'| +0#0000000&@60
|t|e|s|t| |=| |B+0#e000002&|R|"|R|a|w| |b|y|t|e|s| |w|i|t|h| |l|i|t|e|r|a|l| |\@1| |b|a|c|k|s|l|a|s|h|e|s| |a|n|d| |l|i|t|e|r|a|l| |\| +0#0000000&@13
|n+0#e000002&|e|w|l|i|n|e|"| +0#0000000&@66
|t|e|s|t| |=| |r+0#e000002&|b|'|R|a|w| |b|y|t|e|s| |w|i|t|h| |l|i|t|e|r|a|l| |\|'| |a|n|d| |\|"| |a|n|d| |\|t|'| +0#0000000&@24
|t|e|s|t| |=| |r+0#e000002&|B|"|R|a|w| |b|y|t|e|s| |w|i|t|h| |l|i|t|e|r|a|l| |\|0|4|0| |a|n|d| |\|x|F@1|"| +0#0000000&@27
|t|e|s|t| |=| |R+0#e000002&|b|'|R|a|w| |b|y|t|e|s| |w|i|t|h| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5| |a|n|d| |\|N|{|I|N|V|E|R|T|E|D| |E|X|C|L
|A|M|A|T|I|O|N| |M|A|R|K|}|'| +0#0000000&@60
@57|1@1|2|,|1| @8|9|2|%|
| +0&#ffffff0@3|1| |+| @67
@4|2| |+| @67
@4|3|}+0#e000e06&|"+0#e000002&| +0#0000000&@67
|t|e|s|t| |=| |f+0#e000002&|"|a|b|c|{+0#e000e06&|a+0#0000000&| |#| |T|h|i|s| |i|s| |a| |c|o|m@1|e|n|t| |}| @38
@4|+| |1|}+0#e000e06&|"+0#e000002&| +0#0000000&@65
>t|e|s|t| |=| |f+0#e000002&|"|d|e|f|{+0#e000e06&|a+0#0000000&| |#| |S|o| |i|s| |t|h|i|s| |:| @45
@4|+| |2|}+0#e000e06&|"+0#e000002&| +0#0000000&@65
|t|e|s|t| |=| |f+0#e000002&|"|g|h|i|{+0#e000e06&|a+0#0000000&| |#| |A|n|d| |t|h|i|s| |"| @47
@4|+| |3|}+0#e000e06&|"+0#e000002&| +0#0000000&@65
|t|e|s|t| |=| |f+0#e000002&|"|H|e| |s|a|i|d| |h|i|s| |n|a|m|e| |i|s| |{+0#e000e06&|n+0#0000000&|a|m|e|!+0#e000e06&|r|}|.+0#e000002&|"| +0#0000000&@35
|t|e|s|t| |=| |f+0#e000002&|"|H|e| |s|a|i|d| |h|i|s| |n|a|m|e| |i|s| |{+0#e000e06&|r+0#0000000&|e|p|r|(|n|a|m|e|)|}+0#e000e06&|.+0#e000002&|"| +0#0000000&@31
|t|e|s|t| |=| |f+0#e000002&|"|r|e|s|u|l|t|:| |{+0#e000e06&|v+0#0000000&|a|l|u|e|:+0#e000e06&|{|w|i|d|t|h|}@1|"+0#e000002&| +0#0000000&@41
|t|e|s|t| |=| |f+0#e000002&|"|r|e|s|u|l|t|:| |{+0#e000e06&|v+0#0000000&|a|l|u|e|:+0#e000e06&|{|w|i|d|t|h|}|.|{|p|r|e|c|i|s|i|o|n|}|}+0#e000002&|"| +0#0000000&@29
|t|e|s|t| |=| |f+0#e000002&|"|r|e|s|u|l|t|:| |{+0#e000e06&|v+0#0000000&|a|l|u|e|:+0#e000e06&|{|w|i|d|t|h|:|d|}|.|{|p|r|e|c|i|s|i|o|n|!|s|}|}+0#e000002&|"| +0#0000000&@25
|t|e|s|t| |=| |f+0#e000002&|"|r|e|s|u|l|t|:| |{+0#e000e06&|v+0#0000000&|a|l|u|e|:+0#e000e06&|{|o|p|t|i|o|n|s|}|{|w|i|d|t|h|}|{|g|r|o|u|p|i|n|g|}|{|p|r|e|c|i|s|i|o|n|}|{|t|y|p|e|}@1|"+0#e000002&| +0#0000000&@5
|t|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|n+0#0000000&|u|m|b|e|r|:+0#e000e06&|#|0|x|}|"+0#e000002&| +0#0000000&@52
|t|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|n+0#0000000&|u|m|b|e|r|:+0#e000e06&|+|#|0|x|}|"+0#e000002&| +0#0000000&@51
|t|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|n+0#0000000&|u|m|b|e|r|:+0#e000e06&|<|+|#|0|x|}|"+0#e000002&| +0#0000000&@50
|t|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|n+0#0000000&|u|m|b|e|r|:+0#e000e06&| |<|+|#|0|x|}|"+0#e000002&| +0#0000000&@49
@57|1@1|3|,|1| @8|6|1|%|

View File

@@ -1,20 +1,20 @@
|t+0&#ffffff0|e|s|t| |=| |R+0#e000002&|b|'|R|a|w| |b|y|t|e|s| |w|i|t|h| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5| |a|n|d| |\|N|{|I|N|V|E|R|T|E|D| |E|X|C|L
|A|M|A|T|I|O|N| |M|A|R|K|}|'| +0#0000000&@60
|t|e|s|t| |=| |R+0#e000002&|B|"|R|a|w| |b|y|t|e|s| |w|i|t|h| |l|i|t|e|r|a|l| |\@1| |b|a|c|k|s|l|a|s|h|e|s| |a|n|d| |l|i|t|e|r|a|l| |\| +0#0000000&@13
|n+0#e000002&|e|w|l|i|n|e|"| +0#0000000&@66
|t|e|s|t| |=| |b+0#e000002&|r|'@2|R|a|w| |b|y|t|e|s| |w|i|t|h| |q|u|o|t|e|s| |'| |a|n|d| |"| +0#0000000&@33
>a+0#e000002&|n|d| |l|i|t|e|r|a|l| |\|t| |a|n|d| |\|0|4|0| |a|n|d| |\|x|F@1| +0#0000000&@42
|a+0#e000002&|n|d| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5|'@2| +0#0000000&@38
|t|e|s|t| |=| |R+0#e000002&|B|"@2|R|a|w| |b|y|t|e|s| |w|i|t|h| |q|u|o|t|e|s| |'| |a|n|d| |"| +0#0000000&@33
|a+0#e000002&|n|d| |l|i|t|e|r|a|l| |\|t| |a|n|d| |\|0|4|0| |a|n|d| |\|x|F@1| +0#0000000&@42
|a+0#e000002&|n|d| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5|"@2| +0#0000000&@38
|~+0#4040ff13&| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
| +0#0000000&@56|1|2|7|,|1| @8|B|o|t|
|t+0&#ffffff0|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|n+0#0000000&|u|m|b|e|r|:+0#e000e06&| |<|+|#|0|x|}|"+0#e000002&| +0#0000000&@49
|t|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|n+0#0000000&|u|m|b|e|r|:+0#e000e06&|<|#|0|x|}|"+0#e000002&| +0#0000000&@51
|t|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|n+0#0000000&|u|m|b|e|r|:+0#e000e06&| |<|#|0|x|}|"+0#e000002&| +0#0000000&@50
|t|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|s+0#0000000&|t|r|i|n|g|=+0#e000e06&|}|"+0#e000002&| +0#0000000&@55
|t|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|s+0#0000000&|t|r|i|n|g|=+0#e000e06&|!|r|}|"+0#e000002&| +0#0000000&@53
>t|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|s+0#0000000&|t|r|i|n|g|=+0#e000e06&|:|2|0|}|"+0#e000002&| +0#0000000&@52
|t|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|s+0#0000000&|t|r|i|n|g|=+0#e000e06&|!|r|:|2|0|}|"+0#e000002&| +0#0000000&@50
|t|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|s+0#0000000&|t|r|i|n|g| +0#e000e06&|=| |}|"+0#e000002&| +0#0000000&@53
|t|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|s+0#0000000&|t|r|i|n|g| +0#e000e06&|=| |!|r|}|"+0#e000002&| +0#0000000&@51
|t|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|s+0#0000000&|t|r|i|n|g| +0#e000e06&|=| |:|2|0|}|"+0#e000002&| +0#0000000&@50
|t|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|s+0#0000000&|t|r|i|n|g| +0#e000e06&|=| |!|r|:|2|0|}|"+0#e000002&| +0#0000000&@48
|t|e|s|t| |=| |f+0#e000002&|"|a|b|c| |{+0#e000e06&|a+0#0000000&|[|"|x|"|]|}+0#e000e06&| +0#e000002&|d|e|f|"| +0#0000000&@48
|t|e|s|t| |=| |f+0#e000002&|"|L|i|s|t| |c|o|n|t|a|i|n|s|:|\+0#e000e06&|n|{|"+0#0000000&|\|n|"|.|j|o|i|n|(|a|)|}+0#e000e06&|"+0#e000002&| +0#0000000&@34
|t|e|s|t| |=| |f+0#e000002&|"|T|o|d|a|y|'|s| |d|a|t|e| |i|s| |{+0#e000e06&|d+0#0000000&|a|t|e|t|i|m|e|.|n|o|w|(|)|}+0#e000e06&|"+0#e000002&| +0#0000000&@32
|t|e|s|t| |=| |f+0#e000002&|"|T|o|d|a|y|'|s| |f|o|r|m|a|t@1|e|d| |d|a|t|e| |i|s| |{+0#e000e06&|d+0#0000000&|a|t|e|t|i|m|e|.|n|o|w|(|)|:+0#e000e06&|%|Y|-|%|m|-|%|d| |%|H|:|%|M|:|%|S|}|"+0#e000002&| +0#0000000&@4
|t|e|s|t| |=| |f+0#e000002&|"|D|a|t|e| |i|s| |{+0#e000e06&|d+0#0000000&|a|t|e|t|i|m|e|.|d|a|t|e|t|i|m|e|(|2|0|1|0|,| |7|,| |4|,| |1|2|,| |1|5|,| |5|8|)|}+0#e000e06&|"+0#e000002&| +0#0000000&@13
|t|e|s|t| |=| |f+0#e000002&|"|F|o|r|m|a|t@1|e|d| |d|a|t|e| |i|s| |{+0#e000e06&|d+0#0000000&|a|t|e|t|i|m|e|.|d|a|t|e|t|i|m|e|(|2|0|1|0|,| |7|,| |4|,| |1|2|,| |1|5|,| |5|8|)|:+0#e000e06&|%|Y|-|%|m
|-|%|d| |%|H|:|%|M|:|%|S|}|"+0#e000002&| +0#0000000&@60
|t|e|s|t| |=| |f+0#e000002&|"|L|a|m|b|d|a| |r|e|t|u|r|n|s| |{+0#e000e06&|(+0#0000000&|l|a|m|b|d|a| |x|:| |x|*@1|2|)|}+0#e000e06&|"+0#e000002&| +0#0000000&@31
@57|1|3|1|,|1| @8|7|1|%|

View File

@@ -0,0 +1,20 @@
|t+0&#ffffff0|e|s|t| |=| |f+0#e000002&|"|L|a|m|b|d|a| |r|e|t|u|r|n|s| |{+0#e000e06&|(+0#0000000&|l|a|m|b|d|a| |x|:| |x|*@1|2|)|}+0#e000e06&|"+0#e000002&| +0#0000000&@31
|t|e|s|t| |=| |f+0#e000002&|"|Z|e|r|o| |p|a|d@1|e|d| |l|a|m|b|d|a| |r|e|t|u|r|n|s| |{+0#e000e06&|(+0#0000000&|l|a|m|b|d|a| |x|:| |x|*@1|2|)|:+0#e000e06&|0|9|}|"+0#e000002&| +0#0000000&@16
|t|e|s|t| |=| |f+0#e000002&|"|S|p|a|c|e| |p|a|d@1|e|d| |l|a|m|b|d|a| |r|e|t|u|r|n|s| |{+0#e000e06&|(+0#0000000&|l|a|m|b|d|a| |x|:| |x|*@1|2|)|:+0#e000e06&|{|w|i|d|t|h|}@1|"+0#e000002&| +0#0000000&@10
|t|e|s|t| |=| |f+0#e000002&|"|L|i|s|t| |c|o|p|y| |i|s| |{+0#e000e06&|i+0#0000000&|t|e|m|s|[|:|]|}+0#e000e06&|"+0#e000002&| +0#0000000&@41
|t|e|s|t| |=| |f+0#e000002&|"|L|i|s|t| |s|l|i|c|e| |i|s| |{+0#e000e06&|i+0#0000000&|t|e|m|s|[|1|:|]|}+0#e000e06&|"+0#e000002&| +0#0000000&@39
>t|e|s|t| |=| |f+0#e000002&|"|L|i|s|t| |s|l|i|c|e| |i|s| |{+0#e000e06&|i+0#0000000&|t|e|m|s|[|:|9|]|}+0#e000e06&|"+0#e000002&| +0#0000000&@39
|t|e|s|t| |=| |f+0#e000002&|"|L|i|s|t| |e|l|e|m|e|n|t|s| |a|r|e| |{+0#e000e06&|i+0#0000000&|t|e|m|s|[|:|2|:|]|}+0#e000e06&|"+0#e000002&| +0#0000000&@34
|t|e|s|t| |=| |f+0#e000002&|"|P|a|d@1|e|d| |l|i|s|t| |c|o|p|y| |i|s| |{+0#e000e06&|i+0#0000000&|t|e|m|s|[|:|]|:+0#e000e06&|9@1|}|"+0#e000002&| +0#0000000&@31
|t|e|s|t| |=| |f+0#e000002&|"|L|e|f|t|-|a|l|i|g|n|e|d| |l|i|s|t| |s|l|i|c|e| |i|s| |{+0#e000e06&|i+0#0000000&|t|e|m|s|[|1|:|]|:+0#e000e06&|<|9@1|}|"+0#e000002&| +0#0000000&@22
|t|e|s|t| |=| |f+0#e000002&|"|R|i|g|h|t| |a|l|i|g|n|e|d| |l|i|s|t| |s|l|i|c|e| |i|s| |{+0#e000e06&|i+0#0000000&|t|e|m|s|[|:|9|]|:+0#e000e06&|>|9@1|}|"+0#e000002&| +0#0000000&@21
|t|e|s|t| |=| |f+0#e000002&|"|C|e|n|t|e|r|-|a|l|i|g|n|e|d| |l|i|s|t| |e|l|e|m|e|n|t|s| |a|r|e| |{+0#e000e06&|i+0#0000000&|t|e|m|s|[|:|2|:|]|:+0#e000e06&|^|9@1|}|"+0#e000002&| +0#0000000&@15
|t|e|s|t| |=| |f+0#e000002&|"|E|x|p|r|e|s@1|i|o|n| |i|s| |{+0#e000e06&|x+0#0000000&| |=@1| |1|}+0#e000e06&|"+0#e000002&| +0#0000000&@42
|t|e|s|t| |=| |f+0#e000002&|"|E|x|p|r|e|s@1|i|o|n| |i|s| |{+0#e000e06&|x+0#0000000&| |!|=| |1|}+0#e000e06&|"+0#e000002&| +0#0000000&@42
|t|e|s|t| |=| |f+0#e000002&|"|E|x|p|r|e|s@1|i|o|n| |i|s| |{+0#e000e06&|(+0#0000000&|x| |:|=| |1|)|}+0#e000e06&|"+0#e000002&| +0#0000000&@40
|t|e|s|t| |=| |f+0#e000002&|"|D|e|b|u|g| |e|x|p|r|e|s@1|i|o|n| |i|s| |{+0#e000e06&|x+0#0000000&| |=@1| |1|=+0#e000e06&|}|"+0#e000002&| +0#0000000&@35
|t|e|s|t| |=| |f+0#e000002&|"|D|e|b|u|g| |e|x|p|r|e|s@1|i|o|n| |i|s| |{+0#e000e06&|x+0#0000000&| |!|=| |1|=+0#e000e06&|}|"+0#e000002&| +0#0000000&@35
|t|e|s|t| |=| |f+0#e000002&|"|D|e|b|u|g| |e|x|p|r|e|s@1|i|o|n| |i|s| |{+0#e000e06&|(+0#0000000&|x| |:|=| |1|)|=+0#e000e06&|}|"+0#e000002&| +0#0000000&@33
|t|e|s|t| |=| |f+0#e000002&|"|L|i|s|t| |c|o|m|p|r|e|h|e|n|s|i|o|n| |r|e|t|u|r|n|s| |{+0#e000e06&| +0#0000000&|[|x|*@1|2| |f|o|r| |x| |i|n| |r|a|n|g|e|(|1|0|)|]| |}+0#e000e06&|"+0#e000002&| +0#0000000&@8
|t|e|s|t| |=| |f+0#e000002&|"|P|a|d@1|e|d| |l|i|s|t| |c|o|m|p|r|e|h|e|n|s|i|o|n| |r|e|t|u|r|n|s| |{+0#e000e06&| +0#0000000&|[|x|*@1|2| |f|o|r| |x| |i|n| |r|a|n|g|e|(|1|0|)|]| |:+0#e000e06&|@+0#4040ff13&@2
| +0#0000000&@56|1|4|8|,|1| @8|8|0|%|

View File

@@ -0,0 +1,20 @@
|t+0&#ffffff0|e|s|t| |=| |f+0#e000002&|"|P|a|d@1|e|d| |l|i|s|t| |c|o|m|p|r|e|h|e|n|s|i|o|n| |r|e|t|u|r|n|s| |{+0#e000e06&| +0#0000000&|[|x|*@1|2| |f|o|r| |x| |i|n| |r|a|n|g|e|(|1|0|)|]| |:+0#e000e06&|9@1|}
|"+0#e000002&| +0#0000000&@73
|t|e|s|t| |=| |f+0#e000002&|"|D|i|c|t| |c|o|m|p|r|e|h|e|n|s|i|o|n| |r|e|t|u|r|n|s| |{+0#e000e06&| +0#0000000&|{|x|:| |x|*@1|2| |f|o|r| |x| |i|n| |r|a|n|g|e|(|1|0|)|}| |}+0#e000e06&|"+0#e000002&| +0#0000000&@5
|t|e|s|t| |=| |f+0#e000002&|"|P|a|d@1|e|d| |d|i|c|t| |c|o|m|p|r|e|h|e|n|s|i|o|n| |r|e|t|u|r|n|s| |{+0#e000e06&| +0#0000000&|{|x|:| |x|*@1|2| |f|o|r| |x| |i|n| |r|a|n|g|e|(|1|0|)|}| |:+0#e000e06&
|9@1|}|"+0#e000002&| +0#0000000&@70
> @74
|#+0#0000e05&| |B|y|t|e|s| +0#0000000&@67
|t|e|s|t| |=| |b+0#e000002&|'|B|y|t|e|s| |w|i|t|h| |e|s|c|a|p|e|s| |\+0#e000e06&|'| +0#e000002&|a|n|d| |\+0#e000e06&|"| +0#e000002&|a|n|d| |\+0#e000e06&|t|'+0#e000002&| +0#0000000&@29
|t|e|s|t| |=| |B+0#e000002&|"|B|y|t|e|s| |w|i|t|h| |e|s|c|a|p|e|s| |\+0#e000e06&|0|4|0| +0#e000002&|a|n|d| |\+0#e000e06&|x|F@1|"+0#e000002&| +0#0000000&@32
|t|e|s|t| |=| |b+0#e000002&|'|B|y|t|e|s| |w|i|t|h| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5| |a|n|d| |\|N|{|I|N|V|E|R|T|E|D| |E|X|C|L|A|M|A|T|I
|O|N| |M|A|R|K|}|'| +0#0000000&@65
|t|e|s|t| |=| |B+0#e000002&|"|B|y|t|e|s| |w|i|t|h| |e|s|c|a|p|e|d| |\+0#e000e06&@1| +0#e000002&|b|a|c|k|s|l|a|s|h| |a|n|d| |i|g|n|o|r|e|d| |\+0#e000e06&| +0#0000000&@20
|n+0#e000002&|e|w|l|i|n|e|"| +0#0000000&@66
|t|e|s|t| |=| |b+0#e000002&|'@2|B|y|t|e|s| |w|i|t|h| |q|u|o|t|e|s| |'| |a|n|d| |"| +0#0000000&@38
|a+0#e000002&|n|d| |e|s|c|a|p|e|s| |\+0#e000e06&|t| +0#e000002&|a|n|d| |\+0#e000e06&|0|4|0| +0#e000002&|a|n|d| |\+0#e000e06&|x|F@1| +0#0000000&@42
|a+0#e000002&|n|d| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5|'@2| +0#0000000&@38
|t|e|s|t| |=| |B+0#e000002&|"@2|B|y|t|e|s| |w|i|t|h| |q|u|o|t|e|s| |'| |a|n|d| |"| +0#0000000&@38
|a+0#e000002&|n|d| |e|s|c|a|p|e|s| |\+0#e000e06&|t| +0#e000002&|a|n|d| |\+0#e000e06&|0|4|0| +0#e000002&|a|n|d| |\+0#e000e06&|x|F@1| +0#0000000&@42
|a+0#e000002&|n|d| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5|"@2| +0#0000000&@38
@57|1|6|4|,|0|-|1| @6|8|9|%|

View File

@@ -0,0 +1,20 @@
|a+0#e000002#ffffff0|n|d| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5|"@2| +0#0000000&@38
@75
|#+0#0000e05&| |R|a|w| |b|y|t|e|s| +0#0000000&@63
|t|e|s|t| |=| |b+0#e000002&|r|'|R|a|w| |b|y|t|e|s| |w|i|t|h| |l|i|t|e|r|a|l| |\|'| |a|n|d| |\|"| |a|n|d| |\|t|'| +0#0000000&@24
|t|e|s|t| |=| |b+0#e000002&|R|"|R|a|w| |b|y|t|e|s| |w|i|t|h| |l|i|t|e|r|a|l| |\|0|4|0| |a|n|d| |\|x|F@1|"| +0#0000000&@27
>t|e|s|t| |=| |B+0#e000002&|r|'|R|a|w| |b|y|t|e|s| |w|i|t|h| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5| |a|n|d| |\|N|{|I|N|V|E|R|T|E|D| |E|X|C|L
|A|M|A|T|I|O|N| |M|A|R|K|}|'| +0#0000000&@60
|t|e|s|t| |=| |B+0#e000002&|R|"|R|a|w| |b|y|t|e|s| |w|i|t|h| |l|i|t|e|r|a|l| |\@1| |b|a|c|k|s|l|a|s|h|e|s| |a|n|d| |l|i|t|e|r|a|l| |\| +0#0000000&@13
|n+0#e000002&|e|w|l|i|n|e|"| +0#0000000&@66
|t|e|s|t| |=| |r+0#e000002&|b|'|R|a|w| |b|y|t|e|s| |w|i|t|h| |l|i|t|e|r|a|l| |\|'| |a|n|d| |\|"| |a|n|d| |\|t|'| +0#0000000&@24
|t|e|s|t| |=| |r+0#e000002&|B|"|R|a|w| |b|y|t|e|s| |w|i|t|h| |l|i|t|e|r|a|l| |\|0|4|0| |a|n|d| |\|x|F@1|"| +0#0000000&@27
|t|e|s|t| |=| |R+0#e000002&|b|'|R|a|w| |b|y|t|e|s| |w|i|t|h| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5| |a|n|d| |\|N|{|I|N|V|E|R|T|E|D| |E|X|C|L
|A|M|A|T|I|O|N| |M|A|R|K|}|'| +0#0000000&@60
|t|e|s|t| |=| |R+0#e000002&|B|"|R|a|w| |b|y|t|e|s| |w|i|t|h| |l|i|t|e|r|a|l| |\@1| |b|a|c|k|s|l|a|s|h|e|s| |a|n|d| |l|i|t|e|r|a|l| |\| +0#0000000&@13
|n+0#e000002&|e|w|l|i|n|e|"| +0#0000000&@66
|t|e|s|t| |=| |b+0#e000002&|r|'@2|R|a|w| |b|y|t|e|s| |w|i|t|h| |q|u|o|t|e|s| |'| |a|n|d| |"| +0#0000000&@33
|a+0#e000002&|n|d| |l|i|t|e|r|a|l| |\|t| |a|n|d| |\|0|4|0| |a|n|d| |\|x|F@1| +0#0000000&@42
|a+0#e000002&|n|d| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5|'@2| +0#0000000&@38
|t|e|s|t| |=| |R+0#e000002&|B|"@2|R|a|w| |b|y|t|e|s| |w|i|t|h| |q|u|o|t|e|s| |'| |a|n|d| |"| +0#0000000&@33
@57|1|8|1|,|1| @8|9|8|%|

View File

@@ -0,0 +1,20 @@
|t+0&#ffffff0|e|s|t| |=| |R+0#e000002&|B|"@2|R|a|w| |b|y|t|e|s| |w|i|t|h| |q|u|o|t|e|s| |'| |a|n|d| |"| +0#0000000&@33
|a+0#e000002&|n|d| |l|i|t|e|r|a|l| |\|t| |a|n|d| |\|0|4|0| |a|n|d| |\|x|F@1| +0#0000000&@42
>a+0#e000002&|n|d| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5|"@2| +0#0000000&@38
|~+0#4040ff13&| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
| +0#0000000&@56|1|9|4|,|1| @8|B|o|t|

View File

@@ -1,9 +1,9 @@
// VIM_TEST_SETUP setlocal foldenable foldcolumn=2 foldmethod=syntax
// VIM_TEST_SETUP let g:java_foldtext_show_first_or_second_line = 1
// VIM_TEST_SETUP let g:java_lookbehind_byte_counts = {'javaBlock': -1}
// VIM_TEST_SETUP highlight link javaBlockOtherStart Structure
// VIM_TEST_SETUP highlight link javaBlockStart Todo
@SuppressWarnings({
"""
bespoke

View File

@@ -1,9 +1,9 @@
// VIM_TEST_SETUP setlocal nofoldenable
// VIM_TEST_SETUP let g:java_mark_braces_in_parens_as_errors = 1
// VIM_TEST_SETUP let g:java_lookbehind_byte_counts = {'javaBlock': -1}
// VIM_TEST_SETUP highlight link javaBlockOtherStart Structure
// VIM_TEST_SETUP highlight link javaBlockStart Todo
@SuppressWarnings({
"""
bespoke

View File

@@ -99,6 +99,69 @@ and fields {1}, {2} and {1
+
2}"""
# F-string replacement fields
test = f"String is {
"one plus "
"two plus "
"three"}"
test = f"Number is {
1 +
2 +
3}"
test = f"abc{a # This is a comment }
+ 1}"
test = f"def{a # So is this :
+ 2}"
test = f"ghi{a # And this "
+ 3}"
test = f"He said his name is {name!r}."
test = f"He said his name is {repr(name)}."
test = f"result: {value:{width}}"
test = f"result: {value:{width}.{precision}}"
test = f"result: {value:{width:d}.{precision!s}}"
test = f"result: {value:{options}{width}{grouping}{precision}{type}}"
test = f"{number:#0x}"
test = f"{number:+#0x}"
test = f"{number:<+#0x}"
test = f"{number: <+#0x}"
test = f"{number:<#0x}"
test = f"{number: <#0x}"
test = f"{string=}"
test = f"{string=!r}"
test = f"{string=:20}"
test = f"{string=!r:20}"
test = f"{string = }"
test = f"{string = !r}"
test = f"{string = :20}"
test = f"{string = !r:20}"
test = f"abc {a["x"]} def"
test = f"List contains:\n{"\n".join(a)}"
test = f"Today's date is {datetime.now()}"
test = f"Today's formatted date is {datetime.now():%Y-%m-%d %H:%M:%S}"
test = f"Date is {datetime.datetime(2010, 7, 4, 12, 15, 58)}"
test = f"Formatted date is {datetime.datetime(2010, 7, 4, 12, 15, 58):%Y-%m-%d %H:%M:%S}"
test = f"Lambda returns {(lambda x: x**2)}"
test = f"Zero padded lambda returns {(lambda x: x**2):09}"
test = f"Space padded lambda returns {(lambda x: x**2):{width}}"
test = f"List copy is {items[:]}"
test = f"List slice is {items[1:]}"
test = f"List slice is {items[:9]}"
test = f"List elements are {items[:2:]}"
test = f"Padded list copy is {items[:]:99}"
test = f"Left-aligned list slice is {items[1:]:<99}"
test = f"Right aligned list slice is {items[:9]:>99}"
test = f"Center-aligned list elements are {items[:2:]:^99}"
test = f"Expression is {x == 1}"
test = f"Expression is {x != 1}"
test = f"Expression is {(x := 1)}"
test = f"Debug expression is {x == 1=}"
test = f"Debug expression is {x != 1=}"
test = f"Debug expression is {(x := 1)=}"
test = f"List comprehension returns { [x**2 for x in range(10)] }"
test = f"Padded list comprehension returns { [x**2 for x in range(10)] :99}"
test = f"Dict comprehension returns { {x: x**2 for x in range(10)} }"
test = f"Padded dict comprehension returns { {x: x**2 for x in range(10)} :99}"
# Bytes
test = b'Bytes with escapes \' and \" and \t'
test = B"Bytes with escapes \040 and \xFF"

View File

@@ -2,7 +2,7 @@
" Language: Vim script
" Maintainer: Hirohito Higashi <h.east.727 ATMARK gmail.com>
" Doug Kearns <dougkearns@gmail.com>
" Last Change: 2025 Aug 01
" Last Change: 2025 Aug 18
" Former Maintainer: Charles E. Campbell
" DO NOT CHANGE DIRECTLY.
@@ -63,11 +63,11 @@ syn keyword vimStdPlugin contained Arguments Asm Break Cfilter Clear Continue Di
" vimOptions are caught only when contained in a vimSet {{{2
" GEN_SYN_VIM: vimOption normal, START_STR='syn keyword vimOption contained', END_STR='skipwhite nextgroup=vimSetEqual,vimSetMod'
syn keyword vimOption contained al aleph ari allowrevins ambw ambiwidth arab arabic arshape arabicshape acd autochdir ac autocomplete ai autoindent ar autoread asd autoshelldir aw autowrite awa autowriteall bg background bs backspace bk backup bkc backupcopy bdir backupdir bex backupext bsk backupskip bdlay balloondelay beval ballooneval bevalterm balloonevalterm bexpr balloonexpr bo belloff bin binary bomb brk breakat bri breakindent briopt breakindentopt bsdir browsedir bh bufhidden bl buflisted bt buftype cmp casemap cdh cdhome cd cdpath cedit ccv charconvert chi chistory cin cindent cink cinkeys cino cinoptions cinsd cinscopedecls cinw cinwords cb clipboard cpm clipmethod ch cmdheight cwh cmdwinheight cc colorcolumn co columns com comments cms commentstring skipwhite nextgroup=vimSetEqual,vimSetMod
syn keyword vimOption contained cp compatible cpt complete cfu completefunc cfc completefuzzycollect cia completeitemalign cot completeopt cpp completepopup csl completeslash cocu concealcursor cole conceallevel cf confirm ci copyindent cpo cpoptions cm cryptmethod cspc cscopepathcomp csprg cscopeprg csqf cscopequickfix csre cscoperelative cst cscopetag csto cscopetagorder csverb cscopeverbose crb cursorbind cuc cursorcolumn cul cursorline culopt cursorlineopt debug def define deco delcombine dict dictionary diff dia diffanchors dex diffexpr dip diffopt dg digraph dir directory dy display ead eadirection ed edcompatible emo emoji enc encoding eof endoffile eol endofline ea equalalways ep equalprg eb errorbells ef errorfile efm errorformat ek esckeys ei eventignore skipwhite nextgroup=vimSetEqual,vimSetMod
syn keyword vimOption contained eiw eventignorewin et expandtab ex exrc fenc fileencoding fencs fileencodings ff fileformat ffs fileformats fic fileignorecase ft filetype fcs fillchars ffu findfunc fixeol fixendofline fcl foldclose fdc foldcolumn fen foldenable fde foldexpr fdi foldignore fdl foldlevel fdls foldlevelstart fmr foldmarker fdm foldmethod fml foldminlines fdn foldnestmax fdo foldopen fdt foldtext fex formatexpr flp formatlistpat fo formatoptions fp formatprg fs fsync gd gdefault gfm grepformat gp grepprg gcr guicursor gfn guifont gfs guifontset gfw guifontwide ghr guiheadroom gli guiligatures go guioptions guipty gtl guitablabel gtt guitabtooltip hf helpfile hh helpheight hlg helplang hid hidden hl highlight hi history hk hkmap hkp hkmapp hls hlsearch skipwhite nextgroup=vimSetEqual,vimSetMod
syn keyword vimOption contained 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 ise isexpand 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 mmd maxmapdepth mm maxmem skipwhite nextgroup=vimSetEqual,vimSetMod
syn keyword vimOption contained 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 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 popt printoptions prompt ph pumheight skipwhite nextgroup=vimSetEqual,vimSetMod
syn keyword vimOption contained al aleph ari allowrevins ambw ambiwidth arab arabic arshape arabicshape acd autochdir ac autocomplete acl autocompletedelay ai autoindent ar autoread asd autoshelldir aw autowrite awa autowriteall bg background bs backspace bk backup bkc backupcopy bdir backupdir bex backupext bsk backupskip bdlay balloondelay beval ballooneval bevalterm balloonevalterm bexpr balloonexpr bo belloff bin binary bomb brk breakat bri breakindent briopt breakindentopt bsdir browsedir bh bufhidden bl buflisted bt buftype cmp casemap cdh cdhome cd cdpath cedit ccv charconvert chi chistory cin cindent cink cinkeys cino cinoptions cinsd cinscopedecls cinw cinwords cb clipboard cpm clipmethod ch cmdheight cwh cmdwinheight cc colorcolumn co columns com comments skipwhite nextgroup=vimSetEqual,vimSetMod
syn keyword vimOption contained cms commentstring cp compatible cpt complete cfu completefunc cfc completefuzzycollect cia completeitemalign cot completeopt cpp completepopup csl completeslash cocu concealcursor cole conceallevel cf confirm ci copyindent cpo cpoptions cm cryptmethod cspc cscopepathcomp csprg cscopeprg csqf cscopequickfix csre cscoperelative cst cscopetag csto cscopetagorder csverb cscopeverbose crb cursorbind cuc cursorcolumn cul cursorline culopt cursorlineopt debug def define deco delcombine dict dictionary diff dia diffanchors dex diffexpr dip diffopt dg digraph dir directory dy display ead eadirection ed edcompatible emo emoji enc encoding eof endoffile eol endofline ea equalalways ep equalprg eb errorbells ef errorfile efm errorformat ek esckeys skipwhite nextgroup=vimSetEqual,vimSetMod
syn keyword vimOption contained ei eventignore eiw eventignorewin et expandtab ex exrc fenc fileencoding fencs fileencodings ff fileformat ffs fileformats fic fileignorecase ft filetype fcs fillchars ffu findfunc fixeol fixendofline fcl foldclose fdc foldcolumn fen foldenable fde foldexpr fdi foldignore fdl foldlevel fdls foldlevelstart fmr foldmarker fdm foldmethod fml foldminlines fdn foldnestmax fdo foldopen fdt foldtext fex formatexpr flp formatlistpat fo formatoptions fp formatprg fs fsync gd gdefault gfm grepformat gp grepprg gcr guicursor gfn guifont gfs guifontset gfw guifontwide ghr guiheadroom gli guiligatures go guioptions guipty gtl guitablabel gtt guitabtooltip hf helpfile hh helpheight hlg helplang hid hidden hl highlight hi history hk hkmap hkp hkmapp skipwhite nextgroup=vimSetEqual,vimSetMod
syn keyword vimOption contained 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 ise isexpand 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 mmd maxmapdepth skipwhite nextgroup=vimSetEqual,vimSetMod
syn keyword vimOption contained 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 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 popt printoptions prompt ph pumheight skipwhite nextgroup=vimSetEqual,vimSetMod
syn keyword vimOption contained 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 sc showcmd sloc showcmdloc sft showfulltag skipwhite nextgroup=vimSetEqual,vimSetMod
syn keyword vimOption contained 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 tws termwinsize twt termwintype terse skipwhite nextgroup=vimSetEqual,vimSetMod
syn keyword vimOption contained 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 wfw winfixwidth wh winheight wmh winminheight skipwhite nextgroup=vimSetEqual,vimSetMod
@@ -102,15 +102,15 @@ syn match vimOption contained "t_k;"
" vimOptions: These are the variable names {{{2
" GEN_SYN_VIM: vimOption normal variable, START_STR='syn keyword vimOptionVarName contained', END_STR=''
syn keyword vimOptionVarName contained al aleph ari allowrevins ambw ambiwidth arab arabic arshape arabicshape acd autochdir ac autocomplete ai autoindent ar autoread asd autoshelldir aw autowrite awa autowriteall bg background bs backspace bk backup bkc backupcopy bdir backupdir bex backupext bsk backupskip bdlay balloondelay beval ballooneval bevalterm balloonevalterm bexpr balloonexpr bo belloff bin binary bomb brk breakat bri breakindent briopt breakindentopt bsdir browsedir bh bufhidden bl buflisted bt buftype cmp casemap cdh cdhome cd cdpath cedit ccv charconvert chi chistory cin cindent cink cinkeys cino cinoptions cinsd cinscopedecls cinw cinwords cb clipboard cpm clipmethod ch cmdheight cwh cmdwinheight cc colorcolumn co columns com comments cms commentstring
syn keyword vimOptionVarName contained cp compatible cpt complete cfu completefunc cfc completefuzzycollect cia completeitemalign cot completeopt cpp completepopup csl completeslash cocu concealcursor cole conceallevel cf confirm ci copyindent cpo cpoptions cm cryptmethod cspc cscopepathcomp csprg cscopeprg csqf cscopequickfix csre cscoperelative cst cscopetag csto cscopetagorder csverb cscopeverbose crb cursorbind cuc cursorcolumn cul cursorline culopt cursorlineopt debug def define deco delcombine dict dictionary diff dia diffanchors dex diffexpr dip diffopt dg digraph dir directory dy display ead eadirection ed edcompatible emo emoji enc encoding eof endoffile eol endofline ea equalalways ep equalprg eb errorbells ef errorfile efm errorformat ek esckeys ei eventignore
syn keyword vimOptionVarName contained eiw eventignorewin et expandtab ex exrc fenc fileencoding fencs fileencodings ff fileformat ffs fileformats fic fileignorecase ft filetype fcs fillchars ffu findfunc fixeol fixendofline fcl foldclose fdc foldcolumn fen foldenable fde foldexpr fdi foldignore fdl foldlevel fdls foldlevelstart fmr foldmarker fdm foldmethod fml foldminlines fdn foldnestmax fdo foldopen fdt foldtext fex formatexpr flp formatlistpat fo formatoptions fp formatprg fs fsync gd gdefault gfm grepformat gp grepprg gcr guicursor gfn guifont gfs guifontset gfw guifontwide ghr guiheadroom gli guiligatures go guioptions guipty gtl guitablabel gtt guitabtooltip hf helpfile hh helpheight hlg helplang hid hidden hl highlight hi history hk hkmap hkp hkmapp hls hlsearch
syn keyword vimOptionVarName contained 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 ise isexpand 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 mmd maxmapdepth
syn keyword vimOptionVarName contained 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 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 popt printoptions prompt
syn keyword vimOptionVarName contained 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 sc showcmd sloc showcmdloc
syn keyword vimOptionVarName contained 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 tws termwinsize
syn keyword vimOptionVarName contained 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 wfw winfixwidth
syn keyword vimOptionVarName contained 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 al aleph ari allowrevins ambw ambiwidth arab arabic arshape arabicshape acd autochdir ac autocomplete acl autocompletedelay ai autoindent ar autoread asd autoshelldir aw autowrite awa autowriteall bg background bs backspace bk backup bkc backupcopy bdir backupdir bex backupext bsk backupskip bdlay balloondelay beval ballooneval bevalterm balloonevalterm bexpr balloonexpr bo belloff bin binary bomb brk breakat bri breakindent briopt breakindentopt bsdir browsedir bh bufhidden bl buflisted bt buftype cmp casemap cdh cdhome cd cdpath cedit ccv charconvert chi chistory cin cindent cink cinkeys cino cinoptions cinsd cinscopedecls cinw cinwords cb clipboard cpm clipmethod ch cmdheight cwh cmdwinheight cc colorcolumn co columns
syn keyword vimOptionVarName contained com comments cms commentstring cp compatible cpt complete cfu completefunc cfc completefuzzycollect cia completeitemalign cot completeopt cpp completepopup csl completeslash cocu concealcursor cole conceallevel cf confirm ci copyindent cpo cpoptions cm cryptmethod cspc cscopepathcomp csprg cscopeprg csqf cscopequickfix csre cscoperelative cst cscopetag csto cscopetagorder csverb cscopeverbose crb cursorbind cuc cursorcolumn cul cursorline culopt cursorlineopt debug def define deco delcombine dict dictionary diff dia diffanchors dex diffexpr dip diffopt dg digraph dir directory dy display ead eadirection ed edcompatible emo emoji enc encoding eof endoffile eol endofline ea equalalways ep equalprg eb errorbells ef errorfile
syn keyword vimOptionVarName contained efm errorformat ek esckeys ei eventignore eiw eventignorewin et expandtab ex exrc fenc fileencoding fencs fileencodings ff fileformat ffs fileformats fic fileignorecase ft filetype fcs fillchars ffu findfunc fixeol fixendofline fcl foldclose fdc foldcolumn fen foldenable fde foldexpr fdi foldignore fdl foldlevel fdls foldlevelstart fmr foldmarker fdm foldmethod fml foldminlines fdn foldnestmax fdo foldopen fdt foldtext fex formatexpr flp formatlistpat fo formatoptions fp formatprg fs fsync gd gdefault gfm grepformat gp grepprg gcr guicursor gfn guifont gfs guifontset gfw guifontwide ghr guiheadroom gli guiligatures go guioptions guipty gtl guitablabel gtt guitabtooltip hf helpfile hh helpheight hlg helplang hid hidden hl highlight
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 ise isexpand 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
syn keyword vimOptionVarName contained mco maxcombine 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 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 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
syn keyword vimOptionVarName contained 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 twk termwinkey
syn keyword vimOptionVarName 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
syn keyword vimOptionVarName contained 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
" 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

View File

@@ -1,4 +1,4 @@
INSTALLpc.txt - Installation of Vim on PC - Last Update: 2025 May 14
INSTALLpc.txt - Installation of Vim on PC - Last Update: 2025 Aug 10
This file contains instructions for compiling Vim. If you already have an
executable version of Vim, you don't need this.
@@ -42,7 +42,7 @@ Contents:
The currently recommended way (that means it has been verified to work) is
using the "Visual Studio 2022 Community Edition" installation. This doesn't
using the "Visual Studio 2022 Community Edition" installation. This doesn't
include the SDK for older Windows versions (95 - XP), see "OLDER VERSIONS"
below for that.
@@ -52,7 +52,7 @@ below for that.
We do not provide download links, since Microsoft keeps changing them. You
can search for "Visual Studio 2022 Community Edition", for example. You will
need to create a Microsoft account (it's free). You need to download the
need to create a Microsoft account (it's free). You need to download the
"DVD", and execute the installer from it.
When installing "Visual Studio 2022 Community Edition" or "Build Tools for
@@ -456,7 +456,7 @@ found at
As of 2011, UPX still does not support compressing 64-bit EXE's; if you have
built a 64-bit vim then an alternative to UPX is 'MPRESS'. MPRESS can be found
at:
http://www.matcode.com/mpress.htm
matcode.com/mpress.htm (now a dead link)
ADDITION: NLS support with MinGW
@@ -471,7 +471,7 @@ You need to uncomment lines in Make_ming.mak to have NLS defined.
=========
Use Make_cyg.mak with Cygwin's GCC. See
http://users.skynet.be/antoine.mechelynck/vim/compile.htm
(now dead) users.skynet.be/antoine.mechelynck/vim/compile.htm
With Cygnus gcc you should use the Unix Makefile instead (you need to get the
Unix archive then). Then you get a Cygwin application (feels like Vim is

View File

@@ -1,7 +1,7 @@
INSTALLvms.txt - Installation of Vim on OpenVMS
Maintainer: Zoltan Arpadffy <zoltan.arpadffy@gmail.com>
Last change: 2023 Nov 29
Last change: 2025 Aug 10
This file contains instructions for compiling Vim on Openvms.
If you already have an executable version of Vim, you don't need this.
@@ -33,7 +33,7 @@ Contents:
1.1. Visit the Vim Repository Home
You may want to clone the latest source code from https://github/vim/vim
You may want to clone the latest source code from https://www.github.com/vim/vim
Or the last tested on OpenVMS from http://polarhome.com/vim/files/source/vms/
1.2. Expand the three archives.
@@ -43,7 +43,7 @@ Or the last tested on OpenVMS from http://polarhome.com/vim/files/source/vms/
1.4. You will need either the DECSET mms utility or the freely available clone
of it called mmk (VMS has no make utility in the standard distribution).
You can download mmk from http://www.openvms.digital.com/freeware/MMK/
You can download mmk from (defunct link) openvms.digital.com/freeware/MMK/
1.5. If you want to have Perl, Python or Tcl support in Vim you will need VMS
distributions for them as well.
@@ -169,7 +169,7 @@ from CVS mirror ftp://ftp.polarhome.com/pub/cvs/SOURCE/
Description : Add Lua support
Options: : YES - Build with support
Uncommented - build without support.
Default : Uncommented
Default : Uncommented
Parameter name : VIM_MZSCHEME
Description : Add support for FEATURE_MZSCHEM
@@ -178,10 +178,10 @@ from CVS mirror ftp://ftp.polarhome.com/pub/cvs/SOURCE/
Default : Uncommented
Parameter name : VIM_ICONV
Description : Build with using the ICONV library
Description : Build with using the ICONV library
Options: : YES - Build with support
Uncommented - build without support.
Default : Uncommented
Default : Uncommented
Parameter name : MODIFIED_BY
Description : Add note if you modified the code
@@ -326,10 +326,10 @@ perl_env :
To build VIM with GTK you have to install GTK on your OpenVMS.
So far it works just on Alpha and IA64. More information at:
http://www.openvms.compaq.com/openvms/products/ips/gtk.html
defunct link: openvms.compaq.com/openvms/products/ips/gtk.html
You also need the OpenVMS Porting Library:
http://www.openvms.compaq.com/openvms/products/ips/porting.html
defunct link: openvms.compaq.com/openvms/products/ips/porting.html
Source code for GTK and porting library that is used to build
VMS executables at polarhome.com are at
@@ -365,7 +365,7 @@ perl_env :
7.3 PERL
You have to install OpenVMS perl package from:
http://www.openvms.compaq.com/openvms/products/ips/apache/csws_perl_relnotes.html or build on your own from sources downloaded from http://www.perl.org
defunct link: openvms.compaq.com/openvms/products/ips/apache/csws_perl_relnotes.html or build on your own from sources downloaded from http://www.perl.org
You need defined PERLSHR logical that points to PERL shareable image
(or you can just copy over to SYS$LIBRARY:)

View File

@@ -113,6 +113,7 @@ SRC += \
findfile.c \
float.c \
fold.c \
fuzzy.c \
getchar.c \
gc.c \
hardcopy.c \

Some files were not shown because too many files have changed in this diff Show More