This is a major release. As such it contains breaking changes which may require action from users. Please read VERSION_11_UPGRADE.md for a detailed summary of all breaking changes.
This release is:
Potentially breaking changes
Unless otherwise attributed items below are thanks to Josh Goebel (ref: #2558).
The below list should only be considered to be a high-level summary.
Deprecations / Removals / API Changes:
initHighlighting()
andinitHighlightingOnLoad()
deprecated. UsehighlightAll()
.highlightBlock(el)
deprecated. UsehighlightElement(el)
before:highlightBlock
&after:highlightBlock
callbacks deprecated. Use equivalenthighlightElement
callbacks.highlight(languageName, code, ignoreIllegals, continuation)
signature deprecated. Usehighlight(code, {language, ignoreIllegals})
.- Deprecated
highlight()
signature no longer supportscontinuation
argument. tabReplace
option removed. Consider a plugin.useBR
option removed. Consider a plugin or CSS.requireLanguage()
removed. UsegetLanguage()
.endSameAsBegin
mode key removed. Usehljs.END_SAME_AS_BEGIN
.lexemes
mode key removed. Usekeywords.$pattern
.- The return values/keys of some APIs have changed slightly.
Security:
- HTML auto-passthru has been removed. Consider a plugin.
- Unescaped HTML is now stripped (for security). A warning is logged to the console. (#3057) Josh Goebel
Themes:
- The default padding of all themes increases (0.5em => 1em).
schoolbook
has been updated to remove the lined background.github
updated to better match modern GitHub (#1616) [Jan Pilzer][]- Base16 named themes have been updated to their "canonical" versions
Language Grammars:
- Default CDN build drops support for several languages.
- Some language grammar files have been removed.
- Some redundant language aliases have been removed.
Other changes
Parser:
- enh(parser) add
beginScope
andendScope
to allow separate scoping begin and end (#3159) Josh Goebel - enh(parsed)
endScope
now supports multi-class matchers as well (#3159) Josh Goebel - enh(parser)
highlightElement
now always tags blocks with a consistentlanguage-[name]
class Josh Goebel- subLanguage
span
tags now also always have thelanguage-
prefix added
- subLanguage
- enh(parser) support multi-class matchers (#3081) Josh Goebel
- enh(parser) Detect comments based on english like text, rather than keyword list Josh Goebel
- adds
title.class.inherited
sub-scope support Josh Goebel - adds
title.class
sub-scope support (#3078) Josh Goebel - adds
title.function
sub-scope support (#3078) Josh Goebel - adds
beforeMatch
compiler extension (#3078) Josh Goebel
Grammars:
- enh(crystal) highlight variables (#3154) Josh Goebel
- fix(ruby) Heredoc without interpolation (#3154) Josh Goebel
- enh(swift) add
@resultBuilder
attribute (#3151) Bradley Mackey - enh(processing) added
pde
alias (#3142) Dylan McBean - enh(thrift) Use proper scope for types Josh Goebel
- enh(java) Simplified class-like matcher (#3078) Josh Goebel
- enh(cpp) Simplified class-like matcher (#3078) Josh Goebel
- enh(rust) Simplified class-like matcher (#3078) Josh Goebel
- enh(actionscript) Simplified class-like matcher (#3078) Josh Goebel
- enh(arcade)
function.title
=>title.function
(#3078) Josh Goebel - enh(autoit)
function.title
=>title.function
(#3078) Josh Goebel - enh(c)
function.title
=>title.function
(#3078) Josh Goebel - enh(rust) support function invoke and
impl
(#3078) Josh Goebel - chore(properties) disable auto-detection #3102 Josh Goebel
- fix(properties) fix incorrect handling of non-alphanumeric keys #3102 [Egor Rogov][]
- enh(java) support functions with nested template types (#2641) Josh Goebel
- enh(java) highlight types and literals separate from keywords (#3074) Josh Goebel
- enh(shell) add alias ShellSession Ryan Mulligan
- enh(shell) consider one space after prompt as part of prompt Ryan Mulligan
- fix(nginx) fix bug with $ and @ variables Josh Goebel
- enh(nginx) improving highlighting of some sections Josh Goebel
- fix(vim) variable names may not be zero length Josh Goebel
- enh(sqf) Updated keywords to Arma 3 v2.02 (#3084) R3voA3
- enh(nim) highlight types properly (not as built-ins) Josh Goebel
- (chore) throttle deprecation messages (#3092) [Mihkel Eidast][]
- enh(c) Update keyword list for C11/C18 (#3010) Josh Goebel
- enh(parser) highlight object properties (#3072) Josh Goebel
- enh(javascript/typescript) highlight object properties (#3072) Josh Goebel
- enh(haskell) add support for BinaryLiterals (#3150) Martijn Bastiaan
- enh(haskell) add support for NumericUnderscores (#3150) Martijn Bastiaan
- enh(haskell) add support for HexFloatLiterals (#3150) Martijn Bastiaan
New Languages:
- Added 3rd party Glimmer grammar to SUPPORTED_LANGUAGES(#3123) NullVoxPopuli
- Added NestedText support Josh Goebel
- Added WebAssembly language grammar Josh Goebel
- Added 3rd party Splunk search processing language grammar to SUPPORTED_LANGUAGES (#3090) Wei Su
- Added 3rd party ZenScript grammar to SUPPORTED_LANGUAGES(#3106) Jared Luboff
- Added 3rd party Papyrus grammar to SUPPORTED_LANGUAGES(#3125) Mike Watling
Theme Improvements:
- Added all official Base16 themes (over 150 new themes) Josh Goebel
- chore(themes) remove
builtin-name
CSS class (#3119) Josh Goebel - chore(theme) Update GitHub theme css to match GitHub's current styling (#1616) [Jan Pilzer][]
- chore(theme) Update Srcery theme css to match its Emacs implementation [Chen Bin][]
New Themes:
- DeviBeans Dark by Farzad Sadeghi
Dev Improvements:
- (chore) greatly improve match scope visualization in dev tool (#3126) NullVoxPopuli