1642 Commits
Author SHA1 Message Date
Aliaksei Budavei 92d4e9beb1 runtime(syntax-tests): Clarify the naming scheme for test files
Similar to "sh.vim", there are a handful of other filetypes
whose names (assigned to "b:current_syntax") are different
from the base names of their syntax plugins, e.g. "python2"
and "elsa".  Two scripts, "testdir/tools/maketestdeps" and
"testdir/runtest.vim", currently assume that the base name
of a syntax plugin can be derived from the name of a syntax
test.  Prescribe using the base name of the syntax plugin,
instead of its filetype, for a test filename prefix so that
existing files are listed in Make targets ("maketestdeps")
and name correspondence is kept between the syntax plugin
and optional test settings for it ("runtest.vim").  Add a CI
check for name verification.

closes: #21414

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-10-21 15:10:49 +00:00
Aliaksei Budavei 0b9075e785 runtime(syntax-tests): Follow the convention in naming test-case files
Test-case filenames should always begin with the associated
filetype name, properly delimited from the remaining part of
the filename.  As of v9.2.0636~1, a convenience function
"DeferRenamingTestFileTo" is provided in "VIM_TEST_SETUP"
aware contexts to temporarily give the file under test
another, arbitrary name before executing ":syntax on".

closes: #21352

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-10-19 15:43:51 +00:00
Christian Brabandt 7670338d8b patch 9.2.1178: [security]: code injection via rmd syntax pattern
Problem:  [security]: code injection via rmd syntax pattern for fenced
          languages (ylerni7-ant)
Solution: Keep only the leading word characters of the language name
          in the syntax script.

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-x2w5-pj55-7hpc

Assisted-by: Claude Opus
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-10-12 20:31:49 +00:00
Doug KearnsandJanis Papanagnou b114ec4791 runtime(algol68): Update syntax
- Remove duplicate STRUCT definition.
- Add Genie NEW, alias for HEAP.

closes: #21435

Co-authored-by: Janis Papanagnou <janis_papanagnou@hotmail.com>
Signed-off-by: Janis Papanagnou <janis_papanagnou@hotmail.com>
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-10-06 17:41:14 +00:00
Doug Kearns cff1d9e4e7 runtime(typescript): Update syntax, fix pattern memory usage with re=1
- Fix typescriptArrowFuncDef pattern memory errors when regexpegine=1.
- Add a test.

fixes:   #17247
related: #21400
closes:  #21423

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-10-06 17:35:58 +00:00
Foxe Chen 86cfe56b30 patch 9.2.1161: the image feature can be improved
Problem:  the image feature can be improved
Solution: Refactor the image feature, make use of the pixman library if
          possible, add image_info(), image_add() and image_discard()
          functions and the 'imageprotocol' option (Foxe Chen)

closes: #21234

Assisted-by: Claude
Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-30 21:57:39 +00:00
Hirohito Higashi 89c0f36163 patch 9.2.1160: no way to get the definition of item from Vim script
Problem:  There is no way to get the definition of a builtin or a user
          defined function, of an Ex command, of an option or of a v:
          variable from Vim script.  A language server has to parse the
          help text or the output of ":function" and ":command" for it.
Solution: Add getinfo({kind}, {name} [, {opts}]), which returns a Dict
          with the definition of {name}: a function, an Ex command, an
          option or a v: variable.  Keep the names of the arguments of
          the builtin functions in their table and report them in
          "args" (Hirohito Higashi).

closes: #21293

Assisted-by: Claude
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-30 20:57:50 +00:00
S0AndS0 43725acce6 runtime(css): Add additional CSS pseudo-classes and functions
Problem:  Other than `state()` these are widely supported CSS features
Solution: Add :host, :host-context(), slotted(), and state() CSS
          pseudo-classes and functions (S0AndS0).

Reference:
- https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Selectors/:host
- https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Selectors/:host_function
- https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Selectors/::slotted
- https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Selectors/:state

TLDR: `host` and `host-context()` are useful for shadowDom stuff,
`::slotted()` enables targeting elements passed/injected into a
`<template>` and `state()` enables targeting custom identifiers.

For example, currently I'm (ab)using `:host` as a drop-in replacement
for `:root` when defining variables that are intended to be shared
across custom/template elements;

- `./assets/css/host.css`
   ```css
   :host {
     --default__margin-block: 0.25rem;
   }
   ```
- `./custom-elements/example.html`
   ```html
   <template>
     <link rel="stylesheet" href="/assets/css/host.css">

     <style>
       header {
         margin-block-start: calc(var(--default__margin-block) * 2);
       }
     </style>

     <header></header>
   </template>
   ```

closes: #21404

Signed-off-by: S0AndS0 <strangerthanbland@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-30 19:46:40 +00:00
Christian BrabandtandIvan Krasilnikov 4505de4391 runtime(rmd): fix typo in code block delimiter pattern, add test
Test file taken from
https://github.com/rstudio/rmarkdown/blob/main/inst/rmarkdown/templates/github_document/skeleton/skeleton.Rmd

fixes: #21328

Co-authored-by: Ivan Krasilnikov <ivank@ivank.me>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-29 18:50:48 +00:00
Miura YasuyukiandClaude Opus 5.5 bb1d7bc637 runtime(typescript): fix exponential backtracking in typescriptArrowFuncDef
Problem:  The paren-based typescriptArrowFuncDef patterns contain a nested
          quantifier, \%(\_[^()]\+\|...\)*, which backtracks exponentially
          with the old regexp engine when the match fails.
Solution: Drop the inner \+; the matched language is unchanged.

closes: #21400
related: HerringtonDarkholme/yats.vim#306

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Miura Yasuyuki <kokosabu@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-28 21:33:29 +00:00
Eisuke Kawashima 10d1ef03fe runtime(sshknownhosts): update syntax script and add syntax test
closes: #21387

Signed-off-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-28 18:46:16 +00:00
Eisuke Kawashima ca0610c14f runtime(sshpublickey): update syntax script and add syntax test
related: #21387

Signed-off-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-28 18:46:12 +00:00
Eisuke Kawashima ce07f0187a runtime(sshdconfig): update syntax script
related: #21387

Signed-off-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-28 18:28:43 +00:00
Eisuke Kawashima 607da33212 runtime(sshconfig): update syntax script and add syntax test
related: #21387

Signed-off-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-28 18:28:42 +00:00
Eisuke Kawashima a3f2359af7 runtime(sshauthorizedkeys): update syntax and add syntax test
related: #21387

Signed-off-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-28 18:28:41 +00:00
Eisuke Kawashima f4eeed11a5 runtime(sshallowedsigners): update syntax script
related: #21387

Signed-off-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-28 18:28:29 +00:00
Rochish Manda 10b37abb11 runtime(sshdconfig): Fix a letter case typo in syntax script
closes: #21390

Signed-off-by: Rochish Manda <28740792+Rochish-Manda@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-28 17:46:21 +00:00
Rochish Manda 800e01d94b runtime(sshconfig): Fix a letter case typo in syntax script
related: #21390

Signed-off-by: Rochish Manda <28740792+Rochish-Manda@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-28 17:46:15 +00:00
Rochish Manda da4fa09073 runtime(sshpublickey): Add a new SSH key type
closes: #21376

Signed-off-by: Rochish Manda <28740792+Rochish-Manda@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-27 15:24:06 +00:00
Rochish Manda e33ce20379 runtime(sshdconfig): Add deprecated syntax highlighting
Added deprecated keywords and matches for ciphers, MACs, host key
algorithms, and KEX algorithms. Updated syntax highlighting to reflect
these changes.

related: #21376

Signed-off-by: Rochish Manda <28740792+Rochish-Manda@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-27 15:19:00 +00:00
Rochish Manda 699a620722 runtime(sshconfig): Add deprecated syntax highlighting
Added deprecated keywords for ciphers, MACs, and host key algorithms in
sshconfig syntax highlighting.

related: #21376

