285 Commits

Author SHA1 Message Date
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
Doug Kearns
0977c8b03e runtime(vim): Update base syntax, contain user command replacement text
Ensure that :command replacement text terminates at the end of the
logical line.

Add :command to the generator exclusion list.

fixes: #18414 (@Dougaak)
fixes: #18448 (Maxim Kim)
closes: #18415

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-01 21:03:22 +00:00
Doug Kearns
21d40d2d41 runtime(help): Update syntax, match legacy header at :help vim9-mix
closes: #18458

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-09-30 20:12:55 +00:00
Eisuke Kawashima
05e44e978f runtime(tex): add amsmath support to tex syntax script
Problem:  tex syntax file does not support some of the math equation
          environments provided by amsmath.sty, therefore well-formed
          snippet is highlighted as "texBadMath"
Solution: add the environments

closes: #18433

Signed-off-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-09-29 19:43:51 +00:00
Doug Kearns
f4a6acd86e runtime(vim): Update base syntax, allow Vim9 :echo tail comments
- Match comments after Vim9 :echo and :execute.
- Match comments after Vim9 and legacy :eval.

closes: #18420

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-09-28 17:56:01 +00:00
Aliaksei Budavei
91ac18cb03 runtime(java): Recognise _module_ import declarations
After two preview proposals (JEPs 476 and 494), _module_
import declarations are now a part of the language (JDK 25).

Reference:
https://openjdk.org/jeps/511

closes: #18424

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-09-28 17:40:29 +00:00
Doug Kearns
7bb733f6bf runtime(vim): Update base syntax, match null_tuple literal
closes: #18404

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-09-26 16:28:00 +00:00
Jon Parise
900c747da3 runtime(python): fix 'type' syntax highlighting
The previous patterns unintentionally highlighted words like 'typename'.

addresses: https://github.com/vim/vim/pull/18090#issuecomment-3333025523
closes: #18394

Signed-off-by: Jon Parise <jon@indelible.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-09-25 19:08:14 +00:00
Bjoern Foersterling
11bde1f169 runtime(sh): refactored sh.vim syntax script
- unified bashStatement, kshStatement and shStatement as much as
  possible
- separated builtin commands from external programs
- cleaned up kornshell flavor logic
- fixed alias syntax highlighting
- added test for bash alias syntax highlighting
- removed daemon keyword

closes: #18355

Signed-off-by: Bjoern Foersterling <bjoern.foersterling@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-09-23 19:48:09 +00:00
Doug Kearns
da5b6007fb runtime(vim): Update base syntax, match :terminal command
Match the full :terminal command syntax.

closes: #18367

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-09-23 18:31:34 +00:00
Doug Kearns
b1446dfd23 runtime(vim): Update base syntax, match :wincmd
Match the full :wincmd command syntax.

Allow for oneline assignment to Vim9 variables named winc[md].

Fixes #18368.

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-09-23 18:24:53 +00:00
Doug Kearns
57d243e27d runtime(vim): Update base syntax, fix indented Vim9 :redir highlighting
Include post operator whitespace in the Vim9 variable assignment
lookahead so that "redir =>" doesn't match as an assignment.

fixes: #18319
closes: #18323

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-09-18 19:28:18 +00:00
Jon Parise
817e4d3ee6 patch 9.1.1764: filetype: CODEOWNERS file not recognized
Problem:  filetype: CODEOWNERS file not recognized
Solution: Detect CODEOWNERS file as codeowners filetype, include a
          syntax and filetype plugin (Jon Parise).

CODEOWNERS files define code ownership rules for GitHub-hosted (and
other) repositories. The syntax is similar to 'gitignore' files but
differs in enough ways to warrant its own filetype.

References:
- https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners

closes: #18299

Signed-off-by: Jon Parise <jon@indelible.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-09-15 19:35:47 +00:00
Doug Kearns
15070eee2f runtime(python): Update syntax, fix pythonEllipsis pattern
fixes: #18263
closes: #18264

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-09-11 13:54:51 -04:00