Commit Graph

298 Commits

Author SHA1 Message Date
Christian Brabandt
22c62e2691 runtime(syntax-tests): regenerate dump files (after v9.2.0110)
related: #19541

Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-05 20:01:10 +00:00
Christian Brabandt
f7a568ebeb runtime(syntax-tests): regenerate dump files (after v9.2.0093)
closes: #19553

Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-03 18:28:32 +00:00
Christian Brabandt
9166f1c09b translation: regenerate po/vim.pot after v9.2.0093
also update one failing syntax test

related: #19493

Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-02 19:58:22 +00:00
Eisuke Kawashima
6ce357a586 runtime(po): Update syntax script
- support `#=`
https://www.gnu.org/software/gettext/manual/html_node/PO-File-Format-Evolution.html
- add sticky flag support:
https://www.gnu.org/software/gettext/manual/html_node/Sticky-flags.html

closes: #19548

Signed-off-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-02 18:40:31 +00:00
Doug Kearns
b901fa9a6a runtime(vim): Update base syntax, improve :syntax group list arg matching
Attempt to match all variations of group name and comma separator across
continuation lines.

Fixes issues:
- #18491 (Two ")"s are incorrectly colored 'vimOperError' in
  syntax/mail.vim), reported by @lkintact
- #19366 (highlight error for contains elements in a new line), reported
  by Maxim Kim

fixes: #18491
fixes: #19366

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-28 17:20:42 +00:00
Aliaksei Budavei
dbd924f6a0 runtime(syntax-tests): Fail when executable syntax tests are found
The input files with syntax test cases are never compiled or
interpreted on behalf of test runners, just read, and their
parts are rendered in accordance with syntax definitions for
associated languages, to be compared with previously vetted
renderings.  Whether their arbitrary contents will be valid
programs, benign programs, etc., is left for test authors to
decide and verify in their own environments.  As executable
and non-executable files equally qualify for testing and yet
executability is never exercised, and since maintaining
executable files turns out to be a short-lived exception
than common practice, let us persist in keeping syntax files
non-executable and enforce it with a CI check.

closes: #19433

Co-authored-by: Christian Brabandt <cb@256bit.org>
Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-18 18:35:26 +00:00
Peter Kenny
3794d9b33c runtime(vim): Error codes should not be highlighed with vim9CommentTitle
closes: #19390

Signed-off-by: Peter Kenny <github.com@k1w1.cyou>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-15 15:59:36 +00:00
Bozhidar Batsov
c68e64dac3 runtime(sh): fix spurious nextgroup=shComment on shEscape
Remove `nextgroup=shComment` from the `shEscape` syntax pattern.
This was causing `#` characters after escape sequences inside
double-quoted strings to be misinterpreted as comments, breaking
highlighting for the rest of the file.

Add a test case for escaped characters followed by # in double quotes.

fixes:  #19053
closes: #19414

Signed-off-by: Bozhidar Batsov <bozhidar@batsov.dev>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-15 14:53:55 +00:00
Johnothan King
56033b9df3 runtime(sh): Fix some ksh-specific deficiencies in syntax script
- Amend syntax highlighting to allow for ksh93 discipline function names
  (e.g. 'foo.get()') and mksh's odd function naming idiosyncrasies
  (shNamespaceOne was introduced to enforce stricter naming rules for
  ksh93 namespaces).
- Remove 'bind' from ksh93 syntax (such a builtin has never been
  implemented in ksh93).
- 'xgrep' is only available in ksh93v- as an alternative way to
  invoke the builtin 'grep -X', so reflect that in the syntax
  highlighting.
- Forbid bash-style 'function name() {' syntax when highlighting
  ksh88 and ksh93 scripts.
- Fix bug causing ' ()' to be incorrectly validated in mksh scripts.
- Add the many ksh93/ksh2020 .sh.* variables to the list of special
  variables.
- Amend iskeyword to allow '.' so that '.sh.tilde.get' and such are
  valid function names/variable names. (For mksh functions starting
  with odd characters like '%' and '@' this would probably have too
  many bad side effects, so I've omitted such a change for that shell.)
- Add new syntax tests and regenerate syntax dump files

closes: #19383

Signed-off-by: Johnothan King <johnothanking@protonmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-12 18:18:44 +01:00
Aliaksei Budavei
36f4498710 runtime(java): Allow for org.TopLevelType<T>.NestedType return types
closes: #19349

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-10 22:48:57 +01:00
Doug Kearns
b422a33ac2 runtime(gdb): Update syntax and ftplugin
- Change syntax file maintainer.
- Add Guile and Python command highlighting.
- Update command list to version 12.
- Add foldable regions for the commands 'define', 'if' and 'while'
  multiline commands.
- Support documented partial command names.
- Add matchit, browsefilter, and comment formatting support.
- Support embedded C in compiler {code|print} commands.
- Add largely complete settings highlighting and folding.
- Add syntax tests (incomplete).

Thanks to Claudio Fleiner for many years of maintenance.

closes: #10649

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-08 20:51:47 +00:00
Aliaksei Budavei
f0b8b2c32a Revert "CI: Manage multibyte characters in syntax tests"
This reverts commit 0fde6aebdd.

With "v9.1.2134" applied, arbitrary multibyte characters are
not replaced with spurious U+FFFD characters (typically when
the host system is under load); U+FFFD characters that are
intentionally written in an input file continue to remain
present for later output and comparison.  The workaround of
"v9.1.1592~3" is no longer necessary.

Also prefer "page_nr" to "nr" in syntax/testdir/runtest.vim

closes: #19348

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-07 15:48:33 +00:00
Doug Kearns
2e4c98b6f3 runtime(vim): Update base syntax, match Vim9 :unlet command
closes: #19290

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-01 15:03:46 +00:00
MuntasirSZN
b817536b8f runtime(tera): update syntax files to support many more tera code
This includes macros, keys etc. which were not highlighted before.

closes: #19276

Signed-off-by: Muntasir Mahmud <muntasir.joypurhat@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-01-29 19:03:42 +00:00
Rob B
632fd8bb96 runtime(python): Highlight built-in constants in Python
Also add syntax tests for those newly constants.

closes: #17788
closes: #18922

Signed-off-by: Rob B <github@0x7e.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-01-26 18:52:04 +00:00
Kiyoon Kim
e5f61842b5 patch 9.1.2110: filetype: skhd files are not recognized
Problem:  filetype: skhd files are not recognized
Solution: Detect .skhdrc and skhdrc as skhd filetype,
          include a syntax and filetype plugin, add syntax tests
          (Kiyoon Kim)

Add syntax highlighting for skhd (simple hotkey daemon for macOS)
configuration files. Includes filetype detection for skhdrc and
.skhdrc files.

Reference:
- https://github.com/asmvik/skhd

closes: #19235

Signed-off-by: Kiyoon Kim <kiyoon@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-01-25 17:39:05 +00:00
Doug Kearns
95bb4ef7d1 runtime(csh,tcsh): Update syntax files
- Adopt csh syntax file.
- Highlight tcsh strings with the String highlight group.
- Fix 'set' command highlighting with trailing comments. See
  https://github.com/vim/vim/pull/19172#issuecomment-3751574224
- Fix whitespace style in MAINTAINERS file

closes: #19191

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-01-21 20:23:06 +00:00
Christian Brabandt
8211f556df runtime(syntax-tests): tests: sh_10 fails on MacOS runners
Problem:  tests: sh_10 fails on MacOS runners (after 16c2279062)
          because dash does not exist on MacOS
Solution: Force the test to use bash shebang line

Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-01-16 18:56:28 +00:00
Doug Kearns
da44ef6a99 runtime(c,cpp): Add reference links to noreturn tests
Add links to the example page at cppreference.com used for these tests
as per their licensing requirements.

closes: #19192

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-01-16 13:27:24 +00:00
Christian Brabandt
16c2279062 runtime(sh): highlight single-dash short options containing digits
fixes: #19082

Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-01-15 21:01:43 +00:00
Wu Yongwei
5529b750a7 runtime(c): Do not highlight noreturn in C++ code
closes: #19170

Signed-off-by: Wu Yongwei <wuyongwei@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-01-15 20:37:14 +00:00
Doug Kearns
c4dc4d8f1e runtime(syntax-tests): Add :help command termination tests
Problem:  The :help command lacks command termination tests.
Solution: Add tests for command termination at "|", "^M" and "^J".

- Check special handling of "|" in arguments.
- Update the Vim syntax file.

closes: #18932

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-01-11 18:25:38 +00:00
Aliaksei Budavei
5516fc534e runtime(syntax-tests): Adapt "runtime/syntax/testdir/vimcmd" for "src/testdir/util/shared.vim"
Problem:  When "util/shared.vim" is sourced and GetVimCommand is called on
          behalf of the syntax test runner, the "vimcmd" file will be searched
          in the current working directory, i.e. "src/testdir", whereas the
          desired file is in "runtime/syntax/testdir".
Solution: Temporarily copy "vimcmd" between test directories.

closes: #19127

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-01-09 17:19:18 +00:00
Dominique Pelle
335aecd98f runtime(cpp): Fix c++ float and integer literal syntax highlighting
closes: #8939

Co-authored-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
Signed-off-by: Dominique Pelle <dominique.pelle@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-01-08 21:24:23 +00:00
Beleswar Prasad Padhi
519dc391d8 runtime(make): Makefile highlighting breaks with ')' in string
Problem:  Makefile syntax highlighting incorrectly ends function calls
          when encountering ')' inside double or single quoted strings,
          causing incorrect highlighting for the remainder of the line.
Solution: Add makeDString and makeSString to the contains list for
          makeIdent regions. This allows strings to be recognized inside
          variable references and function calls.

fixes:  #18687
closes: #18818

Signed-off-by: Beleswar Prasad Padhi <beleswarprasad@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-23 21:32:10 +00:00
Yiyang Wu
aded55463a runtime(make): Move target greedy match after $() to avoid region matching overflow
Partially revert 2a33b499a3, where all
syn match makeIdent are moved before syn region makeIdent to match $()
(reason: see https://github.com/vim/vim/pull/18403#issuecomment-3341161566)

However this results in https://github.com/vim/vim/issues/18890 ,
because lines like
`$(a) =`
will first start a region search beginning with `$(`
but then the whole target including `)` will be matched by
`syn match makeIdent "^ *[^:#= \t]*\s*="me=e-1`
which leaves the region search for the never-found `)` and let the
region matching overflow.

Same for

`$(a) ::`
`$(a) +=`

The solution is to move those greedy target match back, so they take
priority and prevents region match from happening.

fixes:  #18890
closes: #18938

Signed-off-by: Yiyang Wu <xgreenlandforwyy@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-23 21:25:04 +00:00
Doug Kearns
927ad166a4 runtime(vim): Update base syntax, match full :help command
closes: #18833

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-09 13:40:59 +01:00
Rob B
8d8c9074c3 runtime(python): Highlight t-strings
- Highlight t-strings
- Update comments
- Add tests

closes: #18679

Signed-off-by: Rob B <github@0x7e.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-03 20:25:41 +00:00
Doug Kearns
85fc83f849 runtime(sml): Update syntax, improve special constant matching
- Match \dE\d real literal form
- Match all string escape sequences
- Add related tests

closes: #18723

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-03 20:21:49 +00:00
Doug Kearns
a4c43a6cf5 runtime(vim): Update base syntax, match full :language command
closes: #18808

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-11-30 15:44:36 +00:00
Jon Parise
b087c5452b patch 9.1.1936: filetype: Erlang lexical files are not recognized
Problem:  filetype: Erlang lexical files are not recognized
Solution: Detect *.xrl files as leex filetype, include syntax and
          filetype plugins (Jon Parise).

leex is the lexical analyzer generator for Erlang. Its input file format
follows a section-based structure and uses the `.xrl` file extension.

This initial work includes file detection, an ftplugin (which inherits
the Erlang configuration), and a syntax definition.

Reference:
-  https://www.erlang.org/doc/apps/parsetools/leex.html

related: #18819
closes: #18832

Signed-off-by: Jon Parise <jon@indelible.org>
Signed-off-by: Csaba Hoch <csaba.hoch@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-11-30 14:45:48 +00:00
Doug Kearns
ea14bb7df9 runtime(haskell): Add syntax test
Add a test for issue #18776 (allow spaces in backticked operators).

closes: #18783

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-11-21 18:22:37 +00:00
Doug Kearns
8da886269a runtime(vim): Update base syntax, match full :history command
closes: #18784

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-11-21 18:18:51 +00:00
Doug Kearns
ea86e53c2b runtime(vim): Update base syntax, match :debug and :break* commands
Match full :debug, :breakadd, :breakdel and :breaklist commands.

closes: #18748

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-11-20 20:57:15 +00:00
Doug Kearns
f46616f0c4 runtime(vim): Update base syntax and generator, match :cd commands
Match :cd commands explicitly.

fixes: #17964
closes: #18736

Reported by Maxim Kim.

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-11-15 10:17:17 +00:00
Doug Kearns
8644c3b7e6 runtime(help): Update syntax, match tables at :help :digraph-table
Match the digraph tables to avoid false positive matches for helpSpecial
etc.  No syntax groups should match in these tables.

closes: #18738

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-11-13 20:59:44 +00:00
Doug Kearns
4f19d2768a runtime(vim): Update base syntax, match :prompt command args
closes: #18732

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-11-12 19:17:11 +00:00
Neil Lambert
f85951fee0 runtime(css): improve cssBoxProp matches
closes: #18717

Signed-off-by: Neil Lambert <nlambert@pm.me>
Signed-off-by: Jay Sitter <jsit@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-11-11 18:01:31 +00:00
Doug Kearns
fe24972139 runtime(vim): Update base syntax, refine object constructor matching
Match "object" and "<" ... ">" separately with dedicated syntax groups
to allow for highlighting distinct from that generally used for types.

closes: #18721

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-11-11 16:37:09 +00:00
Doug Kearns
e1e347475e runtime(vim): Update base syntax, fix :augroup error matching
Only terminate the :augroup END argument at whitespace, comments and
trailing bars.

closes: #18711

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-11-10 19:50:57 +00:00
Doug Kearns
8869800f70 runtime(vim): Update base syntax, match :*do command arg
Match the Ex command arg to all :*do commands.

closes: #18700

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-11-09 18:59:52 +00:00
Doug Kearns
59f0ea5b3e runtime(vim): Update base syntax, match Vim9 object type constructor
fixes: #18677.
closes: #18691

Reported by Aliaksei Budavei.

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-11-08 17:23:47 +00:00
Doug Kearns
433d2ab206 runtime(vim): Update base syntax, match Vim9 lambda arg to :defer
Support added in commit 21ef3c6e59.

See: #18643
closes: #18645

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-28 20:36:04 +00:00
Doug Kearns
c8eeda9b15 runtime(doc): Improve header formatting
- Normalise header formatting and highlight all bylines.
- Remove broken email address from if_sniff.txt.

closes: #18601

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-26 19:29:28 +00:00
Doug Kearns
842c7788a5 runtime(vim): Update base syntax, improve :@ highlighting
- Highlight :@ as a normal Ex command rather than something special.
- Fix erroneous matching of the Ex command as a register variable.

closes: #18624

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-26 13:50:05 +00:00
Doug Kearns
418ff5185e runtime(doc): Improve highlighting of the +feature-list table
Fix false positives for headings and command specification counts.

closes: #18603

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-25 14:15:15 +00:00
Doug Kearns
7e9ccdd3f2 runtime(vim): Update syntax, add missing commands to generator exclusion list
closes: #18548

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-12 15:15:00 +00:00
Doug Kearns
7dba04f15c runtime(doc,vim): Update base syntax, match full :syntime command
- Use the optional tail command-name spec at :help :syntime.
- Match full :syntime command and highlight args.

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-09 19:39:57 +00:00
Aliaksei Budavei
143686b3c4 runtime(java): Fold adjacent "import" declarations
Also, distinguish (by abbreviating their names) and manage
foldable kinds of syntax items: blocks of code ("b"), plain
comments ("c"), Javadoc comments ("d"), adjacent "import"
declarations ("i").  Fold all qualifying items by default;
otherwise, do not fold items of explicitly delisted kinds.
For example,
------------------------------------------------------------
	let g:java_ignore_folding = "bcdi"
------------------------------------------------------------

Resolves zzzyxwvut/java-vim#12.

closes: #18492

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-08 16:45:28 +00:00
Aliaksei Budavei
bfcf638c73 runtime(java): Make changes for JDK 25
- Add to the list of java.lang classes three new types: IO,
  ScopedValue, and ScopedValue.Carrier.
- Add to the list of java.lang interfaces a new type:
  ScopedValue.CallableOp.
- "Demote" RuntimePermission from the list of java.lang
  class types to javaLangDeprecated.
- Reintroduce supported syntax-preview-feature numbers 455
  and 488 as _a new number_ 507.

References:
https://bugs.openjdk.org/browse/JDK-8353641
https://openjdk.org/jeps/506 (Scoped Values)
https://openjdk.org/jeps/507 (Primitive Types in Patterns etc.)
https://openjdk.org/jeps/512 (Compact Source Files etc.)

closes: #18479

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-04 10:09:58 +00:00