Signed-off-by: Rochish Manda <28740792+Rochish-Manda@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-27 15:16:33 +00:00
Doug Kearns 7c16e2127f runtime(vim): Update base syntax, terminate :g/:s patterns at EOL
- Terminate :global patterns, and :substitute patterns and replacement
  text, at EOL.  The closing delimiter is optional.
- Clarify the behaviour of optional pattern terminators in the :global
  and :substitute help sections.

related: #21132
closes:  #21367

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-24 20:43:54 +00:00
Anakin Childerhose 7c049d5ce1 patch 9.2.1128: filetype: icalendar files are not recognized
Problem:  filetype: icalendar files are not recognized
Solution: Detect *.ics files as icalendar filetype, include
          syntax and filetype plugins (Anakin Childerhose).

Reference:
https://datatracker.ietf.org/doc/html/rfc5545

closes: #21356

Assisted-By: Claude Opus 5
Signed-off-by: Anakin Childerhose <anakin@childerhose.ca>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-24 19:12:16 +00:00
Aliaksei Budavei b6419b6fa5 runtime(syntax-tests): Apply "word" rather than "prefix" when filtering filetypes
Whenever two or more filetype names share a common prefix,
e.g. "java" and "javascript", passing the shortest name
argument to Make, e.g. "make java test", will trigger the
running of _all prefix matching_ test suites.  To fix this
blunder and to only have _requested_ test suites run, always
append the leftmost conventional delimiters "[._]", e.g.
"java[.]java", "java[_]numbers.java", to each filetype name
when automatically assembling a regexp pattern for the
filename filter.  Furthermore, promote the Vim9 (pseudo-)
filetype, e.g. "make vim9 test", "make vim vim9 test", etc.

As before, VIM_SYNTAX_TEST_FILTER is still within reach for
arbitrary test case grouping.

closes: #21351

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-24 18:55:50 +00:00
Aliaksei Budavei 4d0ad5cb9b runtime(java): Make changes for JDK 27
Reintroduce supported syntax-preview-feature numbers 455,
488, 507, and 530 as _a new number_ 532.

Reference:
https://openjdk.org/jeps/532 (Primitive Types in Patterns etc.)

closes: #21341

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-24 18:44:52 +00:00
Doug Kearns 6fd4f6cda1 runtime(cpp): Update syntax, cleanup
- Prefer non-capturing groups in patterns - idiomatic.
- Remove changelog entries - there is no maintainer to inform.
- Normalise whitespace use.

closes: #21348

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-21 19:48:33 +00:00
Eisuke Kawashima f1a677c4fb runtime(c): support 0O/0o octal prefix (C29)
closes: #21327

Signed-off-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-21 19:45:23 +00:00
Rochish Manda cfab29448f runtime(sshconfig): Add UseKeychain keyword to sshconfig syntax
This keyword is macOS specific.

closes: #21339

Signed-off-by: Rochish Manda <28740792+Rochish-Manda@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-17 21:28:57 +00:00
Chris Aumann 2ff376e742 runtime(nginx): Update nginx runtime from upstream (regex performance)
closes: #21332

Signed-off-by: Chris Aumann <me@chr4.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-17 19:21:25 +00:00
Amelia Clarke 0620b4ac8d runtime(nasm): move options to separate ftplugin
closes: #21319

Signed-off-by: Amelia Clarke <selene@perilune.dev>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-16 18:09:10 +00:00
Doug Kearns 2daae1553b runtime(c,cpp): Update syntax, fix number patterns
Fix potentially catastrophic backtracking in number patterns when using
regexpengine=1.

closes: #21324

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-16 17:52:06 +00:00
Christian Brabandt c20b9f7f12 runtime(sh): touch does not end at curly block
fixes:  #21266
closes: #21314

Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-15 17:50:18 +00:00
Julien Voisin 5acb552290 runtime(nginx): syntax highlighting is slow on large configs
Problem:  Highlighting nginx.conf is slow; the ngxSSLCipherInsecure group
          alone accounts for ~39% of the total syntax parse time because it
          is spread over ~34 separate non-contained :syn match rules that are
          each scanned at every position of every line.
