Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated refa + fixed 2 cases of exponential backtracking #2774

Merged
merged 2 commits into from
Mar 5, 2021

Conversation

RunDevelopment
Copy link
Member

I worked on refa over the last couple of days and added 2 major improvements:

  1. The parser will now resolve certain backreferences. E.g. /("|')(?:(?!\1)[^\\\r\n]|\\.)*\1/ will be parsed as /"(?:(?!")[^\\\r\n]|\\.)*"|'(?:(?!')[^\\\r\n]|\\.)*'/.
  2. Assertions can be applied to the pattern. E.g. /"(?:(?!")[^\\\r\n]|\\.)*"/ -> /"(?:[^"\\\r\n]|\\.)*"/.

These two additions enable our current exponential backtracking test to analyze a few more regexes. And guess what, it found new cases of exponential backtracking. The AsciiDoc ones are true positives and have been fixed. The Perl one is a false positive but I "fixed" it anyway.

@github-actions
Copy link

github-actions bot commented Feb 25, 2021

JS File Size Changes (gzipped)

A total of 2 files have changed, with a combined diff of +1 B (+0.0%).

file master pull size diff % diff
components/prism-asciidoc.min.js 1.62 KB 1.62 KB -2 B -0.1%
components/prism-perl.min.js 999 B 1 KB +3 B +0.3%

Generated by 🚫 dangerJS against 97e27e5

@RunDevelopment
Copy link
Member Author

I'll merge this now cause it's kinda important.

@RunDevelopment RunDevelopment merged commit d85e30d into PrismJS:master Mar 5, 2021
@RunDevelopment RunDevelopment deleted the refa-v0.7.0-update branch March 5, 2021 15:38
@RunDevelopment
Copy link
Member Author

Should there still be anything that requires changes, please comment on this PR (or the merge commit) and I'll make the requested changes in a separate PR.

This was referenced Jun 28, 2021
elevatebart pushed a commit to vue-styleguidist/vue-styleguidist that referenced this pull request Mar 7, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [prismjs](https://github.com/PrismJS/prism) | [`1.23.0` ->
`1.27.0`](https://renovatebot.com/diffs/npm/prismjs/1.23.0/1.27.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/prismjs/1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/prismjs/1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/prismjs/1.23.0/1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/prismjs/1.23.0/1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

### GitHub Vulnerability Alerts

####
[CVE-2021-32723](https://github.com/PrismJS/prism/security/advisories/GHSA-gj77-59wh-66hg)

Some languages before 1.24.0 are vulnerable to Regular Expression Denial
of Service (ReDoS).

### Impact

When Prism is used to highlight untrusted (user-given) text, an attacker
can craft a string that will take a very very long time to highlight. Do
not use the following languages to highlight untrusted text.

- ASCIIDoc
- ERB

Other languages are __not__ affected and can be used to highlight
untrusted text.

### Patches
This problem has been fixed in Prism v1.24.

### References

- PrismJS/prism#2774
- PrismJS/prism#2688

#### [CVE-2021-3801](https://nvd.nist.gov/vuln/detail/CVE-2021-3801)

Prism is a syntax highlighting library. The prismjs package is
vulnerable to ReDoS (regular expression denial of service). An attacker
that is able to provide a crafted HTML comment as input may cause an
application to consume an excessive amount of CPU.

####
[CVE-2022-23647](https://github.com/PrismJS/prism/security/advisories/GHSA-3949-f494-cm99)

### Impact
Prism's [Command line plugin](https://prismjs.com/plugins/command-line/)
can be used by attackers to achieve an XSS attack. The Command line
plugin did not properly escape its output, leading to the input text
being inserted into the DOM as HTML code.

Server-side usage of Prism is not impacted. Websites that do not use the
Command Line plugin are also not impacted.

### Patches
This bug has been fixed in v1.27.0.

### Workarounds
Do not use the Command line plugin on untrusted inputs, or sanitized all
code blocks (remove all HTML code text) from all code blocks that use
the Command line plugin.

### References
-
[https://github.com/PrismJS/prism/pull/3341](https://github.com/PrismJS/prism/pull/3341)

---

### Release Notes

<details>
<summary>PrismJS/prism (prismjs)</summary>

###
[`v1.27.0`](https://github.com/PrismJS/prism/blob/HEAD/CHANGELOG.md#1270-2022-02-17)

[Compare
Source](https://github.com/PrismJS/prism/compare/v1.26.0...v1.27.0)

##### New components

- **UO Razor Script**
([#&#8203;3309](https://github.com/PrismJS/prism/issues/3309))
[`3f8cc5a0`](https://github.com/PrismJS/prism/commit/3f8cc5a0)

##### Updated components

-   **AutoIt**
- Allow hyphen in directive
([#&#8203;3308](https://github.com/PrismJS/prism/issues/3308))
[`bcb2e2c8`](https://github.com/PrismJS/prism/commit/bcb2e2c8)
-   **EditorConfig**
- Change alias of `section` from `keyword` to `selector`
([#&#8203;3305](https://github.com/PrismJS/prism/issues/3305))
[`e46501b9`](https://github.com/PrismJS/prism/commit/e46501b9)
-   **Ini**
- Swap out `header` for `section`
([#&#8203;3304](https://github.com/PrismJS/prism/issues/3304))
[`deb3a97f`](https://github.com/PrismJS/prism/commit/deb3a97f)
-   **MongoDB**
- Added v5 support
([#&#8203;3297](https://github.com/PrismJS/prism/issues/3297))
[`8458c41f`](https://github.com/PrismJS/prism/commit/8458c41f)
-   **PureBasic**
- Added missing keyword and fixed constants ending with `$`
([#&#8203;3320](https://github.com/PrismJS/prism/issues/3320))
[`d6c53726`](https://github.com/PrismJS/prism/commit/d6c53726)
-   **Scala**
- Added support for interpolated strings
([#&#8203;3293](https://github.com/PrismJS/prism/issues/3293))
[`441a1422`](https://github.com/PrismJS/prism/commit/441a1422)
-   **Systemd configuration file**
- Swap out `operator` for `punctuation`
([#&#8203;3306](https://github.com/PrismJS/prism/issues/3306))
[`2eb89e15`](https://github.com/PrismJS/prism/commit/2eb89e15)

##### Updated plugins

-   **Command Line**
- Escape markup in command line output
([#&#8203;3341](https://github.com/PrismJS/prism/issues/3341))
[`e002e78c`](https://github.com/PrismJS/prism/commit/e002e78c)
- Add support for line continuation and improved colors
([#&#8203;3326](https://github.com/PrismJS/prism/issues/3326))
[`1784b175`](https://github.com/PrismJS/prism/commit/1784b175)
- Added span around command and output
([#&#8203;3312](https://github.com/PrismJS/prism/issues/3312))
[`82d0ca15`](https://github.com/PrismJS/prism/commit/82d0ca15)

##### Other

-   **Core**
- Added better error message for missing grammars
([#&#8203;3311](https://github.com/PrismJS/prism/issues/3311))
[`2cc4660b`](https://github.com/PrismJS/prism/commit/2cc4660b)

###
[`v1.26.0`](https://github.com/PrismJS/prism/blob/HEAD/CHANGELOG.md#1260-2022-01-06)

[Compare
Source](https://github.com/PrismJS/prism/compare/v1.25.0...v1.26.0)

##### New components

- **Atmel AVR Assembly**
([#&#8203;2078](https://github.com/PrismJS/prism/issues/2078))
[`b5a70e4c`](https://github.com/PrismJS/prism/commit/b5a70e4c)
- **Go module**
([#&#8203;3209](https://github.com/PrismJS/prism/issues/3209))
[`8476a9ab`](https://github.com/PrismJS/prism/commit/8476a9ab)
- **Keepalived Configure**
([#&#8203;2417](https://github.com/PrismJS/prism/issues/2417))
[`d908e457`](https://github.com/PrismJS/prism/commit/d908e457)
- **Tremor** & **Trickle** & **Troy**
([#&#8203;3087](https://github.com/PrismJS/prism/issues/3087))
[`ec25ba65`](https://github.com/PrismJS/prism/commit/ec25ba65)
- **Web IDL**
([#&#8203;3107](https://github.com/PrismJS/prism/issues/3107))
[`ef53f021`](https://github.com/PrismJS/prism/commit/ef53f021)

##### Updated components

- Use `\d` for `[0-9]`
([#&#8203;3097](https://github.com/PrismJS/prism/issues/3097))
[`9fe2f93e`](https://github.com/PrismJS/prism/commit/9fe2f93e)
-   **6502 Assembly**
- Use standard tokens and minor improvements
([#&#8203;3184](https://github.com/PrismJS/prism/issues/3184))
[`929c33e0`](https://github.com/PrismJS/prism/commit/929c33e0)
-   **AppleScript**
- Use `class-name` standard token
([#&#8203;3182](https://github.com/PrismJS/prism/issues/3182))
[`9f5e511d`](https://github.com/PrismJS/prism/commit/9f5e511d)
-   **AQL**
- Differentiate between strings and identifiers
([#&#8203;3183](https://github.com/PrismJS/prism/issues/3183))
[`fa540ab7`](https://github.com/PrismJS/prism/commit/fa540ab7)
-   **Arduino**
- Added `ino` alias
([#&#8203;2990](https://github.com/PrismJS/prism/issues/2990))
[`5b7ce5e4`](https://github.com/PrismJS/prism/commit/5b7ce5e4)
-   **Avro IDL**
- Removed char syntax
([#&#8203;3185](https://github.com/PrismJS/prism/issues/3185))
[`c7809285`](https://github.com/PrismJS/prism/commit/c7809285)
-   **Bash**
- Added `node` to known commands
([#&#8203;3291](https://github.com/PrismJS/prism/issues/3291))
[`4b19b502`](https://github.com/PrismJS/prism/commit/4b19b502)
- Added `vcpkg` command
([#&#8203;3282](https://github.com/PrismJS/prism/issues/3282))
[`b351bc69`](https://github.com/PrismJS/prism/commit/b351bc69)
- Added `docker` and `podman` commands
([#&#8203;3237](https://github.com/PrismJS/prism/issues/3237))
[`8c5ed251`](https://github.com/PrismJS/prism/commit/8c5ed251)
-   **Birb**
- Fixed class name false positives
([#&#8203;3111](https://github.com/PrismJS/prism/issues/3111))
[`d7017beb`](https://github.com/PrismJS/prism/commit/d7017beb)
-   **Bro**
- Removed `variable` and minor improvements
([#&#8203;3186](https://github.com/PrismJS/prism/issues/3186))
[`4cebf34c`](https://github.com/PrismJS/prism/commit/4cebf34c)
-   **BSL (1C:Enterprise)**
- Made `directive` greedy
([#&#8203;3112](https://github.com/PrismJS/prism/issues/3112))
[`5c412cbb`](https://github.com/PrismJS/prism/commit/5c412cbb)
-   **C**
- Added `char` token
([#&#8203;3207](https://github.com/PrismJS/prism/issues/3207))
[`d85a64ae`](https://github.com/PrismJS/prism/commit/d85a64ae)
-   **C#**
- Added `char` token
([#&#8203;3270](https://github.com/PrismJS/prism/issues/3270))
[`220bc40f`](https://github.com/PrismJS/prism/commit/220bc40f)
- Move everything into the IIFE
([#&#8203;3077](https://github.com/PrismJS/prism/issues/3077))
[`9ed4cf6e`](https://github.com/PrismJS/prism/commit/9ed4cf6e)
-   **Clojure**
- Added `char` token
([#&#8203;3188](https://github.com/PrismJS/prism/issues/3188))
[`1c88c7da`](https://github.com/PrismJS/prism/commit/1c88c7da)
-   **Concurnas**
- Improved tokenization
([#&#8203;3189](https://github.com/PrismJS/prism/issues/3189))
[`7b34e65d`](https://github.com/PrismJS/prism/commit/7b34e65d)
-   **Content-Security-Policy**
- Improved tokenization
([#&#8203;3276](https://github.com/PrismJS/prism/issues/3276))
[`a943f2bb`](https://github.com/PrismJS/prism/commit/a943f2bb)
-   **Coq**
- Improved attribute pattern performance
([#&#8203;3085](https://github.com/PrismJS/prism/issues/3085))
[`2f9672aa`](https://github.com/PrismJS/prism/commit/2f9672aa)
-   **Crystal**
- Improved tokenization
([#&#8203;3194](https://github.com/PrismJS/prism/issues/3194))
[`51e3ecc0`](https://github.com/PrismJS/prism/commit/51e3ecc0)
-   **Cypher**
- Removed non-standard use of `symbol` token name
([#&#8203;3195](https://github.com/PrismJS/prism/issues/3195))
[`6af8a644`](https://github.com/PrismJS/prism/commit/6af8a644)
-   **D**
- Added standard char token
([#&#8203;3196](https://github.com/PrismJS/prism/issues/3196))
[`dafdbdec`](https://github.com/PrismJS/prism/commit/dafdbdec)
-   **Dart**
- Added string interpolation and improved metadata
([#&#8203;3197](https://github.com/PrismJS/prism/issues/3197))
[`e1370357`](https://github.com/PrismJS/prism/commit/e1370357)
-   **DataWeave**
- Fixed keywords being highlighted as functions
([#&#8203;3113](https://github.com/PrismJS/prism/issues/3113))
[`532212b2`](https://github.com/PrismJS/prism/commit/532212b2)
-   **EditorConfig**
- Swap out `property` for `key`; alias with `attr-name`
([#&#8203;3272](https://github.com/PrismJS/prism/issues/3272))
[`bee6ad56`](https://github.com/PrismJS/prism/commit/bee6ad56)
-   **Eiffel**
- Removed non-standard use of `builtin` name
([#&#8203;3198](https://github.com/PrismJS/prism/issues/3198))
[`6add768b`](https://github.com/PrismJS/prism/commit/6add768b)
-   **Elm**
- Recognize unicode escapes as valid Char
([#&#8203;3105](https://github.com/PrismJS/prism/issues/3105))
[`736c581d`](https://github.com/PrismJS/prism/commit/736c581d)
-   **ERB**
- Better embedding of Ruby
([#&#8203;3192](https://github.com/PrismJS/prism/issues/3192))
[`336edeea`](https://github.com/PrismJS/prism/commit/336edeea)
-   **F#**
- Added `char` token
([#&#8203;3271](https://github.com/PrismJS/prism/issues/3271))
[`b58cd722`](https://github.com/PrismJS/prism/commit/b58cd722)
-   **G-code**
- Use standard-conforming alias for checksum
([#&#8203;3205](https://github.com/PrismJS/prism/issues/3205))
[`ee7ab563`](https://github.com/PrismJS/prism/commit/ee7ab563)
-   **GameMaker Language**
- Fixed `operator` token and added tests
([#&#8203;3114](https://github.com/PrismJS/prism/issues/3114))
[`d359eeae`](https://github.com/PrismJS/prism/commit/d359eeae)
-   **Go**
- Added `char` token and improved `string` and `number` tokens
([#&#8203;3208](https://github.com/PrismJS/prism/issues/3208))
[`f11b86e2`](https://github.com/PrismJS/prism/commit/f11b86e2)
-   **GraphQL**
- Optimized regexes
([#&#8203;3136](https://github.com/PrismJS/prism/issues/3136))
[`8494519e`](https://github.com/PrismJS/prism/commit/8494519e)
-   **Haml**
- Use `symbol` alias for filter names
([#&#8203;3210](https://github.com/PrismJS/prism/issues/3210))
[`3d410670`](https://github.com/PrismJS/prism/commit/3d410670)
- Improved filter and interpolation tokenization
([#&#8203;3191](https://github.com/PrismJS/prism/issues/3191))
[`005ba469`](https://github.com/PrismJS/prism/commit/005ba469)
-   **Haxe**
- Improved tokenization
([#&#8203;3211](https://github.com/PrismJS/prism/issues/3211))
[`f41bcf23`](https://github.com/PrismJS/prism/commit/f41bcf23)
-   **Hoon**
- Simplified the language definition a little
([#&#8203;3212](https://github.com/PrismJS/prism/issues/3212))
[`81920b62`](https://github.com/PrismJS/prism/commit/81920b62)
-   **HTTP**
- Added support for special header value tokenization
([#&#8203;3275](https://github.com/PrismJS/prism/issues/3275))
[`3362fc79`](https://github.com/PrismJS/prism/commit/3362fc79)
- Relax pattern for body
([#&#8203;3169](https://github.com/PrismJS/prism/issues/3169))
[`22d0c6ba`](https://github.com/PrismJS/prism/commit/22d0c6ba)
-   **HTTP Public-Key-Pins**
- Improved tokenization
([#&#8203;3278](https://github.com/PrismJS/prism/issues/3278))
[`0f1b5810`](https://github.com/PrismJS/prism/commit/0f1b5810)
-   **HTTP Strict-Transport-Security**
- Improved tokenization
([#&#8203;3277](https://github.com/PrismJS/prism/issues/3277))
[`3d708b97`](https://github.com/PrismJS/prism/commit/3d708b97)
-   **Idris**
- Fixed import statements
([#&#8203;3115](https://github.com/PrismJS/prism/issues/3115))
[`15cb3b78`](https://github.com/PrismJS/prism/commit/15cb3b78)
-   **Io**
- Simplified comment token
([#&#8203;3214](https://github.com/PrismJS/prism/issues/3214))
[`c2afa59b`](https://github.com/PrismJS/prism/commit/c2afa59b)
-   **J**
- Made comments greedy
([#&#8203;3215](https://github.com/PrismJS/prism/issues/3215))
[`5af16014`](https://github.com/PrismJS/prism/commit/5af16014)
-   **Java**
- Added `char` token
([#&#8203;3217](https://github.com/PrismJS/prism/issues/3217))
[`0a9f909c`](https://github.com/PrismJS/prism/commit/0a9f909c)
-   **Java stack trace**
- Removed unreachable parts of regexes
([#&#8203;3219](https://github.com/PrismJS/prism/issues/3219))
[`fa55492b`](https://github.com/PrismJS/prism/commit/fa55492b)
- Added missing lookbehinds
([#&#8203;3116](https://github.com/PrismJS/prism/issues/3116))
[`cfb2e782`](https://github.com/PrismJS/prism/commit/cfb2e782)
-   **JavaScript**
- Improved `number` pattern
([#&#8203;3149](https://github.com/PrismJS/prism/issues/3149))
[`5a24cbff`](https://github.com/PrismJS/prism/commit/5a24cbff)
- Added properties
([#&#8203;3099](https://github.com/PrismJS/prism/issues/3099))
[`3b2238fa`](https://github.com/PrismJS/prism/commit/3b2238fa)
-   **Jolie**
- Improved tokenization
([#&#8203;3221](https://github.com/PrismJS/prism/issues/3221))
[`dfbb2020`](https://github.com/PrismJS/prism/commit/dfbb2020)
-   **JQ**
- Improved performance of strings
([#&#8203;3084](https://github.com/PrismJS/prism/issues/3084))
[`233415b8`](https://github.com/PrismJS/prism/commit/233415b8)
-   **JS stack trace**
- Added missing boundary assertion
([#&#8203;3117](https://github.com/PrismJS/prism/issues/3117))
[`23d9aec1`](https://github.com/PrismJS/prism/commit/23d9aec1)
-   **Julia**
- Added `char` token
([#&#8203;3223](https://github.com/PrismJS/prism/issues/3223))
[`3a876df0`](https://github.com/PrismJS/prism/commit/3a876df0)
-   **Keyman**
- Improved tokenization
([#&#8203;3224](https://github.com/PrismJS/prism/issues/3224))
[`baa95cab`](https://github.com/PrismJS/prism/commit/baa95cab)
-   **Kotlin**
- Added `char` token and improved string interpolation
([#&#8203;3225](https://github.com/PrismJS/prism/issues/3225))
[`563cd73e`](https://github.com/PrismJS/prism/commit/563cd73e)
-   **Latte**
- Use standard token names and combined delimiter tokens
([#&#8203;3226](https://github.com/PrismJS/prism/issues/3226))
[`6b168a3b`](https://github.com/PrismJS/prism/commit/6b168a3b)
-   **Liquid**
- Removed unmatchable object variants
([#&#8203;3135](https://github.com/PrismJS/prism/issues/3135))
[`05e7ab04`](https://github.com/PrismJS/prism/commit/05e7ab04)
-   **Lisp**
- Improved `defun`
([#&#8203;3130](https://github.com/PrismJS/prism/issues/3130))
[`e8f84a6c`](https://github.com/PrismJS/prism/commit/e8f84a6c)
-   **Makefile**
- Use standard token names correctly
([#&#8203;3227](https://github.com/PrismJS/prism/issues/3227))
[`21a3c2d7`](https://github.com/PrismJS/prism/commit/21a3c2d7)
-   **Markdown**
- Fixed typo in token name
([#&#8203;3101](https://github.com/PrismJS/prism/issues/3101))
[`00f77a2c`](https://github.com/PrismJS/prism/commit/00f77a2c)
-   **MAXScript**
- Various improvements
([#&#8203;3181](https://github.com/PrismJS/prism/issues/3181))
[`e9b856c8`](https://github.com/PrismJS/prism/commit/e9b856c8)
- Fixed booleans not being highlighted
([#&#8203;3134](https://github.com/PrismJS/prism/issues/3134))
[`c6574e6b`](https://github.com/PrismJS/prism/commit/c6574e6b)
-   **Monkey**
- Use standard tokens correctly
([#&#8203;3228](https://github.com/PrismJS/prism/issues/3228))
[`c1025aa6`](https://github.com/PrismJS/prism/commit/c1025aa6)
-   **N1QL**
- Updated keywords + minor improvements
([#&#8203;3229](https://github.com/PrismJS/prism/issues/3229))
[`642d93ec`](https://github.com/PrismJS/prism/commit/642d93ec)
-   **nginx**
- Made some patterns greedy
([#&#8203;3230](https://github.com/PrismJS/prism/issues/3230))
[`7b72e0ad`](https://github.com/PrismJS/prism/commit/7b72e0ad)
-   **Nim**
- Added `char` token and made some tokens greedy
([#&#8203;3231](https://github.com/PrismJS/prism/issues/3231))
[`2334b4b6`](https://github.com/PrismJS/prism/commit/2334b4b6)
- Fixed backtick identifier
([#&#8203;3118](https://github.com/PrismJS/prism/issues/3118))
[`75331bea`](https://github.com/PrismJS/prism/commit/75331bea)
-   **Nix**
- Use standard token name correctly
([#&#8203;3232](https://github.com/PrismJS/prism/issues/3232))
[`5bf6e35f`](https://github.com/PrismJS/prism/commit/5bf6e35f)
- Removed unmatchable token
([#&#8203;3119](https://github.com/PrismJS/prism/issues/3119))
[`dc1e808f`](https://github.com/PrismJS/prism/commit/dc1e808f)
-   **NSIS**
- Made `comment` greedy
([#&#8203;3234](https://github.com/PrismJS/prism/issues/3234))
[`969f152a`](https://github.com/PrismJS/prism/commit/969f152a)
- Update regex pattern for variables
([#&#8203;3266](https://github.com/PrismJS/prism/issues/3266))
[`adcc8784`](https://github.com/PrismJS/prism/commit/adcc8784)
- Update regex for constants pattern
([#&#8203;3267](https://github.com/PrismJS/prism/issues/3267))
[`55583fb2`](https://github.com/PrismJS/prism/commit/55583fb2)
-   **Objective-C**
- Improved `string` token
([#&#8203;3235](https://github.com/PrismJS/prism/issues/3235))
[`8e0e95f3`](https://github.com/PrismJS/prism/commit/8e0e95f3)
-   **OCaml**
- Improved tokenization
([#&#8203;3269](https://github.com/PrismJS/prism/issues/3269))
[`7bcc5da0`](https://github.com/PrismJS/prism/commit/7bcc5da0)
- Removed unmatchable punctuation variant
([#&#8203;3120](https://github.com/PrismJS/prism/issues/3120))
[`314d6994`](https://github.com/PrismJS/prism/commit/314d6994)
-   **Oz**
- Improved tokenization
([#&#8203;3240](https://github.com/PrismJS/prism/issues/3240))
[`a3905c04`](https://github.com/PrismJS/prism/commit/a3905c04)
-   **Pascal**
- Added support for asm and directives
([#&#8203;2653](https://github.com/PrismJS/prism/issues/2653))
[`f053af13`](https://github.com/PrismJS/prism/commit/f053af13)
-   **PATROL Scripting Language**
- Added `boolean` token
([#&#8203;3248](https://github.com/PrismJS/prism/issues/3248))
[`a5b6c5eb`](https://github.com/PrismJS/prism/commit/a5b6c5eb)
-   **Perl**
- Improved tokenization
([#&#8203;3241](https://github.com/PrismJS/prism/issues/3241))
[`f22ea9f9`](https://github.com/PrismJS/prism/commit/f22ea9f9)
-   **PHP**
- Removed useless keyword tokens
([#&#8203;3121](https://github.com/PrismJS/prism/issues/3121))
[`ee62a080`](https://github.com/PrismJS/prism/commit/ee62a080)
-   **PHP Extras**
- Improved `scope` and `this`
([#&#8203;3243](https://github.com/PrismJS/prism/issues/3243))
[`59ef51db`](https://github.com/PrismJS/prism/commit/59ef51db)
-   **PL/SQL**
- Updated keywords + other improvements
([#&#8203;3109](https://github.com/PrismJS/prism/issues/3109))
[`e7ba877b`](https://github.com/PrismJS/prism/commit/e7ba877b)
-   **PowerQuery**
- Improved tokenization and use standard tokens correctly
([#&#8203;3244](https://github.com/PrismJS/prism/issues/3244))
[`5688f487`](https://github.com/PrismJS/prism/commit/5688f487)
- Removed useless `data-type` alternative
([#&#8203;3122](https://github.com/PrismJS/prism/issues/3122))
[`eeb13996`](https://github.com/PrismJS/prism/commit/eeb13996)
-   **PowerShell**
- Fixed lookbehind + refactoring
([#&#8203;3245](https://github.com/PrismJS/prism/issues/3245))
[`d30a2da6`](https://github.com/PrismJS/prism/commit/d30a2da6)
-   **Processing**
- Use standard tokens correctly
([#&#8203;3246](https://github.com/PrismJS/prism/issues/3246))
[`5ee8c557`](https://github.com/PrismJS/prism/commit/5ee8c557)
-   **Prolog**
- Removed variable token + minor improvements
([#&#8203;3247](https://github.com/PrismJS/prism/issues/3247))
[`bacf9ae3`](https://github.com/PrismJS/prism/commit/bacf9ae3)
-   **Pug**
- Improved filter tokenization
([#&#8203;3258](https://github.com/PrismJS/prism/issues/3258))
[`0390e644`](https://github.com/PrismJS/prism/commit/0390e644)
-   **PureBasic**
- Fixed token order inside `asm` token
([#&#8203;3123](https://github.com/PrismJS/prism/issues/3123))
[`f3b25786`](https://github.com/PrismJS/prism/commit/f3b25786)
-   **Python**
- Made `comment` greedy
([#&#8203;3249](https://github.com/PrismJS/prism/issues/3249))
[`8ecef306`](https://github.com/PrismJS/prism/commit/8ecef306)
- Add `match` and `case` (soft) keywords
([#&#8203;3142](https://github.com/PrismJS/prism/issues/3142))
[`3f24dc72`](https://github.com/PrismJS/prism/commit/3f24dc72)
- Recognize walrus operator
([#&#8203;3126](https://github.com/PrismJS/prism/issues/3126))
[`18bd101c`](https://github.com/PrismJS/prism/commit/18bd101c)
- Fixed numbers ending with a dot
([#&#8203;3106](https://github.com/PrismJS/prism/issues/3106))
[`2c63efa6`](https://github.com/PrismJS/prism/commit/2c63efa6)
-   **QML**
- Made `string` greedy
([#&#8203;3250](https://github.com/PrismJS/prism/issues/3250))
[`1e6dcb51`](https://github.com/PrismJS/prism/commit/1e6dcb51)
-   **React JSX**
- Move alias property
([#&#8203;3222](https://github.com/PrismJS/prism/issues/3222))
[`18c92048`](https://github.com/PrismJS/prism/commit/18c92048)
-   **React TSX**
- Removed `parameter` token
([#&#8203;3090](https://github.com/PrismJS/prism/issues/3090))
[`0a313f4f`](https://github.com/PrismJS/prism/commit/0a313f4f)
-   **Reason**
- Use standard tokens correctly
([#&#8203;3251](https://github.com/PrismJS/prism/issues/3251))
[`809af0d9`](https://github.com/PrismJS/prism/commit/809af0d9)
-   **Regex**
- Fixed char-class/char-set confusion
([#&#8203;3124](https://github.com/PrismJS/prism/issues/3124))
[`4dde2e20`](https://github.com/PrismJS/prism/commit/4dde2e20)
-   **Ren'py**
- Improved language + added tests
([#&#8203;3125](https://github.com/PrismJS/prism/issues/3125))
[`ede55b2c`](https://github.com/PrismJS/prism/commit/ede55b2c)
-   **Rip**
- Use standard `char` token
([#&#8203;3252](https://github.com/PrismJS/prism/issues/3252))
[`2069ab0c`](https://github.com/PrismJS/prism/commit/2069ab0c)
-   **Ruby**
- Improved tokenization
([#&#8203;3193](https://github.com/PrismJS/prism/issues/3193))
[`86028adb`](https://github.com/PrismJS/prism/commit/86028adb)
-   **Rust**
- Improved `type-definition` and use standard tokens correctly
([#&#8203;3253](https://github.com/PrismJS/prism/issues/3253))
[`4049e5c6`](https://github.com/PrismJS/prism/commit/4049e5c6)
-   **Scheme**
- Use standard `char` token
([#&#8203;3254](https://github.com/PrismJS/prism/issues/3254))
[`7d740c45`](https://github.com/PrismJS/prism/commit/7d740c45)
- Updates syntax for reals
([#&#8203;3159](https://github.com/PrismJS/prism/issues/3159))
[`4eb81fa1`](https://github.com/PrismJS/prism/commit/4eb81fa1)
-   **Smalltalk**
- Use standard `char` token
([#&#8203;3255](https://github.com/PrismJS/prism/issues/3255))
[`a7bb3001`](https://github.com/PrismJS/prism/commit/a7bb3001)
- Added `boolean` token
([#&#8203;3100](https://github.com/PrismJS/prism/issues/3100))
[`51382524`](https://github.com/PrismJS/prism/commit/51382524)
-   **Smarty**
- Improved tokenization
([#&#8203;3268](https://github.com/PrismJS/prism/issues/3268))
[`acc0bc09`](https://github.com/PrismJS/prism/commit/acc0bc09)
-   **SQL**
- Added identifier token
([#&#8203;3141](https://github.com/PrismJS/prism/issues/3141))
[`4e00cddd`](https://github.com/PrismJS/prism/commit/4e00cddd)
-   **Squirrel**
- Use standard `char` token
([#&#8203;3256](https://github.com/PrismJS/prism/issues/3256))
[`58a65bfd`](https://github.com/PrismJS/prism/commit/58a65bfd)
-   **Stan**
- Added missing keywords and HOFs
([#&#8203;3238](https://github.com/PrismJS/prism/issues/3238))
[`afd77ed1`](https://github.com/PrismJS/prism/commit/afd77ed1)
-   **Structured Text (IEC 61131-3)**
- Structured text: Improved tokenization
([#&#8203;3213](https://github.com/PrismJS/prism/issues/3213))
[`d04d166d`](https://github.com/PrismJS/prism/commit/d04d166d)
-   **Swift**
- Added support for `isolated` keyword
([#&#8203;3174](https://github.com/PrismJS/prism/issues/3174))
[`18c828a6`](https://github.com/PrismJS/prism/commit/18c828a6)
-   **TAP**
- Conform to quoted-properties style
([#&#8203;3127](https://github.com/PrismJS/prism/issues/3127))
[`3ef71533`](https://github.com/PrismJS/prism/commit/3ef71533)
-   **Tremor**
- Use standard `regex` token
([#&#8203;3257](https://github.com/PrismJS/prism/issues/3257))
[`c56e4bf5`](https://github.com/PrismJS/prism/commit/c56e4bf5)
-   **Twig**
- Improved tokenization
([#&#8203;3259](https://github.com/PrismJS/prism/issues/3259))
[`e03a7c24`](https://github.com/PrismJS/prism/commit/e03a7c24)
-   **TypeScript**
- Removed duplicate keywords
([#&#8203;3132](https://github.com/PrismJS/prism/issues/3132))
[`91060fd6`](https://github.com/PrismJS/prism/commit/91060fd6)
-   **URI**
- Fixed IPv4 regex
([#&#8203;3128](https://github.com/PrismJS/prism/issues/3128))
[`599e30ee`](https://github.com/PrismJS/prism/commit/599e30ee)
-   **V**
- Use standard `char` token
([#&#8203;3260](https://github.com/PrismJS/prism/issues/3260))
[`e4373256`](https://github.com/PrismJS/prism/commit/e4373256)
-   **Verilog**
- Use standard tokens correctly
([#&#8203;3261](https://github.com/PrismJS/prism/issues/3261))
[`43124129`](https://github.com/PrismJS/prism/commit/43124129)
-   **Visual Basic**
- Simplify regexes and use more common aliases
([#&#8203;3262](https://github.com/PrismJS/prism/issues/3262))
[`aa73d448`](https://github.com/PrismJS/prism/commit/aa73d448)
-   **Wolfram language**
- Removed unmatchable punctuation variant
([#&#8203;3133](https://github.com/PrismJS/prism/issues/3133))
[`a28a86ad`](https://github.com/PrismJS/prism/commit/a28a86ad)
-   **Xojo (REALbasic)**
- Proper token name for directives
([#&#8203;3263](https://github.com/PrismJS/prism/issues/3263))
[`ffd8343f`](https://github.com/PrismJS/prism/commit/ffd8343f)
-   **Zig**
- Added missing keywords
([#&#8203;3279](https://github.com/PrismJS/prism/issues/3279))
[`deed35e3`](https://github.com/PrismJS/prism/commit/deed35e3)
- Use standard `char` token
([#&#8203;3264](https://github.com/PrismJS/prism/issues/3264))
[`c3f9fb70`](https://github.com/PrismJS/prism/commit/c3f9fb70)
- Fixed module comments and astral chars
([#&#8203;3129](https://github.com/PrismJS/prism/issues/3129))
[`09a0e2ba`](https://github.com/PrismJS/prism/commit/09a0e2ba)

##### Updated plugins

-   **File Highlight**
- File highlight+data range
([#&#8203;1813](https://github.com/PrismJS/prism/issues/1813))
[`d38592c5`](https://github.com/PrismJS/prism/commit/d38592c5)
-   **Keep Markup**
- Added `drop-tokens` option class
([#&#8203;3166](https://github.com/PrismJS/prism/issues/3166))
[`b679cfe6`](https://github.com/PrismJS/prism/commit/b679cfe6)
-   **Line Highlight**
- Expose `highlightLines` function as `Prism.plugins.highlightLines`
([#&#8203;3086](https://github.com/PrismJS/prism/issues/3086))
[`9f4c0e74`](https://github.com/PrismJS/prism/commit/9f4c0e74)
-   **Toolbar**
- Set `z-index` of `.toolbar` to 10
([#&#8203;3163](https://github.com/PrismJS/prism/issues/3163))
[`1cac3559`](https://github.com/PrismJS/prism/commit/1cac3559)

##### Updated themes

- Coy: Set `z-index` to make shadows visible in colored table cells
([#&#8203;3161](https://github.com/PrismJS/prism/issues/3161))
[`79f250f3`](https://github.com/PrismJS/prism/commit/79f250f3)
- Coy: Added padding to account for box shadow
([#&#8203;3143](https://github.com/PrismJS/prism/issues/3143))
[`a6a4ce7e`](https://github.com/PrismJS/prism/commit/a6a4ce7e)

##### Other

-   **Core**
- Added `setLanguage` util function
([#&#8203;3167](https://github.com/PrismJS/prism/issues/3167))
[`b631949a`](https://github.com/PrismJS/prism/commit/b631949a)
- Fixed type error on null
([#&#8203;3057](https://github.com/PrismJS/prism/issues/3057))
[`a80a68ba`](https://github.com/PrismJS/prism/commit/a80a68ba)
- Document `disableWorkerMessageHandler`
([#&#8203;3088](https://github.com/PrismJS/prism/issues/3088))
[`213cf7be`](https://github.com/PrismJS/prism/commit/213cf7be)
-   **Infrastructure**
- Tests: Added `.html.test` files for replace `.js` language tests
([#&#8203;3148](https://github.com/PrismJS/prism/issues/3148))
[`2e834c8c`](https://github.com/PrismJS/prism/commit/2e834c8c)
- Added regex coverage
([#&#8203;3138](https://github.com/PrismJS/prism/issues/3138))
[`5333e281`](https://github.com/PrismJS/prism/commit/5333e281)
- Tests: Added `TestCaseFile` class and generalized `runTestCase`
([#&#8203;3147](https://github.com/PrismJS/prism/issues/3147))
[`ae8888a0`](https://github.com/PrismJS/prism/commit/ae8888a0)
- Added even more language tests
([#&#8203;3137](https://github.com/PrismJS/prism/issues/3137))
[`344d0b27`](https://github.com/PrismJS/prism/commit/344d0b27)
- Added more plugin tests
([#&#8203;1969](https://github.com/PrismJS/prism/issues/1969))
[`a394a14d`](https://github.com/PrismJS/prism/commit/a394a14d)
- Added more language tests
([#&#8203;3131](https://github.com/PrismJS/prism/issues/3131))
[`2f7f7364`](https://github.com/PrismJS/prism/commit/2f7f7364)
- `package.json`: Added `engines.node` field
([#&#8203;3108](https://github.com/PrismJS/prism/issues/3108))
[`798ee4f6`](https://github.com/PrismJS/prism/commit/798ee4f6)
- Use tabs in `package(-lock).json`
([#&#8203;3098](https://github.com/PrismJS/prism/issues/3098))
[`8daebb4a`](https://github.com/PrismJS/prism/commit/8daebb4a)
- Update `eslint-plugin-regexp@1.2.0`
([#&#8203;3091](https://github.com/PrismJS/prism/issues/3091))
[`e6e1d5ae`](https://github.com/PrismJS/prism/commit/e6e1d5ae)
- Added minified CSS
([#&#8203;3073](https://github.com/PrismJS/prism/issues/3073))
[`d63d6c0e`](https://github.com/PrismJS/prism/commit/d63d6c0e)
-   **Website**
- Readme: Clarify usage of our build system
([#&#8203;3239](https://github.com/PrismJS/prism/issues/3239))
[`6f1d904a`](https://github.com/PrismJS/prism/commit/6f1d904a)
- Improved CDN usage URLs
([#&#8203;3285](https://github.com/PrismJS/prism/issues/3285))
[`6c21b2f7`](https://github.com/PrismJS/prism/commit/6c21b2f7)
- Update download.html
[`9d5424b6`](https://github.com/PrismJS/prism/commit/9d5424b6)
- Autoloader: Mention how to load grammars from URLs
([#&#8203;3218](https://github.com/PrismJS/prism/issues/3218))
[`cefccdd1`](https://github.com/PrismJS/prism/commit/cefccdd1)
- Added PrismJS React and HTML tutorial link
([#&#8203;3190](https://github.com/PrismJS/prism/issues/3190))
[`0ecdbdce`](https://github.com/PrismJS/prism/commit/0ecdbdce)
- Improved readability
([#&#8203;3177](https://github.com/PrismJS/prism/issues/3177))
[`4433d7fe`](https://github.com/PrismJS/prism/commit/4433d7fe)
- Fixed red highlighting in Firefox
([#&#8203;3178](https://github.com/PrismJS/prism/issues/3178))
[`746da79b`](https://github.com/PrismJS/prism/commit/746da79b)
- Use Keep markup to highlight code section
([#&#8203;3164](https://github.com/PrismJS/prism/issues/3164))
[`ebd59e32`](https://github.com/PrismJS/prism/commit/ebd59e32)
- Document standard tokens and provide examples
([#&#8203;3104](https://github.com/PrismJS/prism/issues/3104))
[`37551200`](https://github.com/PrismJS/prism/commit/37551200)
- Fixed dead link to third-party tutorial
[#&#8203;3155](https://github.com/PrismJS/prism/issues/3155)
([#&#8203;3156](https://github.com/PrismJS/prism/issues/3156))
[`31b4c1b8`](https://github.com/PrismJS/prism/commit/31b4c1b8)
- Repositioned theme selector
([#&#8203;3146](https://github.com/PrismJS/prism/issues/3146))
[`ea361e5a`](https://github.com/PrismJS/prism/commit/ea361e5a)
- Adjusted TOC's line height for better readability
([#&#8203;3145](https://github.com/PrismJS/prism/issues/3145))
[`c5629706`](https://github.com/PrismJS/prism/commit/c5629706)
- Updated plugin header template
([#&#8203;3144](https://github.com/PrismJS/prism/issues/3144))
[`faedfe85`](https://github.com/PrismJS/prism/commit/faedfe85)
- Update test and example pages to use Autoloader
([#&#8203;1936](https://github.com/PrismJS/prism/issues/1936))
[`3d96eedc`](https://github.com/PrismJS/prism/commit/3d96eedc)

###
[`v1.25.0`](https://github.com/PrismJS/prism/blob/HEAD/CHANGELOG.md#1250-2021-09-16)

[Compare
Source](https://github.com/PrismJS/prism/compare/v1.24.1...v1.25.0)

##### New components

- **AviSynth**
([#&#8203;3071](https://github.com/PrismJS/prism/issues/3071))
[`746a4b1a`](https://github.com/PrismJS/prism/commit/746a4b1a)
- **Avro IDL**
([#&#8203;3051](https://github.com/PrismJS/prism/issues/3051))
[`87e5a376`](https://github.com/PrismJS/prism/commit/87e5a376)
- **Bicep**
([#&#8203;3027](https://github.com/PrismJS/prism/issues/3027))
[`c1dce998`](https://github.com/PrismJS/prism/commit/c1dce998)
- **GAP (CAS)**
([#&#8203;3054](https://github.com/PrismJS/prism/issues/3054))
[`23cd9b65`](https://github.com/PrismJS/prism/commit/23cd9b65)
- **GN**
([#&#8203;3062](https://github.com/PrismJS/prism/issues/3062))
[`4f97b82b`](https://github.com/PrismJS/prism/commit/4f97b82b)
- **Hoon**
([#&#8203;2978](https://github.com/PrismJS/prism/issues/2978))
[`ea776756`](https://github.com/PrismJS/prism/commit/ea776756)
- **Kusto**
([#&#8203;3068](https://github.com/PrismJS/prism/issues/3068))
[`e008ea05`](https://github.com/PrismJS/prism/commit/e008ea05)
- **Magma (CAS)**
([#&#8203;3055](https://github.com/PrismJS/prism/issues/3055))
[`a1b67ce3`](https://github.com/PrismJS/prism/commit/a1b67ce3)
- **MAXScript**
([#&#8203;3060](https://github.com/PrismJS/prism/issues/3060))
[`4fbdd2f8`](https://github.com/PrismJS/prism/commit/4fbdd2f8)
- **Mermaid**
([#&#8203;3050](https://github.com/PrismJS/prism/issues/3050))
[`148c1eca`](https://github.com/PrismJS/prism/commit/148c1eca)
- **Razor C#**
([#&#8203;3064](https://github.com/PrismJS/prism/issues/3064))
[`4433ccfc`](https://github.com/PrismJS/prism/commit/4433ccfc)
- **Systemd configuration file**
([#&#8203;3053](https://github.com/PrismJS/prism/issues/3053))
[`8df825e0`](https://github.com/PrismJS/prism/commit/8df825e0)
- **Wren**
([#&#8203;3063](https://github.com/PrismJS/prism/issues/3063))
[`6a356d25`](https://github.com/PrismJS/prism/commit/6a356d25)

##### Updated components

-   **Bicep**
- Added support for multiline and interpolated strings and other
improvements
([#&#8203;3028](https://github.com/PrismJS/prism/issues/3028))
[`748bb9ac`](https://github.com/PrismJS/prism/commit/748bb9ac)
-   **C#**
- Added `with` keyword & improved record support
([#&#8203;2993](https://github.com/PrismJS/prism/issues/2993))
[`fdd291c0`](https://github.com/PrismJS/prism/commit/fdd291c0)
- Added `record`, `init`, and `nullable` keyword
([#&#8203;2991](https://github.com/PrismJS/prism/issues/2991))
[`9b561565`](https://github.com/PrismJS/prism/commit/9b561565)
- Added context check for `from` keyword
([#&#8203;2970](https://github.com/PrismJS/prism/issues/2970))
[`158f25d4`](https://github.com/PrismJS/prism/commit/158f25d4)
-   **C++**
- Fixed generic function false positive
([#&#8203;3043](https://github.com/PrismJS/prism/issues/3043))
[`5de8947f`](https://github.com/PrismJS/prism/commit/5de8947f)
-   **Clojure**
- Improved tokenization
([#&#8203;3056](https://github.com/PrismJS/prism/issues/3056))
[`8d0b74b5`](https://github.com/PrismJS/prism/commit/8d0b74b5)
-   **Hoon**
- Fixed mixed-case aura tokenization
([#&#8203;3002](https://github.com/PrismJS/prism/issues/3002))
[`9c8911bd`](https://github.com/PrismJS/prism/commit/9c8911bd)
-   **Liquid**
- Added all objects from Shopify reference
([#&#8203;2998](https://github.com/PrismJS/prism/issues/2998))
[`693b7433`](https://github.com/PrismJS/prism/commit/693b7433)
- Added `empty` keyword
([#&#8203;2997](https://github.com/PrismJS/prism/issues/2997))
[`fe3bc526`](https://github.com/PrismJS/prism/commit/fe3bc526)
-   **Log file**
- Added support for Java stack traces
([#&#8203;3003](https://github.com/PrismJS/prism/issues/3003))
[`b0365e70`](https://github.com/PrismJS/prism/commit/b0365e70)
-   **Markup**
- Made most patterns greedy
([#&#8203;3065](https://github.com/PrismJS/prism/issues/3065))
[`52e8cee9`](https://github.com/PrismJS/prism/commit/52e8cee9)
- Fixed ReDoS
([#&#8203;3078](https://github.com/PrismJS/prism/issues/3078))
[`0ff371bb`](https://github.com/PrismJS/prism/commit/0ff371bb)
-   **PureScript**
- Made `∀` a keyword (alias for `forall`)
([#&#8203;3005](https://github.com/PrismJS/prism/issues/3005))
[`b38fc89a`](https://github.com/PrismJS/prism/commit/b38fc89a)
- Improved Haskell and PureScript
([#&#8203;3020](https://github.com/PrismJS/prism/issues/3020))
[`679539ec`](https://github.com/PrismJS/prism/commit/679539ec)
-   **Python**
- Support for underscores in numbers
([#&#8203;3039](https://github.com/PrismJS/prism/issues/3039))
[`6f5d68f7`](https://github.com/PrismJS/prism/commit/6f5d68f7)
-   **Sass**
- Fixed issues with CSS Extras
([#&#8203;2994](https://github.com/PrismJS/prism/issues/2994))
[`14fdfe32`](https://github.com/PrismJS/prism/commit/14fdfe32)
-   **Shell session**
- Fixed command false positives
([#&#8203;3048](https://github.com/PrismJS/prism/issues/3048))
[`35b88fcf`](https://github.com/PrismJS/prism/commit/35b88fcf)
- Added support for the percent sign as shell symbol
([#&#8203;3010](https://github.com/PrismJS/prism/issues/3010))
[`4492b62b`](https://github.com/PrismJS/prism/commit/4492b62b)
-   **Swift**
- Major improvements
([#&#8203;3022](https://github.com/PrismJS/prism/issues/3022))
[`8541db2e`](https://github.com/PrismJS/prism/commit/8541db2e)
- Added support for `@propertyWrapper`, `@MainActor`, and `@globalActor`
([#&#8203;3009](https://github.com/PrismJS/prism/issues/3009))
[`ce5e0f01`](https://github.com/PrismJS/prism/commit/ce5e0f01)
- Added support for new Swift 5.5 keywords
([#&#8203;2988](https://github.com/PrismJS/prism/issues/2988))
[`bb93fac0`](https://github.com/PrismJS/prism/commit/bb93fac0)
-   **TypeScript**
- Fixed keyword false positives
([#&#8203;3001](https://github.com/PrismJS/prism/issues/3001))
[`212e0ef2`](https://github.com/PrismJS/prism/commit/212e0ef2)

##### Updated plugins

-   **JSONP Highlight**
- Refactored JSONP logic
([#&#8203;3018](https://github.com/PrismJS/prism/issues/3018))
[`5126d1e1`](https://github.com/PrismJS/prism/commit/5126d1e1)
-   **Line Highlight**
- Extend highlight to full line width inside scroll container
([#&#8203;3011](https://github.com/PrismJS/prism/issues/3011))
[`e289ec60`](https://github.com/PrismJS/prism/commit/e289ec60)
-   **Normalize Whitespace**
- Removed unnecessary checks
([#&#8203;3017](https://github.com/PrismJS/prism/issues/3017))
[`63edf14c`](https://github.com/PrismJS/prism/commit/63edf14c)
-   **Previewers**
- Ensure popup is visible across themes
([#&#8203;3080](https://github.com/PrismJS/prism/issues/3080))
[`c7b6a7f6`](https://github.com/PrismJS/prism/commit/c7b6a7f6)

##### Updated themes

-   **Twilight**
- Increase selector specificities of plugin overrides
([#&#8203;3081](https://github.com/PrismJS/prism/issues/3081))
[`ffb20439`](https://github.com/PrismJS/prism/commit/ffb20439)

##### Other

-   **Infrastructure**
- Added benchmark suite
([#&#8203;2153](https://github.com/PrismJS/prism/issues/2153))
[`44456b21`](https://github.com/PrismJS/prism/commit/44456b21)
- Tests: Insert expected JSON by Default
([#&#8203;2960](https://github.com/PrismJS/prism/issues/2960))
[`e997dd35`](https://github.com/PrismJS/prism/commit/e997dd35)
- Tests: Improved dection of empty patterns
([#&#8203;3058](https://github.com/PrismJS/prism/issues/3058))
[`d216e602`](https://github.com/PrismJS/prism/commit/d216e602)
-   **Website**
- Highlight Keywords: More documentation
([#&#8203;3049](https://github.com/PrismJS/prism/issues/3049))
[`247fd9a3`](https://github.com/PrismJS/prism/commit/247fd9a3)

###
[`v1.24.1`](https://github.com/PrismJS/prism/blob/HEAD/CHANGELOG.md#1241-2021-07-03)

[Compare
Source](https://github.com/PrismJS/prism/compare/v1.24.0...v1.24.1)

##### Updated components

-   **Markdown**
- Fixed Markdown not working in NodeJS
([#&#8203;2977](https://github.com/PrismJS/prism/issues/2977))
[`151121cd`](https://github.com/PrismJS/prism/commit/151121cd)

##### Updated plugins

-   **Toolbar**
- Fixed styles being applies to nested elements
([#&#8203;2980](https://github.com/PrismJS/prism/issues/2980))
[`748ecddc`](https://github.com/PrismJS/prism/commit/748ecddc)

###
[`v1.24.0`](https://github.com/PrismJS/prism/blob/HEAD/CHANGELOG.md#1240-2021-06-27)

[Compare
Source](https://github.com/PrismJS/prism/compare/v1.23.0...v1.24.0)

##### New components

- **CFScript**
([#&#8203;2771](https://github.com/PrismJS/prism/issues/2771))
[`b0a6ec85`](https://github.com/PrismJS/prism/commit/b0a6ec85)
- **ChaiScript**
([#&#8203;2706](https://github.com/PrismJS/prism/issues/2706))
[`3f7d7453`](https://github.com/PrismJS/prism/commit/3f7d7453)
- **COBOL**
([#&#8203;2800](https://github.com/PrismJS/prism/issues/2800))
[`7e5f78ff`](https://github.com/PrismJS/prism/commit/7e5f78ff)
- **Coq**
([#&#8203;2803](https://github.com/PrismJS/prism/issues/2803))
[`41e25d3c`](https://github.com/PrismJS/prism/commit/41e25d3c)
- **CSV**
([#&#8203;2794](https://github.com/PrismJS/prism/issues/2794))
[`f9b69528`](https://github.com/PrismJS/prism/commit/f9b69528)
- **DOT (Graphviz)**
([#&#8203;2690](https://github.com/PrismJS/prism/issues/2690))
[`1f91868e`](https://github.com/PrismJS/prism/commit/1f91868e)
- **False**
([#&#8203;2802](https://github.com/PrismJS/prism/issues/2802))
[`99a21dc5`](https://github.com/PrismJS/prism/commit/99a21dc5)
- **ICU Message Format**
([#&#8203;2745](https://github.com/PrismJS/prism/issues/2745))
[`bf4e7ba9`](https://github.com/PrismJS/prism/commit/bf4e7ba9)
- **Idris**
([#&#8203;2755](https://github.com/PrismJS/prism/issues/2755))
[`e9314415`](https://github.com/PrismJS/prism/commit/e9314415)
- **Jexl**
([#&#8203;2764](https://github.com/PrismJS/prism/issues/2764))
[`7e51b99c`](https://github.com/PrismJS/prism/commit/7e51b99c)
- **KuMir (КуМир)**
([#&#8203;2760](https://github.com/PrismJS/prism/issues/2760))
[`3419fb77`](https://github.com/PrismJS/prism/commit/3419fb77)
- **Log file**
([#&#8203;2796](https://github.com/PrismJS/prism/issues/2796))
[`2bc6475b`](https://github.com/PrismJS/prism/commit/2bc6475b)
- **Nevod**
([#&#8203;2798](https://github.com/PrismJS/prism/issues/2798))
[`f84c49c5`](https://github.com/PrismJS/prism/commit/f84c49c5)
- **OpenQasm**
([#&#8203;2797](https://github.com/PrismJS/prism/issues/2797))
[`1a2347a3`](https://github.com/PrismJS/prism/commit/1a2347a3)
- **PATROL Scripting Language**
([#&#8203;2739](https://github.com/PrismJS/prism/issues/2739))
[`18c67b49`](https://github.com/PrismJS/prism/commit/18c67b49)
- **Q#**
([#&#8203;2804](https://github.com/PrismJS/prism/issues/2804))
[`1b63cd01`](https://github.com/PrismJS/prism/commit/1b63cd01)
- **Rego**
([#&#8203;2624](https://github.com/PrismJS/prism/issues/2624))
[`e38986f9`](https://github.com/PrismJS/prism/commit/e38986f9)
- **Squirrel**
([#&#8203;2721](https://github.com/PrismJS/prism/issues/2721))
[`fd1081d2`](https://github.com/PrismJS/prism/commit/fd1081d2)
- **URI**
([#&#8203;2708](https://github.com/PrismJS/prism/issues/2708))
[`bbc77d19`](https://github.com/PrismJS/prism/commit/bbc77d19)
- **V** ([#&#8203;2687](https://github.com/PrismJS/prism/issues/2687))
[`72962701`](https://github.com/PrismJS/prism/commit/72962701)
- **Wolfram language** & **Mathematica** & **Mathematica Notebook**
([#&#8203;2921](https://github.com/PrismJS/prism/issues/2921))
[`c4f6b2cc`](https://github.com/PrismJS/prism/commit/c4f6b2cc)

##### Updated components

- Fixed problems reported by `regexp/no-dupe-disjunctions`
([#&#8203;2952](https://github.com/PrismJS/prism/issues/2952))
[`f471d2d7`](https://github.com/PrismJS/prism/commit/f471d2d7)
- Fixed some cases of quadratic worst-case runtime
([#&#8203;2922](https://github.com/PrismJS/prism/issues/2922))
[`79d22182`](https://github.com/PrismJS/prism/commit/79d22182)
- Fixed 2 cases of exponential backtracking
([#&#8203;2774](https://github.com/PrismJS/prism/issues/2774))
[`d85e30da`](https://github.com/PrismJS/prism/commit/d85e30da)
-   **AQL**
- Update for ArangoDB 3.8
([#&#8203;2842](https://github.com/PrismJS/prism/issues/2842))
[`ea82478d`](https://github.com/PrismJS/prism/commit/ea82478d)
-   **AutoHotkey**
- Improved tag pattern
([#&#8203;2920](https://github.com/PrismJS/prism/issues/2920))
[`fc2a3334`](https://github.com/PrismJS/prism/commit/fc2a3334)
-   **Bash**
- Accept hyphens in function names
([#&#8203;2832](https://github.com/PrismJS/prism/issues/2832))
[`e4ad22ad`](https://github.com/PrismJS/prism/commit/e4ad22ad)
- Fixed single-quoted strings
([#&#8203;2792](https://github.com/PrismJS/prism/issues/2792))
[`e5cfdb4a`](https://github.com/PrismJS/prism/commit/e5cfdb4a)
-   **C++**
- Added support for generic functions and made `::` punctuation
([#&#8203;2814](https://github.com/PrismJS/prism/issues/2814))
[`3df62fd0`](https://github.com/PrismJS/prism/commit/3df62fd0)
- Added missing keywords and modules
([#&#8203;2763](https://github.com/PrismJS/prism/issues/2763))
[`88fa72cf`](https://github.com/PrismJS/prism/commit/88fa72cf)
-   **Dart**
- Improved support for classes & generics
([#&#8203;2810](https://github.com/PrismJS/prism/issues/2810))
[`d0bcd074`](https://github.com/PrismJS/prism/commit/d0bcd074)
-   **Docker**
- Improvements
([#&#8203;2720](https://github.com/PrismJS/prism/issues/2720))
[`93dd83c2`](https://github.com/PrismJS/prism/commit/93dd83c2)
-   **Elixir**
- Added missing keywords
([#&#8203;2958](https://github.com/PrismJS/prism/issues/2958))
[`114e4626`](https://github.com/PrismJS/prism/commit/114e4626)
- Added missing keyword and other improvements
([#&#8203;2773](https://github.com/PrismJS/prism/issues/2773))
[`e6c0d298`](https://github.com/PrismJS/prism/commit/e6c0d298)
- Added `defdelagate` keyword and highlighting for function/module names
([#&#8203;2709](https://github.com/PrismJS/prism/issues/2709))
[`59f725d7`](https://github.com/PrismJS/prism/commit/59f725d7)
-   **F#**
- Fixed comment false positive
([#&#8203;2703](https://github.com/PrismJS/prism/issues/2703))
[`a5d7178c`](https://github.com/PrismJS/prism/commit/a5d7178c)
-   **GraphQL**
- Fixed `definition-query` and `definition-mutation` tokens
([#&#8203;2964](https://github.com/PrismJS/prism/issues/2964))
[`bfd7fded`](https://github.com/PrismJS/prism/commit/bfd7fded)
- Added more detailed tokens
([#&#8203;2939](https://github.com/PrismJS/prism/issues/2939))
[`34f24ac9`](https://github.com/PrismJS/prism/commit/34f24ac9)
-   **Handlebars**
- Added `hbs` alias
([#&#8203;2874](https://github.com/PrismJS/prism/issues/2874))
[`43976351`](https://github.com/PrismJS/prism/commit/43976351)
-   **HTTP**
- Fixed body not being highlighted
([#&#8203;2734](https://github.com/PrismJS/prism/issues/2734))
[`1dfc8271`](https://github.com/PrismJS/prism/commit/1dfc8271)
- More granular tokenization
([#&#8203;2722](https://github.com/PrismJS/prism/issues/2722))
[`6183fd9b`](https://github.com/PrismJS/prism/commit/6183fd9b)
- Allow root path in request line
([#&#8203;2711](https://github.com/PrismJS/prism/issues/2711))
[`4e7b2a82`](https://github.com/PrismJS/prism/commit/4e7b2a82)
-   **Ini**
- Consistently mimic Win32 INI parsing
([#&#8203;2779](https://github.com/PrismJS/prism/issues/2779))
[`42d24fa2`](https://github.com/PrismJS/prism/commit/42d24fa2)
-   **Java**
- Improved generics
([#&#8203;2812](https://github.com/PrismJS/prism/issues/2812))
[`4ec7535c`](https://github.com/PrismJS/prism/commit/4ec7535c)
-   **JavaScript**
- Added support for import assertions
([#&#8203;2953](https://github.com/PrismJS/prism/issues/2953))
[`ab7c9953`](https://github.com/PrismJS/prism/commit/ab7c9953)
- Added support for RegExp Match Indices
([#&#8203;2900](https://github.com/PrismJS/prism/issues/2900))
[`415651a0`](https://github.com/PrismJS/prism/commit/415651a0)
- Added hashbang and private getters/setters
([#&#8203;2815](https://github.com/PrismJS/prism/issues/2815))
[`9c610ae6`](https://github.com/PrismJS/prism/commit/9c610ae6)
- Improved contextual keywords
([#&#8203;2713](https://github.com/PrismJS/prism/issues/2713))
[`022f90a0`](https://github.com/PrismJS/prism/commit/022f90a0)
-   **JS Templates**
- Added SQL templates
([#&#8203;2945](https://github.com/PrismJS/prism/issues/2945))
[`abab9104`](https://github.com/PrismJS/prism/commit/abab9104)
-   **JSON**
- Fixed backtracking issue in Safari
([#&#8203;2691](https://github.com/PrismJS/prism/issues/2691))
[`cf28d1b2`](https://github.com/PrismJS/prism/commit/cf28d1b2)
-   **Liquid**
- Added Markup support, missing tokens, and other improvements
([#&#8203;2950](https://github.com/PrismJS/prism/issues/2950))
[`ac1d12f9`](https://github.com/PrismJS/prism/commit/ac1d12f9)
-   **Log file**
- Minor improvements
([#&#8203;2851](https://github.com/PrismJS/prism/issues/2851))
[`45ec4a88`](https://github.com/PrismJS/prism/commit/45ec4a88)
-   **Markdown**
- Improved code snippets
([#&#8203;2967](https://github.com/PrismJS/prism/issues/2967))
[`e9477d83`](https://github.com/PrismJS/prism/commit/e9477d83)
- Workaround for incorrect highlighting due to double `wrap` hook
([#&#8203;2719](https://github.com/PrismJS/prism/issues/2719))
[`2b355c98`](https://github.com/PrismJS/prism/commit/2b355c98)
-   **Markup**
- Added support for DOM event attributes
([#&#8203;2702](https://github.com/PrismJS/prism/issues/2702))
[`8dbbbb35`](https://github.com/PrismJS/prism/commit/8dbbbb35)
-   **nginx**
- Complete rewrite
([#&#8203;2793](https://github.com/PrismJS/prism/issues/2793))
[`5943f4cb`](https://github.com/PrismJS/prism/commit/5943f4cb)
-   **PHP**
- Fixed functions with namespaces
([#&#8203;2889](https://github.com/PrismJS/prism/issues/2889))
[`87d79390`](https://github.com/PrismJS/prism/commit/87d79390)
- Fixed string interpolation
([#&#8203;2864](https://github.com/PrismJS/prism/issues/2864))
[`cf3755cb`](https://github.com/PrismJS/prism/commit/cf3755cb)
- Added missing PHP 7.4 `fn` keyword
([#&#8203;2858](https://github.com/PrismJS/prism/issues/2858))
[`e0ee93f1`](https://github.com/PrismJS/prism/commit/e0ee93f1)
- Fixed methods with keyword names + minor improvements
([#&#8203;2818](https://github.com/PrismJS/prism/issues/2818))
[`7e8cd40d`](https://github.com/PrismJS/prism/commit/7e8cd40d)
- Improved constant support for PHP 8.1 enums
([#&#8203;2770](https://github.com/PrismJS/prism/issues/2770))
[`8019e2f6`](https://github.com/PrismJS/prism/commit/8019e2f6)
- Added support for PHP 8.1 enums
([#&#8203;2752](https://github.com/PrismJS/prism/issues/2752))
[`f79b0eef`](https://github.com/PrismJS/prism/commit/f79b0eef)
- Class names at the start of a string are now highlighted correctly
([#&#8203;2731](https://github.com/PrismJS/prism/issues/2731))
[`04ef309c`](https://github.com/PrismJS/prism/commit/04ef309c)
- Numeral syntax improvements
([#&#8203;2701](https://github.com/PrismJS/prism/issues/2701))
[`01af04ed`](https://github.com/PrismJS/prism/commit/01af04ed)
-   **React JSX**
- Added support for general spread expressions
([#&#8203;2754](https://github.com/PrismJS/prism/issues/2754))
[`9f59f52d`](https://github.com/PrismJS/prism/commit/9f59f52d)
- Added support for comments inside tags
([#&#8203;2728](https://github.com/PrismJS/prism/issues/2728))
[`30b0444f`](https://github.com/PrismJS/prism/commit/30b0444f)
-   **reST (reStructuredText)**
- Fixed `inline` pattern
([#&#8203;2946](https://github.com/PrismJS/prism/issues/2946))
[`a7656de6`](https://github.com/PrismJS/prism/commit/a7656de6)
-   **Ruby**
- Added heredoc literals
([#&#8203;2885](https://github.com/PrismJS/prism/issues/2885))
[`20b77bff`](https://github.com/PrismJS/prism/commit/20b77bff)
- Added missing regex flags
([#&#8203;2845](https://github.com/PrismJS/prism/issues/2845))
[`3786f396`](https://github.com/PrismJS/prism/commit/3786f396)
- Added missing regex interpolation
([#&#8203;2841](https://github.com/PrismJS/prism/issues/2841))
[`f08c2f7f`](https://github.com/PrismJS/prism/commit/f08c2f7f)
-   **Scheme**
- Added support for high Unicode characters
([#&#8203;2693](https://github.com/PrismJS/prism/issues/2693))
[`0e61a7e1`](https://github.com/PrismJS/prism/commit/0e61a7e1)
- Added bracket support
([#&#8203;2813](https://github.com/PrismJS/prism/issues/2813))
[`1c6c0bf3`](https://github.com/PrismJS/prism/commit/1c6c0bf3)
-   **Shell session**
- Fixed multi-line commands
([#&#8203;2872](https://github.com/PrismJS/prism/issues/2872))
[`cda976b1`](https://github.com/PrismJS/prism/commit/cda976b1)
- Commands prefixed with a path are now detected
([#&#8203;2686](https://github.com/PrismJS/prism/issues/2686))
[`c83fd0b8`](https://github.com/PrismJS/prism/commit/c83fd0b8)
-   **SQL**
- Added `ILIKE` operator
([#&#8203;2704](https://github.com/PrismJS/prism/issues/2704))
[`6e34771f`](https://github.com/PrismJS/prism/commit/6e34771f)
-   **Swift**
- Added `some` keyword
([#&#8203;2756](https://github.com/PrismJS/prism/issues/2756))
[`cf354ef5`](https://github.com/PrismJS/prism/commit/cf354ef5)
-   **TypeScript**
- Updated keywords
([#&#8203;2861](https://github.com/PrismJS/prism/issues/2861))
[`fe98d536`](https://github.com/PrismJS/prism/commit/fe98d536)
- Added support for decorators
([#&#8203;2820](https://github.com/PrismJS/prism/issues/2820))
[`31cc2142`](https://github.com/PrismJS/prism/commit/31cc2142)
-   **VB.Net**
- Improved strings, comments, and punctuation
([#&#8203;2782](https://github.com/PrismJS/prism/issues/2782))
[`a68f1fb6`](https://github.com/PrismJS/prism/commit/a68f1fb6)
-   **Xojo (REALbasic)**
- `REM` is no longer highlighted as a keyword in comments
([#&#8203;2823](https://github.com/PrismJS/prism/issues/2823))
[`ebbbfd47`](https://github.com/PrismJS/prism/commit/ebbbfd47)
- Added last missing Keyword "Selector"
([#&#8203;2807](https://github.com/PrismJS/prism/issues/2807))
[`e32e043b`](https://github.com/PrismJS/prism/commit/e32e043b)
- Added missing keywords
([#&#8203;2805](https://github.com/PrismJS/prism/issues/2805))
[`459365ec`](https://github.com/PrismJS/prism/commit/459365ec)

##### Updated plugins

- Made Match Braces and Custom Class compatible
([#&#8203;2947](https://github.com/PrismJS/prism/issues/2947))
[`4b55bd6a`](https://github.com/PrismJS/prism/commit/4b55bd6a)
- Consistent Prism check
([#&#8203;2788](https://github.com/PrismJS/prism/issues/2788))
[`96335642`](https://github.com/PrismJS/prism/commit/96335642)
-   **Command Line**
- Don't modify empty code blocks
([#&#8203;2896](https://github.com/PrismJS/prism/issues/2896))
[`c81c3319`](https://github.com/PrismJS/prism/commit/c81c3319)
-   **Copy to Clipboard**
- Removed ClipboardJS dependency
([#&#8203;2784](https://github.com/PrismJS/prism/issues/2784))
[`d5e14e1a`](https://github.com/PrismJS/prism/commit/d5e14e1a)
- Fixed `clipboard.writeText` not working inside iFrames
([#&#8203;2826](https://github.com/PrismJS/prism/issues/2826))
[`01b7b6f7`](https://github.com/

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "" (UTC), Automerge - At any time (no
schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/vue-styleguidist/vue-styleguidist).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMTIuMCIsInVwZGF0ZWRJblZlciI6IjM3LjIyNy4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2In0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant