Version 11.0.0
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.
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()
and initHighlightingOnLoad()
deprecated. Use highlightAll()
.highlightBlock(el)
deprecated. Use highlightElement(el)
before:highlightBlock
& after:highlightBlock
callbacks deprecated. Use equivalent highlightElement
callbacks.highlight(languageName, code, ignoreIllegals, continuation)
signature deprecated. Use highlight(code, {language, ignoreIllegals})
.- Deprecated
highlight()
signature no longer supports continuation
argument. tabReplace
option removed. Consider a plugin.useBR
option removed. Consider a plugin or CSS.requireLanguage()
removed. Use getLanguage()
.endSameAsBegin
mode key removed. Use hljs.END_SAME_AS_BEGIN
.lexemes
mode key removed. Use keywords.$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][]github-gist
has been removed in favor of github
[Jan Pilzer][]- Base16 named themes have been updated to their "canonical" versions
nnfx
updated for v11 xml styles and improved css support
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(vala) improve language detection for Vala (#3195) [Konrad Rudolph][]
- enh(r) add support for operators, fix number highlighting bug (#3194, #3195) [Konrad Rudolph][]
- enh(parser) add
beginScope
and endScope
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 consistent language-[name]
class [Josh Goebel][]
- subLanguage
span
tags now also always have the language-
prefix added
- 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][] - adds
cssSelector
configuration option (#3180) [James Edington][]
Grammars:
- enh(all)
.meta-keyword
=> .meta .keyword
(nested scopes) (#3167) [Josh Goebel][] - enh(all)
.meta-string
=> .meta .string
(nested scopes) (#3167) [Josh Goebel][] - enh(swift) add
actor
keyword (#3171) [Bradley Mackey][] - 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(sqf) Refactored function regex to match CBA component func naming scheme (#3181) [JonBons][]
- 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][]
- fix(c,cpp) allow declaring multiple functions and (for C++) parenthetical initializers (#3155) [Erik Demaine][]
- enh(rust) highlight raw byte string literals correctly (#3173) [Nico Abram][]
- fix(cpp) fix detection of common functions that are function templates (#3178) [Kris van Rens][]
- enh(cpp) add various keywords and commonly used types for hinting (#3178) [Kris van Rens][]
- enh(cpp) cleanup reserved keywords and type lists (#3178) [Kris van Rens][]
New Languages:
- Added 3rd party Glimmer grammar to SUPPORTED_LANGUAGES(#3123) [NullVoxPopuli][]
- Added Wren support [Josh Goebel][]
- 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][]
- GitHub Dark and GitHub Dark Dimmed [Jan Pilzer][]
Dev Improvements:
- (chore) greatly improve match scope visualization in dev tool (#3126) [NullVoxPopuli][]
- (fix) CSS used for devtool needed an adjustment to fix too wide of content (#3133) [NullVoxPopuli][]