Solution: Merge the ~28 rules sharing the identical '[^!]\zs' prefix into a
          single alternation match, keeping only the six rules that need a
          different preceding-character constraint separate. Highlighting is
          unchanged; total syntax parse time drops by ~42% on a large config.

Update the Date header to Vims preferred format.

closes: #21195

Signed-off-by: Julien Voisin <julien.voisin@dustri.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-14 18:54:24 +00:00
Eisuke Kawashima 8e2e8e7490 runtime(cpp): add C++23 suffix z (size_t)
closes: #21281

Signed-off-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-14 18:09:30 +00:00
Doug Kearns cb5ebfb39a runtime(html): Update syntax, improve syncing
fixes:  #10452
closes: #21287

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-12 18:57:00 +00:00
Doug Kearns 2dd65358e1 runtime(vim): Update base syntax, match syn-sync skip patterns
Fix matching of the pattern arg in a :syn-sync-match skip command.

closes: #21289

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-12 18:53:15 +00:00
Doug Kearns af6f220da5 runtime(vim): Update base syntax, improve autoload prefix matching
- Tighten autoload prefix matching,
  e.g., foo#bar#baz
- Disallow erroneously concatenated map special arguments,
  e.g., :map <bufferexpr> lhs rhs

closes: #21285

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-12 16:06:49 +00:00
Christoffer Aasted ad289eece7 patch 9.2.1072: runtime(synload): recursion error when setting ft=syntax
Problem:  recursion error when setting ft=syntax
Solution: Skip the special syntax filetype
          (Christoffer Aasted)

This:
  vim -Nu NONE \
    +'set filetype=syntax' \
    +'syntax on'
yields

E127: Cannot redefine function <SNR>2_SynSet: It is in use

Setting filetype=syntax will try to reload synload.vim while SynSet() is
still executing which causes this error.

closes: #21271

Signed-off-by: Christoffer Aasted <dezzadk@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-11 20:44:14 +00:00
Maxim Kim 36d01cff54 runtime(typst): do not highlight code blocks and raw text
Similar to markdown syntax, by default do not highlight raw and code blocks.

Syntax highlighting groups are still in place so it is possible for
users to add their own if needed.

- typstMarkupRawInline
- typstMarkupRawBlock

closes: #21260

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-10 18:57:49 +00:00
231tr0n cbcb209221 runtime(python): missing Python syntax keywords
Problem:  Missing newer Python keywords and builtins in syntax highlighting.
Solution: Add aiter, anext, BaseExceptionGroup, ExceptionGroup,
          PythonFinalizationError, and EncodingWarning to the Python
          syntax file (231tr0n).

closes: #21254

Signed-off-by: 231tr0n <zeltronsrikar@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-09 22:00:27 +00:00
231tr0nandopencode 5867d1f8ee runtime(svelte): include svelte syntax script and syntax tests
closes: #21200

Co-authored-by: opencode <noreply@opencode.ai>
Signed-off-by: 231tr0n <zeltronsrikar@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-08 18:04:16 +00:00
Doug Kearns d53f436eaa runtime(gdb): Update syntax for GDB 17
closes: #21219

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-06 18:53:42 +00:00
Qiming zhao 22b72dca7e runtime(spup): fix E92 in syntax script
Problem:  Spup syntax fails for an out-of-range comment mode.
Solution: Add the missing let to the fallback assignment (Qiming zhao).

Setting oneline_comments above 3 raises E492 while loading the syntax
script. Use a valid legacy Vim script assignment to restore the default
value of 2.

Validated with oneline_comments set to 1, 2, 3, 4 and 99, and with the
variable unset. The original script fails with E492 for a value of 4.
The corrected script loads and applies the expected comment mode.

closes: #21227

Supported by AI.

Signed-off-by: Qiming zhao <chemzqm@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-06 18:45:03 +00:00
Julien Voisin e9c5e56081 runtime(python): improve performance of number and ellipsis matching
Problem:  The floating-point `.d` number match and the two ellipsis
          matches are slow: each begins with a look-behind, which cannot
          be reduced to a fixed first character, so the automatic regexp
          engine selects the slower NFA backend for them.
Solution: Force the backtracking engine with \%#=1 on those three
          patterns; it evaluates the look-behind far more efficiently.
          Highlighting is unchanged.

Measured with :syntime over a 40000 line corpus: the three affected
rules drop from ~0.13s to ~0.008s (about -93%), which cuts the total
syntax parse cost by ~10% (1.85s to 1.65s).

closes: #21194

Signed-off-by: Julien Voisin <julien.voisin@dustri.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-09-01 18:54:45 +00:00
Hirohito HigashiandMaxim Kim 5c9c5a43c1 runtime(c): syntax depends on the 'iskeyword' option
Problem:  C keywords are matched using the characters from 'iskeyword',
          so changing that option highlights part of an identifier as a
          keyword and leaves keywords containing an underscore
          unhighlighted.
Solution: Set the keyword characters with ":syn iskeyword".

fixes:  #21173
closes: #21176

Co-Authored-By: Maxim Kim <habamax@gmail.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-08-30 21:25:07 +00:00
Julien Voisin 560dfadac8 runtime(yaml): syntax highlighting of numbers is slow
Problem:  YAML syntax highlighting is slow; the yamlInteger and yamlFloat
          rules alone account for over half of the parsing time.
Solution: The number, null and timestamp scalar patterns begin with a
          lookbehind, which stops the regexp engine from using a
          first-character search, so the automatic engine selects the
          much slower NFA engine.  Force the backtracking engine with
          \%#=1 on these patterns for a large speedup with identical
          matches (Jordan).

On a 40000-line YAML file the total :syntime drops by about 30%: the
yamlFloat rule goes from 0.61s to 0.17s and yamlInteger from 0.42s to 0.31s.
The engine override is applied only to the lookbehind-anchored number rules;
forcing it on the structural plain-scalar and mapping-key patterns regresses
them badly, so those are left on the automatic engine.

closes: #21182

Signed-off-by: Julien Voisin <julien.voisin@dustri.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-08-30 20:25:12 +00:00
Doug Kearns 87069e378c runtime(vim): Update base syntax, improve command-line window highlighting
- Contain all matches to a single line.
- Define non-extending groups for the command-line window.
- Replace &buftype-based detection with win_gettype().

closes: #21189

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-08-30 19:22:10 +00:00
mdspan d4c8c66bed patch 9.2.1018: filetype: radvd config files are not recognized
Problem:  filetype: radvd config files are not recognized
Solution: Detect radvd.conf as radvd filetype, include syntax and
          filetype plugins, add syntax tests, update the menus (mdspan).

Reference:
https://linux.die.net/man/5/radvd.conf

closes: #21159

Signed-off-by: mdspan <mdspan.github@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-08-28 16:58:06 +00:00
Julien Voisin 964a495bef runtime(html): match plain tag and attribute names as keywords
Problem:  Several tag and attribute names are highlighted with regular
          expression alternations even though they are plain words.  A
          :syn-match with an alternation is retried at nearly every
          position of every tag.
Solution: Move the plain-word tag names (b, i, u, em, strong, head,
          body, title, h1-h6) and the "label", "href" and "title"
          attribute names into syn-keyword lists, leaving only the
          genuinely hyphenated names "accept-charset" and "http-equiv"
          as matches.

Profiling a 6000-line HTML file with :syntime, the converted rules drop
from a combined 0.044s to 0.004s, lowering total per-rule syntax time
by about 15%.  Highlighting is unchanged except that a bare valueless
"href" attribute is now highlighted as an attribute, consistent with a
bare "title", which already behaved that way.

closes: #21155

Signed-off-by: Julien Voisin <julien.voisin@dustri.org>
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-08-27 20:51:07 +00:00
Doug Kearns 9d42657f80 runtime(vim): Update base syntax, link straggler regexp groups
Hi-link a few more straggler pattern groups to Regexp.

closes: #21165

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-08-27 20:44:21 +00:00